/* Core identity */
<<set $playerName to "">>
<<set $gameStarted to false>>
<<set $gameVersion to "0.1">>
<<set $versionEndSeen to false>>
<<set $versionEndReady to false>>
/* Performance stats */
<<set $statFocus to 1>>
<<set $statTechnique to 1>>
<<set $statStamina to 1>>
/* Economy */
<<set $money to 0>>
<<set $debt to 0>>
<<set $debtWeekly to 1500>>
<<set $debtDaysLeft to 7>>
<<set $debtActive to false>>
<<set $debtFailCount to 0>>
/* Calendar / actions */
<<set $dayOfWeek to 1>>
<<set $weekNumber to 1>>
<<set $actionsLeft to 3>>
<<set $actionsMax to 3>>
<<set $actionsUsedToday to 0>>
<<set $didRecoveryToday to false>>
/* Exhaustion / mood (0–10) */
<<set $exhaustion to 0>>
<<set $exhaustionMax to 5>>
<<set $exhaustionLocked to false>>
<<set $exhaustionLockDays to 0>>
<<set $mood to 4>>
<<set $moodMax to 5>>
/* Career flags */
<<set $careerStarted to false>>
<<set $systemsUnlocked to false>>
<<set $overallStudioRep to 0>>
<<set $escortRep to 0>>
<<set $camRep to 0>>
/* Unlock flags */
<<set $unlockedGloryholeSecrets to false>>
<<set $unlockedDogfart to false>>
<<set $unlockedVixen to false>>
<<set $unlockedBang to false>>
<<set $unlockedBrazzers to false>>
<<set $unlockedDeeper to false>>
<<set $unlockedCuckoldEscort to false>>
<<set $camUnlocked to true>>
<<set $onlyfansUnlocked to false>>
/* Scene progress */
<<set $sceneCompleted to {}>>
<<set $swallowIndex to 0>>
<<set $secretsIndex to 0>>
<<set $escortIndex to 0>>
<<set $camIndex to 0>>
<<set $studioSameDayLock to false>>
<<set $studioSameDayLock to false>>
<<set $swallowSameDayLock to false>>
<<set $secretsSameDayLock to false>>
<<set $escortSameDayLock to false>>
<<set $camSameDayLock to false>>
<<set $gloryholeSwallowCount to 0>>
<<set $gloryholeSecretsCount to 0>>
/* Experience counters */
<<set $expGloryhole to 0>>
<<set $expGangbang to 0>>
<<set $expOrgy to 0>>
<<set $expThreesome to 0>>
<<set $expCuckold to 0>>
<<set $expRough to 0>>
<<set $expBDSM to 0>>
/* Relations */
<<set $actressRelation to {
"rebel_rhyder": 0, "kira_noir": 0, "tommy_king": 0, "ella_knox": 0,
"lauren_phillips": 0, "cory_chase": 0, "violet_myers": 0,
"mia_taylor": 0, "luna_lovesit": 0
}>>
<<set $studioRelation to {
"joy_media": 20, "dogfart": 0, "deeper": 0, "mofos": 0,
"nubiles": 0, "brazzers": 0, "vixen": 0, "bang": 0
}>>
/* Phone / messages */
<<set $messages to []>>
<<set $chats to []>>
<<set $unreadMessages to 0>>
<<set $unreadChats to 0>>
<<set $pendingRebeccaVisit to false>>
<<set $pendingRebelMeet to 0>>
<<set $rebelVisit1Ready to false>>
<<set $rebelVisit2Ready to false>>
<<set $rebelVisit1Done to false>>
<<set $rebelVisit2Done to false>>
<<set $rebelPrivateReady to false>>
<<set $kiraVouchReady to false>>
/* City */
<<set $cityStars to []>>
/* Minigame state */
<<set $mg_Returning to false>>
<<set $mg_Score to 0>>
<<set $mg_Difficulty to 1>>
<<set $mg_BgVideo to "">>
<<set $mg_ReturnPassage to "">>
<<set $mg_Type to "">>
<<set $mg_UsePhase to false>>
<<set $lastScore to 0>>
<<set $trainTotalScore to 0>>
<<set $finalTrainScore to 0>>
<<set $videoSoundOn to false>><<widget "ensureVars">>
<<if ndef $money>><<set $money to 0>><</if>>
<<if ndef $debt>><<set $debt to 0>><</if>>
<<if ndef $debtWeekly>><<set $debtWeekly to 1500>><</if>>
<<if ndef $cityStars or !$cityStars>>
<<set $cityStars to []>>
<</if>>
<<if ndef $sceneCompleted or !$sceneCompleted>>
<<set $sceneCompleted to {}>>
<</if>>
<<if ndef $actressRelation or !$actressRelation>>
<<set $actressRelation to {
"rebel_rhyder": 0, "kira_noir": 0, "tommy_king": 0, "ella_knox": 0,
"lauren_phillips": 0, "cory_chase": 0, "violet_myers": 0
}>>
<</if>>
<<if ndef $studioRelation or !$studioRelation>>
<<set $studioRelation to {
"joy_media": 20, "dogfart": 0, "deeper": 0, "mofos": 0,
"nubiles": 0, "brazzers": 0, "vixen": 0, "bang": 0
}>>
<</if>>
<<if ndef $messages or !$messages>>
<<set $messages to []>>
<</if>>
<<if ndef $actionsLeft>>
<<set $actionsLeft to 3>>
<<set $actionsMax to 3>>
<</if>>
<<if ndef $dayOfWeek>>
<<set $dayOfWeek to 1>>
<<set $weekNumber to 1>>
<</if>>
<<if ndef $exhaustion>>
<<set $exhaustion to 0>>
<<set $exhaustionLocked to false>>
<<set $exhaustionLockDays to 0>>
<</if>>
<<if ndef $mood>>
<<set $mood to 4>>
<</if>>
<<if ndef $exhaustionMax>>
<<set $exhaustionMax to 5>>
<<set $moodMax to 5>>
<</if>>
<<if ndef $didRecoveryToday>>
<<set $didRecoveryToday to false>>
<<set $actionsUsedToday to 0>>
<</if>>
<<if ndef $mg_Returning>>
<<set $mg_Returning to false>>
<<set $mg_Score to 0>>
<</if>>
<<if ndef $careerStarted>>
<<set $careerStarted to false>>
<<set $systemsUnlocked to false>>
<</if>>
<<if ndef $debtActive>>
<<set $debtActive to false>>
<<set $debt to 0>>
<<set $debtWeekly to 1500>>
<<set $debtDaysLeft to 7>>
<</if>>
<<if ndef $rebelPrivateReady>>
<<set $rebelPrivateReady to false>>
<</if>>
<<if ndef $kiraVouchReady>>
<<set $kiraVouchReady to false>>
<</if>>
<<if ndef $debtFailCount>>
<<set $debtFailCount to 0>>
<</if>>
<<if ndef $unreadMessages>>
<<set $unreadMessages to 0>>
<</if>>
<<if ndef $chats or !$chats>>
<<set $chats to []>>
<<set $unreadChats to 0>>
<<set $pendingRebeccaVisit to false>>
<<set $pendingRebelMeet to 0>>
<</if>>
<<if ndef $overallStudioRep>>
<<set $overallStudioRep to 0>>
<</if>>
<<if ndef $camUnlocked>><<set $camUnlocked to true>><</if>>
<<if ndef $onlyfansUnlocked>><<set $onlyfansUnlocked to false>><</if>>
<</widget>>
<<widget "ph">>
<div class="ph-img"><div><strong>Image placeholder</strong>$args[0]</div></div>
<</widget>>
/*
applyWorkLoad kind result
kind: "studio" | "escort" | "cam" | "train"
result: "good" | "bad" | "neutral"
Rules (levels 0–10):
studio good/neutral → exhaustion 0, mood 0
studio bad → exhaustion +1, mood −1
escort → exhaustion +1, mood −1 (always taxing)
cam → exhaustion +1, mood −1
train good → neutral
train bad → exhaustion +1
Also tracks action use for daily decay.
*/
<<widget "applyWorkLoad">>
<<set _kind to $args[0]>>
<<set _res to $args[1]>>
<<if $systemsUnlocked>>
<<set $actionsUsedToday to Math.min($actionsMax, ($actionsUsedToday || 0) + 1)>>
<</if>>
<<if _kind === "studio">>
<<if _res === "bad">>
<<set $exhaustion to Math.min($exhaustionMax, $exhaustion + 1)>>
<<set $mood to Math.max(0, $mood - 1)>>
<</if>>
<<elseif _kind === "escort" or _kind === "cam">>
<<set $exhaustion to Math.min($exhaustionMax, $exhaustion + 1)>>
<<set $mood to Math.max(0, $mood - 1)>>
<<elseif _kind === "train">>
<<if _res === "bad">>
<<set $exhaustion to Math.min($exhaustionMax, $exhaustion + 1)>>
<</if>>
<</if>>
<<if ($exhaustion >= $exhaustionMax or $mood <= 0) and not $exhaustionLocked and $systemsUnlocked>>
<<set $exhaustionLocked to true>>
<<set $exhaustionLockDays to 1>>
<</if>>
<</widget>>
<<widget "checkVersionEnd">>
<<silently>>
<<if ndef $sceneCompleted or !$sceneCompleted>><<set $sceneCompleted to {}>><</if>>
<<if ndef $versionEndSeen>><<set $versionEndSeen to false>><</if>>
<<if ndef $versionEndReady>><<set $versionEndReady to false>><</if>>
<<set _need to [
"ghs_mia","ghs_luna","ghs_courtney","ghs_nikki","ghs_rebel","ghs_emma","ghs_bw","ghs_rebel2","ghs_cierra","ghs_indica",
"ghx_tommy","ghx_lauren","ghx_cory","ghx_violet","ghx_ella","ghx_nia",
"esc_japanese","esc_pregnant","esc_middleeast","esc_executive","esc_soccermom"
]>>
<<set _ok to true>>
<<for _id range _need>>
<<if not $sceneCompleted[_id]>><<set _ok to false>><</if>>
<</for>>
<<if _ok>>
<<set $versionEndReady to true>>
<</if>>
<</silently>>
<</widget>>
<<widget "bumpSwallowProgress">>
/* 1 Mia 2 Luna 3 Courtney 4 Nikki 5 Rebel+Lulu 6 Emma 7 BW 8 Rebel+Lulu 2 9 Cierra 10 Indica
After 8: Rebel texts meet WITH husband → unlocks cuckold escort
(Cafe visit 1 removed) */
<<set _done to Number($args[0]) || 0>>
<<if _done > ($swallowIndex || 0)>>
<<set $swallowIndex to _done>>
<</if>>
<<if $swallowIndex >= 8 and not $rebelVisit2Done and not $rebelVisit2Ready>>
<<set $rebelVisit2Ready to true>>
<<set $pendingRebelMeet to 2>>
<<run FT_pushChat("rebel", "Rebel Rhyder", "Hey $playerName. My husband wants to buy you a drink. Bar near Joy Media — both of us.", "rebel_meet_2")>>
<<run FT_pushChat("rebel", "Rebel Rhyder", "He watched the last two sets. He has something to say. Don’t flake.", "rebel_meet_2")>>
<</if>>
<</widget>>
<<widget "applyRecovery">>
<<set $didRecoveryToday to true>>
<<if $systemsUnlocked>>
<<set $actionsUsedToday to Math.min($actionsMax, ($actionsUsedToday || 0) + 1)>>
<</if>>
<<set $exhaustion to Math.max(0, $exhaustion - 1)>>
<<set $mood to Math.min($moodMax, $mood + 1)>>
<</widget>>
/*
mgButtons type difficulty video [nextPhase]
Renders Start + Skip (gamble) for a minigame.
*/
<<widget "sceneResult">>
<<set _sc to $args[0]>>
<<set _good to $args[1] || "They'll remember that.">>
<<set _ok to $args[2] || "Workmanlike. Not legendary.">>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score"><<print _sc>><span class="pct">%</span></div>
<<if _sc >= 80>>
<div class="result-verdict great">🔥 <<print _good>></div>
<<elseif _sc >= 65>>
<div class="result-verdict great">✨ <<print _good>></div>
<<elseif _sc >= 40>>
<div class="result-verdict ok"><<print _ok>></div>
<<else>>
<div class="result-verdict rough">Rough cut — need another take.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<</widget>>
/*
mgButtons type difficulty video [nextPhase]
*/
<<widget "mgButtons">>
<<set _type to $args[0]>>
<<set _diff to $args[1] || 1>>
<<set _vid to $args[2] || "">>
<<set _p to $args[3]>>
<<set _chance to FT_skipChance(_type, _diff)>>
<<set _label to (_type === "stamina" ? "Stamina" : (_type === "technique" ? "Technique" : "Focus"))>>
<div class="mg-callout">
<div class="nav-grid">
<<link `"▶ Start " + _label + " (Diff " + _diff + ")"`>>
<<run FT_launchMinigame(_type, _diff, _vid, _p)>>
<</link>>
<<link `"⏭ Skip gamble (" + _chance + "% win)"`>>
<<run FT_skipMinigame(_type, _diff, _vid, _p)>>
<</link>>
</div>
<div class="hint">Play for real score, or gamble a skip based on your skill.</div>
</div>
<</widget>><<silently>>
<<ensureVars>>
<<if ndef $statFocus>><<set $statFocus to 1>><</if>>
<<if ndef $statTechnique>><<set $statTechnique to 1>><</if>>
<<if ndef $statStamina>><<set $statStamina to 1>><</if>>
<<if ndef $money>><<set $money to 0>><</if>>
<<if ndef $weekNumber>><<set $weekNumber to 1>><</if>>
<<if ndef $dayOfWeek>><<set $dayOfWeek to 1>><</if>>
<<if ndef $actionsLeft>><<set $actionsLeft to 3>><</if>>
<<if ndef $actionsMax>><<set $actionsMax to 3>><</if>>
<<if ndef $exhaustion>><<set $exhaustion to 0>><</if>>
<<if ndef $exhaustionMax>><<set $exhaustionMax to 5>><</if>>
<<if ndef $moodMax>><<set $moodMax to 5>><</if>>
<<if ndef $mood>><<set $mood to 4>><</if>>
<<set $mood to Math.min($moodMax, Math.max(0, $mood))>>
<<set $exhaustion to Math.min($exhaustionMax || 5, Math.max(0, $exhaustion || 0))>>
<<if ndef $debt>><<set $debt to 0>><</if>>
<<if ndef $debtWeekly>><<set $debtWeekly to 1500>><</if>>
<<if ndef $debtDaysLeft>><<set $debtDaysLeft to 7>><</if>>
<<if ndef $systemsUnlocked>><<set $systemsUnlocked to false>><</if>>
<<if ndef $unreadChats>><<set $unreadChats to 0>><</if>>
<<if $sceneCompleted and $sceneCompleted["ghs_rebel2"] and not $rebelVisit2Done>>
<<set $rebelVisit2Ready to true>>
<<set $pendingRebelMeet to 2>>
<</if>>
<<if ndef $unreadMessages>><<set $unreadMessages to 0>><</if>>
<<if ndef $gameVersion>><<set $gameVersion to "0.1">><</if>>
<</silently>>
<div class="sidebar-panel mute-panel">
<h3>Settings</h3>
<button type="button" id="ft-mute-toggle" class="is-muted" title="Toggle video audio">🔇 Mute</button>
<div class="hint" style="margin-top:6px;">Top visible video plays audio when sound is on.</div>
</div>
<div class="sidebar-panel">
<h3><<if $playerName and $playerName.trim() !== "">><<print $playerName>><<else>>You<</if>></h3>
<div class="stat-row"><span class="label">Focus</span><span class="val"><<print $statFocus>></span></div>
<div class="stat-row"><span class="label">Technique</span><span class="val"><<print $statTechnique>></span></div>
<div class="stat-row"><span class="label">Stamina</span><span class="val"><<print $statStamina>></span></div>
</div>
<<if $systemsUnlocked>>
<div class="sidebar-panel">
<h3>Career</h3>
<div class="stat-row"><span class="label">Money</span><span class="val stat-good">$<<print $money>></span></div>
<div class="stat-row"><span class="label">Week / Day</span><span class="val">W<<print $weekNumber>> · D<<print $dayOfWeek>></span></div>
<div class="stat-row"><span class="label">Actions</span><span class="val"><<print $actionsLeft>> / <<print $actionsMax>></span></div>
<div class="bar-track"><div class="bar-fill actions" @style="'width:' + Math.round(($actionsLeft / Math.max(1,$actionsMax))*100) + '%'"></div></div>
<div class="stat-row"><span class="label">Exhaustion</span><span class="val<<if $exhaustion >= 4>> stat-warn<</if>>"><<print $exhaustion>> / <<print $exhaustionMax>></span></div>
<div class="bar-track"><div class="bar-fill exhaust" @style="'width:' + Math.round(($exhaustion / Math.max(1,$exhaustionMax))*100) + '%'"></div></div>
<div class="stat-row"><span class="label">Mood</span><span class="val<<if $mood <= 1>> stat-warn<<elseif $mood >= 4>> stat-good<</if>>"><<print $mood>> / <<print $moodMax>></span></div>
<div class="bar-track"><div class="bar-fill energy" @style="'width:' + Math.round(($mood / Math.max(1,$moodMax))*100) + '%'"></div></div>
<<if $exhaustionLocked>>
<div class="stat-row"><span class="stat-warn">⚠ Work locked — <<print $exhaustionLockDays>> day(s)</span></div>
<</if>>
</div>
<<if $debtActive>>
<div class="sidebar-panel">
<h3>Debt — Rebecca</h3>
<div class="stat-row"><span class="label">Owed</span><span class="val">$<<print $debt>></span></div>
<div class="stat-row"><span class="label">Weekly due</span><span class="val">$<<print $debtWeekly>></span></div>
<div class="stat-row"><span class="label">Days left</span><span class="val<<if $debtDaysLeft <= 2>> stat-warn<</if>>"><<print $debtDaysLeft>></span></div>
</div>
<</if>>
<<if $unreadChats > 0>>
<div class="sidebar-panel">
<div class="stat-row"><span class="label stat-info">💬 Messages</span><span class="val stat-info"><<print $unreadChats>> new</span></div>
</div>
<</if>>
<<else>>
<div class="sidebar-panel">
<h3>Training Phase</h3>
<div class="hint">Career systems unlock after Rebecca briefs you.</div>
</div>
<</if>>
<div class="sidebar-panel dev-strip">
<div class="stat-row"><span class="label">Version</span><span class="val"><<print $gameVersion>></span></div>
<div class="dev-links">
<a href="https://www.patreon.com/RedCupid" target="_blank" rel="noopener"><img class="dev-badge" src="career/pics/brand/patreon.png" alt="Patreon"></a>
<a href="https://subscribestar.adult/redcupid" target="_blank" rel="noopener"><img class="dev-badge" src="career/pics/brand/subscribestar.png" alt="SubscribeStar"></a>
</div>
<div class="dev-by">By REDCUPID</div>
</div><<set $gameStarted to true>>
<div class="passage-title">A Modern Porn Star</div>
<div class="story-img"><img src="career/pics/story/title_card.jpg" alt="Title card" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
<div class="panel">
<div class="panel-title">Content warning</div>
<b>18+ NSFW.</b> Explicit sex, adult language, industry themes, power imbalance, and performance pressure.
</div>
You are 19, fresh out of high school, with almost no money and no plan — until a neighborhood flyer changes everything.
<div class="nav-grid">
[[Begin Your Journey|Prologue]]
</div><div class="passage-title">Neighborhood Flyer</div>
You’re 19. Fresh out of high school. No college plans, no job prospects, and your savings are almost gone.
Another boring day in your small neighborhood… until you see it.
<div class="story-img"><img src="career/pics/story/flyer_pole.jpg" alt="Audition flyer" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
---
You pick it up. Your heart starts beating faster as you read the words again.
<div class="panel">
<b>Open Auditions — Adult Content Creators & Performers Wanted</b><br>
High pay · Flexible schedule · Immediate start<br>
Neighborhood studio — walk-ins welcome
</div>
<div class="story-img"><img src="career/pics/story/flyer_hands.jpg" alt="Holding flyer" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
---
You’ve watched enough videos late at night to understand exactly what kind of auditions these are. Part of you is scared. Another part is excited. This could be a way out.
<div class="story-img"><img src="career/pics/story/bedroom_mirror.jpg" alt="Mirror decision" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
<div class="nav-grid">
[[Step Inside|Name Entry]]
</div><div class="passage-title">Who Are You?</div>
<div class="story-img"><img src="career/pics/story/name_clipboard.jpg" alt="Name paperwork" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
Before you walk into the studio, you write the name you’ll use in this industry — the one they’ll call on set, on contracts, and when someone wants you back.
<div class="panel">
<div class="panel-title">Your name</div>
<<textbox "$playerName" $playerName>>
<div class="hint" style="margin-top:8px;">This name appears in dialogue and scene text everywhere.</div>
</div>
<<link "Confirm and enter the studio">>
<<if not $playerName or !$playerName.trim()>>
<<set $playerName to "Alex">>
<<else>>
<<set $playerName to $playerName.trim()>>
<</if>>
<<goto "First Meeting - Rebecca">>
<</link>>You arrive at the studio. Rebecca, the CEO, is waiting for you in her office. She looks you up and down with clear interest.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/11.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>So you’re $playerName — the one who answered the flyer. You’re even better looking in person.<</speech>>
<<speech "you">>Thank you… I really want this opportunity.<</speech>>
<<speech "rebecca">>You seem nervous, $playerName. It’s okay. Come sit with me.<</speech>>
---
She pulls you to the couch and starts kissing you aggressively.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/12.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Mmm… you taste good. Relax, $playerName. Let me take charge.<</speech>>
<<speech "you">>I’ve never done anything like this before…<</speech>>
---
She reaches down and feels your bulge.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/13.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Oh my… you’re already so hard. And it feels huge.<</speech>>
<<speech "you">>Rebecca…<</speech>>
---
She gets on her knees and pulls your pants down, revealing your massive cock.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/14.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Holy shit… look at this monster.<</speech>>
---
She holds it in her hands, inspecting and admiring it.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/15.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>It’s so heavy and thick. I’m impressed.<</speech>>
---
She starts giving you a proper blowjob.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/16.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Even though you’re huge, size alone doesn’t guarantee success. You need to know how to use it.<</speech>>
<<speech "you">>I want to learn…<</speech>>
---
She takes off her shirt, revealing her breasts, and continues sucking you deep.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/17.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Mmm… so big. I can barely fit you.<</speech>>
---
She tells you to use her mouth.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/18.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Hold my head. Use my mouth. Be rough with me.<</speech>>
<<speech "you">>Like this?<</speech>>
---
She tells you to fuck her tits.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/19.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Fuck my tits. Use them.<</speech>>
<<speech "you">>They feel so good…<</speech>>
---
She turns around and tells you to fuck her pussy.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/110.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Get behind me. Put that huge cock inside me.<</speech>>
<<speech "you">>You’re so tight…<</speech>>
---
You start fucking her hard from the beginning, unable to control yourself.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/111.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Slow down a bit, baby. Pace yourself.<</speech>>
---
You can’t hold back and tell her you’re about to cum after only 30 seconds.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/112.webm" type="video/webm"></video>
</div>
<<speech "you">>I’m going to cum already…<</speech>>
<<speech "rebecca">>It’s okay. Finish on my ass.<</speech>>
---
You pull out and unload a massive load all over her ass.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/113.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Such a big load… good boy.<</speech>>
---
She gets on her knees and cleans your cock with her mouth.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/114.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>You have a lot of potential. But you need training. Go train with Raya. I’ll pay for it if you sign with me and pay me back by working with me. Come back after training and show me what you learned.<</speech>>
<<speech "you">>I agree. I’ll do it.<</speech>>
<<speech "rebecca">>Good, $playerName. Welcome to the studio.<</speech>>
[[Continue|Bedroom Hub]]<<set $energy to 100>>
<<set $actionsLeft to $actionsMax>>
<<set $dayOfWeek += 1>>
<<if $dayOfWeek > 7>>
<<set $dayOfWeek to 1>>
<<set $weekNumber += 1>>
<</if>>
/* Reshuffle which stars are out in the city */
<<script>>
(function() {
var pool = [];
var ar = State.variables.actressRelation || {};
var completed = State.variables.sceneCompleted || {};
if (completed["ghs_06"] || State.variables.metRebelRhyder) pool.push("rebel_rhyder");
if (completed["ghs_08"] || State.variables.metKiraNoir) pool.push("kira_noir");
if (completed["ghx_01"]) pool.push("tommy_king");
if (completed["ghx_02"]) pool.push("ella_knox");
if (completed["ghx_03"]) pool.push("lauren_phillips");
if (completed["ghx_04"]) pool.push("cory_chase");
if (completed["ghx_05"]) pool.push("violet_myers");
// pick 0–2 stars at random locations
var out = [];
pool = pool.slice().sort(function(){ return Math.random()-0.5; });
var n = Math.min(pool.length, Math.floor(Math.random()*3));
var locs = ["Park","Mall","Cafe","Gym","City"];
for (var i=0;i<n;i++) {
out.push({ id: pool[i], location: locs[Math.floor(Math.random()*locs.length)] });
}
State.variables.cityStars = out;
})();
<</script>>
/* Daily level rules (0–10 scales)
- If you used all 3 actions and did NO recovery today → exhaustion +1 and mood −1
- If you recovered today → no penalty from a full action day
- Sleep always gives a small rest: exhaustion −1 (min 0), mood +1 (max 10) unless locked */
<<if $exhaustionLocked>>
<<set $exhaustion to Math.max(0, $exhaustion - 2)>>
<<set $mood to Math.min($moodMax, $mood + 1)>>
<<set $exhaustionLockDays -= 1>>
<<if $exhaustionLockDays <= 0>>
<<set $exhaustionLocked to false>>
<<set $exhaustion to 0>>
<div class="reward">Forced rest over — you feel ready to work again.</div>
<<else>>
<div class="hint">Forced rest day. Exhaustion easing ($exhaustionLockDays day(s) left).</div>
<</if>>
<<else>>
<<if $actionsUsedToday >= $actionsMax and not $didRecoveryToday>>
<<set $exhaustion to Math.min($exhaustionMax, $exhaustion + 1)>>
<<set $mood to Math.max(0, $mood - 1)>>
<div class="danger">Hard day with no recovery — exhaustion +1, mood −1.</div>
<<elseif $didRecoveryToday>>
<div class="reward">Recovery kept you stable overnight.</div>
<</if>>
/* Natural rest from sleep */
<<set $exhaustion to Math.max(0, $exhaustion - 1)>>
<<set $mood to Math.min($moodMax, $mood + 1)>>
<</if>>
<<if ($exhaustion >= $exhaustionMax or $mood <= 0) and not $exhaustionLocked>>
<<set $exhaustionLocked to true>>
<<set $exhaustionLockDays to 1>>
<<if $mood <= 0>>
<div class="danger">Mood bottomed out — you can’t work tomorrow. Rest a full day.</div>
<<else>>
<div class="danger">Exhaustion maxed — work locked for the next day.</div>
<</if>>
<</if>>
/* Reset daily flags for the new day */
<<set $didRecoveryToday to false>>
<<set $actionsUsedToday to 0>>
<<set $studioSameDayLock to false>>
<<set $swallowSameDayLock to false>>
<<set $secretsSameDayLock to false>>
<<set $escortSameDayLock to false>>
<<set $camSameDayLock to false>>
/* Mail system removed */
<<if $debtActive>>
<<set $debtDaysLeft -= 1>>
<<if $debtDaysLeft <= 0>>
You wake up to a message from Rebecca.
[[Continue|Debt Deadline]]
<<else>>
You sleep deeply and wake up refreshed.
<<if $careerStarted and $unreadMessages > 0>>
You have new mail on your phone.
<</if>>
[[Start the next day|Bedroom Hub]]
<</if>>
<<else>>
You sleep deeply and wake up refreshed.
<<if $careerStarted and $unreadMessages > 0>>
You have new mail on your phone.
<</if>>
[[Start the next day|Bedroom Hub]]
<</if>><div class="passage-title">Raya’s Training Space</div>
<div class="story-img"><img src="career/pics/loc/raya_loft.jpg" alt="Raya training loft" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
At Raya’s place. She trains Focus, Technique, and Stamina — the only stats that matter until Rebecca unlocks your career systems.
<div class="panel">
<div class="panel-title">Current skills</div>
Focus <b>$statFocus</b> · Technique <b>$statTechnique</b> · Stamina <b>$statStamina</b>
<<if $systemsUnlocked>>
<br><span class="hint">Actions left today: $actionsLeft / $actionsMax</span>
<</if>>
</div>
She asks what you want to train.
<<if not $systemsUnlocked or $actionsLeft >= 1>>
<<if $statFocus < 2>>
[[Train Focus / Sensitivity|Training - Focus]]
<<else>>
Focus already trained.
<</if>>
<<if $statTechnique < 2>>
[[Train Technique|Training - Technique]]
<<else>>
Technique already trained.
<</if>>
<<if $statStamina < 2>>
[[Train Stamina|Training - Stamina]]
<<else>>
Stamina already trained.
<</if>>
<<else>>
<span class="hint">No actions left today. Sleep to advance.</span>
<</if>>
<div class="nav-grid">[[Return to Bedroom|Bedroom Hub]]</div><<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $actionsLeft -= 1>>
<<set $trainTotalScore to 0>>
<<set $trainS1 to 0>>
<<set $trainS2 to 0>>
<<set $trainS3 to 0>>
<</if>>
<<if $phase == 0>>
# Focus / Sensitivity Training - Round 1
Raya is completely naked and visibly turned on.
<<speech "raya">>Today we’re training your sensitivity and control. You need to learn how to last long without cumming too early.<</speech>>
<<speech "you">>Okay… I’m ready.<</speech>>
She starts stroking your hard cock with a fleshlight.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/sn11.webm" type="video/webm"></video>
</div>
<<speech "raya">>Focus. Think about things that are not sex. Don’t let the pleasure control you.<</speech>>
<<speech "you">>It feels too good already…<</speech>>
---
She starts using the fleshlight.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/sn12.webm" type="video/webm"></video>
</div>
<<speech "raya">>I’m going to use this on your big cock. Stay focused.<</speech>>
<<speech "you">>Fuck… it’s so tight.<</speech>>
---
She pushes it deeper.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/sn13.webm" type="video/webm"></video>
</div>
<<speech "raya">>Deeper now. You’re enjoying this too much.<</speech>>
<<speech "you">>I’m getting close…<</speech>>
---
She gets more active.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/sn14.webm" type="video/webm"></video>
</div>
<<speech "raya">>I know you’re close. Don’t cum yet.<</speech>>
<<speech "you">>It’s really hard to hold back…<</speech>>
---
She slows down and teases you.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/sn15.webm" type="video/webm"></video>
</div>
<<speech "raya">>Think about something else. Control it.<</speech>>
<<speech "you">>I’m trying…<</speech>>
<<mgButtons "focus" 1 "career/story/sn15.webm" 1>>
<<elseif $phase == 1>>
<<set $trainS1 to Math.min(100, Math.max(0, Number($mg_Score) || 0))>>
# Focus / Sensitivity Training - Round 2
<<speech "raya">>Good. Now back to stroking you.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/sn16.webm" type="video/webm"></video>
</div>
<<speech "raya">>You’re right on the edge. Hold it.<</speech>>
<<speech "you">>I’m so close…<</speech>>
---
She strokes harder.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/sn17.webm" type="video/webm"></video>
</div>
<<speech "raya">>Good. You controlled it. Now I’m going harder.<</speech>>
<<speech "you">>Fuck… it feels too good.<</speech>>
---
She uses the fleshlight again.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/sn18.webm" type="video/webm"></video>
</div>
<<speech "raya">>I’m enjoying using this on you. You’re so big.<</speech>>
<<speech "you">>I’m getting close again…<</speech>>
---
She turns around and uses the fleshlight while showing her ass.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/sn19.webm" type="video/webm"></video>
</div>
<<speech "raya">>Look at my ass while I fuck you with this.<</speech>>
<<speech "you">>It’s too much…<</speech>>
---
She removes the fleshlight and rides you.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/sn110.webm" type="video/webm"></video>
</div>
<<speech "raya">>Feel how my pussy feels. Control yourself.<</speech>>
<<speech "you">>You’re so wet…<</speech>>
<<mgButtons "focus" 1 "career/story/sn110.webm" 2>>
<<elseif $phase == 2>>
<<set $trainS2 to Math.min(100, Math.max(0, Number($mg_Score) || 0))>>
# Focus / Sensitivity Training - Final Round
<<speech "raya">>Back to the fleshlight.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/sn111.webm" type="video/webm"></video>
</div>
<<speech "raya">>I’m going to make it difficult for you.<</speech>>
---
She increases the intensity.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/sn112.webm" type="video/webm"></video>
</div>
<<speech "raya">>You like this, don’t you? I can feel you throbbing.<</speech>>
<<speech "you">>I’m so close…<</speech>>
---
She switches to riding you hard.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/sn113.webm" type="video/webm"></video>
</div>
<<speech "raya">>This is what a professional feels like. Hold it as long as you can.<</speech>>
<<speech "you">>I can’t… I’m going to cum…<</speech>>
---
She gets off and jerks you.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/sn114.webm" type="video/webm"></video>
</div>
<<speech "raya">>Cum for me. Shoot it all out.<</speech>>
<<speech "you">>I’m cumming!<</speech>>
<<mgButtons "focus" 1 "career/story/sn114.webm" 3>>
<<elseif $phase == 3>>
<<set $trainS3 to Math.min(100, Math.max(0, Number($mg_Score) || 0))>><<set $trainTotalScore to $trainS1 + $trainS2 + $trainS3>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/sn115.webm" type="video/webm"></video>
</div>
<<speech "raya">>Wow… such a huge load. I’m impressed by the size of your cock and how much you came.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/sn116.webm" type="video/webm"></video>
</div>
<<speech "raya">>For a newbie, your stamina isn’t bad. If you practice what I taught you today, you’ll be able to control your orgasm and last as long as you want.<</speech>>
<<set $finalTrainScore to Math.min(100, Math.max(0, Math.round(((Number($trainS1)||0)+(Number($trainS2)||0)+(Number($trainS3)||0))/3)))>>
<<set $lastScore to $finalTrainScore>>
<div class="result-card">
<div class="result-kicker">Training report</div>
<div class="result-score">$finalTrainScore<span class="pct">%</span></div>
<<if $finalTrainScore >= 80>>
<div class="result-verdict great">🔥 Raya is impressed — you locked the lesson in.</div>
<<elseif $finalTrainScore >= 50>>
<div class="result-verdict great">✨ Solid session — the skill sticks.</div>
<<else>>
<div class="result-verdict ok">You got through it. Another pass would help.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $statFocus < 2 or $finalTrainScore >= 50>>
Your sensitivity and control have improved! **(+1 Focus Stat)**
<<set $statFocus += 1>>
<<else>>
You survived, but need more practice.
<</if>>
<<unset $phase>>
[[Return to Training Grounds|Training Grounds]]
<</if>><<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $actionsLeft -= 1>>
<<set $trainTotalScore to 0>>
<<set $trainS1 to 0>>
<<set $trainS2 to 0>>
<<set $trainS3 to 0>>
<</if>>
<<if $phase == 0>>
# Technique Training - Round 1
Raya smiles seductively as you enter.
<<speech "raya">>Today I’m going to teach you how to use your cock properly. Pay attention to every word.<</speech>>
<<speech "you">>Okay… I’m ready.<</speech>>
She starts standing.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/t1.webm" type="video/webm"></video>
</div>
<<speech "raya">>Start slow and steady. Fuck me gently.<</speech>>
<<speech "you">>Like this?<</speech>>
---
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/t2.webm" type="video/webm"></video>
</div>
<<speech "raya">>Use your hands. Choke me gently while you grind and fuck me. I’m trying to hide my pleasure.<</speech>>
<<speech "you">>You feel so tight…<</speech>>
---
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/t3.webm" type="video/webm"></video>
</div>
<<speech "raya">>Sit down. Suck on my tits while I bounce on you.<</speech>>
<<speech "you">>Mmm… like this?<</speech>>
---
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/t4.webm" type="video/webm"></video>
</div>
<<speech "raya">>Choke me again. Guide me down. Push me deeper onto your cock. Take control now.<</speech>>
<<speech "you">>Fuck… yes.<</speech>>
<<mgButtons "technique" 1 "career/story/t4.webm" 1>>
<<elseif $phase == 1>>
<<set $trainS1 to Math.min(100, Math.max(0, Number($mg_Score) || 0))>>
# Technique Training - Round 2
<<speech "raya">>Now get behind me.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/t5.webm" type="video/webm"></video>
</div>
<<speech "raya">>Thrust behind me like an amateur.<</speech>>
<<speech "you">>Okay…<</speech>>
---
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/t6.webm" type="video/webm"></video>
</div>
<<speech "raya">>Pull my hair. Go hard.<</speech>>
<<speech "you">>Like this?<</speech>>
<<speech "raya">>Yes! Harder.<</speech>>
---
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/t7.webm" type="video/webm"></video>
</div>
<<speech "raya">>Slow grind… then deeper to tease me.<</speech>>
<<speech "you">>Tease you like this?<</speech>>
<<speech "raya">>Perfect.<</speech>>
---
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/t8.webm" type="video/webm"></video>
</div>
<<speech "raya">>Grab me by the neck. Use me like a toy.<</speech>>
<<speech "you">>Fuck… you feel so good.<</speech>>
---
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/t9.webm" type="video/webm"></video>
</div>
<<speech "raya">>I’m barely standing… keep going.<</speech>>
<<speech "you">>I can’t hold back.<</speech>>
---
**Raya regains control.**
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/t10.webm" type="video/webm"></video>
</div>
<<speech "raya">>Pull me up by my hair and neck. Push me onto your cock.<</speech>>
<<speech "you">>Yes… like this?<</speech>>
<<speech "raya">>Exactly.<</speech>>
<<mgButtons "technique" 1 "career/story/t10.webm" 2>>
<<elseif $phase == 2>>
<<set $trainS2 to Math.min(100, Math.max(0, Number($mg_Score) || 0))>>
# Technique Training - Final Round
<<speech "raya">>Sit down on the chair. Let me ride you.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/t11.webm" type="video/webm"></video>
</div>
<<speech "raya">>Grab my ass. Guide me deeper.<</speech>>
<<speech "you">>Fuck… you’re so tight.<</speech>>
---
<<speech "raya">>Faster. Push me down harder.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/t12.webm" type="video/webm"></video>
</div>
<<speech "you">>Like this?<</speech>>
<<speech "raya">>Yes!<</speech>>
---
<<speech "raya">>I can feel you getting close.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/t13.webm" type="video/webm"></video>
</div>
<<speech "raya">>I’m getting on my knees. Finish all over my face.<</speech>>
<<mgButtons "technique" 1 "career/story/t13.webm" 3>>
<<elseif $phase == 3>>
<<set $trainS3 to Math.min(100, Math.max(0, Number($mg_Score) || 0))>><<set $trainTotalScore to $trainS1 + $trainS2 + $trainS3>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/t14.webm" type="video/webm"></video>
</div>
<<speech "raya">>I’m on my knees. Cum all over my face.<</speech>>
<<speech "you">>I’m cumming…<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/t15.webm" type="video/webm"></video>
</div>
<<speech "raya">>Mmm… good work, $playerName. You have real potential. If you work on it and follow what I taught you, you’ll make a woman fall in love with your cock alone.<</speech>>
<<set $finalTrainScore to Math.min(100, Math.max(0, Math.round(((Number($trainS1)||0)+(Number($trainS2)||0)+(Number($trainS3)||0))/3)))>>
<<set $lastScore to $finalTrainScore>>
<div class="result-card">
<div class="result-kicker">Training report</div>
<div class="result-score">$finalTrainScore<span class="pct">%</span></div>
<<if $finalTrainScore >= 80>>
<div class="result-verdict great">🔥 Raya is impressed — you locked the lesson in.</div>
<<elseif $finalTrainScore >= 50>>
<div class="result-verdict great">✨ Solid session — the skill sticks.</div>
<<else>>
<div class="result-verdict ok">You got through it. Another pass would help.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $statTechnique < 2 or $finalTrainScore >= 50>>
Your technique has improved! **(+1 Technique Stat)**
<<set $statTechnique += 1>>
<<else>>
You survived, but need more practice.
<</if>>
<<unset $phase>>
[[Return to Training Grounds|Training Grounds]]
<</if>><<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $actionsLeft -= 1>>
<<set $trainTotalScore to 0>>
<<set $trainS1 to 0>>
<<set $trainS2 to 0>>
<<set $trainS3 to 0>>
<</if>>
<<if $phase == 0>>
# Stamina Training - Round 1
Raya takes you to the home gym. She strips completely naked and pulls your shorts down.
<<speech "raya">>If you want to make it in this field, you need real stamina. Many girls will want to fuck for hours. If you get tired after a few minutes, you won’t make money.<</speech>>
<<speech "you">>I understand…<</speech>>
<<speech "raya">>Start lifting weights. I’m going to suck your cock while you do it. You have to keep going no matter what.<</speech>>
She drops to her knees and takes your cock in her mouth.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/st11.webm" type="video/webm"></video>
</div>
<<speech "raya">>Mmm… keep lifting. Don’t stop.<</speech>>
<<speech "you">>Fuck… this is hard.<</speech>>
---
She starts teasing you more.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/st12.webm" type="video/webm"></video>
</div>
<<speech "raya">>Focus. Stroke my hair while you lift. I’m sucking you hard — don’t lose concentration.<</speech>>
<<speech "you">>I’m trying…<</speech>>
---
She takes you deeper.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/st13.webm" type="video/webm"></video>
</div>
<<speech "raya">>Deeper now. Keep lifting those weights.<</speech>>
<<speech "you">>It’s getting heavy…<</speech>>
---
She moves to your balls while stroking you.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/st14.webm" type="video/webm"></video>
</div>
<<speech "raya">>Focus on your breathing. You need to last long if you want to be the best.<</speech>>
<<speech "you">>I’m trying to breathe…<</speech>>
<<mgButtons "stamina" 1 "career/story/st14.webm" 1>>
<<elseif $phase == 1>>
<<set $trainS1 to Math.min(100, Math.max(0, Number($mg_Score) || 0))>>
# Stamina Training - Round 2
<<speech "raya">>Good. Now back to sucking you.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/st15.webm" type="video/webm"></video>
</div>
<<speech "raya">>Mmm… keep lifting.<</speech>>
---
She takes you deep again.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/st16.webm" type="video/webm"></video>
</div>
<<speech "raya">>Look at me while I deepthroat you. Keep lifting.<</speech>>
<<speech "you">>It’s getting really hard…<</speech>>
---
She switches to a boob job.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/st17.webm" type="video/webm"></video>
</div>
<<speech "raya">>I’m giving you a boob job now. Keep going.<</speech>>
<<speech "you">>Fuck… your tits feel amazing.<</speech>>
---
She continues teasing you.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/st18.webm" type="video/webm"></video>
</div>
<<speech "raya">>I know you like this. Focus. Don’t pass out.<</speech>>
<<speech "you">>I’m trying…<</speech>>
<<mgButtons "stamina" 1 "career/story/st18.webm" 2>>
<<elseif $phase == 2>>
<<set $trainS2 to Math.min(100, Math.max(0, Number($mg_Score) || 0))>>
# Stamina Training - Final Round
<<speech "raya">>Take a small break. Back to my mouth.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/st19.webm" type="video/webm"></video>
</div>
<<speech "raya">>Mmm… good, $playerName.<</speech>>
---
She goes back to boob job.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/st110.webm" type="video/webm"></video>
</div>
<<speech "raya">>Back between my tits. Keep lifting.<</speech>>
<<speech "you">>I’m so close…<</speech>>
---
She strokes and advises you.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/st111.webm" type="video/webm"></video>
</div>
<<speech "raya">>Breathe properly. Control your stamina. You’re almost there.<</speech>>
<<speech "you">>I’m pushing my limits…<</speech>>
---
She continues the boob job.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/st112.webm" type="video/webm"></video>
</div>
<<speech "raya">>Follow my advice. You can do this.<</speech>>
<<mgButtons "stamina" 1 "career/story/st112.webm" 3>>
<<elseif $phase == 3>>
<<set $trainS3 to Math.min(100, Math.max(0, Number($mg_Score) || 0))>><<set $trainTotalScore to $trainS1 + $trainS2 + $trainS3>>
<<speech "raya">>You’re close. Push your limits.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/st113.webm" type="video/webm"></video>
</div>
<<speech "you">>I’m about to cum… and pass out…<</speech>>
<<speech "raya">>Cum on my tits.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/st114.webm" type="video/webm"></video>
</div>
<<speech "raya">>Mmm… good, $playerName. You lasted a long time for a newbie.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/st115.webm" type="video/webm"></video>
</div>
<<speech "raya">>If you follow my advice, you’ll become a star and fuck for hours without breaking a sweat.<</speech>>
<<set $finalTrainScore to Math.min(100, Math.max(0, Math.round(((Number($trainS1)||0)+(Number($trainS2)||0)+(Number($trainS3)||0))/3)))>>
<<set $lastScore to $finalTrainScore>>
<div class="result-card">
<div class="result-kicker">Training report</div>
<div class="result-score">$finalTrainScore<span class="pct">%</span></div>
<<if $finalTrainScore >= 80>>
<div class="result-verdict great">🔥 Raya is impressed — you locked the lesson in.</div>
<<elseif $finalTrainScore >= 50>>
<div class="result-verdict great">✨ Solid session — the skill sticks.</div>
<<else>>
<div class="result-verdict ok">You got through it. Another pass would help.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $statStamina < 2 or $finalTrainScore >= 50>>
Your stamina has improved! **(+1 Stamina Stat)**
<<set $statStamina += 1>>
<<else>>
You survived, but need more practice.
<</if>>
<<unset $phase>>
[[Return to Training Grounds|Training Grounds]]
<</if>><<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $actionsLeft -= 1>>
<</if>>
<<if $phase == 0>>
# Final Audition with Rebecca
You call Rebecca and tell her you completed the training with Raya.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f1.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Good. Come to the studio right now, $playerName. I want to see the results myself.<</speech>>
---
You arrive. Rebecca is waiting. She immediately pulls you to the couch and starts kissing you passionately.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f2.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Mmm… show me what you learned.<</speech>>
<<speech "you">>I’m going to prove myself to you.<</speech>>
---
She pulls her tits out of her dress.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f3.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Suck on them. Pinch my nipples. Be dominant with me.<</speech>>
<<speech "you">>Like this?<</speech>>
You pinch and suck on her tits while she moans.
---
She tells you to take your pants off. You reveal your massive boner in your underwear.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f4.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Oh my god… I still can’t believe how big you are.<</speech>>
She plays with your cock through your underwear.
---
She pulls your underwear down and starts sucking your massive cock.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f5.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>It’s a perfect specimen. So thick and long.<</speech>>
<<speech "you">>Suck it deeper.<</speech>>
---
She tries to take you as deep as possible.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f6.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Mmm… I love how you fill my throat.<</speech>>
---
She tells you to use her mouth.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f7.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Use my mouth. Be rough with me.<</speech>>
<<speech "you">>Take it all.<</speech>>
<<mgButtons "technique" 1 "career/story/f8.webm" 1>>
<<elseif $phase == 1>>
<<set $focusScore to $mg_Score>>
You grab her head and fuck her throat hard.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f9.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Gag me. Push it deeper.<</speech>>
<<speech "you">>Take every inch.<</speech>>
---
You sit down and continue using her mouth while she strokes you.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f10.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Use me however you want.<</speech>>
<<speech "you">>Suck it like a good slut.<</speech>>
---
She lies upside down on the couch.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f11.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Fuck my throat like this.<</speech>>
<<mgButtons "stamina" 1 "career/story/f11.webm" 2>>
<<elseif $phase == 2>>
<<set $techScore to $mg_Score>>
You fuck her throat hard in that position.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f12.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Deeper… I love it.<</speech>>
---
She sits on top of you and slides your cock into her pussy.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f13.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Now fuck me. Show me what you learned.<</speech>>
<<speech "you">>I’m going to make you cum.<</speech>>
---
She rides you slowly, teasing you.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f14.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Last long for me. Don’t cum too fast.<</speech>>
<<mgButtons "focus" 1 "career/story/f14.webm" 3>>
<<elseif $phase == 3>>
<<set $staminaScore to $mg_Score>>
She increases her pace.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f15.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Faster… but don’t cum yet.<</speech>>
---
You grab her ass, spank her, and take control.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f16.webm" type="video/webm"></video>
</div>
<<speech "you">>I’m in charge now.<</speech>>
<<speech "rebecca">>Yes! Fuck me harder.<</speech>>
---
You switch to doggy style.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f17.webm" type="video/webm"></video>
</div>
<<speech "you">>Take it all.<</speech>>
<<speech "rebecca">>You’re so deep…<</speech>>
---
You lock her neck with your arm and fuck her hard.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f18.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Choke me while you fuck me.<</speech>>
<<mgButtons "focus" 1 "career/story/f18.webm" 4>>
<<elseif $phase == 4>>
<<set $focusScore to $mg_Score>> // or appropriate stat
You flip her into missionary.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f19.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Hit me deep. I love it.<</speech>>
---
You fuck her hard in missionary.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f20.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>You’re so good now…<</speech>>
---
You sit down and she rides you in reverse cowgirl.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f21.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Fuck me deep while I bounce.<</speech>>
<<mgButtons "technique" 1 "career/story/f21.webm" 5>>
<<elseif $phase == 5>>
<<set $staminaScore to $mg_Score>>
You make her orgasm hard.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f22.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>I can’t believe how much you improved…<</speech>>
---
She gets off and goes on her knees.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f23.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>I want your cum on my tits.<</speech>>
<<mgButtons "stamina" 1 "career/story/f23.webm" 6>>
<<elseif $phase == 6>>
<<set $finalScore to Math.min(100, Math.max(0, Math.round(Number($mg_Score) || 0)))>>
You jerk your cock as she licks your balls.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f24.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Cum for me.<</speech>>
---
You unload a huge load all over her tits.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f25.webm" type="video/webm"></video>
</div>
<<speech "you">>Fuck… take it all.<</speech>>
---
She takes your cock in her mouth to clean it.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f26.webm" type="video/webm"></video>
</div>
<<speech "rebecca">>Mmm… so much cum.<</speech>>
---
She licks everything clean and looks up at you.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:15px;box-shadow:0 0 40px #ba55d3;margin-bottom:30px"><source src="career/story/f27.webm" type="video/webm"></video>
</div>
### Audition Complete!
<<set $avgScore to Math.round(($focusScore + $techScore + $staminaScore) / 3)>>
**Final Performance:** $avgScore%
<<if $avgScore >= 80>>
<<speech "rebecca">>You’re ready. Come with me — I need to explain how this actually works.<</speech>>
<<set $auditionTier to "high">>
<<set $rebeccaRelation += 15>>
<<elseif $avgScore >= 60>>
<<speech "rebecca">>You’re ready enough. Come with me — we need to talk business.<</speech>>
<<set $auditionTier to "mid">>
<<set $rebeccaRelation += 10>>
<<else>>
<<speech "rebecca">>You still need more training. Come back when you’re ready.<</speech>>
<<set $auditionTier to "fail">>
<</if>>
<<set $mg_Returning to false>>
<<unset $phase>>
<<if $auditionTier === "fail">>
[[Return Home|Bedroom Hub]]
<<else>>
[[Continue|Rebecca Briefing]]
<</if>>
<</if>><<if ndef $mg_Type>><<set $mg_Type to "focus">><</if>>
<style>
.mg-stage {
position: relative;
width: 100%;
max-width: 950px;
margin: 0 auto 12px;
aspect-ratio: 16/9;
border-radius: 14px;
overflow: hidden;
background: #000;
}
.mg-stage .bg-video {
position: absolute; inset: 0;
width: 100%; height: 100%;
object-fit: contain;
opacity: 0;
transition: opacity 0.25s ease;
}
.mg-stage.is-playing .bg-video { opacity: 1; }
.mg-overlay {
position: absolute; inset: 0;
z-index: 12;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: rgba(0,0,0,0.92);
transition: background 0.25s ease;
}
.mg-stage.is-playing .mg-overlay {
background: rgba(0,0,0,0.12);
pointer-events: none;
}
.mg-stage.is-playing .mg-overlay.mg-interactive {
pointer-events: auto;
background: rgba(0,0,0,0.08);
}
#mg-start-btn, #mg-start-btn-generic {
padding: 16px 40px;
font-size: 1.25rem;
font-weight: 700;
border-radius: 999px;
border: 1px solid #ba55d3;
background: rgba(186,85,211,0.55);
color: #fff;
cursor: pointer;
box-shadow: 0 8px 28px rgba(0,0,0,0.45);
pointer-events: auto;
}
#focus-arena {
display: flex;
justify-content: center;
align-items: center;
gap: 14px;
flex-wrap: wrap;
pointer-events: auto;
}
.focus-img {
height: 160px; width: auto; max-width: 120px;
object-fit: cover; border: 3px solid transparent;
border-radius: 8px; cursor: pointer;
box-shadow: 0 5px 15px rgba(0,0,0,0.8);
}
.focus-img:hover { transform: scale(1.05); border-color: #fff; }
.mg-hud {
text-align: center;
color: #fff;
text-shadow: 0 2px 6px #000;
margin-bottom: 8px;
pointer-events: none;
}
.mg-skip-row { text-align: center; margin: 12px 0 8px; }
</style>
<div class="mg-stage" id="mg-stage">
<video class="bg-video" id="mg-bg-video" autoplay loop muted playsinline><source @src="$mg_BgVideo" type="video/webm"></video>
<div class="mg-overlay" id="mg-overlay">
<button type="button" id="mg-start-btn-generic">▶ Start</button>
</div>
<div class="mg-overlay mg-interactive" id="mg-play-ui" style="display:none; background: rgba(0,0,0,0.08);">
<div class="mg-hud">Round <span id="f-round">1</span>/3 · ⏱️ <span id="f-time">5.0</span>s</div>
<div id="focus-arena"></div>
<div class="mg-hud" id="focus-message"></div>
</div>
</div>
<div class="mg-skip-row">
<<set _ch to FT_skipChance($mg_Type, $mg_Difficulty || 1)>>
<<link `'⏭ Skip gamble (' + _ch + '% win)'`>>
<<run FT_skipCurrentMinigame()>>
<</link>>
<div class="hint">Skip is a skill-based gamble.</div>
</div>
<<script>>
$(document).one(':passagedisplay', function () {
const TOTAL_ROUNDS = 3;
const diff = State.variables.mg_Difficulty || 1;
// One safe folder + one unsafe folder (shared for all scenes)
const safeImages = [
"career/pics/safe/s1.jpg",
"career/pics/safe/s2.jpg",
"career/pics/safe/s3.jpg",
"career/pics/safe/s4.jpg",
"career/pics/safe/s5.jpg",
"career/pics/safe/s6.jpg"
];
const badImages = [
"career/pics/unsafe/n1.jpg",
"career/pics/unsafe/n2.jpg",
"career/pics/unsafe/n3.jpg",
"career/pics/unsafe/n4.jpg",
"career/pics/unsafe/n5.jpg",
"career/pics/unsafe/n6.jpg",
"career/pics/unsafe/n7.jpg",
"career/pics/unsafe/n8.jpg"
];
let round = 0;
let wins = 0;
let isActive = false;
let timer = null;
let timeLeft = 5.0;
const stage = document.getElementById("mg-stage");
const overlay = document.getElementById("mg-overlay");
const playUi = document.getElementById("mg-play-ui");
const arena = document.getElementById("focus-arena");
const timeDisplay = document.getElementById("f-time");
const roundDisplay = document.getElementById("f-round");
const msgDisplay = document.getElementById("focus-message");
const startBtn = document.getElementById("mg-start-btn-generic");
function shuffle(a) {
return a.slice().sort(() => Math.random() - 0.5);
}
function buildRound() {
arena.innerHTML = "";
const badCount = (diff === 1) ? 2 : (diff === 2 ? 3 : 4);
const pool = [];
pool.push({ src: safeImages[Math.floor(Math.random() * safeImages.length)], isSafe: true });
const bad = shuffle(badImages);
for (let i = 0; i < badCount && i < bad.length; i++) {
pool.push({ src: bad[i], isSafe: false });
}
shuffle(pool).forEach(imgData => {
const img = document.createElement("img");
img.src = imgData.src;
img.className = "focus-img";
img.addEventListener("click", function () {
if (!isActive) return;
isActive = false;
if (timer) clearInterval(timer);
if (imgData.isSafe) {
wins++;
this.style.borderColor = "#00ff80";
msgDisplay.innerText = "Good Eye!";
msgDisplay.style.color = "#00ff80";
} else {
this.style.borderColor = "#ff1744";
msgDisplay.innerText = "Lost Focus...";
msgDisplay.style.color = "#ff1744";
}
setTimeout(nextAfterRound, 700);
});
arena.appendChild(img);
});
}
function nextAfterRound() {
if (round >= TOTAL_ROUNDS) {
finishAll();
return;
}
startRound();
}
function startRound() {
round++;
if (roundDisplay) roundDisplay.textContent = String(round);
timeLeft = Math.max(3.5, 5.5 - diff * 0.5);
if (timeDisplay) timeDisplay.textContent = timeLeft.toFixed(1);
msgDisplay.innerText = "Pick the SFW image!";
msgDisplay.style.color = "#fff";
isActive = true;
buildRound();
if (timer) clearInterval(timer);
timer = setInterval(() => {
if (!isActive) return;
timeLeft -= 0.1;
if (timeDisplay) timeDisplay.textContent = timeLeft.toFixed(1);
if (timeLeft <= 0) {
isActive = false;
clearInterval(timer);
msgDisplay.innerText = "Too Slow!";
msgDisplay.style.color = "#ff1744";
setTimeout(nextAfterRound, 700);
}
}, 100);
}
function finishAll() {
if (timer) clearInterval(timer);
const score = Math.round((wins / TOTAL_ROUNDS) * 100);
State.variables.mg_Score = score;
msgDisplay.innerText = "Rounds won: " + wins + "/" + TOTAL_ROUNDS + " · Score " + score + "%";
msgDisplay.style.color = score >= 66 ? "#00e676" : (score >= 34 ? "#ffaa00" : "#ff1744");
setTimeout(() => FT_finishMinigame(score), 1200);
}
function begin() {
if (stage) stage.classList.add("is-playing");
if (overlay) overlay.style.display = "none";
if (playUi) playUi.style.display = "flex";
startRound();
}
if (startBtn) startBtn.onclick = begin;
$(document).one(':passagestart', () => { if (timer) clearInterval(timer); });
});
<</script>><<if ndef $mg_Type>><<set $mg_Type to "technique">><</if>>
<style>
.hit-line {
position: absolute;
left: 5%;
right: 5%;
bottom: 18%;
height: 3px;
background: linear-gradient(90deg, transparent, #00e5ff, #fff, #00e5ff, transparent);
box-shadow: 0 0 12px rgba(0, 229, 255, 0.85);
z-index: 20;
display: none;
}
.mg-stage.is-playing .hit-line { display: block; }
.hit-line::before {
content: "HIT";
position: absolute;
left: 50%;
top: -18px;
transform: translateX(-50%);
font-size: 11px;
letter-spacing: 0.15em;
color: #00e5ff;
text-shadow: 0 0 6px #000;
}
.mg-stage {
position: relative; width: 100%; max-width: 950px; margin: 0 auto 12px;
aspect-ratio: 16/9; border-radius: 14px; overflow: hidden; background: #000;
}
.mg-stage .bg-video {
position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain;
opacity: 0; transition: opacity 0.25s ease;
}
.mg-stage.is-playing .bg-video { opacity: 1; }
.mg-overlay {
position: absolute; inset: 0; z-index: 12;
display: flex; flex-direction: column; align-items: center; justify-content: center;
background: rgba(0,0,0,0.92);
}
.mg-stage.is-playing .mg-overlay.start-only { display: none; }
#mg-start-btn-generic {
padding: 16px 40px; font-size: 1.25rem; font-weight: 700; border-radius: 999px;
border: 1px solid #ba55d3; background: rgba(186,85,211,0.55); color: #fff; cursor: pointer;
}
#rhythm-arena {
position: absolute; inset: 0; z-index: 8;
display: none; pointer-events: none;
}
.mg-stage.is-playing #rhythm-arena { display: block; }
.lane { position: absolute; bottom: 0; width: 22%; height: 100%; }
.falling-arrow { position: absolute; left: 50%; transform: translateX(-50%); font-size: 28px; }
.falling-arrow.hit { color: #00e676; }
.falling-arrow.miss { color: #ff1744; opacity: 0.5; }
.mg-hud-bar {
position: absolute; top: 10px; left: 0; right: 0; z-index: 15;
text-align: center; color: #fff; text-shadow: 0 2px 6px #000;
display: none; background: rgba(0,0,0,0.15); padding: 6px;
}
.mg-stage.is-playing .mg-hud-bar { display: block; }
.mg-skip-row { text-align: center; margin: 12px 0 8px; }
</style>
<div class="mg-stage" id="mg-stage">
<video class="bg-video" autoplay loop muted playsinline><source @src="$mg_BgVideo" type="video/webm"></video>
<div class="mg-hud-bar">⏱️ <span id="t-time">0.0</span>s · Hits <span id="t-hits">0</span> · Miss <span id="t-misses">0</span></div>
<div class="hit-line" id="tech-hit-line"></div>
<div id="rhythm-arena">
<div class="lane" data-key="ArrowLeft" style="left:8%"></div>
<div class="lane" data-key="ArrowUp" style="left:30%"></div>
<div class="lane" data-key="ArrowDown" style="left:52%"></div>
<div class="lane" data-key="ArrowRight" style="left:74%"></div>
</div>
<div class="mg-overlay start-only" id="mg-overlay">
<button type="button" id="mg-start-btn-generic">▶ Start</button>
</div>
</div>
<div id="tech-message" style="text-align:center;color:#fff;"></div>
<div class="mg-skip-row">
<<set _ch to FT_skipChance($mg_Type, $mg_Difficulty || 1)>>
<<link `'⏭ Skip gamble (' + _ch + '% win)'`>>
<<run FT_skipCurrentMinigame()>>
<</link>>
</div>
<<script>>
$(document).one(':passagedisplay', function () {
const diff = State.variables.mg_Difficulty || 1;
const stat = State.variables.statTechnique || 1;
const gameTime = Math.max(8, 12 - diff + Math.floor(stat / 3));
const spawnInterval = Math.max(350, 700 - diff * 80);
const fallDuration = Math.max(1200, 2200 - diff * 200);
let hits = 0, misses = 0, timeLeft = gameTime;
let isActive = false;
let activeArrows = [];
let spawner = null, clock = null;
const keys = ["ArrowLeft", "ArrowUp", "ArrowDown", "ArrowRight"];
const keySymbols = { ArrowLeft: "⬅️", ArrowUp: "⬆️", ArrowDown: "⬇️", ArrowRight: "➡️" };
const timeDisp = document.getElementById("t-time");
const hitsDisp = document.getElementById("t-hits");
const missesDisp = document.getElementById("t-misses");
const msgDisp = document.getElementById("tech-message");
const arena = document.getElementById("rhythm-arena");
const stage = document.getElementById("mg-stage");
const startBtn = document.getElementById("mg-start-btn-generic");
function spawnArrow() {
if (!isActive) return;
const key = keys[Math.floor(Math.random() * keys.length)];
const lane = arena.querySelector('.lane[data-key="' + key + '"]');
if (!lane) return;
const arrow = document.createElement("div");
arrow.className = "falling-arrow";
arrow.innerText = keySymbols[key];
arrow.dataset.key = key;
arrow.style.top = "-60px";
lane.appendChild(arrow);
const startTime = performance.now();
const arrowObj = { el: arrow, key: key, start: startTime, hit: false };
activeArrows.push(arrowObj);
function animate(now) {
if (!isActive || arrowObj.hit) return;
const progress = (now - startTime) / fallDuration;
arrow.style.top = (-60 + progress * (lane.clientHeight - 40)) + "px";
if (progress >= 1.05) {
arrow.classList.add("miss");
misses++;
if (missesDisp) missesDisp.innerText = misses;
setTimeout(() => arrow.remove(), 300);
activeArrows = activeArrows.filter(a => a !== arrowObj);
return;
}
requestAnimationFrame(animate);
}
requestAnimationFrame(animate);
}
function checkHit(pressedKey) {
if (!isActive) return;
const candidates = activeArrows.filter(a => a.key === pressedKey && !a.hit);
if (!candidates.length) return;
const now = performance.now();
let best = null, bestDist = 9999;
candidates.forEach(a => {
const progress = (now - a.start) / fallDuration;
const dist = Math.abs(progress - 0.88);
if (dist < bestDist && progress > 0.65 && progress < 1.05) {
bestDist = dist; best = a;
}
});
if (best && bestDist < 0.22) {
best.hit = true;
best.el.classList.add("hit");
hits++;
if (hitsDisp) hitsDisp.innerText = hits;
setTimeout(() => best.el.remove(), 250);
activeArrows = activeArrows.filter(a => a !== best);
}
}
const keyHandler = function (e) {
if (!isActive) return;
if (keys.includes(e.key)) { e.preventDefault(); checkHit(e.key); }
};
document.addEventListener("keydown", keyHandler);
function startTechniqueGame() {
if (isActive) return;
isActive = true;
if (stage) stage.classList.add("is-playing");
if (msgDisp) msgDisp.innerText = "Hit the arrows!";
spawner = setInterval(spawnArrow, spawnInterval);
spawnArrow();
clock = setInterval(() => {
if (!isActive) return;
timeLeft -= 0.1;
if (timeDisp) timeDisp.innerText = timeLeft.toFixed(1);
if (timeLeft <= 0) {
isActive = false;
clearInterval(clock); clearInterval(spawner);
document.removeEventListener("keydown", keyHandler);
activeArrows.forEach(a => a.el.remove());
activeArrows = [];
const total = hits + misses;
let score = total > 0 ? Math.min(100, Math.round((hits / total) * 100)) : 0;
if (hits >= 12) score = Math.min(100, score + 5);
State.variables.mg_Score = score;
if (msgDisp) {
msgDisp.innerText = score >= 70 ? "Great Technique!" : (score >= 40 ? "Decent..." : "Needs Work");
msgDisp.style.color = score >= 70 ? "#00e676" : (score >= 40 ? "#ffaa00" : "#ff1744");
}
setTimeout(() => FT_finishMinigame(score), 1200);
}
}, 100);
}
if (startBtn) startBtn.onclick = startTechniqueGame;
$(document).one(':passagestart', () => {
document.removeEventListener("keydown", keyHandler);
if (clock) clearInterval(clock);
if (spawner) clearInterval(spawner);
});
});
<</script>><<if ndef $mg_Type>><<set $mg_Type to "stamina">><</if>>
<style>
.mg-stage {
position: relative; width: 100%; max-width: 950px; margin: 0 auto 12px;
aspect-ratio: 16/9; border-radius: 14px; overflow: hidden; background: #000;
}
.mg-stage .bg-video {
position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain;
opacity: 0; transition: opacity 0.25s ease;
}
.mg-stage.is-playing .bg-video { opacity: 1; }
.mg-overlay {
position: absolute; inset: 0; z-index: 12;
display: flex; flex-direction: column; align-items: center; justify-content: center;
background: rgba(0,0,0,0.92);
}
.mg-stage.is-playing .mg-overlay {
background: rgba(0,0,0,0.10);
}
#mg-start-btn {
padding: 16px 40px; font-size: 1.25rem; font-weight: 700; border-radius: 999px;
border: 1px solid #ba55d3; background: rgba(186,85,211,0.55); color: #fff; cursor: pointer;
}
.qte-key {
display: inline-flex; align-items: center; justify-content: center;
width: 42px; height: 42px; margin: 0 5px; font-size: 20px; font-weight: bold;
background: linear-gradient(#ddd,#bbb); border: 2px solid #555; border-radius: 6px;
}
.qte-active-key { border-color: #00cbff; box-shadow: 0 0 12px rgba(0,203,255,0.8); }
.qte-success-key { background: linear-gradient(#00e676,#00b259); border-color: #00ff80; color: #fff; }
#stamina-timer { font-size: 1.3rem; font-weight: 700; color: #fff; text-shadow: 0 2px 6px #000; margin-bottom: 8px; display: none; }
.mg-skip-row { text-align: center; margin: 12px 0 8px; }
</style>
<div class="mg-stage" id="mg-stage">
<video class="bg-video" autoplay loop muted playsinline><source @src="$mg_BgVideo" type="video/webm"></video>
<div class="mg-overlay" id="qte-overlay">
<div id="stamina-countdown" style="display:none;font-size:4rem;font-weight:800;color:#fff;text-shadow:0 4px 16px #000;">3</div>
<div id="stamina-timer" style="display:none;">Time: <span id="stamina-clock">0.0</span>s</div>
<div id="qte-display" style="display:none;"></div>
<h4 id="stamina-message" style="color:#fff; text-shadow:1px 1px 2px #000; margin: 8px 0;">Press Start</h4>
<button type="button" id="mg-start-btn">▶ Start</button>
</div>
</div>
<div class="mg-skip-row">
<<set _ch to FT_skipChance($mg_Type, $mg_Difficulty || 1)>>
<<link `'⏭ Skip gamble (' + _ch + '% win)'`>>
<<run FT_skipCurrentMinigame()>>
<</link>>
</div>
<<script>>
$(document).one(':passagedisplay', function () {
const diff = State.variables.mg_Difficulty || 1;
const stat = State.variables.statStamina || 1;
const seqLength = Math.max(3, (2 + (diff * 2)) - Math.floor(stat / 3));
const timeLimit = Math.max(6, 14 - diff * 2 + Math.floor(stat / 2));
const keysMap = { ArrowUp: "⬆️", ArrowDown: "⬇️", ArrowLeft: "⬅️", ArrowRight: "➡️" };
const keyArray = Object.keys(keysMap);
let sequence = [], index = 0, isActive = false, started = false, startTs = 0, timerId = null;
const display = document.getElementById("qte-display");
const msg = document.getElementById("stamina-message");
const clock = document.getElementById("stamina-clock");
const timerWrap = document.getElementById("stamina-timer");
const startBtn = document.getElementById("mg-start-btn");
const stage = document.getElementById("mg-stage");
const overlay = document.getElementById("qte-overlay");
for (let i = 0; i < seqLength; i++) sequence.push(keyArray[Math.floor(Math.random() * keyArray.length)]);
// Countdown length scales with difficulty (harder = shorter ready time)
const countdownFrom = Math.max(1, 4 - diff); // diff1→3, diff2→2, diff3→1
function draw() {
if (!display) return;
display.innerHTML = "";
sequence.forEach((k, i) => {
const span = document.createElement("span");
span.innerText = keysMap[k];
span.className = "qte-key";
if (i < index) span.classList.add("qte-success-key");
else if (i === index && isActive) span.classList.add("qte-active-key");
display.appendChild(span);
});
}
function tick() {
if (!isActive) return;
const elapsed = (performance.now() - startTs) / 1000;
clock.textContent = elapsed.toFixed(1);
if (elapsed >= timeLimit) {
isActive = false;
clearInterval(timerId);
msg.innerText = "TIME UP!";
msg.style.color = "#ff1744";
State.variables.mg_Score = Math.max(10, Math.round((index / seqLength) * 55));
FT_finishMinigame(State.variables.mg_Score);
}
}
function begin() {
if (started) return;
started = true;
startBtn.style.display = "none";
if (stage) stage.classList.add("is-playing");
if (overlay) overlay.style.background = "rgba(0,0,0,0.10)";
msg.innerText = "Get ready...";
msg.style.color = "#fff";
const cdEl = document.getElementById("stamina-countdown");
let left = countdownFrom;
if (cdEl) {
cdEl.style.display = "block";
cdEl.textContent = String(left);
}
const cdTimer = setInterval(() => {
left--;
if (left > 0) {
if (cdEl) cdEl.textContent = String(left);
} else {
clearInterval(cdTimer);
if (cdEl) cdEl.style.display = "none";
// Reveal pattern only after countdown
if (display) display.style.display = "block";
if (timerWrap) timerWrap.style.display = "block";
msg.innerText = "Use Arrow Keys!";
isActive = true;
startTs = performance.now();
timerId = setInterval(tick, 50);
draw();
}
}, 1000);
}
startBtn.addEventListener("click", begin);
const handler = function (e) {
if (!isActive) return;
if (!keyArray.includes(e.key)) return;
e.preventDefault();
if (e.key === sequence[index]) {
index++;
draw();
if (index === sequence.length) {
isActive = false;
clearInterval(timerId);
const elapsed = (performance.now() - startTs) / 1000;
msg.innerText = "PERFECT!";
msg.style.color = "#00e676";
const speedBonus = Math.max(0, Math.round((timeLimit - elapsed) * 3));
State.variables.mg_Score = Math.min(100, 70 + speedBonus);
FT_finishMinigame(State.variables.mg_Score);
}
} else {
isActive = false;
clearInterval(timerId);
msg.innerText = "MISSTEP!";
msg.style.color = "#ff1744";
State.variables.mg_Score = Math.max(5, Math.round((index / seqLength) * 40));
FT_finishMinigame(State.variables.mg_Score);
}
};
document.addEventListener("keydown", handler);
$(document).one(':passagestart', () => {
document.removeEventListener("keydown", handler);
clearInterval(timerId);
});
});
<</script>><div class="passage-title">Your New Reality</div>
<div class="story-img"><img src="career/pics/loc/rebecca_office.jpg" alt="Rebecca office" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
Rebecca doesn’t sit behind the desk. She leans against it, still flushed from the audition, already shifting into boss mode.
<<speech "rebecca">>Listen carefully, $playerName. Talent is only half of this job. The other half is surviving the schedule.<</speech>>
<div class="story-img"><img src="career/pics/story/keycard_phone.jpg" alt="Keycard and phone" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
<<speech "rebecca">>I’m putting you in a studio apartment I control. You live there, work from there, and you answer when I call. In exchange I front your early career — training already cost me. Now you owe me a weekly cut.<</speech>>
<div class="panel">
<div class="panel-title">Systems unlocked</div>
<ul>
<li><b>Money</b> — every scene and side hustle pays. Miss the weekly debt and I collect another way.</li>
<li><b>Actions (3 per day)</b> — shoots, escort, training, recovery, talking to stars each cost one.</li>
<li><b>Exhaustion</b> — push too hard and you’re locked out of work for days.</li>
<li><b>Phone</b> — mail, offers, rankings. Messages tell you what’s available; you still travel to the location.</li>
<li><b>City</b> — Joy Media first. Other studios open with reputation. Stars you work with can appear around town.</li>
</ul>
</div>
<<speech "rebecca">>Start on the amateur gloryhole sets. Low pay, high exposure. Perform well and people remember your name. Perform badly and you’re just another hole in the wall.<</speech>>
<<speech "you">>…Got it.<</speech>>
<<speech "rebecca">>Good. Keys are yours. Don’t make me regret this.<</speech>>
<div class="story-img"><img src="career/pics/loc/apartment_interior.jpg" alt="Starter apartment" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
<<if $auditionTier === "high">>
<<set $money += 200>>
<<else>>
<<set $money += 120>>
<</if>>
<<set $debtActive to true>>
<<set $debt to 0>>
<<set $debtDaysLeft to 7>>
<<set $careerStarted to true>>
<<set $systemsUnlocked to true>>
<<set $camUnlocked to true>>
<<set $onlyfansUnlocked to true>>
<<if $auditionTier === "high">>
<<set $camUnlocked to true>>
<</if>>
<<set $actionsLeft to $actionsMax>>
<<set $exhaustion to 0>>
<<set $mood to 8>>
<<set $didRecoveryToday to false>>
<<set $actionsUsedToday to 0>>
<<set $studioSameDayLock to false>>
<<set $swallowSameDayLock to false>>
<<set $secretsSameDayLock to false>>
<<set $escortSameDayLock to false>>
<<set $camSameDayLock to false>>
<div class="reward">Career systems online. Apartment secured. Weekly debt active.</div>
[[Enter your apartment|Bedroom Hub]]<div class="passage-title">$playerName’s Place</div>
<<if $systemsUnlocked>>
<<checkVersionEnd>>
<div class="story-img"><img src="career/pics/loc/bedroom_hub.jpg" alt="Bedroom hub" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
The room is quiet. Soft light filters through the curtains. Your phone sits on the nightstand — Rebecca’s number already saved.
<<if $versionEndReady and not $versionEndSeen>>
<div class="panel" style="border-color:rgba(186,85,211,0.55);">
<div class="panel-title">You’ve gone far this version</div>
Every studio booking and escort story (except the cuckold path) is in the can.
<div class="nav-grid">[[See the wrap note|Version Complete]]</div>
</div>
<<elseif $versionEndSeen>>
<div class="hint">[[Version note / support|Version Complete]]</div>
<</if>>
<div class="nav-grid">
[[Check Phone|Phone]]
[[Go Out|City]]
[[Sleep|Sleep Sequence]]
</div>
<<else>>
<div class="story-img"><img src="career/pics/loc/temp_room.jpg" alt="Temp room" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
You’re still in the temporary room. Until Rebecca signs off on your career, this is just a place to sleep and train.
<div class="nav-grid">
[[Sleep|Sleep Sequence]]
[[Go to Training Grounds|Training Grounds]]
</div>
<<if $statFocus >= 2 and $statTechnique >= 2 and $statStamina >= 2>>
<div class="panel">
<div class="panel-title">Ready</div>
[[Contact Rebecca (Final Audition)|Audition A - Rebecca]]
</div>
<<else>>
<div class="panel">
<div class="panel-title">Training required</div>
<span class="hint">Raise Focus, Technique, and Stamina to 2 with Raya.</span><br>
Focus <b>$statFocus</b> · Technique <b>$statTechnique</b> · Stamina <b>$statStamina</b>
</div>
<</if>>
<</if>># Debt Deadline
<<speech "rebecca">>Time's up. You owe me $<<print $debtWeekly>> this week.<</speech>>
<<if $money >= $debtWeekly>>
You have enough money.
[[Pay the debt|Pay Debt]]
[[I can't pay right now|Debt Consequence]]
<<else>>
You don't have enough money.
[[Continue|Debt Consequence]]
<</if>><<silently>>
<<set _weekDue to Number($debtWeekly) || 1500>>
<<set _paidExtra to 0>>
<<set _paidOk to false>>
<<if $money >= _weekDue>>
<<set $money -= _weekDue>>
<<if $money > 0 and $debt > 0>>
<<set _extra to Math.min($money, $debt)>>
<<set $debt -= _extra>>
<<set $money -= _extra>>
<<set _paidExtra to _extra>>
<</if>>
<<set _paidOk to true>>
<<set $rebeccaRelation to ($rebeccaRelation || 0) + 5>>
<<else>>
<<set _had to Number($money) || 0>>
<<set _remain to Math.max(0, _weekDue - _had)>>
<<set $debt to (Number($debt) || 0) + _remain>>
<<set $money to 0>>
<<set _paidOk to false>>
<<set $debtShortfallApplied to true>>
<</if>>
<<set $debtDaysLeft to 7>>
<</silently>>
<<if _paidOk>>
<<speech "rebecca">>Good. Weekly payment received.<</speech>>
<<if _paidExtra > 0>>
<div class="reward">Surplus applied to principal: −$<<print _paidExtra>>. Debt remaining: $<<print $debt>>.</div>
<<else>>
<div class="hint">Debt on the books: $<<print $debt>>. Next week due: $<<print $debtWeekly>>.</div>
<</if>>
[[Return to Bedroom|Bedroom Hub]]
<<else>>
<<speech "rebecca">>That wasn’t enough. Everything you had is gone — and this week is on the tab.<</speech>>
<div class="danger">Money cleared. Debt owed is now $<<print $debt>>.</div>
[[Continue|Debt Consequence]]
<</if>><div class="passage-title">Missed Payment</div>
<<speech "rebecca">>You can’t pay? Then you’ll pay another way.<</speech>>
<<silently>>
/* Principal already increased if routed from Pay Debt shortfall; ensure week is on the books */
<<if ndef $debtShortfallApplied>>
<<set _weekDue to Number($debtWeekly) || 1500>>
<<set _had to Number($money) || 0>>
<<set $debt to (Number($debt) || 0) + Math.max(0, _weekDue - _had)>>
<<set $money to 0>>
<</if>>
<<unset $debtShortfallApplied>>
<<set $debtDaysLeft to 7>>
<<set $rebeccaRelation to ($rebeccaRelation || 0) - 10>>
<<set $pendingRebeccaVisit to true>>
<</silently>>
<<silently>>
/* Clear any stale chat actions so Rebel buttons don’t appear on Rebecca’s thread */
<<if $chats>>
<<for _c range $chats>>
<<if _c.id === "rebel">><<set _c.action to null>><</if>>
<</for>>
<</if>>
<<run FT_pushChat("rebecca", "Rebecca", "You missed this week’s payment, " + ($playerName || "kid") + ". My place. Tonight. Don’t make me wait.", "rebecca_visit")>>
<<run FT_pushChat("rebecca", "Rebecca", "Address is the same building as last time. Door unlocked. Come alone.", "rebecca_visit")>>
<</silently>>
Her tone doesn’t rise. Your phone buzzes instead.
<div class="panel">
<div class="panel-title">New message · Rebecca</div>
She expects you at her place. Open <b>Messages</b>, or go straight there from the City.
</div>
<div class="nav-grid">
[[Open Messages|Phone - Messages]]
[[Go to Rebecca’s House|Forced Scene Hub]]
[[Back to Bedroom|Bedroom Hub]]
</div><<set $pendingRebeccaVisit to false>>
<<silently>>
<<if $chats>>
<<for _c range $chats>>
<<if _c.id === "rebecca">><<set _c.action to null>><</if>>
<</for>>
<</if>>
<</silently>>
<div class="passage-title">Rebecca’s Terms</div>
You arrive. She doesn’t waste time.
<<speech "rebecca">>You didn’t pay. So we do this my way, $playerName.<</speech>>
<<if not $sceneCompleted["debt_week1"]>>
[[Accept the lesson|Scene debt_week1]]
<<elseif not $sceneCompleted["debt_week2"]>>
[[Second week consequences|Scene debt_week2]]
<<else>>
[[Soft Femdom session|Forced Scene - Soft Femdom]]
<<if $unlockedCuckoldEscort>>
[[Cuckold lesson|Forced Scene - Cuck]]
<</if>>
<</if>><div class="passage-title">Forced – Soft Femdom</div>
<<set $debtFailCount += 1>>
Rebecca points to the floor beside the couch.
<<speech "rebecca">>Kneel. Hands behind your back. You’re not directing anything tonight.<</speech>>
You obey. She walks a slow circle around you, robe half open, fingers in your hair when she wants eye contact.
<<speech "rebecca">>I funded your start. You spent the week and brought me nothing. So tonight you pay with obedience.<</speech>>
<<speech "you">>…Yes.<</speech>>
She edges you with deliberate patience — mouth, hands, stopping the second your breath changes. A lecture between every pause: how studios work, how reputation dies, how easy it is to replace booth talent.
When she finally lets you finish, it’s on your knees, looking up, while she decides you’re done.
<<if $debtFailCount >= 3>>
<<speech "rebecca">>Third time. Next failure won’t be private.<</speech>>
<<else>>
<<speech "rebecca">>Next week, have the cash. Or we do this again — and I’ll invite an audience.<</speech>>
<</if>>
<<set $exhaustion to Math.min($exhaustionMax, $exhaustion + 2)>>
<<set $mood to Math.max(0, $mood - 1)>>
<<set $rebeccaRelation += 2>>
Exhaustion +18 | Fail count: $debtFailCount
[[Return Home|Bedroom Hub]]<div class="passage-title">Forced – Cuckold Lesson</div>
<<if not $unlockedCuckoldEscort>>
[[Continue|Forced Scene - Soft Femdom]]
<<else>>
<<set $debtFailCount += 1>>
Rebecca has company already on the couch — a confident male performer she doesn’t bother introducing.
<<speech "rebecca">>Sit. Watch. Don’t touch him, don’t touch me, don’t touch yourself until I say.<</speech>>
She performs with him while making sure you never look away. When your jaw tightens she smiles. When it’s over she leaves you hard and dismissed at the door.
<<speech "rebecca">>That’s the business. Either you earn the role… or you hold the coat.<</speech>>
<<applyWorkLoad "studio" "neutral">>
<<set $expCuckold += 1>>
<<set $rebeccaRelation += 1>>
Exhaustion +14 | Cuckold Exp +1 | Fail count: $debtFailCount
[[Return Home|Bedroom Hub]]
<</if>><div class="passage-title">Phone</div>
<div class="story-img"><img src="career/pics/story/phone_home.jpg" alt="Phone home" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
Your phone lights up.
<div style="display:flex; flex-wrap:wrap; gap:16px; margin: 20px 0;">
<div style="text-align:center; width:100px;">
[[💬 Messages|Phone - Messages]]
<<if $unreadChats > 0>><br><small style="color:#00cbff;">$unreadChats new</small><</if>>
</div>
<div style="text-align:center; width:100px;">
<<if $camUnlocked>>
[[Cam|Cam Setup]]
<<else>>
Cam<br><small>(Locked)</small>
<</if>>
</div>
<div style="text-align:center; width:100px;">
[[Rankings|Phone - Rankings]]
</div>
</div>
<<if $pendingRebeccaVisit>>
<div class="panel danger">Rebecca expects you at her place.</div>
<</if>>
<<if ($rebelVisit2Ready or Number($pendingRebelMeet) === 2) and not $rebelVisit2Done>>
<div class="panel">Rebel & her husband want to meet.
<div class="nav-grid">[[Meet them|Rebel Cuckold Pitch 2]] [[Open Messages|Phone - Messages]]</div></div>
<</if>>
[[Back to Bedroom|Bedroom Hub]]<div class="passage-title">Messages</div>
<<if ndef $chats or !$chats or $chats.length === 0>>
<div class="hint">No conversations yet. People will text when something needs your attention.</div>
<<else>>
<<for _c range $chats>>
<div class="loc-card" style="<<if _c.unread>>border-color:#00cbff;<</if>>">
<b><<print _c.name>></b>
<<if _c.unread>> <span class="stat-info">· <<print _c.unread>> new</span><</if>>
<br>
<span class="hint"><<print (_c.messages.length ? _c.messages[_c.messages.length - 1].text.slice(0, 80) : "")>></span>
<br>
[[Open|Phone - Chat][$activeChatId to _c.id]]
</div>
<</for>>
<</if>>
<div class="nav-grid">[[Back to Phone|Phone]]</div><<set _thread to null>>
<<for _c range $chats>>
<<if _c.id === $activeChatId>>
<<set _thread to _c>>
<</if>>
<</for>>
<<if not _thread>>
Thread not found.
[[Messages|Phone - Messages]]
<<else>>
<div class="passage-title"><<print _thread.name>></div>
<<if _thread.unread>>
<<set $unreadChats to Math.max(0, $unreadChats - _thread.unread)>>
<<set _thread.unread to 0>>
<</if>>
<div class="panel" style="max-height: 50vh; overflow:auto;">
<<for _m range _thread.messages>>
<div style="margin: 10px 0; padding: 10px 12px; border-radius: 12px; background: rgba(255,255,255,0.05);">
<b style="color:#ce93d8;"><<print _thread.name>></b>
<div><<print _m.text>></div>
</div>
<</for>>
</div>
<<if _thread.id === "rebecca" and $pendingRebeccaVisit>>
<div class="nav-grid">
[[Go to Rebecca’s apartment|Forced Scene Hub]]
</div>
<</if>>
<<if _thread.id === "rebel" and not $rebelVisit2Done and ($rebelVisit2Ready or Number($pendingRebelMeet) === 2)>>
<<silently>>
<<set $pendingRebelMeet to 2>>
<<set $rebelVisit2Ready to true>>
<</silently>>
<div class="nav-grid">
[[Meet Rebel & her husband|Rebel Cuckold Pitch 2]]
</div>
<</if>>
<div class="nav-grid">
[[Back to Messages|Phone - Messages]]
[[Phone|Phone]]
<<if $pendingRebeccaVisit and _thread.id !== "rebecca">>
[[Rebecca’s House|Forced Scene Hub]]
<</if>>
</div>
<</if>><<goto "Phone">><<goto "Phone">># OnlyFans
<<if not $onlyfansUnlocked>>
You need more popularity before you can start an OnlyFans.
[[Back to Phone|Phone]]
<<else>>
Fans: $onlyfansFans<br>
Rank: $rankOnlyFans<br>
Lifetime income: $$onlyfansIncome
*(Placeholder – post content / collect tips later)*
[[Back to Phone|Phone]]
<</if>><<goto "Cam Setup">># Rankings
**Current Standing**
- Porn Sites: $rankPornSites
- OnlyFans: $rankOnlyFans
- Cam: $rankCam
- Escort Agencies: $rankEscort
**Studio Reputation (Overall):** $overallStudioRep
**Scene Experience**
- Gloryhole: $expGloryhole
- Gangbang: $expGangbang
- Orgy: $expOrgy
- Threesome: $expThreesome
- Cuckold: $expCuckold
- Rough: $expRough
- BDSM: $expBDSM
[[Back to Phone|Phone]]
[[Back to Bedroom|Bedroom Hub]]<<checkVersionEnd>>
<div class="passage-title">City</div>
<<if ndef $cityStars or $cityStars is null>>
<<set $cityStars to []>>
<</if>>
<<if $versionEndReady and not $versionEndSeen>>
<div class="panel">
<div class="panel-title">Version content complete</div>
[[Read the end-of-version note|Version Complete]]
</div>
<</if>>
<div class="story-img"><img src="career/pics/loc/city_night.jpg" alt="City strip" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
You step out into the city.
<div class="panel">
<div class="panel-title">Today</div>
Actions left: <b>$actionsLeft / $actionsMax</b>
</div>
<<if $exhaustionLocked>>
<div style="color:#ff5555; margin: 12px 0;">Too exhausted to work. Recover first. ($exhaustionLockDays days left)</div>
<</if>>
/* Auto-unlock studios by pro rep (silent) — Vixen/Bang removed from city for now */
<<if $overallStudioRep >= 40 and not $unlockedBrazzers>><<set $unlockedBrazzers to true>><</if>>
<<if $overallStudioRep >= 60 and not $unlockedDeeper>><<set $unlockedDeeper to true>><</if>>
<div class="nav-grid">
<<if not $exhaustionLocked>>
[[Joy Media Studios|Joy Media Studios]]
<</if>>
<<if $unlockedDogfart>>
[[Dogfart Studios|Dogfart Studios]]
<</if>>
<<if $unlockedBrazzers>>
[[Brazzers Studios|Brazzers Studios]]
<</if>>
<<if $unlockedDeeper>>
[[Deeper Studios|Deeper Studios]]
<</if>>
<<if $pendingRebeccaVisit>>
[[Rebecca’s House|Forced Scene Hub]]
<</if>>
<<if ($rebelVisit2Ready or Number($pendingRebelMeet) === 2) and not $rebelVisit2Done>>
<div class="panel">Rebel & her husband want to meet.
<div class="nav-grid">[[Meet them|Rebel Cuckold Pitch 2]] [[Messages|Phone - Messages]]</div></div>
<</if>>
[[Escort Agency|Escort Agency]]
[[Park|Park]]
[[Mall|Mall]]
[[Gym|Gym]]
[[Cafe|Cafe]]
[[Return Home|Bedroom Hub]]
</div><div class="passage-title">Joy Media Studios</div>
<div class="story-img"><img src="career/pics/loc/joy_media_lobby.jpg" alt="Joy Media lobby" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
You arrive at Joy Media — Rebecca’s company.
<<if $exhaustionLocked>>
<span class="danger">Too exhausted to work.</span>
<div class="nav-grid">[[Return to City|City]]</div>
<<elseif $studioSameDayLock>>
<span class="hint">You already did a studio shoot today. Sleep to book another.</span>
<div class="nav-grid">[[Return to City|City]] [[Bedroom|Bedroom Hub]]</div>
<<else>>
The lobby is modern and professional. A receptionist looks up at you.
<<if $debtActive>>
<<speech "rebecca">>Start with group scenes. Low pay, high exposure. Build the name first.<</speech>>
<</if>>
<div class="panel">
<div class="panel-title">Available sites</div>
<div class="loc-card">[[Gloryhole Swallow (Amateur)|Gloryhole Swallow]]</div>
<<if $unlockedGloryholeSecrets>>
<div class="loc-card">[[Gloryhole Secrets (Pro)|Gloryhole Secrets]]</div>
<<else>>
<div class="locked">Gloryhole Secrets (Pro) — locked until more amateur sessions</div>
<</if>>
</div>
<div class="nav-grid">[[Leave|City]]</div>
<</if>><<silently>>
<<unset $phase>>
<<set $mg_Returning to false>>
<<set $mg_UsePhase to false>>
<<unset $mg_Score1>>
<</silently>>
<div class="passage-title">Gloryhole Swallow</div>
<div class="story-img"><img src="career/pics/loc/gloryhole_swallow.jpg" alt="Gloryhole Swallow set" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
Amateur site under Joy Media. Actions: <b>$actionsLeft / $actionsMax</b>
<<if $exhaustionLocked>>
Too exhausted to work.
[[Back to Joy Media|Joy Media Studios]]
<<elseif $actionsLeft < 1>>
No actions left today. Sleep to continue.
[[Back to Joy Media|Joy Media Studios]]
[[Go Home|Bedroom Hub]]
<<elseif $studioSameDayLock>>
Already shot for a studio today. One Joy Media shoot per day.
[[Back to Joy Media|Joy Media Studios]]
[[Go Home|Bedroom Hub]]
<<else>>
<<set $swallowOrder to ["ghs_mia","ghs_luna","ghs_courtney","ghs_nikki","ghs_rebel","ghs_emma","ghs_bw","ghs_rebel2","ghs_cierra","ghs_indica"]>>
<<set $swallowNames to {
"ghs_mia": "Mia Taylor",
"ghs_luna": "Luna Lovesit",
"ghs_courtney": "Courtney",
"ghs_nikki": "Nikki",
"ghs_rebel": "Rebel Rhyder & Lulu",
"ghs_emma": "Emma",
"ghs_bw": "BW Session",
"ghs_cierra": "Cierra",
"ghs_indica": "Indica",
"ghs_rebel2": "Rebel Rhyder & Lulu (2)"
}>>
<<if ndef $swallowIndex>><<set $swallowIndex to 0>><</if>>
<<silently>>
<<if $swallowIndex >= 8 and not $rebelVisit2Done>><<set $rebelVisit2Ready to true>><</if>>
<</silently>>
<div class="panel">
<div class="panel-title">Session queue</div>
<<if $swallowSameDayLock or $studioSameDayLock>>
<span class="hint">You already shot a studio scene today. Sleep to unlock the next one.</span>
<<else>>
<<if $swallowIndex < $swallowOrder.length>>
<<set _sid to $swallowOrder[$swallowIndex]>>
<<set _slabel to "Session " + ($swallowIndex + 1) + " – " + $swallowNames[_sid]>>
<<set _spass to "Scene " + _sid>>
<div class="loc-card"><<link _slabel _spass>><</link>></div>
<<else>>
All story Swallow sessions complete. You can still grind reputation on Secrets if unlocked.
<</if>>
<</if>>
<div class="hint">Progress: $swallowIndex / $swallowOrder.length · Total takes: $gloryholeSwallowCount</div>
</div>
<div class="nav-grid">[[Back to Joy Media|Joy Media Studios]]</div>
<</if>><<silently>>
<<unset $phase>>
<<set $mg_Returning to false>>
<<set $mg_UsePhase to false>>
<<unset $mg_Score1>>
<</silently>>
<div class="passage-title">Gloryhole Secrets</div>
<div class="story-img"><img src="career/pics/loc/gloryhole_secrets.jpg" alt="Pro gloryhole set" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
<<if not $unlockedGloryholeSecrets>>
Locked. Complete more Gloryhole Swallow sessions first.
[[Back to Joy Media|Joy Media Studios]]
<<elseif $exhaustionLocked>>
Too exhausted to work.
[[Back to Joy Media|Joy Media Studios]]
<<elseif $actionsLeft < 1>>
No actions left today.
[[Back to Joy Media|Joy Media Studios]]
<<elseif $studioSameDayLock>>
Already shot for a studio today. One Joy Media shoot per day.
[[Back to Joy Media|Joy Media Studios]]
<<else>>
<<set $secretsOrder to ["ghx_tommy","ghx_lauren","ghx_cory","ghx_violet","ghx_ella","ghx_nia"]>>
<<set $secretsNames to {
"ghx_tommy": "Tommy King",
"ghx_lauren": "Lauren Phillips",
"ghx_cory": "Cory Chase",
"ghx_violet": "Violet Myers",
"ghx_ella": "Ella Knox",
"ghx_nia": "Nia"
}>>
<<if ndef $secretsIndex>><<set $secretsIndex to 0>><</if>>
<div class="panel">
<div class="panel-title">Pro queue</div>
<<if $secretsSameDayLock>>
<span class="hint">Already did a Secrets scene today. Sleep for the next slot.</span>
<<else>>
<<if $secretsIndex < $secretsOrder.length>>
<<set _sid to $secretsOrder[$secretsIndex]>>
<<set _slabel to $secretsNames[_sid]>>
<<set _spass to "Scene " + _sid>>
<div class="loc-card"><<link _slabel _spass>><</link>></div>
<<else>>
Pro story queue complete.
<</if>>
<</if>>
Progress: $secretsIndex / <<print $secretsOrder.length>>
</div>
<div class="nav-grid">[[Back to Joy Media|Joy Media Studios]]</div>
<</if>><div class="passage-title">Mia Taylor – Gloryhole Swallow</div>
<<if not $mg_Returning and ndef $phase>>
<<set $sceneId to "ghs_mia">>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/a1.webm" type="video/webm"></video>
</div>
The camera is already rolling when Mia settles in front of the holes. She tucks a strand of hair behind her ear, a little shy but clearly excited.
<<speech "producer" "Producer">>Alright Mia, introduce yourself for the camera.<</speech>>
<<speech "mia" "Mia Taylor">>Hi… I’m Mia. First time on one of these. I’ve been thinking about it for weeks and I’m finally here.<</speech>>
<<speech "producer" "Producer">>Nervous?<</speech>>
<<speech "mia" "Mia Taylor">>A little. Mostly excited though.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/a2.webm" type="video/webm"></video>
</div>
She strips without being told, folds her clothes neatly, and drops to her knees. The first cock slides through. She takes it carefully at first, then finds a rhythm.
<<speech "mia" "Mia Taylor">>Mmm… okay. This is actually hotter than I expected.<</speech>>
<<speech "producer" "Producer">>Good. Keep that energy.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/a3.webm" type="video/webm"></video>
</div>
The first guy doesn’t last. She keeps him in her mouth until he finishes, swallows most of it, and wipes the rest from her lip with her thumb.
<<speech "mia" "Mia Taylor">>Good boy… next.<</speech>>
$playerName’s turn. The producer leans in.
<<speech "producer" "Producer">>$playerName, don’t just shove it in. Play with her first. Fingers. Get her wet for the camera.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/a4.webm" type="video/webm"></video>
</div>
$playerName reaches through and finds her already slick. Two fingers slide in easily. She gasps and pushes back against his hand.
<<speech "mia" "Mia Taylor">>Oh— fuck… yes, just like that. Don’t stop.<</speech>>
<<speech "you">>You’re already this wet?<</speech>>
<<speech "mia" "Mia Taylor">>I’ve been thinking about this all morning…<</speech>>
After a minute the producer nods. $playerName pulls his fingers free and pushes his cock through instead.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/a5.webm" type="video/webm"></video>
</div>
Mia goes quiet for a second when she sees the size.
<<speech "mia" "Mia Taylor">>Jesus Christ… okay. That’s thicker than the others.<</speech>>
<<speech "producer" "Producer">>Take your time with it.<</speech>>
She leans in and starts sucking, slower and more careful, one hand wrapped around the base while her tongue works the head.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/a6.webm" type="video/webm"></video>
</div>
She forces herself deeper, eyes watering, then pulls off with a wet sound and strokes him firmly with both hands.
<<speech "mia" "Mia Taylor">>You’re still completely hard… most guys would have finished already. Fuck, you’re big.<</speech>>
<<speech "you">>You can take more.<</speech>>
<<speech "mia" "Mia Taylor">>I’m trying…<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/a7.webm" type="video/webm"></video>
</div>
She switches to a focused two-handed stroke, trying to finish him. $playerName holds out. A small frustrated, impressed sound escapes her.
<<speech "mia" "Mia Taylor">>You’re not even close, are you? Goddamn…<</speech>>
<<speech "producer" "Producer">>She’s impressed. Keep that control.<</speech>>
She reaches for a condom, rolls it down his length, then turns and backs onto the hole.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/a8.webm" type="video/webm"></video>
</div>
<<speech "mia" "Mia Taylor">>Okay… I’m putting you inside. Don’t move yet— let me feel it.<</speech>>
She sinks down slowly until she’s fully seated, then starts riding. Her breathing changes almost immediately.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/a9.webm" type="video/webm"></video>
</div>
Her pussy grows louder and creamier with every stroke. She starts moaning properly, hips moving faster.
<<speech "mia" "Mia Taylor">>Shit… you’re hitting it. Right there. Don’t you dare finish yet— I want to cum on this cock first.<</speech>>
<<speech "you">>Then cum for me.<</speech>>
<<speech "mia" "Mia Taylor">>I’m getting close… just hold on—<</speech>>
<<mgButtons "focus" 2 "career/swallow/BWC/a7.webm" 1>>
<<elseif $phase == 1>>
<<set $mg_Score1 to $mg_Score>>
<<unset $phase>>
<<speech "producer" "Producer">>Stay with the camera. Next beat — don't lose the heat.<</speech>>
<<mgButtons "stamina" 2 "career/swallow/BWC/a9.webm">>
<<else>>
<<set $lastScore to Math.round((($mg_Score1 || $mg_Score) + $mg_Score) / 2)>>
<<unset $mg_Score1>>
<<set $mg_Returning to false>>
<<if $lastScore >= 65>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/a10.webm" type="video/webm"></video>
</div>
$playerName holds out. Mia’s thighs start to shake. She cums hard around him, a broken moan slipping out as her pussy clenches and floods the condom. The feeling pulls him over right after her — he fills the condom while she’s still pulsing.
<<speech "mia" "Mia Taylor">>Fuck— I’m cumming… fill it, fill it—! Oh my god…<</speech>>
<<speech "you">>Take every drop.<</speech>>
<<speech "mia" "Mia Taylor">>I am… fuck, I am—<</speech>>
<<else>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/a10.webm" type="video/webm"></video>
</div>
$playerName loses the fight a little too early. Mia feels him throb and start filling the condom before she’s fully there. She still rides through it, chasing her own orgasm, and manages to finish a few seconds later — but the timing is off.
<<speech "mia" "Mia Taylor">>Ah— already? Fuck… okay, okay, keep going, I’m close—<</speech>>
<<speech "you">>I’m trying—<</speech>>
<<speech "mia" "Mia Taylor">>Just don’t pull out yet…<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/a11.webm" type="video/webm"></video>
</div>
She carefully peels the condom off and immediately leans in to clean his cock with her mouth, slow and thorough.
<<if $lastScore >= 65>>
<<speech "mia" "Mia Taylor">>Still hard… and that was a lot. You lasted perfectly.<</speech>>
<<else>>
<<speech "mia" "Mia Taylor">>Still hard at least… even if you finished a bit quick.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/a12.webm" type="video/webm"></video>
</div>
She lifts the used condom, tips it back, and drinks everything without hesitation.
<<speech "mia" "Mia Taylor">>Mmm… thick. Tastes good.<</speech>>
<<speech "producer" "Producer">>Nice. Camera loved that.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/a13.webm" type="video/webm"></video>
</div>
She turns back to the remaining holes and starts working the other guys again, methodically making them finish in her mouth one after another.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/a14.webm" type="video/webm"></video>
</div>
Later, in the exit interview, she looks straight into the camera, still a little flushed.
<<speech "producer" "Producer">>So… favorite of the day?<</speech>>
<<if $lastScore >= 65>>
<<speech "mia" "Mia Taylor">>Honestly? The thick one in the middle. Big, hit my G-spot perfectly, and he actually lasted long enough for me to cum on it. His cum tasted really good too. I’d do that again in a heartbeat.<</speech>>
<<else>>
<<speech "mia" "Mia Taylor">>The thick one was still the best cock of the day… size was perfect and it hit the right spot. Just wish he’d lasted a little longer so I could really enjoy it. Still, his cum tasted good. Wouldn’t mind another try.<</speech>>
<</if>>
<<silently>>
<<set $sceneCompleted["ghs_mia"] to true>>
<<set $swallowSameDayLock to true>>
<<set $studioSameDayLock to true>>
<<bumpSwallowProgress 1>>
<<set $actionsLeft -= 1>> <<set $expGloryhole += 1>> <<set $gloryholeSwallowCount += 1>> <<set $actressRelation["mia_taylor"] to ($actressRelation["mia_taylor"] || 0) + ($lastScore >= 65 ? 10 : 5)>> <<set $overallStudioRep += ($lastScore >= 65 ? 5 : 2)>> <<set $studioRelation["joy_media"] += ($lastScore >= 65 ? 5 : 2)>> <<set $money += ($lastScore >= 65 ? 95 : 55)>> <<applyWorkLoad "studio" "neutral">>
<<if ($swallowIndex >= 5 or $gloryholeSwallowCount >= 5) and not $unlockedGloryholeSecrets>>
<<set $unlockedGloryholeSecrets to true>>
<<if not $secretsUnlockAnnounced>>
<<set $secretsUnlockAnnounced to true>>
<div style="color:#00e676;">Gloryhole Secrets unlocked at Joy Media.</div>
<</if>>
<</if>>
<</silently>>
<div style="color:#00e676;">Gloryhole Secrets unlocked!</div>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Gloryhole Swallow"]]
<<else>>
[[Back to Gloryhole Swallow|Gloryhole Swallow]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Luna Lovesit – Gloryhole Swallow</div>
<<if not $mg_Returning and ndef $phase>>
<<set $sceneId to "ghs_luna">>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/b1.webm" type="video/webm"></video>
</div>
Luna is already half-undressed when the camera starts. She turns slowly, showing off her body with easy, playful confidence.
<<speech "producer" "Producer">>Luna, say hi for the camera.<</speech>>
<<speech "luna" "Luna Lovesit">>Hey… I’m Luna. Ready to get messy today.<</speech>>
<<speech "producer" "Producer">>How are you feeling?<</speech>>
<<speech "luna" "Luna Lovesit">>Horny. Let’s get started.<</speech>>
She finishes stripping and steps up to the first hole without hesitation.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/b2.webm" type="video/webm"></video>
</div>
The first cock slides through. Luna takes it deep right away, eyes half-lidded, working it with clear experience.
<<speech "luna" "Luna Lovesit">>Mmm… first one of the day. Let’s go.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/b3.webm" type="video/webm"></video>
</div>
She turns, backs onto another hole, and sinks down until she’s fully seated. She starts riding hard.
<<speech "luna" "Luna Lovesit">>Fuck… that’s better. Deeper.<</speech>>
<<speech "producer" "Producer">>Good. Use him.<</speech>>
$playerName’s turn comes while she’s still being fucked. He steps up and pushes his cock through the hole in front of her face.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/b4.webm" type="video/webm"></video>
</div>
Luna looks up, sees the size, and smiles around the cock already in her mouth before switching to his.
<<speech "luna" "Luna Lovesit">>Oh hell yes… look at this one. Finally something worth my time.<</speech>>
<<speech "you">>You like that?<</speech>>
<<speech "luna" "Luna Lovesit">>I like thick. Don’t be gentle.<</speech>>
She starts sucking him while the other guy keeps fucking her from behind.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/b5.webm" type="video/webm"></video>
</div>
She strokes him steadily. A moment later the cock inside her pulses and finishes deep. Luna barely reacts — just keeps working $playerName’s shaft.
<<speech "luna" "Luna Lovesit">>There it is… fill me up. I’m busy.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/b6.webm" type="video/webm"></video>
</div>
She pulls off the hole, reaches back, and spreads herself for the camera, showing off the fresh creampie while she licks and kisses the head of $playerName’s cock.
<<speech "luna" "Luna Lovesit">>Look at that… still dripping. Your turn to use my mouth properly.<</speech>>
<<speech "producer" "Producer">>Show the camera. Nice.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/b7.webm" type="video/webm"></video>
</div>
She finally gives him her full attention, taking him deep, throat relaxing around the thickness.
<<speech "luna" "Luna Lovesit">>God, you’re thick… stay right there. Don’t move.<</speech>>
<<speech "you">>Take it deeper.<</speech>>
<<speech "luna" "Luna Lovesit">>Mmmph— trying…<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/b8.webm" type="video/webm"></video>
</div>
She drops lower and starts licking his balls while someone fingers her from behind. She stays focused on him the whole time.
<<speech "luna" "Luna Lovesit">>You smell so fucking good…<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/b9.webm" type="video/webm"></video>
</div>
Another cock appears through a side hole. Luna takes it into her mouth without missing a beat, still stroking $playerName with her free hand.
<<speech "luna" "Luna Lovesit">>Don’t finish yet… I want that load down my throat.<</speech>>
<<speech "you">>Then earn it.<</speech>>
<<speech "luna" "Luna Lovesit">>I will. Just hold on for me.<</speech>>
<<mgButtons "technique" 2 "career/swallow/BWC/b5.webm" 1>>
<<elseif $phase == 1>>
<<set $mg_Score1 to $mg_Score>>
<<unset $phase>>
<<speech "producer" "Producer">>Stay with the camera. Next beat — don't lose the heat.<</speech>>
<<mgButtons "focus" 2 "career/swallow/BWC/b9.webm">>
<<else>>
<<set $lastScore to Math.round((($mg_Score1 || $mg_Score) + $mg_Score) / 2)>>
<<unset $mg_Score1>>
<<set $mg_Returning to false>>
<<if $lastScore >= 65>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/b10.webm" type="video/webm"></video>
</div>
$playerName holds control. Luna switches fully onto him, taking him deep as he starts to pulse. She keeps stroking the other cock with her hand while he empties straight down her throat.
<<speech "luna" "Luna Lovesit">>Mmmph— yes, give it to me… all of it.<</speech>>
<<speech "you">>Swallow it.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/b10a.webm" type="video/webm"></video>
</div>
She pulls back just enough to show the camera the thick load on her tongue, then swallows it in one clean motion and immediately goes back to sucking the other cock.
<<speech "luna" "Luna Lovesit">>Mmm… perfect.<</speech>>
<<else>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/b10.webm" type="video/webm"></video>
</div>
$playerName’s control slips. He finishes a little early. Luna still takes the load down her throat and keeps stroking the other cock, but the timing is rushed.
<<speech "luna" "Luna Lovesit">>Ah— already? Okay… give it to me anyway.<</speech>>
<<speech "you">>Fuck— sorry.<</speech>>
<<speech "luna" "Luna Lovesit">>Just don’t waste it.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/b10a.webm" type="video/webm"></video>
</div>
She shows the camera what’s left on her tongue, swallows, and returns to the other cock without much comment.
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/b11.webm" type="video/webm"></video>
</div>
The rest of the session continues. Multiple cocks use her. At one point she turns and spreads herself again, showing the camera another fresh creampie with a satisfied look.
<<speech "producer" "Producer">>Show that off. Perfect.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/b12.webm" type="video/webm"></video>
</div>
Later, in the exit interview, Luna is still smiling, a little flushed, hair messy.
<<speech "producer" "Producer">>Favorite of the day?<</speech>>
<<if $lastScore >= 65>>
<<speech "luna" "Luna Lovesit">>That thick one? Perfect. Held out until I had him deep and then gave me everything. I swallowed every drop. Definitely one of the better ones today.<</speech>>
<<else>>
<<speech "luna" "Luna Lovesit">>The thick one was still fun… size was great. Just finished a bit early for my taste. Still swallowed it all though. Wouldn’t mind another round when he’s got better control.<</speech>>
<</if>>
<<silently>>
<<set $sceneCompleted["ghs_luna"] to true>>
<<set $swallowSameDayLock to true>>
<<set $studioSameDayLock to true>>
<<bumpSwallowProgress 2>>
<<set $actionsLeft -= 1>> <<set $expGloryhole += 1>> <<set $gloryholeSwallowCount += 1>> <<set $actressRelation["luna_lovesit"] to ($actressRelation["luna_lovesit"] || 0) + ($lastScore >= 65 ? 10 : 5)>> <<set $overallStudioRep += ($lastScore >= 65 ? 5 : 2)>> <<set $studioRelation["joy_media"] += ($lastScore >= 65 ? 5 : 2)>> <<set $money += ($lastScore >= 65 ? 95 : 55)>> <<applyWorkLoad "studio" "neutral">>
<<if ($swallowIndex >= 5 or $gloryholeSwallowCount >= 5) and not $unlockedGloryholeSecrets>>
<<set $unlockedGloryholeSecrets to true>>
<<if not $secretsUnlockAnnounced>>
<<set $secretsUnlockAnnounced to true>>
<div style="color:#00e676;">Gloryhole Secrets unlocked at Joy Media.</div>
<</if>>
<</if>>
<</silently>>
<div style="color:#00e676;">Gloryhole Secrets unlocked!</div>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Gloryhole Swallow"]]
<<else>>
[[Back to Gloryhole Swallow|Gloryhole Swallow]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Courtney Loxx & Kristina – Gloryhole Swallow</div>
<<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $sceneId to "ghs_courtney">>
<</if>>
<<if $phase == 0 and not $mg_Returning>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/c1.webm" type="video/webm"></video>
</div>
Two young actresses stand outside the booth, already giggling and feeding off each other’s energy.
<<speech "producer" "Producer">>Alright girls, introduce yourselves.<</speech>>
<<speech "courtney" "Courtney Loxx">>I’m Courtney. We’re so ready for this.<</speech>>
<<speech "kristina" "Kristina">>Kristina. I’m actually nervous… in a good way. Like the fun kind.<</speech>>
<<speech "producer" "Producer">>First time doing a gloryhole together?<</speech>>
<<speech "courtney" "Courtney Loxx">>Yeah. We’ve talked about it for ages.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/c2.webm" type="video/webm"></video>
</div>
Inside, the first cock appears. Both girls immediately grab it, stroking together, laughing and talking over each other.
<<speech "courtney" "Courtney Loxx">>Look how hard he already is.<</speech>>
<<speech "kristina" "Kristina">>I know, right? This is crazy.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/c3.webm" type="video/webm"></video>
</div>
They start helping each other. One holds the other’s hair back while she takes the cock into her mouth, then they switch.
<<speech "courtney" "Courtney Loxx">>Deeper… you can take more.<</speech>>
<<speech "kristina" "Kristina">>I’m trying— fuck, he’s throbbing.<</speech>>
$playerName’s cock finally slides through the hole.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/c4.webm" type="video/webm"></video>
</div>
Both girls go quiet for a second.
<<speech "courtney" "Courtney Loxx">>Oh my god… look at the size of that.<</speech>>
<<speech "kristina" "Kristina">>That’s not normal. That’s actually huge.<</speech>>
<<speech "producer" "Producer">>React to it. Camera’s on you.<</speech>>
One of them starts stroking him slowly while they both lean in to study it.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/c5.webm" type="video/webm"></video>
</div>
Courtney leans in first. She struggles to get the head into her mouth while Kristina holds her hair out of the way.
<<speech "courtney" "Courtney Loxx">>Fuck… the head alone is thick. I’m not even sure I can take it properly.<</speech>>
<<speech "kristina" "Kristina">>Go slow. You’ve got this.<</speech>>
<<speech "you">>Take your time.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/c6.webm" type="video/webm"></video>
</div>
Kristina tries to roll a condom on him. It takes both of them a moment because of the size, but they eventually get it on, laughing the whole time.
<<speech "kristina" "Kristina">>Okay… I think it’s finally on. That was a fight.<</speech>>
<<speech "courtney" "Courtney Loxx">>Worth it.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/c7.webm" type="video/webm"></video>
</div>
Courtney turns and backs onto the hole. She takes her time lining him up, then starts pushing back.
<<speech "courtney" "Courtney Loxx">>Okay… going in. Holy shit— it’s stretching me already.<</speech>>
<<speech "kristina" "Kristina">>You okay?<</speech>>
<<speech "courtney" "Courtney Loxx">>Yeah… just big. Really big.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/c8.webm" type="video/webm"></video>
</div>
$playerName starts fucking her through the hole. Courtney is bent forward, moaning loudly every time he pushes deep.
<<speech "courtney" "Courtney Loxx">>Fuck, fuck, fuck… it’s so deep— don’t stop. Keep going just like that.<</speech>>
<<speech "you">>You feel incredible.<</speech>>
<<speech "courtney" "Courtney Loxx">>Don’t you dare pull out—<</speech>>
<<mgButtons "technique" 2 "career/swallow/BWC/c8.webm" 1>>
<<elseif $phase == 1 or ($phase == 0 and $mg_Returning)>>
<<if $mg_Returning>>
<<set $techScore to $mg_Score>>
<<set $mg_Returning to false>>
<<set $phase to 1>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/c9.webm" type="video/webm"></video>
</div>
Kristina pulls the condom off and immediately takes him into her mouth, trying to deepthroat while Courtney holds her hair.
<<speech "kristina" "Kristina">>Mmm… still so hard. How are you still this hard after that?<</speech>>
<<speech "courtney" "Courtney Loxx">>Because he’s built different.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/c10.webm" type="video/webm"></video>
</div>
Courtney wants another turn. They switch places and she starts sucking him again, more confident this time.
<<speech "courtney" "Courtney Loxx">>My turn again. I want to feel it properly this time.<</speech>>
<<speech "you">>Then open up.<</speech>>
<<speech "courtney" "Courtney Loxx">>Gladly.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/c11.webm" type="video/webm"></video>
</div>
They decide to finish him together. Both girls wrap their hands around his cock and start stroking in rhythm.
<<speech "kristina" "Kristina">>He’s getting close… I can feel it.<</speech>>
<<speech "courtney" "Courtney Loxx">>Keep going, don’t stop. We want all of it.<</speech>>
<<speech "you">>Don’t stop…<</speech>>
<<mgButtons "stamina" 2 "career/swallow/BWC/c11.webm" 2>>
<<elseif $phase == 2 or ($phase == 1 and $mg_Returning)>>
<<set $lastScore to $mg_Score>>
<<set $mg_Returning to false>>
<<set $phase to 2>>
<<if $lastScore >= 65>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/c12.webm" type="video/webm"></video>
</div>
$playerName tells them he’s close. They immediately pick up the pace, both hands working him harder.
<<speech "you">>I’m close… don’t stop.<</speech>>
<<speech "courtney" "Courtney Loxx">>We’ve got you. Just let go.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/c13.webm" type="video/webm"></video>
</div>
He finishes hard. They keep stroking through it, squeezing every drop out and spreading the thick load all over his cock and their hands.
<<speech "courtney" "Courtney Loxx">>Oh my god look how much—<</speech>>
<<speech "kristina" "Kristina">>It’s still coming out… fuck.<</speech>>
<<else>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/c12.webm" type="video/webm"></video>
</div>
$playerName loses control a bit early. They still finish him with both hands, but the build-up is shorter than they wanted.
<<speech "courtney" "Courtney Loxx">>Already? Okay, okay— keep going.<</speech>>
<<speech "you">>Shit— sorry.<</speech>>
<<speech "kristina" "Kristina">>It’s fine, just give us everything you’ve got.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/c13.webm" type="video/webm"></video>
</div>
They squeeze the rest out and spread it across his cock, still excited even if the timing was off.
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/c14.webm" type="video/webm"></video>
</div>
Both girls hold their cum-covered hands up to the camera, smiling wide.
<<speech "courtney" "Courtney Loxx">>That was insane.<</speech>>
<<speech "kristina" "Kristina">>I’ve never seen one that big actually last that long.<</speech>>
<<speech "producer" "Producer">>Hold them up. Perfect.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/c15.webm" type="video/webm"></video>
</div>
In the exit interview they are still buzzing.
<<speech "producer" "Producer">>So… thoughts on the big one?<</speech>>
<<if $lastScore >= 65>>
<<speech "courtney" "Courtney Loxx">>Perfect. Size, stamina, everything. We both wanted to keep going.<</speech>>
<<speech "kristina" "Kristina">>Seriously. Best cock of the day by far.<</speech>>
<<else>>
<<speech "courtney" "Courtney Loxx">>Still the highlight… the size was crazy. Just finished a little sooner than we hoped.<</speech>>
<<speech "kristina" "Kristina">>Still the best looking one we got though. Would love another try.<</speech>>
<</if>>
<<silently>>
<<set $sceneCompleted["ghs_courtney"] to true>>
<<set $swallowSameDayLock to true>>
<<set $studioSameDayLock to true>>
<<bumpSwallowProgress 3>>
<<set $actionsLeft -= 1>> <<set $expGloryhole += 1>> <<set $gloryholeSwallowCount += 1>> <<set $actressRelation["courtney_loxx"] to ($actressRelation["courtney_loxx"] || 0) + ($lastScore >= 65 ? 8 : 4)>> <<set $actressRelation["kristina"] to ($actressRelation["kristina"] || 0) + ($lastScore >= 65 ? 8 : 4)>> <<set $overallStudioRep += ($lastScore >= 65 ? 6 : 3)>> <<set $studioRelation["joy_media"] += ($lastScore >= 65 ? 6 : 3)>> <<set $money += ($lastScore >= 65 ? 110 : 65)>> <<applyWorkLoad "studio" "neutral">> <<unset $phase>> <<set $mg_Returning to false>> <<set $mg_UsePhase to false>>
<<if ($swallowIndex >= 5 or $gloryholeSwallowCount >= 5) and not $unlockedGloryholeSecrets>>
<<set $unlockedGloryholeSecrets to true>>
<<if not $secretsUnlockAnnounced>>
<<set $secretsUnlockAnnounced to true>>
<div style="color:#00e676;">Gloryhole Secrets unlocked at Joy Media.</div>
<</if>>
<</if>>
<</silently>>
<div style="color:#00e676;">Gloryhole Secrets unlocked!</div>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Gloryhole Swallow"]]
<<else>>
[[Back to Gloryhole Swallow|Gloryhole Swallow]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Nikki Nicole – Gloryhole Swallow</div>
<<if not $mg_Returning and ndef $phase>>
<<set $sceneId to "ghs_nikki">>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/d1.webm" type="video/webm"></video>
</div>
Nikki stands in front of the camera, already comfortable in her own skin. She turns slowly, showing off her body with a relaxed, almost proud smile.
<<speech "producer" "Producer">>Nikki, introduce yourself.<</speech>>
<<speech "nikki" "Nikki Nicole">>Hey… I’m Nikki. I’m naked at home almost always, so this feels pretty natural.<</speech>>
<<speech "producer" "Producer">>First time on Gloryhole Swallow?<</speech>>
<<speech "nikki" "Nikki Nicole">>Yeah. I’ve been curious for a while. Figured I’d just do it.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/d2.webm" type="video/webm"></video>
</div>
She slips her panties off, drops them to the side, and settles onto her knees in front of the holes, clearly ready.
<<speech "nikki" "Nikki Nicole">>Okay… let’s see what you’ve got for me.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/d3.webm" type="video/webm"></video>
</div>
The first cock slides through. Nikki takes it without hesitation, working it with steady focus, eyes half-lidded.
<<speech "nikki" "Nikki Nicole">>Mmm… nice. Warm.<</speech>>
<<speech "producer" "Producer">>Good pace. Keep it natural.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/d4.webm" type="video/webm"></video>
</div>
Later she turns and backs onto a hole. After a few minutes the cock inside her finishes. She pulls off slowly and reaches back, spreading herself so the camera can see the cum leaking out of her pussy.
<<speech "nikki" "Nikki Nicole">>Look… still coming out.<</speech>>
<<speech "producer" "Producer">>Hold that. Perfect.<</speech>>
<<speech "nikki" "Nikki Nicole">>Feels good. Messy in the best way.<</speech>>
$playerName is the last cock of the scene. He steps up and pushes through the hole in front of her.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/d5.webm" type="video/webm"></video>
</div>
Nikki looks at it, then starts stroking and licking, getting him fully hard with clear intent.
<<speech "nikki" "Nikki Nicole">>Oh… this one’s thicker. Last one of the day, huh?<</speech>>
<<speech "you">>Make it count then.<</speech>>
<<speech "nikki" "Nikki Nicole">>I plan to.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/d6.webm" type="video/webm"></video>
</div>
She takes him deeper, throat working, one hand stroking what she can’t fit. Spit starts to run down her chin.
<<speech "nikki" "Nikki Nicole">>Fuck… you’re filling my throat already.<</speech>>
<<speech "you">>You can take more.<</speech>>
<<speech "nikki" "Nikki Nicole">>I know. Give it to me.<</speech>>
/* ——— FOCUS MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/d7.webm" type="video/webm"></video>
</div>
She pulls off, spits on his cock, and immediately sinks back down, trying to force him over the edge. Her eyes are locked on him.
<<speech "nikki" "Nikki Nicole">>Come on… I want it. Don’t hold back on me.<</speech>>
<<speech "you">>Not yet.<</speech>>
<<speech "nikki" "Nikki Nicole">>Then make me work for it.<</speech>>
<<mgButtons "technique" 2 "career/swallow/BWC/d5.webm" 1>>
<<elseif $phase == 1>>
<<set $mg_Score1 to $mg_Score>>
<<unset $phase>>
<<speech "producer" "Producer">>Stay with the camera. Next beat — don't lose the heat.<</speech>>
<<mgButtons "focus" 2 "career/swallow/BWC/d7.webm">>
<<else>>
<<set $lastScore to Math.round((($mg_Score1 || $mg_Score) + $mg_Score) / 2)>>
<<unset $mg_Score1>>
<<set $mg_Returning to false>>
<<if $lastScore >= 65>>
/* GOOD PERFORMANCE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/d8.webm" type="video/webm"></video>
</div>
$playerName still holds out. Nikki switches to both hands, stroking hard while she sticks her tongue out and looks up at him, openly begging.
<<speech "nikki" "Nikki Nicole">>Please… I’ve been good. Give it to me. I want to taste it.<</speech>>
<<speech "you">>Almost… keep going.<</speech>>
<<speech "nikki" "Nikki Nicole">>Fuck— yes, yes, yes—<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/d9.webm" type="video/webm"></video>
</div>
He finally starts to cum. Nikki immediately drops her mouth onto him, catching every pulse on her tongue and swallowing without wasting a drop.
<<speech "nikki" "Nikki Nicole">>Mmmph— all of it… good boy.<</speech>>
<<speech "you">>Swallow it.<</speech>>
<<speech "nikki" "Nikki Nicole">>Already did.<</speech>>
<<else>>
/* POOR PERFORMANCE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/d8.webm" type="video/webm"></video>
</div>
$playerName’s control slips earlier than she wanted. Nikki still strokes hard with both hands, tongue out, but the build-up is shorter.
<<speech "nikki" "Nikki Nicole">>Already? Okay— don’t pull away, I’ve got you.<</speech>>
<<speech "you">>Fuck—<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/d9.webm" type="video/webm"></video>
</div>
She still manages to get her mouth on him in time, catching most of the load and swallowing it cleanly.
<<speech "nikki" "Nikki Nicole">>Mmm… still good. Next time last longer for me.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/d10.webm" type="video/webm"></video>
</div>
The scene winds down. Nikki is flushed, a little sweaty, hair messy, still smiling as she shows her body and face to the camera one last time.
<<speech "producer" "Producer">>How do you feel?<</speech>>
<<if $lastScore >= 65>>
<<speech "nikki" "Nikki Nicole">>Really good. That last one held out just long enough and then gave me everything. I swallowed every drop. Perfect way to end it.<</speech>>
<<else>>
<<speech "nikki" "Nikki Nicole">>Still good. The last one was thick and tasted great… just finished a little sooner than I wanted. I’d take him again if he lasts longer next time.<</speech>>
<</if>>
<<silently>>
<<set $sceneCompleted["ghs_nikki"] to true>>
<<set $swallowSameDayLock to true>>
<<set $studioSameDayLock to true>>
<<bumpSwallowProgress 4>>
<<set $actionsLeft -= 1>> <<set $expGloryhole += 1>> <<set $gloryholeSwallowCount += 1>> <<set $actressRelation["nikki_nicole"] to ($actressRelation["nikki_nicole"] || 0) + ($lastScore >= 65 ? 10 : 5)>> <<set $overallStudioRep += ($lastScore >= 65 ? 5 : 2)>> <<set $studioRelation["joy_media"] += ($lastScore >= 65 ? 5 : 2)>> <<set $money += ($lastScore >= 65 ? 95 : 55)>> <<applyWorkLoad "studio" "neutral">>
<<if ($swallowIndex >= 5 or $gloryholeSwallowCount >= 5) and not $unlockedGloryholeSecrets>>
<<set $unlockedGloryholeSecrets to true>>
<<if not $secretsUnlockAnnounced>>
<<set $secretsUnlockAnnounced to true>>
<div style="color:#00e676;">Gloryhole Secrets unlocked at Joy Media.</div>
<</if>>
<</if>>
<</silently>>
<div style="color:#00e676;">Gloryhole Secrets unlocked!</div>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Gloryhole Swallow"]]
<<else>>
[[Back to Gloryhole Swallow|Gloryhole Swallow]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Eskimo Emma & Friend – Gloryhole Swallow</div>
<<if not $mg_Returning and ndef $phase>>
<<set $sceneId to "ghs_emma">>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/e1.webm" type="video/webm"></video>
</div>
Two girls are already in the booth when the camera starts. They’re kissing slowly, bodies pressed together, hands roaming as part of the opening interview.
<<speech "producer" "Producer">>Keep going. Camera loves this.<</speech>>
<<speech "emma" "Eskimo Emma">>We’ve been looking forward to this all day.<</speech>>
<<speech "friend" "Friend">>Especially together.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/e2.webm" type="video/webm"></video>
</div>
The kiss turns deeper and more passionate. They smile against each other’s mouths, clearly enjoying the show they’re putting on.
<<speech "emma" "Eskimo Emma">>You’re such a good kisser…<</speech>>
<<speech "friend" "Friend">>You’re one to talk.<</speech>>
<<speech "producer" "Producer">>Alright… first cock is ready.<</speech>>
$playerName has been watching from the other side. He’s already hard when he pushes through the hole.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/e3.webm" type="video/webm"></video>
</div>
Both girls break the kiss and immediately lean in, tongues out, licking along the length of his cock together.
<<speech "emma" "Eskimo Emma">>Oh fuck… look at this.<</speech>>
<<speech "friend" "Friend">>He’s already leaking.<</speech>>
<<speech "you">>You two started this.<</speech>>
<<speech "emma" "Eskimo Emma">>And we’re going to finish it.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/e4.webm" type="video/webm"></video>
</div>
They keep working him with their tongues, both of them sucking on the head at the same time, spit mixing as they share the tip.
<<speech "friend" "Friend">>He tastes so good…<</speech>>
<<speech "emma" "Eskimo Emma">>Don’t hog it.<</speech>>
<<speech "you">>There’s enough for both of you.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/e5.webm" type="video/webm"></video>
</div>
They switch to using their lips, wrapping them around the shaft and stroking him with slow, wet pressure while looking up at each other and smiling.
<<speech "emma" "Eskimo Emma">>Feel how hard he is?<</speech>>
<<speech "friend" "Friend">>He’s throbbing…<</speech>>
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/e6.webm" type="video/webm"></video>
</div>
Both girls lock onto the head at the same time, lips sealed on opposite sides, and start increasing the pace. The wet sounds get louder.
<<speech "emma" "Eskimo Emma">>Come on… give it to us.<</speech>>
<<speech "friend" "Friend">>We want it.<</speech>>
<<speech "you">>Keep going… just like that.<</speech>>
<<mgButtons "focus" 2 "career/swallow/BWC/e4.webm" 1>>
<<elseif $phase == 1>>
<<set $mg_Score1 to $mg_Score>>
<<unset $phase>>
<<speech "producer" "Producer">>Stay with the camera. Next beat — don't lose the heat.<</speech>>
<<mgButtons "technique" 2 "career/swallow/BWC/e6.webm">>
<<else>>
<<set $lastScore to Math.round((($mg_Score1 || $mg_Score) + $mg_Score) / 2)>>
<<unset $mg_Score1>>
<<set $mg_Returning to false>>
<<if $lastScore >= 65>>
/* GOOD PERFORMANCE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/e7.webm" type="video/webm"></video>
</div>
$playerName holds out as long as he can, then finally lets go. He finishes deep in Emma’s mouth while her friend watches closely, eyes bright.
<<speech "emma" "Eskimo Emma">>Mmmph— fuck, it’s a lot—<</speech>>
<<speech "friend" "Friend">>Don’t swallow it all… share.<</speech>>
<<speech "you">>Show her.<</speech>>
<<else>>
/* POOR PERFORMANCE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/e7.webm" type="video/webm"></video>
</div>
$playerName finishes a little earlier than ideal. He still empties into Emma’s mouth while her friend watches, but the build-up was shorter.
<<speech "emma" "Eskimo Emma">>Ah— already? Okay… I’ve got it.<</speech>>
<<speech "friend" "Friend">>Still looks like a lot.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/e8.webm" type="video/webm"></video>
</div>
Emma turns to the camera, opens her mouth, and shows the thick load sitting on her tongue. Then she leans in and kisses her friend deeply, pushing the cum into her mouth. They swap it back and forth in a messy, eager tongue battle, both of them smiling through it.
<<speech "emma" "Eskimo Emma">>Taste that?<</speech>>
<<speech "friend" "Friend">>Fuck… yes.<</speech>>
<<speech "producer" "Producer">>Keep sharing. Perfect shot.<</speech>>
<<speech "you">>You two are filthy.<</speech>>
<<speech "emma" "Eskimo Emma">>You love it.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/e9.webm" type="video/webm"></video>
</div>
Eventually the friend leaves the booth. Emma stays and turns her attention to the remaining holes, using her pussy on several more cocks until the session finally ends.
<<speech "emma" "Eskimo Emma">>Still not done… come on then.<</speech>>
<<speech "producer" "Producer">>That’s a wrap when you’re ready.<</speech>>
Later, during the short exit moment, Emma looks satisfied and a little messy.
<<if $lastScore >= 65>>
<<speech "emma" "Eskimo Emma">>That first thick one was perfect. Held out while we both worked him and then gave me everything. Sharing it with her made it even better.<</speech>>
<<else>>
<<speech "emma" "Eskimo Emma">>The thick one was still really good… just finished a bit sooner than we wanted. Still tasted great when we shared it though.<</speech>>
<</if>>
<<silently>>
<<set $sceneCompleted["ghs_emma"] to true>>
<<set $swallowSameDayLock to true>>
<<set $studioSameDayLock to true>>
<<bumpSwallowProgress 6>>
<<set $actionsLeft -= 1>> <<set $expGloryhole += 1>> <<set $gloryholeSwallowCount += 1>> <<set $actressRelation["eskimo_emma"] to ($actressRelation["eskimo_emma"] || 0) + ($lastScore >= 65 ? 10 : 5)>> <<set $overallStudioRep += ($lastScore >= 65 ? 5 : 2)>> <<set $studioRelation["joy_media"] += ($lastScore >= 65 ? 5 : 2)>> <<set $money += ($lastScore >= 65 ? 240 : 160)>> <<applyWorkLoad "studio" "neutral">>
<<if ($swallowIndex >= 5 or $gloryholeSwallowCount >= 5) and not $unlockedGloryholeSecrets>>
<<set $unlockedGloryholeSecrets to true>>
<<if not $secretsUnlockAnnounced>>
<<set $secretsUnlockAnnounced to true>>
<div style="color:#00e676;">Gloryhole Secrets unlocked at Joy Media.</div>
<</if>>
<</if>>
<</silently>>
<div style="color:#00e676;">Gloryhole Secrets unlocked!</div>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Gloryhole Swallow"]]
<<else>>
[[Back to Gloryhole Swallow|Gloryhole Swallow]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Black & White – Gloryhole Swallow</div>
<<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $sceneId to "ghs_bw">>
<</if>>
<<if $phase == 0 and not $mg_Returning>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/f1.webm" type="video/webm"></video>
</div>
Two women are already in the booth. The white girl is pressed against one of the holes while hands from the other side grope her freely. Her black friend watches with a hungry smile.
<<speech "producer" "Producer">>Keep it natural. Camera’s rolling.<</speech>>
<<speech "white" "White Girl">>They’re already all over me…<</speech>>
<<speech "black" "Black Girl">>Good. Let them.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/f2.webm" type="video/webm"></video>
</div>
A cock pushes into the white girl. She starts getting fucked hard while leaning over to suck and lick her friend’s tits.
<<speech "white" "White Girl">>Fuck— it’s deep…<</speech>>
<<speech "black" "Black Girl">>That’s it. Take it while you suck on me.<</speech>>
<<speech "producer" "Producer">>Nice contrast. Keep going.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/f3.webm" type="video/webm"></video>
</div>
The cock inside the white girl finishes. She pulls off and her friend immediately drops down, licking the cum as it leaks out of her pussy right in front of the camera.
<<speech "black" "Black Girl">>Mmm… look at that. Still dripping.<</speech>>
<<speech "white" "White Girl">>Clean it up for me.<</speech>>
<<speech "producer" "Producer">>Hold the shot. Perfect.<</speech>>
$playerName’s cock enters next. The white girl is already sucking on a black cock when he pushes through. The black girl leans in and starts licking the head of $playerName’s cock.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/f4.webm" type="video/webm"></video>
</div>
<<speech "black" "Black Girl">>Oh… this one’s thick.<</speech>>
<<speech "white" "White Girl">>Don’t keep him to yourself.<</speech>>
<<speech "you">>There’s enough for both of you.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/f5.webm" type="video/webm"></video>
</div>
The black girl turns and starts lowering herself onto $playerName’s cock while the white girl prepares to take another cock at the same time.
<<speech "black" "Black Girl">>Fuck… he’s stretching me already.<</speech>>
<<speech "white" "White Girl">>I want one too. Hurry up.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/f6.webm" type="video/webm"></video>
</div>
Both girls are being fucked now — the white girl by a black cock, the black girl by $playerName. They start competing, trying to see who can make their cock finish first, moaning and talking shit the whole time.
<<speech "white" "White Girl">>I’m gonna make mine cum first.<</speech>>
<<speech "black" "Black Girl">>Not a chance. He’s already throbbing inside me.<</speech>>
<<speech "you">>Then prove it.<</speech>>
/* ——— FOCUS MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/f7.webm" type="video/webm"></video>
</div>
They both take the cocks deeper, moaning in rough synchronization, hips moving together.
<<speech "black" "Black Girl">>Deep… just like that.<</speech>>
<<speech "white" "White Girl">>Fuck, I can feel every inch—<</speech>>
<<speech "you">>Don’t stop moving.<</speech>>
<<mgButtons "focus" 2 "career/swallow/BWC/f7.webm" 1>>
<<elseif $phase == 1 or ($phase == 0 and $mg_Returning)>>
<<if $mg_Returning>>
<<set $focusScore to $mg_Score>>
<<set $mg_Returning to false>>
<<set $phase to 1>>
<</if>>
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/f8.webm" type="video/webm"></video>
</div>
The black cock inside the white girl finishes first. She cries out as she feels it. $playerName is still going strong inside the black girl.
<<speech "white" "White Girl">>Fuck— he’s cumming inside me—!<</speech>>
<<speech "black" "Black Girl">>Don’t you dare finish yet. I want yours too.<</speech>>
<<speech "you">>Then take it.<</speech>>
<<mgButtons "stamina" 2 "career/swallow/BWC/f8.webm" 2>>
<<elseif $phase == 2 or ($phase == 1 and $mg_Returning)>>
<<set $lastScore to $mg_Score>>
<<set $mg_Returning to false>>
<<set $phase to 2>>
<<if $lastScore >= 65>>
/* GOOD PERFORMANCE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/f9.webm" type="video/webm"></video>
</div>
$playerName holds out longer, then finally empties deep inside the black girl’s pussy while she grinds back against him.
<<speech "black" "Black Girl">>Yes— fill me up. Fuck, that’s a lot—<</speech>>
<<speech "you">>Take every drop.<</speech>>
<<speech "white" "White Girl">>Let me see…<</speech>>
<<else>>
/* POOR PERFORMANCE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/f9.webm" type="video/webm"></video>
</div>
$playerName finishes a little earlier than he wanted. He still pumps a solid load into the black girl, but the timing is slightly rushed.
<<speech "black" "Black Girl">>Ah— already? Okay… give it to me anyway.<</speech>>
<<speech "you">>Fuck—<</speech>>
<<speech "white" "White Girl">>Still looks like a good load.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/f10.webm" type="video/webm"></video>
</div>
Both girls turn toward the camera and spread themselves, showing their cum-filled pussies. Thick loads drip out as they hold the pose.
<<speech "black" "Black Girl">>Look at that… both of us full.<</speech>>
<<speech "white" "White Girl">>Messy as hell.<</speech>>
<<speech "producer" "Producer">>Hold it. Beautiful.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/f11.webm" type="video/webm"></video>
</div>
They lean in and kiss each other passionately, tasting the session on each other’s tongues while the camera stays tight on them.
<<speech "black" "Black Girl">>You taste like cum and me.<</speech>>
<<speech "white" "White Girl">>So do you…<</speech>>
<<speech "producer" "Producer">>That’s a wrap. Great work.<</speech>>
<<if $lastScore >= 65>>
<<speech "black" "Black Girl">>That white cock held out perfectly. Filled me up right after the other one finished. Best load of the day.<</speech>>
<<else>>
<<speech "black" "Black Girl">>Still a solid load… just finished a bit sooner than I wanted. Size was perfect though.<</speech>>
<</if>>
<<silently>>
<<set $sceneCompleted["ghs_bw"] to true>>
<<set $swallowSameDayLock to true>>
<<set $studioSameDayLock to true>>
<<bumpSwallowProgress 7>>
<<set $actionsLeft -= 1>> <<set $expGloryhole += 1>> <<set $gloryholeSwallowCount += 1>> <<set $overallStudioRep += ($lastScore >= 65 ? 6 : 3)>> <<set $studioRelation["joy_media"] += ($lastScore >= 65 ? 6 : 3)>> <<set $money += ($lastScore >= 65 ? 250 : 170)>> <<applyWorkLoad "studio" "neutral">> <<unset $phase>> <<set $mg_Returning to false>> <<set $mg_UsePhase to false>>
<<if ($swallowIndex >= 5 or $gloryholeSwallowCount >= 5) and not $unlockedGloryholeSecrets>>
<<set $unlockedGloryholeSecrets to true>>
<<if not $secretsUnlockAnnounced>>
<<set $secretsUnlockAnnounced to true>>
<div style="color:#00e676;">Gloryhole Secrets unlocked at Joy Media.</div>
<</if>>
<</if>>
<</silently>>
<div style="color:#00e676;">Gloryhole Secrets unlocked!</div>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Gloryhole Swallow"]]
<<else>>
[[Back to Gloryhole Swallow|Gloryhole Swallow]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Cierra & Friend – Gloryhole Swallow</div>
<<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $sceneId to "ghs_cierra">>
<</if>>
<<if $phase == 0 and not $mg_Returning>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g1.webm" type="video/webm"></video>
</div>
Two redheads are already in the booth when the camera starts. Cierra is sucking and kissing her friend’s breasts, both of them smiling into it.
<<speech "producer" "Producer">>Nice and slow. Let the camera enjoy it.<</speech>>
<<speech "cierra" "Cierra">>You taste so good already…<</speech>>
<<speech "friend" "Friend">>Don’t stop.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g2.webm" type="video/webm"></video>
</div>
Cierra drops lower and starts licking her friend’s pussy right there in the booth. Her friend leans back against the wall, hand in Cierra’s hair.
<<speech "friend" "Friend">>Fuck… just like that.<</speech>>
<<speech "cierra" "Cierra">>You’re already wet for me.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g3.webm" type="video/webm"></video>
</div>
They pull each other’s clothes off between kisses, bodies pressed together, clearly more interested in each other than the holes for the moment.
<<speech "cierra" "Cierra">>I could do this all day.<</speech>>
<<speech "friend" "Friend">>We still have cocks waiting.<</speech>>
<<speech "producer" "Producer">>First ones are ready whenever you are.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g4.webm" type="video/webm"></video>
</div>
They finally turn to the holes and take turns making the first cock finish in their mouths, one after the other, swallowing cleanly.
<<speech "cierra" "Cierra">>Mmm… warm.<</speech>>
<<speech "friend" "Friend">>My turn. Don’t hog it.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g5.webm" type="video/webm"></video>
</div>
After both have tasted the load, they kiss again, slowly, sharing the taste and playing with each other’s tongues.
<<speech "cierra" "Cierra">>You still taste like him.<</speech>>
<<speech "friend" "Friend">>So do you…<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g6.webm" type="video/webm"></video>
</div>
They move to each other’s necks, kissing and biting lightly, putting on a clear display for the camera.
<<speech "producer" "Producer">>Beautiful. Keep that energy.<</speech>>
$playerName’s cock finally enters — only half erect at first. Both girls immediately start stroking and examining it.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g7.webm" type="video/webm"></video>
</div>
<<speech "cierra" "Cierra">>He’s not even fully hard yet… look at the size though.<</speech>>
<<speech "friend" "Friend">>We’ll fix that.<</speech>>
<<speech "you">>Then get to work.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g8.webm" type="video/webm"></video>
</div>
They start licking together. Cierra drops lower to his balls while her friend sucks on the head.
<<speech "cierra" "Cierra">>Fuck, his balls are heavy…<</speech>>
<<speech "friend" "Friend">>The head’s already swelling.<</speech>>
/* ——— FOCUS MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g9.webm" type="video/webm"></video>
</div>
The friend holds Cierra’s hair as she starts taking him deeper, working him into her throat while the other girl stays on his balls.
<<speech "friend" "Friend">>That’s it… take him deeper.<</speech>>
<<speech "cierra" "Cierra">>Mmmph— trying…<</speech>>
<<speech "you">>Don’t rush it. Control yourself.<</speech>>
<<mgButtons "focus" 2 "career/swallow/BWC/g9.webm" 1>>
<<elseif $phase == 1 or ($phase == 0 and $mg_Returning)>>
<<if $mg_Returning>>
<<set $focusScore to $mg_Score>>
<<set $mg_Returning to false>>
<<set $phase to 1>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g10.webm" type="video/webm"></video>
</div>
They switch. Cierra takes him into her mouth while her friend licks and sucks on his balls.
<<speech "cierra" "Cierra">>Still so hard… how are you still this hard?<</speech>>
<<speech "friend" "Friend">>Because we haven’t finished him yet.<</speech>>
<<speech "you">>Keep working. I’m not done.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g11.webm" type="video/webm"></video>
</div>
They kiss each other again while still holding him. He’s clearly not close yet.
<<speech "cierra" "Cierra">>He’s not even close. We need to use more than our mouths.<</speech>>
<<speech "friend" "Friend">>Pussy it is then.<</speech>>
<<speech "you">>Both of you. Take turns.<</speech>>
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g12.webm" type="video/webm"></video>
</div>
Cierra goes first. She lines him up and sinks down, taking him into her pussy while her friend leans in to lick and suck on her breasts.
<<speech "cierra" "Cierra">>Fuck— he’s thick inside me…<</speech>>
<<speech "friend" "Friend">>Ride him. I want to watch.<</speech>>
<<speech "you">>That’s it… use me.<</speech>>
<<mgButtons "stamina" 2 "career/swallow/BWC/g12.webm" 2>>
<<elseif $phase == 2 or ($phase == 1 and $mg_Returning)>>
<<set $lastScore to $mg_Score>>
<<set $mg_Returning to false>>
<<set $phase to 2>>
<<if $lastScore >= 65>>
/* GOOD PERFORMANCE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g13.webm" type="video/webm"></video>
</div>
They switch. The friend takes him next, fucking herself on his cock with clear urgency, moaning louder with every drop of her hips.
<<speech "friend" "Friend">>Shit— it’s so deep… I’m not going to last—<</speech>>
<<speech "cierra" "Cierra">>Make her cum on it.<</speech>>
<<speech "you">>Then cum for me.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g14.webm" type="video/webm"></video>
</div>
The friend orgasms hard, legs shaking. The feeling pulls $playerName over the edge and he finishes deep inside her while she’s still pulsing.
<<speech "friend" "Friend">>Fuck— I’m cumming… fill me—!<</speech>>
<<speech "you">>Take it. All of it.<</speech>>
<<speech "cierra" "Cierra">>That’s it… give it to her.<</speech>>
<<else>>
/* POOR PERFORMANCE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g13.webm" type="video/webm"></video>
</div>
They switch. The friend starts riding him, but $playerName’s control slips earlier than ideal.
<<speech "friend" "Friend">>He’s getting close already…<</speech>>
<<speech "you">>Fuck— I can’t—<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g14.webm" type="video/webm"></video>
</div>
He finishes inside her. She still manages to ride through her own orgasm a few seconds later, but the timing is off and both of them feel it.
<<speech "friend" "Friend">>Ah— okay… keep going, I’m almost— there—<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g15.webm" type="video/webm"></video>
</div>
Cierra immediately drops down and starts cleaning her friend’s pussy with her tongue, spreading her open with both hands while the friend stands above her.
<<speech "cierra" "Cierra">>Mmm… you taste like him now.<</speech>>
<<speech "friend" "Friend">>Don’t waste any of it.<</speech>>
<<speech "producer" "Producer">>Perfect shot. Keep cleaning her.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/g16.webm" type="video/webm"></video>
</div>
They kiss again, tasting $playerName’s cum on each other’s tongues, getting even more worked up as the scene ends.
<<speech "cierra" "Cierra">>We’re both filthy now.<</speech>>
<<speech "friend" "Friend">>And I still want more…<</speech>>
<<speech "you">>You two are dangerous together.<</speech>>
<<if $lastScore >= 65>>
<<speech "cierra" "Cierra">>That thick one lasted perfectly. Let us both ride him and still had enough to fill her up. Best load of the day.<</speech>>
<<else>>
<<speech "cierra" "Cierra">>Still a great cock… just finished a little sooner than we wanted. Size was perfect though. Would take him again.<</speech>>
<</if>>
<<silently>>
<<set $sceneCompleted["ghs_cierra"] to true>>
<<set $swallowSameDayLock to true>>
<<set $studioSameDayLock to true>>
<<bumpSwallowProgress 9>>
<<set $actionsLeft -= 1>> <<set $expGloryhole += 1>> <<set $gloryholeSwallowCount += 1>> <<set $actressRelation["cierra"] to ($actressRelation["cierra"] || 0) + ($lastScore >= 65 ? 9 : 4)>> <<set $overallStudioRep += ($lastScore >= 65 ? 5 : 2)>> <<set $studioRelation["joy_media"] += ($lastScore >= 65 ? 5 : 2)>> <<set $money += ($lastScore >= 65 ? 240 : 160)>> <<applyWorkLoad "studio" "neutral">> <<unset $phase>> <<set $mg_Returning to false>> <<set $mg_UsePhase to false>>
<<if ($swallowIndex >= 5 or $gloryholeSwallowCount >= 5) and not $unlockedGloryholeSecrets>>
<<set $unlockedGloryholeSecrets to true>>
<<if not $secretsUnlockAnnounced>>
<<set $secretsUnlockAnnounced to true>>
<div style="color:#00e676;">Gloryhole Secrets unlocked at Joy Media.</div>
<</if>>
<</if>>
<</silently>>
<div style="color:#00e676;">Gloryhole Secrets unlocked!</div>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Gloryhole Swallow"]]
<<else>>
[[Back to Gloryhole Swallow|Gloryhole Swallow]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Indica Monroe & Italy – Gloryhole Swallow</div>
<<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $sceneId to "ghs_indica">>
<</if>>
<<if $phase == 0 and not $mg_Returning>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/h1.webm" type="video/webm"></video>
</div>
Indica and Italy are already putting on a show in the studio, kissing deeply in front of the waiting male talent. Hands roam, bodies pressed together, clearly aware of the eyes on them.
<<speech "producer" "Producer">>That’s it. Give them a reason to stay hard.<</speech>>
<<speech "indica" "Indica Monroe">>You feel that? They’re all watching us.<</speech>>
<<speech "italy" "Italy">>Let them. I like the attention.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/h2.webm" type="video/webm"></video>
</div>
Indica drops to Italy’s chest, sucking and kissing her breasts while they keep making out, louder and messier now.
<<speech "italy" "Italy">>Fuck… don’t stop.<</speech>>
<<speech "indica" "Indica Monroe">>You taste so good when you’re turned on.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/h3.webm" type="video/webm"></video>
</div>
They finally step into the booth. Both drop to their knees. Indica takes $playerName’s cock while Italy takes the one next to him.
<<speech "indica" "Indica Monroe">>This one’s already thick… look at it.<</speech>>
<<speech "italy" "Italy">>Mine’s eager too. Let’s see who finishes first.<</speech>>
<<speech "you">>You’re both going to work for it.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/h4.webm" type="video/webm"></video>
</div>
Indica works $playerName diligently — hand and mouth moving in rhythm — while Italy is already deepthroating her cock with practiced ease.
<<speech "indica" "Indica Monroe">>Mmm… you’re filling my hand and my mouth at the same time.<</speech>>
<<speech "italy" "Italy">>Deeper… just like that.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/h5.webm" type="video/webm"></video>
</div>
Italy’s cock pulses and finishes in her mouth. She swallows, then turns to watch Indica still working $playerName.
<<speech "italy" "Italy">>He’s still going strong. Look at her struggle with it.<</speech>>
<<speech "indica" "Indica Monroe">>I’m not struggling… I’m enjoying it.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/h6.webm" type="video/webm"></video>
</div>
Italy stays close, watching Indica deepthroat $playerName with clear effort, trying to force him over the edge.
<<speech "italy" "Italy">>Push him. I want to see him break.<</speech>>
<<speech "indica" "Indica Monroe">>He’s so fucking thick in my throat…<</speech>>
<<speech "you">>Keep going. You’re not done.<</speech>>
/* ——— FOCUS MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/h7.webm" type="video/webm"></video>
</div>
They break for a messy kiss right in front of his cock, then Italy puts both hands on Indica’s head and starts pushing her deeper onto him.
<<speech "italy" "Italy">>Take him deeper. I know you can.<</speech>>
<<speech "indica" "Indica Monroe">>Mmmph— fuck—<</speech>>
<<speech "you">>That’s it… use her.<</speech>>
<<mgButtons "focus" 2 "career/swallow/BWC/h7.webm" 1>>
<<elseif $phase == 1 or ($phase == 0 and $mg_Returning)>>
<<if $mg_Returning>>
<<set $focusScore to $mg_Score>>
<<set $mg_Returning to false>>
<<set $phase to 1>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/h8.webm" type="video/webm"></video>
</div>
Italy drops lower and starts licking and sucking $playerName’s balls while Indica keeps her mouth locked around his cock, working him harder.
<<speech "italy" "Italy">>His balls are so full… he’s close.<</speech>>
<<speech "indica" "Indica Monroe">>I can feel him throbbing… come on, give it to me.<</speech>>
<<speech "you">>Not yet. Make me.<</speech>>
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/h9.webm" type="video/webm"></video>
</div>
Indica doubles down, sucking with everything she has while Italy stays on his balls. The pressure builds fast.
<<speech "indica" "Indica Monroe">>I want it… all of it in my mouth.<</speech>>
<<speech "italy" "Italy">>Give it to her. She’s earned it.<</speech>>
<<mgButtons "stamina" 2 "career/swallow/BWC/h9.webm" 2>>
<<elseif $phase == 2 or ($phase == 1 and $mg_Returning)>>
<<set $lastScore to $mg_Score>>
<<set $mg_Returning to false>>
<<set $phase to 2>>
<<if $lastScore >= 65>>
/* GOOD PERFORMANCE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/h9.webm" type="video/webm"></video>
</div>
$playerName finally lets go. He cums hard into Indica’s mouth while Italy turns to another cock and starts sucking it, still watching from the side.
<<speech "indica" "Indica Monroe">>Mmmph— yes… fill me—<</speech>>
<<speech "you">>Swallow every drop.<</speech>>
<<speech "italy" "Italy">>That’s it… take it all.<</speech>>
<<else>>
/* POOR PERFORMANCE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/h9.webm" type="video/webm"></video>
</div>
$playerName’s control slips earlier than they wanted. He still finishes in Indica’s mouth, but the build-up is shorter.
<<speech "indica" "Indica Monroe">>Ah— already? Okay… I’ve got you.<</speech>>
<<speech "you">>Fuck—<</speech>>
<<speech "italy" "Italy">>Still looks like a solid load.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/h10.webm" type="video/webm"></video>
</div>
Indica turns to the camera, opens her mouth, and shows the thick load sitting on her tongue. Then she swallows it cleanly with a satisfied smile and crawls over to watch her friend work another cock.
<<speech "indica" "Indica Monroe">>Mmm… perfect.<</speech>>
<<speech "producer" "Producer">>Show it off. Nice.<</speech>>
<<speech "italy" "Italy">>Come here and help me with this one.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/h11.webm" type="video/webm"></video>
</div>
While Italy strokes another cock, both girls talk about $playerName, still clearly impressed.
<<if $lastScore >= 65>>
<<speech "indica" "Indica Monroe">>That thick one was the best of the day. Held out while we both worked him and then gave me everything. I measured him with my hand… he’s bigger than he looks.<</speech>>
<<speech "italy" "Italy">>She wasn’t exaggerating. I felt how hard he stayed the whole time.<</speech>>
<<else>>
<<speech "indica" "Indica Monroe">>Still a really good cock… just finished a little sooner than I wanted. Size was perfect though. I’d take him again.<</speech>>
<<speech "italy" "Italy">>Agreed. Next time make him last longer for us.<</speech>>
<</if>>
<<silently>>
<<set $sceneCompleted["ghs_indica"] to true>>
<<set $swallowSameDayLock to true>>
<<set $studioSameDayLock to true>>
<<bumpSwallowProgress 10>>
<<set $actionsLeft -= 1>> <<set $expGloryhole += 1>> <<set $gloryholeSwallowCount += 1>> <<set $actressRelation["indica_monroe"] to ($actressRelation["indica_monroe"] || 0) + ($lastScore >= 65 ? 9 : 4)>> <<set $actressRelation["italy"] to ($actressRelation["italy"] || 0) + ($lastScore >= 65 ? 7 : 3)>> <<set $overallStudioRep += ($lastScore >= 65 ? 6 : 3)>> <<set $studioRelation["joy_media"] += ($lastScore >= 65 ? 6 : 3)>> <<set $money += ($lastScore >= 65 ? 250 : 170)>> <<applyWorkLoad "studio" "neutral">> <<unset $phase>> <<set $mg_Returning to false>> <<set $mg_UsePhase to false>>
<<if ($swallowIndex >= 5 or $gloryholeSwallowCount >= 5) and not $unlockedGloryholeSecrets>>
<<set $unlockedGloryholeSecrets to true>>
<<if not $secretsUnlockAnnounced>>
<<set $secretsUnlockAnnounced to true>>
<div style="color:#00e676;">Gloryhole Secrets unlocked at Joy Media.</div>
<</if>>
<</if>>
<</silently>>
<div style="color:#00e676;">Gloryhole Secrets unlocked!</div>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Gloryhole Swallow"]]
<<else>>
[[Back to Gloryhole Swallow|Gloryhole Swallow]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Rebel Rhyder & Lulu – Gloryhole Swallow</div>
<<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $sceneId to "ghs_rebel">>
<<set $metRebelRhyder to true>>
<</if>>
<<if $phase == 0>>
/* ===================== INTRO + FOCUS MINIGAME ===================== */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i1.webm" type="video/webm"></video>
</div>
Rebel Rhyder is already in the studio, completely in control. She reaches over and slowly pulls Lulu’s panties down in front of everyone, making the amateur blush while the crew watches.
<<speech "rebel" "Rebel Rhyder">>Relax. They’re all going to see a lot more than this today.<</speech>>
<<speech "lulu" "Lulu">>I’ve never done anything like this…<</speech>>
<<speech "rebel" "Rebel Rhyder">>That’s why I’m here. Just follow my lead.<</speech>>
<<speech "producer" "Producer">>Rebecca wanted the contrast. Famous and fresh. Make it count.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i2.webm" type="video/webm"></video>
</div>
Rebel drops to her knees right there in the open studio and starts licking Lulu’s pussy without hesitation. Lulu’s hands find Rebel’s hair as she tries to stay standing.
<<speech "lulu" "Lulu">>Fuck… you’re really doing this in front of everyone—<</speech>>
<<speech "rebel" "Rebel Rhyder">>Get used to it. The camera loves shy girls getting ruined.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i3.webm" type="video/webm"></video>
</div>
They step into the booth. Lulu is already on a cock, nervous but trying. Rebel stays close, guiding her, stroking her hair and talking her through it.
<<speech "rebel" "Rebel Rhyder">>Deeper. Don’t be scared of it. He likes it when you struggle a little.<</speech>>
<<speech "lulu" "Lulu">>It’s so big…<</speech>>
<<speech "rebel" "Rebel Rhyder">>You’ll get bigger ones today. Trust me.<</speech>>
$playerName’s turn. His cock slides through.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i4.webm" type="video/webm"></video>
</div>
Lulu goes first — soft lips, hesitant hand, kissing along the shaft before she starts stroking and sucking.
<<speech "lulu" "Lulu">>He’s already so hard… and thick.<</speech>>
<<speech "rebel" "Rebel Rhyder">>That’s the one I was told about. Don’t be gentle with him.<</speech>>
<<speech "you">>She can take her time. I’m not going anywhere.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i5.webm" type="video/webm"></video>
</div>
Rebel takes over the head while Lulu drops to his balls, both of them working him together.
<<speech "rebel" "Rebel Rhyder">>Fuck… you’re even thicker than they said.<</speech>>
<<speech "lulu" "Lulu">>His balls are so full…<</speech>>
<<speech "you">>Keep going. Both of you.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i6.webm" type="video/webm"></video>
</div>
Rebel fully takes control — one hand stroking, mouth locked around him, eyes looking up with clear intent. She’s trying to make him finish.
<<speech "rebel" "Rebel Rhyder">>Come on… give me that load. I want to show the camera how much you have.<</speech>>
<<speech "you">>Make me.<</speech>>
<<speech "rebel" "Rebel Rhyder">>Gladly.<</speech>>
<<mgButtons "focus" 2 "career/swallow/BWC/i6.webm" 1>>
<<elseif $phase == 1>>
/* ===================== AFTER FOCUS ===================== */
<<set $focusScore to $mg_Score>>
<<if $focusScore >= 65>>
/* FOCUS SUCCESS */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i7.webm" type="video/webm"></video>
</div>
$playerName holds out under Rebel’s focused attack, then finally lets go with a heavy load. She keeps him buried in her throat until every pulse finishes, then pulls off and shows the thick cum to the camera with clear satisfaction.
<<speech "rebel" "Rebel Rhyder">>Fuck… look at that. You actually made me work for it.<</speech>>
<<speech "you">>Swallow it.<</speech>>
<<speech "rebel" "Rebel Rhyder">>Not yet. I want the camera to see how much you gave me.<</speech>>
<<speech "lulu" "Lulu">>That’s so much…<</speech>>
<<else>>
/* FOCUS FAILURE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i7.webm" type="video/webm"></video>
</div>
$playerName’s control breaks earlier than Rebel expected. She still catches most of the load, but the look she gives him is more amused than impressed as she shows it to the camera.
<<speech "rebel" "Rebel Rhyder">>Already? I barely even started.<</speech>>
<<speech "you">>Shit—<</speech>>
<<speech "rebel" "Rebel Rhyder">>Relax. It’s still a decent load… just came too fast. We’ll work on that.<</speech>>
<<speech "lulu" "Lulu">>It still looks like a lot…<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i8.webm" type="video/webm"></video>
</div>
Rebel pulls Lulu in and feeds her the cum, kissing her deeply so they can share it. Both of them end up smiling with messy mouths.
<<speech "rebel" "Rebel Rhyder">>Swallow. That’s a good girl.<</speech>>
<<speech "lulu" "Lulu">>It tastes so strong…<</speech>>
<<speech "producer" "Producer">>Perfect. Now we move to the main set.<</speech>>
/* ORGY SECTION */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i9.webm" type="video/webm"></video>
</div>
The orgy starts. Rebel is on the swing, already being fucked while she pulls $playerName’s cock into her mouth.
<<speech "rebel" "Rebel Rhyder">>Don’t just stand there. Use me.<</speech>>
<<speech "you">>Open wider.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i10.webm" type="video/webm"></video>
</div>
$playerName wraps a hand around her throat while she’s being fucked by others, making her stroke him at the same time.
<<speech "rebel" "Rebel Rhyder">>Harder… choke me properly.<</speech>>
<<speech "you">>You like that?<</speech>>
<<speech "rebel" "Rebel Rhyder">>I fucking love it.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i11.webm" type="video/webm"></video>
</div>
<<speech "rebel" "Rebel Rhyder">>Slap me. Use my mouth like a toy. Don’t be nice.<</speech>>
$playerName does exactly that — sharp slap, then feeds his cock back into her mouth and uses her throat without mercy.
<<speech "rebel" "Rebel Rhyder">>Mmmph— yes— just like that—<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i12.webm" type="video/webm"></video>
</div>
He pulls out of her mouth, spins her, and starts fucking her in doggy on the swing, driving deep.
<<speech "rebel" "Rebel Rhyder">>Fuck— that’s it… stretch me. Don’t hold back.<</speech>>
<<speech "you">>You’re so fucking tight for a pornstar.<</speech>>
<<speech "rebel" "Rebel Rhyder">>Then ruin me.<</speech>>
<<mgButtons "stamina" 2 "career/swallow/BWC/i12.webm" 2>>
<<elseif $phase == 2>>
/* ===================== AFTER STAMINA ===================== */
<<set $lastScore to $mg_Score>>
<<if $lastScore >= 65>>
/* STAMINA SUCCESS */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i13.webm" type="video/webm"></video>
</div>
He flips her into missionary and keeps fucking her hard while she takes another cock in her mouth. Rebel is clearly impressed.
<<speech "rebel" "Rebel Rhyder">>Goddamn… you’re actually fucking me properly. Most guys don’t last this long with me.<</speech>>
<<speech "you">>I’m not most guys.<</speech>>
<<speech "rebel" "Rebel Rhyder">>No… you’re not. Keep going. I want to feel this.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i14.webm" type="video/webm"></video>
</div>
$playerName finally cums deep inside her, pumping a heavy load before slowly pulling out.
<<speech "rebel" "Rebel Rhyder">>Fuck— fill me… yes— that’s a real load.<</speech>>
<<speech "you">>Take all of it.<</speech>>
<<speech "rebel" "Rebel Rhyder">>I felt every pulse… damn.<</speech>>
<<else>>
/* STAMINA FAILURE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i13.webm" type="video/webm"></video>
</div>
He gets her into missionary, but his control slips faster than he wanted. Rebel notices immediately.
<<speech "rebel" "Rebel Rhyder">>Already getting close? Come on… I know you’ve got more in you than that.<</speech>>
<<speech "you">>Shit— I’m trying—<</speech>>
<<speech "rebel" "Rebel Rhyder">>Don’t apologize. Just give me what you’ve got.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i14.webm" type="video/webm"></video>
</div>
He finishes inside her earlier than either of them wanted.
<<speech "rebel" "Rebel Rhyder">>Mmm… still a decent amount. I’ve had worse.<</speech>>
<<speech "you">>Next time I’ll last longer.<</speech>>
<<speech "rebel" "Rebel Rhyder">>You’d better. I don’t usually give second chances.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/i15.webm" type="video/webm"></video>
</div>
Rebel slides off the swing, squats in front of the camera, and starts pushing $playerName’s cum out of her pussy with her fingers. She collects it in her hand, then licks it clean and swallows with a smile.
<<if $lastScore >= 65>>
<<speech "rebel" "Rebel Rhyder">>My husband is going to love this when I get home. He always eats me out after I shoot… especially when it’s a load this big and from someone who actually knew how to use it.<</speech>>
<<speech "you">>Tell him it was me.<</speech>>
<<speech "rebel" "Rebel Rhyder">>Oh I will. He’ll be jealous as fuck. You earned that.<</speech>>
<<else>>
<<speech "rebel" "Rebel Rhyder">>My husband will still enjoy cleaning this up when I get home… even if you didn’t last as long as I wanted.<</speech>>
<<speech "you">>I’ll do better next time.<</speech>>
<<speech "rebel" "Rebel Rhyder">>We’ll see. Size is there. Stamina needs work.<</speech>>
<</if>>
<<speech "producer" "Producer">>That’s a wrap. Rebecca’s going to be very happy with this one.<</speech>>
<<if $lastScore >= 65>>
<<speech "rebel" "Rebel Rhyder">>You actually impressed me. Size, stamina, and you fucked me like you meant it. I’ll remember this one.<</speech>>
<<else>>
<<speech "rebel" "Rebel Rhyder">>Still a solid cock… just finished sooner than I wanted. Size was perfect. Next time last longer if you want me to remember your name.<</speech>>
<</if>>
<<silently>>
<<set $sceneCompleted["ghs_rebel"] to true>>
<<set $swallowSameDayLock to true>>
<<set $studioSameDayLock to true>>
<<bumpSwallowProgress 5>>
<<set $actionsLeft -= 1>> <<set $expGloryhole += 1>> <<set $gloryholeSwallowCount += 1>> <<set $actressRelation["rebel_rhyder"] to ($actressRelation["rebel_rhyder"] || 0) + ($lastScore >= 65 ? 15 : 8)>> <<set $actressRelation["lulu"] to ($actressRelation["lulu"] || 0) + ($lastScore >= 65 ? 6 : 3)>> <<set $overallStudioRep += ($lastScore >= 65 ? 8 : 4)>> <<set $studioRelation["joy_media"] += ($lastScore >= 65 ? 8 : 4)>> <<set $money += ($lastScore >= 65 ? 320 : 220)>> <<applyWorkLoad "studio" "neutral">> <<unset $phase>> <<set $mg_Returning to false>> <<set $mg_UsePhase to false>>
<<if ($swallowIndex >= 5 or $gloryholeSwallowCount >= 5) and not $unlockedGloryholeSecrets>>
<<set $unlockedGloryholeSecrets to true>>
<<if not $secretsUnlockAnnounced>>
<<set $secretsUnlockAnnounced to true>>
<div style="color:#00e676;">Gloryhole Secrets unlocked at Joy Media.</div>
<</if>>
<</if>>
<</silently>>
<div style="color:#00e676;">Gloryhole Secrets unlocked!</div>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Gloryhole Swallow"]]
<<else>>
[[Back to Gloryhole Swallow|Gloryhole Swallow]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Rebel Rhyder & Lulu – 2nd Visit</div>
<<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $sceneId to "ghs_rebel2">>
<<set $metRebelRhyder to true>>
<</if>>
<<if $phase == 0>>
/* ===================== INTRO ===================== */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j1.webm" type="video/webm"></video>
</div>
Rebel and Lulu are already naked in the booth, waiting. Both look excited — the first shoot was a hit and they came back for more.
<<speech "rebel" "Rebel Rhyder">>Told you we’d be back. Rebecca loved the numbers.<</speech>>
<<speech "lulu" "Lulu">>I’m less nervous this time… but still a little.<</speech>>
<<speech "rebel" "Rebel Rhyder">>Good. Stay a little nervous. It looks better on camera.<</speech>>
<<speech "producer" "Producer">>Same energy as last time. Let’s go.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j2.webm" type="video/webm"></video>
</div>
The first cock appears. Rebel takes it, works it with practiced ease, and makes him finish in her mouth. She immediately turns and spits the cum straight into Lulu’s open mouth.
<<speech "rebel" "Rebel Rhyder">>Swallow. Don’t waste it.<</speech>>
<<speech "lulu" "Lulu">>Mmm…<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j3.webm" type="video/webm"></video>
</div>
They kiss, sharing the load, both of them smiling as they swallow together.
<<speech "rebel" "Rebel Rhyder">>That’s how you start a shoot.<</speech>>
<<speech "lulu" "Lulu">>You’re so filthy… I love it.<</speech>>
$playerName’s cock appears.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j4.webm" type="video/webm"></video>
</div>
Lulu attacks it immediately, more confident than last time.
<<speech "lulu" "Lulu">>I remember this one…<</speech>>
<<speech "rebel" "Rebel Rhyder">>So do I. Don’t be soft with him.<</speech>>
<<speech "you">>Show me what you learned.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j5.webm" type="video/webm"></video>
</div>
Rebel drops to his balls while Lulu focuses on the shaft, both of them working in rhythm.
<<speech "rebel" "Rebel Rhyder">>Lick right there… yes. Keep that pressure on the head.<</speech>>
<<speech "lulu" "Lulu">>He’s already throbbing…<</speech>>
/* ——— FOCUS MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j6.webm" type="video/webm"></video>
</div>
They both lock onto the head with their tongues and mouths at the same time, trying to force him over.
<<speech "rebel" "Rebel Rhyder">>Come on… give it to us. I want to watch her take it.<</speech>>
<<speech "lulu" "Lulu">>Please… I want it this time.<</speech>>
<<speech "you">>Not yet.<</speech>>
<<mgButtons "focus" 2 "career/swallow/BWC/j6.webm" 1>>
<<elseif $phase == 1>>
/* ===================== AFTER FOCUS ===================== */
<<set $focusScore to $mg_Score>>
<<if $focusScore >= 65>>
<<speech "rebel" "Rebel Rhyder">>He’s holding out. Good. That means we get to play longer.<</speech>>
<<else>>
<<speech "rebel" "Rebel Rhyder">>Already close? We’re just getting started. Control yourself.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j7.webm" type="video/webm"></video>
</div>
Lulu stands up, turns, and sinks down onto $playerName’s cock, taking him inside her pussy.
<<speech "lulu" "Lulu">>Fuck— I wanted this last time…<</speech>>
<<speech "rebel" "Rebel Rhyder">>Then take it. Ride him properly.<</speech>>
<<speech "you">>She’s tighter than she looks.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j8.webm" type="video/webm"></video>
</div>
Rebel watches closely while $playerName fucks Lulu, one hand on her hip, the other occasionally guiding her.
<<speech "rebel" "Rebel Rhyder">>Look at her face… she’s already losing it.<</speech>>
<<speech "lulu" "Lulu">>It’s so deep— don’t stop—<</speech>>
/* ——— TECHNIQUE MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j9.webm" type="video/webm"></video>
</div>
Rebel reaches down and starts rubbing Lulu’s clit while she’s being fucked. Lulu is openly begging now.
<<speech "lulu" "Lulu">>Please… cum inside me. I want it. I want your cum—<</speech>>
<<speech "rebel" "Rebel Rhyder">>You heard her. Fill her up.<</speech>>
<<speech "you">>Make her cum first.<</speech>>
<<mgButtons "technique" 2 "career/swallow/BWC/j9.webm" 2>>
<<elseif $phase == 2>>
/* ===================== AFTER TECHNIQUE ===================== */
<<set $techScore to $mg_Score>>
<<if $techScore >= 65>>
/* TECHNIQUE SUCCESS */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j10.webm" type="video/webm"></video>
</div>
$playerName lasts long enough for Lulu to break. She cums hard around him, then he follows, pumping a thick load deep inside her. When he pulls out, a heavy drop of cum falls straight onto Rebel’s waiting tongue. She catches it and swallows with a satisfied smile.
<<speech "lulu" "Lulu">>Fuck— I’m cumming… fill me—!<</speech>>
<<speech "you">>Take it.<</speech>>
<<speech "rebel" "Rebel Rhyder">>Mmm… even the overflow tastes good.<</speech>>
<<else>>
/* TECHNIQUE FAILURE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j10.webm" type="video/webm"></video>
</div>
$playerName finishes a little earlier than ideal. He still gives Lulu a solid creampie, and Rebel still catches the drop that falls, but Lulu’s orgasm is rushed.
<<speech "lulu" "Lulu">>Ah— already? Okay… keep going, I’m close—<</speech>>
<<speech "rebel" "Rebel Rhyder">>He still filled you. Don’t complain.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j11.webm" type="video/webm"></video>
</div>
Rebel immediately leans in and starts licking and sucking $playerName’s cum out of Lulu’s pussy, cleaning her thoroughly.
<<speech "rebel" "Rebel Rhyder">>I wanted to taste him in you…<</speech>>
<<speech "lulu" "Lulu">>Don’t stop… that feels so good.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j12.webm" type="video/webm"></video>
</div>
Lulu turns and sits on Rebel’s face, grinding down so Rebel can push her tongue deeper and get every last drop.
<<speech "lulu" "Lulu">>Eat it… eat all of it.<</speech>>
<<speech "rebel" "Rebel Rhyder">>Gladly.<</speech>>
<<speech "producer" "Producer">>Beautiful. Now we move to the main floor.<</speech>>
/* ===================== ORGY SECTION ===================== */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j13.webm" type="video/webm"></video>
</div>
They shift to the open studio. Both girls look charged and ready for the group scene.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j14.webm" type="video/webm"></video>
</div>
They start kissing and touching each other, deliberately getting the rest of the talent worked up.
<<speech "rebel" "Rebel Rhyder">>I want him in my ass this time.<</speech>>
<<speech "lulu" "Lulu">>You’re obsessed with him.<</speech>>
<<speech "rebel" "Rebel Rhyder">>I have a reason.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j15.webm" type="video/webm"></video>
</div>
Rebel gets on all fours. $playerName lines up and pushes into her ass while she reaches over and plays with Lulu’s pussy.
<<speech "rebel" "Rebel Rhyder">>Yes… right there. Stretch me.<</speech>>
<<speech "you">>Tight as fuck.<</speech>>
<<speech "rebel" "Rebel Rhyder">>Then open me up.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j16.webm" type="video/webm"></video>
</div>
She’s clearly enjoying every thrust. Other talent joins in, playing with Lulu while Rebel stays locked on $playerName.
<<speech "rebel" "Rebel Rhyder">>Don’t you dare pull out. I want this one.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j17.webm" type="video/webm"></video>
</div>
He shifts to Lulu for a while, fucking her in missionary while she looks up at him.
<<speech "lulu" "Lulu">>You feel even bigger like this…<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j18.webm" type="video/webm"></video>
</div>
Another cock enters Lulu’s mouth while $playerName keeps fucking her.
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j19.webm" type="video/webm"></video>
</div>
He goes back to Rebel’s ass. She immediately starts begging.
<<speech "rebel" "Rebel Rhyder">>Finish in my ass. I want to take it home. My husband is going to eat every drop out of me tonight.<</speech>>
<<speech "you">>You want him to taste me?<</speech>>
<<speech "rebel" "Rebel Rhyder">>I want him to know exactly who fucked his wife better.<</speech>>
<<mgButtons "stamina" 2 "career/swallow/BWC/j19.webm" 3>>
<<elseif $phase == 3>>
/* ===================== AFTER STAMINA ===================== */
<<set $lastScore to $mg_Score>>
<<if $lastScore >= 65>>
/* STAMINA SUCCESS */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j20.webm" type="video/webm"></video>
</div>
$playerName lasts and then empties a heavy load deep into Rebel’s ass. She pushes back onto him, taking every pulse.
<<speech "rebel" "Rebel Rhyder">>Yes— fill my ass… fuck, that’s it—<</speech>>
<<speech "you">>Take all of it.<</speech>>
<<speech "rebel" "Rebel Rhyder">>I can feel how much you just gave me…<</speech>>
<<else>>
/* STAMINA FAILURE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j20.webm" type="video/webm"></video>
</div>
$playerName finishes earlier than Rebel wanted, but still pumps a solid load into her ass.
<<speech "rebel" "Rebel Rhyder">>Already? Fuck… fine. Give me what you’ve got.<</speech>>
<<speech "you">>Shit—<</speech>>
<<speech "rebel" "Rebel Rhyder">>Still going inside me. That’s all that matters right now.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/swallow/BWC/j21.webm" type="video/webm"></video>
</div>
Rebel turns around and cleans his cock with her mouth, tasting the mix of his cum, Lulu’s pussy, and her own ass. She looks up at him with a sharp, calculating smile.
<<if $lastScore >= 65>>
<<speech "rebel" "Rebel Rhyder">>You’re not just a good fuck. You’re the kind of cock that makes husbands nervous. I want to introduce you to mine. He has connections… and he pays well for the right kind of humiliation.<</speech>>
<<speech "you">>You’re serious.<</speech>>
<<speech "rebel" "Rebel Rhyder">>Dead serious. You just filled his wife’s ass. He’ll want to meet the man who did it.<</speech>>
<<else>>
<<speech "rebel" "Rebel Rhyder">>Still a good load… even if you finished sooner than I hoped. My husband will still taste you tonight. If you last longer next time, I might actually introduce you to him. He pays for this kind of thing.<</speech>>
<</if>>
<<speech "producer" "Producer">>That’s a wrap. Rebecca already texted — she wants more of this pairing.<</speech>>
<<silently>>
<<set $sceneCompleted["ghs_rebel2"] to true>>
<<set $swallowSameDayLock to true>>
<<set $studioSameDayLock to true>>
<<bumpSwallowProgress 8>>
<<set $actionsLeft -= 1>> <<set $expGloryhole += 1>> <<set $gloryholeSwallowCount += 1>> <<set $actressRelation["rebel_rhyder"] to ($actressRelation["rebel_rhyder"] || 0) + ($lastScore >= 65 ? 18 : 10)>> <<set $actressRelation["lulu"] to ($actressRelation["lulu"] || 0) + ($lastScore >= 65 ? 8 : 4)>> <<set $overallStudioRep += ($lastScore >= 65 ? 9 : 5)>> <<set $studioRelation["joy_media"] += ($lastScore >= 65 ? 9 : 5)>> <<set $money += ($lastScore >= 65 ? 380 : 260)>> <<applyWorkLoad "studio" "neutral">> <<unset $phase>> <<set $mg_Returning to false>> <<set $mg_UsePhase to false>>
<<if $lastScore >= 65>>
<<set $rebelHusbandPath to true>>
<</if>>
<<if ($swallowIndex >= 5 or $gloryholeSwallowCount >= 5) and not $unlockedGloryholeSecrets>>
<<set $unlockedGloryholeSecrets to true>>
<<if not $secretsUnlockAnnounced>>
<<set $secretsUnlockAnnounced to true>>
<div style="color:#00e676;">Gloryhole Secrets unlocked at Joy Media.</div>
<</if>>
<</if>>
<</silently>>
<div style="color:#00e676;">Rebel offered to introduce you to her husband…</div>
<div style="color:#00e676;">Gloryhole Secrets unlocked!</div>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Gloryhole Swallow"]]
<<else>>
[[Back to Gloryhole Swallow|Gloryhole Swallow]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Tommy King – Gloryhole Secrets</div>
<<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $sceneId to "ghx_tommy">>
<</if>>
<<if $phase == 0>>
/* ===================== INTRO ===================== */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/a1.webm" type="video/webm"></video>
</div>
Tommy is already on her knees in front of the hole when the camera starts. She leans in and starts licking and sucking the first cock with clear experience.
<<speech "tommy" "Tommy King">>Mmm… first one of the day.<</speech>>
<<speech "producer" "Producer">>Keep it sloppy. That’s what this set is for.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/a2.webm" type="video/webm"></video>
</div>
She gives it a wet, messy blowjob — spit running down the shaft, eyes half-lidded, completely focused.
<<speech "tommy" "Tommy King">>I love when they throb like this…<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/a3.webm" type="video/webm"></video>
</div>
He finishes on her tongue. She holds it there for a second, letting the camera see it.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/a4.webm" type="video/webm"></video>
</div>
She shows the load clearly, then swallows with a small smile.
<<speech "tommy" "Tommy King">>Good boy… next.<</speech>>
$playerName’s turn. His cock slides through, still only semi-erect.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/a5.webm" type="video/webm"></video>
</div>
Tommy goes quiet for a moment when she sees it. She leans in and starts kissing along the length, almost reverent.
<<speech "tommy" "Tommy King">>Oh… look at you. You’re going to be fun.<</speech>>
<<speech "you">>Then get started.<</speech>>
<<speech "tommy" "Tommy King">>Gladly.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/a6.webm" type="video/webm"></video>
</div>
She takes him into her mouth. The head hits the back of her throat easily. She doesn’t pull away — she just adjusts and keeps going, one hand stroking what she can’t fit yet.
<<speech "tommy" "Tommy King">>Fuck… you go so deep so easily.<</speech>>
<<speech "producer" "Producer">>Let her work. Camera loves this.<</speech>>
/* ——— FOCUS MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/a7.webm" type="video/webm"></video>
</div>
She switches to both hands, stroking hard while she gags herself on him, spit everywhere.
<<speech "tommy" "Tommy King">>I can take more… don’t hold back on me.<</speech>>
<<speech "you">>Then take it.<</speech>>
<<mgButtons "focus" 2 "career/secret/BWC/a7.webm" 1>>
<<elseif $phase == 1>>
/* ===================== AFTER FOCUS ===================== */
<<set $focusScore to $mg_Score>>
<<if $focusScore >= 65>>
<<speech "tommy" "Tommy King">>You’re still so hard… most guys would have finished already.<</speech>>
<<else>>
<<speech "tommy" "Tommy King">>Getting close already? I’m not done with you yet.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/a8.webm" type="video/webm"></video>
</div>
She pushes forward until his entire cock disappears down her throat. She holds it there, nose pressed against the wall, swallowing around him.
<<speech "tommy" "Tommy King">>Mmmph— all the way…<</speech>>
<<speech "you">>Stay there.<</speech>>
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/a9.webm" type="video/webm"></video>
</div>
She starts moving her head, fucking her own throat with his cock in long, deep strokes. Spit pours down her chin and onto her chest.
<<speech "tommy" "Tommy King">>Use my throat… I want it.<</speech>>
<<speech "you">>You’re going to get it.<</speech>>
<<speech "tommy" "Tommy King">>Then give it to me. On my tongue.<</speech>>
<<mgButtons "technique" 3 "career/secret/BWC/a9.webm" 2>>
<<elseif $phase == 2>>
/* ===================== AFTER STAMINA ===================== */
<<set $lastScore to $mg_Score>>
<<if $lastScore >= 65>>
/* SUCCESS */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/a10.webm" type="video/webm"></video>
</div>
$playerName holds out, then finishes hard on her tongue. She keeps stroking him through it, looking straight into the camera while she milks every drop onto her tongue.
<<speech "tommy" "Tommy King">>Mmm— yes… all of it. Right here.<</speech>>
<<speech "you">>Don’t waste any.<</speech>>
<<speech "tommy" "Tommy King">>I won’t.<</speech>>
<<else>>
/* FAILURE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/a10.webm" type="video/webm"></video>
</div>
$playerName finishes earlier than she wanted. She still catches most of it on her tongue and keeps stroking the rest out, but the look she gives the camera is slightly disappointed.
<<speech "tommy" "Tommy King">>Already? Okay… I’ve got you.<</speech>>
<<speech "you">>Fuck—<</speech>>
<<speech "tommy" "Tommy King">>Still a good load. Next time last longer for me.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/a11.webm" type="video/webm"></video>
</div>
She turns fully to the camera, opens her mouth, and plays with the cum on her tongue for a moment before swallowing it cleanly with a smile.
<<speech "tommy" "Tommy King">>Mmm… thick.<</speech>>
<<speech "producer" "Producer">>Perfect. Hold that look.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/a12.webm" type="video/webm"></video>
</div>
The exit interview. Tommy is a mess — chin, chest, and cheeks covered in drool and spit — but she’s smiling and giggling.
<<if $lastScore >= 65>>
<<speech "tommy" "Tommy King">>That last one was perfect. Held out while I fucked my own throat with it and then gave me everything right on the tongue. I love when they can actually last.<</speech>>
<<else>>
<<speech "tommy" "Tommy King">>Still a really good cock… just finished a little sooner than I wanted. Size was perfect and he went all the way down easily. I’d take him again if he lasts longer next time.<</speech>>
<</if>>
<<speech "producer" "Producer">>That’s a wrap. Great set.<</speech>>
<<silently>>
<<set $sceneCompleted["ghx_tommy"] to true>>
<<set $secretsSameDayLock to true>>
<<set $studioSameDayLock to true>>
<<if ($secretsIndex || 0) <= 0>><<set $secretsIndex to 1>><</if>>
<<set $actionsLeft -= 1>> <<set $expGloryhole += 1>> <<set $actressRelation["tommy_king"] to ($actressRelation["tommy_king"] || 0) + ($lastScore >= 65 ? 12 : 6)>> <<set $overallStudioRep += ($lastScore >= 65 ? 7 : 3)>> <<set $studioRelation["joy_media"] += ($lastScore >= 65 ? 7 : 3)>> <<set $money += ($lastScore >= 65 ? 120 : 70)>> <<applyWorkLoad "studio" "neutral">> <<unset $phase>> <<set $mg_Returning to false>> <<set $mg_UsePhase to false>>
<</silently>>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Gloryhole Secrets"]]
<<else>>
[[Back to Gloryhole Secrets|Gloryhole Secrets]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Lauren Phillips – Gloryhole Secrets</div>
<<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $sceneId to "ghx_lauren">>
<</if>>
<<if $phase == 0>>
/* ===================== INTRO ===================== */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/b1.webm" type="video/webm"></video>
</div>
Lauren is already on her knees, clearly impatient. The moment the first cock appears she grabs it and starts sucking without any warm-up.
<<speech "lauren" "Lauren Phillips">>Finally… I’ve been waiting for this.<</speech>>
<<speech "producer" "Producer">>She’s been like this since she walked in. Just let her work.<</speech>>
<<speech "lauren" "Lauren Phillips">>Don’t just stand there. Give me something to suck.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/b2.webm" type="video/webm"></video>
</div>
She deepthroats almost immediately. When she feels him getting close she pulls back just enough to beg, eyes locked on the hole.
<<speech "lauren" "Lauren Phillips">>Come on… don’t hold it back. I want it in my mouth. Right now.<</speech>>
<<speech "producer" "Producer">>She’s begging already. Camera loves that.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/b3.webm" type="video/webm"></video>
</div>
He finishes straight into her mouth. She takes every pulse, holds it for a second, then swallows cleanly.
<<speech "lauren" "Lauren Phillips">>Mmm… warm. Good boy. Next.<</speech>>
$playerName’s cock pushes through — already extremely hard.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/b4.webm" type="video/webm"></video>
</div>
Lauren goes quiet for a second, then smiles and leans in to lick his balls while she studies the length and thickness.
<<speech "lauren" "Lauren Phillips">>Oh… you’re already this hard? And look at the size of you.<</speech>>
<<speech "you">>You like what you see?<</speech>>
<<speech "lauren" "Lauren Phillips">>I’m going to take my time with this one. You’re not finishing quick if I can help it.<</speech>>
<<speech "producer" "Producer">>She’s sizing you up. This should be good.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/b5.webm" type="video/webm"></video>
</div>
She starts with just the head — sucking hard, then pulling off, then going back again, clearly making a plan.
<<speech "lauren" "Lauren Phillips">>I know exactly how I want to break you.<</speech>>
<<speech "you">>Then try.<</speech>>
<<speech "lauren" "Lauren Phillips">>Oh I will. You’re already twitching.<</speech>>
/* ——— FOCUS MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/b6.webm" type="video/webm"></video>
</div>
She keeps teasing — no hands, just her mouth going on and off the head in a slow, deliberate rhythm.
<<speech "lauren" "Lauren Phillips">>You’re twitching every time I pull away… I love that.<</speech>>
<<speech "you">>Keep going.<</speech>>
<<speech "lauren" "Lauren Phillips">>I’m not done playing yet. You’re going to wait until I’m ready.<</speech>>
<<speech "producer" "Producer">>She’s edging him on purpose. Stay with it.<</speech>>
<<mgButtons "focus" 2 "career/secret/BWC/b6.webm" 1>>
<<elseif $phase == 1>>
/* ===================== AFTER FOCUS ===================== */
<<set $focusScore to $mg_Score>>
<<if $focusScore >= 65>>
<<speech "lauren" "Lauren Phillips">>Still holding on. Good. That means I get to be meaner.<</speech>>
<<speech "you">>Do your worst.<</speech>>
<<speech "lauren" "Lauren Phillips">>Careful what you ask for.<</speech>>
<<else>>
<<speech "lauren" "Lauren Phillips">>Already getting close from just the tip? You’re in trouble.<</speech>>
<<speech "you">>Fuck—<</speech>>
<<speech "lauren" "Lauren Phillips">>Don’t finish yet. I’m not done with you.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/b7.webm" type="video/webm"></video>
</div>
She runs her tongue all over him, focusing on the head, then grips the base hard and smiles up at the hole.
<<speech "lauren" "Lauren Phillips">>I can feel your pulse… you’re dying to finish.<</speech>>
<<speech "you">>And you’re enjoying every second of it.<</speech>>
<<speech "lauren" "Lauren Phillips">>Of course I am. This is my favorite part.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/b8.webm" type="video/webm"></video>
</div>
Without warning she forces herself all the way down. The power of her throat actually pushes $playerName back slightly against the wall. She stays there, swallowing around him, still smiling with her eyes.
<<speech "lauren" "Lauren Phillips">>Mmmph— all the way…<</speech>>
<<speech "you">>Jesus—<</speech>>
<<speech "lauren" "Lauren Phillips">>Stay right there. Don’t you dare pull back.<</speech>>
<<speech "producer" "Producer">>She just pushed him into the wall. Keep rolling.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/b9.webm" type="video/webm"></video>
</div>
She pulls off just long enough to breathe, strings of spit connecting her lips to his cock, then immediately drives herself back down even deeper.
<<speech "lauren" "Lauren Phillips">>Again… I can take it.<</speech>>
<<speech "you">>Then take it deeper.<</speech>>
<<speech "lauren" "Lauren Phillips">>Gladly.<</speech>>
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/b10.webm" type="video/webm"></video>
</div>
She switches back to the head and starts sucking it hard and fast, no more teasing — pure intent to finish him.
<<speech "lauren" "Lauren Phillips">>You’ve been tortured enough. Give it to me. Right now.<</speech>>
<<speech "you">>Make me.<</speech>>
<<speech "lauren" "Lauren Phillips">>I am. Come on… shoot it. I want every drop on my tongue.<</speech>>
<<speech "producer" "Producer">>She’s done playing. This is the kill shot.<</speech>>
<<mgButtons "stamina" 3 "career/secret/BWC/b10.webm" 2>>
<<elseif $phase == 2>>
/* ===================== AFTER STAMINA ===================== */
<<set $lastScore to $mg_Score>>
<<if $lastScore >= 65>>
/* SUCCESS */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/b11.webm" type="video/webm"></video>
</div>
$playerName finally breaks. He shoots directly into her mouth while she keeps stroking him, milking every drop onto her tongue.
<<speech "lauren" "Lauren Phillips">>Yes— fill it… that’s it, all of it. Don’t stop.<</speech>>
<<speech "you">>Swallow it.<</speech>>
<<speech "lauren" "Lauren Phillips">>Not yet. I want the camera to see what you gave me.<</speech>>
<<speech "producer" "Producer">>Hold it. Perfect.<</speech>>
<<else>>
/* FAILURE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/b11.webm" type="video/webm"></video>
</div>
$playerName finishes earlier than she planned. She still takes the load in her mouth and strokes the rest out, but she looks slightly cheated of the full game.
<<speech "lauren" "Lauren Phillips">>Already? I was just getting started…<</speech>>
<<speech "you">>Fuck— I couldn’t hold it.<</speech>>
<<speech "lauren" "Lauren Phillips">>Don’t apologize. Just give me every drop. I’ll forgive you this time.<</speech>>
<<speech "producer" "Producer">>Still a solid load. Keep rolling.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/b12.webm" type="video/webm"></video>
</div>
She turns to the camera, opens her mouth, and shows the heavy load sitting on her tongue before swallowing it with a satisfied smile.
<<speech "lauren" "Lauren Phillips">>Mmm… perfect. Thick and warm.<</speech>>
<<speech "you">>You earned it.<</speech>>
<<speech "lauren" "Lauren Phillips">>I know.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/b13.webm" type="video/webm"></video>
</div>
Exit interview. Lauren is still on her knees, but she spreads her legs slightly for the camera, clearly worked up and happy.
<<speech "producer" "Producer">>How are you feeling?<</speech>>
<<if $lastScore >= 65>>
<<speech "lauren" "Lauren Phillips">>That thick one was exactly what I wanted. Held out through all the teasing and the deepthroat and still gave me a heavy load right on the tongue. I’m soaked just from sucking him. Look.<</speech>>
<<speech "you">>You’re dripping.<</speech>>
<<speech "lauren" "Lauren Phillips">>Your fault. Come back and do it again sometime.<</speech>>
<<else>>
<<speech "lauren" "Lauren Phillips">>Still a fantastic cock… just finished a little sooner than I hoped. The size and the way he filled my throat were perfect. Next time I want him to last longer so I can really play with him.<</speech>>
<<speech "you">>I’ll do better.<</speech>>
<<speech "lauren" "Lauren Phillips">>You’d better. I don’t usually give second chances… but for that cock I might.<</speech>>
<</if>>
<<speech "producer" "Producer">>That’s a wrap. Great set.<</speech>>
<<silently>>
<<set $sceneCompleted["ghx_lauren"] to true>>
<<set $secretsSameDayLock to true>>
<<set $studioSameDayLock to true>>
<<if ($secretsIndex || 0) <= 1>><<set $secretsIndex to 2>><</if>>
<<set $actionsLeft -= 1>> <<set $expGloryhole += 1>> <<set $actressRelation["lauren_phillips"] to ($actressRelation["lauren_phillips"] || 0) + ($lastScore >= 65 ? 12 : 6)>> <<set $overallStudioRep += ($lastScore >= 65 ? 7 : 3)>> <<set $studioRelation["joy_media"] += ($lastScore >= 65 ? 7 : 3)>> <<set $money += ($lastScore >= 65 ? 120 : 70)>> <<applyWorkLoad "studio" "neutral">> <<unset $phase>> <<set $mg_Returning to false>> <<set $mg_UsePhase to false>>
<</silently>>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Gloryhole Secrets"]]
<<else>>
[[Back to Gloryhole Secrets|Gloryhole Secrets]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Cory Chase – Gloryhole Secrets</div>
<<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $sceneId to "ghx_cory">>
<</if>>
<<if $phase == 0>>
/* ===================== INTRO ===================== */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/c1.webm" type="video/webm"></video>
</div>
Cory is still fully dressed when she drops to her knees. The first cock appears and she takes it into her mouth immediately, no hesitation.
<<speech "cory" "Cory Chase">>I’ve been thinking about this all morning.<</speech>>
<<speech "producer" "Producer">>She’s ready. Let her set the pace.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/c2.webm" type="video/webm"></video>
</div>
She works him with steady, practiced focus until he finishes on her tongue. She holds it there and smiles for the camera.
<<speech "cory" "Cory Chase">>Mmm… there it is.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/c3.webm" type="video/webm"></video>
</div>
She shows the load clearly, swallows, then starts stripping right there on her knees, still looking at the camera.
<<speech "cory" "Cory Chase">>Now I can really enjoy the next ones.<</speech>>
<<speech "producer" "Producer">>That’s the look we wanted.<</speech>>
$playerName’s cock pushes through.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/c4.webm" type="video/webm"></video>
</div>
Cory leans in and teases the head against her nipples, talking softly to it (and to him) with a warm smile.
<<speech "cory" "Cory Chase">>Look at you… already so hard for me. You’re going to feel so good in my mouth.<</speech>>
<<speech "you">>Then stop teasing.<</speech>>
<<speech "cory" "Cory Chase">>I like teasing. Especially when they’re this thick.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/c5.webm" type="video/webm"></video>
</div>
She starts properly — licking his balls, then taking the shaft into her mouth, slow at first, then deeper.
<<speech "cory" "Cory Chase">>You taste clean… and heavy. I like that.<</speech>>
<<speech "you">>Keep going.<</speech>>
<<speech "cory" "Cory Chase">>I wasn’t planning on stopping.<</speech>>
/* ——— FOCUS MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/c6.webm" type="video/webm"></video>
</div>
She picks up the pace, sucking him hard and relentlessly. The head keeps hitting the back of her throat with every stroke.
<<speech "cory" "Cory Chase">>I can take it deeper… don’t pull away from me.<</speech>>
<<speech "you">>I’m not going anywhere.<</speech>>
<<speech "cory" "Cory Chase">>Good. Stay right there.<</speech>>
<<speech "producer" "Producer">>She’s locked in. Stay with her.<</speech>>
<<mgButtons "focus" 2 "career/secret/BWC/c6.webm" 1>>
<<elseif $phase == 1>>
/* ===================== AFTER FOCUS ===================== */
<<set $focusScore to $mg_Score>>
<<if $focusScore >= 65>>
<<speech "cory" "Cory Chase">>Still so hard… most men would have finished by now. I like that.<</speech>>
<<else>>
<<speech "cory" "Cory Chase">>Getting close already? I’m not done with you yet. Hold on for me.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/c7.webm" type="video/webm"></video>
</div>
She commits fully — continuous deepthroat, almost no breaks, just long wet strokes that take him to the root every time.
<<speech "cory" "Cory Chase">>Mmmph— all the way… every time.<</speech>>
<<speech "you">>Your throat feels incredible.<</speech>>
<<speech "cory" "Cory Chase">>Then use it. I want you to.<</speech>>
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/c8.webm" type="video/webm"></video>
</div>
She pulls back just enough to stroke him against her tongue while still keeping the head in her mouth, smiling up at the hole. She’s clearly ready to finish him.
<<speech "cory" "Cory Chase">>You’re close… I can feel it. Give it to me. Right on my tongue.<</speech>>
<<speech "you">>Keep stroking.<</speech>>
<<speech "cory" "Cory Chase">>I am. Come on… shoot it. I want every drop.<</speech>>
<<speech "producer" "Producer">>She’s asking for it. This is the money shot.<</speech>>
<<mgButtons "technique" 3 "career/secret/BWC/c8.webm" 2>>
<<elseif $phase == 2>>
/* ===================== AFTER STAMINA ===================== */
<<set $lastScore to $mg_Score>>
<<if $lastScore >= 65>>
/* SUCCESS */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/c9.webm" type="video/webm"></video>
</div>
$playerName finally lets go. Huge ropes shoot onto her tongue while she keeps stroking him, smiling and softly begging for more.
<<speech "cory" "Cory Chase">>Yes— that’s it… more. Don’t stop. I want all of it.<</speech>>
<<speech "you">>Take every drop.<</speech>>
<<speech "cory" "Cory Chase">>I am… fuck, there’s so much.<</speech>>
<<else>>
/* FAILURE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/c9.webm" type="video/webm"></video>
</div>
$playerName finishes a little earlier than she wanted. She still catches the load on her tongue and keeps stroking, but the smile is more amused than fully satisfied.
<<speech "cory" "Cory Chase">>Already? Okay… I’ve got you. Keep giving it to me.<</speech>>
<<speech "you">>Shit—<</speech>>
<<speech "cory" "Cory Chase">>It’s still a lot. I’ll take it.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/c10.webm" type="video/webm"></video>
</div>
She turns to the camera, opens her mouth, and plays with the thick load on her tongue. She gives his cock one last slow suck to clean him, then swallows everything with a soft smile.
<<speech "cory" "Cory Chase">>Mmm… perfect. Thick and warm.<</speech>>
<<speech "producer" "Producer">>Show it off a little more. Beautiful.<</speech>>
<<speech "you">>You look good with it.<</speech>>
<<speech "cory" "Cory Chase">>I know.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/c11.webm" type="video/webm"></video>
</div>
Exit interview. Cory is completely naked now, sitting back slightly and playing with her tits while she talks, still smiling.
<<speech "producer" "Producer">>How was that for you?<</speech>>
<<if $lastScore >= 65>>
<<speech "cory" "Cory Chase">>That last one was exactly what I needed. Held out while I worked him as hard as I could and then gave me a huge load right on the tongue. I’m still turned on just thinking about it.<</speech>>
<<speech "you">>You’re dripping.<</speech>>
<<speech "cory" "Cory Chase">>Your fault. Come back and do it again.<</speech>>
<<else>>
<<speech "cory" "Cory Chase">>Still a fantastic cock… just finished a little sooner than I hoped. The size and the way he filled my throat were perfect. Next time I want him to last longer so I can really enjoy it.<</speech>>
<<speech "you">>I’ll do better.<</speech>>
<<speech "cory" "Cory Chase">>You’d better. A cock like that deserves to be used properly.<</speech>>
<</if>>
<<speech "producer" "Producer">>That’s a wrap. Great set.<</speech>>
<<silently>>
<<set $sceneCompleted["ghx_cory"] to true>>
<<set $secretsSameDayLock to true>>
<<set $studioSameDayLock to true>>
<<if ($secretsIndex || 0) <= 2>><<set $secretsIndex to 3>><</if>>
<<set $actionsLeft -= 1>> <<set $expGloryhole += 1>> <<set $actressRelation["cory_chase"] to ($actressRelation["cory_chase"] || 0) + ($lastScore >= 65 ? 12 : 6)>> <<set $overallStudioRep += ($lastScore >= 65 ? 7 : 3)>> <<set $studioRelation["joy_media"] += ($lastScore >= 65 ? 7 : 3)>> <<set $money += ($lastScore >= 65 ? 120 : 70)>> <<applyWorkLoad "studio" "neutral">> <<unset $phase>> <<set $mg_Returning to false>> <<set $mg_UsePhase to false>>
<</silently>>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Gloryhole Secrets"]]
<<else>>
[[Back to Gloryhole Secrets|Gloryhole Secrets]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Violet Myers – Gloryhole Secrets</div>
<<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $sceneId to "ghx_violet">>
<</if>>
<<if $phase == 0>>
/* ===================== INTRO ===================== */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/d1.webm" type="video/webm"></video>
</div>
Violet is sitting on a chair in the booth for the opening interview, already smiling and clearly excited.
<<speech "producer" "Producer">>Tell the camera how you’re feeling.<</speech>>
<<speech "violet" "Violet Myers">>I’m so ready. I’ve been thinking about this all week. I just want to get on my knees and get messy.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/d2.webm" type="video/webm"></video>
</div>
She pulls her tits out while still sitting. Two Hands poke through the holes and start playing with them as she continues talking, laughing softly.
<<speech "violet" "Violet Myers">>They’re already touching me… fuck, that feels good.<</speech>>
<<speech "producer" "Producer">>Stay right there. Let them play.<</speech>>
<<speech "violet" "Violet Myers">>I could sit here all day like this.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/d3.webm" type="video/webm"></video>
</div>
She finally drops to her knees and takes the first cock properly, working it with focused, wet strokes.
<<speech "violet" "Violet Myers">>Mmm… first one. Let’s see what you’ve got.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/d4.webm" type="video/webm"></video>
</div>
He finishes with a huge load that spills out of her mouth and onto her chest. She doesn’t even flinch.
<<speech "violet" "Violet Myers">>Holy shit… that’s a lot.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/d5.webm" type="video/webm"></video>
</div>
She calmly licks the cum off her breast and swallows everything with a bright smile.
<<speech "violet" "Violet Myers">>I wasn’t going to waste that.<</speech>>
<<speech "producer" "Producer">>Perfect. Next.<</speech>>
$playerName’s cock pushes through, already fully hard.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/d6.webm" type="video/webm"></video>
</div>
Violet immediately wraps her hand around him and starts stroking while looking at the camera.
<<speech "violet" "Violet Myers">>Oh my god… look at this one. He’s so hard already. And thick.<</speech>>
<<speech "you">>You like it?<</speech>>
<<speech "violet" "Violet Myers">>I’m going to make a mess with this cock.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/d7.webm" type="video/webm"></video>
</div>
She starts soft and wet, coating him in saliva, sucking gently at first while she gets used to the size.
<<speech "violet" "Violet Myers">>You feel so good in my mouth… I’m going to take my time.<</speech>>
<<speech "you">>Don’t take too long.<</speech>>
<<speech "violet" "Violet Myers">>You’ll get what you need. Eventually.<</speech>>
/* ——— FOCUS MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/d8.webm" type="video/webm"></video>
</div>
She starts pushing him deeper, slowly at first, gagging a little as she forces more of him into her throat, then begins fucking her own throat with his cock.
<<speech "violet" "Violet Myers">>Mmmph— fuck… it’s so deep.<</speech>>
<<speech "you">>Take more.<</speech>>
<<speech "violet" "Violet Myers">>I am… just give me a second—<</speech>>
<<speech "producer" "Producer">>She’s committing. Stay with her.<</speech>>
<<mgButtons "focus" 2 "career/secret/BWC/d8.webm" 1>>
<<elseif $phase == 1>>
/* ===================== AFTER FOCUS ===================== */
<<set $focusScore to $mg_Score>>
<<if $focusScore >= 65>>
<<speech "violet" "Violet Myers">>You’re still rock hard… most guys would have finished already. I love that.<</speech>>
<<else>>
<<speech "violet" "Violet Myers">>Getting close? I’m not done making a mess of you yet.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/d9.webm" type="video/webm"></video>
</div>
She picks up the pace. His cock makes her drool heavily — spit running down her chin, onto her tits, and all over his shaft. She pulls off to lick his balls, then goes right back.
<<speech "violet" "Violet Myers">>Look how sloppy you made me… I can barely talk.<</speech>>
<<speech "you">>Then stop talking and suck.<</speech>>
<<speech "violet" "Violet Myers">>Gladly.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/d10.webm" type="video/webm"></video>
</div>
The blowjob turns completely filthy. Saliva is everywhere — her body, his cock, the wall. She’s fully committed to the mess.
<<speech "violet" "Violet Myers">>I love when it gets like this… so fucking wet.<</speech>>
<<speech "producer" "Producer">>This is exactly what we wanted. Keep going.<</speech>>
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/d11.webm" type="video/webm"></video>
</div>
She starts using both hands while still deepthroating, clearly trying to finish him now.
<<speech "violet" "Violet Myers">>I want it… come on. Give me that load. Right on my tongue.<</speech>>
<<speech "you">>Make me cum.<</speech>>
<<speech "violet" "Violet Myers">>I am. Don’t hold back on me.<</speech>>
<<mgButtons "stamina" 3 "career/secret/BWC/d11.webm" 2>>
<<elseif $phase == 2>>
/* ===================== AFTER STAMINA ===================== */
<<set $lastScore to $mg_Score>>
<<if $lastScore >= 65>>
/* SUCCESS */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/d12.webm" type="video/webm"></video>
</div>
$playerName finally breaks. He shoots onto her tongue and into her mouth while she keeps stroking. She immediately turns to show the camera the heavy load sitting on her tongue.
<<speech "violet" "Violet Myers">>Yes— fuck, look at that… so much.<</speech>>
<<speech "you">>Show them.<</speech>>
<<speech "violet" "Violet Myers">>I am. Every drop.<</speech>>
<<else>>
/* FAILURE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/d12.webm" type="video/webm"></video>
</div>
$playerName finishes earlier than she wanted. She still catches most of it on her tongue and shows the camera, but she looks a little disappointed she didn’t get to play longer.
<<speech "violet" "Violet Myers">>Already? Okay… I’ve got you.<</speech>>
<<speech "you">>Shit—<</speech>>
<<speech "violet" "Violet Myers">>It’s still a lot. I’ll take it.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/d13.webm" type="video/webm"></video>
</div>
She swallows, but doesn’t let go of his cock. She keeps stroking and leans in to kiss and lick it clean, clearly not ready to move on.
<<speech "violet" "Violet Myers">>I really like this one… I don’t want to let go yet.<</speech>>
<<speech "you">>You’re addicted already.<</speech>>
<<speech "violet" "Violet Myers">>Maybe a little.<</speech>>
<<speech "producer" "Producer">>She can linger for a second. Then next cock.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/d14.webm" type="video/webm"></video>
</div>
Exit interview. Violet is too worked up to sit still — she’s already using a vibrator while she talks, legs open, clearly chasing an orgasm.
<<speech "producer" "Producer">>You couldn’t wait until we stopped rolling?<</speech>>
<<if $lastScore >= 65>>
<<speech "violet" "Violet Myers">>No. That thick one held out and then gave me everything. I’m so fucking turned on I can’t help it. I need to cum.<</speech>>
<<else>>
<<speech "violet" "Violet Myers">>Still a really good cock… just finished a little sooner than I hoped. I’m still soaked though. I need this.<</speech>>
<</if>>
<<speech "producer" "Producer">>That’s a wrap whenever she’s done.<</speech>>
<<silently>>
<<set $sceneCompleted["ghx_violet"] to true>>
<<set $secretsSameDayLock to true>>
<<set $studioSameDayLock to true>>
<<if ($secretsIndex || 0) <= 3>><<set $secretsIndex to 4>><</if>>
<<set $actionsLeft -= 1>> <<set $expGloryhole += 1>> <<set $actressRelation["violet_myers"] to ($actressRelation["violet_myers"] || 0) + ($lastScore >= 65 ? 12 : 6)>> <<set $overallStudioRep += ($lastScore >= 65 ? 7 : 3)>> <<set $studioRelation["joy_media"] += ($lastScore >= 65 ? 7 : 3)>> <<set $money += ($lastScore >= 65 ? 120 : 70)>> <<applyWorkLoad "studio" "neutral">> <<unset $phase>> <<set $mg_Returning to false>> <<set $mg_UsePhase to false>>
<</silently>>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Gloryhole Secrets"]]
<<else>>
[[Back to Gloryhole Secrets|Gloryhole Secrets]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Ella Knox – Gloryhole Secrets</div>
<<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $sceneId to "ghx_ella">>
<</if>>
<<if $phase == 0>>
/* ===================== INTRO ===================== */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/e1.webm" type="video/webm"></video>
</div>
Ella is already smiling at the camera. She cups her big natural tits and shakes them slowly, clearly proud of them.
<<speech "ella" "Ella Knox">>Hi… I hope you like these. I do.<</speech>>
<<speech "producer" "Producer">>Show them off a little more. Perfect.<</speech>>
<<speech "ella" "Ella Knox">>They’re all natural. You’re going to see a lot more of them in a minute.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/e2.webm" type="video/webm"></video>
</div>
She drops to her knees, grabs the first cock, and puts it straight in her mouth.
<<speech "ella" "Ella Knox">>Mmm… first one. Let’s go.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/e3.webm" type="video/webm"></video>
</div>
He finishes with thick ropes straight into her mouth. She takes it all, smiling around him.
<<speech "ella" "Ella Knox">>Good boy… next.<</speech>>
$playerName’s cock pushes through, already fully hard.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/e4.webm" type="video/webm"></video>
</div>
Ella doesn’t hesitate. She takes him into her mouth immediately, eyes flicking up toward the hole as she starts working him.
<<speech "ella" "Ella Knox">>Oh… you’re already this hard. And thick.<</speech>>
<<speech "you">>You like it?<</speech>>
<<speech "ella" "Ella Knox">>I’m going to enjoy this one.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/e5.webm" type="video/webm"></video>
</div>
She deepthroats him while stroking the base, occasionally pulling off just to look at his cock like she’s deciding exactly how she wants to finish him.
<<speech "ella" "Ella Knox">>You go so deep so easily… I like that.<</speech>>
<<speech "producer" "Producer">>She’s studying him. This should be fun.<</speech>>
/* ——— FOCUS MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/e6.webm" type="video/webm"></video>
</div>
She settles into a steady rhythm — deepthroating him continuously while her lips stay locked around the shaft, only pausing to mouth at his balls.
<<speech "ella" "Ella Knox">>I can feel you throbbing every time I take you all the way…<</speech>>
<<speech "you">>Keep going.<</speech>>
<<speech "ella" "Ella Knox">>I wasn’t planning on stopping.<</speech>>
<<mgButtons "focus" 2 "career/secret/BWC/e6.webm" 1>>
<<elseif $phase == 1>>
/* ===================== AFTER FOCUS ===================== */
<<set $focusScore to $mg_Score>>
<<if $focusScore >= 65>>
<<speech "ella" "Ella Knox">>Still so hard… most guys would have finished by now. I like a challenge.<</speech>>
<<else>>
<<speech "ella" "Ella Knox">>Getting close already? I’m not done with you yet.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/e7.webm" type="video/webm"></video>
</div>
She starts stroking harder while still sucking, using both hand and mouth together.
<<speech "ella" "Ella Knox">>You’re getting even harder in my hand… fuck.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/e8.webm" type="video/webm"></video>
</div>
She drops lower and starts sucking on his balls hard, taking them into her mouth one at a time while her hand keeps a tight stroke on his cock.
<<speech "ella" "Ella Knox">>I love these… heavy and full.<</speech>>
<<speech "you">>They’re full for you.<</speech>>
<<speech "ella" "Ella Knox">>Then give it to me when you’re ready.<</speech>>
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/e9.webm" type="video/webm"></video>
</div>
She worships his balls with her tongue a little longer, then makes her way back up the shaft as she feels him getting close.
<<speech "ella" "Ella Knox">>You’re close… I can tell. I want it on my tongue and my face.<</speech>>
<<speech "you">>Then open up.<</speech>>
<<speech "ella" "Ella Knox">>I’m ready. Give it to me.<</speech>>
<<speech "producer" "Producer">>This is the shot. Let her have it.<</speech>>
<<mgButtons "technique" 3 "career/secret/BWC/e9.webm" 2>>
<<elseif $phase == 2>>
/* ===================== AFTER STAMINA ===================== */
<<set $lastScore to $mg_Score>>
<<if $lastScore >= 65>>
/* SUCCESS */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/e10.webm" type="video/webm"></video>
</div>
$playerName holds out, then unloads a huge load onto her tongue and across her face while she keeps stroking him with a bright smile.
<<speech "ella" "Ella Knox">>Yes— fuck, there’s so much… keep going.<</speech>>
<<speech "you">>Take all of it.<</speech>>
<<speech "ella" "Ella Knox">>I am… look at me.<</speech>>
<<else>>
/* FAILURE */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/e10.webm" type="video/webm"></video>
</div>
$playerName finishes a little earlier than she wanted. He still covers her tongue and face, and she keeps stroking with a smile, but the build-up was shorter.
<<speech "ella" "Ella Knox">>Already? Okay… I’ve got you. Keep giving it to me.<</speech>>
<<speech "you">>Shit—<</speech>>
<<speech "ella" "Ella Knox">>It’s still a lot. I look good like this.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/e11.webm" type="video/webm"></video>
</div>
She turns fully to the camera, face and mouth covered, and shows everything with a proud smile before swallowing what’s left on her tongue.
<<speech "ella" "Ella Knox">>Look at the mess you made… I love it.<</speech>>
<<speech "producer" "Producer">>Hold that. Beautiful.<</speech>>
/* ——— SECOND ROUND ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/e12.webm" type="video/webm"></video>
</div>
After a while $playerName’s cock appears again. Ella doesn’t even hesitate — she immediately starts sucking him back to full hardness.
<<speech "ella" "Ella Knox">>You’re back… good. I’m not done with this cock.<</speech>>
<<speech "you">>Missed me already?<</speech>>
<<speech "ella" "Ella Knox">>I missed the way you taste.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/e13.webm" type="video/webm"></video>
</div>
She works him with mouth and hands, clearly remembering his rhythm from earlier, pushing him toward another finish.
<<speech "ella" "Ella Knox">>I know how you like it now… you’re getting close again, aren’t you?<</speech>>
<<speech "you">>Keep going.<</speech>>
<<speech "ella" "Ella Knox">>This time I want it on my tits.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/e14.webm" type="video/webm"></video>
</div>
She leans back, pushes her big tits together, and strokes him until he finishes hard across them, covering both completely.
<<if $lastScore >= 65>>
<<speech "ella" "Ella Knox">>Yes— cover them… fuck, that’s so much. Look at me.<</speech>>
<<speech "you">>You look perfect like that.<</speech>>
<<speech "ella" "Ella Knox">>I know. I love when a cock does this to me.<</speech>>
<<else>>
<<speech "ella" "Ella Knox">>Mmm… still a good load. Cover them for me.<</speech>>
<<speech "you">>Done.<</speech>>
<<speech "ella" "Ella Knox">>I still look good covered in you.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/e15.webm" type="video/webm"></video>
</div>
She stays close, licking the cum off her own chest while his cock rests against her face, smiling the whole time.
<<speech "ella" "Ella Knox">>I don’t want to waste any of it… you taste so good.<</speech>>
<<speech "producer" "Producer">>That’s a wrap. She can clean up on camera.<</speech>>
<<speech "you">>You’re filthy.<</speech>>
<<speech "ella" "Ella Knox">>And you love it.<</speech>>
<<silently>>
<<set $sceneCompleted["ghx_ella"] to true>>
<<set $secretsSameDayLock to true>>
<<set $studioSameDayLock to true>>
<<if ($secretsIndex || 0) <= 4>><<set $secretsIndex to 5>><</if>>
<<set $actionsLeft -= 1>> <<set $expGloryhole += 1>> <<set $actressRelation["ella_knox"] to ($actressRelation["ella_knox"] || 0) + ($lastScore >= 65 ? 12 : 6)>> <<set $overallStudioRep += ($lastScore >= 65 ? 7 : 3)>> <<set $studioRelation["joy_media"] += ($lastScore >= 65 ? 7 : 3)>> <<set $money += ($lastScore >= 65 ? 130 : 75)>> <<applyWorkLoad "studio" "neutral">> <<unset $phase>> <<set $mg_Returning to false>> <<set $mg_UsePhase to false>>
<</silently>>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Gloryhole Secrets"]]
<<else>>
[[Back to Gloryhole Secrets|Gloryhole Secrets]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Nia Nacci – Gloryhole Secrets</div>
<<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $sceneId to "ghx_nia">>
<</if>>
<<if $phase == 0>>
/* ===================== INTRO ===================== */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/f1.webm" type="video/webm"></video>
</div>
Nia pulls her shirt and bra up, showing off her tits to the camera with a confident smile.
<<speech "nia" "Nia Nacci">>You like these? Good. You’re going to see a lot more.<</speech>>
<<speech "producer" "Producer">>She’s in a mood today. Let her cook.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/f2.webm" type="video/webm"></video>
</div>
She strips completely, then turns and spreads her pussy and ass for the camera, holding the pose.
<<speech "nia" "Nia Nacci">>I’m ready. Send them through.<</speech>>
<<speech "producer" "Producer">>First ones are coming.<</speech>>
After a few cocks, $playerName’s turn arrives. His fully hard cock pushes through the hole.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/f3.webm" type="video/webm"></video>
</div>
Nia’s eyes light up. She immediately starts teasing him — wrapping her tits around the shaft, stroking, and leaning in to suck the head.
<<speech "nia" "Nia Nacci">>Oh hell yes… look at this big white cock. You’re already throbbing.<</speech>>
<<speech "you">>You like what you see?<</speech>>
<<speech "nia" "Nia Nacci">>I’m about to make a mess with it.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/f4.webm" type="video/webm"></video>
</div>
She tries to deepthroat him, then pulls off, spit connecting her lips to his cock, and keeps stroking while staring at it.
<<speech "nia" "Nia Nacci">>Fuck… you’re thick. I can barely get past the head without gagging.<</speech>>
<<speech "you">>Take more.<</speech>>
<<speech "nia" "Nia Nacci">>I will. Just give me a second to adjust to this thing.<</speech>>
/* ——— FOCUS MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/f5.webm" type="video/webm"></video>
</div>
She squeezes his cock tightly between her tits and starts bouncing them, clearly wanting to play more than rush to the finish.
<<speech "nia" "Nia Nacci">>I just want to feel this big white dick between my tits for a while… look at how it disappears.<</speech>>
<<speech "you">>You’re obsessed already.<</speech>>
<<speech "nia" "Nia Nacci">>Can you blame me? Stay hard for me.<</speech>>
<<speech "producer" "Producer">>She’s having fun. Let her play.<</speech>>
<<mgButtons "focus" 2 "career/secret/BWC/f5.webm" 1>>
<<elseif $phase == 1>>
/* ===================== AFTER FOCUS ===================== */
<<set $focusScore to $mg_Score>>
<<if $focusScore >= 65>>
<<speech "nia" "Nia Nacci">>Still rock hard after all that… good. Most white boys would have finished on my tits already.<</speech>>
<<else>>
<<speech "nia" "Nia Nacci">>Getting close already? I’m not done playing with this cock yet.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/f6.webm" type="video/webm"></video>
</div>
She tries to deepthroat him again, then pulls back and starts stroking hard while looking up, tongue out.
<<speech "nia" "Nia Nacci">>Come on… I want that superior white cum on my tongue. Give it to me.<</speech>>
<<speech "you">>Keep begging.<</speech>>
<<speech "nia" "Nia Nacci">>Please… shoot it. I want to taste you.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/f7.webm" type="video/webm"></video>
</div>
$playerName finishes. A heavy load lands on her tongue and fills her mouth. She keeps her lips wrapped around him until every pulse is done.
<<speech "nia" "Nia Nacci">>Mmmph— fuck yes… all of it.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/f8.webm" type="video/webm"></video>
</div>
She stays close, kissing and licking his cock with her mouth still full, talking to the camera around it.
<<speech "nia" "Nia Nacci">>This white cock just filled my mouth… and I’m not even mad about it. Look how much he gave me.<</speech>>
<<speech "producer" "Producer">>Show the camera.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/f9.webm" type="video/webm"></video>
</div>
She opens wide, plays with the thick load on her tongue for the camera, then swallows with a satisfied smile.
<<speech "nia" "Nia Nacci">>Perfect. Thick and warm. I want more of that later.<</speech>>
/* ——— SECOND ROUND – FUCKING ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/f10.webm" type="video/webm"></video>
</div>
Later, $playerName’s cock appears again, fully hard. The producer leans in.
<<speech "producer" "Producer">>This time I want you to fuck him. Use that pussy.<</speech>>
<<speech "nia" "Nia Nacci">>Gladly. I’ve been thinking about this dick inside me since the first load.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/f11.webm" type="video/webm"></video>
</div>
She backs onto the hole and takes him all the way in, then starts moving, fucking herself on his cock.
<<speech "nia" "Nia Nacci">>Fuck— you’re stretching me… this big white cock feels so good.<</speech>>
<<speech "you">>Take every inch.<</speech>>
<<speech "nia" "Nia Nacci">>I am. Don’t you dare pull out.<</speech>>
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/f12.webm" type="video/webm"></video>
</div>
He keeps fucking her. Her pussy gets visibly creamier around his cock while she reaches down to play with her clit.
<<speech "nia" "Nia Nacci">>Look how creamy you’re making me… keep going. I love this shit.<</speech>>
<<speech "you">>You’re soaking me.<</speech>>
<<speech "nia" "Nia Nacci">>Because this white dick is hitting everything.<</speech>>
<<mgButtons "stamina" 3 "career/secret/BWC/f12.webm" 2>>
<<elseif $phase == 2>>
/* ===================== AFTER STAMINA ===================== */
<<set $lastScore to $mg_Score>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/f13.webm" type="video/webm"></video>
</div>
She keeps playing with her pussy while he fucks her, openly enjoying every thrust.
<<speech "nia" "Nia Nacci">>Don’t stop… I’m getting close just from your cock alone.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/f14.webm" type="video/webm"></video>
</div>
She spreads herself open for the camera while still taking him, showing how wet and stretched she is.
<<speech "nia" "Nia Nacci">>Look at that… your big white cock is wrecking this black pussy and I don’t want you to stop.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/f15.webm" type="video/webm"></video>
</div>
She pulls off, drops to her knees, and starts stroking him hard with her tongue out, begging.
<<if $lastScore >= 65>>
<<speech "nia" "Nia Nacci">>Come on… give me that superior white cum again. On my tongue. I earned it.<</speech>>
<<speech "you">>Open up.<</speech>>
<<speech "nia" "Nia Nacci">>I’m ready. Feed me.<</speech>>
<<else>>
<<speech "nia" "Nia Nacci">>You’re close… I can feel it. Give me that white cum on my tongue.<</speech>>
<<speech "you">>Almost—<</speech>>
<<speech "nia" "Nia Nacci">>Don’t hold back. I want it.<</speech>>
<</if>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/f16.webm" type="video/webm"></video>
</div>
$playerName finishes on her tongue a second time. She catches as much as she can, smiling the whole time.
<<speech "nia" "Nia Nacci">>Mmm— yes… another load. You’re fucking amazing.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/secret/BWC/f17.webm" type="video/webm"></video>
</div>
She shows the camera the fresh load sitting on her tongue, then swallows it cleanly with a bright smile.
<<if $lastScore >= 65>>
<<speech "nia" "Nia Nacci">>Two loads from the same big white cock and I’m still not tired of it. You’re the kind of guy Dogfart would love. I know people over there… if you keep performing like this, I can introduce you.<</speech>>
<<speech "you">>You’re serious?<</speech>>
<<speech "nia" "Nia Nacci">>Dead serious. They pay well for thick white boys who can last and deliver. You’ve got both.<</speech>>
<<set $niaDogfartHook to true>>
<<else>>
<<speech "nia" "Nia Nacci">>Still two good loads… even if you finished a little sooner than I wanted the second time. Size is perfect. Keep working on that stamina and I might introduce you to some people at Dogfart.<</speech>>
<</if>>
<<speech "producer" "Producer">>That’s a wrap. Strong set.<</speech>>
<<silently>>
<<set $sceneCompleted["ghx_nia"] to true>>
<<set $secretsSameDayLock to true>>
<<set $studioSameDayLock to true>>
<<if ($secretsIndex || 0) <= 5>><<set $secretsIndex to 6>><</if>>
<<set $actionsLeft -= 1>> <<set $expGloryhole += 1>> <<set $actressRelation["nia_nacci"] to ($actressRelation["nia_nacci"] || 0) + ($lastScore >= 65 ? 14 : 7)>> <<set $overallStudioRep += ($lastScore >= 65 ? 8 : 4)>> <<set $studioRelation["joy_media"] += ($lastScore >= 65 ? 8 : 4)>> <<set $money += ($lastScore >= 65 ? 140 : 80)>> <<applyWorkLoad "studio" "neutral">> <<unset $phase>> <<set $mg_Returning to false>> <<set $mg_UsePhase to false>>
<<if $lastScore >= 65>>
<</if>>
<</silently>>
<div style="color:#00e676;">Nia offered to introduce you to people at Dogfart Studios…</div>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Gloryhole Secrets"]]
<<else>>
[[Back to Gloryhole Secrets|Gloryhole Secrets]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Japanese Milf – Escort</div>
<<if not $mg_Returning and ndef $phase>>
<<set $sceneId to "esc_japanese">>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/a1.webm" type="video/webm"></video>
</div>
She’s already waiting in the hotel room when $playerName arrives. The moment the door closes she pulls him in and they start kissing passionately, no small talk.
<<speech "milf" "Japanese Milf">>I don’t have a lot of time… and I don’t want to waste any of it talking.<</speech>>
<<speech "you">>Then we won’t.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/a2.webm" type="video/webm"></video>
</div>
He pulls her top off and starts sucking on her breasts. She arches into his mouth, fingers in his hair.
<<speech "milf" "Japanese Milf">>It’s been so long since anyone touched me like this… my husband doesn’t even look at me anymore.<</speech>>
<<speech "you">>His loss.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/a3.webm" type="video/webm"></video>
</div>
He lays her back and starts licking her pussy while still fondling her tits. She’s already wet and breathing hard.
<<speech "milf" "Japanese Milf">>Oh god… yes, just like that. Don’t stop.<</speech>>
<<speech "you">>You’re soaked.<</speech>>
<<speech "milf" "Japanese Milf">>I’ve been thinking about this all day… I need to be fucked properly before I go back.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/a4.webm" type="video/webm"></video>
</div>
He pushes into her in missionary. The moment he bottoms out her eyes go wide and she starts moaning loudly.
<<speech "milf" "Japanese Milf">>Fuck— it’s so big… I’ve never taken anything like this. My husband is nothing compared to you.<</speech>>
<<speech "you">>Then take it.<</speech>>
<<speech "milf" "Japanese Milf">>I am… don’t be gentle. I want to feel this for days.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/a5.webm" type="video/webm"></video>
</div>
He stays on top of her, legs spread wide, driving deep. She grabs his ass and pulls him in harder with every thrust.
<<speech "milf" "Japanese Milf">>Yes… dig into me. I can feel you so deep—<</speech>>
<<speech "you">>You’re gripping me so tight.<</speech>>
<<speech "milf" "Japanese Milf">>Because you’re stretching me open. Don’t stop.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/a6.webm" type="video/webm"></video>
</div>
He flips her into doggy, grabs the back of her neck, and starts pushing her back onto his cock. She’s moaning with a clear smile on her face.
<<speech "milf" "Japanese Milf">>Harder… use me. I want to feel owned.<</speech>>
<<speech "you">>Then take every thrust.<</speech>>
<<speech "milf" "Japanese Milf">>I will. Keep going— I needed this so badly.<</speech>>
<<mgButtons "focus" 2 "career/escort/BWC/a4.webm" 1>>
<<elseif $phase == 1>>
<<set $mg_Score1 to $mg_Score>>
<<unset $phase>>
<<speech "producer" "Producer">>Stay with the camera. Next beat — don't lose the heat.<</speech>>
<<mgButtons "technique" 2 "career/escort/BWC/a6.webm">>
<<else>>
<<set $lastScore to Math.round((($mg_Score1 || $mg_Score) + $mg_Score) / 2)>>
<<unset $mg_Score1>>
<<set $mg_Returning to false>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/a7.webm" type="video/webm"></video>
</div>
She climbs on top and starts riding him. He meets her with relentless speed and intensity, hands on her hips.
<<speech "milf" "Japanese Milf">>You’re not holding back at all… fuck, I love it.<</speech>>
<<speech "you">>You asked to be fucked properly.<</speech>>
<<speech "milf" "Japanese Milf">>And you are. Don’t stop.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/a8.webm" type="video/webm"></video>
</div>
She suddenly pulls off and drops down to take him into her throat, trying to deepthroat the entire length.
<<speech "milf" "Japanese Milf">>I want to taste you too… let me take it all the way.<</speech>>
<<speech "you">>Open up then.<</speech>>
<<speech "milf" "Japanese Milf">>Mmmph— trying…<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/a9.webm" type="video/webm"></video>
</div>
They go back to missionary, kissing deeply while he keeps fucking her. She’s completely lost in it, smiling against his mouth as he gets close.
<<speech "milf" "Japanese Milf">>I’m so full… I don’t want this to end yet.<</speech>>
<<speech "you">>I’m getting close.<</speech>>
<<speech "milf" "Japanese Milf">>Then cover my face. I want to feel it. Then keep fucking me.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/a10.webm" type="video/webm"></video>
</div>
He pulls out and strokes himself, covering her face with thick ropes. She keeps her eyes open and smiling the whole time. The moment he finishes she pulls him back inside and they keep going.
<<speech "milf" "Japanese Milf">>Yes… look at me. Cover me. Then put it back in— I still need more.<</speech>>
<<speech "you">>You’re insatiable.<</speech>>
<<speech "milf" "Japanese Milf">>I have to go back to a sexless marriage after this. Let me be greedy while I can.<</speech>>
<<silently>>
<<set $sceneCompleted["esc_japanese"] to true>>
<<set $escortSameDayLock to true>>
<<if ($escortIndex || 0) <= 0>><<set $escortIndex to 1>><</if>>
<<if $escortIndex >= 6>><<set $escortStoryDone to true>><</if>>
<<set $actionsLeft -= 1>>
<<set $expEscort += 1>>
<<set $escortJobs += 1>>
<<if $lastScore >= 65>>
<<set $money += 145>>
<<set $escortRep += 8>>
<<set $actressRelation["japanese_milf"] to ($actressRelation["japanese_milf"] || 0) + 6>>
<<else>>
<<set $money += 90>>
<<set $escortRep += 3>>
<<set $actressRelation["japanese_milf"] to ($actressRelation["japanese_milf"] || 0) + 2>>
<</if>>
<<applyWorkLoad "escort" "neutral">>
<</silently>>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Escort Agency"]]
<<else>>
[[Back to Escort Agency|Escort Agency]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Cute Pregnant Girl – Escort</div>
<<if not $mg_Returning and ndef $phase>>
<<set $sceneId to "esc_pregnant">>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/b1.webm" type="video/webm"></video>
</div>
$playerName is already lying on the bed when she comes in. She doesn’t waste time — she pulls his shorts down and immediately starts licking and sucking his cock.
<<speech "pregnant" "Pregnant Woman">>I’ve been thinking about this all week… my husband won’t touch me while I’m like this.<</speech>>
<<speech "you">>His loss.<</speech>>
<<speech "pregnant" "Pregnant Woman">>I just need someone to take care of me. I’m so fucking horny all the time now.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/b2.webm" type="video/webm"></video>
</div>
His cock starts growing under her tongue and lips. She looks genuinely impressed as it hardens fully in her mouth.
<<speech "pregnant" "Pregnant Woman">>Oh my god… it’s getting so big. I’ve never seen one like this.<</speech>>
<<speech "you">>Keep going.<</speech>>
<<speech "pregnant" "Pregnant Woman">>I don’t want to stop… it feels so heavy on my tongue.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/b3.webm" type="video/webm"></video>
</div>
He pulls her top off while she keeps sucking, not wanting to leave his cock for even a second.
<<speech "pregnant" "Pregnant Woman">>Don’t make me stop… I just want to stay close to it.<</speech>>
<<speech "you">>You’re already addicted.<</speech>>
<<speech "pregnant" "Pregnant Woman">>I think I am. This is nothing like my husband.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/b4.webm" type="video/webm"></video>
</div>
She gets on all fours, presenting herself. He pulls her shorts down, lines up, and presses the head against her entrance.
<<speech "pregnant" "Pregnant Woman">>Please… put it in. I’ve been aching for this.<</speech>>
<<speech "you">>You’re already dripping.<</speech>>
<<speech "pregnant" "Pregnant Woman">>I told you… pregnancy makes me like this. Just fuck me.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/b5.webm" type="video/webm"></video>
</div>
He pushes inside. The moment he fills her she lets out a long, broken moan, face dropping toward the mattress.
<<speech "pregnant" "Pregnant Woman">>Fuck— it’s so deep… I’ve never been stretched like this. I think I’m in love with this cock already.<</speech>>
<<speech "you">>Then take it.<</speech>>
<<speech "pregnant" "Pregnant Woman">>I am… don’t stop. Please don’t stop.<</speech>>
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/b6.webm" type="video/webm"></video>
</div>
He keeps a steady, continuous rhythm, not giving her any break. She’s moaning into the sheets, completely lost in it.
<<speech "pregnant" "Pregnant Woman">>You’re not stopping… god, I needed this so badly.<</speech>>
<<speech "you">>I’m going to keep fucking you until you can’t think.<</speech>>
<<speech "pregnant" "Pregnant Woman">>Yes… do it. Ruin me for my husband.<</speech>>
<<mgButtons "stamina" 2 "career/escort/BWC/b4.webm" 1>>
<<elseif $phase == 1>>
<<set $mg_Score1 to $mg_Score>>
<<unset $phase>>
<<speech "producer" "Producer">>Stay with the camera. Next beat — don't lose the heat.<</speech>>
<<mgButtons "focus" 2 "career/escort/BWC/b6.webm">>
<<else>>
<<set $lastScore to Math.round((($mg_Score1 || $mg_Score) + $mg_Score) / 2)>>
<<unset $mg_Score1>>
<<set $mg_Returning to false>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/b7.webm" type="video/webm"></video>
</div>
He leans over her, completely burying his cock inside while whispering against her ear. She squeezes around him tightly.
<<speech "you">>You’re gripping me so hard… you never want me to pull out, do you?<</speech>>
<<speech "pregnant" "Pregnant Woman">>I don’t… I want this cock to stay inside me forever. I’m going to think about it every night when he’s not touching me.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/b8.webm" type="video/webm"></video>
</div>
She suddenly tightens and cums hard on his cock, burying her face into the mattress as the orgasm hits her.
<<speech "pregnant" "Pregnant Woman">>I’m cumming— fuck, I’m cumming on your cock—!<</speech>>
<<speech "you">>That’s it… cum for me.<</speech>>
<<speech "pregnant" "Pregnant Woman">>I can’t stop shaking… it’s so good—<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/b9.webm" type="video/webm"></video>
</div>
He pulls out and finishes all over her ass, painting her while she stays in position, still breathing hard.
<<speech "pregnant" "Pregnant Woman">>Yes… cover me. I want to feel it.<</speech>>
<<speech "you">>You’re going to think about this the whole way home.<</speech>>
<<speech "pregnant" "Pregnant Woman">>I already know I will. I don’t know how I’m going to look at my husband after this cock… I’m addicted.<</speech>>
<<silently>>
<<set $sceneCompleted["esc_pregnant"] to true>>
<<set $escortSameDayLock to true>>
<<if ($escortIndex || 0) <= 1>><<set $escortIndex to 2>><</if>>
<<if $escortIndex >= 6>><<set $escortStoryDone to true>><</if>>
<<set $actionsLeft -= 1>>
<<set $expEscort += 1>>
<<set $escortJobs += 1>>
<<if $lastScore >= 65>>
<<set $money += 60>>
<<set $escortRep += 8>>
<<set $actressRelation["pregnant_woman"] to ($actressRelation["pregnant_woman"] || 0) + 6>>
<<else>>
<<set $money += 35>>
<<set $escortRep += 3>>
<<set $actressRelation["pregnant_woman"] to ($actressRelation["pregnant_woman"] || 0) + 2>>
<</if>>
<<applyWorkLoad "escort" "neutral">>
<</silently>>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Escort Agency"]]
<<else>>
[[Back to Escort Agency|Escort Agency]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Middle Eastern Milf Tourist – Escort</div>
<<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $sceneId to "esc_middleeast">>
<</if>>
<<if $phase == 0>>
/* ===================== INTRO ===================== */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/c1.webm" type="video/webm"></video>
</div>
They’re already on the bed, talking between kisses. She’s bold, laughing against his mouth.
<<speech "milf" "Middle Eastern Milf">>I saw the pictures… I came all the way here for this cock. Don’t disappoint me.<</speech>>
<<speech "you">>I don’t plan to.<</speech>>
<<speech "milf" "Middle Eastern Milf">>Good. I’m a party girl back home. I know what I like.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/c2.webm" type="video/webm"></video>
</div>
He starts licking and sucking her breasts like he’s starving. She holds his head there, clearly enjoying it.
<<speech "milf" "Middle Eastern Milf">>Yes… just like that. You’re hungry for them, aren’t you?<</speech>>
<<speech "you">>They’re perfect.<</speech>>
<<speech "milf" "Middle Eastern Milf">>Then don’t stop.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/c3.webm" type="video/webm"></video>
</div>
He moves down and starts eating her out. She plays with her own nipples while she moans, watching him.
<<speech "milf" "Middle Eastern Milf">>Fuck… your tongue feels so good. Keep going. I want to be dripping before you put it in.<</speech>>
<<speech "you">>You’re already soaked.<</speech>>
<<speech "milf" "Middle Eastern Milf">>I know. I’ve been wet since I booked you.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/c4.webm" type="video/webm"></video>
</div>
He pushes into her in missionary and starts with strong, intense thrusts. She takes it with a wide smile.
<<speech "milf" "Middle Eastern Milf">>Yes— this is what I wanted. Hard and deep. Don’t be polite with me.<</speech>>
<<speech "you">>You can take it.<</speech>>
<<speech "milf" "Middle Eastern Milf">>I can take more than this. Show me.<</speech>>
/* ——— TECHNIQUE MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/c5.webm" type="video/webm"></video>
</div>
He tells her to hold her legs together. The angle makes him go even deeper with every hard thrust. Her eyes widen.
<<speech "you">>Keep your legs closed. Feel how deep I am.<</speech>>
<<speech "milf" "Middle Eastern Milf">>Oh my god— it’s hitting everything… I can’t believe how deep you are.<</speech>>
<<speech "you">>Stay just like that.<</speech>>
<<speech "milf" "Middle Eastern Milf">>I’m trying… fuck, it’s so much.<</speech>>
<<mgButtons "technique" 2 "career/escort/BWC/c5.webm" 1>>
<<elseif $phase == 1>>
/* ===================== AFTER TECHNIQUE ===================== */
<<set $techScore to $mg_Score>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/c6.webm" type="video/webm"></video>
</div>
He flips her into doggy and starts fucking her with high intensity and pace. She’s already moaning loudly.
<<speech "milf" "Middle Eastern Milf">>Harder… I can take it. I’ve been fucked a lot, but not like this.<</speech>>
<<speech "you">>Then take every thrust.<</speech>>
<<speech "milf" "Middle Eastern Milf">>I am— fuck—<</speech>>
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/c7.webm" type="video/webm"></video>
</div>
He grabs a fistful of her hair and keeps the same relentless pace. She cums hard while still being fucked in doggy.
<<speech "milf" "Middle Eastern Milf">>I’m cumming— don’t stop, don’t you dare stop—!<</speech>>
<<speech "you">>Cum on my cock.<</speech>>
<<speech "milf" "Middle Eastern Milf">>I am… fuck, I am—<</speech>>
<<mgButtons "stamina" 2 "career/escort/BWC/c7.webm" 2>>
<<elseif $phase == 2>>
/* ===================== AFTER STAMINA ===================== */
<<set $lastScore to $mg_Score>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/c8.webm" type="video/webm"></video>
</div>
She collapses onto her stomach, completely sweaty. He stays on top of her and keeps fucking her into the mattress.
<<speech "milf" "Middle Eastern Milf">>You’re still going… I’m so full. I can barely think.<</speech>>
<<speech "you">>I’m not done with you yet.<</speech>>
<<speech "milf" "Middle Eastern Milf">>Good… break me.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/c9.webm" type="video/webm"></video>
</div>
Another orgasm hits her. Her tongue hangs out and her whole body goes limp while he keeps thrusting. She’s completely broken by the continuous fucking.
<<speech "milf" "Middle Eastern Milf">>I can’t… I’m cumming again— I can’t stop—<</speech>>
<<speech "you">>Then don’t. Keep cumming.<</speech>>
<<speech "milf" "Middle Eastern Milf">>You’re going to ruin me for everyone else…<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/c10.webm" type="video/webm"></video>
</div>
He finishes deep inside her without pulling out. She feels every pulse and starts laughing softly in pure satisfaction.
<<speech "milf" "Middle Eastern Milf">>You just came inside me… I can feel it. I’m not on the pill.<</speech>>
<<speech "you">>Shit—<</speech>>
<<speech "milf" "Middle Eastern Milf">>Don’t apologize. I’m happy. I wanted to feel a real load for once.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/c11.webm" type="video/webm"></video>
</div>
He pulls out. She immediately reaches for her phone and hands it to him.
<<speech "milf" "Middle Eastern Milf">>Record my pussy. I want my friends back home to see what a real American cock did to me. I’ll take Plan B later… but first I want proof.<</speech>>
<<speech "you">>You’re serious.<</speech>>
<<speech "milf" "Middle Eastern Milf">>Dead serious. Look how used I am. They’re going to lose their minds.<</speech>>
<<silently>>
<<set $sceneCompleted["esc_middleeast"] to true>>
<<set $escortSameDayLock to true>>
<<if ($escortIndex || 0) <= 2>><<set $escortIndex to 3>><</if>>
<<if $escortIndex >= 6>><<set $escortStoryDone to true>><</if>>
<<set $actionsLeft -= 1>>
<<set $expEscort += 1>>
<<set $escortJobs += 1>>
<<unset $phase>>
<<set $mg_Returning to false>>
<<set $mg_UsePhase to false>>
<<if $lastScore >= 65>>
<<set $money += 160>>
<<set $escortRep += 10>>
<<set $actressRelation["middle_eastern_milf"] to ($actressRelation["middle_eastern_milf"] || 0) + 7>>
<<else>>
<<set $money += 45>>
<<set $escortRep += 4>>
<<set $actressRelation["middle_eastern_milf"] to ($actressRelation["middle_eastern_milf"] || 0) + 3>>
<</if>>
<<applyWorkLoad "escort" "neutral">>
<</silently>>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Escort Agency"]]
<<else>>
[[Back to Escort Agency|Escort Agency]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Fat Executive – Escort</div>
<<if not $mg_Returning and ndef $phase>>
<<set $sceneId to "esc_executive">>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/d1.webm" type="video/webm"></video>
</div>
The moment the door closes he grabs her by the neck and pulls her into a rough kiss. She melts into it immediately.
<<speech "exec" "Fat Executive">>Don’t be gentle with me. I didn’t pay you to be nice.<</speech>>
<<speech "you">>I wasn’t planning on it.<</speech>>
<<speech "exec" "Fat Executive">>Good. I want to be used.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/d2.webm" type="video/webm"></video>
</div>
He immediately forces her down onto his cock, gripping her hair and pushing her until her face is completely red and she’s gagging.
<<speech "exec" "Fat Executive">>Mmmph— yes— use my throat—<</speech>>
<<speech "you">>Take it. All of it.<</speech>>
<<speech "exec" "Fat Executive">>Harder… make me red.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/d3.webm" type="video/webm"></video>
</div>
He bends her over the bed and starts fucking her from behind. She turns her head and asks for it.
<<speech "exec" "Fat Executive">>Spit on my face. I want it. Please.<</speech>>
<<speech "you">>You really are filthy.<</speech>>
<<speech "exec" "Fat Executive">>I am. Treat me like it.<</speech>>
He spits on her face while he keeps thrusting. She moans louder.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/d4.webm" type="video/webm"></video>
</div>
He pushes her face down into the mattress, ass up, and starts spanking her hard while he fucks her.
<<speech "exec" "Fat Executive">>Yes— spank me. Harder. I need it.<</speech>>
<<speech "you">>Your ass is already red.<</speech>>
<<speech "exec" "Fat Executive">>Then make it redder. Don’t stop.<</speech>>
/* ——— TECHNIQUE MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/d5.webm" type="video/webm"></video>
</div>
He flips her onto her back and fucks her hard in missionary, one hand around her throat, kissing her roughly. Her face stays flushed and red.
<<speech "exec" "Fat Executive">>Choke me… kiss me while you do it. I want to feel owned.<</speech>>
<<speech "you">>You’re nothing but a hole for me right now.<</speech>>
<<speech "exec" "Fat Executive">>Yes— say it again. Use me.<</speech>>
<<mgButtons "stamina" 2 "career/escort/BWC/d3.webm" 1>>
<<elseif $phase == 1>>
<<set $mg_Score1 to $mg_Score>>
<<unset $phase>>
<<speech "producer" "Producer">>Stay with the camera. Next beat — don't lose the heat.<</speech>>
<<mgButtons "technique" 2 "career/escort/BWC/d5.webm">>
<<else>>
<<set $lastScore to Math.round((($mg_Score1 || $mg_Score) + $mg_Score) / 2)>>
<<unset $mg_Score1>>
<<set $mg_Returning to false>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/d6.webm" type="video/webm"></video>
</div>
She suddenly squirts hard on his cock, legs spreading wide as the orgasm hits her.
<<speech "exec" "Fat Executive">>I’m cumming— fuck, I’m squirting—!<</speech>>
<<speech "you">>Look at that mess. You love being treated like this.<</speech>>
<<speech "exec" "Fat Executive">>I do… I needed this so badly.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/d7.webm" type="video/webm"></video>
</div>
Still shaking, she immediately drops back down to suck him clean, eager to please.
<<speech "exec" "Fat Executive">>Let me taste you… I want to make you feel good too.<</speech>>
<<speech "you">>Then get to work.<</speech>>
<<speech "exec" "Fat Executive">>Yes, sir.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/d8.webm" type="video/webm"></video>
</div>
She turns around and starts bouncing on his cock. He spanks her ass hard with every drop of her hips.
<<speech "exec" "Fat Executive">>Spank me while I ride you… harder.<</speech>>
<<speech "you">>Your fat ass looks perfect turning red.<</speech>>
<<speech "exec" "Fat Executive">>It’s yours. Use it.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/d9.webm" type="video/webm"></video>
</div>
She pulls him back into missionary, legs open, looking up at him with clear need.
<<speech "exec" "Fat Executive">>Finish inside me. I want to feel you breeding me. I want your superior cum in my pussy.<</speech>>
<<speech "you">>You want to be filled?<</speech>>
<<speech "exec" "Fat Executive">>Yes. Breed me. Please.<</speech>>
He thrusts deep and finishes hard inside her.
<<speech "exec" "Fat Executive">>Yes— I can feel it… fill me up—<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/d10.webm" type="video/webm"></video>
</div>
He pulls out. A thick load immediately starts leaking out of her used pussy.
<<speech "exec" "Fat Executive">>Look at that… you filled me so much. It’s already coming out.<</speech>>
<<speech "you">>You asked to be bred.<</speech>>
<<speech "exec" "Fat Executive">>And you did it perfectly. I needed to be treated like this.<</speech>>
<<silently>>
<<set $sceneCompleted["esc_executive"] to true>>
<<set $escortSameDayLock to true>>
<<if ($escortIndex || 0) <= 3>><<set $escortIndex to 4>><</if>>
<<if $escortIndex >= 6>><<set $escortStoryDone to true>><</if>>
<<set $actionsLeft -= 1>>
<<set $expEscort += 1>>
<<set $escortJobs += 1>>
<<if $lastScore >= 65>>
<<set $money += 150>>
<<set $escortRep += 9>>
<<set $actressRelation["fat_executive"] to ($actressRelation["fat_executive"] || 0) + 6>>
<<else>>
<<set $money += 90>>
<<set $escortRep += 3>>
<<set $actressRelation["fat_executive"] to ($actressRelation["fat_executive"] || 0) + 2>>
<</if>>
<<applyWorkLoad "escort" "neutral">>
<</silently>>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Escort Agency"]]
<<else>>
[[Back to Escort Agency|Escort Agency]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Divorced Soccer Mom – Escort</div>
<<if not $mg_Returning and ndef $phase>>
<<set $sceneId to "esc_soccermom">>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/e1.webm" type="video/webm"></video>
</div>
They’re already on the bed, kissing passionately. She pulls him closer, clearly hungry for it.
<<speech "mom" "Soccer Mom">>I’ve been waiting for a young cock like yours… that’s why I left my husband. He got old. You haven’t.<</speech>>
<<speech "you">>You wanted a young stud.<</speech>>
<<speech "mom" "Soccer Mom">>I wanted someone who can actually fuck me. Call me Mommy while you do it.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/e2.webm" type="video/webm"></video>
</div>
He plays with her clit and squeezes her breasts while they keep kissing, never breaking contact for long.
<<speech "mom" "Soccer Mom">>Yes… just like that, baby. Touch Mommy everywhere.<</speech>>
<<speech "you">>You’re already so wet, Mommy.<</speech>>
<<speech "mom" "Soccer Mom">>I’ve been wet since I booked you. Don’t make me wait any longer.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/e3.webm" type="video/webm"></video>
</div>
He moves down and starts licking her while still holding onto her tits. She moans openly, fingers in his hair.
<<speech "mom" "Soccer Mom">>Good boy… eat Mommy’s pussy. Just like that.<</speech>>
<<speech "you">>You taste so good, Mommy.<</speech>>
<<speech "mom" "Soccer Mom">>Then don’t stop. Mommy needs this.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/e4.webm" type="video/webm"></video>
</div>
He pushes into her in missionary and fucks her slowly at first, kissing her the whole time. She wraps her legs around him.
<<speech "mom" "Soccer Mom">>Mmm… young cock feels so much better. Keep kissing Mommy while you fuck her.<</speech>>
<<speech "you">>You feel perfect, Mommy.<</speech>>
<<speech "mom" "Soccer Mom">>Go a little deeper… yes. Just like that.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/e5.webm" type="video/webm"></video>
</div>
He turns her into doggy but keeps the affection — kissing her cheek and neck while he thrusts.
<<speech "mom" "Soccer Mom">>That’s it… kiss Mommy while you use her. You’re such a good boy.<</speech>>
<<speech "you">>Anything for you, Mommy.<</speech>>
<<speech "mom" "Soccer Mom">>Then give Mommy what she needs.<</speech>>
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/e6.webm" type="video/webm"></video>
</div>
She suddenly asks for it harder. He pushes her face down, holds her hands behind her back, and starts fucking her with real force.
<<speech "mom" "Soccer Mom">>Yes— harder. Hold Mommy down and use her. Don’t be soft now.<</speech>>
<<speech "you">>Take it, Mommy. This is what you paid for.<</speech>>
<<speech "mom" "Soccer Mom">>It is… fuck Mommy harder. Ruin her for anyone else.<</speech>>
<<mgButtons "focus" 2 "career/escort/BWC/e4.webm" 1>>
<<elseif $phase == 1>>
<<set $mg_Score1 to $mg_Score>>
<<unset $phase>>
<<speech "producer" "Producer">>Stay with the camera. Next beat — don't lose the heat.<</speech>>
<<mgButtons "technique" 2 "career/escort/BWC/e6.webm">>
<<else>>
<<set $lastScore to Math.round((($mg_Score1 || $mg_Score) + $mg_Score) / 2)>>
<<unset $mg_Score1>>
<<set $mg_Returning to false>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/e7.webm" type="video/webm"></video>
</div>
She climbs on top and starts riding him, showing off her body while leaning down to kiss him.
<<speech "mom" "Soccer Mom">>Look at Mommy… does she look good bouncing on your young cock?<</speech>>
<<speech "you">>You look perfect, Mommy.<</speech>>
<<speech "mom" "Soccer Mom">>Then keep looking. Mommy wants you to remember this.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/e8.webm" type="video/webm"></video>
</div>
She lies flat on her stomach. He mounts her from behind and keeps a deep, steady pace while she pushes back against him.
<<speech "mom" "Soccer Mom">>Make Mommy cum again… then fill her or cover her. I want to feel you finish.<</speech>>
<<speech "you">>You’re so tight like this, Mommy.<</speech>>
<<speech "mom" "Soccer Mom">>Because this young cock is stretching me perfectly. Don’t stop.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/e9.webm" type="video/webm"></video>
</div>
He pulls out and finishes across her back, painting her while she stays in position, smiling.
<<speech "mom" "Soccer Mom">>Yes… cover Mommy. Good boy.<</speech>>
<<speech "you">>You take it so well, Mommy.<</speech>>
<<speech "mom" "Soccer Mom">>Mommy needed every drop of that young cum.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/e10.webm" type="video/webm"></video>
</div>
They stay close afterward, still kissing and staying in the role-play.
<<speech "mom" "Soccer Mom">>You’re exactly what Mommy left her husband for… young, hard, and willing to call her Mommy while you fuck her stupid.<</speech>>
<<speech "you">>Anytime you need it, Mommy.<</speech>>
<<speech "mom" "Soccer Mom">>I already know I’ll be calling you again. Mommy’s addicted now.<</speech>>
<<silently>>
<<set $sceneCompleted["esc_soccermom"] to true>>
<<set $escortSameDayLock to true>>
<<if ($escortIndex || 0) <= 4>><<set $escortIndex to 5>><</if>>
<<if $escortIndex >= 6>><<set $escortStoryDone to true>><</if>>
<<set $actionsLeft -= 1>>
<<set $expEscort += 1>>
<<set $escortJobs += 1>>
<<if $lastScore >= 65>>
<<set $money += 145>>
<<set $escortRep += 8>>
<<set $actressRelation["soccer_mom"] to ($actressRelation["soccer_mom"] || 0) + 6>>
<<else>>
<<set $money += 90>>
<<set $escortRep += 3>>
<<set $actressRelation["soccer_mom"] to ($actressRelation["soccer_mom"] || 0) + 2>>
<</if>>
<<applyWorkLoad "escort" "neutral">>
<</silently>>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Escort Agency"]]
<<else>>
[[Back to Escort Agency|Escort Agency]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Cuckold Couple – Escort</div>
<<if ndef $phase>>
<<set $phase to 0>>
<<elseif $mg_Returning is false and $phase !== 0 and $phase !== 1 and $phase !== 2 and $phase !== 3 and $phase !== 4 and $phase !== 5 and $phase !== 6>>
/* stale phase from another scene — restart */
<<set $phase to 0>>
<<set $sceneId to "esc_cuckold">>
<</if>>
<<if $phase == 0>>
/* ===================== INTRO ===================== */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/f1.webm" type="video/webm"></video>
</div>
The husband is already sitting on the couch when $playerName arrives. The wife walks straight up to him, and they start kissing deeply while the husband watches. $playerName’s hands roam over her body right in front of him.
<<speech "wife" "Wife">>Rebel said you were perfect for us… she wasn’t lying about the size.<</speech>>
<<speech "you">>She told you about me?<</speech>>
<<speech "wife" "Wife">>She told us everything. My husband wanted to see it for himself.<</speech>>
<<speech "husband" "Husband">>Just… do what you came here to do.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/f2.webm" type="video/webm"></video>
</div>
She drops to her knees and starts sucking $playerName’s cock, stroking him while looking at her husband.
<<speech "wife" "Wife">>Look at this… this is a real cock. Not like yours.<</speech>>
<<speech "you">>Tell him how it feels.<</speech>>
<<speech "wife" "Wife">>It’s so thick I can barely fit it in my mouth. You could never stretch me like this.<</speech>>
/* ——— FOCUS MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/f3.webm" type="video/webm"></video>
</div>
$playerName lays her back and starts fucking her slowly in missionary, kissing her while she gets used to the size. The husband starts stroking himself on the couch.
<<speech "wife" "Wife">>Fuck… go slow at first. You’re so much bigger than him.<</speech>>
<<speech "you">>You’ll take all of it soon enough.<</speech>>
<<speech "wife" "Wife">>I know… I want to. He needs to watch me take every inch.<</speech>>
<<mgButtons "focus" 2 "career/escort/BWC/f3.webm" 1>>
<<elseif $phase == 1>>
/* ===================== AFTER FOCUS ===================== */
<<set $focusScore to $mg_Score>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/f4.webm" type="video/webm"></video>
</div>
He turns her into doggy so she’s facing her husband. She looks straight at him while $playerName fucks her from behind.
<<speech "wife" "Wife">>Look at me while he fucks me… look how deep he is. You could never reach there.<</speech>>
<<speech "husband" "Husband">>I can see it…<</speech>>
<<speech "wife" "Wife">>Keep stroking that little thing while a real cock ruins me.<</speech>>
/* ——— TECHNIQUE MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/f5.webm" type="video/webm"></video>
</div>
She goes back to sucking $playerName, deliberately showing her ass to her husband while he keeps stroking.
<<speech "wife" "Wife">>Taste how wet you made me… he can only watch.<</speech>>
<<speech "you">>You’re dripping down your thighs.<</speech>>
<<speech "wife" "Wife">>Because this cock actually knows what it’s doing.<</speech>>
<<mgButtons "technique" 2 "career/escort/BWC/f5.webm" 2>>
<<elseif $phase == 2>>
/* ===================== AFTER TECHNIQUE ===================== */
<<set $techScore to $mg_Score>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/f6.webm" type="video/webm"></video>
</div>
Back in missionary. She’s fully adjusted now and he’s hitting her spots cleanly. She keeps looking over at her husband.
<<speech "wife" "Wife">>He’s hitting places you never have… I can feel it every single thrust.<</speech>>
<<speech "you">>Your husband is watching you fall apart.<</speech>>
<<speech "wife" "Wife">>Good. I want him to see exactly what he’s missing.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/f7.webm" type="video/webm"></video>
</div>
They shift into a side-by-side spooning position. She’s facing her husband while $playerName fucks her from behind, giving him a clear view of his wife being stretched by a much larger cock.
<<speech "wife" "Wife">>Look at his tiny cock… and look at what’s inside me right now. There’s no comparison.<</speech>>
<<speech "husband" "Husband">>I know…<</speech>>
<<speech "wife" "Wife">>Then keep watching. I want you to remember this.<</speech>>
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/f8.webm" type="video/webm"></video>
</div>
He puts her back into missionary and speeds up. She’s openly begging now.
<<speech "wife" "Wife">>Don’t pull out. Breed me. I want your cum inside me instead of his. Please— fill me up in front of him.<</speech>>
<<speech "you">>You want me to breed your wife right in front of you?<</speech>>
<<speech "husband" "Husband">>…Yes.<</speech>>
<<speech "wife" "Wife">>Then do it. Put a real load in me.<</speech>>
<<mgButtons "stamina" 2 "career/escort/BWC/f8.webm" 3>>
<<elseif $phase == 3>>
/* ===================== AFTER STAMINA ===================== */
<<set $lastScore to $mg_Score>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/f9.webm" type="video/webm"></video>
</div>
$playerName finishes deep inside her. She keeps her eyes locked on her husband the entire time, feeling every pulse.
<<speech "wife" "Wife">>He’s cumming inside me… I can feel it. You’re watching another man breed your wife.<</speech>>
<<speech "you">>Take every drop.<</speech>>
<<speech "wife" "Wife">>I am. It’s so warm… so much more than you’ve ever given me.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/f10.webm" type="video/webm"></video>
</div>
She crawls over to her husband, turns around, and presents her freshly creampied pussy to him.
<<speech "wife" "Wife">>You don’t get to fuck it. You only get to stroke that little cock against the mess he left. Look how much is leaking out.<</speech>>
<<speech "husband" "Husband">>It’s everywhere…<</speech>>
<<speech "wife" "Wife">>Because a real man just filled me. Now finish on the outside like the cuck you are.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/escort/BWC/f11.webm" type="video/webm"></video>
</div>
The husband strokes himself against her messy pussy lips until he finishes. His cum mixes with the thick load already leaking out of her.
<<speech "wife" "Wife">>Good boy… you only get to add to his mess. Never go inside again when this cock is available.<</speech>>
<<speech "you">>She’s ruined for you now.<</speech>>
<<speech "wife" "Wife">>I was ruined the moment Rebel sent you over. Thank you for coming.<</speech>>
<<silently>>
<<set $sceneCompleted["esc_cuckold"] to true>>
<<set $escortSameDayLock to true>>
<<if ($escortIndex || 0) <= 5>><<set $escortIndex to 6>><</if>>
<<if $escortIndex >= 6>><<set $escortStoryDone to true>><</if>>
<<set $actionsLeft -= 1>>
<<set $expEscort += 1>>
<<set $escortJobs += 1>>
<<unset $phase>>
<<set $mg_Returning to false>>
<<set $mg_UsePhase to false>>
<<if $lastScore >= 65>>
<<set $money += 175>>
<<set $escortRep += 12>>
<<set $actressRelation["cuckold_wife"] to ($actressRelation["cuckold_wife"] || 0) + 8>>
<<set $rebelCuckoldPath to true>>
<<else>>
<<set $money += 110>>
<<set $escortRep += 5>>
<<set $actressRelation["cuckold_wife"] to ($actressRelation["cuckold_wife"] || 0) + 3>>
<</if>>
<<applyWorkLoad "escort" "neutral">>
<<if $lastScore >= 65>>
<</if>>
<</silently>>
<div style="color:#00e676;">The couple was extremely satisfied. Rebel will hear about this…</div>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Escort Agency"]]
<<else>>
[[Back to Escort Agency|Escort Agency]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Debt Failure – Week 1 (Rebecca)</div>
<<set $sceneId to "debt_week1">>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w11.webm" type="video/webm"></video>
</div>
Rebecca doesn’t look angry. She looks pleased. She finishes tying $playerName’s hands behind his back and steps back to admire her work.
<<speech "rebecca" "Rebecca">>You missed this week’s payment. I could have been mean about it… but I’ve been waiting for an excuse like this.<</speech>>
<<speech "you">>Rebecca—<</speech>>
<<speech "rebecca" "Rebecca">>Quiet. Most men with a cock like yours never let anyone take control. Today you don’t get a choice.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w12.webm" type="video/webm"></video>
</div>
She wraps a soft cord around his balls — tight enough to make him feel it, but not enough to truly hurt. She gives a light experimental squeeze and smiles.
<<speech "rebecca" "Rebecca">>Just enough pressure so you stay focused on me. I’m not trying to damage the merchandise… I just want it to listen.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w13.webm" type="video/webm"></video>
</div>
She pushes him forward onto his face, ass up, and starts stroking his cock from behind while the cord keeps a constant light tension on his balls.
<<speech "rebecca" "Rebecca">>Look at you. Completely hard already and I haven’t even done anything serious yet. You’ve been wanting someone to take the power away from you, haven’t you?<</speech>>
<<speech "you">>I…<</speech>>
<<speech "rebecca" "Rebecca">>Don’t answer. Your cock is answering for you.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w14.webm" type="video/webm"></video>
</div>
She makes him spread his legs wide and presents his cock. A thick stream of lube pours over the head and runs down the shaft as it swells even more.
<<speech "rebecca" "Rebecca">>There we go… nice and shiny. I want to see every vein while I play with you.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w15.webm" type="video/webm"></video>
</div>
She picks up a vibrator and runs it slowly along the underside of his cock, watching it reach full hardness under the teasing.
<<speech "rebecca" "Rebecca">>Most guys who are packing like you refuse to submit. They always want to be the ones in charge. I’ve wanted to do this to a cock this size for years.<</speech>>
<<speech "you">>You’re enjoying this too much.<</speech>>
<<speech "rebecca" "Rebecca">>Of course I am. You’re completely at my mercy and still getting harder. That’s delicious.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w16.webm" type="video/webm"></video>
</div>
The vibrator moves lower, pressing gently against his asshole while her other hand strokes him slow and soft.
<<speech "rebecca" "Rebecca">>Relax. I’m only teasing… for now. Feel that? Every time the vibrator presses, your cock jumps in my hand.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w17.webm" type="video/webm"></video>
</div>
She switches the vibrator to his balls, increasing the intensity while she keeps stroking.
<<speech "rebecca" "Rebecca">>Your balls are so full. I’m going to empty them on my own terms today.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w18.webm" type="video/webm"></video>
</div>
She presses the vibrator more firmly against his hole (still not inserting it) while leaning in to lick and tease the head of his cock with soft, slow tongue strokes.
<<speech "rebecca" "Rebecca">>You’re leaking already. All that power and you’re just a leaking, tied-up mess for me. I love this.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w19.webm" type="video/webm"></video>
</div>
She bends him further, keeps the vibrator pressed to his asshole, and starts stroking him with long, milking pulls — like she’s trying to force the orgasm out of him.
<<speech "rebecca" "Rebecca">>That’s it… let me milk this big cock. You’ve been in control of it your whole life. Today it’s mine.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w110.webm" type="video/webm"></video>
</div>
She makes him lie on his back and hold his own legs up. The vibrator stays pressed against his hole while she strokes his fully erect cock with steady purpose.
<<speech "rebecca" "Rebecca">>Look at you. Legs in the air, hands tied, cock throbbing, and a vibrator teasing your ass. This is better than I imagined.<</speech>>
<<speech "you">>Rebecca… I’m close—<</speech>>
<<speech "rebecca" "Rebecca">>I know. That’s the point.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w111.webm" type="video/webm"></video>
</div>
She doesn’t speed up. She just keeps the same relentless, controlled pace, watching his face the entire time.
<<speech "rebecca" "Rebecca">>Don’t fight it. Cum for me. Show me how much you needed someone to take over.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w112.webm" type="video/webm"></video>
</div>
He finally breaks. Thick ropes shoot across her hands and wrist while the vibrator keeps teasing his hole. Rebecca laughs softly, clearly delighted.
<<speech "rebecca" "Rebecca">>There it is… look at how much you gave me. All that superior cock, completely emptied because I decided it was time.<</speech>>
<<speech "you">>Fuck…<</speech>>
<<speech "rebecca" "Rebecca">>Don’t look so ashamed. You lasted longer than I expected. Next time you miss a payment, I might not be this gentle.<</speech>>
She slowly unties him, still smiling, and wipes her hand on his stomach.
<<speech "rebecca" "Rebecca">>Debt is still owed, by the way. This was just interest. Pay me next week… or we do something more creative.<</speech>>
/* CONSEQUENCES */
<<set $sceneCompleted["debt_week1"] to true>>
<<set $debtPunishmentWeek1 to true>>
<<set $rebeccaDominance += 1>>
<<set $exhaustion to Math.min($exhaustionMax || 10, ($exhaustion || 0) + 1)>>
<<set $actionsLeft -= 1>>
/* Debt is not cleared — this was only the punishment */
<<set $money -= 0>> /* no payment made */
<div class="scene-end danger">
Rebecca had her fun.<br>
Debt is still outstanding.<br>
Exhaustion increased.
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Bedroom Hub"]]
<<else>>
[[Back to Bedroom|Bedroom Hub]]
[[City|City]]
<</if>><div class="passage-title">Debt Failure – Week 2 (Rebecca)</div>
<<set $sceneId to "debt_week2">>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w21.webm" type="video/webm"></video>
</div>
$playerName is completely naked, sitting on Rebecca’s lap on the couch. She’s already teasing his balls with light, deliberate strokes while she speaks calmly into his ear.
<<speech "rebecca" "Rebecca">>Second week in a row. I’m not as patient this time.<</speech>>
<<speech "you">>Rebecca, I can explain—<</speech>>
<<speech "rebecca" "Rebecca">>No. You don’t talk much today. You take whatever I do to you without hesitation. Understood?<</speech>>
He hesitates for only a second, then nods.
<<speech "you">>…Understood.<</speech>>
<<speech "rebecca" "Rebecca">>Good boy. Stay quiet and let me play.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w22.webm" type="video/webm"></video>
</div>
She wraps her hand around his cock and starts stroking with firm, deliberate squeezes, watching it harden under her control.
<<speech "rebecca" "Rebecca">>Still gets this hard for me even when you’re being punished. That’s the part I like most.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w23.webm" type="video/webm"></video>
</div>
One hand keeps stroking while the other slides down and starts pressing against his asshole, teasing the rim without pushing inside yet.
<<speech "rebecca" "Rebecca">>Last week I only teased. This week I’m going further. Stay still.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w24.webm" type="video/webm"></video>
</div>
She pushes a finger inside him while continuing to stroke his fully hard cock. He doesn’t pull away. He just watches her hand move.
<<speech "rebecca" "Rebecca">>There we go… accepting it. You’re learning.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w25.webm" type="video/webm"></video>
</div>
She switches hands — stroking with one, fingering him with the other — and looks him in the eyes.
<<speech "rebecca" "Rebecca">>Are you enjoying this?<</speech>>
<<speech "you">>…Yes.<</speech>>
<<speech "rebecca" "Rebecca">>You hesitated. But you still said yes. That tells me everything.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w26.webm" type="video/webm"></video>
</div>
She starts moving her finger more deliberately inside him, curling and pressing while her other hand keeps a steady, relentless stroke on his cock.
<<speech "rebecca" "Rebecca">>Feel that? I’m inside you and you’re still leaking all over my hand. You were made for this, you just never admitted it.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w27.webm" type="video/webm"></video>
</div>
His body starts tensing. He tries to pull back slightly as the orgasm builds, but her finger stays buried and her grip on his cock doesn’t loosen. She holds up her phone with her free hand.
<<speech "rebecca" "Rebecca">>Don’t you dare stop. I’m recording this. I want to watch you break later.<</speech>>
<<speech "you">>Rebecca— please— I’m going to—<</speech>>
<<speech "rebecca" "Rebecca">>Then cum. Right now. With my finger in your ass and the camera on you.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w28.webm" type="video/webm"></video>
</div>
He can’t hold it. The orgasm hits while her finger is still inside him. She immediately leans down and wraps her mouth around the head, catching most of the load as he pulses.
<<speech "rebecca" "Rebecca">>Mmm… good. Stay still. I’m not done.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/debt/BWC/w29.webm" type="video/webm"></video>
</div>
She grabs him by the jaw, forces his mouth open, and lets the cum she collected drip from her lips into his. Her eyes stay locked on his the entire time.
<<speech "rebecca" "Rebecca">>Swallow it. Every drop. You don’t get to waste what I took from you.<</speech>>
He does. She watches his throat move, then gives a small, satisfied smile and releases his face.
<<speech "rebecca" "Rebecca">>Look at you. Second week and you’re already swallowing your own cum on command. Next time you miss a payment, I won’t be this nice.<</speech>>
<<speech "you">>…Yes, Rebecca.<</speech>>
<<speech "rebecca" "Rebecca">>Debt is still owed. This was just the lesson. Pay me next week… or we go further.<</speech>>
She wipes her fingers on his thigh and stands up, already looking composed again.
/* CONSEQUENCES */
<<set $sceneCompleted["debt_week2"] to true>>
<<set $debtPunishmentWeek2 to true>>
<<set $rebeccaDominance += 2>>
<<set $exhaustion to Math.min($exhaustionMax || 10, ($exhaustion || 0) + 2)>>
<<set $mood to Math.max(0, ($mood || 5) - 1)>>
<<set $actionsLeft -= 1>>
<div class="scene-end danger">
Rebecca went further this time.<br>
Debt is still outstanding.<br>
Exhaustion increased significantly.
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Bedroom Hub"]]
<<else>>
[[Back to Bedroom|Bedroom Hub]]
[[City|City]]
<</if>><div class="passage-title">First Time Camming</div>
<<if not $mg_Returning and ndef $phase>>
<<set $sceneId to "cam_first">>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/b1.webm" type="video/webm"></video>
</div>
$playerName is on the bathroom floor, completely hard, stroking slowly for the camera. A few viewers are already watching.
<<speech "you">>You like watching this cock? I’ve been holding out… tell me when you want me to cum.<</speech>>
A tip notification flashes. Someone paid for him to finish on camera.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/b2.webm" type="video/webm"></video>
</div>
He starts stroking harder, chasing the orgasm the tip requested.
<<speech "you">>Alright… you paid for it. I’m not holding back anymore.<</speech>>
<<mgButtons "stamina" 1 "career/cam/BWC/b2.webm" 1>>
<<elseif $phase == 1>>
<<set $mg_Score1 to $mg_Score>>
<<unset $phase>>
<<speech "producer" "Producer">>Stay with the camera. Next beat — don't lose the heat.<</speech>>
<<mgButtons "focus" 1 "career/cam/BWC/b2.webm">>
<<else>>
<<set $lastScore to Math.round((($mg_Score1 || $mg_Score) + $mg_Score) / 2)>>
<<unset $mg_Score1>>
<<set $mg_Returning to false>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/b3.webm" type="video/webm"></video>
</div>
He finishes hard, shooting a thick load onto the floor right in front of the camera.
<<speech "you">>Fuck… there it is. Hope that was worth the tip.<</speech>>
<<silently>>
<<set $sceneCompleted["cam_first"] to true>>
<<set $camSameDayLock to true>>
<<if ($camIndex || 0) <= 0>><<set $camIndex to 1>><</if>>
<<if $camIndex >= 4>><<set $camStoryDone to true>><</if>>
<<set $actionsLeft -= 1>>
<<set $expCam += 1>>
<<set $camShows += 1>>
<<if $lastScore >= 65>>
<<set $money += 45>>
<<set $camRep += 4>>
<<set $camTokens += 18>>
<<else>>
<<set $money += 25>>
<<set $camRep += 1>>
<<set $camTokens += 8>>
<</if>>
<<applyWorkLoad "cam" "neutral">>
<</silently>>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Cam Setup"]]
<<else>>
[[Back to Cam Setup|Cam Setup]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Cam Show – Toy</div>
<<if not $mg_Returning and ndef $phase>>
<<set $sceneId to "cam_toy">>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/a1.webm" type="video/webm"></video>
</div>
$playerName stands in his bedroom, fully hard, stroking slowly while holding a fleshlight in his other hand.
<<speech "you">>You want to see this cock fuck a toy? Subscribe and tip. The more you give, the nastier I get with it.<</speech>>
A subscription notification pops up.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/a2.webm" type="video/webm"></video>
</div>
He lubes up and slides into the toy. It takes him easily. He starts with slow, deep strokes for the camera.
<<speech "you">>Look at that… gliding right in. Feels fucking good.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/a3.webm" type="video/webm"></video>
</div>
He picks up the pace, thrusting harder into the toy while talking to the viewers.
<<speech "you">>This is going to make me cum. If you want to watch it happen, start tipping. Goal’s on screen.<</speech>>
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/a4.webm" type="video/webm"></video>
</div>
He’s clearly close now. He slows just enough to keep control while pushing the tip goal.
<<speech "you">>I’m right there… pay the goal or only the people who already donated get to see me finish. Last chance.<</speech>>
<<mgButtons "stamina" 1 "career/cam/BWC/a4.webm" 1>>
<<elseif $phase == 1>>
<<set $mg_Score1 to $mg_Score>>
<<unset $phase>>
<<speech "producer" "Producer">>Stay with the camera. Next beat — don't lose the heat.<</speech>>
<<mgButtons "technique" 1 "career/cam/BWC/a4.webm">>
<<else>>
<<set $lastScore to Math.round((($mg_Score1 || $mg_Score) + $mg_Score) / 2)>>
<<unset $mg_Score1>>
<<set $mg_Returning to false>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/a5.webm" type="video/webm"></video>
</div>
He finishes hard, pumping a thick load into and onto the toy while still facing the camera.
<<speech "you">>Fuck… there it is. Thanks to everyone who tipped. You made that load happen.<</speech>>
<<silently>>
<<set $sceneCompleted["cam_toy"] to true>>
<<set $camSameDayLock to true>>
<<if ($camIndex || 0) <= 1>><<set $camIndex to 2>><</if>>
<<if $camIndex >= 4>><<set $camStoryDone to true>><</if>>
<<set $actionsLeft -= 1>>
<<set $expCam += 1>>
<<set $camShows += 1>>
<<if $lastScore >= 65>>
<<set $money += 55>>
<<set $camRep += 5>>
<<set $camTokens += 24>>
<<else>>
<<set $money += 30>>
<<set $camRep += 2>>
<<set $camTokens += 12>>
<</if>>
<<applyWorkLoad "cam" "neutral">>
<</silently>>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Cam Setup"]]
<<else>>
[[Back to Cam Setup|Cam Setup]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Cam Show – Fleshlight</div>
<<if not $mg_Returning and ndef $phase>>
<<set $sceneId to "cam_fleshlight">>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/c1.webm" type="video/webm"></video>
</div>
$playerName is lying on the bed, stroking his hard cock while holding a fleshlight up for the camera.
<<speech "you">>You want to watch this cock disappear inside a toy? Tip if you want me to start fucking it.<</speech>>
A tip comes in.
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/c2.webm" type="video/webm"></video>
</div>
He slides into the fleshlight and starts thrusting, letting the camera see every stroke.
<<speech "you">>There it is… all the way in. Feels tight.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/c3.webm" type="video/webm"></video>
</div>
He starts moving his hips more deliberately, talking straight to the viewers.
<<speech "you">>Imagine this is your pussy… or your ass. Taking every inch just like this toy is right now.<</speech>>
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/c4.webm" type="video/webm"></video>
</div>
He’s getting close. He slows just enough to keep control while pushing for more tips.
<<speech "you">>You want to see me cum inside it? Pay the goal. Tell me if you want it in your pussy or your ass… I’m about to fill this thing either way.<</speech>>
<<mgButtons "stamina" 1 "career/cam/BWC/c4.webm" 1>>
<<elseif $phase == 1>>
<<set $mg_Score1 to $mg_Score>>
<<unset $phase>>
<<speech "producer" "Producer">>Stay with the camera. Next beat — don't lose the heat.<</speech>>
<<mgButtons "focus" 1 "career/cam/BWC/c4.webm">>
<<else>>
<<set $lastScore to Math.round((($mg_Score1 || $mg_Score) + $mg_Score) / 2)>>
<<unset $mg_Score1>>
<<set $mg_Returning to false>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/c5.webm" type="video/webm"></video>
</div>
He finishes hard, pumping a thick load deep into the fleshlight while still facing the camera.
<<speech "you">>Fuck… it’s full. Thanks to everyone who tipped. You made me empty it all in there.<</speech>>
<<silently>>
<<set $sceneCompleted["cam_fleshlight"] to true>>
<<set $camSameDayLock to true>>
<<if ($camIndex || 0) <= 2>><<set $camIndex to 3>><</if>>
<<if $camIndex >= 4>><<set $camStoryDone to true>><</if>>
<<set $actionsLeft -= 1>>
<<set $expCam += 1>>
<<set $camShows += 1>>
<<if $lastScore >= 65>>
<<set $money += 55>>
<<set $camRep += 5>>
<<set $camTokens += 25>>
<<else>>
<<set $money += 35>>
<<set $camRep += 2>>
<<set $camTokens += 12>>
<</if>>
<<applyWorkLoad "cam" "neutral">>
<</silently>>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Cam Setup"]]
<<else>>
[[Back to Cam Setup|Cam Setup]]
[[City|City]]
<</if>>
<</if>><div class="passage-title">Cam Show – Interactive Fleshlight</div>
<<if not $mg_Returning and ndef $phase>>
<<set $sceneId to "cam_interactive">>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/d1.webm" type="video/webm"></video>
</div>
$playerName is on the bed with an automatic fleshlight. He holds it in one hand while the camera shows his hard cock sliding in and out under the machine’s control.
<<speech "you">>You control this one. Tip to change speed and depth. Tell me where you want it focused and how hard you want it to stroke me.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/d2.webm" type="video/webm"></video>
</div>
First tip comes in. The toy speeds up and focuses on the head.
<<speech "you">>Top of the head, fast… got it. Fuck, that’s sensitive.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/d3.webm" type="video/webm"></video>
</div>
Next tip. The fleshlight takes him deeper, stroking the full length.
<<speech "you">>Deeper now… every inch. You can see it disappearing.<</speech>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/d4.webm" type="video/webm"></video>
</div>
Another tip. The toy locks onto the head again at high speed. He has to hold it steady with both hands.
<<speech "you">>Back on the head, hard and fast… you’re trying to make me lose it early, aren’t you?<</speech>>
/* ——— STAMINA MINIGAME ——— */
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/d5.webm" type="video/webm"></video>
</div>
The final tip goal is met. The fleshlight starts stroking him at full speed and depth. He’s clearly getting close.
<<speech "you">>Goal reached… it’s not stopping. I’m going to cum. Keep watching.<</speech>>
<<mgButtons "stamina" 1 "career/cam/BWC/d5.webm" 1>>
<<elseif $phase == 1>>
<<set $mg_Score1 to $mg_Score>>
<<unset $phase>>
<<speech "producer" "Producer">>Stay with the camera. Next beat — don't lose the heat.<</speech>>
<<mgButtons "technique" 1 "career/cam/BWC/d5.webm">>
<<else>>
<<set $lastScore to Math.round((($mg_Score1 || $mg_Score) + $mg_Score) / 2)>>
<<unset $mg_Score1>>
<<set $mg_Returning to false>>
<div class="video-gallery">
<video autoplay loop muted style="width:100%;max-width:950px;height:auto;border-radius:12px;"><source src="career/cam/BWC/d6.webm" type="video/webm"></video>
</div>
He finishes hard, moaning as the toy milks a huge load out of him on camera.
<<speech "you">>Fuck— there it is… thanks for the control. You made that load happen.<</speech>>
<<silently>>
<<set $sceneCompleted["cam_interactive"] to true>>
<<set $camSameDayLock to true>>
<<if ($camIndex || 0) <= 3>><<set $camIndex to 4>><</if>>
<<if $camIndex >= 4>><<set $camStoryDone to true>><</if>>
<<set $actionsLeft -= 1>>
<<set $expCam += 1>>
<<set $camShows += 1>>
<<if $lastScore >= 65>>
<<set $money += 60>>
<<set $camRep += 6>>
<<set $camTokens += 30>>
<<else>>
<<set $money += 35>>
<<set $camRep += 2>>
<<set $camTokens += 14>>
<</if>>
<<applyWorkLoad "cam" "neutral">>
<</silently>>
<div class="result-card">
<div class="result-kicker">Wrap report</div>
<div class="result-score">$lastScore<span class="pct">%</span></div>
<<if $lastScore >= 80>>
<div class="result-verdict great">🔥 Outstanding — they felt every second.</div>
<<elseif $lastScore >= 65>>
<div class="result-verdict great">✨ Strong take — booking material.</div>
<<elseif $lastScore >= 40>>
<div class="result-verdict ok">Serviceable. Room to dig deeper next time.</div>
<<else>>
<div class="result-verdict rough">Rough cut — stamina and focus need work.</div>
<</if>>
<<set _rd to FT_reportDeltas()>>
<div class="result-tags">
<<if _rd.money>>
<span class="tag money"><<print (_rd.money > 0 ? "+" : "") + _rd.money>> cash</span>
<</if>>
<<if _rd.overallStudioRep>>
<span class="tag rep"><<print (_rd.overallStudioRep > 0 ? "+" : "") + _rd.overallStudioRep>> pro rep</span>
<</if>>
<<if _rd.escortRep>>
<span class="tag rep"><<print (_rd.escortRep > 0 ? "+" : "") + _rd.escortRep>> escort rep</span>
<</if>>
<<if _rd.camRep>>
<span class="tag rep"><<print (_rd.camRep > 0 ? "+" : "") + _rd.camRep>> cam rep</span>
<</if>>
<<if _rd.actionsLeft>>
<span class="tag warn"><<print _rd.actionsLeft>> action</span>
<</if>>
<<if _rd.exhaustion>>
<span class="tag warn"><<print (_rd.exhaustion > 0 ? "+" : "") + _rd.exhaustion>> exhaustion</span>
<</if>>
<<if _rd.mood>>
<span class="tag"><<print (_rd.mood > 0 ? "+" : "") + _rd.mood>> mood</span>
<</if>>
<<if _rd.statFocus>>
<span class="tag"><<print (_rd.statFocus > 0 ? "+" : "") + _rd.statFocus>> focus</span>
<</if>>
<<if _rd.statTechnique>>
<span class="tag"><<print (_rd.statTechnique > 0 ? "+" : "") + _rd.statTechnique>> technique</span>
<</if>>
<<if _rd.statStamina>>
<span class="tag"><<print (_rd.statStamina > 0 ? "+" : "") + _rd.statStamina>> stamina</span>
<</if>>
<<if !_rd.money && !_rd.overallStudioRep && !_rd.escortRep && !_rd.camRep && !_rd.statFocus && !_rd.statTechnique && !_rd.statStamina>>
<span class="tag rep">Session logged</span>
<</if>>
</div>
</div>
<<if $exhaustion >= $exhaustionMax>>
[[Continue|Exhaustion Check][$returnAfterExhaustion to "Cam Setup"]]
<<else>>
[[Back to Cam Setup|Cam Setup]]
[[City|City]]
<</if>>
<</if>><<silently>>
<<unset $phase>>
<<set $mg_Returning to false>>
<<set $mg_UsePhase to false>>
<<unset $mg_Score1>>
<</silently>>
<div class="passage-title">Escort Agency</div>
<div class="story-img"><img src="career/pics/loc/escort_agency.jpg" alt="Escort agency" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
<<if not $systemsUnlocked>>
Locked until your career starts.
[[City|City]]
<<elseif $exhaustionLocked>>
Too exhausted to work.
[[City|City]]
<<elseif $actionsLeft < 1>>
No actions left today.
[[City|City]]
<<else>>
<div class="panel">
<div class="panel-title">Bookings</div>
<<if $escortSameDayLock>>
<span class="hint">You already did an escort job today. Sleep to unlock the next booking.</span>
<<else>>
<<set _eo = ["esc_japanese","esc_pregnant","esc_middleeast","esc_executive","esc_soccermom","esc_cuckold"]>>
<<set _enames = {
"esc_japanese": "Quiet Japanese Client",
"esc_pregnant": "Pregnant Housewife",
"esc_middleeast": "Middle Eastern Client",
"esc_executive": "Hotel Executive",
"esc_soccermom": "Soccer Mom",
"esc_cuckold": "Cuckold Arrangement"
}>>
<<set _noncuck to ["esc_japanese","esc_pregnant","esc_middleeast","esc_executive","esc_soccermom"]>>
<<set _idx to ($escortIndex || 0)>>
<<if _idx < _noncuck.length>>
<<set _id to _noncuck[_idx]>>
<<set _tl to _enames[_id]>><<set _tp to "Scene " + _id>><<link _tl _tp>><</link>>
<div class="hint">Story booking <<print (_idx + 1)>> / <<print _noncuck.length>></div>
<<else>>
<<set $escortStoryDone to true>>
<</if>>
<<if $unlockedCuckoldEscort and not $sceneCompleted["esc_cuckold"]>>
<div style="margin-top:8px;"><<set _tl to _enames["esc_cuckold"]>><<set _tp to "Scene esc_cuckold">><<link _tl _tp>><</link>></div>
<</if>>
<<if $escortStoryDone>>
<div class="hint" style="margin-top:10px;">Repeatable bookings:</div>
<<for _id range _noncuck>>
<<set _tl to _enames[_id] + " (repeat)">><<set _tp to "Scene " + _id>><<link _tl _tp>><</link>>
<</for>>
<<if $unlockedCuckoldEscort and $sceneCompleted["esc_cuckold"]>>
<<set _tl to _enames["esc_cuckold"] + " (repeat)">><<set _tp to "Scene esc_cuckold">><<link _tl _tp>><</link>>
<</if>>
<</if>>
<</if>>
</div>
<div class="nav-grid">[[City|City]]</div>
<</if>># Vixen Studios
<<if not $unlockedVixen>>
You don’t have access yet.
[[Return to City|City]]
<<else>>
High-end studio. *(Placeholder – scenes later)*
Relation: <<print $studioRelation["vixen"]>>
[[Return to City|City]]
<</if>># Brazzers Studios
<<if not $unlockedBrazzers>>
You don’t have access yet.
[[Return to City|City]]
<<else>>
Major studio. *(Placeholder – scenes later)*
Relation: <<print $studioRelation["brazzers"]>>
[[Return to City|City]]
<</if>># Bang Studios
<<if not $unlockedBang>>
You don’t have access yet.
[[Return to City|City]]
<<else>>
Studio lot. *(Placeholder – scenes later)*
Relation: <<print $studioRelation["bang"]>>
[[Return to City|City]]
<</if>># Deeper Studios
<<if not $unlockedDeeper>>
You don’t have access yet.
[[Return to City|City]]
<<else>>
Prestige studio. *(Placeholder – scenes later)*
Relation: <<print $studioRelation["deeper"]>>
[[Return to City|City]]
<</if>><div class="passage-title">Gym</div>
<div class="story-img"><img src="career/pics/loc/gym.jpg" alt="Gym" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
<<if $actionsLeft < 1>>
<span class="hint">No actions left today.</span>
<div class="nav-grid">[[Return to City|City]]</div>
<<else>>
<<set $actionsLeft -= 1>>
A real workout — not for the camera. Sweat, stretch, reset.
<<applyRecovery>>
<div class="reward">Recovery: exhaustion −1, mood +1. Counts as recovery for today.</div>
<div class="hint">Exhaustion $exhaustion / $exhaustionMax · Mood $mood / $moodMax · Actions left $actionsLeft</div>
<<if $cityStars && $cityStars.length > 0>>
<<for _s range $cityStars>>
<<if _s.location === "Gym">>
<div class="panel">You notice <<print _s.id.replace(/_/g, " ")>> nearby.
<<if $actionsLeft >= 1>>
[[Talk|Star Interact][$interactStar to _s.id]]
<</if>>
</div>
<</if>>
<</for>>
<</if>>
<div class="nav-grid">
[[Return to City|City]]
[[Go Home|Bedroom Hub]]
</div>
<</if>><div class="passage-title">Cafe</div>
<div class="story-img"><img src="career/pics/loc/cafe.jpg" alt="Cafe" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
<<if $actionsLeft < 1>>
<span class="hint">No actions left today.</span>
<div class="nav-grid">[[Return to City|City]]</div>
<<else>>
<<set $actionsLeft -= 1>>
Slow coffee, soft music, no one asking you to perform.
<<applyRecovery>>
<div class="reward">Recovery: exhaustion −1, mood +1. Counts as recovery for today.</div>
<div class="hint">Exhaustion $exhaustion / $exhaustionMax · Mood $mood / $moodMax · Actions left $actionsLeft</div>
<<if $cityStars && $cityStars.length > 0>>
<<for _s range $cityStars>>
<<if _s.location === "Cafe">>
<div class="panel">You notice <<print _s.id.replace(/_/g, " ")>> nearby.
<<if $actionsLeft >= 1>>
[[Talk|Star Interact][$interactStar to _s.id]]
<</if>>
</div>
<</if>>
<</for>>
<</if>>
<div class="nav-grid">
[[Return to City|City]]
[[Go Home|Bedroom Hub]]
</div>
<</if>><div class="passage-title">Park</div>
<div class="story-img"><img src="career/pics/loc/park.jpg" alt="Park" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
<<if $actionsLeft < 1>>
<span class="hint">No actions left today.</span>
<div class="nav-grid">[[Return to City|City]]</div>
<<else>>
<<set $actionsLeft -= 1>>
The park is calm. Fresh air and quiet paths clear your head.
<<applyRecovery>>
<div class="reward">Recovery: exhaustion −1, mood +1. Counts as recovery for today.</div>
<div class="hint">Exhaustion $exhaustion / $exhaustionMax · Mood $mood / $moodMax · Actions left $actionsLeft</div>
<<if $cityStars && $cityStars.length > 0>>
<<for _s range $cityStars>>
<<if _s.location === "Park">>
<div class="panel">You notice <<print _s.id.replace(/_/g, " ")>> nearby.
<<if $actionsLeft >= 1>>
[[Talk|Star Interact][$interactStar to _s.id]]
<</if>>
</div>
<</if>>
<</for>>
<</if>>
<div class="nav-grid">
[[Return to City|City]]
[[Go Home|Bedroom Hub]]
</div>
<</if>><div class="passage-title">Mall</div>
<div class="story-img"><img src="career/pics/loc/mall.jpg" alt="Mall" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
<<if $actionsLeft < 1>>
<span class="hint">No actions left today.</span>
<div class="nav-grid">[[Return to City|City]] [[Go Home|Bedroom Hub]]</div>
<<else>>
<<set $actionsLeft -= 1>>
You wander the mall, let the noise wash over you, and stop thinking about sets.
<<applyRecovery>>
<div class="reward">Recovery: exhaustion −1, mood +1. Counts as recovery for today.</div>
<div class="hint">Exhaustion $exhaustion / $exhaustionMax · Mood $mood / $moodMax · Actions left $actionsLeft</div>
<<if $cityStars && $cityStars.length > 0>>
<<for _s range $cityStars>>
<<if _s.location === "Mall">>
<div class="panel">You notice <<print _s.id.replace(/_/g, " ")>> nearby.
<<if $actionsLeft >= 1>>
[[Talk|Star Interact][$interactStar to _s.id]]
<</if>>
</div>
<</if>>
<</for>>
<</if>>
<div class="nav-grid">
[[Return to City|City]]
[[Go Home|Bedroom Hub]]
</div>
<</if>><<set $versionEndSeen to true>>
<<set $versionEndReady to true>>
<div class="passage-title">That’s a wrap — v0.1</div>
<div class="story-img"><img src="career/pics/story/title_card.jpg" alt="A Modern Porn Star" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
You’ve cleared this build of <b>A Modern Porn Star</b>: all Joy Media studio work and the full escort story line (everything except the cuckold booking).
Thank you for playing.
This version is free to explore. If you want more scenes, faster updates, and a say in what comes next, consider supporting the game.
<div class="panel">
<div class="panel-title">Support & next update</div>
There’s already a <b>poll running</b> about the <b>next exclusive update</b>. Try a subscription on Patreon or SubscribeStar to support the game, vote on what ships next, and get exclusive builds.
<div class="nav-grid" style="margin-top:12px; flex-direction:column; align-items:flex-start; gap:10px;">
<a href="https://www.patreon.com/RedCupid" target="_blank" rel="noopener">Patreon — patreon.com/RedCupid</a>
<a href="https://subscribestar.adult/redcupid" target="_blank" rel="noopener">SubscribeStar — subscribestar.adult/redcupid</a>
</div>
<div class="dev-links" style="margin-top:12px;">
<a href="https://www.patreon.com/RedCupid" target="_blank" rel="noopener"><img class="dev-badge" src="career/pics/brand/patreon.png" alt="Patreon" style="width:72px;height:auto;"></a>
<a href="https://subscribestar.adult/redcupid" target="_blank" rel="noopener"><img class="dev-badge" src="career/pics/brand/subscribestar.png" alt="SubscribeStar" style="width:72px;height:auto;"></a>
</div>
<div class="dev-by" style="margin-top:10px;">By REDCUPID</div>
</div>
<div class="hint">You can keep playing — cam, repeats, debt, and the cuckold path (when unlocked) are still open.</div>
<div class="nav-grid">
[[Back to Bedroom|Bedroom Hub]]
[[City|City]]
</div><div class="passage-title">Debug Menu</div>
<div class="panel">
<div class="panel-title">Developer tools</div>
<span class="hint">Opened from Mall with <b>Y</b>. Changes apply immediately.</span>
</div>
<div class="sidebar-panel" style="max-width:640px;">
<h3 style="color:#ce93d8;">Quick jumps</h3>
<div class="nav-grid">
[[Bedroom|Bedroom Hub]]
[[City|City]]
[[Phone|Phone]]
[[Joy Media|Joy Media Studios]]
[[Escort|Escort Agency]]
[[Mall|Mall]]
</div>
</div>
<div class="panel">
<div class="panel-title">Economy & time</div>
Money: <b>$<<print $money>></b>
<div class="nav-grid">
<<link "+$500">><<set $money += 500>><<goto "Debug Menu">><</link>>
<<link "+$1500">><<set $money += 1500>><<goto "Debug Menu">><</link>>
<<link "Money = 0">><<set $money to 0>><<goto "Debug Menu">><</link>>
<<link "Money = 5000">><<set $money to 5000>><<goto "Debug Menu">><</link>>
</div>
Debt owed: <b>$<<print $debt>></b> · Weekly: <b>$<<print $debtWeekly>></b> · Days left: <b><<print $debtDaysLeft>></b>
<div class="nav-grid">
<<link "Debt = 0">><<set $debt to 0>><<goto "Debug Menu">><</link>>
<<link "Debt += 1500">><<set $debt += 1500>><<goto "Debug Menu">><</link>>
<<link "Days left = 1">><<set $debtDaysLeft to 1>><<set $debtActive to true>><<goto "Debug Menu">><</link>>
<<link "Reset week (7 days)">><<set $debtDaysLeft to 7>><<set $debtActive to true>><<goto "Debug Menu">><</link>>
<<link "Trigger debt deadline">><<set $debtActive to true>><<set $debtDaysLeft to 0>><<goto "Debt Deadline">><</link>>
</div>
Week <b><<print $weekNumber>></b> · Day <b><<print $dayOfWeek>></b> · Actions <b><<print $actionsLeft>>/<<print $actionsMax>></b>
<div class="nav-grid">
<<link "Actions = 3">><<set $actionsLeft to 3>><<set $actionsUsedToday to 0>><<goto "Debug Menu">><</link>>
<<link "Actions = 0">><<set $actionsLeft to 0>><<goto "Debug Menu">><</link>>
<<link "+1 day (sleep)">><<goto "Sleep Sequence">><</link>>
<<link "Skip to career unlock">><<set $systemsUnlocked to true>><<set $careerStarted to true>><<set $debtActive to true>><<set $statFocus to 2>><<set $statTechnique to 2>><<set $statStamina to 2>><<goto "Debug Menu">><</link>>
</div>
</div>
<div class="panel">
<div class="panel-title">Body / locks</div>
Exhaustion <b><<print $exhaustion>>/<<print $exhaustionMax>></b> · Mood <b><<print $mood>>/<<print $moodMax>></b>
<div class="nav-grid">
<<link "Exhaustion 0">><<set $exhaustion to 0>><<set $exhaustionLocked to false>><<goto "Debug Menu">><</link>>
<<link "Exhaustion max">><<set $exhaustion to $exhaustionMax>><<goto "Debug Menu">><</link>>
<<link "Mood full">><<set $mood to $moodMax>><<goto "Debug Menu">><</link>>
<<link "Mood 0">><<set $mood to 0>><<goto "Debug Menu">><</link>>
<<link "Clear work lock">><<set $exhaustionLocked to false>><<set $exhaustionLockDays to 0>><<goto "Debug Menu">><</link>>
</div>
Skills — F <b><<print $statFocus>></b> · T <b><<print $statTechnique>></b> · S <b><<print $statStamina>></b>
<div class="nav-grid">
<<link "All skills 2">><<set $statFocus to 2>><<set $statTechnique to 2>><<set $statStamina to 2>><<goto "Debug Menu">><</link>>
<<link "All skills 5">><<set $statFocus to 5>><<set $statTechnique to 5>><<set $statStamina to 5>><<goto "Debug Menu">><</link>>
<<link "All skills 1">><<set $statFocus to 1>><<set $statTechnique to 1>><<set $statStamina to 1>><<goto "Debug Menu">><</link>>
</div>
</div>
<div class="panel">
<div class="panel-title">Progress flags</div>
Swallow index <b><<print $swallowIndex || 0>></b> · Secrets index <b><<print $secretsIndex || 0>></b> · Escort index <b><<print $escortIndex || 0>></b>
<div class="nav-grid">
<<link "Swallow = 4 (pre-Rebel)">><<set $swallowIndex to 4>><<set $gloryholeSwallowCount to 4>><<goto "Debug Menu">><</link>>
<<link "Swallow = 5 (post-Rebel1)">><<set $swallowIndex to 5>><<set $gloryholeSwallowCount to 5>><<set $unlockedGloryholeSecrets to true>><<goto "Debug Menu">><</link>>
<<link "Swallow = 8 (Rebel2 done)">><<set $swallowIndex to 8>><<set $gloryholeSwallowCount to 8>><<set $sceneCompleted["ghs_rebel2"] to true>><<set $rebelVisit2Ready to true>><<set $pendingRebelMeet to 2>><<goto "Debug Menu">><</link>>
<<link "Unlock Secrets">><<set $unlockedGloryholeSecrets to true>><<goto "Debug Menu">><</link>>
<<link "Unlock Cuckold">><<set $unlockedCuckoldEscort to true>><<set $rebelVisit2Done to true>><<goto "Debug Menu">><</link>>
<<link "Clear same-day locks">><<set $studioSameDayLock to false>><<set $swallowSameDayLock to false>><<set $secretsSameDayLock to false>><<set $escortSameDayLock to false>><<set $camSameDayLock to false>><<goto "Debug Menu">><</link>>
</div>
</div>
<div class="panel">
<div class="panel-title">Scene completion toggles</div>
<span class="hint">Click to mark done / not done.</span>
<<silently>>
<<if ndef $sceneCompleted or !$sceneCompleted>><<set $sceneCompleted to {}>><</if>>
<<set _debugScenes to [
"ghs_mia","ghs_luna","ghs_courtney","ghs_nikki","ghs_rebel","ghs_emma","ghs_bw","ghs_rebel2","ghs_cierra","ghs_indica",
"ghx_tommy","ghx_lauren","ghx_cory","ghx_violet","ghx_ella","ghx_nia",
"esc_japanese","esc_pregnant","esc_middleeast","esc_executive","esc_soccermom","esc_cuckold",
"cam_first","cam_toy","cam_fleshlight","cam_interactive",
"debt_week1","debt_week2"
]>>
<</silently>>
<<for _sid range _debugScenes>>
<div class="stat-row" style="max-width:520px;">
<span class="label"><<print _sid>></span>
<span class="val">
<<if $sceneCompleted[_sid]>>
<span class="stat-good">DONE</span>
<<link "[clear]">>
<<set $sceneCompleted[_sid] to false>>
<<goto "Debug Menu">>
<</link>>
<<else>>
<span class="stat-warn">—</span>
<<link "[complete]">>
<<set $sceneCompleted[_sid] to true>>
<<goto "Debug Menu">>
<</link>>
<</if>>
</span>
</div>
<</for>>
<div class="nav-grid" style="margin-top:10px;">
<<link "Mark all Swallow done">><<set $sceneCompleted["ghs_mia"] to true>><<set $sceneCompleted["ghs_luna"] to true>><<set $sceneCompleted["ghs_courtney"] to true>><<set $sceneCompleted["ghs_nikki"] to true>><<set $sceneCompleted["ghs_rebel"] to true>><<set $sceneCompleted["ghs_emma"] to true>><<set $sceneCompleted["ghs_bw"] to true>><<set $sceneCompleted["ghs_rebel2"] to true>><<set $sceneCompleted["ghs_cierra"] to true>><<set $sceneCompleted["ghs_indica"] to true>><<set $swallowIndex to 10>><<set $gloryholeSwallowCount to 10>><<set $unlockedGloryholeSecrets to true>><<goto "Debug Menu">><</link>>
<<link "Clear all scene flags">><<set $sceneCompleted to {}>><<set $swallowIndex to 0>><<set $secretsIndex to 0>><<set $escortIndex to 0>><<goto "Debug Menu">><</link>>
</div>
</div>
<div class="nav-grid">
<<link "Force version-end ready">><<set $versionEndReady to true>><<goto "Version Complete">><</link>>
[[Close → Mall|Mall]]
[[Close → City|City]]
[[Close → Bedroom|Bedroom Hub]]
</div><<goto "Bedroom Hub">><<set $pendingRebelMeet to 0>>
<<set $rebelVisit2Done to true>>
<<set $rebelVisit1Done to true>>
<<set $unlockedCuckoldEscort to true>>
<div class="passage-title">Drinks with Rebel’s Husband</div>
<div class="story-img"><img src="career/pics/story/rebel_bar.jpg" alt="Bar meet" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
Rebel is at the bar. Her husband stands when you arrive — wedding ring, steady smile, no hostility.
<<speech "husband" "Rebel’s Husband">>$playerName. Sit. Drink’s on me.<</speech>>
<<speech "you">>…Okay.<</speech>>
<<speech "husband" "Rebel’s Husband">>I was in the studio for both of those booth sets. Camera side. Watched you put two full loads in my wife while Lulu helped clean the mess.<</speech>>
<<speech "rebel" "Rebel Rhyder">>He doesn’t get jealous. He gets ideas.<</speech>>
<<speech "husband" "Rebel’s Husband">>Thank you — seriously. Seeing a rookie handle her like that, twice, told me you’re not going to freeze when a husband is in the chair on purpose.<</speech>>
<<speech "husband" "Rebel’s Husband">>I’m recommending you to the escort desk. Couples who want a real cuckold experience. She sets the rules. I watch. You perform. Better money than amateur holes if you keep your head.<</speech>>
<<speech "you">>I can do that.<</speech>>
<<speech "rebel" "Rebel Rhyder">>Good. When the agency opens a cuckold slot, take it. We’ll vouch.<</speech>>
<<silently>>
<<set $actressRelation["rebel_rhyder"] to ($actressRelation["rebel_rhyder"] || 0) + 12>>
<<if $chats>>
<<for _c range $chats>>
<<if _c.id === "rebel">><<set _c.action to null>><</if>>
<</for>>
<</if>>
<</silently>>
<div class="reward">Cuckold escort path unlocked. The agency will treat you as recommended talent.</div>
<div class="nav-grid">[[Phone|Phone]] [[City|City]] [[Bedroom|Bedroom Hub]]</div><<silently>>
<<unset $phase>>
<<set $mg_Returning to false>>
<<set $mg_UsePhase to false>>
<<unset $mg_Score1>>
<</silently>>
<div class="passage-title">Cam Setup</div>
<div class="story-img"><img src="career/pics/loc/cam_desk.jpg" alt="Cam setup" style="width:100%;max-width:950px;height:auto;border-radius:14px;display:block;margin:0.85em 0;box-shadow:0 8px 28px rgba(0,0,0,0.35);"></div>
<<if not $camUnlocked>>
Locked until Rebecca unlocks cam work.
[[Phone|Phone]]
<<elseif $exhaustionLocked or $actionsLeft < 1>>
Can’t stream right now.
[[Phone|Phone]]
<<else>>
<<set $camOrder to ["cam_first","cam_toy","cam_fleshlight","cam_interactive"]>>
<<set $camNames to {
"cam_first": "First Time Camming",
"cam_toy": "Toy Show",
"cam_fleshlight": "Fleshlight Show",
"cam_interactive": "Interactive Fleshlight"
}>>
<<if ndef $camIndex>><<set $camIndex to 0>><</if>>
<div class="panel">
<div class="panel-title">Stream queue</div>
<<if $camSameDayLock>>
<span class="hint">Already streamed today. Sleep for the next show slot.</span>
<<elseif not $camStoryDone and $camIndex < $camOrder.length>>
<<set _id to $camOrder[$camIndex]>>
<<set _tl to $camNames[_id]>><<set _tp to "Scene " + _id>><<link _tl _tp>><</link>>
<<else>>
<<set $camStoryDone to true>>
<div class="hint">Story shows done — repeatable streams:</div>
<<for _id range $camOrder>>
<<set _tl to $camNames[_id] + " (repeat)">><<set _tp to "Scene " + _id>><<link _tl _tp>><</link>>
<</for>>
<</if>>
</div>
Cam rep: $camRep · Tokens: $camTokens · Shows: $camShows
<div class="nav-grid">[[Phone|Phone]] [[Bedroom|Bedroom Hub]]</div>
<</if>><<if $exhaustion >= $exhaustionMax>>
<<set $exhaustion to 100>>
<<set $exhaustionLocked to true>>
<<set $exhaustionLockDays to 1>>
You are completely exhausted. Your body forces you to stop working for 3 days.
[[Continue|Bedroom Hub]]
<<else>>
<<goto $returnAfterExhaustion>>
<</if>><<if $actionsLeft < 1>>
No actions left.
[[City|City]]
<<else>>
<<set $actionsLeft -= 1>>
<<set _id to $interactStar>>
<<set _name to _id.replace(/_/g, " ")>>
<<set $actressRelation[_id] to ($actressRelation[_id] || 0) + 5>>
<<set _rel to $actressRelation[_id]>>
You spend time with <<print _name>> away from set — coffee, a short walk, industry talk.
<<if _id === "rebel_rhyder">>
<<if _rel >= 25>>
<<speech "rebel">>You’re not just booth meat anymore. I might pull you into something private. Stay useful.<</speech>>
<div style="color:#00e676;">Rebel trust high — future private scene path open (flag ready).</div>
<<set $rebelPrivateReady to true>>
<<elseif _rel >= 15>>
<<speech "rebel">>You lasted longer last time. Don’t get cocky. Text me when you improve.<</speech>>
<<else>>
<<speech "rebel">>Cute. Still green. Buy me another coffee when you’re less nervous.<</speech>>
<</if>>
<<elseif _id === "kira_noir">>
<<if _rel >= 25>>
<<speech "kira">>Dogfart remembers names. Keep your reputation clean and I might vouch for a real slot.<</speech>>
<div style="color:#00e676;">Kira vouch ready — Dogfart relation boost unlocked.</div>
<<set $kiraVouchReady to true>>
<<set $studioRelation["dogfart"] to Math.max($studioRelation["dogfart"], 10)>>
<<elseif _rel >= 15>>
<<speech "kira">>You’re improving. Don’t waste it on trash sets.<</speech>>
<<else>>
<<speech "kira">>Still proving yourself. Talk is cheap in this town.<</speech>>
<</if>>
<<else>>
<<if _rel >= 20>>
They laugh easier now. A real connection is forming — that can mean better chemistry on camera later.
<<else>>
Polite, professional, a little curious. Relation is building.
<</if>>
<</if>>
**<<print _name>> relation +5** (now $_rel) | Action –1
[[Return to City|City]]
[[Go Home|Bedroom Hub]]
<</if>><<if $actionsLeft < 1>>
You're out of actions for today. Sleep to advance to the next day.
[[Go Home|Bedroom Hub]]
<<else>>
<<goto $returnAfterAction>>
<</if>>There is a lot of future in this game as I foresee I will keep it open in the sense That there will be a lot of choices a lot of different endings not just a linear story you can customize the protagonist you can play as a black Dom or black sub. You can be a white Sub too trying to have a career in the porn industry.
Will be adding a lot of scenes with new and upcoming models and favorite artists, will be touching on many genres BDSM,cuckold, sissification, prostitution, etc
Thank you for your support.
you can now go back to the original game [[House Hub]]