<<if setup.cheatsUnlocked()>>
<p>Help yourself!</p>
<h3>General</h3>
<<link "+ $200 money">><<set $money += 200>><<goto "Cheat">><</link>> (now: <<print "$" + $money>>)<br>
<<link "+ 50 physical">><<set $physical += 50>><<goto "Cheat">><</link>> (now: $physical)<br>
<<link "Refill energy">><<set $energy = 10>><<goto "Cheat">><</link>> (now: $energy)<br>
<<link "+ 50 respect">><<set $respect += 50>><<goto "Cheat">><</link>> (now: $respect)<br>
<<link "+ 25 knowledge">><<set $knowledge += 25>><<goto "Cheat">><</link>> (now: $knowledge)<br>
<<link "Clear heat">><<set $heat = 0>><<set $laying_low = 0>><<goto "Cheat">><</link>> (now: $heat)<br>
<h3>Characters</h3>
/* Character skips only move a save forward, and only to points that open
something outside the character's own scenes - a service, a quest gate,
another arc. Stepping through single beats is the Gallery's job, so there is
no link per scene. Each skip writes what the beats it jumps over would have
written and hides once the save is at or past it.
Ella: the rebuild skip leaves her at stage 4 with the building finished, so
her kiss and the grand opening still play in context. The catch-up skip
lands on 12, where the open relationship is agreed (William's arc, the
library meeting spot for Jamal, her recording in room 021) and her next
visit waits on other arcs. It needs $target1 4: the Mrs. Bond aftermath
drops any stage 6+ back to 7. The runaway route (-1) is her ending, so
nothing is offered there. */
<<switch $ella_stage>>
<<case -1>><<set _beat = "on the runaway route - that's her ending">>
<<case 0>><<set _beat = "not met yet">>
<<case 1 2 3>><<set _beat = "the library rebuild is under way">>
<<case 4>><<set _beat = "the renovation's last push, her kiss next">>
<<case 5>><<set _beat = "grand opening next">>
<<case 6 7 8 9 10>><<set _beat = "between the opening night and deciding what you are to each other">>
<<case 11>><<set _beat = "open relationship agreed, her creampie talk next (20 knowledge)">>
<<case 12>><<if $william_stage == 6 && $pollock_stage >= 4>><<set _beat = "her flat visit is open - check on her from the library or the bar">><<else>><<set _beat = "caught up - her flat visit waits on William's night and Pollock's finale">><</if>>
<<default>><<set _beat = "her flat visit done - end of her content">>
<</switch>>
<p>Ella is at stage $ella_stage: <<print _beat>>. The library is <<if $community_quest >= 4>>open<<else>>at $library_progress%<</if>>. Skips only move forward; replay her scenes from the Gallery.</p>
<<if $community_quest < 4 && $ella_stage >= 0 && ($library_progress < 100 || $library_standoff < 2 || $ella_stage < 4)>><<link "Library: finish the rebuild (Ella's kiss and the grand opening next)">><<set $community_quest = 3>><<set $library_progress = 100>><<set $library_materials = 1>><<set $library_find = 4>><<set $library_standoff = 2>><<set $ella_stage = Math.max($ella_stage, 4)>><<set $ella_next_day = $day>><<goto "Cheat">><</link>><br><</if>>
<<if $backroom_unlocked == 0 && $ella_stage >= 0>><<link "Library: build the back room behind the poetry shelf">><<set $backroom_unlocked = 1>><<goto "Cheat">><</link>> (+5 knowledge per read<<if $community_quest < 4>>, opens once the library reopens<</if>>)<br><</if>>
<<if $ella_stage >= 0 && $ella_stage < 12>>
<<if $target1 >= 4>>
<<link "Ella: catch up to her latest content (library open, open relationship, creampie talk done)">><<set $community_quest = 4>><<set $library_progress = 100>><<set $library_materials = 1>><<set $library_find = 4>><<set $library_standoff = 2>><<set $ella_stage = 12>><<set $ella_next_day = $day>><<goto "Cheat">><</link>><br>
<<else>>
<div class="req">Ella: catching her up needs the Mrs. Bond operation done first - its aftermath sends her back to the bar. The school unlock below covers it.</div>
<</if>>
<</if>>
/* Adriana: the repair link, one catch-up skip and the daily reset. Level 8 is
the only skip worth having - it holds every service her ladder opens (heat
scrub at girlfriend prices, the fake ID the school job needs, room 021's
materials) plus what only exists while the night is owed: her cart, the
confiscation tub, Earl's tap line, Vittoria's reroute and the princess-night
offer to Madi. Skipping onto her earlier rungs or straight to a stocked
night only replayed scenes the Gallery already has, so those links are gone.
"|| 0" keeps a missing or NaN counter out of Math.max.
She counts as met at level 1, or once the main quest is past her laptop
handoff ($target1 3+), which is where level 1 is normally set. The school
skip below jumps past that point and marks her met itself; a save that used
it before it did sits at level 0 and gets the "count her as met" link. */
<<if $hacker_level < 1 && $target1 < 3>>
<p>Adriana: meet her through the main quest first.</p>
<<else>>
<<switch $hacker_level>>
<<case 0>><<set _beat = "never met on this save, the main quest was skipped past her">>
<<case 1>><<set _beat = "first blowjob next">>
<<case 2>><<set _beat = "blowjob practice, " + ($hacker_bj_level || 0) + "/3">>
<<case 3>><<set _beat = "first facefuck next">>
<<case 4>><<set _beat = "facefuck practice, " + ($hacker_ff_level || 0) + "/3">>
<<case 5>><<set _beat = "gloryhole talk next">>
<<case 6>><<set _beat = "her first time at the lair next">>
<<case 7>><<set _beat = "pussy rounds until her princess list, " + ($hacker_sex_level || 0) + "/3">>
<<case 8>><<set _beat = "princess list handed over, shopping for the night">>
<<default>><<set _beat = "princess night done - end of her content">>
<</switch>>
<p>Adriana is at level $hacker_level/9: <<print _beat>>. Skips only move forward; replay her scenes from the Gallery.</p>
<<if $hacker_level < 1>><<link "Adriana: count her as met (first blowjob next)">><<set $hacker_level = 1>><<goto "Cheat">><</link>><br><</if>>
<<if $hacker_level < 8>><<link "Adriana: catch up to her princess list (fake ID, room 021 materials, cheaper heat scrubs)">><<set $hacker_level = 8>><<set $hacker_bj_level = Math.max($hacker_bj_level || 0, 3)>><<set $hacker_ff_level = Math.max($hacker_ff_level || 0, 3)>><<set $hacker_gh_stage = Math.max($hacker_gh_stage || 0, 2)>><<set $hacker_sex_level = Math.max($hacker_sex_level || 0, 3)>><<goto "Cheat">><</link>> (the night itself needs her dress and lube from the cart)<br><</if>>
<<link "Adriana: reset her scenes for today">><<set $hacked_had_sex_today = 0>><<goto "Cheat">><</link>> (now: $hacked_had_sex_today/2 used)<br>
<</if>>
<<link "Savannah: max both corruption paths">><<set $savannah_blacked = Math.max($savannah_blacked, 7)>><<set $savannah_cheating = Math.max($savannah_cheating, 7)>><<goto "Cheat">><</link>> (now: <<print Math.min($savannah_blacked, 7)>>/7 interracial, <<print Math.min($savannah_cheating, 7)>>/7 affairs)<br>
<h3>School</h3>
<<link "Unlock school access (skip the main quest up to the janitor job)">><<set $target1 = 4>><<set $school_unlocked = 4>><<set $school_job = 1>><<set $closet_unlocked = true>><<set $school_time = "morning">><<set $school_pay_day = $day>><<set $hacker_level = Math.max($hacker_level, 1)>><<if $player_name == "">><<set $player_name = "Tyron">><</if>><<if $player_surame == "">><<set $player_surame = "Williams">><</if>><<goto "Cheat">><</link>> (now: $school_unlocked/4)<br>
<<link "Grant the detention post (skips Britney's arc requirement)">><<set $detention_job = true>><<set $school_job = 2>><<set $amber_stage = Math.max($amber_stage, 4)>><<goto "Cheat">><</link>> (now: <<if $detention_job>>held<<else>>not held<</if>>)<br>
<<link "+ 25 school reputation">><<set $school_rep += 25>><<goto "Cheat">><</link>> (now: $school_rep)<br>
<<link "Pollock: max leverage">><<set $pollock_leverage = 10>><<goto "Cheat">><</link>> (now: $pollock_leverage/10)<br>
<<link "Master key: complete">><<set $master_key = 3>><<goto "Cheat">><</link>> (now: $master_key/3)<br>
/* Pollock's finale skip writes what the beats it jumps would have: full
leverage and master key, a route (the one-on-one with Marcello watching,
unless the save already picked one), stage 4 and her keycard. Like Ella's
skip it doesn't hold the next beat back, so her first pink slip isn't kept
two days out the way it is after a played finale. Hidden from stage 4. */
<<if $pollock_stage < 4>>
<<if $school_job >= 1>>
<<link "Pollock: skip past her finale (her keycard and security key in your pocket)">><<set $pollock_leverage = 10>><<set $master_key = 3>><<if $pollock_route == 0>><<set $pollock_route = 2>><</if>><<if $pollock_route == 2 && $pollock_home_cuck == 0>><<set $pollock_home_cuck = 2>><</if>><<if $pollock_route == 1 && $pollock_group_done == 0>><<set $pollock_group_done = 1>><</if>><<set $pollock_stage = 4>><<set $pollock_next_day = $day>><<set $database_access = Math.max($database_access, 1)>><<goto "Cheat">><</link>> (now: stage $pollock_stage/4)<br>
<<else>>
<div class="req">Pollock: skipping her finale needs the janitor job first - the school unlock above covers it.</div>
<</if>>
<</if>>
/* Her first pink slip (stage 4 -> 5): the dirty jobs contracted out for
everybody unless the save already chose, Marcello in the arrangement
whenever he's known, and the next slip not held back. Leaves reputation
and Albright's heat alone. From stage 5 the cycler swaps who took the
dirty jobs, for testing what reads $dirty_retired. */
<<if $pollock_stage == 4>>
<<link "Pollock: skip her first pink slip (the arrangement, dirty jobs contracted out)">><<if $dirty_retired == 0>><<set $dirty_retired = 1>><</if>><<if $pollock_route == 2 || $pollock_husband >= 1>><<set $pollock_husband = 3>><</if>><<set $pollock_stage = 5>><<set $regime_day = $day>><<set $pollock_slip_day = $day>><<goto "Cheat">><</link>><br>
<<elseif $pollock_stage >= 5>>
<<link "Dirty work orders: cycle who took them">><<set $dirty_retired = $dirty_retired % 3 + 1>><<goto "Cheat">><</link>> (now: <<if $dirty_retired == 1>>the contractor, for everybody<<elseif $dirty_retired == 2>>the contractor, his own only<<else>>the detention boys<</if>>)<br>
<<link "Pollock: her next pink slip today">><<set $pollock_slip_day = $day>><<goto "Cheat">><</link>> (now: <<if $day >= $pollock_slip_day>>waiting<<else>>day $pollock_slip_day<</if>>, $pollock_slips answered)<br>
<<if $albright_stage >= 1>>
<<link "Albright: +4 heat">><<set $albright_heat += 4>><<goto "Cheat">><</link>> (now: $albright_heat, a restriction costs her 4)<br>
<<link "Albright: lift her restriction">><<set $albright_block_until = $day>><<goto "Cheat">><</link>> (now: <<if $albright_block > 0 && $day < $albright_block_until>>restriction $albright_block until day $albright_block_until<<else>>none active<</if>>)<br>
<</if>>
<</if>>
/* Madi (docs/madi-build-plan.md). The skip lands on her open file and writes
what the beats it jumps would have: the database read and reported,
Terrence's job on the cash deal unless the save already made one (a hooked-up
save keeps its owed debrief), the box on the rack, Adriana's first look with
its notes, and the open mic's Curiosity if the mic already happened. Like the
other skips it doesn't hold the next beat back. It needs Pollock's finale and
hides once the file exists; from then on the meters can be topped up. */
<<if $madi_stage < 3>>
<<if $pollock_stage >= 4>>
<<link "Madi: skip to her file (the box on the rack, the file open)">><<set $database_access = 3>><<if $terrence_deal == 0>><<set $terrence_deal = 2>><</if>><<set $server_stage = 3>><<set $madi_stage = 3>><<set $madi_file_day = $day>><<set $madi_next_day = $day>><<set $madi_curiosity = Math.min(setup.madi.max, $madi_curiosity + $open_mic)>><<run setup.madi.learn("grayson", "rules", "lauren", "tracker")>><<goto "Cheat">><</link>> (now: stage $madi_stage)<br>
<<else>>
<div class="req">Madi: her file needs Pollock's finale first - the Pollock skip above covers it.</div>
<</if>>
<<else>>
<<link "Madi: +5 Curiosity">><<set $madi_curiosity = Math.min(setup.madi.max, $madi_curiosity + 5)>><<goto "Cheat">><</link>> (now: $madi_curiosity/<<= setup.madi.max>>)<br>
<<link "Madi: +5 Spite">><<set $madi_spite = Math.min(setup.madi.max, $madi_spite + 5)>><<goto "Cheat">><</link>> (now: $madi_spite/<<= setup.madi.max>>)<br>
/* Her favors (Phase 2): the day's favor freed, anything already asked or
filled in lands today, and every ally is off cooldown. */
<<link "Madi: a fresh favor today (pending favors land now, cooldowns cleared)">><<set $madi_favor_day = 0>><<run Object.keys($madi_asks).forEach(k => $madi_asks[k] = $day)>><<set $madi_ally_next = {}>><<goto "Cheat">><</link>><br>
<<if setup.madi.dark()>>
<<link "Madi: bring Adriana's box back without Terrence">><<run setup.madi.see("outage")>><<goto "Cheat">><</link>><br>
<</if>>
/* Phase 3: first contact and the reveal. The first skip makes the meeting
and puts Grayson's affair in her file; the second plays the walk-in
(dropping any blank still waiting on Grayson) and leaves her father's
dinner due at the next camera check, which sets stage 5. */
<<if $madi_stage == 3>>
<<link "Madi: skip to first contact (stage 4, Grayson's affair in her file)">><<set $madi_stage = 4>><<set $madi_next_day = $day>><<run setup.madi.learn("affair")>><<goto "Cheat">><</link>><br>
<<elseif $madi_stage == 4 && $madi_reveal == 0>>
<<link "Madi: skip the reveal (the walk-in played, her father's dinner on the next camera check)">><<run delete $madi_asks["equipment"]; delete $madi_asks["summons"]>><<run setup.madi.learn("affair", "keylog", "walkin")>><<run setup.madi.see("keylog")>><<set $madi_reveal = 1>><<set $madi_next_day = $day>><<if setup.madi.lead() is "spite">><<set $madi_spite = Math.min(setup.madi.max, $madi_spite + 3)>><<else>><<set $madi_curiosity = Math.min(setup.madi.max, $madi_curiosity + 3)>><</if>><<goto "Cheat">><</link>><br>
<</if>>
/* Phase 4: straight to the endings board. It plays the walk-in if no reveal
has, marks the clip watched on the clip route, her father's dinner and
Adriana's Facility 9 file (kept, unless the save already chose; a reports
or stairwell beat still waiting counts as played), and puts both meters
at 10. */
<<if $madi_stage >= 3 && $madi_stage < 6>>
<<link "Madi: skip to the approach (stage 5, Facility 9 played, both meters full)">>
<<run delete $madi_asks["equipment"]; delete $madi_asks["summons"]>>
<<run setup.madi.learn("affair")>>
<<if $madi_reveal == 0>><<set $madi_reveal = 1>><<run setup.madi.learn("keylog", "walkin")>><<run setup.madi.see("keylog")>><</if>>
<<if $madi_reveal == 2>><<run setup.madi.see("clipwatch")>><<run setup.madi.learn("clip")>><</if>>
<<if not setup.madi.hasSeen("facility9")>><<set $madi_truth = 0>><</if>>
<<run setup.madi.see("father", "facility9")>>
<<run setup.madi.learn("sided", "facility9")>>
<<if $madi_truth == 1>><<run setup.madi.see("reports")>><<run setup.madi.learn("sent")>><<elseif $madi_truth == 2>><<run setup.madi.see("truth")>><<run setup.madi.learn("told")>><<else>><<run setup.madi.learn("kept")>><</if>>
<<set $madi_stage = 5>><<set $madi_next_day = $day>><<set $madi_curiosity = setup.madi.max>><<set $madi_spite = setup.madi.max>>
<<goto "Cheat">><</link>><br>
<</if>>
/* Phase 5: once an ending is chosen, straight to its night: the print
played, Jamal told on the group route, the boys invited on path 2, and the
night open today (solo: the Hallway in the evening; group: The Hood). */
<<if $madi_stage == 6>>
<<link "Madi: skip to the night (the print played, Jamal told, the boys invited on path 2, William after his swap night)">>
<<run setup.madi.see("print")>>
<<if $madi_approach == 2>><<run setup.madi.see("jamal")>><<if $incel_path == 2>><<run setup.madi.see("boys")>><</if>><<if $william_stage == 6>><<run setup.madi.see("william")>><</if>><</if>>
<<set $madi_next_day = $day>>
<<goto "Cheat">><</link>><br>
<</if>>
<</if>>
<h3>Gallery</h3>
<<if $gallery_cheat>><<link "Unlock every gallery scene: ON - switch off">><<set $gallery_cheat = false>><<goto "Cheat">><</link>><br>
<<else>><<link "Unlock every gallery scene: OFF - switch on">><<set $gallery_cheat = true>><<goto "Cheat">><</link>><br>
<</if>>
<br>
<<else>>
Enter the code here: <<textbox "$code" "" "PatreonCode" autofocus>>
[[Confirm|PatreonCode]]<br>
<br>
Enter the code to unlock the cheat menu. You can find the current code on my patreon page: https://patreon.com/TimJRebel <br>
<</if>>
[[Return to the game|The hideout]]Chemist who can synthesise drugs for sale or help advance on target.
Either for money or Heat/Manpower (steal chemicals from facility)<div class="text" style="font-size: 1.5em; font-weight: bold;">Democracy is Dead, and now you too?</div>
<div class="text">Your physical stat has dropped below zero, meaning you should not wake up the following day.
However, at least at this stage, you get a second chance. Please pay more attention to your physical stat: eat more, hit the gym, touch the grass.</div>
<<statchange "physical" 20>>
[[Try better|Sleep]]<<if visited() == 1>>
<p>Another habit from your service that is hard to shake off is to note every door in every room you're in. And since you've started visiting this bar, you kept thinking about the purpose of one unremarkable door behind the bartender. Occasionally, suspicious men were seen coming in and out; could it be a gang hideout there? You decide to ask the bartender.</p>
<<speech "Earl" "Gloryhole, kid. Want your dick sucked? Throw me a fiver and keep your mouth shut.">>
<div class="text">Oh, that explains a lot. Not that you really want to put your genitalia in a hole in the wall, but you need to inspect the building - to spot possible escape routes, etc.
You find yourself in a small room, more like a closet or a booth, with a screen that shows you the feed from the other side of the wall. There, a well-groomed brunette is waiting for a dick to appear. She does not look like someone who sucks cocks for a couple of bucks, but who are you to judge. Anyway, let's not keep the lady waiting...</div>
<<video "img/bar/first_1.webm" >>
<p>You push your big black cock through the hole in the wall and steer it into the lady's mouth. The poor girl is flabbergasted! She did not expect to be choked by a black monster tonight, it seems.</p>
<<video "img/bar/first_2.webm" >>
<p>Nevertheless, she quickly gets her shit together and starts intensively sucking your cock. She's really good, definitely not a novice at the gloryhole duty.</p>
<<video "img/bar/first_3.webm" >>
<div class="text">Your expectations are surpassed when the lady switches from her mouth to her pussy. Now THAT we're talking! Her tight pussy is so good you just close your eyes and unload your cum inside the stranger behind the wall...
***
On your way back, the bartender returns you the money.</div>
<<speech "Earl" "It's free for you, kid. With your natural gifts, the girls should pay you.">>
<<set $gloryhole_ulocked to 1>>
<<else>>
You put your impressive manhood through the wall and relax. For the next short time, you are going to be pleased by anonymous white girls with BBC fetish - a good way to unwind after a long day.
<<set _randomvid = either("img/bar/glory_1.webm","img/bar/glory_2.webm","img/bar/glory_3.webm","img/bar/glory_4.webm","img/bar/glory_5.webm",)>> <<video _randomvid >>
<<statchange "energy" -2>>
<<statchange "physical" 1>>
<</if>>
<<return>><<pic "img/gym/gym.jpg" "location">>
<<if visited() == 1>>
<p>You used to exercise regularly during your service and decided to look for a place to lift some weights to get into your routine. You end up in a basement gym that feels like a relic from another era. Rusted weight machines creak ominously with every rep, their padded seats cracked and leaking stuffing. Free weights, mismatched and coated in a thin layer of grime, sit piled in haphazard stacks along the walls. The stale air is thick, tinged with the sharp tang of metal and the sour musk of bodies long gone. A single flickering fluorescent light casts an uneven glow, throwing jagged shadows across faded posters of muscle-bound heroes from decades past. It's a far cry from the polished facilities you once knew, but it's enough.</p><<else>>
<p>The basement gym smells of mildew and stale air. Old, cracked free weights are piled haphazardly, their surfaces coated in grime. A flickering fluorescent light casts uneven shadows, illuminating faded posters of muscle-bound icons from a forgotten era.</p><</if>>
<<nobr>>
<<set _exlabel = $gym_assist == 0 ? "Exercise ($5)" : "Exercise">>
<<linkreplace _exlabel>>
<<if $energy < 3>>You don't have enough energy to workout! Get some rest first.
<<elseif $gym_assist == 0 && $money < 5>><div class="req">Five bucks at the door. The owner doesn't run a charity, and today you don't have it.</div>
<<else>>
<<album "img/gym/training_" 5 "webp">>
<<print either("Feels good!", "Lightweight, baby!", "Great workout today.", "Could be better.", "You feel alive again.")>>
<<statchange "energy" -3>>
<<if $gym_assist == 0>>
<<statchange "money" -5>>
<</if>>
<<if $physical >= 100>>
<p>Your body is as hard as this neighborhood lets it get. The workout keeps the edge, nothing more.</p>
<<else>>
<<statchange "physical" 3>>
<</if>>
<</if>><</linkreplace>><br>
<<if $gym_assist == 0 && $physical >=50>>
<<linkreplace "Gym owner wants to talk with you">>
<p>The gym owner, a grizzled man with a thick mustache and hands like gnarled tree roots, leans against the counter, eyeing you up and down.</p>
<<speech "Gym owner" "You've got the look of someone who knows their way around a weight rack." "default_male">>
<<speech "Gym owner" "Train here for free - on one condition. You help out with the rookies now and then." "default_male">>
<p>You shake hands, and the old man's grip still almost crushes you.</p>
<<set $gym_assist to 1>>
<</linkreplace>><br>
<<elseif $gym_assist == 0>><div class="req">The old gym owner needs someone to help with coaching rookies - you gotta lift harder to make him consider you. This job pays respect and provides free gym access. (50 physical, you have $physical.)</div><</if>>
<<if $gym_assist == 1>>
<<if $day > $gym_rookies_day>>
<<linkreplace "Train rookies">>
<<if $energy >= 2>>
<<set $gym_rookies_day = $day>>
<div class="text"><<set _event=random(1,5)>><<switch _event>>
<<case 1>>You guide a scrawny teenager through his first set of bench presses, your firm encouragement keeping him steady as the bar wobbles in his grip.
<<case 2>>A middle-aged man struggles through push-ups, and you drop down beside him, counting each rep aloud until he finds his rhythm.
<<case 3>>You adjust the stance of a woman at the squat rack, her determined nod showing she's ready to push past her limits.
<<case 4>>A young boxer shadowboxes awkwardly in the corner, and you step in, showing him how to throw a proper jab with power and precision.
<<case 5>>You spot a beginner struggling with a deadlift and step over to correct their form before they hurt themselves.
<</switch>></div>
<<if $physical < 100>><<statchange "physical" 1>><</if>>
<<statchange "energy" -2>>
<<statchange "respect" 5>>
<<else>>You don't have enough energy for that.<</if>>
<</linkreplace>><br>
<<else>>
<div class="req">The rookies got their coaching for today. Tomorrow brings a fresh batch of shaky elbows.</div>
<</if>><</if>>
[[Return|The Hood]]
<</nobr>><<pic "img/general/laptop.jpg" "location">><br>
<p>You plug in a USB drive with your encryption key and boot up the system. Not much fun to do here...</p><br>
<<if $nextday == 0 && $target1 == 4 && $school_unlocked == 0>>
<<linkreplace "You receive a message from Jamal">>
<<speech "Jamal" "Morning, soldier! I'm out here hunting new targets. Bond was low-hanging fruit - the next ones all sit higher up the tree. But I might have a plan. Either way, you gon' need a fake ID - Adriana can hook you up. Drop me a line here when you got it.">><<set $school_unlocked = 1>>
<</linkreplace>><br>
<</if>>
<<if $school_unlocked == 2>><<linkreplace "Text Jamal">>
<p>You drop a message to Jamal informing him that you got the fake ID.</p><br>
<<speech "Jamal" "Good work. You got somewhere safe we can meet?">><br>
<<set _choiceMade = false>> <!-- Flag to track if a choice is made -->
<div id="choice-container">
<<if not _choiceMade>>
<<linkreplace "Bar is as good a place as any">>
<<set _choiceMade = true>>
<<set $school_intro_location = "bar">>
<<set $school_unlocked = 3>>
<<replace "#output">><<speech "Jamal" "Roger that, soldier. Meet me there.">><br>
<</replace>>
<<replace "#choice-container">><</replace>>
<</linkreplace>><br>
<<if $ella_stage>=11>> <<linkreplace "The community library is the safest option">>
<<set _choiceMade = true>>
<<set $school_intro_location = "library">>
<<set $school_unlocked = 3>>
<<replace "#output">><<speech "Jamal" "Roger that, soldier. Meet me there.">><br><</replace>>
<<replace "#choice-container">><</replace>> <!-- Hides both choices -->
<</linkreplace>><<else>><div class="req">If you decide on your future with Ella, you can meet in the library.</div><br><</if>>
<</if>>
</div>
<div id="output"></div>
<</linkreplace>><br>
<</if>>
<<if $ella_mmf_stage == 2>><<if $nextday == 0>>[[Text Jamal about threesome with Ella|EllaJamalThreesome_1]]<br><<else>><div class="req">Wait until tomorrow to text Jamal about Ella.</div><br><</if>><</if>>
<<if $target1 == 3>>[[Corrupt Mrs. Bond|Target1Laptop]]<br><</if>>
<<if $madi_stage >= 3>>[[Open the Madi file|Madi File]]<br><</if>>
<<if setup.madi.jamalDue()>>[[Tell Jamal about Madi and the wall|Madi Jamal]]<br><</if>>
<<if setup.madi.williamDue()>>[[Text William about a night across the wall|Madi William]]<br><</if>>
<<if setup.madi.epilogueDue()>>[[Read Jamal's message about Madi|Madi Epilogue]]<br><</if>>
<<if $database_access == 1>><div class="req">Pollock's card and security key are in your pocket, unused. Jamal gets a name, not a guess - get the database read at the school first.</div><br>
<<elseif $database_access == 2>>[[Report Pollock's access and the name to Jamal|Jamal Access Report]]<br><</if>>
[[Close the laptop|The hideout]]Support me on <a href="https://patreon.com/TimJRebel" target="_blank">[Patreon]</a> or <a href="https://subscribestar.adult/timjrebel" target="_blank">[SubscribeStar]</a>
Visit my website to check out my other games <a href="https://timjrebel.neocities.org/" target="_blank">[TimJRebel]</a>
Leave a review and subscribe to F95zone <a href="https://f95zone.to/threads/justice-is-black-v0-1-timjrebel.241575/" target="_blank">[thread]</a>
<<return>><<pic "img/general/job_search.png" "location">>
<div class="text"><<if visited() == 1>>You need money - something that wasn't a problem for you during all your military years. You ask around and end up on the outskirts near the highway exit, where a line of weary men desperate for jobs wait for an occasional pickup truck looking for some workers. In the current economy, this is your best chance at making some buck.
<<else>>No matter when you come here, there is always someone waiting for the opportunity to exchange hard manual labour for some cash.<</if>></div>
<<nobr>>
/* The day's board is rolled once and remembered ($jobs_day), so leaving and
coming back can't be used to reroll which trucks showed up. */
<<if $jobs_day != $day>>
<<set $jobs_day = $day>>
/* Regulars (rep 5+) get picked off the line first - the foreman knows your face */
<<if $construction_rep >= 5>><<set _constructionOdds = 80>><<else>><<set _constructionOdds = 60>><</if>>
<<if random(1, 100) <= _constructionOdds>><<set $construction_open = 1>><<else>><<set $construction_open = 0>><</if>>
<<if random(1, 100) <= 60>><<set $warehouse_open = 1>><<else>><<set $warehouse_open = 0>><</if>>
<</if>>
<<set _constructionAvailable = $construction_open == 1 && $day >= $construction_banned>>
<<set _warehouseAvailable = $warehouse_open == 1 && $day >= $warehouse_banned>>
<<if $day < $construction_banned>>The construction trucks slow down, see your face, and keep rolling. The client's word travels faster than you do.<br><</if>>
<<if $day < $warehouse_banned>>The warehouse van doesn't stop for you - your badge photo is taped inside their windshield now.<br><</if>>
<<if $energy < 5>>
<div class="req">You don't have enough energy to work! Get some rest first.</div>
<<elseif _constructionAvailable or _warehouseAvailable>>
Choose your job:<br>
<<if _constructionAvailable>>
Nearby construction site needs some extra hands today.<<if $construction_rep >= 5>> The foreman points at you before the truck even stops.<</if>><br>
[[Go work on construction site|Construction work]]<br>
<</if>>
<<if _warehouseAvailable>>
Marketplace warehouse looks for cheap labour.<br>
[[Go work in warehouse|Warehouse work]]<br>
<</if>>
<<else>>
<div class="req">No opportunity appeared today. The trucks came and went without stopping, and the line thins out around you.</div>
<</if>>
<br>
[[Go back|The Hood]]
<</nobr>><<if setup.checkCheatCode($code)>>
<<run setup.unlockCheats()>>
<<set $code = "">>
<p>The cheat menu is unlocked.</p>
[[Open the cheat menu|Cheat]]<br>
<<else>>
Wrong code. Try [[again|Cheat]]?<br>
<</if>>
[[Return to the game|The hideout]]Manage your operations
Your second in command, helping you with managing the org
Regular ops:
Heist (money+, heat+)
Assault?
After accepting crime jobs:
Manage prostitutes
Drugs
Unique ops:
Main missions for NTRing the spokesmen of the state<<if $school_intro_location == "bar">>
<p>You find Jamal in a corner booth, back to the wall. He seems a bit anxious.</p>
<<speech "Jamal" "Meeting where you drink is lazy tradecraft. Once, fine. But I don't care how safe this place feel - next time, you better have alternatives.">>
<<elseif $school_intro_location == "library" && $ella_mmf_stage >=0>>
<<speech "Jamal" "Nigga, you one lucky bastard - what a smoking-hot babe you got here!" "jamal_happy">>
<<set _choiceMade = false>><div id="choice-container"><<if not _choiceMade>>
<<linkreplace "Encourage">><<set _choiceMade = true>>
<<replace "#output">><<speech "You" "Haha, have you got a chance to check out her ass?">>
Mental image appears in your mind when you speak about Ella:
<<pic "img/ella/jamal/encourage.jpg">>
<<speech "Jamal" "Oh yeah, bro. Pretty good for a white girl.">>
<<speech "You" "That's what I said!">>
<<set $ella_mmf_stage = 1>>
<</replace>> <<replace "#choice-container">><</replace>> <</linkreplace>><br>
<<linkreplace "Discourage">> <<set _choiceMade = true>>
<<replace "#output">><<speech "You" "Don't talk about her like that, OK?">>
<<speech "Jamal" "Aight, brother. Say no more.">>
<</replace>>
<<replace "#choice-container">><</replace>><</linkreplace>><</if>>
</div><div id="output"></div><</if>>
<<speech "Jamal" "Anyway...">>
<p>First, you show Jamal your new ID.</p>
<<speech "Jamal" "Well hello, Mr. $player_surame! I got a job just for an unfortunate motherfucker like you. How you feel about working with kids?">>
<<speech "You" "WHAT the fuck?">>
<<speech "Jamal" "Not literal kids, man - rich kids. Grown-ass brats. Eighteen-plus high schoolers from money.">>
<<speech "You" "Daughters again.">>
<<speech "Jamal" "Daughters again. That's the play that put us in business, brother - one daughter, one bedroom, and Renner was done by breakfast. A wife wounds a man. His little girl finish him.">>
<<speech "You""Can't say I'm surprised. So you what, you want me to become a teacher of some sort and seduce my student?">>
<<speech "Jamal" "Bro, why not go for principal while you at it? You forgot what world you living in? You think rich WASPs gon' let a black man tutor their kids?">>
<<speech "You" "Not even PE?">>
<<speech "Jamal" "Not even PE. You gon' be a janitor.">>
<p>You say nothing, but Jamal can read your face.</p>
<<speech "Jamal" "Listen, brother, this gon' be rough. Hard, dirty work, and them spoiled brats gon' hate you and clown you every day. But one - ain't no other way inside that school. And two - when the time come to black some daughters, the hit gon' land even harder.">>
<p>You sigh.</p>
<<speech "You" "You didn't tell me anything about the school and who you are looking for.">>
<p>Jamal explains his plan from the beginning. It starts with his search through the personnel of the prison where your brother is held. Turning the man inside the prison perimeter to your side would be crucial - from communicating or smuggling items to planning escape. However, this personal information is highly safeguarded. The best lead Jamal found is that the 18-year-old daughter of one of the wardens is in her final year in a prestigious high school - Thatcher-Ellison School of Excellence. However, he doesn't even have her name or photo.</p>
<<speech "Jamal" "But when I saw what school she going to, the stars aligned.">>
<p>The facility's principal, Mrs. Shannon Pollock, was long on the radars because of electoral fraud. The high school serves as a polling station during the election period, and the school principal is also an election judge, overseeing the voting at her precinct. During her time, Mrs. Pollock obstructed the work of independent poll watchers, interfered with counting, and produced results vastly different from the exit polls.</p>
<<linkreplace "Shannon Pollock? That name doesn't ring any bells">><br>
<<speech "Jamal" "Why would it? But since you asking, here's a picture of her:">>
<<pic "img/school/syren/new_intro.jpg">>
<</linkreplace>>
<<speech "Jamal" "School sits in a rich neighborhood, but the district covers a lot of not-so-fortunate parts of the city too. All them votes, thrown away.">>
<p>Criminal prosecution was dismissed when the current ruling party regime was established - thanks to the many school principals nationwide who have chosen personal gain over public duty.</p>
<<speech "Jamal" "So we hit two birds with one stone. You punish this bitch for what she done, and from her you get the name of the girl who leads us to your brother.">>
<<speech "You" "That's... a lot to unfold.">>
<<speech "Jamal" "I bet. Just start working there, get to know people, build trust. Ain't gon' be no set plan on this one - you gon' have to read the room and adapt.">>
<<speech "You" "So you're telling me to fuck around and find out.">>
<<speech "Jamal" "Exactly!" "jamal_happy">>
<p>You can now work in a high school. Take a bus there and look for opportunities.</p>
<<set $school_unlocked = 4>>
[[Leave|The Hood]]<<pic "img/general/community_stage4.jpg" "location">>
<<speech "Jamal" "Hey, nice work you done here. Locals been praising it - a place to study, hold meetings, leave the kids after school. A neighborhood got a better chance surviving when something holds the people together.">>
<<speech "You" "This was not possible without Ella - I just fixed several things here and there, but she is doing the actual work here.">>
<p>Speaking of that, should you introduce Jamal to Ella?</p>
<<set _choiceMade = false>> <!-- Flag to track if a choice is made -->
<div id="choice-container"><<if not _choiceMade>> <<linkreplace "Sure!"><<set _choiceMade = true>><<replace "#output">><p>Ella is busy creating event schedule for the upcoming month. You give her a kiss and then introduce her to Jamal:</p>
<<speech "You" "Ella, this is Jamal, we... we work together.">>
<<speech "Ella" "A colleague, huh? Nice to meet you.">>
<<pic "img/ella/jamal/introduction.jpg">>
<<if $savannah_approach == 2>>
<<speech "Ella" "Wait... I recognize you. You DO work together! Oh shit, you double-teamed that bimbo on tape!">>
<<speech "Jamal" "Shh. Let's keep it between us, ok?">>
<<speech "Ella" "I can keep secrets. Tell me, what crimes should I commit for you two appear at my doorstep? I'm joking, of course!">>
<<speech "Jamal" "Heh, maybe we run some crime prevention events... if everybody agrees.">>
<<speech "You" "Maybe... But for now, we all have work to do, right? See you soon, babe.">>
<<set $ella_mmf_stage = 1>>
<<else>>
<<speech "Jamal" "Nice to meet you too. What you're doing here is vital for the community - but you probably know that already.">>
<<speech "Ella" "Thanks. If you want to help, we always need volunteers.">>
<<speech "Jamal" "I'll keep that in mind!" "jamal_happy">>
<<set $ella_mmf_stage = 0>>
<</if>>
[[You find a quiet place to talk.|SchoolIntro]]
<</replace>><<replace "#choice-container">><</replace>>
<</linkreplace>>
<<linkreplace "Better not.">>
<<set _choiceMade = true>>
<<replace "#output">>[[You find a quiet place to talk.|SchoolIntro]] <</replace>>
<<replace "#choice-container">><</replace>> <!-- Hides both choices -->
<</linkreplace>><br><</if>>
</div>
<div id="output"></div><<if $physical < 0>>
<<goto "Game over">><<else>>
<<if random(1, 100) <= 95>>
<p>You lie on the uncomfortable mattress and quickly fall asleep - a good habit you picked up in the military. Your energy is restored.</p><br>
<<set $energy = 10>>
<<else>>
<<pic "img/general/ptsd.webp">><br>
<p>The dream comes in flashes, fragmented and disjointed. Sand and smoke fill the air, choking your lungs as gunfire crackles like distant fireworks. You're running, boots sinking into uneven ground, the weight of your gear dragging you down. A face - young, terrified - appears in front of you for a split second before disappearing in a deafening explosion. The screams are muted, swallowed by a ringing in your ears that grows louder until it's all you can hear. You wake with a start, drenched in sweat, the echoes of the battlefield still pulsing in your chest.</p>
<div class="req">Your energy for the day is halved.</div><br>
<<set $energy = 5>>
<</if>>
<</if>>
<<newday>>
<<schoolpay>>
<<if _rent_due>>
<p>An envelope has been slipped under the door overnight - empty, with a week's date pencilled on it. The hood keeps this room off every list - the bolt on the door, the neighbors incurious. It isn't free.</p><br>
<<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
<<if $money >= 20>>
<<linkreplace "Put a twenty inside ($20)">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>You fold a twenty into the envelope and leave it where you found it. By the time you come back down the stairs it's gone, and nobody says a word about it - which is the whole point of paying.</p><br>
<<statchange "money" -20>>
<br>
[[Wake up|The hideout]]<</replace>>
<<replace "#choice-container">><</replace>>
<</linkreplace>><br>
<</if>>
<<linkreplace "Leave the envelope empty">>
<<set _choiceMade = true>>
<<replace "#output">>
<<if $money >= 20>>
<p>You have the twenty. It stays in your pocket - you have other plans for it. Nobody knocks. But by evening the corner store owner takes your money without looking up, and the kid on the step who used to nod turns his whole body away as you pass. Somebody spits on the stairwell landing before you get to it. Nobody down here is confused about whether you had the money.</p><br>
<<statchange "respect" -20>>
<<else>>
<p>The envelope stays empty this week - you don't have the twenty to put in it. Nobody knocks about it. But by evening the corner store owner doesn't nod back, and the kid on the step looks through you. Word travels fast about a man who takes shelter and doesn't put in.</p><br>
<<statchange "respect" -10>>
<</if>>
<br>
[[Wake up|The hideout]]<</replace>>
<<replace "#choice-container">><</replace>>
<</linkreplace>>
<</if>>
</div>
<div id="output"></div>
<<else>>
<br>
[[Wake up|The hideout]]
<</if>><<pic "img/general/logo.jpg">>
<div class="text">An ex-special forces operative comes home to find his country remade into a far-right authoritarian nightmare. When the regime throws his brother in a cell, he starts a war of his own - one fought in bedrooms, bringing down the wives and daughters of the men who help run it.
Also, he's black.</div>
<div class="text">DISCLAIMER:
This game contains heavy pornographic content, all characters are 18 years old or older. And so should be you to play it.
All encounters are consensual even in this setting. Consent is sexy.</div>
<div class="text">DISCLAIMER II:
This game runs on the deeply controversial premise that racism and fascism are, in fact, bad. If you can't handle that, this isn't your game.</div>
If you like the game, consider supporting it: https://patreon.com/TimJRebel. Benefits include cheats and eary access to new updates.
Shoutout to the glorious Blaze members: Lesly van den Brink, xLikemyDaddy.
Special thanks to Madarahyuuga.
[[Start|Character Setup]]<<nobr>><<if $gallery_view>><div id="gallery-notice"><span class="gallery-notice-title">Gallery replay</span><span class="gallery-notice-sub">Nothing you do here is saved</span></div><<else>><div id="stat-panel">
<div class="stat"><span class="stat-label">Money</span><span class="stat-value money"><<print "$" + $money>></span></div>
<div class="stat"><span class="stat-label">Energy</span><span class="stat-value">$energy</span></div>
<div class="stat-bar"><div class="stat-bar-fill energy" @style="'width:' + Math.max(0, Math.min(100, $energy * 10)) + '%'"></div></div>
<div class="stat"><span class="stat-label">Physical</span><span class="stat-value">$physical</span></div>
<div class="stat"><span class="stat-label">Respect</span><span class="stat-value">$respect</span></div>
<<if $target1 >= 4>><div class="stat"><span class="stat-label">Knowledge</span><span class="stat-value">$knowledge</span></div><</if>>
<<if $heat > 0>>
<div class="stat"><span class="stat-label">Heat</span><span class="stat-value">$heat</span></div>
<div class="stat-bar"><div @class="'stat-bar-fill ' + ($heat < 25 ? 'heat-low' : $heat < 60 ? 'heat-mid' : 'heat-high')" @style="'width:' + Math.min(100, $heat) + '%'"></div></div>
<</if>>
<div class="stat day"><span class="stat-label">Day $day</span></div>
</div>
<</if>>
<button id="music-mute" type="button" title="Toggle background music" @aria-pressed="String(!settings.musicOn)"><span class="music-icon"><<print settings.musicOn ? "🔊" : "🔇">></span><span class="music-label"><<print settings.musicOn ? "Mute music" : "Unmute music">></span></button><</nobr>><<if $gallery_view>><<link "Back to the Gallery">><<run setup.gallery.exit()>><</link>>
<<elseif visited("The hideout")>>[[Return to the hideout|The hideout]]
[[Walkthrough]]
[[Gallery]]
[[Cheat]]
[[Links]]<</if>>Version: $version<<album "img/general/library_" 2 "jpg" "story">>
<<statchange "knowledge" 3>>
<<statchange "energy" -5>>
[[Return|Community Center]]<<nobr>><<if $heat >= 75>><<goto "The Hood">><</if>><</nobr>>
<<pic "img/general/bus_stop.jpg" "location">><br>
<p>It's a miracle that public transport is still available in this god-forsaken place. Uncomfortable, infrequent, but functional. The bus is the easy part. The blockpost is not.</p><br>
<<if $school_unlocked == 4>>
<p>You have papers now. $player_name $player_surame, custodial staff, employed on the far side of the wall. The card goes up at chest height with everyone else's in the shift queue and the boom comes up without a second look.</p><br>
<p>The card only covers the school run, so anywhere else still gets you read. But they read you faster now. A man they've waved through fifty mornings is a man they've stopped being curious about.</p><br>
<<else>>
<p>No work pass means no labor queue. You get the other one, the one that moves when the man at the boom decides it moves. He goes through your bag, asks the same three questions until the answers stop matching, and holds a flashlight on your face longer than he needs to. He takes whatever he finds and lets you through anyway, because keeping you in was never the job. But the notebook comes out every time.</p><br>
<</if>>
<<set _hackerHeat = $school_unlocked == 4 ? 2 : 3>>
<<if $energy >=2 && $money>=2>><<link `"Take the bus to the hacker: $2, 2 energy, " + _hackerHeat + " heat"` "Hacker">>
<<statchange "money" -2>>
<<statchange "energy" -2>>
<<statchange "heat" _hackerHeat>>
<</link>><<else>>You need 2 energy and 2 money for a bus ride.<</if>><br>
<<if $school_unlocked == 4>><<if $energy >=2 && $money>=2>><<link "Take the bus to the Thatcher-Ellison School of Excellence: $2, 2 energy, 1 heat" "School">>
<<statchange "money" -2>>
<<statchange "energy" -2>>
<<statchange "heat" 1>>
<</link>><<else>>You need 2 energy and 2 money for a bus ride.<</if>><br>
<</if>>
/* CUT: brothel arc (Dre's sedan) is not going into the next release.
<<if $escort_car == 1 && $day >= $car_suspended>>
<p>Dre's gray sedan idles across from the bus stop where you left it. The queue at the blockpost watches you walk past them to a car with your kind of plates. Nobody says anything. The wall has a hierarchy even on the way out.</p>
<<if $energy >= 1>><<link "Drive to the hacker: 1 energy" "Hacker">>
<<statchange "energy" -1>>
<</link>>
<<if $school_unlocked == 4>><<link "Drive to the Thatcher-Ellison School of Excellence: 1 energy" "School">>
<<statchange "energy" -1>>
<</link>><</if>>
<<else>>Even driving takes something out of you. (1 energy needed)<</if>>
<</if>>
*/
[[Go back to the hood|The Hood]]<<nobr>><<if $laying_low > 0>><<goto "Hood Locked Down">><</if>><</nobr>>
<<album "img/general/hood_" 2 "jpg" "location">>
<<if visited() == 1>>
<p>The neighborhood is a desolate grid of cracked asphalt and crumbling concrete, where rusted streetlights flicker weakly, casting pale pools of light that do little to dispel the gloom. There is exactly one road in, and it wears a militia blockpost like a tourniquet: sandbags, wire, a queue of residents holding work passes out for inspection on their way to jobs the city keeps on its side of the wall. Boarded-up storefronts with faded graffiti line the streets, windows broken where they aren't boarded. The air smells of oil, damp brick, and something faintly metallic like blood long dried. The few people outside move quickly, heads down, avoiding eye contact; you expected this to be a black hood, but no, it's just a place where poor people live. Very poor.</p>
<p>And yet - walled off, written off, raided at dawn whenever a precinct needs its numbers - this is the one place in the country where nobody will come looking for you politely. The police enter in force or not at all. Between their visits, everything forbidden out there quietly lives in here. The wall keeps the neighborhood in. It also, you're beginning to understand, keeps you hidden.</p>
<<else>><p>The neighborhood is still as ruined as it was at your first visit. Cracked asphalt, flickering streetlights, the blockpost queue inching forward at the end of the main road; most of the windows are boarded up, with the exception of a neon-green bar down the street and the distant thump of Club Babylon, where the outsiders go slumming. The few people outside move quickly, heads down, avoiding eye contact.</p><</if>>
<div class="text"><<nobr>><<set _event=random(1,26)>><<switch _event>>
<<case 1>>
A police car cruises slowly down the street, its engine barely audible, as officers inside scan the sidewalks with cold, practiced stares. You dash into the side alley before you're seen.
<<case 2>>
A pickup truck packed with Oath Boys roars by - surplus camo, homemade armbands, a flag with their torch insignia snapping over the cab - shouts and laughter cutting through the tense quiet like a blade. Several shots are made, hopefully in the air.
<<case 3>>
A beggar sits slumped against a wall, clutching a faded cardboard sign that reads, "Will work for food," his eyes avoiding yours.
<<case 4>>
Overhead, a surveillance drone hovers silently, its blinking red light tracking every move below.
<<case 5>>
A small group of teenagers spray-paints over hateful graffiti, glancing nervously at every passing shadow. You nod to them.
<<case 6>>
A stray dog sniffs at a trash can, its ribs visible under matted fur, before darting off at the sound of a distant shout.
<<case 7>>
A man in a stained coat leans against a lamppost, lighting a cigarette with trembling hands, his eyes darting to every passing vehicle.
<<case 8>>
An Oath Boys checkpoint materializes at the corner, a makeshift barricade of sandbags and armed men waving cars to a stop for "random inspections." Simple racketeering, nothing serious - the iron-cross patches are just the uniform of the toll booth.
<<case 9>>
Two neighbors argue in hushed tones near a boarded-up store; their voices tense, but they fall silent as a patrol car approaches.
<<case 10>>
A drunk stumbles out of the bar, swearing loudly at no one in particular, his shouts echoing eerily through the empty street.
<<case 11>>
A single flickering streetlight goes out completely, leaving half the block in shadows as footsteps echo ominously from somewhere unseen.
<<case 12>>
Dawn-raid aftermath: three doors on the block hang off their hinges, and neighbors sweep glass off the sidewalk in silence. Nobody asks who was taken. Asking is how you get on the next list.
<<case 13>>
Shift change at the blockpost. The queue of residents with work passes stretches half a block, exact and unmoving, everyone holding their papers at the same practiced angle. On the other lane, a catering van for Club Babylon is waved through without stopping.
<<case 14>>
An Oath Boys truck idles in the middle of the street with its engine running, going nowhere, doing nothing. That's the point. Everyone on the block does their errands around it like water around a stone.
<<case 15>>
Two kids are playing on a rooftop - except they're not playing. One watches the blockpost, one watches the avenue, and when a cruiser turns in, a bicycle bell rings three times somewhere below and the street quietly rearranges itself.
<<case 16>>
A food line has formed outside the community center - folding tables, donated cans, someone's grandmother ladling soup. Mutual aid is technically "unregistered assembly" now, so a teenager stands at the corner, watching for uniforms.
<<case 17>>
A convoy of black sedans glides through toward Club Babylon, windows up, waved past the checkpoint that made a nurse empty her handbag this morning. Inside the cars, the outside world is coming to visit the zoo.
<<default>>
It's quiet here today. Nothing unusual happens.
<</switch>><</nobr>></div>
<<heatpatrol>>
<<hooddilemma>>
<<nobr>>
<<if $community_quest > 0>>[[Library|Community Center]]<br><</if>>
[[Gym]]<br>
[[Bar]]<br>
/* ARCHIVED: the nightclub is not going into the next release.
[[Nightclub]]<br>
*/
[[Look for work]]<br>
/* CUT: street corner + brothel are not going into the next release.
<<if $respect >= 10>><<if $heat < 50>>[[Street corner|Street Corner]] <span class="statchange">(the corner is working tonight)</span><br><<else>><div class="req">The corner is empty - with the heat you're carrying, everyone who sees you coming lays low.</div><</if>><</if>>
<<if $brothel_unlocked == 1>><<if $heat < 60>>[[The basement door|Brothel]] <span class="statchange">(under the dead laundromat)</span><br><<else>><div class="req">Two knocks at the basement door get you nothing. With your heat, Dre's peephole stays dark.</div><</if>><</if>>
*/
<<if $ella_end_quest == 1 && $ella_end_car == 0>><<linkreplace "[Ella]Find a car">>You need a car that can reliably cover long distances and be inconspicuous enough not to get much attention. You mentally note one well-maintained SUV that is always in the parking near the gym; when the time comes, you will hijack it. <<set $ella_end_car = 1>><</linkreplace>><br><</if>>
<<if $william_stage == 3 && $day >= $william_next_day>>[[The dinner with William and Agatha is tonight|William Dinner]]<br><</if>>
<<if $william_stage == 5 && $day >= $william_next_day>>[[Agatha's downtown suite is expecting you two|Swap Night]]<br><<elseif $william_stage == 5>><div class="req">Agatha's suite is booked for tomorrow.</div><</if>>
/* Madi's group night (Madi Wall): she crosses at the blockpost once the print
has played and its day has come, and Jamal has to know first. */
<<if $madi_approach == 2 && $madi_stage == 6 && setup.madi.hasSeen("print") && $day >= $madi_next_day>>
<<if setup.madi.jamalDue()>><div class="req">Madi crosses at the blockpost at nine tonight, but Jamal doesn't know yet. Tell him from the hideout laptop first.</div>
<<elseif setup.madi.roofMen().length < 2>><div class="req">Madi crosses at the blockpost at nine tonight, and she asked for more than you and Jamal: <<if $incel_path == 2>>invite the boys in room 021<<if $william_stage == 6>>, or <</if>><</if>><<if $william_stage == 6>>text William from the hideout laptop<</if>>.</div>
<<elseif $energy >= 4>>[[Meet Madi at the blockpost at nine (4 energy)|Madi Wall]]<br>
<<else>><div class="req">Madi crosses at the blockpost at nine tonight, and you need 4 energy for it.</div><</if>>
<</if>>
<<if $target1 > 0>><<if $heat < 75>>[[Take the bus]]<br><<else>><div class="req">The blockpost is out of the question. With the heat on your name, handing your papers to a militiaman at the only road out is the same as turning yourself in - you're not leaving the hood until it cools down.</div><br><</if>><</if>>
/* CUT: brothel arc (Dre's sedan) is not going into the next release.
<<if $escort_car == 1>><<if $day >= $car_suspended>>[[Drive out of the hood|Outside the Wall]] <span class="statchange">(Dre's gray sedan - the blockpost knows it)</span><br><<else>><div class="req">Dre still has the keys. The sedan sits behind the laundromat until day $car_suspended, and you walk like everybody else.</div><</if>><</if>>
*/
<br>[[Go to hideout|The hideout]]
<</nobr>><<pic "img/general/hideout.jpg" "location">>
<<nobr>>
<p>Your safe house, a hideout from the outside world - only Jamal knows you are here.</p> <<if visited() == 1>><div class="text">It is a grim, claustrophobic room above a run-down corner store. Viewed from above, it's a bare rectangle of cracked plaster walls and peeling paint. A single, grimy window offers a view of the alley below, its blinds permanently tilted at odd angles.
A thin mattress lies on the floor, pushed against one corner, covered by a worn, mismatched blanket. Besides this, the only furniture is a metal chair and a rickety folding table. The table holds a cheap lamp with a flickering bulb and a scattering of odd items - a half-empty water bottle, a pack of smokes, a lighter.
The door is reinforced with a thick bolt lock, the kind that screams desperation over security. In another corner, a small pile of canned food and a dented electric kettle sit on the floor next to an outlet with exposed wiring. The faint hum of the city leaks through the walls, a reminder that the world outside is no safer than this cramped refuge.</div><div class="req">You have a safe place to live - now it's time to explore. Look for ways to earn some money and gain the respect of the people of this neighborhood.</div>
<<else>>
<<linkreplace "Look around again">><div class="text">It is a grim, claustrophobic room above a run-down corner store. Viewed from above, it's a bare rectangle of cracked plaster walls and peeling paint. A single, grimy window offers a view of the alley below, its blinds permanently tilted at odd angles.
A thin mattress lies on the floor, pushed against one corner, covered by a worn, mismatched blanket. Besides this, the only furniture is a metal chair and a rickety folding table. The table holds a cheap lamp with a flickering bulb and a scattering of odd items - a half-empty water bottle, a pack of smokes, a lighter.
The door is reinforced with a thick bolt lock, the kind that screams desperation over security. In another corner, a small pile of canned food and a dented electric kettle sit on the floor next to an outlet with exposed wiring. The faint hum of the city leaks through the walls, a reminder that the world outside is no safer than this cramped refuge.</div><</linkreplace>><</if>>
<<rentinfo>>
[[Sleep]]<br>
<<if $eat_today == 0 >>
<<linkreplace "Buy some healthy food($3)">>
<<if $money >= 3>>
<<statchange "energy" 2>>
<<statchange "money" -3>>
<<statchange "physical" 1>>
<<set $eat_today to 1>>
<p>You are able to sustain yourself, but from time to time you need to get your hands on fresh vegetables and fruits to stay healthy.</p>
<<else>>
<p>You don't have enough money for fresh food. Don't worry, you can survive on cheap cans and ramens no problem.</p>
<</if>><</linkreplace>><br><</if>>
<<if $heat >= 25 && $energy > 0>>
<<linkreplace "Lay low for the day">>
<p>You kill the lights, bolt the door, and let the street forget your face for a day. You clean your one pot twice, count ceiling cracks, listen to the patrol rhythms through the wall. By evening the ache in your ribs has backed off a little. Doing nothing is its own kind of work.</p>
<<statchange "heat" -10>>
<<statchange "physical" 1>>
<<set $energy = 0>>
<div class="req">The day is spent. Better get some sleep.</div>
<</linkreplace>><br>
<</if>>
<br>
[[Go out|The Hood]]
<br>
<<if $respect >= 50 && $target1 == 0>>
<p>A manila folder is on the floor near the door - thin enough to slip over the threshold.</p> <<linkreplace "Open it">>
<div class="text"><span style="font-style: italic;">Burn after reading<br>
Brother,<br>
Been a minute. I ain't gon' apologize for it, but I figure you been sitting up there wondering if I was dead in a ditch somewhere. I wasn't. Most days.<br>
I been hearing your name, though. That's the thing about a name, it travel whether you want it to or not, and yours been walking around that neighborhood without you. <br>
So all them days you was hauling somebody's groceries and thinking it wasn't the war - that was the war, young blood. Now it's paid off, and I can put real work in your hands.<br>
<<pic "img/savannah/husband.jpg">><br>
That's Sergeant Nikolas Bond. Low rank, and low rank don't usually make my list. He made it for what he do in the basement of the city police department. Iraq vet. Came home and found out the one thing he good at pays over here too. They call it advanced interrogation. He gets confessions. Whether the man giving one done anything, that ain't never been the point.<br>
Here's the part I sat on for two days before I wrote it down. This the sadist who had your brother before they moved him to the state facility. Ain't a single photo of Jeremy released to the press since. I figure they waiting on him to heal.<br>
First, chill. Sit with it a second, then think on this instead: you put a bullet in that man, he gets a folded flag and a wall of speeches about the animals who did it. But you take his wife, and every man in his precinct look at him different for the rest of his life. Meet Mrs. Bond. Trophy wife. He think them bombshell looks make him bigger than he is, which mean she the wall holding the whole man up. Pull her out, he come down.<br>
<<pic "img/savannah/wife_potrait.jpg">><br>
You remember what we pulled off with Renner. One night, one camera, and a police chief finished for good. That was luck, brother, and I been chewing on that ever since. Luck ain't a strategy. So I spent all this quiet tryna build it into something we can aim on purpose, and I think I found the way.<br>
Name's Adriana. Hacker for hire, young, mercenary, and very, very good. She paid, she deniable, and she ain't got no cause but her own, which is exactly why I trust her more than I'd trust a believer. While you was out earning your name, she been living inside Mrs. Bond's devices, softening that bored housewife up until she almost ready to go black.<br>
This the first one we do on purpose. It land the way it landed in Renner's bedroom, it won't be the last. Adriana gon' give you the details. You also gon' need a second payment for her service, $100, and she'll haggle if you got the stomach for it. Her address on the card. Take the bus.<br>
One thing, since you new to how it work out here. You ain't got a work pass, so you ain't getting the shift queue at the blockpost. You gon' get the slow lane, and the slow lane cost you. Let 'em take what they find. Answer what they ask, twice if they ask twice. A man with nothing to hide ain't interesting, and interesting is the only thing out there that can kill you. Papers come later, brother. That's a whole other conversation.<br>
Good luck, soldier.</span></div><<set $target1 to 1>><</linkreplace>>
<<elseif $target1 == 0>><div class="req">Jamal asked to gain respect, 50 would be enough</div><</if>>
<<if $target1 >= 3>>
<br><<if $nextday == 0 && $target1 == 4 && $school_unlocked == 0>>[[(NEW MESSAGE) Use laptop|Laptop]]
<<elseif $database_access == 2 || setup.madi.jamalDue()>>[[(REPORT DUE) Use laptop|Laptop]]
<<elseif setup.madi.epilogueDue()>>[[(NEW MESSAGE) Use laptop|Laptop]]
<<else>>[[Use laptop|Laptop]]<</if>>
<</if>>
<<if $target1 == 3 && $savannah_approach == 1>>
<br>[[Fuck the police(man's wife)|Target1]]
<<elseif $target1 == 3 && $savannah_approach == 2>>
<br>[[Fuck the police(man's wife)|Target1_2]]
<</if>>
<</nobr>>/* Save-migration gate: runs on every passage render, so an old save is caught
the moment it's loaded, wherever it was saved (not just on visiting the Hood).
The Update passage itself is excluded to avoid a redirect loop. */
<<if passage() isnot "Update">>
<<if $version isnot "1.4">>
<<goto "Update">>
<<else>>
/* Post-1.4 patch (empty for now). A save already stamped 1.4 never enters
Update, so state added to StoryInit after 1.4 shipped is filled in here,
silently and before the passage body renders - one ndef-guarded line per
variable. At the next version bump, move this list into a
$version == "1.4" step in Update and point the gate above at the new
version. */
<</if>>
<</if>>Savefile from previous version found.<br>
<<if $version == "0.2">>
/* 0.2 -> 0.3 (both were public releases) */
<<set $school_unlocked = 0>>
<<set $school_intro_location = "">>
<<set $ella_mmf_stage = -1>>
<<set $hacker_ff_level = 0>>
<<set $hacker_gh_stage = 0>>
<<set $version = "0.3">>
<</if>>
<<if $version == "0.3">>
/* Ella arc renumbering (happened in the 0.4 dev build): three new beats were
inserted after the old stage 2 trigger point. Only pre-renumber saves shift. */
<<if $ella_stage >= 3>><<set $ella_stage += 3>><</if>>
<</if>>
<<if $version isnot "1.1">>
/* 0.3 -> 1.1: everything the 0.4-0.8 dev builds introduced, collapsed into one
step. Every block is ndef-guarded on its sentinel variable, so a mid-chain
dev save (0.4-0.8) also lands here safely - only its missing blocks get
initialized, everything it already tracks is left untouched. */
/* Backfills for early-0.3 saves that predate the Version4 vars */
<<if ndef $school_time>>
<<set $school_time = "morning">>
<<set $school_rep = 0>>
<<set $closet_unlocked = false>>
<<set $incel_club = false>>
<<set $player_name = "">>
<<set $player_surame = "">>
<<set $code = "">>
<</if>>
<<if ndef $heat>><<set $heat = 0>><</if>>
<<if ndef $manpower>><<set $manpower = 1>><</if>>
/* Version5: day counter, lay-low lockdown, Ella day-gating, street dilemmas */
<<if ndef $day>>
<<set $day = 1>>
<<set $laying_low = 0>>
<<set $ella_next_day = 0>>
<<set $last_dilemma_day = 0>>
<</if>>
/* Luna Star arc tracker (Version5, but missing from the old 0.3->0.4 step) */
<<if ndef $lawyer_stage>><<set $lawyer_stage = 0>><</if>>
/* Version6: the school arc */
<<if ndef $school_job>>
<<set $school_job = 0>>
<<set $detention_job = false>>
<<set $school_tasks_done = 0>>
<<set $school_pay_day = 0>>
<<set $last_school_event_day = 0>>
<<set $pollock_stage = 0>>
<<set $pollock_leverage = 0>>
<<set $amber_stage = 0>>
<<set $amber_next_day = 0>>
<<set $incel_stage = 0>>
<<set $detention_day = 0>>
<<set $gunn_trust = 0>>
<<set $gunn_case = 0>>
<<set $albright_heat = 0>>
<<set $master_key = 0>>
<<set $closet_bed = false>>
<</if>>
/* Version7: money sinks & heat management */
<<if ndef $scrub_next_day>>
<<set $scrub_next_day = 0>>
<<set $rent_day = 0>>
<<set $rent_waived = false>>
<</if>>
/* Version8: warehouse/construction reworks */
<<if ndef $warehouse_streak>>
<<set $warehouse_streak = 0>>
<<set $warehouse_last_day = 0>>
<<set $warehouse_banned = 0>>
<<set $warehouse_manager_stage = 0>>
<<set $warehouse_manager_favor = 0>>
<<set $construction_banned = 0>>
<<set $construction_wife = 0>>
<</if>>
/* Version9: the bar rework */
<<if ndef $bar_last_day>>
<<set $bar_last_day = 0>>
<<set $bartender_stage = 0>>
<<set $bar_dice_day = 0>>
<</if>>
/* Version10: library rework (folded in from the old <<libraryinit>> guard) */
<<if ndef $library_find>>
<<set $library_materials = 0>>
<<set $library_find = 0>>
<<set $last_library_event_day = 0>>
<<set $library_standoff = 0>>
<<set $backroom_unlocked = 0>>
<<set $reading_hour_day = 0>>
<</if>>
/* Version10 daily-limit trackers (were never in libraryinit either) */
<<if ndef $gym_rookies_day>><<set $gym_rookies_day = 0>><</if>>
<<if ndef $warehouse_manager_day>><<set $warehouse_manager_day = 0>><</if>>
/* Version11: Marcello Pollock + sharing Britney with Tommy */
<<if ndef $pollock_husband>>
<<set $pollock_husband = 0>>
<<set $amber_shared = 0>>
<</if>>
/* Version11 character setup (missing from the old 0.7->0.8 step) */
<<if ndef $avatar>><<set $avatar = 1>><</if>>
<<if ndef $real_name>><<set $real_name = "Marcus">><</if>>
/* Version12 daily-limit trackers */
<<if ndef $gym_wing_day>><<set $gym_wing_day = 0>><</if>>
<<set $version = "1.1">>
<</if>>
<<if $version == "1.1">>
/* 1.1 -> 1.2: all unreleased school, work, and music-era state is patched
together. Individual ndef guards also keep any development saves safe. */
<<if ndef $network_day>><<set $network_day = 0>><</if>>
<<if ndef $leverage_dry>><<set $leverage_dry = 0>><</if>>
<<if ndef $marcello_next_day>><<set $marcello_next_day = 0>><</if>>
<<if ndef $gunn_sticker>><<set $gunn_sticker = 0>><</if>>
<<if ndef $jobs_day>><<set $jobs_day = 0>><</if>>
<<if ndef $construction_open>><<set $construction_open = 0>><</if>>
<<if ndef $warehouse_open>><<set $warehouse_open = 0>><</if>>
<<if ndef $school_tasks_day>><<set $school_tasks_day = 0>><</if>>
<<if ndef $school_task_safe>><<set $school_task_safe = 1>><</if>>
<<if ndef $school_task_risky>><<set $school_task_risky = 1>><</if>>
<<if ndef $school_task_dirty>><<set $school_task_dirty = 1>><</if>>
<<if ndef $incel_path>><<set $incel_path = 0>><</if>>
<<if ndef $incel_next_day>><<set $incel_next_day = 0>><</if>>
/* Preserve completed embrace saves rather than offering their finale twice. */
<<if ndef $incel_materials>>
<<if $incel_path == 2 && $incel_stage >= 8>><<set $incel_materials = 2>>
<<else>><<set $incel_materials = 0>><</if>>
<</if>>
<<if ndef $incel_dropout>><<set $incel_dropout = 0>><</if>>
/* Inserted lessons shift only saves from before each respective change. */
<<if ndef $incel_group_practice_split>>
<<if $incel_path == 2 && $incel_stage >= 8>><<set $incel_stage += 1>><</if>>
<<set $incel_group_practice_split = 1>>
<</if>>
<<if ndef $incel_deprogram_two_memes>>
<<if $incel_path == 1 && $incel_stage >= 8>><<set $incel_stage += 1>><</if>>
<<set $incel_deprogram_two_memes = 1>>
<</if>>
<<if ndef $william_stage>><<set $william_stage = 0>><</if>>
<<if ndef $william_next_day>><<set $william_next_day = 0>><</if>>
<<if ndef $mom_thanks>><<set $mom_thanks = 0>><</if>>
<<if ndef $pollock_route>><<set $pollock_route = 0>><</if>>
<<if ndef $pollock_next_day>><<set $pollock_next_day = 0>><</if>>
<<if ndef $database_access>><<set $database_access = 0>><</if>>
<<if ndef $madi_stage>><<set $madi_stage = 0>><</if>>
<<if ndef $cafeteria_event_day>><<set $cafeteria_event_day = 0>><</if>>
<<if ndef $incel_gangbang_arranged>><<set $incel_gangbang_arranged = false>><</if>>
/* Leave the roster unrolled so the next afternoon creates a fair fresh list. */
<<if ndef $detention_roster_day>><<set $detention_roster_day = 0>><</if>>
<<if ndef $detention_has_students>><<set $detention_has_students = false>><</if>>
<<if ndef $detention_incel_roster>><<set $detention_incel_roster = false>><</if>>
<<if ndef $detention_event>><<set $detention_event = 1>><</if>>
<<if ndef $detention_incel_relieved_day>><<set $detention_incel_relieved_day = 0>><</if>>
<<if ndef $linda_stage>><<set $linda_stage = 0>><</if>>
<<if ndef $linda_next_day>><<set $linda_next_day = 0>><</if>>
<<if ndef $incel_deprogram_arranged>><<set $incel_deprogram_arranged = false>><</if>>
<<set $version = "1.2">>
<</if>>
<<if $version == "1.2">>
/* 1.2 -> 1.3: the gallery (which the 1.1 -> 1.2 step never had), Pollock's
finale, the Madi groundwork, Adriana's princess night, Ella after Vegas and
per-shift school pay. Covers 1.2 and 1.2.1 saves alike (both stamped 1.2);
ndef guards keep dev saves that already ran the old post-1.2 patch intact.
The NaN clause repairs dev saves where AdrianaRegularSex's += 1 already
ran on a missing counter. */
<<if ndef $gallery_revealed>><<set $gallery_revealed = []>><</if>>
<<if ndef $gallery_cheat>><<set $gallery_cheat = false>><</if>>
<<if ndef $gallery_view>><<set $gallery_view = "">><</if>>
<<if ndef $pollock_group_done>><<set $pollock_group_done = 0>><</if>>
<<if ndef $pollock_home_cuck>><<set $pollock_home_cuck = 0>><</if>>
<<if ndef $server_stage>><<set $server_stage = 0>><</if>>
<<if ndef $terrence_deal>><<set $terrence_deal = 0>><</if>>
<<if ndef $hacker_sex_level || Number.isNaN($hacker_sex_level)>><<set $hacker_sex_level = 0>><</if>>
<<if ndef $princess_kit>><<set $princess_kit = {}>><</if>>
<<if ndef $princess_night>><<set $princess_night = []>><</if>>
<<if ndef $princess_reroute>><<set $princess_reroute = 0>><</if>>
<<if ndef $ella_swap_verdict>><<set $ella_swap_verdict = 0>><</if>>
/* The week in progress when per-shift pay arrived is paid in full. */
<<if ndef $school_shifts>><<set $school_shifts = 5>><</if>>
<<if ndef $school_shift_day>><<set $school_shift_day = 0>><</if>>
<<set $version = "1.3">>
<</if>>
<<if $version == "1.3">>
/* 1.3 -> 1.3.1: the master key pity counter. Saves whose key chance froze
at zero (leverage full with a stale $leverage_dry) need nothing else: the
risky order stops reading that counter once leverage is full. */
<<if ndef $key_dry>><<set $key_dry = 0>><</if>>
<<set $version = "1.3.1">>
<</if>>
<<if $version == "1.3.1">>
/* 1.3.1 -> 1.4: the school after Pollock (Version24) and Madi Collins
(Version25). Nothing in 1.3.1 tracks either, so every value starts at its
StoryInit default; the ndef guards keep 1.4 dev saves that already ran
the old post-1.3 patch intact. */
<<if ndef $regime_day>><<set $regime_day = 0>><</if>>
<<if ndef $dirty_retired>><<set $dirty_retired = 0>><</if>>
<<if ndef $pollock_slip_day>><<set $pollock_slip_day = 0>><</if>>
<<if ndef $pollock_slips>><<set $pollock_slips = 0>><</if>>
<<if ndef $open_mic>><<set $open_mic = 0>><</if>>
<<if ndef $albright_stage>><<set $albright_stage = 0>><</if>>
<<if ndef $albright_block>><<set $albright_block = 0>><</if>>
<<if ndef $albright_block_until>><<set $albright_block_until = 0>><</if>>
<<if ndef $albright_heat_day>><<set $albright_heat_day = 0>><</if>>
/* From the save's own heat, so its first night doesn't read a phantom raise. */
<<if ndef $albright_heat_last>><<set $albright_heat_last = $albright_heat>><</if>>
<<if ndef $fall_seen>><<set $fall_seen = []>><</if>>
<<if ndef $albright_notes>><<set $albright_notes = []>><</if>>
<<if ndef $madi_curiosity>><<set $madi_curiosity = 0>><</if>>
<<if ndef $madi_spite>><<set $madi_spite = 0>><</if>>
<<if ndef $madi_next_day>><<set $madi_next_day = 0>><</if>>
<<if ndef $madi_file_day>><<set $madi_file_day = 0>><</if>>
<<if ndef $madi_push_day>><<set $madi_push_day = 0>><</if>>
<<if ndef $madi_camera_day>><<set $madi_camera_day = 0>><</if>>
<<if ndef $madi_seen>><<set $madi_seen = []>><</if>>
<<if ndef $madi_notes>><<set $madi_notes = []>><</if>>
<<if ndef $madi_items>><<set $madi_items = {}>><</if>>
<<if ndef $madi_favor_day>><<set $madi_favor_day = 0>><</if>>
<<if ndef $madi_asks>><<set $madi_asks = {}>><</if>>
<<if ndef $madi_ally_next>><<set $madi_ally_next = {}>><</if>>
<<if ndef $madi_reveal>><<set $madi_reveal = 0>><</if>>
<<if ndef $madi_truth>><<set $madi_truth = 0>><</if>>
<<if ndef $madi_approach>><<set $madi_approach = 0>><</if>>
<<if ndef $lauren_stage>><<set $lauren_stage = 0>><</if>>
<<if ndef $terrence_debrief>><<set $terrence_debrief = 0>><</if>>
/* Two older gaps, here because every old save runs this step. The 0.3 ->
1.1 step never backfilled the patrol cooldown, and it skipped saves a
1.1 dev build had already stamped, which can lack the gym wing's daily
limit. Missing, the first stops street patrols for good and the second
hides the gym wing. The cut corner, nightclub and brothel state is still
left out: nothing reachable reads it. */
<<if ndef $last_patrol_day>><<set $last_patrol_day = 0>><</if>>
<<if ndef $gym_wing_day>><<set $gym_wing_day = 0>><</if>>
<<set $version = "1.4">>
<</if>>
<p><strong>Notice:</strong> Updated the save to version $version.</p><br>
/* Back to the passage the save was made in when it's a hub the player walks
in and out of all day anyway. That passage already rendered once on load
(PassageHeader reaches Update through a deferred goto), so re-entering a
scene would charge its energy and move its stages a second time; a save
made anywhere else lands in The Hood. */
<<set _updateReturn = ["The hideout", "The Hood", "Hallway", "Closet", "Community Center", "Bar", "Gym", "Hacker"].includes(previous()) ? previous() : "The Hood">>
<<link "Get back to the game" _updateReturn>><</link>><<widget sayit>><<=$args[0].sayIt()>><</widget>>Variables
Character:
Money
Physical (strength etc)
Theory (intelligence)
Energy (Limits number of actions before sleep)
<<set $energy to 10>>
<<set $money to 80>>
<<set $physical to 50>>
<<set $respect to 0>>
<<set $knowledge to 0>>
<<set $eat_today to 0>>
<<set $nextday to 0>>
<<set $ella_stage to 0>>
<<set $community_quest to 0>>
<<set $library_progress to 0>>
<<set $foreman_help to 0>>
<<set $gym_assist to 0>>
<<set $gloryhole_ulocked to 0>>
<<set $target1 to 0>>
<<set $construction_rep to 0>>
<<set $manpower to 1>>
<<set $heat to 0>>
<<set $hacker_level to 0>>
<<set $hacker_bj_level to 0>>
<<set $hacked_had_sex_today to 0>>
<<set $version = "1.4">>
<<set $savannah_blacked to 0>>
<<set $savannah_cheating to 0>>
<<set $savannah_dildo_sent to 0>>
<<set $savannah_action_made to 0>>
<<set $savannah_observation_made to 0>>
<<set $savannah_approach to 0>>
<<set $savannah_pill to 0>>
<<set $ella_end_quest = 0>>
<<set $ella_end_car = 0>>
<<set $ella_end_construction = 0>>
<<set $ella_end_warehouse = 0>>
<<set $ella_end_bar = 0>>
<<set $ella_end_hacker = 0>>
====Version3====
<<set $school_unlocked = 0>>
<<set $school_intro_location = "">>
<<set $ella_mmf_stage = -1>>
<<set $hacker_ff_level = 0>>
<<set $hacker_gh_stage = 0>>
====Version4====
<<set $school_time = "morning">> ("lunch, "afternoon","evening")
<<set $school_rep = 0>>
<<set $closet_unlocked = false>>
<<set $incel_club = false>>
/* Player identity (set later via the fake-ID textboxes) and cheat/patreon code */
<<set $player_name = "">>
<<set $player_surame = "">>
<<set $code = "">>
====Version5====
/* Day counter - increments on Sleep; used for day-gated story beats */
<<set $day = 1>>
/* Heat system: $heat (0-100, declared above) is now live. $laying_low = forced lay-low days remaining.
$heat >= 75 also locks the blockpost - no leaving the hood until it decays. */
<<set $laying_low = 0>>
/* ARCHIVED: the nightclub is not going into the next release.
Nightclub:
<<set $nightclub_job = 0>> (0 = none, 1 = bouncer)
<<set $nightclub_stage = 0>>
*/
/* CUT: street dealers + brothel are not going into the next release.
<<set $dealer_stage = 0>> (0 = unknown, 1 = buyer, 2 = trusted worker)
<<set $drug_stash = 0>> (units carried, cap 5)
Brothel:
<<set $brothel_unlocked = 0>>
<<set $brothel_stage = 0>>
*/
/* Ella day-gating: earliest $day her arc can advance again */
<<set $ella_next_day = 0>>
/* Last day a street moral-dilemma event fired (one per day, plus a 2-day cooldown before the next roll) */
<<set $last_dilemma_day = 0>>
/* Luna Star, the lawyer from the reworked intro - future love-interest arc tracker */
<<set $lawyer_stage = 0>>
====Version6====
/* School arc: janitor job, task board, staff/student arcs */
<<set $school_job = 0>> (0 = not hired, 1 = janitor, 2 = janitor + detention supervisor)
<<set $detention_job = false>>
<<set $school_tasks_done = 0>> (morning tasks done today, reset on sleep)
<<set $school_pay_day = 0>> (last day the weekly pittance was paid)
<<set $last_school_event_day = 0>> (one random school event per day)
/* Principal Shannon Pollock: leverage gathered + corruption stage machine */
<<set $pollock_stage = 0>>
<<set $pollock_leverage = 0>> (0-10, dirt collected on her)
/* Britney Amber, the counselor - fast Ella-style arc, day-gated */
<<set $amber_stage = 0>>
<<set $amber_next_day = 0>>
/* Incel club (detention kids): DeShawn, Marcus, Tyrell */
<<set $incel_stage = 0>>
<<set $detention_day = 0>> (last day detention was run - one session per day)
/* Coach Tommy Gunn: trust counter + false-accusation case (0 none, 1 helped, -1 stayed out) */
<<set $gunn_trust = 0>>
<<set $gunn_case = 0>>
/* Mrs. Albright, Pollock's attack dog - annoyance counter for later payback */
<<set $albright_heat = 0>>
/* Master key progress (0-3); at 3 the basement records open */
<<set $master_key = 0>>
/* Closet upgrades */
<<set $closet_bed = false>>
====Version7====
/* Adriana's heat-scrub service: earliest $day she'll run it again (3-day cooldown) */
<<set $scrub_next_day = 0>>
/* CUT: street corner is not going into the next release.
Corner protection pact: patrol odds reduced while $day < $protection_until
<<set $protection_until = 0>>
*/
/* Weekly rent to the hood: last day it was collected (starts biting at day 15) */
<<set $rent_day = 0>>
/* Cheat-code waiver ("squatter") that turns rent off permanently */
<<set $rent_waived = false>>
====Version8====
/* Warehouse rework: shift streak (worked yesterday), last day worked, ban after getting caught pilfering */
<<set $warehouse_streak = 0>>
<<set $warehouse_last_day = 0>>
<<set $warehouse_banned = 0>> (banned until this $day)
/* Floor manager arc (0 nothing, 1 bottle seen, 2 she circles, 3 the cage, 4 her office) + one-time pilfer save */
<<set $warehouse_manager_stage = 0>>
<<set $warehouse_manager_favor = 0>>
/* Construction: ban after the trophy-wife incident; wife scene is one-off */
<<set $construction_banned = 0>> (banned until this $day)
<<set $construction_wife = 0>>
/* ARCHIVED: the nightclub is not going into the next release.
Door Rope minigame: bad shifts collected; 3 = fired
<<set $door_strikes = 0>>
*/
/* CUT: brothel/escort arc is not going into the next release.
Escort progression: $brothel_stage now live (0 local runs, 1 outside runs, 2 Dre's car)
<<set $escort_runs = 0>>
<<set $escort_intimacy = 0>> (hidden: en-route intimacy with the girls, vouches for the keys)
<<set $escort_car = 0>>
<<set $car_suspended = 0>> (Dre took the keys back until this $day)
*/
====Version9====
/* Bar rework: last day you worked the room (one event roll per day) */
<<set $bar_last_day = 0>>
/* Earl the bartender: 0 stranger, 1 knows your name, 2 trusted, 3 favor owed (free round + back-table dice) */
<<set $bartender_stage = 0>>
/* Last day you played the back-table dice game (stage 3 perk, one game per day) */
<<set $bar_dice_day = 0>>
====Version10====
/* Library rework (backfilled for old saves by the Update passage migration) */
/* One-time purchase of window glass and frames; gates work in the Windows phase (progress 50-69) */
<<set $library_materials = 0>>
/* Next one-time rebuild discovery to show (0-4), one per renovation phase */
<<set $library_find = 0>>
/* Last day a random library event fired (one per day) */
<<set $last_library_event_day = 0>>
/* Oath Boys standoff at 90% progress: 0 not fired, 1 pending, 2 resolved (they keep away from the library) */
<<set $library_standoff = 0>>
/* Banned-books back room built behind the poetry shelf */
<<set $backroom_unlocked = 0>>
/* Last day you hosted reading hour (one per day) */
<<set $reading_hour_day = 0>>
/* Gym: last day you coached the rookies (one respect session per day) */
<<set $gym_rookies_day = 0>>
/* Vittoria: last day a floor-manager scene fired (one per day) */
<<set $warehouse_manager_day = 0>>
====Version11====
/* Marcello Pollock, the principal's husband: 0 unmet, 1 intro seen, 2 voyeur scene witnessed,
3 in the arrangement (set by her first pink slip whenever he's known). A route-2 finale
meets him at the house without touching this, so route 2 counts as met at any value. */
<<set $pollock_husband = 0>>
/* Sharing Britney with Tommy: 0 none, 1 Tommy agreed, 2 Britney consented, 3 threesome had (repeatable) */
<<set $amber_shared = 0>>
/* Character setup (pre-intro): avatar index 1-4 (img/misc/avatar_N.jpg, drives the "You"
speech portrait) and the player's REAL name - almost nobody in-game is supposed to know
it ($player_name/$player_surame above are the fake ID from Adriana) */
<<set $avatar = 1>>
<<set $real_name = "Marcus">>
====Version12====
/* Britney's ass-to-mouth kink: counts how many times the player has indulged it
(solo anal scene, threesome, ...). Never reset; the threesome's dirtiest route needs 2. */
<<set $amber_atm = 0>>
/* Cheat menu: holds the hash of the code the player unlocked with (empty = locked).
Each release ships a new code/hash, so old saves re-lock on update. */
<<set $cheats_unlocked = "">>
/* Heat patrol cooldown: day the last patrol event (toll/shakedown/sweep) fired.
At most one patrol event every two days (earliest day 2), library-event style
like $last_dilemma_day. */
<<set $last_patrol_day = 0>>
/* School gym wing: last day you swung by Tommy's gym (one visit per day) */
<<set $gym_wing_day = 0>>
====Version13====
/* Below-decks favor network: last day school rep was traded for Pollock leverage
(one trade per day, 5 rep + 2 energy, buys +1 up to leverage 8 - the last two
points must come from the arcs/office search) */
<<set $network_day = 0>>
/* Leverage pity counter: risky/extra work orders since the last leverage drop.
Each dry order adds +15% to the next roll's leverage band; resets on a hit.
Risky orders cap the band at 85% and ignore the counter once leverage is full. */
<<set $leverage_dry = 0>>
/* Marcello lunch voyeur scene: earliest $day it can fire again (3-day cooldown, repeatable) */
<<set $marcello_next_day = 0>>
/* Gunn's bumper sticker talk (beer night): 0 not had, 1 pressed him (payoff pending), 2 sticker gone, -1 let it be */
<<set $gunn_sticker = 0>>
/* Day-labor board: which trucks showed up today. Rolled once per $day in
"Look for work" and remembered, so re-entering the passage can't reroll it. */
<<set $jobs_day = 0>>
<<set $construction_open = 0>>
<<set $warehouse_open = 0>>
====Version14====
/* School work-order board: which three jobs the cork board offered today.
Rolled once per $day in "School Tasks" and remembered, mirroring $jobs_day,
so bouncing to the hallway and back can't reroll the morning's orders. */
<<set $school_tasks_day = 0>>
<<set $school_task_safe = 1>>
<<set $school_task_risky = 1>>
<<set $school_task_dirty = 1>>
====Version15====
/* Incel club: path chosen at the Crossroads (0 none, 1 deprogram, 2 embrace) */
<<set $incel_path = 0>>
/* Earliest $day the next club meeting can run (2-day cooldown between lessons) */
<<set $incel_next_day = 0>>
/* Adriana's route-specific packet for room 021: 0 not collected, 1 collected.
Value 2 is reserved for old saves that had already completed the embrace finale. */
<<set $incel_materials = 0>>
/* Isaiah walked out at the Crossroads: 0 still in, 1 gone - seed for the future
street-corner/dealer arc (dealers.tw reads this when it ships) */
<<set $incel_dropout = 0>>
/* Marks saves authored after the group-practice lesson was split in two.
Older embrace-route saves are shifted once in the StoryInit backfill. */
<<set $incel_group_practice_split = 1>>
/* Marks saves authored after deprogramming gained a second meme lesson.
Older completed deprogramming saves are shifted once in the Update passage. */
<<set $incel_deprogram_two_memes = 1>>
/* William Hayes, old fire-team comrade: -1 swap declined, 0 unmet, 1 reunion,
2 drinks, 3 dinner arranged, 4 dinner done + Ella's admission, 5 swap
arranged, 6 swap complete. */
<<set $william_stage = 0>>
<<set $william_next_day = 0>>
/* Path A payoff: 1 = Aaron's mother's thank-you seen */
<<set $mom_thanks = 0>>
/* Pollock's finale route: 0 unchosen, 1 group project, 2 one-on-one. */
<<set $pollock_route = 0>>
/* Pollock's day gate. At stage 3 it holds back her terms and then her finale;
at stage 4 it's the first morning her first pink slip can arrive (both
finale exits set it two days out). */
<<set $pollock_next_day = 0>>
/* Student database: 0 locked, 1 Pollock's keycard + security key (a 2FA key
for one service login, nothing else on it) in hand, 2 Terrence
used the key on a school laptop and pulled Madi's row (Database Query),
3 reported to Jamal from the hideout laptop - Adriana is next. The player
never uses the key himself; he doesn't know how, which is why the shortcut
through Terrence costs him a witness. */
<<set $database_access = 0>>
/* Madi Collins (docs/madi-build-plan.md): 0 not seen, 1 intro seen (1.2
end-of-content marker), 2 Adriana's box is on the rack (Server Install),
3 the Madi file is open (Adriana First Look), 4 first contact, 5 the
reveal done and her father sided with Grayson, 6 approach chosen, 7 finale
played. 8 is the father, a later update. Her Version25 state is below. */
<<set $madi_stage = 0>>
/* Cafeteria: last day a lunch random event fired (one per day) */
<<set $cafeteria_event_day = 0>>
====Version16====
/* The room 021 graduation requires Britney Amber's explicit office approval. */
<<set $incel_gangbang_arranged = false>>
====Version17====
/* Detention roster: rolled once on the first afternoon school visit each day.
A clear roster needs no supervision; otherwise it is either the four boys or
a room of other adult students. The release marker only lasts that day. */
<<set $detention_roster_day = 0>>
<<set $detention_has_students = false>>
<<set $detention_incel_roster = false>>
<<set $detention_event = 1>>
<<set $detention_incel_relieved_day = 0>>
====Version18====
/* Linda: adult senior's three-part school arc. The next-day marker spaces
the closet invitation and the room 021 finale without making either reset
when the player visits another school location. */
<<set $linda_stage = 0>>
<<set $linda_next_day = 0>>
====Version19====
/* Deprogramming route: Amber's date-line workshop must be arranged before it
can serve as the boys' graduation. */
<<set $incel_deprogram_arranged = false>>
/* Version20-23 shipped with 1.3 and are backfilled for older saves by the
1.2 -> 1.3 step in Update, Version23.1 shipped with 1.3.1 and is backfilled
by the 1.3 -> 1.3.1 step, and Version24-25 shipped with 1.4 and are
backfilled by the 1.3.1 -> 1.4 step. A variable added after them, before
the next version bump, needs a matching ndef line in the post-1.4 patch in
PassageHeader. */
====Version20====
/* Gallery: scene replay. $gallery_revealed holds the ids the player chose to
reveal from an alternate route they can't reach on this playthrough (see the
"alt" groups in gallery.js). $gallery_view is the id of the scene currently
being replayed and is empty in normal play - it gates the sidebar, the stat
panel and the save lock, so nothing else may write to it. Whether a scene was
legitimately seen is NOT stored: it's derived from the arc's own stage
variables, which makes the gallery work retroactively on old saves. */
<<set $gallery_revealed = []>>
<<set $gallery_cheat = false>>
<<set $gallery_view = "">>
====Version21====
/* Pollock's finale. She turns down the blackmail she was braced for (money,
a job, herself, in that order) because a deal would put her back where she
was, and names her own price instead. $pollock_route picks the shape in
Pollock Unmasked; the scene itself is the next day, no prep in between.
Group route: the handoff happened, the report is owed. A flag rather than
visited(), so the gallery can open the report on its own. 1 = the boys had
her alone, 2 = her husband was sent up to watch (the report branches on it). */
<<set $pollock_group_done = 0>>
/* One-on-one route: what happened to Marcello at the house. 0 unchosen,
1 sent out of the room (she comes back down in white lace), 2 kept in the
chair and made to watch.
Picks which half of the finale plays and is read again by the aftermath. */
<<set $pollock_home_cuck = 0>>
/* School server room. Remote credentials only reach the district portal; the
building's own stack (door controllers, camera recorder, wireless) is
air-gapped, so Adriana needs hardware physically on the rack before the
Madi operation can start. 0 not raised, 1 she's asked for it (the black box
is in your pocket), 2 Terrence took the job, 3 he put the box on the rack
(Server Install, the evening after $madi_next_day allows it). */
<<set $server_stage = 0>>
/* Adriana's price for the Madi job (Adriana New Target). She turns down money,
services and entertainment: what she wants is the boy who ran the query.
0 undecided, 1 the player agreed to hook them up - Terrence carries her
invitation and this is the hook for future Adriana-Terrence scenes,
2 the player paid $100 like Mrs. Bond instead and Terrence does the server
room as a plain job for nothing but the work, 3 the player offered her the
princess night instead (only offered while it's owed, $hacker_level 8) and
Terrence stays out of it the same way as 2. Server Room Job branches on 1 vs
the rest. */
<<set $terrence_deal = 0>>
/* Adriana's repeatable vaginal scene (AdrianaRegularSex, open from $hacker_level 7):
times played. Like $hacker_bj_level/$hacker_ff_level, reaching 3 unlocks her
next beat - AdrianaSex then offers the princess night list. */
<<set $hacker_sex_level = 0>>
====Version22====
/* Adriana's princess night, the last beat of her $hacker_level ladder (8 = she
handed over her list, 9 = the night happened). Item id -> first $day the item
is usable at her lair; a key that's absent = not acquired yet. Her cart and
Vittoria's reroute store $day + 1 (next-day delivery), the school's
confiscation tub and Earl's tap line store $day. Item names, prices and
sources live in setup.princess (StoryScript.js). */
<<set $princess_kit = {}>>
/* Segment and choice ids from the current (or last) princess night, reset when
it starts. The Playground hub reads it to hide what's been played; "glazed"
marks the one-way switch once the cum-lube bottle is open. */
<<set $princess_night = []>>
/* 1 once Vittoria rerouted the rest of the princess cart through the warehouse
(Adriana has a line about the "replacement shipment" box). */
<<set $princess_reroute = 0>>
====Version23====
/* Ella after the night with William and Agatha (Ella After Vegas, open once
$william_stage is 6 and Pollock's finale is done on either route). What her
visit came to: 0 not made yet, 1 she was disappointed by what he told her
about the school and asked to be alone (the couch scene is missed for good),
2 the couch scene played in the tender tone, 3 in the "target" tone. The
value is read by both sex passages for her lines, so it lives in story state
rather than a temp. Both exits move $ella_stage to 13. */
<<set $ella_swap_verdict = 0>>
/* School wage is per shift: days in the current pay week with at least one
work order done (capped at 5 when paid), and the last day logged so several
orders on one day count once. See <<schoolpay>> / <<schoolshift>>. */
<<set $school_shifts = 0>>
<<set $school_shift_day = 0>>
====Version23.1====
/* The 1.3.1 hotfix, numbered so the 1.4 blocks keep theirs. Master key pity:
risky work orders since the last key piece, counted while $master_key < 3.
The 15th order in a row without a piece brings one for sure. */
<<set $key_dry = 0>>
====Version24====
/* The school after Pollock (docs/school-after-pollock-plan.md). Stage 5 of
$pollock_stage is the arrangement that follows her finale: her first pink
slip moves a save from 4 to 5, and everything below is read from there on. */
/* The day the arrangement began (the first slip). 0 until then. */
<<set $regime_day = 0>>
/* What his first blank requisition did with the dirty work orders: 0 not yet,
1 contracted out for the whole staff, 2 only his own jobs, 3 handed to the
detention boys who made the mess. */
<<set $dirty_retired = 0>>
/* Her personal pink slips: the first day the next one can arrive, and how
many he has answered (picks the slip's wording and the open mic visit). */
<<set $pollock_slip_day = 0>>
<<set $pollock_slips = 0>>
/* The intercom keyed during an office visit: 0 not yet, 1 he killed it,
2 he let it run. Albright's file opens on it, and the Madi file reads it. */
<<set $open_mic = 0>>
/* Mrs. Albright as the antagonist. $albright_heat (Version6) is what she has
on the janitor. Stage: 0 background, 1 her file is open (the open mic),
2 she has introduced herself, 3 Pollock admitted she can't touch her.
One restriction at a time: $albright_block 0 none,
1 chaperone, 2 lock audit, 3 late shift, 4 closet storage, active while
$day < $albright_block_until. It keeps the last id after the restriction
lifts, because the rotation in <<albrightcheck>> reads it.
$albright_heat_day is where the slow decay counts from: the day her heat
last rose, or last decayed. $albright_heat_last is her heat as <<newday>>
left it last night; a rise past it dates the day, for raises that skip
setup.albrightNote. */
<<set $albright_stage = 0>>
<<set $albright_block = 0>>
<<set $albright_block_until = 0>>
<<set $albright_heat_day = 0>>
<<set $albright_heat_last = 0>>
/* The loud, brazen incidents she has on record, by id (setup.albrightNote in
StoryScript.js), from the school's random and detention events. Each one
adds its full heat every time it happens; the id is recorded once, so
Albright Confrontation can quote them back at him. */
<<set $albright_notes = []>>
/* Ids of the new regime's one-time beats already shown: the <<fallbeat>>
queue in SchoolWidgets, plus Below Decks' first reaction ("belowdecks")
and Albright's confrontation ("confrontation"). */
<<set $fall_seen = []>>
====Version25====
/* Madi Collins (docs/madi-build-plan.md). $madi_stage (Version15) holds the
stage; everything else about her arc is here. */
/* Her two meters, 0 to setup.madi.max (20) each (STATCHANGE_CAPS clamps
them, <<madiup>> moves them). Curiosity is the blacked axis and opens the
group route at the top. Spite starts with Grayson, moves to her father,
and opens the solo route at the top. */
<<set $madi_curiosity = 0>>
<<set $madi_spite = 0>>
/* The first day the arc's next story beat can fire. Server Room Job sets it
a day out, and so does every beat that needs a night in between. */
<<set $madi_next_day = 0>>
/* The day Adriana opened the file, 0 until then. The box's one outage is
timed from it. */
<<set $madi_file_day = 0>>
/* Daily limits as day stamps, so <<newday>> needs nothing: the last day of a
digital push (feed tuning or whispers) and of a camera check. */
<<set $madi_push_day = 0>>
<<set $madi_camera_day = 0>>
/* Ids of her one-time beats already shown: scripted camera events (rules,
inspection, ninety, ipad, name, Lauren's laurenintro and laurenclips, and
from Phase 3 clipwatch and father),
Britney's three session themes (britney_body, britney_love, britney_dad),
the records annex, one look through the yearbook boxes (archive), the
box's outage once Terrence has fixed it, and from Phase 3 the one-off
blanks once played (unsung, summons, equipment), her first detention hour
(roster), the minute for the walk-in (keylog), Terrence's footage
(pulled), the pickup and the race. From Phase 4: Adriana's Facility 9 file
(facility9), her reading the reports on the house cameras (reports) or the
back stairwell (truth), the word to Jamal on the group route (jamal), and
Linda bringing her to your closet (lindaffm). From Phase 5: the print where
you make her the offer (print), the room 021 boys and William invited to
the group night (boys, william), and the epilogue on the hideout laptop
(epilogue). The first whisper, which introduces the friend from two towns
over, adds "friend". */
<<set $madi_seen = []>>
/* Ids of what the file has learned about her; the texts live in
setup.madi.notes (madi.js). */
<<set $madi_notes = []>>
/* Packages from the store: item id -> { due: the $day it arrives, via:
"locker" or "house", step: 0 on its way or waiting, 1 with her, 2 her
camera moment has played }. Names, prices and meters live in
setup.madi.items. */
<<set $madi_items = {}>>
/* Favors, one a day in total ($madi_favor_day): Pollock's signed blanks and
her allies' asks (setup.madi.favors). Each lands the next day (favor id ->
that day in $madi_asks) and waits at its place until it plays; then that
ally's cooldown starts ($madi_ally_next: ally -> the first day it can be
asked again). */
<<set $madi_favor_day = 0>>
<<set $madi_asks = {}>>
<<set $madi_ally_next = {}>>
/* How she found out about Grayson: 0 not yet, 1 she walked in on him,
2 the anonymous clip. */
<<set $madi_reveal = 0>>
/* The truth fork, settled by the Facility 9 file: 0 you kept the reports,
1 you sent them to her anonymously, 2 you handed them over and told her
who you are and why. It only means something once "facility9" is in
$madi_seen. Both finales read it, and so will the father's update. */
<<set $madi_truth = 0>>
/* The approach: 0 not chosen, 1 solo ("Unsung hero"), 2 group ("Across the
wall"). */
<<set $madi_approach = 0>>
/* Lauren Phillips, her stepmother, drawn in as collateral. Her own ladder,
each step after the one before: 0 a name in the file, 1 you know her face
(her first scene on the house cameras or the race, whichever comes
first), 2 Madi's feed has reached her (the clip on the shared iPad, or a
house package carried up to her own room first), 3 the same clips on her
own phone. Meeting her in person is "race" in $madi_seen, not a stage.
Her house scenes read it (setup.madi.laurenEvent), and so will her arc. */
<<set $lauren_stage = 0>>
/* Adriana's in-person debrief of Terrence, owed on $terrence_deal 1:
0 not played, 1 played (the fitting on the deprogramming path, or you left
them to it on the embrace path), 2 you joined them (embrace path). */
<<set $terrence_debrief = 0>>
====Audio (track cache, not state)====
/* Background music, driven by "music-*" passage tags (see StoryScript.js).
"theme" plays on the session's first entry to a music-theme passage; any
cached "theme_2", "theme_3", ... (numbered, no gaps) then shuffle after it.
Adding a rotation track = dropping the mp3 in audio/ + one line here.
Audio files are NOT bundled by tweego - they load from audio/ next to index.html,
so release zips must include the audio/ folder. */
<<cacheaudio "theme" "audio/theme.mp3">>
<<cacheaudio "theme_2" "audio/theme_2.mp3">>
<<cacheaudio "theme_3" "audio/theme_3.mp3">>
<<cacheaudio "theme_4" "audio/theme_4.mp3">>
<<cacheaudio "theme_5" "audio/theme_5.mp3">>
/* School zone: tagged "music-school_theme" on the School passage. */
<<cacheaudio "school_theme" "audio/school_theme.mp3">>
<<cacheaudio "school_theme_2" "audio/school_theme_2.mp3">>
<<cacheaudio "school_theme_3" "audio/school_theme_3.mp3">><<pic "img/general/hackerlair.jpg" "location">>
<<if visited() == 1>>
<p>Finding the hacker's lair feels like stepping into a different world. The address leads you to a forgotten industrial district, block after block of abandoned warehouses with their windows knocked out. One building stands out - a crumbling structure with boarded windows and graffiti marking its walls. You knock on a rusted side door, and after a tense moment, it creaks open just enough for a single wary eye to appraise you.</p>
<p>Inside, the air is thick with the hum of machinery and the faint ozone tang of overheated electronics. The space is dimly lit by a patchwork of monitors casting shifting glows of green and blue onto concrete walls. Wires run tangled across the floor to makeshift workstations cluttered with keyboards, circuit boards, and empty energy drink cans. One corner of the room, in contrast, is well-lit with a daylight lamp and provides the impression of normalcy, with some salvaged furniture and bright-colored walls.</p>
<p>The hacker is younger than you expected, with sharp eyes that keep flicking from screen to screen even while she talks to you. Her fingers drum impatiently on the desk as she sizes you up.</p>
<<else>>
<p>You step inside the hacker lair and are welcomed with the hum of machinery and dim lights from a patchwork of monitors casting shifting glows of green and blue onto concrete walls. Adriana is sitting behind them, looking busy.</p>
<</if>>
<<if $target1 >=1 && $target1 < 3>>[[Talk business|Target1]]<br><</if>>
<<if $database_access == 3 && $server_stage == 0>>
<p>A school principal's keycard and a security key on a zip tie are in your pocket, and a name is in your head. She's already looking at you like she can tell.</p>
[[Talk business: a new target|Adriana New Target]]<br>
<</if>>
/* Madi stage 2 (docs/madi-build-plan.md): the day after the install she shows
what the box sees and opens the Madi file. On $terrence_deal 1 the boy who
put it there is owed his debrief, once. */
<<if $madi_stage == 2>>
<<if $day >= $madi_next_day>>
<p>Adriana has a new window open on her middle monitor, and she hasn't looked away from it since you came in.</p>
[[Talk business: the box is live|Adriana First Look]]<br>
<<else>>
<div class="req">The box went on the rack last night. Adriana wants a day with it before she shows you anything.</div>
<</if>>
<</if>>
/* Madi stage 5 (Phase 4): the day after her father's dinner, Adriana has his
Facility 9 reports, once. */
<<if $madi_stage == 5 && not setup.madi.hasSeen("facility9")>>
<<if setup.madi.facility9Due()>>
<p>There's a scanned form on Adriana's middle monitor with a state crest at the top. She minimizes it when she sees you, then opens it again.</p>
[[Talk business: Ray Collins|Adriana Facility 9]]<br>
<<else>>
<div class="req">Adriana is going through what Ray Collins brings home from Facility 9. She wants a day with it.</div>
<</if>>
<</if>>
<<if $terrence_deal == 1 && $madi_stage >= 2 && $terrence_debrief == 0>>
<<if $hacked_had_sex_today < 2 && $energy >= 3>>
[[Terrence is here for his debrief (3 energy)|Terrence Debrief]]<br>
<<else>>
<div class="req">Terrence's debrief is owed. It takes 3 energy and one of Adriana's two scenes for the day.</div>
<</if>>
<</if>>
/* Once room 021 reaches its materials beat, keep this available until the
packet is actually collected. This also recovers cleanly if an older save
reached a later club stage with $incel_materials still at 0. */
<<set _incelMaterialsNeeded = $incel_materials == 0 && $incel_path > 0 && $incel_stage >= 5>>
<<if ($target1 == 4 && $school_unlocked == 1) || _incelMaterialsNeeded>><<linkreplace "Talk business">>
<<if _incelMaterialsNeeded>>
<<if $hacker_level >= 7>>
<<if $incel_path == 1>>
<<speech "Adriana" "If only it were so easy to get rid of incel bullshit... I have some materials I can share with you, but I can't guarantee it will work.">>
<<else>>
<<speech "Adriana" "I'll give you stuff I used to make white housewives interested in black dicks. With a little tweaking, it should work on the other side, too.">>
<</if>>
<<set $incel_materials = 1>>
<div class="req">Now you have demonstration materials for next club meeting.</div>
<<else>>
<<if $incel_path == 1>>
<<speech "Adriana" "Before you ask me anything, how about you just fuck me senseless?">>
<<else>>
<<speech "Adriana" "You’re telling me you have four young black studs who you want to turn into gang-bang team, and you need help getting the materials? Oh, but you NEED to entertain me first!">>
<</if>>
<div class="req">You know the drill - entertain the lady and get the materials.</div>
<</if>>
<<elseif $hacker_level >= 6>>
<p>You ask for a false ID.</p>
<<speech "Adriana" "I'm doing this just because you're so fun to play with...">>
<p>Adriana gets to work. The whole thing looks relatively easy, as she already has connections to most state databases and a supply of pre-fabricated cards.</p>
<<speech "Adriana" "Got any preferences on your name? I already have a 'Tyron Williams' in the database, so it's less work for me and less work for anybody trying to guess your ethnicity, lol.">>
<<set $player_name to "Tyron">><<set $player_surame to "Williams">>
<<textbox "$player_name" "Tyron" autofocus>><<textbox "$player_surame" "Williams">><br>
<<linkreplace "Go with this one">>
<<replace "#name">>
<<speech "Adriana" "Anything you wish, daddy~">>
<p>You take a freshly printed ID in your hands. It looks real, it has your face on it - and a name that you need to get used to.</p>
<<speech "You" "Thanks. You can call me that, I guess. I'm not your dad anyway.">>
<<speech "Adriana" "Awww, you don't want to be my daddy, Mr. $player_surame? Am I too hot to handle?">>
<<speech "You" "I just need to get familiar with it, that's all.">>
<<speech "Adriana" "Fine, I'll be screaming your fake name next time you'll smash my pussy with your big black cock, $player_name!">>
<<set $school_unlocked = 2>>
<div class="req">You can now text Jamal and inform him about the ID.</div>
<</replace>>
<</linkreplace>>
<div id="name"></div>
<<else>>
<<speech "Adriana" "You want a fake ID? It's such a simple and boring task you'll have to entertain me first.">>
<div class="req">Unlock more sex options with Adriana to proceed.</div>
<</if>>
<</linkreplace>><br><</if>>
<<if $hacker_level > 0>>[[Do pleasure|AdrianaSex]]<br><</if>>
<<if $hacker_level == 8 && setup.princess.cartLeft().length > 0>>[[Go through her princess cart|Adriana Princess Cart]]<br><</if>>
<<if $hacker_level >= 2>>
<<if $heat >= 25 && $day >= $scrub_next_day>>
<<if $heat >= 75>><<set _scrub_price = 100>><<set _scrub_relief = 35>>
<<elseif $heat >= 50>><<set _scrub_price = 60>><<set _scrub_relief = 25>>
<<else>><<set _scrub_price = 30>><<set _scrub_relief = 15>><</if>>
<<if $hacker_level >= 5>><<set _scrub_price = Math.trunc(_scrub_price * 0.75)>><</if>>
<<set _scrub_label = "Ask her to scrub your heat ($" + _scrub_price + ")">>
<<linkreplace _scrub_label>>
<<if $money >= _scrub_price>>
<p>You describe your problem. Adriana doesn't even look away from her screens - she's already pulling up the precinct's shared drive like it's her own downloads folder.</p>
<<speech "Adriana" "Field reports, patrol notes, informant tips... it's all just files, baby. Files get corrupted. Faces in drone footage get... smudged. Watch this.">>
<p>Her fingers blur over the keyboard. Somewhere in a precinct database, the man the patrols keep flagging stops matching your face. A tip sheet loses a page. A drone log develops a gap where your block used to be.</p>
<<if $hacker_level >= 5>><<speech "Adriana" "Girlfriend prices, by the way. Don't tell my other clients I have a heart.">><</if>>
<<set _scrub_cost = -_scrub_price>><<set _scrub_drop = -_scrub_relief>>
<<statchange "money" _scrub_cost>>
<<statchange "heat" _scrub_drop>>
<<set $scrub_next_day = $day + 3>>
<<speech "Adriana" "Now get out and stay boring for a few days. If I scrub the same face twice in a week, the pattern I'm erasing becomes ME.">>
<<else>>
<<speech "Adriana" "Sweetie, I love you, but the darknet doesn't run on affection. Come back with cash.">>
<</if>>
<</linkreplace>><br>
<<elseif $heat >= 25 && $day < $scrub_next_day>>
<div class="req">Adriana won't touch the precinct systems again yet. "Same face twice in a week makes a pattern." (Available on day $scrub_next_day)</div>
<<elseif $heat < 25 && $heat > 0>>
<div class="req">"Scrub WHAT? You're a nobody in their systems right now. Congratulations. Not worth logging in for."</div>
<</if>>
<</if>>
<<if $ella_end_quest == 1 && $ella_end_hacker == 0>><<linkreplace "[Ella]Pick up some electronics">>When Adriana is not looking, you pocket some of the equipment lying around. It doesn't look like she needs it, and you can sell it for scraps. Should you say goodbye? Probably not.<<set $ella_end_hacker = 1>><</linkreplace>><br><</if>>
[[Leave|The Hood]]<<pic "img/adriana/pose.jpg">>
/* Two scenes a day, 3 energy each: her arc used to cost nothing but calendar
days, so it competed with nothing and could only be waited out. */
<<if $hacked_had_sex_today < 2>>
<<set _line = either("All work and no play makes Adriana a dull girl","Finally!","I need something black in my life...", "Let's have some fun!")>>
<<speech "Adriana" _line>>
<<set _canPlay = $energy >= 3>>
<<if $hacker_level == 1>>
<<if _canPlay>>[[So, about that skill practice...|AdrianaQuestBJ]]<br><</if>>
<<else>>
<<if _canPlay>>[[Blowjob|AdrianaRegularBJ]]<br><</if>>
<</if>>
<<if $hacker_level == 3>>
<<if _canPlay>>[[I REALLY want to try something else|AdrianaFirstFF]]<br><</if>>
<<elseif $hacker_level == 2>>
<<speech "You" "Hey, maybe we can try something else?">>
<<speech "Adriana" "Lol what, there is no way I'm taking your monster dick anywhere but my mouth, sry!">>
<<elseif $hacker_level >= 4 && $hacker_level <= 5>>
<<if _canPlay>>[[Facefuck|AdrianaRegularFF]]<br><</if>>
<</if>>
<<if $hacker_level == 5>>
<<if _canPlay>>[[It's time to talk|AdrianaGloryHole]]<br><</if>>
<<elseif $hacker_level == 4>>
<<linkreplace "Still only oral stuff?">>
<<speech "Adriana" "I'm training my other hole so one day you can fuck me properly~">>
<<set _randomvid = either(1,2,3)>>
<<if _randomvid == 1>>
<<video "img/adriana/pussy_practice_1.webm">>
<<elseif _randomvid == 2>>
<<video "img/adriana/pussy_practice_2.webm">>
<<else>>
<<pic "img/adriana/pussy_practice_3.jpg">>
<</if>>
<</linkreplace>><br>
<<elseif $hacker_level == 6>>
<<if _canPlay>>[[Fuck her at last|Adriana Lair Creampie]]<br><</if>>
<<elseif $hacker_level >= 7>>
<<if _canPlay>>[[Pound her pussy|AdrianaRegularSex]]<br><</if>>
<<if $hacker_level <= 8>>
<<linkreplace "Watch her anal practice">>
<<set _line = either("Pussy's handled, so now I'm training my other hole for you~","Pussy was the tutorial. This ass is the final boss~","Pull up a chair, daddy, you're gonna want to see this","Bigger toy today. Tell me if I'm doing it wrong, lol","One day this ass is gonna take all of you. Today you just watch~")>>
<<speech "Adriana" _line>>
<p><<sayit "Adriana [bends over her desk|kneels on the salvaged couch|lies back with her knees pulled up to her chest] and [spits on|lubes up] a [fat plug|glass dildo|toy that's still way smaller than you]. She [works|twists|pushes] it into her tight little asshole [slowly|one careful inch at a time], [whimpering|biting her lip|breathing hard through her nose] as her ring stretches around it. The whole time [her eyes stay on your crotch|she keeps glancing at the bulge in your pants|she's obviously doing the math on your crotch], and she [goes a little deeper with every breath|pumps it until it slides in and out easy|holds it all the way in until she stops shaking]. She's training that hole for the day she finally takes your massive black dick up her ass, and she [wants you there to watch the progress bar fill up|wants you to see how close she's getting].">></p>
<<set _randomvid = either("img/adriana/anal_practice_1.webm","img/adriana/anal_practice_2.webm","img/adriana/anal_practice_3.webm","img/adriana/anal_practice_4.webm")>>
<<video _randomvid>>
<</linkreplace>><br>
<</if>>
<<if $hacker_level == 7 && $hacker_sex_level < 3>>
<div class="req">She keeps glancing at her glass plugs like there's something she wants to ask you. (Fuck her pussy: $hacker_sex_level/3)</div>
<<elseif $hacker_level == 8>>
<<if $princess_reroute == 1>><p>A Marketplace box stamped REPLACEMENT SHIPMENT - NO CHARGE sits open on her bench, and she keeps asking who you know.</p><</if>>
<<if setup.princess.ready() && $hacked_had_sex_today == 0 && $energy >= 5>>
[[The princess is ready|Adriana Princess Night]]<br>
<<elseif not setup.princess.ready()>>
<<if setup.princess.ordered("costume") && setup.princess.ordered("anal_lube")>>
<div class="req">The courier hasn't dropped off the dress and the lube yet. Tomorrow.</div>
<<else>>
<div class="req">No dress and no heavy-duty lube means no princess night. Go through her cart first.</div>
<</if>>
<<elseif $hacked_had_sex_today > 0>>
<div class="req">The dress is here, but she wants a fresh day for this - no other round with her first.</div>
<<else>>
<div class="req">The dress is here, but the princess night takes more than you've got left. (5 energy, you have $energy.)</div>
<</if>>
<<elseif $hacker_level >= 9>>
<div class="req">This is the end of story content for Adriana for now. She can still make fake IDs, scrub heat and prepare materials for room 021.</div>
<</if>>
<</if>>
<<if not _canPlay>>
<<speech "Adriana" "You look like the bus chewed you up on the way over. Go sleep, daddy - I'll still be here.">>
<div class="req">Whatever she has in mind takes more out of you than you've got left. (3 energy, you have $energy.)</div>
<<elseif $hacked_had_sex_today == 1>>
<div class="req">She's good for one more round today if you've got it in you.</div>
<</if>>
<<else>>
<<speech "Adriana" "Hey, it was fun, but I need to recover... And you too. Come back tomorrow, black daddy~">>
<</if>>
<<if $hacker_level == 7 && $hacker_sex_level >= 3>>
[[She's ready for one last hole|Adriana Princess List]]<br>
<</if>>
[[Back|Hacker]]<<speech "Adriana" "Fuck, I'm all wet just thinking about what you could pack down there in your pants...">>
<p>Somehow, Adriana has already lost most of her clothing except for overly sexy lingerie and is now seductively showing off her slender body. You feel blood starts pumping down in your manhood.</p>
<<video "img/adriana/blowjob_1.webm">>
<<speech "Adriana" "But you should know that I'm a nice girl, and nice girls don't fuck with someone they just met. So it's only a blowjob today.">>
<p>Her hands gently caress the visible bulge forming on your pants. You don't feel particularly attracted to the weird, out-of-your-world hacker, but you can't deny she's seductive as hell; you can agree to a lot of things as long as she keeps squeezing your dick.</p>
<<video "img/adriana/blowjob_2.webm">>
<p>Adriana kneels and slowly pulls off your pants, revealing your semi-hard dick. Even in its flaccid state, it impresses the girl; everything seems tiny compared to your massive, gargantuan cock. Adriana takes some time to worship it: squeezing, sniffing, kissing. When her lips finally wrap around your shaft, you're ready to melt.</p>
<<video "img/adriana/blowjob_3.webm">>
<p>Adriana gives her best, trying to please you, but you're just too big for her tiny mouth. She's excellent at sucking your glans, and you can't deny her tongue work is pleasant, but you want to go deeper.</p>
<<video "img/adriana/blowjob_4.webm">>
<p>Your hand grasps the back of her head and pushes Adriana deeper on your big black cock. It repeatedly hits her throat, and you manage to face-fuck this slut for some time, to the surprise of both of you. One day, she'll be ready for bbc deepthroat, but not today. It's time to finish.</p>
<<video "img/adriana/blowjob_5.webm">>
<p>You finish it yourself, working your fist while she kneels there getting her breath back, her hand cupping your balls, thumb moving in slow circles. Her voice has gone hoarse and she is still talking, telling you where she wants it, bossy even now.</p>
<<video "img/adriana/blowjob_6.webm">>
<p>You had been aiming for her face. She sticks her tongue out flat and waits for it instead, eyes up, absolutely shameless, and you give her what she asked for and watch her swallow. Adriana, faithful to her nice-girl demeanor, finishes every last drop.</p>
<<speech "Adriana" "~Looking forward to working with you~">>
<<speech "You" "That's mutual.">>
/* Math.max: Target1 can still send a save here after a cheat has moved her
further up the ladder, and this beat must not pull her back down. */
<<set $hacker_level to Math.max($hacker_level, 2)>>
<<set $hacked_had_sex_today += 1>>
<<statchange "energy" -3>>
<<if $target1 == 2>>
<<link "Now, I have a job to do" "The hideout">>
<<set $target1 to 3>>
<</link>>
<<else>>
<<return>>
<</if>><<set _line = either("I've missed your taste","How can it fit inside my mouth?","Hope I won't dislocate my jaw...", "I love wrapping my lips around your girthy black meat~","I love the way you fill my mouth.","Let me worship you like you deserve.","I'm going to savor every inch.")>>
<<speech "Adriana" _line>>
<p><<sayit "Adriana [gets on her knees|kneels|goes down] and [quickly puts her lips to work|starts sucking your dick|immediately starts to blow]. [Hacker with a sharp tongue|Bratty hacker], she's much more tolerable when [her mouth is stuffed|she is busy|her mouth is fully occupied] with your big black cock, and you enjoy the silence that is interrupted only by loud [slurping|gagging] from a very sloppy blowjob. Still, Adriana is [becoming a great cocksucker|doing a great job with her mouth|handles your cock extremely well], and you reward her with a [load of your semen|cumshot straight|protein load delivered] into her [throat|mouth|face].">></p>
<<set _randomvid = either("img/adriana/bj_common_1.webm","img/adriana/bj_common_2.webm","img/adriana/bj_common_3.webm","img/adriana/blowjob_3.webm","img/adriana/blowjob_4.webm")>>
<<video _randomvid>>
<<set $hacker_bj_level += 1>>
<<set $hacked_had_sex_today += 1>>
<<statchange "energy" -3>>
/* Only a level-2 save advances. The Blowjob link stays open at every later
level, and the counter reaching 3 there must not pull her back to 3. */
<<if $hacker_level == 2 && $hacker_bj_level < 3>>
<div class="req">Keep training her mouth to unlock new scenes: $hacker_bj_level/3</div>
<<elseif $hacker_level == 2>>
<p>New scenes unlocked! Number of blowjobs from Adriana: $hacker_bj_level</p>
<<set $hacker_level to 3>>
<<else>>
<p>Number of blowjobs from Adriana: $hacker_bj_level</p>
<</if>>
[[Go back|AdrianaSex]]<p>It's not that you don't enjoy the occasional blowjob from Adriana - on the contrary, the girl knows her way around a dick. Rather, you are taunted by her staunch desire to keep it oral only.</p>
<<speech "You" "Hey, are you sure you don't want to do something more? I can be gentle, and if you get uncomfortable, I'll stop right away.">>
<<speech "Adriana" "You'll ruin me with that massive thing of yours! I don't want to have a massive gaping hole between my legs. Besides, my mouth can do everything my other holes do, even better.">>
<<speech "You" "Oh really? Are you sure?">>
<<speech "Adriana" "Of course I am sure...">>
<p>You get tired of this constant cockblocking, and decide to hold Adriana to her word.</p>
<<speech "You" "OK then, let's test what your mouth can really do.">>
<p>Adriana snorts, confident that she stood her ground, and reaches for your penis.</p>
<<speech "You" "Wait. Did I tell you you can suck my cock yet?">>
<<speech "Adriana" "Eh... No?">>
<<speech "You" "You can start with my ass today. Show me, is your mouth that versatile, as you say?">>
<<video "img/adriana/facefuck/1_rimming.webm">>
<p>She giggles and accepts the game you play. You must say, not only she looks at her place when her face is buried in your ass, but her tongue is really doing good work stimulating your sensitive parts. You feel surprisingly great from her rimjob but get even more enjoyment degrading this over-confident brat.</p>
<<speech "You" "Hey, you look like you're enjoying eating my ass a little too much.">>
<<speech "Adriana" "Mmmm, you're right... Can I suck your cock now, please?">>
<<speech "You" "Not yet. My balls are very curious about what your mouth can do to them.">>
<<video "img/adriana/facefuck/2_balls.mp4">>
<p>Fully in submissive mode, Adriana switches to playing with your ballsack. A gamer girl, she all too well knows what teabagging means. She's so eager to gobble your nuts that you're almost afraid for your jewels; it's better to move forward, at last.</p>
<<speech "You" "You can suck my dick now, slut.">>
<<speech "Adriana" "Finally!">>
<<video "img/adriana/facefuck/3_blowjob.mp4">>
<p>You can see that she's hungry for your black meat, but she shows incredible restraint by slowly licking your shaft and carefully sucking your tip - but then succumbing to the desire to stuff her mouth thoroughly with your dick.</p>
<<video "img/adriana/facefuck/4_deep_throat.webm">>
<p>She won't get away with a simple blowjob. Today, you are going to test how deep she can take you in her mouth. First, you just shove your dick deeper into her throat; it's a mess of saliva and your pre-cum, but Adriana loves the way you almost choke her with your dick. That easy, huh? Let's try something else then.</p>
<<speech "You" "If you say your mouth is better than your pussy, I'll fuck it like it's a pussy.">>
<<video "img/adriana/facefuck/5_facefuck.mp4">>
<p>You turn Adriana around and slam your cock inside her mouth. Well-lubed after a very sloppy blowjob, it does feel like a pussy that you could just slam balls-deep; you have to remind yourself that you can choke the poor girl with your monster cock, but it just feels so good!</p>
<<speech "Adriana" "*gag-gag-gag* I'm... If you continue like that, I'll puke...">>
<div id="choice-container">
<<linkreplace "Then puke, bitch!">>
<<replace "#output">>
<<video "img/adriana/facefuck/6_puke.mp4">>
<p>You don't really care what's happening down there; if anything, the counterflow of vomit feels great on your dick. Occasionally, you give Adriana a breather before slamming your dick back down her throat, making her puke some more. Her face is a mess; there is a puddle of vomit below her, and this whole scene would gross you out if you didn't enjoy dominating Adriana so much.</p>
<<include "AdrianaFirstFF Tail">>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Then puke, bitch!"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Slow down">>
<<replace "#output">>
<<video "img/adriana/facefuck/7_breather.mp4">>
<p>Not wanting to make a mess, you pull out your dick from her throat and slap her face with it. It's all slimy and gooey, and now her face is too; if she can't handle a facefuck, she'll have to endure being your cumrag.</p>
<<include "AdrianaFirstFF Tail">>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Slow down"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>/* The shared ending of AdrianaFirstFF, included by both of its choices so the
last clip and the level-up only show once one of them is picked. */
<<video "img/adriana/facefuck/8_cum.webm">>
<p>You can't continue like that for long - threatening Adriana's mouth like a fuckhole is too much, and eventually, you pull out and cum at her messy face. Your semen mixes up with the slimy mix of fluids on her face, adding some proteins to the weird facial mask.</p>
<<speech "Adriana" "Fuck... My throat is sore.">>
<<speech "You" "Maybe your mouth is not good for everything, after all?">>
<<speech "Adriana" "Hey, didn't I do good?">>
<<speech "You" "Very good. But one day, I might choke you with my dick like that.">>
<<speech "Adriana" "Haha, what a nice way to go... But yes, you're right. I'll start training my other holes for your monster cock~">>
<<set $hacker_level = 4>>
<<set $hacked_had_sex_today += 1>>
<<statchange "energy" -3>>
<<return>><<set _line = either("*gag-gag-gag*","I've almost puked, fuck","Choke me with your big black cock!", "My throat needs some stretching","I love when you use my mouth like a hole to fuck!","Try to push it balls deep this time, OK?","Use my mouthpussy as you please, daddy~","The only fucks I give is facefucks, OMG I'm so lame")>>
<<speech "Adriana" _line>>
<p><<sayit "You [go wild|don't hold yourself up|resist the temptations] when Adriana wraps her lips around your [big black cock|massive penis|monster dick], and start [deepthroating|facefucking|skullfucking] this [slut|bitch|brat] without mercy. It's [loud and messy|wet and sloppy|rough and messy], but the girl takes it deeper with every thrust until [you're cumming while balls-deep in her mouth|you cum straight down her throat|she can lick your balls while you cum in her mouth]. ">></p>
<<set _randomvid = either (1,2,3,4)>>
<<if _randomvid == 1>>
<<pic "img/adriana/ff_common_1.webp">>
<<elseif _randomvid == 2>>
<<pic "img/adriana/ff_common_2.webp">>
<<elseif _randomvid == 3>>
<<video "img/adriana/ff_common_3.webm">>
<<else>>
<<video "img/adriana/ff_common_4.webm">>
<</if>>
<<set $hacker_ff_level += 1>>
<<set $hacked_had_sex_today += 1>>
<<statchange "energy" -3>>
/* Only a level-4 save advances; the Facefuck link is open at 4 and 5. */
<<if $hacker_level == 4 && $hacker_ff_level < 3>>
<div class="req">Keep facefucking her mouth to unlock new scenes: $hacker_ff_level/3</div>
<<elseif $hacker_level == 4>>
<p>New opportunities unlocked! Times facefucked: $hacker_ff_level</p>
<<set $hacker_level to 5>>
<<elseif $hacker_ff_level <= 6>>
<p><em>Her gag reflex gave up arguing a while ago. She times her breathing to you now.</em></p>
<<elseif $hacker_ff_level <= 10>>
<p><em>She keeps a towel on the desk for this. Not for you - she hates redoing her eyeliner.</em></p>
<<else>>
<p><em>You've taken more from that mouth than most men get from a whole marriage, and she still opens it grinning.</em></p>
<</if>>
[[Go back|AdrianaSex]]/* Charged once at the head of the chain, not per passage inside it. */
<<set $hacked_had_sex_today += 1>>
<<statchange "energy" -3>>
<<speech "You" "So... why are we doing this?">>
<<pic "img/adriana/gloryhole/what.jpg">>
<<speech "Adriana" "Excuse me? You don't like my blowjobs?">>
<<speech "You" "It's nice, but... what do you get from it?">>
<p>Adriana takes a deep breath and raises her voice:</p>
<<speech "Adriana" "I get to satisfy my progressive obsession with interracial porn that I consume unhealthy amounts of, in part because of working for you guys! So it's kinda your responsibility to keep me satisfied with your big black cocks, you know!">>
<<speech "You" "Wait, so Jamal is visiting you too?">>
<p>She frowns.</p>
<<speech "Adriana" "Nah... He intends to keep it professional... Anyway...">>
<p>You have no desire to get into Adriana's head further. Keep her entertained and, in exchange, receive favors from her - good enough.</p>
<<speech "Adriana" "I think my little pussy is ready for your monster, yay! But I'm kinda still afraid. I'd like to have total control, just in case... Can I tie you up?">>
<<speech "You" "Fuck no. You're too crazy.">>
<<speech "Adriana" "Fair. Well... got any other ideas?">>
<<if $gloryhole_ulocked == 1>>
<<speech "You" "I know a place with a gloryhole. A wall will separate us, and you can play with my dick in any way you wish.">>
<<speech "Adriana" "Look at you go, you kinky bastard! Inviting a lady to the gloryhole, of course I'm in!">>
<div class="req">Meet Adriana in the bar's gloryhole.</div>
<<set $hacker_gh_stage = 1>>
<<else>>
<<speech "You" "Nothing comes to mind right now... I'll get back to you.">>
<div class="req">Maybe you can find a gloryhole somewhere?</div>
<</if>>
[[Leave|The Hood]]<p>You head to the gloryholes after the bartender informs you about "the lady waiting." Knowing that behind the wall, there is a less-stable almost-crazy chick is concerning, but you put your dick in a hole anyway, hoping for the better.</p>
<<speech "Adriana" "Finally, you here... it is you, right?">>
<p>You're not in the mood for talking and simply nod - with your massive dick that quickly gets enveloped by Adriana's cock-hungry mouth.</p>
<<video "img/adriana/gloryhole/1_bj.webm">>
<<speech "Adriana" "Glog, glog, glog!">>
<p>You can recognize this mouth already and assume that Adriana can identify you by your dick as well. Not wasting much time, she switches from a blowjob to a full-on deepthroat you practiced a lot at her place. You trained to be such a good cocksucker that she could become a pretty popular girl in this establishment...</p>
<<video "img/adriana/gloryhole/2_ff.webm">>
<<speech "Adriana" "Oh fuck... I'm so full... OH MY GAWD! YES, YES, YES!">>
<p>Something changes, and you feel how your dick slides into something hot, tight, and very wet - finally, you've untapped this pussy. Adriana was right to properly stretch herself before attempting to fit your monster cock inside - now, she can easily take your full length while still being comfortable and tight. She has complete control over how deep and fast she can go, but it seems unnecessary - next time, you'll be balls deep inside her cunt, and she will beg for more.</p>
<<video "img/adriana/gloryhole/3_pussy.webm">>
<<speech "Adriana" "Yeah, I'm cumming, cumming, ughhh!">>
<p>This is new - after an intense fucking Adriana pulls your dick out and squirts right on it, abundantly cumming all over your manhood and the wall. She THAT much enjoys proper pussy fucking, and you have a suspicion she'll be booty calling you often from now on.</p>
<<video "img/adriana/gloryhole/4_squirt.webm">>
<p>You warn Adriana that you're about to cum, and she gets on her knees and jerks off your dick - covered in her smelly squirt and slimy pussy juices - until you unload your semen on her tongue. Bratty hacker could not be happier, but you also had your best visit to the gloryhole so far.</p>
<<video "img/adriana/gloryhole/5_cum.webm">>
<p>You give Adriana some time alone to take a breather and return to the bar. On your way out, you meet some white dude heading to the gloryhole:</p>
<<speech "White dude" "Hey bro, is there someone behind the wall today?" "default_male">>
<div id="choice-container">
<<linkreplace "No">>
<<set $hacker_gh_stage = 4>>
<<replace "#output">>
<<speech "White dude" "Fuck, I'm so unlucky. Well, next time, then." "default_male">>
<p>You get back to the bar and wait for Adriana.</p>
[[Leave|AdrianaGloryholeEnd]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"No"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Yes">>
<<set $hacker_gh_stage = 2>>
<<replace "#output">>
<<speech "White dude" "Nice! Let's hope she knows something about pleasing a man!" "default_male">>
<p>Dude is excited to check out the gloryhole, manned by Adriana.</p>
[[Watch for a bit|AdrianaGloryholeShare]]<br>
[[Leave|AdrianaGloryholeEnd]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Yes"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Maybe (pimp Adriana)">>
<<set $hacker_gh_stage = 3>>
<<replace "#output">>
<p>You're unsure where this is coming from, but fighting this impulse is too hard.</p>
<<speech "White dude" "What do you mean, maybe?" "default_male">>
<<speech "You" "It's my girl behind the wall. Give me $10, and she can serve you, too." "default_male">>
<<speech "White dude" "But I've paid on the bar already!" "default_male">>
<<speech "You" "Believe me, she's worth every penny." "default_male">>
<p>The dude is hesitant but too horny to decline your offer.</p>
<<speech "White dude" "Fuck you, pimp, here's your cash! Now fuck off!" "default_male">>
<<statchange "money" 10>>
<p>He throws some cash at you and goes to the gloryhole.</p>
[[Watch for a bit|AdrianaGloryholeShare]]<br>
[[Leave|AdrianaGloryholeEnd]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Maybe (pimp Adriana)"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div><p>You find a spot where you can peek at what's happening without anyone noticing. Adriana was getting dressed and ready to leave when she saw the next dick appearing in the hole. For a moment, she looks confused - but in a blink of an eye, she gets her mouth to work on a stranger's cock.</p>
<<video "img/adriana/gloryhole/6_dress.webm">>
<<if $hacker_gh_stage == 2>>
<<speech "White dude" "So fucking deep!" "default_male">>
<<else>>
<<speech "White dude" "Take it deeper, whore! Earn your pay!" "default_male">>
<</if>>
<<video "img/adriana/gloryhole/7_ff.webm">>
<p>Adriana has no problem deepthroating the white guy after extensive practice with your black cock. It's a bit sloppy, though, and the saliva ropes join the squirt puddle on the floor under the hole. You've seen enough - time to grab a cold one at the bar.</p>
[[Leave|AdrianaGloryholeEnd]]<<pic "img/general/bar_1.jpg" "location">>
<<if $hacker_gh_stage == 4>>
<p>Adriana joins your booth shortly after.</p>
<<speech "Adriana" "That was fun! I'd say I would visit the gloryhole often, but I might just got addicted to your black monster today.">>
<<speech "You" "Let's hope rehab can fix that.">>
<<speech "Adriana" "Haha, you wish! See you next time, black daddy!">>
<<else>>
<p>It takes some time before Adriana joins you in the bar. Her face is plastered with the stranger's cum, but no one in the bar seems to notice that.</p>
<<speech "Adriana" "What, is there little something on my face?">>
<<pic "img/adriana/gloryhole/facial.webp">>
<<speech "You" "I'd offer you a napkin, but you clearly prefer the 'hands-free' approach.">>
<<speech "Adriana" "Hey, I do use my hands during the blowjob! Anyway... You seem awfully calm about your girl being violated in the bar backrooms!">>
<<speech "You" "Just because I know that slut like you would enjoy the opportunity to suck on some stranger's cock.">>
<<speech "Adriana" "And I did... But it's true that once you go black, you never go back. It was fun, but serving your massive black monster is way more enjoyable.">>
<<pic "img/adriana/gloryhole/cleanup.webp">>
<p>Adriana pauses to clean her face by collecting cum with her fingers and then licking them spotless. Now she gets some attention from the bar patrons, who wish they visited the gloryhole while she was there.</p>
<<if $hacker_gh_stage == 2>>
<<speech "Adriana" "If you don't mind sharing... We could have a lot of fun here. Just look at them, gazing over the body of your hot slut.">>
<<speech "You" "Let's think about it.">>
<p>After some time, you leave the bar and part ways.</p>
<<else>>
<<speech "Adriana" "One more thing before we go. The dude was talking something about money - do you know anything about it?">>
<<speech "You" "Oh yes, sure. Here's your cut.">>
<p>You take out two folded 5-dollar bills, demonstratively keep one for yourself, and give another to Adriana.</p>
<<statchange "money" -5>>
<<speech "Adriana" "So you're telling me that I just sucked someone's dick for a fiver? That's too cheap!">>
<<pic "img/adriana/gloryhole/disgust.jpg">>
<<speech "You" "I love the fact that you're grossed out not because I sold your oral services but because of the price I set.">>
<<speech "Adriana" "Well, that's too! I guess... I'm not sure... Why do I like the fact you made me a cheap cock-sucking whore?">>
<p>You're saying things you would never say, but you weirdly enjoy taking control of this strange dynamic between you and Adriana.</p>
<<speech "You" "Because brats like you enjoy making their daddies happy. I'm your daddy, and I liked pimpin' you out.">>
<p>Adriana bites her lip. She did not expect that from you when she playfully called you daddy or teased you with her bratty attitude.</p>
<<speech "Adriana" "You know... For someone who dislikes racial stereotypes, you're an awfully good pimp. I'm ready to go back working that dollar for you, you bastard.">>
<<speech "You" "Next time, when I'll get my Cadillac and fur coat.">>
<<speech "Adriana" "Haha, I'd love to see you in that!">>
<p>Well, that was fun. You spend some more time in the bar and then part ways. Have you gone too far?</p>
<p>Oh yes.</p>
<</if>>
<</if>>
<<if $school_unlocked == 1>>
<<speech "Adriana" "Before we go, you still need that ID? Come to my place and I'll fix you up.">>
<</if>>
<<set $hacker_level = 6>>
<div class="req">Adriana has one more invitation waiting at her lair.</div>
[[Leave|The Hood]]<p>Adriana shuts down the monitors one by one, leaving only the daylight lamp over the salvaged couch. Without the blue screen glow she looks younger, smaller, and considerably less certain than she did behind a keyboard.</p>
<<speech "Adriana" "I have been thinking about this since the bar gloryhole. I want you to fuck me. In my nasty fuckhole. Will you fuck me, black daddy?">>
<p>She gives you that smug little grin, expecting another joke, but you are done letting her steer the room with it. You hate this nickname. She knows it.</p>
<<speech "You" "Lie down. Legs up. Now.">>
<p>Her grin turns hungry. Adriana strips in a rush, drops onto the salvaged couch, and folds herself into a deep plough: knees pulled past her shoulders, thighs spread wide, dripping pussy presented right over her own face. Her lips part underneath it as she looks up at you, suddenly very aware of what she has asked for.</p>
<<speech "Adriana" "Fuck... yes. Use me, daddy. Please.">>
<p>You take both hips in your hands and drive into her wet cunt. The angle makes every thrust hit hard and deep, leaving her folded around your cock while you use her body like the toy she offered to be. Her fingers claw at the cushions, but she keeps her legs high, panting and begging into the heat and slick that gathers against her mouth.</p>
<<video "img/adriana/stage7_sex.webm">>
<<speech "Adriana" "Don't slow down. Fuck my pussy, please - fuck me harder!">>
<p>Her teasing is gone now. There is only Adriana trembling around you, soaking the couch beneath her, and pushing her hips back into your grip every time you pull her close.</p>
<<speech "Adriana" "Cum in me! I want it inside, daddy!">>
<p>You bury yourself to the hilt and unload. With her cunt directly above her face, the spill and overflow have nowhere else to go: warm streaks run down over her swollen lips while the rest stays pumped deep inside her. Adriana opens her mouth beneath herself, tasting the proof of what you gave her as she shakes through the last of it.</p>
<<video "img/adriana/stage7_creampie.webm">>
<<speech "Adriana" "Holy fuck... that was exactly what I wanted.">>
<p>She slowly unfolds, flushed, soaked, and smiling like she has just won an argument. After a minute she reaches for her laptop again, still leaking your cum and muttering something incomprehensible.</p>
<<statchange "energy" -3>>
<<statchange "respect" 2>>
<<set $hacked_had_sex_today += 1>>
<<set $hacker_level = 7>>
[[Back to the lair|Hacker]]<<set _line = either("Skip the foreplay, I got wet the second you walked in","My pussy's been aching for your monster all day~","Harder than last time, OK? I want to feel it when I sit down tomorrow","I left a raid for this, so you better wreck me","Stretch me out, daddy, I can take all of it now~","Time to overclock this white pussy, lol","Ruin my little pussy, black daddy~")>>
<<speech "Adriana" _line>>
<p><<sayit "[Before you get your pants off|Before you even say hi|The second the door shuts], Adriana is already [bent over her desk|spread out on the salvaged couch|on her back with her knees folded to her chest], [begging|whining] for your [big black cock|monster dick]. Her pussy is [soaking wet|already dripping|slick and swollen], but still tight enough that the first thrust [splits her open|stretches her lips wide around you]. You pound that [greedy pussy|bratty cunt|needy little hole] [hard and deep|without mercy|like you're trying to break it], and pretty soon that smart mouth of hers can't manage anything but [broken squeals|choked-off screams|drool and babbling]. Then you [bury yourself to the hilt|slam in one last time|pin her hips down] and [pump your load deep inside her|flood her cunt with cum] while her [juices run down your balls|legs shake around you|squirt splashes your thighs].">></p>
<<set _randomvid = either("img/adriana/vaginal_common_1.webm","img/adriana/vaginal_common_2.webm","img/adriana/vaginal_common_3.webm")>>
<<video _randomvid>>
<<set $hacker_sex_level += 1>>
<<set $hacked_had_sex_today += 1>>
<<statchange "energy" -3>>
<<if $hacker_level == 7 && $hacker_sex_level < 3>>
<div class="req">Keep fucking her pussy to unlock new scenes: $hacker_sex_level/3</div>
<<elseif $hacker_level == 7 && $hacker_sex_level == 3>>
<p>New scenes unlocked! Times you've fucked her pussy: $hacker_sex_level</p>
<<else>>
<p>Times you've fucked her pussy: $hacker_sex_level</p>
<</if>>
<<if $hacker_sex_level <= 2>>
<p><em>She still flinches when you first push in, and a second later she's grabbing your hips to pull you deeper.</em></p>
<<elseif $hacker_sex_level <= 4>>
<p><em>She has started blocking out time for you in her calendar.</em></p>
<<else>>
<p><em>For a girl who was scared you'd leave her gaping, she spends a suspicious amount of time checking herself on the webcam afterwards, and looks almost disappointed when she closes back up.</em></p>
<</if>>
[[Go back|AdrianaSex]]/*
<<princessboard>> - Adriana's princess night list as a checklist: one row per
item with an essential/extra chip and where the item stands. Item data and the
status wording live in setup.princess (StoryScript.js). It deliberately says
nothing about what an extra unlocks.
*/
<<widget "princessboard">>
<div class="closet-board">
<div class="board-title">Her Royal Highness's list</div>
<<for _princessItem range setup.princess.items>>
<div class="board-row"><span class="board-label"><<if _princessItem.essential>><span class="task-tier tier-dirty">essential</span><<else>><span class="task-tier tier-safe">extra</span><</if>><<print _princessItem.name>></span><span class="board-value"><<print setup.princess.status(_princessItem.id)>></span></div>
<</for>>
</div>
<</widget>><<pic "img/adriana/anal_intro.jpg">>
<p>Adriana isn't at her screens. She's cross-legged on the salvaged couch, rolling a glass plug between her fingers the way other girls fidget with a lighter, and she watches you cross the room like she rehearsed an opening line and just forgot it.</p>
<<speech "Adriana" "Okay, so. Mouth - done, you've had it every way a mouth goes. Pussy - done, lol, obviously. That leaves exactly one hole I haven't given you.">>
<<speech "You" "You've been training it for weeks. I've watched.">>
<<speech "Adriana" "Training it, yes. Giving it, no. And I'm not handing it over on some random Tuesday between a firmware dump and cold pizza, bent over the desk like it's nothing.">>
<p>She pulls a sheet of paper out from under the cushion. It's printed, because of course it's printed, and somebody has drawn a crown over the header in purple highlighter.</p>
<<speech "Adriana" "It's the last one, daddy. After this there's nothing on me you haven't had. So I want it done properly. I want to be a princess: dressed up, crowned, treated like royalty right up to the second you ruin me.">>
<<princessboard>>
<p>Her margin notes are worse than the list. Next to the dress she's written <em>ESSENTIAL, because I want to be treated like one</em>, with <em>SHORT. I said princess, not nun</em> squeezed in underneath. The lube gets <em>ESSENTIAL, because you're a monster</em>, the balls get <em>BLUE. To match the dress</em>, and at the very bottom, circled twice, she's added <em>#7 only if you got #3. Don't ask.</em></p>
<<speech "You" "What makes something essential?">>
<<speech "Adriana" "Essentials unlock the level. Extras unlock the side content. You can speedrun me with two items if you want to be that guy, but I'm a hundred-percent-completion girl.">>
<<speech "You" "And who's paying for the crown?">>
<<speech "Adriana" "Um, you? A princess doesn't buy her own dress. That's literally the whole point of being one.">>
<p>Most of the list reads like a sex-shop catalog, except for the balls and the tube.</p>
<<speech "Adriana" "Those two aren't sex-shop stock. And a bag of plastic balls plus aquarium tubing in the same basket as a crown and anal lube looks like a very weird birthday party. Be creative, think of something! You work in a school, you go to the bars...">>
<<set $hacker_level = 8>>
<div class="req">Adriana handed you her list. Go through her cart with her, and find the rest yourself.</div>
[[Go through her cart|Adriana Princess Cart]]<br>
[[Back|Hacker]]<!-- IMAGE: Adriana's middle monitor showing a glossy online store, a crown in the cart -->
<p>Adriana swings the middle monitor round on its arm. You were braced for some onion address with a skull for a logo. What you get is a big glossy store with a pink banner, four-and-a-half-star reviews and a "customers also bought" row that never ends. Every item on it is perfectly legal, and it all ships next day, even to a condemned industrial district.</p>
<<speech "Adriana" "Isn't capitalism beautiful? They can't get insulin past that wall of yours, but anal lube lands on my doorstep by ten a.m. with a smiley face on the box.">>
<<if $warehouse_manager_stage >= 4 && setup.princess.cartLeft().length > 0>>
<p>The logo on the product boxes is the one printed on every tote you've hauled at the Marketplace warehouse. Up on a mezzanine over those aisles, a floor manager who owes you a blind eye could make a box like this go astray.</p>
<</if>>
<<if setup.princess.cartLeft().length == 0>>
<p>Her cart is empty. Everything on the list that a store sells already has a tracking number.</p>
<<else>>
<div id="choice-container">
<<if not setup.princess.ordered("costume")>>
<<if $money >= 35>>
<<linkreplace "The dress, crown and gloves ($35)">>
<<pic "img/adriana/dress.jpg">>
<<if $money >= 35>>
<<speech "Adriana" "Short blue dress, little crown, long white gloves. Not the eight-dollar polyester one, I'll know. Top review says 'my husband cried'. Sold.">>
<<statchange "money" -35>>
<<set $princess_kit.costume = $day + 1>>
<div class="req">Arrives at her lair tomorrow.</div>
<<replace "#princess-board">><<princessboard>><</replace>>
<<else>>
<<speech "Adriana" "You just spent that, sweetie. Come back heavier.">>
<</if>>
<</linkreplace>><br>
<<else>>
<div class="req">The dress, crown and gloves: $35. (You have <<print "$" + $money>>.)</div>
<</if>>
<</if>>
<<if not setup.princess.ordered("anal_lube")>>
<<if $money >= 15>>
<<linkreplace "Heavy-duty anal lube ($15)">>
<<if $money >= 15>>
<<speech "Adriana" "It says 'professional strength' on the bottle, like there's a union. For the size of you, daddy, this isn't a treat. It's safety equipment.">>
<<statchange "money" -15>>
<<set $princess_kit.anal_lube = $day + 1>>
<div class="req">Arrives at her lair tomorrow.</div>
<<replace "#princess-board">><<princessboard>><</replace>>
<<else>>
<<speech "Adriana" "You just spent that, sweetie. Come back heavier.">>
<</if>>
<</linkreplace>><br>
<<else>>
<div class="req">Heavy-duty anal lube: $15. (You have <<print "$" + $money>>.)</div>
<</if>>
<</if>>
<<if not setup.princess.ordered("cum_lube")>>
<<if $money >= 15>>
<<linkreplace "Thick white cum-effect lube, three bottles ($15)">>
<<if $money >= 15>>
<<speech "Adriana" "Thick, white, 'realistic texture', and it comes in a three-pack. Stop making that face. We'll use every bottle.">>
<<statchange "money" -15>>
<<set $princess_kit.cum_lube = $day + 1>>
<div class="req">Arrives at her lair tomorrow.</div>
<<replace "#princess-board">><<princessboard>><</replace>>
<<else>>
<<speech "Adriana" "You just spent that, sweetie. Come back heavier.">>
<</if>>
<</linkreplace>><br>
<<else>>
<div class="req">Thick white cum-effect lube, three bottles: $15. (You have <<print "$" + $money>>.)</div>
<</if>>
<</if>>
<<if not setup.princess.ordered("glass_straight")>>
<<if $money >= 30>>
<<linkreplace "Glass dildo, thick and straight ($30)">>
<<pic "img/adriana/toy_smooth.jpg">>
<<if $money >= 30>>
<<speech "Adriana" "Borosilicate, thick, straight, dishwasher safe. Every review calls it 'hefty'. A princess needs a scepter.">>
<<statchange "money" -30>>
<<set $princess_kit.glass_straight = $day + 1>>
<div class="req">Arrives at her lair tomorrow.</div>
<<replace "#princess-board">><<princessboard>><</replace>>
<<else>>
<<speech "Adriana" "You just spent that, sweetie. Come back heavier.">>
<</if>>
<</linkreplace>><br>
<<else>>
<div class="req">Glass dildo, thick and straight: $30. (You have <<print "$" + $money>>.)</div>
<</if>>
<</if>>
<<if not setup.princess.ordered("glass_shaped")>>
<<if $money >= 40>>
<<linkreplace "Glass dildo, ribbed ($40)">>
<<pic "img/adriana/toy_ribbed.jpg">>
<<if $money >= 40>>
<<speech "Adriana" "The ribbed one. Every ridge goes pop on the way in and pop on the way out. It's the most expensive thing in the cart, and I've watched the product video eleven times.">>
<<statchange "money" -40>>
<<set $princess_kit.glass_shaped = $day + 1>>
<div class="req">Arrives at her lair tomorrow.</div>
<<replace "#princess-board">><<princessboard>><</replace>>
<<else>>
<<speech "Adriana" "You just spent that, sweetie. Come back heavier.">>
<</if>>
<</linkreplace>><br>
<<else>>
<div class="req">Glass dildo, ribbed: $40. (You have <<print "$" + $money>>.)</div>
<</if>>
<</if>>
</div>
<</if>>
<div id="princess-board"><<princessboard>></div>
[[Back|Hacker]]<<schoolphase>>
<<pic "img/adriana/balls.jpg">>
<p>The confiscation tub lives under the front-office counter: a big plastic storage box of everything this building has taken off its students. Phones waiting out their sentences, a dozen vapes, a laser pointer, somebody's retainer in a sandwich bag. The secretary guards it the way a dragon guards gold, if the dragon wore a floral blouse.</p>
<<if _sphase == 1>>
<<speech "Secretary" "Absolutely not. That box is school property." "default_female">>
<p>Then a teacher she likes leans over the counter with her coffee and mentions you're the one who got the staff room radiator working before the cold snap. The secretary sighs through her nose like the favor is being taken out of her own purse.</p>
<<speech "Secretary" "Five minutes. Touch nothing with a battery in it." "default_female">>
<<else>>
<<speech "Secretary" "Five minutes, Mr. $player_surame. And I didn't see you." "default_female">>
<p>A few months ago she'd have called security. Now half this building owes you something, and she has worked out which half she'd rather be on.</p>
<</if>>
<p>Under the vapes there's a mesh drawstring bag of hard plastic balls, the size you'd find in a kids' ball pit, confiscated after somebody spent a whole chemistry period lobbing them at the whiteboard. Three blue, three pink, and you take the whole bag.</p>
<<speech "Secretary" "And what does the custodial staff need those for?" "default_female">>
<<speech "You" "Gender reveal.">>
<p>She writes something down anyway.</p>
<<statchange "school_rep" -3>>
<<set $princess_kit.balls = $day>>
<div class="req">Three blue and three pink plastic balls are in your pocket.</div>
[[Back to work|Hallway]]/* Head of the princess night chain: energy and both daily slots are charged
once here, not per passage. Clips are img/adriana/anal_princess_<N>.mp4 -
the numbering has gaps (no 7-9, 17, 21-22, 30, 33, 35). */
<<statchange "energy" -5>>
<<set $hacked_had_sex_today = 2>>
<<set $princess_night = []>>
<p>The livable corner of the lair doesn't look salvaged tonight. Somebody painted the walls a bright, clean white, the couch under the daylight lamp is white now too, and a tall mirror leans against the wall where the crates of dead keyboards used to be, far enough from the racks that even the server hum sounds like it's in another building.</p>
<p>Adriana is at the mirror when you come in. She's done her makeup heavy, thick black mascara and dark lips, and she leans in and kisses her own reflection like she's the one taking herself out tonight. She doesn't stop just because she can see you in the glass.</p>
<<video "img/adriana/anal_princess_1.mp4">>
<<speech "Adriana" "Don't talk yet. Look first.">>
<p>She turns around and gives you the whole outfit: a short blue princess dress that no Disney lawyer would ever sign off on, a small crown pinned into her hair, and long white gloves up past her elbows. She does a slow turn with her hands on her hips, then a curtsy that flashes you everything under the skirt.</p>
<<video "img/adriana/anal_princess_2.mp4">>
<<speech "Adriana" "Well? Say it.">>
<<speech "You" "Your Highness.">>
<<speech "Adriana" "Correct answer.">>
<p>Then she bends at the waist, reaches back with one gloved hand and peels her panties down, taking her time about it. Her little hole is puffy and a bit swollen from all those weeks of glass plugs and practice, and she wants you to see exactly how much work went into it.</p>
<<video "img/adriana/anal_princess_3.mp4">>
<p>The crown slips when she bends, and she fixes it before she does anything else.</p>
<div id="choice-container">
<<linkreplace "Kneel and kiss the royal hole">>
<<run $princess_night.push("worship")>>
<<replace "#output">>
<p>You go down on one knee behind her like she's about to knight you and plant a kiss right on her asshole, then a slow lick for good measure. She squeals and grinds back against your face for a second before she remembers she's royalty.</p>
<<speech "Adriana" "Oh, you're good at this. Okay. Up. The princess has things to show you.">>
[[Follow her to the couch|Adriana Princess Prep]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Kneel and kiss the royal hole"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Slap it and tell her to get on with it">>
<<run $princess_night.push("command")>>
<<replace "#output">>
<p>You give that bare ass a slap that cracks off the new white walls and tell Her Highness to get on with it.</p>
<<speech "Adriana" "Rude. I'm writing that down. I'm also way wetter than I was a second ago, so, um, carry on.">>
[[Follow her to the couch|Adriana Princess Prep]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Slap it and tell her to get on with it"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>/* Her show. With both glass toys she asks which one will gape her the biggest,
and the answer is a forced choice: agree and she puts on the ribbed-glass show
(Adriana Princess Show), brag that your cock will and she skips the toys.
Everything after that lives in Adriana Princess Prep Tail, which reads
_showDone to know whether the show stretched her. */
<<set _ribbed = setup.princess.has("glass_shaped")>>
<<set _straight = setup.princess.has("glass_straight")>>
<<if _ribbed && _straight>>
<p>She settles onto the white couch with both new glass toys across her lap, the thick straight one and the ribbed one, and holds them up to the lamp like she's comparing diamonds. Then she spits on each of them in turn and runs her tongue up the glass.</p>
<<video "img/adriana/anal_princess_4.mp4">>
<<speech "Adriana" "Which one of these will make me gape the biggest?">>
<div id="choice-container">
<<linkreplace "The ribbed one. Show me.">>
<<set _showDone = true>>
<<replace "#output">>
<<speech "Adriana" "Good answer. You're so getting knighted. Sit down and watch.">>
<<include "Adriana Princess Show">>
<<include "Adriana Princess Prep Tail">>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"The ribbed one. Show me."</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Neither. Mine will.">>
<<replace "#output">>
<p>She looks at the bulge in your pants, then at the two glass toys in her gloved hands, and sets them both down on the cushion like she's just been dealt a better card.</p>
<<speech "Adriana" "Cocky. Fine, the toys can wait. You'd better be right.">>
<<include "Adriana Princess Prep Tail">>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Neither. Mine will."</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>
<<elseif _ribbed>>
<p>She settles onto the white couch with the ribbed glass toy in her lap, holds it up to the lamp like a diamond and runs her tongue up every ridge.</p>
<<set _showDone = true>>
<<include "Adriana Princess Show">>
<<include "Adriana Princess Prep Tail">>
<<elseif _straight>>
<p>She lays the thick straight glass on the cushion beside her and pats it like a pet.</p>
<<speech "Adriana" "Not this one. This one's for you to use on me later.">>
<<include "Adriana Princess Prep Tail">>
<<else>>
<p>She settles onto the white couch with nothing in her lap but her own gloved hands, then turns around on the cushions and folds herself over the arm.</p>
<<include "Adriana Princess Prep Tail">>
<</if>>/* Her ribbed-glass show (clips 5-6), included by Adriana Princess Prep. */
<p>She takes the ribbed one, works up a mouthful of spit and lets it drip all over the glass, adds a squirt of the heavy-duty lube to be safe, then lies back on the couch, spreads her legs wide and pushes the massive toy into her ass one ridge at a time.</p>
<<video "img/adriana/anal_princess_5.mp4">>
<p>Once it's in she fucks herself with it, slow at first and then not slow at all, until the tight little hole she started with has stretched into something noticeably bigger.</p>
<<video "img/adriana/anal_princess_6.mp4">>/* The rest of Prep, included after her show or instead of it: the balls, the
gape check and her demand. _showDone is set by Prep when the ribbed-glass
show played, and is undefined otherwise. */
<<set _balls = setup.princess.has("balls")>>
<<if _balls>>
<p>You tip the mesh bag out onto the couch, and three blue balls and three pink ones roll across the white cushions.</p>
<<speech "Adriana" "I said blue.">>
<<speech "You" "Figured we might be doing a gender reveal.">>
<<speech "Adriana" "If anything pink comes out of my ass tonight, you're calling a doctor, not a party planner. Give me the blue ones.">>
<p>She bends over the arm of the couch and you feed them in. The first blue ball goes in with a little push and the second takes a harder one. She insists on trying the third herself, and it barely fits, stretching her wide for a second before it pops back out and bounces away across the floor. She's laughing too hard to hold the other two, and she pushes them out onto the floor one after the other.</p>
<<video "img/adriana/anal_princess_10.mp4">>
<</if>>
<<if _showDone || _balls>>
<p>You crouch behind her to admire the damage. Her gape doesn't close anymore. It just sits there, open and slick, twitching every time she breathes.</p>
<<video "img/adriana/anal_princess_11.mp4">>
<<speech "Adriana" "Is it open? Is it getting nice and open for that big black cock?">>
<<else>>
<p>She spreads her cheeks over the couch arm and shows you what weeks of practice did: a puffy little hole, already soft, winking at you.</p>
<</if>>
<<speech "Adriana" "No more toys. I want a real big black cock in there.">>
[[Give the princess what she wants|Adriana Princess Knees]]<p>She slides off the couch onto her knees in front of you, dress bunched around her hips, crown still perfectly straight.</p>
<<speech "Adriana" "But first you need to be wet, hard and ready. A princess doesn't take anything dry.">>
<p>She starts out polite, little kisses and a lot of tongue, and you give her about ten seconds of that. You know exactly what this mouth can take, so you put a hand behind her head, careful of the crown, and slide down her throat.</p>
<<video "img/adriana/anal_princess_12.mp4">>
<p>Then you fuck her face properly, the way she taught herself to take it all those afternoons at her desk, and for a while you forget you came here tonight for her ass at all. By the time you pull back, your dick is soaked, strung with ropes of spit she keeps slurping back off it.</p>
<<video "img/adriana/anal_princess_13.mp4">>
<p>You slap your cock across her cheeks and smear the mess of spit and ruined mascara all over her face while she begs in muffled moans between slaps.</p>
<<speech "Adriana" "Mmh... I want it in my fucking ass... please... please...">>
<<video "img/adriana/anal_princess_14.mp4">>
[[Give the princess her big black cock|Adriana Princess Anal]]<p>She climbs onto the couch and folds herself over the arm, ass up and head down in the white cushions, and reaches back with both gloved hands to spread herself for you. The crown is hanging on by one bobby pin.</p>
<p>You line up and push in, then pull straight back out. Push in, out again, and every time her hole gapes a little wider before it tries to close. She groans into the cushion. When you finally slide all the way in, balls-deep in one long stroke, her whole body goes rigid.</p>
<<speech "Adriana" "Oh my god, that's deep. That's so deep.">>
<p>You don't slow down, and inside a minute the princess is coming on your cock with nothing touching her pussy at all, shaking and swearing into the upholstery.</p>
<<video "img/adriana/anal_princess_15.mp4">>
<p>She braces her arms and shoulders against the back of the couch and pushes her ass back at you for more. You keep fucking her from behind and pull out all the way every few strokes. She tells you she likes that, and you like the gape you leave behind each time.</p>
<<video "img/adriana/anal_princess_16.mp4">>
<<speech "Adriana" "Don't you dare be done. I'm not even halfway through my list.">>
[[Keep her bent over|Adriana Princess Playground]]/* The player-controlled half of the night. Cum-lube is a one-way switch: the
Bottle segment pushes "glazed", which retires the default-lube entries and
opens their cum-lube versions. Each entry shows once per half. */
<<album "img/adriana/anal_princess_pose_" 2 "jpg">>
<<set _glazed = $princess_night.includes("glazed")>>
<<if _glazed>>
<p>Everything in the corner is white now: the couch, the walls, and the lube running out of her ass and down the backs of her thighs. The crown hangs off one ear, and she's still pushing her ass up for whatever you pick next.</p>
<<elseif $princess_night.length > 1>>
<p>Adriana is where you left her, folded over the arm of the white couch with her head down in the cushions and her ass in the air. Her gape hasn't closed since you walked in, and she wiggles at you to hurry up.</p>
<<else>>
<p>She doesn't get up. She stays folded over the arm of the white couch, head down in the cushions below her ass, gloved fingers still dug into the upholstery, and looks back at you upside down between her own knees.</p>
<<speech "Adriana" "That was the tutorial, daddy. Now pick something.">>
<</if>>
<<if not _glazed && setup.princess.has("cum_lube")>>
<<speech "Adriana" "Open that white bottle whenever you want. Just know that after that, everything is white.">>
<</if>>
<<if not _glazed>>
<<if not $princess_night.includes("back")>>[[Flip her on her back|Adriana Princess Back]]<br><</if>>
<<if setup.princess.has("glass_straight") && not $princess_night.includes("pestle")>>[[Pestle her with the straight glass|Adriana Princess Pestle]]<br><</if>>
<<if setup.princess.has("balls") && not $princess_night.includes("jewels")>>[[Two balls and just the tip|Adriana Princess Jewels]]<br><</if>>
<<if setup.princess.has("cum_lube")>>[[Open the white bottle|Adriana Princess Bottle]]<br><</if>>
<<else>>
<<if not $princess_night.includes("back_glazed")>>[[Flip her on her back again|Adriana Princess Back]]<br><</if>>
<<if setup.princess.has("glass_straight") && not $princess_night.includes("pestle_glazed")>>[[Pestle her glazed ass with the straight glass|Adriana Princess Pestle]]<br><</if>>
<<if setup.princess.has("balls") && not $princess_night.includes("jewels_glazed")>>[[Two balls, and make her push them out|Adriana Princess Jewels]]<br><</if>>
<<if setup.princess.has("glass_shaped") && not $princess_night.includes("ribbed")>>[[The ribbed glass, glazed|Adriana Princess Ribbed]]<br><</if>>
<<if not $princess_night.includes("feed")>>[[Feed it to her off your cock|Adriana Princess Feed]]<br><</if>>
<</if>>
<br>
[[Finish the princess|Adriana Princess Finale]]<<if not $princess_night.includes("glazed")>>
<<run $princess_night.push("back")>>
<p>You haul her off the arm of the couch, flip her onto her back on the white cushions and fold her legs up toward her shoulders, her gloved hands hooked behind her knees to hold them there. Her gape is right there looking up at you. You sink back into it and fuck her ass with her face in plain view, so you get to watch every expression that crosses it.</p>
<<video "img/adriana/anal_princess_27.mp4">>
<<speech "Adriana" "I can see my crown in the mirror. I look so fucking regal right now.">>
<<else>>
<<run $princess_night.push("back_glazed")>>
<p>You flip her again, legs up and gloves hooked behind her knees, only this time she's slick and white from her crack to the small of her back. Every stroke squelches. The fake cum squeezes out around your shaft and runs down onto the cushions, and she can't take her eyes off it.</p>
<<video "img/adriana/anal_princess_28.mp4">>
<<speech "Adriana" "It looks like a whole football team came in my fucking ass. I love it. Keep going.">>
<</if>>
<p>When you're done with that angle, you fold her back over the arm of the couch, head down and ass up.</p>
[[Back to Her Highness's ass|Adriana Princess Playground]]<<if not $princess_night.includes("glazed")>>
<<run $princess_night.push("pestle")>>
<p>You pick up the thick straight glass she saved for you. She stays folded over with her ass up, and you work it into her straight down from above and pump it in short, heavy strokes, up and down like you're grinding something in a mortar. She reaches back between her own legs, finds your cock and jerks you in time with it.</p>
<<video "img/adriana/anal_princess_24.mp4">>
<<speech "Adriana" "Scepter goes in, scepter comes out. I'm the one holding the royal cock, though, so who's really in charge?">>
<<else>>
<<run $princess_night.push("pestle_glazed")>>
<p>The straight glass again, straight down into her from above, but now every stroke pushes white lube back up around it. It spills over her crack and runs down her belly, and with her head lower than her ass, some of it makes it all the way to her mouth. You rub her pussy with your free hand while you pump, and she comes again with fake cum on her lips.</p>
<<video "img/adriana/anal_princess_26.mp4">>
<<speech "Adriana" "It's in my mouth. It's actually in my mouth. Do not stop.">>
<</if>>
[[Back to Her Highness's ass|Adriana Princess Playground]]<<if not $princess_night.includes("glazed")>>
<<run $princess_night.push("jewels")>>
<p>You push two of the balls back into her ass, and they go in easily now. She looks back at you over her shoulder.</p>
<<speech "Adriana" "Put the tip in too. Just the tip, with them still inside.">>
<p>There isn't room for more than the head of your cock, so that's all you give her, working it in and out in short strokes and feeling both balls roll and shift inside her every time. After about a minute it's too much for her, and she comes squeezing down on the tip of your dick with two plastic balls still in her ass.</p>
<<video "img/adriana/anal_princess_29.mp4">>
<<else>>
<<run $princess_night.push("jewels_glazed")>>
<p>Two balls go into her glazed ass with a wet little pop each. You push her head down into the cushions, rub her pussy and tell her to push. The first ball comes out riding a thick gush of white lube, the second follows with even more, and the moment her ass is empty she starts squirting all over the couch.</p>
<<video "img/adriana/anal_princess_23.mp4">>
<<speech "Adriana" "Did I just lay eggs and squirt? I think I just laid eggs and squirted.">>
<</if>>
[[Back to Her Highness's ass|Adriana Princess Playground]]<<if not $princess_night.includes("glazed")>><<run $princess_night.push("glazed")>><</if>>
<p>You uncap the first bottle of thick white lube. Adriana holds her cheeks open with both gloved hands, and instead of squeezing it onto anything, you push the whole nozzle of the bottle straight into her gape and squeeze.</p>
<p>It goes in cold and heavy. She gasps, then moans, and you keep squeezing until the bottle is crumpled in your fist, her ass is full of the stuff, and some of it is already drooling back out around the nozzle and down toward her pussy.</p>
<<video "img/adriana/anal_princess_19.mp4">>
<<speech "Adriana" "Oh, that's so much. That's a whole bottle. I'm sloshing, daddy.">>
<p>From here on, everything is white.</p>
[[Back to Her Highness's ass|Adriana Princess Playground]]<<run $princess_night.push("ribbed")>>
<p>You take the ribbed glass she opened herself with earlier and work it back into her, stretching her a little more, then squeeze a long white rope of the thick lube down the shaft so the glass carries it inside her one ridge at a time.</p>
<<video "img/adriana/anal_princess_18.mp4">>
<p>Then you fuck her with it hard, every ridge popping in and out of her glazed hole, until she starts coming. She can't hold anything in when she does: a big load of white lube shoots out of her ass around the glass while her pussy squirts, and all of it splatters over the white couch.</p>
<<video "img/adriana/anal_princess_20.mp4">>
<<speech "Adriana" "I'm leaking from both holes at once. Ugh, best day of my life.">>
[[Back to Her Highness's ass|Adriana Princess Playground]]<<run $princess_night.push("feed")>>
<p>You squeeze a thick line of the white lube along your own shaft, base to tip, and use your cock to feed it to her: the head goes into her gape, you push, and the lube gets shoved up inside her ass along with your dick.</p>
<p>You pull out and smear what's left over her whole crotch, her lips and her crack and the backs of her thighs, and then you stop playing and just fuck her with it.</p>
<<video "img/adriana/anal_princess_25.mp4">>
<<speech "Adriana" "Yes, feed me. Feed the princess. More.">>
[[Back to Her Highness's ass|Adriana Princess Playground]]/* The finale runs as one page: Enema -> Tube -> Ending are included in that
order, each step optional and passing straight on when its item is missing. */
<p>She's shaking by now, knees wobbling on the cushion, and the crown has finally gone crooked enough that she's stopped fixing it. When you step back, her gape stays open on its own, a wet dark ring that isn't closing again tonight.</p>
<<speech "Adriana" "Okay. Okay. Finish me. Finish the princess before I pass out in my own dress.">>
<<include "Adriana Princess Enema">>/* Finale step 1, included by Adriana Princess Finale. Cum-lube only; without
it this hands straight on to the Tube step. */
<<if not setup.princess.has("cum_lube")>>
<<include "Adriana Princess Tube">>
<<else>>
<div id="enema-choice">
<<linkreplace "Give her the enema">>
<<run $princess_night.push("enema")>>
<<replace "#enema-output">>
<p>She reaches back with both gloved hands and pulls her gape open with her fingers, wider than it has any right to go, and you push a fresh bottle of the thick white lube into that bottomless hole and squeeze it empty. It feels like a liter goes in, and she moans through every second of it like you're filling her with something she's been starving for.</p>
<<video "img/adriana/anal_princess_31.mp4">>
<<speech "Adriana" "Oh fuck, it's so deep in me. You just gave a princess a lube enema.">>
<<include "Adriana Princess Tube">>
<</replace>>
<<replace "#enema-choice">><div class="choice-made"><em>"Give her the enema"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Straight to the finish">>
<<replace "#enema-output">><<include "Adriana Princess Tube">><</replace>>
<<replace "#enema-choice">><div class="choice-made"><em>"Straight to the finish"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="enema-output"></div>
<</if>>/* Finale step 2: only with the tube, and only after the enema - both tube clips
show cum-lube. Otherwise this hands straight on to the Ending. */
<<if not (setup.princess.has("tube") && $princess_night.includes("enema"))>>
<<include "Adriana Princess Ending">>
<<else>>
<div id="tube-choice">
<<linkreplace "Hand her the tube">>
<<run $princess_night.push("tube")>>
<<replace "#tube-output">>
<p>You feed one end of Earl's tap line into her gape and hand her the other. She puts it in her mouth without being asked twice, looks up at you through the smeared mascara and talks around it.</p>
<<speech "Adriana" "Yeah. Make me drink my own fucking ass juice.">>
<p>She sucks. For a while nothing happens except her cheeks hollowing and her eyes watering, and she keeps at it anyway, as stubborn about this as she is about everything else.</p>
<<video "img/adriana/anal_princess_32.mp4">>
<p>Then the tube fills. A white column creeps up the clear plastic from somewhere deep in her ass, and all at once her mouth is full of it. She holds it there to show you. When she lets the tube slip out, she gives one last push on her own and unloads a big thick load of fake cum out of her ass onto the cushions.</p>
<<video "img/adriana/anal_princess_34.mp4">>
<<include "Adriana Princess Ending">>
<</replace>>
<<replace "#tube-choice">><div class="choice-made"><em>"Hand her the tube"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Let her hold it in">>
<<replace "#tube-output">><<include "Adriana Princess Ending">><</replace>>
<<replace "#tube-choice">><div class="choice-made"><em>"Let her hold it in"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="tube-output"></div>
<</if>>/* Shared tail of the night, included by the Tube step. Closes her ladder. */
<<set _messy = $princess_night.includes("glazed") || $princess_night.includes("enema")>>
<p>You pull her off the arm of the couch, roll her onto her back and fold her all the way over, knees by her ears and ass pointing at the ceiling, and drop straight down into her in a piledriver. Every stroke goes to the bottom<<if _messy>> and squeezes out another spurt of white<</if>>. You come a little inside her, then pull out and shove your cock into her waiting mouth for the rest, and she swallows it<<if _messy>>, your load mixed in with the fake stuff she's been tasting all night<<else>> straight from her ass<</if>>.</p>
<<video "img/adriana/anal_princess_36.mp4">>
<p>When you let her unfold she stays on her back with her legs spread and shows off the result like a trophy: a massive gape that she stretches even wider with her fingers. Then she pushes, and her hole blooms out into a rosebud glazed with <<if _messy>>your cum and the fake stuff<<else>>your cum<</if>>.</p>
<<video "img/adriana/anal_princess_37.mp4">>
<<speech "Adriana" "Look at it. Look at what you did to my royal asshole.">>
<p>The crown is crooked and sticky and one of the gloves is ruined, but she hasn't taken the crown off once all night, and she doesn't now.</p>
<<if $princess_night.includes("worship")>>
<<speech "Adriana" "You knelt for me tonight. Nobody's ever knelt for me. So, by royal decree: that was my last hole, and it belongs to you now.">>
<<else>>
<<speech "Adriana" "You didn't kneel once, you bastard, and I still came like six times. So, by royal decree: that was my last hole, and it belongs to you now.">>
<</if>>
<<speech "You" "Yes, Your Highness.">>
<<speech "Adriana" "Now carry me to the shower. Princesses don't walk after this.">>
<<statchange "respect" 2>>
<<set $hacker_level = 9>>
[[Back to the lair|Hacker]]<<album "img/general/bar_" 2 "jpg" "location">>
<<if visited() == 1>>
<div class="text">The neon-green bar down the street reeks of beer and piss. Lights are dim, and all surfaces are disgustingly sticky. Despite apparent neglect, it seems there are always at least a handful of patrons sipping their drinks in an effort to forget about the outside world.</div>
<<pic "img/bar/earl_fullbody.jpg" "story">>
<div class="text">Behind the counter stands the same heavyset man who has probably been polishing the same glass since before the wall went up. The regulars call him Earl. He waters the whiskey, keeps a bat under the register, and remembers everything anyone has ever said in this room. In a neighborhood with no lawyer and no priest anyone trusts, Earl is both.</div>
<<else>>
<p>The bar greets you with its usual perfume of beer and piss. Earl gives you the flat once-over he gives everyone, the neon flickers, and somewhere in the back a jukebox plays a song older than the wall.</p>
<</if>>
<<nobr>>
<<if $day > $bar_last_day>>
<<if $energy >= 2>>
<<if $bartender_stage == 3>>
<<linkreplace "Work the room (on the house)">>
<<set $bar_last_day = $day>>
<<statchange "energy" -2>>
<p>Earl slides one across before you reach the counter and waves off your money like it's an insult. Your credit is good here now. Around here that's worth more than the drink.</p>
<<include "BarRoomEvents">>
<</linkreplace>><br>
<<elseif $money >= 5>>
<<linkreplace "Work the room ($5)">>
<<set $bar_last_day = $day>>
<<statchange "energy" -2>>
<<statchange "money" -5>>
<<include "BarRoomEvents">>
<</linkreplace>><br>
<<else>>
<div class="req">Working the room starts with buying a round. (a round costs $5)</div>
<</if>>
<<else>>
<div class="req">Faces blur, names slide off. You're too worn out to work the room tonight. (2 energy needed)</div>
<</if>>
<<else>>
<div class="req">You've already made your rounds today. The bar has a memory, and so does its patience.</div>
<</if>>
<<if $bartender_stage == 2 && $physical >= 50>>
<<linkreplace "Help Earl with the problem at the corner booth">>
<p>The problem is two hundred and forty pounds of connected drunk who hasn't paid since Tuesday and has started explaining, loudly, whose cousin he is. Earl catches your eye and tips his head a quarter inch, which from Earl is a formal written request.</p>
<p>You walk over, lean in close, and have a short conversation consisting mostly of geometry - where his arm is, where the door is, where his cousin isn't. He does the math and leaves vertical. The room pretends it saw nothing, which means everyone saw everything.</p>
<<statchange "respect" 3>>
<<statchange "heat" 2>>
<<set $bartender_stage = 3>>
<<speech "Earl" "That man's people run half the towing rackets on the east side, and you moved him like furniture. Your money's no good here anymore. And the back table plays dice after ten, if you've got the stomach for it.">>
<</linkreplace>><br>
<<elseif $bartender_stage == 2>>
<div class="req">Earl keeps glancing at the corner booth like it owes him money. He could use a hand with something, but you'd need to be able to back it up. (50 physical)</div>
<<elseif $bartender_stage == 1>>
<div class="req">Earl's been shorthanded lately. Keep showing your face - a bar like this only trusts a face it's tired of seeing.</div>
<</if>>
<<if $bartender_stage == 3>>
<<if $day > $bar_dice_day>>
<<linkreplace "Buy into the back-table dice game ($20)">>
<<if $money >= 20>>
<<set $bar_dice_day = $day>>
<<statchange "money" -20>>
<p>The back table lives behind a curtain that used to be a tablecloth. Four players, a cigar box bank, and house rules older than anyone at the table.</p>
<<set _dice = random(1, 100)>>
<<if _dice <= 40>>
<<statchange "money" 45>>
<p>The dice like you tonight. You ride a hot streak just long enough to quit before it turns - the only real skill the game has. The cigar box pays out with poor grace.</p>
<<elseif _dice <= 70>>
<p>The dice are honest, which is the problem. Your twenty migrates across the table in four polite installments while an old man in a transit jacket takes your money without even seeming to enjoy it.</p>
<<elseif _dice <= 90>>
<<statchange "money" 70>>
<<statchange "heat" 2>>
<p>You clean out the table, including a wiry man with prison ink who takes losing the way some men take a diagnosis. He settles up, but on his way out he talks to somebody on the corner and points back at the bar. Word of your luck travels, and not all of it to friendly ears.</p>
<<else>>
<p>Halfway through the night the game acquires a spectator: a dancer from Club Babylon, still in her makeup, off shift and out of cash. She watches two rounds, then slides into the seat across from you and puts nothing on the table.</p>
<<speech "Stripper" "I'm light. But I'll cover the bet another way - you win, we take a walk to the ladies' room and you get twenty dollars' worth of my very best work. I win, you cover my buy-in. Deal?" "default_female">>
<div id="dice-choice">
<<linkreplace "Take the bet">>
<<replace "#dice-output">>
<p>You win. She's a good loser - takes your hand and walks you past Earl, who studies the ceiling with great professional interest. The ladies' room lock is broken, so she braces a boot against the door, wastes no time and no words, and drops to her knees on a folded coat with the efficiency of a woman who dances for money and negotiates for a living.</p>
<<video "img/bar/stripper_restroom_bj.webm">>
<p>She spits, checks her makeup in the cracked mirror, and pats your cheek on the way out. "Better than Babylon," she says, "at least you tipped with your luck." Twenty dollars' worth was underselling it.</p>
<</replace>>
<<replace "#dice-choice">><</replace>>
<</linkreplace>><br>
<<linkreplace "Keep it cash only">>
<<replace "#dice-output">>
<<statchange "money" 20>>
<p>"Cash game," you say, and mean it. She shrugs, unbothered - it was a business offer, not a compliment - and the old man in the transit jacket covers her buy-in instead. She loses it in three rounds and you take a slice of it on your way out. The table respects a man who keeps the game simple.</p>
<</replace>>
<<replace "#dice-choice">><</replace>>
<</linkreplace>>
</div>
<div id="dice-output"></div>
<</if>>
<<else>><p>The back table plays for real money, and twenty is the ante. Come back heavier.</p><</if>>
<</linkreplace>><br>
<<else>>
<div class="req">The back table has seen enough of you for one night. The dice will still be crooked tomorrow.</div>
<</if>>
<</if>>
<<if $ella_stage ==7>>
<p>Is that Ella you see? Back at her favorite high chair, it seems she returned to the drunk state you've met her the first time. <<link "Approach Ella" "Ella Hughes">>
<<set $ella_stage to 8>>
<</link>></p>
<</if>>
<<if $community_quest > 1 && $community_quest < 4 && $ella_stage == 1>>
<p>You notice Ella in her familiar place - only this time, she has been drowning her sorrows for much longer than usual. [[Approach her|Ella Hughes]]</p>
<</if>>
<<if $community_quest == 0 && visited() != 1>>
<<pic "img/ella/ella_smoking.jpg" "story">>
<p>Sitting on the high bar chair, one visitor looks foreign in a place like this. A young, attractive redhead who looks too good to be in this shit hole sips her beer and enjoys her cigarette, protected from advances by an aura of deep sadness emitting from her. You're no stranger to that, so why not approach her? Meet [[Ella|Ella Hughes]].</p><</if>>
<<if $ella_stage == 12 && $william_stage == 6 && $pollock_stage >= 4>>
<p>Ella's high chair at the end of the counter has sat empty since the night downtown. Earl says she hasn't been in.</p>
<<if $energy >= 3>>[[Check on her at her flat|Ella After Vegas]]<br><<else>><div class="req">You need 3 energy to go and see her.</div><</if>>
<</if>>
<<if $respect >= 20 && $gloryhole_ulocked == 0>>
[[Ask bartender about the backrooms|Gloryhole]]<br>
<<elseif $gloryhole_ulocked == 1 && $hacker_gh_stage == 1>>
[[Adriana gloryhole]]<br>
<<elseif $gloryhole_ulocked == 1 && $energy >= 2>>
[[Gloryhole]]<br>
<<elseif $gloryhole_ulocked == 1>>
<div class="req">The booth takes more out of you than you've got left tonight. (2 energy needed)</div>
<<else>><div class="req">There's a door behind the bar that regulars pretend not to see. Earl won't tell a stranger what's back there, and right now that's what you are. (20 respect, you have $respect.)</div><</if>>
<<if $ella_stage == 9 && $day < $ella_next_day>><div class="req">You told Ella you'd meet her here tomorrow - and she's not the type to appreciate you jumping the gun.</div><br><<elseif $ella_stage == 9 && $money >=50 && $respect >=60>>[[Go on a date with Ella|EllaDate_1]]<br><<elseif $ella_stage == 9>><div class="req">You need $50 and 60 respect for Ella's date.</div><</if>>
/* CUT: brothel is not going into the next release.
<<if $brothel_unlocked == 0>>
<<if $respect >= 40>>
<<linkreplace "Ask the bartender about the working girls ($20)">>
<<if $money >= 20>>
<<statchange "money" -20>>
<p>The bartender polishes the same glass for a long moment, deciding what you're worth. The twenty helps him decide.</p>
<<speech "Earl" "Basement under the dead laundromat, end of the block. Man named Dre. Careful with him - he sells the neighborhood's daughters to the people who built the wall, and sleeps fine. But he pays serious men serious money. Knock twice.">>
<<set $brothel_unlocked = 1>>
<<else>><p>The bartender's memory works on a strict cash basis, and you're $20 short of a recollection.</p><</if>>
<</linkreplace>><br>
<</if>>
<</if>>
*/
<<if $hacker_level == 8 && not setup.princess.ordered("tube")>>
<<linkreplace "Ask Earl for a length of tap line">>
<<if $bartender_stage >= 1 || $money >= 5>>
<p>Earl has the cooler panel off and the old beer lines coiled on the counter like something he gutted, and he's feeding new line through the taps one at a time. You ask for a length of the clear stuff. He cuts it before you finish the sentence, then keeps hold of his end.</p>
<<speech "Earl" "Food grade. What's it for?">>
<<speech "You" "Fish tank.">>
<<speech "Earl" "You don't have a fish.">>
<<speech "You" "Not yet.">>
<p>He lets go of the tube and goes back to his taps. Earl remembers everything anyone has ever said in this room, and you can watch him decide to forget this one.</p>
<<if $bartender_stage >= 1>>
<p>He waves your money off before you reach for it.</p>
<<else>>
<p>You buy a round for the privilege, and the five goes into his apron without him looking at it.</p>
<<statchange "money" -5>>
<</if>>
<<set $princess_kit.tube = $day>>
<div class="req">A coil of clear tubing is in your pocket.</div>
<<else>>
<div class="req">Earl doesn't cut tubing for strangers who can't cover a round. ($5 needed)</div>
<</if>>
<</linkreplace>><br>
<</if>>
<<if $ella_end_quest == 1 && $ella_end_bar == 0>><<linkreplace "[Ella]Rob the bar">>The owner keeps cash in the safe but leaves some overnight in the cash register and office. You break in at night and gather what little you can find. <<set $ella_end_bar = 1>><</linkreplace>><br><</if>>
<<if $school_unlocked == 3 && $school_intro_location == "bar">>[[Meet with Jamal|SchoolIntro]]<br><</if>>
<<if $william_stage == 1 && $day >= $william_next_day>>An expensive coat hangs over the corner booth. Beneath it, William sits at the sticky table he promised he would visit, grinning at the room like it is a war trophy.<br>[[Join him|William Drinks]]<br><</if>>
[[Go out|The Hood]]
<</nobr>><<nobr>>
<<set _bar = random(1, 100)>>
<<if _bar <= 10>>
<p>The domino table by the window has been running the same game since the Nixon administration, and tonight there's an open chair. You buy the round, lose gracefully, and listen. Between slams of the tiles you get the neighborhood's real newspaper: who got picked up at the checkpoint, whose boy came home, which landlord is selling to the people beyond the wall. </p>
<<statchange "respect" 3>>
<<elseif _bar <= 20>>
<<if $bartender_stage == 0>>
<p>A slow stretch at the counter. Earl works his way down the bar and ends up across from you, glass and rag in hand.</p>
<<speech "Earl" "You're new here. What do they call you when they're not calling you trouble?">>
<p>You give him some fake-ass name, the first one that comes to mind. Earl files it away behind those flat eyes without blinking. Man's tended bar in this neighborhood long enough to know a bought name when he hears one, and to not care. Your next beer arrives a shade less watered than the last.</p>
<<set $bartender_stage = 1>>
<<elseif $bartender_stage == 1>>
<p>Your glass is empty for exactly four seconds before a fresh one lands in front of you, your usual, unasked. Earl doesn't say anything about it, but you just got promoted in his eyes to a regular.</p>
<<set $bartender_stage = 2>>
<<else>>
<p>Earl leans in while pulling your beer, voice pitched under the jukebox.</p>
<<speech "Earl" "Word to the wise - patrols are working the blocks by the laundromat this week. Somebody downtown wants numbers before the quarter ends. Keep your business on the other end of the neighborhood.">>
<<if $heat > 0>><<statchange "heat" -5>><</if>>
<</if>>
<<elseif _bar <= 28>>
<<switch random(1, 3)>>
<<case 1>>
<p>Nobody bites tonight. You drink alone under the dying neon while the rain draws bars down the front window, which feels a little on the nose. Even the jukebox plays to itself.</p>
<<case 2>>
<p>The room is all closed circles tonight - grief in one booth, business in another, and no seat at either.</p>
<<case 3>>
<p>You catch your own reflection behind the bottles: a man on the neverending run. You toast him. He toasts back.</p>
<</switch>>
<<elseif _bar <= 36>>
<p>It starts at the pool table, the way it always does: a doubled bet, a slow reracking, two voices dropping into that register men use right before furniture gets involved. Then a cue clatters and the argument comes to you, whether you want it or not.</p>
<div class="req">Physical check of 55...</div>
<<if $physical >= 55>>
<p>You put the loud one against the cigarette machine before he finishes his swing, hold him there while the fight leaks out of him, and set him back down like a returned drink. The bar exhales. Earl's bat goes back under the register, unused, and somebody you've never met sends a beer down the rail to your elbow.</p>
<<statchange "respect" 5>>
<<statchange "heat" 2>>
<<else>>
<p>You get between them and mostly succeed, if you don't count the bottle that clips your ear on its way past. The fight dies, the room settles, and you spend the rest of the night pressing bar ice wrapped in a rag to the side of your head.</p>
<<statchange "physical" -5>>
<<statchange "heat" 2>>
<</if>>
<<elseif _bar <= 44>>
<p>A stranger in a good coat - too good for this room - sets three bottle caps on the bar and starts moving them with the easy patter of a man who's done this in a hundred bars just like yours. "Simple game," he says. "Eyes against hands. Ten says you can't follow the cap."</p>
/* Straight 35% roll - the shell game is a con, so the house usually wins */
<<if random(1, 100) <= 35>>
<p>Halfway through the shuffle his little finger does something it shouldn't, and the whole trick comes apart in front of you: the cap was palmed before the first pass, and the game was over before it started. So you bet on the empty one, name the move out loud, and watch his patter die. He pays the ten with a professional's grace and moves on to a softer room. The regulars saw the whole thing, and word gets around that you're nobody's mark.</p>
<<statchange "money" 10>>
<<statchange "respect" 2>>
<<else>>
<p>You follow the cap perfectly. That's the trick - there's nothing under any of them by the time he's done shuffling. Your ten disappears with the same sleight of hand, and you buy the lesson every mark buys: in this economy, even the crime is small business.</p>
<<statchange "money" -10>>
<<if $money < 0>><<set $money = 0>><</if>>
<</if>>
<<elseif _bar <= 52>>
<p>Three men in the corner booth are drinking like they're being paid to, which they are. Off-duty cops - you can tell by the haircuts, the way they sit facing the door, and the fact that nobody within two tables of them is speaking above a whisper.</p>
<<if $heat >= 40>>
<p>One of them looks up from his glass, and his eyes stop on you a beat too long. You've been on somebody's board recently, and his face says he's trying to remember which one.</p>
<div id="cops-choice">
<<if $money >= 15>>
<<linkreplace "Send their table a round ($15)">>
<<replace "#cops-output">>
<<statchange "money" -15>>
<<statchange "heat" -5>>
<p>Earl ferries three whiskeys over with your compliments. The one who was staring raises his glass a lazy inch - the neighborhood's oldest sacrament, the small bribe accepted. When they talk about tonight back at the precinct, you'll be "some local," not a face. Cheap at the price.</p>
<</replace>>
<<replace "#cops-choice">><</replace>>
<</linkreplace>><br>
<</if>>
<<linkreplace "Finish up and slip out">>
<<replace "#cops-output">>
<<statchange "heat" 1>>
<p>You drain the glass at a civilian's pace and take the long way past the jukebox to the door. Nobody follows. But in the window's reflection you see him lean over to his partner, and his mouth makes the shape of a question with your description in it.</p>
<</replace>>
<<replace "#cops-choice">><</replace>>
<</linkreplace>>
</div>
<div id="cops-output"></div>
<<else>>
<p>You keep your glass between you and their sightline and drink at the speed of a man with nothing on his conscience. They're not here for anybody tonight - just three tired uniforms out of uniform, drinking off the same city everyone else is. The tension at your table leaves with them.</p>
<</if>>
<<elseif _bar <= 60>>
<p>She's at the dark end of the bar with a drink she isn't drinking - whore-working clothes under a civilian coat, makeup half surrendered, the posture of a bad shift that ended early. When you settle nearby she looks you over with a professional's speed and a tired woman's honesty.</p>
/* CUT: brothel is not going into the next release - Dre variant of this line disabled.
<<if $brothel_unlocked == 1>>
<<speech "Working Girl" "I know you - you're around Dre's place. Good. Then you know the rules and I don't have to say a price out loud like an amateur. Tonight was ugly and I want to end it on something I chose. Bathroom's in the back. Coming?" "default_female">>
<<else>>
*/
<<speech "Working Girl" "You've got the look of a man whose night went as bad as mine. I do this for money, usually. Right now I'd settle for doing it on my own terms. Bathroom's in the back. Coming?" "default_female">>
/*
<</if>>
*/
<div id="girl-choice">
<<linkreplace "Follow her">>
<<replace "#girl-output">>
<p>The bathroom is one flickering bulb and a door that locks if you lean on it. She leans on it, pulls you in by the belt, and takes charge the way only a professional off the clock can - no performance, no clock running, just appetite with expert hands. She gets your cock out before your jacket's off, strokes you hard with a spit-slick fist, then turns and braces against the sink, skirt shoved up over her ass, watching you in the cracked mirror.</p>
<<video "img/bar/whore_restroom_doggy.webm">>
<p>You fuck her the way she tells you to - slow until she stops saying slow, then hard enough that the pipes knock and somebody in the bar turns the jukebox up out of courtesy. </p>
<<speech "Working Girl" "Better. You're all right, you know that? I'll say so, to people it counts with." "default_female">>
<<statchange "respect" 1>>
<</replace>>
<<replace "#girl-choice">><</replace>>
<</linkreplace>><br>
<<linkreplace "Decline politely">>
<<replace "#girl-output">>
<p>You tip your glass to her and stay on your stool. She shrugs - no offense taken where none was traded - finishes her drink in one economical motion, and leaves alone. Maybe that was the point all along.</p>
<</replace>>
<<replace "#girl-choice">><</replace>>
<</linkreplace>>
</div>
<div id="girl-output"></div>
<<elseif _bar <= 68>>
<p>She has the corner stool the way a general has a hill: mid-fifties, gold on every finger, drinking bourbon that Earl keeps under the bar just for her. Rumor says she owns some real estate outside the Hood and comes because the men there bore her. Tonight your glass keeps refilling and you're not the one paying.</p>
<<speech "Cougar" "Don't look so suspicious, sweetheart. At my age you learn to skip the part of the evening where we both pretend. I like them young, broke, and grateful, and you're at least two of the three. My car's out front and my building has an elevator. Well?" "default_female">>
<div id="cougar-choice">
<<linkreplace "Leave with her">>
<<replace "#cougar-output">>
<p>Her room is on the neighborhood's one good street, and she doesn't waste any of it on a tour. She takes what she paid all those drinks for - unhurried, exacting, riding you with her rings still on and her eyes open, correcting your pace like a woman conducting an orchestra she funds. She comes twice with total confidence, and by the end you've stopped being the one who thinks he's in charge. She finds that adorable.</p>
<<video "img/bar/cougar_night.webm">>
<p>After, she watches you dress with proprietary satisfaction and tucks folded bills into your jacket pocket without asking.</p>
<<speech "Cougar" "Cab money, sugar. Take the long way home - you've earned the scenery. And come drink at my end of the bar sometime. I tip better than the neighborhood does." "default_female">>
<<statchange "money" 15>>
<</replace>>
<<replace "#cougar-choice">><</replace>>
<</linkreplace>><br>
<<linkreplace "Decline">>
<<replace "#cougar-output">>
<p>You thank her for the drinks and stay put. She takes it like a market fluctuation - noted, unbothered, already scanning the room for the next investment.</p>
<</replace>>
<<replace "#cougar-choice">><</replace>>
<</linkreplace>>
</div>
<div id="cougar-output"></div>
<<elseif _bar <= 76>>
<p>The door bangs open and the nightclub spills in - or one glittering piece of it does: a party girl in a dress built for a different building, mascara gone abstract, phone dead, friends lost somewhere between Club Babylon's velvet rope and here. She surveys the bar, decides you're the least alarming thing in it, and when the jukebox turns over she's suddenly grinding against you like the night depends on it, all warm skin and spilled vodka and zero sense of geography.</p>
<div id="stray-choice">
<<linkreplace "Take it to the alley">>
<<replace "#stray-output">>
<p>She's the one who pulls you toward the back door, giggling into your neck. The alley is cold and she doesn't care - hikes the dress that barely needed hiking, hooks a heel on a crate, and pulls you into her with a gasp that echoes off the brick. It's fast and greedy and completely without dignity for either of you, her nails in your shoulders, your hand over her mouth when a patrol light sweeps the alley mouth and you both freeze mid-stroke, shaking with adrenaline and something dangerously close to laughter.</p>
<<video "img/bar/stray_alley.webm">>
<p>The light passes. You finish like fugitives. She kisses you once, badly, calls you a name that is definitely not yours, and totters off toward Babylon to find her friends.</p>
<<statchange "heat" 1>>
<</replace>>
<<replace "#stray-choice">><</replace>>
<</linkreplace>><br>
<<linkreplace "Pour her into a cab">>
<<replace "#stray-output">>
<p>You peel her off gently, park her on a stool, and have Earl call the one cab company that still crosses the wall. You feed her water until it arrives and tell the driver her stop like you're handing off cargo. Earl watches the whole operation and gives you the nod.</p>
<<statchange "respect" 4>>
<</replace>>
<<replace "#stray-choice">><</replace>>
<</linkreplace>>
</div>
<div id="stray-output"></div>
<<elseif _bar <= 84>>
<p>A birthday party has annexed the pool table - four women, one sash, and a body count of empty pitchers coupled with a birthday cake. The one in the sash is losing a dare negotiation with her friends, and losing it in your direction: strip stakes, one game of eight ball, and the whole bar is suddenly very invested in the sporting integrity of the occasion. She points her cue at you.</p>
<<speech "Birthday Girl" "You. You look like you can hold a cue straight. One game. I win, you're buying pitchers all night. You win... well, the girls already decided what I'm in for, and apparently it's you. No pressure." "default_female">>
<div class="req">Physical check of 40 or 40% chance...</div>
<<if $physical >= 40 || random(1, 100) <= 40>>
<p>You shoot a clean, mean game while her friends heckle both of you indiscriminately, and sink the eight with the whole bar watching. She pays up past the terms - drops to her knees behind a wall of her shrieking, cheering friends, and takes you in her mouth with the sloppy, laughing enthusiasm of a woman who is going to remember this birthday in fragments. The sash stays on, and the whipped cream for the birthday cake gets on your cock. Her friends narrate. Earl turns the jukebox up.</p>
<<video "img/bar/birthdaygirl.webm">>
<<statchange "respect" 2>>
<p>By closing time you're a minor local legend, and somebody has written the score on the chalkboard where the specials used to be.</p>
<<else>>
<p>You scratch on the eight ball like an amateur while the entire bar groans in unison. Her friends collect with glee: your ten dollars for the pitchers and, by a house amendment you never agreed to, your shirt, which the birthday girl wears out the door as a trophy. You drink the rest of your beer topless and dignified. Mostly dignified.</p>
<<statchange "money" -10>>
<</if>>
<<elseif _bar <= 92>>
<<if $ella_stage >= 5 && $ella_stage != 7>>
<p>A familiar shape at the end of the bar: Ella, at her old high chair, but different than the wreck you first met there - sitting straighter, drinking slower. She spots you before you decide whether to approach, which settles it, and pats the stool beside her.</p>
<<if $ella_stage >= 9>>
<<speech "Ella" "Of course it's you. It's just one beer I'm having, and you can keep me company.">>
<p>She's so relaxed around you now that she even strikes some poses, not minding the attention.</p>
<<else>>
<<speech "Ella" "Look who it is. Sit down before someone worse does. I'm having exactly one drink tonight, and you're going to witness it so I can prove it happened.">>
<p>She's making sure you can see her single drink - and her upskirt as a bonus.</p>
<</if>>
<<pic "img/ella/bar_random.jpg" "story">>
<p>Half the bar clocks that she knows you. Around here, being known by someone is the whole résumé.</p>
<<statchange "respect" 1>>
<<else>>
<p>The city feed cuts into the ballgame with breaking news: the checkpoint program is expanding, three new walls going up around three new neighborhoods, a state mouthpiece on a podium calling it "the model that works". The bar goes quiet. Earl reaches up without a word and changes the channel to static, and somehow the static is an improvement. Everyone drinks a little faster after that.</p>
<</if>>
<<else>>
<p>He's been in the corner booth all night - camel coat, two phones, the kind of man who visits the neighborhood but keeps the car running. Near midnight he takes a call, goes pale, and leaves practically running. It takes the booth ten minutes to stop radiating him. It takes you two to notice the envelope wedged behind the napkin dispenser: fat, sealed, and heavy.</p>
<div id="envelope-choice">
<<linkreplace "Pocket it">>
<<replace "#envelope-output">>
<<statchange "money" 40>>
<<statchange "heat" 5>>
<p>The envelope disappears into your jacket between one sip and the next. Forty dollars and no name on it - except money like this always has a name on it somewhere, and men in camel coats retrace their steps.</p>
<</replace>>
<<replace "#envelope-choice">><</replace>>
<</linkreplace>><br>
<<linkreplace "Hand it to Earl">>
<<replace "#envelope-output">>
<p>You slide it across the counter. Earl weighs it in one hand, and something almost expressive crosses his face - a man recalculating a ledger entry. He stows it under the register next to the bat.</p>
<<speech "Earl" "He'll be back for this tonight, sweating, and he'll remember whose bar didn't rob him. And I'll remember who handed it over when nobody was counting. That's worth more than what's in it, if you're planning on drinking here a while.">>
<<statchange "respect" 3>>
<<if $bartender_stage < 2>><<set $bartender_stage = 2>><</if>>
<</replace>>
<<replace "#envelope-choice">><</replace>>
<</linkreplace>>
</div>
<div id="envelope-output"></div>
<</if>>
<</nobr>>/* CUT: brothel arc is not going into the next release - whole passage commented out.
<!-- IMAGE: basement brothel - bare bulbs, couches against concrete, a pegboard of car keys, a man with a ledger -->
<<if visited() == 1>>
<div class="text">The stairs under the dead laundromat go down further than they should. At the bottom: a steel door, a peephole, and then a long concrete room dressed up with rugs and lamps that only make the concrete more honest. Girls wait on two couches with their coats on - coats on, because most of the work isn't here. It's out there, past the checkpoints, in hotel rooms and gated houses where the wall is something you order delivery from.</div>
<div class="text">The man with the ledger is called Dre. Gold ring, dead eyes, arithmetic where his sentiment should be. He doesn't shake hands.</div>
<<speech "Dre" "I know who you are, and I don't care. Here's what I care about: product goes out clean, product comes back safe, clients pay invisible. The girls are mine to worry about, not yours. We clear?">>
<div class="text">Product. He means the women sitting ten feet away, close enough to hear. One of them - young, sharp-eyed, a paperback folded open on her knee - watches you take the word in, and you understand she's watching to see whether it lands. You keep your face still. Everyone here keeps their face still. That's what the place runs on.</div>
<<else>>
<p>The basement is the same at any hour - bare bulbs, coats on the couches, Dre's pen scratching in the ledger. The sharp-eyed girl with the paperback marks her page when you come in, the way other people check a clock.</p>
<</if>>
<<nobr>>
($brothel_stage: 0 local runs, 1 outside runs unlocked, 2 Dre's car earned. Future arc: the girls, and the question of taking Dre's operation down or over.)
<<if $brothel_stage == 0 && $escort_runs >= 5 && $respect >= 50>>
<p>Dre's pen stops scratching when you come in. He looks at you the way he looks at a column that finally adds up.</p>
<<linkreplace "See what he wants">>
<<speech "Dre" "Five runs. You wait with the engine on, and the girls come back. That's rarer than you'd think - most drivers think the job is the driving.">>
<p>He turns the ledger around. The addresses on the new page aren't in the hood - gated communities, serviced towers, places with fountains. Outside money, outside distances, outside risk.</p>
<<speech "Dre" "Outside runs pay outside rates. The checkpoints know my girls travel - that arrangement costs me monthly, so don't test it with a hot face. Product goes out clean, product comes back safe. Same rules, longer road.">>
<<set $brothel_stage = 1>>
<div class="req">Outside runs unlocked - richer clients, richer pay, more heat.</div>
<</linkreplace>><br>
<</if>>
<<if $brothel_stage == 1 && $escort_runs >= 12>>
<p>Tonight there's a set of car keys sitting on the ledger, and Dre's finger is holding them down like a paperweight holding down a decision.</p>
<<linkreplace "Ask about the keys">>
<<if $escort_intimacy >= 2>>
<p>The reader is on the couch, paperback closed for once. She looks up at Dre and says, to the room in general, "He's the one the girls ask for." Dre studies her, then you, and does his math.</p>
<<else>>
<p>Dre studies you for a long moment. Twelve runs. Girls out, girls back, invoices clean.</p>
<</if>>
<<speech "Dre" "Gray sedan behind the laundromat. Registered to a laundry service that hasn't washed a sheet since before the wall. The blockpost knows the car - they know exactly why it leaves the hood every night, and they are paid, monthly, to know nothing else. You drive it now.">>
<p>He slides the keys across the ledger, then puts one finger back on them, briefly.</p>
<<speech "Dre" "Understand the physics. The car passes because it's mine and the arrangement is mine. You bring militia attention onto my plates, the keys come home and you walk like everybody else. And sometimes the car works for me even when you're holding the wheel. We clear?">>
<p>Clear. In this neighborhood even freedom comes with a ledger entry.</p>
<<set $brothel_stage = 2>>
<<set $escort_car = 1>>
<div class="req">You have the use of Dre's sedan. The blockpost waves it through. "Drive out of the hood" is now available on the street, and the bus is optional.</div>
<</linkreplace>><br>
<</if>>
<<if $respect >= 50>>
<<if $energy >= 4>>
<<linkreplace "Take an escort run">>
<<statchange "energy" -4>>
<<statchange "heat" 5>>
<<set $escort_runs += 1>>
<<set _run = random(1, 100)>>
<<if _run <= 40>>
<<statchange "money" 35>>
<p>Tonight it's the reader. She gives the client's address like a weather report and reads at every red light - the paperback rides in her coat pocket the way other people carry a knife. The client is a house with a gate; business is prompt; the ride back is quiet. At the drop she peels a ten off her own roll and hands it over without looking at you.</p>
<<speech "Working Girl" "You waited with the engine on. The last driver didn't. That's the whole review.">>
<<statchange "money" 10>>
<<elseif _run <= 70>>
<<statchange "money" 35>>
<p>The checkpoint takes longer than it should. A militiaman circles the car, taps the glass, and asks what a man like you is doing driving a girl like her toward a neighborhood like that. His flashlight has already found her coat, her heels, the answer.</p>
<<set _cpChoiceMade = false>>
<div id="cp-choice">
<<if $money >= 10>>
<<linkreplace "Fold a bill into your papers ($10)">>
<<replace "#cp-output">>
<p>Your documents come back lighter and the barrier goes up. The oldest toll road in the world. She exhales through her nose, and you realize she'd been holding that breath since the flashlight came on.</p>
<<statchange "money" -10>>
<</replace>>
<<replace "#cp-choice">><</replace>>
<</linkreplace>><br>
<</if>>
<<linkreplace "Play it straight">>
<<replace "#cp-output">>
<p>You hand over papers and let the silence do the work. It costs twenty minutes, a call to someone's sergeant, and your plate number going into a notebook next to a note about the passenger. They wave you through eventually - but you're a name on a page now, attached to Dre's business.</p>
<<statchange "heat" 8>>
<</replace>>
<<replace "#cp-choice">><</replace>>
<</linkreplace>>
</div>
<div id="cp-output"></div>
<<else>>
<p>The client is a serviced apartment downtown, all glass and no neighbors. You wait in the car the way the job says. Eleven minutes in, something comes through the ceiling of the parking garage - a sound with her voice in it, then furniture, then her voice again, wrong.</p>
<<set _roughChoiceMade = false>>
<div id="rough-choice">
<<linkreplace "Go through the door">>
<<replace "#rough-output">>
<p>The apartment door is a rich man's door, which means it's decorative. You come through it on the second kick. The client is fifty, soft, and standing over her with his belt wrapped around his fist - for the money he's paying, he explains, he decides what the evening includes. You explain otherwise, briefly, in the language he suddenly speaks fluently. She's dressed and in the car in ninety seconds, holding your jacket sleeve at the wrist - not the hand, the sleeve - the whole way home.</p>
<p>Dre docks you for the door, the client, the noise. He'd have docked the client nothing.</p>
<<statchange "heat" 10>>
<<statchange "respect" 8>>
<<statchange "money" 20>>
<div class="statchange">(Your pay, docked $15 for the trouble.)</div>
<</replace>>
<<replace "#rough-choice">><</replace>>
<</linkreplace>><br>
<<linkreplace "Wait in the car. It's the job.">>
<<replace "#rough-output">>
<p>You're paid to drive and to make sure she comes back - nothing in the arrangement covers what happens between the lobby and the return. You sit with both hands on the wheel. The sounds stop eventually. When she comes down she's walking carefully and her face is fixed for the checkpoint cameras, and she doesn't say a word to you, that night or ever again.</p>
<<statchange "money" 35>>
<</replace>>
<<replace "#rough-choice">><</replace>>
<</linkreplace>>
</div>
<div id="rough-output"></div>
<</if>>
<</linkreplace>><br>
<<if $brothel_stage >= 1>>
<<linkreplace "Take an outside run">>
<<statchange "energy" -4>>
<<statchange "heat" 8>>
<<set $escort_runs += 1>>
<<set _pay = 55>>
<<if random(1, 100) <= 20>>
<p>Twenty minutes into the drive, somewhere in the dead zone between the wall and the money, she reaches over and puts a hand flat on your thigh. "Long queue at the checkpoint tonight," she says, which is true, and also not what she means.</p>
<<if random(1, 2) == 1>>
<!-- VIDEO: car - road head in the checkpoint queue, dashboard light -->
<p>She goes down on you in the checkpoint queue with the handbrake digging into her ribs, unhurried, her mouth working you in the dashboard light while brake lights crawl forward ahead. You come two cars before the barrier and she sits up, checks her lipstick in the visor mirror, and hands the militiaman her papers with a face like a church portrait.</p>
<<else>>
<!-- VIDEO: car - pulled over under the wall, fucking in the back seat, dark -->
<p>You pull off under the shadow of the wall itself and she climbs over the seat, hikes her working dress, and rides you in the back of Dre's route car, fast and greedy and entirely for herself this time - the client gets the performance, you get the appetite. She comes with her hand braced on the cold window glass, leaving a print in the fog like evidence.</p>
<</if>>
<p>The timestamps run late. Dre's arithmetic notices everything.</p>
<<set _pay -= 10>>
<<statchange "heat" 3>>
<<set $escort_intimacy += 1>>
<div class="statchange">(Pay docked $10 for the timeline. Something else was earned, though.)</div>
<</if>>
<<set _outrun = random(1, 100)>>
<<if _outrun <= 40>>
<p>The client is a gated community with a name like a golf course. At the guardhouse, the client's name opens the barrier but the guard wants the driver on camera, face and plate. The girl leans across you and charms the lens down to a formality - she's done this door before. The client tips like a man buying silence in bulk, because he is.</p>
<<set _pay += 15>>
<<elseif _outrun <= 70>>
<p>Tonight it's the reader, and it's her downtown regular - a tower apartment where the doorman knows her coat. She reads in the passenger seat the whole way, one finger holding her page at the checkpoint. On the ride back she is quiet in a different key, counting her roll twice.</p>
<<speech "Working Girl" "He asks for me because I don't pretend. You wait with the engine on because you don't either. Between the two of you, a girl could almost respect this job.">>
<<set _pay += 5>>
<<else>>
<p>At the pickup, Dre himself comes down and puts a wrapped package on the passenger seat before the girl gets in. Nobody says what it is. The girl looks out her window the whole ride like the package is contagious. At the drop, a man you never see clearly takes it and holds out a folded bill toward you - a tip that isn't from the client.</p>
<<set _pkgChoiceMade = false>>
<div id="pkg-choice">
<<linkreplace "Take the extra ($20)">>
<<replace "#pkg-output">>
<p>You pocket it. Now you're not a driver who once carried a package - you're a courier who also drives. The distinction will matter someday, to a prosecutor.</p>
<<statchange "money" 20>>
<<statchange "heat" 5>>
<</replace>>
<<replace "#pkg-choice">><</replace>>
<</linkreplace>><br>
<<linkreplace "Wave it off">>
<<replace "#pkg-output">>
<p>You keep both hands on the wheel and let the bill hang in the air until it goes away. The girl exhales. On the ride home she talks to you like a person, which around here is its own kind of payment.</p>
<</replace>>
<<replace "#pkg-choice">><</replace>>
<</linkreplace>>
</div>
<div id="pkg-output"></div>
<</if>>
<<statchange "money" _pay>>
<</linkreplace>><br>
<</if>>
<<else>>
<div class="req">Escort runs go all night. You don't have the energy. (4 needed)</div>
<</if>>
<<else>>
<div class="req">Dre doesn't put unknown men next to his income. (50 respect for escort work)</div>
<</if>>
<<if $money >= 30>>
<<linkreplace "Take a room here ($30)">>
<<statchange "money" -30>>
<<statchange "energy" -2>>
<<statchange "heat" 3>>
<p>Dre takes the bills without counting them - he counted them from across the room - and tips his pen toward the hallway.</p>
[[Down the hall|Brothel Room]]
<</linkreplace>><br>
<<else>>
<div class="req">A room costs $30. Dre's arithmetic makes no exceptions.</div>
<</if>>
<div class="req">The girls Dre saves for his downtown clientele aren't offered here. Not to the neighborhood. (Premium content in a future update.)</div>
[[Climb back up to the street|The Hood]]
<</nobr>>
*//* CUT: brothel arc is not going into the next release - whole passage commented out.
<p>The room at the end of the hall has a bed, a lamp with a scarf over it, and a concrete ceiling nobody bothered to paint. The girl who follows you in is not the reader - Dre keeps her for the outside money - but a tired-eyed local girl who hangs her coat on the nail like she's clocking in, because she is.</p>
<<speech "Working Girl" "Half hour. Anything past regular is extra, and you settle extras with Dre, not me. Okay? Okay.">>
<p>It's transactional and neither of you pretends otherwise - down here, pretending costs extra too. But her hands are warm and her mouth is skilled, and when she works your zipper open and takes the measure of you, the boredom in her eyes gives way to something at least resembling professional interest.</p>
<!-- VIDEO: brothel scene - blowjob, dim basement room -->
<p>She spits in her palm and works you with the efficiency of long practice, mouth and hand trading off without a wasted motion. There's no affection in it, just craft - but the craft is good.</p>
<!-- VIDEO: brothel scene - sex, girl on top -->
<p>She rides you with her eyes half-closed, chasing the clock rather than a feeling, hips grinding out the minutes. Whatever she's thinking about, it isn't in this room - but her body knows its work, and it wrings yours out thoroughly and without mercy.</p>
<!-- VIDEO: brothel scene - finish -->
<p>You finish; she's dressed before your pulse settles, coat off the nail, already gone in every way but the physical. In the doorway she pauses.</p>
<<speech "Working Girl" "You didn't try anything extra without paying. Genuinely, thanks. You'd be surprised.">>
<p>You wouldn't be, though. That's the thing about this place. Nothing down here surprises you anymore.</p>
[[Back to the front room|Brothel]]
*//* CUT: brothel arc (Dre's sedan) is not going into the next release - whole passage commented out.
<!-- IMAGE: the road out - blockpost barrier rising for a gray sedan, city skyline beyond the wall -->
<<nobr>>
<<if $escort_car != 1 or $day < $car_suspended>><<goto "The Hood">><</if>>
<<set _favor = (random(1, 100) <= 15)>>
<<set _searched = ($heat >= 60) && (random(1, 100) <= 25)>>
<</nobr>>
<<if _favor>>
<p>The sedan is where you left it behind the laundromat - but Dre is leaning on the hood, ledger under his arm, in no hurry at all. Men like him never are; the numbers come to them.</p>
<<speech "Dre" "Good timing. There's an envelope under your seat and an address in the glovebox. It rides along tonight. The car works for me - sometimes, so do you.">>
<<set _favorChoiceMade = false>>
<div id="favor-choice">
<<linkreplace "Make the drop">>
<<replace "#favor-output">>
<p>Forty minutes out of your night, an address with no name, a hand through a cracked door taking the envelope without a word. You don't ask. Not asking is the entire job description.</p>
<<statchange "energy" -2>>
<<statchange "heat" 3>>
<</replace>>
<<replace "#favor-choice">><</replace>>
<</linkreplace>><br>
<<linkreplace "Not tonight">>
<<replace "#favor-output">>
<p>Dre doesn't argue. He holds out his palm, and you put the keys in it, and he walks back down into the basement without another word. The lesson costs three days of walking: the car was never a gift, it was a salary - and salaries get docked.</p>
<<set $car_suspended = $day + 3>>
<div class="req">Dre took the keys back until day $car_suspended.</div>
<</replace>>
<<replace "#favor-choice">><</replace>>
<</linkreplace>>
</div>
<div id="favor-output"></div>
<</if>>
<<if _searched>>
<p>The barrier stays down. A militiaman you don't recognize circles the sedan twice - new rotation, or new orders, or your face has simply been in too many notebooks lately. "Step out. Routine."</p>
<p>Nothing about it is routine. They take the door panels loose, sweep the wheel arches, run a mirror under Dre's clean paperwork.<<if $drug_stash > 0>> The stash comes out of your jacket in a zip-lock bag, photographed next to the plates.<<set $drug_stash = 0>><div class="statchange">(Your stash is confiscated.)</div><</if>> Your name goes into the notebook next to the plate number, underlined.</p>
<<statchange "heat" 15>>
<p>Word beats you back to the basement. Dre is waiting at the laundromat steps with his hand already out for the keys.</p>
<<speech "Dre" "My arrangement. My car. Your heat. The monthly I pay those men just went up, and until it settles, you walk like everybody else.">>
<<set $car_suspended = $day + 7>>
<div class="req">Dre took the keys back until day $car_suspended.</div>
[[Back into the hood|The Hood]]
<<else>>
<p>At the blockpost, the sergeant clocks the gray sedan from fifty meters and the barrier starts up before you finish slowing down. No papers, no flashlight, no questions - a nod that is almost professional courtesy. They know this car. They know exactly why it leaves the hood every night, and they are paid, monthly, to know nothing else. You roll through the one hole in the wall like water finding a crack.</p>
<p>And then you're outside. Clean asphalt. Streetlights that all work. A city going about its evening as if the wall were a retaining wall, something about landscaping. It's twenty minutes and a different planet.</p>
<<if $drug_stash > 0>>
<<linkreplace "Move your stash out here">>
<p>Out here the product is exotic - no corners, no lookouts, just bored money behind gym memberships and gallery openings. A gym-buddy of a gym-buddy, a bathroom at a wine bar, palms crossing palms with softer hands than you're used to. Outside prices make the corner look like charity.</p>
<<set _outsale = $drug_stash * 25>>
<<set _outheat = $drug_stash * 2>>
<<statchange "money" _outsale>>
<<statchange "heat" _outheat>>
<<set $drug_stash = 0>>
<p>Every sale out here is a thread leading back through one gate, one car, one face. Yours.</p>
<</linkreplace>>
<</if>>
<<linkreplace "Drive around a while">>
<<set _outev = random(1, 3)>>
<<switch _outev>>
<<case 1>>
<p>You idle at a red light next to a police cruiser and your pulse does what it's trained to do - but the officer glances over, sees a clean sedan with legal plates, and goes back to his phone. Out here you're nobody. After the hood, being nobody feels like witness protection.</p>
<<case 2>>
<p>You park across from a tower of glass and watch a penthouse window for a while: candlelight, a dinner party, a woman laughing with a glass of wine the size of your fist. Somewhere up there is the money that built the wall, eating dinner off the interest. One of Dre's girls is probably three floors below, being someone's secret. The city outside isn't free. It's just carpeted.</p>
<!-- IMAGE: penthouse window from street level - warm light, silhouettes, unreachable -->
<<case 3>>
<p>A supermarket, open all night, aisles wide as your whole hideout. You buy nothing. You just walk the produce section under the white light, among people who have never once counted patrol rhythms through a wall, and then you drive back before the feeling gets expensive.</p>
<</switch>>
<</linkreplace>>
<p>[[Drive back through the blockpost|The Hood]]</p>
<</if>>
*/<div class="text">Before it all went wrong, you were somebody.</div>
<div class="text">What does the mirror show?</div>
<div id="avatar-picker"><<include "AvatarPicker">></div>
<div class="text">Your real name - few people know it.</div>
<<textbox "$real_name" "Marcus" autofocus>>
<div class="guide">Quick stats guide:
<ul>
<li><span class="stat-name">Money</span> - Self-explanatory. Mostly comes from day jobs.</li>
<li><span class="stat-name">Energy</span> - Capped at 10, spent on various actions during the day. Sleep restores it.</li>
<li><span class="stat-name">Physical</span> - You're already in good shape, so this stat represents health and strength in one number. The gym and good food build it, beatings and hard work drain it, and at 0 game's over.</li>
<li><span class="stat-name">Respect</span> - Your name on the street. Mostly used for quest progression.</li>
<li><span class="stat-name">Heat</span> - Some of your actions will bring attention of law enforcement, and at higher levels it will make your life harder. Heat trickles down each day.</li>
</ul></div>
<p>[[Begin|IntroNew]]
[[Skip intro|Intro Skipped]]</p><div class="text">Skipping ahead doesn't wipe the slate. Everything that happened there still counts, and it left its marks:</div>
<<statchange "money" -25>>
<<statchange "physical" -5>>
<<statchange "respect" 2>>
<<statchange "heat" 30>>
<div class="req">The average outcome of the intro events has been applied.</div>
[[Go to the address|The hideout]]<<nobr>>
<<for _i = 1; _i <= 4; _i++>>
<<capture _i>>
<<link `"<img class='avatar-option" + ($avatar == _i ? " selected" : "") + "' src='img/misc/avatar_" + _i + ".jpg'>"`>>
<<set $avatar = _i>>
<<replace "#avatar-picker">><<include "AvatarPicker">><</replace>>
<</link>>
<</capture>>
<</for>>
<</nobr>><<nobr>>
<p>You board a pickup truck and join a company of sturdy, seasoned men. Driver, also the foreman, takes you away from the city to some distant community, where the wealthy build themselves palaces to indulge in vanity. On the positive note, the air is fresh, the sky is clear, and you feel almost reunited with nature - before starting the long shift of heavy work.</p>
<<album "img/construction/background_" 2 "jpg" "location">>
/* Rank ladder on $construction_rep. The body is the resume: under 35 physical you're day-labor meat no matter what the foreman remembers about you. */
<<if $physical < 35>>
<<set _rank = 0>>
<<elseif $construction_rep >= 25>>
<<set _rank = 3>>
<<elseif $construction_rep >= 12>>
<<set _rank = 2>>
<<elseif $construction_rep >= 5>>
<<set _rank = 1>>
<<else>>
<<set _rank = 0>>
<</if>>
<<switch _rank>>
<<case 0>>
<<if $construction_rep >= 5 && $physical < 35>>
<div class="req">The foreman looks at your hands, then at your face, and doesn't quite meet your eyes. However long you've hauled for him, a worn-out body gets the worn-out body's tasks. Day-laborer work, day-laborer pay.</div>
<<else>>
<div class="req">Day laborer. You're a pair of hands off the truck, interchangeable with any other pair.</div>
<</if>>
<<case 1>>
<div class="req">Regular. The foreman points at you first when the truck fills up.</div>
<<case 2>>
<div class="req">Trusted crew. You get the tasks that need a brain attached to the back.</div>
<<case 3>>
<div class="req">Foreman's guy. When he steps off site, he leaves you holding the clipboard.</div>
<</switch>>
<<linkreplace "Break the sweat">>
/* ==== The shift itself ==== */
<<set _results to random(0, 100)>>
<<if $physical < 35>>
<<set _base to 3>>
<p>You've grown too weak for this kind of work, and your earnings are lowered.</p>
<<elseif $physical < 60>>
<p>Your body can handle heavy labour.</p>
<<set _base to 5>>
<<else>>
<p>With your strength, you're able to perform more work than others, and thus earn more.</p>
<<set _base to 8>>
<</if>>
<<switch _rank>>
<<case 1>><<set _base += 2>>
<<case 2>><<set _base += 4>>
<<case 3>><<set _base += 6>>
<</switch>>
/* Injury is a 10% band (65-75); trusted crew get the safer tasks and halve it */
<<if _rank >= 2>><<set _injuryCut = 70>><<else>><<set _injuryCut = 75>><</if>>
<<statchange "energy" -5>>
<<statchange "construction_rep" 1>>
<<if _results < 65>>
<<if _rank == 3 && random(1,100) <= 35>>
<p>The foreman drives off to another site mid-morning and leaves you the crew. You spend the day pointing instead of lifting, settling two arguments and catching one mistake in the plans before it got poured in concrete. The men listen. That's not nothing.</p>
<<set _pay = _base*2 + 10>>
<<else>>
<p>It ain't much, but it's an honest work. When boarding the truck back to the city, you feel good about yourself - your hands created something today that may last longer than you live, even if that's some rich prick summer house.</p>
<<set _pay = _base*2>>
<</if>>
<<elseif _results < _injuryCut>>
<p>You injured yourself and barely did any work. The pay is lowered, not to mention the effects on your health.</p>
<<set _pay = _base>>
<<statchange "physical" -5>>
<<else>>
<p>Today, you've made so much progress that the foreman gives you a bonus! Unbelievable, I know.</p>
<<set _pay = _base*4>>
<<statchange "construction_rep" 2>>
<</if>>
<<if random(1,100) <= 15>>
<p>At the end of the day, the envelope is light. You count it twice in the truck, once more at home. The number doesn't change. Neither does anything else - the foreman shrugs, the client "adjusted the estimate", and the men who complain don't ride the truck next week. Honest work means the stealing is done to you politely.</p>
<<set _pay = Math.trunc(_pay / 2)>>
<div class="statchange">(Half your pay never made it into the envelope.)</div>
<</if>>
<<statchange "money" _pay>>
/* ==== Random event: the client's wife ==== */
<<if random(1,100) <= 10>>
<hr class="section-break">
<p>All afternoon there's a figure at the pool house window of the main residence - the client's wife, drink in hand, watching the crew work shirtless in the sun the way other people watch nature documentaries. The older guys don't even look up anymore. "The zoo goes both ways," one mutters.</p>
<<if _rank == 3 && $construction_wife == 0>>
<<linkreplace "Answer the look">>
<p>When the foreman sends you to the main house to check a fitting, she's waiting in the cool dark of the living room like it's a coincidence, silk robe doing the absolute minimum. "You're the one he trusts," she says, and puts your dusty hand flat on her breast. "So I can trust you to be quiet."</p>
<<video "img/construction/bored_wife.webm">>
<p>She shoves you down onto the pale designer couch she picked out of a catalogue, drops the robe somewhere behind her, and climbs on before your boots are even off, working herself down onto your cock in short greedy sinks, laughing at how much she has to stretch to take the whole thing. Then she starts riding you like the couch owes her money.</p>
<<set $construction_wife = 1>>
<<if random(1,100) <= 50>>
<p>You're two steps out the patio door when you meet the foreman's eyes across the yard. He doesn't say a word on the ride home. Next morning, the word is the client requested "a different crew composition". No pay docked, no scene - you just don't ride the truck for a week. Rich men don't punish you. They just make you disappear from the schedule.</p>
<<set $construction_banned = $day + 7>>
<<else>>
<p>Nobody sees you leave. On the ride home the foreman hands out the envelopes and yours has an extra ten in it - "client satisfaction bonus," he says to the windshield, absolutely without expression. You decide not to think about how many crews have had this exact bonus.</p>
<<statchange "money" 10>>
<</if>>
<</linkreplace>>
<</if>>
<</if>>
/* ==== Quest hook: community library ==== */
<<if $community_quest == 3 && $foreman_help == 0>>
<hr class="section-break">
<<linkreplace "Ask foreman for help with community library">>
<<if $construction_rep > 5>>
<p>You speak with the foreman about the community library. He thinks briefly before agreeing to lend you the tools and maybe even check out the site himself. Now, the renovations should progress faster!</p>
<<set $foreman_help to 1>>
<<else>>
<p>You need to gain foreman's trust before asking something like that.(construction_rep > 5)</p>
<</if>>
<</linkreplace>>
<</if>>
/* ==== Random event: the after-work hangout ==== */
<<if random(0,100)>50 && $money > 5 >>
<hr class="section-break">
<p>The foreman proposes that all workers hang out after a day of good work - it seems like a local tradition. To join, you need to chip in for a beer.</p>
<<linkreplace "Join the hangout">>
<<statchange "money" -5>>
<<statchange "construction_rep" 2>>
<<if random(0,100)>=50>>
<p>Sipping cold beer after a day of hard work makes you forget about the outside world. You share some stories and get to know each other better.</p>
<<else>>
<p>This time, you have collected enough money for a beer, and the extra goes on hiring a prostitute, a girl foreman seems to know.</p>
<<if _rank == 0>>
<p>The blonde slut enjoys the fuck train, but the pecking order is the pecking order: new hands go last. By the time the crew waves you over she's a used-up, cum-drooling mess and the truck is honking - you get a sloppy thirty seconds of her tired mouth before the foreman calls time. The guys laugh and slap your back. "Stick around, rookie. Seniority has benefits."</p>
<<video "img/construction/rookie_blowbang.webm">>
<<elseif _rank <= 2>>
<<set _hangout_vids to either("img/construction/hangout_1.webm","img/construction/hangout_2.mp4")>>
<p>The blonde slut enjoys the fuck train, and you bond while waiting for your turn - a real turn now, not the rookie scraps. When it comes, you fuck her over the tailgate to a chorus of cheers while she begs for it louder than she needs to, professional to the bone, and the crew ranks your form like judges at the Olympics.</p>
<<video _hangout_vids >>
<<else>>
<p>Foreman's guy gets the foreman's treatment: tonight there are two girls, and the "tradition" stops pretending it's anything but what it is - a crew orgy in an unfinished four-million-dollar living room. The blonde rides one of the masons on a stack of insulation while her friend, a wiry brunette with a filthy mouth, pulls you down onto the plastic sheeting and impales herself on your cock, narrating to the room exactly how the foreman's guy measures up. You spit-roast her with the crane operator until she's shaking, swap, and finish on the blonde's face next to two other loads. Somebody's radio plays through all of it. Monday you'll pour a floor over this exact spot.</p>
<<video "img/construction/final_party.webm">>
<p>Shared beer is shared beer, but this - this is shared trust. The crew treats you different after.</p>
<<statchange "construction_rep" 2>>
<</if>>
<</if>>
<</linkreplace>>
<</if>>
<</linkreplace>>
<hr class="section-break">
<<if $ella_end_quest == 1 && $ella_end_construction == 0>>
<<linkreplace "[Ella]Steal some materials">>
<p>It's not that you are stealing from the foreman, but probably he will be the one to blame. He'll make it, though; no construction is ever done by the books.</p>
<<set $ella_end_construction = 1>>
<</linkreplace>><br>
<</if>>
[[Go back|The Hood]]
<</nobr>>/*
Shared new-day backend for every sleep passage (Sleep, Closet Sleep, ...).
Narration stays in the individual passages - this only mutates state.
<<newday>> - resets daily counters, advances $day, decays heat/laying_low,
and runs the rent-due check. Sets _rent_due so the calling passage can
render its own rent narration (and apply the money/respect statchange).
Rent contract for any new sleep passage: $20/week, first envelope day 15,
then every 7 days, wherever the player slept. When _rent_due is true the
passage MUST offer the choice rather than deduct silently - pay $20 (only
shown if $money >= 20), or leave it empty for -10 respect while broke /
-20 respect while holding the money. Put the passage's continue link
inside each branch's <<replace "#output">> so the choice can't be skipped,
and show <<rentinfo>> on the hub that leads to the bed.
*/
<<widget "newday">>
<<set $eat_today to 0>>
<<set $nextday to 0>>
<<set $savannah_action_made to 0>>
<<set $savannah_observation_made to 0>>
<<set $hacked_had_sex_today to 0>>
<<set $school_tasks_done to 0>>
<<set $school_time = "morning">>
<<set $day += 1>>
<<set $heat = Math.max(0, Math.min(100, $heat - 3))>>
<<if $laying_low > 0>><<set $laying_low -= 1>><</if>>
/* Mrs. Albright's file thins by 1 after three days with nothing new in it,
once she's live ($albright_stage 2+). Not every raise goes through
setup.albrightNote, so a file that has grown since last night counts as
new here and dates from the day that just ended. It compares the net
heat, so a restriction spending more than the day added hides that day's
raise. */
<<if $albright_heat > $albright_heat_last>><<set $albright_heat_day = $day - 1>><</if>>
<<if $albright_stage >= 2 && $albright_heat > 0 && $day - $albright_heat_day >= 3>>
<<set $albright_heat -= 1>>
<<set $albright_heat_day = $day>>
<</if>>
<<set $albright_heat_last = $albright_heat>>
<<set _rent_due = not $rent_waived && $day >= 15 && ($day - $rent_day) >= 7>>
<<if _rent_due>><<set $rent_day = $day>><</if>>
<</widget>>
/*
<<schoolpay>> - the school's weekly wage. Self-contained (checks, narrates
and pays) because unlike rent there is no choice to present, and it used to
live on the Outside passage: a player who slept in the closet and never
punched out that way was never paid at all, with no back-pay. Call it right
after <<newday>> in every sleep passage.
The wage is per shift, not per week: $5 for every day in the pay week on
which at least one work order got done ($school_shifts, counted by
<<schoolshift>>), capped at 5 shifts = $25. A week of no work leaves the
envelope empty.
*/
<<widget "schoolpay">>
<<if $school_job >= 1 && ($day - $school_pay_day) >= 7>>
<<set $school_pay_day = $day>>
<<set _shiftsPaid = Math.min($school_shifts, 5)>>
<<set $school_shifts = 0>>
<<if _shiftsPaid > 0>>
<p>Payday. The envelope from the front office holds what this school thinks _shiftsPaid <<if _shiftsPaid == 1>>shift<<else>>shifts<</if>> of your back are worth.</p>
<<statchange "money" `_shiftsPaid * 5`>>
<<else>>
<p>Payday, in theory. The envelope in your slot has your name on it and a timesheet stapled inside with every box blank. The front office pays for hours punched, not for coveralls hanging in a closet.</p>
<</if>>
<</if>>
<</widget>>
/*
<<schoolshift>> - logs today as a worked shift for the weekly wage. Call it
wherever a school work order is completed; any number of orders on the same
day still count as one shift.
*/
<<widget "schoolshift">>
<<if $school_shift_day != $day>>
<<set $school_shift_day = $day>>
<<set $school_shifts += 1>>
<</if>>
<</widget>>
/*
<<detentionroster>> - rolls the day's fifth-period list once, rather than
letting a trip through the Hallway reroll it. The post has a 33% chance of
being empty; on staffed days the boys arrive as one unit half the time.
*/
<<widget "detentionroster">>
<<if $detention_roster_day != $day>>
<<set $detention_roster_day = $day>>
<<set $detention_has_students = random(1, 100) > 33>>
<<set $detention_incel_roster = $detention_has_students && random(1, 2) == 1>>
<<set $detention_event = random(1, 6)>>
<</if>>
<</widget>>
/*
<<rentinfo>> - small notice about the next room payment: when and how much.
Before the first envelope $rent_day is still 0, so the first due date is
day 15 - the same gate <<newday>> uses. Silent only while rent is waived.
*/
<<widget "rentinfo">>
<<if not $rent_waived>>
<<set _rentNext = $rent_day > 0 ? $rent_day + 7 : 15>>
<<set _rentIn = _rentNext - $day>>
<div class="req">Room rent: $20<<if $rent_day == 0>>, first envelope on day _rentNext<<else>>, next envelope on day _rentNext<</if>><<if _rentIn <= 0>> (this morning)<<elseif _rentIn == 1>> (tomorrow morning)<<else>> (in _rentIn days)<</if>>.</div>
<</if>>
<</widget>>/* CUT: street corner arc is not going into the next release - whole passage commented out.
<!-- IMAGE: street corner at night - dealers in hoodies under a dead sodium light, lookout kid on the step -->
<<if visited() == 1>>
<div class="text">The corner works the way corners have always worked: two young men under a dead streetlight who are never quite facing you, a kid on a step whose whole job is his eyesight, and a rhythm of hand-to-hand traffic timed between patrol passes. In a neighborhood the banks redlined and the employers fled, this is the stock exchange. Everybody hates it. Everybody's cousin works it.</div>
<div class="text">The taller one gives you the chin-up nod of a man who has already asked around about you. Around here, that's a letter of introduction.</div>
<<set $dealer_stage = 1>>
<<else>>
<p>The corner hums at its usual frequency - the lookout kid on the step, the two silhouettes under the dead light, the traffic of palms.</p>
<</if>>
<<nobr>>
<<if $drug_stash < 5>>
<<linkreplace "Buy product ($10)">>
<<if $money >= 10>>
<<statchange "money" -10>>
<<set $drug_stash += 1>>
<<statchange "heat" 1>>
<p>A palm crosses a palm. You're carrying now - one more reason to walk carefully. (Stash: $drug_stash/5)</p>
<<else>><p>No credit on the corner. Come back with cash.</p><</if>>
<</linkreplace>><br>
<<else>>
<div class="req">You're carrying as much as one man can explain away. (Stash full: 5/5)</div>
<</if>>
<<if $drug_stash > 0>>
<<linkreplace "Sell your stash here">>
<<if random(1, 100) <= 10>>
<p>Halfway through the count, the lookout kid whistles the bad whistle. A cruiser noses around the corner at walking speed. The stash goes down a storm drain - the only bank that never gives anything back - and everyone becomes a man waiting for a bus.</p>
<<set $drug_stash = 0>>
<<statchange "heat" 3>>
<<else>>
<<set _sale = $drug_stash * 15>>
<<set _saleheat = $drug_stash * 2>>
<<statchange "money" _sale>>
<<statchange "heat" _saleheat>>
<<set $drug_stash = 0>>
<p>Corner prices are honest, at least: modest margins, high turnover, no questions.</p>
<</if>>
<</linkreplace>><br>
<</if>>
<<if $dealer_stage == 1>>
<<if $respect >= 25>>
<<linkreplace "Ask for work">>
<p>The taller one hears you out, then studies the street over your shoulder for a while.</p>
<<speech "Dealer" "Everybody vouches for you, that's the funny thing. The library man, the gym man. A citizen. So understand what you're asking - this ain't citizen work.">>
<p>You know exactly what it is. It's also forty-five dollars a night in a neighborhood where the warehouse pays forty for breaking your back. He reads your face and nods, slow.</p>
<<speech "Dealer" "Shift work. You hold, you serve, you keep the count straight. The kid whistles, you walk - you don't run, running is a confession. We square up at close.">>
<<set $dealer_stage = 2>>
<</linkreplace>><br>
<<else>>
<div class="req">The crew doesn't put strangers on. (25 respect to ask for work)</div>
<</if>>
<</if>>
<<if $dealer_stage == 2>>
<<if $energy >= 5>>
<<linkreplace "Run a shift">>
<<statchange "energy" -5>>
<<statchange "heat" 12>>
<<set _night = random(1, 100)>>
<<if _night <= 35>>
<<statchange "money" 45>>
<p>A steady night. Palms, counts, patrol gaps. You learn the corner's grammar - who buys to function, who buys to disappear, which regulars you quietly shortchange toward quitting. At close, the tall one counts your cut without ceremony.</p>
<<elseif _night <= 62>>
<<statchange "money" 60>>
<p>Word's out that the corner has a new face who doesn't skim and doesn't panic. Volume is up. The tall one adds a bonus to your cut with the closest thing to a smile the corner allows.</p>
<<elseif _night <= 74>>
<p>Past midnight, a girl materializes at your elbow - early twenties wearing late thirties, pretty underneath the chemistry, scratching one forearm in the slow rhythm of need. She's eight dollars short and both of you know she was eight dollars short before she counted.</p>
<<speech "Junkie Girl" "I'm good for it. Or - I'm good for it right now, behind the laundromat. Whatever you want. I used to charge real money for this, you know. Ask anybody.">>
<<set _junkieChoiceMade = false>>
<div id="junkie-choice">
<<linkreplace "Take the trade">>
<<replace "#junkie-output">>
<p>Behind the laundromat she's on her knees before you've agreed out loud, working your belt with fingers that only stop shaking once they have a task. She wasn't lying about the old job - the mouth is professional even if nothing else about her is anymore, hungry and expert and horribly efficient, eyes closed, already somewhere else, already high on the arithmetic of what comes after.</p>
<!-- VIDEO: alley behind laundromat - desperate junkie blowjob, harsh light -->
<p>You finish, she wipes her mouth with the back of her wrist, takes the wrap, and is gone around the corner without a word - no coat, wrong shoes, all appetite. She'll be back tomorrow, and the day after, each time a little worse. You've just taught her the new exchange rate.</p>
<<if $drug_stash > 0>>
<<set $drug_stash -= 1>>
<div class="statchange">(One unit of your own stash covered the dose. Stash: $drug_stash/5)</div>
<<else>>
<div class="statchange">(The dose comes out of your count at close. -$15)</div>
<<set $money = Math.max(0, $money - 15)>>
<</if>>
<<statchange "respect" -2>>
<p>The lookout kid saw. The tall one hears about it by close and says nothing, which is how the corner says everything: dealers who take pussy instead of money look hungry, and hungry looks weak.</p>
<</replace>>
<<replace "#junkie-choice">><</replace>>
<</linkreplace>><br>
<<linkreplace "Wave her off">>
<<replace "#junkie-output">>
<p>"Money or walk." She curses you with startling creativity and dissolves back into the dark to find a softer dealer - and she will find one. You didn't save her. You just declined to be the one holding the leash tonight. The tall one clocks the exchange from across the street and gives you a slow nod.</p>
<<statchange "respect" 1>>
<</replace>>
<<replace "#junkie-choice">><</replace>>
<</linkreplace>>
</div>
<div id="junkie-output"></div>
<<statchange "money" 45>>
<<elseif _night <= 87>>
<<if $physical >= 50>>
<<statchange "money" 45>>
<p>Around two, three men from the eastside crew arrive to explain that this corner is changing management. You step out from under the light so they can see the whole silhouette, and the negotiation concludes itself. The crew notices you didn't need to throw a punch. The best muscle never does.</p>
<<statchange "respect" 3>>
<<else>>
<<statchange "money" 35>>
<<statchange "physical" -5>>
<p>Around two, the eastside crew comes through swinging. You hold the corner - barely - at the cost of a split lip and a boot print on your ribs. The count comes up short too. Some nights the job is just paying the neighborhood's taxes in blood.</p>
<</if>>
<<else>>
<<statchange "heat" 10>>
<p>The kid whistles mid-transaction and the night ends in a foot chase through back lots, product ditched, customers scattered. Nobody's caught, but nobody's paid either - and a patrol got a good look at the new face on the corner.</p>
<</if>>
<</linkreplace>><br>
<<else>>
<div class="req">A shift on the corner runs till close. You don't have it in you tonight. (5 energy needed)</div>
<</if>>
<<if $respect >= 25>>
<<if $day >= $protection_until>>
<<linkreplace "Pay for the lookouts ($30 for the week)">>
<<if $money >= 30>>
<<statchange "money" -30>>
<<set $protection_until = $day + 7>>
<p>You peel off thirty and the tall one folds it away without counting - counting would be an insult, and you've earned better. He tips his chin at the kid on the step, then at the rooftops.</p>
<<speech "Dealer" "You're on the network now. The kid whistles for you same as for us. Rooftop eyes, bicycle bells, the whole telegraph. Patrols don't surprise family.">>
<div class="req">The corner's early-warning network covers you for 7 days. Patrols will have a harder time catching you slipping.</div>
<<else>><p>The network runs on cash, not credit. Thirty, up front.</p><</if>>
<</linkreplace>><br>
<<else>>
<div class="req">The lookouts are watching your back until day $protection_until.</div>
<</if>>
<</if>>
<<if $brothel_unlocked == 0>>
<<linkreplace "Ask what else moves money around here">>
<p>The tall one weighs you for a second, then tips his head toward the dark end of the block.</p>
<<speech "Dealer" "Basement under the old laundromat. Man called Dre runs girls out of there - not for the neighborhood, for the <i>outside</i>. Rich boys downtown pay a fortune for a taste of what they built the wall around. It's ugly money. Dre's always looking for serious men. Tell him the corner sent you.">>
<<set $brothel_unlocked = 1>>
<</linkreplace>><br>
<</if>>
<</if>>
[[Back to the block|The Hood]]
<</nobr>>
*/<<switch $ella_stage>>
<<case 0>>
She looks miserable.
<div class="text">You slide onto the stool next to her, offering a nod. She glances at you, her tired eyes briefly scanning your face before returning to her drink.
<<speech "You" "Didn't expect to see someone like you here.">>
<<pic "img/ella/ella_cold_bar.jpg" "story">>
She smirks faintly, though it doesn't reach her eyes.
<<speech "Ella" "Yeah, well, I didn't expect to lose everything, either.">>
That sounds like an invitation for a conversation - and it seems she craves someone to listen. Her name is Ella. She used to run the community library a few blocks over - the heart of the neighborhood, she explains, until a far-right militia torched it during the last neighborhood raid. The Oath Boys, she says, with a face like the words taste bad - the regime's volunteer militiamen, the ones who run the blockposts. Grown men in surplus camo and homemade armbands who practice their salutes in parking lots and can't wait for a reason to use the rest of the costume.
<<speech "Ella" "I'm trying to rebuild it... But I can't do it alone, and everyone fears the Oath Boys will retaliate again.">>
The way she looks at you, there's no mistaking the ask. And something about her determination, despite everything, makes it hard to say no.</div>
<<set $community_quest to 1>>
<<set $ella_stage to 1>>
<<case 1>>
<p>You tell her that you started working on the community library.</p>
<<speech "Ella" "Whaaaaaat, get out, dude... This is fucking awesoooome! I'll have a job again!">>
<p>Ella leans closer - much closer - one hand landing on your forearm and staying there, her eyes doing something that would be dangerous if they could focus.</p>
<<pic "img/ella/stage1.jpg">>
<<speech "Ella" "You want somethin' in return, riiiight? Like, I owe you a handjob or something?">>
<p>She sways into your shoulder and stays there a beat too long, and there's no mistaking the invitation floating somewhere behind the booze. There's also no taking it. She reeks of whiskey, and she's closer to puking or falling asleep than to whatever she thinks she's suggesting.</p>
<<speech "You" "Tell me all about it when you can say it without holding onto the bar. How about I get you home? You look like you need some rest.">>
<<speech "Ella" "Meeee, cmooon... well, I guess you're right.">>
<p>Convincing her was easier than you expected. You asked the bartender to call for a trusted taxi driver and get Ella inside the cab. You make sure the driver realizes that in case anything happens to her, you will find him - and you will kill him.</p>
<<speech "Taxi driver" "Relax, man, I'll get her home safe. You can have my word." "taxi_driver">>
<p>You get back in the bar only when you are assured that Ella will be driven home safely and even escorted to the door. The bartender nods to you respectfully. You nod back.</p>
<<statchange "money" -5>>
<<statchange "respect" 10>>
<<set $ella_stage to 2>>
<<set $ella_next_day = $day + 1>>
<<case 2>>
<p>Ella isn't at the bar these days - the bartender says she's been at the library site since morning, sober as a judge. You should find her there.</p>
<<case 3>>
<p>Ella practically lives at the library site now. If you want her, that's where she'll be - probably with a clipboard.</p>
<<case 4>>
<div class="text">The library is open again, a patchwork of old and new. The charred walls have been scrubbed clean, though you can still pick out the fire's scars if you know where to look. Shelves cobbled together from scavenged wood line the walls, sparsely filled with books saved from the ashes - the "lives" stack, every volume of it. The bumpy floor gleams faintly under the dim light of repurposed fixtures. A handmade sign above the entrance reads, "Community Library: Open Again," painted with uneven strokes but brimming with pride.
Ella steps inside, her footsteps echoing softly. She runs her fingers along a shelf, pausing to pick up a book whose edges are singed but pages intact - the picture book with the paper sun. Her eyes glisten as she looks around, taking in the quiet resurrection.</div>
<<speech "Ella" "This... This is more than I ever thought possible. Sure, some books are destroyed, but now we have space to conduct community meetings and workshops. This could be a beating heart of the neighborhood!">>
<p>She continues, with her voice catching:</p>
<<speech "Ella" "You gave people something to hope for.">>
<p>Her smile, tired but radiant, says everything words cannot. There is nothing else left in the world but to hug Ella. You embrace her tiny body and feel how she melts in your hands. For some time, you stand in the middle of the renewed library and enjoy the moment - until Ella reaches up, and your lips connect. This is sudden but also expected - it's been coming since the salvage day, since the coffee, maybe since the taxi. You return the kiss.</p>
<<video "img/ella/first_kiss.webm" >>
<p>It breaks slowly. She stays in your arms, forehead against your chest, and when she speaks it's half into your shirt:</p>
<<speech "Ella" "Tomorrow's the opening. The whole neighborhood is coming, and I intend to be respectable for every excruciating minute of it. But after we close up... stay. I mean it. Stay.">>
<p>She looks up to make sure you've understood her - you have, completely - and then steps back, all business again, smoothing her shirt and pointing you at a crooked shelf that needs fixing before tomorrow.</p>
<<set $ella_stage to 5>>
<<set $ella_next_day = $day + 1>>
<<set $community_quest to 4>>
<<statchange "respect" 40>>
<<case 5>>
<<if $day >= $ella_next_day>>
<p>The room hums around her all afternoon, and through all of it, every time you look at Ella, she's already looking at you.</p>
[[Stay past closing|EllaFirstNight]]
<<else>>
<div class="req">The grand opening is tomorrow. Ella made you promise to be there - and to stay after.</div>
<</if>>
<<case 6>>
<<if $target1 >= 4>>
<p>You go looking for Ella at the library, but her desk holds only a note: "brb". You wait some more, but she's clearly not returning to her work any time soon. Where else could she be?</p>
<<set $ella_stage to 7>>
<<else>>
<<pic "img/ella/stage3.jpg">>
<p>Ella is busy bringing the library back to life.</p>
<<speech "Ella" "Hey, good to see you - but let's talk later, OK? I have so many things to do here...">>
<div class="req">You both have a job to do - return when you have finished your first task from Jamal.</div>
<</if>>
<<case 7>>
<p>Eager to find Ella after a long time in hiding, you go to the library only to find a note "brb" at her desk. You wait some more but realize she's not returning to her work any time soon. Where else could she be?</p>
<<case 8>>
<<speech "You" "Hey, Ella... Are you alright?">>
<<pic "img/ella/first_meeting.jpg">>
<p>She looks at you as if surprised to see you.</p>
<<speech "Ella" "Wooooaaah, look what the cat dragged in! I was in the process of accepting that I might never see you again, and here you are...">>
<p>Ella grabs the glass and chugs her drink, not looking at you. Wait, is this all because of you?</p>
<<speech "Ella" "So, will you explain yourself, mister?">>
<<speech "You" "What do you want to hear?">>
<<speech "Ella" "How about... WHY HAVE YOU DISAPPEARED WITHOUT SAYING A WORD TO ME?!!">>
<p>The bartender politely looks the other way, pretending that he - and the rest of the patrons - can't hear the fight starting between you.</p>
<<speech "Ella" "And then *burp*, when I'm all worried about your life, this video comes up where you fucking this bimbo cow, and I realize that you just didn't care. Maybe I'm a stupid girl who thought we had something. Or is my tits too small for you?">>
<p>She starts sobbing, and it's pathetic. You need to take some action.</p>
<<speech "You" "Look, I can explain everything. First, I do care about you. This time, while I was away, I thought a lot about you. Second... Sorry, I guess I've never thought we have established a relationship. How about we fix that? Let's go on a date.">>
<p>Ella looks at you, drunk, sobbing, but with a faint smile on her lips.</p>
<<speech "Ella" "Let's go, I guess... Meet me here tomorrow?">>
<<speech "You" "I will.">>
<p>You kiss her lips - she tastes salty from tears. Then, as usual, you get her a taxi home.</p>
<<speech "Taxi driver" "..." "taxi_driver">>
<p>Now... You would need to prepare for a date!</p>
<div class="req">You would need some cash - $50 would do - and 60 respect to pull a favor from an old acquaintance.</div>
<<set $ella_next_day = $day + 1>>
<<set $ella_stage = 9>>
<<case 9>>
Meet Ella at the bar when you are ready.
<<case 10>>
<<speech "Ella" "Made up your mind?">>
<<include "EllaChoice">>
<<case -1>>
Ella is packing the books in boxes - it seems she has found the buyer. Are you ready to go?
<<if $ella_end_car == 0>>
You need some wheels. Check out the neighborhood for a car to hijack.
<<elseif $ella_end_construction == 0>>
You should check the construction site; there are a lot of valuable things lying around.
<<elseif $ella_end_warehouse == 0>>
Check if you can steal some packages in the warehouse.
<<elseif $ella_end_bar == 0>>
A lot of cash is going through the bar; you can rob the Earl of some of it.
<<elseif $ella_end_hacker == 0>>
Adriana has a lot of electronics at her place. She won't notice some missing.
<<else>>
You have the wheels, cash, and a lot of stolen stuff to sell later. Time to [[hit the road|EllaEnding]].
<</if>>
<<case 11>>
<<if $knowledge<20>>
<div class="req">You need to raise your knowledge to 20 to proceed with Ella.</div>
<<else>>
[[Talk with Ella about what you read.|Ella_v3]]
<</if>>
<<case 12>>
<<if $william_stage == 6 && $pollock_stage >= 4>>
<p>You haven't seen Ella since the night downtown. She's probably keeping to her flat two streets over, the one you've only ever seen from the back of a taxi.</p>
<<if $energy >= 3>>[[Check on her|Ella After Vegas]]<br><<else>><div class="req">You need 3 energy to go and see her.</div><</if>>
<<else>>
<<pic "img/ella/eoc.jpg">>
This is the end of content for Ella. <<if $ella_mmf_stage >=0>>Except that MMF scene available after meeting with Jamal in the library.<</if>>
Stay tuned!
<</if>>
<<case 13>>
<<pic "img/ella/eoc.jpg">>
<<if $ella_swap_verdict == 1>>
She asked to be alone, and you're giving her that. This is the end of content for Ella for now.
<<else>>
This is the end of content for Ella. Stay tuned!
<</if>>
<</switch>>
<<return>><<pic "img/ella/date/meet_1.jpg">>
<p>You haven't seen Ella so gorgeous yet. Wearing a short black dress and evening makeup, she attracts a lot of gazes from the bar patrons, who - just like you - get used to seeing her either as a bookworm or a drunk woman down on her luck.</p>
<<speech "You" "You look beautiful, Ella.">>
<<speech "Ella" "Is that the first compliment you ever gave me?">>
<<speech "You" "I promise it won't be the last. Shall we?">>
<p>You leave the bar and get inside the taxi with a familiar driver.</p>
<<speech "Taxi driver" "Finally you drive together. Where to?" "taxi_driver">>
<div class="text">There aren't a lot of opportunities for a good night out in your depressed neighborhood, and in the city, typically, you'd attract too much attention - both because you're poor and because you are black and Ella is white. Thankfully, you've pulled some strings, unearthed some old connections from your service, and managed to get a table at a decent restaurant at one of the hotels Downtown, and if everything goes well, you even arranged a suite at the same place.
You arrive at the destination and sit in a quiet corner of a cozy restaurant; just as you were told, you don't get any sidelong glances in this place. Accompanied by good food and drinks, you have a lively conversation, sharing your stories and getting to know each other better.</div>
<<pic "img/ella/date/meet_2.jpg">>
<hr>
<<speech "Ella" "My parents were British, but I spent my childhood all over the globe. After uni, I stayed in the States and, well, never left.">>
<hr>
<<speech "You" "Jeremy, my brother, is my only family.">>
<hr>
<<speech "Ella" "I wish one day to write a novel about what I've seen. Maybe it can change things.">>
<hr>
<<speech "You" "I hope I never have to shoot a gun ever again. Some of my comrades enjoyed what we did overseas, but not me.">>
<hr>
<<speech "Ella" "Have you seen the library at dawn? It fills with this beautiful glow, and even the neighborhood does not look that depressing.">>
<hr>
<<speech "You" "I should one day show you the place I worked at outside the city. The nature is simply ethereal there.">>
<hr>
<<speech "Ella" "I miss mountains. And snow.">>
<hr>
<p>Among everything, you partly disclose your 'fight' against the state; Ella is dumbfounded, reasonably, and you quickly switch topics.</p>
<hr>
<p>It feels weird that your relationship started with a thank-you blowjob and not a proper date like that. This evening was lovely, maybe the best since your return to the country.</p>
<<speech "Ella" "This was so nice. I wish we didn't have to go back to our usual lives.">>
<<speech "You" "How about instead of a taxi, we take an elevator to a better place?">>
<<speech "Ella" "What? Don't tell me...">>
<p>There is no way you could have afforded the suite here; technically, you're not even staying here, just happening to know an empty room with an open door, thanks to a friend of a friend in the hotel staff.</p>
[[Take the elevator|EllaDate_2]]<<pic "img/ella/date/hotel.jpg">>
<<speech "Ella" "Haven't taken you for a romantic type.">>
<<speech "You" "I just work with what I have.">>
<p>You excuse yourself to the bathroom and later find Ella on the balcony without her dress. The gorgeous redhead is busy looking at the night cityscape, but you can't look anywhere but her plump butt.</p>
<<pic "img/ella/date/pose.jpg">>
<<speech "Ella" "Check out the view from here!">>
<<speech "You" "Oh, I'm checking it already.">>
<<speech "Ella" "I bet you do.">>
<p>You embrace her for a kiss and make out, feeling yourself on top of the world. Your daily struggles and problems are all down there, unreachable, meaningless - all that matters is Ella in your hands.</p>
<<speech "Ella" "Take me inside. And... I want to film myself like you film that policeman's wife.">>
<<speech "You" "Why?">>
<<speech "Ella" "Why? I don't know... Maybe I'm still jealous? Want to do things you did with her? You'd better pull out that big black cock before we dig too deep.">>
<<video "img/ella/date/1_reveal.webm" >>
<p>Holding her phone in one hand, Ella records herself kneeling before your dick. She plays for the camera as if proving that she could be blacked out as well as any other wife you have sex with.</p>
<<nobr>><<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
<<linkreplace "Just enjoy">>
<<set _choiceMade = true>>
<<replace "#output">>
<<video "img/ella/date/2_blowjob.webm" >><br>
<p>You relax and let Ella do the job. She plays with your glans, kissing it and wrapping it with her lips. You are too big for her to handle, but this doesn't stop you from enjoying the blowjob. You wished Ella maintained eye contact with you and not the camera, but it's her game to play.</p>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Just enjoy"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Treat her rough">>
<<set _choiceMade = true>>
<<replace "#output">>
<<speech "You" "If you really want to have the blacked experience, get ready.">>
<<video "img/ella/date/3_facefuck.webm" >><br>
<p>You pin Ella against the wall and push your dick as far as you can in her throat - not far, but deep enough to feel her whole head wrapped around your giant cock. She gags and coughs but undoubtedly enjoys how you handle her.</p><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Treat her rough"</em></div><</replace>> <!-- Hides both choices -->
<</linkreplace>><br>
<</if>>
</div>
<div id="output"></div>
<</nobr>>
<<linkreplace "Continue in bed...">>
<<video "img/ella/date/4_ride.mp4" >>
<p>It's time to put the hotel bed to the test. Since this is your first time, you put Ella on top to control the depth and speed - you don't want to hurt her by slamming your dick in her tiny pussy. She takes more of your dick than you would have expected, and when you switch positions, you are not afraid of rapid movements.</p>
<<video "img/ella/date/5_missionary.webm" >>
<p>With her legs spread, pussy open, Ella is ready to take your black cock, and you unite in passionate lovemaking. You should have done it long ago, claimed this ginger pussy the first moment you saw her - but now you own it, and it's all that matters.</p>
<<video "img/ella/date/6_cum.mp4" >>
<p>You finish with a facial, feeding Ella your cum. She happily catches every last drop of your semen, and you go back into bed for cuddles. You lie in bed with a happy woman you like - finally at peace...</p>
[[Next|EllaDate_3]]
<</linkreplace>><p>You accidentally fall asleep and wake up when it's still dark. Ella is already up, sitting near the window; she looks moody. How long has she been there?</p>
<<pic "img/ella/date/dawn.jpg">>
<<speech "You" "Good morning... is it morning? We might have to leave soon.">>
<<speech "Ella" "I wish we stayed here.">>
<<speech "You" "Hey, is something troubling you?">>
<<speech "Ella" "Well... Don't get me wrong, yesterday was magnificent. So good I don't want to get back to my normal life in the slums. To the life where I have to share you with other women.">>
<p>This conversation is unavoidable; you want to be more than friends with benefits, but you need to set up some rules.</p>
<<speech "You" "You know it's different. With what I do, I can achieve something; with that policeman's wife, I wasn't doing it because I wanted her but because she was unlucky to have a sadistic husband.">>
<p>Ella sighs.</p>
<<speech "Ella" "I still need some convincing on that, to be honest.">>
<<include "EllaChoice">>
<<linkreplace "Let's talk later.">>
<<speech "Ella" "You're right. Find me in the library.">>
<<set $ella_stage = 10>>
[[Get back to your life|The Hood]]
<</linkreplace>><<switch $ella_end_quest>>
<<case 0>>
<<speech "You" "You know what? Fuck this all. I don't want to get to our ghetto either. Let's run away.">>
<<speech "Ella" "Not funny.">>
<<speech "You" "I mean it! Why do we need to stay in this shithole? Waste our lives for nothing? We can drive up north and live quietly, away from... everything.">>
<<speech "Ella" "Let's pretend you are serious... Where do we get money for that?">>
<p>You think. You'll need some funds for safe travel, covering your trails, and then setting up a new place to live.</p>
<<speech "You" "Check what you can sell in the library. I will go through my places and see what I can find.">>
<<speech "Ella" "Okay... But what about your brother? Aren't you doing everything for him?">>
<<speech "You" "He can't be saved, and it was foolish to believe otherwise.">>
<p>It hurts you to say it out loud. Do you really believe it? You do now. Otherwise, you are betraying the only family you have. Yes, it's better to think Jeremy would have wanted you to live your life, not sacrifice it for him.</p>
<div class="req">Check the neighborhood and its surroundings for a car, cash, or things that can be sold for cash. Meet with Ella at the Community Center when you think you're done.</div>
<<set $ella_end_quest = 1>>
<<set $ella_stage = -1>>
[[Return to the hideout|The hideout]]
<<case 1>>
<div class="text">It's a long road to the Northern States, former Canada. While not out of reach from the government, it's still not fully incorporated. The riskiest part of the journey was crossing the border, and after that, you dissolve into the vastness of forests and mountains.
It wasn't easy, but in time you settled in. A decent house in the snowy mountains with the air so fresh it makes your head spin. You find a job as a mountain rescue worker that fits your physique. Ella is trying to write her novel, but it's not going well.</div>
<p>Up here nobody has ever heard the surname you bought in a back room. Ella calls you $real_name - the real one, the one you gave her somewhere before the border, whispered like contraband. Hearing it in her mouth every morning still catches you off guard. In a good way.</p>
<<video "img/ella/ending/1_kiss.mp4" >>
<p>You still have that burning drive and excitement from being two runaways who give up everything and try to live together. But it's fading out.</p>
<<video "img/ella/ending/2_kiss.webm" >>
<p>When the flame of desire fades completely, what will be left? Can you bear each other stuck in the same snow-capped house?</p>
<<video "img/ella/ending/3_blowjob.mp4" >>
<p>Can you stop staring at the ceiling at night, thinking about your brother?</p>
<<video "img/ella/ending/4_cuni.webm" >>
<p>Ella's pussy juices grant you temporary oblivion better than any spirit; you hungrily eat her out, wanting to get the thought out of your head.</p>
<<video "img/ella/ending/5_doggy.webm" >>
<p>Pinning her down to the floor still feels amazing every time you do it. There may be hope for you two, after all.</p>
<<video "img/ella/ending/6_cum.webm" >>
<p>Maybe you just need to live through the winter.</p>
<div class="text" style="font-size: 1.5em; font-weight: bold;">The end?</div>
<</switch>><p>The address Ella gave you leads you to a wealthy district. Moving quickly before neighbors report two suspicious blacks, you and Jamal enter a small but exquisite house.</p>
<<speech "Jamal" "Remind me, how your girl affording a place like this?">>
<<speech "You" "She has an old college friend she's been house-sitting for - watering the plants and stuff like that.">>
<<speech "Jamal" "College, huh? I forgot your girl a nerd.">>
<<speech "You" "Shut up, bro.">>
<p>You ring the bell, and Ella lets you in.</p>
<<speech "Ella" "Welcome, boys. I was just about to get lonely...">>
<<video "img/ella/jamal/threesome-0.mp4">>
<p>She's gorgeous tonight. You two tried to look as casual as possible to attract less attention, but Ella decided to shine for the upcoming devil's threesome. She wears an emerald dress that perfectly matches her hair, but her clothes don't stay long on her as she slowly undresses right after you step inside. Stepping back, she leads you to the bedroom, and you lose your clothes while following her. Straight to the action, huh?</p>
<<video "img/ella/jamal/threesome-1.mp4">>
<p>The bedroom treats you with a giant bed, on which the main attraction for tonight stands in all her glory. You and Jamal take a moment to admire her emerald underwear before closing in and practically worshipping her body. Two pairs of hands touch and grope Ella, and she is already wet from being the center of attention - even if she is not ready yet to admit that she enjoys it so much.</p>
<<video "img/ella/jamal/threesome-2.mp4">>
<p>You take turns kissing her, and this process of switching between your lips to Jamal's and back makes Ella ever hornier; she looks as if she's drunk, but only from an overwhelming lust.</p>
<<speech "Ella" "~You want me to suck your cocks?~">>
<<video "img/ella/jamal/threesome-3.mp4">>
<p>You must admit that Ella looks great, worshipping your black dicks. Her tongue explores your manhoods as if comparing them and then sucks them one after another.</p>
<<speech "Jamal" "She loving it!">>
<<speech "Ella" "~Why wouldn't I enjoy it~">>
<p>She'll enjoy it even more when you get to the main action for tonight. Who should go first?</p>
<<link "You, her black bf" "EllaJamalThreesome_2">>
<<set $ella_mmf_stage = 3>>
<</link>>
<<link "Treat Jamal with going first" "EllaJamalThreesome_2">>
<</link>><<if $ella_mmf_stage == 3>>
<<video "img/ella/jamal/threesome-5.mp4">>
<p>Ella gets on top and starts riding you, before offering her mouth to serve Jamal's dick. He grabs her hair and pushes deep inside her mouth while you grope Ella's butt and fuck her burning-hot pussy. You feel weirdly proud noticing how Jamal gets mesmerized by the rhythmic bouncing of your girlfriend's ass...</p>
<<else>>
<<video "img/ella/jamal/threesome-4.mp4">>
<div class="text">You lean back, inviting Ella for a blowjob.</div>
<<speech "Ella" "I'm gonna suck that cock while I'm getting fucked~">>
<<speech "You" "Yeah, I wanna watch that!">>
<p>You have a perfect view of your girl sucking your dick while getting railed from behind by your friend. She does look great serving two black dicks at once, like a natural-born snowbunny; she finally accepted that she loves being shared and enjoys every moment of it.</p>
<</if>>
<hr>
<<video "img/ella/jamal/threesome-7.mp4">>
<p>You fuck Ella non-stop, taking rests in between - either just to watch how another is bangin' her or stuff her mouth with black meat while her pussy is filled with a second dick. Ella is exhausted, but you don't remember seeing her as happy and satisfied as she is now.</p>
<<video "img/ella/jamal/threesome-9.mp4">>
<p>You could probably go on for another hour or so, but Ella doesn't need that - what she wants is a thick layer of cum on her face. You two jerk your dicks off until you unload your semen in her mouth, lips, and make her face white and messy.</p>
<<speech "Ella" "I'm so happy I'm about to cry, boys. Thank you~">>
<p>You and Jamal laugh and exchange a fistbump.</p>
<<speech "Jamal" "Thanks for the invite, man. I'm gon' let you lovebirds cuddle in this palace and bail. We had ourselves a good time, right?">>
<<speech "Ella" "~Yeeeeessss!~">>
<<speech "You" "For sure, bro. See ya.">>
[[Jamal politely leaves you alone.|EllaJamalThreesome_3]]<<pic "img/ella/jamal/cuddle.webp">>
<p>You spend some time alone, processing the threesome. You were afraid that some jealousy or other strong emotions would blur the experience, but all you feel is bliss and calm.</p>
<<speech "Ella" "You're good?">>
<<speech "You" "I think so. I'm kinda surprised about it, even. And you?">>
<<speech "Ella" "Oh... same. It was overwhelming, but... just wow.">>
<<if $savannah_approach == 2>>
<<speech "Ella" "I imagined it is more rough, given how you treated that bimbo for the video.">>
<<speech "You" "I told you it is different. But I wasn't sure about Jamal, though. He's more... stereotypical, I thought.">>
<<speech "Ella" "Yeah, he can be gentle and passionate.. weird, right? How easily we attribute stereotypes even to those we know.">>
<</if>>
<p>You giggle together and cuddle some more. Eventually, you'll have to leave this bed, but for now, it has everything you need in the world - each other.</p>
<<set $ella_mmf_stage = 4>>
[[Return to the real world.|The Hood]]<p>Ella is taking a breather between her duties - a good opportunity to talk about some topics stuck in your head since you began self-study.</p>
<<speech "You" "Hey, I've been picking up some books lately... The more I learn, the more questions I have. I'm feeling like I know even less about the world now.">>
<p>Ella chuckles.</p>
<<speech "Ella" "I get your frustration, but having questions is great - it means you are processing the ideas you learn about. Anyway, what do you want to talk about?">>
<div class="text">You choose economics. For your whole life, you knew that the system you live under is not fair, but you never thought about the alternatives; the word "socialist" was a slur among your brothers in arms. But now you learn about the other options - and have so many questions.
Discussing them, you learn another side of Ella - an intelligent, confident woman openly enjoying the conversation. Looking at her explaining why capitalism is inherently flawed, you suddenly feel even more attracted to this redhead librarian.</div>
<<speech "You" "If we all know that the game is rigged - why do we go along?">>
<<speech "Ella" "Most of us just can't imagine a world without it. We are conditioned to believe that the system is the only way, and that we have to work within it to survive. It's designed to keep us in line, to keep us too busy and too exhausted to question it.">>
<<speech "You" "The guy working triple shifts just to afford insulin does not think outside the box - he's thinking about not dying.">>
<p>Ella leans in closer as if to deliver the final message.</p>
<<speech "Ella" "Exactly. The system is designed to make us think that we have no choice, that we are powerless. But the truth is, we have more power than we realize. We just need to wake up and see it.">>
<p>She looks so sexy when she drops the truth bombs that you can't resist leaning in for a kiss. Does she enjoy showing off her intelligence as much as you enjoy admiring it? Making out with her feels different as if having an intellectual conversation was an excellent prelude.</p>
<<video "img/ella/conception/1_kiss.mp4" >>
<p>The heat from her body makes you crazy, and at the same time, you want to savor this intimate moment. There is nowhere to rush; only you two exist in the broken capitalist world. You thoroughly explore Ella's body before stopping at the tastiest part.</p>
<<speech "Ella" "Mmmm, what's wrong with you today...">>
<<video "img/ella/conception/2_closer.mp4" >>
<p>Licking juicy ginger pussy is always fun, but you want to look into her intelligent eyes and admire the view of gorgeous beauty with wide-spread legs. Your massive dick effortlessly slides into her wet pussy; she is yours - as much as you are hers.</p>
<<video "img/ella/conception/3_missionary.mp4">>
<p>It's not enough - you want to become one, unite your bodies through passionate lovemaking; you embrace Ella in your strong hands, kiss her, lick her, love her. Fleeting moments like that are the only time you can truly be open with someone.</p>
<<video "img/ella/conception/4_missionary2.mp4">>
<p>You pick up the pace; losing yourself in this intimate intercourse, you miss the moment when it is time to pull out. And how could you break this bond that was forming between you? No, the only way to finish this sex was to give Ella every last drop of your semen; your dick swell and pump her pussy full of your cum.</p>
<<video "img/ella/conception/5_cum.mp4">>
<<speech "Ella" "So... much... cum... Boy, you're cumming like a firehose.">>
<<speech "You" "Shit, I'm sorry, Ella, I...">>
<<speech "Ella" "Shh, don't worry about it. It will be fine.">>
<<pic "img/ella/conception/creampie.jpg">>
<p>For some time, you cuddle together, prolonging the sweet post-coital blissfulness. Your cum is slowly leaking out of Ella's pussy when she starts talking again:</p>
<<speech "Ella" "I wish I could see more of this side of yours. Gentle, caring, loving.">>
<<speech "You" "What do you mean?">>
<<speech "Ella" "You push yourself into these stereotypes to achieve your goals, stereotypes born out of other people's insecurities, and I'm afraid you can forget who you really are.">>
<<speech "You" "It's just a role I have to play...">>
<<speech "Ella" "But you enjoy it, do you?">>
<p>You feel annoyed about her trying to get into your head.</p>
<<speech "You" "Didn't you enjoy it when I choked you with my big black cock, huh?">>
<<speech "Ella" "You know what I'm talking about. Please, don't forget to stay yourself, that's all.">>
<p>She gets up and stretches her back, and the flow of cum starts flowing down her thigh.</p>
<<speech "Ella" "I need to get back to my work. Let's hope you didn't knock me up, haha.">>
<<set $ella_stage to 12>>
[[Haha...|Community Center]]<<pic "img/ella/library_new_stage_1.jpg">>
<p>You find Ella at the library site in the middle of the day - and for a moment you almost don't recognize her sober. She is still smokin' hot, with her working shorts barely able to contain her plump butt. Nevertheless, she is busy gathering the materials and trash around the site. She's even made a table out of a plank and two sawhorses, and on it sit two paper cups of coffee. Two.</p>
<<speech "Ella" "The bartender said you come by mornings sometimes. So I've been buying two coffees and drinking both. Today you get yours.">>
<p>The coffee is terrible. You drink it slowly anyway, while she walks you through the building like a surgeon presenting a patient - what's structural, what's cosmetic, which walls carry weight and which just carry graffiti.</p>
<<speech "Ella" "My grandmother cleaned offices so my mother could finish school. My mother taught third grade for thirty years so I could do a degree in library science - which everyone agreed was hilarious. A librarian, from this block.">>
<p>She runs a thumb along a scorched shelf edge, not looking at you.</p>
<<speech "Ella" "Three generations to build a person who believes in books. One night for those animals to burn the building down. Funnily enough, the Oath Boys filed the complaint themselves. 'Unregistered assembly' - my literacy classes, the tenant meetings. They wrote the paperwork in the morning and came back with the Molotovs at night. And everyone keeps asking me why I don't leave - I can't explain that leaving would be the actual fire.">>
<p>She catches herself, laughs, embarrassed at the speech. You tell her you understand - and, unusually for the things you say in this neighborhood, it's the truth. You talk for an hour about nothing that matters: books you pretended to have read, the bartender's mysterious cat, which of the militia at the blockpost is scared of dogs. When you leave, she's still working.</p>
<<speech "Ella" "Hey. Thank you for the other night. For putting me in that taxi and asking for nothing. I remember more of it than I let on.">>
<<nobr>>
<<set $ella_stage = 3>>
<<set $ella_next_day = $day + 1>>
<<statchange "respect" 1>>
<</nobr>>
[[Back to the renovation|Community Center]]<<pic "img/ella/library_new_stage_2.jpg">>
<p>Salvage day. Ella has commandeered you for the worst job in the building: going through the charred pile in the main hall, deciding book by book what can be saved. She has a system - three stacks, "lives," "dies," and "we'll see" - and absolute authority over all appeals.</p>
<<speech "Ella" "You keep putting things in 'lives' out of sentiment. That's not how triage works, soldier.">>
<p>It's slow, filthy work, and it becomes a game without either of you deciding it should: she reads out the worst surviving sentence from every ruined romance novel in a solemn newsreader voice; you construct increasingly criminal defenses for books she's sentenced to death. By afternoon your hands are black to the wrist and your face aches from laughing quietly - the way people laugh in a building they're mourning.</p>
<p>Late in the day she goes still. In her hands is a picture book, half its cover gone, the remaining half showing a paper sun. She turns it over twice.</p>
<<speech "Ella" "I used to read this one to the after-school kids. Same voice for the wolf every time - they'd riot if I changed it. Some of those kids' families are gone now. Relocated, detained, who knows.">>
<p>You take the book from her hands, gently, and put it in the "lives" stack. No argument this time. She looks up at you, dust in the light between you, and for one long moment the room leans - her eyes drop to your mouth, and yours to hers, and the whole afternoon narrows to the six inches separating you.</p>
<p>Then a shelf settles somewhere with a bang like a shot, and you both flinch, and laugh, and the moment folds itself away - not gone. Filed. In the "we'll see" stack.</p>
<<speech "Ella" "Okay. Okay, back to work, mister. This library won't resurrect itself.">>
<<nobr>>
<<set $ella_stage = 4>>
<<set $ella_next_day = $day + 2>>
<<statchange "respect" 1>>
<</nobr>>
[[Back to the renovation|Community Center]]<p>Opening day empties out slowly - neighbors, kids, the old men who came to argue about chess and stayed to argue about everything. Ella works the room the whole evening, lit up like the building itself. As you're about to slip out with the last of them, her hand catches your sleeve.</p>
<<speech "Ella" "Not you. Stay. Help me... close up.">>
<p>The lock clicks. The library goes quiet the way a church goes quiet. She walks back to you down the center aisle, unhurried, and stops close - that same six inches from the salvage day, and this time nothing bangs, nothing interrupts, and neither of you flinches.</p>
<<speech "Ella" "I've been thinking about that kiss for two days. And I'm completely sober, mister High Morals, so you're out of excuses.">>
<p>You close the distance. This kiss is nothing like the first one - no audience of one, no occasion. It's slow and greedy at the same time, her fingers hooking into your waistband like she's been rehearsing the move against the bookshelf of her mind.</p>
<<speech "Ella" "Do you think I'm able to consent to kiss that big hard thing in your pants?">>
<<speech "You" "You have a green light on that, miss.">>
<p>You chuckle and exchange one more kiss before Ella kneels before you, right there between "History" and "Poetry," her eyes never leaving yours as she works your belt open.</p>
<<video "img/ella/first_reveal.webm" >>
<<speech "Ella" "HOLY SHIT, fuck, I mean, I did not expect anything less, but...">>
<<speech "You" "Shhh. Remember why you're down there.">>
<<video "img/ella/first_blowjob.webm" >>
<p>Ella gently kisses the tip of your dick before attempting to go deeper on your shaft. Her tiny mouth is not made for accommodating something big as your black cock, but her continuous tongue work on your glans makes that unnecessary. This - and the sheer passion and tension built up between you since the salvage pile, in coffee cups and book dust and interrupted moments.</p>
<<video "img/ella/first_facial.webm" >>
<<speech "You" "Hey, I think I'm... Let me...">>
<p>Feeling your orgasm approaching, you take matters into your own hands and finish on Ella's face, spraying your thick cum all over her. A few drops land on her tongue, and she satisfyingly licks it all up.</p>
<<speech "Ella" "Promise me that next time your cum will be inside of me - one way or another, will you?">>
<p>You nod, still catching your breath. Just now, you realize that while having sex, you haven't been intimate with someone for a very long time. With Ella, there is a connection - built the slow way, which is the only way anything gets built in this neighborhood. You like it. You like her.</p>
<<set $ella_stage = 6>>
[[Back to the real world|The Hood]]<<nobr>><<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
Option 1: Condemn monogamy and propose the open relationships<br>
<<if $knowledge < 10>>
<div class="req">You need 10 knowledge to convince Ella.</div>
<<else>>
<<linkreplace "Go with that">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>Thanks to your knowledge, you can come up with the right words to convince Ella to give open relationships a try.</p><br>
<<speech "Ella" "I'm relieved to know that you know some theory behind polyamory; and I think we can always talk when someone will feel uncomfortable.">><br>
<p>Well... are you feeling comfortable about the possibility of Ella having sex with someone else?</p><br>
<<speech "Ella" "Relax, I don't need anyone else but you - at least for now, hihi.">><br>
<<if $savannah_approach == 2>>
<<speech "Ella" "Although... I must admit the way you double-teamed that policeman's wife left a deep impression on me. I would like it if you bring your friend next time.">>
<<else>>
<<speech "Ella" "Although, maybe I'd like to share someone with you together. I've heard threesomes are fun, right?">>
<</if>>
<<set $ella_stage = 11>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Go with that"</em></div><</replace>>
<</linkreplace>><</if>><br>
Option 2: There is no way you can give up what you do; the honest way is to stop seeing each other.<br>
<<linkreplace "Break up">>
<<set _choiceMade = true>>
<<replace "#output">>Please, don't. You'll break her heart, and yours too.<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Break up"</em></div><</replace>> <!-- Hides both choices -->
<</linkreplace>><br>
Option 3: Let's run away<br>
<<linkreplace "And start a new life">>
<<set _choiceMade = true>>
<<replace "#output">>
This will lead to an ending. Do you want to give up everything for Ella? [[Yes|EllaEnding]]<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"And start a new life"</em></div><</replace>> <!-- Hides both choices -->
<</linkreplace>><br>
<</if>>
</div>
<div id="output"></div>
<</nobr>>/* Ella after Swap Night. Gate: her arc at 12, the night done ($william_stage 6)
and Pollock's finale done on either route ($pollock_stage 4). No cost at the
top: the sad exit charges 1, the couch scene (Ella After Vegas Sex 1) charges
3, so the hub asks for 3. What he tells her about the school picks the exit
and, on the way to the couch, the tone ($ella_swap_verdict). */
<<if $energy < 3>>
<p>You'd turn up on her doorstep with nothing left to give her. Sleep first.</p>
[[Back|The Hood]]
<<else>>
<p>Ella's flat is above a shuttered pawnshop two streets from the library, up a stairwell that smells of somebody else's cooking. You've delivered her to the bottom of it in three taxis and never once been asked up, and hesitate before knocking.</p>
<<pic "img/ella/first_meeting.jpg">>
<p>She's in her usual sweater and nothing else that you can see. Behind her is one room and a lot of daylight. A white couch, a kettle on the floor by the socket, a stack of books doing the job of a table, and the kind of nothing that isn't a style choice.</p>
<<speech "Ella" "Don't. I know. The Oath Boys did the flat the same week they did the library.">>
<<speech "You" "You never told me they got your place too.">>
<<speech "Ella" "You never told me a lot of things, soldier. Sit. We need to talk.">>
<p>She folds up at the far end of the couch and for a minute she just grins at you, then at the ceiling, then at you again.</p>
<<speech "Ella" "Okay. First of all. How cool that night with the Vegas was, right? A bottle that costs what you make in a month of lifting boxes. A rich woman saying my name like she was trying it on in a shop.">>
<<speech "Ella" "I bet they'd love to see us again, but I'm not doing it.">>
<<speech "Ella" "Not because it wasn't lovely. Because it wasn't mine. William said it at the end, when he thought we were asleep. What a wonderful escape. That's the word, isn't it? You can't live in an escape, you can only visit one. And our place is here, like it or not.">>
<p>The grin comes back, wider and worse.</p>
<<speech "Ella" "Also, I sat on the face of a fucking Vega. The foundation that turned this library down four times, in writing, on very nice paper, and I sat on it and it thanked me. I peaked, mister. Let me have it.">>
<p>She laughs at herself, and doesn't quite finish the laugh.</p>
<<speech "Ella" "There was a second thing, though. About you.">>
<<speech "Ella" "William called you $real_name, and then he used $player_name. And every time he looked at you afterwards, it was like he'd dropped something. So which name is real?">>
<<speech "Ella" "A man with a name for every room.">>
<<speech "You" "One of them is mine.">>
<<speech "Ella" "I know. I'm not asking which. I decided on that balcony some time ago that I'd take the part of you I'm allowed to have, and I'm not going back on it. It's just that some days I do the sums, and every time I learn something new about you the total goes down, and I know even less about who you really are.">>
<<speech "Ella" "Like the school. I understand there's a reason you mop floors for children who'd cross the road from you, and I don't need to know it. But I can't connect the man I know with the things I hear about him from other people, and it makes me sad.">>
<p>You can't - shouldn't - involve her any more than she already is. And she knows that.</p>
<<speech "Ella" "Right. Enough. Change of subject.">>
<p>She uncurls, scoots down the couch till her knee is against your thigh.</p>
<<speech "Ella" "Tell me who you fuck.">>
<<speech "You" "Ella.">>
<<speech "Ella" "Don't give me that face, I like it. I've made my peace with it and then some. I've still got the policeman's wife on my phone, and I still watch it, and I'm still jealous, and I still come. So.">>
<p>Her knee presses harder.</p>
<<speech "Ella" "Not photos, I don't want to see them. I want to hear you tell it. Tell me what that school gets.">>
<<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
<<if $amber_stage >= 3>>
<<linkreplace "The counselor">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>You give her Britney Amber. Blonde, mid-thirties, a pencil skirt that loses the fight every morning, the school counselor who handles every harassment complaint in the building and told you on day one that you could report her to her. The couch in her office. The blinds. The sign on the door turned to SESSION IN PROGRESS, and the box of tissues she keeps for crying students and what it gets used for after.</p>
<<speech "Ella" "A counselor. With a couch. Who's her own complaints department.">>
<<speech "You" "She calls it the treatment plan.">>
<<speech "Ella" "Stop. No, don't stop. Does she keep her heels on? She keeps her heels on. God. She hands out pamphlets about self-respect and then she's on her knees on her own carpet for the man who hoovers it. I could write her, what a character.">>
<<if $amber_atm >=2>>
<p>You tell her that she enjoys taking your dick from her ass straight to her mouth.</p>
<<speech "Ella" "Eeeeeew.">>
<<speech "Ella" "But I respect her for cleaning after herself.">>
<</if>>
<p>She's gone pink from the collarbone up, and her hand has found your thigh the way it did at the bar the night she offered you a handjob she couldn't have stood up to deliver, and she's sober now, which makes it worse.</p>
<<speech "Ella" "I will be your next one. Show me how you treat bad bitches.">>
<<set $ella_swap_verdict = 3>>
[[Show her|Ella After Vegas Sex 1]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"The counselor"</em></div><</replace>>
<</linkreplace>><br>
<</if>>
<<linkreplace "The principal">>
<<set _choiceMade = true>>
<<replace "#output">>
<<if $pollock_route == 2>>
<p>You give her Shannon Pollock. Fifty-one, runs the district, a governor on her wall, whole shebang. Then the drive to her house in broad daylight, and the principal herself standing in the middle of her own living room with no idea where to put herself.</p>
<<if $pollock_home_cuck >= 2>>
<p>And the husband. You tell her about Marcello, and the reading chair dragged across the carpet to face the couch, and the man of the house sitting in it with his knees together saying thank you.</p>
<<speech "Ella" "He thanked you.">>
<<speech "You" "Twice. Then he drove me home.">>
<<else>>
<p>And the husband sent upstairs, and what she came back down in. White lace, bought for it, and the way she crawled across her own carpet in it because you were sitting in the middle of her couch and hadn't got up.</p>
<<speech "Ella" "She crawled.">>
<<speech "You" "She'd have jumped if I'd asked.">>
<</if>>
<<speech "Ella" "I'm getting wet. You ruined my panties, bastard.">>
<p>She's pink to the collarbone and not hiding it, and her hand has been on your thigh since the drive.</p>
<<speech "Ella" "Your stories make me all wet and ready. Show me how you treat bad bitches.">>
<<set $ella_swap_verdict = 3>>
[[Show her|Ella After Vegas Sex 1]]
<<else>>
<p>You give her Shannon Pollock. Fifty-one, runs the district, a governor on her wall. What you found on her, and what she offered instead of a fight. Room 214, three eighteen-year-olds standing up when she walked in.</p>
<<speech "Ella" "You didn't stay.">>
<<speech "You" "It wasn't mine to run.">>
<<speech "Ella" "Whose was it?">>
<p>You tell her whose. The club. The boys you supervise in a basement room, the ones who lived on the forums until you gave them something better to want, and what you taught them to want. She listens to the whole thing with her knee against your thigh, and by the end of it the knee is gone.</p>
<<include "Ella After Vegas Sad">>
<</if>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"The principal"</em></div><</replace>>
<</linkreplace>><br>
<<if $incel_stage >= 5>>
<<linkreplace "The club">>
<<set _choiceMade = true>>
<<replace "#output">>
<<if $incel_path == 1>>
<p>You give her room 021. Four black boys who lived on the incel forums until you took over their detention. Sessions about loneliness and rejection and the way the forums turn every bad day into proof.</p>
<<speech "Ella" "Wait. Wait. This is what you do at the school. This is the secret. You run a support group for sad boys.">>
<<speech "You" "It's not a...">>
<<speech "Ella" "It's a support group for sad boys. Oh my God. And Devin. William said Devin has stories now, in the car, he said it like a man whose son got a new lung. That's you. That was you, and you let me think it was all skirts.">>
<p>She's laughing, and then she isn't, and she's looking at you the way she looked at the picture book with the paper sun.</p>
<<speech "Ella" "That's the most you thing I've ever heard. Not the sergeant. Not the black seducer. You.">>
<p>She climbs across the couch into your lap, slow, the sweater riding up, nothing under it after all, and takes your face in both hands.</p>
<<speech "Ella" "Here's what I want, then. Not a treatment, not a target. I want that one. The one who bought a packet of memes for four boys who hate themselves. He's the one I'm sharing with everybody, so he can bloody well come home once in a while.">>
<<set $ella_swap_verdict = 2>>
[[Give it to her|Ella After Vegas Sex 1]]
<<else>>
<p>You give her room 021. Four black boys who lived on the incel forums until you took over their detention, and what you wrote on the blackboard the day they asked you for the secret. Then the lessons after it: the myth, the husbands who are afraid of it and want it, the wives who wonder. How to be a white man's fear and fuck his woman. How well they've learned it.</p>
<p>She listens with her knee against your thigh, and somewhere in the middle of it the knee goes away.</p>
<<speech "Ella" "Agatha said something that night, while you and William were doing the hill story again. That Devin looks at her differently now. William laughed and said it's the age. She didn't laugh.">>
<<include "Ella After Vegas Sad">>
<</if>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"The club"</em></div><</replace>>
<</linkreplace>><br>
<</if>>
<</if>>
</div>
<div id="output"></div>
<</if>>/* Shared tail of the two stories that sink the visit (the principal on the
group route, the club on the stereotype route). Included from inside their
<<replace>>, so the only way out is the link at the bottom. */
<<pic "img/ella/leave.jpg">>
<p>She doesn't shout. You've seen her shout, drunk, at a bar, about a video. This is the other thing, the librarian voice, the one for people who've torn a page.</p>
<<speech "Ella" "I asked you something once. I asked you not to forget who you are behind the stereotype. You said it was a role.">>
<<speech "Ella" "And you went and made copies.">>
<<speech "You" "Ella, it's a means to...">>
<<speech "Ella" "I've never once asked you what it's a means to. I'm asking what it's doing to you, and you've just told me, and you were proud.">>
<p>She stands up, which in this room means she's three steps from you in any direction, and stops by the window with her back to the light and her arms wrapped over the sweater.</p>
<<speech "Ella" "An hour ago I knew several names for you and I thought that was the problem. Turns out names aren't the problem - you are. That's a lot to find out before lunch, and I'd rather find out the rest of it by myself.">>
<<speech "Ella" "Please. I'm not throwing you out, I'm asking you to go. I need to think about what you said.">>
<p>You let yourself out, and the deadbolt goes across behind you before you've reached the first landing, and the stairwell still smells of somebody else's cooking.</p>
<<set $ella_swap_verdict = 1>>
<<set $ella_stage = 13>>
<<statchange "energy" -1>>
[[Leave her alone|The Hood]]/* Head of the couch scene: energy is charged once here. Clips are
img/ella/post_4some_<N>.mp4, 1-5 in this passage and its included bodies,
6-11 in Ella After Vegas Sex 2. Tone comes from $ella_swap_verdict
(3 = she asked to be the next target, 2 = she asked for him): it puts the
rough option first at the two junctions here and colours her lines. The
clips are the same either way. The junction bodies are separate passages
(Mouth Rough/Soft, Behind, Pin Rough/Soft) only so the two orderings don't
duplicate them; they're <<include>>d, never linked. */
<<statchange "energy" -3>>
<<set _target = $ella_swap_verdict == 3>>
<<if _target>>
<p>The sweater goes over her head and lands on the kettle. She kneels up on the couch and looks at you over her shoulder while you strip, and she doesn't help, she watches, the way she'd watch you take apart a sentence.</p>
<<speech "Ella" "How do they start? Your targets. On the couch or on the floor? I want it done properly.">>
<<speech "You" "On their knees.">>
<p>She turns around. On all fours on the white couch with her back arched and her ass up, small tits hanging, and her mouth open before you've stepped up to it.</p>
<<else>>
<p>The sweater comes off slowly, and she folds it, which is the most Ella thing that will happen in the next hour, and sets it on the stack of books. Then she kneels up on the couch and pulls you in by the belt.</p>
<<speech "Ella" "Stay in the room this time. That's all I'm asking. Whoever you are for them, you're you for this.">>
<<speech "You" "I'm here.">>
<p>She kisses you once to check, then drops to her hands and knees on the white couch, back arched, small tits hanging, ass up, and looks back over her shoulder to see if you're still there, and you are.</p>
<</if>>
<<video "img/ella/post_4some_1.mp4">>
<p>You stand naked beside the couch and she takes you into her mouth from all fours, and the same thing happens that always happens, which is that she gets the head in and stalls. Her jaw is too small for it and always was. She works around the problem instead of through it: lips stretched white around the crown, tongue busy underneath, one hand pumping the length she can't reach, spit running off her chin onto the cushion. Every few strokes she tries for more and gags on the attempt and goes back to what works, and the mascara runs a little further each time.</p>
<<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
<<if _target>>
<<linkreplace "Take her head">>
<<set _choiceMade = true>>
<<replace "#output">><<include "Ella After Vegas Mouth Rough">><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Take her head"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Let her work at it">>
<<set _choiceMade = true>>
<<replace "#output">><<include "Ella After Vegas Mouth Soft">><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Let her work at it"</em></div><</replace>>
<</linkreplace>>
<<else>>
<<linkreplace "Let her work at it">>
<<set _choiceMade = true>>
<<replace "#output">><<include "Ella After Vegas Mouth Soft">><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Let her work at it"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Take her head">>
<<set _choiceMade = true>>
<<replace "#output">><<include "Ella After Vegas Mouth Rough">><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Take her head"</em></div><</replace>>
<</linkreplace>>
<</if>>
<</if>>
</div>
<div id="output"></div><<video "img/ella/post_4some_2.mp4">>
<p>You take her head in both hands, get your feet set and use her mouth like it's the only hole she's got. Not deep, she hasn't got deep, but you take all the room there is and a bit past it, her nose flattening against you, her throat clenching around the crown and refusing it and getting it anyway. She gags, wet and loud, spit sheeting off her chin onto the white cushion; her hands come up to your thighs and don't push. You give her air on your schedule, and every time you pull out she gasps and opens up again before you've asked.</p>
<<if _target>>
<<speech "Ella" "~Ish that... hkk... ish that what she got?~">>
<<speech "You" "That's what they all get.">>
<<else>>
<<speech "Ella" "~Okay. Okay, that one's still you. I checked.~">>
<</if>>
<p>She's a mess by the time you let go. Mascara in two black lanes down to her jaw, lips swollen, a string of spit from her bottom lip to your cock that she wipes with the back of her hand and then licks off the hand.</p>
<<linkreplace "Get behind her">><<include "Ella After Vegas Behind">><</linkreplace>><p>You keep your hands off her and let her fight it herself. She sets a pace, a slow one, and loses to your size in the same place every time: the head, the stall, the stubborn extra inch she goes for and gags on, over and over, because nobody is making her and she goes for it anyway. The white cushion under her chin is soaked. When she comes up for air her eyes are streaming and she's grinning around it.</p>
<<if _target>>
<<speech "Ella" "~I'll get there. Give me a year and a manual.~">>
<<else>>
<<speech "Ella" "~Don't help. I want to know I did it.~">>
<</if>>
<<linkreplace "Get behind her">><<include "Ella After Vegas Behind">><</linkreplace>>/* Clips 3-4 and the second junction, included from both Mouth bodies. */
<<video "img/ella/post_4some_3.mp4">>
<p>You come round behind her and kneel, and she knows what's coming and spreads her knees on the cushion for it without being told. That ass. Pale and round and too big for the rest of a tiny white girl; you spread it with both thumbs and put your face in it. Tongue flat across her asshole, then pointed, then flat again, her whole body jerking forward on the first pass and pushing back into your mouth on the second, her pussy dripping onto your chin below. She makes a sound into the cushion that isn't a word.</p>
<p>Then you sit back on your heels, dick standing, and don't move. She works it out fast. She crawls backwards down the couch toward you, chest low, that big bubble ass swaying at eye level, looking back under her arm to aim, and you let her come the whole way herself.</p>
<<video "img/ella/post_4some_4.mp4">>
<p>She backs onto you. The head goes in with a wet give and the rest follows because she doesn't stop, doesn't wait, just keeps pushing until her ass is flush against your hips and she's got all of it, tiny pussy stretched white around the base and dripping down your balls. Then she starts fucking herself on it. Short hard shoves, her hands fisted in the cushion for leverage, that ass rippling every time it hits you. You let her do the work for a while for the view alone, then bring your palm down on one cheek hard enough to leave a print, and she yelps and goes faster, so you do it again and meet her, and the two of you slam together hard enough to walk the couch an inch across the floor.</p>
<<if _target>>
<<speech "Ella" "~Harder. She got harder than this, I know she did.~">>
<<else>>
<<speech "Ella" "~There you are. There you are.~">>
<</if>>
<div id="choice-2">
<<if _target>>
<<linkreplace "Lock her arms and pin her down">>
<<replace "#output-2">><<include "Ella After Vegas Pin Rough">><</replace>>
<<replace "#choice-2">><div class="choice-made"><em>"Lock her arms and pin her down"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Keep the rhythm">>
<<replace "#output-2">><<include "Ella After Vegas Pin Soft">><</replace>>
<<replace "#choice-2">><div class="choice-made"><em>"Keep the rhythm"</em></div><</replace>>
<</linkreplace>>
<<else>>
<<linkreplace "Keep the rhythm">>
<<replace "#output-2">><<include "Ella After Vegas Pin Soft">><</replace>>
<<replace "#choice-2">><div class="choice-made"><em>"Keep the rhythm"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Lock her arms and pin her down">>
<<replace "#output-2">><<include "Ella After Vegas Pin Rough">><</replace>>
<<replace "#choice-2">><div class="choice-made"><em>"Lock her arms and pin her down"</em></div><</replace>>
<</linkreplace>>
<</if>>
</div>
<div id="output-2"></div><<video "img/ella/post_4some_5.mp4">>
<p>You catch one wrist, then the other, and lock both behind her back in one fist. The other hand goes flat on the back of her head and pushes her face into the cushion, and one finger hooks into her mouth from the side; she bites down on it and sucks. Pinned at both ends, ass up, nowhere to go, and you fuck her like that, long and hard, every thrust rocking her face deeper into the white cotton. She's saying something. She keeps saying it, wet around your fingers, and it takes you three strokes to make it out.</p>
<<speech "Ella" "~Yesh... pleashe... I want moree...~">>
<p>You give her more. She comes on it with her arms still locked and her mouth still full, a long shuddering clench that milks you, and when you finally let her wrists go they stay where you left them for a second, like she'd forgotten she had them.</p>
<<if _target>>
<<speech "Ella" "~I'm just another conquered slut~">>
<<else>>
<<speech "You" "Still me.">>
<<speech "Ella" "~I know. I can tell. Don't stop.~">>
<</if>>
[[Turn her over|Ella After Vegas Sex 2]]<p>You keep the rhythm instead. One hand on her hip, the other wrapped round to her clit, deep even strokes, and you leave her her hands, which she uses to reach back and hold your thigh like she's afraid you'll go somewhere. She comes like that, forehead on the cushion, quiet, a long shudder that clamps down on you from root to tip and doesn't let go till she's done.</p>
<<speech "Ella" "~Okay. Okay, okay. Turn me over. I want to see you.~">>
[[Turn her over|Ella After Vegas Sex 2]]/* Second half of the couch scene: clip 6, then the optional worship (7-8) and
lift (9) segments, in that order or either alone, then the finish (10-11 and
the aftermath) via Ella After Vegas Finish. */
<<set _target = $ella_swap_verdict == 3>>
<<video "img/ella/post_4some_6.mp4">>
<p>You flip her onto her back on the couch, hook one leg over your arm and push it up toward her shoulder, and go in again from above with her folded open under you. Deeper this way. You can see it in her face when you bottom out, her eyes going wide and unfocused at the ceiling, her mouth open on nothing; then her hand slides down between you and she starts rubbing her clit in fast little circles while you fuck her, not shy about it, chasing it.</p>
<<if _target>>
<<speech "Ella" "~Do they get this? Do you look at them like this?~">>
<<speech "You" "No.">>
<<else>>
<<speech "Ella" "~Hi.~">>
<<speech "You" "Hi.">>
<</if>>
<p>She comes a second time with her heel drumming your back and her hand still working, and you pull out before you follow her, because you're not done with her mouth.</p>
<div id="choice-container">
<<linkreplace "Sit back and let her worship">>
<<replace "#output">>
<<video "img/ella/post_4some_7.mp4">>
<p>You sit on the edge of the couch with your legs spread wide and she slides off onto the floor and lies on her belly between them, chin on the cushion edge, and goes to work on your cock like she's got all afternoon. Kissing up the shaft. Licking the taste of herself off it. Then she gets ambitious again, lines up the head and pushes, and gets exactly as far as she's ever got before the gag, and tries again, and again, tears cutting clean tracks through the mascara, and it's almost sweet, a woman this stubborn losing to something this simple. You tell her so. She flips you off without taking it out of her mouth.</p>
<<video "img/ella/post_4some_8.mp4">>
<p>Then she gives the head up as a lost cause and goes lower. Nose in your balls, sweaty from the work, and she doesn't care, she moans into them; and here she has more luck. One drawn into her mouth whole and rolled on her tongue while her fist keeps the shaft busy above, then the other, cheeks hollowing, looking up at you the whole time with a face that says this part she can do.</p>
<div id="choice-2">
<<linkreplace "Pick her up">>
<<replace "#output-2">><<include "Ella After Vegas Lift">><<include "Ella After Vegas Finish">><</replace>>
<<replace "#choice-2">><div class="choice-made"><em>"Pick her up"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Back on the couch">>
<<replace "#output-2">><<include "Ella After Vegas Finish">><</replace>>
<<replace "#choice-2">><div class="choice-made"><em>"Back on the couch"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output-2"></div>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Sit back and let her worship"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Pick her up">>
<<replace "#output">><<include "Ella After Vegas Lift">><<include "Ella After Vegas Finish">><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Pick her up"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Straight back to the couch">>
<<replace "#output">><<include "Ella After Vegas Finish">><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Straight back to the couch"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div><<video "img/ella/post_4some_9.mp4">>
<p>You reach down, get her under the arms, and stand up with her. She squeals, then works out where she's going and stops. Upside down against your chest, thighs over your shoulders, her ass in your hands, her pussy in your face and your cock hanging straight down into her face. You put your mouth on her and she puts hers on you, and gravity does what her jaw never could: with her head hanging she takes you deeper than she ever has, deeper than the hotel, deeper than the library floor, a long choking slide she makes a noise about and doesn't stop. You eat her out with her whole weight in your hands and her throat working on you, and she's soaked, and you're the one who nearly loses it first.</p>
<p>You turn her the right way up before that happens. She's laughing, red-faced and dizzy and dripping, and she grabs your face and kisses you with the taste of both of you in it, and her hand finds your cock between you and keeps stroking it, slow, the whole time you make out.</p>
<<if _target>>
<<speech "Ella" "~Did any of them get carried? Tell me none of them got carried.~">>
<<speech "You" "None of them.">>
<<else>>
<<speech "Ella" "~I missed you, YOU, so much.~">>
<</if>>/* Clips 10-11 and the aftermath. Included at the end of every path through
Ella After Vegas Sex 2; this is where the visit closes her arc at 13. */
<<video "img/ella/post_4some_10.mp4">>
<p>Back on the couch, and this time there's nothing careful left. You put her on her knees with her face down in the cushion and her ass in the air and take her from behind like a jackhammer, hips slapping her cheeks red, her wet pussy making a noise on every stroke that the pawnshop downstairs could probably hear. She stops making words, then sounds, and then her hand slaps the cushion twice, tapping out or asking for more, you can't tell and you don't stop, and your balls draw up with about three strokes left in you.</p>
<<video "img/ella/post_4some_11.mp4">>
<p>You pull out. She's off the couch and onto her knees on the floor, mouth open, both hands on your thighs, and you put the head on her tongue and unload. She swallows as it comes, throat working, and doesn't lose a drop, and when you're done she stays there and cleans you: tongue around the glans, slow, then down the shaft and back up, thorough, like she's checking her work. She looks up. Mascara to her jaw, lips swollen, spit and cum shining on her chin, and satisfied all the way through.</p>
<<if _target>>
<<speech "Ella" "So. Do I outrank her now?">>
<<speech "You" "Who?">>
<<speech "Ella" "Whoever's next.">>
<<speech "You" "You always do.">>
<<else>>
<p>She stays on the floor with her back against the couch and her head on your knee, breathing, and neither of you gets up, because there's nowhere in this room to get up to.</p>
<<speech "Ella" "Tell me one true thing. Not a name, I don't want the name. Something small.">>
<p>You think about it. Then you tell her about the time your brother saved your life during a mountain hike. You almost forgot about that incident, and now realize this is why you're doing what you're doing now.</p>
<<speech "Ella" "There. See. That was free. That cost you nothing and I get to keep it.">>
<<speech "Ella" "Thank you.">>
<</if>>
<<set $ella_stage = 13>>
[[Home|The Hood]]<p>Scenes you have already seen, and a count of the ones you have not. Nothing here spoils what is still locked. Random or repeatable scenes are not included if they can still be accessed in-game. After completing a story path, you can unlock scenes from its other path.</p>
<p class="req">Replaying a scene changes nothing - your money, your stats and the day you are on are all put back the moment you leave it. Saving is disabled while a replay is running.</p>
<<gallerygrid>>
<br>
[[Return to the game|The hideout]]/* Developer tool, deliberately unlinked - no player-facing route reaches it.
Open it from the browser console with:
SugarCube.Engine.play('Gallery Selftest')
or get the raw rows without rendering:
SugarCube.setup.gallery.selftest()
Run it after changing any storyline's gates: a failed row means that arc's
guard moved and the gallery entry's setup no longer opens the scene. */
<p>Renders every gallery entry's whole chain with its setup applied, then throws the state away. A failed row means the manifest has drifted from the story's actual gates.</p>
<<galleryselftest>>
<br>
[[Return to the game|The hideout]]/* ============================================================
Heat system widgets.
$heat (0-100) measures how much attention you've drawn from
police and militia. Doing good in the open costs heat; so does
crime. It decays by 3 each night, or 10 for a day spent laying low.
At 75+ the blockpost is closed to you: "Take the bus" is replaced by a
req line in The Hood, so the hood is the only place you can act. Story
beats that used to narrate "you lay low for a week" (Target1-4) instead
set $heat high and hand the week to the player.
<<heatpatrol>> - rolled on entering The Hood. Sets _patrol_fired.
At most one patrol event every two days, earliest on day 2
($last_patrol_day).
Light and hard bands each pick from a small pool so the system
doesn't get repetitive:
25-49: 15% light -> "Militia Toll" | "Street Drone"
50-74: 30% hard -> "Patrol Shakedown" | "Militia Pickup"
75+: 50% full sweep -> "Police Sweep"
Every hit jumps to its own passage (dilemma-style) so the event
interrupts the player instead of rendering above the hub links;
the toll passage locks its exit until a choice is made.
<<hooddilemma>> - 20% chance of a street moral dilemma when no
patrol event fired; never within 3 days of the previous one
($last_dilemma_day, library-event style), so earliest is day 3.
On a hit it jumps to the "Hood Dilemma" passage, which has no
exit link until a choice is made - the player can't walk away.
<<dilemmadone "label">> - shared choice-close for dilemmas:
stamps the choice-made line and reveals the exit link.
============================================================ */
<<widget "heatpatrol">>
<<set _patrol_fired = false>>
/* CUT: street corner is not going into the next release - protection pact disabled.
Corner protection pact: the lookout network warns you in time, cutting patrol odds while active
<<if $day < $protection_until>>
<<set _sweep_odds = 40>><<set _hard_odds = 20>><<set _light_odds = 5>>
<<else>>
<<set _sweep_odds = 50>><<set _hard_odds = 30>><<set _light_odds = 15>>
<</if>>
*/
<<set _sweep_odds = 50>><<set _hard_odds = 30>><<set _light_odds = 15>>
/* At most one patrol event every two days - once one has fired, the street's quota
of attention is spent for a day after ($last_patrol_day, same style as dilemmas).
$last_patrol_day inits to 0, so the earliest a patrol can fire is day 2. */
<<if $day >= $last_patrol_day + 2>>
<<if $heat >= 75 && random(1, 100) <= _sweep_odds>>
<<set _patrol_fired = true>>
<<set $last_patrol_day = $day>>
<<goto "Police Sweep">>
<<elseif $heat >= 50 && random(1, 100) <= _hard_odds>>
<<set _patrol_fired = true>>
<<set $last_patrol_day = $day>>
<<if random(1, 2) == 1>>
<<goto "Patrol Shakedown">>
<<else>>
<<goto "Militia Pickup">>
<</if>>
<<elseif $heat >= 25 && random(1, 100) <= _light_odds>>
<<set _patrol_fired = true>>
<<set $last_patrol_day = $day>>
<<if random(1, 2) == 1>>
<<goto "Militia Toll">>
<<else>>
<<goto "Street Drone">>
<</if>>
<</if>>
<</if>>
<</widget>>
<<widget "hooddilemma">>
<<if not _patrol_fired && $day >= $last_dilemma_day + 3 && random(1, 100) <= 20>>
<<set $last_dilemma_day = $day>>
<<goto "Hood Dilemma">>
<</if>>
<</widget>>
<<widget "dilemmadone">>
<<replace "#choice-container">><div class="choice-made"><em>"_args[0]"</em></div><</replace>>
<<replace "#dilemma-exit">>[[Back to the street|The Hood]]<</replace>>
<</widget>><<nobr>>
<<set _dilemma = random(1, 7)>>
<<switch _dilemma>>
<<case 1>>
/* The beating */
<<pic "img/general/dylemmas/beating.jpg" "story">>
<div class="text">Down the block, a cruiser sits with its doors open. Two cops have a kid - sixteen, maybe less - bent over the hood and handcuffed, and they're taking turns explaining something to him with their batons. Nobody on the street looks, but everybody sees.</div>
<div id="choice-container">
<<if $heat < 60>>
<<linkreplace "Come swinging">>
<<replace "#output">>
<div class="text">So easy to beat someone with tied hands - almost as easy as picking up a beer bottle and smashing it against a cop's head. One officer falls to the ground while the other tries to reach for his weapon - too slow, as you knock him down with a jab. You free the kid and run from the scene.</div>
<<statchange "heat" 20>>
<<statchange "respect" 10>>
<</replace>>
<<dilemmadone "Come swinging">>
<</linkreplace>><br>
<<else>>
<div class="req">You're packing enough heat already...</div><br>
<</if>>
<<linkreplace "Create a distraction">>
<<replace "#output">>
<<if random(1, 100) <= 70>>
<div class="text">From the alley you put a bottle through the windshield of a parked car and let the alarm do the talking. The cops' heads snap around; the kid is gone before they look back. You're three blocks away before they decide it isn't worth it.</div>
<<statchange "heat" 8>>
<<statchange "respect" 1>>
<<else>>
<div class="text">The bottle bounces off the roof of the car without a sound worth hearing. One cop glances over, shrugs, and goes back to work. You slip away before the glance becomes interest, jaw tight, the sound of the beating following you down the alley.</div>
<<statchange "heat" 8>>
<</if>>
<</replace>>
<<dilemmadone "Create a distraction">>
<</linkreplace>><br>
<<linkreplace "Look away">>
<<replace "#output">>
<div class="text">You turn the corner and keep walking. You memorize the officers' badge numbers. It's all you can afford tonight - and knowing that doesn't make the sound of it any easier to leave behind.</div>
<<statchange "respect" -5>>
<</replace>>
<<dilemmadone "Look away">>
<</linkreplace>>
</div>
<div id="output"></div>
<<case 2>>
/* The checkpoint fine */
<<pic "img/general/dylemmas/grandma_checkpoint.jpg" "story">>
<div class="text">At the blockpost, an Oath Boys militiaman is going through an old woman's grocery bag item by item, setting each can on the sandbags like evidence. "Unregistered commerce," he announces, and pockets her folded bills. She doesn't argue - arguing is how you lose the groceries too.</div>
<div id="choice-container">
<<if $money >= 15>>
<<linkreplace "Pay her 'fine' yourself ($15)">>
<<replace "#output">>
<div class="text">"I got it," you say, stepping up with the money already visible - no sudden moves, no eye contact that could be read as a challenge. The militiaman takes it and waves her through, bored. She squeezes your arm at the corner. "You're the one fixing the library," she says. It isn't a question.</div>
<<statchange "money" -15>>
<<statchange "respect" 3>>
<</replace>>
<<dilemmadone "Pay her 'fine' yourself ($15)">>
<</linkreplace>><br>
<</if>>
<<if $physical >= 50 && $heat < 60>>
<<linkreplace "Stare them down">>
<<replace "#output">>
<div class="text">You stop and look at him. That's all. A big man, standing still, watching - with the whole street quietly watching him watch. Militia are brave in packs and behind checkpoints, but something old and mammal in him does the thinking. He shoves the bag back at the woman. "Move along." He'll remember your face. So will the street.</div>
<<statchange "heat" 10>>
<<statchange "respect" 5>>
<</replace>>
<<dilemmadone "Stare them down">>
<</linkreplace>><br>
<<elseif $heat >= 60 && $physical >= 50>>
<div class="req">You won't intimidate anyone.</div><br>
<</if>>
<<linkreplace "Walk past">>
<<replace "#output">>
<div class="text">You walk past with your eyes forward, like everyone else. The cans stay on the sandbags. That night you can still see the way she repacked her bag with shaking hands, careful as a surgeon, so as not to give them a reason.</div>
<</replace>>
<<dilemmadone "Walk past">>
<</linkreplace>>
</div>
<div id="output"></div>
<<case 3>>
/* The eviction */
<<pic "img/general/dylemmas/eviction.webp" "story">>
<div class="text">Three men in matching windbreakers are dragging a family's life into the street - mattress, dresser, a crib. The landlord's muscle. The mother stands on the curb holding a toddler. Looks like a forced eviction.</div>
<div id="choice-container">
<<if $heat < 60>>
<<linkreplace "Muscle them off">>
<<replace "#output">>
<<if $physical >= 55>>
<div class="text">You put yourself between the crib and the doorway and suggest, quietly, that they're done for today. The lead one weighs it - three of them, one of you - and something in how you're standing makes the math come out wrong for him. They leave the furniture on the lawn. The family gets one more night to figure something out.</div>
<<statchange "heat" 12>>
<<statchange "respect" 8>>
<<else>>
<div class="text">You put yourself in the doorway. It goes the way three-on-one usually goes - you take your lumps against the railing - but you stay in the doorway, and there's a limit to what they're paid to do to a man who won't move. They leave the job half-done. The mother helps you up.</div>
<<statchange "heat" 12>>
<<statchange "respect" 8>>
<<statchange "physical" -5>>
<</if>>
<</replace>>
<<dilemmadone "Muscle them off">>
<</linkreplace>><br>
<<else>>
<div class="req">You can't attract more heat.</div><br>
<</if>>
<<if $money >= 10>>
<<linkreplace "Slip the mother $10">>
<<replace "#output">>
<div class="text">You can't stop it. You press the bill into her free hand as you pass. It's a night in somebody's spare room, maybe two.</div>
<<statchange "money" -10>>
<<statchange "respect" 2>>
<</replace>>
<<dilemmadone "Slip the mother $10">>
<</linkreplace>><br>
<</if>>
<<linkreplace "Keep walking">>
<<replace "#output">>
<div class="text">You keep walking, but the mother with toddler on the street still standing before your eyes.</div>
<</replace>>
<<dilemmadone "Keep walking">>
<</linkreplace>>
</div>
<div id="output"></div>
<<case 4>>
/* The informant */
<div class="text">There's a man across from the bar who's been nursing the same cigarette for an hour, and every time somebody goes in or out his lips move slightly, like he's reading license plates. You know the type. The precinct pays by the name.</div>
<div id="choice-container">
<<if $heat < 75>>
<<linkreplace "Confront him">>
<<replace "#output">>
<div class="text">You sit down next to him without being invited and read the street with him for a while, in friendly silence. Then you describe his routine back to him - the cigarette, the lips, and wonder if he's afraid someone would punch his face. He runs away.</div>
<<statchange "heat" 10>>
<<statchange "respect" 3>>
<</replace>>
<<dilemmadone "Confront him">>
<</linkreplace>><br>
<<else>>
<div class="req">You can't attract more heat.</div><br>
<</if>>
<<linkreplace "Warn the bartender quietly">>
<<replace "#output">>
<div class="text">You lean on the bar, and tell Earl about the man with the long-burning cigarette. He doesn't look toward the window - professionals never do. "Appreciated," he says, and by evening half the regulars are entering through the back.</div>
<<statchange "respect" 3>>
<</replace>>
<<dilemmadone "Warn the bartender quietly">>
<</linkreplace>><br>
<<linkreplace "Not your business">>
<<replace "#output">>
<div class="text">Everybody sells something down here.</div>
<</replace>>
<<dilemmadone "Not your business">>
<</linkreplace>>
</div>
<div id="output"></div>
<<case 5>>
/* The tagger */
<div class="text">A surveillance drone drops out of the dark and pins a kid in its spotlight - fourteen, spray can still hissing, a half-finished mural of a raised fist on the wall behind him. The drone's speaker crackles: <i>REMAIN IN PLACE. UNITS DISPATCHED.</i> The kid freezes like a rabbit.</div>
<div id="choice-container">
<<if $heat < 75>>
<<linkreplace "Yank him into a doorway">>
<<replace "#output">>
<div class="text">You cross the light, grab a fistful of hoodie, and haul him into a covered stairwell as the drone reorients. Two turns through the back lots and the whine of its rotors fades. "Finish the fist somewhere with a roof over it," you tell him. He grins like you've knighted him. The drone got footage of you both.</div>
<<statchange "heat" 5>>
<<statchange "respect" 5>>
<</replace>>
<<dilemmadone "Yank him into a doorway">>
<</linkreplace>><br>
<<else>>
<div class="req">Your face is worth more to that camera than his. You can't afford this one.</div><br>
<</if>>
<<linkreplace "Whistle a warning">>
<<replace "#output">>
<div class="text">You put two fingers in your mouth and give the long-short-long the corner kids use for <i>run</i>. The kid unfreezes, ducks under the light, and is gone through a gap in the fence half a second before the spotlight sweeps back. The drone circles twice, petulant, filming an empty wall and a man walking unhurriedly in the other direction.</div>
<<statchange "heat" 2>>
<<statchange "respect" 2>>
<</replace>>
<<dilemmadone "Whistle a warning">>
<</linkreplace>><br>
<<linkreplace "Let the drone do its work">>
<<replace "#output">>
<div class="text">You walk on and don't watch, and the unfinished fist stays on the wall for weeks afterward, fingers open, waiting for somebody with less to lose.</div>
<</replace>>
<<dilemmadone "Let the drone do its work">>
<</linkreplace>>
</div>
<div id="output"></div>
<<case 6>>
/* The jumping */
<div class="text">The stoop across the street empties as you pass. Three of them, spreading out so you can't watch all three at once, and the one in the middle carries a length of rebar loose against his leg, like a cane. No colors, no armbands. Just hungry men who've decided you're carrying something worth the risk. "Pockets," the middle one says. That's the whole speech.</div>
<div id="choice-container">
<<linkreplace "Swing first">>
<<replace "#output">>
<<if $physical >= 55>>
<div class="text">You don't wait for the rebar to come up. You step into the middle one and put your fist through his jaw before the word finishes leaving his mouth. The rebar rings on the concrete. The second gets a boot in the knee and folds sideways, howling; the third looks at his two friends on the ground, does the math, and runs. You step over the rebar man on your way out and leave him his teeth to think about. By morning the whole block knows exactly how that went.</div>
<<statchange "heat" 8>>
<<statchange "respect" 10>>
<<statchange "energy" -2>>
<<else>>
<div class="text">You don't wait, but wanting it isn't winning it. You put one down before the rebar finds your ribs and the sidewalk finds your face. They stomp you carefully, without anger, like men doing a job. But you keep getting up, and there's a point where beating a man who won't stay down stops being profit and starts being work. They take what's in your pockets and leave you the rest.</div>
<<if $money > 0>><<set _jumploss = -Math.min($money, 15)>><<statchange "money" _jumploss>><</if>>
<<statchange "physical" -4>>
<<statchange "energy" -3>>
<</if>>
<</replace>>
<<dilemmadone "Swing first">>
<</linkreplace>><br>
<<if $money >= 5>>
<<linkreplace "Empty your pockets">>
<<replace "#output">>
<div class="text">You hold the bills out like it's nothing personal, and for them it isn't. The middle one counts the money right in front of you, unhurried, letting the street watch. "Smart," he says, the way a teacher grades homework. You walk away whole. The word follows you down the block anyway, and it doesn't mean smart.</div>
<<set _jumploss = -Math.min($money, 15)>><<statchange "money" _jumploss>>
<<statchange "respect" -3>>
<</replace>>
<<dilemmadone "Empty your pockets">>
<</linkreplace>><br>
<</if>>
<<linkreplace "Run for it">>
<<replace "#output">>
<<if random(1, 100) <= 60>>
<div class="text">You break left before the circle closes, vault a fence with the rebar whistling somewhere behind you, and lose them in the gutted rowhouses. Your lungs burn for ten minutes afterward.</div>
<<statchange "energy" -3>>
<<else>>
<div class="text">You make it half a block before the rebar clips your shoulder and takes your legs out from under you. What follows is quick and businesslike. They empty your pockets while you're still working out which way is up, and one of them pats you on the cheek before they stroll off.</div>
<<if $money > 0>><<set _jumploss = -Math.min($money, 15)>><<statchange "money" _jumploss>><</if>>
<<statchange "physical" -4>>
<<statchange "energy" -3>>
<</if>>
<</replace>>
<<dilemmadone "Run for it">>
<</linkreplace>>
</div>
<div id="output"></div>
<<case 7>>
/* The collection */
<div class="text">Two Oath Boys have the old grocer from the corner shop down on the pavement outside his own door, and they're working him over slowly, the way you do when the beating itself is the message. "Arrears," one of them keeps repeating between kicks, like the word does the kicking for him. A dozen people watch from doorways. Nobody moves.</div>
<div id="choice-container">
<<if $heat < 60>>
<<linkreplace "Put them down">>
<<replace "#output">>
<<if $physical >= 55>>
<div class="text">You cross the street already swinging. The first one never sees it; he drops with his jaw pointing the wrong way. The second gets his baton halfway up before your forehead meets his nose, and then he's on the pavement next to his friend, leaking. You stand over them a moment, breathing, letting every doorway get a good look. Then you haul the grocer up. The Oath Boys will come back in numbers - everyone watching knows that. They also watched somebody hit back.</div>
<<statchange "heat" 15>>
<<statchange "respect" 5>>
<<statchange "energy" -2>>
<<else>>
<div class="text">You cross the street already swinging. You drop the first one, but the second is quick with the baton, and it turns into an ugly scrambling thing in the gutter - two men trying to beat each other stupid on wet asphalt. You come out on top, barely, spitting blood, one eye already closing. The grocer's wife drags you both inside before the wrong car turns the corner.</div>
<<statchange "heat" 15>>
<<statchange "respect" 5>>
<<statchange "physical" -5>>
<<statchange "energy" -3>>
<</if>>
<</replace>>
<<dilemmadone "Put them down">>
<</linkreplace>><br>
<<else>>
<div class="req">Too much heat for this.</div><br>
<</if>>
<<linkreplace "Wait it out, then help him">>
<<replace "#output">>
<div class="text">You wait it out with your back against a wall, tasting copper, and when they finally swagger off you're the first one to him. You get him inside, get the glasses off his face before he crushes them, hold a rag to his head while his wife shouts at the ceiling. It isn't nothing. It isn't enough either, and everybody in that little room knows both things.</div>
<<statchange "respect" 1>>
<</replace>>
<<dilemmadone "Wait it out, then help him">>
<</linkreplace>><br>
<<linkreplace "Keep walking">>
<<replace "#output">>
<div class="text">You keep walking. The sound of it follows you half a block - boot, breath, and the grocer not screaming, which is somehow worse.</div>
<</replace>>
<<dilemmadone "Keep walking">>
<</linkreplace>>
</div>
<div id="output"></div>
<</switch>>
<div id="dilemma-exit"><div class="req">The street is watching what you do next. You're not walking away from this until you choose.</div></div>
<</nobr>><<pic "img/general/raid.jpg" "story">>
<div class="text">You hear it before you see it: the percussion of boots and slamming wagon doors. The block is wearing floodlights. It's a sweep.</div>
<div class="text">You spend the next hours face-first against brick while they go through your pockets, your story, and your patience. They take what cash they find as "evidence of undeclared income." No receipt. By the time they let the street breathe again, the night is gone and so is any business you had in it.</div>
<<nobr>>
<<set _seized = Math.trunc($money / 2)>>
<<if _seized > 0>><<set _seizedloss = -_seized>><<statchange "money" _seizedloss>><</if>>
<<set $energy = 0>>
<<set $laying_low = 1>>
<<statchange "heat" -20>>
<</nobr>>
<div class="req">You need to disappear for a while. Get inside, stay inside, sleep it off.</div>
[[Slink back to the hideout|The hideout]]<<nobr>>
<div class="text">An unmarked sedan mounts the curb in front of you, and two plainclothes officers are on you before you can turn around. "There is a man we're looking for, and you fit the description. Wanna change our minds?"</div>
<<set _tax = Math.trunc($money / 4)>>
<<if _tax > 0>><<set _taxloss = -_tax>><<statchange "money" _taxloss>><</if>>
<<statchange "heat" -10>>
<div class="text">Thank god the police are so corrupt.</div>
/* CUT: the patrol wagon frisk - with the drug stash cut there's nothing for them to find, so the event goes nowhere.
<div class="text">A patrol wagon slows to walking pace beside you. "Hands on the wall." The frisk is thorough and unhurried, the kind that's meant to be watched by the whole street.</div>
<<if $drug_stash > 0>>
<div class="text">The officer's hand stops at your jacket pocket. He doesn't arrest you - processing paperwork is effort - he just pockets your stash with a smile and taps you once on the cheek. All of it, gone.</div>
<<set $drug_stash = 0>>
<<statchange "heat" 5>>
<<else>>
<div class="text">They find nothing. The disappointment on the officer's face is almost worth the humiliation. Almost.</div>
<</if>>
*/
<</nobr>>
[[Back to the street|The Hood]]<<nobr>>
<div class="text">Two militiamen step out of a doorway like they've been waiting for you. Maybe they have.</div>
<div id="choice-container">
<<if $money >= 10>>
<<linkreplace "Pay the toll ($10)">>
<<replace "#output">>
<div class="text">You press the bill into his hand without a word. He nods like a man accepting a compliment. As far as they're concerned, you're just another poor man trying to survive.</div>
<<statchange "money" -10>>
<<statchange "heat" -10>>
<</replace>>
<<dilemmadone "Pay the toll ($10)">>
<</linkreplace>><br>
<</if>>
<<linkreplace "Beat the shit out of them">>
<<replace "#output">>
<<if $physical >= 40>>
<div class="text">The one doing the talking is still enjoying his own voice when your fist shuts it off. He sits down in the doorway he came out of. His partner grabs for the radio instead of you, which tells you everything - you slap it out of his hand and put him into the wall until he stops trying to hold onto anything. You leave them where the block can see them. Militia writes down faces, and yours just went to the top of a list, but tonight the doorway toll is closed.</div>
<<statchange "heat" 15>>
<<statchange "respect" 4>>
<<statchange "energy" -2>>
<<else>>
<div class="text">You're not in shape for fighting back. You get one good shot in, and it's worth it right up until it isn't. Two of them, batons out, no crowd to perform for - just work. They take the toll out of your pockets and the rest out of your ribs, and the last thing before they stroll off is a boot in the back, for the paperwork you almost cost them.</div>
<<if $money >= 10>><<statchange "money" -10>><</if>>
<<statchange "heat" 10>>
<<statchange "physical" -4>>
<<statchange "energy" -3>>
<<statchange "respect" -1>>
<</if>>
<</replace>>
<<dilemmadone "Beat the shit out of them">>
<</linkreplace>><br>
<<linkreplace "Run away">>
<<replace "#output">>
<<if random(1, 100) <= 50>>
<div class="text">You're moving before the first one finishes his opening line - through the gap between them, over a fence, down an alley you know better than they do. Boots and swearing behind you, then just swearing, then nothing. Your lungs charge their own toll.</div>
<<statchange "energy" -3>>
<<else>>
<div class="text">You bolt, and make it half a block before a parked car door swings open in front of you. The chase ends on the asphalt. They collect the toll from your pockets while you're catching your breath, plus interest in bruises for making them jog.</div>
<<if $money >= 10>><<statchange "money" -10>><</if>>
<<statchange "physical" -2>>
<<statchange "energy" -3>>
<</if>>
<</replace>>
<<dilemmadone "Run away">>
<</linkreplace>>
</div>
<div id="output"></div>
<div id="dilemma-exit"><div class="req">They're standing in your way. This doesn't end until you pick how.</div></div>
<</nobr>><<nobr>>
<div class="text">You hear it before you see it: an Oath Boys pickup rolling the block at walking speed, spotlight crawling over doorways, a man in the bed reading faces against a clipboard. With the heat you're carrying, yours is on that clipboard.</div>
<div class="text">You fold yourself into a flooded basement stairwell and wait. The light sweeps past once, twice. Somewhere above, boots get out, walk a slow circle, get back in. By the time the engine noise fades toward the avenue, your legs are numb, your shoes are soaked, and a good chunk of your evening belongs to them.</div>
<<statchange "energy" -3>>
<</nobr>>
[[Back to the street|The Hood]]<<nobr>>
<div class="text">A surveillance drone drops to head height in front of you and holds there, lens irising as it works your face against a database. It doesn't announce anything. It just hangs in the air, looking, the way nothing alive is allowed to look at you down here.</div>
<div id="choice-container">
<<linkreplace "Put a stone through its rotor">>
<<replace "#output">>
<<if random(1, 100) <= 50>>
<div class="text">There's half a brick by the curb that might as well have been left there for this. Your first throw catches the rotor guard and the drone staggers sideways like a slapped drunk, clips the fire escape, and comes apart on the asphalt in a very satisfying way. A kid darts out of a doorway and stomps the camera before it stops twitching. The precinct will bill somebody for that. Probably the whole block.</div>
<<statchange "heat" 8>>
<<statchange "respect" 2>>
<<else>>
<div class="text">You throw, and the thing sidesteps in the air like it's bored, gains ten feet, and paints you with a strobe while a flat voice recites a statute number. It follows you for two blocks, filming, before it loses interest. The throw is on record now, attached to your face.</div>
<<statchange "heat" 10>>
<</if>>
<</replace>>
<<dilemmadone "Put a stone through its rotor">>
<</linkreplace>><br>
<<linkreplace "Cut through the back lots">>
<<replace "#output">>
<div class="text">You turn off the street without hurrying and take the long way: under the collapsed carport, through the gap in the fence, along the wall where the gutted rowhouses lean together and make a roof over the path. Drones don't like it back there; too many wires, too much shadow. It costs you twenty minutes and a torn sleeve, but it works.</div>
<<statchange "energy" -2>>
<</replace>>
<<dilemmadone "Cut through the back lots">>
<</linkreplace>><br>
<<linkreplace "Ignore it">>
<<replace "#output">>
<div class="text">You give the lens nothing: no glance, no pace change, just a man walking somewhere unimportant. It holds beside you for half a block, logging your route, then climbs away to bother someone else. Somewhere in a precinct server, a line gets added to your file.</div>
<<statchange "heat" 3>>
<</replace>>
<<dilemmadone "Ignore it">>
<</linkreplace>>
</div>
<div id="output"></div>
<div id="dilemma-exit"><div class="req">The drone is holding position, waiting on what you do.</div></div>
<</nobr>><div class="text">You crack the door and close it again. The street is still crawling - cruisers at both corners, a wagon parked on the curb with its engine running, a drone loitering over the intersection like a patient fly. Every doorway holds a silhouette checking papers.</div>
<div class="text">Whatever business you had out there will have to wait. Today, the neighborhood belongs to them.</div>
[[Go back inside|The hideout]]<div class="text" style="font-size: 1.5em; font-weight: bold;">Democracy is Dead.</div>
<<pic "img/general/intro_1.webp">>
<div class="text">You've been gone for years, serving your country in far-off lands, fighting battles whose purpose blurred even as you fought them. The news from home was easy to ignore back then. Protests. Crackdowns. Whispers of stolen elections. From where you were stationed, the rot felt distant, unreal, someone else's problem.
Coming back wasn't your choice.
Your younger brother, Jeremy, the idealistic kid with more ambition than caution, decided to serve justice as he saw it. He put a bullet in the CEO of the biggest defense contractor in the country, a man whose "less-lethal" toys had killed hundreds during the last election that mattered. The state reacted quickly with charges of domestic terrorism, and preparing for a show trial.</div>
<<pic "img/general/intro_2.jpg">>
<div class="text">As his closest relative, you received a hit as well. Your career ended in a night, a general discharge and a one-way ticket back to a homeland you barely recognized. No pension, no honors - the people who sent you to hell were only happy to finally get rid of you.</div>
<p>You spend some time selling family assets in the country to provide fees for legal support. Now you ride the last leg home on a groaning intercity bus, forehead against cold glass, watching a country that has stopped pretending roll past.</p>
<<pic "img/intro/bus.jpg" "story">>
<div class="text">At the approaches to the city, the bus slows for a checkpoint.
Not a border, and these aren't soldiers. A dozen men in mismatched fatigues and orange armbands lounge around a lowered boom gate, rifles slung, a hand-painted banner reading CITIZENS' MILITIA sagging between two poles. Behind them, a genuine police cruiser sits with its engine idling, and the two cops inside do not so much as look up.
Boots thump down the aisle. The commuters around you develop a sudden, practiced interest in their own shoes. The militiaman who stops at your row is young, sunburned, chewing something. It seems you grabbed his attention - no shit, you're the only black among the passengers.</div>
<<speech "Militiaman" "You! Yes, you. Get up. You look suspicious.">>
<p>You already know how this goes. Overseas, you'd have broken his wrist in the time it took him to blink. Here, the whole bus is watching, the cruiser is idling, and your brother is still alive and needs your help.</p>
<<speech "Militiaman" "We provide security on these roads, and you look like trouble. But just today I might let you go unharmed - for a fee.">>
<<nobr>>
<div class="text">How do you handle it?</div>
<<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
<<linkreplace "Pay them off and keep your head down">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>You peel bills off your dwindling roll and press them into his hand without a word. He counts them, grins, waves you back to your seat. You keep your head down and you keep your teeth. Something tells you this country is going to ask for a lot more of these small surrenders.</p>
<<statchange "money" -30>>
<p>Staying invisible costs money here.</p>
[[The bus rolls on|IntroNew2]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Pay them off and keep your head down"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Stare him down and say nothing">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>You don't reach for your wallet. You don't stand. You just look at him, level and unhurried, and let the silence stretch until it becomes a thing everyone on the bus can feel.</p>
<p>He doesn't like what he sees in your face. So he does what small men with rifles do. The stock catches you across the ribs, once, twice, a bright crack of pain, and you're thrown back in your seat. Through pain, you can hear how other Militiamen drag their enraged comrade out of the bus, and it accelerates away from the checkpoint.</p>
<p>But you never reached for your wallet. And every commuter on that bus, every one of them still staring at their shoes, saw a black man take a beating without kneeling. They will remember it longer than the Militia will.</p>
<<statchange "physical" -5>>
<<statchange "respect" 1>>
<p>The ribs will heal. The story will travel.</p>
[[The bus rolls on|IntroNew2]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Stare him down and say nothing"</em></div><</replace>>
<</linkreplace>><br>
<</if>>
</div>
<div id="output"></div>
<</nobr>><div class="text">Every lawyer in the city hung up on you. Every one but her.
Luna Star runs her father's old practice out of an old rundown office. Her father, a Cuban immigrant, built this firm and then lost his license to it, disbarred for "extremism," which in this country means he won against the state one time too many. Now it's just Luna, a wall of banker's boxes, and a go-bag packed and waiting under the desk in case police raids occur.
She's younger than you expected, with a sharp face and a sharper mouth, a cigarette burning forgotten between two fingers as she reads. When she finally looks up at you, she skips the sympathy and goes straight to the truth.</div>
<<pic "img/luna/intro.jpg">>
<<speech "Luna" "$real_name, right?" "luna">>
<p>Your real name, from a stranger's mouth. She catches the look on your face and taps the case file - she's done her homework on the whole family. You decide on the spot that she's the only one in this city who gets to keep using it - there are some perks of being a stranger.</p>
<<speech "Luna" "Your brother is not going to make it. The system has already decided." "luna">>
<<speech "You" "Then why take the case?">>
<p>She taps ash onto the floor and almost smiles.</p>
<<speech "Luna" "Somebody has to." "luna">>
<p>Somehow, you knew the answer before you asked the question. She's the kind of person who just does their job and stays true to themselves - no matter what.</p>
<<speech "Luna" "But I'm afraid I can't work for free these days. Check this out." "luna">>
<div class="text">She spreads Jeremy's file across the desk, and that's when you see it. What stops your breath isn't the murder charge - it's a single form, stamped and signed, freezing every asset with your family's name on it. Jeremy's savings. Your savings. The money you wired ahead for his defense, gone the moment it landed, seized as "suspected instruments of terrorism."
The signature at the bottom is confident, practiced, almost elegant. Chief of Police, Douglas Renner.</div>
<<speech "You" "They can just take it? All of it?">>
<<speech "Luna" "Civil forfeiture. They don't charge the money with a crime, they charge you, and the money's just guilty by association. You want it back, there's a hearing. Eleven months out. In front of Judge Halloran, who hunts elk with Renner every fall. So, sure. You'll get your day in court." "luna">>
<p>Good news is, this is still a local story outside of federal jurisdiction. Most likely, the local cops just want assets seized for their own purposes, meaning - you can actually fight it back.</p>
<<speech "Luna" "There's a records office at the precinct. Everything they took from you passed through it. If you want to fight the seizure, that's where the paper lives. Just... be careful whose attention you draw." "luna">>
<<nobr>>
<div class="text">How do you go after the forfeiture?</div>
<<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
<<linkreplace "Bribe a records clerk">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>The clerk is grey and tired and hasn't been paid enough to care about Douglas Renner. A fold of cash changes hands under the counter and you walk out with photocopies you were never supposed to have: Renner's forfeiture ledger, columns of seized lives, and clipped to the back, the Chief's home address and a note on his household. Divorced. One adult daughter still lives with him. You don't know yet what you'll do with it. You just know it's the first thing in this city that has felt like leverage.</p>
<<statchange "money" -20>>
<p>You have the Chief's ledger, and his address. You don't yet know what it's worth.</p>
[[Leave the precinct at dusk|IntroNew3]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Bribe a records clerk"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Confront the desk sergeant">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>You put your hands flat on the counter and tell the desk sergeant, calmly and in front of a full waiting room, exactly what kind of theft his Chief's signature represents. But this leads to nowhere, and you're just escorted out. Although... One of the officers seems to be watching you more closely than the others, and slips you a note with the address. "You want to make a scene, do it at Renner's house."</p>
<<statchange "respect" 1>>
<<statchange "heat" 5>>
<p>You made your point, and got noted.</p>
[[Leave the precinct at dusk|IntroNew3]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Confront the desk sergeant"</em></div><</replace>>
<</linkreplace>><br>
<</if>>
</div>
<div id="output"></div>
<</nobr>><div class="text">Night alleys lead you to Luna's office with your notes, when they peel out of the shadows: four of them, orange armbands, and this time there's no boom gate, no bus full of witnesses, no performance of legality at all.</div>
<<pic "img/intro/van.webp" "story">>
<div class="text">You put two of them down before the tire iron finds the back of your skull. The world tilts. Zip ties bite your wrists. As they fold you into the back of an unmarked van, you get one clear look at the police cruiser parked forty feet away, lights off, two officers behind the glass watching the whole thing happen. The nearest one meets your eyes.
He looks bored.</div>
<<statchange "physical" -5>>
<div class="text">You wake to the smell of diesel and animal shit.
It's a barn. A real one, somewhere past the edge of town, its stalls converted into cages of welded rebar and chain-link. A generator hums. Somewhere a man is weeping in a language you don't recognize.
In the next cage over, a wiry man sits with his back to the bars, three days of stubble and a lip split and scabbed, and he is, impossibly, chuckling at you.</div>
<<pic "img/intro/jamal_intro.jpg" "story">>
<<speech "Jamal" "Hooo, they got a big one this time. What'd you do, soldier? Forget to smile at the nice men with the armbands?" "jamal_happy">>
<<speech "You" "Something like that.">>
<p>He shifts around to face you, wincing, and studies your face with an attention that cuts through the pain.</p>
<<speech "Jamal" "Wait, Jeremy? How the hell did you end up here?" "jamal">>
<<speech "You" "Jeremy? He's my brother.">>
<p>Something changes in his eyes. He barks a laugh that turns into a cough.</p>
<<speech "Jamal" "I knew him, matter of fact. He wanted to be a hero, and he wanted it his way: no prep, no patience. It's a miracle he pulled it off... if that's what you wanna call it." "jamal">>
<<speech "You" "And you're the expert.">>
<<speech "Jamal" "I'm the man been counting guards for two days while I wait my turn to get shot. Name's Jamal. And I know their rotation cold." "jamal">>
<p>He nods toward the far end of the barn, where a single Militiaman sits half-asleep with a shotgun across his knees and a ring of keys on his belt.</p>
<<speech "Jamal" "One man on the graveyard shift. Fat, tired, alone. In about ten minutes he does his walk. I just been waiting on somebody strong as you..." "jamal">>
<<nobr>>
<div class="text">How do you take the guard?</div>
<<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
<<linkreplace "Break his arm and take the keys">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>When he passes your cage you reach through the bars and take his wrist, and the snap of it echoes off the rafters before he can even scream. You have the keys before he hits the straw. It's loud. It's ugly. Every other prisoner is awake now, and so, somewhere, is whoever the noise carries to. But you and Jamal are through the door and into the treeline in under a minute, and the guard will remember your face for the rest of his short career.</p>
<<statchange "physical" 1>>
<<statchange "heat" 10>>
<div class="req">Fast and brutal. They'll be looking for you.</div>
[[Run|IntroNew4]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Break his arm and take the keys"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Same, then burn the barn">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>When he passes your cage you reach through the bars and take his wrist, and the snap of it echoes off the rafters before he can even scream. You have the keys before he hits the straw. It's loud. It's ugly. Before you go, you tip the generator's fuel can across the old dry straw and touch the guard's own lighter to it. You open every cage first. Whatever this place was, it will not be here in the morning. The fire climbs high enough to be seen from the highway, and people will be whispering about it for weeks. Let the regime explain the ashes.</p>
<<statchange "respect" 2>>
<<statchange "heat" 20>>
<div class="req">The whole county saw that fire.</div>
[[Run from the light|IntroNew4]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Take the keys, then burn the barn"</em></div><</replace>>
<</linkreplace>><br>
<</if>>
</div>
<div id="output"></div>
<</nobr>><<pic "img/intro/laundromat.webp" "story">>
<div class="text">You come down off the adrenaline in the flat white light of an all-night laundromat, the only place open, the only place with no reason to look twice at two beaten men pretending to wait on a dryer. Jamal buys coffee from a machine that dispenses something adjacent to coffee. You take stock of what you have left, which is nothing, and what the state has taken, which is everything.
Jeremy on a schedule to die. Your money seized with a signature. A cage in a barn that does not officially exist, that you were meant to die in, that no court will ever hear about. And one name signed under all of it.</div>
<<speech "You" "So how do you know my brother?">>
<<speech "Jamal" "He tried to join our, let's say, resistance network. Like I said, boy was running too hot for us." "jamal">>
<<speech "You" "Resistance? Are you serious?">>
<<speech "Jamal" "For lack of a better word. Don't matter much now, ain't many of us left - most just disappeared, and I figure Renner's personal prison was the last place anybody saw them." "jamal">>
<<speech "You" "Renner, huh? That bastard seized the money for Jeremy's defense, and then tried to get rid of me with his goons.">>
<<speech "Jamal" "Way I see it, we got nothing left to lose, and we know exactly the man responsible for that." "jamal">>
<div class="text">He pulls back his jacket just enough to show you the grip of a pistol he took from the barn, and you find that the idea of vigilantism doesn't horrify you the way it should. It feels, if anything, like relief. You have Renner's address and your training. Jamal has a gun and his desperation.</div>
<p>You're just gonna kill this bastard, because you don't have any other options left.</p>
<div class="text">You don't waste time and hijack a car to drive to Renner's residence outside town when it's already early morning. It's a good house, the kind the honest men can't afford, and there in the driveway sits Renner's personal cruiser, meaning the man is home.
<<speech "Jamal" "That daughter of his, name's Eden, she drive a Prius. It ain't here, so she must be out. Perfect." "jamal">> </div>
<<pic "img/intro/mansion.jpg" "story">>
<<nobr>>
<div class="text">How do you go in?</div>
<<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
<<linkreplace "Quiet">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>You take the back door the way you were trained, fast and silent, the lock giving under your hands in seconds. Jamal follows in your wake, and for the first time since you've met he isn't the one leading. Inside the dark house, you move like the professional you used to be.</p>
[[Clear the house|IntroNew5]]
<</replace>>
<<replace "#choice-container">><div class="choice-made">Quiet</div><</replace>>
<</linkreplace>><br>
<<linkreplace "Loud">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>Jamal thinks you're insane, and maybe you are, but there's a poetry to it you can't resist. You put your boot through Douglas Renner's front door the exact way his men put their boots through a hundred others, wood splintering, the whole street free to hear it. It's loud and stupid, and for one second it feels like justice.</p>
<<statchange "respect" 1>>
<<statchange "heat" 5>>
[[Clear the house|IntroNew5]]
<</replace>>
<<replace "#choice-container">><div class="choice-made">Kick the front door like the police do</div><</replace>>
<</linkreplace>><br>
<</if>>
</div>
<div id="output"></div>
<</nobr>><div class="text">You clear the ground floor room by room, gun up, the way you've cleared a hundred rooms in countries whose names the folks back home never learned. Kitchen, empty. Study, empty, a wall of framed commendations glinting in the dark. Living room, empty.
In the window's reflection, out on the driveway below, you finally see what you missed: the yellow tow-tag hanging from Renner's cruiser mirror, the shop sticker in the windshield. Transmission's dead. He must have used his daughter's car as a spare.
Your intelligence was a guess and your guess was wrong. The house is empty of the only man you came for.
It is not empty of everyone.</div>
<<video "img/intro/eden_intro_0.mp4">>
<div class="text">In the hallway appears a feminine silhouette, and you take her down from behind and lead her to the kitchen, where you together tie the girl to a chair.</div>
<<speech "Jamal" "Man, it was NOT supposed to go down like this!" "jamal">>
<<speech "You" "It never is! We fucked up, the man is not here. I'll watch over his daughter, you go scout his cabinet, look for any papers that might have dirt on him.">>
<div class="text">Jamal leaves you alone with a teenage girl, struggling in her kitchen chair. Despite the situation, you can't help but gaze at the pretty young woman in what is essentially the underwear she was sleeping in. It doesn't help that her wide eyes on the pretty, freckled face beg you to un-tape her mouth.</div>
<<speech "You" "Okay, I'm going to take the gag off, but you have to promise you'll be good?">>
<<video "img/intro/eden_intro_1.mp4">>
<p>She enthusiastically nods, and you remove the tape. She takes a deep breath and looks at you - without even a hint of fear.</p>
<<speech "Eden" "This is so fucking exciting!" "eden">>
<<pic "img/intro/intro_what.webp">>
<<speech "You" "What? You don't look scared at all.">>
<p>She giggles.</p>
<<speech "Eden" "Noo, you have no idea - this is one of my favorite fantasies! Feel how soaked I am in my pussy... Feel it, please!" "eden">>
<<video "img/intro/eden_intro_2.mp4">>
<p>Unable to resist, you reach down and feel the wetness and burning warmth of her pussy through the thin cotton of her panties. The way her thighs start moving back and forth riding the chair makes your cock twitch in your pants. You slap her slutty pussy, and she only giggles in response.</p>
<<speech "Eden" "You wanted to hurt my daddy, right? I don't think there is a better way to do it. Show me your big black cock~" "eden">>
<p>You swiftly untie the girl and command her to crawl to the wall. Slowly, you walk up to her, pulling out your hardening cock, stopping inches before her face - and Eden, daughter of the police chief, openly opens her mouth for you to use.</p>
<<video "img/intro/eden_intro_3.mp4">>
<<nobr>>
<div class="text">How do you use her mouth?</div>
<<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
<<linkreplace "Let her set her own hungry pace">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>You let her run the show, and she makes a filthy little meal of it, worshipping every inch with her tongue, working you slow and wet while you press her against the wall with your massive big black cock.</p>
[[Jamal comes back|IntroNew5b]]
<</replace>>
<<replace "#choice-container">><div class="choice-made">You let her work</div><</replace>>
<</linkreplace>><br>
<<linkreplace "Grab her hair and take her throat">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>You grab that black hair and take over, and you brace for her to gag and flinch the way a spoiled girl should. She doesn't. She melts into it, throat opening for you like she's had a lot of practice she never told daddy about. Balls-deep, eyes streaming and delighted, thoroughly enjoying the facefuck.</p>
<<video "img/intro/eden_intro_4.mp4">>
[[Jamal comes back|IntroNew5b]]
<</replace>>
<<replace "#choice-container">><div class="choice-made">You take her throat</div><</replace>>
<</linkreplace>><br>
<</if>>
</div>
<div id="output"></div>
<</nobr>><div class="text">Footsteps in the hall. Jamal rounds the corner out of the study with a box of the chief's papers, mid-sentence about something he found, and stops dead. His eyes travel from you, to the half-naked girl slick-mouthed and kneeling at your cock.</div>
<<speech "Jamal" "What the fuck?! Nigga, have you lost your goddamn mind?!" "jamal">>
<<video "img/intro/eden_intro_5.mp4">>
<p>You take a step back, feeling a bit awkward facing Jamal with your dick out - but his eyes are focused on drooling and happy Eden, who playfully waves her little hand at him.</p>
<<speech "You" "Man, I swear, she's a freaky girl. She asked for it.">>
<<speech "Eden" "I'm just tired being under dad's watch." "eden">>
<p>Jamal looks down at the papers in his hand, then at the chief's daughter offering herself up like the best evidence in the world. He lets them drop to the floor.</p>
<<speech "Jamal" "Shit. Fuck it, I want me some of that too." "jamal_happy">>
<div class="text">You haul her up off the tile and bring her down the hall into her bedroom, where you throw police chief's daughter on her bed like a ragdoll.</div>
<<speech "Eden" "Hihi! Wait, wait, let me get my phone... I want my father to see this." "eden">>
<<speech "Jamal" "Yo what?" "jamal">>
<<speech "Eden" "Old bastard thinks I'm his property. I'm so tired of his bullshit! I just want to take back control of my life, and I think letting you guys fuck my brains out is exactly what is needed!" "eden">>
<p>You don't argue with that and take her from behind, sinking into a cunt that's soaked and ready, while Jamal feeds himself into that clever mouth from the other end. She's pinned between you, spitroasted on her own mattress, and she grins around Jamal's cock the whole time.</p>
<<video "img/intro/eden_intro_6.mp4">>
<p>She takes both of you like it's what she was built for, rocking herself back onto you and forward onto him, gagging happily every time Jamal loses his patience, her moans thick and muffled under him. Every so often she pulls off him just to check the phone is still angled right.</p>
<<speech "Eden" "That's it, both of you, ruin me. He's going to watch this a hundred times and die a little more each one." "eden">>
<<speech "You" "Shit, you ARE a freak. Yo, man, I think it's your turn on this pussy.">>
<<speech "Jamal" "Yeah, brother, I'm coming - soon as this bitch quit gobbling up my dick!" "jamal">>
<div class="text">Eden climbs up over Jamal and sinks down onto his cock, riding him slow and deep. She looks back at you over her shoulder, reaches both hands behind herself, and spreads her plump ass wide, an open invitation you'd have to be a saint to ignore.</div>
<<video "img/intro/eden_intro_7.mp4">>
<<speech "Eden" "Don't be polite. There's another hole, and I want daddy to watch every single one of them get used." "eden">>
<<nobr>>
<div class="text">Do you take what she's offering?</div>
<<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
<<linkreplace "Take the invitation">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>You spit down between her spread cheeks and press into her ass while Jamal stays buried in her cunt, and the sound she makes barely qualifies as human. The two of you fill her at once, working out a rhythm that has her stuffed and babbling, both of you inside the chief's little girl while her own camera drinks in every second of it.</p>
<<video "img/intro/eden_intro_dp.mp4">>
<<speech "Eden" "OH GAWD, keep going!" "eden">>
<p>It's awkward to feel Jamal's dick right behind the thin wall of Eden's insides, thrusting and twitching, but only at first. Even your escape from the militia's prison wasn't as bonding as DP-ing together.</p>
[[Finish it|IntroNew5c]]
<</replace>>
<<replace "#choice-container">><div class="choice-made">You take her ass</div><</replace>>
<</linkreplace>><br>
<<linkreplace "Not that far, not yet">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>You leave that invitation on the table, not sure whether you are ready to be so close to Jamal's dick. Instead, when he has had his fill of her riding him, you pull her up by the jaw and give her something else to choke on, and she rewards you by burying her nose in your stomach and swallowing you to the root, that surprisingly greedy throat working you over while Jamal watches and laughs.</p>
<<video "img/intro/eden_intro_8.mp4">>
<<speech "Eden" "See how deep I take it? Bet daddy never wanted to know his girl could do that." "eden">>
[[Finish it|IntroNew5c]]
<</replace>>
<<replace "#choice-container">><div class="choice-made">You keep it to her throat</div><</replace>>
<</linkreplace>><br>
<</if>>
</div>
<div id="output"></div>
<</nobr>><div class="text">You're both close now, and Eden knows it. She slides off the bed and drops back to her knees on the carpet, tilts that freckled face up, and holds the phone out at arm's length so the lens catches all three of you in the frame.</div>
<<speech "Eden" "On my face. One at a time. I want him to be able to count you." "eden">>
<div class="text">You go first. You finish across her cheek and her open mouth, and she keeps her eyes on the camera the whole time, tongue out, catching what she can.</div>
<<video "img/intro/eden_intro_facial1.mp4">>
<p>Then Jamal steps in and empties himself over the other side of her face, until she's dripping and grinning through the mess, looking more like a girl who just won something than one who was tied to a chair an hour ago.</p>
<<video "img/intro/eden_intro_facial2.mp4">>
<p>Eden turns the phone around, angles it down at the mess the two of you left on her, and snaps a photo with a satisfied little hum.</p>
<<pic "img/intro/intro_selfie.jpeg">>
<<speech "You" "What are you doing?">>
<<speech "Eden" "The best part." "eden">>
<p>Her thumbs move fast. You realize what's happening half a second too late to stop it, and you wouldn't have stopped it anyway. She sends the video straight to her father's personal number. And then, giggling, before either of you can say a word, she forwards the whole thing to something labeled LODGE, a group chat of two hundred of the chief's proudest, most patriotic brothers.</p>
<<speech "Eden" "Oops. Fat fingers. Guess everyone's about to see what the chief's little girl really likes." "eden">>
<<speech "You" "Shit, we should have kept the masks... Man, we gotta run.">>
<<statchange "heat" 30>>
<p>But Jamal barely listens - he is staring at the phone, then at you, and you can watch the idea arriving on his face - a big one.</p>
[[Get out before the neighborhood wakes|IntroNew6]]<div class="text">It takes three days.
You spend them in a cheap motel with the shades down, watching it happen from a distance, and it happens faster and more completely than anything Jamal's resistance network ever managed with a bomb. Eden's little group-chat "accident" did what no court and no bullet ever could. By the second morning the video is everywhere the Chief's world lives, the Militia channels, the precinct, the "lodge", passed man to man with the special glee that men like that reserve for one of their own brought low.
In a regime built on the fantasy of racial and patriarchal dominance, Douglas Renner is finished. Not arrested. Not martyred. Worse. He is the man whose own daughter begged two black men to ruin her in his own home, on camera, laughing. He cannot give an order anyone will follow. He resigns "for health reasons" before the week is out, and the forfeiture cases that carried his signature, dozens of them, quietly collapse into a legal embarrassment nobody wants to defend.</div>
<div class="text">Your phone buzzes. A number you don't recognize, a message that is only a scan of a court form: the freeze on your family's assets, VACATED, Renner's name struck through. And beneath it, a photo of a handwritten note from Luna Star.</div>
<<speech "Luna" "You won today, $real_name. P.S. You owe me a coffee." "luna">>
<div class="text">Jamal finds you that night, and he isn't laughing.</div>
<<speech "Jamal" "You know who I was, before that barn? I was a true believer. Real deal, bombs, sabotage, you name it." "jamal">>
<<speech "Jamal" "Three years I gave it. You know what all our fire and blood ever bought? Recruitment posters. Every bomb we set, they put on the news to prove we was the animals they always said. We made them stronger every single time we fought them the way they wanted to be fought." "jamal">>
<p>He sits heavily on the edge of the bed, turning his dead phone over in his hands, and looks at you like a man who has just watched the ground shift under his whole life.</p>
<<speech "Jamal" "And then you and me, half-dead out of a cage, no plan, wrong recon. And we ended a police chief in one night. With a phone camera. No bomb. No bullet. We took the one thing these fascist motherfuckers can't live without, the one thing their whole sick world is built to protect." "jamal">>
<<speech "You" "Their women?">>
<<speech "Jamal" "Nah, brother. Their pride." "jamal">>
<div class="text">It should sound insane, but you've seen it work. You watched a signature that stole your family's future get erased by a phone video and a girl's spite, and some cold, strategic part of you is already doing the math Jamal is doing.</div>
<<speech "You" "So what happens now?">>
<<speech "Jamal" "Now we go dark. Our faces on that tape, so we watching our heat from here on out." "jamal">>
<p>Jamal slides a folded note across the cheap motel bedspread, a key on top of it.</p>
<<speech "Jamal" "Here, key to a safe house, address on the note. Shitty neighborhood, but ain't nobody gon' look at you twice there. You lay low, get to know the block, make people respect you - 'cause we gon' need people." "jamal">>
<<speech "Jamal" "Meanwhile I'm gon' reach out to my network, what's left of it. I'll scout a new target and come find you." "jamal">>
<<speech "You" "How does this help me? What about Jeremy?">>
<<speech "Jamal" "We do this right, we get close enough to reach the people who can open his cell, or sign the paper that does. That's the long game. Tonight was just proof it works." "jamal">>
<p>He stands and heads for the door.</p>
<<speech "Jamal" "That was good sex, tho." "jamal">>
<div class="req">You have an address, a key, and a war nobody trained you for. Whatever the last three days were, they were the old life finishing. Everything from here counts from day one.</div>
[[Go to the address|The Wall]]<<pic "img/intro/wall.webp" "story">>
<div class="text">The city bus approaches the wall: concrete highway barriers stacked two high and topped with wire, camera masts every hundred meters, the concrete gone grey-brown with exhaust and rain. </div>
<div class="text">There are several roads in, each guarded by a blockpost like the one your bus is approaching: sandbags, a lowered boom, floodlights on poles, a plywood booth with a militia flag. Two queues. The long one is residents coming out for the early shifts, work passes held at chest height. The short queue is going in.
The short queue is you.</div>
<div class="text">The militiaman at the gate looks at you, at your bag, at your face, and waves you through without asking for anything at all. What goes in doesn't matter. Nobody smuggles themselves INTO the reservation.
</div>
<<pic "img/general/hood_2.jpg" "story">>
<div class="text">Inside, the first thing you understand is that "the hood" is the polite name. The city pushed everything it didn't want behind this wall - the immigrants first, then the poor and unreliable.
Police and militia don't patrol this side of the wall; they come in force or not at all, and between their raids this place is either a hellhole or a libertarian paradise - depends on your perspective. It even attracts outside visitors - you spot several expensive cars that roll through the main alley, looking for cheap thrills: drugs on the corner, cheap whores from the local brothel, or a nightclub where you can do both.</div>
<div class="text">The address on the note is a corner store with dead windows, three blocks past a bar that's somehow still lit. Around the side, up an exterior stair, a door with a bolt lock that Jamal's key fits. You stand on the landing a moment, looking back the way you came: over the low roofs you can still make out the camera masts along the wall, red lights blinking in the dark, every one of them pointed in at you and your new neighbors.</div>
[[Go inside|The hideout]]<<switch $community_quest>>
<<case 1>>
<<pic "img/general/community_stage1.webp" "story">>
<div class="text">The burned-out shell of the community library sits behind a sagging length of caution tape nobody has bothered to replace. Whatever happens to this building next, it starts with someone walking inside.</div>
<<linkreplace "Explore the building">>
<div class="text">The community library is a gutted shell now, scorch marks up the facade, most of the windows gone. Inside, the air smells of ash and damp decay, with the sour tang of old smoke underneath it. A charred pile of books sits in the center of the main hall, pages curled and black. The walls are smeared with hateful graffiti, crude symbols and slurs in spray paint. The shelves sag, their contents looted or ruined by fire and time. The structure held, but the place is hollow.<br><br>
You walk it twice before you start counting properly. The fires were put out fast enough that most of the damage is cosmetic, and the brick held. The roof and the wooden floors are the exceptions. Cleanup first, then the roof, and only after that the windows and the interior.<br><br>
It will take time, effort and, more to the point, money. You can do it alone. It would go a great deal faster with someone who knows construction.</div>
<<statchange "energy" -3>>
<<set $community_quest to 3>>
<</linkreplace>>
<<case 3>>
<<album "img/general/community_progress_" 2 "webp" "story">>
<<renophase>>
/* Standing description of the site as it currently is. The per-session
flavour further down only renders inside "Get to work", so without this
a player who is short on money or energy gets a percentage and a link
and nothing that reads like a building. */
<div class="text"><<switch _phase>>
<<case "Cleanup">>
Every visit starts the same way: shoulder the door until the warped frame lets go, then stand a moment while your eyes adjust. The hall smells of wet ash and will for a long time yet. What you have hauled out so far sits in the parking lot in sorted heaps, most of it shelving. What you have not hauled out is everything else. Light comes down through the holes in the roof in solid grey columns, full of the dust you keep raising, and the graffiti is still legible from the door. You have stopped reading it. That took about a week.
<<case "Roof">>
The floor is clear enough to walk without watching your feet now, and that changes the place more than the work deserves. You can see the shape of it: where the shelves ran, where the desk sat. There is a darker rectangle high on the back wall where something official used to hang, and nobody has been able to tell you what. Rain still finds the same four spots and has started leaving stains down the plaster. Up on the joists the burned span is obvious, black wood giving way to grey, and the wind moves through it loud enough to hear from the ground.
<<case "Windows">>
Dry, at last. The new decking smells of cut pine over the ash, a clean smell fighting a dirty one, and for the first time the building holds a temperature. What it does not hold is wind. The boards you nailed over the worst of the frames make the hall dark as well as cold, and sparrows come and go through the rest like they have been paying rent. When you sweep, the dust stays down instead of hanging in the light. Small thing. You notice it every time.
<<default>>
It is a room again. Glass in the frames, and the hall fills up with ordinary afternoon light that shows you exactly how much is left: bare plaster, raw sanded floor, wiring stapled along the baseboards waiting on cover. The echo is what gets you. Your footsteps come back off the far wall now, and the place has the sound of somewhere people are meant to sit quietly. Ella's clipboard lives on the sill. She has started leaving her coat here between visits.
<</switch>></div>
/* Wrapped in an id so "Get to work" can refresh it in place - otherwise the
header keeps showing the pre-action percentage until the player leaves. */
<div id="reno-header" class="text" style="font-size: 1.2em; font-weight: bold;"><<if $library_progress < 100>>Phase: _phase. Renovation progress: $library_progress%.<<else>>Renovation progress: $library_progress%.<</if>></div>
<<nobr>>
<<if $library_progress >= 90 && $library_standoff < 2>>
<<set $library_standoff = 1>>
<div class="text">The work stops on its own. A big diesel pickup has made two slow passes along the block, and now it's swinging back around, bed full of men in mismatched camo. The Oath Boys have finally come to look at what's growing where their fire used to be.</div>
[[Face them|LibraryStandoff]]
<<elseif $library_progress >= 50 && $library_progress < 70 && $library_materials == 0>>
<<if $money >= 15>>
<<linkreplace "Buy window glass and frames ($15)">>
<div class="text">Glass doesn't get salvaged - glass gets bought. You spend a morning with a glazier on the other side of the hood who asks no questions about the address, and by afternoon a hand cart of panes and secondhand frames stands wrapped in blankets inside the main hall. Now the window work can start.</div>
<<statchange "money" -15>>
<<set $library_materials = 1>>
<</linkreplace>>
<<else>>
<div class="req">The empty window sockets are next, and boards won't do this time. You need $15 for glass and frames before this phase can start.</div>
<</if>>
<<elseif $money >= 5 && $energy >=5 && $library_progress < 100 >>
<<linkreplace "Get to work">>
<<nobr>>
<<if _phase == "Cleanup" && $library_find < 1>>
<<set $library_find = 1>>
<div class="text">Prying the burned notice board off the front door, you find a paper stapled beneath it, scorched at the edges but legible: NOTICE OF UNREGISTERED ASSEMBLY, citing "recurring unsanctioned gatherings" - the literacy classes, the tenant meetings - with the Oath Boys' torch stamp at the bottom. They wrote themselves permission before they lit the match. And up close, the graffiti tells you who held the pen: crooked swastikas with the arms bent the wrong way, SS bolts, an "88" and a "14" in the same hand. Dollar-store Third Reich, copied off the internet by men who couldn't spell "Reich."</div>
<<elseif _phase == "Roof" && $library_find < 2>>
<<set $library_find = 2>>
<div class="text">Up on the roof you find where the fire started: a scorch flower spread around a melted bottle neck, the burned rag still fused to it. Snagged on the parapet wire beside it, an iron-cross patch - machine-embroidered, the kind sold at the surplus store two blocks from the blockpost. They didn't even climb down the way they came up. They just dropped the bottle and ran like kids.</div>
<<elseif _phase == "Windows" && $library_find < 3>>
<<set $library_find = 3>>
<div class="text">Sweeping out the last window frame, you free a half-burned sheet that has been wedged there since the fire: a hand-drawn flyer. LEARN TO READ WITH YOUR KIDS, TUESDAYS. TENANT MEETING, THURSDAYS - KNOW YOUR RIGHTS. This is what the citation called "unregistered assembly." Not the books. The Tuesdays and the Thursdays. You show it to Ella, and for the rest of the afternoon she works without saying a word.</div>
<<elseif _phase == "Interior" && $library_find < 4>>
<<set $library_find = 4>>
<div class="text">Behind the collapsed front desk, in a fireproof cash box that did its job, you find the sign-in ledger from the mutual-aid nights. Ella goes through it page by page with ash-black fingers, and you watch her sort the names the way she sorted the books: still here, relocated, detained, unknown. She copies the whole thing out by hand into a new notebook before she lets you shelve the original. "The building isn't the thing we're rebuilding," she says. "This is."</div>
<<else>>
<div class="text"><<switch _phase>>
<<case "Cleanup">>
<<set _event=random(1,4)>>
<<switch _event>>
<<case 1>>
As you toss the debris into a growing pile outside, you haul out the charred remains of books and furniture. The smell of burned paper and wood clings to your clothes long after.
<<case 2>>
Despite you scrubbing at the hateful graffiti on the walls, the paint barely fades, leaving faint scars of words you'd rather forget.
<<case 3>>
With a borrowed broom, you sweep layers of ash and dirt from the floors. Warped tile shows up underneath, and here and there a scrap of what the place used to be - a date stamp card, half a poster about summer reading.
<<case 4>>
You spend the session hauling out the ruined carpet in strips, rolled like bodies, while a couple of neighborhood kids watch from the doorway and keep a wary count of your trips.
<</switch>>
<<case "Roof">>
<<set _event=random(1,3)>>
<<switch _event>>
<<case 1>>
You patch gaps in the roof with tar and plywood, each hammer strike echoing through the empty shell of the library.
<<case 2>>
You spend the day tearing out charred joists and sistering new lumber alongside the ones that held. From up here you can see the blockpost at the end of the main road, and it can see you.
<<case 3>>
Hot tar work under a flat gray sky. By the end of it your shoulders scream and the roofline runs straight for the first time since the fire.
<</switch>>
<<case "Windows">>
<<set _event=random(1,3)>>
<<switch _event>>
<<case 1>>
A rusted hammer in hand, you pry loose warped and blackened boards from the windows, letting in pale sunlight for the first time in months.
<<case 2>>
Glazing is patient work: bed the pane, set the points, run the putty with a thumb. By dusk one more window holds the warm light in instead of the weather out.
<<case 3>>
You hang salvaged frames plumb in sockets that aren't, shimming until the bubble sits center. A passing old man stops to watch the glass go in and doesn't say anything, but he takes his hat off.
<</switch>>
<<case "Interior">>
<<set _event=random(1,3)>>
<<switch _event>>
<<case 1>>
You drag in salvaged shelves from a nearby thrift store; each piece mismatched but sturdy enough to hold what little you can restore. Ella directs the placement like artillery: two degrees left, hold, there.
<<case 2>>
Paint day. Ella tapes the trim and rations the rollers, and you cover the last of the scorch shadows with a color she calls "institutional cream" and defends like a thesis.
<<case 3>>
You and Ella spend the session shelving the "lives" stack in proper order. She keeps stopping to read first pages out loud, which is the least efficient sorting method ever devised, and neither of you does anything to fix it.
<</switch>>
<</switch>></div>
<</if>>
<</nobr>>
<<statchange "money" -5>>
<<statchange "energy" -5>>
<<set $library_progress +=10>>
<<if $foreman_help > 0 >>
<p>Thanks to the help from the foreman, you're able to progress faster.</p>
<<set $library_progress +=10>>
<<elseif _phase == "Roof" && $construction_rep >= 12>>
<p>You've hung enough joists on the foreman's site to do this kind of work in your sleep. The roof goes twice as fast under hands that know it.</p>
<<set $library_progress +=10>>
<</if>>
<<set $library_progress = Math.min(100, $library_progress)>>
/* Recompute the phase and repaint the header so the new percentage shows
immediately instead of on the next visit. */
/* Percentage only: the phase name here would be the *next* phase, sitting
directly under a paragraph describing the work you just did in the
previous one, which reads as a contradiction. */
<<replace "#reno-header">>Renovation progress: $library_progress%.<</replace>>
<</linkreplace>>
<<elseif $library_progress < 100>>
<p> You need at least 5 energy and 5 money to work on the renovation.</p>
<</if>>
<<if $ella_stage == 1>>
<div class="req">You wonder if you should tell Ella about the progress you've made... She still drowns her evenings at the bar.</div>
<<elseif $ella_stage == 2>>
<<if $library_progress < 30>>
<div class="req">Ella comes by the site but keeps her distance while the place is still a burned shell - finish the cleanup first, then she'll have something to plan over.</div>
<<elseif $day >= $ella_next_day>>
<p>Ella's been at the site since morning - sober, organized, and apparently expecting you.</p>
[[Share a coffee with her|EllaBeat_Plans]]
<<else>>
<div class="req">Give it a day - after the state you last saw her in, Ella will need one.</div>
<</if>>
<<elseif $ella_stage == 3>>
<<if $library_progress < 50>>
<div class="req">Ella circles the charred book pile with her clipboard, but salvage day needs a dry building - get the roof done first.</div>
<<elseif $day >= $ella_next_day>>
<p>Ella has cordoned off the charred book pile and is eyeing it like an enemy position. She waves you over.</p>
[[Join her for salvage day|EllaBeat_Salvage]]
<<else>>
<div class="req">Ella is buried in her clipboard today. Come back another day - the salvage pile isn't going anywhere.</div>
<</if>>
<<elseif $ella_stage == 4>>
<<if $library_progress >= 100 && $library_standoff == 2>>
<<if $day >= $ella_next_day>>
[[Complete the renovation|Ella Hughes]]
<<else>>
<div class="req">The last coat of paint is drying. Come back tomorrow - Ella wants everything perfect for the unveiling.</div>
<</if>>
<<elseif $library_progress < 100>>
<div class="req">Ella is ready for the finish - now the building has to be. Complete the renovation.</div>
<</if>>
<</if>>
<</nobr>>
<<case 4>>
<<pic "img/general/community_stage4.jpg" "location">>
<<if $ella_stage == 5>>
<<if $day >= $ella_next_day>>
<p>Opening day. The doors stand wide for the first time since the fire, and the block has turned out in numbers - kids on the rug, mothers by the kettle, the chess players already arguing over a board someone donated. Ella is everywhere at once, and somehow never far from you.</p>
<<else>>
<p>The renovation is done, but the doors stay locked - Ella wants the neighborhood's first look to be tomorrow, at the grand opening, and not a minute earlier. Through the new glass you can see her moving between the shelves, straightening books that were already straight an hour ago.</p>
<</if>>
[[Find Ella|Ella Hughes]]<br>
<<else>>
<p>The library feels alive again. The modest shelves hold their salvaged books, quiet conversations and the occasional laugh carry between the walls, and the whole place smells of paper and fresh wood. In this neighborhood, that smell alone is worth defending.</p>
<<if $library_standoff == 2>><p>The Oath Boys give the building a wide berth these days - nobody wants a second helping of that afternoon on the curb. Their trucks still own the rest of the block. Just not this address.</p><</if>>
<<libraryevent>>
<<nobr>>
[[Find Ella|Ella Hughes]]<br>
<<if $energy >=5>>[[Do volunteer work|Volunteer]]<br><<else>>Not enough energy to do volunteer work.<br><</if>>
<<if $energy >=3>><<if $reading_hour_day < $day>>[[Host the reading hour|LibraryReadingHour]]<br><<else>><div class="req">Today's reading hour is done - the rug crowd has a strict one-per-day policy.</div><</if>><<else>>Not enough energy to host the reading hour.<br><</if>>
<<if $target1>=4>><<if $energy >=5>>[[Find something to read|Study]]<br><<else>>Not enough energy to study.<br><</if>><</if>>
<<if $backroom_unlocked > 0>>
<<if $energy >=5>>[[Read in the back room|LibraryBackRoom]]<br><<else>>Not enough energy for the back room.<br><</if>>
<<elseif $ella_stage >= 6>>
<<if $money >= 30 && $energy >= 5>>
<<linkreplace "Build a back room behind the poetry shelf ($30)">>
<div class="text">You pitch it to Ella as a supply closet, and she looks at you the way she looks at books that lie about their genre. Then she draws the hinge mechanism herself. A weekend of quiet carpentry later, the poetry shelf swings on a pivot, and behind it waits a lamp, a chair, and empty shelving for the books that can't sit in the open. "If they ever find it," she says, handing you the first banned title for the collection, "we were never in here."</div>
<<statchange "money" -30>>
<<statchange "energy" -5>>
<<set $backroom_unlocked = 1>>
<</linkreplace>><br>
<<else>>
<div class="req">Ella keeps eyeing the dead space behind the poetry shelf. A hidden reading room would take $30 in lumber and hardware, and a free evening (5 energy).</div>
<</if>>
<</if>>
<</nobr>>
<</if>>
<</switch>>
<<nobr>>
<<if $school_unlocked == 3 && $school_intro_location == "library">>[[Meet with Jamal|SchoolIntroLibrary]]<br><</if>>
<<if $william_stage == 2 && $ella_stage >= 11 && $energy >= 1>>[[Tell Ella about William's invitation|William Arrangement]]<br><</if>>
<<if $ella_mmf_stage == 1>><<linkreplace "Ella wants to talk...">><<nobr>>
<<speech "Ella" "So...">><br>
<<speech "You" "Yes?">><br>
<<speech "Ella" "I wanted to ask you something...">><br>
<<speech "You" "Go on, babe.">><br>
<<speech "Ella" "This is so awkward...">><br>
<<speech "You" "You want to know if I'm OK with Jamal and me taking turns fucking your ginger pussy with our big black cocks until we cum all over your pretty little face?">><br>
<p>Ella blushes, not only because of your straightforwardness but also from arousal - you can tell she has already depicted the threesome - in a similar fashion.</p><br>
<<speech "Ella" "Well... yeah?">><br>
<div id="choice-container">
<<if not _choiceMade>>
<<linkreplace "Not OK">>
<<set _choiceMade = true>>
<<set $ella_mmf_stage = -1>>
<<replace "#output">><<speech "Ella" "Oh... Well... Can you please forget this ever happened?">><br><</replace>>
<<replace "#choice-container">><</replace>>
<</linkreplace>><br>
<<linkreplace "Let's do it!">>
<<set _choiceMade = true>>
<<set $ella_mmf_stage = 2>>
<<replace "#output">><p>Ella smirks.</p>
<<speech "Ella" "That means so much to me! I think I have a place in mind. Contact Jamal, and meet me there tomorrow!">><<set $nextday = 1>><br><br><</replace>>
<<replace "#choice-container">><</replace>> <!-- Hides both choices -->
<</linkreplace>><br>
<</if>>
</div>
<div id="output"></div>
<br>
<</nobr>><</linkreplace>><br><</if>><br>
[[Go outside|The Hood]]
<</nobr>>/* ============================================================
Library system widgets.
<<renophase>> - maps $library_progress to the current rebuild
phase name (_phase): Cleanup 0-29, Roof 30-49, Windows 50-69,
Interior 70-99.
<<libraryevent>> - rolled on visiting the finished library
(community_quest == 4). 40% chance, at most one per day
($last_library_event_day). Gated events fall back to a quiet
line, Hood-style.
============================================================ */
<<widget "renophase">>
<<if $library_progress < 30>>
<<set _phase = "Cleanup">>
<<elseif $library_progress < 50>>
<<set _phase = "Roof">>
<<elseif $library_progress < 70>>
<<set _phase = "Windows">>
<<else>>
<<set _phase = "Interior">>
<</if>>
<</widget>>
<<widget "libraryevent">>
<<if $last_library_event_day < $day && random(1, 100) <= 40>>
<<set $last_library_event_day = $day>>
<<set _levent = random(1, 8)>>
/* Gated events fall back to the quiet default (case 0) */
<<if _levent == 5 && ($ella_stage < 6 || $energy < 3)>><<set _levent = 0>><</if>>
<<if _levent == 3 && $energy < 2>><<set _levent = 0>><</if>>
<<switch _levent>>
<<case 1>>
/* Banned book request */
<div class="text">A man you half-recognize from the hood waits until the reading tables empty out before he approaches the desk. He doesn't ask for a title. He slides over a scrap of paper with one written on it, folded twice, and keeps his hand flat on the desk like the scrap might try to escape. The book is on the proscribed list. Of course it is - the good ones usually are.</div>
<div id="choice-container">
<<linkreplace "Wrap it in newspaper">>
<<replace "#output">>
<div class="text">You find the book, fold the state paper around it - sports section out, nobody checks the sports section - and hand it across like a sandwich. He's gone in under a minute. It'll come back the same way, or it won't come back at all. Either way, the word moves: the library lends what the list forbids.</div>
<<statchange "respect" 3>>
<<statchange "heat" 5>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Wrap it in newspaper"</em></div><</replace>>
<</linkreplace>><br>
<<if $backroom_unlocked > 0>>
<<linkreplace "Take him to the back room">>
<<replace "#output">>
<div class="text">You tap the desk twice and walk toward the poetry shelf without looking back. He follows at a browser's pace. In the back room he reads the first page standing up, right there, like a starving man eating in the doorway of the kitchen. No book leaves the building and no name goes into any ledger, so an inspection would find exactly nothing.</div>
<<statchange "respect" 3>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Take him to the back room"</em></div><</replace>>
<</linkreplace>><br>
<</if>>
<<linkreplace "Turn him away">>
<<replace "#output">>
<div class="text">"We don't carry it." His hand comes off the desk slowly, taking the scrap with it. He nods like he expected nothing else and thanks you anyway, which is somehow worse. You spend the rest of the hour shelving books nobody has forbidden yet.</div>
<<statchange "respect" -1>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Turn him away"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>
<<case 2>>
/* Anonymous donation */
<div class="text">Someone has left three boxes of books on the step overnight - no note, no name, packed with the care of a person who couldn't keep them and couldn't burn them either. Most of it is reading-copy junk. But at the bottom of the last box, wrapped in a pillowcase, sits a first edition that would fetch real money from the collectors on the other side of the wall.</div>
<div id="choice-container">
<<linkreplace "Sell it quietly ($15)">>
<<replace "#output">>
<div class="text">Books don't eat, and the library's roof fund does. A courier takes it out through the blockpost inside a box of regime-approved poetry, and an envelope comes back two days later. You tell yourself whoever left it on a doorstep in the dark gave up their vote on what happens next.</div>
<<statchange "money" 15>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Sell it quietly ($15)"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Shelve it">>
<<replace "#output">>
<div class="text">You put it behind the desk glass where the light can't fade it, with a card that says DONATED and nothing else. Ella finds it that afternoon and goes very quiet, turning it over with both hands. People notice things like that here. A place that doesn't sell what it's given is a place you can give things to.</div>
<<statchange "respect" 3>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Shelve it"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>
<<case 3>>
/* Kids' reading hour - the wolf voice */
<div class="text">You walk in on reading hour at full riot. Ella is holding the picture book with the paper sun - the one from the salvage pile - and a dozen kids are packed on the rug in front of her. She spots you over their heads and her grin turns criminal.</div>
<<speech "Ella" "And here comes our special guest, who does the BEST wolf voice in the neighborhood. Don't you, sir.">>
<div class="text">You do not do the best wolf voice in the neighborhood. You do it anyway, twelve times, because the audience demands encores and Ella enforces the demands. By the end your throat is sandpaper and one small girl informs you gravely that the old wolf was better. Ella laughs so hard she has to sit down on the rug with them.</div>
<<statchange "energy" -2>>
<<statchange "respect" 3>>
<<case 4>>
/* The cigarette man moves indoors */
<div class="text">The man with the long-burning cigarette is in the periodicals corner. No cigarette in here - Ella's one iron law - but it's him: same coat, same patience, a newspaper he isn't reading held at an angle that covers everything but his eyes. His lips move slightly when anyone signs the guest book. The precinct pays by the name, and the library is full of names now.</div>
<div id="choice-container">
<<linkreplace "Warn Ella quietly">>
<<replace "#output">>
<div class="text">You tell her over the returns cart, in the voice you'd use to discuss a late fee. She doesn't look at him - she's learned the same rules the bartender knows. That afternoon the guest book develops a fault: the pen at the desk runs dry, and somehow stays dry, and people just stop signing in. He can memorize faces all he wants. Faces aren't names.</div>
<<statchange "respect" 2>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Warn Ella quietly"</em></div><</replace>>
<</linkreplace>><br>
<<if $heat < 75>>
<<linkreplace "Sit down across from him">>
<<replace "#output">>
<div class="text">You take the chair opposite and read for a while, companionably. Then, without lowering your book, you recommend he try the periodicals on Thursdays - since that's when the unmarked car picks him up anyway, might as well save the round trip. He folds his newspaper with great dignity and leaves. He'll write you up for it. He was going to write you up regardless.</div>
<<statchange "heat" 8>>
<<statchange "respect" 4>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Sit down across from him"</em></div><</replace>>
<</linkreplace>><br>
<<else>>
<div class="req">He knows exactly who you are. Better not to hand him a headline.</div><br>
<</if>>
<<linkreplace "Leave him to it">>
<<replace "#output">>
<div class="text">A library is public. That's the whole point of it.</div>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Leave him to it"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>
<<case 5>>
/* Ella in the stacks - requires $ella_stage >= 6 && $energy >= 3 */
<div class="text">You find Ella reshelving in the back aisle, up on the stepladder, and the look she gives you over her shoulder has absolutely nothing to do with the Dewey decimal system.</div>
<<speech "Ella" "The reading room's empty until four, and I was thinking about putting something in my mouth. You want to help me with that?">>
[[Follow her between the shelves|LibraryQuickie]]
<<case 6>>
/* The old teacher - Oath Boys lore */
<div class="text">An old man in a pressed, threadbare suit waits until you're alone at the desk. He taught history two blocks from here for thirty years, he says, and then he lays two things on the desk with trembling care. The first is a photograph of the library before the fire - full shelves, a banner for the tenant association meeting, kids on the same rug Ella reads on now. The second is a carbon copy of the original citation: NOTICE OF UNREGISTERED ASSEMBLY, with the Oath Boys' torch stamp at the bottom, filed three days before the burning.</div>
<<speech "Old teacher" "They wrote themselves permission first, you see. Even arsonists want paperwork now. I kept the copy because someone should remember it was never about the books. The books just burn brighter than minutes of a tenants' meeting." "default_male">>
<div class="text">He won't take a coffee, won't take a chair, won't leave the photograph - but he lets you photograph the citation, and shows you how to read the reference numbers so you'll recognize the next one before it becomes a fire.</div>
<<statchange "knowledge" 1>>
<<case 7>>
/* Drive-by echo - flavor only */
<div class="text">Through the new windows: an Oath Boys pickup slows to a crawl outside, engine grumbling. The men in the bed look the building over - the glass, the lights, the full reading tables - and then look away first. The truck picks its speed back up and takes the long way around the block. They don't stop at the library anymore. That doesn't mean they've forgotten your face.</div>
<<default>>
<div class="text">A quiet day among the shelves. Pages turn, a kettle mutters behind the desk, and for a few hours the neighborhood gets to pretend it lives somewhere ordinary.</div>
<</switch>>
<</if>>
<</widget>><!-- IMAGE: Oath Boys pickup outside the half-renovated library, armed men in mismatched surplus gear -->
<div class="text">You hear the pickup before you see it - a big diesel making a slow, deliberate pass, then swinging around and mounting the curb in front of the library. Six of them climb out. Surplus-store camo that doesn't match, iron-cross patches sewn on crooked, one armband that was clearly stitched at somebody's kitchen table. The lead one has SS bolts inked on his neck by an artist who'd never seen the real thing.</div>
<div class="text">Behind you, the work stops. Ella comes to the doorway with a paint scraper still in her hand.</div>
<<speech "Oath Boy" "Now this is confusing. We burn a rat nest down, and some boy rebuilds it. You slow, son? The building's been decided on. Official-like." "militiaman">>
<div class="text">Down the street, doors are quietly closing. These are the men who did it - who wrote themselves a citation, waited for dark, and put a neighborhood's only warm room to the torch. Posers in mail-order costumes, and dangerous all the same, because six armed cowards are still six armed men.</div>
<<linkreplace "Step out to meet them">>
<div class="text">You come out slow, hands loose, and stop closer to him than he expected - inside the distance his rifle sling can do anything useful about. And then you don't threaten him.</div>
<<speech "You" "Weight's on your back foot. Sling's too long - I could have that rifle off you before you found the trigger. The camo's from the Sentinel Surplus catalog. Who are you, Temu warriors?">>
<div class="text">Silence. You take one more half-step and lower your voice so only the leader gets the full weight of it.</div>
<<speech "You" "During my three deployments, I've cleared buildings against insurgents who would eat this whole gang of yours before breakfast. They were the real thing, and not a bunch of military cosplayers.">>
<<if $physical >= 55>>
<div class="text">You let him look at you while you say it - at the build under your shirt, at hands that have done this for a living. He flinches first. In front of his own men, he flinches first.</div>
<<else>>
<div class="text">You let him look at you while you say it - at the split lip, at the way you're holding one side, at a week that has plainly not been kind. He looks a beat too long, and you can see him doing the arithmetic and getting the wrong answer. A man who has taken this much and still walked out into the street to meet six of them is not a thing he knows how to price. He flinches first. In front of his own men, he flinches first.</div>
<</if>>
<<if $target1 >= 4>>
<div class="text">Something else crosses his face too - recognition, or the fear of it. You've moved in rooms his masters only guard the doors of, and it hangs on a man like a scent. Whoever he expected to find rebuilding a hood library, it wasn't someone like you.</div>
<</if>>
<div class="text">The lead tries to find his line and comes up with half a slogan, misquoted - one of his own men winces. You watch the fantasy come off them in real time, like paint in the rain. This was supposed to be an easy afternoon - scare a librarian, kick over some scaffolding, then drive home feeling like soldiers. Nobody briefed them on the possibility of standing in the street getting graded on their cosplay by the genuine article, in front of the whole block.</div>
<<speech "Oath Boy" "...Watch yourself, son. This block is ours. All of it." "militiaman">>
<<speech "You" "Then you won't mind it having a library.">>
<div class="text">They mount back up with as much swagger as men can manage while retreating. The diesel bellows, the truck drops off the curb, gone. From the doorway, Ella exhales for the first time in three minutes. Somewhere up the street, someone whistles the long-short-long, and the block breathes again.</div>
<div class="text">Word of it will travel - to the neighborhood, which is good, and to their command, which is not. Out on the streets they're still what they always were - armed men in numbers, and humiliated now on top of it, which makes them worse. But the library just became expensive. Coming back here means explaining, again, in front of everyone, why six of them couldn't handle one unarmed man.</div>
<<nobr>>
<<set $library_standoff = 2>>
<<statchange "respect" 10>>
<<statchange "heat" 5>>
<</nobr>>
[[Back to the renovation|Community Center]]
<</linkreplace>><div class="text">As soon as the door closes behind you, Ella unzips your pants and pulls out your hardening cock.</div>
<<speech "Ella" "We don't have much time...">>
<<video "img/ella/quick_bj.mp4">>
<div class="text">She starts sucking you off and even attempts to deepthroat you. She's getting better at handling your massive size, and you enjoy her mouthwork immensely.</div>
<<speech "You" "Oh, you ARE a hungry girl. Ready for some snacks?">>
<<video "img/ella/quick_facial.mp4">>
<div class="text">There is no time to waste, as any time someone may spot you; you start jerking off on Ella's face and cover it with your cum. Most of it goes in her hungry mouth, but significant amounts splatter all over her face.</div>
<<speech "Ella" "So sloppy... I better clean this up before anyone sees.">>
<div class="text">She's back at the desk with three minutes to spare, collar straight, stamping returns.</div>
<<statchange "energy" -3>>
[[Back to the library|Community Center]]<<pic "img/general/library_1.jpg" "location">>
<div class="text">The back room doesn't exist. There's a poetry shelf on a hinge, and behind it a space the size of a generous closet: one chair, one lamp, and the shelf of books that would earn the whole building a second fire. This is where you do your real reading - banned history, and pamphlets that explain in plain language what the regime works so hard to keep confusing.</div>
<<statchange "knowledge" 5>>
<<statchange "energy" -5>>
<<if random(1, 100) <= 15>>
<div class="text">On your way out, a kid from the food line meets your eyes and glances - just for a half-second - at the lamplight leaking under the poetry shelf. He says nothing. He noticed. Someday, someone worse will.</div>
<<statchange "heat" 8>>
<</if>>
[[Back to the library|Community Center]]<<set $reading_hour_day = $day>>
<div class="text">You host the reading hour yourself today - a rug full of kids, a stack of picture books, and a room of mothers who came for the childcare and stayed for the only quiet hour their week allows. You do the voices. All of them. Your wolf remains, by unanimous committee decision, worse than the old wolf, and you take the note with soldierly grace.</div>
<<statchange "energy" -3>>
<<statchange "respect" 4>>
<<if random(1, 100) <= 25>>
<div class="text">On the way out, one of the mothers presses a folded bill into your hand with both of hers, in the invisible way charity travels here - downhill, quietly. "For the books," she says, in a tone that closes the subject.</div>
<<statchange "money" 5>>
<</if>>
[[Back to the library|Community Center]]You help the little community center that is forming around the library. They always need some extra hands, and your help is very appreciated.
<<statchange "energy" -3>>
<<statchange "respect" 3>>
<<return>><<if ndef $linda_stage>><<set $linda_stage = 0>><<set $linda_next_day = 0>><</if>>
<<if not $detention_job || $school_time isnot "afternoon" || $linda_stage != 0 || $school_rep < 10 || $energy < 2>>
<<if $energy < 2>>
<p>You need 2 energy for Linda's detention session.</p>
<<else>>
<p>There is nobody waiting for you in room 019.</p>
<</if>>
[[Back to the hallway|Hallway]]
<<else>>
<p>She is Linda Sweet, eighteen, an adult senior with perfect marks, a scholarship application in every teacher's inbox, and the sort of tidy reputation that makes people assume they know her. Her fingers worry the strap of her bag while her green eyes keep coming back to you.</p>
<<speech "Linda" "I heard the stories. About you. I wanted to know if the saying is real." "linda">>
<<speech "You" "Saying?" >>
<<speech "Linda" "The... once-you-go-black one. I am not saying I believe it. I just keep hearing it, and I keep thinking about it when I should be studying..." "linda">>
<<pic "img/school/linda/linda_2.jpg" "story">>
<p>She flushes, then makes herself hold your gaze.</p>
<<speech "Linda" "Girls in lockers keep talking about life-changing BBC..." "linda">>
<<speech "Linda" "But I have a boyfriend, and I am definitely not cheating on him like that. So if you agree to show me the black side, it is my ass. Only my ass." "linda">>
<<speech "You" "You do not have to invent a rule for me. You can leave, or you can tell me exactly what you want." >>
<p>Linda swallows. Instead of leaving, she locks the door, bends over the teacher's desk, and reaches into her bag for a bottle of lube with a pharmacist's neat little label peeled away.</p>
<<speech "Linda" "I want to feel a big black cock in my ass. I want you to stretch it so bad it will be ruined for every other white guy after you." "linda">>
<<speech "You" "Sheesh. Tell me to stop and I stop. You set the pace." >>
<p>She nods too quickly, then slows when your first careful touch makes the fantasy real. You work her open with patience, keeping one hand on her hip while she learns to breathe through the stretch. Her polished, breathless answers collapse into moans when you finally press your thick cock into her waiting ass.</p>
<<video "img/school/linda/linda_stretch_0.webm">>
<p>Linda claws at the desk, pushing back whenever you pause. You take her from behind in slow, deep strokes until the tight little ring has relaxed around you and her ass hangs flushed and loose after you pull free. She reaches back as if she cannot quite believe what she asked you to do.</p>
<<speech "Linda" "I thought I would hate it. I really, really did not." "linda">>
<<set $linda_stage = 1>>
<<set $linda_next_day = $day + 2>>
<<statchange "energy" -2>>
<div class="req">She'll find you when she realizes she indeed can't go back.</div>
[[Lock up|Hallway]]
<</if>><<if ndef $linda_stage>><<set $linda_stage = 0>><<set $linda_next_day = 0>><</if>>
<<if $linda_stage != 1 || $day < $linda_next_day || $energy < 2>>
<<if $energy < 2>>
<p>You need 2 energy for another session with Linda.</p>
<<else>>
<p>Your closet is empty except for the mop bucket and the hum of the light.</p>
<</if>>
[[Back to the closet|Closet]]
<<else>>
<<pic "img/school/linda/linda_4.jpg" "story">>
<p>Linda is already naked when you close the door. Her blazer is folded on the shelf beside the paint cans, her underwear tucked precisely inside one shoe. She looks less like the girl from detention now and more like someone who has spent two days arguing with herself and lost.</p>
<<speech "You" "You took your time coming back." >>
<<speech "Linda" "I tried not to. But I'm having this itch... and my butt feels so empty without yout massive black cock deep inside it." "linda">>
<<speech "Linda" "I kept thinking about it. Please. I need your black dick in my butt again." "linda">>
<<speech "You" "Still calling this not cheating?" >>
<<speech "Linda" "My bf can still hve my pussy, like I care. I know where the real pleasure is." "linda">>
<<video "img/school/linda/linda_stretch_1.webm">>
<p>You make her say what she wants, then guide her over the old couch. She takes you easier this time, wet with lube and impatient enough to pull you back inside whenever you try to slow down. The room fills with the creak of springs and her muffled little cries as you pump her ass until it is red, swollen, and unable to close.</p>
<<pic "img/school/linda/linda_gape.jpg" "story">>
<p>When you ease out, Linda reaches back and feels the open gape with stunned fingers. You tell her she is ready for more now - unless she wants you to stop. She shakes her head before you finish the sentence.</p>
<<speech "Linda" "Stop? I cannot imagine going back to my boyfriend's pathetic white dick and pretending this did not happen." "linda">>
<<speech "Linda" "He is sweet. He has never done anything wrong. That almost makes it worse, because I keep looking at him and wondering why I want this so badly instead." "linda">>
<<if $incel_path == 2 && $incel_stage >= 11>>
<p>You tell her the boys in room 021 know how to follow directions, and that tomorrow she can decide whether she wants to meet them. Her frightened smile is not a no.</p>
<<else>>
<p>You tell her there may be more to show her someday. For now, she dresses with shaking hands and leaves carrying the secret between her thighs.</p>
<</if>>
<<set $linda_stage = 2>>
<<set $linda_next_day = $day + 1>>
<<statchange "energy" -2>>
<<if $incel_path == 2 && $incel_stage >= 11>><div class="req">Linda is considering the room 021 invitation. Come back tomorrow.</div><</if>>
[[Back to the closet|Closet]]
<</if>><<if ndef $linda_stage>><<set $linda_stage = 0>><<set $linda_next_day = 0>><</if>>
<<if $linda_stage != 2 || $incel_path != 2 || $incel_stage < 11 || $day < $linda_next_day || $energy < 3>>
<<if $energy < 3>>
<p>You need 3 energy for Linda's room 021 session.</p>
<<else>>
<p>Room 021 is not ready for Linda tonight.</p>
<</if>>
[[Back to room 021|Incel Club]]
<<else>>
<<speech "You" "Hey guys, a little surprise for you!." >>
<p>Linda reaches room 021 in her neat school clothes, then stops when she sees the boys waiting in a loose circle around the old couch.</p>
<<speech "You" "You can leave. You can change your mind. Nobody touches you until you say so." >>
<<speech "Linda" "I almost turned around three times on the way here. But if one black dick was enough to turn me into anal-obsessed snowbunny, what about four?" "linda">>
<<speech "You" "You do not owe any of us a performance. Make the choice for yourself." >>
<p>Linda looks at each of them, takes a long breath, and gets on her knees.</p>
<<speech "Linda" "It is not cheating when it is only a blowjob, right?" "linda">>
<<video "img/school/linda/linda_1.webm">>
<p>The boys surround her as Linda takes them one by one, trading careful strokes and wet kisses between the cocks around her.</p>
<<speech "Terrence" "Look at her. Little miss perfect came in here to see if the rumors were true, and now she cannot get enough dick in her mouth." "terrence">>
<<video "img/school/linda/blowbang.webm">>
<p>By the time you lift her to the couch, Linda is openly begging and pushes her greedy ass up in the air. You lube her thoroughly, and let the boys have at it. Before she knows it, a second black cock enters her loose anus.</p>
<<speech "Linda" "Oh fuck, my ass is ruined!" "linda">>
<<speech "Devin" "Yeah, baby, two in one hole!" "devin">>
<<video "img/school/linda/linda_dap_1.webm">>
<p>Her body gives way around the double stretch. The boys watch her face, not just the obscene sight between her thighs, and stop whenever you signal. By the end, she is riding the double-stacked cocks herself, stretching her butt beyond any reasonable limits.</p>
<<speech "Aaron" "Look at her go! Her boyfriend would be so proud of her." "aaron">>
<<speech "Terrence" "He can keep taking her on dates. We are the ones turning her into a greedy little anal slut." "terrence">>
<<speech "Linda" "Yes! I'm you anal slut! I'm addicted to your black cocks!" "linda">>
<<video "img/school/linda/linda_dap_2.webm">>
<p>At last you pull her upright between you. The room breaks into motion as the boys line up around her face; Linda opens her mouth, laughs once at the absurdity of it, and then lets the final heavy spurts paint her cheeks, tongue, and red hair.</p>
<<speech "Terrence" "That's it. Looking good, Linda!" "terrence">>
<<pic "img/school/linda/facial.webp" "story">>
<p>She sits in the wrecked classroom blinking through the mess, her once-perfect composure gone and a shameless, satisfied smile replacing it.</p>
<<speech "Linda" "I think I'm done with my boyfriend. Thanks. I'm never going back." "linda">>
<<set $linda_stage = 3>>
<<statchange "energy" -3>>
[[Back to the hallway|Hallway]]
<</if>>/* Linda brings Madi Collins to your closet (docs/madi-build-plan.md, Phase
4, default 6): Madi watches Linda take you and gets her hands on Linda,
but you don't take Madi, so her finale stays her first time with you.
Linda's ask at lunch ("lindaffm" in setup.madi.favors) opens once Madi
knows about Grayson ($madi_reveal) and her Curiosity is at 7, until the
finale, and lands at last bell the next afternoon. Once, 2 energy,
Curiosity +3. On path 1 it's the third stage Linda never got
($linda_stage 3); on path 2 her stage is left to room 021. Mrs.
Albright's closet storage (restriction 4) keeps them out. Built around
the user's clip list in img/school/linda/, one place per clip. Madi's
envy of Lola Fae, the goth girl she saw take Grayson in the ass, runs
through it: the reveal is why the scene waits for it. Gallery card
'linda-madi'. DRAFT prose. */
<<albrightcheck>>
<<if not setup.madi.landed("lindaffm") || $madi_reveal == 0 || $madi_stage >= 7 || $school_time isnot "afternoon" || $energy < 2 || _ablock == 4>>
<p>Your closet is empty except for the mop bucket and the hum of the light.</p>
[[Back to the closet|Closet]]
<<else>>
<p>Linda pulls Madi in after her and locks the door herself. Madi is still in her running shorts and a hoodie from practice. She stands with her back against the door and her camera bag held to her chest, and she looks at the old couch, the paint cans and the shelf with the burner on it, and then at you.</p>
<<speech "Linda" "She thinks I'm making it up. Everything I told her in the locker room. So I said fine, come and see." "linda">>
<<speech "Madi" "I never said you were making it up. I said nobody's that big.">>
<<if $linda_stage >= 3>>
<<speech "Linda" "I don't even have a boyfriend to lie to any more. It's very freeing." "linda">>
<<else>>
<<speech "Linda" "My boyfriend thinks I'm at debate club. He's so proud of me." "linda">>
<</if>>
<<speech "Linda" "Ass only. That's my rule. You'd be amazed how many problems it solves." "linda">>
<p>Madi goes very still at that, and you know exactly what she's seeing: Lola Fae, the goth girl from your detention room, bent over the vaulting horse with Grayson in her ass<<if $madi_reveal == 2>> on a phone screen under the covers at ten o'clock at night<</if>>, laughing into the leather.</p>
<p>Linda doesn't bother with her blazer. You bend her over the shelf and flip her skirt up over her back, and there's nothing under it: she stopped wearing underwear to school somewhere around her second visit to this closet. Her ass is still loose from last time and takes you without a fight.</p>
<<video "img/school/linda/linda_madi_1.webm">>
<p>Madi hasn't moved from the door. Her camera bag has slid down her arm to hang off one wrist, and her other hand has gone down the front of her shorts and is rubbing hard.</p>
<<video "img/school/linda/madi_watch_1.webm">>
<<speech "Linda" "Come closer, Collins. You can't see anything from there." "linda">>
<p>You take Linda over to the old couch and put her on her knees on the cushions, and fuck her from behind with long strokes, all the way out and all the way back in. She's so open by now that every time you pull out of her there's a wet pop, loud in the little room, and Linda giggles into the cushion every single time.</p>
<<video "img/school/linda/pop.mp4">>
<p>Madi has stopped pretending. She's on the arm of the couch with her shorts pushed down to her thighs, rubbing herself hard and fast with her eyes fixed on Linda's ass.</p>
<<speech "Madi" "You're such an anal slut... Just like her...">>
<<video "img/school/linda/fingering.webm">>
<p>Somewhere along the way Linda has lost everything but her school tie. When you finally pull out, she holds still on the couch on purpose so Madi can see what you've left behind: her ass stays wide open, a gape you could look into.</p>
<<video "img/school/linda/linda_madi_2.webm">>
<<speech "Madi" "Oh my God. Does it... does it close?">>
<<speech "Linda" "Eventually." "linda">>
<p>Madi stares at it with her mouth open, shocked and very obviously impressed.</p>
<<speech "Linda" "Come here, feel it." "linda">>
<p>Linda rolls onto her back and pulls her knees up to her chest, holding her legs open, and Madi kneels down beside her. Her fingertips find the rim and trace it all the way round, swollen and soft and still open, as if she's checking it's real.</p>
<<pic "img/school/linda/linda_madi_1.jpg" "story">>
<<speech "Linda" "You could probably get your whole fist in there. I mean it. Try." "linda">>
<p>Madi looks at you as if you might stop her, and you don't. She folds her fingers together into a point and pushes, and Linda breathes out long and slow, and Madi's hand goes into her ass up to the wrist.</p>
<<video "img/school/linda/fisting_1.webm">>
<p>Linda's fingers go to her own pussy while Madi's fist sits deep in her ass, rubbing quick little circles, and Madi turns her wrist very slowly and watches every flicker of it on Linda's face.</p>
<<speech "Madi" "It's so tight, but also so loose at the same time. I can feel it all the way up to your stomach.">>
<<pic "img/school/linda/fisting_2.jpg" "story">>
<p>When Madi eases her hand out, you're back inside Linda before she can close, and it doesn't take long. You come deep in her ass with Madi's face a foot away. Then Linda cups a hand under herself and pushes, shitting your cum out into her palm, and she holds it up for Madi to see.</p>
<<video "img/school/linda/cumming.mp4">>
<<speech "Linda" "Wanna taste?" "linda">>
<p>Madi is shocked at the proposal, but doesn't pull away. She puts one finger in the puddle of anal creampie, swirls it a bit - still warm - and then puts it in her mouth.</p>
<<pic "img/school/linda/madi_taste.jpg" "story">>
<<speech "Madi" "Mmmmmm. Oh my God. It's so good. I can't believe it tastes like that." >>
<<speech "Linda" "I bet you can milk this big black cock for more cream." "linda">>
<p>Madi looks at you and blushes. You don't think she is ready yet, but she is tempted.</p>
<<speech "Madi" "Oh, I want to... but not in a closet. When it's my turn, it's going to be my night.">>
<p>Linda laughs and calls her a romantic. At the door Madi takes one picture of the two of you, Linda still sprawled on the couch in nothing but her tie and you doing up your coveralls.</p>
<<madiup "curiosity" 3>>
<<run setup.madi.done("lindaffm")>>
<<statchange "energy" -2>>
<<if $incel_path != 2>>
<<set $linda_stage = Math.max($linda_stage, 3)>>
<</if>>
[[Back to the closet|Closet]]
<</if>><<if $incel_path == 2>>
<p>You find him in 021 with the back off somebody's Chromebook and three screwdrivers held in his mouth, next to the dead rack in the corner that has no business still working. Aaron and Devin are on the couch losing to each other at something loud, under a board that still says <<if $pollock_route == 1>>GROUP PROJECT<<else>>RACISM in your handwriting<</if>>, because nobody in this room wants to be the one who wipes it.</p>
<<else>>
<p>You find him in 021 with the back off somebody's Chromebook and three screwdrivers held in his mouth, next to the dead rack in the corner that has no business still working. There's a repair queue on the whiteboard in his handwriting now, nine lines long, with Mrs. Albright's laptop at the top and somebody's little sister's tablet at the bottom. Aaron and Devin are on the couch losing to each other at something loud, and Isaiah is doing homework at his old desk with his headphones on.</p>
<</if>>
<<speech "Terrence" "Give me a minute, this hinge is - " "terrence">>
<<speech "You" "Terrence. Bring a laptop that isn't yours.">>
<p>The screwdrivers come out of his mouth. He's known you long enough to hear the difference between the voice that opens doors and the voice that closes them, and he follows you into the corridor with Mrs. Albright's machine under his arm. Behind you Aaron says something about it being unfair, and Devin tells him to shut up.</p>
<<if $pollock_route == 1>>
<p>You put the security key on the keyboard between you, still zip-tied to the white card, and his face changes before it touches the keys. The first time he held it, his fly was still open.</p>
<<pic "img/school/syren/access.jpg" "story">>
<<speech "Terrence" "I said I wasn't going to ask what it's for." "terrence">>
<<speech "You" "You're not asking. You're reading it, on her machine, not yours.">>
<<speech "Terrence" "The login the audit doesn't see..." "terrence">>
<<else>>
<p>You put the key on the keyboard between you. It's black and stubby and looks like a pendrive, still zip-tied to a white card, and you keep your thumb on the card so he only gets the one thing.</p>
<<pic "img/school/syren/access.jpg" "story">>
<<speech "You" "Tell me what that is. On her machine, not yours.">>
<<speech "Terrence" "Looks like a drive, but it's a two-factor security key. There's hardly anything on it, just a username and a certificate." "terrence">>
<p>Then he reads it properly and stops talking, which you've never seen him do.</p>
<</if>>
<<speech "Terrence" "That's not a person. That's a service account for the student information system, the old maintenance one from before they changed the audit schema. The key is its second factor, so it still works." "terrence">>
<<speech "You" "Can you search on it?">>
<<if $incel_path == 2>>
<<speech "Terrence" "I can do anything on it. Who are we looking for?" "terrence">>
<<else>>
<<speech "Terrence" "I can do anything on it, which is kind of the problem. What am I searching?" "terrence">>
<</if>>
<p>Female, final year, eighteen, father employed by state corrections. You've carried that around since <<if $school_intro_location == "bar">>the night in the bar<<else>>the day Jamal laid it out for you<</if>>, and everything since has been mopping: the coveralls, the master key, a principal on her knees, all of it so a man with a bucket could stand in a corridor and ask for one row, and when you finally say it out loud it sounds smaller than it has felt.</p>
<<speech "You" "Protected records. Kids whose home address is hidden.">>
<<speech "Terrence" "Confidentiality flag. It's a checkbox - cops' kids, judges, corrections, a couple of restraining orders. Fourteen. Grade twelve, six. Girls, three..." "terrence">>
<p>The screen chews on it for one long breath and returns exactly one row.</p>
<p style="font-family: monospace;">COLLINS, MADISON R. - GR 12 - AGE 18<br>PROTECTION REASON<br>FATHER: COLLINS, R. - DEPT. OF CORRECTIONS - FACILITY 9</p>
<p>Facility 9. It's the one holding Jeremy.</p>
<p>She has been in this building the whole time. You've mopped her corridor a hundred times and never once looked at her face.</p>
<<pic "img/school/madi/portrait.jpg" "story">>
<<speech "Terrence" "Madi?" "terrence">>
<<if $incel_path == 2>>
<p>He says it the way you say the name of somebody you sit next to, and then he looks up at you, and you can see him decide what the search was for.</p>
<<speech "Terrence" "Madi Collins? Sir, she's not even on our ranking. Cross country, yearbook, takes the activity bus home. Nobody looks twice at her." "terrence">>
<<speech "Terrence" "Now that I think about it, she would look nice on the black background." "terrence">>
<<speech "You" "Stop.">>
<<speech "You" "Locker audit. Facilities want the confidential ones re-keyed before the inspection. Hers came up.">>
<p>It's a bad lie and he's a smart kid, and he doesn't even bother weighing it. He just grins like you've let him in on something, and you'd rather he'd called you a liar.</p>
<<speech "Terrence" "Locker audit. Sure." "terrence">>
<<speech "You" "She's not for you, and she's not for the list. You never saw that row.">>
<p>The grin goes. He's sat through every lesson you've given in that room, and he has never once heard you use this voice about a girl.</p>
<<speech "Terrence" "Understood. It's gone." "terrence">>
<<speech "Terrence" "I'm clearing the recent files anyway. Mrs. Albright doesn't need to know her laptop looked at that." "terrence">>
<p>You walk back to your cart with the name in your head and a cold spot under your ribs where the key was. You taught that boy to look at a woman and work out what she's for, and he learned it so well that he'd sized up a girl off a database row before you finished reading it. Adriana would have charged you a hundred dollars and forgotten the name by morning, and Terrence has never forgotten anything in his life.</p>
<<else>>
<p>He says it the way you say the name of somebody you sit next to.</p>
<<speech "Terrence" "Madi Collins. She did the yearbook layout for the robotics page and made us reshoot the group photo because I blinked. Runs cross country, rides the activity bus. She's nice. She's - she's nobody." "terrence">>
<p>He hears himself say it. Rankings were most of what he used to read aloud in 019 in that scripture voice, and you've been taking them apart with the four of them in 021 one session at a time.</p>
<<speech "Terrence" "Why are you looking for Madi?" "terrence">>
<<speech "You" "Locker audit. Facilities want the confidential ones re-keyed before the inspection. Hers came up.">>
<p>It's a bad lie and he's a smart kid. He hears it and weighs it, and you can see him decide to believe you anyway, because you're the man who opened 021 back up for them and sat in it with them, and there aren't many grown men he lets himself trust.</p>
<<speech "Terrence" "Her address is hidden because somebody decided it had to be. You know that, right?" "terrence">>
<<speech "You" "I know.">>
<<speech "Terrence" "Okay." "terrence">>
<<speech "Terrence" "I'm clearing the recent files. Mrs. Albright doesn't need to know her laptop looked at that, and Madi doesn't need to know anybody did." "terrence">>
<p>You walk back to your cart with the name in your head and a cold spot under your ribs where the key was. You stood at the front of that room telling him girls are people, and he believed you enough to pull one up for you off a borrowed laptop. Adriana would have charged you a hundred dollars and forgotten the name by morning, but Terrence is going to pass Madi in the corridor tomorrow and wonder.</p>
<</if>>
<<set $database_access = 2>>
<<statchange "energy" -1>>
<div class="req">You have the name. Before you do anything, you may want to report to Jamal.</div>
[[Back to work|Hallway]]<<pic "img/general/laptop.jpg" "location">>
<p>The card and the security key sit on the folding table under the lamp.</p>
<p>You type your status report:</p>
<<speech "You" "Pollock's finished. The school's under control - her, her building, her keys. She handed over a facilities master card and a security key for a district login nobody audits. And I've got the name. Collins, Madison R., grade 12, eighteen. Father R. Collins, Department of Corrections, Facility 9.">>
<p>You lean back in your chair. You didn't really expect a response right away, but to your surprise Jamal seems to be online.</p>
<<speech "Jamal" "Good job. One step closer to your brother. Who ran the query?">>
<<speech "You" "A kid at the school. Senior. He's inside their systems anyway.">>
<<speech "Jamal" "He see the name?">>
<<speech "You" "...Yes.">>
<p>The cursor blinks long enough that you check the connection.</p>
<<speech "Jamal" "He get told nothing else. Not her daddy, not the facility, not us. Ever.">>
<<speech "You" "Copy.">>
<<speech "Jamal" "Good. Now the girl. Same as Bond: devices, profile, feed her the road and let her walk down it herself. She the route, her daddy the target. One day he get shown a video of his little girl and offered a choice between helping us and the whole facility watching it in the break room.">>
<p>He types it the way he'd type a bus timetable, another target, another wall holding another man up, and you sit there with a picture in your head that he doesn't have: an innocent girl who has done nothing to anybody will get her life upturned just because she happens to be standing between you and your brother.</p>
<<pic "img/school/madi/report.jpg" "story">>
<p>Things like this will keep you up at night.</p>
<<speech "Jamal" "Don't put that key in nothing of ours. Not that laptop, not no phone. Take both pieces to Adriana, in your hand, prepare same play as Bond. She already got half the door open.">>
<<speech "You" "Copy.">>
<<set $database_access = 3>>
<div class="req">Next stop - Adriana's lair.</div>
[[Close the laptop|The hideout]]<<pic "img/general/hackerlair.jpg" "location">>
<p>Adriana spins her chair through a hundred and eighty degrees of monitor glow, puts her feet on a crate, and looks at you like a girl who has been waiting all morning to be entertained.</p>
<<speech "Adriana" "You've got the face. The one you had when Jamal's letter said Mrs. Bond. Put it on the desk, daddy.">>
<p>You put it on the desk: the white card, the security key, the zip tie through the punch hole.</p>
<<pic "img/school/syren/access.jpg" "story">>
<p>She picks up the card first and goes quiet, which from her is the loudest review available. She turns it over twice under the lamp and taps a nail on the blank face where a photo and a name should be.</p>
<<speech "Adriana" "No photo, no name, no expiry, no holder. This is a facilities directorate master.">>
<p>The key she holds between two fingers like something out of a gutter, plugs into a reader on the bench, and types. Then she leans in.</p>
<<speech "Adriana" "Hardware second factor for a service account. Student information system, pre-audit schema, logs to a table nobody's read since the vendor changed hands. There's almost nothing on the key itself, one username and a certificate. The woman knew exactly what she was giving you.">>
<<speech "Adriana" "And somebody ran it from inside the building recently. One query, protected flags. That wasn't you, sweetie. You don't know what a flag is.">>
<<speech "You" "A kid at the school. He used the key, I got the name, it's done.">>
<p>She files that somewhere behind her eyes and says nothing about it yet.</p>
<hr>
<<speech "You" "New target. Collins, Madison. Senior, eighteen, cross country, yearbook, activity bus. Her father is a corrections officer at Facility 9.">>
<p>You don't have to say whose facility it is. She knows which number your brother sits behind.</p>
<<speech "You" "Same as Mrs. Bond. Devices, profile, feed her the road. You already own the school she lives in eight hours a day - grades, cameras, whatever she logs into in that building - and I just gave you full access to it.">>
<<speech "Adriana" "Savannah Bond was married, rich and bored. You're asking me for a young impressionable girl in a high school. That's the easiest profile that exists, baby. Someone looks at her like she's the most important thing in the room, and the rest is scheduling.">>
<<speech "You" "So name the price. Money, service, or entertainment.">>
<<speech "Adriana" "No.">>
<p>You wait for the rest of the sentence.</p>
<<speech "Adriana" "No, because you can't buy what you're asking for, not from here. What you brought me is a login to the systems that face the internet. Great for one query. The camera recorder takes the same login, but only from a machine plugged into the school's own network, and I'm not in the school. Useless for owning a girl.">>
<<speech "Adriana" "Everything that matters lives inside the school. Door controllers, the camera recorder, the wifi every phone on that campus joins at two minutes past eight and doesn't leave till the last bus. That stack sits on a rack in a basement room and it does not face the internet.">>
<p>She holds up something off the bench: a black plastic box the size of a paperback, two stubby antennas, a fan grille, no label.</p>
<<speech "Adriana" "This goes on that rack. One cable, one power lead, its own cellular modem. Then I own the building - eleven hundred phones, and one of them is Madison Collins. And you're going to tell me you'll walk it in there on your master card, and then what? Pick a port on a managed switch? Spoof a MAC so it reads like something that belongs? You don't know how.">>
<<speech "You" "No.">>
<<speech "Adriana" "No. But the one who ran your query does. How old?">>
<<speech "You" "Eighteen. Senior.">>
<<if $incel_path == 2>>
<<speech "Adriana" "Black? One of your basement boys, I bet. The gangbang team I retooled my housewife material for?">>
<<speech "You" "...yes.">>
<<if $incel_stage >= 10>>
<<speech "Adriana" "So he's seen my tape. Your whole class has, blown up ten feet wide on a basement wall.">>
<p>She bites her lip, and you can't tell whether it's the service account or the tape doing it.</p>
<<speech "Adriana" "A boy who can read a service account and has already been through my portfolio. Hook us up, daddy.">>
<<else>>
<<speech "Adriana" "I made slides for that boy's dick, and nobody told me there was a brain attached. You've been holding out on me, daddy. Hook us up.">>
<</if>>
<<else>>
<<speech "Adriana" "Black? One of your incels, I bet. The support group you've been feeding my memes to?">>
<<speech "You" "...yes.">>
<<speech "Adriana" "Is it taking? I told you I couldn't promise anything.">>
<<speech "You" "He's trying. Most days he talks to girls like they're people.">>
<<speech "Adriana" "Aww. So you've been teaching him a woman doesn't owe him anything, and now I get to be the one who shows him what it's like when she wants to give it to him anyway. I can teach that boy a lot, daddy. Hook us up.">>
<</if>>
<p>Jamal would hate a student on the line for this, and Jamal isn't in the room.</p>
<div id="choice-container">
<<linkreplace "Agree to hook them up">>
<<set $terrence_deal = 1>>
<<set $server_stage = 1>>
<<replace "#output">>
<<speech "You" "Get your box on the rack. I'll bring you the boy who put it there.">>
<<speech "Adriana" "After the install he comes here, and I'll teach him a thing or two.">>
<p>She drops the black box into your palm.</p>
<<statchange "energy" -1>>
<div class="req">The box is in your pocket. At school, in the afternoon: put the server room to Terrence.</div>
[[Catch the bus back|The Hood]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Hook them up"</em></div><</replace>>
<</linkreplace>><br>
<<if $money >= 100>>
<<linkreplace "Pay her like Mrs. Bond ($100)">>
<<set $terrence_deal = 2>>
<<set $server_stage = 1>>
<<replace "#output">>
<<if $incel_path == 2>>
<<speech "You" "No. You'd have that boy so wound up about you he'd plug your box into the wrong port. A hundred, same as Bond, and you do the profile work.">>
<<else>>
<<speech "You" "No. It took long enough to drag that kid out of the hole he dug on the internet, and I'm not handing him over to you. A hundred, same as Bond, and you do the profile work.">>
<</if>>
<p>She looks at the money the way she looked at the key.</p>
<<speech "Adriana" "Fine. Cash buys the profile. It does not buy me a door - the box still goes on that rack, somebody who isn't you still has to put it there, and now he's your problem to pay. You just made this boring, daddy.">>
<p>She drops the black box into your palm anyway.</p>
<<statchange "money" -100>>
<<statchange "energy" -1>>
<div class="req">The box is in your pocket. At school, in the afternoon: put the server room to Terrence. Adriana isn't paying him now, so whatever he wants for the job, he'll ask you.</div>
[[Catch the bus back|The Hood]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Pay her like Mrs. Bond ($100)"</em></div><</replace>>
<</linkreplace>><br>
<<else>>
<div class="req">You could pay her off like Mrs. Bond, if you had $100. (You have <<print "$" + $money>>.)</div>
<</if>>
<<if $hacker_level == 8>>
<<linkreplace "Offer her the princess night instead">>
<<set $terrence_deal = 3>>
<<set $server_stage = 1>>
<<replace "#output">>
<<speech "You" "You said no to entertainment. That list you gave me isn't entertainment.">>
<p>Adriana opens her mouth to say no again, and nothing comes out. You watch her work it through: the dress, the crown and the one hole she's been saving, set down on her desk next to a stolen service account as one more thing to trade.</p>
<<speech "Adriana" "Wow. You're paying for a whole school with my ass. And you're doing it so you don't have to share a boy with me.">>
<<speech "You" "Yes.">>
<<if $hacker_gh_stage == 3>>
<<speech "Adriana" "You sold my mouth for a fiver at that gloryhole. Now my ass buys a building. Look at me, getting promoted.">>
<</if>>
<<speech "Adriana" "That's the most insulting offer anybody has ever made me, and I'm wet enough to prove I'm taking it. Don't look so smug.">>
<p>She drops the black box into your palm and closes your fingers over it.</p>
<<speech "Adriana" "Same rules as cash, though. You still can't put that on a rack, so somebody who isn't you does it, and he's your problem to handle. He is not my prize.">>
<<statchange "energy" -1>>
<div class="req">The box is in your pocket. At school, in the afternoon: put the server room to Terrence. You owe Adriana her princess night<<if not setup.princess.ready()>> - finish her list first<</if>>.</div>
<<if setup.princess.ready() && $hacked_had_sex_today == 0 && $energy >= 5>>
[[The dress is already here. Tonight, then|Adriana Princess Night]]<br>
<</if>>
[[Catch the bus back|The Hood]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Offer her the princess night instead"</em></div><</replace>>
<</linkreplace>><br>
<</if>>
</div>
<div id="output"></div><!-- IMAGE: east corridor - a girl at a locker, ordinary in a school of money -->
<p>You find a reason to work the east corridor at last bell - there's always a reason, that's the whole art of the coveralls - and you watch the lockers with a spotter's patience until the girl from the database appears.</p>
<<pic "img/school/madi/locker.jpg" "story">>
<p>Madi Collins is ordinary, and in this school ordinary is its own kind of conspicuous. No handbag arms race, no orbit of followers - a canvas backpack gone soft at the straps, sneakers past their retirement date. The only loud thing about her is her hair, a long ginger ponytail she keeps tied back as if she'd rather nobody noticed it.</p>
<p>Jamal's voice comes back up while you're pushing the cart past the trophy case, saying the thing he said about wives and daughters the night this whole school began. A wife wounds a man. His little girl finish him.</p>
<<set $madi_stage = Math.max($madi_stage, 1)>>
<<if $server_stage >= 2>>
<div class="req">Terrence has a night and a rack. Stay late when he's ready for the install. Once Adriana is inside that building's systems, Madi Collins stops being a name on a screen.</div>
<<else>>
<div class="req">Nothing starts here until Adriana is inside the school's network - which means the server room, which means Terrence, once Adriana has named her price.</div>
<</if>>
[[Back to work|Hallway]]<<if $incel_path == 2>>
<p>Terrence is in 021 with his feet up on a desk, showing Aaron and Devin something on his phone with the sound off. All three of them put it away the second you walk in, which tells you exactly what kind of video it was.</p>
<<speech "Terrence" "If this is about the locker audit, I don't know anything about a locker audit." "terrence">>
<<speech "You" "It's about a different machine.">>
<p>He's up and in the corridor before you have to say it twice, and behind him Aaron wants to know if it's a lesson and whether he's invited.</p>
<<else>>
<p>Terrence is on the floor of the alcove outside the second-floor lab, where the good outlets are, walking a girl from the robotics club through two-factor on her laptop like it matters to him that she gets it. He sees you and finishes his sentence anyway, then hands the laptop back before he gets up.</p>
<<speech "Terrence" "Is this about the locker audit?" "terrence">>
<<speech "You" "It's about a different machine.">>
<p>He doesn't smile. He's been carrying Madi's row around since the afternoon with Mrs. Albright's laptop, and he wants you to know he hasn't put it down.</p>
<</if>>
<p>You walk him down past the boiler corridor, where the air goes warm and the paint stops pretending, to a grey door with a card reader beside it and a camera in the ceiling corner watching the handle.</p>
<<speech "You" "What's behind this one?">>
<<pic "img/school/server_room.jpg" "story">>
<p>He looks at the door, then at you, and decides to answer honestly, which is the first good sign.</p>
<<speech "Terrence" "Well... everything. Comms, security, the whole school IT infrastructure." "terrence">>
<<speech "You" "Could you get into that rack, put something small on it, and have nobody find out?">>
<<if $incel_path == 2>>
<p>He takes the question apart and puts it back together in about a second. He doesn't waste your time pretending not to understand it, and he's wearing the look of a kid who just got picked first for something.</p>
<<else>>
<p>You watch him take the question apart and understand that it isn't a hypothetical, and then think about Madi, because the last thing you asked him to do with this school's systems had her name at the end of it.</p>
<<speech "Terrence" "Is anybody going to get hurt?" "terrence">>
<<speech "You" "Nothing you put on that rack is going to hurt anybody.">>
<p>He's smart enough to hear how carefully you built that sentence, and he lets it stand anyway, because he wants to.</p>
<</if>>
<<speech "Terrence" "Define something small." "terrence">>
<p>You pat the chest pocket of your coveralls, where something the size of a paperback has been riding against your ribs since the bus.</p>
<<speech "Terrence" "Okay." "terrence">>
<<speech "Terrence" "Okay, so, if I hang a new device off a live port it shows up as a new MAC on a stack that hasn't seen a new MAC since 2019, and it starts making outbound sessions, and it gets noticed." "terrence">>
<p>He's not talking to you any more. He's walking a circle in the corridor with two fingers pressed to his mouth.</p>
<<speech "Terrence" "Unless. There's four dead ports on the second stack that still have config on them from a print server they binned, and nobody ever cleaned the config. I clone that MAC. To the switch, the new thing IS the printer." "terrence">>
<p>You take the black box out of your pocket. Two stubby antennas, a fan grille, no label anywhere on it.</p>
<<speech "Terrence" "...it already has its own modem." "terrence">>
<<speech "You" "It already has its own modem.">>
<p>He turns it over twice in both hands the way Adriana turned the card over, and for a second the two of them are the same person separated by ten years.</p>
<<speech "Terrence" "Who built this?" "terrence">>
<p>You could lie. He'd know, and the job needs him more than it needs your caution.</p>
<<speech "You" "Somebody better than you. Her name is Adriana. She's a professional.">>
<<if $incel_path == 2 && $incel_stage >= 10>>
<<speech "You" "You've seen her before. My teaching assistant.">>
<p>It takes him a second, and then he's back in 021, naked in front of the projector, watching a brunette on her knees lap her own squirt off the floor while he and the other two empty themselves onto the tiles.</p>
<<speech "Terrence" "She built THIS?" "terrence">>
<p>He holds the box differently after that, like it might still be warm from her.</p>
<<elseif $incel_path == 2>>
<<speech "Terrence" "Is she white?" "terrence">>
<<speech "You" "Focus.">>
<<speech "Terrence" "I'm focused, sir. I'm just asking." "terrence">>
<<else>>
<<speech "Terrence" "Where did she learn to build like this?" "terrence">>
<<speech "You" "Same place you did. Nobody taught her either.">>
<p>He nods at the box, and he doesn't ask what she looks like, which is the first thing he'd have wanted to know back when he was reading Ohio out loud in 019.</p>
<</if>>
<hr>
<<if $terrence_deal == 1>>
<<speech "You" "She wants to meet you. Once the box is on the rack, she will... evaluate your job in person.">>
<<if $incel_path == 2>>
<p>There's no confusion on his face at all, just the look he gets in 021 when a slide comes up that he's already read ahead on.</p>
<<speech "Terrence" "I'll give this snowbunny hacker what she wants." "terrence">>
<<else>>
<<speech "Terrence" "Why would I need to be there in person?" "terrence">>
<<speech "You" "You'll work it out.">>
<<speech "Terrence" "I'll just go, and listen to what she says, and not make it weird." "terrence">>
<p>He's going to walk into a hacker's lair and make it extremely weird, and you decide that's Adriana's problem.</p>
<</if>>
<<else>>
<<if $incel_path == 2>>
<<speech "Terrence" "I want to meet her." "terrence">>
<<speech "You" "No. You don't.">>
<<speech "Terrence" "Okay. Then keep your money. I want the install to be perfect, and I want her to know it was me. She'll ask for me herself after that." "terrence">>
<<else>>
<<speech "Terrence" "Can I at least meet her?" "terrence">>
<<speech "You" "No.">>
<<speech "Terrence" "Okay. Then I don't want paying. I want the install to be perfect, and I want her to know it was. That's the fee." "terrence">>
<p>It would sit easier with you if he'd asked for money.</p>
<</if>>
<</if>>
<<speech "Terrence" "I got it. I need a day." "terrence">>
<<set $server_stage = 2>>
<<set $madi_next_day = $day + 1>>
<<statchange "energy" -1>>
<div class="req">Tomorrow evening, once the building has emptied, the box goes on the rack. Stay late and meet Terrence in the basement.</div>
[[Back to work|Hallway]]/* Madi stage 2 (docs/madi-build-plan.md, Phase 1): the evening after Server
Room Job, Terrence puts Adriana's box on the rack. The facilities card is on
Adriana's bench (Adriana New Target), so the janitor's own cut key gets them
down the boiler corridor, and the server-room reader is Terrence's problem.
Mrs. Albright's lock audit shuts it like the rest of the basement. Stills
only, so no Gallery card. DRAFT prose. */
<<albrightcheck>>
<<if $server_stage != 2 || $day < $madi_next_day || $school_time isnot "evening" || $energy < 1 || _ablock == 2>>
<p>Nobody is waiting for you at the boiler corridor tonight.</p>
[[Back to the hallway|Hallway]]
<<else>>
<p>By seven the building is empty except for the night guard, and his first round always starts in the gym wing. Terrence is waiting at the top of the boiler corridor with a backpack, looking like any other kid who missed the late bus.</p>
<<pic "img/school/server_room.jpg" "story">>
<p>You go inside the server room.</p>
<p>It takes him eleven minutes. He finds the dead port that still has the old print server's config on it, clones its address onto Adriana's box and cables it in, and the switch greets it like the printer it has been missing since 2019. Two green lights come on, then the modem's blue one.</p>
<<if $incel_path == 2>>
<<if $terrence_deal == 1>>
<<speech "Terrence" "Printer's back online, sir. So when does she want to see me?" "terrence">>
<<else>>
<<speech "Terrence" "Tell her it was me. She'll ask for me herself." "terrence">>
<</if>>
<<else>>
<<if $terrence_deal == 1>>
<<speech "Terrence" "Is she really going to want to see me? For a debrief?" "terrence">>
<<else>>
<<speech "Terrence" "Tell her it was perfect. That's all I wanted." "terrence">>
<</if>>
<</if>>
<!-- IMAGE: the black box on the rack, antennas up, its lights on in the dark -->
<p>On the way out the night guard's flashlight finds the two of you at the top of the corridor. He looks at the kid, looks at you, and carries on with his round.</p>
<<set $server_stage = 3>>
<<set $madi_stage = Math.max($madi_stage, 2)>>
<<set $madi_next_day = $day + 1>>
<<statchange "energy" -1>>
<div class="req">The box is on the rack. Tomorrow, Adriana will show you what it sees in her lair.</div>
[[Back to the hallway|Hallway]]
<</if>>/* Madi stage 2 -> 3 (docs/madi-build-plan.md, Phase 1): the day after the
install, Adriana shows what the box sees and hands over the Madi file. It
seeds the file's first notes, and if the open mic has already happened it
applies it as Curiosity here (Pollock Open Mic applies it itself once the
file exists, so it counts exactly once). Stills only. DRAFT prose. */
<<if $madi_stage != 2 || $day < $madi_next_day>>
<p>Adriana is busy with somebody else's problem today.</p>
[[Back to the lair|Hacker]]
<<else>>
<<pic "img/general/hackerlair.jpg" "location">>
<p>Adriana's middle monitor is a grid of the school's camera feeds, and the one beside it shows a kitchen you've never been in, seen from a corner of the ceiling.</p>
<!-- IMAGE: Adriana's monitor wall - the school's camera grid, a phone's front camera, the Collins kitchen from a ceiling corner -->
<<speech "Adriana" "Your boy does clean work, daddy. As far as that switch knows, my box is a printer.">>
<p>She talks you through it with her feet up on the crate. Eleven hundred phones join the school wifi at two minutes past eight, and one of them belongs to Madison Collins. Her phone backs up to the family iPad every night, and the iPad sits on the same home network as her father's security system, the one he put in himself to keep an eye on his daughter.</p>
<<speech "Adriana" "He built her a cell with cameras in it. I just logged in.">>
<p>She sends you what she has so far. There's a boyfriend, Grayson Holt, who picks Madi's clothes for photos. There's a list of house rules taped to the fridge in block capitals, and a stepmother, Lauren Phillips, who kept her own name and shares the iPad. And her father keeps a tracker on her phone, so Adriana can see the dot.</p>
<<speech "Adriana" "It's all in her file, on your laptop and on that burner in your closet. One push on her feed a day, no more, or she'll start to smell it. It's the same game as with Savannah Bond.">>
<<if $open_mic > 0>>
<<speech "Adriana" "Oh, and your principal's little show on the intercom? Madi was in the east corridor for it.">>
<<madiup "curiosity" $open_mic>>
<</if>>
<<run setup.madi.learn("grayson", "rules", "lauren", "tracker")>>
<<set $madi_stage = 3>>
<<set $madi_file_day = $day>>
<div class="req">The Madi file is open on the hideout laptop and on the burner phone in your school closet: one push on her feed and one look through the house cameras a day.</div>
[[Back to the lair|Hacker]]
<</if>>/* The debrief Adriana was promised on $terrence_deal 1 (Adriana New Target):
once the box is on the rack, Terrence comes to the lair after school in
person. One-off, from $madi_stage 2, built around the user's media in
img/adriana/terrence_*. Both stills open it (her acid-green mesh outfit),
then it splits on the club path:
- Deprogramming ($incel_path 1): he compliments the outfit instead of
reaching for her, she blushes and poses, and a few hours later they're
going through her wardrobe and talking tech (terrence_solo.webm). No sex.
3 energy and one of her two daily scenes.
- Embrace: she goes down on her knees to grade him, and you choose. Join
them (3 energy, one daily scene, $terrence_debrief 2) and it's the DP in
Terrence Debrief DP and DP 2 (terrence_dp_1..10). Leave them to it (free)
and Terrence jokes that you sold him, and you take the bus home.
Gallery: 'adriana-terrence-fitting' (route 1) and 'adriana-terrence-dp'
(route 2) on the incel_path alt group. DRAFT prose. */
<<if $terrence_deal != 1 || $madi_stage < 2 || $terrence_debrief != 0 || $hacked_had_sex_today >= 2 || $energy < 3>>
<p>Nobody is here for a debrief.</p>
[[Back to the lair|Hacker]]
<<else>>
<<set $terrence_debrief = 1>>
<<pic "img/general/hackerlair.jpg" "location">>
<p>Terrence comes across the wall straight after last bell, with his school backpack still on and the switch config printed out and folded in his pocket, in case anybody asks him for proof. Adriana keeps him waiting by the monitors exactly long enough to make the point, and then she comes out of the back.</p>
<<pic "img/adriana/terrence_intro.jpg" "story">>
<p>She has dressed for him: an acid-green mesh bodysuit with a hood, zipped open down to her sternum and cut so high on the hips that her legs go on forever, and platform heels in the same poison green. The mesh hides about as much as a window screen, and under the glow of her monitors she practically lights up.</p>
<<speech "Adriana" "So. You're the boy who taught my box to be a printer.">>
<<if $incel_path == 1>>
<p>In room 021 you taught those boys to look at the woman before they look at the body, and it shows. Terrence's eyes make one honest trip down the mesh and back up, and after that they stay on her face.</p>
<<speech "Terrence" "That green is wild. It's the exact color of a terminal cursor. You look like a root prompt, ma'am. In a good way.">>
<p>You've watched Adriana take a cock down to the root without blinking, and you have never once seen her blush. She blushes now, red from the collarbones up, and for a second she has no comeback at all.</p>
<<speech "Adriana" "Ma'am. Oh my god. I'm not that old, though.">>
<p>Then she remembers who she is, turns her back on him and poses for him: arms up behind her head, a look over her shoulder and the mesh riding high on a bare ass. Any other day it would be a dare. Today it comes out cute, like a girl showing off a new outfit to the one person whose opinion she actually wants.</p>
<<pic "img/adriana/terrence_deprogram.jpg" "story">>
<<speech "Terrence" "Ten out of ten. Would compile again.">>
<p>Nobody gets on their knees. Terrence asks how the box's uplink holds up, Adriana drags a second chair over to her monitors, and inside five minutes they're arguing about firmware as if you weren't in the room. You leave them to it and go and walk the hood for a while.</p>
<p>When you look in again a few hours later the monitors are dark, and her wardrobe is standing open in the middle of the lair.</p>
<<video "img/adriana/terrence_solo.webm">>
<p>She's trying things on for him one at a time, and he rates every one from the couch like a judge on a talent show, yes to the black latex and no to anything with a slogan on it. They spend ten minutes arguing over whether fishnet gloves count as an accessory or a peripheral. Between outfits they talk mechanical keyboards and the school's ancient servers, and she tells him about a zero-day she once sold for more than the army ever paid you. She laughs at his jokes with her real laugh, the one she has never used on you.</p>
<p>At the door she kisses him on the cheek, and he goes home across the wall with her number in his phone and the dumbest grin you've seen on a boy all year. Is romance really dead?.</p>
<<set $hacked_had_sex_today += 1>>
<<statchange "energy" -3>>
[[Back to the lair|Hacker]]
<<else>>
<p>In room 021 you taught those boys exactly what a woman like this is for, and Terrence looks at her the way you trained him to. He takes the whole outfit in, slowly, and his hand is on his belt before he notices it moving.</p>
<p>Adriana pulls his install up on her middle monitor and reads him his own work line by line: the cloned address, no stray ports, the logs left alone. She calls it the cleanest amateur job she has ever seen. Then she walks over to him on those heels and goes down on her knees right there between the crates.</p>
<<speech "Adriana" "Now the oral exam. Daddy, are you grading with me, or just watching?">>
<div id="choice-container">
<<linkreplace "Join them (3 energy)">>
<<set $terrence_debrief = 2>>
<<set $hacked_had_sex_today += 1>>
<<replace "#output">>
<<statchange "energy" -3>>
<p>You step in beside him and pull down your pants. It's a threesome then.</p>
[[Two cocks for the princess|Terrence Debrief DP]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Join them"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Leave them to it">>
<<replace "#output">>
<p>You tell her the debrief is between the two of them and pick up your jacket. Terrence turns his head to look at you, which takes some doing with Adriana's hand already inside his jeans.</p>
<<speech "Terrence" "Wait. Sir. Did you just sell me to her? Like, as a sex slave?">>
<p>He's grinning when he says it, but he keeps looking at you until you answer.</p>
<<speech "Terrence" "I've been up since five, sir. I'm dead tired. But one day I'm going to wear her out, mark my wordss.">>
<<speech "Adriana" "Cute. Nobody wears me out, baby. Daddy, shut the door on your way out.">>
<p>You shut it like you close a trap, and before you've let go of the handle you hear Terrence on the other side say "oh no" in a very small voice.</p>
[[Catch the bus back|The Hood]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Leave them to it"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>
<</if>>
<</if>>/* Terrence's debrief on the embrace path, once you've joined them (Terrence
Debrief): clips terrence_dp_1..5, one place per clip. The next link goes
on to the DP in Terrence Debrief DP 2. DRAFT prose. */
<<if $terrence_deal != 1 || $incel_path != 2 || $madi_stage < 2>>
<p>The lair is quiet.</p>
[[Back to the lair|Hacker]]
<<else>>
<p>Adriana stays on her knees between the two of you with her hands on her thighs, looking from one cock to the other like a kid who has just been told she can have both. Then she grabs them, one in each fist, and gets to work: she sucks one and pumps the other, and swaps before either of you can get comfortable.</p>
<<video "img/adriana/terrence_dp_1.mp4">>
<<speech "Adriana" "Two big black cocks, and they're both for me? Best debrief ever.">>
<p>You know exactly how deep Adriana can take a black cock, and Terrence doesn't, so you show him. You get a fistful of hair at the back of her head and push her down onto you until her nose is buried in your stomach and her throat bulges around you, and you hold her there while she gags and drools and doesn't once try to pull away.</p>
<<video "img/adriana/terrence_dp_2.mp4">>
<p>Terrence watches her throat work around you with his own cock forgotten in his hand. It's all over his face: he's only now working out what kind of slut he signed up to be debriefed by, and some part of him is starting to have second thoughts.</p>
<<speech "Terrence" "Sir... is she breathing?">>
<<speech "You" "She'll let you know.">>
<p>Still by the hair, you turn her head and give him the same treatment. You set the pace and the depth, and he stands there frozen while his cock disappears into Adriana's throat inch by inch, all the way down, until her lips are pressed flat against him.</p>
<<video "img/adriana/terrence_dp_3.mp4">>
<<speech "Terrence" "Where did my dick go? Sir, where did it GO?">>
<p>Time for some action. You strip out of the clothes and drop onto her couch, sit back and let her crawl after you, and she carries on showing off that throat on you while Terrence gets her from behind. He has two holes to pick from and he's a young horny man, so of course he goes for her ass.</p>
<<video "img/adriana/terrence_dp_4.mp4">>
<<speech "Adriana" "Ohhh fuck! That's a big fucking dick, I like it!">>
<p>She says it straight up at you, and then she's back down on your cock while he rams her ass, moaning around you every time he bottoms out.</p>
<p>Then it's your turn with her butt. You lean back on the couch and let her do all the work. She climbs on facing away from you, sinks down onto your cock in reverse cowgirl and goes crazy on it, fingering her pussy as she bounces, while Terrence stands over the two of you jerking off. Halfway through she bounces too high, you slip out of her ass and straight into her pussy, and she doesn't even slow down.</p>
<<video "img/adriana/terrence_dp_5.mp4">>
<<speech "Adriana" "Terrence! Get over here and stuff my mouth, I need something to suck!">>
<p>He does as he's told. You pull out and push back into her shithole, and she screams around his cock.</p>
[[Give the brat what she's been dreaming of|Terrence Debrief DP 2]]
<</if>>/* The DP and the finish (terrence_dp_6..10). Ends back at the lair hub; the
cost and the daily scene were charged when you joined. DRAFT prose. */
<<if $terrence_deal != 1 || $incel_path != 2 || $madi_stage < 2>>
<p>The lair is quiet.</p>
[[Back to the lair|Hacker]]
<<else>>
<p>Finally you give this brat what she's been dreaming of since the day she met you: a black double penetration. Terrence is spent enough to ask whether he can lie down for a bit, so he gets the couch and her ass. She lowers herself onto him and leans forward for you, and you slide into her pussy.</p>
<<speech "Adriana" "Please, stuff me full! Stuff me, stuff me, stuff me!">>
<<video "img/adriana/terrence_dp_6.mp4">>
<<speech "Adriana" "Yeah, I'm a fucking double-stuff slut! DP me, daddy!">>
<p>She doesn't stop talking, and there's no third cock in the room to shut her up.</p>
<p>So you make do. You pull out of her pussy, step around and stuff her mouth with the cock that was just inside her, which only makes things worse. Under her, Terrence is soaking wet with sweat and can't keep up with her tempo. He tries to pull out of her burning-hot fuckoles only to push back again, unable to resist his urges.</p>
<<video "img/adriana/terrence_dp_7.mp4">>
<<speech "Adriana" "Fuck, I LOVE how my fucking slut holes taste! It's DELICIOUS!">>
<<speech "Terrence" "I can't do it anymore... Please... Let me cum...">>
<p>Adriana takes pity on her new fucktoy, or maybe she's just afraid of breaking him on the first day.</p>
<<speech "Adriana" "Aww. Okay, baby. You get to breed my pussy. Lie still.">>
<p>Terrence lies there like he's been shot, and she rides him hard until he groans and empties himself inside her. You watch the relief wash over his face, because it's finally over. Then she lifts herself off him, squats over his cock and pushes his load back out of her pussy onto it in a long white string, and rubs her clit like she's angry at it until she squirts all over him on top of it.</p>
<<video "img/adriana/terrence_dp_8.mp4">>
<<speech "Adriana" "Yeeeeah, look at that fucking cum I pushed all over your dick!!!">>
<p>She isn't finished with him. She licks the whole cocktail of cum and squirt off his stomach and his balls, holds it in her mouth, drools it back over his cock and deepthroats him while he's still hard, then slurps it all back up and starts again. It's a vicious, never-ending cycle, and Terrence is stuck in the middle of it.</p>
<<video "img/adriana/terrence_dp_9.mp4">>
<<speech "Terrence" "Sir. Sir, please. Make her stop. I'm begging you.">>
<<speech "You" "Daddy needs his cumrag.">>
<p>That gets her off him. Adriana scrambles across the couch to you on her knees and opens wide with her tongue out while you jerk yourself off over her face, and she catches every last drop.</p>
<<video "img/adriana/terrence_dp_10.mp4">>
<p>Behind her back, Terrence slowly gets up off the couch and learns how to walk again, more or less, and he's halfway to the door before he remembers his backpack.</p>
[[Back to the lair|Hacker]]
<</if>>/* Madi's detention hour (docs/madi-build-plan.md, Phase 2). A filled blank
from Pollock's pad (Madi Requisition) puts her on the room 019 roster from
the next afternoon, on an eventful day: one of Detention Event 1..3, with
her watching it and her reactions around it. Curiosity +2. The first one
is first contact (stage 4), unless the unsung-heroes shoot (Phase 3) came
first; then her first hour opens on the shoot instead ("roster" in
$madi_seen marks that she has had one). It takes the day's session slot,
2 energy and the usual 1 school
rep, and a new blank for it can go in 3 days later. The late shift
(restriction 3) keeps it waiting. Repeatable, so no Gallery card even
though the events carry clips. DRAFT prose. */
<<albrightcheck>>
<<if $school_time is "afternoon">><<detentionroster>><</if>>
<<if not $detention_job || $school_time isnot "afternoon" || $detention_day >= $day || not setup.madi.landed("detention") || $energy < 2 || _ablock == 3>>
<p>Madison Collins isn't on today's roster.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<set $detention_day = $day>>
<<set _mdFirst = $madi_stage < 4>>
<<set _mdAfterShoot = not _mdFirst && setup.madi.hasSeen("unsung") && not setup.madi.hasSeen("roster")>>
<<set _mdHigh = setup.madi.tier() >= 2>>
<<set _mdEvent = random(1, 3)>>
<<if _mdHigh>>
<<pic "img/school/madi/detention_2.jpg" "story">>
<<else>>
<<pic "img/school/madi/detention_1.jpg" "story">>
<</if>>
<<if _mdFirst>>
<p>Madison Collins is on the fifth-period roster in the principal's own hand, and the line where her offense should be is blank.</p>
<p>She comes down the basement stairs holding her camera bag against her chest, her ginger ponytail over one shoulder, and stops in the doorway of room 019 when she sees who's running it. Most of this building looks straight through you. She looks straight at you, and then she takes the desk nearest the door.</p>
<<speech "Madi" "Do you know what I'm in here for?">>
<<speech "You" "No.">>
<<speech "Madi" "Me neither.">>
<<if setup.madi.lead() is "spite">>
<p>Her eyes are red at the rims, and she doesn't seem to care that you can see it.</p>
<<else>>
<p>She looks the room over, the pipes and the boiler's hum and the window up at ceiling height, like she's working out how she'd frame it.</p>
<</if>>
<<elseif _mdAfterShoot>>
<p>Madison Collins is on the fifth-period roster in the principal's own hand, with the reason left blank. She comes down the basement stairs with her camera bag, sees who's at the desk, and stops in the doorway of room 019.</p>
<<speech "Madi" "Unsung hero. So this is where they keep you.">>
<p>She takes the desk nearest yours instead of the one by the door, and for the first ten minutes she pretends to read.</p>
<<else>>
<p><<= setup.madi.detentionLine("open")>></p>
<</if>>
<<include `"Detention Event " + _mdEvent`>>
<<switch _mdEvent>>
<<case 1>>
<<if _mdHigh>>
<p>Madi watches the girl in the costume for the whole hour, the way you'd watch somebody do a thing you've been told all your life you'd go to hell for. When the girl catches her at it, Madi doesn't look away first.</p>
<<else>>
<p>Madi can't stop looking at the girl in the costume, at the tiny skirt and the thigh-highs and the way she sits like the room belongs to her, and every time the girl glances back, Madi finds something on her camera that needs fixing.</p>
<</if>>
<<case 2>>
<<if _mdHigh>>
<p>Madi sits very still through all of it. When the girl bites her lip to keep quiet, Madi bites hers, and then she sees that you saw it.</p>
<<else>>
<p>Madi watches the couple's knees find each other under the desks, and then she looks at you, trying to work out what kind of man lets a room like this happen.</p>
<</if>>
<<case 3>>
<<if _mdHigh>>
<p>Madi studies the girl working her phone the way she'd study a contact sheet: the angles, the light, the way the girl looks into the lens like there's somebody on the other side she wants to ruin.</p>
<<else>>
<p>Madi's hand goes to her own camera when the girl's phone comes up, a photographer's reflex, and it stays there for the rest of the hour.</p>
<</if>>
<</switch>>
<<madiup "curiosity" 2>>
<<statchange "energy" -2>>
<<statchange "school_rep" 1>>
<<run setup.madi.done("detention")>>
<<run setup.madi.see("roster")>>
<<if _mdFirst>>
<p>When the bell goes she's the last one out. At the door she turns and looks back at the room, and at you, as if she's taking the picture without the camera.</p>
<<set $madi_stage = 4>>
<<set $madi_next_day = $day + 1>>
<div class="req">You've met Madison Collins. Pollock can put her back on your roster every few days.</div>
<<else>>
<p><<= setup.madi.detentionLine("close")>></p>
<</if>>
[[Lock up|Hallway]]
<</if>>/* The one time Adriana's box goes dark (docs/madi-build-plan.md, Phase 2):
from the morning of $madi_file_day + 3 a district firmware push has reset
the switch port it sits on, and the file shows no signal until Terrence
puts it back. Terrence is the man inside: afternoon, 1 energy, one version
per club path - on path 1 he does it for the work and asks nothing, on
path 2 he grins. The lock audit (restriction 2) holds it until the locks
turn again or Below Decks lifts it. Sets "outage" in $madi_seen. DRAFT
prose. */
<<albrightcheck>>
<<if not setup.madi.dark() || $school_time isnot "afternoon" || $energy < 1 || _ablock == 2>>
<p>Nobody needs the server room today.</p>
[[Back to the hallway|Hallway]]
<<else>>
<p>A district firmware update went out overnight and reset every port on the second switch stack, and Adriana's print server that isn't a print server went dark along with them.</p>
<<if $incel_path == 2>>
<p>Terrence is in 021 with his feet on a desk and his laptop open to the district's change log, and he's grinning before you've said a word.</p>
<<speech "Terrence" "Printer jam, sir? Been waiting all day for you to come ask." "terrence">>
<<else>>
<p>Terrence is in the lab alcove with a soldering iron and somebody's broken calculator. He listens, sets the iron in its stand and comes with you without asking a single question.</p>
<</if>>
<!-- IMAGE: the server room - Terrence at the second switch stack, the box's lights coming back on -->
<p>Down past the boiler corridor he plugs his laptop into the switch, puts the dead print server's config back on the port and clones its address onto the box again. The two green lights come back, then the modem's blue one.</p>
<<if $incel_path == 2>>
<<speech "Terrence" "Tell her it was me. Again." "terrence">>
<<else>>
<p>He checks the lights twice and goes back to his calculator, and he never asks what's on the other end of the box.</p>
<</if>>
<<run setup.madi.see("outage")>>
<<statchange "energy" -1>>
<div class="req">Adriana's box is back on the network, and the Madi file has a signal again.</div>
[[Back to work|Hallway]]
<</if>>/* Pollock's unsung-heroes blank (docs/madi-build-plan.md, Phase 3). The
afternoon it lands she brings Madi down to you herself and tells her to
call her Syren (Syren use 5, Curiosity +1), and Madi shoots the page
through her viewfinder (Curiosity +1). It's first contact (stage 4) if it
comes before her first detention hour; if the hour came first it marks
"roster", so a later hour doesn't open on the shoot. Once ("unsung" in
$madi_seen), 1 energy. Mrs. Albright's aide (restriction 1) and the late
shift (restriction 3) keep it waiting. Stills, so no Gallery card. DRAFT
prose. */
<<albrightcheck>>
<<if $madi_stage < 3 || not setup.madi.landed("unsung") || $school_time isnot "afternoon" || $energy < 1 || _ablock == 1 || _ablock == 3>>
<p>Nobody from the yearbook is looking for you today.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<set _ushFirst = $madi_stage < 4>>
<<pic "img/school/madi/unsung_heroes_intro.jpg" "story">>
<p>Sixth period. You're working the east corridor when Pollock comes down it from the main stairs with Madi Collins half a step behind her, and every boy with a hall pass stops to watch the principal walk. She's in the pencil skirt again, carrying the yearbook's assignment sheet like a warrant.</p>
<<if _ushFirst>>
<p>Madi has the camera bag on one shoulder, her ginger ponytail over the other and her eyes on the floor tiles, and she doesn't look up until Pollock stops at your cart.</p>
<<else>>
<p>Madi has the camera bag on her shoulder. When she sees whose cart they're stopping at, she gives you the same look she gave you from the desk by the door in room 019.</p>
<</if>>
<<speech "Pollock" "Madison, this is Mr. $player_surame. This building would fall down around our ears without him, and nobody in it has ever said thank you. Yearbook is giving him a page." "pollock">>
<<speech "Madi" "Yes, Principal Pollock.">>
<<speech "Pollock" "Syren. When it's just us, you call me Syren." "pollock">>
<p>Madi opens her mouth, and nothing comes out. Pollock touches your arm on her way past, light and in no hurry, and goes back up the corridor letting her hips do the talking, and Madi watches every step of it like it's a thing she has been told her whole life she isn't allowed to look at.</p>
<<speech "Madi" "Did she just...">>
<<speech "You" "She did.">>
<<madiup "curiosity" 1>>
<p>She shoots you at the cart first, the way the page wants it: mop, bucket, coveralls, a working man in a corridor. Then she lowers the camera and frowns at the little screen.</p>
<<speech "Madi" "It's flat. It looks like a uniform catalog. Could you... the top half. Down to your waist. It's a working shot, it's about your arms.">>
<p>You unzip the coveralls, push them down to your hips and knot the sleeves. She brings the camera back up and doesn't say anything for a while.</p>
<<pic "img/school/madi/unsung_portrait.jpg" "story">>
<p>Through her viewfinder it's shoulders, then chest, then a forearm with the veins standing up on it, and then she racks the focus down past where the sleeves are knotted at your hips and holds it there longer than any yearbook page has ever needed. The shutter goes in short bursts, then in long ones. She takes a hundred and forty frames of a page that will print one, and twice she steps in closer when the zoom would have done it for her. When the camera finally comes down her face is pink to the ears.</p>
<<speech "Madi" "That's... yeah. That's the page.">>
<<madiup "curiosity" 1>>
<<statchange "energy" -1>>
<<run setup.madi.done("unsung")>>
<<if _ushFirst>>
<p>She packs the camera away without looking at you and gets three steps up the corridor before she turns around.</p>
<<pic "img/school/madi/unsung_2.jpg" "story">>
<<speech "Madi" "Mrs. Albright only lets us print the boring ones, you know. Nobody's ever going to see the good ones.">>
<p>Huh.</p>
<<set $madi_stage = 4>>
<<set $madi_next_day = $day + 1>>
<div class="req">You've met Madison Collins, through her own lens.</div>
<<else>>
<<run setup.madi.see("roster")>>
<p>She packs the camera away slowly. At the corner she stops to check the last frame on the screen, and she smiles at it.</p>
<</if>>
[[Back to work|Hallway]]
<</if>>/* Coach Gunn keeps the gym wing's key log (docs/madi-build-plan.md, Phase
3). With his vape case cleared ($gunn_case 1) and the after-hours beer
behind you ($gunn_trust 4), he gives you the minute Grayson and the goth
girl from room 019 (Lola Fae, detention event 4) use the equipment room.
She's on no team, which is what makes her trips to the gym wing stand
out. Once ("keylog" in $madi_seen),
from the Gym Wing in the afternoon, once the affair is in Madi's file.
Free, and it opens the equipment-room blank. Any other Gunn means the
sign-out sheet instead (Madi Sign-Out). DRAFT prose. */
<<if $gunn_case != 1 || $gunn_trust < 4 || not setup.madi.keylogDue() || $school_time isnot "afternoon">>
<p>Tommy is out on the field with his whistle, and his office is locked.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<run setup.madi.see("keylog")>>
<<run setup.madi.learn("keylog")>>
<!-- IMAGE: Gunn's glass office - the sign-out clipboard on the desk between two beers -->
<p>You ask Tommy who has the equipment room after crew. He looks at you over his reading glasses for a long second, then unhooks the clipboard from the nail by his door and puts it on the desk between two beers.</p>
<<speech "Coach Gunn" "Holt kid. Signs out my key after crew, twice a week, half past six. Never signs nothin' back in, 'cause he never takes nothin' out. Ain't a thing in that room a rower needs." "coach_gunn">>
<<speech "Coach Gunn" "Now here's the funny part. Nobody signs in after him. But that little goth girl from the art wing, dog collar, black lipstick, mouth on her like a trucker, comes out of my gym wing ten minutes behind him, both nights. Girl ain't touched a ball in her life." "coach_gunn">>
<<speech "Coach Gunn" "Walks out bowlegged, too, holdin' onto the wall. Tells you which door he's been knockin' on." "coach_gunn">>
<p>He doesn't ask why a janitor wants to know.</p>
<<speech "Coach Gunn" "His daddy shook my hand at the booster dinner with a twenty folded in it, like I'd parked his car." "coach_gunn">>
<<speech "Coach Gunn" "Six-forty. Give 'em ten minutes to get comfortable and they won't hear a fire drill." "coach_gunn">>
<p>He hangs the clipboard back on its nail, and the two of you finish the beers talking about the batting cage.</p>
<div class="req">You have the minute. One of Pollock's blanks can send Madi to photograph the equipment room at six-forty.</div>
[[Back to the hallway|Hallway]]
<</if>>/* The walk-in ($madi_reveal 1, docs/madi-build-plan.md Phase 3). The evening
the equipment-room blank lands, Pollock sends Madi to photograph the new
equipment room at six-forty, and she opens the door with the yearbook
camera up on Grayson in the ass of the goth girl from room 019 (Lola
Fae, detention event 4, who speaks as "Lola" and whose father carries a
badge).
It's the thing Madi refused him, and it seeds her own interest later
("I can be a better whore too", Madi Stairwell). If room 019 already used
her ("gothgirl" in $albright_notes) the janitor remembers it. Madi
Stairwell follows and settles it. Lock audits and late shifts don't
touch the gym wing at night. No Gallery card despite the clips: it's too
slight a scene to earn one (decided 2026-10-16). DRAFT prose. */
<<if not setup.madi.landed("equipment") || $madi_reveal != 0 || $school_time isnot "evening" || $energy < 1>>
<p>The gym wing is dark, and the equipment-room door is locked.</p>
[[Back to the hallway|Hallway]]
<<else>>
<!-- IMAGE: the gym wing corridor after hours - one strip of light under the equipment-room door -->
<p>By half past six the gym wing is empty except for the hum of the drinks machine and one strip of light under the equipment-room door at the end of the corridor.</p>
<p>The equipment room doesn't bother being quiet. The vaulting horse creaks in a rhythm that's already speeding up, and a girl's voice is telling Grayson to go deeper.</p>
<p>At six-forty exactly Madi comes down the corridor with the yearbook camera around her neck and the assignment sheet in her hand, checking the door number against it. She knocks once, which nobody inside hears, and opens the door.</p>
<<video "img/school/madi/affair_2.webm">>
<p>Lola Fae, the goth girl from your detention room, is bent over the vaulting horse with her fishnets torn open at the seat and her black skirt flipped up over her back, and Grayson stands behind her with his crew shorts around his ankles, buried in her ass. She's pushing back onto him and laughing into the leather. Madi's camera comes up before any other part of her does, a photographer's reflex, and the shutter goes.</p>
<<speech "Grayson" "Madi - Jesus, Madi, it's not...">>
<p>He tries to pull out, and she won't let him: she reaches back with a black-nailed hand, hooks it round his hip and holds him in, and looks at Madi over her shoulder with her lipstick smeared down her chin.</p>
<<speech "Lola" "Your boyfriend's too polite to ask you for this, Collins. So he asks me.">>
<<if $albright_notes.includes("gothgirl")>>
<p>The last time you saw her bent over furniture it was a desk in room 019, and room 019 found out that afternoon exactly how much her ass can take.</p>
<<else>>
<p>She's on your detention roster often enough that you know her line by heart: her daddy carries a badge, and a black janitor could only dream about white pussy.</p>
<</if>>
<p>Grayson tries to pull out again, and this time goth buttslut lets him out - only to flip him onto his back and pin him down. She puts his dick back inside her loose asshole, and makes a show for the audience.</p>
<<video "img/school/madi/affair_3.webm">>
<p>Madi takes three more frames. Then she lets the door swing shut on both of them and walks, very straight, toward the back stairwell, and halfway there she starts to run.</p>
[[Give her a minute, then take the mop to the back stairwell|Madi Stairwell]]
<</if>>/* The walk-in, part two (Phase 3): the back stairwell, where she cries and
you mop. It settles the walk-in: $madi_reveal 1, the blank played,
+3 to whichever meter leads (it used to be Spite, which handed every
Curiosity player the other ending), 1 energy, and her father hears about
it at dinner, seen on the next day's camera
(the "father" camera beat, which sets stage 5). Stills. DRAFT prose. */
<<if not setup.madi.landed("equipment") || $madi_reveal != 0 || $school_time isnot "evening">>
<p>The back stairwell is empty.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<pic "img/school/madi/stairwell_cry.jpg" "story">>
<p>She's on the landing between the first floor and the second, with her back to the wall and the camera in her lap, crying hard and completely silent.</p>
<p>You put the wet floor sign on the bottom step and mop your way up from there, one stair at a time. She watches you come with her chin on her knees, and she doesn't tell you to go away.</p>
<<speech "Madi" "Did you know?">>
<<speech "You" "Yes.">>
<<speech "Madi" "Everybody except me. That's the whole building, isn't it? Everybody knows everything except me.">>
<p>She switches the camera on and scrolls back through the frames.</p>
<<pic "img/school/madi/affair_still.jpg" "story">>
<<speech "Madi" "They're in focus. Of course they're in focus. I'm good at this.">>
<<speech "Madi" "He asked me for that once, in the back of his car. I said good girls don't, and he said okay, and he was so nice about it.">>
<p>She laughs, which is worse than the crying, and wipes her face with the back of her wrist.</p>
<<speech "Madi" "She liked it. Did you see her face? I've been faking it for him for a year, and she wasn't faking anything.">>
<p>For a long while she scrolls back and forth between the same two frames, and when she speaks again it's to the camera more than to you.</p>
<<speech "Madi" "I can be a better whore too.">>
<p>You mop the step she's sitting on around her, and she lifts her feet to let you, and by the time you're done she's watching you and not the camera.</p>
<<speech "Madi" "Thanks. For the floor.">>
<<set $madi_reveal = 1>>
<<set $madi_next_day = $day + 1>>
<<run setup.madi.done("equipment")>>
<<run setup.madi.learn("walkin")>>
<<madiup `setup.madi.lead()` 3>>
<<statchange "energy" -1>>
<div class="req">She knows about Grayson. Her father hears about it at dinner tonight, and the kitchen camera will be watching.</div>
[[Back to the hallway|Hallway]]
<</if>>/* The anonymous clip, part one ($madi_reveal 2, docs/madi-build-plan.md
Phase 3). Terrence pulls the equipment room's footage off the camera
recorder from room 021: afternoon, 1 energy, once the affair is in her
file and while neither the walk-in nor the summons is set up. The lock
audit (restriction 2) shuts it like the rest of 021. On path 1 he does it
for the work and asks nothing; on path 2 he grins. Adriana cuts it
overnight, the file drops it in Madi's DMs from the next day
(<<madigrayson>>), and the next camera check plays her opening it
(clipwatch). It reuses the walk-in's equipment-room clips, and like the
walk-in it gets no Gallery card (decided 2026-10-16). DRAFT prose. */
<<albrightcheck>>
<<if not setup.madi.pullOpen() || $school_time isnot "afternoon" || $energy < 1 || _ablock == 2>>
<p>Terrence isn't in room 021.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<if $incel_path == 2>>
<p>Terrence is in 021 with his feet up, and Aaron and Devin are on the couch. You tell him what you want: the equipment room in the gym wing, after crew, on the camera recorder Adriana's box owns. He's grinning before you finish the sentence.</p>
<<speech "Terrence" "So this is the locker audit." "terrence">>
<<else>>
<p>Terrence is at his desk in 021 with a laptop open on the repair queue. You tell him what you want: the equipment room in the gym wing, after crew, on the camera recorder Adriana's box owns. He listens, nods once, and opens a terminal without asking a single question.</p>
<</if>>
<p>The recorder answers to Adriana's box like it answers to the district, and it takes him four minutes to find the camera in the corner of the new equipment room. He scrubs back to six-thirty on the last night the key was signed out, and presses play.</p>
<<video "img/school/madi/affair_1.webm">>
<<if $incel_path == 2>>
<p>Aaron is off the couch and behind Terrence's chair before Grayson has his shorts down, and Devin follows him. They watch the crew captain bend Lola Fae over the vaulting horse like they're grading it.</p>
<<speech "Aaron" "In the ass? Crew boy's got range." "aaron">>
<<speech "Devin" "That's the girl from 019 with a racist dad. Look at her, she's loving it." "devin">>
<<video "img/school/madi/affair_2.webm">>
<p>Terrence exports it without taking his eyes off the screen. Then he looks up at you, and the grin is back.</p>
<<speech "Terrence" "That's Madi's boyfriend. She's going to see this, isn't she?" "terrence">>
<p>You don't answer, and he takes that as a yes and goes back to watching the export bar fill, happier than you've seen him all semester.</p>
<<else>>
<<video "img/school/madi/affair_3.webm">>
<p>He watches all of it with the same face he uses for a corrupted hard drive. He knows whose boyfriend that is, and you can see him know it. Then he exports the clip to the box for Adriana, closes the window, clears the recorder's access log and goes back to his repair queue. He never asks what it's for, and somehow that's worse than if he had.</p>
<</if>>
<<run setup.madi.see("pulled")>>
<<set $madi_next_day = $day + 1>>
<<statchange "energy" -1>>
<div class="req">Terrence has pulled the footage. Adriana will have it cut by tomorrow, ready to drop in Madi's DMs from her file. That closes the walk-in, since she only has to find out once.</div>
[[Back to work|Hallway]]
<</if>>/* Pollock's blank for Grayson (docs/madi-build-plan.md, Phase 3). After
first contact and before either way to the truth is under way, he's
summoned to her office at sixth period, and Madi waits on the bench
outside with him, since he's her ride. You're there for the radiator, and
he calls you "Custodial" like it's your name. Spite +2, 1 energy, once.
The aide (restriction 1) and the late shift (restriction 3) keep it
waiting. Stills. DRAFT prose. */
<<albrightcheck>>
<<if not setup.madi.landed("summons") || $madi_reveal != 0 || $school_time isnot "afternoon" || $energy < 1 || _ablock == 1 || _ablock == 3>>
<p>The outer office is empty, and the radiator is quiet.</p>
[[Back to the hallway|Hallway]]
<<else>>
<!-- IMAGE: the principal's outer office - Grayson sprawled on the bench in his crew jacket, Madi beside him with her camera bag on her knees -->
<p>The radiator in the principal's outer office really does knock. Grayson Holt is on the bench under the window in his crew jacket with his legs stretched out across the carpet, and Madi sits beside him with her camera bag on her knees, because he's her ride and he told her to wait. He has been waiting forty minutes, and he's making sure she hears about every one of them.</p>
<p>You kneel at the radiator with your wrench, and on the third knock he looks over.</p>
<<speech "Grayson" "Custodial. Hey. Custodial. Can you do that later? Some of us are trying to think.">>
<p>It takes you a second to work out that it's meant to be your name, and by then Madi is looking hard at the carpet.</p>
<p>He takes her phone out of her hand without asking and scrolls through her camera roll while he talks. He stops on one, a picture of her laughing at something off the edge of the frame, and deletes it.</p>
<<pic "img/school/madi/summons_pic.jpg" "story">>
<<speech "Grayson" "Not that one. Your face does a thing.">>
<p>She nods along, and then he notices you again, still kneeling at the radiator, and that seems to amuse him.</p>
<<speech "Grayson" "You from over the wall, Custodial? My dad says the reservation's a growth market. Cheap labor, cheap land, and the wall is already paid for.">>
<p>He laughs at his own joke. Madi doesn't, and she won't look at you, and her ears have gone red.</p>
<p>Then the inner door opens and Pollock leans out in a silk blouse with the top buttons undone, and Grayson sits up so fast the bench creaks. His eyes go where every senior's eyes go, and stay there, and Madi watches him do it.</p>
<<speech "Pollock" "Mr. $player_surame. My radiator first, please. Mr. Holt can wait." "pollock">>
<p>Her radiator knocks for twenty minutes. When you come back out, Pollock is in the doorway behind you with her lipstick fresh, and Grayson is on his feet and red in the face and nobody in the room cares.</p>
<<speech "Pollock" "Mr. Holt. In." "pollock">>
<p>The door shuts on him. Madi looks at you for a long moment, at the coveralls and at the wrench in your hand, and then away.</p>
<<speech "Madi" "He calls everybody that, you know. The lunch ladies are Lunch. Sorry.">>
<p>She's apologizing for him again. You've heard her do it before, secondhand, and this time you watch her hear herself say it.</p>
<<madiup "spite" 2>>
<<run setup.madi.done("summons")>>
<<statchange "energy" -1>>
[[Back to work|Hallway]]
<</if>>/* The Collins pickup (docs/madi-build-plan.md, Phase 3): once, from Outside
in the afternoon at stage 4+, from the day her file has the affair in it.
Her father's truck at the side door at three-fifteen, and the only look
at him this update gives. LODGE stays open, so the look has to read
either way: a man who was in the chat that got Eden's video trying to
place a face, or a corrections officer counting one more black man near
his daughter. The late shift (restriction 3) means you're not there at
last bell. No meter moves. Stills. DRAFT prose. */
<<if $madi_stage < 4 || not setup.madi.knows("affair") || $madi_seen.includes("pickup") || $school_time isnot "afternoon" || ($albright_block == 3 && $day < $albright_block_until)>>
<p>The side door is quiet, and nobody is waiting at the curb.</p>
[[Back inside|Hallway]]
<<else>>
<<run setup.madi.see("pickup")>>
<<pic "img/school/madi/pickup.jpg" "story">>
<p>Three-fifteen. You're hauling the recycling out of the side door when a grey pickup pulls up at the curb there, never at the front, with a Facility 9 permit on the dash and the engine left running. The man behind the wheel doesn't get out.</p>
<p>Raymond Collins has short grey hair, a jaw like a cell door, and a uniform shirt under his windbreaker. His phone sits in a mount on the dash with a map open on it, and the dot on the map is inside the building.</p>
<p>Madi is two minutes late. His window comes down, and he looks at the side door, then at the dumpster, and then at you.</p>
<p>The look doesn't last long. It's flat and thorough, the way a man who counts heads for a living looks at anything that might move, and that might be all it is: one more black man inside forty feet of his daughter. Or it's the look of a man trying to place a face he has seen somewhere, on a phone, in a chat full of men like him. You can't tell which, so you finish with the recycling at the same speed you started it.</p>
<p>Madi comes out at three-seventeen and runs the last few yards. She gets in without a word. He says something you can't hear and taps the dot on his phone, and the truck pulls away. Through the back window you watch Madi turn her head and look back at the side door, at you, until the truck turns the corner.</p>
[[Back inside|Hallway]]<br>
[[Take the bus home|The Hood]]
<</if>>/* A home cross-country meet (docs/madi-build-plan.md, Phase 3): once, from
the Hallway in the afternoon at stages 4-6, from the day her file has the
affair in it until her night (stage 7). Her father skips it and Lauren
comes in his place with a water bottle for Madi, the only parent who
thanks the janitor ($lauren_stage 1 if the cameras haven't shown her yet,
and "race" in $madi_seen either way). The narration places her before
her first line: from the house cameras if you've seen her there, from
the file if not. No meter moves. Stills. DRAFT prose. */
<<if $madi_stage < 4 || $madi_stage >= 7 || not setup.madi.knows("affair") || $madi_seen.includes("race") || $school_time isnot "afternoon">>
<p>The back field is empty, and the course flags are packed away.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<run setup.madi.see("race")>>
<<pic "img/school/madi/race.jpg" "story">>
<p>There's a home cross-country meet on the back field, and the work order says the janitor rakes the course, ropes the finish chute and drags every trash can on campus out to the parents' side. You're at the chute when the girls' race comes up the last hill in a pack of split shorts and crop-top singlets, and half the fathers in the stands find a reason to stand up.</p>
<p>Madi comes through ninth, running like she's late for something, with her ginger hair stuck to her neck<<if setup.madi.hers("anklet")>> and the spade anklet flashing above her spikes<</if>>. Before she has her breath back she's looking past the chute at the parents, scanning the stands row by row. The grey truck isn't in the lot, and her father is probably at Facility 9 on a double shift.</p>
<p>A mature redhead comes down from the stands to meet her with a water bottle. <<if $lauren_stage >= 1 || $madi_seen.includes("ipad")>>You've seen her before on Adriana's feeds<<if setup.madi.laurenCarried()>>, carrying a box addressed to her stepdaughter up the stairs into her own bedroom<</if>><<if $madi_seen.includes("ipad")>>, watching the black sprinters on the family iPad over her morning coffee<</if>><<if not setup.madi.laurenCarried() and not $madi_seen.includes("ipad")>>, alone in the kitchen with her coffee and the house rules<</if>>: Lauren Phillips, the stepmother, and she has no idea who you are.<<else>>It takes you a second to place her from the file: Lauren Phillips, the stepmother, here in her husband's place.<</if>></p>
<p>When the girls have gone off to the buses, she walks over to where you're coiling the chute rope.</p>
<<pic "img/lauren/race.jpg" "story">>
<<speech "Lauren" "You're the one who raked the course? It was lovely. They're never usually that... nobody ever says thank you for that kind of thing, do they? So, thank you.">>
<p>She reads the stitching on your coveralls and calls you by the dead man's initials, and she means it, which makes her the only parent who has thanked the janitor for anything since you started.</p>
<p>Her eyes go to your forearms where the sleeves are rolled and stay there a second longer than a stepmother's should, and then she laughs at nothing and goes after Madi.</p>
<<set $lauren_stage = Math.max($lauren_stage, 1)>>
[[Back to work|Hallway]]
<</if>>/* Madi stage 5 (docs/madi-build-plan.md, Phase 4): the day after her
father's dinner, Adriana has been through the work laptop he signs his
paperwork on at the kitchen table, and pulled his use-of-force reports.
Jeremy's name is on three of them. The truth fork: send them to Madi from
an account with no name ($madi_truth 1; she reads them that night, on the
first camera check from the next day, Spite +2), give them to her yourself and tell her who you are and
why (2; the back stairwell the next afternoon, Madi Truth, Spite +3), or
keep them (0). Once ("facility9" in $madi_seen), free. Stills. DRAFT
prose. */
<<if not setup.madi.facility9Due()>>
<p>Adriana is busy with somebody else's problem today.</p>
[[Back to the lair|Hacker]]
<<else>>
<<run setup.madi.see("facility9")>>
<<run setup.madi.learn("facility9")>>
<<pic "img/general/hackerlair.jpg" "location">>
<p>Adriana doesn't put her feet up on the crate today. The Collins kitchen is on her left monitor, empty at this hour, and on the middle one there's a scanned form with a state crest at the top.</p>
<<speech "Adriana" "He does his paperwork at the kitchen table after headcount. Work laptop, and the same house wifi as the iPad.">>
<p>She scrolls. They're use-of-force reports, three years of them, and every one is signed at the bottom in block capitals you've seen before, on a list taped to a fridge.</p>
<<speech "Adriana" "Most of it is what you'd expect. A can of pepper spray here, a cell extraction there, and nobody ever resists less than the report says they did.">>
<p>Then she stops scrolling, and for once she doesn't call you daddy.</p>
<<speech "Adriana" "Three of them have your brother's name on them.">>
<!-- IMAGE: Adriana's middle monitor - a Facility 9 use-of-force report, the inmate line circled, the signature in block capitals -->
<p>The inmate line says Jeremy, with your family's name after it and a number. The first is a cell extraction at four in the morning for refusing to hand back a meal tray. The second is six hours in the restraint chair, checked every fifteen minutes, NO COMPLAINTS NOTED. The third is a fall down a flight of stairs between his cell and the infirmary, with no other inmate on the stairs and two officers signed as witnesses. Every report has photographs attached. Adriana leaves them closed, and you don't ask her to open them.</p>
<p>At the bottom of all three: REVIEWED AND APPROVED - R. COLLINS, DEPUTY WARDEN, in the same hand as HOUSE RULES.</p>
<<speech "Adriana" "So. These stay in her file, or they go in her hands. It's your call.">>
<div id="choice-container">
<<linkreplace "Send them to her from an account with no name">>
<<set $madi_truth = 1>>
<<set $madi_next_day = $day + 1>>
<<replace "#output">>
<<speech "You" "Send them. No name, no message, just the paper.">>
<<if $madi_reveal == 2>>
<<speech "Adriana" "The account that sent her Grayson, then. She opens everything it sends her.">>
<</if>>
<p>She cuts the three reports out of the stack and queues them for a quarter to nine, fifteen minutes before Madi's phone is due on the kitchen counter.</p>
<div class="req">From tomorrow, the house cameras will show you when she reads them.</div>
[[Back to the lair|Hacker]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Send them to her from an account with no name"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Give them to her yourself, and tell her who you are">>
<<set $madi_truth = 2>>
<<set $madi_next_day = $day + 1>>
<<replace "#output">>
<<speech "You" "Print them. I'll give them to her myself.">>
<<speech "Adriana" "And tell her what? That the janitor reads her father's mail?">>
<<speech "You" "That Jeremy is my brother.">>
<p>Adriana takes her hands off the keyboard.</p>
<<speech "Adriana" "Jamal is going to hate this. You're making her a bigger part of this than she needs to be.">>
<<speech "You" "Jamal sees her as just another asset, and I'm sick of this. She's already a part of it. Trust me, it will make things easier if she does it... knowingly.">>
<p>The printer under her desk wakes up and pushes out the three reports, still warm, and she slides them into a plain folder.</p>
<<speech "Adriana" "The back stairwell has one camera, over the first-floor landing. Tomorrow at last bell it's going to show twenty minutes of a nice empty stairwell from yesterday. Put a note in her locker in the morning. Your face stays off every recording in that building, daddy. That part hasn't changed.">>
<div class="req">Tomorrow at last bell: the back stairwell (Hallway, afternoon, 1 energy).</div>
[[Back to the lair|Hacker]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Give them to her yourself, and tell her who you are"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Keep them">>
<<set $madi_truth = 0>>
<<run setup.madi.learn("kept")>>
<<replace "#output">>
<<speech "You" "Keep them. In the file and nowhere else.">>
<p>Adriana nods slowly, like it's the answer she would have given.</p>
<<speech "Adriana" "Jamal would sign off on that. Her father keeps his job, she keeps her daddy, and you keep the only copy of what he did to your brother. He'd tell you to sit on them until the day they're worth something.">>
<p>She saves the three reports into the Madi file, in a folder with no name, and closes the window. As far as Madi knows, the worst thing her father has ever done is take Grayson's side at dinner.</p>
<div class="req">The reports stay in her file. <<if setup.madi.top() >= setup.madi.max>>Her file lets you choose how this ends.<<else>>When either meter reaches <<= setup.madi.max>>, her file lets you choose how this ends.<</if>></div>
[[Back to the lair|Hacker]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Keep them"</em></div><</replace>>
<</linkreplace>><br>
</div>
<div id="output"></div>
<</if>>/* The truth fork's second branch ($madi_truth 2, docs/madi-build-plan.md
Phase 4): the afternoon after Adriana Facility 9 you give Madi the reports
in the back stairwell and tell her who you are and why. Adriana loops the
stairwell camera, so your face stays off every recording. Once ("truth"
in $madi_seen), afternoon, 1 energy, Spite +3. The late shift
(restriction 3) keeps you away from last bell. Stills. DRAFT prose. */
<<albrightcheck>>
<<if not setup.madi.truthDue() || $school_time isnot "afternoon" || $energy < 1 || _ablock == 3>>
<p>The back stairwell is empty.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<run setup.madi.see("truth")>>
<!-- IMAGE: the back stairwell at last bell - Madi on the landing with a plain folder open on her knees -->
<p>Your note went into her locker this morning, folded once and unsigned: the back stairwell, last bell. At three o'clock the camera over the first-floor landing starts showing Adriana's twenty minutes of yesterday, and at two minutes past, Madi comes up the stairs with her camera bag and stops when she sees who's waiting.</p>
<<if $madi_reveal == 1>>
<p>The last time she sat on these stairs she was crying, and you were mopping around her.</p>
<</if>>
<<speech "Madi" "The note was you?">>
<p>You hand her the folder. She opens it standing up, then sits down on the step to read it. She reads the first page twice, and you watch her find the signature at the bottom and know it.</p>
<<speech "Madi" "That's his writing. He writes like that on everything. Birthday cards.">>
<<pic "img/school/madi/affair_reveal_dad.jpg" "story">>
<<speech "You" "The inmate name is my brother.">>
<<speech "Madi" "Jeremy... Is he alive?">>
<<speech "You" "I hope so. We don't get much information from the inside.">>
<p>She doesn't cry. She takes the camera out of the bag, lays the first report flat on the step above her and photographs it, then the next one and the next, every page and every signature, like that's the only way she knows to make a thing real.</p>
<<speech "Madi" "Is that why you're here? At my school?">>
<<speech "You" "Because of him. Not because of you.">>
<p>It's mostly true.</p>
<<speech "Madi" "What's your name? Your real one, not the one on your timesheet.">>
<<speech "You" "The one on the timesheet will do.">>
<p>She nods. Right now she wishes she also has another name, different from her sadistic father.</p>
<<speech "Madi" "He took the lock off my bedroom door when I was twelve. Good girls don't need locks. And every night at dinner he counts us, me and Lauren, like we're...">>
<p>She doesn't finish it. She closes the folder and holds it out to you.</p>
<<speech "Madi" "You keep it. He goes through my room.">>
<p>At the top of the stairs she stops with the camera still in her hand.</p>
<<speech "Madi" "I'm really sorry.">>
<<madiup "spite" 3>>
<<run setup.madi.learn("told")>>
<<statchange "energy" -1>>
<div class="req">She knows who you are and why you're here. <<if setup.madi.top() >= setup.madi.max>>Her file lets you choose how this ends.<<else>>When either meter reaches <<= setup.madi.max>>, her file lets you choose how this ends.<</if>></div>
[[Back to work|Hallway]]
<</if>>/* The group route's word to Jamal (docs/madi-build-plan.md, Phase 4): once
"Across the wall" is chosen ($madi_approach 2) and Madi has heard the
offer at the print (Madi Print), the hideout laptop tells him and he
answers. Once ("jamal" in $madi_seen). His voice follows
docs/jamal-voice.md. DRAFT prose. */
<<if not setup.madi.jamalDue()>>
<p>Nothing new from Jamal.</p>
[[Back|Laptop]]
<<else>>
<<run setup.madi.see("jamal")>>
<<pic "img/general/laptop.jpg" "location">>
<p>You type it out the way he likes things, short and in order:</p>
<<speech "You" "The Collins girl wants to see the hood. Her own idea. Not a drive past, a night. Her father works a double, and Adriana can keep her phone's dot asleep at home till morning.">>
<p>He's online. The cursor sits there long enough that you check the connection.</p>
<<speech "Jamal" "Say that one more time.">>
<<speech "You" "The warden's daughter wants to cross the wall.">>
<<speech "Jamal" "Baby girl wanna have a taste of real life.">>
<<speech "You" "Taste of black cocks, too. She really hates her dad.">>
<<speech "Jamal" "Here's how it go. You walk her through the checkpoint, Adriana keep that dot clean, and I'll be at the door. My face on the tape, not yours. They already got my picture on a wall somewhere, and yours they ain't got. It stays that way.">>
<<if $incel_path == 2>>
<<speech "You" "The boys from the school will want in.">>
<<speech "Jamal" "Your basement crew? Let 'em come. They her classmates. A tape with them on it read like a girl's wild night out, not like somebody planned it. That's cover, young blood.">>
<</if>>
<<speech "Jamal" "Renner was luck, and I told you luck ain't a strategy. Nigga, you got the warden's daughter walking over to us on her own two feet. That's the work.">>
<<speech "Jamal" "Copy, soldier. The night of the double.">>
<<speech "You" "Copy.">>
<div class="req">Jamal is in. She crosses at the blockpost on day $madi_next_day, nine at night (The Hood).</div>
[[Close the laptop|The hideout]]
<</if>>/* Madi stage 6 (docs/madi-build-plan.md, Phase 5): the day after you pick
an ending, she brings you a print from the unsung-heroes shoot at last
bell, and the offer is yours to make. Solo: "I can make your dreams come
true", and she writes her address and a time on the back, as if you
didn't know where she lives. Group: the other side of the wall, and she
writes when she can get away. Once ("print"), afternoon, free. The night
is the next day ($madi_next_day). The late shift (restriction 3) keeps
you off last bell. DRAFT prose. */
<<albrightcheck>>
<<if not setup.madi.printDue() || $school_time isnot "afternoon" || _ablock == 3>>
<p>Nobody is waiting by your cart.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<run setup.madi.see("print")>>
<<set $madi_next_day = $day + 1>>
<<pic "img/school/madi/print.jpg" "story">>
<p>Last bell. The east corridor empties around your cart the way it always does, and when it's empty Madi is still there, holding a yearbook envelope flat against her chest.</p>
<<speech "Madi" "Mrs. Albright killed the page. Custodial staff isn't a theme, apparently. So I printed the good one anyway.">>
<p>It's the frame she held longest at the shoot: the coveralls knotted at your hips and the veins standing up on your forearms, cropped at the shoulders, as if she already knew it had to be.</p>
<<speech "Madi" "Nobody's ever going to see it. I thought you should have it.">>
<p>You chuckle looking at your pose, and then look her straight in the eye. Madi returns the look, and you can bet her heart races. She hopes for something.</p>
<<if $madi_approach == 1>>
<<speech "You" "I can make your dreams come true, you know.">>
<p>She giggles, and takes the print back out of your hand. On the back, with the grease pencil from the light table, she writes an address, the one her father's order says nobody gets, and under it: TOMORROW, 11.</p>
<<if $madi_truth >= 1>>
<<speech "Madi" "He's on a double. I'm not calling him Daddy any more. Lauren sleeps like the dead, and the back door sticks, so push it, Mr. Dreams-Come-True.">>
<<else>>
<<speech "Madi" "Daddy's on a double. Lauren sleeps like the dead. The back door sticks, so push it, Mr. Dreams-Come-True.">>
<</if>>
<p>She hands the print back, very pleased with herself, as if you couldn't find that house with your eyes shut.</p>
<div class="req">Tomorrow, after you clock out: her house at eleven at night (Hallway, evening, 4 energy).</div>
<<else>>
<<speech "You" "Ever wondered what's on the other side of the wall? I could show you, if you can handle it.">>
<p>She stops smiling, but she doesn't stop looking at you.</p>
<<speech "Madi" "Every time I run, I get as far as the checkpoint and turn around. But I can handle it, the real life.">>
<<speech "You" "I don't doubt you can handle the truth, but can you handle more than one black man?">>
<<speech "Madi" "Wow, is a threesome included in the tour? Sign me up!">>
<p>She blushes, takes the print back and writes on the back with the grease pencil: TOMORROW, 9. THE SHORT QUEUE. Then she underlines the nine twice and hands it back to you.</p>
<<speech "You" "Girl, where you're going there are no threesomes - only gangbangs. I warned ya.">>
<p>Her lips part, and for a second nothing comes out. You can practically watch the blood leave her head: her eyes go soft and far away while a flush climbs from her collar to the tips of her ears, and she squeezes her thighs together under her skirt as if her body has already said yes and the rest of her is still catching up.</p>
<div class="req">Tomorrow night: meet her at the blockpost at nine (The Hood, 4 energy).<<if setup.madi.jamalDue()>> Jamal has to hear about it first, from the hideout laptop.<</if>><<if setup.madi.boysDue()>> The boys in room 021 don't know yet either.<</if>><<if setup.madi.williamDue()>> William would come too, if you text him from the laptop.<</if>><<if setup.madi.roofMen().length < 2>> A gangbang is more than you and Jamal, so extra men are required.<</if>></div>
<</if>>
[[Back to work|Hallway]]
<</if>><<pic "img/school/incels/club_room.jpg" "location">>
/* The group route on path 2 (docs/madi-build-plan.md, Phase 5): you invite
the room 021 boys to Madi's night across the wall yourself, which takes
back the "She's not for you" from Database Query. Once ("boys"). The
night needs the boys or William (Madi William), at least one of them. Any
afternoon after the print (Madi Print), free; the lock audit (restriction
2) shuts 021.
Isaiah is there unless he walked out at the Crossroads ($incel_dropout).
At the bar you point them out to her, and she says yes. DRAFT prose. */
<<albrightcheck>>
<<if not setup.madi.boysDue() || $school_time isnot "afternoon" || _ablock == 2>>
<p>Room 021 is empty.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<run setup.madi.see("boys")>>
<p>Room 021 is loud about nothing in particular when you shut the door behind you, and it goes quiet the moment you do.</p>
<<speech "You" "My dear gangbangers, I have a proposal. Madi Collins. Meet me at the bar behind the wall and be ready for the gangbang of your life.">>
<<speech "Terrence" "You told me she wasn't for us, sir. You used the voice." "terrence">>
<<speech "You" "She wasn't. Now it's her call. I point you out from across the bar, and if she says yes, she says yes.">>
<div class="req">The boys will be at Earl's on the night.</div>
[[Back to the hallway|Hallway]]
<</if>>/* The group route (docs/madi-build-plan.md, Phase 5): once your swap night
with William is behind you ($william_stage 6) and Madi has heard the offer
at the print, you can text him an invitation to Madi's night across the
wall, on either club path.
Optional and once ("william"), from the hideout laptop. He still knows
nothing about your mission, so the text is a night out and nothing more,
and you don't tell him who else is coming. His face stays off the tape,
like yours. DRAFT prose. */
<<if not setup.madi.williamDue()>>
<p>Nothing to send.</p>
[[Back|Laptop]]
<<else>>
<<run setup.madi.see("william")>>
<<pic "img/general/laptop.jpg" "location">>
<p>You keep it short, the way you used to write him a sitrep.</p>
<<speech "You" "A girl from the city side wants one night in the hood with men who know what they're doing. Earl's bar at nine, and a roof after. You in?">>
<p>The reply comes back before you've put the phone down, loud with capitals, the way all his texts are.</p>
<<speech "William" "BROTHER. Yes. YES. Do I bring anything? Agatha has a yacht. I could bring a yacht." "william">>
<<speech "You" "Bring yourself.">>
<<speech "William" "After that night with you and Ella I'd follow you into a house fire. A roof I can do." "william">>
<div class="req">William will be at Earl's on the night.</div>
[[Close the laptop|The hideout]]
<</if>>/* ============================================================
Madi Collins arc widgets (docs/madi-build-plan.md).
<<madiup "curiosity"|"spite" n>> - moves one of her two
meters by n. It goes through <<statchange>>, which clamps
both meters to 0 - setup.madi.max (STATCHANGE_CAPS)
and prints the change that actually applied, or nothing
once the cap has swallowed it. Any other meter name is
reported by <<statchange>> as a macro error.
<<madiboard>> - her entry on a .closet-board: both meters
and one line on what opens next. The closet board and the
file both use it.
<<madipush "curiosity"|"spite">> - the day's digital push,
+1 to that meter, from a link in the file: feed tuning
under 2, whispers after (setup.madi.pushLine).
<<madibuy id "locker"|"house">> - orders a package from the
file's store, next-day delivery.
<<madicamera>> - the day's camera check: a scripted one-off
if one is due (setup.madi.nextScripted), else an everyday
moment from her tier (setup.madi.randomEvent), or from
Lauren's first scene on, sometimes Lauren home alone, by
$lauren_stage (setup.madi.laurenEvent).
The file's inline pieces live in #madi-board, #madi-push,
#madi-cam, #madi-item-<id> and #madi-output.
Phase 2, the school side (favors and pools in madi.js):
<<madisighting "cafeteria"|"corridor">> - how she looks today,
by tier, plus a line for a package she has made hers.
<<madifavors>> - the file's Favors panel: where Pollock's
blanks, Britney and Linda stand today.
<<madislips>> - Pollock's answers to filled blanks, in the
morning Maintenance office panel.
<<madibritney>> - the Madi part of Britney's office: her notes
waiting, or the session themes to book.
<<madilinda>> - the Madi part of the cafeteria: Linda's ask.
<<madicloset>> - the Madi part of the closet: the blanks, a
locker delivery waiting, Linda's report, the yearbook boxes.
Phase 3, first contact and the reveal (gates in madi.js):
<<madigrayson>> - the file's Grayson panel: where each way to
the truth stands (the walk-in, the footage), the drop of
Adriana's cut into her DMs, then her father's dinner.
Phase 4, the Facility 9 file and the approach (gates in madi.js):
<<madiapproach>> - the file's "How this could end" board: both
endings, their meters, what still holds them back, and the
link that chooses one (<<madichoose>>).
DRAFT prose throughout.
============================================================ */
<<widget "madiup">>
<<statchange `"madi_" + _args[0]` `_args[1]`>>
<</widget>>
<<widget "madiboard">>
<<set _mbTop = setup.madi.top()>>
<div class="board-entry">
<div class="board-row"><span class="board-label">Madison Collins</span><span class="board-value"><<if $madi_stage >= 7>>done, for now<<elseif $madi_stage >= 6>>the night is set<<elseif $madi_stage >= 5>>she knows about Grayson<<elseif $madi_stage >= 4>>you've met<<else>>the file is open<</if>></span></div>
<div class="board-row"><span class="board-label">Curiosity</span><span class="board-value">$madi_curiosity / <<= setup.madi.max>></span></div>
<div class="board-meter"><div class="board-meter-fill" @style="'width:' + (100 * $madi_curiosity / setup.madi.max) + '%'"></div></div>
<div class="board-row"><span class="board-label">Spite</span><span class="board-value">$madi_spite / <<= setup.madi.max>></span></div>
<div class="board-meter"><div class="board-meter-fill" @style="'width:' + (100 * $madi_spite / setup.madi.max) + '%'"></div></div>
<div class="board-desc"><<if setup.madi.dark()>>No signal: Adriana's box is down until Terrence puts it back, at school in the afternoon.<<elseif _mbTop < 2>>One push on her feed a day, +1 to the meter you pick. From 2 on either meter, whispers take over from feed tuning.<<elseif _mbTop < 4>>From 4 on either meter, the store in her file opens.<<elseif _mbTop < 5>>From 5 on either meter, her file shows how this could end.<<elseif $madi_stage >= 7>>The cameras still work, for whatever comes next.<<elseif $madi_approach > 0>>Her ending is chosen. Her feed is left alone now, and the cameras keep watching until the night.<<else>>Curiosity <<= setup.madi.max>> opens one ending, Spite <<= setup.madi.max>> the other.<</if>></div>
<<if $madi_stage == 3 && _mbTop >= 3 && $pollock_stage >= 5>>
<div class="board-desc">One of Pollock's signed blanks can put her in your detention hour, or send her to shoot the yearbook's page on you, and that's where you'll meet.</div>
<<elseif $madi_stage == 4>>
<div class="board-desc"><<if not setup.madi.knows("affair") and not setup.madi.affairDue()>>Adriana is reading Grayson's phone off the school wifi, and she'll have something for the file soon.<<elseif $madi_reveal == 0>>Grayson is cheating on her, and she's the last one in the building who doesn't know.<<else>>She knows about Grayson now, and her father hears about it at dinner.<</if>></div>
<<elseif $madi_stage == 5>>
<div class="board-desc"><<if not setup.madi.hasSeen("facility9")>>Her father took Grayson's side. Adriana is going through what he brings home from Facility 9, at her lair.<<elseif $madi_truth == 1 && not setup.madi.hasSeen("reports")>>His reports are in her DMs, and the house cameras will show you when she reads them.<<elseif $madi_truth == 2 && not setup.madi.hasSeen("truth")>>She's meeting you in the back stairwell at last bell, and Adriana will loop the camera.<<elseif _mbTop >= setup.madi.max>>Her file lets you choose how this ends.<<else>>When either meter reaches <<= setup.madi.max>>, her file lets you choose how this ends.<</if>></div>
<<elseif $madi_stage == 6>>
<div class="board-desc"><<if not setup.madi.hasSeen("print")>>She'll come looking for you at last bell<<if $day < $madi_next_day>> from day $madi_next_day<</if>>, and the offer is yours to make.<<elseif $madi_approach == 1>>Her address is on the back of a print in your pocket: day $madi_next_day, eleven at night, after you clock out.<<else>>She crosses at the blockpost on day $madi_next_day, nine at night.<</if>><<if setup.madi.jamalDue()>> Jamal hasn't heard about it yet.<</if>></div>
<<elseif $madi_stage >= 7>>
<div class="board-desc">Her night is behind you.</div>
<</if>>
</div>
<</widget>>
<<widget "madisighting">>
<<set _sight = setup.madi.sighting(_args[0])>>
<<switch _sight.look>>
<<case "t0">><<pic "img/school/madi/t0.jpg" "story">><!-- IMAGE: Madi in Grayson's crew jacket, eyes down -->
<<case "t1">><<pic "img/school/madi/t1.jpg" "story">><!-- IMAGE: Madi with her earbuds in and her hair down, looking up as the club boys pass -->
<<case "t2c">><!-- IMAGE: Madi without the jacket, a spade charm on her zipper, her camera up -->
<<case "t2s">><<pic "img/school/madi/t2s.jpg" "story">><!-- IMAGE: Madi without the jacket, a spade charm on her zipper, her camera up, her skirt above the knee -->
<<case "t3b">><<pic "img/school/madi/t3b.jpg" "story">><!-- IMAGE: Madi alone, hair down, no jacket, her skirt above the knee -->
<<case "t3m">><<pic "img/school/madi/t3m.jpg" "story">><!-- IMAGE: Madi alone, her camera pointed at the staff alcove / at her locker when your mop arrives -->
<<case "t7">><<pic "img/school/madi/t7.jpg" "story">>
<</switch>>
<p><<= _sight.text>></p>
<<if _sight.item>>
<!-- IMAGE: the package on her: the wand (the look on her face the morning after), the strawberry lingerie strap, the paperback in her bag, the anklet -->
<p><<= _sight.itemText>></p>
<</if>>
<</widget>>
<<widget "madifavors">>
<<if setup.madi.favorUsed()>>
<div class="hub-note">You've called in today's favor for her.</div>
<</if>>
<<if $pollock_stage >= 5>>
<div class="hub-note">Pollock's detention hour: <<= setup.madi.favorStatus("detention")>>.</div>
/* Phase 3's one-off blanks, each while it has something to say. */
<<for _bid range ["unsung", "summons", "equipment"]>>
<<set _bl = setup.madi.blankLine(_bid)>>
<<if _bl>>
<div class="hub-note"><<= setup.madi.favors[_bid].label>>: _bl.</div>
<</if>>
<</for>>
<<else>>
<div class="hub-note">Pollock's signed blanks come with her first pink slip.</div>
<</if>>
<<if $amber_stage >= 6>>
<div class="hub-note">Britney: <<= setup.madi.favorStatus("britney")>>.</div>
<</if>>
<<if $linda_stage >= 2>>
<div class="hub-note">Linda: <<= setup.madi.favorStatus("linda")>>.</div>
<</if>>
<</widget>>
<<widget "madislips">>
<<for _sid range Object.keys(setup.madi.favors)>>
<<if setup.madi.favors[_sid].requisition && setup.madi.landed(_sid)>>
<div class="hub-note"><<= setup.madi.favors[_sid].slip>></div>
<</if>>
<</for>>
<</widget>>
/* Britney's office at $amber_stage 6. Her Madi sessions are afternoon asks,
so Mrs. Albright's aide (restriction 1) keeps both the ask and the notes
off the table while it lasts. */
<<widget "madibritney">>
<<if $madi_stage >= 3 && $amber_stage >= 6>>
<<albrightcheck>>
<<set _brId = setup.madi.allyPending("britney")>>
<<if _brId && setup.madi.landed(_brId)>>
<p>There's a folder on the corner of Britney's desk with COLLINS, MADISON on the tab, and she keeps glancing at it.</p>
<<if _ablock == 1>>
<div class="hub-note">She won't open it with Mrs. Albright's aide in the doorway. It keeps until day $albright_block_until.</div>
<<elseif $energy >= 2>>
[[Hear her notes on Madi's session (2 energy)|Madi Britney Report]]<br>
<<else>>
<div class="req">Her notes on Madi come with the couch, and that takes 2 energy.</div>
<</if>>
<<elseif _brId>>
<div class="hub-note">Madi Collins is in Britney's book for tomorrow morning.</div>
<<elseif setup.madi.britneyLeft().length > 0>>
<<if _ablock == 1>>
<div class="hub-note">Britney could book Madi Collins a session, but not with Mrs. Albright's aide listening in. Not until day $albright_block_until.</div>
<<elseif setup.madi.favorUsed()>>
<div class="hub-note">Britney could book Madi Collins a session, but you've already called in today's favor for her.</div>
<<elseif $day < setup.madi.allyNext("britney")>>
<div class="hub-note">Britney wants a day before she books Madi Collins in again.</div>
<<else>>
<p>Britney could book Madi Collins in for a session, on whatever theme you like, and tell you everything afterwards.</p>
<div id="madi-britney">
<<for _th range setup.madi.britneyLeft()>>
<<capture _th>>
<<link `"Book her in: " + setup.madi.favors[_th].label`>><<run setup.madi.ask(_th)>><<replace "#madi-britney">><p>Britney writes Madi into her book for tomorrow morning and underlines the theme twice. She'll have notes for you by the afternoon.</p><</replace>><</link>><br>
<</capture>>
<</for>>
</div>
<</if>>
<</if>>
<</if>>
<</widget>>
/* Linda at lunch ($linda_stage 2+): she and Madi share a locker room. The
ask costs 1 energy and her report waits in the closet the next day. From
Phase 4, once Madi's Curiosity is at 7 (after she found out about Grayson,
before the finale), the same ask can go further, once: Linda brings Madi
to your closet herself at last bell (Linda Madi Closet). */
<<widget "madilinda">>
<<if $madi_stage >= 3 && $linda_stage >= 2>>
<<set _mlId = setup.madi.allyPending("linda")>>
<<if _mlId && setup.madi.landed(_mlId)>>
<<if _mlId is "lindaffm">>
<div class="hub-note">Linda catches your eye from the senior tables, looks two tables down at Madi Collins, and back at you. At last bell they're both coming to your closet.</div>
<<else>>
<div class="hub-note">Linda catches your eye from the senior tables and tips her head toward the east corridor: she has something on Madi, and it's waiting in your closet.</div>
<</if>>
<<elseif _mlId>>
<<elseif setup.madi.canAsk("linda")>>
<<if $energy >= 1>>
<div id="madi-linda">
<div><<link "Catch Linda at the salad bar: she shares a locker room with Madi Collins (1 energy)">><<run setup.madi.ask("linda")>><<replace "#madi-linda">><p>Linda is at the salad bar with a tray she isn't going to eat. You tell her, low, what you need: Madi Collins, the locker room, the same stories that sent Linda over to the black side. She doesn't ask why. She smiles into the croutons and says she'll tell it better this time.</p><<statchange "energy" -1>><div class="req">Linda will have something for you in your closet tomorrow.</div><</replace>><</link>></div>
<<if setup.madi.canAsk("lindaffm")>>
<div><<link "Ask Linda to stop telling Madi about it and bring her to your closet (1 energy)">><<run setup.madi.ask("lindaffm")>><<replace "#madi-linda">><p>Linda hears you out at the salad bar with a cherry tomato halfway to her mouth, and puts it back on the tray.</p><<speech "Linda" "She's been asking me if it's you. I keep telling her she has to see it to believe it." "linda">><p>She doesn't ask what you want with Madi Collins. She asks whether she gets to keep her clothes on while Madi watches - obviously, no.</p><<statchange "energy" -1>><div class="req">Linda will bring her to your closet at last bell tomorrow (2 energy).</div><</replace>><</link>></div>
<</if>>
</div>
<<else>>
<div class="req">Linda could work on Madi Collins in the locker room, but catching her takes 1 energy.</div>
<</if>>
<<elseif setup.madi.favorUsed()>>
<div class="hub-note">Linda is at the senior tables. You've already called in today's favor for Madi.</div>
<<else>>
<div class="hub-note">Linda wants a few days before she corners Madi again, until day <<= setup.madi.allyNext("linda")>>.</div>
<</if>>
<</if>>
<</widget>>
/* The closet's Madi entries under the board. _ablock comes from the
<<albrightcheck>> the Closet has already run. */
<<widget "madicloset">>
<<if $pollock_stage >= 5>>
<<if setup.madi.requisitions().length > 0>>
[[Fill in one of Pollock's signed blanks for Madi|Madi Requisition]]<br>
<<elseif setup.madi.top() < 3 && not setup.madi.favorUsed()>>
<div class="hub-note">Pollock's signed blanks are in the drawer, but Madi isn't ready to be put in a room with you yet: either meter at 3.</div>
<</if>>
<</if>>
<<if setup.madi.lockerWaiting().length > 0>>
<div class="hub-note">A package for Madi Collins is on the shelf, waiting for her locker.<<if $pollock_stage >= 5>> An open work order gives you the hour.<<else>> Pollock's open work orders will give you the hour, once her first pink slip comes.<</if>></div>
<</if>>
<<if setup.madi.landed("linda")>>
<<if _ablock == 4>>
<div class="hub-note">Linda has news about Madi, but there's no room for her behind the yearbook's boxes. It keeps until day $albright_block_until.</div>
<<else>>
<div class="hub-note">Linda slipped in behind you and locked the door.</div>
[[Hear what she has on Madi|Madi Linda Report]]<br>
<</if>>
<</if>>
/* Linda brings Madi down herself (Phase 4): at last bell, 2 energy. */
<<if setup.madi.landed("lindaffm")>>
<<if _ablock == 4>>
<div class="hub-note">Linda wants to bring Madi Collins down here, but there's no room for three behind the yearbook's boxes. It keeps until day $albright_block_until.</div>
<<elseif $school_time isnot "afternoon">>
<div class="hub-note">Linda is bringing Madi Collins to your closet at last bell, in the afternoon.</div>
<<elseif $energy < 2>>
<div class="req">Linda and Madi Collins are outside your closet door, and you need 2 energy for what Linda has in mind.</div>
<<else>>
<div class="hub-note">There's a knock at last bell: Linda, and behind her, holding her camera bag against her chest, Madi Collins.</div>
[[Let them in (2 energy)|Linda Madi Closet]]<br>
<</if>>
<</if>>
<<if _ablock == 4 && not $madi_seen.includes("archive")>>
[[Go through the yearbook's boxes|Madi Archive]]<br>
<</if>>
<</widget>>
/* The file's Grayson panel (Phase 3), from the affair note until her father
has had his say. Two ways to the truth, and starting one closes the
other: the walk-in (the minute from Gunn or the sign-out sheet, then the
equipment-room blank) and the footage (Terrence pulls it, Adriana cuts it
overnight, and you drop it in her DMs from here). Grayson's summons comes
before either. */
<<widget "madigrayson">>
<<if setup.madi.revealOpen()>>
<<if setup.madi.pending("summons")>>
<div class="hub-note">Grayson's summons comes first: neither way to the truth starts until he has sat on Pollock's bench.</div>
<</if>>
<<if not setup.madi.revealMoving()>>
<div class="hub-note">She only has to find out once, so whichever way you start closes the other.<<if $pollock_stage >= 5 && not setup.madi.hasSeen("summons") && not setup.madi.pending("summons")>> Grayson's summons has to come before either of them.<</if>></div>
<</if>>
<<if setup.madi.hasSeen("pulled")>>
<div class="hub-note">You went with the footage, which rules out the walk-in. The minute and the equipment-room blank won't get you anything now.</div>
<<elseif setup.madi.pending("equipment")>>
<div class="hub-note">The walk-in: <<= setup.madi.blankLine("equipment")>>.</div>
<<elseif setup.madi.hasSeen("keylog")>>
<div class="hub-note">The walk-in: you have the minute, six-forty. One of Pollock's blanks can send her to photograph the equipment room right then (+3 to whichever meter leads).</div>
<<elseif $gunn_case == 1>>
<div class="hub-note">The walk-in needs the minute, and Coach Gunn keeps the gym wing's key log (gym wing, afternoon).</div>
<<else>>
<div class="hub-note">The walk-in needs the minute. Coach Gunn won't give it to you, but the sign-out sheet by the equipment-room door will, on an open work order.</div>
<</if>>
<<if setup.madi.clipReady()>>
<<if setup.madi.dark()>>
<div class="hub-note">Adriana's cut is ready, but there's no signal to send it on.</div>
<<else>>
<div class="hub-item" id="madi-drop"><<link "Drop Adriana's cut in her DMs, from an account with no name (Spite +2, Curiosity +1 once she watches it)">>
<<set $madi_reveal = 2>>
<<replace "#madi-drop">><div class="hub-note">The clip is in her DMs.</div><</replace>>
<<replace "#madi-output">>
<<pic "img/school/madi/affair_still.jpg" "story">>
<p>Adriana's cut runs ninety seconds. It opens on the camera over the door: Grayson and Lola Fae going in a minute apart, the light coming on under it. Then it cuts to the camera in the corner of the room, zoomed in on Grayson's face and his dick deep inside her ass. Motherfucker tries better for this butt slut than for his girlfriend.</p>
<p>It goes into Madi's DMs at a quarter to nine, from an account with no picture, no name and no posts, fifteen minutes before her phone is due on the kitchen counter.</p>
<div class="req">The house cameras will show you when she opens it.</div>
<</replace>>
<<replace "#madi-board">><<madiboard>><</replace>>
<</link>></div>
<</if>>
<<elseif setup.madi.hasSeen("pulled")>>
<div class="hub-note">The footage: Adriana is cutting what Terrence pulled off the recorder. It's ready tomorrow.</div>
<<elseif setup.madi.pending("equipment")>>
<div class="hub-note">You went with the walk-in, so the footage is out and Terrence leaves the recorder alone.</div>
<<elseif setup.madi.pullOpen()>>
<div class="hub-note">The footage: Terrence can pull the equipment room's camera off the recorder (room 021, afternoon, 1 energy), and Adriana cuts it overnight.</div>
<</if>>
<<elseif $madi_reveal == 2 && not setup.madi.hasSeen("clipwatch")>>
<div class="hub-note">The clip is in her DMs. The house cameras will show you when she opens it.</div>
<<elseif $madi_reveal > 0 && not setup.madi.hasSeen("father")>>
<div class="hub-note">She knows. Her father hears about it at dinner, and the next look through the kitchen camera<<if $day < $madi_next_day>> tomorrow<</if>> shows it.</div>
<</if>>
<</widget>>
/* The file's endings board (Phase 4), from 5 on either meter: both cards
with their meters, what still holds them back (setup.madi.approachWait)
and, once a card's meter is at setup.madi.max, the link that chooses it. Choosing
(<<madichoose 1|2>>) sets $madi_approach and stage 6 and closes the other
card. Her father's double shift is two days out: the next day she brings
you a print at last bell and you make the offer (Madi Print, the day in
$madi_next_day), and the night is the day after that. */
<<widget "madiapproach">>
<<set _maWait = setup.madi.approachWait()>>
<div class="board-title">How this could end</div>
<<for _ap range setup.madi.approaches>>
<div class="board-entry">
<div class="board-row"><span class="board-label">_ap.label</span><span class="board-value"><<if $madi_approach == _ap.id>>chosen<<elseif $madi_approach > 0>>closed<<elseif _ap.meter is "spite">>Spite $madi_spite / <<= setup.madi.max>><<else>>Curiosity $madi_curiosity / <<= setup.madi.max>><</if>></span></div>
<div class="board-desc">_ap.desc<<if _ap.id == 2 && $incel_path == 2>> The boys from the club will follow.<</if>></div>
<<if _ap.id == 2 && $madi_approach == 0 && not setup.madi.groupPossible()>>
<div class="board-desc">It needs a third man you trust: the boys from room 021 on the embrace route, or William, after your swap night.</div>
<</if>>
<<if setup.madi.approachOpen(_ap.id)>>
<<capture _ap>>
<div class="board-desc"><<link `"Choose it: " + _ap.label`>><<madichoose _ap.id>><</link>></div>
<</capture>>
<</if>>
</div>
<</for>>
<<if $madi_approach == 0>>
<div class="board-desc"><<if _maWait>>_maWait<<else>>A card opens when its meter reaches <<= setup.madi.max>>.<</if>> Whichever night you choose, the other meter shows on it too once it's at <<= setup.madi.max / 2>>.</div>
<</if>>
<</widget>>
<<widget "madichoose">>
<<set $madi_approach = _args[0]>>
<<set $madi_stage = 6>>
<<set $madi_next_day = $day + 1>>
<<replace "#madi-approach">><<madiapproach>><</replace>>
<<replace "#madi-board">><<madiboard>><</replace>>
<<replace "#madi-approach-out">>
<<if _args[0] == 1>>
<p>You stop pushing her. There are no more whispers, and for the first time since Adriana's box went on the rack her feed is just her feed. Adriana pulls her father's duty roster off the facility's scheduling server: a double shift in two days' time, six in the evening to six in the morning, and nobody awake in that house all night but whoever Madi lets in.</p>
<p>The offer is yours to make, and she'll come looking for you to hear it.</p>
<div class="req">From tomorrow, at last bell (Hallway, afternoon).</div>
<<else>>
<p>The dot on her father's map goes to the wall on every run now, and each time it stands at the checkpoint a little longer. Somebody is going to offer to take her across, and you make sure that somebody is you.</p>
<p>Adriana pulls her father's duty roster off the facility's scheduling server: a double shift in two days' time, six in the evening to six in the morning. While he's counting other people's heads, Adriana will keep Madi's dot asleep in her bed at home.</p>
<p>What's left is the checkpoint, the hood and Jamal.</p>
<div class="req">From tomorrow, she'll come looking for you at last bell (Hallway, afternoon). After that you can gather the gangbang team.</div>
<</if>>
<</replace>>
<</widget>>
<<widget "madipush">>
<<set $madi_push_day = $day>>
<<replace "#madi-push">><div class="hub-note">You've pushed her feed today.</div><</replace>>
<<replace "#madi-output">>
/* A random line from setup.madi.pushLines (madi.js), picked before the
meters move, so whispers match the tier she was at when you sent them. */
<p><<= setup.madi.pushLine(_args[0])>></p>
<<madiup `_args[0]` 1>>
<</replace>>
<<replace "#madi-board">><<madiboard>><</replace>>
<</widget>>
<<widget "madibuy">>
<<set _mbItem = setup.madi.item(_args[0])>>
<<if $money < _mbItem.price>>
<<replace `"#madi-item-" + _args[0]`>><div class="req">_mbItem.name costs <<print "$" + _mbItem.price>>, and you have <<print "$" + $money>>.</div><</replace>>
<<else>>
<<set $madi_items[_args[0]] = { due: $day + 1, via: _args[1], step: 0 }>>
<<replace `"#madi-item-" + _args[0]`>><<if _mbItem.ordered>><div class="hub-note"><<= _mbItem.ordered>></div><</if>><div class="hub-note">_mbItem.name: ordered, at <<if _args[1] is "house">>her house<<else>>your closet<</if>> tomorrow.</div><<statchange "money" `-_mbItem.price`>><</replace>>
<</if>>
<</widget>>
<<widget "madicamera">>
<<set $madi_camera_day = $day>>
<<set _cam = setup.madi.nextScripted()>>
<<if _cam>>
<<switch _cam.id>>
<<case "rules">>
<<run $madi_seen.push("rules")>>
<<pic "img/school/madi/cctv_kitchen.jpg" "story">>
<p>The kitchen camera sits in a corner of the ceiling and looks straight at the fridge. The list taped to it is numbered and written in a corrections officer's block capitals, and at the top it says HOUSE RULES.</p>
<<case "inspection">>
<<run $madi_seen.push("inspection")>>
<!-- VIDEO: the kitchen table at night - her father scrolling through her phone, Madi across from him -->
<p>Nine o'clock at the kitchen table. Her father holds out his hand and she puts her phone in it. He scrolls for four minutes without a word, stops, and turns the screen toward her, and she tells him it's an ad and they show up by themselves. He keeps the phone overnight anyway.</p>
<<madiup "spite" 1>>
<<run setup.madi.learn("inspection")>>
<<case "laurenintro">>
/* Lauren's first scene on her own, with Madi at school: her face on the
cameras ($lauren_stage 1) before any other scene shows her. DRAFT. */
<<run $madi_seen.push("laurenintro")>>
<!-- IMAGE: the Collins kitchen mid-morning from the ceiling camera - Lauren alone at the counter in a silk robe, the coffee maker going -->
<p>Ten in the morning. Madi is in second period and her father's truck is parked at Facility 9, so the kitchen camera has the house to itself until Lauren Phillips comes down in a silk robe and puts the coffee on. <<if setup.madi.laurenMet()>>It's the redhead from the meet, the one who thanked you for the course.<<else>>It's your first proper look at the stepmother from the file: a redhead somewhere in her forties, in a robe too nice for a house where nobody sees her in it.<</if>></p>
<<pic "img/lauren/kitchen_intro.jpg" "story">>
<p>She drinks her coffee standing up and reads the HOUSE RULES while she does it, as if checking for anything new. Then she rinses the mug, dries it and puts it back in the cupboard, handle facing out like the others.</p>
<<set $lauren_stage = Math.max($lauren_stage, 1)>>
<<case "clipwatch">>
/* The clip route's reveal (Phase 3): the first check after Adriana's cut
went into her DMs. Her father's dinner follows the next day. */
<<run $madi_seen.push("clipwatch")>>
<<video "img/school/madi/affair_2.webm">>
<p>It's ten o'clock, and her phone should be on the kitchen counter. It's under the covers with her instead, lit up with a message request from an account with no name, and she opens it. You watch her watch it: Grayson and Lola Fae, the goth girl from the art wing, over the vaulting horse, the same footage you have, and the thing she told him good girls don't do.</p>
<<pic "img/school/madi/affair_check.jpg" "story">>
<p>She plays it again, then again with the sound up as far as she dares, until she isn't watching Grayson at all, only the girl bent over in front of him and how much she's enjoying it. She pauses it on the girl's face, and her other hand, under the covers, start exploring the areas she wouldn't dared touching before.</p>
<<madiup "spite" 2>><<madiup "curiosity" 1>>
<<set $madi_next_day = $day + 1>>
<<run setup.madi.learn("clip")>>
<<case "father">>
/* Both reveal routes end here (Phase 3), the day after she found out: she
tells her father at dinner and he takes Grayson's side. Stage 5. */
<<run $madi_seen.push("father")>>
<!-- IMAGE: dinner at the Collins table from the kitchen camera - her father at the head, Madi with something on the table in front of her, Lauren looking at her plate -->
<p>Headcount at dinner. Madi waits until grace is over, and then she tells her father she has ended it with Grayson, and why.</p>
<<if $madi_reveal == 1>>
<p>She sets the yearbook camera on the table between the plates with the equipment room on its little screen, and he doesn't pick it up.</p>
<<else>>
<p>She slides her phone across the table with the clip open on it. He pushes it back without pressing play, and asks who sent it to her, who else has her number, and why she's reading messages from strangers.</p>
<</if>>
<<speech "Collins" "The Holts are a good family, and that boy has a real man's handshake. Whatever you think you saw, you'll apologize to him at church on Sunday.">>
<<pic "img/school/madi/affair_reveal_dad.jpg" "story">>
<p>Lauren looks at her plate the whole time. Madi finishes every bite, because leaving food isn't allowed, and leaves without saying goodnight. Upstairs she sits on her bed in the dark for a long time, and when she finally lies down she's facing the wall with her fists closed.</p>
<<madiup "spite" 2>>
<<set $madi_stage = 5>>
<<set $madi_next_day = $day + 1>>
<<run setup.madi.learn("sided")>>
<div class="req">Her father took Grayson's side, and now her spite has a new target. Adriana will want a day to go through what he brings home from work.</div>
<<case "reports">>
/* Phase 4: the Facility 9 reports you sent her anonymously ($madi_truth 1),
the first check after Adriana dropped them in her DMs. Spite +2. */
<<run $madi_seen.push("reports")>>
<!-- IMAGE: Madi in bed under the covers, her face lit by a scanned form on her phone -->
<p>She opens them under the covers at a quarter to nine, the phone's brightness down as far as it goes: a message from an account with no name, and three scanned forms with the Facility 9 crest at the top of each. You watch her read the first one twice before she understands what it is, and then she reads the rest without stopping.</p>
<p>A cell extraction, six hours in a restraint chair and a fall down a flight of stairs that nobody else was on, and at the bottom of every page the same signature, in the same block capitals as the list on the fridge.</p>
<!-- IMAGE: the Collins kitchen at two in the morning from the ceiling camera - Madi at the fridge in the dark, her phone held up beside the house rules -->
<p>At two in the morning the kitchen camera catches her downstairs in the dark, holding her phone up beside the house rules and looking from one to the other. She stands there a long time. Then she goes back upstairs past her father's door without making a sound.</p>
<<madiup "spite" 2>>
<<run setup.madi.learn("sent")>>
<<case "ninety">>
<<run $madi_seen.push("ninety")>>
<<pic "img/school/madi/ninety.jpg" "story">>
<p>Grayson is in her room with the door open the regulation six inches. He lasts about ninety seconds on top of her with most of his shirt still on and checks his phone before he's off her, and she watches the ceiling the whole time.</p>
<<madiup "spite" 1>>
<<case "upstairs">>
<<set _pk = setup.madi.item(_cam.item)>>
<<pic "img/lauren/delivery.jpg" "story">>
<p>The doorbell camera catches the courier and Lauren signing for the box. It's addressed to Madi. Lauren carries it upstairs into her own bedroom and shuts the door, and twenty minutes later it's sitting on Madi's bed, taped back up.</p>
<<set $madi_items[_cam.item].step = 1>>
<<set $lauren_stage = Math.max($lauren_stage, 2)>>
<<case "package">>
<<set _pk = setup.madi.item(_cam.item)>>
<<switch _cam.item>>
<<case "toy">>
<p>The box is open on her bed, and it isn't what she expected: nothing shaped like anything she'd have to explain, just a white wand with a round head and a long cord. She reads the card twice, plugs it in behind the bed, and switches it on at the lowest setting with the covers pulled up to her chin.</p>
<<pic "img/school/madi/wand_1.jpg" "story">>
<p>Two minutes later it's turned all the way up. You watch her find out what the girls in the confession threads were talking about: her back comes off the mattress, her free hand claws at the sheet, and she comes so hard she has to bite the pillow. It's the first time in her life, and you can see her understand that. Afterwards she lies there laughing without a sound, staring at the ceiling with the wand still buzzing against her thigh.</p>
<<pic "img/school/madi/wand_2.jpg" "story">>
<<case "lingerie">>
<<pic "img/school/madi/lingerie_1.jpg" "story">>
<p>Her door has no lock, so she wedges the desk chair under the handle and gives herself a photoshoot in the set you sent her: creamy white, with little strawberries all over it and green edging like the leaves. It looks amazing on her, and frame by frame on her own screen, you watch her realize it, maybe for the first time.</p>
<<pic "img/school/madi/lingerie_2.jpg" "story">>
<<case "paperback">>
<<pic "img/school/madi/book.png" "story">>
<p>She reads the paperback under the covers by the light of her phone, with a page already folded down. The couple on the cover is exactly who you'd guess.</p>
<<case "anklet">>
<<pic "img/school/madi/anklet.jpg" "story">>
<p>She turns the anklet over in her palm, looks up what the spade means and sits very still for a while before she puts it on.</p>
<</switch>>
<<set $madi_items[_cam.item].step = 2>>
<<madiup `_pk.main` 2>><<madiup `_pk.side` 1>>
<<case "ipad">>
<<run $madi_seen.push("ipad")>>
<<pic "img/lauren/collateral.jpg" "story">>
<p>The shared iPad on the kitchen counter is still logged into Madi's feed. Lauren scrolls it over her coffee, stops on one of the black athletes you put there, and watches the whole clip twice. Collateral damage.</p>
<<set $lauren_stage = Math.max($lauren_stage, 2)>>
<<case "laurenclips">>
/* $lauren_stage 3: the clips from Madi's feed, on Lauren's own phone now.
From stage 2 once Madi's leading meter is in tier 2. DRAFT. */
<<run $madi_seen.push("laurenclips")>>
<!-- IMAGE: the kitchen from the ceiling camera - Lauren at the counter on her own phone, the shared iPad face down by the fruit bowl -->
<p>Madi's at practice, and the shared iPad lies face down by the fruit bowl, untouched all day. Lauren is on her own phone instead. Over her shoulder the ceiling camera can just make out the screen: the same sprinters and the same running back Adriana planted in Madi's feed, only the account is Lauren's, and she followed them herself.</p>
<p>She watches with the sound off and her chin in her hand. When the garage door starts up she locks the screen, lays the phone face down next to the iPad and goes to start dinner.</p>
<<set $lauren_stage = Math.max($lauren_stage, 3)>>
<<case "name">>
/* The first time she says it: only after first contact and with her leading
meter at 9 (setup.madi.nextScripted). Repeats come from the everyday pool. */
<<run $madi_seen.push("name")>>
<<pic "img/school/madi/name.jpg" "story">>
<p>It's late and she thinks the house is asleep. With her hand between her legs she says a name into her pillow, quietly at first, like she's trying it out, and then again, not quietly at all. It's the one on your timesheet: $player_surame.</p>
<</switch>>
<<else>>
<<switch setup.madi.randomEvent()>>
<<case "dinner">>
<!-- IMAGE: dinner at the Collins table, her father at the head of it -->
<p>Headcount at dinner: her father at the head of the table, grace, then questions about her day that are really questions about where she's been.</p>
<<case "homework">>
<!-- IMAGE: Madi at the kitchen island under the rules list, her phone face down -->
<p>She does her homework at the kitchen island under the rules list, with her phone face down beside her like it's being punished.</p>
<<case "call">>
<!-- IMAGE: Madi on her bed on the phone, nodding along -->
<p>She's on the phone with Grayson in her room, agreeing to what she'll wear on Saturday.</p>
<<case "mirror">>
<<pic "img/school/madi/kit.jpg" "story">>
<p>She poses at the mirror in her race kit and turns to see herself from behind, but she doesn't take a single picture.</p>
<<case "search">>
<!-- IMAGE: her phone screen - a search typed out, the cursor blinking -->
<p>Late, in bed, she types a search, looks at it for a long time, and deletes it one letter at a time.</p>
<<case "pillow">>
<!-- VIDEO: Madi grinding on her pillow in the dark -->
<p>She rides her pillow in the dark with her face pressed into the other one, slow at first and then not.</p>
<<case "paperback">>
<!-- IMAGE: the paperback open face down on her pillow -->
<p>She's under the covers with the paperback again, back on the same chapter.</p>
<<case "toy">>
<<pic "img/school/madi/wand_4.jpg" "story">>
<p>She's under the covers with the wand again, turned all the way up, with the other pillow pressed over her face as if that could stop the house hearing what it does to her.</p>
<<case "toyclip">>
<<pic "img/school/madi/wand_3.jpg" "story">>
<p>She's back with the wand, and this time her phone is propped on the pillow playing something from the feed you built her.</p>
<<case "yearbook">>
<<pic "img/school/madi/yearbook_1.jpg" "story">>
<p>She sets the yearbook camera on her desk on a timer and undresses in front of it.</p>
<<pic "img/school/madi/yearbook_2.jpg" "story">>
<<case "name">>
/* Repeat only - it can't roll before the scripted first time. */
<!-- VIDEO: Madi in the dark, touching herself, saying his name again -->
<p>She's saying your name in the dark again, $player_surame, into the pillow she keeps pressed over her mouth, and tonight she doesn't stop until she's finished.</p>
<<case "lauren_counter">>
/* Lauren home alone (setup.madi.laurenEvent), from her first scene on.
The shared scenes read by $lauren_stage. DRAFT. */
<<if $lauren_stage >= 3>>
<<pic "img/lauren/counter_3.jpg" "story">>
<p>Mid-morning, with Madi at school. Lauren propped the phone against the fruit bowl, a clip playing with the sound off, and her hand is dealong with something wet in her panties.</p>
<<elseif $lauren_stage >= 2>>
<<pic "img/lauren/counter_2.jpg" "story">>
<p>Mid-morning, with Madi at school. Lauren wipes the counter around the shared iPad instead of moving it. The feed on it is still Madi's, and she <<sayit "[turns it face down, then face up again|lets the clip play out while she works|stops wiping for the length of a highlight reel]">>.</p>
<<else>>
<<pic "img/lauren/counter_1.jpg" "story">>
<p>Mid-morning, with Madi at school and the house to herself. Lauren wipes the counter under HOUSE RULES <<sayit "[twice|three times]">>, then presses the curled corner of the tape flat again.</p>
<</if>>
<<case "lauren_courier">>
<<if $lauren_stage >= 3>>
<<pic "img/lauren/courier_3.jpg" "story">>
<p>The doorbell camera, early afternoon, with Madi still at school. Lauren has the door open before the courier can ring, hair down and lipstick on for a parcel, and she keeps him talking on the step long after she's signed. He's a tall black guy in a company polo, and she laughs at something he says with one hand on the door frame.</p>
<<elseif $lauren_stage >= 2>>
<<pic "img/lauren/courier_2.jpg" "story">>
<p>The doorbell camera, early afternoon, with Madi still at school. The courier has a parcel for next door, and he's a tall black guy in a polo <<sayit "[two sizes too small|soaked through from the rain]">>. Lauren signs for it to save him the trip, then stays in the doorway and watches him all the way back to his van.</p>
<<else>>
<<pic "img/lauren/delivery.jpg" "story">>
<p>The doorbell camera, early afternoon, with Madi still at school. A courier brings a parcel for next door, and Lauren signs for it to save him the trip. She thanks him without quite looking at him and has the door shut before he's off the step.</p>
<</if>>
<<case "lauren_nine">>
<!-- IMAGE: the kitchen at nine from the ceiling camera - Lauren's phone on the counter under the rules list, the room dark past it -->
<p>Her father is on a double and Madi's on the team bus back from an away meet. <<if $lauren_stage >= 3>>At nine Lauren's phone isn't on the counter under the rules. It's on the arm of the sofa beside her, lit up, and it stays there until headlights turn into the drive.<<elseif $lauren_stage >= 2>>At nine Lauren puts her phone on the counter under the rules, with nobody home to count it, and stands there a moment. Then she picks it back up and takes it to the sofa.<<else>>At nine on the dot Lauren puts her phone on the counter under the rules, with nobody home to count it, and goes to fold laundry.<</if>></p>
<<case "lauren_ipad">>
<!-- IMAGE: the kitchen from the ceiling camera - Lauren at the counter with the shared iPad, a coffee going cold beside it -->
<p>Madi's at school, and Lauren has the shared iPad again. The feed on it is still Madi's, and she doesn't log out. She watches <<sayit "[a sprinter's training reel|a boxer skipping rope with his shirt off|a running back's highlight reel]">> with the sound off while her coffee goes cold, then puts the iPad back exactly where it was, at exactly the same angle.</p>
<<case "lauren_history">>
<!-- IMAGE: the kitchen at five from the ceiling camera - Lauren with the iPad's settings open, the oven clock behind her -->
<p>Five o'clock, with Madi at practice and the truck due at six. Lauren clears the shared iPad's history, then her own phone's, then goes back to the iPad and checks it again. She does it every day now.</p>
<<case "lauren_course">>
/* Only once you've met her at the race (setup.madi.laurenMet). */
<!-- IMAGE: the shared iPad over Lauren's shoulder from the ceiling camera - the school's athletics page, a photo from the home meet with the finish chute in the corner -->
<p>With Madi at school, Lauren has the school's athletics page open on the iPad, on the photos from the home meet. She scrolls to the end of the gallery and stops on one with the finish chute in the corner, where a janitor is coiling rope with his sleeves rolled. She <<sayit "[zooms in on him|looks at it for a long time|saves it, then deletes it]">>, and closes the page when <<sayit "[the dryer buzzes|her phone lights up|the garage door starts up]">>.</p>
<</switch>>
<</if>>
<</widget>>/* The Madi file on the hideout laptop (Laptop, from $madi_stage 3). The body
is shared with the burner phone in the school closet (Madi Burner); each
wrapper keeps its own way out. */
<<include "Madi File Body">>
[[Close the file|Laptop]]/* The Madi file on the burner phone behind the paint cans (Closet, from
$madi_stage 3). Same body as the laptop's. */
<<include "Madi File Body">>
[[Put the burner back|Closet]]/* Everything the Madi file shows (docs/madi-build-plan.md, Phases 1-2): her
meters, today's feed push and camera check (no signal while the box is
dark), where her favors stand, the store from a meter at 4, deliveries,
what the file knows, and from a meter at 5 the two ways this could end.
Phase 3: the day after first contact, the first look at the file brings
Adriana's news about Grayson (the "affair" note), and the Grayson panel
follows the reveal from there. Phase 4: the endings board chooses the
approach (<<madiapproach>>, its result in #madi-approach-out). Actions
resolve inline and write their result into #madi-output. DRAFT text. */
<<if $madi_stage < 3>>
<p>There's nothing in her file yet.</p>
<<else>>
<<pic "img/school/madi/portrait.jpg" "story">>
<<if setup.madi.affairDue()>>
<<run setup.madi.learn("affair")>>
<<pic "img/school/madi/affair_still.jpg" "story">>
<div class="req">Adriana has added something to the file overnight: Grayson Holt, the gym wing's wifi after crew, and Lola Fae, the goth girl from your detention room.</div>
<</if>>
<div class="closet-board">
<div class="board-title">The Madi file</div>
<div id="madi-board"><<madiboard>></div>
</div>
<div class="hub-panels">
<<hubgroup "Her feed">>
<div id="madi-push">
<<if setup.madi.dark()>>
<div class="hub-note">No signal. A district firmware update reset the switch port Adriana's box sits on, and her way into Madi's phone went down with it. Terrence can put it back, at school in the afternoon.</div>
<<elseif $madi_approach > 0>>
<div class="hub-note">Her ending is chosen, and you leave her feed alone now.</div>
<<elseif setup.madi.full("curiosity") && setup.madi.full("spite")>>
<div class="hub-note">Both meters are full. There's nothing left to push.</div>
<<elseif $madi_push_day >= $day>>
<div class="hub-note">You've pushed her feed today.</div>
<<elseif setup.madi.top() < 2>>
<div class="hub-item"><<link "Tune her feed toward black men (Curiosity +1)">><<madipush "curiosity">><</link>></div>
<div class="hub-item"><<link "Tune her feed toward boys who don't deserve her (Spite +1)">><<madipush "spite">><</link>></div>
<<else>>
<div class="hub-note">Whispers: fake accounts, confession threads and a friend in her DMs, all Adriana's.</div>
<<if not setup.madi.full("curiosity")>>
<div class="hub-item"><<link "Whisper to her about black men (Curiosity +1)">><<madipush "curiosity">><</link>></div>
<</if>>
<<if not setup.madi.full("spite")>>
<div class="hub-item"><<link "Whisper to her about the men who run (and ruin) her life (Spite +1)">><<madipush "spite">><</link>></div>
<</if>>
<</if>>
</div>
<</hubgroup>>
<<hubgroup "The house cameras">>
<div id="madi-cam">
<<if setup.madi.dark()>>
<div class="hub-note">No signal from the house either. Adriana's way in runs through the box.</div>
<<elseif $madi_camera_day >= $day>>
<div class="hub-note">You've watched the house today.</div>
<<else>>
<div class="hub-item"><<link "Check the house cameras">><<replace "#madi-cam">><div class="hub-note">You've watched the house today.</div><</replace>><<replace "#madi-output">><<madicamera>><</replace>><<replace "#madi-board">><<madiboard>><</replace>><</link>></div>
<</if>>
</div>
<</hubgroup>>
<<hubgroup "Favors">>
<<madifavors>>
<</hubgroup>>
<<hubgroup "Grayson">>
<<madigrayson>>
<</hubgroup>>
<<if setup.madi.top() >= 4>>
<<hubgroup "The store">>
<div class="hub-note">An ordinary online store, next-day delivery. The house means Lauren signs for it.</div>
<<for _it range setup.madi.items>>
<<if not setup.madi.sent(_it.id)>>
<<capture _it>>
<div class="hub-item" @id="'madi-item-' + _it.id">_it.name, <<print "$" + _it.price>> (<<= setup.madi.itemTag(_it)>>): <<link "to her locker">><<madibuy `_it.id` "locker">><</link>> or <<link "to the house">><<madibuy `_it.id` "house">><</link>></div>
<</capture>>
<</if>>
<</for>>
<</hubgroup>>
<</if>>
<<hubgroup "Deliveries">>
<<for _it range setup.madi.items>>
<<set _d = $madi_items[_it.id]>>
<<if _d && _d.step < 2>>
<div class="hub-note">_it.name: <<if _d.via is "house">><<if _d.step == 1>>in her room now<<elseif $day < _d.due>>on its way to her house<<else>>at the house, and Lauren signed for it<</if>><<else>><<if _d.step == 1>>in her locker<<elseif $day < _d.due>>on its way to your closet<<else>>in your closet, waiting for her locker<</if>><</if>>.</div>
<</if>>
<</for>>
<</hubgroup>>
</div>
<div id="madi-output"></div>
<details class="closet-board board-fold">
<summary class="board-title">What the file knows</summary>
<<for _nid range $madi_notes>>
<<set _note = setup.madi.notes[_nid]>>
<<if _note>>
<div class="board-entry">
<div class="board-row"><span class="board-label">_note.label</span></div>
<div class="board-desc">_note.text</div>
<<if _nid is "rules">>
<ol class="board-desc">
<<for _rule range setup.madi.rules>>
<<if setup.madi.ruleBroken(_rule)>><li><s>_rule.text</s><<if _rule.broken>> _rule.broken<</if>></li><<else>><li>_rule.text</li><</if>>
<</for>>
</ol>
<<elseif _nid is "tracker">>
<div class="board-desc"><<= setup.madi.dot()>></div>
<</if>>
</div>
<</if>>
<</for>>
</details>
<<if setup.madi.top() >= 5 || $madi_approach > 0>>
<div class="closet-board" id="madi-approach"><<madiapproach>></div>
<div id="madi-approach-out"></div>
<</if>>
<</if>>/* Pollock's signed blanks (docs/madi-build-plan.md, Phase 2), from the
closet drawer once her first pink slip is in ($pollock_stage 5), the file
is open and either meter is at 3. Filling one uses the day's favor and
adds 1 to Mrs. Albright's file (the carbon), and Pollock's answer is
clipped to his timesheet the next morning (<<madislips>>). The list is
setup.madi.requisitions(): the detention hour, and Phase 3's one-offs as
their gates open (the unsung-heroes page, Grayson summoned, the equipment
room). DRAFT prose. */
<<set _rq = setup.madi.requisitions()>>
<<if _rq.length == 0>>
<p>There's nothing on Pollock's pad you can use for Madi today.</p>
[[Back to the closet|Closet]]
<<else>>
<!-- IMAGE: a pad of pink requisitions in the closet drawer, every one signed at the bottom in Pollock's hand -->
<p>Pollock's blanks are in the drawer under the shelf: a pad of pink requisitions with her signature already at the bottom of every one. Whatever you write above it, she has agreed to.</p>
<div id="choice-container">
<<for _rid range _rq>>
<<capture _rid>>
<<linkreplace `setup.madi.favors[_rid].blank + (setup.madi.favors[_rid].warn ? " (" + setup.madi.favors[_rid].warn + ")" : "")`>>
<<run setup.madi.ask(_rid)>>
<<replace "#output">>
<p><<= setup.madi.favors[_rid].filled>></p>
<div class="req">Pollock's answer comes back in the morning, clipped to your timesheet.</div>
[[Back to the closet|Closet]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em><<= setup.madi.favors[_rid].blank>></em></div><</replace>>
<</linkreplace>><br>
<</capture>>
<</for>>
[[Leave the pad in the drawer|Closet]]
</div>
<div id="output"></div>
<</if>>/* Britney's notes on Madi's session (Phase 2), at her office the afternoon
after you booked the theme: one of three, each once. The meter moves when
you hear it (+2 Curiosity or Spite by theme; the corrections dad adds the
"father" note), and she can book another two days later. It costs 2
energy because the notes come on her couch. The aide (restriction 1)
keeps it shut. PLACEHOLDER media: built on existing Britney clips the user
picks, so no Gallery card. DRAFT prose. */
<<albrightcheck>>
<<set _brId = setup.madi.allyPending("britney")>>
<<if $amber_stage < 6 || not _brId || not setup.madi.landed(_brId) || $school_time isnot "afternoon" || $energy < 2 || _ablock == 1>>
<p>Britney's door is shut, and she has no notes for you today.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<pic "img/school/councellor.webp" "location">>
<p>Britney locks the door behind you and pulls the blind before she opens the folder.</p>
<<switch _brId>>
<<case "britney_body">>
<p>"I did the whole speech," she says, and swings a leg over your lap to read it sitting on you. "Your body is yours. It isn't your boyfriend's and it isn't your daddy's and it isn't this school's. She sat there hugging her camera bag the whole time, like I was going to take it off her."</p>
<<if $madi_reveal > 0>>
<<speech "Britney" "Then right at the end, with her hand on the door handle, she asks me if it's normal that she isn't sad about Grayson. That mostly she's curious. About a black man. Not a particular one, she says, and she goes red to the ears saying it." "britney">>
<<else>>
<<speech "Britney" "Then right at the end, with her hand on the door handle, she asks me if it's normal to think about a black man while Grayson's on top of her. Not a particular one. Just a black man. Is that normal." "britney">>
<</if>>
<p>She drops the folder on the carpet and grinds down on you through the coveralls, slow, the way she says Madi said it.</p>
<<speech "Britney" "I told her it's the most normal thing in the world, and that half the girls in this building do it. Then I told her to lock her bedroom door, and she said she isn't allowed a lock." "britney">>
<<video "img/school/britney/additional_3.webm">>
<p>What she wants now is for you to do to her what Madi Collins thinks about, and all the way through it she keeps reminding you that confidentiality is a social construct.</p>
<!-- VIDEO: an existing Britney clip - the finish (the user picks) -->
<<case "britney_love">>
<p>"Healthy relationships," she says. "I gave her the worksheet, the one with the checklist. Does he go through your phone. Does he pick your clothes. Does he decide who your friends are. Does he make you feel small in front of other people."</p>
<<if $madi_reveal > 0>>
<<speech "Britney" "She ticked every box for Grayson in about ten seconds flat. Then she turned the sheet over and did it again for her father, and that column took her a lot longer." "britney">>
<p>She's on her knees by the couch before she's finished, unzipping you with the folder still in one hand.</p>
<<speech "Britney" "Oh, and she asked me how long it's supposed to last. The actual part. Grayson's was about ninety seconds, she said, and she's done apologizing for it." "britney">>
<<else>>
<<speech "Britney" "She ticked every box, honey. Every single one. Then she turned the sheet over and started a second column, and she didn't say who it was for." "britney">>
<p>She's on her knees by the couch before she's finished, unzipping you with the folder still in one hand.</p>
<<speech "Britney" "Oh, and she asked me how long it's supposed to last. The actual part. I asked her how long it lasts now, and she said about ninety seconds, and then she apologized for him." "britney">>
<</if>>
<<video "img/school/britney/additional_1.mp4">>
<p>Britney takes her time with you, as if she's making a point on Madi's behalf, and she doesn't stop at ninety seconds or anywhere near it.</p>
<!-- VIDEO: an existing Britney clip - the finish (the user picks) -->
<<case "britney_dad">>
<p>"Growing up with a corrections dad," she says, and for once she doesn't make a joke of the title. She reads it lying back on the couch with her skirt around her waist.</p>
<<speech "Britney" "Headcount at dinner, phone on the kitchen counter by nine, an app so he can watch her dot, lights out at ten, and at ten past he walks the hall to check." "britney">>
<<speech "Britney" "She's never locked a door in that house. Not her bedroom, not the bathroom. He took the locks off years ago and told her good girls don't need them." "britney">>
<p>She drops the folder and pulls you down on top of her by the collar of your coveralls.</p>
<<speech "Britney" "Twelve years in this job, and today I wanted to call the state on a man who works for the state. Fuck me like you're breaking one of his rules." "britney">>
<<video "img/school/britney/additional_0.mp4">>
<!-- VIDEO: an existing Britney clip - the finish (the user picks) -->
<</switch>>
<<madiup `setup.madi.favors[_brId].meter` 2>>
<<if setup.madi.favors[_brId].note>>
<<run setup.madi.learn(setup.madi.favors[_brId].note)>>
<div class="req">What Madi told Britney about her father is in the Madi file now.</div>
<</if>>
<<run setup.madi.done(_brId)>>
<<statchange "energy" -2>>
[[Back to work|Hallway]]
<</if>>/* Linda's report on her locker-room talk with Madi (Phase 2): waiting in
your closet from the day after you caught her at lunch. Curiosity +2 when
you hear it, then Linda wants 3 days before she tries again. Closet
storage (restriction 4) keeps her out. The lines come from
setup.madi.lindaReport(), by tier, and the ones about the janitor wait for
first contact. DRAFT prose. */
<<albrightcheck>>
<<if $madi_stage < 3 || not setup.madi.landed("linda") || _ablock == 4>>
<p>Your closet is empty except for the mop bucket and the hum of the light.</p>
[[Back to the closet|Closet]]
<<else>>
<<set _lr = setup.madi.lindaReport()>>
<<pic "img/school/linda/linda_2.jpg" "story">>
<p><<= _lr.open>></p>
<p><<= _lr.text>></p>
<p><<= _lr.close>></p>
<<madiup "curiosity" 2>>
<<run setup.madi.done("linda")>>
[[Back to the closet|Closet]]
<</if>>/* A sighting at her locker (Phase 2): the east corridor at last bell, from
the afternoon Hallway once her file is open. Repeatable, 2 energy. The late
shift (restriction 3) keeps you off it. How she looks follows her leading
meter (<<madisighting>>). DRAFT prose. */
<<albrightcheck>>
<<if $madi_stage < 3 || $school_time isnot "afternoon" || $energy < 2 || _ablock == 3>>
<p>The east corridor is empty.</p>
[[Back to the hallway|Hallway]]
<<else>>
<p>You find a reason to work the east corridor at last bell, the way you always do.</p>
<<madisighting "corridor">>
<<statchange "energy" -2>>
[[Back to work|Hallway]]
<</if>>/* An open work order spent on Madi (Phase 2): the locker deliveries waiting
in your closet go into her locker on the east corridor (step 0 -> 1), and
the next camera check plays her moment with it. The lock audit
(restriction 2) shuts it. DRAFT prose. */
<<openordercheck>>
<<set _lw = setup.madi.lockerWaiting()>>
<<if not _owoOK || $madi_stage < 3 || _lw.length == 0 || _ablock == 2>>
<p>There's nothing to take to her locker.</p>
[[Back to the hallway|Hallway]]
<<else>>
<!-- IMAGE: the east corridor during class - her locker open on its neat shelves -->
<p>The east corridor is empty in the middle of second period. Her locker opens to your master key like every other door in the building, and it's the neatest one on the corridor: textbooks in order, a spare running kit folded on the top shelf, a crew photo taped inside the door with Grayson in the middle of it.</p>
<<for _lid range _lw>>
<<switch _lid>>
<<case "toy">><p>The plain brown box goes on the top shelf in front of her chemistry book, where she'll see it before she sees anything else.</p>
<<case "lingerie">><p>The lingerie goes in under her spare running kit, still in its tissue paper.</p>
<<case "paperback">><p>The paperback goes in with her textbooks, spine out, where it doesn't match a single other thing on the shelf.</p>
<<case "anklet">><p>The anklet goes in the pocket of her spare hoodie, where her hand will find it.</p>
<</switch>>
<<set $madi_items[_lid].step = 1>>
<</for>>
<p>Whatever she does with it, the next look through the house cameras will show you.</p>
<<openorderpay>>
[[Back to the hallway|Hallway]]
<</if>>/* An open work order spent on Madi (Phase 2), once: her school file in the
records annex. It tells you what her father's confidentiality order says
and who's on his pickup list, and you leave it where the yearbook's
archive run will put it in her hands. Spite +1 and the "records" note.
DRAFT prose. */
<<openordercheck>>
<<if not _owoOK || $madi_stage < 3 || $madi_seen.includes("annex")>>
<p>Not the right time for this.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<run setup.madi.see("annex")>>
<!-- IMAGE: the records annex - steel drawers, one folder open under the strip light -->
<p>The records annex is a windowless room behind the front office, where the school keeps everything it would rather not throw away. COLLINS, MADISON is in the third drawer down, thicker than any student file has a reason to be.</p>
<p>On top is a confidentiality order in her father's block capitals. The family's address is protected, nothing is to be released to anybody who isn't on his list, and no photograph of the student is to appear in any school publication, which includes the yearbook she shoots every page of. Under it is his approved-pickup list: Raymond Collins, Lauren Phillips, Grayson Holt.</p>
<p>You put the file back one drawer up, in the folder the yearbook kids pull their archive photos from. At sixth period you're mopping the corridor outside when Madi comes down for a box of old team pictures and finds her own name instead. She reads the whole thing standing up, and the pickup list twice.</p>
<<openorderpay>>
<<madiup "spite" 1>>
<<run setup.madi.learn("records")>>
<<if $albright_stage >= 2 && random(1, 100) <= 25>>
<p>Mrs. Albright is at the front office counter when you come out of the annex. She looks at the door you came through, then at her watch, and writes something down.</p>
<<set $albright_heat += 1>>
<<set $albright_heat_day = $day>>
<</if>>
<div class="req">Her school file is in the Madi file now.</div>
[[Back to the hallway|Hallway]]
<</if>>/* An open work order spent on Madi (Phase 3), once: the sign-out sheet by
the gym wing's equipment-room door gives you the minute the walk-in needs.
It's the fallback for every Gunn whose vape case you didn't clear
($gunn_case != 1): with his case cleared, he hands you the same minute
himself (Madi Key Log). Sets "keylog" in $madi_seen and the note, which
opens the equipment-room blank. DRAFT prose. */
<<openordercheck>>
<<if not _owoOK || $gunn_case == 1 || not setup.madi.keylogDue()>>
<p>Not the right time for this.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<run setup.madi.see("keylog")>>
<<run setup.madi.learn("keylog")>>
<!-- IMAGE: the equipment-room door at the end of the gym wing corridor, a clipboard hanging on a nail beside it -->
<p>The gym wing is dead in the middle of second period, with every class on the far side of the building. The new equipment room is at the end of the corridor past the weight room, and its sign-out sheet hangs on a nail beside the door, because the coach decided years ago that nobody touches his equipment without a name on paper.</p>
<p>You read back a month of it. The rowers sign for ergs and the soccer team for nets, and twice a week, after crew, Grayson Holt signs for the room key itself at half past six. The column for what he took out is blank every time, and he has never once signed anything back in. There's no line for the girl who goes in with him, because the goth girl from your detention room isn't on any team and has no business in the gym wing at all.</p>
<p>The bin by the door is yours to empty, and this morning it has a black hair tie in it, a chip of black nail polish and a torn sachet of lube.</p>
<<if $gunn_case == -1>>
<p>Coach Gunn watches you read his sheet through the glass of his office.</p>
<</if>>
<p>Six-forty, then. By that time the door is shut and the light is on, and nobody inside is listening to the corridor.</p>
<<openorderpay>>
<div class="req">You have the minute. One of Pollock's blanks can send Madi to photograph the equipment room at six-forty.</div>
[[Back to the hallway|Hallway]]
<</if>>/* An open work order spent on Madi (Phase 2): an hour in the yearbook room
with her proofs wall, which shows how far she has come
(setup.madi.proofLine). No meter moves. Mrs. Albright advises the
yearbook, so once she's live she can walk in on it. DRAFT prose. */
<<openordercheck>>
<<if not _owoOK || $madi_stage < 3>>
<p>Not the right time for this.</p>
[[Back to the hallway|Hallway]]
<<else>>
<!-- IMAGE: the yearbook room - her proofs pinned in rows by the light table -->
<p><<= "[The yearbook room is empty through second period|Nobody uses the yearbook room before lunch], and a janitor at the light table with a spray bottle he isn't using doesn't need a reason to be there.".sayIt()>></p>
<p><<= setup.madi.proofLine()>></p>
<<openorderpay>>
<<if $albright_stage >= 2 && random(1, 100) <= 25>>
<p>Mrs. Albright comes in to unlock the supply cupboard and finds the janitor sitting at her yearbook's light table. She doesn't ask what you're doing there. She writes down the time.</p>
<<set $albright_heat += 1>>
<<set $albright_heat_day = $day>>
<</if>>
[[Back to the hallway|Hallway]]
<</if>>/* Closet storage (Mrs. Albright's restriction 4, from Madi's file on): the
yearbook's archive stacked in your closet, and one look through Madi's own
box while it's there. Once ("archive" in $madi_seen). What's at the bottom
of the box depends on how far she has come. No meter moves. DRAFT prose. */
<<albrightcheck>>
<<if _ablock != 4 || $madi_seen.includes("archive")>>
<p>There's nothing in here but your mop and your bucket.</p>
[[Back to the closet|Closet]]
<<else>>
<<run setup.madi.see("archive")>>
<<pic "img/school/closet_blocked.jpg" "story">>
<p>The boxes stacked to your closet ceiling are the yearbook's whole archive, four years of Thatcher-Ellison, and one of them has COLLINS - RAW on the lid in the handwriting from the proofs wall.</p>
<p>It's everything she ever shot, every team and every dance, and Grayson at every regatta from every angle he likes. There isn't one picture of Madi in the whole box.</p>
<<if setup.madi.tier() >= 2>>
<<pic "img/school/madi/yearbooks_catch.jpg" "story">>
<p>At the bottom there's a memory card in an envelope with nothing written on it. It's self-timer shots in her bedroom, in her race kit and then in less than her race kit, each frame holding the lens a little longer than the one before. You go through every one of them on the burner, and then you put the card back exactly where it was.</p>
<<else>>
<p>At the bottom, under the regattas, there's one envelope of prints from the track meet: the black sprinters on the relay, printed big and never pinned up anywhere.</p>
<</if>>
[[Back to the closet|Closet]]
<</if>>/* The solo finale (docs/madi-build-plan.md, Phase 5), part one: her
father's double shift, the living room of the protected house and his big
white couch that nobody is allowed to sit on. It opens from the Hallway's
Elsewhere panel in the evening, once the print has played and its day has
come, and stays open every evening after; 4 energy. Adriana has his
security system, so the alarm and the porch camera are hers. Lauren is
asleep upstairs. The yearbook camera films it: on $madi_truth 2 Madi
knows the tape is for her father and talks to the lens ("Headcount,
Dad"); otherwise she wants it for herself, and the ceiling camera, his
system and Adriana's now, catches it all anyway. Your face stays out of
frame either way. No Grayson. Built around the user's clip list in
img/school/madi/: solo_portrait.jpg, solo_1, 4, 5, 6, 7 here; 8, 9, 10,
11, 13, 14 in Madi Unsung Hero 2; Madi Unsung Hero Dawn sets stage 7.
DRAFT prose. */
<<if $madi_approach != 1 || not setup.madi.nightOpen() || $school_time isnot "evening" || $energy < 4>>
<p>Not tonight.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<statchange "energy" -4>>
<<pic "img/lauren/collins_house_night.jpg">>
<p>The last bus out to the suburbs drops you two streets from an address that isn't on any list but her father's. At eleven the porch camera is showing Adriana a loop of an empty porch, the alarm panel inside the back door blinks green, and the back door sticks, exactly as promised.</p>
<p>The kitchen is the one you know from the ceiling camera, with HOUSE RULES on the fridge in block capitals. The only other light in the house is in the living room. At the foot of the stairs you stop and listen: upstairs, behind a door left ajar, Lauren is breathing slow and even.</p>
<p>Madi is waiting in the middle of the living room on the big white couch, the one her father had delivered and nobody is allowed to sit on, with her bare feet tucked under her and her phone in her hand. The daylight lamps are so bright it's as if the day never ended.</p>
<<speech "Madi" "Nobody sits on this couch. Not even him. It's for guests.">>
<<speech "You" "Am I a guest?">>
<<speech "Madi" "Tonight you're the only one.">>
<<if $madi_truth == 2>>
<p>The yearbook camera is on the coffee table with the lens cap off and a fresh battery in it. She puts it in your hand.</p>
<<speech "Madi" "Film all of it. Keep your face out, if you need to. His is the face I want to see when he watches this.">>
<<else>>
<p>The camera in the ceiling corner is her father's, and tonight it's Adriana's, and Madi has no idea it's watching. She has brought her own anyway: the yearbook camera, sitting on the coffee table, because she wants to have her own secrets.</p>
<<if $madi_truth == 1>>
<p>Through the doorway you can see the kitchen table where he signs his paperwork after headcount. She read those reports in this house, a few feet from where he sleeps, and you watch her look at that table and then back at you.</p>
<<speech "Madi" "Somebody sent me some things about him. I'm not going to tell you what. I just don't want to be his good girl tonight.">>
<</if>>
<</if>>
<<if setup.madi.hers("lingerie")>>
<p>She stands up on the couch cushions and pulls her T-shirt over her head, and underneath it she's wearing the set you sent her, creamy white with the little strawberries, the one she gave herself a photoshoot in.</p>
<<speech "Madi" "Do you like it? I've never worn it for anybody.">>
<<pic "img/school/madi/lingerie_3.jpg" "story">>
<</if>>
<p>You undress in front of her. Before the coveralls are past your knees she's up on her knees on the couch with her phone at arm's length, framing a selfie with your cock in it, and she pulls the stupidest face she can manage: eyes crossed, tongue out, drooling down her chin like the village idiot.</p>
<<pic "img/school/madi/solo_portrait.jpg" "story">>
<p>You both crack up at the result. She saves it to the hidden album, and you think about how thrilled her father would be to come across that one.</p>
<p>Then you stand naked in front of her, and with her sitting on the couch your cock hangs right at the level of her face, on full display.</p>
<<speech "You" "Tell the camera how big it is.">>
<<speech "Madi" "Monster...">>
<p>She weighs it in her hand, appraising it like a print on the light table.</p>
<<speech "Madi" "Well. It's bigger than a small gerbil.">>
<p>You laugh.</p>
<<speech "Madi" "But, like... smaller than a big cat.">>
<p>You can't take any more of this nonsense, so you stuff her mouth with it.</p>
<<video "img/school/madi/solo_1.mp4">>
<<speech "You" "Does it fit in your mouth? Doesn't look like it.">>
<<speech "Madi" "Ahww...">>
<p>She says it with your cock still in her mouth, and sounds disappointed in herself.</p>
<p>She slides off the couch and kneels in front of you to get a better angle, but first she goes for your balls. With her nose pressed against your shaft, you get a good look at the comparison: her whole face isn't much longer than your cock. Then she takes it in her mouth and tries to go deeper, and her gag reflex kicks in a long way short of the base.</p>
<<video "img/school/madi/solo_4.mp4">>
<p>She coughs, and you both look at the ceiling at the same time. Upstairs, nothing moves.</p>
<<speech "Madi" "If Lauren comes down, you're the plumber.">>
<<speech "You" "At midnight?">>
<<speech "Madi" "It's a very serious leak.">>
<<speech "You" "Eh, you know what they say - if the roof is rusted...">>
<p>Back on the couch, you sit down and she climbs on top of you and presses her tiny pussy against your cock. She stops the moment the tip is inside.</p>
<<speech "Madi" "Wait. Wait, just let me...">>
<p>You take hold of her ass and pull her down, and she squeals.</p>
<<speech "Madi" "Oh my God!">>
<p>Then you lock your hands behind her back and push her down onto you as hard as you can, and start thrusting up into her, splitting her in two.</p>
<<video "img/school/madi/solo_5.mp4">>
<p>It takes a while, but her pussy gets used to your size, and she starts riding you harder. You hold her eyes the whole time and watch the pleasure build up in her face. She can't stop smiling, and neither can you, and then your lips meet.</p>
<<video "img/school/madi/solo_6.mp4">>
<<speech "Madi" "How can it be so good?!">>
<<if setup.madi.alsoHigh("curiosity")>>
<p>She has watched this a hundred times on the feed you built her, girls who look like her on black studs like you, and she tells you so between breaths, half laughing.</p>
<<speech "Madi" "And I though that black kink was weird, oh god, how can I go baaaack from thiiiiis?!">>
<</if>>
<p>Time for you to do some of the work. You stand up with your cock still inside her, holding her bent legs in the crooks of your arms, and fuck her standing up in the middle of her father's living room. Folded up like that she's even smaller than she is, and you feel yourself go deeper than before, to places no man has ever been.</p>
<<video "img/school/madi/solo_7.mp4">>
<<speech "Madi" "Oh God. That's... so deep.">>
[[Give your legs a rest|Madi Unsung Hero 2]]
<</if>>/* The solo finale, part two (Phase 5): back on the white couch until the
facial in front of it. Her truth flag changes what she knows when she
looks into the lens at solo_13. Clips solo_8, 9, 10, 11, 13 and 14. Madi
Unsung Hero Dawn follows and sets stage 7. DRAFT prose. */
<<if $madi_approach != 1 || not setup.madi.nightOpen()>>
<p>The living room is dark.</p>
[[Back to the hallway|Hallway]]
<<else>>
<p>Back on the couch to give your legs a rest. She turns around and sits on you facing away, in reverse cowgirl, and folds her legs under her so she sinks all the way down, bouncing on your cock with it as the only thing holding her up. She squeaks with every bounce and keeps losing her breath, overwhelmed.</p>
<<video "img/school/madi/solo_8.mp4">>
<<speech "Madi" "Shh! Shh. Lauren...">>
<<speech "You" "You're the loud one.">>
<p>Her pussy needs a rest from the pounding. You gather her long ginger hair in one fist and hold the yearbook camera in the other, and she sucks your cock looking straight into the lens, serving it eagerly.</p>
<<speech "You" "Balls too.">>
<<speech "Madi" "Yes, sir!">>
<<video "img/school/madi/solo_9.mp4">>
<p>Then back to fucking, missionary this time, with her lying on the couch and her legs spread wide. You lay your cock along the top of her pussy before you go in, and the size difference is hard to believe: it reaches past her navel, and you'd swear that balls deep she would bulge. When you start fucking her she moans and squeaks at every thrust, loud enough that anyone listening would think she was hurting.</p>
<<speech "Madi" "Don't stop. Don't you dare stop.">>
<<video "img/school/madi/solo_10.mp4">>
<p>You switch positions to make it easier on her, and take her from behind with her on all fours on the couch. She likes it so much that she starts moving on her own, fucking herself back onto you and twerking her plump ass while you slap it.</p>
<<video "img/school/madi/solo_11.mp4">>
<<speech "Madi" "We're ruining his couch.">>
<<speech "You" "It's a guest couch.">>
<p>Then you put her flat on her stomach and fuck her prone bone. Your hands are busy, so you set the camera on the cushion right in front of her face and lie down on top of her. Every thrust ends in a loud slap, and the only thing louder is her, squeaking and moaning without trying to swallow any of it.</p>
<<if $madi_truth == 2>>
<p>She looks straight into the lens, and she knows exactly who is going to watch this: her father, getting every expression on his daughter's face while a black man rams her from behind on his white couch.</p>
<<else>>
<p>She looks straight into the lens, then up past it at the camera in the ceiling corner, as if she can feel her father on the other end of every camera in this house. If he ever saw his daughter's face right now, with a black man ramming her from behind on his white couch, it would kill him, and she knows that too.</p>
<</if>>
<<video "img/school/madi/solo_13.mp4">>
<<if setup.madi.alsoHigh("curiosity")>>
<<speech "Madi" "On my face. Like the girls in the videos. I'm your snowbunny, begging for black cum!">>
<</if>>
<p>When you can't hold it any longer you pull out, and she slides off the couch onto her knees in front of it. You spray a lot of cum all over her face, and when you've finished she takes the tip in her mouth and sucks it clean.</p>
<<video "img/school/madi/solo_14.mp4">>
<<speech "Madi" "My unsung hero.">>
[[Carry her up to bed, and slip out at dawn|Madi Unsung Hero Dawn]]
<</if>>/* The solo finale's dawn (Phase 5): Lauren is at the kitchen counter as you
leave, and she pours two coffees, one of them for you. It seeds her own
arc. Sets stage 7 and the epilogue's day, then goes to the hideout's
Sleep, which runs the new day, the rent and the wage. DRAFT prose. */
<<if $madi_approach != 1 || not setup.madi.nightOpen()>>
<p>The house is quiet.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<set $madi_stage = 7>>
<<set $madi_next_day = $day + 1>>
<p>At half past five the sky over the back fence is going grey. You come down the stairs in your socks with your boots in your hand, and the kitchen light is on.</p>
<p>Lauren is at the counter, with the coffee maker gurgling behind her. She looks at you, at your boots and at the stairs you came down, and then she takes a second mug out of the cupboard.</p>
<<if $madi_seen.includes("race")>>
<p>She remembers your from the race, you can tell by her eyes. But she pretends she doesn't.</p>
<</if>>
<<speech "Lauren" "Milk?">>
<<pic "img/lauren/madi_morning.jpg" "story">>
<p>You shake your head. She pours two coffees, slides one across the counter to you and holds the other in both hands, and she doesn't say another word while you drink it. When you put the mug down she rinses it, dries it and puts it back in the cupboard, as if nobody had used it.</p>
<<speech "Lauren" "He's home at seven. I'll see to the couch.">>
[[Take the first bus home and sleep|Sleep]]
<</if>>/* The group finale, part one (docs/madi-build-plan.md, Phase 5): the
blockpost and Earl's bar. From The Hood once the print has played, its
day has come and Jamal knows, and every night after; 4 energy. She comes
in through the short queue in a short skirt and a skimpy top, and Adriana
keeps her dot asleep at home. At the bar you point the men out to her
from across the room and she says yes to each: Jamal, William if you
texted him (Madi William), and on the embrace route the boys if you
invited them (Madi Boys), on their way back from Earl's gloryhole. There's
always at least one of William or the boys (setup.madi.nightOpen). With
William and Devin both there, father and son find each other at the bar.
No bar regulars join, this time. Facility 9 gets one short mention, and
her truth flag changes her lines. Madi Wall Night follows on the roof.
PLACEHOLDER stills. DRAFT prose. */
<<if $madi_approach != 2 || not setup.madi.nightOpen() || $energy < 4>>
<p>Nobody is coming through the blockpost for you tonight.</p>
[[Back|The Hood]]
<<else>>
<<statchange "energy" -4>>
<!-- IMAGE: the blockpost at night - floodlights, the empty long queue, Madi alone in the short one -->
<p>At nine the long queue coming out is empty, and the short queue going in is one girl in a short skirt and a skimpy top, with her ginger hair loose, her arms folded against the cold and her purse on her shoulder. The militiaman at the boom looks at her, at her bag and at her legs, and waves her through without asking for anything at all. Nobody smuggles themselves INTO the reservation.</p>
<<pic "img/school/madi/group_1.jpg" "story">>
<p>Past the boom there's a painted line on the asphalt, and she stops with her toes right up against it and looks back the way she came: the bus stop, the city's lights, and the neighborhood her father's map says she's asleep in.</p>
<<speech "Madi" "He has exactly one rule in capitals. Do NOT leave the neighborhood. Ever. The NOT is underlined twice.">>
<p>Then she steps over the line on purpose, a big deliberate step, the way you'd stamp on something.</p>
<<if setup.madi.alsoHigh("spite")>>
<<speech "Madi" "Fuck you, dad!">>
<p>You both laugh, but you know she means it.</p>
<</if>>
<<speech "Madi" "Wheee! Look at me, I'm a hood girl!">>
<!-- IMAGE: Earl's bar - Madi at the counter under the neon, the jukebox behind her -->
<p>Every head in Earl's turns when she walks in. Earl looks at her for one long second, then at you, and pops a suspicious bottle of sparkling wine on the counter in front of her without asking what she's having. The jukebox is playing an old song, and Madi enjoys it, enjoys it all - the smell of piss and the sticky floor, the attention and staring from patrons, and the whole taboo of being here.</p>
<p>At the end of the counter an old man is telling nobody in particular that his grandson has been in Facility 9 for two years without seeing a judge. Madi hears the name and goes quiet<<if $madi_truth == 2>>, and she looks at you, because she knows<<elseif $madi_truth == 1>>, and you watch her remember the reports<<else>>, and she doesn't tell anybody where her father works<</if>>.</p>
<<if setup.madi.williamComing()>>
<p>William is already in a booth with his coat folded over the cracked vinyl, the way he did the first night he came here, and he has overtipped Earl twice.</p>
<</if>>
<<if setup.madi.boysComing()>>
<<set _mwBoys = $incel_dropout ? "three" : "four">>
<p>The door behind the bar opens and Terrence, Aaron and Devin<<if not $incel_dropout>> and Isaiah<</if>> come out of it, zipping up and grinning like they've just found out every rumor about Earl's back room is true. Then they see Madi, and stop dead.</p>
<</if>>
<<if setup.madi.williamComing() && setup.madi.boysComing()>>
<p>Devin sees the coat before he sees the man in it, and stops so suddenly that Aaron walks into his back.</p>
<<speech "Devin" "Dad?!" "devin">>
<<speech "William" "Devin? Does Agatha know you're here?" "william">>
<<speech "Devin" "Does Agatha know YOU'RE here?" "devin">>
<p>William looks at his son, then at Madi, then at you, and laughs so hard that Earl has to steady the glasses on the bar.</p>
<<speech "William" "Okay. Son, we agree right now that neither of us was ever here." "william">>
<<speech "Devin" "Deal. And you're not telling Agatha." "devin">>
<<speech "William" "Telling Agatha what?" "william">>
<</if>>
<<if setup.madi.williamComing()>>
<p>William starts to call across the room to you with the name he knew you by in the service, sees Madi at your elbow, and turns it into a cough.</p>
<</if>>
<p>Jamal is at the far end of the bar with a beer he isn't drinking. He doesn't come over. You lean in close to Madi and nod toward him.</p>
<<speech "You" "See that black dude with a bulge in his pants? Yeah, that's Jamal. He wanted to meet you, and I don't think you'd be disappointed. He's VERY experienced.">>
<<speech "Madi" "Yeah... He's a bit old, but I love how confident he looks.">>
<<if setup.madi.williamComing()>>
<<speech "You" "The one in the booth, with the coat that cost more than the booth, is William. We served together. He was always a playboy.">>
<<speech "Madi" "OMG, I can have him too? He's way out of my league! Yes please!">>
<</if>>
<<if setup.madi.boysComing()>>
<<speech "You" "And you already know those _mwBoys. They've wanted this since the first time you looked at their table in the cafeteria. I trained them specifically for things like this.">>
<<speech "Madi" "Is that so? They look cute together. Let's see how your two projects interact then.">>
<</if>>
<<speech "Madi" "Am I too greedy if I want all of you at the same time?">>
[[Take her up the fire stairs to the roof|Madi Wall Night]]
<</if>>/* The group finale on the roof (Phase 5), act one: the mattress. The roof
above Earl's bar, a mattress under a lean-to, the hood flat and dark
below. Earl guards the fire stairs, so nobody else comes up: his owed
favor at $bartender_stage 3, otherwise Jamal asked him. Jamal's camera
sits on a crate; faces on it are Jamal's and the boys', never yours or
William's.
The night is always at least three men (setup.madi.nightOpen). With the
boys there (setup.madi.boysComing) it plays the gang clips; with only you,
Jamal and William it plays the three-man clips. Clips that fit both are
shared, and William's full nelson plays whenever he came. Built around
the user's clip list in img/school/madi/ (group_N.mp4):
- gang: 1, 2, 3, 7, 9, 16 | 17 | 19, 21, 22, 25, 26, 27, 28, (29) | 30,
31, 32, 33, 34
- three men: 6, 5, 10, 11, 12 | 17 | 21, 22, 27, 29 | 31, 32, 33
Madi Wall Night 2 (her practicing, the DPs) and 3 (the finish) follow,
and 3 sets stage 7. DRAFT prose. */
<<if $madi_approach != 2 || not setup.madi.nightOpen()>>
<p>The roof is empty.</p>
[[Back|The Hood]]
<<else>>
<<set _gang = setup.madi.boysComing()>>
<<set _will = setup.madi.williamComing()>>
<!-- IMAGE: the roof above the bar - a mattress under a corrugated-iron lean-to, the hood flat and dark below, the wall's floodlights on the horizon -->
<p>Earl opens up an old staircase leading to the unused roof patio<<if $bartender_stage >= 3>>: that's the favor he owed you, paid in full<<else>>, because Jamal asked him, and they have their own past<</if>>. Doors close behind you, ensuring your privacy.</p>
<p>The stairs go up three floors to a flat roof. Somebody has dragged a mattress up here and put it under a lean-to of concrete canopy, out of the wind. Past the edge of the roof the hood lies flat and dark all the way to the wall, a few windows lit and a lot more that never will be, and on the horizon the wall's floodlights burn in a line.</p>
<<pic "img/school/madi/group_2.jpg" "story">>
<p>You pick up the champagne bottle from the bar and fill the glasses. Everybody knows why you are here and anticipates that - but for now you can just socialize and enjoy the view.</p>
<p>Jamal handles the recording - you don't have to worry about your face on tape. He tries to place it on a crate and frame it on a mattress in the middle.</p>
<<if $madi_truth == 2>>
<p>Madi crouches by the crate and checks the frame herself, because she can't help it, and then she looks straight down the lens.</p>
<<speech "Madi" "Make sure it's in focus. I want them to see all of it.">>
<<else>>
<<speech "Madi" "Is that for the yearbook?">>
<<speech "Jamal" "That's for you. Every girl ought to have one night on tape she can't show nobody.">>
<p>He's a good liar, but Madi would believe anything.</p>
<</if>>
<<if setup.madi.alsoHigh("spite")>>
<p>Before anybody touches her she turns the crate a few degrees, until the wall's floodlights sit in the back of the frame.</p>
<<speech "Madi" "There. If he ever sees this, I want him to know exactly where I was.">>
<</if>>
<<if _gang>>
<p>Eventually glasses run dry, and black men close in around her in a loose ring, and for once she is the center of attention. Before she can decide where to look first, Jamal bends, gets a shoulder under her hips and stands up with her like she weighs nothing. Her tiny skirt rides up over her back, and there's nothing under it.</p>
<<video "img/school/madi/group_1.mp4">>
<p>The roof goes up like a stadium. Aaron whistles through his fingers, Devin cheers, and every hand in reach slaps her bare ass on its way past while Jamal carries her to the mattress over his shoulder.</p>
<<speech "Aaron" "Commando! Collins came ready!" "aaron">>
<<speech "Madi" "I think I'm gonna like thisss...">>
<p>Jamal sets her down on the mattress, and she goes to her knees without being told. Belts open all around her, and one after another the men pull out their big black cocks, until she's kneeling in a ring of them and turning her head from one to the next like she's choosing a shot.</p>
<<video "img/school/madi/group_2.mp4">>
<<speech "Terrence" "I said it a long time ago, sir. She looks good on a black background." "terrence">>
<p>She works her mouth from one cock to the next while they cheer her on, and every time one of them groans she glances up to check she heard it right. Aaron loses patience first. He grabs a fistful of her hair and fucks her throat, and she chokes on him with a black cock in each hand, still stroking both.</p>
<<video "img/school/madi/group_3.mp4">>
<p>When he lets her up, she gasps for air, and then she laughs, wet-faced and wild.</p>
<<speech "Madi" "Again. Somebody do that again.">>
<p>They lay her on her back. Devin gets between her legs first and slams into her pussy, Terrence feeds her his cock, and each of her hands finds another one without anybody telling her to.</p>
<<video "img/school/madi/group_7.mp4">>
<<speech "Aaron" "Yo, Devin! Pass her down, some of us are waiting!" "aaron">>
<<speech "Devin" "I'm a team player, go ahead!" "devin">>
<<speech "Terrence" "Choo-choo!" "terrence">>
<p>So you run a train on her, one man after another between her legs, while she sucks whoever is next in line and laughs around him every time somebody yells "all aboard". Whoever is in her fucks her hard and fast, slamming into her until he can't hold it and pulls out with a groan.</p>
<<speech "Aaron" "Choo-choo! Next stop!" "aaron">>
<p>The next stop is Jamal. He slides into her, gets his hands under her ass and stands up with her still on his cock, lifting her clear off the mattress and fucking her in mid-air. That's when it hits you how tiny she is: a pale shape folded around one big black man in the middle of a ring of others, all of them stroking their cocks and watching. He walks her around the mattress like a toy he's showing off, bouncing her on his dick with every step, and when he kneels back down with her, <<if $incel_dropout>>Terrence<<else>>Isaiah<</if>> stuffs her mouth before she can say a word.</p>
<<video "img/school/madi/group_9.mp4">>
<<if _will>>
<<speech "William" "Show-off!" "william">>
<</if>>
<p>They put her on her knees for the next round and keep her there, taking turns on her from behind and swapping her holes between them, while she kisses and strokes whichever cock is in front of her face. Nobody gets left out on this cock carousel.</p>
<<video "img/school/madi/group_16.mp4">>
<<speech "Aaron" "Line up, line up! Everybody gets a taste!" "aaron">>
<<if _will>>
<<speech "Devin" "Not bad for an old man." "devin">>
<<speech "William" "Son, if you think this is my first rodeo..." "william">>
<<speech "Devin" "Does not change the fact she could be your daughter, dad!" "devin">>
<</if>>
<<else>>
<p>Eventually glasses run dry, and you close in around her in a loose ring, and for once she is the center of attention. Before she can decide where to look first, Jamal bends, gets a shoulder under her hips and stands up with her like she weighs nothing.</p>
<<pic "img/school/madi/group_3some.jpg" "story">>
<p>Jamal carries her and puts down on the edge of the mattress, and she sinks to her knees between the three of you without being told. William undoes his belt first, of course.</p>
<<speech "William" "Schoolgirls, they never get old." "william">>
<p>He's in no hurry. He slaps her cheek with his cock, slow and heavy, and drags the head of it back and forth across her lips while you and Jamal stroke yourselves and watch her chase it with her tongue.</p>
<<video "img/school/madi/group_6.mp4">>
<<speech "William" "Easy, sweetheart. Nobody's timing you." "william">>
<<speech "Madi" "Maybe I want somebody to.">>
<p>Jamal takes that as an invitation. He fucks her face in long strokes, then takes her head in both hands, pushes all the way in and holds her there. A tear runs down her cheek, and she takes him deeper anyway, as deep as she can, until her nose is pressed flat against him.</p>
<<video "img/school/madi/group_5.mp4">>
<<speech "Jamal" "Breathe through your nose, girl. There you go.">>
<p>When he lets her up she comes off him gasping, with spit down her chin and mascara down her cheeks.</p>
<<speech "Madi" "Did I... did I get all of it?">>
<<speech "William" "Every inch. Brother, where did you FIND her?" "william">>
<p>They lay her on her back with her legs spread, and Jamal kneels between them. Her pussy is tiny next to the size of him, and she watches him push every inch in with her mouth open, while William leans over her and plays with her face, his thumb on her lips and his cock against her cheek.</p>
<<video "img/school/madi/group_10.mp4">>
<<speech "William" "Brother, your friend is going to break her." "william">>
<<speech "Madi" "Don't you dare stop him.">>
<p>They roll her onto all fours and spitroast her, you behind and William in her mouth, while Jamal stands over her jerking his monster cock and slapping it down across her back like he's keeping time.</p>
<<video "img/school/madi/group_11.mp4">>
<<speech "William" "Just like old times, brother. Stack up!" "william">>
<<speech "Jamal" "Y'all served together? Then y'all know how to share.">>
<p>She stays on her knees with you fucking her from behind, and Jamal lies down on his back under her head, almost in a sixty-nine. He wraps his arms around her head and her back, locks her in place, and jackhammers her throat from below.</p>
<<video "img/school/madi/group_12.mp4">>
<p>When he finally lets go she comes up coughing and grinning, and William hands her a bottle of water like a cornerman.</p>
<</if>>
[[Your turn behind her|Madi Wall Night 2]]
<</if>>/* The group finale, act two (Phase 5): you slip into her ass by accident and
she tells you she's been practicing, which pays off her envy of Lola Fae
("I can be a better whore too", Madi Stairwell) and, if it played, Linda's
advice in your closet. Then the DPs, and William's full nelson if he came.
Clips per cast as listed in Madi Wall Night. DRAFT prose. */
<<if $madi_approach != 2 || not setup.madi.nightOpen()>>
<p>The roof is empty.</p>
[[Back|The Hood]]
<<else>>
<<set _gang = setup.madi.boysComing()>>
<<set _will = setup.madi.williamComing()>>
<p>Your turn behind her. She's on her knees with her ass up and her cheek on the mattress, slick from all of them, and when you line up and push, the head of your cock slips into her ass instead.</p>
<p>It goes in easier than it has any right to. You expect her to pull away, and instead she pushes back onto you. You're slick enough by now, so you keep going, sliding deeper with a hand flat on the small of her back.</p>
<<speech "You" "Open up for me.">>
<<video "img/school/madi/group_17.mp4">>
<<speech "Madi" "I've been practicing.">>
<<if setup.madi.hasSeen("lindaffm")>>
<<speech "Madi" "Linda said to start with something a lot smaller than you. I did. Then I worked my way up.">>
<</if>>
<<speech "Madi" "If Lola Fae can take it, so can I.">>
<<if _gang>>
<<speech "Terrence" "She's been PRACTICING!" "terrence">>
<p>Everyone on the roof gets excited at once, because a new hole has just opened for business, and that puts something else on the table.</p>
<<speech "Aaron" "DP's on the table, boys!" "aaron">>
<<speech "Terrence" "Sir. May I?" "terrence">>
<p>You give her ass up to Terrence, who asks for it like it's a hall pass. Devin lies down under her and she rides his cock while Terrence works his way into her ass from behind, and when Aaron steps up in front of her she opens her mouth for him too. Every hole she has is full, and she's moaning around Aaron like she has never been happier to be stuck somewhere.</p>
<<video "img/school/madi/group_19.mp4">>
<<else>>
<<speech "William" "Brother, that is a very dedicated young woman." "william">>
<</if>>
<p>Jamal lies back and takes her on top of him facing away, in reverse cowgirl, and eases her down onto his cock ass first. You step up in front of her with the cock that was just inside her ass, and she doesn't hesitate.</p>
<<speech "Jamal" "Go on. Taste it.">>
<<video "img/school/madi/group_21.mp4">>
<<speech "Madi" "I like it. Is that bad? I like it.">>
<p>Jamal stays buried in her ass and pulls her back against his chest, which leaves her pussy open to the night air. You take it first, and then <<if _gang>>the others take turns on it, one after another<<else>>William does, and the two of you trade her back and forth<</if>>, while Jamal holds her down on his cock and she gets closer and closer.</p>
<<video "img/school/madi/group_22.mp4">>
<<speech "Madi" "Don't stop. Don't stop, don't stop, I'm so close.">>
<<if _gang>>
<p>Nobody stops. Somebody kneels by her face, then somebody else, and her mouth goes around the ring the same way her pussy does.</p>
<<video "img/school/madi/group_25.mp4">>
<<speech "Devin" "Collins can't even talk." "devin">>
<<speech "Aaron" "Best she's ever looked." "aaron">>
<p>They turn her over. She lies on top of Devin with his cock in her pussy while Terrence takes her ass doggy-style from behind, reaching deep, and in front of her face three black cocks stand in a row, waiting. She tries to serve them with her mouth and both hands, and she keeps losing her place because of what's being done to her from behind.</p>
<<video "img/school/madi/group_26.mp4">>
<<speech "Aaron" "Eyes front, Collins! Customers waiting!" "aaron">>
<<speech "Madi" "I c-can't... I can't think...">>
<</if>>
<p><<if _gang>>Jamal takes her ass back<<else>>She ends up on William with his cock in her pussy, and Jamal takes her ass from behind<</if>>, and she sucks <<if _gang>>whoever is in front of her<<else>>you<</if>> while he rams into her. He holds her by the shoulders and uses her like a toy, all the way in and all the way out, and when he finally pulls out she can't stop shaking.</p>
<<video "img/school/madi/group_27.mp4">>
<<speech "Madi" "What... what was that?">>
<<speech "Jamal" "That was you, girl. Welcome.">>
<<if _gang>>
<p>She's back on top before she has stopped shaking, riding a cock in reverse cowgirl with her pussy while two of them hold her legs open. Devin has one of her feet wrapped around his cock and is jerking off with it. Terrence takes her gorgeous ginger hair in his fist and fucks her mouth, and she can't stop giggling around him. She's fucked silly, and she knows it.</p>
<<speech "Aaron" "Bro. Her FEET?" "aaron">>
<<speech "Devin" "Don't kink shame, bro." "devin">>
<<video "img/school/madi/group_28.mp4">>
<</if>>
<<if _will>>
<<speech "William" "Brother, let me show you Agatha's favorite position." "william">>
<p>He gets behind her, hooks his arms under her knees and locks his hands behind her neck, a full nelson that folds her in half, and jackhammers her pussy while the rest of you stroke yourselves and watch, amused.</p>
<<video "img/school/madi/group_29.mp4">>
<<if _gang>>
<<speech "Devin" "Dad. DAD. I did not need to know that." "devin">>
<<speech "William" "Watch and learn, son. There's going to be a test." "william">>
<<else>>
<<speech "Jamal" "Rich man got moves.">>
<</if>>
<</if>>
[[Bring it home|Madi Wall Night 3]]
<</if>>/* The group finale, act three (Phase 5): the finish, her poses for Jamal's
camera (on $madi_truth 2 she knows who the tape is for), and the walk back
to the blockpost at dawn. Sets stage 7 and the epilogue's day, +10 heat
(DRAFT number), then the hideout's Sleep. DRAFT prose. */
<<if $madi_approach != 2 || not setup.madi.nightOpen()>>
<p>The roof is empty.</p>
[[Back|The Hood]]
<<else>>
<<set _gang = setup.madi.boysComing()>>
<<set _will = setup.madi.williamComing()>>
<<if _gang>>
<p>They put her on her knees in the middle of the mattress, and the ring closes in around her one last time. One by one they unload on her face, and she holds still for every one of them with her eyes shut and her mouth open.</p>
<<speech "Aaron" "Me first! Me first!" "aaron">>
<<speech "Terrence" "You were first last time." "terrence">>
<<video "img/school/madi/group_30.mp4">>
<</if>>
<p>Then it's you, and you don't stop. You give her a facial that keeps going, squeezing out more and more onto her pretty face until there isn't a clean inch left on it.</p>
<<speech "Madi" "There's more? How is there still MORE?">>
<<video "img/school/madi/group_31.mp4">>
<p>By the time the last of you is finished, she's a mess, covered in a thick layer of cum, and when she laughs she blows bubbles in it.</p>
<<video "img/school/madi/group_32.mp4">>
<<if $madi_truth == 2>>
<p>She knee-walks to the crate at the foot of the mattress, finds the lens, and poses for it.</p>
<<speech "Madi" "I've been such a good girl. I've earned every drop.">>
<<else>>
<p>She finds the camera on its crate, checks the angle out of habit, because she's still the yearbook's photographer underneath all of it, and then she poses for it.</p>
<<speech "Madi" "Tell me it's in focus. Somebody tell me it's in focus.">>
<</if>>
<p>She gathers the cum off her cheeks with one finger and sucks it clean, then does it again, and again, and doesn't take her eyes off the lens.</p>
<<video "img/school/madi/group_33.mp4">>
<<if _gang>>
<p>When there's less of it on her face and more of it in her stomach, the men gather around her again, still half-hard, and she kisses each cock in turn while she looks straight into the camera.</p>
<<video "img/school/madi/group_34.mp4">>
<</if>>
<<speech "Madi" "Are we gonna have more parties like this?">>
<<if _will>>
<<speech "William" "Same time next week, sweetheart. I'll bring the yacht." "william">>
<<else>>
<<speech "Aaron" "Yeah. Same time next week." "aaron">>
<</if>>
<p>At six you walk her back to the blockpost with your jacket over her shoulders. The queue going out is all residents with work passes held at chest height, and she stands in it like one of them, sore and sticky and grinning. At the boom she gives you your jacket back.</p>
<<speech "Madi" "I want to come back. Not for a party. Just to see it in daylight.">>
<<set $madi_stage = 7>>
<<set $madi_next_day = $day + 1>>
<<statchange "heat" 20>>
[[Go home and sleep|Sleep]]
<</if>>/* The epilogue (docs/madi-build-plan.md, Phase 5): the hideout laptop, the
morning after either night, once ("epilogue"). Jamal's message first, then
the house cameras: on the group route Madi comes home at dawn and Lauren
pours two coffees; on the solo route Lauren already poured yours, and
her father comes home and counts heads. Her father's own story is a later
update. DRAFT prose. */
<<if not setup.madi.epilogueDue()>>
<p>Nothing new.</p>
[[Back|Laptop]]
<<else>>
<<run setup.madi.see("epilogue")>>
<<pic "img/general/laptop.jpg" "location">>
<p>Jamal has written overnight.</p>
<<speech "Jamal" "Adriana sent me the cut. I watched it once, looks good. Really good. That's in the can now, soldier.">>
<<if $madi_approach == 2>>
<<speech "Jamal" "That girl walked into the hood on her own two feet, and half the block saw her do it. That's heat on you, but it was worth it.">>
<</if>>
<<speech "Jamal" "Now we wait. A man like her daddy, you don't show him the tape the day you get it. You show him on the day he got the most to lose, and I'll know that day when I see it.">>
<<if $madi_approach == 2>>
<<pic "img/lauren/madi_morning.jpg" "story">>
<p>Before you close the laptop you check the house cameras one more time. At ten past six the back door opens and Madi comes in with her shoes in her hand. Lauren is already at the counter in her robe. She looks at Madi for a long moment, takes a second mug out of the cupboard and pours two coffees, and neither of them says a word.</p>
<<else>>
<!-- IMAGE: the Collins kitchen in the morning from the ceiling camera - her father at the head of the table, Madi with wet hair -->
<p>Before you close the laptop you check the house cameras one more time. At seven her father's truck pulls into the drive. He comes in, puts his keys in the bowl and counts two heads at the kitchen table, Lauren with her coffee and Madi with her hair still wet from the shower, and he gets the number he expects.</p>
<</if>>
<div class="req">Father will see his little girl go black in the next update.</div>
[[Close the laptop|The hideout]]
<</if>>/* ARCHIVED: the nightclub is not going into the next release - whole passage commented out.
<!-- IMAGE: nightclub exterior at night - velvet rope, private security SUVs, expensive cars parked in a ruined street -->
<<if visited() == 1>><div class="text">Club Babylon is the one address in the neighborhood the outside world knows. Twice a week the checkpoint waves through a convoy of German sedans and party buses, and the wealthy come slumming - silk shirts and bodyguards, downtown girls in heels picking their way over broken asphalt like it's a safari. For them it's an adventure with valet parking. For the neighborhood it's the only faucet that drips real money. The management understands the arrangement perfectly: the guests must feel dangerous, and must never actually be in danger.</div><</if>>
<p>Bass hums through the pavement half a block out. Out front, private security in tailored black checks faces against a tablet while a queue of locals waits at a side door that opens far less often.</p>
<<set _entered = false>>
<<if $nightclub_job == 1>>
<p>The head of security nods you through the staff entrance. No cover for the help.</p>
<<set _entered = true>>
<<elseif $money >= 10>>
<p>Locals pay at the side door. The outsiders, of course, are comped - their money is wanted inside, at the bar, in bottles.</p>
<<statchange "money" -10>>
<<set _entered = true>>
<<else>>
<div class="req">Cover charge is $10 for locals, and your pockets are empty. The doorman doesn't do credit.</div>
<</if>>
<<nobr>>
<<if _entered>>
<<linkreplace "Buy a drink and work the room">>
<<if $money >= 8>>
<<statchange "money" -8>>
<<if random(1, 100) <= 50>>
<p>You post up at the bar between a bottle-service waitress on her break and a DJ's cousin who knows everybody. Down here, the staff are the neighborhood - and the neighborhood notices who buys a round.</p>
<<statchange "respect" 3>>
<<else>>
<p>Eight dollars for a beer that costs one across the street. You drink it slowly, watching a table of outsiders film themselves being brave.</p>
<</if>>
<<else>><p>Club prices. You can't even afford the beer here.</p><</if>>
<</linkreplace>><br>
<<linkreplace "Hit the dance floor">>
<<if $energy >= 2>>
<<statchange "energy" -2>>
<<set _dance = random(1, 5)>>
<<switch _dance>>
<<case 1>>
<p>The floor is a truce zone: local girls dancing in a closed circle, outsider men orbiting with drinks they hope are invitations. You move through it easily - you're the one thing in the room that belongs.</p>
<<case 2>>
<!-- VIDEO: club dance floor, grinding crowd, strobe light -->
<p>A downtown blonde in a dress worth your monthly rent dances progressively closer, her friends filming and shrieking. She wants the "hood experience" for her feed. You give her exactly enough to keep the legend alive and nothing she could take home.</p>
<<case 3>>
<p>The DJ drops something twenty years old and for three minutes the whole neighborhood side of the floor moves like one body. Even the bottle-service girls come out. The outsiders film it. They always film it.</p>
<<case 4>>
<p>Two outsider men in matching watches try dancing at a local girl who has told them no twice. Her brother materializes; club security materializes faster - and escorts <i>the brother</i> toward the door. The rules of the house, written in plain sight.</p>
<<case 5>>
<p>You dance alone for a while, sweating out the week. Sometimes that's all a club has to be.</p>
<</switch>>
(TODO: $nightclub_stage - future hookup arc with a recurring outsider patron starts here)
<<else>><div class="req">You're too exhausted to dance. (2 energy needed)</div><</if>>
<</linkreplace>><br>
<<if $nightclub_job == 0>>
<<if $physical >= 60 && $respect >= 30>>
<<linkreplace "Ask about work">>
<p>The head of security - a retired cage fighter gone gray at the temples - looks you over like a used car with good mileage.</p>
<<speech "Head of Security" "I know your face from the gym. Here's the job: the guests upstairs pay for danger the way they pay for champagne - as decoration. Trouble happens, you end it quiet, and whoever's paying never feels a draft. You bruise a guest, you're done. You bruise a local where a guest can see, you're done. Understood?">>
<p>You understand better than he knows. He hands you a black t-shirt a size too small. You're on the door rotation.</p>
<<set $nightclub_job = 1>>
<</linkreplace>><br>
<<else>>
<div class="req">The security here only hires serious, known men. (60 physical and 30 respect to ask about work)</div>
<</if>>
<</if>>
<<if $nightclub_job == 1>>
<<if $heat >= 75>>
<div class="req">The head of security pulls you aside: "Not tonight. Half the precinct is asking about you - I can't have your face on my door." Come back when the heat dies down.</div>
<<elseif $energy >= 4>>
<<linkreplace "Work the door">>
<<statchange "energy" -4>>
<<statchange "money" 25>>
<<statchange "heat" 2>>
<<set _shift = random(1, 100)>>
<<if _shift <= 20>>
<p>A quiet shift. You check faces, unhook the rope, listen to two drunk financiers explain the neighborhood to each other, getting every detail wrong. The pay lands in your palm at four in the morning, folded around a cigarette.</p>
<<elseif _shift <= 34>>
<p>Somewhere past midnight a guest in an unstructured blazer decides the waitress carrying his bottle came with it. His hand closes on her wrist; her tray doesn't even wobble - she's used to it. That's the worst part.</p>
<<set _doorChoiceMade = false>>
<div id="door-choice">
<<linkreplace "Throw him out">>
<<replace "#door-output">>
<p>You take his wrist off her arm the way you'd take a weapon off a suspect, and walk him to the curb before his bodyguard finishes standing up. The staff side of the room exhales. Management doesn't say anything - but the man was somebody, and somebody's people make calls to the precinct about aggressive local staff.</p>
<<statchange "respect" 5>>
<<statchange "heat" 5>>
<</replace>>
<<replace "#door-choice">><</replace>>
<</linkreplace>><br>
<<linkreplace "Smooth it over">>
<<replace "#door-output">>
<p>You appear at the table with the practiced smile of the service industry, refill his glass, steer his attention to the DJ, and catch the waitress's eye to send her on break. He tips you ten dollars for the excellent service. She won't look at you for the rest of the shift, and you find you can't blame her.</p>
<<statchange "money" 10>>
<</replace>>
<<replace "#door-choice">><</replace>>
<</linkreplace>>
</div>
<div id="door-output"></div>
<<elseif _shift <= 46>>
<p>A VIP arrives with an entourage and a paranoia about being seen. You handle the side entrance, the coat, the discretion. He palms you a bill on the way out like he's done it his whole life. He has.</p>
<<statchange "money" 10>>
<<elseif _shift <= 58>>
<p>Past two, a bottle-service girl finds you at the rope: one of the outsider girls is folded over the bathroom sink, lips going gray, her friends already gone in the last convoy. The house rule is unambiguous - nothing that happens here happened here.</p>
<<set _odChoiceMade = false>>
<div id="od-choice">
<<linkreplace "Call it in properly">>
<<replace "#od-output">>
<p>You radio it in by the book and stay with her until the ambulance the club didn't want arrives. She'll live. The paramedics take your name for the report - a local's name, attached to an incident at the one venue the precinct actually reads about. Management docks you nothing and says nothing. Around here, silence from upstairs is its own kind of memo.</p>
<<statchange "heat" 6>>
<<statchange "respect" 4>>
<</replace>>
<<replace "#od-choice">><</replace>>
<</linkreplace>><br>
<<linkreplace "Handle it the house way">>
<<replace "#od-output">>
<p>You carry her out the fire exit, prop her in the alley in the recovery position, and let the bar-back's cousin - who was a nurse before the licensing purges - do what she can with a flashlight and two fingers on a pulse. The girl comes around retching at dawn and is loaded into a rideshare that will bill her card, not her memory. The house notices how clean it was.</p>
<<statchange "money" 10>>
<</replace>>
<<replace "#od-choice">><</replace>>
<</linkreplace>>
</div>
<div id="od-output"></div>
<<elseif _shift <= 68>>
<p>A kid from the block - fourteen, maybe fifteen, wearing his older brother's jacket with the sleeves rolled - tries to drift in behind a group of outsiders, just to see it. The inside of the one building on his street with unbroken windows.</p>
<p>You catch him by the collar at the threshold, walk him ten steps into the dark, and stand with him a minute where the bass is loudest, letting him look through the glass at the lights and the girls and the money. Then you point him home. "When you're grown, come to the side door and say my name." He grins like you handed him a key. Maybe you did.</p>
<<statchange "respect" 2>>
<<elseif _shift <= 78>>
<p>A face from the feeds arrives - some streaming-famous outsider with two phones filming him being brave. He wants pictures with "real security", his arm around your shoulders, captions about the wall. You stand like furniture while the flash pops. He tips like guilt: generously.</p>
<<statchange "money" 15>>
<<statchange "heat" 2>>
<div class="statchange">(Your face is on somebody's feed now.)</div>
<<elseif _shift <= 86>>
<p>Closing. The bottle-service waitress with the tired eyes and the perfect arithmetic - the one you sent on break the night the guest grabbed her - finds you in the coat check counting the door money. "I pay my debts," she says, hanging the CLOSED sign on the coat check hook, "and I hate owing the door."</p>
<!-- VIDEO: coat check - waitress blowjob among the hanging coats, uniform half-open -->
<p>She goes to her knees on somebody's forgotten scarf and takes you out of your work slacks with the same efficiency she opens champagne, and then her mouth is on you, unhurried, thorough, one hand still holding her tip roll. She sucks you off among the hanging coats with the house music dying in the next room, swallows like a professional at everything she does, and stands up fixing her lipstick in the coat-check mirror.</p>
<<speech "Waitress" "Debt's paid. Doesn't mean it can't run up again.">>
<<elseif _shift <= 92>>
<p>Four militia officers arrive at the rope, out of uniform but not out of habit, and look through you toward the door they expect to open for free.</p>
<<set _militiaChoiceMade = false>>
<div id="militia-choice">
<<linkreplace "Wave them in">>
<<replace "#militia-output">>
<p>You unhook the rope. They don't thank you - gratitude would imply it was yours to give. Inside, they drink without paying there too. The bar-back watches you all night after that, and you understand what your uniform means to him now.</p>
<<statchange "respect" -2>>
<</replace>>
<<replace "#militia-choice">><</replace>>
<</linkreplace>><br>
<<linkreplace "Hold the rope">>
<<replace "#militia-output">>
<p>"Private event," you say, which is true in the sense that all events here are private from men like them. They study your face for a long moment, committing it to whatever passes for memory in the militia. Then they leave - this club has owners with better protection than theirs. The queue at the side door saw the whole thing.</p>
<<statchange "respect" 4>>
<<statchange "heat" 8>>
<</replace>>
<<replace "#militia-choice">><</replace>>
<</linkreplace>>
</div>
<div id="militia-output"></div>
<<else>>
(CUT: street corner is not going into the next release - the dealer door event below was disabled before this whole passage was archived.)
<<if $dealer_stage >= 1>>
<p>You clock one of the corner crew working the smoking terrace, selling wraps to outsiders at triple street price. He clocks you clocking him and freezes - you're the door tonight.</p>
<<set _dealerChoiceMade = false>>
<div id="dealer-choice">
<<linkreplace "Take a cut">>
<<replace "#dealer-output">>
<p>You hold out a flat palm. He sighs the sigh of a man paying a familiar tax and fills it. You go back to the door and see nothing all night.</p>
<<statchange "money" 10>>
<<statchange "heat" 5>>
<</replace>>
<<replace "#dealer-choice">><</replace>>
<</linkreplace>><br>
<<linkreplace "Walk him out quietly">>
<<replace "#dealer-output">>
<p>You steer him out through the kitchen with a hand on his shoulder - no scene, no confiscation, no precinct. "Not where I work," you tell him. He spreads his hands: fair. The kitchen staff note how it was handled. So does he.</p>
<<statchange "respect" 3>>
<</replace>>
<<replace "#dealer-choice">><</replace>>
<</linkreplace>>
</div>
<div id="dealer-output"></div>
<<else>>
(end of the cut dealer branch - the fight fallback below always played while the corner was cut)
<p>A fight sparks on the outsider side - two men who golf together discovering they hate each other. You separate them with the gentleness their lawyers require, and the night rolls on.</p>
<</if>>
<</if>>
<</linkreplace>>
<p>Or ask the head of security for the rope itself - the list, the calls, the judgment. Better money if your judgment is good. Strikes on your record if it isn't.</p>
[[Take the rope yourself|Door Rope]]<br>
<<else>>
<div class="req">You're too tired to work a door shift. (4 energy needed)</div>
<</if>>
<</if>>
(CUT: street corner (drug stash) is not going into the next release - the block below was disabled before this whole passage was archived.)
<<if $drug_stash > 0>>
<<linkreplace "Move product to the rich crowd">>
<p>Outsiders pay triple for the thrill of buying it here - the product is the souvenir.</p>
<<if $nightclub_job == 0 && random(1, 100) <= 15>>
<p>A hand lands on your shoulder mid-handoff. Club security. They don't call the police - bad for the brand - they just empty your pockets into a zip-lock bag, photograph your face, and put you out the fire exit into the alley.</p>
<<set $drug_stash = 0>>
<<statchange "heat" 10>>
<<else>>
<<set _clubsale = $drug_stash * 20>>
<<set _clubheat = $drug_stash * 3>>
<<statchange "money" _clubsale>>
<<statchange "heat" _clubheat>>
<<set $drug_stash = 0>>
<p>The stash evaporates into manicured hands, one bathroom meeting at a time. Easy money - the kind with a hook in it.</p>
<</if>>
<</linkreplace>><br>
<</if>>
(end of the cut drug-stash block)
<</if>>
[[Step back into the night|The Hood]]
<</nobr>>
*//* ARCHIVED: the nightclub is not going into the next release - whole passage commented out.
<!-- IMAGE: nightclub entrance from the bouncer's side - velvet rope, tablet glow, queue in the dark -->
<<if $nightclub_job != 1>>
<div class="req">The rope belongs to the staff. You are not staff.</div>
[[Back|Nightclub]]
<<elseif $heat >= 75>>
<div class="req">The head of security shakes his head before you finish asking. "Not with your heat. The camera across the street would love that."</div>
[[Back|Nightclub]]
<<elseif $energy < 4>>
<div class="req">Working the rope means four hours of judgment calls on your feet. You don't have it tonight. (4 energy needed)</div>
[[Back|Nightclub]]
<<else>>
<<statchange "energy" -4>>
<<statchange "heat" 2>>
<p>The head of security hands you the tablet and the rope like a priest handing over the parish. "Base pay plus five a head for every call you get right. Get most of them wrong and it goes on your record. Three marks and you're back on the neighborhood side of the rope, permanently."</p>
<<set _rule = random(1, 5)>>
<<nobr>>
<<switch _rule>>
<<case 1>>
<<speech "Head of Security" "Standard night. The list is the list, the rules are the rules. Money gets in, trouble stays out, and everything in between is your judgment. Don't make me regret the judgment.">>
<<case 2>>
<<speech "Head of Security" "Private buyout tonight - downtown money rented the whole floor. Outsider list only. Locals do not get in. I don't care whose cousin they are, I don't care if they helped pour the foundation. Not tonight.">>
<<case 3>>
<<speech "Head of Security" "See the van across the street? Militia, with a camera. Tonight, anybody holding ANYTHING turns around at the rope. Anybody. I don't care what their table spends - one photographed handoff and this club has a problem money can't fix.">>
<<case 4>>
<<speech "Head of Security" "Owner's birthday. He wants the floor FULL and the night loud. Everybody gets in - everybody - except trouble. You let a brawler ruin the man's cake and neither of us works here tomorrow.">>
<<case 5>>
<<speech "Head of Security" "Half the staff called in scared after the sweeps. Boss wants bodies and bar sales, period. Swallow your standards - only the genuinely dangerous get turned away tonight.">>
<</switch>>
<<set _pool = [
{ name: "the silk shirt", desc: "An outsider in a shirt worth your rent, cologne arriving before he does. The square outline in his breast pocket is not a cigarette case, and he is not even trying to hide it - down here, it is the accessory.", call: "pass", local: false, holding: true, trouble: false, dangerous: false, connected: false, lewd: 0 },
{ name: "the nephew", desc: "Local boy, early twenties, walking like the street owes him change. You know the face from the blockpost - the militia captain's nephew, who has never once paid a cover in his life and never once been asked to.", call: "pass", local: true, holding: false, trouble: false, dangerous: false, connected: true, lewd: 0 },
{ name: "the cousin", desc: "A kid in his big brother's chain, holding an ID that is honestly excellent work. But you have carded a thousand faces and this one is seventeen if he is a day, blinking too much, heart hammering visibly through the borrowed shirt.", call: "reject", local: true, holding: false, trouble: false, dangerous: false, connected: false, lewd: 0, wrongPass: "By one a.m. the kid is sick in the VIP bathroom and a bottle-service girl is asking loudly whose genius let a child in. The head of security looks at the tablet, then at you." },
{ name: "the journalist", desc: "Outsider woman, sensible shoes under a party dress that does not match them, a tan line on her neck where a press lanyard usually sits. She keeps photographing the queue and calling it her friends.", call: "reject", local: false, holding: false, trouble: false, dangerous: false, connected: false, lewd: 0, wrongPass: "Two days from now there will be a feature about slumming, with photos taken inside. Management traces the byline back through the door log to your shift." },
{ name: "Big Reggie", desc: "A local legend - built like the blockpost, loved like the corner store. Everyone in the queue greets him. Everyone in the queue also knows every night Reggie drinks ends the exact same way, which is why his knuckles look like that.", call: "reject", local: true, holding: false, trouble: true, dangerous: true, connected: false, lewd: 0, wrongPass: "Reggie behaves for three hours, which is a personal record, and then puts a financier through the DJ table. The comped bottles come out of the door budget." },
{ name: "the whale", desc: "A convoy of black sedans and a man the tablet marks with three stars and a champagne emoji. His entourage includes two bodyguards and someone whose only job appears to be holding his phone.", call: "pass", local: false, holding: false, trouble: false, dangerous: false, connected: true, lewd: 0 },
{ name: "Tasha", desc: "Local girl in a dress that is winning its fight with the weather, banned since the champagne incident nobody will fully explain. She is on the blacklist in bold. She also knows exactly how she looks tonight, and knows you know.", call: "reject", local: true, holding: false, trouble: true, dangerous: false, connected: false, lewd: 2 },
{ name: "the finance twins", desc: "Two outsiders in matching watches, already at the shouting-compliments stage of drunk, holding each other upright in a way that suggests the night peaked in the taxi.", call: "reject", local: false, holding: false, trouble: true, dangerous: false, connected: false, lewd: 0, wrongPass: "They last forty minutes before one of them tries to climb into the DJ booth to request something. Security drags them out past your rope, and everyone watching knows who unhooked it." },
{ name: "the badge", desc: "A man out of uniform the way a knife is out of its sheath - still a knife. Outside-precinct cop, off duty, smiling like doors are a formality that happens to other people. The house has exactly one policy about his kind.", call: "reject", local: false, holding: false, trouble: false, dangerous: false, connected: true, lewd: 0 },
{ name: "the Sunday dress", desc: "A local girl in her one good dress, not on any list, holding the cover charge in exact change like a bus fare. She has been building up the nerve to come here for a month - you can see the whole month on her face.", call: "pass", local: true, holding: false, trouble: false, dangerous: false, connected: false, lewd: 1 },
{ name: "the corner boy", desc: "You know this face from the corner crew, and his jacket pockets are working pockets tonight - square, full, ready for the smoking terrace. He gives you the nod that says we are both professionals here.", call: "reject", local: true, holding: true, trouble: false, dangerous: false, connected: false, lewd: 0, wrongPass: "He works the terrace all night. Club security catches the third handoff, and the question of who let a known dealer through the rope has exactly one answer." },
{ name: "the chemical couple", desc: "An outsider pair already orbiting a distant planet, pupils like dinner plates, jaws working gum that ran out an hour ago. Her clutch rattles like a pharmacy. They are, to be fair, extremely happy.", call: "pass", local: false, holding: true, trouble: true, dangerous: false, connected: false, lewd: 0 },
{ name: "the owner's guest", desc: "A woman with expensive hair and a story: the owner personally invited her, darling, check again. The tablet has no record of her. Her confidence does not blink. Beautiful liars are still liars - probably.", call: "reject", local: false, holding: false, trouble: false, dangerous: false, connected: false, lewd: 2 },
{ name: "the builder", desc: "An old local man in his one good suit, freshly pressed, shoes shined to church standard. He poured the foundation of this building thirty years ago, he tells you, back when it was going to be a community hall. He would like, once, to see the inside.", call: "reject", local: true, holding: false, trouble: false, dangerous: false, connected: false, lewd: 0, wrongRej: "He nods like a man who has been told no by this building before, squares the jacket on his shoulders, and walks home through the queue with his shine catching the neon. Nobody laughs. The block saw whose rope it was.", wrongPass: "He nurses one beer at the end of the bar for two hours, hurting nobody, looking at the ceiling he built. It is the buyout host who complains - something about the atmosphere - and the complaint lands on your shift report." }
]>>
<<set _queue = _pool.shuffle().slice(0, 4)>>
<<set _correct = 0>>
<</nobr>>
<div id="queue"><<doorslot 0>></div>
<</if>>
*//* ARCHIVED: the nightclub is not going into the next release - the door-rope widgets are only called from Door Rope, so both are commented out.
<<widget "doorslot">>
<<set _slot = $args[0]>>
<<set _g = _queue[_slot]>>
<<set _correctCall = _g.call>>
<<switch _rule>>
<<case 2>><<if _g.local>><<set _correctCall = "reject">><<elseif _g.dangerous>><<set _correctCall = "reject">><<else>><<set _correctCall = "pass">><</if>>
<<case 3>><<if _g.holding>><<set _correctCall = "reject">><</if>>
<<case 4>><<if _g.trouble or _g.dangerous>><<set _correctCall = "reject">><<else>><<set _correctCall = "pass">><</if>>
<<case 5>><<if _g.dangerous>><<set _correctCall = "reject">><<else>><<set _correctCall = "pass">><</if>>
<</switch>>
<<set _cSel = "#dgc" + _slot>>
<<set _oSel = "#dgo" + _slot>>
<div class="text"><strong>At the rope (<<= _slot + 1>>/4):</strong> <<= _g.desc>></div>
<div @id="'dgc' + _slot">
<<linkreplace "Unhook the rope">>
<<replace _oSel>>
<<if _correctCall == "pass">>
<<set _correct += 1>>
<p>You unhook the rope and the night absorbs them without a ripple. Right call.</p>
<<else>>
<<if _g.wrongPass>>
<p><<= _g.wrongPass>></p>
<<elseif _g.holding>>
<p>Twenty minutes later there is a handoff on the smoking terrace, and the van across the street has photographs of the door that allowed it. Your door.</p>
<<statchange "heat" 3>>
<<elseif _g.trouble or _g.dangerous>>
<p>It takes until midnight for the mistake to introduce itself - raised voices, broken glass, a table of guests getting comped for their trouble. The head of security looks from the wreckage to the tablet to you.</p>
<<else>>
<p>The tablet pings your call as a miss within the hour. The rules were the rules tonight, and that was not them.</p>
<</if>>
<</if>>
<</replace>>
<<replace _cSel>><</replace>>
<<if _slot < 3>>
<<append "#queue">><<doorslot `_slot + 1`>><</append>>
<<else>>
<<append "#queue">><<doortally>><</append>>
<</if>>
<</linkreplace>>
<br>
<<linkreplace "Turn them away">>
<<replace _oSel>>
<<if _correctCall == "reject">>
<<set _correct += 1>>
<<if _g.wrongRej and _g.name == "the builder">>
<p>"Not tonight," you tell him, and mean the apology in it. He nods like a man who has been told no by this building before, squares the jacket on his shoulders, and walks home through the queue with his shine catching the neon. Right call. It doesn't feel like one.</p>
<<else>>
<p>You keep the rope hooked and watch the problem walk off down the block, somebody else's problem now. Right call.</p>
<</if>>
<<else>>
<<if _g.connected>>
<p>Within the hour a phone call comes down through the manager like weather. Somebody's somebody got bounced at your rope, and somebody's somebody's uncle wants your name spelled correctly. It gets spelled correctly.</p>
<<statchange "heat" 4>>
<<elseif _g.wrongRej>>
<p><<= _g.wrongRej>></p>
<<else>>
<p>They leave without a scene. Later you learn they were exactly who they said they were, and the rules tonight had a place for them inside. The tablet logs the miss.</p>
<</if>>
<</if>>
<</replace>>
<<replace _cSel>><</replace>>
<<if _slot < 3>>
<<append "#queue">><<doorslot `_slot + 1`>><</append>>
<<else>>
<<append "#queue">><<doortally>><</append>>
<</if>>
<</linkreplace>>
<<if _g.lewd > 0>>
<br>
<<linkreplace "Suggest another way in">>
<<replace _oSel>>
<<if _g.lewd == 1>>
<p>You tip your head toward the alcove past the coat check, and she understands the neighborhood's oldest exchange rate faster than you finish the sentence. In the dark she pulls the good dress off her shoulders and shows you her tits, chin up, half defiance and half transaction, nipples hard in the cold air off the door. You look exactly as long as the toll requires, then unhook the rope.</p>
<!-- IMAGE: alcove flash - local girl pulling down her dress top in the dark by the coat check -->
<<else>>
<p>You tip your head toward the gap behind the velvet curtain, and she smiles like she has read this contract before signing it. Behind the curtain she is all business and no illusions - down on her knees on the club's marble with the bass covering everything, working your cock out of your slacks with practiced fingers.</p>
<!-- VIDEO: behind the curtain - quickie blowjob against the wall, club bass muffled -->
<p>Her mouth is warm, fast, and entirely uninterested in ceremony; she sucks you with one eye on the curtain gap and both hands earning her cover charge, and when you grunt she swallows, stands, fixes her lipstick in her phone, and walks past the rope like she owns it.</p>
<</if>>
<<if _correctCall == "pass">>
<<set _correct += 1>>
<p>The tablet, blind to the alcove, logs a correct entry. The queue is less blind: she came out fixing her dress, and every face in line just learned what your rope costs.</p>
<<else>>
<p>The rules said no tonight - and the tablet logs her entry as your miss. Worse, the queue watched her come out fixing her dress. Every face in line just learned what your rope costs.</p>
<</if>>
<<statchange "respect" -2>>
<<statchange "heat" 1>>
<</replace>>
<<replace _cSel>><</replace>>
<<if _slot < 3>>
<<append "#queue">><<doorslot `_slot + 1`>><</append>>
<<else>>
<<append "#queue">><<doortally>><</append>>
<</if>>
<</linkreplace>>
<</if>>
</div>
<div @id="'dgo' + _slot"></div>
<</widget>>
<<widget "doortally">>
<<set _pay = 15 + _correct * 5>>
<p>Four in the morning. The head of security takes the tablet back and reads your shift the way other men read racing forms.</p>
<<statchange "money" _pay>>
<<if _correct == 4>>
<<speech "Head of Security" "Four for four. You've got door eyes. Here - the good calls get the good handshake.">>
<<statchange "money" 10>>
<<statchange "respect" 1>>
<<elseif _correct >= 2>>
<<speech "Head of Security" "Some right, some wrong. That's a door shift. Go home.">>
<<else>>
<<set $door_strikes += 1>>
<<if $door_strikes >= 3>>
<<speech "Head of Security" "Three marks. I told you how the record works. Shirt.">>
<p>You hand back the black t-shirt a size too small, and the staff entrance becomes a wall again. Around here even failure is punctual.</p>
<<set $nightclub_job = 0>>
<<set $door_strikes = 0>>
<div class="req">You've been fired from the club. The old gates apply if you ever want back in.</div>
<<else>>
<<speech "Head of Security" "That was expensive judgment. Mark number $door_strikes goes on your record. Three and you're done here - the rope forgives nothing.">>
<div class="req">(Strikes: $door_strikes/3)</div>
<</if>>
<</if>>
<p>[[Back inside|Nightclub]]<br>[[Step into the night|The Hood]]</p>
<</widget>>
*/<<switch $target1>>
<<case 1>>
<<pic "img/adriana/meeting.jpg">>
<<speech "Adriana" "So you're the guy Jamal is betting everything on... Let me guess, ex-military?">>
<p>You prefer to ignore her questions. Betting everything, though?</p>
<<speech "You" "You know why I am here.">>
<<speech "Adriana" "I love it when men go straight to business. Happy to tell you that your target is ready, hope you have the rest of the payment in cash?">>
<<speech "You" "Hold on for a moment. Can you please tell me what exactly you have done?">>
<<speech "Adriana" "Oh, with pleasure.">>
<p>Adriana walks you through her playbook with the pride of someone showing off a trade she's spent years honing. The bones of it, she explains, are the same con she's run for paying clients since before she could legally drink: infect the target's devices with malware to gain remote access, hollow out their social profiles, work the social engineering until you own as much of their life as it's possible to own from behind a screen. If the target's house has CCTV, it's hacked; otherwise, hidden cameras go in separately. She's wrecked marriages and emptied bank accounts this way for money. The rest, she admits, is new.</p>
<p>The next step is up to you. While you control the target's digital life through various exploits, your aim is to spark an interest in interracial sex and extramarital affairs, usually by displaying interracial porn pop-ups, recommending articles promoting infidelity, and so on.</p>
<<pic "img/adriana/popup.webp">>
<p>Now, the goal is to provide the curious soul with materials to explore. Delivery of forbidden interracial porn through VPN. Anonymous forums, where fake users describe their affairs. One-day deliveries of realistic black dildos. And when the target starts craving the real thing - it's time for you to step in.</p>
<<pic "img/adriana/popup2.webp">>
<<speech "Adriana" "I provide a secure laptop that has all the needed software installed. It's really easy to follow, just log in occasionally and watch the target until she's ready to go black.">>
<<speech "You" "How do I know that she will?">>
<<speech "Adriana" "The profile does. This woman is bored out of her mind, her husband hasn't touched her in months, and I've watched what she reaches for when she thinks nobody's looking. She's most of the way there on her own; I'm just clearing the road.">>
<<speech "You" "And the rest? The... going black part.">>
<<speech "Adriana" "That's Jamal's theory, not mine. He came to me after that whole Renner business, obsessed, saying he'd found the one thing these people can't survive. Wanted to know if I could make it happen on purpose instead of by luck. Turns out I can. You're the first target we're aiming the whole thing at, start to finish.">>
<p>The first target. So you're not stepping onto a conveyor belt - you're the test run for a thing that has worked exactly once, and only by accident. Somehow that's worse. But both Adriana and Jamal are betting everything on Renner's fall repeating, and so, it seems, are you.</p>
<hr>
<p>All that is left is to make the last payment.</p>
<<speech "Adriana" "Jamal already beat me down from two hundred, the cheapskate. So: $100 now. Or - I can give you a $50 discount if you do a little service for me. Beat up a kid who was shitting on my gaming skills.">>
<<speech "You" "Are you serious right now? Beat up like... threaten?">>
<p>With an angelic smile, Adriana corrects you.</p>
<<speech "Adriana" "No-no, I want you to fuck him up properly. Let him bleed. And tell him, write it down, 'unicorn_pussy69 sends her regards'.">>
<<nobr>>
<<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
<<if $money >= 100>>
<<linkreplace "Pay in cash">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>You throw Adriana a wad of cash - impressive looking but made from small denominations.</p>
<<speech "Adriana" "Nice! Let me get you everything.">>
<<statchange "money" -100>>
<<set $target1 to 2>>
[[Proceed|Target1]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Pay in cash"</em></div><</replace>>
<</linkreplace>><br>
<<else>><div class="req">You don't have $100.</div><</if>>
<<if $money >= 50 && (($respect >= 80 && $physical < 50) || ($respect >= 40 && $physical >= 50))>>
<<linkreplace "Do muscle service(and take a reputation hit)">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>You wait outside the kid's school and compare leaving teens against the photo Adriana gave you. Finally, you have a match.</p>
<<speech "You" "Hey kid, does the name '14domination_fan88' tell you something?">>
<p>By the frightened pimply face of this skinny white teen, you confirm that he is the one you look for. Before he starts running, you knock him down with a punch to his nose.</p>
<<speech "You" "Unicorn pussy sends her regards... or something.">>
<<pic "img/adriana/beat_up.webp">>
<p>You kick the shit out of him in front of the school, in the eyes of his classmates and friends, until he stops screaming. It's not pretty. You run from the scene but have no doubts you are recognized.</p>
<<if $physical < 50>>
<div class="req">Strength check failed!</div>
<p>You have fallen out of shape, failed to control your strength, and thus caused more damage than needed. Beaten to the pulp, the kid will live, but recovery will take some time. Your reputation plummeted.</p>
<<statchange "respect" -80>>
<<statchange "heat" 20>>
<<else>>
<p>You made sure not to injure the kid, and he recovered quickly. While still damaging to your reputation, this episode can be quickly remediated.</p>
<<statchange "respect" -40>>
<<statchange "heat" 10>>
<</if>>
<<speech "Adriana" "Haha, what a loser! Come to my place, I'll get you everything.">>
<<statchange "money" -50>>
<<set $target1 to 2>>
[[Meet the psycho|Target1]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Do muscle service"</em></div><</replace>>
<</linkreplace>><br>
<<else>>
<<if $money < 50>>
<div class="req">You don't have $50 for the discounted price either.</div>
<<elseif $physical >= 50>>
<div class="req">You could put the kid down clean, but the hood would still hear about it. You need 40 respect to carry that. (You have $respect.)</div>
<<else>>
<div class="req">Out of shape, you'd make a mess of him, and that kind of mess follows you. Get to 50 physical to do it clean on 40 respect, or bank 80 respect to survive doing it badly. (You have $physical physical, $respect respect.)</div>
<</if>>
<</if>>
<<linkreplace "Take some time to think">>
<<set _choiceMade = true>>
<<replace "#output">>
<<speech "Adriana" "Sure. Don't make Mrs. Bond wait too long, though!">>
<<return>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Take some time to think"</em></div><</replace>>
<</linkreplace>>
<</if>>
</div>
<div id="output"></div>
<</nobr>>
<<case 2>>
<p>Adriana hands you a reinforced laptop and explains how to use it. It's fully encrypted and protected from various attacks like cold freeze. Installed are: surprisingly easy-to-use application for controlling the target's devices, coupled with psychological profiles and scenarios; communication link with Adriana and Jamal (finally!); and some other utilities you don't have time to get into now.</p>
<<speech "Adriana" "Now, before you go... I spend so much time looking at black dicks on my screens I guess I got curious myself. How about you practice your blacking skills on your nerdy hacker?">>
[[Why not?|AdrianaQuestBJ]]
<<link "I have a job to do" "The hideout">>
<<set $target1 to 3>>
<<set $hacker_level to Math.max($hacker_level, 1)>>
<</link>>
<<case 3>>
<div class="text">
Taxi drives you to a wealthy neighborhood: massive pools in the backyards, emerald-green lawns, useless marble columns, all this kitsch. You feel alien in here and cross the distance between the road and the entrance gate as fast as you can before neighbors call the police about some suspicious black man in their segregated area. Your heart races as you ring the telecom.</div>
<<speech "Savannah" "Hello, are you from the water company? Please come in. The pool is from the right.">>
<p>With a buzz, the gate opens, and you step on the premises. At least Adriana crafted a believable notification from the local water provider. Still, how are you supposed to do... what you need to do? Even if Mr. Bond did some horrible things, this doesn't automatically make his wife a bad human being.</p>
<<pic "img/savannah/portrait_base.jpg">>
<<speech "Savannah" "Oh! Why would the company send a nigger?">>
<p>Nevermind then. Actually, playing along would make it even easier.</p>
<<speech "You" "I'm sorry, ma'am. Shortages of the workforce, and this was an important matter.">>
<<video "img/savannah/pool.webm" >>
<<speech "Savannah" "All right... well, here's the pool. Do what you need, and be quick about it.">>
<<speech "You" "Sure, ma'am.">>
<p>You come to the pool and take some water samples, trying to look as professional as possible. Mrs. Bond is looking over your shoulder, probably in case you steal some of her water.</p>
<<pic "img/savannah/pool.jpg">>
<p>Just what you needed. Pretending you have to maneuver between her voluptuous body and the pool, you make a clumsy move and fall into the water. Splash!</p>
<<speech "Savannah" "Sir, are you all right?">>
<<speech "You" "I'm fine, ma'am. I'm soaked, though. Can I have a towel, please?">>
[[Proceed|Target1-2]]
<</switch>><p>Five minutes later, you find yourself inside the house. Since the very moment you took off your shirt, Mrs. Bond stared at your body.</p>
<<speech "Savannah" "I must say, I'm terrified by the thought alone that my husband finds out I was in the house alone with a nig... a black man.">>
<<speech "You" "What's the problem with that, ma'am?">>
<<speech "Savannah" "Oh, my husband is a very jealous man as is. But with black men - come on, you know how you are.">>
<<speech "You" "Tell me, ma'am.">>
<<speech "Savannah" "Well... So masculine. So raw and dominant. And... big.">>
<<speech "You" "That's true, ma'am. That's what I am.">>
<p>You can't believe how lame this exchange is, but Savannah blushes and peeks at your boxers while trying to gear down this conversation.</p>
<<speech "Savannah" "Haha, I was just joking...">>
<<speech "You" "I'm not. Anyway, tell me, Mrs. Bond, how come you spend this beautiful day by the pool all alone?">>
<<speech "Savannah" "Oh, please... My husband is a very busy man, I guess...">>
<<speech "You" "If I were at his place, ma'am, I would never keep my stunning wife all alone and bored. I see you haven't had fun in a long time, am I right?">>
<<speech "Savannah" "Very long. I used to have fun with my husband, but... Maybe he wouldn't mind me having fun with someone else?">>
<<speech "You" "You don't have to tell him, Savannah.">>
<<speech "Savannah" "You can keep secrets?">>
<p>You lie. This doesn't matter, though, as Mrs. Bond has already made up her mind.</p>
<<video "img/savannah/reveal.webm" >>
<p>She's almost scared to see your dick. But it's just like she imagined, pleasuring herself while looking at blonde girls fucked by massive dicks like yours...</p>
<<video "img/savannah/worship.webm" >>
<p>It's not the same Mrs. Bond that was rude to you outside. This slut is fully ready to be blacked. You hope the hidden camera in your bag, right across the sofa, catches that transformation; if not, Adriana can access CCTV in this house to get some juicy shots.</p>
<<video "img/savannah/blowjob.webm" >>
<p>When she tries to suck your cock, you don't hesitate to help her go deep and rough. Holding her neck so she won't pull back, you slam your dick deep in her throat, and even her gagging sounds like moans of pleasure.</p>
[[Let's get this slut blacked|Target1-3]]<p>For what feels like a sweet eternity, but probably is just shy of an hour, you were ruthlessly pounding the policeman's wife.</p>
<<video "img/savannah/rough.webm" >>
<p>Was it her deeply suppressed desire, a taboo that nested within her for years, that you and Adriana spent weeks coaxing to the surface? Would she snap at some point anyway, sooner or later, and has her marriage been doomed? There are so many themes for an after-sex cuddle talk, but there won't be one. </p>
<<video "img/savannah/doggy.webm" >>
<div class="text">It's not about Mrs. Bond, anyway. You fuck this gorgeous woman not because you wanted to - although you can't deny the attractiveness of her buxom body. No, you pound her because her husband wronged you and many other people. In fact, an argument can be made that if you think about this man while having sex with Mrs. Bond, your sex is pretty gay.
Enough with this shit. It's time to wrap up.</div>
<<video "img/savannah/creampie.webm" >>
<div class="text">You don't even ask Mrs. Bond where you should cum, or if she is on a pill (you know she's not). You just claim her pussy and breed this snow bunny, filling her insides with your thick cum. She does not object - this is the happiest moment of her life.
<<speech "Savannah" "I should have started cheating on my husband years ago...">>
You move away to make sure your hidden camera gets a shot of Mrs. Bond's ruined, cum-leaking pussy for the future audience of Mr. Bond and his white colleagues. You own this wife.</div>
<<linkreplace "Should you pee on her?">>
<p>To further establish your domination over Mrs. Bond, you command her to kneel. She does that without hesitation, empty-minded, still euphoric from a series of orgasms you gave her during the last hour.</p>
<<video "img/savannah/piss.mp4" >>
<p>You empty your bladder at her. Initially, you just wanted to give this girl a golden shower to humiliate her further, piss all over her big tits and stupid face; but Mrs. Bond eagerly opens her mouth to the stream of yellow liquid and, with loud gulps, drinks everything you gave her, bathing in your piss. Amazing slut.</p>
<</linkreplace>>
<div class="text">There's nothing left to do here. You call a taxi and pick up your things as Mrs. Bond lies on the sofa, still in bliss. Part of you feels sorry for her - her life is going to be changed forever, for better or worse, when your little sex tape is released.
You can't make an omelet without breaking eggs.</div>
[[Later|Target1-4]]<<pic "img/general/hideout.jpg" "location">>
<div class="text">You're back in the hideout before dawn, bolt thrown, sitting in the dark with the street noise coming through the wall.
The first message arrives before you've even washed the night off you - the edit of your sex with Mrs. Bond. Your face is blurred, but you are afraid that someone close might still recognize you on the video. More than that, you are troubled by the whole event in the first place.
<<if $savannah_approach == 2>><<pic "img/savannah/option2/cum.jpg">><<else>><<pic "img/savannah/cum.jpg">><</if>>
Back in the Bond's mansion, you were working on adrenaline - and lust. Now, in cold blood, you are questioning yourself - was going for one's family justified by someone's horrible actions? Sure, Savannah liked - loved - that, but you probably destroyed her life, albeit unhappy.
And also, are you really this masculine, dominating man you see on the screen? You pretended so well that it's hard to see a normal man behind the facade of a black with BBC attached, but it was the point, you guess.
The second message was from Jamal.</div>
<<speech "Jamal" "Nigga, you a natural. Adriana put your work all over the web, but we made sure the first to see it was Mr. Bond and his brothers in blue.">>
<p>You can practically hear the grin through the screen.</p>
<<speech "Jamal" "Police Sergeant Nikolas Bond, suspended without pay - imagine that! Official reason say something about conduct unworthy of an officer, but really they just want this pathetic bastard gone quick, before the shame rubs off on the badge.">>
<<speech "Jamal" "See, if we'd killed Bond, they'd have made him a martyr, and the heat would've been unbearable. Now his own people doing the burying for us.">>
<<speech "Jamal" "Don't mean it come free, though. A sergeant got humiliated, and a precinct always take that out on somebody. Right now every man on that blockpost is looking real hard at big black brothers who got business on the other side of the wall.">>
<<speech "Jamal" "So you sit still, don't leave the hood or even the hideout without much need.">>
<<pic "img/savannah/aftermath.jpg">>
<p>No word about Savannah - not surprising, given that all this operation wasn't about her. You'd love to check the cameras, but Adriana wiped out your digital presence in the mansion - just in case. You hope she's doing fine.</p>
<<pic "img/general/books_1.jpg">>
<p>You can't sleep, and there's nothing in the room to do but the pile of books Jamal must have left here. History of black activism, guerilla warfare, leftist theory, and a lot of psychology - it's a weird mix, and you read until the light comes up grey through the blinds; maybe you should check the library to find out more?</p>
<<statchange "knowledge" 2>>
<<if $ella_stage >=6>>
<<pic "img/ella/dreaming.jpg">>
<div class="text">Speaking of the library, you realize you've thought about Ella all night. In the whirlwind of sex and debauchery, she is an island of relative normalcy, and it looks like you are more attracted to her than you thought. You'd love to meet her when you have the chance.</div>
<</if>>
<div class="text">You lie down as the block wakes up around you. Jamal is right about the neighborhood: it will hide you the same way it hides everything else, as long as you stay inside it.</div>
<div class="req">Your heat is through the roof. Until it cools down, the blockpost is out of the question - the hood is all you've got. Laying low in the hideout burns it off faster.</div>
<<set $heat = 90>>
[[Continue|Sleep]]
<<set $target1 to 4>>
<<if $ella_stage >= 6>><<set $ella_stage to 7>><</if>>
<<set $nextday to 1>><h1>Mrs. Savannah Bond</h1>
<<pic "img/savannah/photo.jpg">><br>
Interest in interracial sex: $savannah_blacked<br>
Interest in affairs: $savannah_cheating<br>
<<if $savannah_observation_made == 0 && ($savannah_blacked >=1 || $savannah_cheating >=1 )>>
[[Check the cameras|t1_observe]]<br>
<</if>>
<<if $savannah_action_made == 0>>
<h2>Actions:</h2>
[[Show lewd pop-ups|t1_popup]]<br>
<<if ($savannah_blacked >=2 || $savannah_cheating >=2 )>>[[Send interracial porn links|t1_porn]]<br><</if>>
<<if $savannah_dildo_sent == 0 && ($savannah_blacked >=4 || $savannah_cheating >=4 )&& $money >= 20>>
[[BBC toy delivery($20)|t1_dildo]]<br>
<</if>>
<<else>>
<br>
Let that sink in. Come back tomorrow...<br>
<br>
<</if>>
<<if $savannah_approach == 0 && ($savannah_blacked >=3 || $savannah_cheating >=3 )>>
<h2>Choose the final approach:</h2>
Adriana has blueprinted several scenarios for your approach based on Mrs. Bond's psychological profile, access to the properties, and basic scenarios. Choose what suits you best.<br>
<h3>Black Lover</h3>
Meet Mrs. Bond solo and seduce her using her desire to cheat on her husband.<br>
<<if $savannah_cheating < 7>><div class="req">Requires 7 in affairs interest (currently $savannah_cheating)</div><br>
<<else>> [[Choose|t1_option1_setup]]
<</if>>
<h3>Snowbunny for two</h3>
Join forces with Jamal and present Mrs. Bond with an opportunity to fulfill her black gangbang fantasies.<br>
<<if $savannah_blacked < 7>><div class="req">Requires 7 in interracial interest (currently $savannah_blacked)</div><br>
<<else>> [[Choose|t1_option2_setup]]
<</if>>
<<elseif $savannah_approach == 0>><div class="req">Keep raising her stats...</div><br>
<</if>>
<br>
[[Go back|Laptop]]<p>On your way to the Bond's mansion, you talk with Jamal.</p>
<<speech "Jamal" "Two of us walking in on her - that's the whole play, young blood. It's what finished Renner, remember? One man in his daughter's bed, maybe he survive that. Two black men on camera? That's the exact thing his whole world is built to keep from happening. More spread, more views, more shame on the husband.">>
<p>He asks with a cheeky smile:</p>
<<speech "Jamal" "So this your first time sharing a girl, or was running trains just regular R&R in the service?" "jamal_happy">>
<<speech "You" "Shut up. No, this will be the first.">>
<p>You were nervous before about the whole operation, but now, when your inexperience comes to light, your anxiety level rises.</p>
<<speech "Jamal" "Ha! Relax, man. We gon' get our cucking material, and I got a feeling we gon' have ourselves a real good time making it. Milf like that? That ain't work, that's a bonus.">>
<p>Jamal pulls something from his pocket and hands it to you. It's a small blue pill.</p>
<<speech "Jamal" "Hey, fucking with another naked man working inches from you can be... distracting, first time especially. Ain't no shame in taking a pill and never once thinking about your boner, you feel me?">>
<p>You look at the erection pill and wonder if you should take it. You believe that great lovers aren't those who are always hard but those who aren't upset by being not. On the other hand, you are about to bring to life a porn reality and are expected to perform just as those idealized, always-hard no matter what actors - who probably used the juice to maintain this myth themselves. Anyway...</p>
<<nobr>><<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
<<linkreplace "Take it">>
<<set _choiceMade = true>>
<<set $savannah_pill = 1>>
<<replace "#output">>
<p>You sigh and swallow the pill. One less thing to worry about.</p><br>
[[You are almost there|Target1_2-2]]<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Take it"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Don't take it">>
<<set _choiceMade = true>>
<<set $savannah_pill = 0>>
<<replace "#output">>
<<speech "You" "Nah man, I think I'm good.">><br>
<<speech "Jamal" "That's what I like to hear, brother.">><br>
[[You are almost there|Target1_2-2]]<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Don't take it"</em></div><</replace>>
<</linkreplace>><br>
<</if>>
</div>
<div id="output"></div>
<</nobr>><p> You finally reach the mansion and ring the bell. The gate opens automatically, and you step inside. Looks like there is someone by the pool, so you head there.</p>
<<speech "Jamal" "One last thing. Don't you hold back in there. Live the stereotype, be her walking interracial kink - that's exactly what we came for.">>
<<pic "img/savannah/option2/meet_1.jpg">>
<<speech "Savannah" "Wait, are you... How... I thought it was a joke...">>
<div class="text"> Savannah meets you by the pool. She looks surprised, but...</div>
<<speech "Jamal" "But you was hoping it ain't, right? Else why the high heels and full makeup on your pool day?" "jamal_happy">>
<p> She blushes and bites her lip.</p>
<<pic "img/savannah/option2/meet_2.jpg">>
<<speech "Savannah" "You said nothing about my skimpy bikini... Okay, you got me. I was dreaming that two strong black men would give me a porn star treatment, but... it was just a fantasy.">>
<<speech "You" "Mrs. Bond, we can leave if you like.">>
<p> Jamal squints at you, but you prefer to ignore him, while Mrs. Bond is visibly torn. It's one thing to reply to scammy emails and then pretend they are real; another is to face your dreams in reality. However, you are confident about her decision - you've seen her life and know her too well.</p>
<<speech "Savannah" "Please, stay. And call me Savannah. Or slut. Or whore. Treat me rough, you fucking nigg...">>
<p> Jamal slaps her face, and you join him in groping her massive tits.</p>
<<video "img/savannah/option2/1_grope.mp4" >>
<p>Savannah's tiny bikini top can barely contain her heavy melons, and you quickly pull it away to free her gorgeous bust. Meanwhile, her impatient hands had already found the parts she was most interested in and now stroke the big black dicks she dreamed of. You play with her tit with one hand while your other explores her crotch, and even through the thin fabric of her thong, you can feel her burning-hot pussy. She will be dripping in no time just from you two groping her boobs.</p>
<<video "img/savannah/option2/2_ass_grope.mp4" >>
<<speech "You" "Show us what else you got!">>
<<speech "Jamal" "Daymn, that's one nice ass for a white girl!">>
<p>You play with Savannah's bubble butt, shaking and slapping her fat asscheeks; her butt is truly marvelous. She, on the other hand, is too busy playing with your big toys, holding your dicks with a firm grip as if afraid you'll change your mind and leave without giving her a taste.</p>
<<video "img/savannah/option2/3_bj.mp4" >>
<p>You and Jamal could play with her voluptuous body all day long, but Savannah has other ideas. She kneels between you two and, for a moment, sizes you up - these must be the biggest cocks she has seen in her life, and what is most important - her husband's pitiful penis of a white man pales in comparison to your monster cocks. Hungrily, Savannah wraps her lips around your shaft and starts sucking you - just to switch and serve her mouth to Jamal. She iterates between you two, thoroughly enjoying herself.</p>
<<video "img/savannah/option2/4_facefuck.mp4" >>
<p>To remind this slut who's in charge, you grab the back of her head and thrust your cock deeper in Savannah's throat, then pass her to Jamal so he can fuck this whore's face as well. She gags and drools all over her fat tits; when you reach it to give a squeeze, it's all slippery. For a moment, you wonder if you are going too rough on the poor housewife - it is then that Savannah grabs your hand and forces you to squeeze her boob harder and play with it like an oversized stress relief ball.</p>
<<speech "Savannah" "*gasps for air* You're so eager to fuck my throat, boys - want to fuck something else instead?">>
<<speech "Jamal" "Bitch, make my day - tell me you got that ass ready for some black meat.">>
<p>Shit, Jamal knows his way with words.</p>
<<speech "Savannah" "Who do you think I am? Of course, you can fuck my big fat ass with your monster cocks! Let's go inside, and I'll show you.">>
<p>What a transformation from a bored housewife to an anal slut! Her husband would be proud.</p>
[[Go inside for the main course|Target1_2-3]]<<video "img/savannah/option2/5_spitroast.webm" >>
<<video "img/savannah/option2/6_dp.webm" >>
<<video "img/savannah/option2/7_reverse_dp.mp4" >>
<p>Inside the living room, right on the couch where Savannah watches TV with her husband, you pound her every hole. Sweet, perfect-looking pussy is a great fit for your hard dicks, while her bubble butt is tight but can barely fit half the length of your massive dicks; and at all times, you can just shove your cocks inside her always-open mouth and hope she won't choke to death. Cameras around the room record every orgasm Savannah has, every inch of black meat entering her holes, every word of pleasure and degradation she screams to you. Indeed, this is a perfect love letter for her sadistic husband.</p>
<<if $savannah_pill == 0>>
<<video "img/savannah/option2/8_anal_hand.webm" >>
<p>At some point, you and Jamal are exhausted, while Savannah is insatiable and keeps asking for more and more. Jamal leaves to get some water while you are left alone; your erection is not that hard, but this does not stop Mrs. Bond from trying to make you harder with both her ass and her hand. Either because of this, or just because of some time alone with her, you get your erection back.</p>
<<else>>
<<video "img/savannah/option2/8_anal_switch.mp4" >>
<p>Fucking such an insatiable slut is more reminiscent of pleasurable but heavy work, and Jamal starts to grow tired first. You, on the other hand, thanks to the pill, are able to hold much longer. At some point, semi-flaccid Jamal pulls out of Savannah's ass and invites you in; he, instead, happily sucks her juicy, sweaty tit while you rail her ass. It's a bit weird, but the pill helps you not care about it too much.</p><</if>>
<<video "img/savannah/option2/10_finish.mp4" >>
<p>Eventually, it's time to wrap up. Out of breath, you jerk off to kneeled Savannah, who looks like she is ready for a second round - but you are no more.</p>
<<speech "You" "We should have brought more men... Call for backup...">>
<<speech "Jamal" "And air support while you at it. Young blood, just cum already - don't make the lady wait on her load.">>
<p>Hidden cameras record how you plaster the slut's face with your thick cream. Using that Savannah is overwhelmed with the smell and taste of your cum, you quickly leave before she comes to her senses. Your job here is done, and it's better to bail before something goes wrong.</p>
<<speech "Jamal" "I seen a lot of sluts in my life, but this one - this something else. You did good today, young blood. Now go rest.">>
[[Next|Target1-4]]Conveniently, your laptop has bookmarked sex shops and courier services operating on the dark web. You select the realistic-looking black dildo and leave the cash in a dead drop near your hideout. As soon as the courier collects the money, delivery is made to Mrs. Bond, leaving no trace to you.
<<statchange "money" -20>>
<<set $savannah_cheating += 1>>
<<set $savannah_blacked += 1>>
<<set $savannah_dildo_sent = 1>>
<<set $savannah_action_made to 1>>
[[Go back|Target1Laptop]]<<nobr>><<set _corruption = $savannah_blacked + $savannah_cheating>>
<<if _corruption >= 8 && $savannah_dildo_sent == 1>> <<set _event = random(1,9)>>
<<elseif _corruption >= 8 && $savannah_dildo_sent == 0>> <<set _event = random(0,7)>>
<<else>> <<set _event = random(0, Math.min(_corruption, 7))>>
<</if>><</nobr>>
<<switch _event>>
<<case 1>>
<<pic "img/savannah/laptop/popup_reaction_1.jpg">>
It seems like Mrs. Bond enjoys what she sees on her monitor.
<<speech "Savannah" "It's so... Indecent~">>
<<case 2>>
<<pic "img/savannah/laptop/popup_reaction_2.jpg">>
Mr. Bond comes to help his wife with the viruses, and you turn them off temporarily. It seems now he suspects his wife was searching for such content herself...
<<speech "Savannah" "Nikkie, I swear I wasn't looking for ~big, black cocks~ on the Internet...">>
<<case 3>>
<<pic "img/savannah/laptop/argue_1.jpg">>
From what you have already seen, Bonds don't look like a happy couple. In rare times when you can find Nikolas at home, there are always fights and arguments between the two, and your supply of lewd materials to Savannah's laptop only adds fuel to the fire.
<<case 4>>
<<video "img/savannah/laptop/nudewalk.webm" >>
Not much today, but you catch Savannah nude on her way to the shower. Damn, you would be lying, saying you don't want to fuck this gorgeous woman!
<<case 5>>
<<pic "img/savannah/laptop/argue_2.jpg">>
Dressed in fancy lingerie, Savannah tries to seduce her husband, and you witness him turning down his wife's request for sex. It looks like it's not the first time...
<<speech "Savannah" "When was the last time we had sex, Nikolas?! Do you even remember you have a wife?">>
Savannah's desire to cheat increased!
<<set $savannah_cheating += 1>>
<<case 6>>
<<video "img/savannah/laptop/mirror_pose.webm" >>
Savannah poses in front of the mirror.
<<speech "Savannah" "Nikolas says I'm too fat... *sigh* But my ass feels kinda nice">>
<<case 7>>
<<video "img/savannah/laptop/masturbation.webm" >>
Sexually frustrated, Savannah takes matters into her own hands, and you watch her masturbate. She runs her fingers across her perfect pussy, stopping on her sensitive clit, and fingers herself until the much-needed orgasm approaches.
<<case 8>>
<<video "img/savannah/laptop/BBCToy_1.webm" >>
You watch Savannah trying out the black dildo you sent her. Spreading her legs, she pushes the BBC toy deep inside her hungry pussy, dreaming of being pounded by a real black thing.
Savannah's desire to try BBC increased!
<<set $savannah_blacked += 1>>
<<case 9>>
<<video "img/savannah/laptop/BBCToy_2.webm" >>
Mrs. Bond put on a whole show while playing with the BBC toy you've sent her. Fucking the black dildo in various positions, she must be ready for a real thing...
Savannah's desire to try BBC increased!
<<set $savannah_blacked += 1>>
<<default>>
Nothing in particular catches your eye as you switch between the hidden cameras in Bonds' mansion, but you can't help but notice how bored Savannah looks most of the time. A devoted housewife, she spends her days mostly alone, with her husband working overtime doing his dirty job, and this loneliness alone is a good precursor for your eventual meeting.
<</switch>><<set $savannah_observation_made to 1>>
[[Go back|Target1Laptop]]You feel that playing on the feelings of the lonely milf would be the easiest option. Mrs. Bond is a vulnerable housewife, craving attention that her husband is not able to provide - and you can use it to your advantage.
The pre-crafted script chooses the next time Mr. Bond will be at work (that's almost always) and sends a notification to the household, telling them about an incoming inspection from the water company. That's your cover.
<<set $savannah_approach to 1>>
<div class="req">You can start anytime from your hideout.</div>
[[Return|Target1Laptop]]<div class="text">This option looks unbelievable to you in its simplicity, entirely banking on Mrs. Bond's pent-up sexual frustration and desire to try interracial sex. You send her an email that simply tells her that she was randomly chosen from visitors to some IR porn site to have sex with the actors. It ends with your and Jamal's physical characteristics and a request to select one or both. It looks like a straight-to-spam, Nigerian-prince-level junk email, so you are genuinely surprised when you receive the reply that says:
"BOTH."
Come to think of it, nothing else is happening in Mrs. Bond's life except for your constant supply of interracial content. She is desperate to reply to even this email for a slim chance of something breaking her out of her housewife routine.
It's a threesome, then.</div>
<<set $savannah_approach to 2>>
<div class="req">You can start anytime from your hideout.</div>
[[Return|Target1Laptop]]<<set _choiceMade = false>> <!-- Flag to track if a choice is made -->
<div id="choice-container">
Choose the pop-up theme for today:<br>
<<if not _choiceMade>>
<<linkreplace "BBC">>
<<set _choiceMade = true>>
<<set $savannah_blacked += 1>>
<<set $savannah_action_made to 1>>
<<replace "#output">><<album "img/savannah/laptop/popups_black/" 6 "webp" "story">>
<p>You tune the malware to throw pop-ups and banners focused on the sexual superiority of black men. IR, BBC, BNWO; breeding, mandingo, race play. You got a lot to learn.<br>Savannah's desire to try BBC increased!</p><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"BBC"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Infidelity">>
<<set _choiceMade = true>>
<<set $savannah_cheating += 1>> <!-- Change your variable -->
<<set $savannah_action_made to 1>>
<<replace "#output">><<album "img/savannah/laptop/popups_cheating/" 6 "webp" "story">>
<p>The flow of pop-ups is focused on themes such as infidelity, cucking, and cheating.<br>Savannah's desire to cheat increased!</p><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Infidelity"</em></div><</replace>> <!-- Hides both choices -->
<</linkreplace>><br>
<</if>>
</div>
<div id="output"></div>
<br>
[[Go back|Target1Laptop]]<<set _choiceMade = false>> <!-- Flag to track if a choice is made -->
Choose the porn theme for today:
<div id="choice-container">
<<if not _choiceMade>>
<<linkreplace "BBC">>
<<set _choiceMade = true>>
<<set $savannah_blacked += 1>>
<<set $savannah_action_made to 1>>
<<replace "#output">><<album "img/savannah/laptop/porn_black/" 6 "webp" "story">>
<p>You send the links to forbidden interracial porn, focused on BBC and gangbangs.<br>Savannah's desire to try BBC increased!</p><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"BBC"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Infidelity">>
<<set _choiceMade = true>>
<<set $savannah_cheating += 1>> <!-- Change your variable -->
<<set $savannah_action_made to 1>>
<<replace "#output">><<album "img/savannah/laptop/porn_cheating/" 6 "webp" "story">>
<p>The porn you send is playing with themes of cucking, cheating, and sharing.<br>Savannah's desire to cheat increased!</p><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Infidelity"</em></div><</replace>> <!-- Hides both choices -->
<</linkreplace>><br>
<</if>>
</div>
<div id="output"></div>
<br>
[[Go back|Target1Laptop]]<<pic "img/school/school_exterior.webp" "location">>
<p>The bus lets you out across from the school - the other world's kind of school, all brick, lawn, and fresh paint, with the state flag snapping over the entrance. Your fake credentials sit in your pocket, warm as a stolen wallet. Adriana's work is good. It had better be.</p>
<p>Kids of the people who run this country stream through the gates, loud and untouchable. Somewhere in there are the levers Jamal wants pulled.</p>
<<if $school_job == 0>>
<p>The service entrance is around the side, past the dumpsters. That's your door now. The front gates are for people whose parents own things.</p>
[[Report for your first day|School First Day]]<br>
<<else>>
[[Go in through the service entrance|Hallway]]<br>
<</if>>
[[Take the bus back|The Hood]]/* ============================================================
School arc widgets.
<<schoolphase>> - sets _sphase (1-3), the power phase of the
janitor arc. Phase 1: the help, humiliated without recourse.
Phase 2: the fixture, tolerated, allowed to answer back.
Phase 3: the owner, feared - from Pollock's finale on
($pollock_stage 4+), whether or not Britney's arc ever got
him the detention post.
<<schoolevent>> - 30% chance of a random school event on
entering the Hallway; at most one per day. Lewd events are
watch-only at phase 1; phase 2+ adds an interaction choice.
<<schoolevent "force">> (the open work order) always rolls
one, even on a day that already had its event.
============================================================ */
<<widget "schoolphase">>
<<if $pollock_stage >= 4>>
<<set _sphase = 3>>
<<elseif $school_rep >= 15 && $amber_stage >= 4>>
<<set _sphase = 2>>
<<else>>
<<set _sphase = 1>>
<</if>>
<</widget>>
<<widget "schoolevent">>
<<schoolphase>>
<<if _args[0] is "force" || ($last_school_event_day < $day && random(1, 100) <= 30)>>
<<set $last_school_event_day = $day>>
/* Case 13 only exists from Pollock's first slip, so the earlier odds stay as they were. */
<<set _sevent = random(1, $pollock_stage >= 5 ? 13 : 12)>>
<<switch _sevent>>
<<case 1>>
/* Fire drill */
<<if _sphase == 1>>
<p>The fire alarm goes off mid-period and the building empties past you in a river of blazers. You stand against the wall with your cart, the way you're supposed to. A linebacker-sized senior puts his shoulder into you as he passes - not an accident, nothing about the smirk is an accident - and your spray bottles clatter across the floor. Nobody stops. A girl steps over the bottles like they're roadkill.</p>
<p>You pick them up. You keep your eyes down. That's the whole job description, really.</p>
<<elseif _sphase == 2>>
<p>Fire drill. The river of blazers parts around your cart this time. The linebacker who used to shoulder-check you meets your eyes for half a second and decides the other side of the hallway looks better. A small victory.</p>
<<else>>
<p>Fire drill. The hallway empties around you and the linebacker who used to bounce you off the lockers stops - stops - to pick up a rag that slipped off your cart. He sets it back like it might be wired to something. "Sorry, Mr. $player_surame."</p>
<<statchange "respect" 1>>
<</if>>
<<case 2>>
/* Volleyball team mud */
<<if _sphase == 1>>
<p>The girls' volleyball team comes back from the practice field straight across your wet, just-mopped floor - a parade of cleats and long legs leaving a trail of mud the length of the main hall. The captain looks right at you as she does it. "Oops," she says, and her whole squad giggles on cue, and then they watch you: the entertainment portion of their afternoon, a grown man getting back down on his knees with a rag.</p>
<p>You get back down on your knees with a rag.</p>
<<elseif _sphase == 2>>
<p>The volleyball team hits the edge of your wet floor and actually hesitates. The captain weighs the mud on her cleats against something in your face that wasn't there a month ago, and takes her squad the long way around. One of the younger ones mumbles something that might be sorry.</p>
<<else>>
<p>The volleyball girls stop dead at the edge of your wet floor like it's an electric fence. The captain unlaces her cleats and carries them, and the whole squad pads across in socks, and she gives you a smile on the way past that has nothing to do with apology and everything to do with the things the school whispers about the man in the coveralls now.</p>
<</if>>
<<case 3>>
/* Vending machine */
<p>The vending machine outside the gym has eaten some sophomore's money again, and he's rocking the whole cabinet like it owes him gambling debts. It's going to come down on him if he keeps that up.</p>
<div id="choice-container">
<<linkreplace "Fix it for him">>
<<replace "#output">>
<p>Two raps on the side panel, a hip check at the right corner - the machine coughs up his chips and his coins. He looks at you like you've done a card trick. "Thanks, man."</p>
<<set $school_rep += 1>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Fix it for him"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Not your problem">>
<<replace "#output">>
<p>You push your cart on by.</p>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Not your problem"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>
<<case 4>>
/* Pollock's car */
<<if $pollock_stage >= 4>>
/* DRAFT */
<p>Through the front glass you watch her Tesla pull in and park inside her own lines for once.</p>
<p>In the lobby her eyes find you before they find anybody else. She looks... happy?</p>
<<else>>
<p>Through the front glass you watch Principal Pollock's silver Tesla glide in and stop at a diagonal across two spaces - hers, and the one marked STAFF MEMBER OF THE MONTH. She gets out without looking at the lines. Rules are for people who can be prosecuted, and she stopped being one of those years ago.</p>
<p>She passes you in the lobby close enough to touch and her eyes never register the obstacle. To Shannon Pollock the mop moves by itself.</p>
<</if>>
<<case 5>>
/* Confiscated phone box */
<p>Someone's left the front office unattended, door open, and on the counter sits the confiscation box - a plastic tub of students' phones, a few teachers' too, waiting out their sentences. Half of them aren't even locked. People in this building believe in locks the way they believe in consequences: for other people.</p>
<div id="choice-container">
<<linkreplace "Go through it">>
<<replace "#output">>
<<if random(1, 100) <= 50>>
<<if $pollock_leverage < 10>>
<p>You wipe the counter slowly with one hand and thumb through an unlocked phone with the other. A teacher's, judging by the emails - and there, in a group chat named STAFF (REAL), a thread about Pollock's "cabinet audit": <i>she does it herself now, won't let the bookkeeper near it since March</i>. You put the phone back exactly where it was. Interesting, what the walls would say if anyone thought the walls could hear.</p>
<<set $pollock_leverage += 1>>
<div class="req">Leverage on Pollock: $pollock_leverage/10</div>
<<else>>
<p>Nothing new - you already know more about this building than the people who run it. You square the box's corners and move on.</p>
<</if>>
<<else>>
<p>You're two phones deep when the office secretary comes back with her coffee. "WHAT do you think you're doing?" You hold up the cleaning rag - the world's oldest alibi - and take the tongue-lashing that follows in front of two students and a parent. The word "these people" features prominently. You count ceiling tiles until it's over.</p>
<<if $school_rep > 1>><<set $school_rep -= 2>><</if>>
<<run setup.albrightNote("phones", 1)>>
<<if $pollock_leverage < 10>>
<p>What she'll never know: the first phone had already talked. A teacher's, unlocked, and in the outbox a grievance email that never got sent - dates, amounts, "the third time our department budget has been 'reallocated' mid-year with no paper trail." You took the tongue-lashing with the sender's name filed away safe.</p>
<<set $pollock_leverage += 1>>
<div class="req">Leverage on Pollock: $pollock_leverage/10</div>
<</if>>
<</if>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Go through it"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Leave it alone">>
<<replace "#output">>
<p>You wipe the counter and leave the box to its sentence. Patience. The building leaks secrets like a bad roof - you just have to keep being the man with the bucket.</p>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Leave it alone"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>
<<case 6>>
/* Pollock at the trophy case - the mirror */
<<if $pollock_stage >= 4>>
/* DRAFT */
<p>Principal Pollock has stopped at the trophy case again, at the glass. This time she isn't checking a seam. She fixes her lipstick, catches you in the reflection behind her, and holds your eyes until the seniors between you have gone past.</p>
<<elseif $pollock_stage >= 1>>
<p>Principal Pollock has stopped at the trophy case. Not at the trophies - at the glass. You watch her study her own reflection in it, and behind her reflection, a knot of seniors passing, all shoulders and hair and eighteen years old, laughing at something that has nothing to do with her and everything to do with her. Her thumb comes up and drags once along her jawline, slow, like she's checking a seam for damage. Then she catches herself, snaps her cuffs straight, and marches off at full commanding speed.</p>
<p>You mop on. But you file it.</p>
<<else>>
<p>A quiet stretch of hallway, for once. You get a whole wing mopped without a single blazer walking through the wet end. In this building, that qualifies as a good omen.</p>
<</if>>
<<case 7>>
/* Library flashing */
<p>Dead period, and the library's back stacks have traffic in them after all: a senior girl, phone propped between two hardbacks on the reference shelf, top pulled up over her pierced tits. She squeezes them together, rolls a stiff nipple between two fingers, drags her tongue slow over her lip for the lens. Subscriber content, shot in the periodicals section between third and fourth period. Her dad probably funds this wing.</p>
<<video "img/school/random/flasher_1.webm">>
<<if _sphase == 1>>
<p>Then she clocks you. She doesn't cover up. She checks who it is, registers the coveralls, and goes back to posing, because the janitor doesn't count as being seen. You push your cart past a topless girl between the shelves like you're part of the lighting rig, and she never once breaks the pose.</p>
<<else>>
<p>Then she clocks you - and grins, and holds the pose. "You're not gonna narc," she says. It isn't a question. Around here, you've stopped being furniture.</p>
<div id="choice-container">
<<linkreplace "Lean on the cart and watch">>
<<replace "#output">>
<p>You lean on the cart and watch her work. Having a live audience does something for her - the arch gets deeper, the hands slower, a palm slides down under her waistband and stays there, and she finishes the set facing you instead of the phone, tits swaying with each pose between the stacks. Then the top comes down, the phone goes in the blazer, and she slips off toward fourth period with wet fingers and a straight face, like nothing happened.</p>
<<video "img/school/random/flasher_2.webm">>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Lean on the cart and watch"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Get your cock out">>
<<replace "#output">>
<p>You check the aisle both ways - old habit - and unzip. Her eyes drop, then widen, and the pose falls apart into something honest: she turns her back on her own camera to watch you stroke your BBC, tits out, lip between her teeth, whispering "oh my god" on a loop like a prayer. Her mouth's already hanging open, so you put it to use.</p>
<<video "img/school/random/flasher_sucks.webm">>
<p>While the rich brat gags herself on your black cock, drooling on the library carpet her daddy paid for, you check out the live chat over her bobbing head - it's a blast. Next time you should ask for a cut.</p>
<<run setup.albrightNote("library", 2)>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Get your cock out"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>
<</if>>
<<case 8>>
/* Empty classroom */
<p>Room 114 is supposed to sit empty fifth period. Through the door glass it isn't: two seniors on the teacher's desk, her back flat against the wood, skirt shoved up around her waist, legs spread wide while he pounds her hard enough to walk the desk across the floor. The papers crumpling under her shoulders are somebody's graded midterms.</p>
<<video "img/school/random/classroom_fuck_1.webm">>
<<if _sphase == 1>>
<p>You gotta move, unless you want to earn a reputation as the school perv.</p>
<<else>>
<p>She spots you through the glass and slows to a grind, watching you watch her. Waiting to see what the man the school whispers about does with a locked-open door.</p>
<div id="choice-container">
<<linkreplace "Stay and watch">>
<<replace "#output">>
<p>She puts on a little show for you - hips grinding slow, tits bouncing out of her open blazer - and when her partner pulls out at the last second and unloads across her face, she keeps her eyes open through every rope of it, locked on you instead of him, like you're the one she's taking the facial for. Her free hand gives you a little wave, the kind you'd give a bus driver, once she's done wiping the cum off her chin with somebody's midterm.</p>
<<video "img/school/random/classroom_fuck_2.webm">>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Stay and watch"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Get your cock out">>
<<replace "#output">>
<p>You swing the door open, step inside, and pull it out. The boy's still buried in her, hips stuttering, mouth open to say something proprietary about the room being taken - and then she looks past him at what you're holding and stops grinding entirely. Her eyes do the math a lot faster than his do. She peels off him without so much as an apology, leaves him hard and stranded on the desk mid-thrust, and drops to her knees in front of you like the janitor just became the main event.</p>
<p>She works you with both hands and her whole mouth, sloppy and enthusiastic, spit running down her knuckles, glancing up now and then to make sure the boy on the desk is watching her not watch him anymore. He sits there rock hard and forgotten, papers stuck to his ass, waiting his turn on a desk he now shares with nobody. She doesn't stop until you're finished, swallows most of it, and wipes her mouth with a satisfied little sound.</p>
<<video "img/school/random/classroom_fuck_3.webm">>
<p>"Janitor's got the master key," she tells him, breathless, by way of explanation. You zip up and go. That sentence will be all over the senior class by sixth period, and it won't hurt you one bit.</p>
<<set $school_rep += 1>>
<<run setup.albrightNote("classroom", 2)>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Get your cock out"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>
<</if>>
<<case 9>>
/* Girls' toilets */
<p>The work order says the first-floor girls' toilets are "flooded." They are not flooded. A senior girl is squatting in the middle of the floor, skirt hiked up and panties around one ankle, pissing a long deliberate stream past the toilet - with four open, empty, perfectly functional stalls behind her. She looks up at you mid-stream and doesn't stop, doesn't even pinch it off.</p>
<<speech "Senior Girl" "The stalls are disgusting. Someone should really do their job." "default_female">>
<<video "img/school/random/pisser_1.webm">>
<<if _sphase == 1>>
<p>She finishes at her own pace, stands, steps over her own puddle, and stops at the mirror to fix her hair with her panties still around her ankle - because you watching doesn't count either. On her way out she taps the wet floor sign on your cart.</p>
<<speech "Senior Girl" "You'll want that." "default_female">>
<p>You get the mop. That's the whole job description, really.</p>
<<else>>
<p>She finishes at her own pace and stands there shaking her hips dry, bare pussy on display like a dare, waiting for you to get the mop like the appliance you're dressed as.</p>
<div id="choice-container">
<<linkreplace "Get the mop">>
<<replace "#output">>
<p>You mop it. She watches the whole time from the mirror, redoing her lipstick, and something about a grown man swabbing up her piss without a word seems to settle her whole afternoon. Rich people pay good money for worse therapy.</p>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Get the mop"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Make her clean it herself">>
<<replace "#output">>
<p>She looks at your face, and at the doorway you're occupying all of, and remembers whatever it is the school whispers about the man in the coveralls now, and whatever she was about to say dies somewhere in her throat.</p>
<<speech "You" "Those panties are still on your ankle. Use them.">>
<<speech "Senior Girl" "Yes, sir." "default_female">>
<p>Two words, and they cost her something to say. She bends down and works the panties off her ankle, gets down on her bare knees in her own puddle, and starts dragging the soaked scrap of fabric across the tile in slow circles, wringing it out with her fist between passes while you point out the spots she missed. By the time the floor's dry her hands are shaking.</p>
<<speech "You" "Not done.">>
<p>You nod at what's left pooled in the grout lines. She stares at you for a second like you might be joking, then lowers her head and slurps it off the tile, swallowing her own piss. When the floor's clean she crawls the last few feet to the bowl she was supposed to be scrubbing and, without being told twice, drops her head in and runs her tongue around the rim and under it until the porcelain shines better than it has all year.</p>
<<video "img/school/random/pisser_2.webm">>
<p>You leave her kneeling on the bathroom floor. Word of that will travel too. Good.</p>
<<run setup.albrightNote("toilets", 2)>>
<<set $school_rep += 1>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Make her clean it herself"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>
<</if>>
<<case 10>>
/* The counselor's leak */
<p>A knot of senior boys at the lockers, one phone in the middle, and a hush you last heard in church. You catch the screen on your way past: a blonde in a hotel mirror, older than they are and better than they deserve, wearing a conference lanyard and nothing else. Somebody's "leaked set," the file names say MS AMBER, and the arguing is scholarly.</p>
<<speech "Senior" "That's AI, bro." "default_male">>
<<pic "img/school/random/britney_leak.jpg" "story">>
<<if $amber_stage >= 3>>
<p>You keep mopping and keep your face shut, because unlike these archaeologists you have primary sources, and the verdict is: real. Twenty-something, sure - but the smile hasn't changed a day, and you'd know that couch-side grin at any resolution.</p>
<p>By sixth period half the senior class has self-referred to counseling. Britney's door sign says BACK TO BEING AMAZING IN 30 MIN, and when you pass her in the hall she looks about as devastated as a lottery winner.</p>
<<else>>
<p>You mop past. By sixth period the counseling office has a waiting line of self-referred seniors, and the counselor herself walks the hallway looking not like a woman allegedly ruined, but like a woman having an excellent week.</p>
<</if>>
<<case 11>>
/* Settle it */
<p>You're restocking dispensers in the second-floor girls' room - door propped, cart in the doorway, by the book - when two senior girls bang in mid-argument and pull their tops up at the mirrors. It's a bet, apparently. Something about whose are bigger, rounder, firmer...</p>
<<pic "img/school/random/comparison.webp" "story">>
<<if _sphase == 1>>
<p>One of them catches your reflection and elbows the other. "It's the janitor," she says, and they go right back to the audit, tits out, because you rank somewhere below the mirror in this room. You finish the paper towels and wheel out.</p>
<<else>>
<p>One of them catches your reflection - and instead of covering up, turns around. "Perfect. Settle it." Two pairs of tits aimed at you like a pop quiz.</p>
<div id="choice-container">
<<linkreplace "Give an honest verdict">>
<<replace "#output">>
<p>You take your time, because a rushed inspection is a worthless inspection, and they hold still for it - chins up, backs arched, competitive to the bone. You walk a slow circle. You have one of them bounce on her heels, for science. Then you deliver the verdict, flat, itemized, like a work order.</p>
<<pic "img/school/random/bounce.webp" "story">>
<p>The winner shrieks and collects her twenty. The loser calls you blind, then asks - quieter, tugging her top back down - whether the score changes if she works on her posture. You leave them to the rematch negotiations. Strangest thing anyone's asked the help all month, and the month included the grease trap.</p>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Give an honest verdict"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Give a hands-on verdict">>
<<replace "#output">>
<p>Eyeballing it is for amateurs. There's only one metric that actually settles an argument like this - whether a big black cock fits between them - and you tell them so. Neither one laughs. Neither one leaves either.</p>
<p>You unzip and let them look, and the room goes quiet in a way the mirror never managed. One of them steps up without waiting for a vote, cups her tits together under your shaft, and the verdict writes itself the second she squeezes: hers swallow you whole, thick and heavy and warm, more than enough to work you top to bottom with barely a knuckle showing. The other one watches her own chances evaporate in real time.</p>
<<video "img/school/random/titjob.webm">>
<p>You titfuck the winner right there against the sinks, the runner-up crowding in to press her rival's tits tighter around your shaft with both hands, like second place comes with duties. When you finally blow, you paint the winning pair from cleavage to chin, and the loser demands a rematch before you've even zipped up.</p>
<<set $school_rep += 1>>
<<run setup.albrightNote("verdict", 1)>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Give a hands-on verdict"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>
<</if>>
<<case 12>>
/* The work detail - his first blank sent the dirty jobs to the boys who make the mess ($dirty_retired 3) */
<<if $dirty_retired == 3>>
/* DRAFT */
<p>The second-floor boys' toilets have a work detail in them: the three who keep redecorating them, on their knees with scrapers, on a form she signed, and a teacher with a clipboard in the doorway. One of them looks up at your cart as you pass, like he's worked out whose idea it was.</p>
<<else>>
<p>A quiet stretch of hallway, for once. You get a whole wing mopped without a single blazer walking through the wet end.</p>
<</if>>
<<case 13>>
/* The stairwell - the seniors have noticed the principal ($pollock_stage 5 only). DRAFT */
<!-- IMAGE: Pollock climbing the main stairs in heels and a short skirt, senior boys looking up from the landing -->
<p>Main stairs at passing period. Principal Pollock goes up ahead of you in heels and a skirt that has lost its last two inches, and the senior boys coming down flatten against the rail to let her by, then turn around to watch her climb. One of them mutters what he'd do to that ass if he ever got the chance. She stops on the top step, looks back down at him over her shoulder, and doesn't write him up. She smiles at him until he goes red to the ears, and the whole stairwell watches her hips the rest of the way up.</p>
<</switch>>
<</if>>
<</widget>>
/* <<fallbeat>> - the new regime's one-time hallway beats ($pollock_stage 5,
docs/school-after-pollock-plan.md Phase 2). From the day after her first
slip, on a day the random event didn't fire, it shows the first beat
below that is unseen and open, records its id in $fall_seen and takes
the day's event slot. A beat whose gate is still closed is passed over,
not waited on, so a save that never met Marcello still gets the next one.
Marcello counts as met at $pollock_husband 3. The open mic's aftermath
jumps the queue as soon as it has happened. DRAFT prose. */
<<widget "fallbeat">>
<<if $pollock_stage >= 5 && $day > $regime_day && $last_school_event_day < $day>>
<<set _met = $pollock_husband >= 3>>
<<set _fb = "">>
<<if $open_mic >= 1 && not $fall_seen.includes("openmic")>><<set _fb = "openmic">>
<<elseif _met && not $fall_seen.includes("mrshannon")>><<set _fb = "mrshannon">>
<<elseif not $fall_seen.includes("walk")>><<set _fb = "walk">>
<<elseif not $fall_seen.includes("photo")>><<set _fb = "photo">>
<<elseif not $fall_seen.includes("blouse")>><<set _fb = "blouse">>
<<elseif not $fall_seen.includes("signature")>><<set _fb = "signature">>
<<elseif _met && not $fall_seen.includes("seat")>><<set _fb = "seat">>
<<elseif $albright_stage >= 1 && not $fall_seen.includes("paperwork")>><<set _fb = "paperwork">>
<<elseif _met && not $fall_seen.includes("wave")>><<set _fb = "wave">>
<<elseif $albright_stage >= 2 && not $fall_seen.includes("doorplate")>><<set _fb = "doorplate">>
<</if>>
<<if _fb>>
<<set $last_school_event_day = $day>>
<<run $fall_seen.push(_fb)>>
<<switch _fb>>
<<case "openmic">>
<<if $open_mic == 2>>
<p>Nobody in the building is talking about anything else. Twelve seconds of the principal on every speaker from the gym to the boiler room, and seniors are doing impressions of it at the lockers, moans and all. Mrs. Albright stands in her classroom doorway writing something down.</p>
<<else>>
<p>The hallway is full of the intercom: four seconds of something from the front office that nobody can agree on, and every version you pass gets filthier than the last. Mrs. Albright stands in her classroom doorway writing something down.</p>
<</if>>
<<case "mrshannon">>
<p>A senior calls "Later, Mr. Shannon!" down the civics corridor, the old line, and Marcello Pollock waves back and tells him to enjoy his lunch. The joke doesn't land because Marcello is finally happy with his position.</p>
<<case "walk">>
<!-- IMAGE: Pollock from behind in the main hall, tight pencil skirt, senior boys turning to stare -->
<p>Passing period, main hall. The principal comes through without her jacket, in a pencil skirt two inches shorter than anything she wore last month, and her ass rolls under it with every step like it has somewhere to be and all day to get there. The whole corridor of senior boys turns on its heel to watch it go, and a few phones come up. She knows exactly what she's walking through, and she slows down.</p>
<<case "photo">>
<p>Her office door is propped open, which it never is. The wall of framed handshakes is bare, the nails still in it, and the pageant photograph from her desk hangs where the governor used to. The retinols sit out on her shelf with a pharmacy label in her own name.</p>
<<case "blouse">>
<!-- IMAGE: Pollock at the staff meeting in a silk blouse with no bra, male teachers staring -->
<p>Staff meeting in the library, and you're at the back restocking the paper towels. She runs it without the jacket, in a silk blouse unbuttoned one past what the handbook allows and nothing under it, and every time she leans over the projector her big tits swing in the silk and her nipples stand out hard in the air conditioning. The chemistry teacher crosses his legs and keeps them crossed, and nobody in the room hears a word about the budget.</p>
<<case "signature">>
<p>A memo on the staff board about the radiator schedule is signed Principal S. Pollock, and under it, smaller, De Mer.</p>
<<case "seat">>
<p>At lunch somebody at the staff table saves Marcello a seat, and he takes it without first checking whether it's a joke. His Corolla is out in the visitor lot, washed.</p>
<<case "paperwork">>
<p>Your last requisition comes back from the front office rewritten in her hand, in flat facilities language, with every detail that pointed at you taken out. She is more careful with your paper than you are.</p>
<<set $albright_heat = Math.max(0, $albright_heat - 2)>>
<<case "wave">>
<p>Across the east corridor Marcello lifts a hand and waves at you, the civics teacher greeting the janitor by name in front of everybody, and Mrs. Albright watches it happen from her classroom door.</p>
<<set $albright_heat += 1>>
<<set $albright_heat_day = $day>>
<<case "doorplate">>
<p>Somebody has taped a laminated strip over the brass plate on the principal's door. It says DE MER now.</p>
<<set $albright_heat += 1>>
<<set $albright_heat_day = $day>>
<</switch>>
<</if>>
<</if>>
<</widget>>
/* <<albrightcheck>> - Mrs. Albright's restrictions (Phase 4), live once she
has introduced herself ($albright_stage 2+). Sets _ablock to the active
restriction (0 none, 1 chaperone, 2 lock audit, 3 late shift, 4 closet
storage) for every gated place to test. With nothing active, at least one
clear day after the last one lifted, and 4 heat in her file, she spends
the 4 on the next restriction in rotation and the memo prints wherever
this runs first. $albright_block keeps the last id after it lifts, which
is what the rotation reads; it is active only while $day <
$albright_block_until. The late shift runs 2 days, the others 3.
Restriction 4 joins the rotation once Madi's file is open
(docs/madi-build-plan.md, Phase 2): the yearbook's boxes fill his closet.
With Madi, the aide also blocks the afternoon favors, the rekey blocks
locker plants and Terrence, and the late shift blocks her sightings and
detention hour. DRAFT memo wording. */
<<widget "albrightcheck">>
<<set _ablock = 0>>
<<if $albright_stage >= 2>>
<<if $albright_block > 0 && $day < $albright_block_until>>
<<set _ablock = $albright_block>>
<<elseif $albright_heat >= 4 && $day > $albright_block_until>>
<<set $albright_heat -= 4>>
<<set $albright_block = $albright_block % ($madi_stage >= 3 ? 4 : 3) + 1>>
<<set $albright_block_until = $day + ($albright_block == 3 ? 2 : 3)>>
<<set _ablock = $albright_block>>
<div class="req">A district memo is clipped to your timesheet, signed M. Ryan Conner-Albright: <<if _ablock == 1>>a front-office aide will accompany custodial staff during working hours<<elseif _ablock == 2>>the basement locks are to be audited and rekeyed<<elseif _ablock == 3>>custodial hours move to the late shift<<else>>the yearbook's archive is to be stored in the custodial closet<</if>>, until day $albright_block_until.</div>
<</if>>
<</if>>
<</widget>>
/* <<openordercheck>> - for the open work order and each of its channels
(Open Work Order, Open Work Order Walk, and Madi's: Madi Locker, Madi
Annex, Madi Yearbook). Runs <<albrightcheck>> and sets _owoOK while the
morning slot can still be taken: stage 5, morning, the board not cleared,
2 energy, and neither the aide nor the late shift in the way.
<<openorderpay>> takes it: 2 energy and a shift, no reputation. */
<<widget "openordercheck">>
<<albrightcheck>>
<<set _owoOK = $pollock_stage >= 5 && $school_time is "morning" && $school_tasks_done < 2 && $energy >= 2 && _ablock != 1 && _ablock != 3>>
<</widget>>
<<widget "openorderpay">>
<<statchange "energy" -2>>
<<set $school_tasks_done += 1>><<schoolshift>>
<</widget>>
/* <<schoolclock>> - the shift tracker under a school banner (Hallway,
Cafeteria, Closet): the four $school_time phases in order, the current one
lit and the ones already behind you dimmed. Display only - the phase itself
moves through the Hallway and Cafeteria links and resets in <<newday>>. */
<<widget "schoolclock">>
<<set _clockNow = ["morning", "lunch", "afternoon", "evening"].indexOf($school_time)>>
<div class="school-clock">
<span @class="'clock-step' + (_clockNow == 0 ? ' now' : _clockNow > 0 ? ' past' : '')" @aria-current="_clockNow == 0 ? 'step' : 'false'">Morning</span>
<span class="clock-sep" aria-hidden="true">›</span>
<span @class="'clock-step' + (_clockNow == 1 ? ' now' : _clockNow > 1 ? ' past' : '')" @aria-current="_clockNow == 1 ? 'step' : 'false'">Lunch</span>
<span class="clock-sep" aria-hidden="true">›</span>
<span @class="'clock-step' + (_clockNow == 2 ? ' now' : _clockNow > 2 ? ' past' : '')" @aria-current="_clockNow == 2 ? 'step' : 'false'">Afternoon</span>
<span class="clock-sep" aria-hidden="true">›</span>
<span @class="'clock-step' + (_clockNow == 3 ? ' now' : '')" @aria-current="_clockNow == 3 ? 'step' : 'false'">Evening</span>
</div>
<</widget>><<pic "img/school/service_corridor.jpg" "location">>
<p>The service entrance opens on a different school than the one in the brochure: bare concrete, humming pipes, a punch clock older than you are. A woman from the front office - fifty, floral blouse, lipstick applied at a red light - inspects your forged papers for a long ten seconds, then inspects you for longer.</p>
<<speech "Secretary" "Mr. $player_surame, is it. You will punch in at seven, you will punch out at four, and between those hours the children should not have a reason to know you exist. Uniform is in the closet. So is everything else that concerns you." "default_female">>
<<pic "img/school/closet.webp" "story">>
<p>The uniform is grey coveralls with EJ stitched over the pocket - somebody else's initials, a dead man's or a fired one's, nobody bothered to say. The mop cart has a wheel that pulls left. The closet at the end of the east corridor is yours: mop smell, one flickering tube light, a door that locks from the inside.</p>
<p>On your way to your first work order, the lobby doors swing open and the school's whole weather system changes. Heels on marble. Staff straightening. Principal Shannon Pollock crosses her lobby the way a blade crosses a whetstone, and for one half-second her eyes pass across you - the new janitor, day one - and register nothing at all. Not even contempt, which would at least mean you exist. An appliance has been delivered, that's all.</p>
<<pic "img/school/pe_full.jpg" "story">>
<p>Behind her, a barrel of a man in a tracksuit - the PE coach, by the whistle - catches you watching and gives you a single nod. First one you've gotten inside these walls.</p>
<p>Jamal's voice in your head: <i>build trust, read the room, fuck around and find out.</i></p>
<<set $school_job = 1>>
<<set $closet_unlocked = true>>
<<set $school_pay_day = $day>>
<<set $school_shifts = 0>>
<<set $school_time = "morning">>
[[Get to work|Hallway]]<<if $school_time is "afternoon">>
<<pic "img/school/hallway_afternoon.webp" "location">>
<<elseif $school_time is "lunch">>
<<pic "img/school/hallway_lunch.jpg" "location">>
<<else>>
<<pic "img/school/hallway.webp" "location">>
<</if>>
<<schoolclock>>
<<schoolphase>>
<<if _sphase == 1>>
<p>The hallway between periods is a river of blazers and money, and you are a rock it flows around without seeing. When they do see you it's worse: the sidelong looks, the theatrical wrinkled noses, the freshman who whispers something and gets his laugh. You count it all. You have a good memory for faces.</p>
<<elseif _sphase == 2>>
<p>The hallway has learned your name - or at least the coveralls' name. A few students nod now. Teachers have stopped double-checking their purses when you pass. You're becoming what every good infiltrator becomes: furniture with ears.</p>
<<else>>
<p>The hallway parts for you now. Conversations dip when you pass and pick up again, changed, behind you.</p>
<</if>>
<<schoolevent>>
<<fallbeat>>
<<albrightcheck>>
/* The hub groups its options by where in the building they happen. Every
option keeps its own gate, and <<hubgroup>> leaves out a panel with nothing
in it today. A pending summons from Pollock is the only thing on offer and
holds the shift where it is until you answer it. */
<<set _summons = $pollock_stage == 0 && $school_rep >= 2>>
<<if not _summons && $school_time is "evening">>
<p>The school empties out. The building creaks and settles, honest at last.</p>
<</if>>
<div class="hub-panels">
<<if _summons>>
<<hubgroup "Front office">>
<div class="req">The intercom crackles: "Maintenance to the principal's office. Now, please."</div>
<div class="hub-item beat">[[Answer the summons|Pollock Office]]</div>
<</hubgroup>>
<<else>>
<<hubgroup "Maintenance office">>
<div class="hub-note">Shifts on your timesheet this week: <<= Math.min($school_shifts, 5)>>/5, $5 each. Payday on day <<= $school_pay_day + 7>>.</div>
<<if _ablock == 4>>
<div class="hub-note">The yearbook's archive boxes are stacked in your closet at Mrs. Albright's request until day $albright_block_until: no couch, and no room for visitors.</div>
<</if>>
<<if $school_time is "morning">>
<<if $pollock_stage == 4 && $day >= $pollock_next_day>>
<div class="hub-note">There's a pink slip from the principal's office clipped to your timesheet.</div>
<div class="hub-item beat">[[Read the slip|Pollock First Slip]]</div>
<</if>>
/* Her personal pink slips (stage 5): the wording is the visit the slip opens
(setup.syrenSlips, StoryScript.js), the delivery alternates between the
timesheet and a student runner. It's answered from the front office. */
<<if $pollock_stage >= 5 && $day >= $pollock_slip_day>>
<<set _slipText = setup.syrenSlips.text()>>
<div class="hub-note"><<if $pollock_slips % 2 == 0>>A pink slip from the principal's office is clipped to your timesheet<<else>>A student runner hands you a folded pink slip - "she said you'd know what it means" - and he clearly doesn't<</if>>: <em>_slipText</em></div>
<</if>>
/* Her answers to the blanks you filled for Madi (Madi Requisition). */
<<madislips>>
<<if _ablock == 3>>
<div class="hub-note">You're on the late shift until day $albright_block_until, at Mrs. Albright's request. The morning board belongs to somebody else.</div>
<<elseif $school_tasks_done >= 2>>
<div class="hub-note">The morning board is cleared. Extra slips go up after lunch.</div>
<<elseif $energy < 2>>
<div class="req">Work orders are stacked on the board, but even the easy ones take 2 energy.</div>
<<else>>
<div class="hub-item">[[Check the task board|School Tasks]]</div>
<</if>>
<<elseif $school_time is "afternoon">>
<<if $school_tasks_done < 3>>
<<if $energy >= 3>>
<div class="hub-item">[[Pick up an extra work order (3 energy)|School Extra]]</div>
<<else>>
<div class="req">Extra slips take 3 energy.</div>
<</if>>
<</if>>
/* After the fall, below decks is how he answers Mrs. Albright, once her file
is open. Contracting the dirty jobs out for everybody made it cheaper. */
<<if $pollock_stage >= 5>>
<<if $albright_stage >= 1 && $network_day < $day>>
<<set _bdCost = $dirty_retired == 1 ? 3 : 5>>
<<set _bdLabel = "Call in a favor below decks (" + _bdCost + " school rep, 2 energy)">>
<<if $school_rep >= _bdCost && $energy >= 2>>
<div class="hub-item"><<link _bdLabel "Below Decks">><</link>></div>
<<elseif $school_rep < _bdCost>>
<div class="req">Below decks, the invisible people can make Mrs. Albright's paper disappear - for a favor owed. School reputation: $school_rep/_bdCost.</div>
<<else>>
<div class="req">A favor below decks takes 2 energy of legwork.</div>
<</if>>
<</if>>
<<elseif $pollock_stage >= 1 && $pollock_leverage < 8 && $network_day < $day>>
<<if $school_rep >= 5 && $energy >= 2>>
<div class="hub-item">[[Call in a favor below decks (5 school rep, 2 energy)|Below Decks]]</div>
<<elseif $school_rep < 5>>
<div class="req">The building's invisible people see everything Pollock does. They'd talk - for a favor owed. School reputation: $school_rep/5.</div>
<<else>>
<div class="req">The building's invisible people would trade what they've seen of Pollock, but the legwork takes 2 energy.</div>
<</if>>
<</if>>
<<if $incel_path == 1 && $incel_stage >= 9 && $mom_thanks == 0 && $day >= $incel_next_day>>
<div class="hub-note">A woman in a church coat waits by the maintenance office. She has Aaron's face.</div>
<div class="hub-item beat">[[See what she needs|Grateful Mother]]</div>
<</if>>
<</if>>
<</hubgroup>>
<<hubgroup "Front office">>
/* A waiting pink slip is answered here any time before evening. The open mic visit
(the first one after the first) is a one-off, so it gets the beat dot. Mrs.
Albright's chaperone keeps him out of the office while it lasts. */
<<if $pollock_stage >= 5 && $day >= $pollock_slip_day && $school_time isnot "evening">>
<<if _ablock == 1>>
<div class="hub-note">Her pink slip is waiting, but a front-office aide has been at your elbow since Mrs. Albright asked for one, until day $albright_block_until.</div>
<<elseif $energy >= 3>>
<div @class="'hub-item' + ($pollock_slips >= 1 && $open_mic == 0 ? ' beat' : '')">[[Answer principal's pink slip (3 energy)|Pollock Office Slip]]</div>
<<else>>
<div class="req">Her pink slip is waiting in your pocket, but answering it takes 3 energy.</div>
<</if>>
<</if>>
<<if $albright_stage == 2 && _ablock > 0 && $school_time isnot "evening">>
<div class="hub-item beat">[[Ask Pollock to deal with Mrs. Albright|Pollock Cant]]</div>
<</if>>
<<if $school_time is "lunch">>
<<if $pollock_husband >= 1 && $pollock_stage == 2 && $day >= $marcello_next_day>>
<div class="hub-note">Pollock's door is shut for lunch - and Marcello's sad Corolla is in the visitor lot again.</div>
<div class="hub-item">[[Take a quiet look|Pollock After Hours]]</div>
<</if>>
<<elseif $school_time is "afternoon">>
<<if $pollock_stage == 1 && $pollock_leverage >= 3>>
<div class="hub-item beat">[[Knock on the principal's door|Pollock Confrontation]]</div>
<</if>>
<<if $pollock_stage >= 1 && $pollock_stage < 3 && $master_key >= 3 && not visited("Pollock Office Search")>>
<div class="hub-note">Pollock's Tesla left the lot an hour ago. The master key is heavy in your pocket.</div>
<div class="hub-item beat">[[Let yourself into the principal's office|Pollock Office Search]]</div>
<</if>>
<<if $pollock_stage == 2 && $pollock_leverage >= 10 && $master_key >= 3>>
<div class="hub-note">Pollock's door. Her ledger in your pocket, her keys on your ring, her building humming along under your mop. Nothing left to gather.</div>
<div class="hub-item beat">[[Walk into the principal's office|Pollock Reckoning]]</div>
<</if>>
<<if $pollock_stage == 3>>
<<if $pollock_route == 0>>
<<if $day >= $pollock_next_day>>
<div class="hub-note">Pollock's door is unlocked, and it's been left that way for you.</div>
<div class="hub-item beat">[[Walk into Pollock's office|Pollock Unmasked]]</div>
<<else>>
<div class="hub-note">Give Pollock the night. What broke in that office needs time to finish breaking.</div>
<</if>>
<<elseif $pollock_route == 2>>
<<if $day >= $pollock_next_day>>
<div class="hub-note">Pollock's Tesla is out front with the engine running. Walk out of the building whenever you're ready (3 energy).</div>
<<else>>
<div class="hub-note">Pollock picks you up tomorrow, in the middle of the day, with the building full. She wants the night to get ready for it.</div>
<</if>>
<<elseif $day >= $pollock_next_day>>
<<if not $pollock_group_done>>
<<if $energy >= 2>>
<div class="hub-note">Room 214 is ready, and Pollock is waiting in her office.</div>
<div class="hub-item beat">[[Collect Pollock from her office|Pollock Group Project]]</div>
<<else>>
<div class="req">Room 214 is ready for Pollock, but a thing like this you walk into rested or not at all (2 energy).</div>
<</if>>
<<else>>
<div class="hub-note">The boys have their report on Pollock ready - room 021.</div>
<</if>>
<<elseif not $pollock_group_done>>
<div class="hub-note">Pollock is clearing an afternoon for room 214 tomorrow. Nobody rushes this.</div>
<<else>>
<div class="hub-note">The boys will have their report on Pollock tomorrow, in room 021.</div>
<</if>>
<</if>>
<<if $hacker_level == 8 && not setup.princess.ordered("balls")>>
<<if $school_rep >= 3>>
<div class="hub-item beat">[[Ask the front office about the confiscation tub (3 school rep)|Confiscation Tub]]</div>
<<else>>
<div class="req">Something on Adriana's list is sitting in the front office's tub of everything this building confiscates. Digging through it takes a favor from people who trust you. School reputation: $school_rep/3.</div>
<</if>>
<</if>>
/* Grayson summoned (Madi Summons): Madi waits on the bench with him. */
<<if setup.madi.landed("summons") && $madi_reveal == 0>>
<<if _ablock == 1>>
<div class="hub-note">Grayson Holt is on the bench outside Pollock's office, but not while Mrs. Albright's aide is at your elbow. He'll keep until day $albright_block_until.</div>
<<elseif _ablock == 3>>
<div class="hub-note">Grayson Holt's summons is for sixth period, and you're on the late shift until day $albright_block_until.</div>
<<elseif $energy >= 1>>
<div class="hub-item beat">[[See to the radiator in Pollock's outer office: Grayson Holt is on the bench (1 energy)|Madi Summons]]</div>
<<else>>
<div class="req">Grayson Holt is on the bench outside Pollock's office, and the radiator job takes 1 energy.</div>
<</if>>
<</if>>
<</if>>
<</hubgroup>>
<<hubgroup "Around the school">>
<<if $amber_stage == 0 && $school_rep >= 4>>
<div class="hub-item beat">[[There's a commotion by the trophy case|Amber Intro]]</div>
<</if>>
<<if not $pollock_husband && $pollock_stage >= 1 && $pollock_stage < 4>>
<div class="hub-item beat">[[Something's going on outside the civics room|Marcello Intro]]</div>
<</if>>
/* Mrs. Albright: her introduction once the open mic's aftermath has played, and
her confrontation once her first restriction of any kind has landed. It waits
here until it's played, even if the restriction was lifted below decks first:
$albright_block keeps the last restriction's id after it lifts. */
<<if $school_time isnot "evening">>
<<if $albright_stage == 1 && $fall_seen.includes("openmic")>>
<div class="hub-item beat">[[Mrs. Albright is waiting by your cart|Albright File]]</div>
<<elseif $albright_stage >= 2 && $albright_block > 0 && not $fall_seen.includes("confrontation")>>
<div class="hub-item beat">[[Mrs. Albright wants a word|Albright Confrontation]]</div>
<</if>>
<</if>>
<<if $school_time is "lunch">>
<<if _ablock == 3>>
<div class="hub-note">On the late shift you eat after the building empties. The cafeteria isn't yours until day $albright_block_until.</div>
<<else>>
<div class="hub-note">The cafeteria is serving. Even the help gets to eat.</div>
<div class="hub-item">[[Take your lunch to the cafeteria|Cafeteria]]</div>
<</if>>
<<elseif $school_time is "afternoon">>
<<if $day > $gym_wing_day>>
<div @class="'hub-item' + ($gunn_case == 1 && $gunn_trust >= 4 && setup.madi.keylogDue() ? ' beat' : '')">[[Swing by the gym wing|Gym Wing]]</div>
<<else>>
<div class="hub-note">You've already done your round through the gym wing today. Coach Gunn locks up at six.</div>
<</if>>
<<if $amber_stage >= 1>>
<<if setup.madi.landed(setup.madi.allyPending("britney"))>>
<div class="hub-note">Britney has her notes on Madi Collins' session for you.</div>
<</if>>
<div class="hub-item">[[Stop at the counselor's office|Counselors Office]]</div>
<</if>>
/* Madi at her locker at last bell (Madi Corridor), once her file is open. */
<<if $madi_stage >= 3>>
<<if _ablock == 3>>
<div class="hub-note">On the late shift you miss last bell on the east corridor, and Madi Collins with it, until day $albright_block_until.</div>
<<elseif $energy >= 2>>
<div class="hub-item">[[Work the east corridor at last bell: Madi Collins' locker (2 energy)|Madi Corridor]]</div>
<<else>>
<div class="req">Madi Collins' locker is on the east corridor, and working it until she shows takes 2 energy.</div>
<</if>>
<</if>>
/* Madi, Phase 3: the unsung-heroes shoot once Pollock's answer is in,
and the home meet from the day after you've met her until her
night (stage 7). */
<<if setup.madi.landed("unsung")>>
<<if _ablock == 1 || _ablock == 3>>
<div class="hub-note">Pollock would bring the yearbook's photographer down for the unsung-heroes page, but not <<if _ablock == 1>>with Mrs. Albright's aide at your elbow<<else>>while you're on the late shift<</if>>. It keeps until day $albright_block_until.</div>
<<elseif $energy >= 1>>
<div class="hub-item beat">[[Pollock is bringing the yearbook's photographer down: the unsung-heroes page (1 energy)|Madi Unsung Heroes]]</div>
<<else>>
<div class="req">Pollock is bringing the yearbook's photographer down for the unsung-heroes page, and posing for it takes 1 energy.</div>
<</if>>
<</if>>
<<if $madi_stage >= 4 && $madi_stage < 7 && setup.madi.knows("affair") && not $madi_seen.includes("race")>>
<div class="hub-note">There's a home cross-country meet on the back field this afternoon.</div>
<div class="hub-item beat">[[Work the finish chute|Madi Race]]</div>
<</if>>
/* Madi, Phase 4: the back stairwell when you chose to tell her
yourself (Madi Truth), and Linda bringing her to your closet
(Linda Madi Closet, from the closet). */
<<if setup.madi.truthDue()>>
<<if _ablock == 3>>
<div class="hub-note">Madi Collins is waiting for you in the back stairwell at last bell, but you're on the late shift until day $albright_block_until.</div>
<<elseif $energy >= 1>>
<div class="hub-item beat">[[Meet Madi Collins in the back stairwell at last bell (1 energy)|Madi Truth]]</div>
<<else>>
<div class="req">Madi Collins is waiting in the back stairwell at last bell, and you need 1 energy for it.</div>
<</if>>
<</if>>
<<if setup.madi.landed("lindaffm")>>
<div class="hub-note">Linda is bringing Madi Collins to your closet at last bell.</div>
<</if>>
/* Madi, Phase 5: the print at last bell, where you make her the offer
(Madi Print). */
<<if setup.madi.printDue()>>
<<if _ablock == 3>>
<div class="hub-note">Madi Collins will come looking for you at last bell, but you're on the late shift until day $albright_block_until.</div>
<<else>>
<div class="hub-item beat">[[Madi Collins is waiting by your cart at last bell|Madi Print]]</div>
<</if>>
<</if>>
<<if $william_stage == 4 && $day >= $william_next_day>>
<div class="hub-note">William's silver Range Rover is in the visitor lot.</div>
<div class="hub-item beat">[[Go find William|William Follow Up]]</div>
<</if>>
<<if $database_access >= 2 && $madi_stage == 0>>
<div class="hub-item beat">[[Take a glimpse at Madi Collins|Madi Intro]]</div>
<</if>>
<<elseif $school_time is "evening">>
/* The walk-in (Madi Equipment Room): the evening Pollock's answer
sends Madi to the equipment room at six-forty. */
<<if setup.madi.landed("equipment") && $madi_reveal == 0>>
<<if $energy >= 1>>
<div class="hub-note">Pollock has sent Madi Collins to photograph the gym wing's equipment room at six-forty.</div>
<div class="hub-item beat">[[Be in the gym wing at six-forty (1 energy)|Madi Equipment Room]]</div>
<<else>>
<div class="req">Madi Collins walks into the equipment room at six-forty, and you're out on your feet (1 energy).</div>
<</if>>
<</if>>
<</if>>
<</hubgroup>>
<<hubgroup "Basement">>
<<if $school_time is "afternoon">>
<<if $detention_job>>
<<if _ablock == 3>>
<div class="hub-note">Detention runs without you while you're on the late shift, until day $albright_block_until.</div>
/* A filled blank puts Madi on the roster (Madi Detention); her hour
takes the day's session. The first one is first contact. */
<<elseif setup.madi.landed("detention") && $detention_day < $day>>
<<if $energy >= 2>>
<div @class="'hub-item' + ($madi_stage == 3 ? ' beat' : '')">[[Detention (room 019): Madison Collins is on the roster (2 energy)|Madi Detention]]</div>
<<else>>
<div class="req">Madison Collins is on today's detention roster, but the hour takes 2 energy.</div>
<</if>>
<<else>>
<div class="hub-item">[[Detention (room 019)|Detention Room]]</div>
<</if>>
<</if>>
/* Mrs. Albright's lock audit shuts room 021 and the Terrence jobs, not room 019:
detention is a post Pollock signed. */
<<if _ablock == 2>>
<div class="hub-note">The basement was rekeyed at Mrs. Albright's request. Your cut key won't turn in room 021's lock until day $albright_block_until.</div>
<<if setup.madi.dark()>>
<div class="hub-note">Adriana's box stays dark until you can get Terrence back down to the rack.</div>
<</if>>
<<if setup.madi.pullOpen()>>
<div class="hub-note">The equipment room's footage stays on the recorder until you can get into 021 and ask Terrence for it.</div>
<</if>>
<<if setup.madi.boysDue()>>
<div class="hub-note">The boys in room 021 don't know about Madi's night across the wall, and you can't tell them until your key turns again.</div>
<</if>>
<<else>>
<<if $incel_club>>
<<if $incel_stage == 2>>
<div class="hub-item beat">[[Try your key to room 021|Incel Club]]</div>
<<else>>
<div class="hub-item">[[Club at room 021|Incel Club]]</div>
<</if>>
<</if>>
<<if $database_access == 1>>
<<if $energy >= 1>>
<div class="hub-note">Pollock's security key is zip-tied to her keycard in your pocket, and you don't know what you're holding. One kid in this building lives inside its systems for fun (1 energy).</div>
<div class="hub-item beat">[[Ask Terrence to help you access the database|Database Query]]</div>
<<else>>
<div class="req">Pollock's security key is in your pocket and you don't know what you're holding. Terrence would - when you've got the energy left to ask (1 energy).</div>
<</if>>
<</if>>
<<if $server_stage == 1>>
<div class="hub-note">Adriana's black box with the two antennas is riding against your ribs, and it needs hands better than yours.</div>
<div class="hub-item beat">[[Put the server room to Terrence|Server Room Job]]</div>
<</if>>
<<if $server_stage == 2 && $day >= $madi_next_day>>
<div class="hub-note">Terrence is ready to put Adriana's box on the rack once the building has emptied. Stay until the evening.</div>
<</if>>
/* The box's one outage (Madi Outage): Terrence puts it back. */
<<if setup.madi.dark()>>
<<if $energy >= 1>>
<div class="hub-note">Adriana's box is dark: a district update reset the port it sits on.</div>
<div class="hub-item beat">[[Get Terrence down to the server room (1 energy)|Madi Outage]]</div>
<<else>>
<div class="req">Adriana's box is dark, and getting Terrence down to the rack takes 1 energy.</div>
<</if>>
<</if>>
/* The footage (Madi Footage): Terrence pulls it off the recorder. */
<<if setup.madi.pullOpen()>>
<div class="hub-note">If Terrence pulls the footage, Madi gets the truth as a clip in her DMs and the walk-in is off the table.</div>
<<if $energy >= 1>>
<div class="hub-item beat">[[Ask Terrence to pull the equipment room's footage off the recorder (1 energy)|Madi Footage]]</div>
<<else>>
<div class="req">Terrence could pull the equipment room's footage off the recorder, once you have the energy to ask (1 energy).</div>
<</if>>
<</if>>
/* Madi, Phase 5 (path 2): inviting the boys to the night across the
wall (Madi Boys). Optional: without them it's a threesome. */
<<if setup.madi.boysDue()>>
<div class="hub-item beat">[[Tell room 021 about Madi's night across the wall|Madi Boys]]</div>
<</if>>
<</if>>
<<elseif $school_time is "evening" && $server_stage == 2>>
/* The install (Madi stage 2): the evening after Server Room Job, down
the boiler corridor. The lock audit shuts it like the rest of the
basement. */
<<if _ablock == 2>>
<div class="hub-note">The basement was rekeyed at Mrs. Albright's request. Terrence's install waits until your cut key turns again, on day $albright_block_until.</div>
<<elseif $day < $madi_next_day>>
<div class="hub-note">Terrence asked for a day. The box goes on the rack tomorrow evening.</div>
<<elseif $energy < 1>>
<div class="req">Terrence is waiting at the top of the boiler corridor, but you're out on your feet (1 energy).</div>
<<else>>
<div class="hub-note">The building has emptied. Terrence is waiting at the top of the boiler corridor with a backpack.</div>
<div class="hub-item beat">[[Walk Terrence down to the server room (1 energy)|Server Install]]</div>
<</if>>
<</if>>
<</hubgroup>>
<<hubgroup "Elsewhere">>
<<if $school_time is "afternoon">>
<<if $database_access == 2>>
<div class="hub-note">You have the name Pollock's key pulled up. Jamal gets it before anybody else does - the hideout laptop.</div>
<<elseif $database_access == 3 && $server_stage == 0>>
<div class="hub-note">Pollock's keycard and security key go across the wall by hand, to Adriana's lair.</div>
<<elseif $madi_stage == 2>>
<div class="hub-note">Adriana's box is on the rack, and she'll want to show you what it sees - her lair.</div>
<</if>>
<<if $terrence_deal == 1 && $terrence_debrief == 0 && $madi_stage >= 2>>
<div class="hub-note">Terrence's debrief is still owed at Adriana's lair.</div>
<</if>>
<</if>>
/* Madi's file news (Phase 3): Adriana's note on Grayson, and her cut of
Terrence's footage. Both are read from the burner or the laptop. */
<<if setup.madi.affairDue()>>
<div class="hub-note">Adriana has sent something new for the Madi file, about Grayson Holt. The burner in your closet has it, and so does the hideout laptop.</div>
<<elseif setup.madi.clipReady()>>
<div class="hub-note">Adriana has cut Terrence's footage. It's in the Madi file, ready to send.</div>
<<elseif setup.madi.facility9Due()>>
<div class="hub-note">Adriana has been through Ray Collins' work laptop, and she wants you at her lair.</div>
<</if>>
/* Madi, Phase 5: the night. Solo starts here after you clock out (Madi
Unsung Hero); the group night starts from The Hood (Madi Wall). */
<<if setup.madi.nightOpen()>>
<<if $madi_approach == 1 && $school_time is "evening">>
<<if $energy >= 4>>
<div class="hub-item beat">[[Take the late bus to the address on the back of the print (4 energy)|Madi Unsung Hero]]</div>
<<else>>
<div class="req">The address on the back of the print says eleven tonight, and you need 4 energy for it.</div>
<</if>>
<<elseif $madi_approach == 1>>
<div class="hub-note">The address on the back of the print says eleven tonight. Clock out and stay on this side of the wall.</div>
<<else>>
<div class="hub-note">Madi crosses at the blockpost at nine tonight. Be in the hood to meet her.</div>
<</if>>
<<elseif $madi_approach == 2 && $madi_stage == 6 && setup.madi.hasSeen("print") && setup.madi.jamalDue()>>
<div class="hub-note">Madi's night across the wall needs Jamal, and he hasn't heard about it yet: the hideout laptop.</div>
<<elseif $madi_approach == 2 && $madi_stage == 6 && setup.madi.hasSeen("print") && setup.madi.roofMen().length < 2>>
<div class="hub-note">Madi's night across the wall needs more men than you and Jamal: the boys in room 021, or William from the hideout laptop.</div>
<</if>>
<</hubgroup>>
<</if>>
</div>
<div class="hub-footer">
<<if not _summons>>
<<if $school_time is "morning">>
<<link "Break for lunch">><<set $school_time = "lunch">><<goto "Hallway">><</link>>
<<elseif $school_time is "afternoon">>
<<link "Clock out for the day">><<set $school_time = "evening">><<goto "Hallway">><</link>>
<</if>>
<</if>>
<<if $closet_unlocked is true>>
[[Your closet|Closet]]
<</if>>
[[Exit School|Outside]]
</div><<pic "img/school/board.jpg" "location">>
<<albrightcheck>>
<<if $school_time isnot "morning">>
<p>The board's morning orders are done with. Whatever breaks now waits for tomorrow or gets an "extra" slip in the afternoon.</p>
[[Back to the hallway|Hallway]]
<<elseif _ablock == 3>>
<p>You're on the late shift until day $albright_block_until. The morning board belongs to somebody else.</p>
[[Back to the hallway|Hallway]]
<<elseif $school_tasks_done >= 2>>
<p>You've cleared what the board had for you this morning. Your back knows it, too.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<schoolphase>>
/* From Pollock's first pink slip ($pollock_stage 5) the dirty tier is gone
and an open work order takes its slot. The first board after the slip
says where the dirty jobs went, once ("board" in $fall_seen). DRAFT prose
in the stage-5 lines. */
<<if $pollock_stage >= 5>>
<p>The cork board in the maintenance office holds the morning's work orders: what's safe, what's watched, and one slip with nothing written on it.</p>
<<if not $fall_seen.includes("board")>>
<<run $fall_seen.push("board")>>
<p><<if $dirty_retired == 1>>The dirty jobs are gone from the board. A contractor's van takes them on Tuesdays, for the kitchen crew, the groundskeeper and the night guard as well as you.<<elseif $dirty_retired == 2>>Your dirty jobs are gone from the board and go out with the contractor's van. Nobody else's changed.<<else>>The dirty jobs are gone from the board. The boys who make the messes clean them now, on her signature.<</if>> In their place is a slip with her name at the bottom and nothing above it.</p>
<</if>>
<<else>>
<p>The cork board in the maintenance office holds the morning's work orders, sorted the way this school sorts everything: what's safe, what's watched, and what nobody else will touch.</p>
<</if>>
/* The morning's board is rolled once and remembered ($school_tasks_day), so
walking back to the hallway and returning can't be used to reroll which
jobs came up. Same contract as "Look for work" and $jobs_day in the hood. */
<<if $school_tasks_day != $day>>
<<set $school_tasks_day = $day>>
<<set $school_task_safe = random(1, 5)>>
<<set $school_task_risky = random(1, 5)>>
<<set $school_task_dirty = random(1, 5)>>
<</if>>
<<set _safe = $school_task_safe>>
<<set _risky = $school_task_risky>>
<<set _dirty = $school_task_dirty>>
<<switch _safe>>
<<case 1>><<set _safeLabel = "Mop the main hall (2 energy)">>
<<case 2>><<set _safeLabel = "Empty the classroom bins (2 energy)">>
<<case 3>><<set _safeLabel = "Wipe down the cafeteria before lunch (2 energy)">>
<<case 4>><<set _safeLabel = "Restock paper and soap, all floors (2 energy)">>
<<case 5>><<set _safeLabel = "Scrape gum off the auditorium seats (2 energy)">>
<</switch>>
<<switch _risky>>
<<case 1>><<set _riskyLabel = "Clean the locker rooms during class (3 energy)">>
<<case 2>><<set _riskyLabel = "Service the teachers' lounge (3 energy)">>
<<case 3>><<set _riskyLabel = "Buff the admin corridor floors (3 energy)">>
<<case 4>><<set _riskyLabel = "Replace the dead lights in the girls' locker room wing (3 energy)">>
<<case 5>><<set _riskyLabel = "Set up the hall for the board meeting (3 energy)">>
<</switch>>
<<switch _dirty>>
<<case 1>><<set _dirtyLabel = "Biohazard, boys' toilets, second floor (4 energy)">>
<<case 2>><<set _dirtyLabel = "Someone redecorated the bus bay with their breakfast (4 energy)">>
<<case 3>><<set _dirtyLabel = "The kitchen grease trap (4 energy)">>
<<case 4>><<set _dirtyLabel = "Dead rat in the science wing ceiling (4 energy)">>
<<case 5>><<set _dirtyLabel = "Snake out the girls' shower drain (4 energy)">>
<</switch>>
<<if $pollock_stage >= 5>>
<<set _openLabel = ["Inspect premises, at discretion (2 energy)", "Facilities review, east wing (2 energy)", "As needed (2 energy)", "See reverse (2 energy)", "Walkthrough, all floors (2 energy)"][_dirty - 1]>>
<</if>>
<div id="choice-container">
<<if $energy >= 2>>
<span class="task-tier tier-safe">safe</span> <<linkreplace _safeLabel>>
<<replace "#output">>
<<switch _safe>>
<<case 1>><p>You walk the mop up and down the main hall in long even strokes.</p>
<<case 2>><p>Room by room, bin by bin. You learn a school from its garbage: energy drink cans in the AP corridor, cigarettes in the art wing.</p>
<<case 3>>
/* Only his own jobs went to the contractor: the kitchen still does its grease trap, and the coffee stops for five days. */
<<if $dirty_retired == 2 && $day < $regime_day + 5>>
<p>You wipe down two hundred feet of cafeteria table before the horde arrives. The kitchen ladies work around you without a word, and nobody leaves a coffee at the end of your row.</p>
<<else>>
<p>You wipe down two hundred feet of cafeteria table before the horde arrives. The kitchen ladies work around you without a word, but one of them leaves a coffee at the end of your row. The staff below decks look after their own.</p>
<</if>>
<<case 4>><p>Cart, cases, every dispenser in the building. Nobody thanks the man who keeps the toilets stocked. Everybody notices the week he doesn't.</p>
<<case 5>><p>Two hours under the auditorium seats with a scraper. There are forty years of gum down there, in layers, like sediment.</p>
<</switch>>
<<statchange "energy" -2>>
<<set $school_rep += 1>>
<<if random(1, 100) <= 20>>
<p>A teacher you don't know yet actually says "thank you" on her way past.</p>
<<set $school_rep += 1>>
<</if>>
<div class="req">School reputation: $school_rep</div>
<</replace>>
<<set $school_tasks_done += 1>><<schoolshift>>
<<replace "#choice-container">><div class="choice-made"><em>"_safeLabel"</em></div><</replace>>
<</linkreplace>><br>
<</if>>
<<if $energy >= 3>>
<span class="task-tier tier-risky">risky</span> <<linkreplace _riskyLabel>>
<<replace "#output">>
<<switch _risky>>
<<case 1>><p>The locker rooms during class hours: steam, echo, and other people's property in unlocked lockers.</p>
<<case 2>><p>The teachers' lounge. You clean it while the staff talk over your head - about students, about parents, about each other - with the perfect freedom of people who believe the man with the rag comes without a memory.</p>
<<case 3>><p>The admin corridor, floor buffer droning, right past the principal's office, the records room, the trophy wall of framed politicians shaking Pollock's hand. Enemy territory, freshly waxed.</p>
<<case 4>><p>The girls' locker room wing, ladder and ballasts, with a front-office chaperone posted in the doorway the entire time to make sure the janitor doesn't enjoy the wallpaper.</p>
<<case 5>><p>Two hundred chairs under the stage lights, name cards in an order somebody upstairs fought a small war over. You're invisible to the suits filing in, which is the point of you, and the whole reason this counts as sensitive work.</p>
<</switch>>
<<statchange "energy" -3>>
<<set $school_rep += 2>>
/* Leverage pity: every dry risky/extra order widens the next leverage band
by 15, so a bad streak can't run forever. Resets the moment dirt drops.
Capped at 85 so the 15-point master key band right above it always fits,
and back to the base 25 once leverage is full: nothing resets the counter
after that, and a stale one used to push the key band past 100 for good. */
<<set _lchance = $pollock_leverage < 10 ? Math.min(85, 25 + $leverage_dry * 15) : 25>>
<<set _lgot = false>>
<<set _kgot = false>>
<<set _roll = random(1, 100)>>
/* Key pity: the 15th risky order in a row without a piece lands in the key band. */
<<if $master_key < 3 && $key_dry >= 14>><<set _roll = _lchance + 1>><</if>>
/* From Pollock's first slip the leverage and master-key bands are
spent, so the same rooms turn up staff gossip about her instead. */
<<if $pollock_stage >= 5 && _roll <= 45>>
/* DRAFT */
<<switch random(1, 4)>>
<<case 1>><p>Two teachers at the copier are marveling that nobody has been reviewed yet. Not one. </p>
<<case 2>><p>The lounge corkboard has her signature on everything that used to sit on her desk for months: the radiator, the annex camera, a new catering contract. Somebody asks what's gotten into her, no one can answer.</p>
<<case 3>><p>In the lounge the art teacher lowers her voice for the theory she's been saving: Her Majesty got laid. It's the dumbest theory in the building, and the only accurate one.</p>
<<case 4>><p>Two male teachers in the lounge are comparing notes on the principal's new blouses, low enough that the women's table can't hear and not low enough for the man with the rag. One swears she had nothing on under Tuesday's, and the other admits he's been jerking off to that thought since.</p>
<</switch>>
<<elseif $pollock_stage < 5 && _roll <= _lchance>>
<<if $pollock_leverage < 10>>
<<set $pollock_leverage += 1>>
<<set $leverage_dry = 0>>
<<set _lgot = true>>
<<switch random(1, 3)>>
<<case 1>><p>Through the lounge wall you catch Pollock's phone voice, pitched low: "...then the count is whatever I say the count is, same as last cycle. Don't call me at work."</p>
<<case 2>><p>In the shredder bag, between coffee grounds, a strip of ledger paper that didn't shred clean: two columns of numbers for the same line item, one for the auditors, one true. You fold it into your coveralls with the reverence it deserves.</p>
<<case 3>><p>Two teachers by the copier, sotto voce: "...election week she has the custodians move boxes to her car herself. Won't let anyone touch them." They notice you and switch to discussing weather. Too late, ladies.</p>
<</switch>>
<div class="req">Leverage on Pollock: $pollock_leverage/10</div>
<<else>>
<p>Nothing new today - the building has already told you most of its secrets. But it never hurts to let it repeat itself.</p>
<</if>>
<<elseif $pollock_stage < 5 && _roll <= _lchance + 15>>
<<if $master_key < 3>>
<<set $master_key += 1>>
<<set $key_dry = 0>>
<<set _kgot = true>>
<<switch $master_key>>
<<case 1>><p>Behind a dead radiator you find a keyring furred with dust - the last janitor's, or the one before. Half the cuts are obsolete. Two aren't. It's a start.</p>
<<case 2>><p>The locksmith's van comes to rekey a storage room and the man leaves his work case open by your bucket for eleven minutes. You have a good memory, a bar of soap, and eleven minutes.</p>
<<case 3>><p>In the metal shop after hours, a file, a blank, and patience. The key turns the test lock like it grew up in it. As of tonight, "authorized personnel" means you.</p>
<</switch>>
<div class="req">Master key progress: $master_key/3</div>
<<else>>
<p>A quiet, uneventful shift in territory that would be trouble if it knew what you carry in your pocket.</p>
<<set $school_rep += 1>>
<</if>>
<<elseif _roll <= 70>>
<p>Nothing today but the work itself. You finish, you sign the order, you push the cart back.</p>
<<else>>
<<if $albright_stage >= 2>>
/* DRAFT - once her file is open she watches instead of performing, and it goes in the file. */
<p>Mrs. Albright is in the corridor when you come out. She doesn't say a word. She looks at her watch and writes the time down.</p>
<<set $albright_heat += 1>>
<<set $albright_heat_day = $day>>
<<elseif _sphase == 1>>
<p>Mrs. Albright finds you there - the English teacher with the pearls and the voice like a paper cut.</p>
<<speech "Albright" "And what exactly are we doing HERE?">>
<p>The interrogation is loud, public, and rhetorical: your work order means nothing, your explanation means nothing, the whole point is the performance, and students are gathering to watch it.</p>
<<speech "Albright" "These doors are to stay LOCKED to staff of your... category. Is that going to be a problem?">>
<p>There is no answer that helps you. You say no ma'am. You look at the floor you just cleaned. She inspects you for one more long moment, hoping for something reportable, and click-clacks away.</p>
<<if $school_rep > 0>><<set $school_rep -= 1>><</if>>
<<set $albright_heat += 1>>
<<else>>
<p>Mrs. Albright rounds the corner, draws breath for the performance - and reconsiders. You're not the anonymous pair of coveralls you were in September, and she's not sure anymore who's watching whom.</p>
<<speech "Albright" "Carry on.">>
<p>She says it like it was her idea.</p>
<</if>>
<</if>>
<<if not _lgot && $pollock_leverage < 10>><<set $leverage_dry += 1>><</if>>
<<if not _kgot && $master_key < 3>><<set $key_dry += 1>><</if>>
<div class="req">School reputation: $school_rep</div>
<</replace>>
<<set $school_tasks_done += 1>><<schoolshift>>
<<replace "#choice-container">><div class="choice-made"><em>"_riskyLabel"</em></div><</replace>>
<</linkreplace>><br>
<</if>>
<<if $pollock_stage >= 5>>
<<if _ablock == 1>>
<span class="task-tier tier-open">open</span> <em>Not with Mrs. Albright's aide at your elbow, until day $albright_block_until.</em>
<<elseif $energy >= 2>>
<span class="task-tier tier-open">open</span> <<link _openLabel "Open Work Order">><</link>>
<</if>>
<<elseif $energy >= 4>>
<span class="task-tier tier-dirty">dirty</span> <<linkreplace _dirtyLabel>>
<<replace "#output">>
<<switch _dirty>>
<<case 1>><p>Somebody has done something in the second-floor boys' toilets that a functioning household would call a cry for help. You do it on your knees with a scraper, breathing through your mouth, while boys drift in and out narrating the scene to their phones. "Yo, film the janitor."</p>
<<case 2>><p>Some trust-fund stomach lost its breakfast the length of the bus bay, and the smell has had two hours to establish itself. You hose, you scrape, you disinfect, while the drop-off line of German SUVs idles past your bent back.</p>
<<case 3>><p>The kitchen grease trap. There is no dignified sentence in any language that contains the words "grease trap." You haul out fifty pounds of cold rancid sludge one bucket at a time, and when it slops onto your boots the dish crew winces in genuine sympathy, because they, at least, know exactly what this work is worth and exactly who was ever going to do it.</p>
<<case 4>><p>You find it by smell, third ceiling tile you pull. It has been up there a while. The biology teacher watches you bag it from across the room and empties half a can of air freshener at the ceiling before you're out the door.</p>
<<case 5>><p>A decade of hair comes out of that drain in one long grey rope, plus two snapped elastics and somebody's earring. The swim team crowds the doorway to watch and makes sounds a horror movie would be proud of.</p>
<</switch>>
<<statchange "energy" -4>>
<<statchange "physical" -2>>
<<set $school_rep += 3>>
<p>Word of jobs like this travels below decks. The kitchen crew, the groundskeeper, the security guard on nights - the school's invisible people are deciding you're one of them, and their doors open first.</p>
<div class="req">School reputation: $school_rep</div>
<</replace>>
<<set $school_tasks_done += 1>><<schoolshift>>
<<replace "#choice-container">><div class="choice-made"><em>"_dirtyLabel"</em></div><</replace>>
<</linkreplace>>
<</if>>
</div>
<<linkreplace "Legend">>
<div class="task-legend">
<span class="task-tier tier-safe">safe</span> Quiet work in public. Builds reputation, teaches you nothing.<br>
<<if $pollock_stage >= 5>>
<span class="task-tier tier-risky">risky</span> Admin territory, staff spaces, places the help isn't supposed to linger. The most reputation on the board now.<br>
<span class="task-tier tier-open">open</span> Her signature and nothing else: an hour nobody accounts for. No reputation gained.
<<else>>
<span class="task-tier tier-risky">risky</span> Admin territory, staff spaces, places the help isn't supposed to linger. Reputation - and it's where dirt on Pollock and master-key pieces turn up.<br>
<span class="task-tier tier-dirty">dirty</span> The jobs nobody else will take. The most reputation, and the invisible people remember - but nobody drops secrets over a grease trap.
<</if>>
</div><</linkreplace>>
<div id="output"></div>
<p></p>
[[Hallway]]
<</if>><<pic "img/school/hallway_afternoon.webp" "location">>
<<if $school_time isnot "afternoon">>
<p>Extra slips only get posted after lunch.</p>
[[Back to the hallway|Hallway]]
<<elseif $school_tasks_done >= 3 || $energy < 3>>
<p>You've given this building everything your back had today.</p>
[[Back to the hallway|Hallway]]
<<else>>
<p>There's always some extra work to be done - and the afternoon slips skew toward the watched kind: annexes, records rooms, doors with sign-out sheets. Which is exactly why you keep taking them.</p>
<<statchange "energy" -3>>
<<set $school_rep += 2>>
<<set $school_tasks_done += 1>><<schoolshift>>
<<set _roll = random(1, 100)>>
<<if _roll <= 15 + $leverage_dry * 15 && $pollock_leverage < 10>>
<<set $pollock_leverage += 1>>
<<set $leverage_dry = 0>>
<p>Work takes you to shift boxes in the records annex, and the box that splits open on the dolly bleeds precinct tally sheets - years old, never surrendered, annotated in a neat administrative hand. You reseal it badly on purpose and remember the shelf.</p>
<div class="req">Leverage on Pollock: $pollock_leverage/10</div>
<<elseif _roll <= 30>>
<<if $pollock_leverage < 10>><<set $leverage_dry += 1>><</if>>
<p>The extra turns out to be hauling staging for the theater kids, who treat you like a stagehand instead of a stain - which is, by this school's standards, a promotion. One of them fist-bumps you. Their director pretends not to see.</p>
<<set $school_rep += 1>>
<<else>>
<<if $pollock_leverage < 10>><<set $leverage_dry += 1>><</if>>
<p>An hour of honest, invisible work. The building takes it without a word, the way it takes everything from you. For now.</p>
<</if>>
<div class="req">School reputation: $school_rep</div>
[[Back to the hallway|Hallway]]
<</if>>/* After the fall (Phase 4) this is how he answers Mrs. Albright, once her file
is open: 5 school rep (3 if the dirty jobs were contracted out for everybody)
and 2 energy, once a day in the afternoon. A favor lifts her active restriction
early; with none active it takes 3 off her file; with the file empty it turns
up intel on her. The first visit after the first slip opens with the kitchen's
reaction to where the dirty jobs went ("belowdecks" in $fall_seen). Before
the fall it's the leverage loop in the else branch. DRAFT prose above it. */
<<if $pollock_stage >= 5>>
<<albrightcheck>>
<<set _bdCost = $dirty_retired == 1 ? 3 : 5>>
<<if $school_time isnot "afternoon" || $network_day >= $day || $albright_stage < 1 || $school_rep < _bdCost || $energy < 2>>
<p>Not the right time for this.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<set $network_day = $day>>
<<statchange "energy" -2>>
<<set $school_rep -= _bdCost>>
<<if _ablock > 0>>
<<switch _ablock>>
<<case 1>><p>The aide gets reassigned to the attendance office by a secretary who owes the kitchen a favor. Within the hour there's nobody at your elbow.</p>
<<case 2>><p>The locksmith's ticket for the basement goes missing from the front desk, and the night guard hands you back the old cylinder key "until the paperwork catches up."</p>
<<case 3>><p>The front-desk man loses a page of the shift schedule, and on the reprint your hours are back where they were.</p>
<<case 4>><p>The groundskeeper finds a dry corner of the boiler room for the yearbook's boxes, and by the afternoon there's a work order on file saying that's where they were always meant to go.</p>
<</switch>>
<<set $albright_block_until = $day>>
<div class="req">Mrs. Albright's restriction is lifted. The favor's spent - school reputation: $school_rep.</div>
<<elseif $albright_heat > 0>>
<p>The front-desk man loses the page of the sign-in book with your after-hours entries on it, and the night guard's log for the same week turns up water-damaged.</p>
<<set $albright_heat = Math.max(0, $albright_heat - 3)>>
<div class="req">Mrs. Albright's file is thinner. The favor's spent - school reputation: $school_rep.</div>
<<else>>
/* Intel: two cases on Mrs. Albright, and two on Madi once her file is
open (docs/madi-build-plan.md, Phase 2): the equipment-room light after
crew, and the Collins pickup. DRAFT prose. */
<<switch random(1, $madi_stage >= 3 ? 4 : 2)>>
<<case 1>><p>The groundskeeper has watched Mrs. Albright carry a banker's box out to her car three evenings running. "Files," he says. "The kind with your name on 'em, I'd guess."</p>
<<case 2>><p>The front-desk man turns the sign-in book around for you: Mrs. Albright, after hours, four nights this week, and on Thursday a visitor from the district with no badge number. He turns it back.</p>
<<case 3>><p>The night guard says the light in the gym wing's equipment room stays on after crew practice twice a week, long after the rowers have gone home, and the key is signed out every time to the same name: the crew captain's. "Don't know what a man needs from the equipment room at seven at night," he says, "with nothing to carry back out."</p>
<<case 4>><p>The front-desk man knows the Collins pickup by heart. A grey pickup truck with a Facility 9 permit on the dash pulls up at the side door, never the front, at three-fifteen exactly, and the father never gets out. "He watches that door like it owes him money," he says. "She's two minutes late and he's on his phone, and I've seen the screen. It's a map with a dot on it." The Collins address in the front-desk book is a post office box.</p>
<</switch>>
<div class="req">Mrs. Albright's file has nothing in it for them to lose, so they tell you what they've seen instead. The favor's spent - school reputation: $school_rep.</div>
<</if>>
[[Back to the hallway|Hallway]]
<</if>>
<<else>>
<<if $school_time isnot "afternoon" || $network_day >= $day || $school_rep < 5 || $energy < 2 || $pollock_leverage >= 8>>
<p>Not the right time for this.</p>
[[Back to the hallway|Hallway]]
<<else>>
<p>Time to make your rep work.</p>
<<set $network_day = $day>>
<<statchange "energy" -2>>
<<set $school_rep -= 5>>
<<set $pollock_leverage += 1>>
<<switch random(1, 4)>>
<<case 1>>
<p>The night guard owes some favours. You find him at the loading dock and don't even have to finish the question. "Her Majesty? Camera by the records annex died in March. Work order's been sitting on her desk since - she signs everything else same day." He taps ash off his cigarette. "Now why would a woman leave herself a blind spot, you figure?" He tells you which nights her Tesla stays late. All of them are Thursdays. Records pickup is Fridays.</p>
<<case 2>>
<p>The kitchen ladies talk to you now, and today the head cook waves you into the walk-in where conversations go to be private. The catering invoices for the board dinners, she says, come back signed for forty covers when the kitchen plated twenty. "Been that way three years. I keep my copies." She looks at you a long moment over a rack of tomorrow's lunch. "You didn't hear it from me. But if somebody was ever going to, I figured it'd be the man who did the grease trap twice without being made to."</p>
<<case 3>>
<p>The groundskeeper is a man of few words and you've hauled brush for him without being asked, which in his ledger makes you close to family. He walks you to the corner of the east lot, taps a spot of ground with his boot. "Dumpster used to sit here. Election week, two years back, she had me move it by the incinerator and burn a load personal. Boxes. Paper." He shrugs.</p>
<<case 4>>
<p>The front-desk day man runs the sign-in book, and the sign-in book is the one document in this school nobody upstairs thinks about. He slides it across while he "takes his break," open to election week two years back: three after-hours entries, Pollock plus a visitor logged only as "district," no badge number. District people carry badge numbers the way priests carry collars."</p>
<</switch>>
<div class="req">Leverage on Pollock: $pollock_leverage/10. The favor's spent - school reputation: $school_rep.</div>
<<if $pollock_leverage >= 8>>
<p>The invisible people have given you everything they hold. What's left on Shannon Pollock can't be bought over a thermos - it has to be taken from her office, or read off her husband's knees.</p>
<</if>>
[[Back to the hallway|Hallway]]
<</if>>
<</if>><<pic "img/school/cafeteria.webp" "location">>
<<schoolclock>>
<p>The cafeteria seats the whole social order in miniature: the athletes' table, the politicians' kids holding court, the girls who rank each other by handbag.</p>
<p>You eat standing up in the service alcove, where the kitchen crew eats. Best intelligence post in the building - every table's theater plays out in front of you, and nobody performs for the man they can't see.</p>
<<if $cafeteria_event_day < $day && random(1, 100) <= 40>>
<<set $cafeteria_event_day = $day>>
<<schoolphase>>
/* Case 5 only exists from Pollock's first slip, so the earlier odds stay as they were. */
<<switch random(1, $pollock_stage >= 5 ? 5 : 4)>>
<<case 1>>
<hr class="section-break">
<<if _sphase == 1>>
<p>Today's theater: the volleyball captain's tray tips off the rail and detonates on the tile, and the whole room does the cruelty-applause thing rich kids do. You're there with the mop before the echo dies - fast, silent, gone - and she looks at you for half a second like she's never actually seen a person do a job before, which is the kind of small credit this building pays out eventually.</p>
<<else>>
<p>Today's theater: a freshman gets his backpack emptied over the floor by two juniors who've never once been told no. You don't say anything. You just stop pushing the cart, and stand there, and look - and the juniors discover urgent business elsewhere. The freshman scrapes his books together and gives you the nod. The room saw all of it, and this room keeps books on everything.</p>
<</if>>
<<statchange "school_rep" 1>>
<<case 2>>
<<if $pollock_leverage < 10 && $pollock_stage < 3>>
<hr class="section-break">
<p>A donor father in a coat worth your yearly pay eats with his daughter once a month, performatively, near the alcove where the reception is best. Today he's on the phone through the whole meal, and the alcove hears every word: catering invoices, a "reallocation," and twice - with a laugh - the principal's first name and the phrase "she'll paper it however." The daughter eats in silence. You wipe the same spot of counter for nine minutes.</p>
<<set $pollock_leverage += 1>>
<div class="req">Leverage on Pollock: $pollock_leverage/10</div>
<<elseif $pollock_stage >= 5 && $pollock_husband >= 3>>
/* DRAFT */
<hr class="section-break">
<p>The staff table has noticed something about Marcello Pollock: he laughs at lunch now, at things that are actually funny, and nobody can work out what happened to him. From the alcove you could tell them, and you don't.</p>
<<else>>
<hr class="section-break">
<p>The head cook runs the lunch line like a border crossing today, and the alcove eats first for once, which around here counts as a victory worth noting.</p>
<</if>>
<<case 3>>
<hr class="section-break">
<<if _sphase == 1>>
<p>Two seniors are conducting a slow-motion scandal at the far table - his hand under it, her face composed above it, the entire performance staged for the one table that's pretending not to watch. Nobody clocks the janitor watching the watchers. The girl's composure slips exactly once, and it's the most honest thing that happens in this building all day.</p>
<<else>>
<p>Two seniors are conducting a slow-motion scandal at the far table, his hand under it, her face composed above it - until she catches you watching from the alcove. And doesn't look away. Her composure holds; her eyes hold longer, over her boyfriend's oblivious shoulder, and when the bell goes she walks her tray past you close enough to make it a statement. The rumor about the janitor has clearly made the rounds - and the rounds, it seems, took notes.</p>
<</if>>
<<case 4>>
<hr class="section-break">
<p>Meatloaf day. The line stretches, the athletes mourn audibly, and the politicians' kids send a freshman to negotiate with the kitchen like a supplicant state. The kitchen's answer does not change: it is meatloaf day. Some institutions are incorruptible.</p>
<<case 5>>
/* The seniors' ranking ($pollock_stage 5 only). DRAFT */
<hr class="section-break">
<p>The senior boys' table keeps a ranking of the hottest women in the building, and the counselor has held first place three years running. This week the principal took it off her, unanimously, on the strength of one walk past the lunch line, and the argument has moved on to whether she'd ever let one of them find out what's under that skirt. She crosses the cafeteria while they're at it, and the whole table goes quiet to watch her ass leave.</p>
<</switch>>
<</if>>
<<if $incel_stage >= 1>>
<br>
<<linkreplace "Watch the black boys at their table">>
<<if $incel_stage <= 2>>
<p>They are at the far end of the room, four boys at a table nobody seems to have assigned them and nobody else tries to use. The empty seats around them did not happen by accident. Kids heading for the trash cans take the long way round. A few glance over, then catch themselves doing it.</p>
<p>Aaron talks constantly, filling the space before anybody else can. Terrence eats with one hand and scrolls with the other. Isaiah keeps an eye on the doors. Devin has an expensive watch on his wrist and the bored expression of somebody trying to make it count for more than it does. They have each other, but the rest of the cafeteria has decided their table is a place you do not end up by mistake.</p>
<<elseif $incel_path == 1 && $incel_stage >= 9>>
<p>The boys still eat together, but their table no longer feels cut off from the room. A girl from debate stops to ask Terrence about her laptop. One of Isaiah's teammates bumps fists with him on the way back to the athletes' table. Aaron is telling a story, and people at two nearby tables are listening because it is funny, not because he has backed them into paying attention.</p>
<p>There are people saying hi as they pass, people stopping for a minute, people borrowing a chair. So it wasn't about racism after all, huh?</p>
<<elseif $incel_path == 2 && $incel_stage >= 8>>
<p>The gap around their table is bigger now. Isaiah's chair is gone, and the three who remain seem to have made peace with being on their own side of the room. They sit back, laugh when they want to, and look around without that old need to prove they belong. Other boys keep clear of them. The girls do not, exactly. A few look their way while walking past, then look again when they think nobody noticed.</p>
<p>Devin catches one of those second looks and lets a small smile show. Aaron is already talking to the girl by the water cooler like the answer was never in doubt. They are no closer to the rest of the cafeteria, but they no longer look shut out of it either.</p>
<<else>>
<p>They are still apart from everybody else, but the edges are less clean than they used to be. Aaron lends someone a charger without making a whole thing of it. Devin has stopped checking his watch every thirty seconds. <<if not $incel_dropout>>Isaiah answers a teammate instead of pretending not to hear him. <</if>>Terrence looks up when somebody at the next table laughs, like he has remembered there are people outside the screen.</p>
<<if $incel_dropout>><p>Isaiah is gone from the table now, and from room 021. The chair he used to take has stopped looking temporary.</p><</if>>
<p>It is not enough to call a change, not yet. But the distance around them does not feel as fixed as it did.</p>
<</if>>
<</linkreplace>><br>
<</if>>
/* Madi at lunch, once her file is open (docs/madi-build-plan.md, Phase 2):
a sighting at the yearbook table, and Linda's ask. */
<<if $madi_stage >= 3>>
<<linkreplace "Look for Madi Collins at the yearbook table">><<madisighting "cafeteria">><</linkreplace>><br>
<<madilinda>>
<</if>>
<<if $eat_today == 0>>
<div id="lunch-choice">
<<link "Buy a real tray instead of scraps ($3)">>
<<if $money >= 3>>
<<set $eat_today to 1>>
<<replace "#lunch-choice">><div class="choice-made"><em>"Buy a real tray instead of scraps"</em></div><</replace>>
<<replace "#lunch-output">>
<<statchange "energy" 2>>
<<statchange "money" -3>>
<p>You skip the service alcove scraps and buy an actual tray off the lunch line - hot, plated, gone in five minutes standing up. It's not much, but it's the first meal all day that wasn't an afterthought.</p>
<</replace>>
<<else>>
<<replace "#lunch-output">><p>You don't have three dollars to spare on lunch. The alcove scraps will do.</p><</replace>>
<</if>>
<</link>><br>
<<if $school_rep >= 5>>
<<link "Ask the head cook for the staff plate ($5)">>
<<if $money >= 5>>
<<set $eat_today to 1>>
<<replace "#lunch-choice">><div class="choice-made"><em>"Ask the head cook for the staff plate"</em></div><</replace>>
<<replace "#lunch-output">>
<<statchange "energy" 3>>
<<statchange "money" -5>>
<p>The head cook doesn't advertise the staff plate - you have to be somebody below decks to know it exists. Five dollars gets you what the kitchen actually cooks for itself: seasoned, generous, served in the alcove with a nod that means the invisible people feed their own, and the lunch line upstairs will never know what it's missing.</p>
<</replace>>
<<else>>
<<replace "#lunch-output">><p>The staff plate costs five, and you don't have it today. The head cook pretends not to have heard you ask.</p><</replace>>
<</if>>
<</link>><br>
<</if>>
</div>
<div id="lunch-output"></div>
<</if>>
<<link "Finish up and get back to work">><<set $school_time = "afternoon">><<goto "Hallway">><</link>><<schoolclock>>
<div class="text">Your closet. Mop smell, one flickering tube light, and the only door in the building that locks with you on the right side of it. The shelf behind the paint cans holds your real life: burner phone, notes, and everything the building has told you so far.</div>
<<schoolphase>>
<<albrightcheck>>
/* Mrs. Albright's closet storage (restriction 4, from Madi's file on): the
yearbook's archive takes the room, so no couch, no closet sleep and no
visitors until it lifts. One look through Madi's box is allowed
(Madi Archive, in <<madicloset>>). */
<<if _ablock == 4>>
<<pic "img/school/closet_blocked.jpg" "location">>
<div class="hub-note">The yearbook's archive is stacked to the ceiling in here at Mrs. Albright's request, until day $albright_block_until. There's no getting to the couch.</div>
<<else>>
<<pic "img/school/closet.webp" "location">>
<<if $closet_bed && $school_time isnot "evening">>
<div class="hub-note">The couch in the back is for after you clock out.</div>
<</if>>
<</if>>
<div class="closet-board">
<div class="board-title">The board behind the paint cans</div>
<div class="board-entry">
<div class="board-row"><span class="board-label">Standing</span><span class="board-value"><<if _sphase == 1>>the help<<elseif _sphase == 2>>the fixture<<else>>the owner<</if>></span></div>
<div class="board-desc">
<<if _sphase == 1>>
You are a pair of coveralls with a mop attached. Anybody with a lanyard can talk to you any way they like, and there is nothing at the end of it but the floor.
<<elseif _sphase == 2>>
They know the name on the pocket now. Nobody double-checks their purse, a few even nod, and you can answer back once a week without it costing you.
<<else>>
The hallway makes room without being asked, and most of what happens in this building now happens because you let it.
<</if>>
</div>
</div>
<div class="board-entry">
<div class="board-row"><span class="board-label">School reputation</span><span class="board-value">$school_rep</span></div>
<div class="board-desc">
<<if $school_rep < 5>>
Nobody below decks owes you anything yet. Work orders build it - the dirtier the job, the faster the word travels.
<<elseif $school_rep < 10>>
The kitchen crew leaves you coffee and the night guard nods. Down here, that's a currency<<if $pollock_stage >= 1 && $pollock_stage < 3>> - and the invisible people will trade what they've seen of Her Majesty for favors owed<</if>>.
<<elseif $school_rep < 15>>
The below-decks people have decided you're one of them, which means the building talks to you now, in leaks and nods and unlocked doors.
<<else>>
From the dish pit to the night rounds, your name is good everywhere the lanyards never look. The other school - the real one - answers to you.
<</if>>
</div>
</div>
/* Both meters are maxed and unfarmable once the Reckoning fires - the Shannon Pollock entry below takes their place. */
<<if $pollock_stage < 3>>
<div class="board-entry">
<div class="board-row"><span class="board-label">Leverage on Pollock</span><span class="board-value">$pollock_leverage / 10</span></div>
<<set _lw = $pollock_leverage * 10>>
<div class="board-meter"><div class="board-meter-fill" @style="'width:' + _lw + '%'"></div></div>
<div class="board-desc">
<<if $pollock_leverage == 0>>
Nothing yet. She's ended four careers without ever raising her voice and your file on her is still an empty envelope.
<<elseif $pollock_leverage <= 2>>
Scraps: a phone call heard through the lounge wall, a shredder that didn't finish its job. Tells you where to dig and nothing else.
<<elseif $pollock_leverage <= 5>>
It's adding up. Numbers that don't match, boxes she won't let anyone else carry to her car. Walk in with half a case and she'll talk her way out of it before you finish the sentence.
<<elseif $pollock_leverage <= 8>>
Heavy enough now. Three pages of this in the right mailbox costs her the job, and she still has no idea the janitor is the one holding them.
<<else>>
Complete. A manila folder and a stamp would finish Shannon Pollock, which was never what Jamal sent you here for.
<</if>>
</div>
</div>
<div class="board-entry">
<div class="board-row"><span class="board-label">Master key</span><span class="board-value">$master_key / 3</span></div>
<<set _kw = Math.round($master_key / 3 * 100)>>
<div class="board-meter"><div class="board-meter-fill" @style="'width:' + _kw + '%'"></div></div>
<div class="board-desc">
<<if $master_key == 0>>
Every door in this school is still somebody else's. Risky work orders are where the pieces turn up.
<<elseif $master_key == 1>>
A dead janitor's keyring, mostly obsolete cuts. Two of them still bite.
<<elseif $master_key == 2>>
Soap impressions from the locksmith's case, waiting on a blank and a quiet night in the metal shop.
<<else>>
Cut, filed, tested. Authorized personnel means you now - including the office at the front of the building.
<</if>>
</div>
</div>
<</if>>
<<if $pollock_stage >= 3>>
<div class="board-entry">
<div class="board-row"><span class="board-label">Shannon Pollock</span><span class="board-value"><<if $pollock_stage >= 5>>the arrangement<<elseif $pollock_stage >= 4>>settled<<elseif $pollock_route == 2>>her house<<elseif $pollock_route == 1>>room 021<<else>>terms pending<</if>></span></div>
<div class="board-desc">
<<if $pollock_stage >= 5>>
/* DRAFT */
She signs whatever you write.<<if $dirty_retired == 1>> The first thing you wrote got the whole staff out from under the grease trap, and below decks hasn't forgotten it.<<elseif $dirty_retired == 2>> The first thing you wrote was for you alone, and nobody below decks knows it was you.<<else>> The first thing you wrote sent the boys who make the messes to clean them, and the whole building saw it.<</if>>
<<elseif $pollock_stage >= 4>>
Nothing left on the board about her. The district system is open, it stays open, and it opens for anybody you hand it to.
<<elseif $pollock_route == 2>>
She named her price and you picked the shape of it. Her car, her street, her house in the middle of a work day - and a husband who doesn't get to choose whether he watches.
<<elseif $pollock_route == 1>>
She named her price and you picked the shape of it. She goes down to the basement of her own school as the principal, and you don't stay.
<<else>>
Every page you have on her is on this shelf, and none of it is what she wants to be charged with. She'll say the price herself.
<</if>>
</div>
</div>
<</if>>
/* Mrs. Albright's file, once she has introduced herself: the meter fills to
the 4 heat she spends on a restriction. DRAFT wording. */
<<if $albright_stage >= 2>>
<div class="board-entry">
<div class="board-row"><span class="board-label">Mrs. Albright's file</span><span class="board-value"><<if _ablock > 0>>restricted until day $albright_block_until<<else>>$albright_heat / 4<</if>></span></div>
<<set _aw = Math.min(100, $albright_heat * 25)>>
<div class="board-meter"><div class="board-meter-fill" @style="'width:' + _aw + '%'"></div></div>
<div class="board-desc">
<<if _ablock == 1>>
A front-office aide is at your elbow: no open work orders, and no pink slips from Syren.
<<elseif _ablock == 2>>
The basement has been rekeyed: room 021 and Terrence's jobs are shut to you.
<<elseif _ablock == 3>>
You're on the late shift: no morning board, no cafeteria, no detention.
<<elseif _ablock == 4>>
The yearbook's boxes fill your closet: no couch, no sleeping here, no visitors.
<<elseif $albright_heat >= 4>>
Thick enough to spend, and she'll spend it as soon as she's allowed to.
<<elseif $albright_heat >= 2>>
Getting thicker. Every time she sees you where a janitor has no business, it goes in.
<<else>>
Thin, for now. Stay where the work orders send you and it thins further.
<</if>>
Below decks, a favor can lift a restriction early or make pages disappear.
</div>
</div>
<</if>>
/* Madi's file, school side (docs/madi-build-plan.md): her meters on the
board, the whole file on the burner phone behind the paint cans. */
<<if $madi_stage >= 3>>
<<madiboard>>
<</if>>
</div>
<<if $madi_stage >= 3>>
[[Check the burner phone: the Madi file|Madi Burner]]<br>
<<madicloset>>
<</if>>
<<if _ablock == 4>>
<<if $closet_bed && $school_time is "evening">>
<div class="hub-note">The couch is under the yearbook's boxes. Tonight you ride home.</div>
<</if>>
<<if $linda_stage == 1 && $day >= $linda_next_day>>
<div class="hub-note">Linda came looking for you, but there's no room behind the boxes. She'll come back once they're gone.</div>
<</if>>
<<else>>
<<if not $closet_bed && $school_rep >= 10>>
<p>You've earned enough slack around here that nobody clocks how long you spend in this room. Which raises a thought about the junk pile in the back.</p>
<<linkreplace "Fix the old couch">>
<p>You don't know why the previous janitor left this here, but it's in decent shape. You push the junk aside and test the frame. It holds. A man could live out of this room if he was careful.</p>
<<set $closet_bed = true>>
<div class="req">You can now spend the night in the closet instead of riding home.</div>
<</linkreplace>><br>
<</if>>
<<if $closet_bed && $school_time is "evening">>
<<rentinfo>>
[[Bed down for the night|Closet Sleep]]<br>
<</if>>
<<if $linda_stage == 1 && $day >= $linda_next_day>>
<<if $energy >= 2>>
<p>Someone has been waiting in your closet. The door is shut, and the light under it is on.</p>
<div class="req">[[Check the closet|Linda Closet]] (2 energy)</div>
<<else>>
<div class="req">Linda is waiting in the closet, but you need 2 energy for her session.</div>
<</if>>
<</if>>
<</if>>
[[Back to the hallway|Hallway]]<<if $physical < 0>>
<<goto "Game over">>
<<else>>
<<schoolphase>>
<p>You wait out the last of the after-hours noise - the night guard's first round, the boiler's argument with itself - then kill the tube light and stretch out on the cot. The building settles over you, tons of marble and money, none of it aware it's sheltering the enemy.</p><br>
<<if random(1, 100) <= 95>>
<p>You sleep the shallow, serviceable sleep of a man behind enemy lines - not rest so much as maintenance.</p><br>
<<set $energy = 8>>
<<else>>
<p>The dream finds you even here: sand, smoke, the young terrified face, the explosion that never finishes. You wake with your fist around the cot frame and the tube light's ghost buzzing in your ears.</p>
<div class="req">Your energy for the day is halved.</div><br>
<<set $energy = 4>>
<</if>>
<<if random(1, 100) <= 15>>
<<if _sphase == 1>>
<p>You misjudge the guard's round. His flashlight catches you lacing your boots at 5 AM, and the morning becomes a small ugly theater in the front office: the secretary, the write-up, the phrase "these people will move in if you let them" spoken about you while you stand there. You mop the lobby afterward while the early staff file past the janitor who apparently lives in a closet, like a raccoon.</p>
<<if $school_rep > 1>><<set $school_rep -= 2>><</if>>
<div class="req">School reputation: $school_rep</div><br>
<<else>>
<p>The night guard's flashlight finds you at 5 AM. He looks at the cot, at you, and shrugs. "Beats my commute," he says, and moves on. The building's invisible people keep each other's secrets.</p><br>
<</if>>
<</if>>
<<newday>>
<<schoolpay>>
<<if _rent_due>>
<p>Rent week. Even sleeping in a school closet, the room above the corner store stays yours only as long as the hood keeps it off the lists - and the envelope under that door doesn't care where you spent the night.</p><br>
<<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
<<if $money >= 20>>
<<linkreplace "Set aside a twenty for the envelope ($20)">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>You count a twenty out of your roll and button it into your inside pocket, where it stops being money and becomes rent. It goes under the door next time you're back, and the hood's books stay clean.</p><br>
<<statchange "money" -20>>
<br>
[[Start the day early|Hallway]]<</replace>>
<<replace "#choice-container">><</replace>>
<</linkreplace>><br>
<</if>>
<<linkreplace "Skip it this week">>
<<set _choiceMade = true>>
<<replace "#output">>
<<if $money >= 20>>
<p>You have the twenty and you keep it. Nobody will knock about it. But the hood keeps its own books, and this week yours show a man with money in his pocket and an empty envelope under his door, sleeping warm on somebody else's marble. Word gets back to the block before you do.</p><br>
<<statchange "respect" -20>>
<<else>>
<p>You don't have the twenty for the envelope. Nobody will knock about it - the hood just keeps its own books, and this week yours show a man who takes shelter and doesn't put in.</p><br>
<<statchange "respect" -10>>
<</if>>
<br>
[[Start the day early|Hallway]]<</replace>>
<<replace "#choice-container">><</replace>>
<</linkreplace>>
<</if>>
</div>
<div id="output"></div>
<<else>>
<br>
[[Start the day early|Hallway]]
<</if>>
<</if>><<pic "img/school/outside.jpg" "location">>
<<if $pollock_stage == 3 && $pollock_route == 2 && $day >= $pollock_next_day && $school_time isnot "evening">>
<p>You walk out the front in the middle of the day and nobody looks up. The Tesla is across the fire lane, and the passenger window slides down on Shannon Pollock in a summer dress.</p>
<<pic "img/school/syren/ride.jpg" "story">>
<<speech "Pollock" "Need a ride?" "pollock">>
<<if $energy >= 3>>
[[Get in|Pollock Owned]]<br>
<<else>>
<div class="req">A thing like this you get into rested or not at all (3 energy).</div>
<</if>>
[[Not today|Hallway]]
<<elseif $william_stage == 0 && $incel_stage >= 1 && $ella_stage >= 11>>
<p>You punch out through the service door and head for the bus stop. Students spill into the lot around you, calling to drivers and climbing into cars. A silver Range Rover waits near the pickup line. The black man leaning against it has been watching the service entrance.</p>
[[See who is waiting|William Reunion]]
<<else>>
<p>You punch out and take the service door into the late light. Across the lot the students pour toward their rides, loud and untouchable, and you walk the other way, one more invisible man in grey. Twenty minutes on the bus between their world and yours, and neither one admits the other exists.</p>
/* Madi's father at pickup (Madi Pickup): once, at last bell, from the day
her file has Grayson's affair in it. Not on the late shift. */
<<if $madi_stage >= 4 && setup.madi.knows("affair") && not $madi_seen.includes("pickup") && $school_time is "afternoon" && not ($albright_block == 3 && $day < $albright_block_until)>>
<p>A grey pickup truck is idling at the side door, where the students never come out.</p>
[[Take the recycling out the side door first|Madi Pickup]]<br>
<</if>>
[[Take the bus home|The Hood]]
<</if>>/* The hinge from $pollock_stage 4 to 5 (docs/school-after-pollock-plan.md,
Phase 1). DRAFT prose: the beats, choices and state are final, the text
is placeholder. The first blank retires the dirty work orders one of three
ways, and every branch includes the Tail, which names her, settles
Marcello and flips the stage. */
<<if $pollock_stage != 4 || $day < $pollock_next_day>>
<p>There's nothing in your timesheet but your hours.</p>
[[Back to the hallway|Hallway]]
<<else>>
<!-- IMAGE: the punch clock - a carbon-copy pink slip clipped to his timesheet -->
<p>A pink slip is clipped to your timesheet: CUSTODIAL REQUISITION - PRINCIPAL'S OFFICE - SEE REVERSE. The reverse is blank except for a lipstick print. You go to Pollock straight away.</p>
<<pic "img/school/syren/after_meeting.jpg">>
<p>No bottle on her blotter this morning. On the desk, where nothing personal has ever stood, there's a framed photograph you've never seen: a girl of nineteen in a pageant sash.</p>
<<speech "Pollock" "You're quick! So, to make our arrangements work better, I have a proposal." "pollock">>
<<speech "Pollock" "That's a facilities matter, Mr. $player_surame, and I want your opinion." "pollock">>
<p>She sets a stack of blank requisitions on the blotter, each one already signed at the bottom, and slides the pen after it. Whatever you write on them, she has agreed to.</p>
<<speech "Pollock" "You were doing a lot of dirty work, and maybe you don't have to do it anymore." "pollock">>
<div id="choice-container">
<<linkreplace "Contract out the worst jobs, for the whole staff">>
<<replace "#output">>
<p>A contractor's van comes on Tuesdays. The grease trap, the biohazards and the drains go to people paid for them, and the kitchen crew, the groundskeeper and the night guard get out from under the same jobs you do. Someone may ask questions.</p>
<<set $dirty_retired = 1>>
<<statchange "school_rep" 5>>
<<set $albright_heat += 2>>
<<set $albright_heat_day = $day>>
<<include "Pollock First Slip Tail">>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Contract out the worst jobs, for the whole staff"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Only your own jobs, quietly">>
<<replace "#output">>
<p>Your dirty orders go to the contractor and nobody else's change. Nothing on anyone's desk says why. Barely noticeable in the grand scheme of things.</p>
<<set $dirty_retired = 2>>
<<include "Pollock First Slip Tail">>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Only your own jobs, quietly"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Send the mess back to the rich kids who make it">>
<<replace "#output">>
<p>The rich kids who keep redecorating the second-floor toilets get to clean them, through detention, on her signature. This will ruffle some feathers.</p>
<<set $dirty_retired = 3>>
<<statchange "school_rep" 2>>
<<set $albright_heat += 4>>
<<set $albright_heat_day = $day>>
<<include "Pollock First Slip Tail">>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Send the mess back to the rich kids who make it"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>
<</if>>/* Shared end of Pollock First Slip, included by all three first-blank
choices. DRAFT prose. Marcello counts as known on route 2 (he opened the
door at the house) or once met in the civics room. Route 1 without that
intro leaves him off screen and $pollock_husband at 0. */
<p>There was one question that bothered you: the clinic consult in her cabinet was booked under her maiden name. You ask her what it is.</p>
<<speech "Pollock" "De Mer. Syren De Mer, with a Y. I was seventeen and thought that was sophisticated." "pollock">>
<<speech "You" "Syren.">>
<<speech "Pollock" "I shall use it more often." "pollock">>
<<if $pollock_route == 2 || $pollock_husband >= 1>>
<<set $pollock_husband = 3>>
<</if>>
<<pic "img/school/syren/after_slip.jpg">>
<p>She'd keep you all morning if you let her. Instead she caps the pen and reminds you there are work orders on your board.</p>
<<set $pollock_stage = 5>>
<<set $regime_day = $day>>
<<set $pollock_slip_day = $day + 2>>
<div class="req">The dirty jobs are off your board. There's an open work order where they used to be.</div>
[[Back to work|Hallway]]/* The open slot on the morning board from $pollock_stage 5: a slip with her
signature and nothing else on it. It costs 2 energy, counts as a shift and
pays no reputation (<<openordercheck>>, <<openorderpay>> in
SchoolWidgets). Before Madi's file opens it's always a walk through the
building (Open Work Order Walk, included here). From $madi_stage 3 the
hour can go to her instead (docs/madi-build-plan.md, Phase 2): plant a
locker delivery (Madi Locker; the lock audit shuts it), pull her school
file from the records annex once (Madi Annex), or sit in the yearbook
room with her proofs (Madi Yearbook). Phase 3 adds the gym wing's
sign-out sheet (Madi Sign-Out), the minute for the walk-in when Coach
Gunn won't give it to you. Nothing is charged until a channel is picked.
DRAFT prose. */
<<openordercheck>>
<<if not _owoOK>>
<p>Not the right time for this.</p>
[[Back to the hallway|Hallway]]
<<elseif $madi_stage < 3>>
<p>The slip says nothing and she has signed it.</p>
<<include "Open Work Order Walk">>
<<else>>
<p>The slip says nothing and she has signed it: an hour nobody accounts for. You could walk the building and see what turns up, or you could spend it on Madi Collins.</p>
[[Walk the building|Open Work Order Walk]]<br>
<<if setup.madi.lockerWaiting().length > 0>>
<<if _ablock == 2>>
<div class="hub-note">The locksmith is working the east corridor with the district's audit sheet, locker by locker. The package for her locker stays on your shelf until day $albright_block_until.</div>
<<else>>
[[Take the package on your shelf to her locker|Madi Locker]]<br>
<</if>>
<</if>>
<<if not $madi_seen.includes("annex")>>
[[Pull her file from the records annex|Madi Annex]]<br>
<</if>>
<<if $gunn_case != 1 && setup.madi.keylogDue()>>
[[Spend the hour in the gym wing, by the equipment room's sign-out sheet|Madi Sign-Out]]<br>
<</if>>
[[Sit an hour in the yearbook room, where her proofs are pinned|Madi Yearbook]]<br>
<div class="req">Whichever you pick takes the slip's 2 energy and counts as a shift.</div>
[[Back to the hallway|Hallway]]
<</if>>/* The open work order spent walking the building: it always turns up a
random school event (<<schoolevent "force">> skips both the 30% roll and
the one-a-day rule). Open Work Order includes it before Madi's file opens
and links to it after. DRAFT prose. */
<<openordercheck>>
<<if not _owoOK>>
<p>Not the right time for this.</p>
[[Back to the hallway|Hallway]]
<<else>>
<p>You push the cart out into the building and see what the hour turns up.</p>
<<openorderpay>>
<<schoolevent "force">>
/* Once Mrs. Albright's file is open, an hour nobody accounts for sometimes
gets accounted for. DRAFT */
<<if $albright_stage >= 2 && random(1, 100) <= 25>>
<p>On your way back Mrs. Albright passes you in a corridor no work order sent you down. She notes the time.</p>
<<set $albright_heat += 1>>
<<set $albright_heat_day = $day>>
<</if>>
[[Back to the hallway|Hallway]]
<</if>>/* Answering one of her personal pink slips ($pollock_stage 5, Phase 3):
3 energy, any time before evening, and the next slip three days out. The
first visit after the first one is always the open mic. Every other slip
opens the visit setup.syrenSlips.next() names (StoryScript.js), the same
one its wording on the Hallway promised. The visits are short, repeatable
and pure lewd, with nothing advancing, each built around the user's clips
in img/school/syren. Three of them call in the room 021 boys and only join
the rotation on the embrace path once the boys have graduated. */
<<albrightcheck>>
<<if $pollock_stage < 5 || $day < $pollock_slip_day || $school_time is "evening" || $energy < 3 || _ablock == 1>>
<p>There's no slip of hers waiting on you.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<set _openMic = setup.syrenSlips.openMicDue()>>
<<set _visit = setup.syrenSlips.next()>>
<<statchange "energy" -3>>
<<set $pollock_slips += 1>>
<<set $pollock_slip_day = $day + 3>>
<<if _openMic>>
<p>Her door is unlocked, the way the slip said it would be.</p>
<<include "Pollock Open Mic">>
<<else>>
<<include `_visit.passage`>>
[[Back to work|Hallway]]
<</if>>
<</if>>/* Slip visit "oral" (after_oral_1..3): her mouth, a facefuck and a facial.
You alone. DRAFT prose. */
<p>Her door is unlocked, the way the slip said it would be. <<sayit "She's [behind the desk with her chair already turned to face the door|leaning on the front of her desk with her arms folded|at the window with the blinds half down], and she [doesn't say a word until the door is shut|keeps you waiting a full minute, just because she can|lets you stand there long enough to remember whose office it is].">></p>
<<speech "Pollock" "The odor complaint, Mr. $player_surame. I've located the source. Close the door." "pollock">>
<p>She comes around the desk and goes down on her knees on the carpet in her pencil skirt, unzips your coveralls herself and takes your big black cock in both hands like something she's been promised for days. Then her mouth is on it, red lipstick sliding down the shaft, and once she's warmed up you put a hand on the back of her head and push it deep into her throat.</p>
<<video "img/school/syren/after_oral_1.webm">>
<p>Then you stop being gentle. You take her head in both hands and fuck her face, and the principal of Thatcher-Ellison gags and drools all over your cock and balls while her mascara runs down to her chin in black streaks. Her makeup is ruined, and she keeps her eyes on yours the whole time.</p>
<<video "img/school/syren/after_oral_2.webm">>
<p>When you come, you come hard. You pull out and add your load to the mess on her face, rope after rope, until it's dripping off her nose and onto the silk blouse she'll have to button up again before her next meeting.</p>
<<video "img/school/syren/after_oral_3.webm">>
<<speech "Pollock" "Source investigated. You may go." "pollock">>
<p><<sayit "She says it in her assembly voice, with [your cum on her eyelashes|cum dripping off her chin|her lipstick smeared halfway to her ear], and [reaches for the tissues|reaches for her compact|doesn't touch her face until the door has closed behind you].">></p>/* Slip visit "foursome" (after_group_1..4), embrace path: her slip called
three boys, Terrence called in sick, and you're the replacement. Aaron
and Devin. DRAFT prose. */
<p>The secretary's desk is empty, and Aaron and Devin are waiting in the outer office with pink slips of their own, looking at the third chair.</p>
<<speech "Aaron" "Terrence called in sick, sir." "aaron">>
<<if $terrence_deal == 1 && $terrence_debrief >= 1>>
<<speech "Devin" "Sick. Sure. He's been walking funny since he went across the wall to see your hacker." "devin">>
<<else>>
<<speech "Devin" "Flu, he says. Nobody believes him." "devin">>
<</if>>
<<speech "Pollock" "I requisitioned three, Mr. $player_surame. You're the replacement. Lock the door." "pollock">>
<p>She turns and bends over her desk, and you pull her skirt down over her hips and let it drop. There it is: that big principal's ass in nothing but her stockings, spread over her own blotter, while the boys get their cocks out behind you.</p>
<<video "img/school/syren/after_group_1.webm">>
<p>Nobody bothers with a warm-up. The blouse goes, and a minute later she's airtight, Devin under her in her pussy, Aaron in her mouth and you in her ass, swapping holes whenever somebody needs a breath. All she has left on is her stockings.</p>
<<video "img/school/syren/after_group_2.webm">>
<p>Then you turn her around for a DP in reverse cowgirl, you in her ass from underneath and Devin in her pussy, and her big tits bounce with every thrust while Aaron stands over the three of you stroking his cock and waiting for his turn.</p>
<<video "img/school/syren/after_group_3.webm">>
<p>To finish, she kneels on the carpet with her mouth open and you feed her one at a time: Aaron, then Devin, then you, last and most, and she swallows every load and thanks each of you by surname.</p>
<<video "img/school/syren/after_group_4.webm">>
<<speech "Pollock" "Tell Terrence I hope he feels better. I'll expect him next time." "pollock">>
<p><<sayit "On your way out, Mrs. Albright is [at the far end of the admin corridor with an armful of essays|holding the staff room door half open|at the photocopier outside the front office], and she watches Aaron and Devin come out of the principal's office tucking their shirts in. Her eyes follow the three of you all the way to the stairs.">></p>
<<run setup.albrightNote("slipboys", 1)>>/* Slip visit "leak" (squirt.webm): the leak is her. You kneel under her
and finger her until she squirts, then lick her clean. DRAFT prose. */
<p>The slip says leakage, so you bring the toolbox. <<sayit "She calls you in from behind the desk, and when she stands up she [isn't wearing anything at all|is naked except for her reading glasses|has nothing on but her pearls].">></p>
<<speech "Pollock" "The leak is here, Mr. $player_surame. Fix it." "pollock">>
<p>She sets one foot up on her desk chair, and you kneel on the carpet underneath her and get two fingers into her pussy, rubbing hard and fast, the way you'd go at a stain that won't come out. She grips the edge of the desk, her thighs start to shake, and then she squirts, gushing over your hand and your coveralls and the district's carpet in hard spurts while she bites down on her wrist to stay quiet.</p>
<<video "img/school/syren/squirt.webm">>
<p>When the last of it is dripping off your chin, you pull her hips down onto your mouth and lick her pussy clean, slowly, while she shivers above you.</p>
<<speech "Pollock" "Massive leakage. I did say so on the slip." "pollock">>
<p>You leave a wet floor sign by her desk on your way out.</p>/* Slip visit "gape" (after_anal_1..2), embrace path: the boys have just run
an anal train on her, and you finish the inspection. DRAFT prose. */
<p>You meet the boys on their way out of her outer office: Aaron, Terrence and Devin, zipping up, red in the face. <<sayit "[Terrence gives you a thumbs-up without slowing down.|Devin holds the door for you like a gentleman.|Aaron mouths 'she's all yours, sir' on his way past.]">></p>
<p>Inside, Syren is sitting on her desk with her skirt rucked up around her waist and her legs in the air. They've run an anal train on her, all three of them, and her asshole is gaping, a dark, wet ring that isn't anywhere close to closing. She looks at you between her raised knees.</p>
<<speech "Pollock" "The pipe, Mr. $player_surame. They never finished the inspection." "pollock">>
<p>So you finish it. You slide your cock into her open ass and pull it all the way out, again and again, and every time you leave it the hole stays wide open, waiting for you to come back.</p>
<<video "img/school/syren/after_anal_1.webm">>
<p>You jerk yourself off over her for a minute, then set just the tip of your cock in her gaping ass and empty yourself into her, deep into her bowels. The moment you pull out it starts running out of her loose hole, thick and white.</p>
<<video "img/school/syren/after_anal_2.webm">>
<<speech "Pollock" "Thank you. That will be all." "pollock">>
<p>She says it to the ceiling, with her legs still in the air. When you come back out, Mrs. Albright is standing in the admin corridor between you and the stairs, looking from the principal's door to the three boys still laughing at the far end, and she has written something in her notebook before you reach her.</p>
<<run setup.albrightNote("slipboys", 1)>>/* Slip visit "stairs" (makeout.webm): the reverse of the slip says BACK
STAIRS, and you never reach her office. A quick one in the corner under
the admin stairs. DRAFT prose. */
<p>On the reverse of the slip she has written ADMIN STAIRS in lipstick, so you take your cart the long way round. She's coming down from the second floor with a folder under her arm, in a skirt shorter than anything she would ever wear to a board meeting, and she doesn't break stride until she's in the corner under the landing, where the corridor can't see and the camera doesn't reach.</p>
<p>Then she grabs your collar and pulls you in. You kiss like you've been apart for a month, her back against the wall and her hand straight down to your crotch, squeezing your cock through the coveralls, while your hand goes up under that short skirt and finds her pussy bare and wet, and you rub it until she's breathing into your mouth.</p>
<<video "img/school/syren/makeout.webm">>
<p><<sayit "[A door bangs somewhere upstairs|The bell goes for the next period|Somebody's heels come down the corridor above], and she steps back, smooths her skirt and goes back up the stairs at her usual principal's pace, without once looking round. [The folder was empty.|She's left a lipstick print on your collar.|Your fingers smell of her for the rest of the shift.]">></p>/* Slip visit "gangbang" (after_gb_1..3), embrace path: you and the whole
room 021 crew in her office, ending on her couch with the double vaginal
and the double anal. DRAFT prose. */
<p>The whole crew is in the outer office when you get there, Aaron, Terrence and Devin with their slips in their hands, and the secretary's desk is empty. Syren lets the four of you in and locks the door herself. She's waiting in nothing but black stockings and a blue garter belt.</p>
<<speech "Pollock" "The walkthrough, gentlemen. Every room, every fixture." "pollock">>
<p>You start rough. You put her over the arm of the leather couch by the window, the one visiting parents sit on, and take her in a DP with Devin underneath her, your fist in her hair to keep her where you want her while she sucks Aaron's cock and Terrence waits his turn.</p>
<<video "img/school/syren/after_gb_1.mp4">>
<p>Then she's on her back on the couch with her legs up by her ears, and Aaron squats over her on the cushions with his cock in her pussy. Terrence is supposed to take her ass, but he slides into the same hole instead, and Syren's whole body jerks.</p>
<<speech "Pollock" "OH fuck! My pussy... my pussy is so tight..." "pollock">>
<p>She goes wild under the two of them, clawing at the leather, and every word out of her stops making sense.</p>
<<video "img/school/syren/after_gb_2.mp4">>
<p>After the double vaginal comes the double anal. She kneels up on the couch and Devin takes her ass doggy-style, and then you come up behind him and push into her ass alongside him. She's ready for it and she loves it, groaning into the cushions with her hand reaching back blindly for another cock to hold.</p>
<<video "img/school/syren/after_gb_3.mp4">>
<p><<sayit "When the four of you are done with her she [lies across the couch with her stockings in ruins|stays on her knees on the cushions, too wrecked to stand|asks Devin to fetch her water and her reading glasses], and the parents' couch [will need a professional cleaning|has a new stain to explain|is never going to be the same].">></p>
<p>The four of you leave one at a time, a few minutes apart, and it doesn't help. The admin corridor has gone quiet the way a corridor does when somebody has been listening at a door, and Mrs. Albright is at the far end of it, writing.</p>
<<run setup.albrightNote("slipcrew", 2)>>/* The one-off office visit (the first slip after the first one), built
around the user's openmic_1..4: anal only today, on her desk and then
bent over it, and in the middle of it her hand comes down on the intercom
console and the building hears her. Killing it half-works: four seconds
instead of twelve, enough for a rumour. Letting it run keeps going on
every speaker (openmic_4). Either way Albright's file opens
($albright_stage 1), and $open_mic is read again by Albright and later by
the Madi file. Each branch carries its own exit, so the choice can't be
skipped. Gallery card 'pollock-openmic'. DRAFT prose. */
<p>She's waiting behind the desk in a pink jacket over a short black dress and fishnet stockings, and she doesn't get up.</p>
<<speech "Pollock" "One item on today's agenda, Mr. $player_surame. My ass reuires your immidiate attention." "pollock">>
<p>You lay her back across the desk with her legs spread and the dress pushed up around her waist, and you hammer her ass while she rubs her clit with two fingers. The desk squeaks under every stroke, so loud you start to wonder whether the whole admin corridor can hear it.</p>
<<video "img/school/syren/openmic_1.mp4">>
<<speech "Pollock" "Oh, that's a good dick..." "pollock">>
<p>She squeezes her ass around you on every stroke out, on purpose, just to watch your face when she does it.</p>
<p>Then she shrugs off the jacket and turns around to stand against the desk, both hands flat on it and one knee up on the edge, and you take her ass again from behind. Her eyes are closed and her face has gone soft and dreamy, and she's so far gone that you can't resist. You stop dead, buried in her ass.</p>
<<video "img/school/syren/openmic_2.mp4">>
<<speech "You" "Just checking. You did say I have your permission, so this isn't sexual harassment, right? This isn't, like, bad?">>
<p>She opens her eyes and looks back at you over her shoulder, completely lost.</p>
<<speech "Pollock" "Well, I am the one in charge here, and..." "pollock">>
<p>You ram your cock in deeper.</p>
<<speech "You" "Oh, shut the fuck up.">>
<p>You both crack up, and for a few seconds the principal of Thatcher-Ellison is laughing out loud with a black cock up her ass.</p>
<p>When you've got your breath back you go balls deep and fuck her like a machine, slapping against her ass hard enough to rock the desk on its legs, until the poor thing sounds about ready to give out.</p>
<<video "img/school/syren/openmic_3.mp4">>
<p>That's when her hand comes down on the intercom console beside the phone. The red light comes on, and every speaker in the building starts carrying her.</p>
<div id="choice-container">
<<linkreplace "Reach over and kill it">>
<<replace "#output">>
<p>You get it off in four seconds. The building heard enough to be sure something happened and not enough to say what, which is how the worst rumours start. Then you finish what you started, with your hand clamped over her mouth.</p>
<<set $open_mic = 1>>
<<set $albright_heat += 2>>
<<set $albright_heat_day = $day>>
<<set $albright_stage = Math.max($albright_stage, 1)>>
/* Once Madi's file is open, the intercom reaches her here; before that,
Adriana First Look applies $open_mic when the file opens. DRAFT */
<<if $madi_stage >= 3>>
<p>Somewhere on the east corridor, Madi Collins heard all of it.</p>
<<madiup "curiosity" 1>>
<</if>>
[[Back to work|Hallway]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Reach over and kill it"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Let it run">>
<<replace "#output">>
<p>You let it run, and you don't stop. Twelve seconds of the principal of Thatcher-Ellison getting her ass drilled go out over every speaker from the gym to the boiler room, until she finds the switch herself. Then she grabs the far edge of the desk and tells you not to stop either, and you give it to her harder than before.</p>
<<video "img/school/syren/openmic_4.mp4">>
<<set $open_mic = 2>>
<<set $albright_heat += 4>>
<<set $albright_heat_day = $day>>
<<set $albright_stage = Math.max($albright_stage, 1)>>
/* Madi's Curiosity, as in the other branch. DRAFT */
<<if $madi_stage >= 3>>
<p>Somewhere on the east corridor, Madi Collins stops at her locker and listens to all twelve seconds of it.</p>
<<madiup "curiosity" 2>>
<</if>>
[[Back to work|Hallway]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Let it run"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>/* Mrs. Albright introduces herself as the antagonist once the open mic's
aftermath has played (Phase 4). She can't touch Pollock - Conner money built
the east wing - so she goes after the visible anomaly, the janitor. Sets
$albright_stage 2, and from the next day her file turns into restrictions
(<<albrightcheck>>). DRAFT prose. */
<<if $albright_stage != 1 || not $fall_seen.includes("openmic")>>
<p>Nobody is waiting for you.</p>
[[Back to the hallway|Hallway]]
<<else>>
<p>Mrs. Albright is waiting by your cart with a notebook open, and for the first time since you've been here she's smiling at you.</p>
<<speech "Albright" "Mr. $player_surame. I don't believe we've been properly introduced. Meredith Ryan Conner-Albright. You'll know the name from the east wing.">>
<<pic "img/school/albright/intro.jpg">>
<p>She asks after your hours, your keys, which corridors your work orders take you down and when. She writes every answer down and thanks you for each one.</p>
<<if $albright_notes.length > 0>>
<p>The folder under her arm is already an inch thick. She's been collecting on you since long before the intercom.</p>
<</if>>
<<speech "Albright" "Something is wrong with Shannon, and I intend to find out what. Have a pleasant day.">>
<<set $albright_stage = 2>>
<<set $albright_block_until = $day>>
/* She opens the file with the worst of it: everything she has collected
since 1.2 (the loud incidents in $albright_notes, the open mic, the first
slip) caps at 6, so a loud past buys one restriction up front and never a
string of them. The slow decay counts from today. */
<<set $albright_heat = Math.min($albright_heat, 6)>>
<<set $albright_heat_day = $day>>
<div class="req">Mrs. Albright has opened a file on you. Every time she sees you where a janitor has no business, it gets thicker, and when it's thick enough she spends it.</div>
[[Back to work|Hallway]]
<</if>>/* The first time one of Albright's restrictions bites, he asks Pollock to
deal with her, and she can't. The Conners built the east wing, and a woman
who doesn't need the salary can't be reviewed away. She points him at the
people who clean up after all of them instead: below decks. Sets
$albright_stage 3. DRAFT prose. */
<<if $albright_stage != 2>>
<p>Her door is shut.</p>
[[Back to the hallway|Hallway]]
<<else>>
<p>You ask her to make Mrs. Albright go away.</p>
<<speech "Pollock" "I can't." "pollock">>
<p>It's the first time you've heard her say it. The Conners built the east wing, and Meredith teaches because a Conner woman does something respectable, not because she needs the salary. You can't paper-cut a woman out of a job she doesn't need.</p>
<<speech "Pollock" "My way leaves paper. Yours doesn't. Ask the people who clean up after all of us." "pollock">>
<<set $albright_stage = 3>>
<div class="req">Below decks, an afternoon favor can lift one of Mrs. Albright's restrictions early or thin her file.</div>
[[Back to work|Hallway]]
<</if>>/* Her first restriction lands, whichever kind it is (it used to wait for the
lock audit, so a player who lifted the first one never met this scene),
and she corners him with what she has: right about everything, wrong about what
it means. She thinks Pollock has had a breakdown or is being extorted, and
she's building toward a district competency review. He can't explain
himself out of it and the file stays open. One-time ("confrontation" in
$fall_seen). Her evidence lists only what the save has actually shown.
DRAFT prose. */
<<if $albright_stage < 2 || $fall_seen.includes("confrontation")>>
<p>Nobody wants a word with you.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<run $fall_seen.push("confrontation")>>
<<switch $albright_block>>
<<case 1>><p>Mrs. Albright catches you outside the maintenance office, with her aide a step behind her and a copy of the memo in her hand.</p>
<<case 3>><p>Mrs. Albright is still in the building when you clock in for the late shift, waiting by the time clock with the new roster in her hand.</p>
<<case 4>><p>Mrs. Albright catches you outside your closet while two yearbook kids stack her archive boxes inside it, the storage order in her hand.</p>
<<default>><p>Mrs. Albright catches you at the top of the basement stairs with the rekey order in her hand.</p>
<</switch>>
<<set _ev = []>>
<<if $fall_seen.includes("wave")>><<run _ev.push("The civics teacher waves at you in corridors.")>><</if>>
<<if $fall_seen.includes("doorplate")>><<run _ev.push("The principal's door has a name on it that isn't hers.")>><</if>>
<<run _ev.push("The intercom.")>>
<<if $dirty_retired == 3>><<run _ev.push("A work detail in the boys' toilets, on her signature, at your request.")>><</if>>
/* Then the two most damning of the loud incidents she has on record
($albright_notes, most damning first). If she has fewer than two, the
carbons of your Madi requisitions in the office file make up the rest,
but only the ones that have played. */
<<set _noteText = {
slipcrew: "Four of you in her office for most of a period, and a noise from her couch I won't repeat.",
slipboys: "Boys from room 021 going into the principal's office with pink slips, and coming out tucking their shirts in.",
gothgirl: "Lola Fae in your detention room, and what you let happen to her.",
toilets: "A senior on her knees on the first-floor toilet floor, on your say-so.",
library: "A girl in the library stacks, live on her phone, with the janitor in frame.",
ofboys: "A video on a student's paid page, shot in your detention room.",
classroom: "Room 114 at fifth period, and a senior telling half the school the janitor has the master key.",
ofopen: "A student filming for her paid page in your detention, with your blessing.",
verdict: "Two girls in the second-floor washroom, and your verdict.",
phones: "The confiscation box, and you two phones deep in it."
}>>
<<set _notes = ["slipcrew", "slipboys", "gothgirl", "toilets", "library", "ofboys", "classroom", "ofopen", "verdict", "phones"].filter(n => $albright_notes.includes(n)).slice(0, 2)>>
<<run _notes.forEach(n => _ev.push(_noteText[n]))>>
<<set _carbonText = {
equipment: "A yearbook assignment to an empty equipment room at twenty to seven at night, in your handwriting over her signature.",
summons: "A senior kept on the bench outside her office for a whole period with the reason left blank, on the same sheet as your work order for her radiator.",
unsung: "A page for the yearbook on the custodial staff, with the adviser's box left empty."
}>>
<<run ["equipment", "summons", "unsung"].filter(n => setup.madi.hasSeen(n)).slice(0, 2 - _notes.length).forEach(n => _ev.push(_carbonText[n]))>>
<<set _evLine = _ev.join(" ") + " Shall I go on?">>
<<speech "Albright" _evLine>>
<<pic "img/school/albright/confrontation.jpg">>
<p>She has all of it, and all of it is true, and she has it pointing the wrong way.</p>
<<speech "Albright" "Shannon is either having a breakdown, or somebody has something on her. Either way the district will want a competency review, and when it comes, I'd like to know which one you are.">>
<p>There's nothing you can say right now that helps, so you say nothing, and she writes that down too.</p>
[[Back to work|Hallway]]
<</if>><<pic "img/school/principal_office.webp" "location">>
<p>The principal's office is dark wood and framed handshakes: Pollock with the governor, Pollock with two senators, Pollock holding a novelty check the size of a door. Behind the desk, the woman herself doesn't look up from her monitor for a long thirty seconds.</p>
<<speech "Pollock" "The east corridor was mopped this morning. I walked it at ten. It did not meet the standard of this institution." "pollock">>
<p>You mopped that corridor twice. It could host surgery. You open your mouth and she raises one finger without looking at you, and something in the gesture - the total, bone-deep certainty that you will stop talking - closes your throat better than a hand could.</p>
<<speech "Pollock" "I don't require an explanation. I require it done again." "pollock">>
<p>She looks at you for the first time - a slow inventory from boots to face that files you somewhere between the floor buffer and the boiler.</p>
<<pic "img/school/syren/intro.jpg" "story">>
<<speech "Pollock" "And I require you to understand that you are here because someone in the district office believes in second chances. I don't. You are a line item, Mr. $player_surame. Line items that underperform get removed. Mop it again." "pollock">>
<p>She's already back in her monitor. On the sideboard behind her, a cabinet with a keyed lock and a fresh ring-stain on the wood above it - a wet glass, set down recently, in an office that officially contains no glasses.</p>
<p>You mop the corridor again. It takes forty minutes. Three students walk through the wet end on purpose.</p>
<<statchange "energy" -2>>
<<set $pollock_stage = 1>>
[[Back to work|Hallway]]<<if $pollock_stage == 1 && $pollock_leverage >= 3>>
<p>You knock. You go in. You've rehearsed this on your cot: the ledger strip, the overheard calls, laid out just enough to make her see you differently. It works on street bosses and warehouse foremen. You slide the photocopy across the desk and watch her face.</p>
<p>She reads it. And Shannon Pollock starts to laugh - a genuine laugh, warm, almost delighted, the first human sound you've ever heard her make.</p>
<<pic "img/school/syren/failed_confrontation.jpg" "story">>
<<speech "Pollock" "Oh, that's marvelous. The janitor is an investigator. Do you know what this is?" "pollock">>
<p>She holds up your evidence.</p>
<<speech "Pollock" "This is a piece of paper. Do you know what I am? I am an appointee of the party that counts the votes. You could hand this to a judge - you'd have to find one I haven't had dinner with - and the only thing anyone would investigate is how a man with your... paperwork got inside my school." "pollock">>
<p>She feeds the photocopy into the shredder beside her desk without breaking eye contact. It takes four seconds. They are long ones.</p>
<<speech "Pollock" "You're fortunate that firing you would mean explaining you. Instead: your hours are cut this week, your closet privileges are under review, and you will remember this feeling. Get out.">>
<p>Out in the corridor, hands shaking - rage, not fear, though from outside it looks the same - you take the inventory. Wrong: half-measures. Paper she can shred, in a system she owns. Right: the flinch. One quarter-second flinch before the laugh. There's a floor under her somewhere, something she can't shred, and you're the man who cleans under things.</p>
<p>Next time you don't knock until you're holding all of it.</p>
<<set $pollock_stage = 2>>
<<if $school_rep > 2>><<set $school_rep -= 3>><</if>>
<div class="req">Half-measures. You'll need everything on her (leverage 10/10) and keys to everything (master key 3/3) before you try that door again.</div>
[[Back to work|Hallway]]
<<else>>
<p>Her door is shut. Not yet - and not with what you're holding.</p>
[[Back|Hallway]]
<</if>><<pic "img/school/principal_office_night.webp" "location">>
<p>The master key turns and her office opens for you like it's been waiting. Flashlight low, blinds drawn, gloves on. You go to the thing you've been circling for weeks: the locked cabinet with the ring-stain above it.</p>
<p>The small key from the dead janitor's ring fits. Of course it does - the cabinet came with the office, and men like you have always had the keys to everything the owners forgot.</p>
<p>Inside: bottles. Rows of them, expensive and half-dead, a private cellar folded into a filing cabinet - and behind the gin, the real prize. A bound ledger, handwritten, the twin of the shredded strip you found in her trash: two sets of precinct numbers per line, real and reported, going back three election cycles. She kept it. They always keep it. The guilt needs a place to live, and hers lives behind the bottles she drinks it quiet with.</p>
<p>There's a second cache on the lower shelf, and it's almost stranger than the first: a private pharmacy of serums and retinols, the thousand-dollar kind, and a printed consult sheet from a cosmetic clinic two towns over - booked under her maiden name. Tucked inside the ledger's back cover, church donation receipts in round, guilty numbers. Two fears in one cabinet: what she did, and what the mirror is doing to her. Either one is a handle, if a man knew how to pull it.</p>
<p>You photograph every page on the burner, wipe the glass, relock the cabinet, and put the dust back where dust goes. Shannon Pollock will sit at that desk tomorrow, sip her secret, and have absolutely no idea that the room now belongs to the janitor.</p>
<<set $pollock_leverage = Math.min(10, $pollock_leverage + 3)>>
<<statchange "energy" -2>>
<div class="req">Leverage on Pollock: $pollock_leverage/10</div>
[[Slip back out|Hallway]]<<if $pollock_stage != 2 || $pollock_leverage < 10 || $master_key < 3>>
<p>You have to be better prepared.</p>
[[Back|Hallway]]
<<else>>
<<pic "img/school/syren/reckoning.jpg" "story">>
<p>This time you don't knock.</p>
<p>The secretary's chair is empty, and her monitor is dark. Somebody sent her home. Only one person in this building can do that.</p>
<p>Blinds down. Door unlocked. The bottle is out on the blotter next to a glass she hasn't bothered to hide, and Shannon Pollock is behind the desk waiting for you.</p>
<<speech "Pollock" "Close it. I've had all morning to decide how surprised I'd be. The answer is not very." "pollock">>
<p>She knows you've been digging dirt on her, but you take the pleasure of laying it all out. The ledger, photographed page by page. Precinct sheets from the records annex. Six statements from people who have been invisible in her hallways for years and who talked to you for the price of being listened to. The clinic consult under her maiden name.</p>
<p>She glances over your materials: "that's a good one", "tsk-tsk-tsk", "would you look at that", as if enjoying the collection. </p>
<<speech "Pollock" "You've done your research; I'm even flattered someone took time to investigate poor old me. Good job, Mr. $player_surame. I'm afraid I can't just put this in the shredder anymore - you got me." "pollock">>
<p>Then she sits up, and her face changes gear, and you realize you are about to be negotiated with.</p>
<<speech "Pollock" "I suppose this is the part where you want to be paid for all your troubles. Sixty thousand. There is a stipend fund with a remarkably poor audit..." "pollock">>
<<speech "You" "No.">>
<p>Not a flicker. She turns the page.</p>
<<speech "Pollock" "Then out of the coveralls. Facilities coordinator, district payroll, and I sign your background waiver myself - which should interest you, Mr. $player_surame, because whoever made your paperwork did a good job and not a perfect one." "pollock">>
<p>That one is worth something. She has priced it correctly, too, and she watches you not take it with the first honest confusion you have ever seen on her.</p>
<<speech "You" "No. I need something else.">>
<p>She's quiet for a beat. Then she stands, comes around the desk, and starts on her jacket buttons.</p>
<<pic "img/school/syren/reckoning_2.jpg" "story">>
<<speech "Pollock" "Well, of course, what else could a black man want. I'm past my prime but..." "pollock">>
<<speech "You" "Put it back on.">>
<p>Her hands stop.</p>
<<speech "Pollock" "Well now you get me all confused. Are you blackmailing me or not?" "pollock">>
<p>She looks genuinely upset that there is no extortion, as if she already planned how this would spice up her life.</p>
<<speech "You" "I need access to school computer systems: database, surveillance, all that stuff.">>
<p>She does the buttons back up one at a time, goes around the desk, sits, and pulls the keyboard toward her.</p>
<p>Her hands get as far as the keys.</p>
<p>Then stop.</p>
<<speech "Pollock" "No." "pollock">>
<<speech "You" "You're not in a position for that word.">>
<<speech "Pollock" "I know! That's the thing!" "pollock">>
<p>She turns the glass a quarter turn on the blotter. Getting it straight. You've been cataloguing that one since your first week.</p>
<<speech "Pollock" "You just turned down money, a career and me. In that order. In under a minute." "pollock">>
<<speech "Pollock" "Do you know how long it has been since somebody wanted a thing off me that wasn't me?" "pollock">>
<<speech "Pollock" "If I type this, you walk out with a password, and I return to my boring old life. Nuh-uh. I need to be punished for all this!" "pollock">>
<p>She points at your materials - a heavy burden on her shoulders for all those years.</p>
<<speech "Pollock" "I did some bad things. I hate what my life has become. And you'd still need me on your side after I pass you the access! Come back tomorrow. I need to sober up." "pollock">>
<p>In the corridor, you replay your conversation. Does she try to buy more time? Maybe, but you were watching her face the whole time. Underneath it is a woman who wants redemption, and you can give it to her.</p>
<<set $pollock_stage = 3>>
<<set $pollock_next_day = $day + 1>>
<div class="req">She names her terms tomorrow afternoon.</div>
[[Get back to work|Hallway]]
<</if>><<if $pollock_stage != 3 || $pollock_route != 0 || $day < $pollock_next_day>>
<p>She said tomorrow, and she meant tomorrow.</p>
[[Back|Hallway]]
<<else>>
<!-- IMAGE: principal's office, blinds down - Pollock out of the jacket, two glasses on the blotter -->
<p>Empty desk, blinds down, door unlocked, secretary sent home: three orders, all of them given for you. The chain of command in this building has quietly reorganized itself around a man with a mop.</p>
<p>She isn't behind the desk. She's in the visitor's chair with the jacket over the back of it, surprisingly sober.</p>
<<speech "Pollock" "I want to add the last piece to your materials - my confession." "pollock">>
<p>Then she talks, and it comes out of her the way water comes out of a cracked dam.</p>
<<pic "img/school/syren/crying.jpg" "story">>
<p>The first counting adjustment was a favor for a man who made it sound procedural. The second was easier. The third came with a novelty check for the gymnasium and a photograph of her holding it. There was never a day she decided to be corrupt; instead, there were a hundred days of deciding nothing, and then it was too late.</p>
<p>The drinking started after the second cycle, to get to sleep. It stayed on to get through the afternoons.</p>
<<speech "Pollock" "Fifty-one. The cake in the staff room has said thirty-nine for five years, and nobody has ever corrected it, because nobody in this building looks at me long enough to do the arithmetic." "pollock">>
<<speech "Pollock" "I stopped rooms once. Now I hold a district in my fist, and I'm invisible inside it, and the only man who kneels for me does it because I tell him to." "pollock">>
<<speech "You" "You do look good, though. Money well spent.">>
<p>She laughs at that, ugly and grateful.</p>
<<speech "Pollock" "So. Here's the price." "pollock">>
<<speech "Pollock" "You get the system. Not a login - the whole thing, and me holding the door open as long as you want it open." "pollock">>
<<speech "Pollock" "And I need to be punished. See, a blackmail arrangement won't work on me - I don't want the return to status quo. And you look like a man who can... shake up my life." "pollock">>
<p>Careful choice of words.</p>
<<speech "You" "Let me guess - the punishment you imagine is submitting to a black dick and being owned by a black janitor.">>
<<speech "Pollock" "Well... This should work; it's so humiliating..." "pollock">>
<<speech "You" "Not for me. But as long as I get what I want, I don't care how.">>
<<speech "Pollock" "Well, I DO care... tell me how, exactly?" "pollock">>
<p>She finally gives up her control to you. Make your choice.</p>
<div id="choice-container">
<<link "You will own her personally">>
<<set $pollock_route = 2>>
<<set $pollock_next_day = $day + 1>>
<<replace "#choice-container">>
<<speech "You" "Tomorrow we get in your shiny car and drive to your house. And I make you my bitch on your own furniture.">>
<<speech "Pollock" "Tomorrow is Wednesday. Marcello doesn't teach Wednesdays. He'll be home." "pollock">>
<<speech "You" "I don't care about Marcello, and neither do you. He can sit there and watch a black man take his wife, or he can get out of the way.">>
<p>She bites her lip. The idea of Marcello watching her downfall makes her wet.</p>
<<speech "Pollock" "Make me yours." "pollock">>
<<statchange "energy" -1>>
[[Leave her to count the hours|Hallway]]
<</replace>>
<</link>><br>
<<if $incel_path == 2 && $incel_stage >= 11>>
<<link "She will be owned by your boys">>
<<set $pollock_route = 1>>
<<set $pollock_next_day = $day + 1>>
<<replace "#choice-container">>
<p>Three of her own students, in a classroom of her own school. Eighteen, graduating in gangbang.</p>
<<speech "Pollock" "Stop it, no way these kids would be interested in the old hag like me." "pollock">>
<<speech "You" "You've been on their mind for a long time. And when they fill your every hole with their big black dicks, you'll understand that age is just a number.">>
<p>You got her on the BBC part. She even looks younger already.</p>
<<speech "Pollock" "I think this fits perfectly. Being gangbanged by my own students... Oh, how humiliating this must be!" "pollock">>
<<statchange "energy" -1>>
[[It'll be arranged|Hallway]]
<</replace>>
<</link>>
<<else>>
<span class="req">There could be a gangbang option, but you don't have men for that. </span>
<</if>>
</div>
<</if>><<if $pollock_stage != 3 || $pollock_route != 2 || $day < $pollock_next_day || $energy < 3>>
<<if $energy < 3>>
<p>Not today. Whatever is waiting at the other end of that drive, you'd be no use to it.</p>
<<else>>
<p>The fire lane is empty. Whatever she's arranging, it isn't today.</p>
<</if>>
[[Back|Outside]]
<<else>>
<p>She drives the way she runs the building: signals early, checks mirrors she doesn't need, says nothing. The district scrolls past in descending order of money until it starts climbing again, and then it's her street. Old trees, deep lawns, houses that keep lawyers. A white colonial with a lawn service flag still pushed into the grass, and the Corolla in the drive.</p>
<<pic "img/school/syren/home.jpg" "story">>
<<speech "Pollock" "He's home every Wednesday, grading at the kitchen table. I didn't arrange anything. He's simply there." "pollock">>
<<speech "You" "Good.">>
<p>She kills the engine, sits with both hands on the wheel for one second, and gets out before she can think about it.</p>
<p>Marcello opens the door before you reach it. He looks at you. Then at her. Then he steps out of the way, because that's what he does - smiling awkwardly.</p>
<<pic "img/school/syren/marcelo_welcome.jpg" "story">>
<<speech "Marcello" "I put coffee on. I wasn't sure if - " "marcello">>
<<speech "Pollock" "Nobody wants coffee, Marc." "pollock">>
<p>Inside, the house is a resume. Staged rooms, a second wall of framed handshakes for anyone who missed the first, and two o'clock sun coming through the blinds hard enough to show the dust on the frames. The living room has a long pale couch nobody has ever sat on properly and a pinkish carpet that has never had anything spilled on it.</p>
<p>She stops in the middle of that carpet and gets one strap of the summer dress off her shoulder before her hands quit on her. Her husband is still in the doorway with his hands at his sides. Nobody has told him anything, and twenty years have taught him not to ask.</p>
<<speech "Pollock" "I don't know where to stand in my own house." "pollock">>
<<speech "You" "You don't stand anywhere. That's what you're paying for. Him, I decide.">>
<p>He looks at you like a dog hearing its name.</p>
<div id="choice-container">
<<link "He stays. He watches.">>
<<set $pollock_home_cuck = 2>>
<<replace "#choice-container">>
<<speech "You" "Marcello. Bring that chair round and sit in it. You're going to watch a black man fuck your wife in your own living room, and you're going to say thank you after.">>
<p>He does it fast, the way he does everything, dragging the reading chair across the carpet until it faces the couch straight on. Front row of his own living room. He sits with his knees together and his hands on the arms, and his slacks are already tented.</p>
<p>Shannon's head comes up. Whatever she was braced for, that was it.</p>
<<speech "Pollock" "You're really going to make him - " "pollock">>
<<speech "You" "Nobody's making him. Look at him.">>
<p>She looks. She has never seen that face do this.</p>
[[Let him have the view|Pollock Owned Watched]]
<</replace>>
<</link>><br>
<<link "Out. He isn't invited.">>
<<set $pollock_home_cuck = 1>>
<<replace "#choice-container">>
<<speech "You" "Marcello. Fuck off. Upstairs, the garage, the car, I don't care which. You come back down when she's done with me and not before.">>
<p>He blinks once, nods twice, too many times, and goes. His feet go up the stairs and a door shuts somewhere overhead. Whether it stays shut, whether he ends up with one eye at the crack of it, the landing will tell you, and you've already decided not to care. Let him watch through a keyhole like the help. It's his house and he still doesn't get a seat.</p>
<p>Shannon watches him go, and something moves across her face that the whole ledger never touched.</p>
<<speech "You" "Go change. Whatever you bought for this, and you bought something, go put it on. I'll be here.">>
<p>She goes. You undress and take the middle of the couch, arms along the back of it, dick hanging loose.</p>
[[Wait for her|Pollock Owned Private]]
<</replace>>
<</link>>
</div>
<div id="output"></div>
<</if>><p>You set the terms out loud so both of them hear the same sentence. His hands stay on the arms of the chair. He doesn't speak unless spoken to, he doesn't touch his wife, and he doesn't look away from her either, not for a second, or he goes out to the car.</p>
<<speech "Marcello" "Yes. Thank you. Yes." "marcello">>
<<speech "Pollock" "God. He thanked you for it." "pollock">>
<<speech "You" "He's going to thank me for a lot today. Get used to the sound.">>
<p>Then you finish what her hands quit on. No ceremony. The summer dress she bought for a ride across the district, unzipped down her back and left in a puddle around her heels. Beige underwear bought by a woman who stopped expecting to be seen in it, and she goes red to the collarbone when it comes off in front of her husband, because the daylight isn't doing her any favors and the daylight was her idea.</p>
<<pic "img/school/syren/solo_cuck_pose.jpg" "story">>
<p>Fifty-one years old and naked in the middle of the staged living room, big tits heavy and nipples gone hard in the air conditioning, arms half up and not knowing what to cover first. Across the carpet her husband watches with his mouth open. You take one tit in your hand and weigh it in front of him, thumb over the nipple, like you're pricing it.</p>
<<speech "You" "Marcello. When's the last time you had your hands on these?">>
<<speech "Marcello" "She doesn't - I'm not allowed to - " "marcello">>
<<speech "You" "That's what I thought. Watch what a black man does with them.">>
<p>You don't kiss her. You turn her around by the hip, put a hand flat between her shoulder blades and fold her over the arm of the couch, ass up, facing her husband, and she goes down with a noise she has never made in a room with witnesses in it. Your cock comes out and slaps against her ass cheek, and Marcello makes a sound in the chair like he's been hit.</p>
<<video "img/school/syren/home_cuck_0.mp4">>
<p>You're in her on the second push. She's wetter than either of you expected and it still isn't enough for the size of it, so she takes it in stages, up on her toes, fingers hooked white into the good upholstery. The third stage is where she stops being a principal. You bottom out against her cervix and hold there, and the sound that comes out of her is somewhere between a cough and a prayer.</p>
<p>Then you fuck her. Not fast: deep and unhurried and all the way out and all the way back, so every stroke gives Marcello the whole length of it going into his wife, black and slick and obscene against all that white skin, and then takes it out again for inspection. The couch shifts an inch on the carpet, then another.</p>
<<speech "You" "Tell him. He's got the best seat in the house, he should know what he's looking at.">>
<p>She turns her face to the side, finds her husband, and what comes out of her is the thing she couldn't say out loud in her office.</p>
<<speech "Pollock" "The janitor is fucking me, Marc. The black janitor is fucking your wife on your couch and it's the best I have felt in twenty years. Twenty years. Are you hearing me? It's so big. He's so deep. You never - you never once - " "pollock">>
<<speech "Marcello" "I know. I know, I'm sorry, I - " "marcello">>
<<speech "Pollock" "Don't be sorry. Watch." "pollock">>
<p>He makes a small hurt sound and his hips move in the chair. Nothing else about him moves. Her own hips push back to meet you for the first time.</p>
<p>It takes her another minute to ask for it, and she doesn't ask you, she asks over her shoulder like she's asking for a stapler.</p>
<<speech "Pollock" "Let him. Let him take it out and do it. I want to watch him while you're inside me. I want to see what he does." "pollock">>
<p>She asked you for permission on her husband's behalf. She hears herself do it, and her cunt clamps down hard enough that you have to stop moving for a second.</p>
<p>You pull out, flip her onto her back on the couch and take her ankles in one hand. Missionary, knees spread wide, her pussy stretched pink around black cock at exactly eye level with the chair.</p>
<<speech "You" "Belt off, Marcello. Take it out. Hands where she can see them.">>
<<video "img/school/syren/home_cuck_1.mp4">>
<p>He gets the buckle open with shaking fingers and pulls himself out, and there it is in the afternoon light: a pale little thing, thumb-sized, already leaking, and two fingers is all it needs. He strokes it in tiny fast motions while a black man rails his wife on the couch they bought together, whispering thank you at intervals, to nobody.</p>
<<speech "You" "Look at that, Shannon. That's what you married. That's what's been sleeping next to you. Now look down and tell me what's in you.">>
<<video "img/school/syren/home_cuck_2.mp4">>
<p>She looks at the pink thumb in her husband's fist and then at the black shaft splitting her open, and her whole face changes. Disgust would have been kinder to him, and pity kinder still. What's on it instead is contempt with the lid off, a whole marriage of it finally allowed out into the room, and under the contempt something that's almost tenderness, because he's giving her exactly what she needs him to be.</p>
<<speech "Pollock" "A black cock, Marcello. A real one, all the way in me, and you're sitting there tugging that little white thing like a boy. Look at yourself. Look at what you are. Faster. I want to see you do it faster while he fucks me." "pollock">>
<<speech "Marcello" "Yes, Shannon." "marcello">>
<<speech "You" "You don't answer her. You answer me. Faster.">>
<<speech "Marcello" "Yes. Sir. Yes." "marcello">>
<p>Sir. Her head goes back on the cushion at the word and she laughs, one bark of it, and you give her the last inch on the laugh and she stops being able to finish sentences at all.</p>
<p>The audience is what does it. You can feel the difference in her and so can she; she has performed for rooms her entire adult life, and this is the first room she has ever been the whole show in. Her heels come off the cushions, her hands go over her head and grab the armrest behind her, and she starts to shake.</p>
<<video "img/school/syren/home_cuck_3.mp4">>
<p>She comes on your cock with her husband four feet away and a hand on his own, and she doesn't go quiet with it. The first one is teeth-shut and disciplined out of pure habit; you tell her the discipline is over, and the second one takes the house. She says her name while it happens, her full name, the one that goes out over the PA every morning at eight, and then what a black man is doing to it, and then, eyes locked on the chair, that her husband is watching her get blacked, that he's watching, that she wants him to see it.</p>
<p>Marcello is crying a little, still stroking. She doesn't look away from him once.</p>
<p>When she can breathe she slides off the couch onto her knees on the carpet in front of you, and nobody told her to.</p>
<<speech "Pollock" "I want him to see me try." "pollock">>
<p>She takes it in both hands first and measures it against her own face, the way a woman compares a dress size she knows she doesn't wear, then gets the head into her mouth and pushes. Two inches. Four. Her jaw cracks wide, her eyes start streaming, and she keeps pushing anyway, gagging around the shaft with spit running off her chin onto her tits, making herself do it because her husband is watching her fail at it.</p>
<<video "img/school/syren/home_cuck_4.mp4">>
<p>She gets maybe half. You slap her ass, hard, open-handed, and the crack of it fills the quiet house.</p>
<<speech "You" "Deeper. Your husband drives home a woman who can't take a cock past her teeth? Deeper.">>
<p>Another slap. She goes down again, retching, and gets another inch. Then another. Her ass is going pink under your hand and she keeps pushing, both hands on your thighs, tears and snot and spit, choking on it in front of the man who made her dinner last night. The noises are not dignified and aren't meant to be. You hold the back of her head and let her work.</p>
<<speech "Pollock" "It doesn't fit. Marcello, it doesn't fit, I can't - " "pollock">>
<<speech "Marcello" "It's okay. It's okay, Shannon." "marcello">>
<<speech "Pollock" "It's not okay, you idiot, it's magnificent." "pollock">>
<p>Then she climbs on. Straddles you on the couch, takes you to the root on the way down, and rides you facing her husband so he gets every drop of the view: her ass working, her tits swinging loose, her cunt stretched white around a cock she'll be feeling again. She sets her own rhythm, the way she sets everything, and she narrates it for him the whole way: how full she is, how he never once filled her like this, and how she is going to think about it every time he goes down on her from now on. For a while you let her have it.</p>
<p>Then you don't.</p>
<<speech "You" "Off. Knees. Hands behind your back. Marcello, watch what your wife's face is for.">>
<p>She's off you and down on the carpet before the sentence ends, kneeling up with her back straight and her hands behind her, chin lifted, mouth open, in the exact posture she keeps her husband in.</p>
<<video "img/school/syren/home_cuck_5.mp4">>
<p>You come on her face. Thick and hot across one cheek, over the bridge of her nose, through her loose hair, a second rope over her open mouth and down her chin, and she holds the pose through all of it with her eyes shut and her tongue out, taking what lands there. Principal Shannon Pollock, glazed with a black man's load, kneeling on the living room rug at twenty past two on a Wednesday.</p>
<p>She opens her eyes, turns her head, still dripping, and looks at her husband in the chair.</p>
<<speech "Pollock" "Now you. All of it, on me. Come on your wife with his still on her face." "pollock">>
<p>He's out of that chair so fast it tips. He stands over his own wife with his pants around his knees and finishes in four strokes, and what comes out of him is thin and watery: her collarbone, her tits, the slope of her belly, weak little spurts landing on top of a load he can't come anywhere near matching.</p>
<<video "img/school/syren/home_cuck_6.mp4">>
<p>Then, with nobody telling him to, he goes down on his knees in front of her and starts thanking her. Then he thanks you. She lets him. She sits back on her heels in a puddle of two men and puts one hand on his head, absent, the way you'd touch a dog that finally did the trick, and over the top of him she looks at you.</p>
<<speech "Pollock" "Fuck I needed that." "pollock">>
[[After|Pollock Owned After]]<p>The house is quiet the way a house is quiet with a man in it trying not to be heard. A floorboard creaks on the landing, then nothing.</p>
<p>For the next couple of hours the couch is yours. Afternoon sun across the carpet, a clock ticking in the kitchen, and somewhere upstairs a drawer opening and shutting.</p>
<p>She comes down the stairs slower than she has ever taken a corridor, and you understand what the drawer was for.</p>
<<video "img/school/syren/home_creampie_1.mp4">>
<p>White lace. A bra that lifts her big tits and barely bothers to cover them, a garter belt, white stockings up to the soft of her thighs, and a scrap of white lace panties over a pussy you can already see the shape of. Hair down. Fifty-one years old, dressed like a bride, for the janitor, in the house her husband is hiding in.</p>
<p>She gets as far as the edge of the carpet and stops, and the principal is still there, shoulders back, chin up. She would like to be sultry and she has never been sultry in her life; what she has is command presence with the suit taken off it, and she stands there in white lace looking like she's about to tell you to mop it again.</p>
<<speech "Pollock" "Well. Say something." "pollock">>
<<speech "You" "You look like a bride.">>
<<speech "Pollock" "I'm aware of what I look like. I picked it out. I stood in a fitting room with a girl a third my age and told her it was for an anniversary, and she believed me, which was the most insulting part." "pollock">>
<<speech "You" "It is an anniversary. First day you belong to somebody. Get on the floor.">>
<p>She hesitates a full second, which is the longest anybody has ever made her wait for her own decision, and then she goes down onto the carpet, onto her knees and then onto her side, one arm propped, one leg drawn up, the pose from every catalogue she has ever flipped past. It's a good body under all that lace, kept expensive, and she knows how to hold it, and she still can't stop giving instructions with her eyebrows.</p>
<p>You don't move. You let her lie there and be looked at, and you watch the principal try to find the version of herself that lies on a floor for a man, and not find it, and get wet anyway.</p>
<<speech "You" "Crawl.">>
<<video "img/school/syren/home_creampie_2.mp4">>
<p>She crawls. Slow, on her hands and knees across the pinkish carpet, tits swinging in the lace, ass up, stockinged knees whispering on the pile, until she's between your boots.</p>
<p>Then she wraps her lips around the head, and her eyes close.</p>
<<video "img/school/syren/home_creampie_3.mp4">>
<p>You sit back and take a moment with it. Principal Shannon Pollock, who filed you between the floor buffer and the boiler on the day you met, who raised one finger and closed your throat with it, is on her knees in white lace with your black cock in her mouth. Her hand is on your thigh. Her husband is somewhere above the ceiling with his ear to a door. And she knows exactly what this is. You can watch her know it. Every time she goes down she's the principal sucking the janitor's dick, and every time she comes up for air she's a little less the principal, and she goes down again anyway, because going down again is what she drove you here for.</p>
<<speech "You" "Look at me while you do it.">>
<p>She does. Wet eyes, lips stretched around black shaft, and the look in them is still trying to run the room and losing.</p>
<div id="throat-container">
<<link "Show her what her mouth is for">>
<<replace "#throat-container">>
<<video "img/school/syren/home_creampie_4.mp4">>
<p>You take her head in both hands, hair wrapped once around your fist, hold it still, and use her mouth. Not her sucking you. You fucking her face, feeding your cock in as far as it goes and then further, while her hands come up and flap against your thighs and her throat closes on it and opens and closes. She gags. She gags loud, wet, ugly, drool pouring off her chin into the white lace, and you hold her there with her nose an inch from your stomach until her eyes stream, and then you let her up for one breath and do it again.</p>
<<speech "You" "This is a real one, Shannon. First one you've ever had in your mouth. That's why it doesn't fit. Nobody trained you.">>
<p>She can't answer. She's choking on it, mascara running, spit stringing between her lips and your cock, used like a wet sleeve on a carpet that has never had anything spilled on it, and when you finally take it out of her she gasps, wipes her face with the back of her hand, and puts her mouth straight back on it without being told.</p>
<</replace>>
<</link>>
</div>
<p>You take it out of her mouth and she makes a small unhappy noise about that, the first honest complaint she has ever made in front of you.</p>
<<speech "You" "Couch. Hands and knees. Face that way.">>
<<video "img/school/syren/home_creampie_5.mp4">>
<p>She climbs up onto the pale couch on all fours, knees on the cushions, and puts her ass up. And then she wiggles it. Side to side, slow, a woman who has never been playful in her life trying it on in white lace with her stockinged feet hanging off the end of the couch, looking back over her shoulder to see if it's working. Whatever dignity a school principal is issued at appointment, she has about a teaspoon of it left, and it's in the panties.</p>
<p>You take those off her. Hooked in both thumbs, dragged down over the big soft white ass and left around her knees, and her pussy comes out into the daylight fat and pink and so wet the lace is stained dark. Before you can touch her she reaches back and slaps her own ass cheek, hard, leaves the hand there, and looks at you.</p>
<<speech "Pollock" "Well? I'm on my hands and knees for you in my own living room in three hundred dollars of underwear. Are you going to fuck me or admire me?" "pollock">>
<p>You put the head of your cock against her and hold it there.</p>
<div id="pace-container">
<<link "Let her set the pace">>
<<replace "#pace-container">>
<<video "img/school/syren/home_creampie_6.mp4">>
<p>You push in slow. Slower than she wants, an inch and a hold, another inch and a hold, letting her cunt figure out the size of it before you give her any more, and every hold gets a different noise out of her. Her fingers dig into the cushion. Her back bows. When you're finally all the way in, the whole length of black cock buried in the principal, you stop moving altogether and let her feel it stretch her.</p>
<p>It takes her about ten seconds to start moving on her own. A rock forward, a rock back. Then longer. Then she's fucking herself on it, sliding her big white ass back onto your cock and off again with her stockings bunching at the knees, the principal of Thatcher-Ellison nailing herself on a janitor's dick like a slut who has waited all year for the chance, and all you have to do is stand there and be the pole.</p>
<<speech "Pollock" "Oh God. Oh God, it's so - I can feel it in my - don't move. Don't you dare move. Let me. Let me." "pollock">>
<p>You let her. She's louder every stroke.</p>
<</replace>>
<<replace "#output">><<include "Pollock Owned Private Finish">><</replace>>
<</link>><br>
<<link "Take her like you own her">>
<<replace "#pace-container">>
<<video "img/school/syren/home_creampie_7.mp4">>
<p>You take her by the waist with both hands and slam in. All of it, one shove, no warning, and she screams into the cushion and her whole body tries to go forward off the couch and your hands don't let it. You drag her back onto it. You hold her hips like handles and fuck her the way you'd fuck something you bought: hard, deep, fast, the couch banging the wall, her tits swinging out of the lace, her pussy taking a beating it wasn't built for.</p>
<<speech "You" "This is what you are now. A hole I put my dick in. You don't get a say in how. You don't get a say in when. Say it.">>
<<speech "Pollock" "I don't - ah - I don't get a say - " "pollock">>
<<speech "You" "Say what you are.">>
<<speech "Pollock" "I'm where you put your dick. I'm yours. I'm your - oh fuck - I'm your fuckmeat, I'm your white fuckmeat, I'm - " "pollock">>
<p>Her pussy doesn't love it. You can feel that, the way it grips and flinches around the size and the speed. The rest of her loves it more than she has loved anything in a decade, and it's the rest of her that's screaming for more into the upholstery.</p>
<</replace>>
<<replace "#output">><<include "Pollock Owned Private Finish">><</replace>>
<</link>>
</div>
<div id="output"></div><p>You take it out of her long enough to turn her over, and she goes onto her back on the couch with her legs already opening for you, stockings up, lace bra pulled down under her tits. You put it back in her and lie down over her and fuck her like that, missionary, your weight on her, her heels crossing behind your back, her face six inches from yours with nowhere to hide it.</p>
<<video "img/school/syren/home_creampie_8.mp4">>
<p>It doesn't take long. Her breath goes short and then stops, her eyes go wide and unfocused on the ceiling, her cunt starts to spasm around you in fast hard pulses, and Shannon Pollock comes on a black cock in her own living room. Her thighs shake. Something warm splashes out of her around the shaft and runs down the crack of her ass onto the cushion. She squirts, actually squirts, on the couch nobody was allowed to sit on, and then the noise that comes out of her isn't a moan.</p>
<p>It's a giggle. High, breathless and silly, the kind of sound that belongs at a sleepover, coming out of the most feared woman in the building while she's still twitching on your dick with her stockinged feet in the air. She covers her mouth with her hand and does it again, and looks up at you over the hand, and that is the moment you know you own her, more than the lace or the crawling or the begging told you. There is nothing left in her that isn't yours.</p>
<<speech "Pollock" "I've never - that has never - oh my God. Oh my God, what did you do to me." "pollock">>
<<speech "You" "Not done yet. Get on.">>
<p>You lie back on the wet cushion and pull her up on top of you, and she straddles you and sinks down onto your cock with a long shaking breath, stockings either side of your hips, tits in your face. You take her ass in both hands, a handful each, soft and big and pale, spread wide, and you move her, fast, using her like a weight, pulling her down onto you and driving up into her at the same time, hard enough that her hands go flat on your chest to keep from being thrown off.</p>
<<video "img/school/syren/home_creampie_9.mp4">>
<p>She's still coming, or coming again; you can't tell and neither can she. You go until your balls tighten and then you hold her down on it, all the way, and come inside her, deep, rope after rope pumped into the principal's cunt, into a white woman in bridal lace who has never once in twenty years of marriage had a man finish in her without a conversation first, and she feels it, she says so, she says it's hot, she says she can feel you filling her up, and she grinds down on it to get more.</p>
<p>When you lift her off, it follows. A thick white run of it out of a pussy stretched open and slow to close, down her thigh and into the top of one stocking, marking her. She looks down at it dripping out of her and doesn't reach for anything to wipe it with.</p>
<<video "img/school/syren/home_creampie_10.mp4">>
<p>Instead she slides down. Off the couch, onto her knees on the carpet between your legs, and she bends her head and starts licking the drops of your cum off your belly, tongue flat and slow. Then your cock, softening and slick with the both of you, and she takes it in her mouth and cleans it, base to tip, sucking gently at the head until there's nothing left on it, and she does not look up while she does it. A principal on her knees cleaning her janitor's dick with her tongue. There's no version of this she gets to run, so she has found the version where she serves instead, and it turns out she's very thorough.</p>
<p>Somewhere upstairs, a floorboard on the landing. She hears it too, and keeps going.</p>
[[After|Pollock Owned After]]<<if $pollock_home_cuck >= 2>>
<<pic "img/school/syren/solo_cuck_facial.jpg" "story">>
<p>After, she doesn't get up. She sits on the carpet in the wreck of it with her back against the couch, two men's cum drying on her and Marcello's head in her lap, and she looks around her own living room like she's been shown into it for the first time: the framed handshakes, the lawn service flag out the window, the pale couch with a wet patch on it the shape of her.</p>
<<else>>
<p>After, she stays on her knees for a while with her cheek against your thigh, in the ruined lace, your cum still leaking out of her onto the carpet, and she looks around her own living room like she's been shown into it for the first time: the framed handshakes, the lawn service flag out the window, the pale couch with a wet patch on it the shape of her.</p>
<</if>>
<<speech "Pollock" "Nine years I've walked through this room to get to the stairs. I have never once been on the floor of it." "pollock">>
<p>She says it to the room, not to you. What happened on this carpet isn't something she can file. In her own house, in daylight, she has just <<if $pollock_home_cuck >= 2>>been stripped, bent over, fucked and painted by the black man who mops her corridors, while her husband watched from a chair and stroked his little dick and thanked you both for it<<else>>crawled across the floor in bridal lace, choked on a black cock, and been fucked till she squirted and filled to leaking by the man who mops her corridors, with her husband hiding upstairs from the noise<</if>>. There's no ledger for that, and no way back to the woman who walked the east corridor at ten. The procedural, invisible thing she has been for a decade, the woman who got through afternoons on wine, died on this floor with the blinds open, and what got up in its place is a black man's whore who happens to hold a district in her fist. She looks twenty pounds lighter.</p>
<<speech "Pollock" "I thought it would feel like the end of something." "pollock">>
<<speech "You" "It is.">>
<<speech "Pollock" "It feels like the opposite." "pollock">>
<p>Then she <<if $pollock_home_cuck >= 2>>pushes Marcello's head off her lap, not unkindly, and <</if>>gets up.</p>
<<speech "Pollock" "You'll want something concrete." "pollock">>
<p>She crosses the room without the walk, cum <<if $pollock_home_cuck >= 2>>drying on her collarbone<<else>>running into the top of one stocking<</if>>, and opens a drawer in the sideboard. What she comes back with fits in her palm: a white plastic keycard, unbranded, and zip-tied through the punch hole, a stubby black security key.</p>
<<pic "img/school/syren/access.jpg" "story">>
<<speech "Pollock" "The card is a facilities directorate master. No name on it, no photo. It doesn't expire and it isn't logged against anybody. Opens every door with a reader on it." "pollock">>
<<speech "Pollock" "The key is the rest. It's the second factor for a maintenance login the audit doesn't see, and there's nothing else on it. It gets you into the student information system from anywhere, and into the camera recorder as well, but only from a machine inside the building." "pollock">>
<p>She puts it in your hand and closes your fingers over it with both of hers. It weighs nothing.</p>
<<speech "Pollock" "Not a password. A door, and the key to it, and you can hand the key to whoever you actually work for. I assume that's the arrangement." "pollock">>
<<if $pollock_home_cuck >= 2>>
<p>Marcello drives you back. She stands in the doorway in a robe with her hair still stuck to her cheek and watches the car out of the drive. Halfway across the district her husband clears his throat and asks, very politely, whether he did alright.</p>
<<speech "You" "You did fine, Marcello.">>
<<speech "Marcello" "Thank you. Thank you, sir." "marcello">>
<<else>>
<p>She drives you back herself, showered, in a plain dark sweater, sun still up, and she sits carefully. She drops you where the streetlights start going patchy.</p>
<</if>>
<<statchange "energy" -3>>
<<set $pollock_stage = 4>>
/* Her first pink slip can't arrive before this morning, which leaves one
quiet day at stage 4 (usually the day Terrence reads the key). */
<<set $pollock_next_day = $day + 2>>
<<set $database_access = 1>>
<div class="req">Her keycard and security key are in your pocket. You have access to the school's systems, but you need someone's help to use it effectively.</div>
[[Head home|The Hood]]<<if $pollock_stage != 3 || $pollock_route != 1 || $day < $pollock_next_day || $energy < 2>>
<<if $energy < 2>>
<p>Need more energy to arrange that.</p>
<<elseif $day < $pollock_next_day>>
<p>She's clearing an afternoon. The boys know. Nobody rushes this.</p>
<<else>>
<p>Nothing is arranged. Not yet.</p>
<</if>>
[[Back|Hallway]]
<<else>>
<!-- IMAGE: principal's office at ten to five - Pollock in the visitor's chair, blouse and a skirt that isn't hers -->
<p>After last bell, the building empties in the usual order. Buses, then lanyards, then the lights drop to half upstairs, and by four-thirty Thatcher-Ellison belongs to the people who clean it.</p>
<p>You collect her at ten to five. She's been sitting in the visitor's chair since three.</p>
<p>The jacket is over the back of the chair, and it's staying there. Instead, she wears a white blouse, unbuttoned one button too far, and a red skirt that stops mid-thigh, a foot shorter than anything that has walked these corridors in the nine years she's run them. The tag is still in the bin by her desk.</p>
<<pic "img/school/syren/group_project_intro_1.jpg" "story">>
<<speech "Pollock" "Don't say anything. I'm aware of how it looks. I bought it for how it looks." "pollock">>
<p>You walk her up to an empty classroom where she will meet with your club. Her heels are loud on the stairs, and she doesn't slow down for the second flight, but on the landing she reaches back without turning around and takes hold of your sleeve, two fingers, and keeps it the rest of the way.</p>
<<if $pollock_husband >= 1>>
<p>Halfway down the corridor, she says the other thing, to the floor rather than to you.</p>
<<speech "Pollock" "Marcello drove me in. He's in the visitor lot. He'll sit in that Corolla until I tell him otherwise." "pollock">>
<p>She doesn't ask you what to do about him, but you can guess what she's hoping for.</p>
<</if>>
<p>There's a light under the door of 214. You knock once. Aaron opens it, and every trace of eighteen goes out of his face when he clocks the skirt.</p>
<p>Behind him, Terrence is already standing. So is Devin. Three of them. She walks in past you, past Aaron, and sits her ass on the teacher's desk with her legs crossed like it's a board meeting, and the room goes so quiet you can hear the clock.</p>
<<speech "Pollock" "Gentlemen. I'm told there has been talk about me. A ranking." "pollock">>
<<speech "Aaron" "First place, ma'am. Wasn't close." "aaron">>
<p>You give it four seconds, which is exactly how long it takes for the color to start up her throat. Then you hand her over.</p>
<<speech "You" "Have fun, all of you.">>
<<pic "img/school/syren/group_project_intro_2.jpg" "story">>
<p>Terrence starts to ask whether you're staying and works the answer out of your face before he finishes. You're not. This was never yours to run, and the woman perched on the desk in a skirt she bought to be taken off did not write your name on that line of the list.</p>
<<statchange "energy" -2>>
<<set $pollock_next_day = $day + 1>>
<<if $pollock_husband >= 1>>
<p>You clock out through the front like any other night and sign a book you already edited. In the visitor lot, a Corolla sits with its parking lights on, and behind the wheel, a bored and miserable man.</p>
<p>He doesn't know what's about to happen. You do.</p>
<div id="choice-container">
<<link "Go tell him his wife is waiting in 214">>
<<set $pollock_group_done = 2>>
<<replace "#choice-container">>
<p>You cross the lot and tap on his window. He rolls it down with the face of a man who has never once been approached in a parking lot with good news.</p>
<<speech "You" "Mr. Pollock. Your wife's still upstairs, room 214, second floor. She wanted to sort out that lunch order. You should go on up and check on her.">>
<<speech "Marcello" "Oh. Oh, thank you. She did say lunch. Second floor, you said? I'll just - yes. Thank you." "marcello">>
<p>He's out of the car before the window is up, straightening a tie that won't be straight for long, walking fast the way a man walks toward a phone call from his wife. He doesn't ask why the janitor knows where she is. He never asks anything.</p>
<p>Twenty years that man has knelt for her on a schedule. Tonight he gets to find out what she looks like when she's the one on her knees, and three eighteen-year-olds are going to be the ones who show him.</p>
<</replace>>
<<replace "#closing">><p>The last bus takes you home with your hands perfectly steady. The boys will have a report tomorrow. They always do.</p>[[Head home|The Hood]]<</replace>>
<</link>><br>
<<link "Leave him to his phone">>
<<set $pollock_group_done = 1>>
<<replace "#choice-container">>
<p>Let him sit. He can drive her home after and smell it on her. You walk past the Corolla without slowing down.</p>
<</replace>>
<<replace "#closing">><p>The last bus takes you home with your hands perfectly steady. The boys will have a report tomorrow. They always do.</p>[[Head home|The Hood]]<</replace>>
<</link>>
</div>
<div id="closing"></div>
<<else>>
<<set $pollock_group_done = 1>>
<p>You clock out through the front like any other night, sign a book you already edited, and catch the last bus home with your hands perfectly steady. The boys will have a report tomorrow. They always do.</p>
[[Head home|The Hood]]
<</if>>
<</if>><<if $pollock_stage != 3 || $pollock_route != 1 || not $pollock_group_done || $day < $pollock_next_day || $energy < 2>>
<<if $energy < 2>>
<p>Need more energy.</p>
<<else>>
<p>Room 021 is dark, or it isn't the day for it.</p>
<</if>>
[[Back|Hallway]]
<<else>>
<<set _cuck = $pollock_group_done >= 2>>
<!-- IMAGE: room 021 - the three of them, one phone face-down on the desk, the whiteboard still not wiped -->
<p>The room has been cleaned, there's a phone face-down in the middle of the desk that nobody is touching, and the whiteboard still says GROUP PROJECT DEBRIEF.</p>
<<speech "Aaron" "Okay so first thing you gotta know. First thing. For like ten minutes nobody could fuckin' MOVE." "aaron">>
<<speech "You" "Ten minutes.">>
<<speech "Terrence" "Nine and a half. She sat on the desk and crossed her legs and we just sat there like she'd called us in over a fire alarm. I've had that woman put me in detention for a hoodie. My dick knew what room it was in. The rest of me didn't." "terrence">>
<<speech "Devin" "She kept doin' the voice. The announcements voice. Askin' if we'd had a chance to review the material." "devin">>
<p>You can see it without the phone. Shannon Pollock on the edge of a teacher's desk in a blouse open to the bra and a skirt that ends where her thighs start, ankles crossed, hands folded on her knee, waiting the way she waits for a parent to finish yelling. Three boys who spent years ranking her tits on a forum, standing in a row by the door with their hands in their pockets, because the principal is in the room and you don't touch the principal.</p>
<<if _cuck>>
<p>And then the door opened.</p>
<<video "img/school/syren/group_project_1.mp4">>
<<speech "Aaron" "Bro. BRO. Her husband walks in. Mister Pollock. Civics. Tie and everything, sweatin' through it, and he goes, uh, Shannon, uh, will you be wanting something for lunch tomorrow." "aaron">>
<<speech "Devin" "Lunch." "devin">>
<<speech "Aaron" "LUNCH, man. She's sittin' there with her tits half out in front of three of her black students, and this dude wants to know about sandwiches." "aaron">>
<p>She told him she'd let him know, in the same voice, and he stood in the doorway awkwardly before leaving. Terrence says that's when the room finally started breathing, as if Marcello broke the tension.</p>
<<video "img/school/syren/group_project_2.mp4">>
<<speech "Terrence" "Second time he interrupted was maybe four minutes later. She'd just uncrossed her legs. Devin had gotten as far as touching her knee. And the husband clears his throat and says, you look very beautiful today, Shannon." "terrence">>
<<speech "Terrence" "She came off that desk like a shot. Had him against the wall by the chalkboard before I understood what I was looking at. Forearm across his chest. Heels on, so she was taller than him." "terrence">>
<<speech "Devin" "That's when I got hard, honestly. Not the skirt. That." "devin">>
<<video "img/school/syren/group_project_3.mp4">>
<p>She had him by the tie. Aaron does the voice, and it's a good impression, because he's heard it over the PA every morning for four years.</p>
<<speech "Pollock" "Why do you keep interrupting my class, Marcello? Do you see the students? They're waiting. What do you want?" "pollock">>
<<speech "Aaron" "And he goes, real small, I just wanted some attention. And she LAUGHS. Not a nice laugh. And she just, she undoes his belt right there. Yanks his slacks down to his knees, boxers too, in front of us. And there's this little pink soft thing. Like a thumb. I swear to God, like a thumb." "aaron">>
<<speech "Terrence" "It was about the size of my thumb. I'm not exaggerating for effect. She said, this is what I married, gentlemen, and then she laughed again, and he stood there with his pants around his knees and his little dick shrinking under the lights. And I think he was happy." "terrence">>
<p>She put him where she wanted him. Back to the wall, hands clasped behind him, chin up, eyes front. He asked, in a whisper, if he could kiss her. She leaned in close enough that he closed his eyes for it, and then she cracked him across the face with an open hand, loud enough that Devin says he felt it in his teeth.</p>
<<speech "Pollock" "Ohh, you want to kiss me? Too bad. That is not going to happen tonight. Watch." "pollock">>
<<video "img/school/syren/group_project_4.mp4">>
<p>Then she turned around, walked back to the desk, and left him standing against the chalkboard with a red handprint on his cheek and his dick out.</p>
<</if>>
<<speech "Aaron" "So she gets up ON the desk. Kneeling on it. And she says, come here, and we go, and she says you're not dreaming, boys, and she kisses Devin first." "aaron">>
<<video "img/school/syren/group_project_5.mp4">>
<<speech "Devin" "Tongue. Right away. Principal Pollock's tongue in my mouth. I couldn't feel my hands." "devin">>
<<speech "Terrence" "You could feel them. They were on her ass. Very carefully on her ass, like it was going to file a report." "terrence">>
<p>She went around all three, slow, one mouth at a time, and their hands crept over her like they'd be graded on it. A palm on a hip. Two fingers finding the edge of a bra through the blouse and stopping there until she pushed her tit into the hand and told the boy attached to it that she was fifty-one and would not break. Aaron says her nipples were hard enough to cut glass, and that this was the point where he stopped thinking of her as anybody's principal and started thinking of her as a pair of big tits with a mean mouth that wanted his dick in it.</p>
<<video "img/school/syren/group_project_6.mp4">>
<<speech "Aaron" "Then she's just, she's got dicks out. Three of 'em. Still on the desk, on all fours, goin' down the line like a fuckin' buffet. She's got Terrence in her throat and she's jerkin' me and Devin and she's talkin' with her mouth full." "aaron">>
<<speech "Terrence" "She reviewed us. Individually. Devin got, oh, that's thick, I'm going to feel that one. I got, my God, that's not going to fit, and then she made it fit. Aaron got, well, someone's been putting his hand up in class." "terrence">>
<<speech "Aaron" "I got the BEST review, is what he's sayin'." "aaron">>
<p>Devin was behind her by then. He got the zipper of that new skirt down and dragged it off her ass with her still sucking, and her ass came out of it pale and wide with a burgundy thong buried in the crack, and he slapped it. Hard, flat, the whole room heard it. She moaned around Terrence's dick and pushed it back at him for another.</p>
<<speech "Devin" "She said harder. So I did it harder. I've been scared of that woman since freshman year and I spanked her fuckin' ass red while she gagged on Terrence." "devin">>
<<video "img/school/syren/group_project_7.mp4">>
<p>Then it stopped being a warm-up. Terrence took her head in both hands and started fucking her face, proper, all the way in, and Devin got up on the desk behind her, pulled the thong to one side and shoved into her cunt in one go, and Principal Pollock, on her hands and knees on a teacher's desk in room 214, got spitroasted by two of her seniors while the third one filmed it and jerked off.</p>
<<speech "Aaron" "The NOISE, man. She was gaggin' so loud. Like wet, like, glug glug glug, and spit everywhere, all down her chin, on the desk, and Dev's got her hips and he's slammin' her, and she's still tryin' to talk between. Yes. Fuck me. Use me. Fuck your principal. I've never heard nothin' like it." "aaron">>
<<speech "Terrence" "She looked up at me while I was in her throat. Eyes running. Mascara gone. Still looked like she was going to give me a demerit. I nearly came right there." "terrence">>
<<video "img/school/syren/group_project_8.mp4">>
<p>They flipped her. On her back across the desk, tits out, head hanging off the edge. Aaron got between her thighs and fucked her, and Terrence stood over her face and she stuck her tongue out and went for his balls, sucked them one at a time, both, slurping at his sack while Aaron pounded her pussy so hard the desk walked across the floor.</p>
<<speech "Aaron" "Wettest pussy I ever had. Not even a joke. It was like, it was drippin' down her ass onto the desk. The PRINCIPAL, man, soakin' the furniture." "aaron">>
<<speech "Terrence" "Then she pulled me into her throat upside down, and she just held there. Nose against my balls. So Aaron pulled out and Devin got in, and then Aaron again, and we just kept swapping on her cunt while she deepthroated me, and she came on every one of us. Counted three. Might have missed one." "terrence">>
<<speech "Devin" "Four. I was countin'." "devin">>
<p>She was saying her age into the underside of the desk between dicks, Aaron tells you, like she was checking it was still true. Fifty-one. Fifty-one and I'm getting fucked by teens. Fifty-one and I'm the school slut. Not to anyone in particular, just out loud.</p>
<div id="anal-container">
<<link "Ask whether anyone tried her ass">>
<<replace "#anal-container">>
<<speech "You" "And her ass?">>
<p>Three faces do the same thing at once.</p>
<<speech "Aaron" "Oh, she took it in the ass. She took it balls deep in the ass. On the desk, on her back with her ankles by her ears, and she was the one who asked. Devin, she said, you've been staring at it all night, put it in." "aaron">>
<<video "img/school/syren/group_project_anal.webm">>
<<speech "Devin" "That butt can take some dicking, tho. She didn't even need us to go slow. Said Marcello hadn't been near it in fifteen years and she wanted to remember what it was for. I bottomed out in the principal's asshole and she screamed at the ceiling that she was a whore. That's on the phone too." "devin">>
<<include "Group Project Report Tail">>
<</replace>>
<</link>><br>
<<link "Ask what was next">>
<<replace "#anal-container">>
<<speech "You" "What was next?">>
<<include "Group Project Report Tail">>
<</replace>>
<</link>>
</div>
<</if>>/* The rest of Group Project Report after its forced choice (ask about her ass,
or what was next), included from both links so the report can't be read
past the question without picking one. */
<<set _cuck = $pollock_group_done >= 2>>
<<if _cuck>>
<p>Then, Terrence says, she remembered.</p>
<<speech "Terrence" "She'd honestly forgotten about him. He'd been against that wall the whole time with his hands behind his back and his little dick leaking on the floor, and she sat up with her hair all over her face and said, Marcello. Come here. Take everything off." "terrence">>
<<speech "Aaron" "And this dude STRIPS. Tie, shirt, shoes, socks, everything, folds it, and she has him climb up on the desk and lie on his belly and spread. Arms out, legs out. Like a starfish. Naked husband, spread eagle on the teacher's desk." "aaron">>
<<video "img/school/syren/group_project_9.mp4">>
<<speech "Devin" "We didn't know where to look. Like, do we look? I looked at the ceiling for a while." "devin">>
<p>They stood around the desk with their dicks in their hands, three hard black cocks over a soft white husband laid out like a specimen, and none of them could find the version of this that was in the videos.</p>
<<video "img/school/syren/group_project_10.mp4">>
<p>She knelt next to his face with her tits out, hanging over him, swinging them a couple of inches from his mouth and pulling back every time he tried to reach a nipple. Told him this is what the boys get. This is what he doesn't. Told him that a real dick had been in every hole he was smelling on her.</p>
<<speech "Aaron" "And she says to us, don't stop, boys, and we're just standin' there jerkin' off over her husband like three idiots. It was so fuckin' weird." "aaron">>
<p>Airtight. Terrence uses the word like he read it in a manual. Devin flat on the desk with her riding his dick, Aaron behind her with his cock up her ass, Terrence at the front end holding her ears and fucking her face, three black cocks in the principal at once, every hole plugged, and Marcello gets the best view of his wife getting gangbanged.</p>
<<video "img/school/syren/group_project_12.mp4">>
<<speech "Aaron" "I could feel Dev's dick through her. Like there's this thin wall and his dick's right there, and she's screamin' around Terrence, and the husband's just RIGHT THERE, man, watching my every move." "aaron">>
<<speech "Devin" "She came so hard she stopped breathing for a second. I felt it on my dick. Then she started laughin'. Laughin' with a cock in her throat. Laughin' at him." "devin">>
<<else>>
<p>Then Terrence said the word, and it turns out he'd been saving it.</p>
<<speech "Terrence" "Double. Devin lay down on the desk and she got on his dick, and I got behind her and put mine up her ass, and she said, oh, fuck, oh, both of you, oh, fill me. Both holes. Stuffed with black dick on district property." "terrence">>
<<speech "Aaron" "I had her by the hair for that one. She was suckin' me between screamin'. Couldn't do both at once. Nobody could." "aaron">>
<<video "img/school/syren/group_project_11.mp4">>
<p>Aaron plays the sound for you without turning the phone over. The audio alone is enough: two boys grunting in a rhythm that takes them a minute to find, a desk complaining, and a woman you have only ever heard at conversation volume howling that she's full, that she's a whore, that she wants them to break her, that it's the best she has ever been fucked in her life, by a mile, by a fucking mile.</p>
<<speech "Devin" "She came so hard she stopped breathing for a second. I felt it on my dick. Then she started laughin'." "devin">>
<</if>>
<p>They finished her on her knees on the classroom floor. Aaron went first because Aaron always goes first, and it landed across her nose and into her eye and she didn't flinch. Devin got her mouth. Terrence got her forehead and her hair and the rest of her mouth, and by the end her face was a mask, cum in her eyelashes, in the corners of her mouth, dripping off her chin onto her tits.<<if not _cuck>> She swallowed what was in her mouth with her eyes on the phone and said thank you, gentlemen, that will be all, in the announcements voice.<</if>></p>
<<video "img/school/syren/group_project_13.mp4">>
<<speech "Aaron" "She looked like a glazed donut, man. Principal Pollock. Glazed." "aaron">>
<<if _cuck>>
<<speech "Terrence" "Except she didn't swallow. That's the last part." "terrence">>
<<speech "Aaron" "Yeah, so she gets close to her husband and..." "aaron">>
<div id="kiss-container">
<<link "That's enough. I get the picture.">>
<<replace "#kiss-container">>
<<speech "You" "That's enough. I get the picture.">>
<<speech "Terrence" "Understood. Yeah, I wish I hadn't seen it either." "terrence">>
<</replace>>
<<replace "#output">><<include "Group Project Handover">><</replace>>
<</link>><br>
<<link "Go on.">>
<<replace "#kiss-container">>
<<video "img/school/syren/group_project_14.mp4">>
<<speech "Aaron" "She kissed him. Full on. Grabbed his face with both hands and opened her mouth on his and just, pushed it all in. All of it. All three of us. Into her husband's mouth. And he's makin' this noise, and she's got her tongue in there movin' it around, and he's, he ATE it. He swallowed it." "aaron">>
<<speech "Devin" "I threw up a little in my mouth. Not gonna lie." "devin">>
<<speech "Terrence" "She said thank you for coming, Marcello, and he said thank you, Shannon, and then she told him to get dressed and bring the car around. He shook our hands on the way out. All three of us. I wanted to wash it right away." "terrence">>
<</replace>>
<<replace "#output">><<include "Group Project Handover">><</replace>>
<</link>>
</div>
<div id="output"></div>
<<else>>
<<include "Group Project Handover">>
<</if>><p>Then Terrence puts something on the desk and the room goes quiet in a different register. A white plastic keycard, unbranded, and zip-tied through the punch hole, a stubby black security key.</p>
<<pic "img/school/syren/access.jpg" "story">>
<<speech "Terrence" "She had it in her bag. Sat on the floor after with her face still covered, dug it out, and made me repeat back what it was, twice, to check I had it. She said - I'm quoting, I wrote it down - give it to the man who cleans." "terrence">>
<<speech "Terrence" "The card is a facilities directorate master. No name, no photo, no expiry, not logged to anybody. Opens every door with a reader on it. The key is two-factor for a login the audit doesn't see, and that's all that's on it. She said the cameras take it too, but only from inside the building." "terrence">>
<p>Not a password. A door, and the key to it, handed over by a woman who didn't get to hand it over herself. Walking back up out of that basement with it in your pocket, you work out that this was the last thing she had left to give away.</p>
<<speech "Terrence" "I'm not going to ask what it's for. I'd just note that whatever it opens, it opens for anybody you give it to." "terrence">>
<p>He's right, and he wants you to know he knows it. Somewhere behind that is Adriana and a room full of scavenged monitors on the other side of the wall. Not today.</p>
<<statchange "energy" -2>>
<<set $pollock_stage = 4>>
/* Her first pink slip can't arrive before this morning, which leaves one
quiet day at stage 4 (usually the day Terrence reads the key). */
<<set $pollock_next_day = $day + 2>>
<<set $database_access = 1>>
<div class="req">Pollock's keycard and security key are in your pocket. You have access to the school's systems, but you need someone's help to use it effectively.</div>
[[Back to work|Hallway]]<p>Mrs. Albright has you cornered by the trophy case, under the brass plaque that thanks the Conner family for the east wing. You know her the way the help knows anybody, from a distance and at her worst. She teaches senior English and runs the yearbook, and she walks these halls like she runs the place. Today it's over a smudge. Not a real smudge - a pretext, and she's in full voice for the students gathering to watch.</p>
<<speech "Albright" "I want to understand what it is you people find so difficult about GLASS - ">>
<p>The phones are out, and you are doing the only thing the help can do, which is study the floor and wait for the weather to pass.</p>
<p>"Meredith." A new voice. Low, pleasant, and carrying like a slap.</p>
<p>The counselor comes through the crowd of students like they're a beaded curtain - blonde, mid-thirties, a pencil skirt fighting a body that belongs on different posters than the anti-bullying ones she staples up. Every boy in this school knows her name. You've heard it in the hallway said like a prayer: Ms. Britney Amber.</p>
<<pic "img/school/britney/intro.jpg" "story">>
<<speech "Britney" "Fun fact - I was just putting together next month's staff workshop on public shaming as a management style. This is great material. Keep going, I'll take notes." "britney">>
<p>Albright's mouth opens, closes, and reformats.</p>
<<speech "Albright" "The trophy case - ">>
<<speech "Britney" "Sparkles." "britney">>
<p>Ms. Amber doesn't so much as glance at the glass. The crowd is laughing now, and not at you, and Albright click-clacks away to file this somewhere for later.</p>
<p>The counselor turns to you, and here's the thing you notice, because noticing is your job: the sympathy on her face is real, but it isn't the whole story. Her eyes do a lap. Not the inventory Pollock did, boots to face, pricing an appliance. A different inventory entirely.</p>
<<speech "Britney" "You're the one they've all been sharpening their claws on. My office is behind the library, and my door's open - staff counts as people, whatever this place tells you. Come by after classes." "britney">>
<p>She walks away down the hall and does not look back, in the manner of a woman who knows precisely what the back of that skirt is doing and considers it a public service.</p>
<<set $amber_stage = 1>>
<<set $amber_next_day = $day>>
<<set $albright_heat += 1>>
[[Back to work|Hallway]]<<if ndef $incel_gangbang_arranged>><<set $incel_gangbang_arranged = false>><</if>>
<<if ndef $incel_deprogram_arranged>><<set $incel_deprogram_arranged = false>><</if>>
<<pic "img/school/councellor.webp" "location">>
<<if $day < $amber_next_day>>
<p>Her door is closed - a student session, by the murmur. The sign says BACK TO BEING AMAZING IN 30 MIN. Come back tomorrow.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<switch $amber_stage>>
<<case 1>>
<p>Her office is the one room in the school that doesn't hate you on sight: soft chairs, plants that are alive, posters about believing in yourself. She closes the door behind you, and the click of the latch changes the room's chemistry entirely.</p>
<<speech "Britney" "Sit. Not the chair - the couch, the chair's for students. So. This place treats you rough. Tell me honestly: how angry are you, on a scale of one to arson?" "britney">>
<p>You give her the safe answer, the janitor's answer. She listens with her chin on her hand, and then she gets up, sits down next to you on the couch - close, thigh against yours, nothing accidental in a room where she arranges the furniture - and says:</p>
<<speech "Britney" "Bullshit. I watch you in that hallway holding it in and I want to open you up like a shaken bottle. That's a professional observation. Mostly." "britney">>
<p>Her hand lands on your knee for emphasis and forgets to leave. The talk keeps going - she's good, she gets more out of you in twenty minutes than Jamal gets in a month - but the hand migrates, slow and unhurried, up your thigh, and when you go hard under her palm she looks down at it, then up at you, with the delight of a scientist whose experiment has worked.</p>
<<pic "img/school/britney/first_meeting_1.jpg" "story">>
<<speech "Britney" "There he is." "britney">>
<p>She gives you one long, deliberate squeeze through the coveralls, thumb tracing the shape of you, and then - the cruelest thing anyone's done to you in this building - she pats it twice and stands up.</p>
<<speech "Britney" "Just so we’re clear, yes, I am well aware that this may be considered workplace harassment." "britney">>
<<speech "Britney" "Only here's the joke. Every harassment complaint in this building lands on my desk. I'm the intake. I'm the investigation. I'm the caring phone call after, to make sure you feel safe. You could report me to me, honey, and I'd walk us both through it." "britney">>
<p>You weigh in your position for a moment. Whether you pursue this affair with Ms. Britney Amber or not, your mission depends on building trust and leverage with staff and students. If a counselor wants to use you as a tough black man to play out her dirty fantasies - you gotta play along. You can’t afford to say no, just as many others who were hit on by their superiors.</p>
<<speech "Britney" "That's the session. Doctor's orders: come back tomorrow. We'll work on your... release schedule." "britney">>
<p>She holds the door for you. On your way out she murmurs, pitched for you alone: "And Mr. $player_surame - wear the coveralls. I've developed opinions about them."</p>
<<pic "img/school/britney/first_meeting_2.jpg" "story">>
<<set $amber_stage = 2>>
<<set $amber_next_day = $day + 1>>
[[Back to work|Hallway]]
<<case 2>>
<p>The sign is already turned to SESSION IN PROGRESS when you knock. She locks the door behind you, pulls the blind on the little window, and stands there a moment with her back to you, palms flat on the door, like a woman counting to ten and giving up at four.</p>
<<speech "Britney" "I've been thinking about this since yesterday. Through two parent conferences and a suicide-prevention webinar. Sit down on my couch and don't say anything sensible." "britney">>
<p>You sit. She doesn't kneel - not yet. She climbs into your lap instead, knees either side of your thighs, takes your jaw in one hand and kisses you like she's been rationed. It goes on. Her hands map you through the coveralls - chest, shoulders, the arms this job keeps hard - and she makes small approving sounds into your mouth like a woman reading a menu she already knows by heart.</p>
<<video "img/school/britney/second_meeting_1.mp4">>
<<speech "Britney" "Mm. Note for the file: patient presents as extremely kissable. Prognosis: I'm doomed." "britney">>
<p>Then she slides down off your lap onto the carpet, drags the zipper south, and works the coveralls open with the efficiency of long practice. When your cock springs out - heavy, hard since the door locked - it catches her across the cheek, and she goes still. Actually still, which for Britney Amber is an event.</p>
<<video "img/school/britney/second_meeting_2.mp4">>
<<speech "Britney" "God. There it is. You know what I do all day? I teach abstinence modules. I hand out pamphlets about respecting yourself. And the whole time THIS was mopping my hallway." "britney">>
<p>She wraps both hands around it, stacks them, and there's still cock left over. She looks up at you with something between grievance and religion.</p>
<<speech "Britney" "I'm a fraud, Mr. $player_surame. I'm the biggest slut in this zip code, and I have been DYING in this office." "britney">>
<div class="text">Her mouth is hovering an inch away, waiting on you. She'd hate to be rushed. She'd love to be rushed.</div>
<<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
<<linkreplace "Lean back and let her worship">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>You lean back into the counseling couch and let her set the pace, and the pace she picks is devotional. She noses under your shaft and takes her time with your balls - long slow drags of her tongue, one drawn into her mouth and rolled there while her fist works you overhead, her humming pitched low like she's found the one quiet hobby in her life. She talks between passes, because of course she does - about the weight of them, about how long a shift you must be saving up, about how this couch has heard confessions but nothing this honest.</p>
<<video "img/school/britney/second_meeting_3.mp4">>
<<speech "Britney" "Every boy in this school would sell his mother for my mouth. And I'm down here on my knees licking the janitor's balls like it's my birthday." "britney">>
<p>She keeps at it until your breathing gives you away, then climbs your cock with her tongue and finishes you with two hands and her face upturned, eyes open, greedy for it. You paint her - cheek, lips, one stripe up into her lashes - and she takes it like applause, jerking the last of it onto her tongue.</p>
<<video "img/school/britney/second_meeting_5.mp4">>
<p>She sits back on her heels, face glazed, and dabs at her lashes with a tissue from the box she keeps for crying students - not to clean it, just so she can blink.</p>
<<speech "Britney" "Best session I've had in years. Same time tomorrow - and that's me respecting MY needs, so you're not allowed to skip. It's in the pamphlet." "britney">>
<<statchange "energy" -2>>
<<set $amber_stage = 3>>
<<set $amber_next_day = $day + 1>>
[[Back to work|Hallway]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Lean back and let her worship"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Test her - biggest slut in the zip code is a big claim">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>"Prove it, then." You gather her blonde hair into one fist, the professional bun coming apart in your hand, and feed her your cock until she runs out of room - then past it. She gags, loud and wet, mascara jumping its lanes on the first stroke, and when you ease back to let her quit she does the opposite: grabs your wrist and pulls it tighter into her hair.</p>
<<video "img/school/britney/second_meeting_4.mp4">>
<p>So you use her. Deep, unhurried strokes into her throat, her nose meeting your body, spit sheeting off her chin and stringing down onto the carpet she'll have to explain to no one because you're the one who cleans it. Every time you pull out she comes up gasping, and what she gasps is filth - more, harder, is that all the district's paying for - until her counselor voice is gone entirely and what's left is hoarse and happy.</p>
<<speech "Britney" "THAT'S - <i>hkk</i> - that's the treatment plan. Wreck it. I'll do the webinar in a whisper and think of you the WHOLE time." "britney">>
<p>When you finish you pull out and she tips her ruined face up, mouth open, tongue out, and you unload across it - lips, cheeks, the wreckage of her mascara - a mess even she has to close one eye for.</p>
<<video "img/school/britney/second_meeting_5.mp4">>
<p>She stays kneeling a moment, dripping, catching her breath. Then she reaches for the tissue box she keeps for crying students and starts repairs, grinning the whole time like she's won something.</p>
<<speech "Britney" "For the record, my throat has a MASTERS degree. Same time tomorrow - and that's me respecting MY needs, so you're not allowed to skip. It's in the pamphlet." "britney">>
<<statchange "energy" -2>>
<<set $amber_stage = 3>>
<<set $amber_next_day = $day + 1>>
[[Back to work|Hallway]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Test her - biggest slut in the zip code is a big claim"</em></div><</replace>>
<</linkreplace>><br>
<</if>>
</div>
<div id="output"></div>
<<case 3>>
<p>This time she doesn't bother with the script. The lock, the blind, and she's already sinking toward her knees with a hand on your zipper when you catch her wrists and pull her back up. She blinks at you, genuinely thrown - nobody interrupts Britney Amber mid-plan.</p>
<<speech "Britney" "Excuse me. I had an agenda. There were bullet points." "britney">>
<p>"New agenda." You take her backward to the familiar couch, pull her down, and drag the pencil skirt up her thighs. Underneath: bright green panties, the exact green of the RESPECT YOURSELF pamphlets on her wall, which she absolutely knows. You peel them down her legs, hook them off one ankle, and put your mouth on her before she's finished laughing about it.</p>
<<video "img/school/britney/vaginal-1.mp4">>
<p>She talks, of course. For about a minute. Then your tongue finds the rhythm that shortens her sentences, and the counselor voice comes apart word by word - oh, oh you, oh FUCK - and her thighs clamp around your ears and she comes with her heel drumming the small of your back, loud enough for the library to reclassify some books.</p>
<<speech "Britney" "Okay. Okay okay okay. Your agenda. We're using your agenda. Couch. Lie DOWN." "britney">>
<p>She pushes you flat and mounts you before you've settled, sinking down with a long shivering exhale, and rides you slow-then-not - hands braced on your chest, hair down out of the bun and everywhere. You drive up to meet her and crack a palm across her ass, and the sound she makes isn't in any pamphlet. So you do it again. She grinds down hard, chasing something, then surprises you: climbs off your cock, crawls up your body, and plants herself on your face without a word of apology.</p>
<<video "img/school/britney/vaginal-2.mp4">>
<p>She rides your tongue holding the armrest like a steering wheel, and the second orgasm hits her faster than the first - she folds forward over the couch arm, shaking, swearing at the ceiling in her wellness-workshop voice.</p>
<p>By the time you lay her out on her back she's somewhere past language. Legs spread, chest blotchy, mascara gone soft, two orgasms deep and drunk on them - the biggest mouth in the district reduced to please and yes and a string of vowels. You slap her and she asks for more.</p>
<<speech "Britney" "Fuck me. Please. I've been good, I've been SO - please, fuck me, I'll write it up as a breakthrough - " "britney">>
<<video "img/school/britney/vaginal-3.mp4">>
<p>So you give it to her - long deep strokes while she claws your forearms, wraps her ankles behind you, begs prettier every minute. When you feel it building you pull out, and her hand dives down to her clit without instruction, rubbing fast, eyes locked on your cock, and you finish together - her arching up off the cushions while you lay thick ropes of cum across her tits, one reaching her collarbone. She milks the last of it into her mouth and licks you clean like she's grading it.</p>
<<video "img/school/britney/vaginal-4.mp4">>
<p>Afterward she sprawls across the couch, cum drying on her chest, skirt still bunched at her waist, glowing, and watches you dress with an expression you haven't seen aimed at you inside these walls: appraisal, of the good kind.</p>
<<speech "Britney" "For the record, that was malpractice. I'm the one who's supposed to facilitate breakthroughs. I saw GOD, Mr. $player_surame. Twice. Three times." "britney">>
<p>You take some time to recollect and cuddle.</p>
<<speech "Britney" "I've been thinking. Professionally. Detention supervision is unstaffed since Albright declared it beneath her - it's fifth period, it's paid, and it's the worst boys in the school in one room. Pollock will never give it to the janitor. But she'll give it to ME to solve, because I'm the one who writes the district wellness reports she gets ranked on." "britney">>
<p>She stretches, deliberate, unhurried.</p>
<<speech "Britney" "Give me a couple of days. I'm going to get my favorite maintenance issue a promotion." "britney">>
<<statchange "energy" -3>>
<<set $amber_stage = 4>>
<<set $amber_next_day = $day + 2>>
[[Back to work|Hallway]]
<<case 4>>
<p>There's a form on her desk when you come in, district letterhead, already signed at the bottom in Pollock's tight, furious hand: TEMPORARY REASSIGNMENT OF DUTIES - DETENTION SUPERVISION, FIFTH PERIOD. Where your name goes, someone has typed <<set _surname to $player_surame.toUpperCase()>><<set _initial to $player_name.charAt(0).toUpperCase()>>_surname, _initial. (FACILITIES) like each letter cost Pollock a tooth.</p>
<<speech "Britney" "You should have seen the meeting. I quoted her own mission statement at her - 'every member of our community a stakeholder in discipline' - and I may have implied the district equity office had asked about staffing diversity in student-facing roles. She signed it just to make me stop talking." "britney">>
<p>She hops up to sit on the desk beside the form, ankles crossed, immensely pleased with herself.</p>
<<speech "Britney" "Fifth period, room 019, in the basement by the boiler - they give detention the rooms nobody wants, you'll feel right at home. Fair warning: it's the Simmons boy and his little woe-is-me crew, the ones who live on those incel forums. Nobody's reached them all year." "britney">>
<p>A grin.</p>
<<speech "Britney" "But you're good at reaching people. Ask my couch." "britney">>
<<set $detention_job = true>>
<<set $school_job = 2>>
<<set $amber_stage = 5>>
<<set $amber_next_day = $day + 1>>
<div class="req">New position unlocked: detention supervisor, afternoon.</div>
[[Back to work|Hallway]]
<<case 5>>
<p>The blind is down before you knock, which means she's been watching the hallway for you. She locks the door, backs you toward the couch with one finger on your chest, and doesn't sit. Britney Amber not sitting is Britney Amber up to something.</p>
<<speech "Britney" "So. Last session was - and I'm choosing my words with my whole degree here - the best fuck of my life. Which leaves me with a professional dilemma: how does a woman say thank you for that?" "britney">>
<p>She turns around, hooks her thumbs into the pencil skirt, and peels it up over her hips. Nothing underneath. She sits on the couch, raises her legs and spreads herself so you can see exactly what she means.</p>
<<pic "img/school/britney/anal_pose_1.jpg" "story">>
<<speech "Britney" "Like this. I've been getting my ass ready all day - showered, stretched, half a bottle of lube in my desk next to the crisis pamphlets. My butt has been asking about your black monster since the first time it hit me in the face, and today you're invited." "britney">>
<p>Amber won't let you just take it. She pushes you down flat on the couch and gets herself on top - reverse cowgirl meaning she controls the pace and the depth. She notches your throbbing cockhead against her shithole and starts easing down...</p>
<<video "img/school/britney/anal_1.mp4">>
<p>It's slow going. She works you in an inch and stops, breathing through her teeth, thighs shaking with the effort of holding her own weight off you - takes another inch, swears at the ceiling, comes halfway back up. You realize she underestimated the size of your cock and the tightness of her, no doubt, experienced anus; one might say it's a stretch.</p>
<<speech "Britney" "Okay. Okay. It's - God - it's a LOT. Sorry, I..." "britney">>
<p>Nevertheless, Britney grinds through it by stubbornness alone, riding shallow, forehead damp, and somewhere in there the swearing changes key - less ow, more oh.</p>
<p>That's when you take over. You slide out of her, lay her out on her back on the couch, and fold her open. She grabs behind her own knees and spreads for you before you ask, and this time when you push into her ass, she finally enjoys the buttfucking.</p>
<<video "img/school/britney/anal_2.mp4">>
<p>Missionary, deep, her heels bouncing on your shoulders. She's got both hands full of her own tits, squeezing them like she's mad at them, babbling again but the sentences don't have verbs anymore - just yes and there and a filthy sermon about how full she is.</p>
<<speech "Britney" "You're tearing me a new one! And I fucking love it!" "britney">>
<p>After a while, you pull out and flip her over, and she scrambles into position like it was her idea - kneeled, chest down, back arched to a seductive angle. She reaches back and pulls one cheek open for you.</p>
<<video "img/school/britney/anal_3.mp4">>
<p>Doggy is where she takes back control. She sets her own rhythm, slamming herself back onto you, her ass rippling every time it claps against your hips. You barely have to move. Amber fucks herself on you and comes with her face down in the cushion, screaming into upholstery that has heard everything now.</p>
<<speech "Britney" "Before you're done... I want it in my mouth. Straight from my ass. Don't make it weird, just - I want to clean your dirty cock like a good girl. Full service. Say yes." "britney">>
<<set _atmChoiceMade = false>>
<div id="choice-container">
<<if not _atmChoiceMade>>
<<linkreplace "Give her ass-to-mouth like she's begging for">>
<<set _atmChoiceMade = true>>
<<replace "#output">>
<p>You pull out of her ass and she's off the couch and on her knees so fast she skins one on the carpet - doesn't notice, doesn't care. She takes your cock in both hands, straight from her gaping ass, and drags her tongue up the whole length of the shaft, root to tip, slow, eyes closed like she's tasting a vintage. Then again. Then the other side.</p>
<<video "img/school/britney/anal_atm.mp4">>
<<speech "Britney" "Mmm. It's actually nice, sweet even. Not that I was doubting my cleansing skills." "britney">>
<p>She worships you clean and then takes you deep, no hands, humming, and that finishes it - you unload down her throat while she swallows around you, milking every pulse with her fist, and she doesn't come off until you're soft enough to make her pout about it.</p>
<p>She sits back on her heels, licks a stray drop off her knuckle, and grins up at you like a woman who just got away with something in her own office.</p>
<<speech "Britney" "That may be the dirtiest thing I have ever done... And I'm enjoying it more than I'm ready to admit." "britney">>
<<statchange "energy" -3>>
<<set $amber_stage = 6>>
<<set $amber_atm += 1>>
<<set $amber_next_day = $day + 1>>
<<if $gunn_trust >= 4>><div class="req">A woman like this shouldn't run on one man's schedule. Something to raise with Tommy over a Friday beer, maybe - gym wing.</div><</if>>
[[Back to work|Hallway]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Give her ass-to-mouth like she's begging for"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "That's where you draw the line">>
<<set _atmChoiceMade = true>>
<<replace "#output">>
<<speech "You" "Too much!">>
<p> You keep fucking her while you say it, which undercuts the authority some, but the line is the line. She barks a laugh into the cushion, delighted rather than wounded, and shakes her ass at you like a rebuttal.</p>
<<speech "Britney" "A PRUDE. Busted! A janitor with a monster cock, balls deep in a school counselor's ass, and THAT'S where the gentleman lives. I'm putting it in your chart." "britney">>
<p>When you're at the edge you pull out, and she hands you - of course - a wet wipe from the desk drawer, next to the crisis pamphlets, because she planned for both answers. You clean yourself off while she settles onto her knees in front of the couch, face tipped up, mouth open, hands folded in her lap like the world's worst choir girl.</p>
<p> You paint her face in thick ropes: across her lips, up her cheek, one landing heavy over her eyebrow, and she takes each rope with a happy little flinch, like she's being knighted.</p>
<<video "img/school/britney/anal_facial.webm">>
<<speech "Britney" "There he is. All over my face in my own office, and he wouldn't let me lick it. You're a complicated man, Mr. $player_surame." "britney">>
<p>She dabs at her lashes with the crying-student tissues, humming, entirely pleased with her afternoon.</p>
<<statchange "energy" -3>>
<<set $amber_stage = 6>>
<<set $amber_next_day = $day + 1>>
<<if $gunn_trust >= 4>><div class="req">A woman like this shouldn't run on one man's schedule. Something to raise with Tommy over a Friday beer, maybe - gym wing.</div><</if>>
[[Back to work|Hallway]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"That's where you draw the line"</em></div><</replace>>
<</linkreplace>><br>
<</if>>
</div>
<div id="output"></div>
<<case 6>>
<p>The sessions continue - her word for it, delivered deadpan, "your treatment plan is long-term" - and the couch has developed a permanent lean. Lately she talks after, head on your chest, about her colleagues: who's cheating, who's medicated, what Albright's marriage sounds like through a shared office wall. She hoards this building's secrets the way Pollock hoards wine, and she's starting to share the cellar. Today's vintage: Pollock's assistant swears the principal's birthday cake has said 39 for five straight years, and that last year she made the bakery man scrape off the frosting and redo it when he got cute about it.</p>
/* Her sessions with Madi Collins (docs/madi-build-plan.md, Phase 2). */
<<madibritney>>
<<if $incel_path == 1 && $incel_stage == 8 && not $incel_deprogram_arranged>>
<p>The boys' graduation workshop:</p>
[[Ask Amber to run the date-line workshop|Amber Club Deprogramming Offer]]<br>
<</if>>
<<if $incel_path == 2 && $incel_stage == 10 && not $incel_gangbang_arranged>>
<p>The boys' final exercise arrangements:</p>
[[Ask Amber's help with your gangbang club|Amber Club Gangbang Offer]]<br>
<</if>>
<<if $amber_shared == 1>>
<p>You bring up Tommy's proposal the way you'd defuse something, and get about four words in before her whole face lights up like the district approved her budget.</p>
<<speech "Britney" "Wait. WAIT. Tommy Gunn told you to ask me? Thomas 'Reno was a long time ago, Britney' Gunn? Oh, this school is FINALLY paying me back." "britney">>
<p>She's up off the couch, pacing, delighted, already planning it out loud - and on one point she's immovable: her office, after hours, home turf. "The gym ECHOES, and Tommy has never once in his life located a woman's clitoris under fluorescent lighting." Somewhere in the middle of the logistics she stops, comes back, and takes your face in both hands, suddenly almost serious.</p>
<<speech "Britney" "For the record, because my degree makes me say it: nobody is sharing me. I've wanted the two of you in a room since the day you dug through that dumpster for him. This is me, treating myself. Doctor's orders." "britney">>
<p>Then the grin comes back, wide and criminal.</p>
<<speech "Britney" "Tell Tommy: my office, after lockup. And tell him to stretch first. I'm not explaining a hamstring injury to the district." "britney">>
<<set $amber_shared = 2>>
<<set $amber_next_day = $day + 1>>
<div class="req">After hours: catch Tommy locking up the gym, then her office.</div>
<</if>>
[[Back to work|Hallway]]
<<default>>
<p>Her door is open, and her couch is willing.</p>
[[Back to the hallway|Hallway]]
<</switch>>
<</if>><<if ndef $incel_gangbang_arranged>><<set $incel_gangbang_arranged = false>><</if>>
<<if $incel_path != 2 || $incel_stage != 10 || $amber_stage < 6>>
<p>There is nothing to arrange yet. The boys need to finish their preparation, and Amber needs to be fully on side.</p>
[[Back to the hallway|Hallway]]
<<else>>
<p>You tell Amber what you've been doing with the alienated students this whole time. Her eyes widen.</p>
<<speech "Amber" "Three adult seniors, training to become a perfect gang-bang team? And you want me to be their first?" "britney">>
<p>For a moment you feel like you've gone too far. You know you've gone too far; but Amber should be right there, beyond any morality.</p>
<<speech "Amber" "WHAT A NICE SURPRISE! I can't wait to test your little project! They better be ready for what's coming for them. Tomorrow, classroom 102, don't be late." "britney">>
<p>When you leave her, Amber looks like she is already dreaming about big black cocks filling her holes.</p>
<<set $incel_gangbang_arranged = true>>
<<set $incel_next_day = $day + 1>>
<div class="req">Amber has approved the graduation exercise. Meet the boys in clubroom when they are ready.</div>
[[Leave the office|Hallway]]
<</if>><<if ndef $incel_deprogram_arranged>><<set $incel_deprogram_arranged = false>><</if>>
<<if $incel_path != 1 || $incel_stage != 8 || $amber_stage < 6>>
<p>There is no workshop to arrange yet. The boys need to finish their preparation, and Amber needs to be fully on side.</p>
[[Back to the hallway|Hallway]]
<<else>>
<p>You explain that the boys have reached the end of their incel deprogramming - and that you want Amber to run one final, very ordinary date lines workshop.</p>
<<speech "Amber" "You brought me a graduation and it is a dating-skills seminar? I was prepared for a much dirtier meeting." "britney">>
<p>She lets you sit in the silence for a second, then smiles and reaches for her calendar.</p>
<<speech "Amber" "Fine. Tomorrow, room 021. They get one real woman, real answers, and no scripts to hide behind. That should scare them properly." "britney">>
<<set $incel_deprogram_arranged = true>>
<<set $incel_next_day = $day + 1>>
<div class="req">Amber has scheduled the graduation workshop. Return to room 021 tomorrow.</div>
[[Leave the office|Hallway]]
<</if>><<pic "img/school/gym.webp" "location">>
<<set $gym_wing_day = $day>>
<<if $gunn_trust == 0>>
<p>The gym smells like every gym since the invention of boys: rubber, sweat, and floor wax you'll be reapplying. The coach is running freshmen with a whistle and a voice like a dump truck in low gear. Tracksuit, buzzcut gone grey at the sides, forearms like dock rope.</p>
<<pic "img/school/pe_full.jpg" "story">>
<p>His truck in the lot has a confederate flag sticker that made you file him under "problem" on day one.</p>
<<pic "img/school/confederate.jpg" "story">>
<p>He spots you and points at the bleachers without breaking his count.</p>
<<speech "Coach Gunn" "Boy - them bleachers fold in 'fore you mop under, not after. Last fella did it backwards a whole year. Drove me half insane." "coach_gunn">>
<p><i>Boy.</i></p>
<p>You fold the bleachers in first. He watches, nods once - the same single nod from your first day. On your way out he says, not looking up from his clipboard:</p>
<<speech "Coach Gunn" "Floor looks good, boy. Tell them office vultures I said you do it right." "coach_gunn">>
<p>Thanks, I guess.</p>
<<statchange "energy" -2>>
<<set $school_rep += 1>>
<<set $gunn_trust = 1>>
[[Back to the hallway|Hallway]]
<<elseif $gunn_trust == 1 && $gunn_case == 0>>
<p>You know something's wrong before you're through the gym doors: no whistle. Gunn is in his little glass office with Pollock, the secretary, and a blond junior you recognize - Bradley Whitmore, lacrosse, the kind of face that's never heard the word no from an adult it couldn't unemploy. Through the glass you watch the pantomime: Bradley's trembling lip, Pollock's folded arms, and on the desk between them, bagged like evidence on TV, a vape pen.</p>
<p>The story revealed later from hallway whispers: Bradley says Coach Gunn grabbed him by the collar and shook him, and that the vape they found in Gunn's office desk is the one Gunn supposedly confiscated and kept - proof of some deranged vendetta. Gunn benched Bradley last Friday for skipping practice. Now Gunn is suspended pending review, and the review is Pollock, and Pollock has been looking for a reason to replace him with somebody's nephew for two years.</p>
<p>Here's what you know that nobody asked the janitor: you emptied the gym wing bins Friday, and Bradley's locker-row bin held a vape pen's blister packaging - new, bought that week, receipt wadded in the same trash. It's all sitting in the dumpster's Friday bag, which gets hauled Thursday. You know exactly which bag. This will definitely clear the coach from accusations, but should you do it all for a confederate fan calling you "boy"?</p>
<<set _gunnChoiceMade = false>>
<div id="choice-container">
<<if $energy >= 2>>
<<linkreplace "Dig out the evidence (2 energy)">>
<<replace "#output">>
<p>You go through Friday's bag behind the gym at six AM, elbow-deep in banana peels and athletic tape, and come up with the blister pack and the receipt - Bradley's name right on the card slip, dated three days before the vape "appeared" in Gunn's desk. You photograph everything in place, the way you documented cache sites overseas, then leave the bag, the pack, and an anonymous note about Friday's trash pickup in the district reviewer's mailbox. Not Pollock's. The district's. Let her find out in a meeting, in front of witnesses.</p>
<p>It takes two days to detonate. Bradley's story develops what the review politely calls "inconsistencies," the suspension evaporates, and the vendetta case dies in a folder. Pollock's face all week is a study in swallowed fury - she knows somebody did this to her, and she cannot figure out who.</p>
<p>Friday afternoon the gym door opens while you're mopping the free-throw line, and Gunn walks over and stands there a moment, working on something.</p>
<<speech "Coach Gunn" "Trash gets picked up Thursdays. Whole school knows that. Exactly one man in this building knows what's IN it." "coach_gunn">>
<p>He puts out a hand roughly the size of a catcher's mitt.</p>
<<speech "Coach Gunn" "Thomas Gunn. Folks call me Tommy. Get it? Tommygun? Anyway, I figure you got a first name too, and I figure I been sayin' 'boy' at a man who just saved my pension." "coach_gunn">>
<<speech "You" "$player_name.">>
<p>You shake his hand still thinking how your fake name is becoming your real one. He nods at the bleachers, and for the first time somebody in this school says it:</p>
<<speech "Coach Gunn" "Sit down a minute. Nobody works standin' up on a Friday." "coach_gunn">>
<<statchange "energy" -2>>
<<set $gunn_case = 1>>
<<set $gunn_trust = 3>>
<<set $school_rep += 2>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Dig out the evidence (2 energy)"</em></div><</replace>>
<</linkreplace>><br>
<</if>>
<<linkreplace "Stay invisible">>
<<replace "#output">>
<p>You keep your head down. It's the smart play - the cover comes first, the mission comes first, and no part of the mission is named Tommy Gunn. The review takes two weeks and ends the way reviews end when Pollock runs them: "resolved with a formal reprimand," which stays in his file forever, which is the point. Maybe this confederate-loving scum deserved that one way or another.</p>
<p>Thursday you watch the truck haul away Friday's bag, packaging, receipt, and all.</p>
<<set $gunn_case = -1>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Stay invisible"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>
[[Back to the hallway|Hallway]]
<<elseif $gunn_case == 1 && $gunn_trust == 3>>
<p>Gunn's office after hours: two folding chairs, a mini-fridge with a padlock, and inside the mini-fridge, beer. He hands you one like it's contraband, which in this building it is.</p>
<<speech "Coach Gunn" "Twenty-two years here. Watched this place go from a school with rich kids in it to a money-laundry with a gym. You want to know about Her Majesty up front?" "coach_gunn">>
<p>He points the bottle at the ceiling, in the direction of the principal's office.</p>
<<speech "Coach Gunn" "Don't let the diction fool you. I seen her end four careers. Always the same play: she don't fire you, she REVIEWS you. Paper cuts till you bleed out. Whatever you're doin' in this school - and I ain't askin', 'cause a man who checks trash bags for strangers has his own business - don't leave her no paper." "coach_gunn">>
<p>You talk until the parking lot empties. He tells you which cameras haven't worked since 2019, which board member's kid can't be touched, what happened to the last janitor - "asked for a raise, got reviewed" - and you file all of it.<<if $amber_stage < 5>> Somewhere in the personnel rundown he gets to the counselor and chuckles into his bottle. "Britney's nice. Got tits, ass and legs - and keep spreadin' 'em', doing public service, if you ask me."<</if>> Somewhere in the second beer it stops being filing and starts being Friday night with, God help you, a friend.</p>
<<speech "Coach Gunn" "Folks see the truck and the flag and figure they got me read." "coach_gunn">>
<p>He shrugs, unbothered.</p>
<<speech "Coach Gunn" "My daddy's flag, my daddy's truck, and I ain't givin' the truck up. Lets the smart ones show me who does their thinkin' with their eyes. You didn't." "coach_gunn">>
<p>You did though.</p>
<div id="choice-container">
<<linkreplace "Press him on it">>
<<replace "#output">>
<p>You set your bottle down.</p>
<<speech "You" "That sticker does more talkin' than you think, Tommy. Every kid in that lot reads it before you ever open your mouth.">>
<<speech "Coach Gunn" "It's heritage, son. My people came out of Georgia." "coach_gunn">>
<<speech "You" "My people came out of Georgia too. That flag flew over the men holdin' the other end.">>
<p>He shifts in the folding chair. This is a road he's driven before, and he steers for the usual exit.</p>
<<speech "Coach Gunn" "Come on, war wasn't about that. States' rights. Any book down south'll tell you-" "coach_gunn">>
<<speech "You" "States' rights to do WHAT, Tommy?">>
<p>The gym hums. He opens his mouth, closes it, studies his bottle like the label might have the answer. It doesn't, and he's too honest a man to build one on the spot.</p>
<<speech "Coach Gunn" "...Huh." "coach_gunn">>
<p>That's all you get. The rest of the beer goes down quieter, but at the door he shakes your hand same as ever - maybe holds it a half-second longer.</p>
<<set $gunn_sticker = 1>>
<<set $gunn_trust = 4>>
<<if $pollock_leverage < 10>>
<<set $pollock_leverage += 1>>
<div class="req">Tommy's years of watching Pollock operate is leverage all by itself. Leverage: $pollock_leverage/10</div>
<</if>>
[[Head out|Hallway]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Press him on it"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Leave it be">>
<<replace "#output">>
<p>You sigh into the bottle and let it go. You've argued with that flag a lot, it's a quite popular insignia in the barracks, but it rarely achieves something but grudges. And you've known the kind of people like Tommy Gunn: he's a kind man after all, just hauling some baggage. Not yours to unpack tonight.</p>
<<speech "You" "Long as the truck starts, Tommy.">>
<p>He clinks his bottle against yours.</p>
<<set $gunn_sticker = -1>>
<<set $gunn_trust = 4>>
<<if $pollock_leverage < 10>>
<<set $pollock_leverage += 1>>
<div class="req">Tommy's years of watching Pollock operate is leverage all by itself. Leverage: $pollock_leverage/10</div>
<</if>>
[[Head out|Hallway]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Leave it be"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>
<<elseif $gunn_case == -1>>
<p>The gym runs colder these days. Gunn isn't rude - he says "boy" the same as ever, points at the same bleachers - but the nod is gone, and men like him do their real talking in nods. The reprimand sits in his file, and you remember that it was your decision to let it happen.</p>
[[Back to the hallway|Hallway]]
<<else>>
/* Madi, Phase 3: Tommy keeps the equipment room's key log (Madi Key Log). */
<<if $gunn_case == 1 && setup.madi.keylogDue()>>
[[Ask Tommy who signs out the equipment room after crew|Madi Key Log]]<br>
<</if>>
<<if $amber_stage >= 6 && not $amber_shared>>
[[Propose a threesome with Britney|Gunn Amber Offer]]<br>
<</if>>
<<if $amber_shared >= 2 && $day >= $amber_next_day>>
[[Stay late - Tommy's locking up, and Britney's office light is on|Gunn Amber Threesome]]<br>
<</if>>
<<if $gunn_sticker == 1>>
<p>Crossing the lot you clock the truck before you clock the man: a clean rectangle on the bumper where the sticker used to be, the paint around it sun-faded like a wall where a picture hung too long. You smile, knowing that you'll never bring it up again.</p>
<<set $gunn_sticker = 2>>
<<set $school_rep += 1>>
<<else>>
<<switch random(1, 4)>>
<<case 1>>
<p>You catch the end of practice and rack weights with Tommy after.</p>
<<statchange "physical" 1>>
<<case 2>>
<p>Tommy's rebuilding the batting cage nets and you hold, haul, and staple while he supplies commentary on every student athlete's future. Two hours pass like ten minutes.</p>
<<case 3>>
<p>Quiet afternoon in the gym. Tommy runs you through the heavy bag "for maintenance purposes," nods at your form once, and asks no questions about where a janitor learned to hit like ordnance.</p>
<<case 4>>
<<if $pollock_stage >= 5>>
/* DRAFT - after her first pink slip the reviews stop, and Tommy notices. */
<p>Tommy is quiet through the first beer. Halfway into the second he says it: years in this building, and this is the first one where nobody got papered.</p>
<<speech "Coach Gunn" "Not one review, son. I oughta be glad. Can't say I like it. Something changed about her Majesty." "coach_gunn">>
<p>He racks a plate and grins into the next beer.</p>
<<speech "Coach Gunn" "Took my conditionin' program after all. She's out on my track at six every mornin' now, in them little yoga pants, and I'll tell you what: I never once caught myself lookin' at that woman's ass till this month. Got 'em peaches." "coach_gunn">>
<<else>>
<p>Tommy's in a strange mood today, half amused, half discreet, and it takes a beer to shake it loose: Her Majesty Pollock cornered him in the copy room this week. Wanted a "personal conditioning program." Asked him - quietly, door open, like it was procurement - what actually keeps a body young.</p>
<<speech "Coach Gunn" "Told her the truth. Nothin' does. You just keep movin' and you don't look back at the pack. She got a look on her face like I'd read out a diagnosis. Woman runs this whole buildin' and she's scared of a CALENDAR." "coach_gunn">>
<p>He shakes his head and racks another plate. You file it, the way you file everything: the ice queen is counting years the way she counts votes - and finding both short.</p>
<</if>>
<</switch>>
<</if>>
[[Back to the hallway|Hallway]]
<</if>><p>The noise coming from the civics room isn't a fight. You know fights. This is worse - it's laughter with a single target. Through the open door: a paper airplane sails past the smartboard, which is showing a meme instead of the Constitution because somebody changed the login again, and a soft, balding man in a sweater vest is saying "Okay, guys. Okay. Guys," in the voice of a man who has said it four thousand times and been obeyed zero.</p>
<<pic "img/school/syren/marcelo.webp" "story">>
<p>A senior in a letterman jacket strolls out right past you, calls back over his shoulder: "Later, Mr. Shannon!" - and the room detonates. The teacher laughs too. That's the part that makes your stomach drop: he laughs along, because the only thing worse than the joke is being caught not taking it.</p>
<p>The bell empties the room. He crouches in the doorway gathering handouts the exodus scattered, and you crouch down to help because you're the janitor and paper on the floor is technically yours.</p>
<<speech "Marcello" "Oh - thank you. Thank you. They're good kids, really. High spirits. Civics after lunch is a tough slot, everyone says so." "marcello">>
<p>Up close he's younger than the sweater vest suggests, with the posture of a question mark. He shakes your hand like he's grateful you didn't decline it, and introduces himself twice.</p>
<<speech "Marcello" "Marcello Pollock. Marc, if you like. Yes - THAT Pollock. My wife runs the... well. You work for her. We all work for her." "marcello">>
<p>He says my wife the way other men say my supervisor, with a small flinch around the eyes, and then talks at you for ten unbroken minutes - about the smartboard login, about how he almost had a department head interview in another district once, about how nobody in the staffroom saves him a seat - because you are the first person in this building to hold still near him without smirking.</p>
<p>You do the math on your way back to the mop. The most feared woman in the building went home every night, for years, to the least feared man in it. Everyone in this school is scared of Shannon Pollock. Including, obviously, all five foot eight of her husband. That's not a marriage, that's a chain of command. And a man that starved for kindness is an unlocked door.</p>
<p>You file him where you file everything.</p>
<<set $pollock_husband = 1>>
<<if $pollock_stage < 3>>
<div class="req">Whatever that marriage looks like in the hallways, the private version happens somewhere. Marcello's Corolla has started showing up in the visitor lot around her lunch hour. Worth a look.</div>
<<else>>
<div class="req">Whatever that marriage looks like in the hallways, the private version happens somewhere, and you've just put a face to the man on the other side of it.</div>
<</if>>
[[Back to work|Hallway]]<<if $pollock_husband >= 999>>
<p>Lunch period, the Corolla in the visitor lot, the blind that doesn't quite meet the frame. You know exactly where to stand by now. Fifteen minutes of Shannon Pollock with the office door locked is worth more than a month of shredder bags - this is the version of her nobody else gets to audit.</p>
<<switch random(1, 3)>>
<<case 1>>
<p>Today she's at the window with the wine, skirt still on, and Marcello is face-down on the carpet kissing her shoes. Not a preamble - the whole program. She stands there working through a glass and a half while he tongues the leather clean, and when he lifts his head to ask for more she puts the heel on the back of his neck and returns him to his work without a word or a glance.</p>
<<speech "Pollock" "The left one, Marcello. You always neglect the left one. Story of this marriage." "pollock">>
<p>What's new since last time: the bottle. Same label as the cabinet stash, but this one lives in her desk drawer now, in arm's reach, and the glass and a half took her eleven minutes. You've watched drinkers your whole life. The cellar is migrating toward the surface.</p>
<<case 2>>
<p>She's sitting on the desk today, skirt around her waist, her husband's head locked between her thighs - and her attention forty years away. The thing in her free hand isn't her phone. It's a photograph, actual paper, and from your angle you catch it when she tilts it to the light: a girl at nineteen in a sash, some pageant stage, a smile that stopped rooms. She grinds against Marcello's mouth on a slow absent rhythm and never once looks down at him, eyes on the girl the whole time, like she's cheating on the whole room with her own past.</p>
<<speech "Pollock" "Slower. God. Nineteen years old and I let a PHOTOGRAPHER buy me dinner. I could have had anyone. Slower, I said." "pollock">>
<p>She finishes with her teeth set and her eyes wet - the wine, maybe - and puts the photograph back in the drawer that locks. You mark the drawer. Everything that woman is afraid of fits in furniture.</p>
<<case 3>>
<p>Today Marcello never gets touched at all. He kneels by the desk with his hands flat on his thighs while she eats her salad over district paperwork, and every few minutes she feeds him a fact instead of a bite: the anniversary he ruined, the department headship he didn't get, the year he stopped being worth undressing for. He takes each one with his eyes closed, hard in his slacks the whole time, thanking her. She never raises her voice. She's had years of practice keeping this at conversation volume.</p>
<<speech "Pollock" "Sit up straight. If I wanted something soft and grateful at my feet I'd have gotten a labrador, and a labrador would have made department head." "pollock">>
<p>Then, mid-cruelty, her computer chimes and her whole posture changes - shoulders in, chin down, voice suddenly careful. Whoever's on that screen outranks her, and there are maybe three people in the state who do. She closes the laptop half-shut before answering and angles it away from the door. Away from everyone. You add the chime to the file: Her Majesty has a leash too, and lunch hour is when it gets tugged.</p>
<</switch>>
<<set $marcello_next_day = $day + 3>>
<<statchange "energy" -1>>
<<if $pollock_leverage < 10>>
<<set $pollock_leverage += 1>>
<div class="req">Leverage on Pollock: $pollock_leverage/10. Her lunches are a diary she thinks nobody reads.</div>
<<else>>
<div class="req">Nothing you don't already hold - but watching the warden serve her own sentence never stops being useful.</div>
<</if>>
[[Slip away|Hallway]]
<<else>>
<p>Lunch period. The corridor by the front office empties out, her door is shut, and Marcello's sad little Corolla is in the visitor lot again. The blind on her door's window doesn't quite meet the frame - it never has - and you've cleaned this corridor enough times to know exactly where to stand.</p>
<p>Shannon Pollock is standing at her desk, skirt shoved up over her hips, a lunchtime wine glass already going in her hand. Her husband kneels behind her on the office carpet, at eye level with his wife's bare ass, waiting. Not touching. Waiting to be told.</p>
<<pic "img/school/syren/marcelo_cuni_1.jpg" "story">>
<<speech "Pollock" "Fifteen minutes, Marcello. Make them count for once." "pollock">>
<p>She reaches back, takes a fistful of his thinning hair, and pulls his face into her cunt from behind - and holds it there, steering him like a tool, hips grinding back against his mouth while she checks her email with the other hand. When he slows she tightens the grip and he whimpers into her and licks faster. His hands stay flat on his thighs. You'd bet the building he hasn't been told he can use them.</p>
<<video "img/school/syren/marcelo_cuni_2.webm">>
<<speech "Pollock" "I used to stop rooms, Marcello. Nineteen years old, rooms STOPPED. Now I get a man who counts it a good year if I let him kneel." "pollock">>
<p>She finishes with her teeth bared at her monitor, giving him nothing, then steps out of his reach and smooths her skirt down. He stays kneeling, eyes closed, blissful. She refills the glass.</p>
<p>You peel away from the door doing the math. A husband who serves on his knees, unpaid, unthanked, and grateful - that isn't a marriage problem. That's a finished product waiting for new management. Somebody's going to complete him one day, and it isn't going to be her.</p>
<<set $pollock_husband = 2>>
<<set $marcello_next_day = $day + 3>>
<<if $pollock_leverage < 10>>
<<set $pollock_leverage += 1>>
<</if>>
<<statchange "energy" -1>>
<div class="req">Leverage on Pollock: $pollock_leverage/10. Two doors into Shannon Pollock: the bottle and the ledger, or the mirror and the youth. Either way, the husband stays on his knees - and lunch hour keeps its schedule. Worth watching again in a few days.</div>
[[Slip away|Hallway]]
<</if>><p>Friday, gym empty, the padlocked fridge open. Two beers in, you bring up the counselor - carefully, the way you'd hand a man a live round. Tommy doesn't even blink. </p>
<<speech "Coach Gunn" "Britney. Yeah. Me and the counselor go way back, waay back. Coaching conference, Reno, 2015. Whole DISTRICT goes back with Britney, son - she's the best-kept worst-kept secret in public education." "coach_gunn">>
<p>He sets the bottle down and studies you a moment, and you watch him do the thinking on the couch, the sessions, the coveralls, and arrive at the correct total without a single question.</p>
<<speech "Coach Gunn" "So it's like that. Good. She's been wound tight all year - you're cheaper than what the district pays for morale." "coach_gunn">>
<<speech "You" "It's mutually beneficial. But the thing is, Amber is insatiable. I don't think one man is enough for her... Wanna share her pussy?">>
<p>You say the rest of it plainly, because Tommy's the kind of man you say things to plainly: the two of you, her, after hours. He nods once, slow, like you asked to borrow the truck.</p>
<<speech "Coach Gunn" "I'm in. Been in before, if we're keepin' honest books. But get somethin' straight, 'cause it matters - ain't a man alive SHARES Britney. Britney shares herself. You go ask her, with words, and if she says yes she'll say it louder'n you'd like. That woman never met a volume knob she respected." "coach_gunn">>
<p>He clinks his bottle against yours.</p>
<<set $amber_shared = 1>>
<div class="req">Britney gets the final vote. Stop by her office.</div>
[[Head out|Hallway]]<<if $amber_shared == 3>>
<<album "img/school/britney/coach_threesome/repeat_" 2 "jpg" "story">>
<p>It's a standing appointment now: Tommy locks the gym, and the two of you let yourselves into the counselor's office, where Britney has already dimmed the lamp and dispensed with most of her clothes and all of her ethics training. Tonight she takes you both until the couch develops a new noise.</p>
<<set _clip to "img/school/britney/coach_threesome/repeat_" + random(1, 3) + ".mp4">>
<<video _clip>>
<p>After, the three of you split one contraband beer among the crisis pamphlets, and Tommy reads a poster about healthy boundaries and laughs for a straight minute without explaining himself.</p>
<<statchange "energy" -3>>
<<set $amber_next_day = $day + 2>>
[[Slip out through the dark school|Hallway]]
<<else>>
<p>Tommy locks the gym at seven and walks the corridor once, checking doors that were already locked. Then the two of you cross the dark school to the one lit window behind the library. He knocks on the counselor's door like it's a principal's office.</p>
<p>Britney is posed against her desk in a tight black body - you'd bet money she rehearsed the pose. She looks the two of you over slowly, top to bottom, and doesn't bother asking why you've come. Everyone in this room did their reading.</p>
<<pic "img/school/britney/coach_threesome/pose_1.jpg" "story">>
<<speech "Britney" "Lock that door. I hope you've cleared your evening..." "britney">>
<p>She peels the body off - one shoulder, then the other, enjoying the growing bulges in your pants. Then, instead of coming to either of you, she sits down on her own carpet, spreads her knees, and starts playing with her pussy - two slow fingers, eyes moving between you and Tommy, working herself right up to the edge and then stopping, twice, on purpose, breathing like it costs her. You undress and start stroking your dicks, trying to keep up with her pace.</p>
<<pic "img/school/britney/coach_threesome/pose_2.jpg" "story">>
<<speech "Britney" "Okay, listen carefully. Tonight I want you rough with me. REALLY rough. Both of you, no checking in, no 'you okay.' I can take it." "britney">>
<p>Tommy looks at you the way he looks at a kid before a lift: you first. So it starts with her mouth - or rather it starts with her mouth being borrowed back and forth like shared equipment. You feed her your cock to the root and she takes it gagging and grateful; Tommy takes a fistful of blonde hair and does the same, slower, deeper; then back, then again.</p>
<<video "img/school/britney/coach_threesome/1.mp4">>
<p>Next, you lay her out on the couch and press your cock against her ass, and here's the difference a week of homework makes: she exhales once and takes you, all of you, in a single greased slide. Her butthole remembers you. You tell Tommy over her shoulder, conversational, like passing him a stat sheet.</p>
<<if $amber_atm >= 1>><<speech "You" "Wait when I pull it out, she likes the taste of her ass on my cock.">>
<<else>><<speech "You" "She has this weird thing for her ass...">><</if>>
<<speech "Coach Gunn" "She loves it. But she likes other asses too." "coach_gunn">>
<p>With a grace unnatural for a man of his build, he gets on top of her, planting his asscrack on Britney's face and his dick right between her round tits. He folds them around his cock with both big hands while the counselor enthusiastically rims his butt.</p>
<<video "img/school/britney/coach_threesome/2.mp4">>
<<speech "Coach Gunn" "Well, ain't she an overachiever." "coach_gunn">>
<p>She rims him like it's a competency review - deep, devoted, humming - while he fucks her tits and you pound her ass, and the noises coming out from under Tommy are the happiest slurping sounds this office has ever recorded.</p>
<p>You switch. On her side now, one leg cranked up over Tommy's shoulder: you slide into her pussy from the front while he crams into her ass from behind, and the counselor becomes a filling in a sandwich. Tommy bottoms out, frowns like a man testing a squat rack, and shoots you a look of genuine grievance.</p>
<<video "img/school/britney/coach_threesome/3.mp4">>
<<speech "Coach Gunn" "The hell'd you DO to this woman, son? This hole's had renovations." "coach_gunn">>
<<speech "Britney" "You can file an official complaint on my loose ass, and it will be reviewed by a man with a bigger dick." "britney">>
<p>Then the main event. You haul her up off the couch into a full nelson - her knees pinned up by her ears, all of her open and helpless and airborne - and jackhammer her ass, gravity doing half the work, her body bouncing on your cock like a doll's. Tommy steps in front, lines up, and slides into her pussy, and the two of you find a piston rhythm that has her eyes rolling white inside a minute. She stops narrating. She stops words entirely. Somewhere in the double-stuffed pounding she goes limp and floaty, drooling on her own chest, held up purely by the cocks in her and your grip, and comes so hard her whole body locks and shudders like a faulty machine.</p>
<<video "img/school/britney/coach_threesome/4.mp4">>
<p>You're both close, and she surfaces just enough to feel it - and looks back at you over her shoulder, glassy, mouth already open. You know exactly what she's asking for.</p>
<div id="choice-container">
<<linkreplace "Pull out and give her a taste of her ass again.">>
<<replace "#output">>
<p>You lower her out of the nelson and she hits her knees before they even work, wobbling, and takes your cock straight from her ass into her mouth without so much as a grimace - obedient, hungry cleaning, tongue dragging up the shaft while she moans at the taste like it's dessert. Tommy watches for exactly three seconds, then steps up beside you, and she turns her head and services him too, one cock in her mouth and one in her fist, swapping, thorough, a professional doing her best work.</p>
<<video "img/school/britney/coach_threesome/5.mp4">>
<<set $amber_atm += 1>>
<p>Cleaned and aching, you sit back on the couch and pull her onto you reverse cowgirl, her back to your chest, and put her ass back where it belongs. She rides you hard, slamming herself down, hands braced on your knees - and when you grab her hips and slam up into her the last few strokes, you empty everything you have deep in her guts, pumping her full while she grinds down and milks it out of you with a long, satisfied groan.</p>
<<video "img/school/britney/coach_threesome/6.mp4">>
<<if $amber_atm >= 2>>
<p>And because you've indulged this ass-to-mouth kink twice now, it owns her. She climbs off your softening cock with cum already leaking down her thighs, turns around, and licks you clean - slowly, filthily, base to tip, your cock dark and glazed straight from her creampied ass - then keeps going, lapping the smeared mess of ass-flavored cum and lube off your belly where she dripped on you, humming, eyes closed, an addict at the source.</p>
<<video "img/school/britney/coach_threesome/7.mp4">>
<<speech "Britney" "I just can't stop... I hope you love watching me do ass to mouth, because I love it!" "britney">>
<p>Tommy catches the depravity vibe and puts Britney in doggy on the couch, drives into her sloppy ass while your load is still up there, and fucks her flat-backed and grunting until he adds his own - a second creampie stacked on yours. Then he cups a big palm under her hole and gives the instruction of the evening.</p>
<<speech "Coach Gunn" "Push. All of it. Both of us. Attagirl." "coach_gunn">>
<p>She bears down and the mixed load of two men slides out of her gaped ass into his hand, thick and obscene, and he feeds it to her off his fingers like a post-workout supplement - and she takes it, every drop, licking his palm and then his cock clean after, kneeling there glazed and happy.</p>
<<video "img/school/britney/coach_threesome/8.mp4">>
<p>The three of you end up on the floor against the couch, wrecked, passing Tommy's contraband beer. Britney lies between you glowing like a woman who finally got the treatment plan right. You wonder whether you’ve successfully made some friends with benefits, or just useful assets.</p>
<<statchange "energy" -3>>
<<set $amber_shared = 3>>
<<set $amber_next_day = $day + 2>>
<div class="req">A standing arrangement. Tommy locks up some evenings - and her office light stays on.</div>
[[Slip out through the dark school|Hallway]]
<<else>>
<<include "Gunn Amber Facial">>
<</if>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Pull out and feed her that ass again"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Keep her stuffed - no detours">>
<<replace "#output">>
<p>You keep her airborne and keep fucking, and whatever she was asking for gets pounded back down her throat as another orgasm rolls through her. You grab her hips and drive up into her the last few strokes and unload deep in her ass, filling her while she grinds and shakes and milks you dry.</p>
<<video "img/school/britney/coach_threesome/6.mp4">>
<<include "Gunn Amber Facial">>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Keep her stuffed - no detours"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>
<</if>>/* Shared tail of the threesome: Tommy's finish. Included by both branches of
"Gunn Amber Threesome" whenever the double-ATM route doesn't fire. */
<p>Tommy still hasn't finished, and Britney, sprawled boneless against your chest with your cum plugged deep in her ass, cracks one eye at him and taps her cheek. He strokes himself over her upturned face, breathing like a man at the end of a hill run, and you wonder how long he's been holding back.</p>
<div id="facial-choice">
<<linkreplace "Let the man cum in peace.">>
<<replace "#facial-output">>
<p>He plasters her. Three heavy ropes across her cheeks and lips, one in her hair, a coat of it, while she holds still with her tongue out like a good patient and catches what she can. He steps back, nods once - the good-mile nod - and hands her his gym towel.</p>
<<video "img/school/britney/coach_threesome/10.webm">>
<<speech "Coach Gunn" "Don't tell wellness." "coach_gunn">>
<<speech "Britney" "Tommy. I AM wellness." "britney">>
<p>The three of you end up on the floor against the couch, passing Tommy's contraband beer while her face dries. You wonder whether you’ve successfully made some friends with benefits, or just useful assets.</p>
<<statchange "energy" -3>>
<<set $amber_shared = 3>>
<<set $amber_next_day = $day + 2>>
<div class="req">A standing arrangement. Tommy locks up some evenings - and her office light stays on.</div>
[[Slip out through the dark school|Hallway]]
<</replace>>
<<replace "#facial-choice">><div class="choice-made"><em>"Stand back - let the man cum"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Egg him on - how long has he been saving that, since Reno?">>
<<replace "#facial-output">>
<<speech "You" "How long you been holding that, Coach? Since Reno?">>
<p>It's a joke. It stops being a joke immediately. Something goes across Tommy's face - a decade of something - and when he cums it isn't a load, it's a MAIN BREAK. The first blast crosses her face entirely and hits the couch cushion. The second soaks her hair. He keeps going, hosing her down in heavy pulsing gouts - her face, her tits, her outstretched hands when she starts laughing and can't stop - spraying past her onto the carpet, the pamphlet rack, a poster about trusting yourself, until she is genuinely, gleaming, dripping-off-the-chin DRENCHED and it is still coming.</p>
<<video "img/school/britney/coach_threesome/9.webm">>
<<speech "Britney" "TOMMY. WHAT. Since RENO?! Somebody get me a TOWEL - " "britney">>
<<speech "Coach Gunn" "Man maintains his composure long enough, it compounds. That's just interest, Britney." "coach_gunn">>
<p>Cleanup takes twenty minutes and all the crying-student tissues, and she supervises it from the couch, soaked and delighted, declaring the office a biohazard and the evening the single greatest wellness outcome of her career. You wonder whether you’ve successfully made some friends with benefits, or just useful assets.</p>
<<statchange "energy" -3>>
<<set $amber_shared = 3>>
<<set $amber_next_day = $day + 2>>
<div class="req">A standing arrangement. Tommy locks up some evenings - and her office light stays on. The carpet may never recover.</div>
[[Slip out through the dark school|Hallway]]
<</replace>>
<<replace "#facial-choice">><div class="choice-made"><em>"Egg him on - how long has he been saving that, since Reno?"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="facial-output"></div><<pic "img/school/detention.png" "location">>
<<if $detention_job && $school_time is "afternoon">><<detentionroster>><</if>>
<<if not $detention_job>>
<p>Room 019 is locked, and detention is somebody else's problem. For now.</p>
[[Back to the hallway|Hallway]]
<<elseif $school_time isnot "afternoon">>
<p>Detention is available later in the day.</p>
[[Back to the hallway|Hallway]]
<<elseif $detention_day >= $day>>
<p>You've already run today's session.</p>
[[Back to the hallway|Hallway]]
<<elseif not $detention_has_students>>
<<if $linda_stage == 0 && $school_rep >= 10 && $energy >= 2>>
<p>The pink roster is blank, but the door opens anyway. A slender redhead in a senior blazer slips inside and closes it behind her with deliberate care. She keeps checking the empty hall through the narrow door window, as if somebody might catch the thought before she has to say it.</p>
<<pic "img/school/linda/linda.jpg" "story">>
<div class="req">[[See who came anyway|Linda Detention]] (2 energy)</div>
<<elseif $linda_stage == 0 && $school_rep >= 10>>
<p>The pink roster is blank, but you need 2 energy for the unexpected detention session.</p>
<div class="req">Linda will be back when you are rested.</div>
<<else>>
<p>The pink roster is blank. For once, nobody has been sent downstairs, and nobody needs watching. You take the unexpected free period and leave room 019 dark.</p>
<div class="req">No detention session today.</div>
[[Back to the hallway|Hallway]]
<</if>>
<<elseif $energy < 2>>
<p>Not enough energy for detention job.</p>
[[Back to the hallway|Hallway]]
<<elseif $detention_incel_roster && $incel_stage >= 3 && $detention_incel_relieved_day != $day && not (($incel_path == 1 && $incel_stage >= 9) || ($incel_path == 2 && $incel_stage >= 11))>>
<p>The whole crew is already in room 019, backpacks at their feet and identical pink slips folded in their hands. Aaron calls it collective bargaining; Terrence calls it a coordinated response to institutional bias. Whatever it is, room 021 will be empty until you deal with this.</p>
<div id="choice-container">
<<if $school_rep >= 3>>
<<link "Call in a favor and clear the boys (3 school rep)">><<set $school_rep -= 3>><<set $detention_incel_relieved_day = $day>><<set $detention_has_students = false>><<set $detention_day = $day>><<goto "Incel Club">><</link>><br>
<<else>>
<span class="req">Clearing the four of them needs a favor from people who trust you. School reputation: $school_rep/3.</span><br>
<</if>>
[[Keep them here and run detention|Detention Session]]<br>
[[Hallway]]
</div>
<<elseif not $detention_incel_roster || $incel_stage >= 2>>
[[Run the detention session|Detention Session]]
<<else>>
<<set $detention_day = $day>>
<<switch $incel_stage>>
<<case 0>>
<p>Room 019 is in the basement because detention is a landfill and the school likes its garbage out of sight. You are not surprised to see four black boys already there when you unlock the door, and the room goes silent, as rooms do when the joke walks in.
You know their files - Britney walked you through them on her couch, preparing you for your new job. It’s not like no one else gets detention - but these four seniors, eighteen apiece, are regulars. Mostly because they just don’t belong with other students and school overall - and Britney hopes you could fix that.</p>
<<pic "img/school/incels/aaron.jpg" "story">>
<p>Aaron Simmons: smart, angry, can't keep his mouth shut. He isn't even from the school's original district - his address got "adjusted" two summers ago, part of the Pollocks' schemes.</p>
<<pic "img/school/incels/isaiah.jpg" "story">>
<p>Isaiah: big, muscular, quiet. He’s a top athlete, and school tolerates him as long as he performs on the field.</p>
<<pic "img/school/incels/terrence.jpg" "story">>
<p>Terrence: small, nerdy, wearing glasses. Once he even got in trouble for breaking into the school computer system. He is a member of the "STEM outreach" scholarship the school brags about - and resents.</p>
<<pic "img/school/incels/devin.jpg" "story">>
<p>And Devin Hayes, the only kid with money in this group, and he ain’t restraining himself from showing it off. Old-money kids hate him even more for that. Also, his face looks familiar for some reason…</p>
<<speech "Aaron" "Now they send us the janitor, lol. Aight, what's the syllabus, sir? First period bleach, second period drain. We doing a unit on gum, or that's the AP class?" "aaron">>
<p>He knows that you don't belong here, that you're just a janitor, and he watches to see if you'll pretend otherwise. The other three watch too.</p>
<p>You don't pretend. You take the desk at the front, put your feet up, and tell them the truth: yeah, they got the janitor. The school put its trash in one room to save on hauling. This lands surprisingly well.</p>
<p>Rest of the shift goes calm; boys quietly do their thing while you skim through a history book. They recognize you as someone at the bottom of a school social ladder, just as they are, and save pranks and jokes for themselves. That’s a good outcome for a first meeting.</p>
<<statchange "energy" -2>>
<<statchange "school_rep" 1>>
<<set $incel_stage = 1>>
<div class="req">School reputation: $school_rep</div>
[[Lock up|Hallway]]
<<case 1>>
<p>Time goes by. Your familiar black delinquents have stopped performing for each other quite so hard - you're furniture now, and like all furniture, you hear everything. What you hear is Terrence, reading aloud to the others from the phone, in the flat reverent voice of a boy reciting scripture:</p>
<<speech "Terrence" "...says here it's OVER for guys like us. Statistically. Genetically. Says the game was rigged before we were born, so the only move is to stop playing." "terrence">>
<<speech "Aaron" "Man, that account is some basement-dwelling cracker in Ohio. Why you keep reading dis shit?" "aaron">>
<<speech "Terrence" "Because he's RIGHT about the rigged part. Ain't no bitches for us, bro, cos they need alpha males, and money, and status, and we got jackshit." "terrence">>
<<speech "Devin" "Well, I have money. Now, I just need your brains and Isaiah’s body… " "devin">>
<<speech "Terrence" "...and you still will be an outcast. Once societal hierarchy is established, you can’t change it." "terrence">>
<p>Is incel still a thing? You listen some more and hear the rest - money, genes, it's over for you, log in tomorrow for more.</p>
<<if $knowledge >=20>>
<p>You clear your throat and tell Terrence to read the rigged part again. Then you take it apart and rebuild it.
<<speech "You" "In this bullshit they sell you, the only true part is about the rig. Society fucked us, boys, and this school is an example of that.">>
You tell them things about this school they suspect but can't prove: the donor kids who don't get searched, the two review files Pollock keeps for the same offense in different colors. And then you tell them the part Ohio never will: rigged means you learn the rig. Rigged means discipline, information, patience - and each other. Every man in this room is the only backup every other man in this room will ever have.</p>
<<speech "You" "They want men like you to be divided and compete for jobs, for girls, for decent lives, and not question the system.">>
<p>A moment of silence after your speech is interrupted by the bell. It eases the tension and some of the boys chuckle - but you see that you planted an idea successfully.</p>
<p>Devin looks at the floor, then makes himself look up.</p>
<<speech "Devin" "Listen, you seem to be a cool dude... We had a spot. 021, down past the boiler. Old storage room, completely unused. It was our unofficial club room we used to hang out and talk about things like that… Well, until facilities swapped the lock over the summer, and our key stopped being a key." "devin">>
<<speech "Terrence" "What he's dancing around is: you push a cart with nine hundred keys on it. Doors is literally your whole thing, old man." "terrence">>
<<speech "Aaron" "And we had enough materials there to get you redpilled! So it's in your interest as well. Not like anybody would want to fuck a janitor anyway, haha!" "aaron">>
<p>Room 021. You know the door - the work orders treat what's behind it as furniture storage, and the cylinder got swapped in June with the rest of the summer rekeying. Whatever's locked in there, four boys have been circling it for months like a repossessed clubhouse.</p>
<<speech "You" "I'll check it. And then we'll talk about how to approach women.">>
<<statchange "energy" -2>>
<<statchange "school_rep" 1>>
<<set $incel_stage = 2>>
<<set $incel_club = true>>
<div class="req">Room 021 is reachable from the Hallway in the afternoon - but the new lock needs a key the school never issued you (master key, at least 1/3).</div>
<<else>>
<p>You wish you could join the conversation, but you are not prepared yet.</p>
<div class="req">At least 20 knowledge required.</div>
<<statchange "energy" -2>>
<<statchange "school_rep" 1>>
<</if>>
<div class="req">School reputation: $school_rep</div>
[[Lock up|Hallway]]
<<default>>
<p>Room 019 has done its job. The boys' story continues in room 021 now.</p>
[[Lock up|Hallway]]
<</switch>>
<</if>><<if $detention_job && $school_time is "afternoon">><<detentionroster>><</if>>
<<if not $detention_job || $school_time isnot "afternoon">>
<p>There is no detention session for you to run right now.</p>
[[Back to the hallway|Hallway]]
<<elseif $detention_day >= $day>>
<p>You've already run today's session.</p>
[[Back to the hallway|Hallway]]
<<elseif not $detention_has_students>>
<p>The roster has cleared. There is nobody left in room 019 to supervise.</p>
[[Back to the hallway|Hallway]]
<<elseif $energy < 2>>
<p>Not enough energy for detention job.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<set $detention_day = $day>>
<p>The lock turns behind you. Fifth period settles into its usual stale quiet, and for the next hour room 019 is yours to keep from getting worse.</p>
<<if $school_rep < 5>>
<p>They look you over like the school sent down a substitute nobody needs to respect. You let the silence answer for you.</p>
<<elseif $school_rep < 15>>
<p>A few faces recognize you from the halls. It does not buy obedience, but it buys you enough quiet to get started.</p>
<<else>>
<p>Your reputation reaches the room before you do. By the time you walk in, chairs are already scraping into something close to order.</p>
<</if>>
<<switch $detention_event>>
<<case 1>>
<<include "Detention Event 1">>
<<case 2>>
<<include "Detention Event 2">>
<<case 3>>
<<include "Detention Event 3">>
<<case 4>>
<p>The goth girl in the back is Lola Fae, according to the pink slip, and she came down for masturbating in the art stairwell. When you lock the room, she is still at it: skirt hiked up, black nails working between her thighs, laughing at the detention slip.</p>
<<video "img/school/detention/racist_gf_1.webm">>
<<speech "Lola" "A black janitor like you could only dream about white pussy. My dad kicks people like you for a living.">>
<<if not $detention_incel_roster && $school_rep >= 15>>
<p>The other white detainees do not laugh. One calls her pathetic. Another tells her you are a cool dude and she is only trying to shock people because nobody looks at her otherwise. That lands harder than any discipline report. The first boy drags his chair toward the teacher's desk and asks whether she wants an audience that badly.</p>
<div id="choice-container">
<<linkreplace "Let them show her who actually runs the room">>
<<replace "#output">><p>You do not stop them. The boys crowd around the desk, but they leave you the first place because the room is yours. Her smirk holds until the attention she demanded becomes a line of dicks, with you at the front of it.</p><<video "img/school/detention/racist_gf_2.webm">><<run setup.albrightNote("gothgirl", 2)>><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Let them show her who actually runs the room"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Keep the room on task">>
<<replace "#output">><p>You tell everybody to sit down, and the other students listen. She is left touching herself in a room where nobody is impressed. That finally embarrasses her more than detention did.</p><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Keep the room on task"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>
<<elseif $detention_incel_roster && $incel_path == 2 && $incel_stage >= 10>>
<p>The boys have heard enough. Aaron asks whether her daddy taught her to talk like that. Devin asks whether she will keep talking once the room stops treating her like a princess. She gives them a filthy little smile, keeps rubbing herself, and tells them to try her.</p>
<div id="choice-container">
<<linkreplace "Let the boys prove her wrong">>
<<replace "#output">><p>You take control of the room. Before the bell, her mouth, pussy, and ass have all been used, each hole stripping a little more of the smugness from her voice. The boys work together without their old panic or resentment. By the end, she is begging through tears for them not to stop.</p><<video "img/school/detention/racist_gf_3.webm">><<run setup.albrightNote("gothgirl", 2)>><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Let the boys prove her wrong"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Leave her be">>
<<replace "#output">><p>You tell the boys to sit back down. </p><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Leave her be"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>
<<else>>
<p>Between the boys' uneasy silence and the other detainees looking away, her little performance does not get the reaction she expected. She keeps touching herself anyway, trying to turn their disgust into power.</p>
<</if>>
<<case 5>>
<p>A pair of adult seniors is down here for replacing the principal's lobby portrait with a printout that gives her a cartoon crown and the caption <em>QUEEN OF THE HALL PASSES</em>. They insist it improved the school climate. The replacement lies folded carefully between them like evidence at trial.</p>
<<if $detention_incel_roster>><p>Terrence checks the printout's metadata and says it was rendered on a district computer. Aaron asks whether that makes the prank better or turns it into evidence. The back row debates the question with more seriousness than the school board gives most student complaints.</p><<else>><p>The room keeps trying not to laugh. Nobody quite manages it.</p><</if>>
<<case 6>>
<p>A quiet senior sits through detention with a stack of library books and a pink slip for reading in the cafeteria instead of attending pep-rally rehearsal.</p>
<<if $detention_incel_roster>><<if $incel_dropout>><p>Terrence immediately offers to find a digital copy. Aaron pretends not to care, then asks whether it is any good.</p><<else>><p>Isaiah asks to borrow the book when they are done. Terrence immediately offers to find a digital copy. Aaron pretends not to care, then asks whether it is any good.</p><</if>><<else>><p>For one period, room 019 is almost peaceful.</p><</if>>
<</switch>>
<<statchange "energy" -2>>
<<statchange "school_rep" 1>>
<div class="req">School reputation: $school_rep</div>
[[Lock up|Hallway]]
<</if>>/* Room 019 roster event 1: the dress-code case in a sex-shop costume. Its
own passage so Madi's detention hour can put it on her roster too
(docs/madi-build-plan.md). Detention Session includes it for event 1. */
<p>The dress-code case arrives five minutes late in something that is technically a school uniform and unmistakably a sex-shop costume: a white blouse tied beneath her tits, a tiny plaid skirt, thigh-highs. Her red detention slip reads <em>DELIBERATE MOCKERY OF THE DRESS CODE</em>. At least the charge is accurate.</p>
<<video "img/school/detention/uniform_1.webm" >>
<<if $detention_incel_roster>>
<<if $incel_stage <= 4>>
<p>Aaron calls her an attention whore under his breath. Terrence starts explaining how the outfit reflects a broken culture until Isaiah tells him to shut up. She hears every word and stares at the ceiling with the bored smile of someone who has heard worse.</p>
<<elseif $incel_path == 1>>
<p>Aaron begins with the old insult, catches himself, and says she looks good instead. It comes out stiff, but honest. Terrence nearly falls out of his chair. She gives Aaron a surprised little nod, and he spends the next ten minutes pretending it never happened.</p>
<<else>>
<p>The boys have shed their old miserable caution. Devin asks whether the costume came with underwear. She gives him a long, slow look, hooks two fingers beneath the hem, and lifts the skirt just high enough to show him the answer. <<if $incel_dropout>>Three desks scrape at once.<<else>>Four desks scrape at once.<</if>> She lets the hem fall and reminds them they are still in detention.</p>
<<video "img/school/detention/uniform_2.webm" >>
<</if>>
<<else>>
<p>The other boys try whistles, compliments, and one terrible line about private-school fashion. She accepts the attention like a queen accepting flowers, then claims the empty desk nearest yours.</p>
<</if>>/* Room 019 roster event 2: the couple caught behind the auditorium.
Included by Detention Session for event 2, and by Madi's detention hour. */
<p>A couple caught making out behind the auditorium sits three desks apart, flushed and swollen-lipped, each pretending the other is a stranger. The report says <em>INAPPROPRIATE CONTACT</em>. Her buttons are done up wrong, his belt is still open, and every few minutes their knees find each other beneath the desks.</p>
<<if $detention_incel_roster>>
<<if $incel_path == 1 && $incel_stage >= 5>><p>Aaron mutters that they should have picked a better hiding place. After a beat, he adds that they look happy. Nobody laughs at him for it.</p><<elseif $incel_path == 2 && $incel_stage >= 5>><p>Devin tells the girl it is not too late to go black, then tells her not to look back at her loser boyfriend.</p><<else>><p>The boys make no attempt to hide how much they hate the couple. The couple keeps ignoring them, which gets under their skin worse than an insult could.</p><</if>>
<</if>>
<div id="choice-container">
<<linkreplace "Make them sit apart">>
<<replace "#output">><p>You move one chair to the opposite wall. They comply, then spend the rest of the hour writing notes to each other with enough detail to make the pink slips look wholesome.</p><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Make them sit apart"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Tell them you don't care">>
<<replace "#output">><p>The moment you stop policing them, the situation escalates fast. It becomes clear the lovebirds had been doing a lot more than making out behind the auditorium.</p> <<video "img/school/detention/couple.webm" >><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Tell them you don't care"</em></div><</replace>>
<</linkreplace>>
</div>
<div id="output"></div>/* Room 019 roster event 3: the girl filming for her paid page. Included by
Detention Session for event 3, and by Madi's detention hour. */
<p>A girl with glitter still clinging to her collarbone is here for filming a paid clip in the girls' bathroom. She still has her phone, and she is still making content for her page even now.</p>
<<video "img/school/detention/of_0.webm" >>
<<if $detention_incel_roster>>
<<if $incel_stage <= 4>><p>The boys do not bother hiding their disgust at her OF work. Mostly, it just leaves the room awkward.</p><<elseif $incel_path == 1>><p>Terrence asks how she keeps strangers from stealing her content. She answers seriously. He gives her a few cybersecurity tips, and by the end of the hour they have exchanged handles.</p><<else>><p>The boys tell her that when she is ready to film getting blacked, she should ask for them.</p><</if>>
<</if>>
<<if $school_rep >= 10>>
<div id="choice-container">
<<linkreplace "Propose filming in the open">>
<<replace "#output">><p>You are not paid enough to care about a phone camera in detention. If she is going to keep filming, at least you get a decent show out of it.</p><<video "img/school/detention/of_1.webm" >><<run setup.albrightNote("ofopen", 1)>><</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Propose filming in the open"</em></div><</replace>>
<</linkreplace>><br>
<<if $detention_incel_roster && $incel_path == 2 && $incel_stage >= 5>>
<<linkreplace "Let your boys help her with content">>
<<replace "#output">>
<p>Terrence talks the OF girl into shooting her first interracial BJ. Devin handles the phone while Terrence gives her something worth pointing it at.</p>
<<video "img/school/detention/of_2.webm">>
<<run setup.albrightNote("ofboys", 2)>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Let your boys help her with content"</em></div><</replace>>
<</linkreplace>>
<</if>>
</div>
<div id="output"></div>
<</if>><<if ndef $incel_gangbang_arranged>><<set $incel_gangbang_arranged = false>><</if>>
<<if ndef $incel_deprogram_arranged>><<set $incel_deprogram_arranged = false>><</if>>
<<if $school_time is "afternoon">><<detentionroster>><</if>>
<<pic "img/school/incels/club_room.jpg" "location">>
<<if $incel_stage < 2>>
<p>Room 021 is a dead classroom the school uses for forgetting furniture in.</p>
[[Back to the hallway|Hallway]]
<<elseif $school_time is "afternoon" && $incel_stage >= 3 && $detention_incel_roster && $detention_incel_relieved_day != $day && not (($incel_path == 1 && $incel_stage >= 9) || ($incel_path == 2 && $incel_stage >= 11))>>
<p>Room 021 is dark. A note has been taped to the door in Aaron's block capitals: <em>SOLIDARITY IS A SCHEDULING CONFLICT.</em></p>
[[Back to the hallway|Hallway]]
<<elseif $incel_stage == 2 && $master_key < 1>>
<p>The boys are waiting at the door of 021 like it's a parole hearing. The lock is a fresh brass cylinder, shinier than anything else in this corridor, and your maintenance ring has forty keys and not the one. Aaron rattles the handle anyway, on principle.</p>
<<speech "Aaron" "Man. Our whole SETUP is in there." "aaron">>
<p>You tell them the truth: the ring you were issued opens exactly what the school wants a janitor opening, and this door didn't make the list. But you may find it eventually.</p>
<div class="req">Requires the master key (progress: $master_key/3 - one working cut is enough). Risky extra work orders around the school are how it grows.</div>
[[Back to the hallway|Hallway]]
<<elseif $incel_stage == 2>>
<p>The boys are loitering by the door of 021 when you come down, all four pretending they just happened to be standing in a dead-end corridor. You pick the cut off your ring - the one the school never issued - and the new lock gives on the first try. Aaron actually whoops.</p>
<p>Then the door swings open on a room that got abandoned mid-sentence, and the whoop dies in his throat.</p>
<p>Nobody got to clean up. That's the thing about losing a room to a locksmith: it stays exactly as embarrassing as you left it. The good stuff is there - old scavenged monitors, a decommissioned server rack that has no business working, a whiteboard mid-argument in four different handwritings, even an old couch. But so is the wall. Printed forum threads with passages highlighted like scripture. A hand-drawn chart labeled ASCENSION ODDS with four sets of initials on it, none of the odds good. And the posters:</p>
<<pic "img/school/poster_britney.jpg" "story">>
<p>Ms. Amber, fifteen years and at least one career younger, in glossy printouts from shoots the school board has definitely never seen, wearing less with every page. Next to her, worse:</p>
<<pic "img/school/poster_syren_ai.jpg" "story">>
<p>A full-page Principal Pollock that Pollock never posed for: AI slop printed on school toner, and somebody took the time to laminate it.</p>
<p>The scramble is instant and hopeless. Aaron spreads himself in front of the wall like it can be bodyguarded. Terrence peels the Pollock one down, and it takes paint with it. Isaiah sits at his old desk and puts his head in his hands, and Devin doesn't move at all, which reads guiltiest of the four.</p>
<<speech "Aaron" "Okay. So. There's context. There's a whole - Terrence, tell him about the context." "aaron">>
<<speech "Terrence" "The Pollock one was a proof of concept. For a project. It's TECHNICAL." "terrence">>
<p>You let the silence do the discipline while you take the tour. Four boys, and too much free time.
Once the wall stops being the loudest thing in the room, they show you the rest of the operation like boys showing a father a fort. Terrence runs the machines - he's inside half the school's systems out of boredom alone. Aaron prints out articles from the incel forums to discuss. And Isaiah and Devin sit on the couch and use Terrence’s rig for split-screen video games.</p>
<p>You look at the four of them - and you see it clean: raw material. Loyal, invisible, wired into everything, and starving for one grown man to hand them a doctrine.</p>
<<speech "Aaron" "So… no offence, but what could a janitor know about women?" "aaron">>
<p>He glances at you, testing.</p>
<<speech "Aaron" "You got a jawline of a chad, but with your low social status... No chance." "aaron">>
You need to prove to them you know what you’re talking about, and you’re afraid words alone won’t cut it.
<<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
<<linkreplace "Show them Mrs. Bond footage">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>You approach Terrence’s rig and find the Mrs. Bond sex tape - still online if you know where to look.</p>
<<if $savannah_approach == 1>>
<<video "img/savannah/doggy.webm">>
<<speech "You" "This bimbo slut was quite eager to jump on your janitor's big black dick...">>
<<else>>
<<video "img/savannah/option2/5_spitroast.webm">>
<<speech "You" "Check out how we double-team this blonde bombshell...">>
<</if>>
<<speech "You" "I'd appreciate it if you keep quiet about this clip. It's still quite sensitive...">>
It’s not like you can’t trust them, but if you bring out a secret like that, rumors will spread. Better watch out for the next few days.
<<statchange "heat" 30>>
<p>The boys can’t look away from the video you show them. It’s their whole world breaking apart - how could this low-class, sub-5 janitor get this gorgeous woman on his dick? Maybe there is a chance for them, after all?</p>
<<speech "Devin" "You DO know a thing or two about women - I bet more than Ohio. You’re welcome here." "devin">>
<<speech "Isaiah" "After we clean this space.">>
<<speech "Aaron" "And our heads. Yeah, man, teach us the ways!" "aaron">>
Boys are hooked. With this evidence, you establish yourself as a figure of authority for them, and while they prepare the room, you can think what you want to do with that power.
<<statchange "energy" -1>>
<<set $incel_stage = 3>>
<<set $incel_next_day = $day + 2>>
<</replace>>
<<replace "#choice-container">><div class="choice-made">Show them Mrs. Bond footage</div><</replace>>
<</linkreplace>><br>
<<if $ella_stage > 9>>
<<linkreplace "Share Ella’s recording">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>You remember that on your first date Ella took some photos and videos to feel like one of your “targets”, and show them to the shocked boys.</p>
<<video "img/ella/date/2_blowjob.webm">>
<p>It feels wrong to share nudes of your girlfriend. Even though it’s harmless and no one would probably know - it’s enough that you know, and now you feel less about yourself.</p>
<<statchange "respect" -30>>
<p>The boys can’t look away from the video you show them. It’s their whole world breaking apart - how could this low-class, sub-5 janitor get this gorgeous woman on his dick? Maybe there is a chance for them, after all?</p>
<<speech "Devin" "You DO know a thing or two about women - I bet more than Ohio. You’re welcome here." "devin">>
<<speech "Isaiah" "After we clean this space.">>
<<speech "Aaron" "And our heads. Yeah, man, teach us the ways!" "aaron">>
Boys are hooked. With this evidence, you establish yourself as a figure of authority for them, and while they prepare the room, you can think what you want to do with that power.
<<statchange "energy" -1>>
<<set $incel_stage = 3>>
<<set $incel_next_day = $day + 2>>
<</replace>>
<<replace "#choice-container">><div class="choice-made">Share Ella’s recording</div><</replace>>
<</linkreplace>>
<<else>>You could have shared something more personal, but you aren’t in any kind of relationship.<</if>>
<</if>>
</div>
<div id="output"></div>
[[Back to the hallway|Hallway]]
<<elseif $day < $incel_next_day>>
<p>Boys are not yet ready.</p>
<<if $incel_path == 2 && $incel_stage >= 5 && $incel_materials == 0>>
<div class="req">Before the next lesson, visit Adriana's lair and collect the materials she prepared.</div>
<</if>>
<div class="req">Come back in a day or two.</div>
[[Back to the hallway|Hallway]]
<<elseif $incel_stage == 3>>
<p>The group is waiting for you.</p>
[[They are ready to go|Incel Crossroads]]<br>
[[Not today|Hallway]]
<<elseif $incel_stage <= 7>>
<<switch $incel_stage>>
<<case 5>>
<<if $incel_path == 1>>
<<if $energy >= 1>><div class="req">[[Talk through the forum nonsense|Club Deprogramming]] (1 energy)</div><<else>><div class="req">Not enough energy for this lesson.</div><</if>>
<<elseif $incel_materials == 0>>
<div class="req">The next lesson needs Adriana's material. Visit her lair to collect the room 021 packet.</div>
<<else>>
<<if $energy >= 1>><div class="req">[[Open Adriana's kink packet|Club Lesson B2]] (1 energy)</div><<else>><div class="req">Not enough energy for this lesson.</div><</if>>
<</if>>
<<case 6>>
<<if $incel_materials == 0>>
<div class="req">The room needs Adriana's material before the next session. Visit Adriana's lair to collect it.</div>
<<elseif $incel_path == 1>>
<<if $energy >= 1>><div class="req">[[Run another de-programming session|Club Deprogramming]] (1 energy)</div><<else>><div class="req">Not enough energy for this lesson.</div><</if>>
<<else>>
<<if $energy >= 1>><div class="req">[[Open Adriana's kink packet|Club Lesson B2]] (1 energy)</div><<else>><div class="req">Not enough energy for this lesson.</div><</if>>
<</if>>
<<case 7>>
<<if $incel_path == 1>>
<<if $energy >= 1>><div class="req">[[Run the final de-programming session|Club Deprogramming]] (1 energy)</div><<else>><div class="req">Not enough energy for this lesson.</div><</if>>
<<else>>
<<if $energy >= 2>><div class="req">[[Run the group preparation session|Club Group Practice]] (2 energy)</div><<else>><div class="req">Not enough energy for this lesson.</div><</if>>
<</if>>
<</switch>>
[[Back to the hallway|Hallway]]
<<elseif $incel_path == 1 && $incel_stage == 8>>
<<if $amber_stage >= 6>>
<<if not $incel_deprogram_arranged>>
<div class="req">The boys are ready for graduation. Visit Amber's office in the afternoon to arrange the workshop.</div>
<<else>>
<<if $energy >= 2>><div class="req">[[The graduation workshop|Club Date Lines]] (2 energy)</div><<else>><div class="req">Not enough energy for this lesson.</div><</if>>
<</if>>
<<else>>
<div class="req">The boys are ready to practice, but Amber needs to be fully on side first. (Finish Britney Amber's arc.)</div>
<</if>>
[[Back to the hallway|Hallway]]
<<elseif $incel_path == 2 && $incel_stage == 8 && $incel_materials == 1>>
<p>The group has the theory. Now they need to learn whether they can actually share a room without folding into their old nerves.</p>
<<if $energy >= 2>><div class="req">[[Run the comfort session|Club Naked Practice]] (2 energy)</div><<else>><div class="req">Not enough energy for this lesson.</div><</if>>
[[Back to the hallway|Hallway]]
<<elseif $incel_path == 2 && $incel_stage == 9 && $incel_materials == 1>>
<p>The boys can stand naked in the same room without turning it into a joke. The next lesson goes further.</p>
<<if $energy >= 2>><div class="req">[[Run the masturbation session|Club Masturbation]] (2 energy)</div><<else>><div class="req">Not enough energy for this lesson.</div><</if>>
[[Back to the hallway|Hallway]]
<<elseif $incel_path == 2 && $incel_stage == 10 && $incel_materials == 1>>
<p>The boys are past the nerves now. What remains is the final exercise - a supervised interracial gangbang, and you think the counselor will be happy to facilitate it.</p>
<<if $amber_stage >= 6>>
<<if not $incel_gangbang_arranged>>
<div class="req">The boys are ready. Go to the counselor's office in the afternoon and arrange the graduation exercise with Amber.</div>
<<else>>
<<if $energy >= 3>><div class="req">[[Lead the boys to classroom 102|Club Gangbang]] (3 energy)</div><<else>><div class="req">Not enough energy for this lesson.</div><</if>>
<</if>>
<<else>>
<div class="req">The graduation exercise needs the counselor fully on side. (Finish Britney Amber's arc first.)</div>
<</if>>
[[Back to the hallway|Hallway]]
<<else>>
<<if $incel_path == 1>>
<p>The boys have their own lives to get on with now. Aaron is trying not to overthink an actual relationship, Terrence turned the old forum accounts into a laptop-repair group chat, Devin brings sodas, and Isaiah has stopped treating every room like enemy territory. You gave them what you could. The rest is theirs.</p>
<<else>>
<<if $pollock_stage >= 4 && $pollock_route == 1>>
<p>The whiteboard still says GROUP PROJECT. Nobody has wiped it and nobody is going to.</p>
<<elseif $pollock_stage == 3 && $pollock_route == 1 && $pollock_group_done>>
<<if $day >= $pollock_next_day>>
<<if $energy >= 2>>
<p>All three of them are here, and nobody has sat down.</p>
<div class="req">[[Hear the report|Group Project Report]] (2 energy)</div>
<<else>>
<div class="req">The boys have a report and a phone on the desk, but you want your wits for it (2 energy).</div>
<</if>>
<<else>>
<div class="req">Room 021 is locked and the light is off. Whatever happened down here last night, they are all going to sleep through first period.</div>
<</if>>
<<elseif $pollock_stage == 3 && $pollock_route == 1 && $day >= $pollock_next_day>>
<div class="req">It is set for this afternoon. She is the one you collect - her office.</div>
<<elseif $pollock_stage == 3 && $pollock_route == 1>>
<div class="req">She's agreed to it.</div>
<<elseif $pollock_stage >= 2 && $pollock_stage < 4>>
<div class="req">Aaron keeps asking about the "group project." The principal's door is the answer - see the Pollock arc.</div>
<</if>>
<</if>>
<<if $linda_stage == 2 && $incel_path == 2 && $incel_stage >= 11 && $day >= $linda_next_day>>
<<if $energy >= 3>><div class="req">[[Linda is waiting in room 021|Linda Club]] (3 energy)</div><<else>><div class="req">Linda is waiting in room 021, but you need 3 energy for the session.</div><</if>>
<</if>>
[[Back to the hallway|Hallway]]
<</if>><!-- IMAGE: room 021, lights half down - four adult seniors waiting, whiteboard blank -->
<p>You look at four black boys, excitedly waiting for your words of wisdom. There are two ways this could go.</p>
<p>First - tell them to be normal human beings. Don’t pretend, don’t hate on girls, and support each other - and eventually you’ll succeed in relationships. This is what a sane adult should do.</p>
<p>Second - tell them to embrace the stereotype, just as you did. This might be wrong, but you may benefit greatly from having a team of young black bulls, ready for an interracial gangbang. For the greater cause, of course. And they still get what they think they want.</p>
<<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
<<linkreplace "Incel deprogramming">>
<<set _choiceMade = true>>
<<set $incel_path = 1>>
<<replace "#output">>
<p>You put the marker down. No grand theory, no secret shortcut. The forums took real injuries - class, racism, loneliness, the daily proof that this school was built to make them feel temporary - and sold them a target for the pain.</p>
<<speech "You" "Girls aren't the people who built this place. And hating them won't get you out of it.">>
<p>For your next lesson, you should prepare proper incel-debunking materials. Who could know a lot about weird online communities?</p>
<<statchange "energy" -1>>
<<set $incel_stage = 5>>
<<set $incel_next_day = $day + 1>>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Incel deprogramming"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Embrace the stereotype">>
<<set _choiceMade = true>>
<<set $incel_path = 2>>
<<replace "#output">>
<p>This is going to be awkward, but you need to deliver the idea straight if you want them to believe you.</p>
<<speech "You" "I promised to tell you what the secret is. How could a janitor like me get some bitches on my dick? The answer is quite simple.">>
<p>You pick up the marker and write one word across the blackboard: RACISM.</p>
<<pic "img/school/incels/racism.jpg" "story">>
<p>Boys chuckle, but go silent when they realize you are dead serious.</p>
<<speech "You" "Yes, racism. You know that this takes many parts, and you are most familiar with discrimination. But what if I told you there is another side to that?">>
<<speech "You" "Interracial relationships for a long part of our history were taboo, something unthinkable. And, as with many forbidden fruits, it gave way to fantasy. The myth of a black man, animalistic, full of desire, and also having a manhood superior to that of a white man, was born.">>
<p>Wide-eyed boys look at you in disbelief.</p>
<<speech "You" "Husbands, afraid that their wives will cheat on them with a black man - and secretly wanting that. Wives, curious if the myths about our dicks are true. Inequality and discrimination that are caused by racism only add more fuel into this forbidden desire.">>
<<speech "You" "And I can teach you how to use that to your advantage. How to become a fantasy of a white man - and fuck their women.">>
<p>You stop. Silence is unbearable.</p>
<<speech "You" "It may be a lot, I know. Take some time to think about it.">>
<<statchange "energy" -1>>
<<set $incel_stage = 5>>
<<set $incel_next_day = $day + 2>>
<p>They need time to sit with it. For your next lesson, you should prepare a proper deep dive into interracial kink, and who could help you better than a person who does that for a living?</p>
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Embrace the stereotype"</em></div><</replace>>
<</linkreplace>>
<</if>>
</div>
<div id="output"></div>
[[Back to the hallway|Hallway]]<!-- IMAGE: room 021 - the boys around a whiteboard, Adriana's meme packet open on the desk -->
<<if $incel_path == 1 && $incel_stage >= 9>>
<p>The lessons are over. The boys have their own work to do now, and room 021 no longer needs you at the front of it.</p>
[[Back to the hallway|Hallway]]
<<else>>
<<if $incel_stage == 5>>
<p>You keep the first session plain. The five of you talk about loneliness, rejection, and the way the forums turn every bad day into proof that women are the enemy. You do not try to win an argument, but listen to them first.</p>
<<speech "You" "Being hurt does not make you owed somebody else.">>
<p>Aaron argues, Terrence reaches for statistics, and Devin asks more questions than he answers. By the end, none of them have changed overnight, but the room is quieter and nobody has opened the forum thread for twenty minutes.</p>
<<set $incel_stage = 6>>
<<set $incel_next_day = $day + 1>>
<<else>>
<p>Sometimes you just pick a random meme from Adriana's materials and then go on with the talk.</p>
<<set _meme to "img/school/incels/meme_" + random(1, 3) + ".png">>
<<pic _meme "story">>
<<switch random(1, 3)>>
<<case 1>><p>Today the conversation is about rejection. They practice treating a no as an answer, not an insult or a puzzle to solve.</p>
<<case 2>><p>Today it is friendship. They talk about knowing girls as people rather than treating every conversation as a failed attempt at sex.</p>
<<case 3>><p>Today it is the school itself: class, racism, and the way a cruel place can make an easy enemy feel convincing.</p>
<</switch>>
<p>The discussion wanders, doubles back, and occasionally turns into the kind of argument people have when they are finally listening.</p>
<<if $incel_stage == 6>>
<<set $incel_stage = 7>>
<<set $incel_next_day = $day + 1>>
<<elseif $incel_stage == 7>>
<<set $incel_stage = 8>>
<div class="req">The next exercise is a date-line graduation. Visit Amber's office to arrange it.</div>
<<else>>
<<set $incel_next_day = $day + 1>>
<</if>>
<</if>>
<<statchange "energy" -1>>
[[Back to the hallway|Hallway]]
<</if>><!-- IMAGE: room 021 - Amber at the whiteboard, four adult seniors with their chairs turned toward her -->
<<if not $incel_deprogram_arranged>>
<p>The graduation workshop has not been scheduled. Amber wants the details settled in her office first.</p>
[[Ask Amber to arrange it|Counselors Office]]
<<elseif $day < $incel_next_day>>
<p>Amber booked the workshop for tomorrow. The boys can wait one night.</p>
[[Back to the hallway|Hallway]]
<<else>>
<p>Amber arrives after last bell, looking like she has no business being in an abandoned classroom: fitted blue skirt, white shirt, heels sharp against the cracked tile. Until recently, a poster of her had been pinned to the boys' wall like a private dare. Now she is standing three feet away, smiling at them, and none of them seems able to draw a full breath.</p>
<<pic "img/school/britney/date_1.jpg" "story">>
<<speech "Amber" "Relax. I’m here for a workshop. I’ll just be sitting here, receiving your loads - I mean, lots - of compliments." "britney">>
<p>Aaron tries to smile and nearly swallows it. Terrence sits up so straight his chair squeaks. Devin studies the floor, then catches himself and looks back at her face. Isaiah works his jaw once and fixes his eyes on the whiteboard like it has suddenly become fascinating.</p>
<<speech "Amber" "Gosh, you are tough. Come on. Say hello. Ask one real question. Listen to the answer instead of waiting for your turn to perform." "britney">>
<p>She runs them through it one at a time. Aaron asks about music, then rushes into an invitation before Amber has finished answering. She makes him start again. Terrence delivers a careful, memorized opener and gets told to throw it away. Devin manages the first honest exchange: he asks what she likes about counseling, hears the answer, and follows it instead of changing the subject to himself.</p>
<<speech "Amber" "There. That was a conversation. Nobody won, nobody got humiliated, and nobody had to pretend he was somebody else." "britney">>
<p>The room loosens. Aaron asks if "coffee Saturday" is too direct. Amber tells him direct is fine; acting as though a no is a personal attack is the part they are retiring.</p>
<<speech "Amber" "Ask clearly. Hear the answer. If it is no, say 'all right, good seeing you' and mean it. You are not owed a reward for asking." "britney">>
<p>Then she glances at you, amused.</p>
<<speech "Amber" "All right. Graduation exercise. Eye contact." "britney">>
<<pic "img/school/britney/date_2.jpg" "story">>
<p>She unbuttons the top of her shirt with deliberate calm, exposing the lace of her bra. When their eyes drop, she presses her breasts together and waits. Aaron goes red. Terrence loses the beginning of his sentence. Devin makes a sound like he has forgotten what language is for.</p>
<<speech "Amber" "My face is up here. If you cannot hold a conversation because a woman has cleavage, you are not ready to date her. Start again." "britney">>
<p>They do. Awkwardly at first, then better. Aaron asks what Amber does when a client refuses to talk and listens to the whole answer. Terrence asks whether confidence can be learned. Devin asks where she gets her shoes. He keeps eye contact when she laughs.</p>
<p>Amber buttons her shirt and gives them a small nod.</p>
<<speech "Amber" "That is the trick. She is a person, even when she is beautiful, even when she is distracting, even when you want something. Treat her like one, and you might actually get to know her." "britney">>
<p>The boys sit with that. Aaron looks from Amber to the old empty patch of wall where the poster used to hang.</p>
<<speech "Aaron" "Damn. It feels so simple now.">>
<<speech "Isaiah" "Simple is not the same as easy.">>
<<speech "Amber" "Correct. But you four just did it. Congratulations - I think you are ready for the real thing. Good luck to you, boys." "britney">>
<p>Amber leaves, and boys excitedly share their thoughts about this exercise. You look at them and realize that it may well be the last one they need - you've done your job, and you should be proud of it.</p>
<<statchange "respect" 10>>
<<statchange "energy" -2>>
<<set $incel_stage = 9>>
<<set $incel_next_day = $day + 1>>
[[Back to the hallway|Hallway]]
<</if>><!-- PORTRAIT: Renee, Aaron's mother, waiting by the maintenance office -->
<p>She's waiting by the maintenance office when you come to punch out, church coat buttoned to the throat and handbag clutched close. You know the face before she says a word; it is Aaron's face without the armor.</p>
<<speech "Renee" "Mr... I'm sorry, I only know you as the detention teacher. I'm Renee Simmons. Aaron's mother." "renee">>
<p>She stops, restarts.</p>
<<speech "Renee" "He deleted them. The accounts. Three years I watched those - those THINGS talk to my son through his phone, and his father gone, and every teacher here looking through him like glass. And then some janitor..." "renee">>
<p>She laughs, wet-eyed, at how the sentence sounds.</p>
<<speech "Renee" "You know what he told me? 'Ma, it was a lie somebody sold me.' He talks at dinner now. He has a GIRL he won't tell me about." "renee">>
<p>You tell her the truth - Aaron did the work, you only held the room - but she shakes her head and looks down the corridor both ways. When she looks back, gratitude has hardened into a decision.</p>
<<speech "Renee" "I asked around about you. The building talks." "renee">>
<p>Her voice drops.</p>
<<speech "Renee" "Three years I've been mother and father both, and nobody held a room for ME. So you're going to let me say thank you properly, and you're going to lock that office door, and this is the one time in my life I am not taking no." "renee">>
<p>Inside the office, the coat falls open. There is hardly anything under it: a bra, a small pair of panties, skin she has kept hidden under sensible clothes and somebody else's needs. She turns, pulls down her panties, and backs onto your lap.</p>
<<video "img/school/incels/mom_ride.webm">>
<p>Renee takes you in reverse cowgirl with the smooth confidence of a woman who knows exactly what she wants. She rides hard, one hand braced on your knee and the other on the desk, keeping the noise low only when footsteps pass outside. Her broad, round ebony ass fills your hands and moves against you with a rhythm none of the white women you have fucked ever quite managed to match.</p>
<p>She does not rush the ending. When she finally folds forward, catching her breath against the desk, it feels less like a favor than a debt she has decided to collect for herself.</p>
<<speech "Renee" "...Lord. Okay. That was overdue." "renee">>
<p>She straightens, reassembles herself in the door glass, retrieves the coat, and is instantly and completely a church-coat mother again.</p>
<<speech "Renee" "You keep holding that room for my son. And you never tell him about this side of the thank-you." "renee">>
<p>She leaves the way competent women leave - without looking back. You punch out feeling, for once, like the building gave something back.</p>
<<statchange "energy" -1>>
<<set $mom_thanks = 1>>
[[Head out|Hallway]]<!-- IMAGE: room 021 - encrypted drives and an old projector on the front desk -->
<p>Terrence sets up an old projector, and you go through the materials Adriana shared with you.</p>
<p><<linkreplace "BBC">><<pic "img/school/incels/bbc.webp">><</linkreplace>>, <<linkreplace "BNWO">><<pic "img/school/incels/bnwo.webp">><</linkreplace>>, <<linkreplace "QoS">><<pic "img/school/incels/qos.webp">><</linkreplace>>, <<linkreplace "breeding">><<video "img/school/incels/breeding.mp4">><</linkreplace>>, <<linkreplace "cucking">><<pic "img/school/incels/cucking.webp">><</linkreplace>>, and many other things related to a black kink. It’s overwhelming, but presented in such a way that your audience just accepts that as a reality. Before your eyes, a technique used for turning white women to the black side is now used in reverse - successfully.</p>
<<speech "Devin" "White people are fucking weird.">>
<br>
<br>
<p>When the projector clicks off, Isaiah stays in his chair while the others start packing up.</p>
<<speech "Isaiah" "I don't think this thing is for me. Y'all switchin' one system for another system. I'm done being in programs." "isaiah">>
<p>It is only fair, and you respect his decision, and secretly you wish other students were as brave. Isaiah leaves the room while the other three watch him go. They stay, but the empty chair changes the air in room 021.</p>
<<set $incel_dropout = 1>>
<p>After the presentation, Aaron waits till Devin and Terrence leave and whispers to you:</p>
<<speech "Aaron" "Sir, I have a problem. I... I don't have a big black cock. My dick is fucking tiny!">>
<p>Oh, you expected something like that. Teens, they all have their insecurities.</p>
<<speech "You" "Woah, woah, woah, relax. First of all - it's not a problem, believe it or not. What's important is that women THINK that it's big, because it's black.">>
<<speech "Aaron" "I don't understand...">>
<<speech "You" "See, having a massive dick is actually problematic. Even usual sex can get uncomfortable, and you can forget about anal - and small penises are actually anal-friendly, among other things. And the lady still would brag that she took black dicks in her ass.">>
<<speech "Aaron" "So it's all about perception? Even though it's actually small, the woman will think it's big because it's black?">>
<<speech "You" "Well, more or less. What I'm telling you is that size doesn't really matter. But just to be sure, how small are we talking?">>
<p>Aaron awkwardly whispers the number.</p>
<<speech "You" "Get out of here, boy! It's at least average. See, this BBC myth works both ways; you also expect to pack a monster in your pants, but shit's just not real. Now stop wasting my time.">>
<p>Aaron flees the room to catch up with his friends, leaving you chuckling.</p>
<<statchange "energy" -1>>
<<set $incel_stage = 7>>
<<set $incel_next_day = $day + 1>>
[[Back to the hallway|Hallway]]<<speech "You" "There is a very important topic that we haven't discussed yet. Class, tell me - what is the ultimate form of interracial kink? What act is both seen as most depraved and most desired?">>
<p>You stand before your small class of three puzzled black boys. Since your first lessons, they have changed, although in such a subtle way you can't point your finger at it.</p>
<p>Devin raises his hand:</p>
<<speech "Devin" "Cucking, sir?">>
<p>You shook your head.</p>
<<speech "You" "Not quite. It's the most humiliating, sure, but quite niche. But it can be a part of what I'm hinting at.">>
<p>Terrence hesitantly raised his hand:</p>
<<speech "Terrence" "Is it gang... gangbang, sir?">>
<<speech "You" "Yes, my boy, you are correct. Interracial gangbang is a peak of black kink. And I want you to become good at it.">>
<p>You put slides from Adriana and explain to them that while separately they could all achieve a lot of blacking, sharing and acting as a team would be more effective.</p>
<<pic "img/school/incels/gangbang.webp">>
<<speech "You" "Black kink simplifies you as an individual to a big black cock. Your personality does not matter, only our perceived physical attributes. Gangbang takes it one step further, making you not only just a BBC - it makes you simply yet another BBC among others. Replaceable, depersonalized, objectified.">>
<p>By the faces of your students, you realize that you took this too far. They are ready to play to the stereotype, but have they pictured it that way?</p>
<<speech "You" "Relax, boys. See this as a way to get your dicks wet - just in the same place. Class dismissed.">>
<<statchange "energy" -2>>
<<set $incel_stage = 8>>
<<set $incel_next_day = $day + 1>>
<div class="req">The next lesson is about getting comfortable as a group. Give the boys a couple of days.</div>
[[Back to the hallway|Hallway]]<p>A lively chat fills the room as the boys discuss the gangbang stuff they explored on their own.</p>
<<speech "You" "You appear excited, and I love to see this. However, are you truly ready for having sex while your friend is panting next to you?">>
<p>Boys go silent, not sure what to say.</p>
<<speech "You" "Standing naked next to your bro may be awkward enough, not to mention having a boner. And keeping said boner while you can practically touch your dicks during a DP - hell, rubbing your dicks while doing double anal or double pussy. I bet you loved watching those DAP and DPP materials?">>
<p>You put on some slides from Adriana to better illustrate the point.</p>
<<pic "img/school/incels/triple.webp">>
<p>Devin answers with his eyes widening, as he comes to a grand realization:</p>
<<speech "Devin" "Well, yes... Now that you said it, it's practically gay...">>
<p>You need to stop these thoughts from spreading once and for all:</p>
<<speech "You" "There is nothing gay about that! You take your pleasure from fucking a female, and your goal is to give her a good time - and having your naked bro doing the same is an aid, not an obstacle">>
<<speech "You" "But it takes time to get comfortable. This is why today is going to be a practice session. Undress.">>
<p>Visible confusion.</p>
<<speech "Aaron" "But... Like, now?">>
<<speech "Terrence" "Can we keep our underwear at least?">>
<<speech "You" "What, do you expect to have sex with your panties on? Go on, reveal your dicks. There is nothing to be ashamed of; in fact, you should pull out your black dicks with pride.">>
<p>Hesitantly, boys lose their clothes, with underwear being the last and the most awkward piece. Now they stand before you, covering their private parts and trying very hard not to look at each other.</p>
<<speech "You" "Relax. You should get used to seeing another naked man next to you. Don't be afraid to make eye contact, or look at someone's body - it's natural.">>
<p>You give them a moment to get accustomed to this new situation. It's awkward at first, but then Aaron suddenly breaks the silence.</p>
<<speech "Aaron" "Yo Terrence, are you shaving down there?">>
<<speech "Terrence" "Ye- yeah, don't you?">>
<<speech "Aaron" "Nah, why?">>
<<speech "Terrence" "Well, you should, man, it looks better, check this out. It kind of looks bigger, even.">>
<<speech "Aaron" "Huh, well, I don't need to look bigger!">>
<<speech "Terrence" "Sure, man. Well-hung. Although Devin here beats us all, how do you walk with that thing?">>
<<speech "Devin" "Yeah, my stepmom once asked me the same question!">>
<p>Boys banter about their dicks for a while - not surprisingly, this topic is something all teenage boys are interested in. What matters is they eventually relax and by the end of your lesson feel comfortable nude in each other's presence. Next lesson, you're going to push them even further.</p>
<<statchange "energy" -2>>
<<set $incel_stage = 9>>
<<set $incel_next_day = $day + 1>>
[[Back to the hallway|Hallway]]<<speech "You" "Let's start from where we left off last time - strip, boys.">>
<p>Your students undress without much hesitation. Good.</p>
<<speech "You" "Now, being naked in company is actually nothing special. There are nudist beaches and whole communities based on that. You need to push yourself further.">>
<p>There is no subtle way of putting that.</p>
<<speech "You" "I want you to line up and masturbate.">>
<p>It's already a pattern when you say something in this room, and boys go silent; it's not different this time.</p>
<<speech "You" "Yo, relax. Y'all need to get used to a man with a boner next to you. You need to learn to get pleasure when a man next to you is doing the same. It may be harder with a real woman, and this is why we are practicing that.">>
<<speech "Aaron" "Like, you make sense, but ain't no way we can just get hard staring at each other!">>
<<speech "You" "Yeah, my teaching assistant thought about it too. She recorded something special, just for you.">>
<p>You set up the projector and find a recording of Adriana she secretly put in the folders with her other materials. Surely you could just put some porn on the projector, but this has a... personal touch.</p>
<<speech "Adriana" "Putting all these materials together is a big ask... I'm a lonely girl who looks at black cocks all day long... just look how horny I am for all that.">>
<<video "img/adriana/solo/1_spread.webm">>
<p>Adriana slowly undresses on the screen, and you see that the boys are trying to hide their hardening dicks.</p>
<<speech "Adriana" "I'm stretching my filthy holes daily so I can accept big~ black~ cocks~ with ease.">>
<<video "img/adriana/solo/2_tease.webm">>
<p>Adriana lies on her side and spreads her cheeks. Indeed, both her holes look inviting; it's probably time you take her anal V-card. Meanwhile, your students can't hide their massive, throbbing cocks anymore; their hands automatically caress their shafts, somebody even plays with their balls or pulls their skin; but their eyes are locked to Adriana, who stuffs her tiny pussy with a toy. As she speeds up, your boys pick up the pace as well, and start stroking their dicks for real.</p>
<<video "img/adriana/solo/3_squirt.webm">>
<p>Adriana starts squirting, flooding the floor; someone starts groaning.</p>
<<speech "Aaron" "Fuck, this slut is so hot!">>
<<speech "Devin" "Yeah, we'd fuck her really good">>
<<speech "Terrence" "Stuff her holes tight">>
<p>You're happy to hear this playful banter as they jerk off - they are truly ready for a gangbang. Not that you doubted them.</p>
<<video "img/adriana/solo/4_slurp.webm">>
<p>As Adriana gets on her knees and starts slurping her squirt, your boys start cumming right on the floor before them. The sight of this brunette cleaning after herself makes even you hard; and it's so easy for boys to imagine her licking their massive cum puddle from the ground.</p>
<p>Clip ends, and when post-nut clarity hits, the boys find themselves with their semi-hard dicks in their hands, standing before a mess on the floor. Aaron starts laughing, and the rest pick up.</p>
<<speech "You" "Good job, boys. I'm proud of ya. You proved that you are ready for the big thing. Next time we'll have a little graduation. Now, find some napkins and clean up!">>
<<statchange "energy" -2>>
<<set $incel_stage = 10>>
<div class="req">The boys are ready for their final exercise. Visit the counselor's office in the afternoon to arrange the graduation.</div>
[[Back to the hallway|Hallway]]<<if not $incel_gangbang_arranged>>
<p>The graduation exercise has no schedule yet. Amber needs to approve it in her office before you bring the boys to an empty classroom.</p>
[[Ask Amber to arrange it|Counselors Office]]
<<else>>
<!-- IMAGE: classroom 102 - ordinary history desks pushed aside, teacher's desk at the front -->
<p>You had one job - "don't be late," Britney said - and you failed. The boys got held up in detention while you had a cleaning emergency. When you finally gather the team, leave room 021 behind, and lead them to classroom 102 - an ordinary room that held history lessons that morning - you pray Britney is still there. Thankfully, loud, shameless moans tell you she is waiting - but decided to warm herself up.</p>
<p>You use tactical gestures before realizing this isn't your regular door-kickers; but boys understand you, and you all carefully gather around the hallway window with a perfect view of Amber, spreading her legs wide on the teacher's desk and furiously fingering her pussy.</p>
<<video "img/school/britney/incel_gangbang/1.mp4">>
<p>She reaches what feels like not her first orgasm of the evening, announcing it to the world even louder than her moan before. For a second she just lies there, chest heaving, then turns her head and finds four men watching from the doorway.</p>
<<video "img/school/britney/incel_gangbang/2.mp4">>
<<speech "Amber" "Well, don't stand there like a bunch of perverts! You're late, boys. Get in here." "britney">>
<p>They file inside looking half terrified and half ready to burst out of their pants. Amber makes it easy. She drops to her knees in the open space in front of the teacher's desk, ready to serve young black cocks; and if you thought previously you would just be an observer, you were mistaken.</p>
<<video "img/school/britney/incel_gangbang/3.mp4">>
<p>She tastes the four thick black cocks one by one, never rushing, taking each into her mouth while stroking the rest with her hands. Terrence palms one of her big tits and then just slaps her melons with his dick - it feels like Amber's massive breasts are his sole interest today. Aaron tries to say something clever. She takes him deeper until he forgets it.</p>
<<speech "Amber" "Nobody finishes yet. You waited this long. Learn some control." "britney">>
<p>When she finally gets to her feet, she plants both hands on the desk and bends over it without being asked. The boys take turns behind her, hesitant for exactly one thrust each before she starts begging them to stop being careful. You keep the order moving, a hand on a shoulder here, a quiet correction there - or even a hand playfully choking the counselor's neck and making her cum again.</p>
<<video "img/school/britney/incel_gangbang/4.mp4">>
<p>You eventually call the rotation off and guide her flat across the desk. She spreads her legs, rubs her soaked pussy with two fingers, and presents her ass to you with an impatient wiggle.</p>
<<speech "You" "Pay attention. Anal isn't something you just force because you saw it online. Lube first. Then fingers. Let her relax, let her tell you when she's ready, and don't rush the stretch.">>
<p>They watch while you make the lesson practical: plenty of lube, a slow finger, then two, your palm steady on her hip until her tight little hole stops fighting you. Amber moans into the crook of her arm, working her clit as you finally press inside her ass. By the time you bottom out, she is pushing back against you with a grin.</p>
<<video "img/school/britney/incel_gangbang/5.mp4">>
<<speech "You" "And that's how you make anal whores, boys.">>
<<if $amber_atm >= 1>>
<<speech "You" "Clean this cock, baby.">>
<p>You pull out slowly, and Amber is already sliding off the desk to kneel before you. She takes your cock straight from her ass into her mouth, tongue tracing the shaft clean while the boys stare like you just rewrote physics in front of them.</p>
<<video "img/school/britney/incel_gangbang/6.mp4">>
<<set $amber_atm += 1>>
<<speech "Amber" "Mmm, all this pussy juice... And something else~" "britney">>
<</if>>
<p>The next arrangement happens on the floor: Amber lies on her back with Devin inside her pussy and Aaron below her pressed into her ass, doing awkward unsynced double penetration. The counselor's mouth is serving Terrence when it's not busy giving directions to your fuck team. You stand behind them, observing the learning process.</p>
<<video "img/school/britney/incel_gangbang/7.mp4">>
<p>She cries out when they finally find a shared rhythm. The boys have stopped looking at one another for approval. They are watching Amber, listening to her, doing exactly what she tells them.</p>
<p>When the double penetration leaves them shaking, Amber turns the aftermath into another lesson. She sits up against the desk, takes each boy's cock in hand, and works them one at a time with a tireless, teasing rhythm until their knees buckle.</p>
<<video "img/school/britney/incel_gangbang/8.mp4">>
<<speech "Amber" "See? Counselor's office was the old job. Call me Professor Hands now." "britney">>
<p>The joke makes them laugh, then groan when she tightens her grip. One by one they spill into her face, over her tits, across her stomach. Amber smears the warm mess over herself with a shameless little smile, kneeling amid the discarded clothes and the wrecked desks like she has never been more satisfied with a class.</p>
<p>You have held back long enough. She looks up at you, face bright and expectant, and opens her mouth. You stroke yourself over her until the final load bursts across her cheeks, lips, and breasts. Amber closes her eyes, catches what she can on her tongue, then looks up through the white streaks with a happy, exhausted smile.</p>
<<video "img/school/britney/incel_gangbang/9.mp4">>
<<speech "Amber" "Now THAT was a rewarding teaching experience." "britney">>
<p>She reassembles herself with a counselor's efficiency - dress, hair, lipstick - and delivers the exit review at the door: two passes, one pass-with-distinction, she will not say which, professional ethics. Blink, and she's gone up the stairwell, and classroom 102 holds a silence interrupted only by boys' heavy panting.</p>
<<speech "Devin" "It fucking works! Racism works! Hooray!">>
<p>After the laughter dies down and everyone picks their clothes off the floor, Aaron is already looking into the future.</p>
<<speech "Terrence" "...Aight. Doctrine confirmed. So who do we do next?">>
<<speech "Aaron" "Evil MILF energy. Click-click-click.">>
<p>The principal. You remember that it was her poster next to Amber's in their incel lair. But for now, you keep your face neutral.</p>
<<speech "You" "When the time comes, I'll let you know. And for now - class dismissed.">>
<<statchange "energy" -3>>
<<set $incel_stage = 11>>
<<set $incel_next_day = $day + 2>>
[[Back to the hallway|Hallway]]
<</if>><<if ndef $incel_gangbang_arranged>><<set $incel_gangbang_arranged = false>><</if>>
<p>Everything below is spoilers - open only what you need.</p>
<div class="guide">The stats, in short: <span class="stat-name">Money</span> pays for everything; <span class="stat-name">Energy</span> limits your actions per day (sleep restores it); <span class="stat-name">Physical</span> is health and strength in one - keep it above 0; <span class="stat-name">Respect</span> is your name in the hood and gates the main quest; <span class="stat-name">Knowledge</span> unlocks later; comes from study and opens smarter options; <span class="stat-name">Heat</span> is police attention - too much locks the blockpost, so lay low or pay Adriana to scrub it.</div>
<<nobr>>
<details class="spoiler"><summary>Main quest</summary>
<<if $target1 == 0>>
<<if $respect < 50>>
<div class="guide-next">Jamal wants your name to mean something before he puts real work in your hands. Respect $respect/50 - coach the gym rookies, work the bar room, and above all rebuild the community library with Ella (the big payout).</div>
<<else>>
<div class="guide-next">Your name carries now. A manila folder is waiting at the hideout door - read it.</div>
<</if>>
<<elseif $target1 == 1>>
<div class="guide-next">Jamal's letter names Mrs. Bond. Take the bus to Adriana's lair and talk business: $100 in cash, or $50 plus the "muscle service" she offers. The service needs 50 physical and 40 respect to pull off cleanly, or 80 respect if you go in out of shape - either way it costs respect and raises heat.</div>
<<elseif $target1 == 2>>
<div class="guide-next">The deal is made. See Adriana again ("Talk business") to collect her laptop, then head home to start the operation.</div>
<<elseif $target1 == 3>>
<<if $savannah_approach == 0>>
<div class="guide-next">Corrupt Mrs. Bond from the hideout laptop: check the cameras, then one action per day. Interracial interest $savannah_blacked/7, affairs $savannah_cheating/7 - either at 7 unlocks its final approach ("Black Lover" solo via affairs, "Snowbunny for two" with Jamal via interracial).<<if $savannah_action_made == 1>> Today's action is spent - sleep on it.<</if>></div>
<<else>>
<div class="guide-next">The approach is chosen and the pieces are set. Start the operation from the hideout: "Fuck the police(man's wife)".</div>
<</if>>
<<elseif $target1 >= 4>>
<<if $school_unlocked == 0>>
<div class="guide-next">Mrs. Bond is handled. <<if $nextday == 1>>Sleep first, then check<<else>>Check<</if>> the hideout laptop - Jamal has news about what comes next.</div>
<<elseif $school_unlocked == 1>>
<<if $hacker_level >= 6>>
<div class="guide-next">Adriana is fully entertained - visit her lair and ask for the fake ID ("Talk business").</div>
<<else>>
<div class="guide-next">Jamal needs you papered. Adriana only prints a fake ID once you've fully entertained her - she's at level $hacker_level of 6. Her spoiler below says what she wants next.</div>
<</if>>
<<elseif $school_unlocked == 2>>
<div class="guide-next">ID in hand. Text Jamal from the hideout laptop and pick a meeting spot - the bar always works; the library option needs your future with Ella decided.</div>
<<elseif $school_job == 0>>
<div class="guide-next">Meet Jamal at the <<if $school_intro_location == "library">>library<<else>>bar<</if>> and follow his plan into the school.</div>
<<elseif $pollock_stage >= 4>>
<div class="guide-next">Pollock is finished. The main quest now follows her security key to the girl whose name it pulled up - see the Pollock, "Warden's daughter" and "School servers" spoilers. The janitor job still pays $5 for every day you complete at least one work order, up to $25 a week.</div>
<<else>>
<div class="guide-next">You're inside the school as the janitor. The job pays $5 for every day you complete at least one work order, up to $25 a week (the envelope lands on a sleep, wherever you slept - a week without shifts pays nothing). The main quest now runs through the school: build reputation (currently $school_rep), secure the detention post, and dig under Principal Pollock - see the school spoilers.</div>
<</if>>
<</if>>
<p class="guide-later">The full road: 50 respect - Jamal's letter - Adriana's fee - corrupt Mrs. Bond - the operation - fake ID - the school job - Pollock.</p>
</details>
<details class="spoiler"><summary>Ella</summary>
<<switch $ella_stage>>
<<case 0>>
<div class="guide-next">A redhead drinks alone at the bar. Talk to her - she used to run the library the Oath Boys burned.</div>
<<case 1>>
<div class="guide-next">Start the library rebuild (from The Hood), then tell her about it at the bar.</div>
<<case 2 3>>
<div class="guide-next">Keep the library rebuild moving. Her next scenes trigger at the site as the renovation comes along.</div>
<<case 4 5>>
<<if $day >= $ella_next_day>>
<div class="guide-next">The grand opening is today. Be at the library - and stay past closing.</div>
<<else>>
<div class="guide-next">The grand opening is tomorrow. Sleep, then be at the library - and stay past closing.</div>
<</if>>
<<case 6>>
<div class="guide-next">She's buried in library work until your first job for Jamal is done. Finish the Mrs. Bond operation, then come find her.</div>
<<case 7>>
<div class="guide-next">Her desk says "brb" and means it. She's drinking again - check the bar.</div>
<<case 8 9>>
<div class="guide-next">You promised her a date. You need $50 (you have <<print "$" + $money>>) and 60 respect (you have $respect) - then meet her at the bar<<if $day < $ella_next_day>>, starting tomorrow<</if>>.</div>
<<case 10>>
<div class="guide-next">She's waiting on your answer at the bar. Choosing to leave together ends the game; convincing her to stay (and to share you) takes 10 knowledge - you have $knowledge.</div>
<<case 11>>
<<if $knowledge >= 20>>
<div class="guide-next">You've read enough. Find Ella at the library and talk about it.</div>
<<else>>
<div class="guide-next">Raise your knowledge to 20 (you have $knowledge) - study, then find her at the library.</div>
<</if>>
<<case 12>>
<<if $william_stage == 6 && $pollock_stage >= 4>>
<div class="guide-next">She's keeping to her flat after the night downtown. Check on her from the library or the bar (3 energy). What you tell her about the school decides how the visit ends.</div>
<<elseif $ella_mmf_stage == 1>>
<div class="guide-next">Ella wants to talk at the library - about you, her, and Jamal.</div>
<<elseif $ella_mmf_stage == 2>>
<div class="guide-next">She said yes. Text Jamal about the threesome from the hideout laptop on a fresh day.</div>
<<elseif $ella_mmf_stage == 3>>
<div class="guide-next">The threesome is arranged - see it through.</div>
<<else>>
<div class="guide-next">End of Ella's content for now. Stay tuned!</div>
<</if>>
<<case 13>>
<<if $ella_swap_verdict == 1>>
<div class="guide-next">She asked to be alone. End of Ella's content for now.</div>
<<else>>
<div class="guide-next">End of Ella's content for now. Stay tuned!</div>
<</if>>
<<case -1>>
<div class="guide-next">You're leaving together. Gather the road fund:
<ul>
<li>A car - <<if $ella_end_car == 1>>marked and ready<<else>>scout one in The Hood<</if>></li>
<li>Construction site loot - <<if $ella_end_construction == 1>>taken<<else>>still there<</if>></li>
<li>Warehouse packages - <<if $ella_end_warehouse == 1>>taken<<else>>still there<</if>></li>
<li>The bar's cash - <<if $ella_end_bar == 1>>taken<<else>>still there<</if>></li>
<li>Adriana's electronics - <<if $ella_end_hacker == 1>>pocketed<<else>>still there<</if>></li>
</ul>
Then hit the road with Ella.</div>
<<default>>
<div class="guide-next">Ella's story is moving - find her at the library or the bar.</div>
<</switch>>
</details>
<details class="spoiler"><summary>Adriana (the hacker)</summary>
<<switch $hacker_level>>
<<case 0>>
<div class="guide-next">You'll meet her through the main quest - Jamal's letter arrives at 50 respect.</div>
<<case 1>>
<div class="guide-next">She offered to let you practice your "blacking skills" on her. Take her up on it - "Do pleasure" at the lair.</div>
<<case 2>>
<div class="guide-next">Blowjobs only for now - keep visiting "Do pleasure"; after enough practice she'll consider going further. Each scene costs 3 energy, and she's good for two a day, so one bus trip can buy two steps.</div>
<<case 3>>
<div class="guide-next">She's curious now. Next visit, pick "I REALLY want to try something else".</div>
<<case 4>>
<div class="guide-next">Facefucks are on the menu - keep at it (3 energy each, two a day). She's "training her other hole" in the meantime.</div>
<<case 5>>
<div class="guide-next">Next visit, "It's time to talk": she has a gloryhole fantasy. See it through to the end - finishing it is what fully wins her over (and unlocks the fake ID).</div>
<<case 6>>
<div class="guide-next">She has one last invitation waiting at the lair. Next visit, pick "Fuck her at last" - after that, her pussy is on the menu too.</div>
<<case 7>>
<<if $hacker_sex_level >= 3>>
<div class="guide-next">She's ready to talk about the one hole she hasn't given you yet. Next visit: "Do pleasure", go from there.</div>
<<else>>
<div class="guide-next">"Pound her pussy" (3 energy, one of her two daily scenes) keeps her story moving: after 3 times (now $hacker_sex_level/3) she brings up her other hole. "Watch her anal practice" is free while she trains it. On the business side she makes fake IDs for the main quest, preps room 021 materials, and takes the Madi job once Pollock is finished (see "School servers").</div>
<</if>>
<<case 8>>
<<princessboard>>
<div class="guide-next">She wants her princess night done properly. The dress and the heavy-duty lube are the only must-haves; the extras unlock extra options. Where things come from:
<ul>
<li>Her cart, at the lair ("Go through her princess cart"): cash on the spot, $50 for the essentials or $135 for everything, delivered to her lair the next day.</li>
<li>Vittoria, once she owes you a blind eye at the warehouse, reroutes whatever is left in the cart for free during a shift.</li>
<li>The front office at school keeps a confiscation tub: afternoon, from the Hallway, 3 school reputation (needs the school job).</li>
<li>Earl at the bar cuts tubing: free once he knows your name, otherwise the price of a round ($5).</li>
</ul>
Once the essentials are at her lair: "Do pleasure", then "The princess is ready". The night wants a fresh day (no other scene with her first) and 5 energy.</div>
<<case 9>>
<div class="guide-next">Her princess night is done, and so is her story for now. "Pound her pussy" is still on the menu. On the business side she makes fake IDs, preps room 021 materials, scrubs heat, and takes the Madi job once Pollock is finished (see "School servers").</div>
<<default>>
<div class="guide-next">End of her content for now - but she still works: fake IDs for the main quest, heat scrubbing, and the Madi job once Pollock is finished (see "School servers").</div>
<</switch>>
<<if $hacker_level >= 2>>
<p class="guide-later">Service: from level 2 she scrubs heat for cash (price scales with heat, 3-day cooldown<<if $day < $scrub_next_day>> - next run on day $scrub_next_day<</if>>; girlfriend prices at level 5+).</p>
<</if>>
<<if $hacker_level >= 1 && $hacked_had_sex_today >= 2>>
<p class="guide-later">She's spent for today - come back tomorrow.</p>
<<elseif $hacker_level >= 1 && $hacked_had_sex_today == 1>>
<p class="guide-later">One more scene with her today if you have 3 energy for it.</p>
<</if>>
</details>
<details class="spoiler"><summary>Savannah, Mrs. Bond</summary>
<<if $target1 < 3>>
<div class="guide-next">The policeman's trophy wife - the main quest's first target. You'll reach her through Jamal's letter and Adriana's laptop.</div>
<<elseif $target1 == 3>>
<<if $savannah_approach == 0>>
<div class="guide-next">Work her from the hideout laptop, one action a day: pop-ups first, then porn links (interest 2+), then the toy delivery (interest 4+, $20). Interracial $savannah_blacked/7, affairs $savannah_cheating/7. Don't skip the cameras - watching her react is worth knowledge.<<if $savannah_action_made == 1>> Today's action is spent.<</if>></div>
<<else>>
<div class="guide-next">The approach is locked in. Start the operation from the hideout and follow it through her bedroom.</div>
<</if>>
<<else>>
<div class="guide-next">The operation is done and her husband's world is rubble. End of her content for now.</div>
<</if>>
</details>
<details class="spoiler"><summary>School: Principal Pollock</summary>
<<if $school_job == 0>>
<div class="guide-next">The school - and its principal - opens through the main quest.</div>
<<else>>
<<switch $pollock_stage>>
<<case 0>>
<div class="guide-next">You're beneath her notice, for now. School rep $school_rep/2 - clear morning work orders until the intercom calls you up.</div>
<<case 1>>
<<if $master_key >= 3 && not visited("Pollock Office Search")>>
<div class="guide-next">You hold the full master key. In the afternoon, while her Tesla is gone, let yourself into her office - the biggest leverage in the building lives behind her bottles.</div>
<<elseif $pollock_leverage >= 3>>
<div class="guide-next">You have something on her (leverage $pollock_leverage/10) - enough to knock on her door in the afternoon. Fair warning: it will not go the way you rehearsed, but it has to happen. Meanwhile: master key $master_key/3 pieces, from risky work orders - at least one piece every 15 orders.</div>
<<else>>
<div class="guide-next">Dig for dirt: leverage $pollock_leverage/10. Risky work orders and school events feed it, Tommy's stories add more - and once a day, an afternoon favor below decks (5 school rep, 2 energy) buys a guaranteed piece, up to 8/10. Master key pieces ($master_key/3) come from risky work orders too, at least one every 15.</div>
<</if>>
<<case 2>>
<<if $pollock_leverage >= 10 && $master_key >= 3>>
<div class="guide-next">You have all of it. Afternoon, her office - and this time you don't knock.</div>
<<else>>
<div class="guide-next">Half-measures failed - now you need everything: leverage $pollock_leverage/10, master key <<if $master_key >= 3>>complete<<else>>$master_key/3<</if>>. Leverage keeps coming from risky work orders, the daily below-decks favor (5 school rep, up to 8/10), her office (with the full key), and watching her lunch hour every few days.<<if $master_key < 3>> Key pieces only come from risky work orders, at least one every 15.<</if>> Once you have both, walk into her office in the afternoon.</div>
<</if>>
<<case 3>>
<<if $pollock_route == 0>>
<<if $day >= $pollock_next_day>>
<div class="guide-next">She's waiting. Afternoon, blinds down, her door unlocked: walk in and hear her terms. She won't take a blackmail arrangement, and she'll make you pick the shape this takes: her alone with you (always available), or the room 021 boys (needs the club taught your way, to the end - see the detention spoiler).</div>
<<else>>
<div class="guide-next">You cornered her yesterday and she asked for the night. Her door opens to you tomorrow afternoon.</div>
<</if>>
<<elseif $pollock_route == 2>>
<<if $day >= $pollock_next_day>>
<div class="guide-next">Today, in daylight: exit the school and her car is in the fire lane with the engine running (3 energy). She drives you to her house with the building still full. It's Wednesday, so her husband is home, and in the living room you choose whether Marcello stays in the chair and watches or gets sent out of the room - that picks which of two different scenes you get.</div>
<<else>>
<div class="guide-next">It's set for tomorrow afternoon, in daylight, which was your idea. Go to the Hallway in the afternoon and her car will be waiting.</div>
<</if>>
<<elseif not $pollock_group_done>>
<<if $day >= $pollock_next_day>>
<div class="guide-next">Afternoon, from the Hallway: collect her from her office (2 energy). You walk her up to room 214 and you don't stay. If you've met her husband, you decide on the way whether Marcello gets sent up to watch - it changes what the boys have to tell you.</div>
<<else>>
<div class="guide-next">It's arranged for tomorrow afternoon. Collect her from her office when the day comes.</div>
<</if>>
<<elseif $day >= $pollock_next_day>>
<div class="guide-next">Room 021, afternoon. The boys have a report and a phone on the desk (2 energy).</div>
<<else>>
<div class="guide-next">It happened last night. The boys will have a report tomorrow afternoon in room 021 - they always do.</div>
<</if>>
<<if $pollock_stage == 3 && $pollock_husband < 1>>
<p class="guide-later">You've never met her husband. Meeting him first changes how the finale plays - see the civics room.</p>
<</if>>
<<case 4 5>>
<<if $pollock_stage == 4>>
<<if $day >= $pollock_next_day>>
<div class="guide-next">A pink slip from her office is waiting in your timesheet - Hallway, in the morning.</div>
<<else>>
<div class="guide-next">She'll send for you: a pink slip lands in your timesheet on the morning of day $pollock_next_day (Hallway, morning).</div>
<</if>>
<<else>>
<div class="guide-next">The dirty jobs are off your morning board. In their place is an open work order (2 energy): it counts as a shift and pays no reputation, but something always turns up while you walk the building.</div>
<<if $day >= $pollock_slip_day>>
<div class="guide-next">Her pink slip is waiting. Answer it at the front office any time before evening (3 energy); the next one comes three days later.</div>
<<else>>
<div class="guide-next">Her next pink slip arrives on the morning of day $pollock_slip_day. Answer it at the front office any time before evening (3 energy).</div>
<</if>>
<<if $incel_path == 2 && $incel_stage >= 11>>
<p class="guide-later">With the room 021 boys trained, some of her slips call them in too.</p>
<</if>>
<</if>>
<<if $database_access == 1>>
<div class="guide-next">She's yours, and so is her keycard and the security key zip-tied to it - except you have no idea what the key opens. Afternoon, from the Hallway: ask Terrence to use it on a school machine (1 energy). How he takes the name depends on which way you steered the room 021 boys.</div>
<<elseif $database_access == 2>>
<div class="guide-next">You have the name off a borrowed laptop. Report it to Jamal from the hideout laptop before anything else.</div>
<<elseif $database_access == 3 && $server_stage == 0>>
<div class="guide-next">Jamal signed off. Take the bus to Adriana's lair with the card and the key and talk business - she has a price you won't expect. See "School servers".</div>
<<else>>
<div class="guide-next">Pollock is finished and her access is in Adriana's hands. The rest of this arc runs through the "Warden's daughter" and "School servers" spoilers below.</div>
<</if>>
<</switch>>
<<if $pollock_husband == 0 && $pollock_stage >= 1 && $pollock_stage < 3>>
<p class="guide-later">Also: something's going on outside the civics room. Her husband is worth a look.</p>
<<elseif $pollock_husband == 1 && $pollock_stage == 2>>
<p class="guide-later">At lunch, when Marcello's sad Corolla is in the visitor lot, take a quiet look at her office door.</p>
<<elseif $pollock_husband >= 2 && $pollock_stage == 2 && $pollock_leverage < 10>>
<p class="guide-later">Her lunch hour keeps its schedule - the gap in the blind pays out fresh leverage every few days.</p>
<</if>>
<</if>>
</details>
<details class="spoiler"><summary>School: Mrs. Albright</summary>
/* Read-only: the walkthrough never calls <<albrightcheck>>, which can impose
a restriction. The active restriction is worked out inline. */
<<set _wab = $albright_block > 0 && $day < $albright_block_until ? $albright_block : 0>>
<<if $albright_stage == 0>>
<div class="guide-next">For now she's only the arrogant English teacher. That changes once Pollock is yours and the building hears something it shouldn't.</div>
<<if $albright_notes.length > 0>>
<p class="guide-later">She's already noticed some of the louder things you've done around the building. Once her file opens, it opens with them in it (up to 6).</p>
<</if>>
<<elseif $albright_stage == 1>>
<div class="guide-next">The intercom opened her file. She'll introduce herself by your cart once the hallway has finished talking about it.</div>
<<else>>
<div class="guide-next">She files everything she sees a janitor do where he has no business being: loud choices, the principal's favors, corridors no work order sent you down. Her file is at $albright_heat. At 4 she spends it on a restriction, one at a time and in turn: an aide at your elbow (no open work orders, no pink slips<<if $madi_stage >= 3>>, no afternoon favors for Madi<</if>>), a basement rekey (room 021 and Terrence<<if $madi_stage >= 3>>, and no locker plants<</if>>), or the late shift (no morning board, cafeteria or detention<<if $madi_stage >= 3>>, and no sightings of Madi or her afternoon favors<</if>>)<<if $madi_stage >= 3>>, or, now that Madi's file is open, the yearbook's archive boxes in your closet (no couch, no closet sleep, no visitors)<</if>>. Each lasts 3 days, the late shift 2, and at least one clear day follows.</div>
<div class="guide-next">Below decks, in the afternoon, a favor (<<if $dirty_retired == 1>>3<<else>>5<</if>> school rep, 2 energy) lifts a restriction early, or with none active takes 3 off her file. Left alone, her file also thins by 1 after three quiet days.</div>
<<if _wab > 0>>
<div class="guide-next">Right now: <<if _wab == 1>>the aide<<elseif _wab == 2>>the basement rekey<<elseif _wab == 3>>the late shift<<else>>the yearbook's boxes in your closet<</if>>, until day $albright_block_until.<<if $albright_stage == 2>> You could ask Pollock to deal with her - front office.<</if>></div>
<</if>>
<<if $albright_block > 0 && not $fall_seen.includes("confrontation")>>
<div class="guide-next">She wants a word with you about what's in her file: look for her in the Hallway before evening.</div>
<</if>>
<</if>>
</details>
<details class="spoiler"><summary>School: Britney Amber (the counselor)</summary>
<<if $school_job == 0>>
<div class="guide-next">You'll meet the counselor once you're working the school (main quest).</div>
<<elseif $amber_stage == 0>>
<div class="guide-next">School rep $school_rep/4 - earn it and she'll step in for you by the trophy case.</div>
<<elseif $amber_stage <= 3>>
<div class="guide-next">Visit her office in the afternoon - one "session" at a time<<if $day < $amber_next_day>>; she's booked today, come back tomorrow<</if>>.</div>
<<elseif $amber_stage == 4>>
<div class="guide-next">She's getting you a promotion. Give her a day or two, then stop by the office<<if $day < $amber_next_day>> (not today)<</if>>.</div>
<<elseif $amber_stage == 5>>
<div class="guide-next">She's been planning a thank-you for the couch session - visit her office<<if $day < $amber_next_day>> (she's booked today, come back tomorrow)<</if>>. Only after it does the coach's idea open up.</div>
<<else>>
<<if $incel_path == 1 && $incel_stage == 8 && not $incel_deprogram_arranged>>
<div class="guide-next">The deprogramming graduation needs Amber. Visit Britney's office in the afternoon to arrange her workshop.</div>
<<elseif $incel_path == 2 && $incel_stage == 10 && not $incel_gangbang_arranged>>
<div class="guide-next">The room 021 boys are ready for their final exercise. Visit Britney's office in the afternoon and arrange it with her.</div>
<<elseif $amber_shared == 1>>
<div class="guide-next">Tommy said yes. Britney gets the final vote - her office, afternoon.</div>
<<elseif $amber_shared == 2>>
<div class="guide-next">It's on: stay late in the gym wing when Tommy locks up - her office light will be on.</div>
<<elseif $amber_shared == 3>>
<div class="guide-next">The office arrangement stands - stay late in the gym wing whenever Tommy locks up.</div>
<<else>>
<div class="guide-next">The sessions are a standing arrangement.</div>
<</if>>
<<if $madi_stage >= 3>>
<p class="guide-later">She also books Madi Collins sessions for you - see "Warden's daughter".</p>
<<else>>
<p class="guide-later">Once Madi Collins' file is open, she can book the girl a session.</p>
<</if>>
<</if>>
</details>
<details class="spoiler"><summary>School: Coach Gunn</summary>
<<if $school_job == 0>>
<div class="guide-next">The gym wing opens with the school job (main quest).</div>
<<else>>
<p class="guide-later">The gym wing is an afternoon round, once a day. Your closet keeps the running numbers: standing, Pollock leverage, master key.</p>
<<if $gunn_trust == 0>>
<div class="guide-next">Coach: swing by the gym wing in the afternoon. Fold the bleachers in first, not after.</div>
<<elseif $gunn_trust == 1 && $gunn_case == 0>>
<div class="guide-next">Coach: go back to the gym wing - a vape accusation is about to bury him. You know which trash bag holds the proof (2 energy to dig it out), but will you act on it?</div>
<<elseif $gunn_case == -1>>
<div class="guide-next">Coach: you stayed out of his case. His door stays polite - and shut.</div>
<<elseif $gunn_trust == 3>>
<div class="guide-next">Coach: he owes you his pension. Take the after-hours beer in his office (gym wing) - and when the flag comes up, pick your ground. His story only moves once you have.</div>
<<elseif $gunn_sticker == 1>>
<div class="guide-next">Coach: you pressed him on the sticker. Give it a day or two, then swing by the gym wing and look at the truck.</div>
<<else>>
<div class="guide-next">Coach: Friday-night friends now. Once you're deep enough with Britney, he has an idea worth hearing (see her spoiler).</div>
<</if>>
<<if $gunn_case == 1 && setup.madi.keylogDue()>>
<p class="guide-later">He keeps the gym wing's key log, and Madi's story needs what's on it - see "Warden's daughter".</p>
<</if>>
<</if>>
</details>
<details class="spoiler"><summary>School: detention and room 021</summary>
<<if not $detention_job>>
<div class="guide-next">Room 019 needs a supervisor, and Britney's arc gets you the post (her stage 4). </div>
<<else>>
<<switch $incel_stage>>
<<case 0>>
<div class="guide-next">Check afternoon detention from the Hallway. The roster is rolled once per school day: 33% of days are clear; on staffed days the four seniors arrive together half the time. Meet them when their names are on the list.</div>
<<case 1>>
<div class="guide-next">Catch the boys on another detention day. Terrence has been reading them their scripture, and it is time to take it apart (requires knowledge 20). Other students and clear rosters are still regular detention days, not a reset.</div>
<<case 2>>
<div class="guide-next">The boys want back into their old fort - room 021, from the Hallway in the afternoon. The new lock needs the master key (<<if $master_key >= 1>>yours already turns it<<else>>at least 1/3 - risky extra work orders at the school build it<</if>>).</div>
<<case 3>>
<div class="guide-next">They've earned the real answer. Back to room 021 (give it a day or two between visits) - and know that the fork you pick there sticks: talk them out of the ideology, or teach them your way.</div>
<<case 5>>
<<if $incel_path == 1>>
<div class="guide-next">The de-programming talks begin in room 021. Start by talking through the forum's claims and the harm they do.</div>
<<else>>
<div class="guide-next">The next lesson needs Adriana's kink packet. Visit her lair and pick up the room 021 materials; she keeps them locked until her final lair invitation is complete. Then give the boys a day to prepare before returning to room 021.</div>
<</if>>
<<case 6>>
<<if $incel_materials == 0>>
<div class="guide-next">The next session needs material from Adriana. Visit her lair and pick up the room 021 packet, then give the boys a day to prepare.</div>
<<elseif $incel_path == 1>>
<div class="guide-next">Adriana's meme packet is ready. Take it to room 021 for another de-programming talk about rejection, friendship, and seeing women as people.</div>
<<else>>
<div class="guide-next">Adriana's kink packet is ready. Take it to room 021 for the BBC, BNWO, and Queen of Spades overview - fantasy, consent, and boundaries first.</div>
<</if>>
<<case 7>>
<<if $incel_path == 1>>
<div class="guide-next">Run one more de-programming talk in room 021. It uses another of Adriana's memes, with the same focus on rejection, friendship, and seeing women as people.</div>
<<else>>
<div class="guide-next">The kink overview is done. Room 021 now hosts the group-preparation session for the three adult seniors.</div>
<</if>>
<<case 8>>
<<if $incel_path == 1>>
<<if $amber_stage < 6>>
<div class="guide-next">The two meme talks are done. Finish Amber's office arc before the boys can graduate.</div>
<<elseif not $incel_deprogram_arranged>>
<div class="guide-next">The boys are ready for graduation. Visit Amber's office in the afternoon to arrange the date-line workshop.</div>
<<elseif $day < $incel_next_day>>
<div class="guide-next">Amber booked the graduation workshop for tomorrow. Return to room 021 then.</div>
<<else>>
<div class="guide-next">Amber is ready. Return to room 021 for the graduation workshop (2 energy).</div>
<</if>>
<<else>>
<div class="guide-next">The group preparation is complete. Give the boys a couple of days, then return to room 021 for a separate comfort session.</div>
<</if>>
<<case 9>>
<<if $incel_path == 1>>
<<if $mom_thanks == 0>>
<div class="guide-next">The boys have graduated and room 021 is theirs now. One final thank-you remains: a woman in a church coat waits by the maintenance office in the afternoon.</div>
<<else>>
<div class="guide-next">The boys have graduated. They are doing their own thing now; you gave them what you could.</div>
<</if>>
<<else>>
<div class="guide-next">The comfort session is complete. Give the boys a couple of days, then return to room 021 for the private masturbation session.</div>
<</if>>
<<case 10>>
<<if $amber_stage < 6>>
<div class="guide-next">The private masturbation session is complete. Finish Britney Amber's office arc before the final exercise can be proposed.</div>
<<elseif not $incel_gangbang_arranged>>
<div class="guide-next">The boys are ready, but the graduation must be arranged first. Visit Britney Amber in the counselor's office in the afternoon, then return to room 021.</div>
<<else>>
<div class="guide-next">Amber approved the graduation exercise. Return to room 021 for the final session (3 energy).</div>
<</if>>
<<default>>
<<if $incel_path == 1>>
<<if $mom_thanks == 0>>
<div class="guide-next">The boys have graduated. A woman in a church coat still waits by the maintenance office in the afternoon.</div>
<<else>>
<div class="guide-next">The boys have graduated and are doing their own thing now. You gave them what you could.</div>
<</if>>
<<else>>
<div class="guide-next">The club graduated your way.</div>
<</if>>
<</switch>>
<div class="guide-later">Detention itself costs 2 energy and earns 1 school reputation whenever students are present. Its six rotating room-019 events vary with your reputation; when the boys are assigned after room 021 is open, the club is unavailable that day. Run the session, wait for tomorrow, or spend 3 school reputation in room 019 to clear all four.</div>
<</if>>
</details>
<details class="spoiler"><summary>School: Linda</summary>
<<if not $detention_job>>
<div class="guide-next">Linda's story starts only after Britney's arc gives you the detention post.</div>
<<elseif $linda_stage == 0>>
<<if $school_rep < 10>>
<div class="guide-next">Build school reputation to 10.</div>
<<else>>
<div class="guide-next">Check room 019 on an afternoon with a clear detention roster.</div>
<</if>>
<<elseif $linda_stage == 1>>
<<if $day < $linda_next_day>>
<div class="guide-next">Linda asked for time to think. Give her a couple of days, then return to your school closet.</div>
<<else>>
<div class="guide-next">Linda is already in your closet, waiting for the second session.</div>
<</if>>
<<elseif $linda_stage == 2>>
<<if $incel_path != 2 && $madi_stage >= 7>>
<div class="guide-next">On the deprogramming path, Linda's last scene came through Madi Collins, and that chance closed with Madi's night.</div>
<<elseif $incel_path != 2 && $madi_stage >= 3>>
<div class="guide-next">On the deprogramming path, Linda's last scene comes through Madi Collins: once Madi has found out about Grayson and her Curiosity is at 7, ask Linda at lunch to bring her to your closet - see "Warden's daughter".</div>
<<elseif $incel_path != 2>>
<div class="guide-next">The deprogramming path doesn't open the room 021 finale. Linda's last scene comes later, through the girl Pollock's security key leads you to.</div>
<<elseif $incel_stage < 11>>
<div class="guide-next">Linda wants the room 021 finale, but first finish the boys' embrace route and its graduation exercise.</div>
<<elseif $day < $linda_next_day>>
<div class="guide-next">The boys are ready, but Linda needs one night before the room 021 invitation. Return tomorrow.</div>
<<else>>
<div class="guide-next">Room 021 is open for Linda's final session. Visit the club in the afternoon.</div>
<</if>>
<<else>>
<div class="guide-next"><<if $incel_path == 2>>Linda has had her room 021 initiation.<<else>>Linda brought Madi Collins to your closet.<</if>> Her school story is complete.</div>
<</if>>
<<if $linda_stage >= 2 && $madi_stage >= 3>>
<p class="guide-later">She shares a locker room with Madi Collins, and she'll work on her for you - see "Warden's daughter".</p>
<</if>>
</details>
<details class="spoiler"><summary>William and Agatha</summary>
<<if $william_stage == 0>>
<div class="guide-next">Not started. Establish an open relationship with Ella, then meet the four boys in detention once and leave the school through the Outside passage. Devin's father is waiting near the pickup line, and he is someone from your past.</div>
<<elseif $william_stage == 1>>
<div class="guide-next">William gave you his number and wants to drink. He's waiting at the bar<<if $day < $william_next_day>> - give it a day<</if>>.</div>
<<elseif $william_stage == 2>>
<<if $ella_stage >= 11>>
<div class="guide-next">He invited you and Ella to dinner. Tell Ella about it at the library to set it up.</div>
<<else>>
<div class="guide-next">He invited you and Ella to a double date - but you'd want your future with Ella settled first (her arc needs to reach its late stage). The invitation keeps.</div>
<</if>>
<<elseif $william_stage == 3>>
<div class="guide-next">The dinner is set. Go to it from The Hood<<if $day < $william_next_day>> in a couple of days<</if>>.</div>
<<elseif $william_stage == 4>>
<div class="guide-next">Ella made her wishes clear. William turns up at the school himself<<if $day < $william_next_day>> in a day or so<</if>> - look for him in the afternoon Hallway.</div>
<<elseif $william_stage == 5>>
<div class="guide-next">It's arranged: Agatha booked a downtown suite. Head out from The Hood<<if $day < $william_next_day>> tomorrow<</if>>.</div>
<<elseif $william_stage == -1>>
<div class="guide-next">You kept the visit with William casual and chose not to pursue Ella's proposal. There is no repeat visit in this build.</div>
<<else>>
<div class="guide-next">The night with William and Agatha is complete. There is no repeat visit in this build - but Ella will want checking on once the Pollock business at the school is settled.</div>
<<if setup.madi.williamDue()>>
<p class="guide-later">He'd join Madi's night across the wall if you text him - see "Warden's daughter".</p>
<</if>>
<</if>>
</details>
<details class="spoiler"><summary>Warden's daughter</summary>
<<if $madi_stage >= 3>>
<div class="guide-next">Her file opens in two places: the hideout laptop, and the burner phone in your school closet. Once a day you can push her feed (+1 to Curiosity or Spite, your pick; from 2 on either meter the pushes become whispers, still one meter at a time), and once a day you can check the house cameras. Some of what they catch moves her too. Both meters run to <<= setup.madi.max>>, a push for a full meter disappears, and once you've chosen her ending you leave her feed alone.</div>
<<if setup.madi.dark()>>
<div class="guide-next">Right now Adriana's box is dark: a district update reset the port it sits on, so there are no pushes and no camera checks until Terrence puts it back (Hallway, Basement, afternoon, 1 energy<<if $albright_block == 2 && $day < $albright_block_until>>, once Mrs. Albright's rekey lifts on day $albright_block_until<</if>>).</div>
<</if>>
<<if setup.madi.top() < 4>>
<div class="guide-next">From 4 on either meter, the store in her file opens: four packages at $20-35, one of each, sent to her locker or to her house. Each one unlocks new footage, and the house means her stepmother signs for it first.</div>
<<else>>
<div class="guide-next">The store in her file is open: four packages at $20-35, one of each, sent to her locker or to her house. Each one unlocks new footage, and the house means her stepmother signs for it first. A locker delivery lands in your closet the next day, and an open work order gets it into her locker.</div>
<</if>>
<div class="guide-next">At school she shows how far she has come, and what you've sent her: look for her in the cafeteria at lunch (free), or at her locker on the east corridor at last bell (Hallway, afternoon, 2 energy).</div>
<div class="guide-next">One favor a day works on her, whoever it comes from. It lands the next day and waits until you collect it:
<ul>
<li>Pollock's signed blanks, in your closet from her first pink slip<<if $pollock_stage < 5>> (not yet)<</if>>, once either meter is at 3. Each one lands the next day and adds 1 to Mrs. Albright's file:
<ul>
<li>Detention: Madi is on your roster the next afternoon (room 019, 2 energy, Curiosity +2). It needs the detention post, and a new blank can go in 3 days after her hour.</li>
<li>The yearbook's unsung-heroes page, once: Pollock brings her down to photograph you the next afternoon (1 energy, Curiosity +2).</li>
<li>Grayson summoned, once, after you've met her and before either way to the truth has started: Madi waits on the bench outside Pollock's office with him (afternoon, 1 energy, Spite +2).</li>
<li>The equipment room, once, when you have the minute (see below).</li>
</ul></li>
<li>Britney, once her couch arc is done<<if $amber_stage < 6>> (not yet)<</if>>: she books Madi a session, three themes, each once. Her notes wait at her office from the next afternoon (2 energy, +2 to Curiosity or Spite, depending on the theme).</li>
<li>Linda, after her second visit<<if $linda_stage < 2>> (not yet)<</if>>: catch her at lunch (1 energy). She reports in your closet the next day (Curiosity +2) and can try again 3 days later.<<if not $madi_seen.includes("lindaffm") && $madi_stage < 7>> Once Madi has found out about Grayson and her Curiosity is at 7<<if $madi_reveal > 0 && $madi_curiosity >= 7>> (it is)<</if>>, the same ask can have Linda bring her to your closet herself, once: they come at last bell the next afternoon (2 energy, Curiosity +3).<</if>></li>
</ul></div>
<<if $pollock_stage >= 5>>
<div class="guide-next">The open work order on the morning board (2 energy) can go to Madi instead of the building: plant a locker delivery, pull her school file from the records annex (once), or sit an hour in the yearbook room with her proofs.</div>
<</if>>
<<if $madi_stage == 3>>
<div class="guide-next">Her first detention hour or the unsung-heroes shoot, whichever comes first, is the first time you meet.</div>
<<elseif $madi_stage == 4>>
<<if not setup.madi.knows("affair")>>
<div class="guide-next">You've met her. Adriana is reading Grayson's phone off the school wifi: open the Madi file <<if $day < $madi_next_day>>on day $madi_next_day<<else>>now<</if>> to see what she found.</div>
<<elseif $madi_reveal == 0 && $madi_seen.includes("pulled")>>
<div class="guide-next">Grayson is cheating on her with Lola Fae, and you went with the footage, which closed the walk-in. <<if $day < $madi_next_day>>Adriana is cutting what Terrence pulled, and on day $madi_next_day you can drop it in Madi's DMs from her file<<else>>Adriana's cut is ready to drop in Madi's DMs from her file<</if>> (Spite +2, Curiosity +1). The next look through the house cameras shows her opening it.</div>
<<elseif $madi_reveal == 0 && setup.madi.pending("equipment")>>
<div class="guide-next">Grayson is cheating on her with Lola Fae, and you went with the walk-in, which closed Terrence's footage. <<if setup.madi.landed("equipment")>>The blank has landed: she walks into the equipment room at six-forty tonight, so be in the gym wing this evening (1 energy).<<else>>Pollock answers the blank in the morning, and that evening you need to be in the gym wing (1 energy).<</if>> She comes out of it +3 on whichever meter leads.</div>
<<elseif $madi_reveal == 0>>
<div class="guide-next">Grayson is cheating on her with Lola Fae, the goth girl from your detention room, and she finds out one of two ways. Starting one closes the other:
<ul>
<li>The walk-in (+3 to whichever meter leads). First you need the minute: <<if $madi_seen.includes("keylog")>>you have it<<elseif $gunn_case == 1>>Coach Gunn keeps the key log, so ask him in the gym wing in the afternoon<<if $gunn_trust < 4>>, once his after-hours beer is behind you<</if>><<else>>Coach Gunn won't help you, but an open work order's hour by the equipment room's sign-out sheet will<</if>>. Then a blank sends her to photograph the equipment room at six-forty, and you need to be in the gym wing that evening (1 energy).</li>
<li>The footage (Spite +2, Curiosity +1): Terrence pulls it off the recorder (room 021, afternoon, 1 energy), Adriana cuts it overnight, and you drop it in her DMs from her file. The next look through the house cameras shows her opening it.</li>
</ul></div>
<<if $pollock_stage >= 5 && not $madi_seen.includes("summons")>>
<p class="guide-later">Grayson's summons only fits in before either one has started.</p>
<</if>>
<<else>>
<div class="guide-next">She knows about Grayson. <<if $madi_reveal == 2 && not $madi_seen.includes("clipwatch")>>Look through the house cameras to see her open the clip. The day after that<<else>>From day $madi_next_day<</if>>, a look through the house cameras shows her father hearing about it at dinner (Spite +2).</div>
<</if>>
<p class="guide-later">Pollock can keep putting her in your detention hour every few days, and everything above keeps working on her.</p>
<<elseif $madi_stage == 5>>
<<if not $madi_seen.includes("facility9")>>
<div class="guide-next">Her father took Grayson's side, and her spite has moved on to him. Adriana is going through what he brings home from Facility 9: take the bus to her lair<<if $day < $madi_next_day>> from day $madi_next_day<</if>>. What she finds is a choice: send it to Madi from an account with no name (Spite +2 when she reads it), give it to her yourself and tell her who you are (Spite +3, at school the next afternoon), or keep it. Both endings remember which.</div>
<<elseif $madi_truth == 1 && not $madi_seen.includes("reports")>>
<div class="guide-next">The reports are in her DMs. <<if $day < $madi_next_day>>From day $madi_next_day, a<<else>>The next<</if>> look through the house cameras shows her reading them (Spite +2).</div>
<<elseif $madi_truth == 2 && not $madi_seen.includes("truth")>>
<div class="guide-next">Meet her in the back stairwell at last bell<<if $day < $madi_next_day>> on day $madi_next_day<</if>> (Hallway, afternoon, 1 energy, Spite +3)<<if $albright_block == 3 && $day < $albright_block_until>>, once Mrs. Albright's late shift lifts on day $albright_block_until<</if>>.</div>
<<else>>
<div class="guide-next">Both endings are open. Choose one on the "How this could end" board in her file once its meter reaches <<= setup.madi.max>>: "Unsung hero" needs Spite <<= setup.madi.max>> (now $madi_spite), and "Across the wall" needs Curiosity <<= setup.madi.max>> (now $madi_curiosity) and a third man you trust: the boys from room 021 on the embrace route, or William after your swap night<<if not setup.madi.groupPossible()>> (you have neither yet)<</if>>. Choosing one closes the other. The meter you didn't choose isn't wasted: at <<= setup.madi.max / 2>> or more it adds to the night you did.</div>
<</if>>
<p class="guide-later">Pollock can keep putting her in your detention hour every few days, and everything above keeps working on her.</p>
<<elseif $madi_stage == 6>>
<<if not $madi_seen.includes("print")>>
<div class="guide-next">You chose <<if $madi_approach == 1>>"Unsung hero"<<else>>"Across the wall"<</if>>. Her father works a double two days after you chose, and the offer is yours to make: <<if $day < $madi_next_day>>from day $madi_next_day<<else>>now<</if>> she comes looking for you at last bell (Hallway, afternoon)<<if $albright_block == 3 && $day < $albright_block_until>>, once Mrs. Albright's late shift lifts on day $albright_block_until<</if>>.<<if $madi_approach == 2>> Her night across the wall needs Jamal and a third man, and none of them can be lined up until she has heard that offer.<</if>></div>
<<elseif $madi_approach == 1>>
<div class="guide-next">Her address and a time are on the back of the print: <<if $day < $madi_next_day>>day $madi_next_day<<else>>tonight<</if>>, after you clock out. Take the late bus from the Hallway in the evening (4 energy). If you miss it, it keeps until any later evening.</div>
<<else>>
<div class="guide-next">She crosses at the blockpost at nine on <<if $day < $madi_next_day>>day $madi_next_day<<else>>any night from now<</if>>: meet her from The Hood (4 energy).<<if setup.madi.jamalDue()>> Jamal has to know first: tell him from the hideout laptop.<</if>></div>
<</if>>
<<if setup.madi.boysDue()>>
<p class="guide-later">The boys in room 021 can come too if you invite them (Hallway, Basement, afternoon).</p>
<</if>>
<<if setup.madi.williamDue()>>
<p class="guide-later">William can come too, now that your swap night is behind you: text him from the hideout laptop.</p>
<</if>>
<<if $madi_approach == 2 && (setup.madi.boysDue() || setup.madi.williamDue())>>
<p class="guide-later">The night needs at least one of them besides you and Jamal<<if setup.madi.roofMen().length >= 2>> (you have that)<</if>>.</p>
<</if>>
<<else>>
<div class="guide-next">Her night is done.<<if setup.madi.epilogueDue() || ($madi_stage >= 7 && not $madi_seen.includes("epilogue"))>> Jamal has a message for you on the hideout laptop<<if $day < $madi_next_day>> from day $madi_next_day<</if>>.<<else>> Her story continues with her father in a later update.<</if>></div>
<</if>>
<<set _gRace = not $madi_seen.includes("race") && $madi_stage < 7>>
<<set _gPickup = not $madi_seen.includes("pickup")>>
<<if $madi_stage >= 4 && setup.madi.knows("affair") && (_gRace || _gPickup)>>
<p class="guide-later"><<if not _gPickup>>A home cross-country meet on the back field is still waiting (Hallway, afternoon), until her night. It doesn't move her meters.<<elseif not _gRace>>Her father's truck at pickup is still waiting (go Outside in the afternoon). It doesn't move her meters.<<else>>Two glimpses of her family are waiting: her father's truck at pickup (go Outside in the afternoon) and a home cross-country meet on the back field (Hallway, afternoon, until her night). Neither moves her meters.<</if>></p>
<</if>>
<<if $madi_stage < 5>>
<div class="guide-next">From 5 on either meter, her file shows the two ways this can end. One needs Curiosity <<= setup.madi.max>> and the other Spite <<= setup.madi.max>>, and both wait for the rest of her story: her father taking Grayson's side, then Adriana's file on him.</div>
<</if>>
<<if $terrence_deal == 1 && $terrence_debrief == 0>>
<p class="guide-later">Terrence's debrief is still owed at Adriana's lair.</p>
<</if>>
<<elseif $madi_stage == 2>>
<div class="guide-next">The box is on the rack. Take the bus to Adriana's lair<<if $day < $madi_next_day>> from day $madi_next_day<</if>>: she'll show you what it sees and open a file on Madi.</div>
<<elseif $madi_stage >= 1>>
<div class="guide-next">Madison Collins. Grade 12, eighteen, cross country and yearbook, and a father who goes to work inside the walls holding Jeremy. The plan is the Mrs. Bond playbook run a second time, and it can't start until Adriana's box is on the school's rack - see "School servers".</div>
<<elseif $database_access >= 2>>
<div class="guide-next">You have the name off Terrence's borrowed laptop. Afternoon, from the Hallway: work the east corridor at last bell and put a face to it. (Optional - the main line runs through Jamal and Adriana, see the Pollock spoiler.)</div>
<<elseif $database_access == 1>>
<div class="guide-next">Pollock's security key is in your pocket, and you don't know what it opens. Terrence does - afternoon, from the Hallway (1 energy).</div>
<<elseif $pollock_stage < 2>>
<div class="guide-next">Someone at this school is the reason you came - the road to your brother. Finish Principal Pollock first.</div>
<<else>>
<div class="guide-next">The name you came for is in the district database, and the only person who can open it is the principal. Finish her.</div>
<</if>>
</details>
<details class="spoiler"><summary>School servers</summary>
<<if $server_stage == 0>>
<div class="guide-next">Adriana names this as her price when you bring her the new target (Pollock's card and security key, plus the name). She turns down money, services and entertainment: she wants hardware on the school's rack, and she wants the boy who can put it there. You choose - hook Terrence up with her, or pay $100 like Mrs. Bond and keep him out of it. If she has already handed you her princess list and that night hasn't happened yet, there's a third way: offer her the night instead.</div>
<<elseif $server_stage == 1>>
<p>Pollock's key logs into the district systems from anywhere, but the school's own stack - door controllers, camera recorder, and the wireless every student's phone joins each morning - only answers to machines on the network in the basement server room. Adriana needs her hardware physically on it, and she isn't coming into a building.</p>
<div class="guide-next">You're carrying her box<<if $terrence_deal == 1>> and her message<</if>>. Afternoon, from the Hallway: put the server room to Terrence. No stat or stage requirement. He reacts to the job, and to Adriana, according to the way you steered the room 021 boys.<<if $terrence_deal == 3 && $hacker_level < 9>> You also still owe Adriana her princess night (see her spoiler).<</if>></div>
<<elseif $server_stage == 2>>
<<set _install = "Stay at school until the evening" + ($day < $madi_next_day ? " of day " + $madi_next_day : "") + ": he'll be waiting at the top of the boiler corridor (Basement, 1 energy).">>
<<if $terrence_deal == 2>>
<div class="guide-next">Terrence took the job for nothing but the work. He asked for a day to put Adriana's box on the rack in the basement server room. The switch will take it for an old print server, and it talks out through its own modem. You paid Adriana in cash and kept him out of her reach - for now. _install</div>
<<elseif $terrence_deal == 3>>
<div class="guide-next">Terrence took the job for nothing but the work. He asked for a day to put Adriana's box on the rack in the basement server room. The switch will take it for an old print server, and it talks out through its own modem. You paid Adriana with her princess night and kept him out of her reach - for now.<<if $hacker_level < 9>> The night is still owed (see her spoiler).<</if>> _install</div>
<<else>>
<div class="guide-next">Terrence took the job. He asked for a day to put Adriana's box on the rack in the basement server room. The switch will take it for an old print server, and it talks out through its own modem. His payment is a trip across the wall to be debriefed by Adriana in person, which she was extremely clear about. _install</div>
<</if>>
<<else>>
<div class="guide-next">The box is on the rack, and the switch takes it for the old print server. What it sees runs through Adriana now - see "Warden's daughter".<<if $terrence_deal == 1 && $terrence_debrief == 0>> Terrence's debrief is owed at her lair (3 energy and one of her two scenes that day).<</if>></div>
<<if $madi_stage >= 3 && not $madi_seen.includes("outage")>>
<<if setup.madi.dark()>>
<div class="guide-next">It's dark right now: a district update reset its port. Terrence can put it back (Hallway, Basement, afternoon, 1 energy).</div>
<<else>>
<p class="guide-later">On day <<= $madi_file_day + 3>> a district update will knock it offline once. Terrence can put it back.</p>
<</if>>
<</if>>
<</if>>
</details>
<details class="spoiler"><summary>Room rent</summary>
<<if $rent_waived>>
<div class="guide-next">Rent is waived for this save - the room is yours for nothing. Nothing to plan around.</div>
<<else>>
<<set _rentNext = $rent_day > 0 ? $rent_day + 7 : 15>>
<p>The room above the corner store costs $20 a week, collected by envelope under the door. Nothing is due before day 15; after that it comes every 7 days, and it finds you wherever you sleep - the school closet counts.</p>
<p>The envelope is a choice, not an automatic deduction, and you can't leave the morning until you answer it:</p>
<ul>
<li><b>Pay $20</b> - only offered when you actually have it. No other effect.</li>
<li><b>Leave it empty while broke</b> - <span class="stat-name">Respect</span> -10.</li>
<li><b>Leave it empty with $20 in your pocket</b> - <span class="stat-name">Respect</span> -20. Refusing while you can afford it costs twice as much as being broke, so don't skip the envelope to save cash you already have.</li>
</ul>
<<if $day < 15>>
<div class="guide-next">First envelope lands on day 15 (in <<= 15 - $day>> days). Have $20 spare by then.</div>
<<else>>
<div class="guide-next">Next envelope on day _rentNext<<if _rentNext - $day <= 0>> (this morning)<<elseif _rentNext - $day == 1>> (tomorrow morning)<<else>> (in <<= _rentNext - $day>> days)<</if>>. You have <<print "$" + $money>>.</div>
<</if>>
<</if>>
</details>
<details class="spoiler"><summary>Around the hood</summary>
<ul>
<li><b>Earl the bartender</b> - <<if $bartender_stage < 3>>keep working the bar room; he warms up in stages (now $bartender_stage/3)<<else>>trusted: a free round and the back-table dice game, one game a day<</if>>.</li>
<li><b>Vittoria, the warehouse floor manager</b> - <<if $warehouse_manager_stage == 0>>work warehouse shifts<<elseif $warehouse_manager_stage < 5>>keep showing up for shifts - at most one scene a day, and she gets bolder each time<<else>>you know her office well now; scenes keep coming while you work<</if>>.</li>
<li><b>The construction site</b> - <<if $construction_wife == 0>>steady pay, a foreman worth helping - and one day a trophy wife shows up on site<<else>>the trophy-wife visit is done; the site is honest money now<</if>>.</li>
</ul>
</details>
<</nobr>>
<<return>><<nobr>>
/* Streak: worked yesterday too = the algorithm and the crew both remember you */
<<if $warehouse_last_day == $day - 1>>
<<set $warehouse_streak += 1>>
<<else>>
<<set $warehouse_streak = 1>>
<</if>>
<<set $warehouse_last_day = $day>>
<<album "img/general/warehouse_" 3 "webp" "location">>
/* ==== The shift itself ==== */
<<if visited() == 1>>
<p>The warehouse is a sprawling, fluorescent-lit labyrinth that hums with the constant churn of machinery and exhausted bodies. Rows upon rows of towering metal shelves stretch endlessly, packed with goods waiting to be processed, packed, and shipped. The air is stale and heavy with cardboard, sweat, and industrial cleaner.</p>
<p>Your shift begins with a scan - a barcode reader strapped to your wrist, chirping with orders that demand you move fast, faster, always faster. Each task is timed down to the second, every delay is flagged by an algorithm that doesn't care if you've worked ten hours or if your feet ache so badly they might give out.</p>
<<pic "img/warehouse/piss_bottles.jpg" "location">>
<p>Toilet breaks are timed too: four minutes, twice a shift, and the nearest bathroom is a six-minute walk from the far aisles. The veterans solved that math years ago - there's a shelf on row forty where the empty bottles stand in a quiet row like trophies. By mid-shift you're unzipping behind the pallet wrap with one eye on the aisle like everybody else. Dignity is the first thing the algorithm optimizes away.</p>
<p>By the end of the day, your muscles burn, your back screams, and your mind feels hollowed out from the monotony. But the quotas keep rising, and the paycheck is barely enough to justify the grind. As you clock out under the unfeeling gaze of security cameras, you can't shake the thought that you've been processed just like the products you've spent all day moving.</p>
<<pic "img/warehouse/vittoria_full.jpg" "story">>
<p>Above it all, on a mezzanine walkway lit better than anything on the floor, the manager paces with a tablet, logging every stalled second below. Vittoria never shouts. She just glances down at a slowing aisle, and a half-beat later the scanner on your wrist tightens the clock, as if she's the one actually running the algorithm and the software is just her hands. At one point you catch her looking at you, not your aisle, a beat too long for it to be about your numbers.</p>
<<else>>
/* Repeat visits: one short shift note instead of the full intro */
<<set _shiftFlavor = [
"Ten hours of the scanner chirping on your wrist. The algorithm shaved another two seconds off the per-item target this week; nobody announced it, your feet just found out.",
"The quota board says the floor is at 94%. The quota board has never once said 100%, because then they'd have to stop raising it.",
"Row forty's pissbottle shelf has grown since your last shift. Somebody's added a two-liter. You try not to think about what kind of day produces two liters of piss.",
"Four minutes, twice a shift. You spend one of today's bathroom breaks just standing in the stall with your eyes closed, which is the closest thing this building has to a chapel.",
"The intercom mispronounces three names today, including yours. The robotic voice never apologizes and never will.",
"A pallet comes down wrong on row nine and the whole floor freezes for exactly the four seconds it takes to see nobody's under it.",
"Same belts, same chirp, same burn in your shoulders by hour six. The shift doesn't leave a memory, just a number on your paycheck and two fewer of everything in your spine."
]>>
<<if $warehouse_manager_stage >= 3>>
<<run _shiftFlavor.push("An aisle camera follows you the length of row twelve, swiveling. Upstairs behind the keycard door there isn't a single one.")>>
<</if>>
<<set _shiftFlavor = _shiftFlavor.random()>>
<p><<= _shiftFlavor>></p>
<</if>>
<<set _pay = 20>>
<<if $warehouse_streak >= 3>>
<<set _pay += 5>>
<p>Three shifts without a gap. The system tags you "reliable" and the shift lead slips you the scanner that doesn't jam. It's five extra dollars.</p>
<</if>>
<<statchange "money" _pay>>
<<statchange "energy" -5>>
<<statchange "physical" -2>>
<hr class="section-break">
/* ==== Floor scene: Vittoria arc or a coworker vignette ==== */
/* Floor manager arc: 0 nothing, 1 bottle seen, 2 she circles, 3 lounge handjob, 4 lounge anal (favor unlocked), 5 shared with the crew; scene 6 = repeatable lounge visit that re-arms the favor.
Day gate: one Vittoria scene per day - a second shift the same day gets a plain floor. */
<<set _managerScene = 0>>
<<if $warehouse_manager_day == $day>>
/* Vittoria already had you today - the floor gets a plain shift */
<<elseif $warehouse_manager_stage == 0 && visited() > 1 && random(1,100) <= 30>>
<<set _managerScene = 1>>
<<elseif $warehouse_manager_stage == 1>>
<<set _managerScene = 2>>
<<elseif $warehouse_manager_stage == 2 && random(1,100) <= 30>>
<<set _managerScene = 3>>
<<elseif $warehouse_manager_stage == 3 && random(1,100) <= 30>>
<<set _managerScene = 4>>
<<elseif $warehouse_manager_stage == 4 && random(1,100) <= 30>>
<<set _managerScene = 5>>
<<elseif $warehouse_manager_stage == 5 && $warehouse_manager_favor == 0 && random(1,100) <= 30>>
<<set _managerScene = 6>>
<</if>>
<<if _managerScene > 0>>
<<set $warehouse_manager_day = $day>>
<</if>>
<<if _managerScene == 1>>
<<set $warehouse_manager_stage = 1>>
<p>Mid-shift, bladder full, row forty. You're halfway through filling your bottle when the click of heels rounds the endcap - Vittoria, the floor manager, tablet in hand, mouth already open to write you up. Then her eyes drop, and stay dropped. The write-up never comes. She looks at your big black cock, then at your face, taps something on her tablet that is definitely not a violation report, and walks away with her composure on maybe sixty percent power.</p>
<<pic "img/warehouse/vittoria_closeup.jpg" "story">>
<div class="req">Vittoria didn't write you up. You're not sure yet what she wrote instead.</div>
<<elseif _managerScene == 2>>
<<set $warehouse_manager_stage = 2>>
<p>Vittoria crouches to inspect the bottom shelf of your aisle, tablet angled like she's checking labels and not you. The squat pulls her blouse tight across her chest, and a button gives way with a pop, then another - she doesn't reach to fix it, just keeps reading barcodes like nothing happened, her tits spilling out inches from your knee.</p>
<<pic "img/warehouse/vittoria_squat.jpg" "story">>
<<elseif _managerScene == 3>>
<<set $warehouse_manager_stage = 3>>
<p>Vittoria has audited your aisle four times this week. Nobody's aisle gets audited four times. Today the audit ends at the foot of the metal staircase nobody from the floor ever climbs, the one with the keycard door at the top. She swipes her card and holds the door like she's already argued with herself about this and lost.</p>
<<speech "Vittoria" "Managers' lounge. No cameras up here.">>
<p>The room upstairs is another planet. Air conditioning that actually works. A coffee machine with real beans and no coin slot. A water cooler you can just drink from - cup after cup, no scanner timing the walk, no algorithm flagging the seconds. There's a sofa. There are plants. You've spent months pissing in bottles sixty feet below a room with plants in it.</p>
<<speech "Vittoria" "Drink something first. You're all dehydrated down there - I sign the incident reports, I know.">>
<<video "img/warehouse/vittoria_handjob.mp4">>
<p>You weren't going to say no to the only warm room in this building. She works your zipper with greedy hands, and the moment your cock springs out she exhales like she's been holding that breath since row forty. No clock up here, so she takes her time - slow, tight strokes, thumb dragging over the head, whispering filth about your scanner metrics into your ear while the cooler burbles in the corner. When you finally come she milks every drop out onto her fingers, inspects the mess like a number she finally approves of, and licks it clean. Then she straightens her lanyard and is a floor manager again in under four seconds.</p>
<<speech "Vittoria" "Your break ran long. I'll fix it in the system.">>
<div class="req">Whatever this is, it's escalating. And now you know what's at the top of the stairs.</div>
<<elseif _managerScene == 4>>
<<set $warehouse_manager_stage = 4>>
<p>End of shift, the intercom calls your badge number - not to the floor office this time, but up. In the lounge the blinds are down, the coffee machine is already hissing, and Vittoria is standing at the window that overlooks the floor, watching the night crew crawl the aisles below like it's an ant farm she owns.</p>
<<speech "Vittoria" "Eleven years I've run this floor. I piss on a schedule, I eat on a schedule, I got divorced on a schedule. Everything I have, the company has a copy of. Except one thing.">>
<p>She bends herself over the desk, hikes her skirt up over her hips, and hooks her thumb into her panties, dragging them aside. Not her pussy. Her hand reaches back and spreads herself open.</p>
<<speech "Vittoria" "My husband never got it. The company never got it. This one was always mine to give. So take it - and don't you dare be gentle, I've had eleven years of gentle-on-paper.">>
<<video "img/warehouse/vittoria_anal.mp4">>
<p>You spit on her asshole, line up, and push in while she claws the cushions and swears through her teeth. Then you fuck her ass doggystyle over the arm of the managers' desk. She comes twice - once cursing the company name, once cursing yours - and when you finally bury yourself deep and unload in her ass, she just stays there, bent and dripping on furniture the workers below will never be allowed to sit on.</p>
<p>She slides off the sofa arm onto the carpet, sits back on her heels, and looks up at you - blouse open, makeup wrecked, your cum leaking out of her ass. Then she pulls her hair back off her face like a woman getting ready for a meeting.</p>
<<speech "Vittoria" "Row forty. I've thought about it every day since. All that water they make you ration - I want it. On me. I want what the bottle gets.">>
<<video "img/warehouse/vittoria_piss_solo.mp4">>
<p>So you stand over her and let go. The stream hits her upturned face and she doesn't flinch - she tilts into it, mouth open, letting it drum off her forehead and sheet down her neck, soaking her massive fake tits. She rubs it into her skin with both hands like it's something expensive, the woman who times every bathroom break on the floor getting hosed down on a carpet the cleaners will never be told about. By the time you run dry she's kneeling in a dark ring of piss, dripping from her chin and her nipples, grinning up at you.</p>
<p>Afterward she pours you a coffee with shaking hands, no coin slot, no clock, and starts laughing - a real laugh, maybe her first one in this building.</p>
<<speech "Vittoria" "Fixed your metrics for the month. And if anything ever... falls off a shelf near you - once - I didn't see it.">>
<<set $warehouse_manager_favor = 1>>
<div class="req">Vittoria owes you one blind eye. Exactly one.</div>
<<elseif _managerScene == 5>>
<<set $warehouse_manager_stage = 5>>
<p>The lounge again, after close. Vittoria is on her third coffee and her second confession, standing at the window over the dark floor.</p>
<<speech "Vittoria" "I time their breaks. I write them up for the bottles. Eleven years of it. You know what I think about now, since row forty? All of them. The whole shift. I want to be the break room. And I want you to run the schedule.">>
<p>So you pick the crew yourself - the night-shift loaders, the dock guys, the ones whose names the intercom always mispronounces and whose piss has been going into bottles since before you got here. You badge them up the metal staircase one by one. Watching five floor workers walk into the managers' lounge is its own kind of pornography: they drink from the cooler cup after untimed cup, someone puts real beans through the machine just because he can, and Vittoria kneels down in the middle of the room she used to hide in.</p>
<<video "img/warehouse/blowbang.mp4">>
<p>The blowbang starts before the coffee's done brewing. Five cocks around her face and she works the line like a woman clearing a backlog, stroking two while she gags on a third, lanyard still on, spit stringing off her chin onto the carpet nobody downstairs is allowed to walk on. Then they move to the sofa...</p>
<<video "img/warehouse/gangbang.mp4">>
<p>They pass her around for the better part of an hour: double-penetrating her over the sofa arm, riding one loader while another pumps her from behind, her ass and pussy traded back and forth until she stops being able to say whose turn it is and starts just saying please. The men are quiet about it, almost reverent - nobody wants to wake whatever god runs the cameras that aren't up here - but every one of them comes in her or on her like he's settling a debt eleven years past due.</p>
<<speech "Vittoria" "One more thing. All that water you've been drinking. I time your bathroom breaks - so this is your bathroom break. All of you. Right here.">>
<<video "img/warehouse/piss_group.mp4">>
<p>She kneels in the middle of the lounge, mouth wide, and the men who've pissed in bottles for years empty themselves into the floor manager instead - stream after stream into her open mouth, down her blouse, into the carpet, while she swallows what she can, gulping and coughing and reaching for the next one, her hand jammed between her legs the whole time. She comes kneeling in a puddle of the night shift's piss, drenched and gasping, and then she starts laughing again - that same real laugh, louder now, echoing off the window over her spotless, silent floor.</p>
<<speech "Vittoria" "Nobody clocks out. I'm approving the overtime. All of it.">>
<<statchange "respect" 2>>
<p>The dock guys look at you differently on the way down the stairs. You're the man who got them into the lounge.</p>
<div class="req">The crew shared the lounge, the coffee, and the manager. Some class barriers you tear down one hole at a time.</div>
<<elseif _managerScene == 6>>
<p>Your badge number gets called up the stairs at clock-out. No pretext anymore - some nights it's just the two of you and the sofa arm, her ass raised and the blinds down; some nights she has you badge a couple of the dock guys up and the water cooler runs dry in more ways than one. Either way the coffee is free, the cameras don't exist, and your metrics come out immaculate.</p>
<<set _loungeVid = ["img/warehouse/vittoria_anal.mp4", "img/warehouse/vittoria_piss_solo.mp4", "img/warehouse/blowbang.mp4", "img/warehouse/gangbang.mp4", "img/warehouse/piss_group.mp4"].random()>>
<<video _loungeVid>>
<<set $warehouse_manager_favor = 1>>
<div class="req">Vittoria's blind eye is back on the payroll.</div>
<<else>>
<<set _coworker = random(1,6)>>
<<switch _coworker>>
<<case 1>>
<p>Gus, the old-timer who was scanning boxes here back when there was still a union to bust, works the aisle across from you all shift. He doesn't talk much.</p>
<<case 2>>
<p>The kid on row twelve does his night-school flashcards during the scanner's four-second sync delays - anatomy terms taped inside his wrist brace. "Two more semesters," he tells you at the water fountain.</p>
<<case 3>>
<p>Rosa works doubles - her badge is always already clocked in when you arrive and still lit when you leave. Two kids in the school uniforms she keeps as her phone wallpaper.</p>
<<case 4>>
<p>At break, Rosa presses a foil-wrapped tamale into your hands, waving off refusal in two languages. "You look like my brother when he doesn't eat." It's the best thing you've tasted all week.</p>
<<statchange "energy" 1>>
<<case 5>>
<<if $warehouse_manager_stage >= 2>>
<p>The crew's warmth has a draft in it lately. Gus won't meet your eyes, and when Vittoria's heels pass the aisle, somebody mutters "there goes your quota review" just loud enough. Everyone knows why your metrics never get checked. Belonging was the one thing this place paid honestly, and you've been spending it.</p>
<<statchange "respect" -2>>
<<else>>
<p>The kid catches your sleeve at clock-in: "Vittoria is on the floor in a mood, stay off row nine." He's right - by mid-shift two pickers from row nine are in the office getting their metrics read to them like charges.</p>
<</if>>
<<default>>
<p>A shift with no faces in it - just the belts, the chirp of the scanner, the robotic intercom voice mispronouncing every name it calls.</p>
<</switch>>
<</if>>
/* ==== Random event: the disposal tote ==== */
<<if random(1,100) <= 25>>
<hr class="section-break">
<p>Row thirty-one, bottom shelf: a tote flagged DAMAGED - DISPOSAL that is not damaged at all. A tablet, sealed, mislabeled by the same algorithm that times your piss. Nobody scans disposal totes. The camera on this aisle has been dead since winter. You have about forty seconds of being the only person who knows this exists.</p>
<div id="pilfer-choice">
<<linkreplace "Let it ride the belt">>
<<replace "#pilfer-output">>
<p>You scan it, box it, send it down the line to be destroyed for an insurance line-item. The system chirps its approval. Honesty in this building is a service you provide for free.</p>
<</replace>>
<<replace "#pilfer-choice">><</replace>>
<</linkreplace>><br>
<<linkreplace "Pocket it">>
<<replace "#pilfer-output">>
<<if random(1,100) <= 15>>
<<if $warehouse_manager_favor == 1>>
<p>Loss Prevention is waiting at the clock-out gate with the dead camera's not-so-dead twin footage queued up on a tablet. Your stomach drops - and then Vittoria appears, plucks the tablet from his hands, squints at it, and declares the timestamp corrupted and the tote correctly processed for disposal. You've just spent your favour.</p>
<<set $warehouse_manager_favor = 0>>
<<else>>
<p>Loss Prevention is waiting at the clock-out gate. They don't call the police - shrinkage reports are bad for the site's numbers - they just empty your jacket onto a table in front of the whole shift change, photograph your badge, and walk you out past Gus and Rosa and the kid, none of whom look at you. Your badge dies in the reader behind you.</p>
<div class="req">Banned from the warehouse for a week.</div>
<<set $warehouse_banned = $day + 7>>
<<set $warehouse_streak = 0>>
<</if>>
<<else>>
<<set _fence = random(25,60)>>
<p>The tote rides out under your jacket, one more damaged item in a building full of damaged items. The pawn guy behind the bar doesn't ask where retail electronics come from - nobody in the hood asks where anything comes from.</p>
<<statchange "money" _fence>>
<<statchange "heat" 5>>
<</if>>
<</replace>>
<<replace "#pilfer-choice">><</replace>>
<</linkreplace>>
</div>
<div id="pilfer-output"></div>
<</if>>
/* ==== Random event: overtime offer ==== */
<<if $energy >= 3 && random(1,100) <= 20>>
<hr class="section-break">
<p>The intercom crackles at clock-out: the outbound truck is short-staffed and overtime pays cash-adjacent rates for anyone who stays.</p>
<<linkreplace "Stay for the overtime">>
<p>Three more hours under the loading dock floodlights, throwing boxes into a trailer while your spine files a formal complaint.</p>
<<statchange "money" 15>>
<<statchange "energy" -3>>
<<statchange "physical" -1>>
<</linkreplace>>
<</if>>
<hr class="section-break">
/* Adriana's princess list: Vittoria reroutes whatever is still in her cart.
Gated on the relationship (stage 4, when she starts owing you a blind eye),
no catch roll, and her pilfer favor is left alone. */
<<if $hacker_level == 8 && $warehouse_manager_stage >= 4 && setup.princess.cartLeft().length > 0>>
<<linkreplace "Ask Vittoria to reroute a package">>
<p>You catch her on the mezzanine at clock-out and tell her quietly what you need: a few things off the Marketplace catalog, sent across town to an address that isn't yours, without anybody's card getting charged. She pulls the order up on her tablet while you're still talking and reads the pick list back to you in her audit voice.</p>
<<set _pickLeft = setup.princess.cartLeft()>><<set _pickList = []>>
<<if _pickLeft.includes("costume")>><<run _pickList.push("Blue princess dress. Crown. Gloves.")>><</if>>
<<if _pickLeft.includes("anal_lube")>><<run _pickList.push("Heavy-duty anal lube.")>><</if>>
<<if _pickLeft.includes("cum_lube")>><<run _pickList.push("Three bottles of fake cum lube.")>><</if>>
<<if _pickLeft.includes("glass_straight") && _pickLeft.includes("glass_shaped")>><<run _pickList.push("Two massive glass dildos.")>><<elseif _pickLeft.includes("glass_straight")>><<run _pickList.push("A massive glass dildo.")>><<elseif _pickLeft.includes("glass_shaped")>><<run _pickList.push("A ribbed glass dildo.")>><</if>>
<<set _pickLine = _pickList.join(" ")>>
<<speech "Vittoria" _pickLine>>
<p>She stops scrolling and looks at you over the tablet.</p>
<<speech "Vittoria" "Sounds fun.">>
<p>It takes her under a minute. An outbound tote gets flagged as damaged in transit, a replacement ships free of charge to the address you give her, and the loss disappears into the same shrinkage report as every pallet that comes down wrong on row nine.</p>
<<speech "Vittoria" "Next-day delivery. Be gentle... at first.">>
<<for _princessId range setup.princess.cartLeft()>>
<<set $princess_kit[_princessId] = $day + 1>>
<</for>>
<<set $princess_reroute = 1>>
<div class="req">Everything left in Adriana's cart arrives at her lair tomorrow.</div>
<</linkreplace>><br>
<</if>>
<<if $ella_end_quest == 1 && $ella_end_warehouse == 0>>
<<linkreplace "[Ella]Steal some packages">>
<p>You replace the valuable contents of several packages with trash. By the time they will be delivered, you will be far away from here.</p>
<<set $ella_end_warehouse = 1>>
<</linkreplace>><br>
<</if>>
[[Return|The Hood]]
<</nobr>><<pic "img/agatha/william_reunion.png" "story">>
<p>You come out through the service door and cut across the lot. The man leaning against the Range Rover spots you from halfway across it. Not the quick, dismissive glance people give a man in coveralls. His whole posture changes, alert before recognition catches up, and then recognition hits him so hard it wipes twenty years off his face.</p>
<<speech "William" "No. NO. $real_name? Sergeant? They let YOU near children?" "william">>
<p>William Hayes. Three tours' worth of dust, blood, bad coffee, and improvised plans between you. He could get a village elder talking when everybody else was reaching for a weapon. You did not always understand how he made it look so easy, but you trusted him when it counted. And his charms weren't only for locals - women fell before him in such numbers you aren't sure which bodycount was greater. The handshake turns into a grip, then a hug that nearly takes the air out of you. In the passenger seat, Devin watches his father become someone louder and less carefully assembled than the man who usually collects him.</p>
<<speech "William" "Devin - this man carried me down a hill once. I wish I could tell you this story but it's still classified." "william">>
<<speech "Devin" "...You know the janitor?" "devin">>
<p>The connection settles over all three of you at once. The boy from detention is the son of the man who once watched your back. William notices the coveralls, the cart visible through the glass doors, the borrowed name on your chest. He gives none of it the treatment a stranger would. No pity, no questions in front of Devin. He only slips a card into your hand, a phone number written across the back in blue ink.</p>
<<speech "William" "I married rich, brother. Absurdly rich. You'd laugh - I live in a house with rooms nobody's ever been in. Come drink with me and laugh at it, that's an order. Any evening. ANY evening - God knows I have nothing but evenings." "william">>
<p>You agree on a place - he insists on coming to your bar in the Hood. He says he wants to see the place you live now, not some polished halfway point downtown. The Rover pulls away with Devin still watching from the passenger seat.</p>
<<set $william_stage = 1>>
<<set $william_next_day = $day + 1>>
[[Back inside|Hallway]]<<pic "img/agatha/william_bar.png" "story">>
<p>He keeps his word and comes to your bar. You had suggested somewhere between the Hood and downtown. William shot that down with a laugh: he wanted to see where you actually spend your nights. Now he is folding a coat worth more than the booth over its cracked vinyl back, drawing looks from half the room, and grinning as if someone just handed him weekend leave.</p>
<p>Earl brings two beers. William leaves a tip large enough to make Earl look at it twice.</p>
<<speech "William" "Okay. Okay. Look at this place! Sticky table. Warm beer. Brother, I am SO glad to see you I could cry, and I'm SO jealous I could spit." "william">>
<p>Two beers in, the shine begins to come off the story. He gives it to you like a report because that is still the clearest language either of you has. He got out clean, met Agatha Vega while working security at a fundraiser, then married so far up that the air changed around him. Her family owns things he had never imagined could be owned. Devin, his son from a previous relationship, got a place at Thatcher-Ellison, which William calls the one good trade. William got a life with no job, no bills, and endless dinners where men who own senators talk through him. The Vega family can be gracious about him for hours at a time, but they still treat him like part of the furniture.</p>
<<speech "William" "I sleep in a bed the size of our old OP and I miss the OP - how sick is that? Eleven years." "william">>
<p>He works at the beer label with the patience he once saved for field-stripping a rifle.</p>
<<speech "William" "And the worst part is the guilt, man. I thought I suppressed it well enough before seeing you. We both shed our blood for nothing! Now tell me, why the country broke YOU and pensioned me into a palace, how is that fair?" "william">>
<p>You tell him what you believe: the system is fucked up. You are happy for your comrade to get a good life, but even happier that he remains conscious about his status - those already born into privilege often don't.</p>
<p>Of course, you keep your recent developments to yourself, but you share enough other stories to keep the conversation flowing: Ella, school, neighbourhood. It's a good evening. By the end of it, semi-drunk William is already planning the next time he'll see you.</p>
<<speech "William" "Dinner. A proper one, my treat, my booking - don't argue, spending Vega money badly is my one remaining hobby. And bring your girl, the one you just told me about! We'll make a double date. Agatha needs to meet somebody REAL before she forgets they make people, and brother, I need to see you across a table with cloth napkins just once before I die of comfort." "william">>
<p>Ella. You turn it over once and find you like every side of it. You tell him you'll bring her.</p>
<<set $william_stage = 2>>
<div class="req">Tell Ella about the invitation - she's at the bar or the library.</div>
<<statchange "energy" -1>>
[[Call it a night|The Hood]]<<pic "img/ella/agatha_path.jpg" "story">>
<p>You find Ella busy with paperwork. You tell her the story in order: military, William, the marriage, the enormous house, and the invitation. She stops shelving somewhere around the Vega name. By the end she has her chin in her hand and that focused look she gets when a story is beginning to interest her.</p>
<<speech "Ella" "Your army friend married a VEGA? As in the Vega wing at the museum? The wing this library wrote to four times about a book grant and got four rejection letters from?">>
<<speech "You" "That'd be the family.">>
<<speech "Ella" "And he wants to have dinner with US. A janitor and a librarian. In what I assume is a restaurant where they don't print the prices.">>
<<speech "You" "He wants an evening with real people. His words.">>
<p>She turns that over, and then out comes the grin she saves for bad ideas.</p>
<<speech "Ella" "God, that's the saddest rich-person sentence I've ever heard. Yes. Obviously yes. I want to see the cage, I want to meet the woman who owns it, and I want to watch YOU do cloth napkins.">>
<p>She is planning the dress before she has put down the overdue paperback in her hand. You text William a yes. His reply arrives almost immediately, loud with exclamation points, and the dinner is set.</p>
<<statchange "energy" -1>>
<<set $william_stage = 3>>
<<set $william_next_day = $day + 2>>
<div class="req">The day after tomorrow, car will pick you up from the street.</div>
[[Leave her to her planning|Community Center]]<<pic "img/agatha/dining_room.png" "location">>
<p>Agatha's booking is not a table but a private room in a downtown restaurant with no sign on the door. The staff greet William by name and do not so much as glance at the car that brought you from the Hood. Ella gives your hand one firm squeeze at the threshold, and then the evening gets moving.</p>
<<pic "img/agatha/agatha_dinner.jpg" "story">>
<p>Agatha Vega is not what you expected from an heiress. She cannot be much past thirty, and beside William she looks younger still. She looks... expensive. She has the practiced confidence of someone raised at the center of the city, yet she wears it with the faint impatience of a woman who keeps testing the limits of what that name will let her get away with. Her interest in you is direct enough to make you aware of where you put your hands.</p>
<<speech "Agatha" "So you're the sergeant, huh. He tells the hill story at parties, you know. It gets taller every year." "agatha">>
<p>Courses keep arriving, along with wine that tastes better than anything you can name in a bottle shop. Before long the conversation has moved past politeness. For a few hours, all four of you are outside the lives that usually explain you, and nobody seems eager to step back into them.</p>
<hr>
<<speech "William" "Three tours, and the thing I miss - nobody believes this - is the BOREDOM. Real boredom, twelve men and one deck of fifty-one cards. Rich boredom is different." "william">>
<hr>
<<speech "Ella" "My life has changed completely, and I'm still getting used to that. But weirdly I feel more in control than I ever did before." "ella">>
<hr>
<<speech "Agatha" "I was accepted to a dig in Tunisia when I was twenty-one. My father had the foundation's director explain, very kindly, that Vega daughters do not disappear into deserts with dirty fingernails. I spent the next eight years on boards, at launches, and smiling beside plaques with our name on them. I get to rebel, apparently, as long as the family lawyer can expense it." "agatha">>
<hr>
<<speech "You" "First month back, I kept cataloguing exits in rooms. This room has four. Old habits.">>
<<speech "William" "See, HE says it and it's tradecraft. I say it and my therapist adds a session." "william">>
<hr>
<p>Ella raises her glass before she's thought it through, and no one at the table hesitates.</p>
<<speech "Ella" "To escaping.">>
<hr>
<p>William is still good at this. He turns old war stories into something fit for a dinner table without pretending they were clean, and he gives Ella his full attention when she speaks. Twice he recalls something she said much earlier, word for word, and each time she goes pink. Across from you, Agatha asks questions no one usually asks a janitor, then pushes the untouched wine toward you with a conspiratorial grin. The candles burn down while the city keeps going on the other side of the walls.</p>
<<speech "Agatha" "William was right, for once. Real people. We should be very careful, sergeant, or we'll make a habit of you." "agatha">>
[[The taxi home|William Dinner 2]]<<pic "img/agatha/ella_walk_back.jpg" "story">>
<p>The taxi carries you back toward the wall. Ella has her shoes in one hand and her head on your shoulder. She is warm with wine and the long evening, and stays quiet for several blocks while something clearly works itself out in her head.</p>
<<speech "Ella" "Okay. Don't laugh.">>
<<speech "You" "No promises.">>
<<speech "Ella" "Your friend William is... a very attractive man.">>
<p>She sits up to say it properly, cheeks red in the passing streetlight and chin set. Whatever she is about to say, she wants it to be hers before it can embarrass her.</p>
<<speech "Ella" "I see it now, the thing you told me - how he charmed his way through a war and into the riches. I sat there WATCHING him do it to me and it still worked. And before you say anything - I saw Agatha too. The way she looked at you all through dessert. Like she was reading a banned book.">>
<p>You stay quiet. You have learned that Ella sometimes needs room to find the end of a thought. She takes your hand and laces her fingers through yours.</p>
<<speech "Ella" "I think they know what they want from us, but I want to be the one who suggested it - not talked into it, not going along. Proposing. I want to have a little fun with William or Agatha; I bet they are into swinging or some other arrangement.">>
<<if $ella_mmf_stage == 4>>
<<speech "Ella" "You remember the night with Jamal - how ALIVE I felt after, how I couldn't stop talking till sunrise? Wouldn't it be nice if we could repeat that?">>
<</if>>
<<speech "You" "And if I follow up with William - you're sure?">>
<<speech "Ella" "I'm blushing, not hesitating. Learn the difference.">>
<p>Then she laughs at herself, wine-loose and delighted.</p>
<<speech "Ella" "God. This is so unreal.">>
<p>She falls asleep against your shoulder before the taxi reaches the blockpost. You think about her words - sure, there was a tension during the evening, but you get used to ignoring that. Seeing Ella taking initiative... is refreshing.</p>
<p>Sooner or later, William will show up at school again, and you could deliver the proposal.</p>
<<set $william_stage = 4>>
<<set $william_next_day = $day + 2>>
<<statchange "energy" -2>>
[[Home|The Hood]]<<pic "img/agatha/william_hallway.png" "story">>
<p>William does not call ahead. You are running the buffer down the east corridor when you see the coat and then the man inside it. He has signed in as a parent volunteer, carries a gym bag Devin supposedly forgot four days ago, and wears the expression of a man who knows the excuse is thin but has committed to it.</p>
<<speech "William" "Don't say it. I know. I drove twenty minutes to deliver a bag to a boy who didn't ask for it." "william">>
<p>He walks beside your cart as if he belongs there. Students stream around the two of you without much notice: the janitor and the rich father, each invisible for a different reason. William looks at the trophy case, the donor portraits, the polished floors, and something uneasy moves across his face.</p>
<<speech "William" "When I look at the family names on this wall, I'm reminded I don't belong in their world. I'm afraid Devin will never belong, too." "william">>
<<if $incel_path == 1 && $incel_stage >= 5>>
<p>He tells you Devin has started mentioning the boys from room 021 by name. Nothing dramatic - a joke Aaron made, a question Terrence asked - but William notices the difference. His son used to describe school like a place he had to survive. Now, at least sometimes, he has stories.</p>
<<elseif $incel_path == 2 && $incel_stage >= 5>>
<p>He tells you Devin has started staying late with the boys from room 021. His son calls it a club and refuses to explain further, which William respects more than he lets on; although he noticed he's giving his stepmom weird looks.</p>
<<else>>
<p>He tells you he is still learning how little he knows about Devin's days here. The boy gives him one-word answers in the car, then watches the school disappear in the mirror. William hates that he cannot tell whether Devin is bored, lonely, or simply being a teenager.</p>
<</if>>
<p>You lead him into the closet at the end of the corridor. It is private, and it is yours. He takes in the mop smell, flickering light, and folded cot, then sits on an upturned bucket as though it were the best chair in the building. Not the best setting to deliver Ella's ideas.</p>
<<set _choiceMade = false>>
<div id="choice-container">
<<if not _choiceMade>>
<<linkreplace "Relay Ella's proposal">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>He is silent for two full seconds. Then he laughs, younger than he has sounded all day and loud enough that you have to wave him down.</p>
<<speech "William" "Brother. BROTHER. Sorry, I can't control my charms! But you are guilty too! Agatha keeps bringing you up, calling you two 'her sergeant and his librarian,' verbatim. But even she would never..." "william">>
<<speech "William" "You telling me it's Ella's idea and she thinks we're into swinging? Maybe she reads us like those books. But hey, why not write that chapter - looks like everyone is down for it." "william">>
<p>The practical side takes only a few minutes. Time, private place - some suit of Vega's could arrange anonymously.</p>
<<speech "William" "One thing. Tell Ella from me: the suggesting matters. In Agatha's world everything gets arranged FOR you, forever. Somebody choosing it, choosing US - that's the luxury item. See ya, sergeant." "william">>
<p>He shakes your hand in the janitor's closet like you have signed something binding, then goes back to the front desk to deliver a gym bag to a boy who never needed it.</p>
<<statchange "energy" -1>>
<<set $william_stage = 5>>
<<set $william_next_day = $day + 1>>
[[Get back to your corridor|Hallway]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Relay Ella's proposal"</em></div><</replace>>
<</linkreplace>><br>
<<linkreplace "Decide you don't want to share Ella">>
<<set _choiceMade = true>>
<<replace "#output">>
<p>You leave Ella's proposal unspoken. William came to see an old friend, and that is all this has to be. The two of you talk for another ten minutes about Devin, school, and the strange trick of trying to build a life inside somebody else's world.</p>
<<speech "William" "You know, brother, I missed this. Just talking somewhere nobody expects anything from us." "william">>
<p>He squeezes your shoulder before heading back to the front desk, still carrying the gym bag that nobody asked for. You probably need to tell Ella later you didn't go through with it.</p>
<<statchange "energy" -1>>
<<set $william_stage = -1>>
[[Get back to your corridor|Hallway]]
<</replace>>
<<replace "#choice-container">><div class="choice-made"><em>"Decide you don't want to share Ella"</em></div><</replace>>
<</linkreplace>>
<</if>>
</div>
<div id="output"></div><p>It is the same hotel where you and Ella once borrowed an empty room and called it a suite. This time the elevator needs a keycard for the top floor, and the doors open on the version of the building meant for people whose names appear on wings. Two bedrooms, a wall of glass over the city, and a bottle chilling in ice that costs more than a month at the warehouse.</p>
<p>Agatha opens the door herself, dressed in white with the gold Vega pin gone and a crooked grin in its place. Behind her, William is working the cork with the concentration of a man handling explosives. Ella goes straight to the window, shoes already in hand.</p>
<<speech "Ella" "You realize we're about nine floors above where you took me on our first date.">>
<<speech "You" "Different room. Same tower.">>
<p>William sets the bottle aside before it is empty. Nobody bothers pretending the bedroom plan still applies. The master suite has one enormous bed, soft low lamps, and four people who have spent the whole evening circling the same idea.</p>
<<video "img/agatha/ella_foursome/foursome_1.mp4">>
<p>You and Agatha end up in front of it first, kissing while Ella and William laugh behind you. Agatha's hands wander over your chest and shoulders with bold, curious little squeezes. When she turns to grin at Ella, you let your palm settle on the round weight of her ass. She gives a surprised gasp, then presses back into your hand as Ella giggles and tells her not to act shocked now.</p>
<<video "img/agatha/ella_foursome/foursome_2.mp4">>
<p>Clothes come off in pieces, abandoned wherever they land. Agatha is down to her lingerie when she finds your hard cock. Her hand closes around it and her confident expression cracks into a pleased, almost disbelieving smile.</p>
<<speech "Agatha" "Oh god, this is HUGE. William did not mention you were carrying that around." "agatha">>
<p>She strokes you slowly, testing the weight of you in her palm, then drops to her knees.</p>
<<video "img/agatha/ella_foursome/foursome_3.mp4">>
<p>Ella kneels beside her a moment later, her red hair falling over one shoulder as she frees William's dick. You stand next to your old friend, while the women trade quiet laughs and take turns with their mouths. Ella glances sideways to check Agatha's technique; Agatha catches her looking and deliberately swallows more of you, earning a breathless laugh from Ella before she answers by taking William deeper.</p>
<<speech "William" "Hell of a reunion, brother." "william">>
<<video "img/agatha/ella_foursome/foursome_4.mp4">>
<p>The four of you finally make it onto the bed. You lie beside William, both of you watching as the girls climb on top still with the wrong partners. Agatha rides you with both hands on your chest, her plump ass bouncing over your lap. Ella rides William just as eagerly, shaking her own hips as she looks across at Agatha. Somewhere between moans, Ella reaches over, cups Agatha's cheek, and kisses her. Agatha kisses her back without hesitating.</p>
<<video "img/agatha/ella_foursome/foursome_5.mp4">>
<p>That kiss changes the mood. You trade the women back, pulling Ella beneath you while William settles between Agatha's thighs. The wide bed leaves the girls side by side, close enough for Ella to keep stealing kisses from Agatha as you fuck her in missionary. At first Agatha only smiles into them. Then she starts meeting Ella's mouth with a hunger that has nothing to do with the champagne.</p>
<<video "img/agatha/ella_foursome/foursome_6.mp4">>
<p>William rolls Ella over and takes her from behind, his thick cock driving her forward into the mattress. You give Agatha the same treatment. She throws her ass back against you, twerking her hips and trying to fuck herself on your dick with every sharp little bounce. You catch both her wrists, pull her arms behind her back, and take over. Each deep thrust makes her cry out while Ella watches through the loose curtain of her hair.</p>
<<video "img/agatha/ella_foursome/foursome_7.mp4">>
<p>When Agatha is shaking too hard to hold herself up, you guide Ella down over her face. Agatha opens for her eagerly, tongue working Ella while you return her to William. He fucks Agatha on her back, and you hold Ella's hips as she moans into the room. When Ella turns toward you, you press your slick cock to her lips. She tastes Agatha's juices on you, licking your dick clean.</p>
<<video "img/agatha/ella_foursome/foursome_8.mp4">>
<p>You are the first one close. Ella and Agatha lie together on the bed, flushed and grinning, their mouths still finding each other between breaths. You jerk yourself over them until hot ropes spill across their cheeks, lips, and chins. Instead of wiping it away, Ella drags Agatha into a sloppy kiss. They smear your cum between their mouths and laugh when it strings across their lips.</p>
<<video "img/agatha/ella_foursome/foursome_9.mp4">>
<p>William is not far behind. He pulls Agatha under him, asks her once if she is ready, and then buries himself deep. Her answer is a cry and both arms around his neck as he fills her with a hard, deliberate creampie. Beside them, Ella is back to sloppy kisses.</p>
<p>Near dawn, William stares at the ceiling with Ella asleep on his chest and Agatha's hand tangled with yours.</p>
<<speech "William" "What a wonderful escape." "william">>
<p>You check out at dawn past a desk clerk trained not to react to anything. Ella curls against you in the ride back through the blockpost. The guard checks your passes and sees only two tired people returning from the city - must be a night shift.</p>
<<set $william_stage = 6>>
<<statchange "energy" -4>>
<<statchange "respect" 2>>
[[Home|The Hood]]