Your browser lacks required capabilities. Please upgrade it or switch to another to continue.
Loading…
<<if $game.started>>
<img class="sidebar-profile" @src="$player.image">
<div class="sidebar-name" @style="'--player-color:' + $player.color">
<<= $player.name>>
</div>
<hr>
<div class="sidebar-section">
<div class="sidebar-row">
<span class="label">🕒 Time</span>
<span class="value"><<= setup.getTimeName()>></span>
</div>
<div class="sidebar-row">
<span class="label">📅 Weekday</span>
<span class="value"><<= setup.getWeekdayName()>></span>
</div>
<div class="sidebar-row">
<span class="label">🗓 Day</span>
<span class="value"><<= State.variables.game.day>></span>
</div>
</div>
<hr>
<div class="world-nav">
<<link "🏫">>
<<run setup.goTo("college")>>
<</link>>
<<link "🏙️">>
<<run setup.goTo("downtown")>>
<</link>>
<<link "🏠">>
<<run setup.goTo("hostel")>>
<</link>>
</div>
<hr>
<div class="sidebar-section">
<<set _stats = setup.getPlayerSidebarStats()>>
<<for _i = 0; _i < _stats.length; _i++>>
<<set _stat = _stats[_i]>>
<div class="sidebar-row"
@style="'--stat-color:' + _stat.color">
<span class="label">
<<= _stat.icon>> <<= _stat.name>>
</span>
<span class="value">
<<= _stat.value>>
</span>
</div>
<</for>>
</div>
<hr>
<div class="social-links">
<a href="https://discord.gg/3JyYyBKGQ" target="_blank" rel="noopener noreferrer">
<img src="media/background/discord_icon.png" alt="Discord">
</a>
<a href="https://www.patreon.com/cw/Admenz" target="_blank" rel="noopener noreferrer">
<img src="media/background/patreon_icon.png" alt="Patreon">
</a>
<a href="https://subscribestar.adult/admenz" target="_blank" rel="noopener noreferrer">
<img src="media/background/subscribestar_icon.png" alt="SubscribeStar">
</a>
</div>
<</if>><<run setup.initGameState()>><div id="sceneDialogue">
<img class="background" src="media/event/player/abella_playerEvent4.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "You head to the playground, figuring some movement would do you good. Near the basketball court, you spot Abella practicing alone."
},
{
type: "narration",
text: "She's trying to dunk. She jumps, reaches, and misses. Then she tries again. And again. Each attempt falls short."
},
{
type: "narration",
text: "After a while she notices you watching and stops, resting the ball against her hip."
},
{
speaker: "abella",
text: "Enjoying the show?"
},
{
speaker: "player",
text: "A little. You're here a lot, aren't you?"
},
{
speaker: "abella",
text: "Not just here."
},
{
speaker: "player",
text: "What do you mean?"
},
{
speaker: "abella",
text: "Not just the court. I train wherever I can. Track, basketball, whatever's available."
},
{
speaker: "abella",
text: "You just keep catching me on the court."
},
{
speaker: "player",
text: "You're trying to be good at everything?"
},
{
speaker: "abella",
text: "I'm trying to be great at everything."
},
{
speaker: "abella",
text: "Back home, I was usually the one everyone was chasing. Here, I'm surrounded by people who were the best wherever they came from."
},
{
speaker: "player",
text: "That serious?"
},
{
speaker: "abella",
text: "I hate being behind."
},
{
type: "narration",
text: "She bounces the ball once, jaw tightening a little."
},
{
speaker: "abella",
text: "I hate that feeling. I don't want anyone thinking they picked a nobody."
},
{
speaker: "player",
text: "So you're trying to claw your way back to the top."
},
{
speaker: "abella",
text: "Something like that."
},
{
type: "narration",
text: "She glances at the rim, then back at you."
},
{
speaker: "player",
text: "You've got the drive. But you're making it harder than it needs to be."
},
{
speaker: "abella",
text: "Yeah?"
},
{
speaker: "player",
text: "Your body's too stiff when you jump. Your dribbling's loose. And your form falls apart the second you go for the shot."
},
{
type: "narration",
text: "Abella looks at you for a second, then lets out a short breath."
},
{
speaker: "abella",
text: "Yeah… you're right."
},
{
speaker: "abella",
text: "You wanna show me instead of just talking about it?"
}
]) >>
</div>
<div id="continue1">
<hr>
<center>
<<link "Show her">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
speaker: "player",
text: "We'll start with your stretching."
}
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaStretch.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She's rushing through the motions. You step in, correct her posture, and guide her properly. Your hands stay on her longer than they need to… and she doesn't pull away."
},
{
speaker: "abella",
text: "Okay… that does feel better."
},
{
speaker: "player",
text: "Because you're not forcing it anymore."
},
{
speaker: "abella",
text: "You're good with your hands. I'll give you that."
},
{
speaker: "player",
text: "Now show me your dribble."
},
{
type: "narration",
text: "Abella starts bouncing the ball. It's messy — too high, off-rhythm, and her control keeps slipping."
},
{
speaker: "player",
text: "Stop."
},
{
speaker: "abella",
text: "That bad?"
},
{
speaker: "player",
text: "You're fighting the ball instead of controlling it."
}
]) >>
<</append>>
<<replace "#continue1">>
<div id="continue2">
<hr>
<center>
<<link "Correct her">>
<<append "#sceneDialogue">>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaDribble.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You step in close, adjusting her fingers and the way she handles the ball. Every correction brings your body against hers."
},
{
speaker: "abella",
text: "Yeah… that's smoother."
},
{
speaker: "player",
text: "You're thinking too much. Just control it."
},
{
speaker: "abella",
text: "Easy for you to say when you're pressed up against me like this."
},
{
type: "narration",
text: "She says it with a small smile, clearly not complaining."
},
{
speaker: "player",
text: "Now show me your shot."
},
{
type: "narration",
text: "Abella sets her feet and goes for it. The form collapses immediately — elbows out, rushed release, no balance."
},
{
speaker: "player",
text: "Stop."
},
{
speaker: "abella",
text: "Let me guess. Terrible?"
},
{
speaker: "player",
text: "Your form falls apart the second you load the shot."
}
]) >>
<</append>>
<<replace "#continue2">>
<div id="continue3">
<hr>
<center>
<<link "Correct her">>
<<append "#sceneDialogue">>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaForm.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You move behind her, adjusting her arms and stance. She's focused, but she leans back into you more than necessary."
},
{
speaker: "abella",
text: "That feels a lot cleaner."
},
{
speaker: "player",
text: "Because your form isn't collapsing anymore."
},
{
speaker: "abella",
text: "Keep doing that and maybe I'll finally start closing the gap."
},
{
type: "narration",
text: "After a while, Abella steps back and wipes her forehead, breathing a little harder."
},
{
speaker: "abella",
text: "Alright. That's enough for today."
},
{
speaker: "player",
text: "Getting tired?"
},
{
speaker: "abella",
text: "Getting distracted."
},
{
type: "narration",
text: "She looks at you when she says it, not even trying to hide the meaning."
},
{
speaker: "abella",
text: "I need to get better. Fast. I can't keep being average here."
},
{
speaker: "abella",
text: "Your way of teaching actually works… I want you to keep training me."
},
{
speaker: "player",
text: "That was just the warm-up."
},
{
speaker: "player",
text: "If I'm training you across every sport, I'm going to break you down properly."
},
{
type: "narration",
text: "For a second, Abella just looks at you. Then that competitive smile slowly returns."
},
{
speaker: "abella",
text: "…Good."
},
{
speaker: "abella",
text: "Then don't hold back."
},
{
type: "narration",
text: "She steps closer, close enough that her chest almost brushes against you, eyes locked on yours."
},
{
speaker: "abella",
text: "I can take it."
},
{
type: "narration",
text: "She backs away with a small, challenging smile, spinning the ball on her finger as she walks off the court."
}
]) >>
<</append>>
<<replace "#continue3">>
<div id="continue4">
<hr>
<center>
<<link "Leave Court">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<img class="background" src="media/event/abella/abellaEvent2Waiting.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "Evening. The playground is almost empty when you arrive. Abella is already there, spinning a basketball on her finger."
},
{
speaker: "abella",
text: "You're late."
},
{
speaker: "player",
text: "Had to make you wait a little. Builds character."
},
{
speaker: "player",
text: "You sure you're ready for this?"
},
{
speaker: "abella",
text: "Try me."
},
{
speaker: "player",
text: "Confident."
},
{
speaker: "abella",
text: "Just try to keep up."
},
{
type: "narration",
text: "You pull your shirt off in one motion and toss it aside. Abella's eyes drop immediately, lingering on your chest and stomach longer than she pretends."
},
{
speaker: "abella",
text: "Fuck… okay. That's unfair."
},
{
speaker: "player",
text: "You told me not to hold back. Figured I'd start by not giving the shirt a chance to survive."
},
{
speaker: "abella",
text: "You're really going to make this difficult, aren't you?"
},
{
speaker: "player",
text: "That's the idea. Try to take the ball from me."
},
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Challenge her">>
<<append "#sceneDialogue">>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaEvent2Challenge.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You start moving. Abella comes at you hard — hands, body, everything. She lunges, reaches, tries to body you off balance. Every attempt fails. You're always a step ahead, keeping the ball just out of reach."
},
{
type: "narration",
text: "Minutes pass. She's breathing heavier, frustration building with every failed grab."
},
{
speaker: "player",
text: "Come on, is that all my little bitch can manage?"
},
{
speaker: "abella",
text: "Shut up."
},
{
speaker: "player",
text: "What's wrong, slut? Want me to slow down and go easy on you? I can… if this is already too much for a pathetic little bitch like you."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaEvent2Push.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "That does it. Abella's eyes flash. She shoves you hard in the chest. You stumble back until your shoulders hit the metal pole."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaEvent2Kiss.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Before you can recover she jumps on you — legs wrapping around your waist, mouth crashing into yours. The kiss is wild, angry, hungry. She bites your lip and drags her tongue against yours like she's trying to win this too."
},
{
speaker: "abella",
text: "Mmm—"
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaEvent2Boobs.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You don't let her stay in control. Your hands shove her top up and off in one rough pull. Her tits spill free and you take one into your mouth immediately, sucking hard while your tongue flicks over the nipple."
},
{
speaker: "abella",
text: "Ahh—fuck…"
},
{
type: "narration",
text: "You keep going, switching between both until she's arching against you. Then you grip her thighs and set her down."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaEvent2Finger.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You spin her around so her back is against your chest, then shove one hand straight down the front of her shorts. Your fingers find her immediately — she's already soaked."
},
{
type: "narration",
text: "You start rubbing her clit in tight, firm circles. Her head drops back against your shoulder."
},
{
speaker: "abella",
text: "Don't stop—please don't stop—"
},
{
type: "narration",
text: "Her moans get louder, thighs trembling against your hand… then every light on the playground dies at once. The whole campus goes dark."
},
{
type: "narration",
text: "You both freeze for a second, breathing hard."
},
{
speaker: "abella",
text: "Are you fucking kidding me? Why now?"
},
])>>
<</append>>
<<replace "#continue1">>
<div id = "continue2">
<hr>
<center>
<<link "Leave court with her">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
type: "narration",
text: "She pulls her top back on quickly. The two of you start walking toward the hostel, still close enough that your arms keep brushing."
},
{
speaker: "abella",
text: "Somehow, I actually got better at it… and then you went and made the whole thing a lot more interesting."
},
{
speaker: "player",
text: "You did. You just decided to climb me and shove your tongue down my throat the second I pushed you."
},
{
speaker: "abella",
text: "That was on you. You had me frustrated and wet at the same time… and then you just kept pushing."
},
{
speaker: "player",
text: "You're still wet though, aren't you?"
},
{
type: "narration",
text: "Abella doesn't answer right away. Then a small, breathless laugh escapes her."
},
{
speaker: "abella",
text: "…Yeah. I am."
},
{
speaker: "abella",
text: "Next time, I'm coming prepared. And you're not stopping until I'm done."
}
]) >>
<</append>>
<<replace "#continue2">>
<div id = "continue3">
<hr>
<center>
<<link "Continue">>
<<run setup.finishEvent()>>
<</link>>
</center></div>
<</replace>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "You walked into the library and spotted Abella in a quiet corner by herself. She scribbled something on a page, stared at it for a second, then tore it out, crushed it in her fist, and threw it on the floor."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaEvent3Sitting1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "A whole pile of crumpled papers already surrounded her chair. You walked over."
},
{
speaker: "player",
text: "What's got you looking so fucking frustrated? La Sirena told me you still haven't submitted your research."
},
{
speaker: "abella",
text: "I've been drowning in practice. Tryouts are right around the corner so every free second goes to the court. And on top of that I've got this research I barely understand."
},
{
speaker: "player",
text: "What topic did you even pick?"
},
{
speaker: "abella",
text: "Physics in sports. Showing how all that force and motion shit actually works when you're playing. I've finished most of it… but this oscillation part is killing me. I'm trying to write it in my own words and I just don't get it."
},
{
speaker: "player",
text: "You're lucky as hell then. I just got the best Physics notes on campus. Oscillation's in there with some of the cleanrest explanations you'll find."
},
{
type: "narration",
text: "You pulled out Riley's notebook and handed it to her. Abella's whole face lit up."
},
{
speaker: "abella",
text: "Fuck… thank you. Seriously. I'll copy what I need before the library closes."
},
{
speaker: "player",
text: "Don't stress. You'll finish in time. I'll pick up all these crushed pages while you write."
},
{
type: "narration",
text: "Abella immediately opened the notebook and started writing. You crouched down and began gathering the crumpled papers around her chair."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaEvent3Kiss1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "When you reached for the ones right by her legs, she suddenly grabbed your face with both hands and pulled you into a deep, desperate kiss — tongue, heat, zero hesitation."
},
{
type: "narration",
text: "You didn't fight it. You guided her body until she was sitting on the edge of the table, still kissing you hard while your hands slid up her sides."
},
{
speaker: "abella",
text: "Mmm… fuck—"
},
{
type: "narration",
text: "Footsteps echoed from the main aisle. You broke the kiss. Abella quickly fixed her top and sat up straight just as the janitor walked in."
},
{
speaker: "janitor",
text: "Didn't know any students were still here. It's closing time. You two need to leave."
},
{
type: "narration",
text: "Abella scooped up the notebook and her half-finished pages. The two of you walked out toward the hostel. Once you were outside she let out a frustrated breath."
},
{
speaker: "abella",
text: "Shit… I didn't finish writing everything down."
},
{
type: "narration",
text: "She glanced at you, cheeks still flushed."
},
{
speaker: "abella",
text: "I couldn't control myself. I've been dripping wet since the second I saw you walk over. My brain just shut off."
},
{
speaker: "abella",
text: "Can I please take these notes with me? I really need to finish this tonight or La Sirena won't accept the research later."
},
{
speaker: "player",
text: "Take them. Just get it done."
},
{
type: "narration",
text: "Abella gave you a quick, hungry look, then headed toward her room with the notebook clutched tight against her chest."
}
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Continue">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "You walked into the library and found Abella in the same quiet corner as last time. She was staring at the open notebook with that same frustrated look."
},
{
speaker: "player",
text: "Still looking pissed. You didn't finish copying everything?"
},
{
speaker: "abella",
text: "I copied all of it. But that doesn't mean I understand it."
},
{
speaker: "abella",
text: "I still have to apply this shit in real life and get some pictures or proof for the research. I have no fucking idea how I'm supposed to do that."
},
{
type: "narration",
text: "You looked at her for a second, then walked straight over, grabbed her by the waist, and lifted her onto the table."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaEvent4Kiss1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Before she could say anything you kissed her hard, yanked her top up, and started sucking on her tits while your hands squeezed them. Abella moaned into your mouth and kissed you back like she'd been waiting for it, trying to keep the sounds quiet."
},
{
speaker: "abella",
text: "Mmm… fuck… we're in the library—"
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaEvent4Kiss2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You unzipped your pants. Your cock sprang free and pressed against her stomach while you kept kissing her. Abella froze, pulled back, and stared down between you with wide eyes."
},
{
speaker: "abella",
text: "Holy shit… your body is still a foot away and this thing is already digging into my stomach. How the fuck is it this long? How do you even play every sport with a cock this massive hanging between your legs?"
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaEvent4Handjob1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "player",
text: "Shut the fuck up, slut. Stop talking and stroke this big dick."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaEvent4Handjob2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Abella immediately wrapped both hands around it and started stroking, still staring at the size."
},
{
speaker: "player",
text: "Drop to your knees, whore."
},
{
type: "narration",
text: "She slid off the table and dropped to her knees in front of you. Up close her eyes went even wider."
},
{
speaker: "abella",
text: "Fuck… it looks even bigger from down here. My hands don't even cover half of it."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaEvent4Handjob3.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She kept stroking, long steady strokes from base to tip."
},
{
speaker: "player",
text: "I'm your fucking professor right now, bitch. And I'm going to teach you what oscillation actually is. Keep stroking."
},
{
speaker: "abella",
text: "Yes, professor…"
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaEvent4Handjob4.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "player",
text: "The way you're sliding your hands all the way up and down this cock—that's oscillation. Don't stop."
},
{
speaker: "abella",
text: "So me jerking this fat cock up and down is oscillation?"
},
{
speaker: "player",
text: "Exactly. Now don't stop."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaEvent4Handjob5.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Abella stroked faster, spit running down your shaft, eyes locked on your cock."
},
{
speaker: "abella",
text: "Cum for me, professor. Cum all over my tits."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/abella/abellaEvent4Cum1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You took your cock from her hands and stroked it yourself right in front of her face. A few seconds later you came hard, thick ropes shooting across her tits."
},
{
speaker: "abella",
text: "Fuck… there's so much. It's so warm… it's dripping down my stomach."
},
{
type: "narration",
text: "She wiped some of it with her fingers, then pulled her top back down and stood up, still breathing hard."
},
{
speaker: "abella",
text: "I sat here for hours not understanding a single word… and it was this simple the whole time."
},
{
speaker: "player",
text: "You were trying to make it complicated. Just demonstrate the same principle with something you actually understand."
},
{
speaker: "abella",
text: "I still need images and proof for the research though. What am I supposed to do—put my hands around this massive cock and take a picture?"
},
{
speaker: "player",
text: "Just switch it. Use yourself dribbling a basketball instead. Same motion."
},
{
speaker: "abella",
text: "That's actually perfect… thank you for the lesson, professor. My pussy's still throbbing from it."
},
{
type: "narration",
text: "She gave your cock one last lingering look, then grabbed her notebook and left the library with your cum still drying on her skin under her top."
}
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Continue">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div><img class="background" src="media/background/classroom_bg.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "Class ends and most of the students start leaving. You wait a moment before walking up to Angela's desk. She notices you immediately."
},
{
speaker: "player",
text: "Do you have a minute?"
},
{
speaker: "angela",
text: "For you? Always."
},
{
type: "narration",
text: "She leans her hip against the desk, eyes moving over you openly."
},
{
speaker: "player",
text: "I joined a month late. I wanted to ask how I should cover everything I missed."
},
{
speaker: "angela",
text: "Most guys who look like you don't usually care about missed lectures. They're busy with other things."
},
{
type: "narration",
text: "Her gaze drops down your body and slowly climbs back up."
},
{
speaker: "angela",
text: "But here you are, actually asking. I wasn't expecting that."
},
{
speaker: "player",
text: "I just don't want to fall behind."
},
{
speaker: "angela",
text: "That's… really attractive, honestly."
},
{
type: "narration",
text: "She shifts a little closer, voice dropping slightly."
}
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/activity/attendClass_vid5.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "angela",
text: "There is a way. Private sessions. Just you and me."
},
{
speaker: "angela",
text: "I'll go over everything you missed, and I'll use proper examples. Practical ones. So you actually understand it instead of just memorizing."
},
{
speaker: "player",
text: "Practical ones?"
},
{
speaker: "angela",
text: "The kind you feel. Not the kind you only write down."
},
{
type: "narration",
text: "The way she says it leaves very little to the imagination."
},
{
speaker: "angela",
text: "I won't give you notes or handouts. The others already have everything from the past month. Get those from someone else."
},
{
speaker: "angela",
text: "I'll handle the teaching. You show up, pay attention, and put in real effort… and I'll make sure you don't just catch up."
},
{
speaker: "angela",
text: "You'll understand it better than half the class."
},
{
speaker: "player",
text: "That's a strong promise."
},
{
speaker: "angela",
text: "I don't make weak ones."
},
{
speaker: "angela",
text: "Get the notes, catch up as much as you can, and then come see me. I'll take care of the rest."
},
{
type: "narration",
text: "She looks at you like she already knows these private sessions are going to get a lot more interesting than studying."
}
]) >>
<hr>
<center>
<<link "Leave classroom">>
<<run setup.finishEvent()>>
<</link>>
</center><div id = "sceneDialogue">
<img class="background" src="media/background/classroom_bg.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "It's already evening when you find Angela still in the classroom, packing up her things."
},
{
speaker: "player",
text: "You told me to come when I was ready. So here I am."
},
{
type: "narration",
text: "Angela looks you up and down, a slow smirk spreading across her face."
},
{
speaker: "angela",
text: "About time. But it's late… and I don't feel like staying in this empty building. Come to my place. We'll do it there."
},
{
type: "narration",
text: "Twenty minutes later the door to her apartment closes behind you."
},
{
speaker: "angela",
text: "Make yourself comfortable on the couch. I'm gonna freshen up and change into something better for teaching."
},
{
type: "narration",
text: "You sit down while she disappears down the hall. The shower runs for a few minutes, then you hear her moving around in the bedroom."
},
{
type: "narration",
text: "A moment later, you feel her come up behind you."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/angela/angelaEvent2WalkIn.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Angela is wearing a tight red one-piece bikini. The fabric digs into her hips and the neckline plunges so deep her cleavage looks ready to spill out. There's almost nothing left to the imagination."
},
{
speaker: "angela",
text: "Well? You just gonna stare or are you gonna say something?"
},
{
speaker: "player",
text: "Fuck, you look good enough to eat… but these aren't exactly teaching clothes."
},
{
speaker: "angela",
text: "You've been eye-fucking me since day one. Not like there's much left you haven't already imagined."
},
{
type: "narration",
text: "She steps around the couch and stands in front of you, completely unbothered."
},
{
speaker: "angela",
text: "Honestly, even this is overdressed for me. Most nights I just stay in panties… or nothing at all."
},
{
speaker: "player",
text: "You're really not helping."
},
{
speaker: "angela",
text: "Wasn't trying to."
},
{
type: "narration",
text: "She smirks and tilts her head."
},
{
speaker: "angela",
text: "Did you get the notes?"
},
{
type: "narration",
text: "You hand them over. She flips through a few pages."
},
{
speaker: "angela",
text: "Ah… biology. Great. These are actually extremely clear. You might not even need me to explain anything."
},
{
speaker: "player",
text: "I just copied them from Eva while we were talking. Haven't even looked at them since. I still don't know what any of it means — testosterone, estrogen, oxytocin, dopamine, adrenaline, cortisol, trigeminal nerve… none of it."
},
{
type: "narration",
text: "Angela sets the notebook down."
},
{
speaker: "angela",
text: "Oh, this is going to be fun. You really know none of it?"
},
{
speaker: "angela",
text: "Dopamine is a neurotransmitter involved in reward and motivation.\nOxytocin is a hormone associated with social bonding and attachment.\nAdrenaline is a hormone and neurotransmitter that prepares the body for increased activity.\nTestosterone is the primary male sex hormone responsible for libido and secondary sexual characteristics.\nEstrogen is the primary female sex hormone involved in reproductive function and arousal response.\nThe trigeminal nerve is the cranial nerve responsible for sensation in the face and mouth."
},
{
type: "narration",
text: "She finishes without so much as pausing for breath, then looks at you expectantly."
},
{
speaker: "angela",
text: "Clear?"
},
{
speaker: "player",
text: "What the hell was that? You just threw all that at me in one breath and expected me to understand it."
},
{
type: "narration",
text: "Angela's lips curl into a knowing smile."
},
{
speaker: "angela",
text: "Yeah... I figured that might happen."
},
{
speaker: "player",
text: "You did that on purpose, didn't you?"
},
{
speaker: "angela",
text: "Maybe."
},
{
type: "narration",
text: "She steps closer."
},
{
speaker: "angela",
text: "Don't worry. I've got a much better way to explain it to you."
},
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Continue">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
type: "narration",
text: "She grabs the front of your shirt and pulls you into a deep, messy kiss, tongue sliding against yours like she's been thinking about it all day."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/angela/angelaEvent2Kiss1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "angela",
text: "That pressure… the heat… the way my tongue felt against yours. That's your trigeminal nerve registering all of it."
},
{
type: "narration",
text: "She kisses you again, slower this time, sucking lightly on your bottom lip before letting go."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/angela/angelaEvent2Kiss2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "angela",
text: "And that little hunger you just felt? The part of you that already wants another one? That's your dopamine screaming for more."
},
{
type: "narration",
text: "Her next kiss is deeper. She presses her body flush against yours, one hand sliding up into your hair."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/angela/angelaEvent2Kiss3.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "angela",
text: "Feel that sudden need to keep me right here? That warm, sticky closeness? That's your oxytocin kicking in."
},
{
type: "narration",
text: "She doesn't give you much time to breathe before kissing you again, harder, almost like she's trying to steal the air out of your lungs."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/angela/angelaEvent2Kiss4.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "angela",
text: "Your heart's racing. You're breathing faster. Your skin's getting hot. That's adrenaline, baby. Your body knows something good is happening."
},
{
type: "narration",
text: "This time when she kisses you, she grinds against the front of your pants just enough for you to feel it."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/angela/angelaEvent2Kiss5.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "angela",
text: "And that… that thick, heavy throb between your legs? Pure testosterone. Your cock doesn't lie."
},
{
type: "narration",
text: "She grabs your wrist and shoves your hand between her legs. The red fabric is stuck to her, completely wet."
},
{
speaker: "angela",
text: "I've been soaking through my panties for you since the moment you walked into my class. That's your estrogen lesson right there…"
},
{
type: "narration",
text: "Angela's voice stays even, almost clinical, but her eyes are anything but."
},
{
speaker: "angela",
text: "See? Much easier when I show you."
},
{
speaker: "player",
text: "Fuck yeah… I don't think I'm ever forgetting this lesson."
},
{
type: "narration",
text: "Angela slowly pulls your hand away and steps back, still watching you."
},
{
speaker: "angela",
text: "Good. Lesson over. Now go before I forget we're supposed to be studying."
},
]) >>
<</append>>
<<replace "#continue1">>
<div id = "continue2">
<hr>
<center>
<<link "Get out of her room">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div><div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/activity/attendClass_vid5.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "The moment the last student left the classroom, you shut the door and walked straight up to Angela. You didn't ask. You just grabbed her by the waist and kissed her hard."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/angela/angelaEvent3Kiss.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She let it happen for a few seconds — tongue, heat, the soft sound of it — before she broke the kiss and looked at you with a dangerous little smile."
},
{
speaker: "angela",
text: "Do that again in here and I'll bend you over this desk and teach the entire class human reproduction using your cock as the main visual aid."
},
{
speaker: "player",
text: "When's the next private lesson?"
},
{
speaker: "angela",
text: "Whenever you bring me the notes."
},
{
type: "narration",
text: "You exhaled, clearly not happy with that answer."
},
{
speaker: "player",
text: "Do we really need the notes? The way you teach… I'm not forgetting a single fucking thing. Your methods stick."
},
{
speaker: "angela",
text: "The notes still get you credits. And I don't want my favorite student losing points just because he'd rather learn with his tongue and fingers instead of a notebook."
},
{
speaker: "player",
text: "Fine. I'll take them from Eva."
},
{
speaker: "angela",
text: "Eva's a good choice. But for Physics, you should talk to Riley. She keeps the best notes."
},
{
speaker: "player",
text: "Come on… Biology was already filthy as hell. Why switch to Physics?"
},
{
speaker: "angela",
text: "Trust me. Physics is so much better. I think you'll find the practical demonstration particularly… educational."
},
{
type: "narration",
text: "The way she said it left no doubt what kind of 'demonstration' she meant."
},
{
speaker: "player",
text: "…Fine. I'll get the notes from Riley."
},
{
type: "narration",
text: "Angela smirked, clearly pleased, as you turned and left the classroom."
}
]) >>
<hr>
<center>
<<link "Get out of classroom">>
<<run setup.finishEvent()>>
<</link>>
</center><div id = "sceneDialogue">
<img class="background" src="media/event/angela/angelaEvent4.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "You walked into the cafeteria and saw Angela and Riley sitting together with coffee. You went straight over."
},
{
speaker: "player",
text: "Didn't expect to find the two hottest girls on campus at the same table."
},
{
type: "narration",
text: "Riley's cheeks went pink. Angela just smirked like she already knew where this was going."
},
{
speaker: "angela",
text: "Keep talking like that and one of us is gonna drag you out of here."
},
{
speaker: "player",
text: "I already got the Physics notes. Figured I'd collect on that private class."
},
{
speaker: "angela",
text: "You got them already?"
},
{
speaker: "player",
text: "From the same beautiful girl you told me had the best ones."
},
{
type: "narration",
text: "Riley looked down at her cup, trying not to smile too hard."
},
{
speaker: "angela",
text: "Told you he was sharp. Big muscles, bigger brain… dangerous combination."
},
{
speaker: "riley",
text: "Yeah… everything about him is just really big."
},
{
type: "narration",
text: "Angela took it literally. You didn't."
},
{
speaker: "angela",
text: "Since you've got the notes, you might as well come back to my place with me"
},
{
type: "narration",
text: "A few minutes later you were in her apartment. You barely sat down on the sofa before she pointed toward the bedroom."
},
{
speaker: "angela",
text: "Go get comfortable on the bed and take everything off, because I don't intend to waste any time once I come back."
},
])>>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Get Naked">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
type: "narration",
text: "You did as you were told. A minute later you felt her presence behind your head before you saw her."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/intimacy/angela/angelaRoomKiss3.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She leaned down and shoved her tongue into your mouth, kissing you deep and filthy while a soft moan slipped out of her."
},
{
speaker: "angela",
text: "Mmm… good. You're already hard. Perfect. I'm going to need that cock for this lesson."
},
{
speaker: "player",
text: "It's not even fully hard yet. You're going to have to do a lot more than kiss me if you want me completely ready."
},
{
type: "narration",
text: "Angela pulled back slightly and looked down between your legs, eyes widening."
},
{
speaker: "angela",
text: "Jesus Christ. It's already bigger soft than the biggest hard dick I've ever seen."
},
{
speaker: "player",
text: "Give me a few seconds with your tits in my mouth and you'll see how much bigger it gets."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/angela/angelaEvent4Lick1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You pulled her down, shoved her top aside, and latched onto one nipple, sucking hard while your tongue worked over it. Angela's breath hitched immediately."
},
{
speaker: "angela",
text: "Ahh… fuck—"
},
{
type: "narration",
text: "You kept going, switching between both breasts until she was breathing heavy. Then she suddenly pushed you back."
},
{
speaker: "angela",
text: "Shit… I can feel it against my pussy. It's like someone put a forearm between my legs, just heavier and hotter. Get off me before I forget this is supposed to be a class."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/angela/angelaEvent4Handjob1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You lay flat. Angela climbed onto the bed and sat between your thighs. She wrapped both hands around your cock and stared at it for a second."
},
{
speaker: "angela",
text: "Look at this fucking thing. Thick, heavy, and already so fucking hard… and I haven't even started."
},
{
type: "narration",
text: "She kept the slow pace, thumb dragging over the head every few strokes."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/angela/angelaEvent4Boobjob1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "After a while she shifted, pushed her tits together around your cock, and started moving."
},
{
speaker: "angela",
text: "There we go… fuck my tits properly."
},
{
speaker: "player",
text: "They're so fucking soft… and tight when you squeeze them like that."
},
{
speaker: "angela",
text: "Yeah? Then don't hold back. Use them."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/angela/angelaEvent4Boobjob2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She picked up the pace, bouncing her tits up and down your length, spit running down between them to keep it wet."
},
{
speaker: "angela",
text: "That's it… stretch them out with that thick cock."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/angela/angelaEvent4Handjob2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She suddenly pulled back, grabbed your dick again, and started jerking you fast and hard."
},
{
speaker: "angela",
text: "You wanna fuck my tits again after this, don't you?"
},
{
speaker: "player",
text: "I want to cover them. Then fuck them again while they're still messy."
},
{
speaker: "angela",
text: "Then cum. I want your cum. Shoot it all over my face so you can fuck my tits while I'm still dripping with it."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/angela/angelaEvent4Cum1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She stroked you faster, tighter, eyes locked on yours until you came hard across her face — thick ropes landing on her cheeks, lips, and tongue."
},
{
type: "narration",
text: "Angela lay back on the bed, breathing hard, cum still on her face. Then her eyes dropped between your legs and widened."
},
{
speaker: "angela",
text: "You're still rock hard… after all that. What the fuck."
},
])>>
<</append>>
<<replace "#continue1">>
<div id = "continue2">
<hr>
<center>
<<link "Fuck her tits">>
<<append "#sceneDialogue">>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/angela/angelaEvent4Boobjob3.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You moved up, straddled her chest, and pushed your cock back between her tits while she sucked you balls, moning against them as she rubbed her pussy like she couldn't stop."
},
{
speaker: "player",
text: "Keep them pressed together. I'm not stopping until I coat them."
},
{
type: "narration",
text: "You fucked her tits hard, the wet sound of it filling the room. After a while she slipped out from under you and dropped to her knees on the floor."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/angela/angelaEvent4Boobjob4.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Angela pushed her big tits together around your cock again and started bouncing them up and down your length, spit-slick and tight."
},
{
speaker: "angela",
text: "That's it… use them. Fuck my tits like you own them."
},
{
speaker: "player",
text: "Show me that tongue. You've been wanting this cum since we walked in the door."
},
{
type: "narration",
text: "She stuck her tongue out immediately, looking up at you while she kept working her tits around your cock. The head of your dick kept sliding against her tongue with every thrust."
},
{
speaker: "angela",
text: "Mmm… give it to me. Cover them."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/angela/angelaEvent4Cum2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You lasted only a little longer before you came hard, thick ropes shooting across her tits while she kept stroking you between them until you finished."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/angela/angelaEvent4Swallow1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She slowly gathered every drop with her fingers, licked her hand clean, and opened her mouth to show you it was gone."
},
{
speaker: "angela",
text: "Tastes even better than I expected… thick and fucking sweet."
},
{
speaker: "player",
text: "You didn't teach me a single thing about Physics."
},
{
speaker: "angela",
text: "Fuck Physics. Your dick made me forget we were even supposed to be studying."
},
{
type: "narration",
text: "She stood up, still messy, and nodded toward the door."
},
{
speaker: "angela",
text: "I'm taking a shower. You can let yourself out… before I decide I'm not done with you."
}
])>>
<</append>>
<<replace "#continue2">>
<div id = "continue3">
<hr>
<center>
<<link "Leave her room">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div><<= setup.renderCurrentActivity()>>
<center>
<<link "Continue">>
<<run setup.finishActivity()>>
<</link>>
</center><div class="guide-container">
<div class="guide-intro">
<div class="guide-intro-title">
Need a little help?
</div>
<div class="guide-intro-text">
See something greyed out? Move along, champ. She might be out, or the room might still be off-limits.<br>Can't interact with her yet? You'll meet her when the time comes. 😉
</div>
</div>
<<set _guides = setup.getAllGuides()>>
<<set _owners = Object.keys(_guides)>>
<<for _i = 0; _i < _owners.length; _i++>>
<<set _owner = _owners[_i]>>
<<set _guide = _guides[_owner]>>
<<for _i = 0; _i < _owners.length; _i++>>
<<set _owner = _owners[_i]>>
<div class="guide-entry">
<<= setup.renderGuideDialogue(_owner)>>
</div>
<</for>>
<</for>>
</div><<= setup.renderCurrentIntimacy()>><<= setup.renderLocation()>><<= setup.renderCurrentActivity()>>
<center>
<<link "Wake Up">>
<<run setup.finishSleep()>>
<</link>>
</center><img class="background" src="media/background/classroom_bg.jpg">
<div id="sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "Class had just ended. Most students were already packing up and leaving. Eva was quietly putting her things away when she glanced at you beside her. The second your eyes met, her whole face softened into the warmest little smile."
},
{
speaker: "player",
text: "Hey Eva."
},
{
speaker: "eva",
text: "Hi."
},
{
type: "narration",
text: "She tucks a strand of hair behind her ear, still smiling like just talking to you is the best part of her day."
},
{
speaker: "player",
text: "Can I ask you for a favor? I need last month's notes. I'm kind of drowning trying to catch up."
},
{
speaker: "eva",
text: "Of course."
},
{
type: "narration",
text: "She reaches into her bag and pulls out a notebook. Then another. And another."
},
{
speaker: "player",
text: "...How many notebooks do you have?"
},
{
speaker: "eva",
text: "You came a month late."
},
{
speaker: "player",
text: "Right. Fair enough."
},
{
type: "narration",
text: "She looks at the small pile, then picks one up."
},
{
speaker: "eva",
text: "Here. Start with this one."
},
{
speaker: "player",
text: "Biology?"
},
{
speaker: "eva",
text: "Yeah. That's probably a good place to start."
},
{
speaker: "player",
text: "Okay…"
},
{
type: "narration",
text: "You open the notebook, flipping through a few pages."
},
{
speaker: "player",
text: "These are insanely detailed."
},
{
speaker: "eva",
text: "I told you. I write everything down."
},
{
type: "narration",
text: "You point at a particularly tiny line."
},
{
speaker: "player",
text: "What does this even say?"
},
{
type: "narration",
text: "She leans in close. Her shoulder presses gently against yours. She doesn't pull away."
},
{
speaker: "eva",
text: "That's mitochondria."
},
{
speaker: "player",
text: "That says mitochondria?"
},
{
speaker: "eva",
text: "Yes."
},
{
type: "narration",
text: "She's smiling, a little embarrassed."
},
{
speaker: "player",
text: "Your handwriting is tiny as hell."
},
{
speaker: "eva",
text: "I know…"
},
{
type: "narration",
text: "She glances at you sideways, cheeks already pink, but the smile doesn't leave her face."
},
{
speaker: "player",
text: "I'm going to need your help with some of this. Would you stay a little and walk me through the parts I can't read? Please?"
},
{
speaker: "eva",
text: "Yeah. Of course I'll stay."
}
]) >>
</div>
<div id="continue1">
<hr>
<center>
<<link "Continue">>
<<append "#sceneDialogue">>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/eva/evaTalk.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She nods immediately, eyes bright. She shifts her chair even closer until her knee rests against yours under the table and leaves it there. Every time you look up she's already looking at you. When your eyes meet she holds the gaze, soft and open, before glancing down with that small private smile that only seems to exist for you."
},
{
type: "narration",
text: "A few quiet minutes pass while she explains and you write. She keeps finding little reasons to lean in."
},
{
speaker: "player",
text: "You looked like you were in a hurry earlier. Boyfriend waiting for you at the library or something?"
},
{
speaker: "eva",
text: "No. I don't have a boyfriend."
},
{
type: "narration",
text: "She lets out a soft laugh, shaking her head."
},
{
speaker: "player",
text: "Seriously? I just… I figured someone would've gotten to you by now. You're beautiful, you're smart, you're kind… I honestly assumed you already had someone."
},
{
speaker: "eva",
text: "No. I've never had a boyfriend."
},
{
speaker: "player",
text: "How is that possible? You're so beautiful. And ridiculously smart."
},
{
speaker: "eva",
text: "A few people have asked. But the thought of dating always… kind of creeped me out. I never felt ready for any of it."
},
{
speaker: "player",
text: "Don't tell me you're into girls then."
},
{
speaker: "eva",
text: "No. I'm not. I just never felt it with anyone before."
},
{
type: "narration",
text: "She quickly shakes her head, still smiling a little despite the blush."
},
{
speaker: "player",
text: "Good. Was starting to worry you only got off to lesbian porn."
},
{
speaker: "eva",
text: "Umm… I've never seen porn."
},
{
type: "narration",
text: "Her face goes properly red."
},
{
speaker: "player",
text: "What? You're serious?"
},
{
speaker: "eva",
text: "Yeah…"
},
{
speaker: "player",
text: "Then what do you think about when you touch yourself?"
},
{
speaker: "eva",
text: "I've never… masturbated. I don't really know how. Or what I'm supposed to feel."
},
{
type: "narration",
text: "Her voice is barely above a whisper. She's staring hard at the desk, so embarrassed her ears are pink, but she still hasn't moved her knee away from yours. When she finally risks a glance up, her eyes are shy and trusting all at once."
},
{
type: "narration",
text: "You finally finish copying the first chapter. There's plenty more left, but neither of you seems particularly eager to break the moment just yet."
}
]) >>
<</append>>
<<replace "#continue1">>
<div id="continue2">
<hr>
<center>
<<link "Continue">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
speaker: "player",
text: "Eva… all that stuff about dating feeling creepy. It only feels that way when it's the wrong person. When it's the right one, it doesn't feel scary at all. It feels good. Safe. Like you actually want more of it. Like just sitting next to them already makes everything else quieter."
},
{
type: "narration",
text: "Eva is quiet for a second. Her cheeks are warm. She looks at you like she's deciding whether to be brave."
},
{
speaker: "eva",
text: "…Do you mean the way I feel right now? When I'm around you it doesn't feel scary. It just feels… nice. I like it. I've never felt this with anyone else."
}
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/eva/evaInvite.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You smile softly, watching the shy little smile on her face."
},
{
speaker: "player",
text: "Then... I'd like to take you out sometime. A real date. Whenever you're ready."
},
{
type: "narration",
text: "Eva freezes for a second, her eyes widening before the brightest smile spreads across her face. Her cheeks turn pink almost instantly."
},
{
speaker: "eva",
text: "I'd... really like that."
},
{
speaker: "player",
text: "Tuesday evening. Coffee?"
},
{
type: "narration",
text: "She nods quickly, still smiling, then looks down, suddenly too shy to meet your eyes."
},
{
speaker: "eva",
text: "Yes..."
},
{
type: "narration",
text: "She gives your hand a gentle squeeze, her smile refusing to fade."
}
]) >>
<</append>>
<<replace "#continue2">>
<div id="continue3">
<hr>
<center>
<<link "Continue">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "You reach the meeting spot and find Eva already waiting. The second she sees you, her face lights up. She's holding two cups of coffee and immediately holds one out to you."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/eva/evaEvent2Exchange.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "eva",
text: "I got us coffee. I didn't know what you liked so I just got the same as mine."
},
{
type: "narration",
text: "You take it. Her fingers brush yours."
},
{
type: "narration",
text: "Then you bring the bouquet out from behind you."
},
{
speaker: "player",
text: "These are for you."
},
{
speaker: "player",
text: "For the most beautiful girl I've seen since I got here."
},
{
type: "narration",
text: "Eva freezes for a second, eyes wide, then carefully takes the roses. Her cheeks turn pink almost immediately."
},
{
speaker: "eva",
text: "You… really think that?"
},
{
speaker: "player",
text: "I wouldn't say it if I didn't."
},
{
type: "narration",
text: "She looks down at the flowers, then back at you, smiling like she's trying not to show how happy she is."
},
])>>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Sit Together">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
type: "narration",
text: "You sit together on a quiet bench. Eva keeps the bouquet close, occasionally glancing at it like she still can't quite believe it's real. The conversation stays light and easy — nothing about classes or studying. Just the two of you."
},
{
speaker: "eva",
text: "This still feels a little unreal."
},
{
speaker: "player",
text: "What does?"
},
{
speaker: "eva",
text: "Sitting here with you like this."
},
{
type: "narration",
text: "She gives a small laugh."
},
{
speaker: "eva",
text: "I used to think people only felt like this in stories."
},
{
type: "narration",
text: "You're about to answer when your phone rings. Grandma is calling on video."
},
{
type: "narration",
text: "You answer."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/eva/evaEvent2GrandmaCall.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "grandma",
text: "There you are. I was starting to think you forgot about me."
},
{
speaker: "player",
text: "I'm here."
},
{
type: "narration",
text: "That's when she notices Eva sitting beside you."
},
{
speaker: "grandma",
text: "Oh. Hello there."
},
{
type: "narration",
text: "Eva straightens a little, polite and a bit nervous."
},
{
speaker: "eva",
text: "Hello, ma'am."
},
{
speaker: "grandma",
text: "Ma'am makes me feel old. You can call me Grandma if you want."
},
{
type: "narration",
text: "She smiles warmly."
},
{
speaker: "grandma",
text: "Aren't you lovely. Really lovely."
},
{
type: "narration",
text: "Eva's cheeks flush."
},
{
speaker: "grandma",
text: "What's your name, sweetheart?"
},
{
speaker: "eva",
text: "Eva."
},
{
speaker: "grandma",
text: "Eva. It suits you."
},
{
type: "narration",
text: "She looks between the two of you for a moment, clearly pleased."
},
{
speaker: "grandma",
text: "You two look like you were made for each other."
},
{
type: "narration",
text: "Eva's blush deepens."
},
{
speaker: "grandma",
text: "You be good to her, you hear me? A girl like that doesn't come around twice."
},
{
speaker: "player",
text: "I will."
},
{
speaker: "grandma",
text: "Good. It was very nice meeting you, Eva."
},
{
speaker: "eva",
text: "You too."
}
])>>
<</append>>
<<replace "#continue1">>
<div id = "continue2">
<hr>
<center>
<<link "Hang Up">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
type: "narration",
text: "Eva is still smiling."
},
{
speaker: "eva",
text: "She's… honestly the coolest."
},
{
speaker: "player",
text: "She's been like that my whole life. I grew up with her."
},
{
type: "narration",
text: "Eva looks at you, curious."
},
{
speaker: "eva",
text: "What about your parents?"
},
{
type: "narration",
text: "You take a second."
},
{
speaker: "player",
text: "They died when I was very young. Car accident. Grandma raised me."
},
{
speaker: "eva",
text: "I'm sorry."
},
{
speaker: "player",
text: "It's okay. I turned out fine."
},
{
type: "narration",
text: "She nods quietly, staying close."
},
{
type: "narration",
text: "Later, when it's time to head back, the two of you walk toward the hostel. Eva doesn't seem ready for the day to end. At the entrance she stops."
},
{
speaker: "eva",
text: "Do you want to come in?"
},
{
speaker: "player",
text: "Only if you want me to."
},
{
speaker: "eva",
text: "I do."
}
])>>
<</append>>
<<replace "#continue2">>
<div id = "continue3">
<hr>
<center>
<<link "Back to Hostel">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
type: "narration",
text: "Inside her room, she places the bouquet carefully on the table. Then she stays there, body facing away from you, but turns her face slightly over her shoulder — waiting."
},
{
type: "narration",
text: "You take the hint."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/eva/evaEvent2Kiss.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You step up behind her, one arm wrapping around her waist as you pull her back against you. Your mouth finds hers from the side. She melts into the kiss immediately. At the same time your other hand moves down, unzips her pants, and slips inside. Your fingers meet warm wetness — she's already soaked."
},
{
speaker: "eva",
text: "Mmh…"
},
{
type: "narration",
text: "You keep kissing her while your fingers slowly move between her legs. She presses back against you, breathing harder."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/eva/evaEvent2Boobs.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "After a moment you turn her around properly. The kiss deepens. Your hands slide under her shirt. She doesn't stop you. You lift the fabric, exposing her breasts — full, soft, with pink nipples already tight. You lower your head and take one into your mouth, tongue circling the nipple before sucking."
},
{
speaker: "eva",
text: "Ah… that feels so good…"
},
{
type: "narration",
text: "Her fingers slide into your hair as you switch to the other breast, kissing and sucking, letting your tongue drag over the sensitive peak."
},
{
speaker: "eva",
text: "Mmh… don't stop…"
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/eva/evaEvent2ClothesOff.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You pull her shirt the rest of the way off. She's bare from the waist up now, breathing faster. You kiss her again while your hands stay on her breasts, thumbs brushing over her wet nipples."
},
{
type: "narration",
text: "She returns the kiss hungrily for a moment — then suddenly her hands come up between you."
},
{
type: "narration",
text: "She doesn't push hard. Just enough."
},
{
speaker: "eva",
text: "Wait…"
}
])>>
<</append>>
<<replace "#continue3">>
<div id = "continue4">
<hr>
<center>
<<link "You Okay?">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
type: "narration",
text: "Her voice is shaky, breath still uneven from everything she just felt."
},
{
speaker: "eva",
text: "I like this. I like all of it. More than I thought I would."
},
{
type: "narration",
text: "She swallows, trying to steady her breathing."
},
{
speaker: "eva",
text: "It's just… a lot. In the best way. I've never done any of this before. Not even close. And with you it feels so good it almost scares me how much I want to keep going."
},
{
type: "narration",
text: "She looks up at you, cheeks flushed, eyes honest."
},
{
speaker: "eva",
text: "I don't want to stop because I don't like it. I want to stop because I like it too much… and I want to feel every part of it properly."
},
{
type: "narration",
text: "You brush a strand of hair from her face."
},
{
speaker: "player",
text: "Then we stop here."
},
{
type: "narration",
text: "She lets out a soft breath and rests her forehead against yours."
},
{
speaker: "eva",
text: "Thank you."
},
{
type: "narration",
text: "She doesn't pull away, instead wrapping her arms around you and burying her face against your chest, her heartbeat still racing."
},
{
type: "narration",
text: "You hold her close. For a long moment, neither of you says a word."
}
])>>
<</append>>
<<replace "#continue4">>
<div id = "continue5">
<hr>
<center>
<<link "To Your Room">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/eva/evaEvent3Exercise1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You were on the playground taking shots when you noticed Eva standing just outside the lines. She was dressed in a football kit, cheering every shot you took like you were already her favorite player."
},
{
speaker: "brad",
text: "Damn, bro. You're brand new and you already got a girl out here screaming for you like that?"
},
{
type: "narration",
text: "You laughed and wiped sweat off your forehead."
},
{
speaker: "player",
text: "What can I say? Some girls just know quality cock when they see it on the field."
},
{
type: "narration",
text: "After a few more shots you walked over to her. The second you got close Eva jumped on you, arms tight around your neck, body pressed flush against yours."
},
{
speaker: "eva",
text: "Fuck… you look so hot when you play. I get so wet just watching you dominate the field."
},
{
speaker: "player",
text: "Keep talking like that and I'll bend you over right here on the grass."
},
{
speaker: "player",
text: "What are you even doing out here dressed like this?"
},
{
speaker: "eva",
text: "Girls' football tryouts are coming up. I want in. I saw you play and… I don't know, I just wanted to be part of something you're good at. Plus it gives credits, so why the fuck not."
},
{
type: "narration",
text: "You couldn't help the small laugh that came out. She was too fucking cute."
},
{
speaker: "player",
text: "You don't even play, do you?"
},
{
speaker: "eva",
text: "No… but I can learn. Especially if you're the one teaching me."
},
{
speaker: "player",
text: "Alright then. Let's see what you've got. Go stand on the penalty spot and kick the ball to me."
},
{
type: "narration",
text: "Eva just stared at you with a completely blank, slightly embarrassed look."
},
{
speaker: "player",
text: "You have no idea what any of that means, do you?"
},
{
speaker: "eva",
text: "…None. I literally know nothing."
},
{
type: "narration",
text: "You laughed again, softer this time, and stepped closer."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/eva/evaEvent3Exercise2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "player",
text: "Okay, listen. That middle area is the center circle. Up front is where the strikers stay. Back there are the defenders. You're going to start simple — just kicking."
},
{
type: "narration",
text: "You spent the next while teaching her how to plant her foot and strike the ball. She was clumsy as hell at first, but she kept glancing at your mouth and crotch between every attempt like she was already thinking about something else."
},
{
type: "narration",
text: "When it was time to leave she wiped her forehead and looked up at you."
},
{
speaker: "eva",
text: "I know I suck right now… but I'll get good. I'm going to impress the fuck out of you."
},
{
speaker: "player",
text: "Baby, you already impress me every time you look at me like you want this cock. You don't have to do shit on a football field for that."
},
{
type: "narration",
text: "Eva bit her lip and gave you the filthiest little smile."
},
{
speaker: "eva",
text: "I'm still going to try… and when I do impress you, I expect a proper reward."
},
{
type: "narration",
text: "She turned and walked off the field, hips swaying just enough to make sure you watched every step."
}
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Leave playground">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "You walked onto the playground and found Eva already waiting with a football under her arm. The second she saw you her whole face lit up with pure confidence."
},
{
speaker: "player",
text: "You look way too fucking pleased with yourself."
},
{
speaker: "eva",
text: "I've been practicing non-stop with everything you taught me. I can even curve the ball in the air now. Want to see?"
},
{
speaker: "player",
text: "Show me."
},
{
type: "narration",
text: "Eva jogged a few steps back, set the ball down, and kicked it toward you. She looked so sure of herself that you expected a clean, sharp curve… but the ball only bent a tiny bit. From far away it almost looked like it went straight."
},
{
type: "narration",
text: "She came running up to you, eyes shining."
},
{
speaker: "eva",
text: "How was it? Be honest."
},
{
speaker: "player",
text: "That was impressive as hell. I'm actually impressed."
},
{
speaker: "eva",
text: "I told you I'd impress you. I'm so fucking proud of myself right now."
},
{
speaker: "player",
text: "You should be."
},
{
speaker: "eva",
text: "I want to thank you properly… not just with words."
},
{
type: "narration",
text: "You gave her a slow, dirty smile. You already knew exactly what she meant."
},
{
speaker: "eva",
text: "Come to my room."
},
])>>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Go to her room">>
<<append "#sceneDialogue">>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/eva/evaEvent4Kiss1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "The second her door opened she didn't even wait until you were fully inside. She grabbed your face and kissed you hard. You picked her up, kicked the door shut with your foot, and threw her onto the bed, never breaking the kiss. Eva kept moaning into your mouth the entire time."
},
{
speaker: "eva",
text: "Mmm… fuck… I've been thinking about this all day…"
},
{
speaker: "eva",
text: "Besides football… I've been learning something else. I finally watched porn for the first time and practiced handjob techniques… just for you."
},
{
speaker: "player",
text: "Good girl. Now get this cock out and show me what you learned."
},
{
type: "narration",
text: "Eva pushed your pants down. Your cock sprang free and almost hit her in the face. Her eyes went wide with pure shock."
},
{
speaker: "eva",
text: "Holy fuck… it's huge. Like actually massive. There was nothing even close to this size in the porn I watched. This thing is unreal…"
},
{
type: "narration",
text: "She bit her lip, suddenly looking a little nervous."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/eva/evaEvent4Kiss2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "eva",
text: "I… I don't know if I can even do it properly on a cock this big."
},
{
type: "narration",
text: "You lay back on the bed and looked down at her."
},
{
speaker: "player",
text: "You can do it, slut. Wrap those hands around this thick cock and stroke it. Now."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/eva/evaEvent4Handjob1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Eva obeyed. She started stroking you with both hands, using everything she'd practiced. She was actually really fucking good — tight grip, perfect rhythm, twisting her wrists on the upstroke. Way better than her football skills."
},
{
speaker: "eva",
text: "Does this thick cock feel good in my hands, baby?"
},
{
speaker: "player",
text: "It feels fucking amazing. Keep going just like that."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/eva/evaEvent4Handjob4.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She leaned up and kissed you while she stroked, moaning softly against your lips. Then she lay down beside you, pressed your cock against her dripping pussy, and kept jerking you hard so the underside rubbed against her wet lips."
},
{
speaker: "eva",
text: "Feel how soaked I am… I've been like this since you lied about my shot."
},
{
speaker: "player",
text: "You're dripping all over my cock, baby. Keep stroking."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/eva/evaEvent4Handjob6.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "After a while you both got off the bed. Eva dropped to her knees, pushed her soft tits together around your cock, and started sliding them up and down your length."
},
{
speaker: "eva",
text: "Fuck… it's so thick it barely fits between them. Look how it stretches my tits."
},
{
speaker: "player",
text: "Don't stop. Keep sliding those soft tits up and down this thick cock."
},
{
speaker: "eva",
text: "Like this…? Fuck, it's so hot throbbing against my skin."
},
{
type: "narration",
text: "Your balls tightened as the pleasure peaked, cock pulsing hard between her soft breasts."
},
{
speaker: "player",
text: "Stop with the tits and stroke this fat cock."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/eva/evaEvent4Cum1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She wrapped both hands around it again and stroked fast and hard, then stuck her tongue out right in front of the head, waiting."
},
{
speaker: "eva",
text: "Cum for me… cover my face. I want all of it."
},
{
type: "narration",
text: "You came hard. Thick ropes shot across her tongue, her cheeks, her lips, and down her chin until her entire face was glazed."
},
{
speaker: "eva",
text: "Holy shit… there's so much. It's so warm… and it tastes so fucking good."
},
{
type: "narration",
text: "She slowly licked some of it off her lips and looked up at you, face still covered."
},
{
speaker: "player",
text: "I didn't expect you to be this good at it… especially after that football demonstration."
},
{
speaker: "eva",
text: "Thank you… I'm really glad you liked it. I'm gonna go shower. Make sure you lock the door properly when you leave."
},
{
type: "narration",
text: "You fixed your clothes and left her room, the image of her cum-covered face still burned into your head."
}
]) >>
<</append>>
<<replace "#continue1">>
<div id = "continue2">
<hr>
<center>
<<link "Leave Eva's Room">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div><div class="disclaimer-container">
<h1>⚠️ Mature Content Warning</h1>
<p>
This game contains <b>explicit sexual content, nudity, adult themes, and strong language.</b>
It is intended exclusively for adults aged <b>18 years or older</b>, or the age of majority in your jurisdiction.
</p>
<p>
By selecting <b>Continue</b>, you certify that:
</p>
<ul>
<li>You are legally permitted to view adult content.</li>
<li>All characters depicted in this game are <b>18 years of age or older.</b></li>
<li>You understand the nature of the content presented.</li>
<li>You accept responsibility for complying with the laws applicable in your country or region.</li>
</ul>
<p>
If you do not meet these requirements, please exit the game.
</p>
<div class="disclaimer-buttons">
<<button "✔ I am 18 or older — Continue">>
<<goto "Title">>
<</button>>
<<button "✖ Quit Game">>
<<goto "Exit">>
<</button>>
</div>
</div><h1 style="text-align:center;">Access Denied</h1>
<p style="text-align:center;">
You must be 18 years or older to play this game. Please close this browser window or tab.
</p><div id = "sceneDialogue">
<img class="background" src="media/background/elena_bg.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "You boarded the plane. A ridiculously beautiful hostess welcomed you with a perfect smile. Your seat was in the very first row — right across from the jump seat where the crew sat."
},
{
type: "narration",
text: "Once everyone was on board she did the usual safety announcement, then came and sat directly in front of you. The plane took off. She was so fucking pretty it was impossible to look away… and she never took her eyes off you either."
},
{
type: "narration",
text: "After a few long, charged looks, you spoke first."
},
{
speaker: "player",
text: "I've never seen a hostess as beautiful as you."
},
{
speaker: "elena",
text: "I've never seen anyone as handsome as you either. It's actually impossible to look away."
},
{
type: "narration",
text: "You gave her a slow, dirty smile and let your eyes drop down her body and back up — making it very clear what you wanted."
},
{
speaker: "player",
text: "I'm " + State.variables.player.name + "."
},
{
type: "narration",
text: "You raised your hand. She placed hers in yours, and you lifted it to your lips, kissing the back of her hand without breaking eye contact."
},
{
speaker: "elena",
text: "Elena."
},
{
type: "narration",
text: "A few minutes later the seatbelt sign switched off. Before you could even reach for yours, Elena unbuckled it for you, stood up, and walked toward the downstairs galley, glancing back and signaling you to follow with a small tilt of her head."
},
])
>>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/flightKiss1.mp4" type="video/mp4">
</video>
</div>
<<=
setup.renderDialogue([
{
type: "narration",
text: "You followed her down. The second you stepped into the narrow space full of cabinets she grabbed you and pulled you into a deep, hungry kiss."
},
{
speaker: "elena",
text: "I've been dripping wet this entire fucking flight just sitting there staring at you."
},
{
type: "narration",
text: "She kissed you again, even filthier. Your hand slid under her tiny skirt and found her completely soaked. You started rubbing her clit in tight circles. Elena's legs almost gave out."
},
{
speaker: "elena",
text: "Ahh… fuck… I can barely stand…"
},
])
>>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/flightHandjob1.mp4" type="video/mp4">
</video>
</div>
<<=
setup.renderDialogue([
{
type: "narration",
text: "She dropped to her knees, yanked your zipper open, and pulled your cock out. The second it sprang free her eyes went wide with pure shock."
},
{
speaker: "elena",
text: "Holy shit… this is the biggest cock I've ever seen in my life. It's fucking massive…"
},
{
type: "narration",
text: "She wrapped both hands around it and started stroking, staring at the size."
},
{
speaker: "elena",
text: "Look at how thick it is… my fingers don't even meet. I need this thing inside me so bad."
},
{
speaker: "player",
text: "Then open that pretty mouth and choke on it."
},
])
>>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/flightBlowjob1.mp4" type="video/mp4">
</video>
</div>
<<=
setup.renderDialogue([
{
type: "narration",
text: "Elena took the head between her lips and started forcing more of it down her throat, gagging wetly as she tried to take it deeper. You grabbed the back of her head and guided her."
},
{
speaker: "player",
text: "That's it… take that thick cock down your throat like a good little slut."
},
])
>>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/flightPussyLicking1.mp4" type="video/mp4">
</video>
</div>
<<=
setup.renderDialogue([
{
type: "narration",
text: "After a while you pulled her up, pushed her back against the cabinets, dropped to your knees, and started licking her dripping pussy. Elena bit her own hand trying not to moan too loud."
},
{
speaker: "elena",
text: "Mmm—fuck—your tongue feels so good… I'm trying so hard to stay quiet…"
},
])>>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/flightStandingDoggy1.mp4" type="video/mp4">
</video>
</div>
<<=
setup.renderDialogue([
{
type: "narration",
text: "You stood, spun her around, bent her over slightly, and shoved your cock into her tight wet pussy in one hard thrust. A loud, broken moan ripped out of her."
},
{
type: "narration",
text: "You immediately covered her mouth with your hand and started fucking her hard and deep."
},
{
speaker: "player",
text: "Keep it down, you noisy little whore… take this thick cock quietly."
},
])>>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/flightReverseCowgirl1.mp4" type="video/mp4">
</video>
</div>
<<=
setup.renderDialogue([
{
type: "narration",
text: "You fucked her against the cabinets until both of you were breathing hard, then lay flat on the floor. Elena turned around, faced away from you, and sank down onto your cock. The second she was fully seated you started thrusting up into her."
},
{
speaker: "player",
text: "Look at you bouncing on this massive cock… taking every inch."
},
{
speaker: "elena",
text: "It's so fucking deep like this… I'm gonna cum—don't stop—"
},
{
type: "narration",
text: "A few more hard thrusts and Elena came hard, collapsing forward onto your chest while you kept fucking up into her through the orgasm."
},
])>>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/flightStandingMissionary1.mp4" type="video/mp4">
</video>
</div>
<<=
setup.renderDialogue([
{
type: "narration",
text: "You picked her up, slammed her back against the cabinets again, and started pounding her pussy without mercy. She was completely lost in it, eyes half-lidded, mouth open."
},
{
speaker: "player",
text: "Still so fucking tight… I'm gonna fill this pussy if you keep squeezing me like that."
},
{
type: "narration",
text: "When you felt yourself getting close you pulled out."
},
{
speaker: "player",
text: "On your knees. Now. I want to cum all over that pretty face."
},
])>>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/flightCum1.mp4" type="video/mp4">
</video>
</div>
<<=
setup.renderDialogue([
{
type: "narration",
text: "Elena dropped instantly, grabbed your cock, and stroked it fast and desperate."
},
{
speaker: "elena",
text: "Give it to me… cum on my tongue… cover my face… please—"
},
{
type: "narration",
text: "She opened her mouth wide and stuck her tongue out. You came hard — thick ropes landing on her tongue, across her lips, her cheeks, and down onto her uniform."
},
{
type: "narration",
text: "Elena took a deep, shaky breath, still on her knees with your cum dripping down her face."
},
{
type: "narration",
text: "You fixed your clothes. Before you walked back up the stairs she looked up at you, still catching her breath on the floor."
},
{
speaker: "elena",
text: "I never imagined the best sex of my entire life would happen thirty-five thousand feet in the air…"
},
{
type: "narration",
text: "You gave her one last dirty smile and climbed back to your seat, leaving her lying there on the galley floor, uniform ruined and thighs still trembling."
}
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Continue">>
<<goto "Settle">>
<</link>>
</center>
</div><img class="background" src="media/background/childhood_bg.jpg">
<<=
setup.renderDialogue([
{
type: "narration",
text: "Yep... that's you."
},
{
type: "narration",
text: "And the woman holding your tiny hand? That's your grandmother. Ever since you can remember, she's been the one who raised you."
},
{
type: "narration",
text: "Your parents died in a tragic car accident when you were still too young to remember them. Somehow... you survived."
}
])
>>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/activity/carCrash.mp4" type="video/mp4">
</video>
</div>
<<=
setup.renderDialogue([
{
type: "narration",
text: "Growing up was never easy. Maybe it was your past. Maybe you simply couldn't relate to the other kids. Or maybe you were just born quieter than everyone else."
},
{
type: "narration",
text: "Whatever the reason, making friends was never your strongest suit... and girls barely knew you existed."
},
{
speaker: "grandma",
text: "You spend too much time studying. Go outside sometimes."
},
{
speaker: "player",
text: "Outside isn't that interesting."
},
{
speaker: "grandma",
text: "Books won't give me great-grandchildren."
},
{
speaker: "player",
text: "...Grandma."
},
{
type: "narration",
text: "While everyone else was busy making memories, you were making grades. Books became your closest companions, and somewhere along the way, the gym became your second home."
},
{
type: "narration",
text: "The skinny little kid everyone overlooked slowly disappeared, replaced by someone nobody would've expected if they'd known you back then."
}
])
>>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/activity/glowup.mp4" type="video/mp4">
</video>
</div>
<<=
setup.renderDialogue([
{
speaker: "grandma",
text: "I always knew this day would come."
},
{
speaker: "grandma",
text: "You're every bit as smart as your father was. He was a professor, after all. Guess brilliance runs in the family... even if stubbornness does too."
},
{
speaker: "player",
text: "I wish I could've met him."
},
{
speaker: "grandma",
text: "He would've been proud of the young man you've become. Both of them would've."
},
{
type: "narration",
text: "Years of hard work finally paid off. You earned a full scholarship to one of the country's most prestigious colleges."
},
{
type: "narration",
text: "It was a little strange getting the scholarship nearly a month after college had already started."
},
{
type: "narration",
text: "But you didn't mind. You were just happy to finally have the chance."
},
{
type: "narration",
text: "It's miles away from your quiet little hometown... and that's exactly where you're headed today."
},
{
speaker: "grandma",
text: "Well... I guess this is it. My little boy's finally leaving home. Just promise me you won't spend all four years buried in books... and maybe come back with a nice girl by your side."
},
{
speaker: "player",
text: "I'll do my best."
},
{
speaker: "grandma",
text: "That's enough for me. If you ever need anything, you call me. And don't worry about money—I'll keep sending you some every month."
},
{
speaker: "player",
text: "Thank you... for everything."
},
{
speaker: "grandma",
text: "Now go make us proud... and don't keep your old grandmother waiting too long for a visit."
}
])
>>
<center>
<<link "Catch the flight">>
<<goto "Flight">>
<</link>>
</center><img class="background" src="media/background/hostel_bg.jpg">
<<=
setup.renderDialogue([
{
type: "narration",
text: "A couple of hours later, your flight finally landed. The college was only a short ride away from the airport, and since you already had all your luggage with you, you decided to head straight to the hostel."
},
{
type: "narration",
text: "As you stepped inside, the first thing that caught your attention wasn't the lobby..."
},
{
type: "narration",
text: "It was the gorgeous woman sitting behind the reception desk."
}
])
>>
<img class="background" src="media/background/mia_settle.jpg">
<<=
setup.renderDialogue([
{
speaker: "mia",
text: "Welcome! How can I help you?"
},
{
speaker: "player",
text: "Hi. I'm a new freshman. I was told to report here first."
},
{
speaker: "mia",
text: "Of course! I'm Mia. It's nice to meet you!"
},
{
speaker: "mia",
text: "What's your name? Let me check which room you've been assigned."
},
{
speaker: "player",
text: State.variables.player.name + "."
},
{
type: "narration",
text: "Her fingers danced across the keyboard for a few seconds before she suddenly paused."
},
{
type: "narration",
text: "She looked up at you... then back at the screen... and smiled."
},
{
type: "narration",
text: "Not a normal smile."
},
{
speaker: "mia",
text: "Ooooh... so <b>you're</b> " + State.variables.player.name + ". That explains it. I was wondering why your name wasn't showing up with everyone else's. You've got one of those special scholarships, don't you?"
},
{
speaker: "player",
text: "I... guess so?"
},
{
speaker: "mia",
text: "Well... I've got good news and bad news."
},
{
speaker: "player",
text: "Please tell me the good news comes first."
},
{
speaker: "mia",
text: "You're officially checked in."
},
{
speaker: "mia",
text: "The bad news? We don't have a single room left in the boys' hostel."
},
{
speaker: "player",
text: "Wait... what? Then where am I supposed to stay?"
},
{
speaker: "mia",
text: "Looks like today's your lucky day. Until a room opens up in the boys' hostel... you're staying with the girls."
},
{
type: "think",
text: "No way..."
},
{
type: "think",
text: "There's no way this is real."
},
{
type: "think",
text: "A girls' hostel?"
},
{
type: "think",
text: "I haven't even attended my first class..."
},
{
type: "think",
text: "and college is already exceeding expectations."
},
{
speaker: "mia",
text: "Easy there, Romeo. Whatever fantasy just started playing in that head of yours... forget it."
},
{
speaker: "player",
text: "...Was I really that obvious?"
},
{
speaker: "mia",
text: "Let's just say your face tells on you. So here's the deal. There are cameras everywhere. No wandering into girls' rooms, no sneaking your guy friends in, and absolutely no heroic attempts at becoming the campus Casanova."
},
{
speaker: "player",
text: "Wow... you really had that speech ready, huh?"
},
{
speaker: "mia",
text: "Years of experience."
},
{
speaker: "mia",
text: "Besides..."
},
{
speaker: "mia",
text: "If you ever need anything... don't go looking for someone else. Just come find me. I'll always make time for you."
},
{
speaker: "player",
text: "Always?"
},
{
speaker: "mia",
text: "For you? Hmm... let's just say you've already caught my attention."
},
{
speaker: "mia",
text: "Now stop grinning like an idiot and come with me. I'll show you your room."
}
])
>>
<center>
<<link "Continue">>
<<run setup.addAffection("mia", 1)>>
<<goto "Unpack">>
<</link>>
</center><img class="background" src="media/background/banner_bg.jpg">
<<=
setup.renderDialogue([
{
speaker: "admenz",
text: "Hey! Welcome to <b>Freshman Year</b>."
},
{
speaker: "admenz",
text: "This isn't just another college visual novel. It's based on my own college life... well, at least the first half of it, with a few creative twists to make things even more fun."
},
{
speaker: "admenz",
text: "Everything you'll experience during Freshman Year is inspired by what actually happened when I first stepped onto campus. The awkward moments, the friendships, the late-night adventures, the dumb decisions... and of course, the girls."
},
{
speaker: "admenz",
text: "Now, here's the thing. Freshman Year is still in its early stages, so there's plenty of campus life left to explore. New scenes, new characters, unexpected twists, and more trouble than you probably signed up for."
},
{
speaker: "admenz",
text: "The story grows every month, and this is only the beginning. Sophomore, Junior, and Senior Year are all planned, with plenty more waiting to unfold."
},
{
speaker: "admenz",
text: "And if you can't wait to see what happens next, there's a little secret.👀"
},
{
speaker: "admenz",
text: "While everyone else waits for the next monthly update, the story on Patreon is already months ahead. More progress, more content, and a glimpse of what's coming long before it reaches the public version. Consider it your backstage pass to everything Freshman Year is becoming.😉"
},
{
speaker: "admenz",
text: "But that's enough about me. For the next few hours, you're the one living this life. So before we hand over the controls... who are you playing as?"
}
])
>>
<div class="name-entry-card">
<div class="name-entry-header">Create Your Profile</div>
<div class="input-group name-input">
<label>First Name</label>
<<textbox "$player.name" "Daddy" "Intro">>
</div>
<<button "Confirm Name" "Intro">>
<<set $player.name = setup.capitalizeName(setup.cleanPlayerName($player.name))>>
<</button>>
</div><img class="background" src="media/background/myRoom_bg.jpg">
<<=
setup.renderDialogue([
{
type: "narration",
text: "Mia dropped you off at your room before leaving you alone. You looked around."
},
{
type: "narration",
text: "Damn..."
},
{
type: "narration",
text: "This didn't feel like a hostel room at all. It was spacious, modern, spotless... more like a luxury hotel than student accommodation."
},
{
type: "narration",
text: "You quickly unpacked your things, but your mind wasn't on the room."
},
{
type: "think",
text: "I'm actually staying... in a girls' hostel."
},
{
type: "think",
text: "Maybe college isn't going to be so bad after all."
},
{
type: "narration",
text: "The excitement could wait until tomorrow."
},
{
type: "narration",
text: "Right now..."
},
{
type: "narration",
text: "You desperately needed some sleep."
}
])
>>
<center>
<<link "Continue">>
<<set _sleep = setup.activities.sleep>>
<<set $currentActivity = setup.buildActivityState(_sleep)>>
<<run Engine.play("Sleep")>>
<</link>>
</center><img class="background" src="media/background/library_bg.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "You find Jane at the same quiet table in the back of the library. The moment she sees you, her face lights up."
},
{
speaker: "jane",
text: "You came back."
},
{
speaker: "player",
text: "I said I would."
},
{
speaker: "jane",
text: "I've been thinking about what you said about my poem. You were right. It was missing something."
},
{
speaker: "player",
text: "You'll find it."
},
{
type: "narration",
text: "Jane smiles, studying you for a moment."
},
{
speaker: "jane",
text: "You talk about poetry like someone who writes it."
},
{
speaker: "player",
text: "Maybe I do."
},
{
type: "narration",
text: "Her eyes widen."
},
{
speaker: "jane",
text: "You write?"
},
{
speaker: "player",
text: "I've written a few."
},
{
type: "narration",
text: "Her face lights up as she leans closer."
},
{
speaker: "jane",
text: "Then let me hear one."
},
{
type: "narration",
text: "You pull out your phone and read one of your older poems to her."
},
]) >>
<img class="background" src="media/event/player/jane_playerEvent3.jpg">
<<= setup.renderDialogue([
{
speaker: "player",
text: "I dreamed of a girl I had never known,\nA heart I would cherish, a soul of her own,\nI'd save every word that she'd ever say,\nAnd love her completely before she'd come my way.\n\nI searched through the world for the one meant for me,\nFor eyes that would make every lonely thought flee,\nI don't know her name, or where she may be,\nBut somewhere out there, she's waiting for me."
},
{
type: "narration",
text: "Jane sits completely still for a moment after the last line, staring at you with an almost disbelieving smile."
},
{
speaker: "jane",
text: "God... that's beautiful."
},
{
type: "narration",
text: "She looks down at your phone, then back at you, her expression softening into something unmistakably lovestruck."
},
{
speaker: "jane",
text: "You really wrote this?"
},
{
speaker: "player",
text: "A long time ago."
},
{
speaker: "jane",
text: "Whoever gets a poem like that from you is going to be ridiculously lucky."
},
{
speaker: "player",
text: "You think so?"
},
{
speaker: "jane",
text: "I know so."
},
{
type: "narration",
text: "She reaches for your hand, her fingers slipping between yours without hesitation."
},
{
speaker: "jane",
text: "I'd read it a hundred times."
},
{
speaker: "player",
text: "Even if it wasn't perfect?"
},
{
speaker: "jane",
text: "Especially then. It's yours. That would be enough."
},
{
type: "narration",
text: "She gives your hand a gentle squeeze, looking at you like she's already fallen much deeper than she meant to."
},
{
speaker: "jane",
text: "You're dangerously romantic, you know that?"
},
{
speaker: "player",
text: "I can live with that."
},
{
speaker: "jane",
text: "Good. Because I really, really like it."
},
{
speaker: "player",
text: "I'm working on something new."
},
{
speaker: "jane",
text: "Another poem?"
},
{
speaker: "player",
text: "Something like that."
},
{
speaker: "jane",
text: "Then tell me everything."
},
{
speaker: "player",
text: "You'll have to wait."
},
{
type: "narration",
text: "Jane lets out a soft, disappointed sigh."
},
{
speaker: "jane",
text: "You're really going to make me wait?"
},
{
speaker: "player",
text: "Just a little."
},
{
speaker: "jane",
text: "Fine. But I expect to be the first to hear it."
}
]) >>
<hr>
<center>
<<link "Continue">>
<<run setup.finishEvent()>>
<</link>>
</center><div id = "sceneDialogue">
<img class="background" src="media/event/player/jane_playerEvent3.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "The moment Jane sees you in the library, her whole face lights up."
},
{
speaker: "jane",
text: "You're here…"
},
{
speaker: "jane",
text: "I was starting to think you wouldn't come back."
},
{
speaker: "player",
text: "I told you I would."
},
{
speaker: "jane",
text: "The poem… the one you were working on. Did you finish it?"
},
{
speaker: "player",
text: "Yeah."
},
{
speaker: "jane",
text: "Will you recite it for me?"
},
{
type: "narration",
text: "You take a quiet breath and begin."
},
{
speaker: "player",
text: "I used to write about a girl I had never seen,\nA shadow, a wish, a beautiful dream.\nBut dreams are weightless, and shadows don't stay—\nThen I walked into a library and she looked my way.\n\nShe hides behind books like they're made of her skin,\nSpeaks softly, as if the world might break if she's too loud within.\nBut when she smiles, even the quietest one,\nIt brings down every careful wall I've ever built before.\n\nI don't need the stars to tell me her name,\nI don't need the night to feel the same.\nEvery poem I ever tried to write before\nWas only practice... for Jane, the girl I adore."
},
{
type: "narration",
text: "For a second, Jane just stares at you, completely overwhelmed. Then her face breaks into the brightest smile you've ever seen."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent2Hug.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She rushes into your arms, wrapping herself around you and kissing you with all the pent-up emotion she's been holding back."
},
{
speaker: "jane",
text: "I have to tell you something."
},
{
speaker: "player",
text: "What?"
},
{
speaker: "jane",
text: "I love you so much."
},
{
type: "narration",
text: "Before you can say anything, she kisses you again, holding you even tighter. You barely have time to process what she said before you're completely lost in the moment with her."
},
{
type: "narration",
text: "A few seconds later, reality catches up with her. She freezes, slowly loosening her arms as the realization of what she just did sinks in."
},
{
speaker: "jane",
text: "Oh my God... I— I'm so sorry. I shouldn't have… that was— I didn't mean to—"
},
{
type: "narration",
text: "She turns away, completely flustered, and starts to leave, desperate to escape the embarrassment."
},
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Pull her back">>
<<append "#sceneDialogue">>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent2Kiss.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You pull her back into you. This time the kiss is deeper, hungrier, impossible to stop."
},
{
type: "narration",
text: "Your hand slides under her top, finding her bare skin. The other slips into her pants. She's already soaked, a soft moan breaking against your mouth the second you touch her."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent2Intimate.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "jane",
text: "Ahh… fuck—"
},
{
type: "narration",
text: "Then a chair scrapes somewhere in the shelves."
},
{
type: "narration",
text: "Jane quickly fixes her top and pulls your hand out of her pants, cheeks burning. She doesn't step away though—her fingers stay loosely curled in your shirt."
},
{
speaker: "jane",
text: "…We're in the library."
},
{
speaker: "player",
text: "Yeah."
},
{
type: "narration",
text: "For a moment, you just stare at each other. Then Jane lets out a breathless little laugh, and you can't help but laugh with her."
},
{
speaker: "jane",
text: "I meant it… what I said."
},
{
speaker: "player",
text: "I know."
},
{
type: "narration",
text: "She lets out a small, shaky breath and finally opens her eyes, looking at you like she's still half-afraid you'll disappear."
},
{
speaker: "jane",
text: "I was starting to think you wouldn't come back."
},
{
speaker: "player",
text: "I'd have to be crazy to stay away from you."
},
{
type: "narration",
text: "Jane gives you one last soft kiss, almost reluctant to pull away, then steps back with a tiny smile she can't quite hide."
}
]) >>
<</append>>
<<replace "#continue1">>
<div id = "continue2">
<hr>
<center>
<<link "Get out of Library">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "You walked to the far end of the Skill Hub. A full fake bedroom set had been built there — bed, side tables, soft lighting, the works. Jane was standing with a few other students when she spotted you. Her whole face lit up."
},
{
speaker: "jane",
text: "Hey… what are you doing here?"
},
{
speaker: "player",
text: "Mandy sent me. Said you needed an acting partner for your skit."
},
{
type: "narration",
text: "Jane's eyes went wide with pure excitement."
},
{
speaker: "jane",
text: "She actually sent you? Oh my god. I wanted you for this part so badly but I didn't know if you even acted. I'm so fucking happy it's you."
},
{
speaker: "player",
text: "This set looks serious. Must be a big deal."
},
{
speaker: "jane",
text: "It is. It's my first public performance. This whole thing gets moved to the mall for the real show."
},
{
speaker: "player",
text: "Alright. What do I have to do?"
},
{
speaker: "jane",
text: "We just finished practicing with the others, but it's fine. Most of your scenes are with me anyway. You're playing my crush… and you've got a crush on me too. Here."
},
{
type: "narration",
text: "She handed you the script. You scanned the pages for a minute while she watched you closely."
},
{
type: "narration",
text: "Then you started rehearsing."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent3Dialogue1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "jane",
text: "You were always talking about that special someone, and I guess I just never felt special enough for you."
},
{
speaker: "player",
text: "You are the one."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent3Kiss1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "player",
text: "You've always been the one."
},
{
type: "narration",
text: "Jane stepped in and kissed you. Soft at first, then deeper, her hands sliding up your chest like she'd been waiting to do it. You weren't expecting it, but you kissed her back without thinking."
},
{
type: "narration",
text: "When she pulled away, you searched your memory for whatever came next in the script. You'd read the damn thing, but for some reason, you couldn't remember a single line after that."
},
{
type: "narration",
text: "She broke the kiss, breathing a little faster, and looked at you."
},
{
speaker: "jane",
text: "How long have you wanted to do that for?"
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent3Kiss2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Before you could say anything she pulled you back in and kissed you harder — wetter, filthier, tongue sliding against yours like she didn't give a fuck about the script anymore."
},
{
type: "narration",
text: "You kissed her the same way, hands gripping her waist. After a few more seconds she moaned softly against your mouth."
},
{
speaker: "jane",
text: "Don't worry… you can do whatever you want to me…"
},
{
type: "narration",
text: "She kissed you again, even hungrier this time — until sudden clapping made both of you freeze."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent3Clap1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You both froze when the applause started. The students who'd been part of the rehearsal were already watching, and apparently a few more Skill Hub students had decided to join the audience. Jane's face went bright red, but she still smiled."
},
{
type: "narration",
text: "The two of you left the Skill Hub together. Once you were outside she was still a little flushed."
},
{
speaker: "player",
text: "Sorry… I didn't know there were more lines after my last dialogue."
},
{
speaker: "jane",
text: "There weren't. That was the last line of the whole performance. Everything after that… the second kiss, the things I said… that was just me not being able to stop."
},
{
speaker: "player",
text: "Good. Because I didn't want you to stop for a second."
},
{
type: "narration",
text: "Jane bit her lip, clearly pleased."
},
{
speaker: "jane",
text: "I didn't know you could act that well…"
},
{
speaker: "player",
text: "You felt how hard I got while you were saying I could do whatever I wanted. That wasn't acting."
},
{
type: "narration",
text: "Her cheeks went even redder, but she didn't look away."
},
{
speaker: "jane",
text: "We're performing in front of a live audience at the mall soon. I really hope they like it…"
},
{
speaker: "player",
text: "Then we should make the kiss and everything after it part of the real act. You saw how they reacted just now."
},
{
type: "narration",
text: "Jane's eyes lit up with a mix of nerves and real excitement."
},
{
speaker: "jane",
text: "Yeah… okay. We should. And if you want extra practice… you can come to my room. We can work on the kissing as much as you want."
},
{
speaker: "jane",
text: "Once everyone's ready, we'll do the full performance at the mall."
},
{
type: "narration",
text: "She gave you one last lingering look before walking away, still smiling to herself."
}
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Leave skillHub">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "You arrived at the mall. The full bedroom set from the Skill Hub had been moved here, and a decent crowd was already sitting in front of it. Jane stood off to the side, wringing her hands, looking pale."
},
{
speaker: "jane",
text: "I can't do this… I'm going to fuck it up. Everyone's going to see how nervous I am."
},
{
type: "narration",
text: "You pulled her into a tight hug."
},
{
speaker: "player",
text: "Hey. Look at me. You're going to be perfect. Just stay with me out there and forget the crowd exists."
},
{
type: "narration",
text: "She nodded against your chest, breathing a little steadier."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent3Dialogue1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "The performance started."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent3Kiss1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "When you reached the final lines, the kiss that followed was real — deep, hungry, longer than the script ever asked for."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent3Kiss2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "The crowd erupted the second it ended. Loud applause, cheering, people actually standing."
},
{
type: "narration",
text: "Backstage the clapping continued. Two girls came up to you both, still grinning."
},
{
speaker: "jessa",
text: "You two looked incredible up there. Like… actual couple energy. The way you looked at each other felt completely real."
},
{
speaker: "mia",
text: "Seriously. I almost forgot it was a performance. You two just fit."
},
{
type: "narration",
text: "Jane's face went bright red. She couldn't stop smiling even while she tried to hide it."
},
{
type: "narration",
text: "Later, the two of you walked back to the hostel and stopped in front of her door."
},
{
speaker: "jane",
text: "Thank you… for everything. You made the whole thing feel special. I couldn't have done it without you."
},
{
speaker: "player",
text: "You were already good. I just made sure everyone else saw it too. I should probably head out—"
},
{
speaker: "jane",
text: "Wait. Don't go yet. Stay with me a little longer… please."
},
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Go to hostel">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
type: "narration",
text: "You followed her inside. The second the door clicked shut she started pulling her clothes off and kissed you hard, already moaning into your mouth."
},
{
type: "narration",
text: "You yanked your shirt off, pushed her onto the bed, and climbed on top of her, kissing her deeper while she arched up against you."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent4Kiss1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "jane",
text: "Mmm… fuck, I've wanted this so bad…"
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent4Rub1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Your hand slid between her legs. She was already dripping. You started rubbing her clit in slow, firm circles while she moaned louder."
},
{
speaker: "jane",
text: "Ahh—right there… don't stop…"
},
{
type: "narration",
text: "Her hand found the bulge in your pants and squeezed. The second she felt how hard and thick you were, she broke the kiss, eyes wide with pure excitement."
},
{
speaker: "jane",
text: "Holy shit… it feels huge. Can I see it? Please… I need to see it."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent4Size1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You sat on the chair nearby and nodded. Jane dropped to her knees, pulled your pants down, and your cock sprang free, smacking against her face."
},
{
speaker: "jane",
text: "Oh my god… it's bigger than my whole face. I felt it through your pants but this is insane. One day I want to take this balls-deep in my ass… but right now I can't even fit it in my mouth."
},
{
speaker: "player",
text: "You don't have to force anything. Use your hands if that's all you can take right now."
},
{
speaker: "jane",
text: "Come back on the bed. I want to kiss you while I stroke it."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent4Handjob1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You both got on the bed. Jane wrapped one hand around your cock and stroked while kissing you deeply, moaning into your mouth."
},
{
speaker: "jane",
text: "It's so thick… my fingers barely wrap around it."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent4Handjob2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She switched to both hands, stroking harder and faster while still trying to keep her lips on yours."
},
{
speaker: "jane",
text: "Mmm—does that feel good? Tell me."
},
{
speaker: "player",
text: "Keep going just like that… tighter."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent4Handjob4.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She leaned down, put her tongue on the tip, and kept stroking hard and fast while licking the head."
},
{
speaker: "jane",
text: "Mmm… you taste so good already…"
},
{
speaker: "player",
text: "Get on your knees. I want to watch you stroke me from down there."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent4Handjob5.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You sat back on the chair. Jane dropped to her knees between your legs, took your cock in both hands, and wrapped her lips around the tip again."
},
{
speaker: "player",
text: "Stick your tongue out. Lick the tip while you stroke the rest."
},
{
type: "narration",
text: "She did exactly that — tongue flat against the head, both hands working your shaft fast and wet."
},
{
speaker: "player",
text: "Fuck… I'm gonna cum. Don't you dare pull away."
},
{
type: "narration",
text: "Jane sealed her lips around the head and stroked even harder, taking every thick pulse straight into her mouth."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/jane/janeEvent4Swallow1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "When you finished she opened her mouth and showed you the heavy load sitting on her tongue, then swallowed it all and stuck her tongue out again to prove it was gone."
},
{
speaker: "jane",
text: "There was so much… and it tasted so fucking good. Thick and warm…"
},
{
type: "narration",
text: "She stayed on her knees for a second longer, still catching her breath, then looked up at you almost sadly."
},
{
speaker: "jane",
text: "I wish I could make you stay the night… but if Mia comes for attendance and sees you here, we're both fucked."
},
{
type: "narration",
text: "You fixed your clothes. Jane walked you to the door, still flushed, and watched you leave with a small, hungry smile."
}
]) >>
<</append>>
<<replace "#continue1">>
<div id = "continue2">
<hr>
<center>
<<link "Leave her room">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<img class="background" src="media/event/player/lasirena_playerEvent3.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "You walk toward the main desk. La Sirena looks up the second she sees you, already smiling like she's been waiting."
},
{
speaker: "lasirena",
text: "There you are. How's the research going?"
},
{
speaker: "player",
text: "What research?"
},
{
speaker: "lasirena",
text: "The monthly book one. You're really not worried about those missing credits?"
},
{
speaker: "player",
text: "Didn't even know the library gave credits."
},
{
speaker: "lasirena",
text: "Everything here does."
},
{
speaker: "lasirena",
text: "Classes, SkillHub, sports, library work… all of it counts."
},
{
speaker: "lasirena",
text: "Even teachers have to keep learning. That's why you'll catch us sitting with students sometimes."
},
{
speaker: "lasirena",
text: "And why half this place stays open late."
},
{
speaker: "player",
text: "So what do students actually have to do here?"
},
{
speaker: "lasirena",
text: "Simple. Pick one book a month."
},
{
speaker: "lasirena",
text: "Research it. Apply whatever you learn in real life. Then write the whole thing down."
},
{
speaker: "lasirena",
text: "Just reading doesn't cut it. You have to use it."
},
{
speaker: "player",
text: "I've already missed a month."
},
{
speaker: "lasirena",
text: "Yeah. And even if you start now, you'll still end the semester one short."
},
{
speaker: "lasirena",
text: "That little gap is going to hurt."
},
{
speaker: "player",
text: "Any way around it?"
},
])>>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Continue">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
type: "narration",
text: "She leans on the desk a little, clearly enjoying this."
},
{
speaker: "lasirena",
text: "There is one."
},
{
speaker: "lasirena",
text: "I can teach you a book myself. Properly."
},
{
speaker: "lasirena",
text: "I'll make sure you actually understand it… and how to use it when the book's not in your hands."
},
{
speaker: "lasirena",
text: "In return, you help me with my research and whatever else I need around here."
},
{
speaker: "lasirena",
text: "But the writing? That's all on you. You document everything we do."
},
{
speaker: "player",
text: "Deal."
},
{
speaker: "lasirena",
text: "Good. Go pick something then."
},
{
speaker: "lasirena",
text: "Any book in the building."
},
{
speaker: "player",
text: "Any book? You sure about that?"
},
{
speaker: "lasirena",
text: "I know every single thing on these shelves. Surprise me."
},
]) >>
<img class="background" src="media/event/lasirena/lasirenaEvent1Lock.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "You wander through the library until you notice an older section with a rusty lock. It looks ready to fall apart. You push — and it breaks."
},
])>>
<</append>>
<<replace "#continue1">>
<div id = "continue2">
<hr>
<center>
<<link "Continue">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
type: "narration",
text: "Inside are dust-covered books. One thick volume stands out. You grab it and bring it back to her."
},
{
speaker: "lasirena",
text: "Where'd you find that?"
},
{
speaker: "player",
text: "Back section. Lock didn't put up much of a fight."
},
{
speaker: "lasirena",
text: "That's restricted."
},
{
speaker: "player",
text: "You said any book."
},
{
type: "narration",
text: "She looks at the cover, then at you, a slow grin spreading."
},
]) >>
<img class="background" src="media/event/lasirena/lasirenaEvent1Book.png">
<<= setup.renderDialogue([
{
speaker: "lasirena",
text: "Of course you picked the Kama Sutra."
},
{
speaker: "lasirena",
text: "Desire. The body. Pleasure. Intimacy. The whole thing."
},
{
speaker: "player",
text: "Sounds perfect."
},
{
speaker: "lasirena",
text: "You do realize you have to apply it, right? Not just read. Actually use it… and then write about what you did."
},
{
speaker: "lasirena",
text: "Still want it?"
},
{
speaker: "player",
text: "Why? Scared you won't be able to handle teaching me?"
},
{
speaker: "lasirena",
text: "Cute. I was more worried about you surviving the lessons."
},
{
speaker: "lasirena",
text: "Convince me you're worth the effort. Then we'll open that book properly."
},
{
type: "narration",
text: "She takes the book from you, fingers brushing yours, and looks at you like she's already looking forward to making this difficult in the best way."
}
])>>
<</append>>
<<replace "#continue2">>
<div id = "continue3">
<hr>
<center>
<<link "Get out of library">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<img class="background" src="media/event/player/lasirena_playerEvent3.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "Evening. The library has mostly emptied out when you walk in. La Sirena is behind the desk, sorting a few books into a neat pile."
},
{
speaker: "player",
text: "Ready to start?"
},
{
speaker: "lasirena",
text: "Finally. I was starting to think you'd changed your mind."
},
{
type: "narration",
text: "She glances toward the last few students still wandering between the shelves."
},
{
speaker: "lasirena",
text: "Give them a minute. I don't need an audience for this."
},
{
type: "narration",
text: "You wait until the last student disappears through the doors. La Sirena locks the entrance, then turns back toward you with a small smile."
},
{
speaker: "lasirena",
text: "Alright. Open the Kama Sutra and tell me what the first topic in the index is."
},
{
type: "narration",
text: "You open the index and scan down the page."
},
{
speaker: "player",
text: "First topic…Kissing."
},
{
speaker: "lasirena",
text: "Of course it is."
},
{
speaker: "player",
text: "You told me to pick any book."
},
{
speaker: "lasirena",
text: "I know. I'm not complaining."
},
{
type: "narration",
text: "A small, dirty little smile pulls at her mouth."
},
{
speaker: "lasirena",
text: "Get your notebook out. If you're going to write a research paper about this, you might as well do it properly."
},
{
speaker: "lasirena",
text: "There are four kinds you should know."
},
{
speaker: "lasirena",
text: "First… the Tease Kiss. Soft. Barely any pressure. Just enough to make someone lean in and beg for more."
},
{
speaker: "lasirena",
text: "Second… the Tongue Fuck Kiss. Deep. Wet. Tongues sliding in and out of each other's mouths like you're already fucking. Slow, filthy thrusts."
},
{
speaker: "lasirena",
text: "Third… the Claiming Kiss. Hard pressure. Teeth. One hand locked in the other's hair so they can't pull away. It feels exactly like someone is marking you."
},
{
speaker: "lasirena",
text: "And the last one… the Slow Filthy Kiss. Open-mouthed. Unhurried. Tongues staying tangled for a long time while you suck and stroke and moan into each other's mouths. This is the one that usually ends with grinding."
},
{
type: "narration",
text: "She pushes off the desk, eyes locked on yours."
},
{
speaker: "player",
text: "Okay. That wasn't exactly what I expected from a research assignment."
},
{
speaker: "lasirena",
text: "You're the one who chose the book."
},
{
speaker: "player",
text: "Fair enough."
},
{
speaker: "player",
text: "So that's the first topic done?"
},
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Finish writing">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
speaker: "lasirena",
text: "Written down?"
},
{
speaker: "player",
text: "Yeah."
},
{
speaker: "lasirena",
text: "Then no."
},
{
type: "narration",
text: "She closes your notebook with one finger."
},
{
speaker: "lasirena",
text: "You forgot the important part."
},
{
speaker: "player",
text: "There's an important part?"
},
{
speaker: "lasirena",
text: "You have to apply what you learn. And document what actually happened."
},
{
speaker: "player",
text: "So… You gonna make a move, or should I just shove my tongue down your throat right now?"
},
{
type: "narration",
text: "A slow smile spreads across La Sirena's face."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/lasirena/lasirenaEvent2Kiss.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She doesn't answer with words. She steps forward, plants both hands on your chest, and shoves. You drop backward onto the couch. She follows immediately, straddling your lap, and crashes her mouth against yours."
},
{
type: "narration",
text: "The first second you're too stunned to move. Then the heat of it hits — her tongue sliding deep, her lips demanding, the soft wet sound of the kiss filling the empty library. You grab her waist and kiss her back just as hard."
},
{
type: "narration",
text: "When she finally pulls away both of you are breathing harder than you should be."
},
{
speaker: "lasirena",
text: "There. That's what I meant by applying the material."
},
{
type: "narration",
text: "She stays straddling you, voice low and satisfied."
},
{
speaker: "lasirena",
text: "Now comes the test. Out of those four I just explained… which ones did we use?"
},
{
speaker: "player",
text: "All four"
},
{
type: "narration",
text: "La Sirena laughs, genuine and pleased."
},
{
speaker: "lasirena",
text: "At least you were paying attention."
},
{
speaker: "lasirena",
text: "Now write everything down. What happened, what you noticed, what you felt. That's your actual research."
},
{
type: "narration",
text: "She climbs off you slowly, straightens her clothes, and nods toward your notebook."
},
{
speaker: "lasirena",
text: "And don't make me read some boring little textbook report. If you're going to write about me, make it interesting"
},
{
type: "narration",
text: "She walks back toward the desk."
},
{
speaker: "lasirena",
text: "Come find me when you're finished."
},
]) >>
<</append>>
<<replace "#continue1">>
<div id = "continue2">
<hr>
<center>
<<link "Leave Library">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<img class="background" src="media/event/lasirena/lasirenaEvent3.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "You walked into the library and found La Sirena at her desk, surrounded by stacks of papers and open files."
},
{
speaker: "player",
text: "You look busy as hell. What's all this?"
},
{
speaker: "lasirena",
text: "Research submissions from last month. I have to go through every single one and hand out the credits."
},
{
speaker: "player",
text: "So no private lesson today?"
},
{
type: "narration",
text: "La Sirena looked up, a slow, dirty smile spreading across her face."
},
{
speaker: "lasirena",
text: "Aww… look at this curious little student, already hungry for his next lesson."
},
{
type: "narration",
text: "She climbed onto the desk, knelt right in front of you, arched over the edge, and pulled you into a deep, open-mouthed kiss. Her tongue slid against yours like she'd been thinking about it all morning."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/intimacy/lasirena/lasirenaRoomKiss1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You didn't waste the chance. Your hands shoved her top down and filled with her big, soft tits, squeezing them hard while she moaned into your mouth."
},
{
type: "narration",
text: "After a few more seconds she broke the kiss, breathing heavier, and fixed her top like nothing happened."
},
{
speaker: "lasirena",
text: "Unfortunately I'm buried under all this shit today. We'll do the real lesson once I'm finished."
},
{
speaker: "player",
text: "When will that be?"
},
{
speaker: "lasirena",
text: "It's gonna take a while. I still have to assign everyone's credits… including the solid fifty percent you've earned so far. And I'm still waiting on Abella's research. No idea what's taking her so long."
},
{
speaker: "player",
text: "Fifty percent? You said you'd help me with this."
},
{
speaker: "lasirena",
text: "I did. But you still don't have your own research ready, do you? That takes time."
},
{
type: "narration",
text: "The look on your face must have said everything. La Sirena noticed and leaned forward a little, voice dropping."
},
{
speaker: "lasirena",
text: "I can make it a full hundred… but you'll have to do something for me first."
},
{
speaker: "player",
text: "Name it."
},
{
speaker: "lasirena",
text: "Help Abella finish her research and get her to submit it as soon as possible. You pull that off, and I'll give you the full credits… plus a private lesson that'll make you forget we were ever talking about paperwork."
},
{
speaker: "player",
text: "Deal. I'll get it done."
},
{
type: "narration",
text: "La Sirena smirked, eyes lingering on your mouth and then lower, before she waved you off and went back to her papers."
},
{
type: "narration",
text: "You left the library already thinking about how filthy that next lesson was going to be."
}
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Leave Library">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "You knocked on La Sirena's door. She opened it wearing nothing but a thin yellow see-through bra and matching panties. Her tits and nipples were clearly visible through the fabric."
},
{
type: "narration",
text: "You just stared."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/lasirena/lasirenaEvent4Entry.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "lasirena",
text: "Hi."
},
{
speaker: "player",
text: "Hello…"
},
{
speaker: "lasirena",
text: "How are you?"
},
{
speaker: "player",
text: "Fucking amazing now that I'm looking at you."
},
{
speaker: "player",
text: "I hope you already got Abella's research."
},
{
speaker: "lasirena",
text: "I did. She submitted everything this morning."
},
{
speaker: "player",
text: "Then it's time for our private lesson."
},
{
type: "narration",
text: "La Sirena gave you that slow, dirty smile."
},
{
speaker: "lasirena",
text: "Did you bring the Kama Sutra… and something to write with?"
},
{
speaker: "player",
text: "Yeah."
},
{
speaker: "lasirena",
text: "Open it. Tell me what the next topic in the index is."
},
{
speaker: "player",
text: "Handjobs."
},
{
type: "narration",
text: "Her eyes darkened with pure heat."
},
{
speaker: "lasirena",
text: "A handjob is wrapping your hands around a hard cock and stroking it until it explodes."
},
{
speaker: "lasirena",
text: "According to the book, you always warm the cock up first… get it throbbing before you really start working it."
},
{
speaker: "lasirena",
text: "Then you stroke it nice and slow… long strokes that make every vein stand out."
},
{
speaker: "lasirena",
text: "The head is the most sensitive part. You pay special attention to it… lips on it, tongue on it, sucking it while your hands keep stroking the rest."
},
{
speaker: "player",
text: "Doesn't that just turn into a blowjob?"
},
{
speaker: "lasirena",
text: "No. The hands are still doing all the work. The mouth is just extra. It's still a handjob."
},
{
speaker: "lasirena",
text: "And you never forget the balls. Kiss them… lick them… suck them while you're stroking. Most girls forget that part and they're fucking stupid for it."
},
{
speaker: "lasirena",
text: "You can twist your hands while you stroke… switch the grip… do it from different angles… even make him fuck your fists. There are so many ways to ruin a cock with just your hands."
},
{
speaker: "player",
text: "Can we please stop talking about it? I need the practical part right now."
},
{
type: "narration",
text: "La Sirena just smiled, dropped to her knees between your legs, and unzipped your pants."
},
{
type: "narration",
text: "Your cock sprang free. Her eyes went huge."
},
{
speaker: "lasirena",
text: "Oh my fucking god… this can't be real. This cock is massive. Even the Kama Sutra doesn't talk about anything this thick and long."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/lasirena/lasirenaEvent4Warmup1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She grabbed it, slapped it against her big soft tits a few times, and looked up at you."
},
{
speaker: "lasirena",
text: "Time to warm this monster up properly…"
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/lasirena/lasirenaEvent4Handjob2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She started stroking you with both hands, using every technique she just described — long strokes, twisting her wrists, squeezing the head on every upstroke."
},
{
speaker: "lasirena",
text: "Feel that? That's how you treat a cock this big."
},
{
speaker: "player",
text: "Fuck… your hands feel incredible."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/lasirena/lasirenaEvent4Boobjob2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She pushed your cock between her tits and squeezed them tight around it."
},
{
speaker: "lasirena",
text: "Look at it disappear between these… so fucking thick."
},
{
speaker: "player",
text: "Those soft tits were made to wrap around this cock."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/lasirena/lasirenaEvent4Handjob3.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She leaned down, wrapped her lips around the head, and started sucking it while both hands stroked the shaft hard and fast."
},
{
speaker: "player",
text: "That's it… suck the head while you jerk the rest. Good fucking girl."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/lasirena/lasirenaEvent4Handjob4.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She dropped lower and started licking and sucking your balls, still stroking your cock the entire time."
},
{
speaker: "player",
text: "Fuck yes… suck those balls while you stroke that thick cock."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/lasirena/lasirenaEvent4Handjob5.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You suddenly pulled her up, pushed her flat onto the sofa, and straddled her chest so your cock hovered right above her tits."
},
{
speaker: "player",
text: "Keep stroking this cock, slut. Don't you dare stop."
},
{
speaker: "lasirena",
text: "Yes… use my hands… use my tits… just don't stop."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/lasirena/lasirenaEvent4Cum1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She stroked you harder, staring up at your cock like she was obsessed."
},
{
speaker: "lasirena",
text: "I want your milk… give it to me. Cover these tits."
},
{
type: "narration",
text: "You came hard, thick ropes shooting all over her big breasts while she kept stroking every last drop out of you."
},
{
speaker: "lasirena",
text: "Thank you… fuck, there's so much of it."
},
{
type: "narration",
text: "She looked down at the mess on her chest, still breathing heavy, then glanced back up at you with a dirty little smile."
},
{
speaker: "lasirena",
text: "If I'd known you were packing a cock this big, I would've jumped straight to this topic on day one. Now get dressed and get out of here… before I decide I'm not done with you."
}
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Leave her room">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div><div id="sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "You wait until most of the students have moved on before walking up to Mandy. She notices you immediately, a slow smile already forming."
},
{
speaker: "player",
text: "Got a minute?"
},
{
speaker: "mandy",
text: "For you? Always."
}
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mandy/mandyPoints.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She leans against the desk, eyes dragging over you without any shame."
},
{
speaker: "player",
text: "I joined a month late. I still don't really get how the points system works here."
},
{
speaker: "mandy",
text: "Two parts. First, every student has to perform in front of a live audience at least once this semester. Doesn't matter what your main skill is. You pick something people can watch — dancing, singing, acting, whatever — and you perform. The better the crowd reacts, the more points you get."
},
{
speaker: "mandy",
text: "Second, there are regular competitions and tests for your actual skills. Coding, design, pottery, all of that. Those are separate, but they still count toward your overall score."
},
{
speaker: "player",
text: "And I missed the first round of both."
},
{
speaker: "mandy",
text: "You did. Which means you're starting behind."
},
{
type: "narration",
text: "She tilts her head, watching you with clear interest."
},
{
speaker: "player",
text: "I don't want to stay behind. Is there any way I can still get those points?"
},
{
speaker: "mandy",
text: "Normally? No. We don't set up private tests just because someone arrived late… even if they look as good as you do."
},
{
speaker: "player",
text: "So there's nothing?"
},
])>>
</div>
<div id = "Continue1">
<hr>
<center>
<<link "Continue">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
type: "narration",
text: "Mandy goes quiet for a second. Her eyes move down your body slowly, like she's thinking."
}
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mandy/mandyTask.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "mandy",
text: "There might be one option."
},
{
speaker: "player",
text: "I'm listening."
},
{
speaker: "mandy",
text: "There's a girl named Riley. Brilliant, but she's not doing great. On your first day she got excited about learning guitar from you."
},
{
speaker: "mandy",
text: "If you can actually make her improve… get her better at it, or at least raise her scores… I'll count that as your missed test and give you the points."
},
{
speaker: "player",
text: "So I have to coach someone just to catch up on one month?"
},
{
speaker: "mandy",
text: "That's the offer."
},
{
speaker: "player",
text: "That's a lot of work for a month's worth of points. I'm basically doing part of your job."
},
{
type: "narration",
text: "Mandy pauses. A small, amused smile pulls at her lips."
},
{
speaker: "mandy",
text: "…You're not wrong."
},
{
type: "narration",
text: "She steps closer, voice dropping."
},
])>>
<</append>>
<<replace "#Continue1">>
<div id = "Continue2">
<hr>
<center>
<<link "Continue">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
speaker: "mandy",
text: "Fine. If you pull this off, you get the points… and I'll give you something extra."
},
{
speaker: "player",
text: "Something extra?"
},
{
speaker: "mandy",
text: "Something personal. The kind of reward I don't usually hand out to students."
},
{
type: "narration",
text: "Her eyes flick down to your mouth for a moment before coming back up."
}
])>>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mandy/mandyExtra.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "mandy",
text: "Do well with Riley, and I'll make sure you feel very appreciated."
},
{
speaker: "player",
text: "Alright. I'll do it."
},
{
speaker: "mandy",
text: "Good."
},
{
type: "narration",
text: "She reaches out and lightly runs her fingers down your forearm."
},
{
speaker: "mandy",
text: "Help her improve. When you're done… come find me for your reward."
},
{
type: "narration",
text: "She gives you one last slow look, then turns and walks away, hips swaying just enough to make sure you watch."
}
]) >>
<</append>>
<<replace "#Continue2">>
<div id="Continue3">
<hr>
<center>
<<link "Continue">>
<<append "#sceneDialogue">>
<<run setup.finishEvent()>>
<</append>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
<</replace>>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<img class="background" src="media/event/mandy/mandyEvent2.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "Evening. The Skill Hub is quieter than usual when you find Mandy near one of the tables, going through a stack of papers."
},
{
speaker: "player",
text: "There you are."
},
{
speaker: "mandy",
text: "Looking for me?"
},
{
speaker: "player",
text: "I was. I finished what you asked me to do, so I'm here for what you promised."
},
{
type: "narration",
text: "Mandy looks up from the papers, then gives you a slow, knowing smile."
},
{
speaker: "mandy",
text: "You certainly seem confident."
},
{
speaker: "player",
text: "Shouldn't I be?"
},
{
speaker: "mandy",
text: "You should. I noticed what you did with Riley."
},
{
speaker: "mandy",
text: "I asked you to help her with guitar. Instead, you helped her figure out what she could actually excel at. That's considerably better than what I asked for."
},
{
speaker: "player",
text: "She just needed someone to see it."
},
{
speaker: "mandy",
text: "And apparently, you're very good at seeing things."
},
{
type: "narration",
text: "She studies you for a moment, her expression turning more thoughtful."
},
{
speaker: "mandy",
text: "I've been watching you since you got here. You adapt quickly, you pick things up, you work well with people… and somehow you keep ending up ahead of everyone around you."
},
{
speaker: "mandy",
text: "You're wasting a lot of potential if all you do is what everyone else does."
},
{
speaker: "player",
text: "You're making me sound pretty special. I'm guessing that comes with extra credits… and maybe a special reward?"
},
{
speaker: "mandy",
text: "You get ten percent of the credits you missed."
},
{
speaker: "player",
text: "Ten? We agreed on the full amount."
},
{
speaker: "mandy",
text: "You can still earn the rest."
},
{
speaker: "player",
text: "How?"
},
{
speaker: "mandy",
text: "From now on, when a student comes to me because they're struggling with something, I'll send them to you."
},
{
speaker: "mandy",
text: "Maybe they need someone to teach them. Maybe they need help practicing or rehearsing. Maybe they're preparing for a performance and need someone to perform alongside them."
},
{
speaker: "player",
text: "And that counts toward the credits I missed?"
},
{
speaker: "mandy",
text: "If you actually help them, yes."
},
{
speaker: "mandy",
text: "But don't confuse helping someone with taking their place. If you perform alongside them, they get the credit for their performance. You'll still have to do your own."
},
{
speaker: "player",
text: "So you're really making me work for that hundred percent."
},
{
speaker: "mandy",
text: "You wanted the full amount."
},
{
type: "narration",
text: "You give her a look, then let a small smile creep across your face."
},
{
speaker: "player",
text: "Fine. But you still owe me something."
},
{
speaker: "mandy",
text: "I haven't forgotten."
},
{
speaker: "player",
text: "So?"
},
{
speaker: "mandy",
text: "Not here. Come to my room."
}
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Go to her room">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
type: "narration",
text: "A short while later you're sitting on the edge of her bed. Mandy closes the door behind her and turns to face you."
},
{
speaker: "mandy",
text: "Go ahead. Take your reward."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mandy/mandyEvent2Kiss.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You don't waste a second. You pull her in and kiss her hard. She moans into your mouth almost immediately."
},
{
speaker: "mandy",
text: "Mmm—"
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mandy/mandyEvent2Boobs.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Your hands shove her top down, freeing her tits. You take one nipple into your mouth, sucking while your other hand rubs firmly between her legs over her shorts. She's already warm and damp under the fabric."
},
{
speaker: "mandy",
text: "Ahh… fuck—"
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/intimacy/mandy/mandyRoomKiss4.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Her moans get louder. Suddenly she pushes you back onto the bed, climbs straight onto your lap, and kisses you like she's starving — deep, messy, grinding her pussy hard against the bulge in your pants."
},
{
type: "narration",
text: "You reach for the button of her shorts. Mandy catches your wrist and holds it."
},
{
speaker: "mandy",
text: "That's enough. You've got your reward."
},
{
speaker: "player",
text: "Only this much?"
},
{
speaker: "mandy",
text: "Ten percent of the credits means ten percent of the reward."
},
{
speaker: "player",
text: "And the other ninety?"
},
{
speaker: "mandy",
text: "You'll have to earn that too… and I have a feeling you're going to enjoy trying."
},
{
speaker: "player",
text: "You're really enjoying this, aren't you?"
},
{
speaker: "mandy",
text: "A little more than I should."
},
{
type: "narration",
text: "She climbs off your lap, straightens her top, and opens the door."
},
{
speaker: "mandy",
text: "Leave. I'm already wet enough to let you fuck me, and that's not what the ten percent covers."
},
{
type: "narration",
text: "She gives you one last slow look as you leave, clearly pleased with how worked up she's left you."
}
]) >>
<</append>>
<<replace "#continue1">>
<div id = "continue2">
<hr>
<center>
<<link "Get out">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "Mandy finished giving instructions. The last few students filtered out of the Skill Hub until it was just the two of you left."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mandy/mandyEvent3Kiss1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You walked straight up to her, grabbed her by the waist, and kissed her hard — tongue, heat, no hesitation."
},
{
type: "narration",
text: "Mandy froze for half a second, then kissed you back before pulling away, eyes narrowed."
},
{
speaker: "mandy",
text: "The fuck was that for?"
},
{
speaker: "player",
text: "I didn't just help Riley find her talent. She made the cheerleading squad. That deserves its own reward… so I took it."
},
{
type: "narration",
text: "A slow, filthy smile spread across Mandy's face."
},
{
speaker: "mandy",
text: "Shit… that actually does deserve better than just a kiss."
},
{
speaker: "player",
text: "Then where are we doing it? Your room? Or are you feeling brave enough to stay right here?"
},
{
speaker: "mandy",
text: "Too late. You already took your reward when you shoved your tongue in my mouth without asking. If you'd told me first, I might've let you collect properly… but you decided to help yourself."
},
{
type: "narration",
text: "Your face dropped. The disappointment was obvious and she looked way too satisfied watching it."
},
{
speaker: "mandy",
text: "Don't look so fucking sad. You might still get another chance at a real reward…"
},
{
speaker: "player",
text: "What do I have to do?"
},
{
speaker: "mandy",
text: "Jane needs an acting partner for her skit. She's performing in front of everyone, and apparently she wants someone who can actually keep up with her."
},
{
speaker: "mandy",
text: "Make her shine up there, and we'll talk about your reward afterward. I think you'll like what I have in mind."
},
{
speaker: "player",
text: "Deal. I'll make sure she puts on a show worth remembering."
},
{
type: "narration",
text: "Mandy smirked, clearly enjoying how quickly you agreed."
},
{
speaker: "mandy",
text: "Good. Now get out of here before I change my mind and let you collect early."
},
{
type: "narration",
text: "You left the Skill Hub with her eyes still on you, already thinking about what that next reward was going to feel like."
}
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Leave skillHub">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "You knocked on Mandy's door. She opened it with that slow, knowing look already on her face and stepped aside."
},
{
speaker: "mandy",
text: "Come in. Judging by that look on your face, I already know why you're here."
},
{
type: "narration",
text: "You stepped inside. Her eyes dropped straight to your crotch and stayed there a second too long while you spoke."
},
{
speaker: "player",
text: "Jane's performance killed it. Loudest cheers of the night, people actually standing. I did exactly what you asked… so I'm here for the reward you promised."
},
{
type: "narration",
text: "A slow smile spread across Mandy's face as her eyes dropped to your crotch again before meeting yours."
},
{
speaker: "mandy",
text: "Yeah… I'd say you've earned something."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mandy/mandyEvent4Misread.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She reached out and gave your cock a short, firm squeeze through your pants before pulling her hand away."
},
{
speaker: "mandy",
text: "Already got a boner just thinking about it, huh?"
},
{
speaker: "player",
text: "These pants are just tight. I'm not really hard yet… though I could be if you put those hands back on it properly."
},
{
type: "narration",
text: "Mandy raised an eyebrow, half amused, half skeptical."
},
{
speaker: "mandy",
text: "Wait… you're telling me that's not even fully hard?"
},
{
speaker: "player",
text: "I'm not. Go ahead. Put your hand back where you had it."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mandy/mandyEvent4Feel1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You grabbed her wrist and pressed her hand against your crotch. She wrapped her fingers around the thick shape and immediately started stroking it through the fabric, testing the weight."
},
{
speaker: "mandy",
text: "Fuck… that's already this big and you're telling me it isn't even hard yet?"
},
{
speaker: "player",
text: "Keep doing that and you'll find out just how much bigger it gets."
},
{
speaker: "mandy",
text: "Jesus Christ… you've got me so fucking wet right now."
},
{
speaker: "player",
text: "I can fix that. Let me bend you over and fuck it out of you."
},
{
speaker: "mandy",
text: "Trust me, I want to shove this thing straight up my ass. That's how horny you've made me. But that would be rewarding you way too soon… and I'm not doing that yet."
},
{
type: "narration",
text: "She dropped to her knees between your legs and started unzipping your pants, still looking up at you."
},
{
speaker: "mandy",
text: "I'm sure once you finally get to put it in my ass, all you'll ever ask for is my butthole."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mandy/mandyEvent4Unzip1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Your cock sprang free. Mandy's eyes went wide and hungry. She grabbed it immediately with both hands and just stared."
},
{
speaker: "mandy",
text: "Okay… I take it back. Forget my ass. I can't even wrap my fucking hands around this. This cock is massive… thick, heavy, veins everywhere. It's ridiculous."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mandy/mandyEvent4Handjob1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Her hands picked up the pace, her eyes staying fixed on you as her breathing grew heavier."
},
{
speaker: "mandy",
text: "Look at it throb in my hands… already leaking and I just started."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mandy/mandyEvent4Handjob2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She leaned in and started sucking on your balls while both hands kept working your shaft."
},
{
type: "narration",
text: "You grabbed the back of her head and held her there, making her take them deeper."
},
{
speaker: "player",
text: "That's it… suck them while you stroke that thick cock. Good girl."
},
{
speaker: "player",
text: "You're dripping too. Let me fuck that wet little pussy."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mandy/mandyEvent4Denial1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "mandy",
text: "I want it… fuck, I really want it. But you can't fuck my pussy. Not yet."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mandy/mandyEvent4Handjob3.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She stroked harder, spit running down your shaft, eyes locked on yours."
},
{
speaker: "mandy",
text: "You can cum all over my face instead. That's the reward for now."
},
{
type: "narration",
text: "You felt yourself getting close. You stood up, took your cock in your own hand, and started stroking right in front of her face."
},
{
type: "narration",
text: "Mandy opened her mouth wide and stuck her tongue out, waiting."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mandy/mandyEvent4Cum1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You came hard, thick ropes shooting straight into her open mouth. She didn't flinch—just took every drop, swallowed it all, and opened her mouth again to show it was empty."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mandy/mandyEvent4Swallow1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "mandy",
text: "Fuck… that tasted so good. Thick and warm."
},
{
type: "narration",
text: "She wiped her lips with her thumb and looked up at you, still on her knees."
},
{
speaker: "mandy",
text: "Hope you got what you came for. You can leave now."
},
{
speaker: "player",
text: "I wanted a lot more than that… but I won't complain about what I got. This'll work for now."
},
{
type: "narration",
text: "Mandy smirked, clearly pleased she'd left you wanting more, and watched you fix your pants before you walked out."
}
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Leave her room">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div><div id="sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "You were just about to leave the hostel when a burst of shouting comes from the reception."
},
{
type: "narration",
text: "A man's voice cuts through the hallway—loud, furious, and filled with profanity."
},
{
type: "narration",
text: "You turn toward the reception and step inside."
}
]) >>
<img class="background" src="media/event/mia/angryGuy.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "A man is standing across the desk from Mia, screaming at her."
},
{
speaker: "angryGuy",
text: "You really went through with it? After everything I've done for you?"
},
{
speaker: "mia",
text: "Please... not here. Just go."
},
{
speaker: "angryGuy",
text: "You think you can just throw everything away and walk out on me?"
},
{
type: "narration",
text: "His voice stops the moment he notices you. He looks at you, then back at Mia. His jaw tightens."
},
{
speaker: "angryGuy",
text: "Fine."
},
{
type: "narration",
text: "He shoots Mia one last angry look before turning away. His footsteps hit the floor heavily as he storms out of the reception."
}
]) >>
</div>
<div id="continue1">
<hr>
<center>
<<link "Continue">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
type: "narration",
text: "The doors swing shut behind him. For a few seconds, the reception is completely silent. Mia lowers her head and tries to continue working."
},
{
type: "narration",
text: "But her hands are trembling. Her eyes are glassy, red around the edges, and tears are already gathering despite how desperately she's trying to hold them back."
},
{
speaker: "player",
text: "Mia..."
},
{
type: "narration",
text: "She quickly wipes beneath one eye."
},
{
speaker: "mia",
text: "I'm fine."
},
{
speaker: "player",
text: "You're not."
},
{
type: "narration",
text: "She tries to smile, but it barely lasts a second."
},
{
speaker: "player",
text: "Who was that guy? Why was he talking to you like that?"
},
{
type: "narration",
text: "Mia looks down at the desk."
}
]) >>
<</append>>
<<replace "#continue1">>
<div id="continue2">
<hr>
<center>
<<link "Continue">>
<<append "#sceneDialogue">>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mia/miaCry.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "mia",
text: "He... he was my husband."
},
{
type: "narration",
text: "She takes a shaky breath."
},
{
speaker: "mia",
text: "I filed for divorce."
},
{
type: "narration",
text: "Her voice cracks."
},
{
speaker: "mia",
text: "He found out, and... he came here to make sure I knew exactly how angry he was."
},
{
type: "narration",
text: "A tear slips down her cheek. She wipes it away, but another follows."
},
{
speaker: "mia",
text: "I tried so hard, you know..."
},
{
type: "narration",
text: "Her breathing becomes uneven."
},
{
speaker: "mia",
text: "I trusted him with my life. I gave him everything I had."
},
{
type: "narration",
text: "She looks at you, her eyes completely overwhelmed now."
},
{
speaker: "mia",
text: "But he never trusted me."
},
{
speaker: "mia",
text: "He questioned everything I did. Where I went. Who I talked to. What I wore. Every decision I made had to go through him."
},
{
type: "narration",
text: "Her voice trembles harder."
},
{
speaker: "mia",
text: "He didn't treat me like his wife. He treated me like I was something he owned."
},
{
type: "narration",
text: "She covers her mouth for a moment, trying to steady herself."
},
{
speaker: "mia",
text: "I hate him so much now..."
},
{
type: "narration",
text: "You step closer. Without saying anything, you pull Mia into a hug. For a moment, she freezes. Then her arms wrap tightly around you. Much tighter than you expected. She presses herself against you and finally lets herself cry."
}
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mia/miaHug.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "mia",
text: "I'm sorry..."
},
{
speaker: "player",
text: "You don't have to apologize."
},
{
speaker: "mia",
text: "I shouldn't be crying like this."
},
{
speaker: "player",
text: "You have every right to."
},
{
type: "narration",
text: "She grips your shirt tighter."
}
]) >>
<</append>>
<<replace "#continue2">>
<div id="continue3">
<hr>
<center>
<<link "Continue">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
speaker: "player",
text: "Mia, look at me."
}
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mia/miaLook.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She slowly lifts her face. Her cheeks are flushed from crying, her eyes puffy and wet, but there's still something incredibly beautiful about her."
},
{
speaker: "player",
text: "You're not something anyone gets to own."
},
{
type: "narration",
text: "Mia's lips part slightly."
},
{
speaker: "player",
text: "You're smart. You're kind. You're stronger than you give yourself credit for."
},
{
type: "narration",
text: "You gently wipe a tear from her cheek."
},
{
speaker: "player",
text: "And honestly... anyone who couldn't see what he had in front of him didn't deserve you in the first place."
},
{
type: "narration",
text: "Mia stares at you for a moment, almost as if she's trying to understand why hearing those words affects her so much."
},
{
speaker: "mia",
text: "You really mean that?"
},
{
speaker: "player",
text: "Every word."
},
{
type: "narration",
text: "You begin to loosen your arms, thinking she might need some space. But before you can step away, Mia pulls you back into the hug. Even tighter this time."
},
{
speaker: "mia",
text: "Don't..."
},
{
type: "narration",
text: "You stop."
},
{
speaker: "mia",
text: "Can you... just stay like this for a little longer?"
},
{
speaker: "player",
text: "Of course."
},
{
type: "narration",
text: "You hold her again. Neither of you says another word. The reception grows quiet around you."
},
{
type: "narration",
text: "Her breathing slowly steadies against your chest, and eventually her grip begins to loosen. After a while, Mia finally pulls back."
},
{
type: "narration",
text: "She looks up at you, her eyes still slightly red, but the tears have stopped."
},
{
speaker: "mia",
text: "Thank you."
},
{
type: "narration",
text: "She gives you a small, vulnerable smile."
},
{
speaker: "mia",
text: "I really needed that."
},
{
speaker: "player",
text: "Anytime."
},
{
type: "narration",
text: "A tiny smile appears on her face."
},
{
speaker: "player",
text: "Besides... I don't think someone as amazing as you should have to face everything alone."
},
{
type: "narration",
text: "Mia lets out a quiet laugh through the last traces of her tears."
},
{
speaker: "mia",
text: "You're dangerously good at saying the right thing."
},
{
speaker: "player",
text: "Only when the person in front of me deserves to hear it."
},
{
type: "narration",
text: "She looks at you for a second longer."
},
{
type: "narration",
text: "Then, almost shyly, Mia leans forward and presses a soft kiss against your cheek."
}
]) >>
<img class="background" src="media/event/mia/miaCheekKiss.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "You blink, caught slightly off guard."
},
{
type: "narration",
text: "Mia smiles."
},
{
speaker: "mia",
text: "A little thank-you."
},
{
type: "narration",
text: "She glances toward the entrance."
},
{
speaker: "mia",
text: "Aren't you supposed to be somewhere?"
},
{
speaker: "player",
text: "I was."
},
{
type: "narration",
text: "A small smile crosses your face."
},
{
speaker: "player",
text: "But I'm glad I stopped."
},
{
type: "narration",
text: "Mia's smile grows warmer."
},
{
speaker: "mia",
text: "Go. Before I give you another reason to stay."
},
{
speaker: "player",
text: "I'll see you around, Mia."
},
{
speaker: "mia",
text: "I'll be looking forward to it."
},
{
type: "narration",
text: "You give her one last smile before turning toward the exit."
},
{
type: "narration",
text: "As you walk away, you can still feel the warmth of her kiss against your cheek."
}
]) >>
<</append>>
<<replace "#continue3">>
<hr>
<center>
<<link "Continue">>
<<run setup.finishEvent()>>
<</link>>
</center>
<</replace>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div><div id="sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "You hear several sharp slaps from the reception, followed by Mia screaming in fear. Something inside you snaps, and you run toward the reception."
}
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mia/miaSlap.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You turn the corner and see Mia's husband beating her, one hand gripping her arm and the other raised. Your vision narrows. There's only him and the fact that he's touching her."
}
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mia/miaFight.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You rip him away from her. He barely turns before your fist connects. You don't stop. Punch after punch, you drive him across the reception, slam him into the wall, and put him on the floor. When he tries to get up, you haul him up again and keep going—until he's barely conscious."
},
{
type: "narration",
text: "You drag him outside and throw him onto the pavement."
},
{
speaker: "player",
text: "Stay away from her. Don't come back. Don't call her. Don't follow her. Don't even think about putting your hands on her again."
},
{
type: "narration",
text: "You grab his shirt one last time."
},
{
speaker: "player",
text: "If I ever see you near Mia again, you're going to wish you'd stayed away."
},
{
type: "narration",
text: "You shove him back."
},
{
speaker: "player",
text: "Get the hell out of here."
},
{
type: "narration",
text: "He stumbles away, barely able to stand."
}
]) >>
</div>
<div id="continue1">
<hr>
<center>
<<link "Continue">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
type: "narration",
text: "You turn back inside. Mia is behind the desk, hands shaking, tears streaming down her face. The moment she sees you, she covers her face and starts sobbing harder."
}
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mia/miaCry2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You go straight to her."
},
{
speaker: "player",
text: "Mia."
},
{
speaker: "mia",
text: "I'm sorry…"
},
{
speaker: "player",
text: "You have nothing to be sorry for."
}
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mia/miaHug2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You gently pull her hands away from her face and take her into your arms. She freezes for half a second, then collapses against you, holding on tight."
},
{
speaker: "mia",
text: "I was so scared… I thought nobody was going to stop him."
},
{
speaker: "player",
text: "I will. You're not alone anymore."
},
{
type: "narration",
text: "She looks up at you, eyes red and shining."
},
{
speaker: "mia",
text: "You barely even know me."
},
{
speaker: "player",
text: "I know enough. I know you didn't deserve any of this."
},
{
type: "narration",
text: "She swallows."
},
{
speaker: "mia",
text: "He made me feel like I couldn't survive without him."
},
{
speaker: "player",
text: "You can. And you don't have to prove it to anyone."
},
{
type: "narration",
text: "A quiet moment passes. She stays pressed against your chest, her breathing slowly steadying."
},
{
speaker: "mia",
text: "I feel safe with you."
},
{
speaker: "player",
text: "Good."
},
{
type: "narration",
text: "She shakes her head slightly."
},
{
speaker: "mia",
text: "No… when you're here, I actually feel safe."
},
{
type: "narration",
text: "You gently brush a tear from her cheek."
},
{
speaker: "player",
text: "Then stay right here."
},
{
type: "narration",
text: "She stays pressed against you, still trembling a little in your arms."
}
]) >>
<</append>>
<<replace "#continue1">>
<div id="continue2">
<hr>
<center>
<<link "Continue">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
speaker: "mia",
text: "Why… why did you look so angry?"
},
{
speaker: "player",
text: "Because nobody gets to hurt someone I care about."
},
{
type: "narration",
text: "Mia goes still for a second. Then she lifts her face to look at you."
},
{
speaker: "mia",
text: "Someone you care about…?"
},
{
speaker: "player",
text: "Yes."
},
{
type: "narration",
text: "Her eyes soften. She doesn't say anything else."
},
{
type: "narration",
text: "Instead, she leans in and kisses you."
}
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mia/miaKiss.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Her lips are soft and warm against yours. She tastes sweet. For a moment the kiss is careful—then she presses closer, and it deepens. Her body melts into your arms, soft and yielding."
},
{
type: "narration",
text: "When your tongue brushes hers she makes a quiet sound, fingers curling into the back of your shirt as she pulls you tighter. You hold her closer. She gives in completely."
},
{
type: "narration",
text: "When she finally pulls back, her forehead rests against yours. Her breathing is uneven, a small real smile on her lips."
},
{
speaker: "mia",
text: "I'm glad you came."
},
{
speaker: "player",
text: "Me too."
},
{
type: "narration",
text: "She closes her eyes and stays in your arms, finally looking like she believes she's safe."
}
]) >>
<</append>>
<<replace "#continue2">>
<div id="continue3">
<hr>
<center>
<<link "Continue">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/intimacy/mia/miaRoomKiss5.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You walked up to the reception desk. The second Mia saw you her entire face lit up. She didn't even wait — she grabbed your shirt, and kissed you hard and deep right there in the open."
},
{
speaker: "mia",
text: "I love you… I love you so fucking much."
},
{
type: "narration",
text: "She pulled back just enough to look at you, still smiling like she couldn't contain it."
},
{
speaker: "player",
text: "You're in a really good mood."
},
{
speaker: "mia",
text: "After you beat the shit out of my ex and told him to stay the fuck away from me… he still came back. All bruised, taped up. But this time he didn't come to fight. He came to apologize for everything. Said he won't bother me anymore and he'll finish the divorce quietly."
},
{
speaker: "player",
text: "Good. That's exactly what that piece of shit needed to understand."
},
{
type: "narration",
text: "Mia looked at you with pure heat and something softer mixed together."
},
{
speaker: "mia",
text: "It never would've happened without you. You're the reason I finally feel free… and so fucking wet every time I think about what you did for me."
},
{
speaker: "player",
text: "I'd break a hundred more men if it meant keeping that smile on your face and that pretty pussy throbbing for me."
},
{
type: "narration",
text: "Mia's cheeks flushed hard. She bit her lip, eyes locked on yours."
},
{
speaker: "mia",
text: "Would you… like to see my secret spot in the city?"
},
{
speaker: "player",
text: "Did you just ask me out on a date?"
},
{
speaker: "mia",
text: "You can call it that… if you want."
},
{
speaker: "player",
text: "I want. Tell me when and where whenever you're ready. I'll be there."
},
{
type: "narration",
text: "Mia gave you one last hungry look, still smiling like she'd been holding that invitation in for a long time. You left the reception with her eyes following you the entire way."
}
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Leave reception">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "You reached downtown with your guitar case. Mia was already waiting, looking fucking gorgeous. The second she saw you her face lit up completely."
},
{
type: "narration",
text: "She walked straight up and hugged you tight, body pressed fully against yours."
},
{
speaker: "player",
text: "You look so fucking good it should be illegal."
},
{
speaker: "mia",
text: "You're one to talk… I've been wet since I left the hostel just thinking about you."
},
{
speaker: "mia",
text: "Come on. The secret spot's a bit far from here."
},
{
type: "narration",
text: "The two of you took a cab out of downtown, driving for nearly an hour before reaching a quiet stretch of land — a small river, thick grass, and trees everywhere. No buildings, almost no people. It was beautiful."
},
{
type: "narration",
text: "You both spread a mat on the grass. While Mia was pulling things out of her bag a few steps away, you took out your guitar and started playing."
},
{
type: "narration",
text: "She watched you the way a girl watches someone she's already fallen for — soft eyes, small smile, completely focused."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mia/miaEvent4Guitar1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "mia",
text: "Aren't you full of surprises…"
},
{
type: "narration",
text: "She walked over and sat right next to you."
},
{
speaker: "mia",
text: "If you had to dedicate a song to me… which one would it be?"
},
{
type: "narration",
text: "You didn't answer with words. You just started playing and sang the first lines of “Perfect” by Ed Sheeran."
},
{
type: "narration",
text: "Mia's expression melted. She had that pure soft “aww” look on her face."
},
{
speaker: "mia",
text: "That's my favourite song…"
},
{
speaker: "player",
text: "And you're my favourite person."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mia/miaEvent4Kiss1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You leaned in and kissed her. Soft at first, then deeper."
},
{
speaker: "mia",
text: "Want to see the real secret spot?"
},
{
speaker: "player",
text: "Isn't this it?"
},
{
speaker: "mia",
text: "This place is still a little known. The real one is deeper in. Completely empty."
},
{
type: "narration",
text: "You followed her further until you reached a hidden clearing — thick grass, a single tree with an old tire swing, and absolute silence. No one else in sight."
},
{
type: "narration",
text: "You sat down on the mat. Mia immediately climbed into your lap, straddling you."
},
{
speaker: "mia",
text: "Only you know about this place now. That's how special you are to me."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mia/miaEvent4Kiss2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She kissed you hard and deep. You kissed her back just as filthy, both hands already filling with her soft tits, squeezing them through her top."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mia/miaEvent4Boob2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You pushed the fabric down, freed her breasts, and kept groping them while your tongues stayed locked. After a while you broke the kiss and dropped your mouth to her nipples, sucking and licking them one after the other."
},
{
speaker: "mia",
text: "Ahh… fuck… that feels so good…"
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mia/miaEvent4Unzip1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Mia slid off your lap, still kissing you, and started opening your pants while you were on your knees. The second your cock sprang free her expression completely changed."
},
{
speaker: "mia",
text: "Holy shit… it's huge. This thing is easily three times the size of my ex's. I can't even wrap my hand around it properly…"
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mia/miaEvent4Handjob2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She stared at it with pure hunger, then started worshipping it — soft kisses on the tip, slow licks, trying to take the head into her mouth but only managing a little before it was too much."
},
{
speaker: "mia",
text: "It's so thick… I can barely fit the tip. Fuck, I love how heavy it feels in my hand."
},
{
type: "narration",
text: "She stroked you while licking and kissing the head, that dirty little smile never leaving her face."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mia/miaEvent4Handjob3.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You grabbed her by the neck, pulled her up, and kissed her hard while she kept stroking your cock between your bodies."
},
{
speaker: "player",
text: "Look at you… on your knees in the middle of nowhere, stroking this thick cock like a good girl."
},
{
speaker: "mia",
text: "I can't help it… it's so fucking big and I've been thinking about it all day."
},
{
type: "narration",
text: "She kept jerking you, faster and tighter. You felt yourself getting close."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/mia/miaEvent4Cum3.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You pushed her back onto the mat, took your cock in your own hand, and started stroking right above her."
},
{
speaker: "mia",
text: "Cum on my pussy… please. I want to feel it all over me."
},
{
type: "narration",
text: "You came hard, thick ropes shooting across her pussy and lower stomach while she watched every pulse with open hunger."
},
{
type: "narration",
text: "You leaned down and kissed her deeply, still breathing hard."
},
{
type: "narration",
text: "After a while you both got dressed. Mia kept glancing at the mess on her skin with a small, satisfied smile as the two of you left the secret spot together."
}
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Go to hostel">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div><div id="sceneDialogue">
<img class="background" src="media/event/player/angela_playerEvent1.jpg">
<<= setup.renderDialogue([
{
speaker: "angela",
text: "Good morning. You must be the new transfer."
},
{
speaker: "angela",
text: "I'm Angela. I'll be teaching this course. Glad to finally have you here."
},
{
type: "narration",
text: "Angela steps closer to your desk, her eyes travel over you slowly, openly taking you in."
},
{
type: "narration",
text: "While she's still looking, your eyes drop for a second—right to her big tits straining against her blouse—then flick straight back to her face."
},
{
speaker: "player",
text: "Sorry... I didn't mean to stare"
},
{
speaker: "angela",
text: "You don't have to apologize. I was staring at you first"
},
{
speaker: "angela",
text: "Besides, if you're going to stare, don't look away so quickly. I was enjoying watching you."
},
{
type: "narration",
text: "Heat crawls up the back of your neck. That was not what you thought she'd say."
},
{
speaker: "player",
text: "I didn't expect that."
},
{
speaker: "angela",
text: "I can tell."
},
{
type: "narration",
text: "She gives you a slow, amused smile."
},
{
speaker: "angela",
text: "You looked guilty for about half a second. It was cute."
},
{
speaker: "angela",
text: "Now, unless you're planning on spending the entire semester staring at my boobs…"
},
{
speaker: "player",
text: "I wasn't planning on it."
},
{
speaker: "angela",
text: "Shame."
},
{
type: "narration",
text: "Angela gives you one last amused look before turning toward the rest of the class."
},
{
type: "narration",
text: "You settle back into your seat, opening your notebook as you take in the classroom around you."
}
]) >>
</div>
<div id="continue1">
<hr>
<center>
<<link "Continue">>
<<run setup.addPlayerStat("intelligence", 1)>>
<<run setup.addAffection("angela", 1)>>
<<append "#sceneDialogue">>
<img class="background" src="media/event/player/eva_playerEvent1.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "A moment later, you glance to your right. A very cute girl is already looking at you."
},
{
type: "narration",
text: "The moment your eyes meet, something shifts. It isn't loud or dramatic—just a quiet, unexpected pull, like the air between you has changed. You don't fully understand it, but you feel the difference."
},
{
type: "narration",
text: "She doesn't look away. A small, almost amused smile touches her lips."
},
{
speaker: "eva",
text: "Um… I like your notes. They're actually really neat."
},
{
speaker: "player",
text: "I didn't know notes could be neat."
},
{
speaker: "eva",
text: "They can when you write them like that."
},
{
type: "narration",
text: "She smiles and turns her notebook toward you. The handwriting isn't as clean as yours, but the pages are dense with careful detail—every point laid out with quiet precision."
},
{
speaker: "player",
text: "Yours aren't as pretty as mine… but they're better where it counts. The details are solid."
},
{
type: "narration",
text: "Her smile softens."
},
{
speaker: "eva",
text: "I'm Eva, by the way. If you ever need them, just let me know. You'd probably need it—you're a month late."
},
{
speaker: "angela",
text: "Oh my God. Our little topper finally spoke to a boy."
},
{
type: "narration",
text: "Eva's expression shifts instantly."
},
{
speaker: "eva",
text: "Angela…"
},
{
speaker: "angela",
text: "What? I'm just messing with you."
},
{
speaker: "player",
text: "Well… I'm honored. The most beautiful girl I've ever seen chose to talk to me out of everyone here. And she's the topper, too."
},
{
type: "narration",
text: "A faint blush rises in her cheeks. She tries to hold your gaze, then looks down with a quiet smile she can't quite hide."
}
]) >>
<</append>>
<<replace "#continue1">>
<hr>
<center>
<<link "Continue">>
<<run setup.addPlayerStat("intelligence", 1)>>
<<run setup.addAffection("eva", 1)>>
<<run setup.finishEvent()>>
<</link>>
</center>
<</replace>>
<</link>>
</center>
</div><div id="sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "You catch movement near the entrance. A girl steps into the hub, and the first thing that hits you is her ass—full, round, and bouncing with every step like it's begging to be watched. You force your eyes away, jaw tight, trying not to be obvious about it."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/playerEvent2MandyAss.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She turns toward the room and starts speaking, voice smooth and confident. That's when it clicks. She's not another student."
}
]) >>
<img class="background" src="media/event/player/mandy_playerEvent2.jpg">
<<= setup.renderDialogue([
{
speaker: "mandy",
text: "Good afternoon, everyone. Before we begin, we have a new student joining us today."
},
{
type: "narration",
text: "Her gaze lands on you and stays there a little too long."
},
{
speaker: "mandy",
text: State.variables.player.name + ", why don't you come introduce yourself? Tell us a little about who you are"
},
{
speaker: "player",
text: "Hey, everyone. I'm " + State.variables.player.name + ". I'm here to study, but that's hardly all I do. I play guitar, sing, write, play sports, work out, and I've picked up a bunch of other skills over the years. Give me something interesting enough, and I'll probably figure it out."
},
{
type: "narration",
text: "A few heads turn. Interest flickers across the room."
},
{
type: "narration",
text: "Mandy's eyes drag over you slowly—shoulders, chest, the way your clothes sit on your frame—like she's already decided she likes what she sees."
},
{
speaker: "mandy",
text: "Guitar. Singing. And a body like that… you're basically every girl's wet dream walking in here."
},
{
type: "narration",
text: "She doesn't even try to hide the way she's looking at you. Her smile is slow, almost hungry."
},
{
speaker: "mandy",
text: "I can't speak for the rest of them… but I know you've already impressed me."
},
{
speaker: "player",
text: "I didn't expect the tutor to be this young."
},
{
speaker: "mandy",
text: "Age is just a number when you've got the skills. And I've got plenty."
},
{
type: "narration",
text: "She tilts her head slightly, still watching you."
},
{
speaker: "mandy",
text: "I'm a dancer. An actor. I know exactly how to use what I've got… and how to teach others to do the same. That's why I'm here."
},
{
speaker: "player",
text: "Yeah… I can tell you dance. That ass is—"
},
{
type: "narration",
text: "You stop, clear your throat."
},
{
speaker: "player",
text: "…those thighs are ridiculous."
},
{
type: "narration",
text: "A soft, knowing laugh slips out of her."
},
{
speaker: "mandy",
text: "You can say ass, you know. Nothing wrong with complimenting it."
},
{
type: "narration",
text: "She steps just a little closer, voice dropping."
},
{
speaker: "mandy",
text: "Think of me as a friend. No need to be shy."
},
{
type: "narration",
text: "She winks, slow and deliberate."
},
{
speaker: "player",
text: "Talking about your ass with a friend still doesn't feel normal."
},
{
speaker: "mandy",
text: "Then don't think of me as just a friend."
},
{
type: "narration",
text: "The words hang between you, thick and charged. She lets the silence stretch for a beat before her tone shifts back—still warm, still teasing, but more composed."
},
{
speaker: "mandy",
text: "There are a lot of groups here. Each one focuses on a different skill. You look like the type who could fit in anywhere. Go explore. Join whatever catches your interest… or switch every day if you want. Entirely up to you."
},
{
type: "narration",
text: "She gives you one last lingering look, the kind that feels like a promise more than a goodbye, then turns and walks away—hips swaying just enough to make sure you notice."
}
]) >>
</div>
<div id="continue1">
<hr>
<center>
<<link "Continue">>
<<run setup.addPlayerStat("skills", 1)>>
<<run setup.addAffection("mandy", 1)>>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
type: "narration",
text: "You moved through the Skill Hub, scanning the different groups. Turning a corner too fast, you walked straight into someone."
}
]) >>
<img class="background" src="media/event/player/riley_playerEvent2.jpg">
<<= setup.renderDialogue([
{
speaker: "player",
text: "Shit—sorry. You okay?"
},
{
speaker: "riley",
text: "Y-Yeah… I'm fine."
},
{
type: "narration",
text: "She looked up at you and froze for a second."
},
{
speaker: "riley",
text: "Wait… you're the guitar guy from earlier."
},
{
speaker: "player",
text: "That's me."
},
{
speaker: "riley",
text: "I've been wanting to learn for so long. Could you teach me? Please?"
},
{
speaker: "player",
text: "Yeah. I can do that."
},
{
type: "narration",
text: "Her face lit up immediately. You found yourself watching her a little longer than necessary."
},
{
type: "narration",
text: "The two of you found a quieter corner. The guitar lesson kept getting interrupted by conversation. Riley stayed close the whole time, her knee resting against yours, her fingers brushing your hand whenever you fixed her grip."
},
{
type: "narration",
text: "You didn't move away."
},
{
speaker: "riley",
text: "You're different from most people here."
},
{
speaker: "player",
text: "Different how?"
},
{
speaker: "riley",
text: "I noticed you right away… and I haven't really been able to stop."
},
{
type: "narration",
text: "She said it quietly. You held her gaze for a moment instead of brushing it off."
},
{
speaker: "player",
text: "I noticed you too."
},
{
type: "narration",
text: "Her cheeks turned pink, but she smiled."
},
{
type: "narration",
text: "When the hub started emptying, neither of you stood up right away."
},
{
speaker: "riley",
text: "Are you going to be here again?"
},
{
speaker: "player",
text: "Yeah. Will you?"
},
{
speaker: "riley",
text: "If you are… then yes."
},
{
type: "narration",
text: "She hesitated like she didn't want to leave yet."
},
{
speaker: "riley",
text: "Don't forget about me, okay?"
},
{
speaker: "player",
text: "I won't."
},
{
type: "narration",
text: "She gave you a small smile before walking off, glancing back more than once. You watched her go."
}
]) >>
<</append>>
<<replace "#continue1">>
<hr>
<center>
<<link "Continue">>
<<run setup.addPlayerStat("skills", 1)>>
<<run setup.addAffection("riley", 1)>>
<<run setup.finishEvent()>>
<</link>>
</center>
<</replace>>
<</link>>
</center>
</div><div id="sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "You wander through the halls until you spot the college library."
},
{
type: "narration",
text: "Curious, you decide to step inside and take a quick look."
}
]) >>
<img class="background" src="media/event/player/lasirena_playerEvent3.jpg">
<<= setup.renderDialogue([
{
speaker: "lasirena",
text: "Are you lost, babyboy?"
},
{
speaker: "player",
text: "I kinda was... but I think I just found the right place."
},
{
type: "narration",
text: "She smiles, her eyes lingering on you for a moment longer than necessary."
},
{
speaker: "lasirena",
text: "La sirena. And it's not every day I see a guy like you wandering into a library."
},
{
speaker: "player",
text: "First day. Figured I should actually learn where the books are. I'm " + State.variables.player.name + "."
},
{
speaker: "lasirena",
text: "Mmm. Flirting with the librarian on your very first day… I like the confidence."
},
{
speaker: "player",
text: "Would've been a waste not to. You're the most interesting thing in this entire building."
},
{
type: "narration",
text: "Her smile deepened, slow and knowing."
},
{
speaker: "lasirena",
text: "Careful. I might be a little too old for someone like you… but damn if it doesn't feel good hearing that from a man who looks the way you do."
},
{
speaker: "player",
text: "Oh, look who's flirting now."
},
{
type: "narration",
text: "You let your eyes travel over her without hurry."
},
{
speaker: "player",
text: "You don't look a day older than any other girl on this campus. If anything, age only made you more dangerous."
},
{
speaker: "lasirena",
text: "Is that so? You really need to stop showering me with compliments. If I actually fall for you, it's going to be a serious problem… for you."
},
{
speaker: "player",
text: "Can't really blame me. You're so fucking stunning I can't keep my tongue under control."
},
{
type: "narration",
text: "She stepped just a little closer, voice dropping into something silkier."
},
{
speaker: "lasirena",
text: "Then maybe we should put that tongue somewhere more useful… somewhere it being out of control would actually help."
},
{
type: "narration",
text: "A smirk curled at the corner of her mouth."
},
{
speaker: "player",
text: "I like where this is going."
},
{
speaker: "lasirena",
text: "Honestly? So do I."
},
{
speaker: "lasirena",
text: "But I have to go. If you're serious about the books… you should get yourself a library card."
},
{
speaker: "player",
text: "Yeah. I'd like a library card."
},
{
speaker: "lasirena",
text: "Jane. Come help him with a library card… he's the kind of student who'll need a lot of personal attention."
},
{
type: "narration",
text: "Jane steps out from the shelves. The moment her eyes land on you, her steps slow."
},
{
type: "narration",
text: "She doesn't say anything at first — she just looks at you, like something unexpected settled in her chest."
}
]) >>
<img class="background" src="media/event/player/jane_playerEvent3.jpg">
<<= setup.renderDialogue([
{
speaker: "lasirena",
text: "She's one of my biggest bookworms."
},
{
speaker: "jane",
text: "I prefer 'avid reader.'"
},
{
type: "narration",
text: "La Sirena looked at you one last time, lips curved in a slow, filthy little smile that promised far more than library privileges and then she disappeared in the shelves"
}
]) >>
</div>
<div id="continue1">
<hr>
<center>
<<link "Continue">>
<<run setup.addPlayerStat("charisma", 1)>>
<<run setup.addAffection("lasirena", 1)>>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
type: "narration",
text: "For a moment, Jane just looks at you, like she's trying to place a feeling she wasn't prepared for."
},
{
speaker: "jane",
text: "Sorry. I didn't mean to stare."
},
{
speaker: "player",
text: "It's alright."
},
{
speaker: "jane",
text: "I can get your library card ready."
},
{
speaker: "player",
text: "Appreciate it."
},
{
speaker: "jane",
text: "You're not what I expected."
},
{
speaker: "player",
text: "What did you expect?"
},
{
speaker: "jane",
text: "I'm not sure. Just… not you."
},
{
speaker: "jane",
text: "You look like someone I would've imagined while reading."
},
{
type: "narration",
text: "She realizes what she said and lets out a small, embarrassed breath."
},
{
speaker: "jane",
text: "That sounded better in my head."
},
{
speaker: "player",
text: "I don't mind."
},
{
speaker: "jane",
text: "You make it hard to stay normal."
},
{
speaker: "player",
text: "I haven't done anything yet."
},
{
speaker: "jane",
text: "That's the problem."
},
{
speaker: "jane",
text: "Can you hold these while I fill this out?"
},
{
type: "narration",
text: "She places a few pages in your hands. Her fingers brush yours as she lets go."
},
{
speaker: "player",
text: "Of course."
},
{
type: "narration",
text: "Jane turns to the form. You look down at the pages and notice the top one is a poem. Without thinking, you start reading."
},
{
type: "narration",
text: "You're nearly at the end of the first page when she notices."
},
{
speaker: "jane",
text: "Wait—"
},
{
type: "narration",
text: "She takes the pages from you quickly, holding them against her chest. Her face is warm, but there's no anger."
},
{
speaker: "jane",
text: "You weren't supposed to read that."
},
{
speaker: "player",
text: "Sorry. I didn't realize it was private."
},
{
speaker: "jane",
text: "It's okay… it's not finished anyway."
},
{
speaker: "player",
text: "Even unfinished, the wording is beautiful. The imagery is strong, and the structure is surprisingly polished."
},
{
speaker: "jane",
text: "But?"
},
{
speaker: "player",
text: "But something's missing. It feels like you're describing an emotion carefully… without fully feeling it yet."
},
{
type: "narration",
text: "Jane goes still."
},
{
speaker: "jane",
text: "That's… exactly it."
},
{
speaker: "player",
text: "You'll finish it when it becomes something you've lived, not just something you understand."
},
{
speaker: "jane",
text: "You shouldn't be able to see that so clearly."
},
{
speaker: "player",
text: "Maybe most people just don't look long enough."
},
{
type: "narration",
text: "She finishes the library card and hands it to you. Her fingers rest against yours for a moment before she pulls away."
},
{
speaker: "jane",
text: "I think meeting you is going to make finishing that poem very difficult."
}
]) >>
<</append>>
<<replace "#continue1">>
<hr>
<center>
<<link "Continue">>
<<run setup.addPlayerStat("charisma", 1)>>
<<run setup.addAffection("jane", 1)>>
<<run setup.finishEvent()>>
<</link>>
</center>
<</replace>>
<</link>>
</center>
</div><div id="sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "You've spent enough time sitting around for one day. A little exercise wouldn't hurt, so you make your way to the playground."
}
]) >>
<img class="background" src="media/background/playground_bg.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "A basketball suddenly rolls across the pavement and comes to a stop at your feet."
},
{
type: "narration",
text: "You pick it up, and a sweet voice calls out from behind you."
},
{
speaker: "abella",
text: "Mind giving me my ball back, hotshot?"
},
{
type: "narration",
text: "You turn and find yourself looking at a girl with an easy smile and a look that lingers just a little longer than necessary."
},
{
type: "narration",
text: "You throw the ball back. She catches it without breaking eye contact."
}
]) >>
<img class="background" src="media/event/player/abella_playerEvent4.jpg">
<<= setup.renderDialogue([
{
speaker: "abella",
text: "Nice throw. And definitely not bad to look at, either."
},
{
speaker: "abella",
text: "You're new, aren't you? I'd remember seeing someone like you around here."
},
{
speaker: "player",
text: "Guilty. I'm " + State.variables.player.name + ". I'm new around here."
},
{
speaker: "abella",
text: "Ooooh. That explains why I haven't seen you before. I'm Abella. Nice to meet you, " + State.variables.player.name + "."
},
{
speaker: "player",
text: "Nice to meet you too. Though I'm starting to think I got pretty lucky on my first day."
},
{
type: "narration",
text: "Abella raises an eyebrow, clearly catching the meaning behind your words."
},
{
speaker: "abella",
text: "Careful, handsome. You just got here."
},
{
speaker: "abella",
text: "The college is closing, though. Mind if I walk with you?"
},
{
speaker: "player",
text: "I'd be stupid to say no to that."
},
{
type: "narration",
text: "She smiles to herself as the two of you start walking, the conversation coming surprisingly easily."
},
{
type: "narration",
text: "Every now and then, you catch her glancing your way. And every time you catch her, she pretends she wasn't looking. Eventually, you reach the entrance to her hostel."
},
{
speaker: "abella",
text: "Well... this is my stop. You're not allowed any further, unfortunately."
},
{
speaker: "player",
text: "Funny. They actually assigned me a room here."
},
{
speaker: "abella",
text: "Wait. Seriously?"
},
{
type: "narration",
text: "Her eyes widen before a mischievous smile slowly takes over."
},
{
speaker: "abella",
text: "Well, then... you'd better lock your door properly. Wouldn't want you coming out of the shower one morning and finding an unexpected guest in your bed."
},
{
speaker: "player",
text: "I wouldn't complain."
},
{
speaker: "abella",
text: "Oh? About having company?"
},
{
speaker: "player",
text: "About you being the company."
},
{
type: "narration",
text: "For a moment, Abella simply looks at you. Then she bites back a smile, cheeks warming slightly."
},
{
type: "narration",
text: "She takes a few steps toward her room, then glances back at you one last time."
}
]) >>
</div>
<div id="continue1">
<hr>
<center>
<<link "Continue">>
<<run setup.addPlayerStat("fitness", 1)>>
<<run setup.addAffection("abella", 1)>>
<<run setup.finishEvent()>>
<</link>>
</center>
</div><<= setup.renderDialogue([
{
type: "narration",
text: "You're sitting in your room, taking a moment to yourself, when your phone suddenly rings."
},
])>>
<img class="background" src="media/event/player/playerEvent5Call.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "You glance at the screen and smile when you see who's calling."
},
{
speaker: "grandma",
text: "There you are! I was starting to think you'd forgotten about your old grandmother."
},
{
speaker: "player",
text: "I'd never forget you."
},
{
speaker: "grandma",
text: "Hmm. You've been awfully quiet lately."
},
{
speaker: "player",
text: "I've been busy. College has been keeping me occupied."
},
{
speaker: "grandma",
text: "Oh? My little bookworm finally found something more interesting than his books?"
},
{
speaker: "player",
text: "Apparently."
},
{
speaker: "grandma",
text: "Good. I've been telling you for years to get out there and actually live a little."
},
{
speaker: "player",
text: "I know, I know."
},
{
speaker: "grandma",
text: "So? How is it?"
},
{
speaker: "player",
text: "Honestly? Pretty great. I've met some good people, tried things I never would've tried back home... even started working out again."
},
{
speaker: "grandma",
text: "Look at you. I'm actually proud of you."
},
{
speaker: "player",
text: "You sound surprised."
},
{
speaker: "grandma",
text: "I'm surprised you actually listened to me."
},
{
speaker: "player",
text: "Don't get too excited."
},
{
speaker: "grandma",
text: "And from what I saw the other day, it looks like you're making some very pretty friends too."
},
{
speaker: "player",
text: "Grandmaaaaa..."
},
{
speaker: "grandma",
text: "What? I liked her."
},
{
speaker: "player",
text: "You're impossible."
},
{
speaker: "grandma",
text: "Maybe. But I'm glad you're having a good time."
},
{
speaker: "player",
text: "Yeah. I really am."
},
{
speaker: "grandma",
text: "That's all I wanted. Just remember to call your old grandmother once in a while, alright?"
},
{
speaker: "player",
text: "I will. Love you."
},
{
speaker: "grandma",
text: "Love you too, sweetheart. Now go enjoy your college life."
},
{
speaker: "player",
text: "Goodnight, Grandma."
},
{
speaker: "grandma",
text: "Goodnight, kiddo."
}
]) >>
<hr>
<center>
<<link "Continue">>
<<run setup.finishEvent()>>
<</link>>
</center><div id = "sceneDialogue">
<img class="background" src="media/event/player/playerEvent6Jessa_bg.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "You stepped into the restaurant and saw Jessa on the other side of the counter, lazily chewing gum and looking fucking lethal in that tiny outfit."
},
{
speaker: "jessa",
text: "You're back again… place is closed."
},
{
speaker: "player",
text: "Sign outside still says open."
},
{
speaker: "jessa",
text: "A lot of shit's been running through my head. Must've forgotten to flip it."
},
{
speaker: "player",
text: "You alright? Last time I saw you, you looked completely lost."
},
{
speaker: "jessa",
text: "I just broke up."
},
{
speaker: "player",
text: "How the fuck does anyone walk away from a girl who looks like you?"
},
{
speaker: "jessa",
text: "I got tired of this place. Upskilled, landed a way better job in another city. I told him right here, thinking he'd be proud of me… instead he lost his shit. Didn't want me going anywhere, accused me of planning to fuck other guys the second I left. Like, what the fuck is wrong with you guys? You're all the fucking same."
},
{
speaker: "player",
text: "Not every man."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/playerEvent6Gum1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Jessa stared at you for a long second, then leaned over the counter, pulled the gum from her mouth, and pushed it between your lips with her tongue."
},
{
speaker: "jessa",
text: "They all say that at the beginning. Anyway… you came for a bite? That's all I've got left to offer. Today's my last day. You're my last customer. Tomorrow I'm gone — new city, new life, leaving every shitty guy behind."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/playerEvent6Convo1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "player",
text: "You know what I'd do if I was your man? I'd walk straight to that door, flip the sign to closed, rip that tiny outfit off your body, and fuck you right here on this counter until you forgot every other cock existed."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/playerEvent6Pull1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Jessa just stood there, expression completely blank, eyes locked on yours. Then she walked to the door, locked it, flipped the sign, and came back."
},
{
speaker: "jessa",
text: "Then get to it."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/playerEvent6Kiss1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She kissed you like she was starving — deep, wet, filthy. You grabbed two handfuls of her big soft ass and squeezed hard while your tongues fought."
},
{
type: "narration",
text: "You spun her around, yanked her little shirt up, and freed her heavy tits, filling your hands with them, thumbs dragging over her nipples."
},
{
type: "narration",
text: "Jessa dropped to her knees, ripped your zipper open, and pulled your cock out. Her eyes went wide the second it sprang free."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/playerEvent6Blowjob1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "jessa",
text: "Holy fuck… this thing is massive. Thicker than my wrist. I've never even seen a cock this big. I need it in my throat right now."
},
{
type: "narration",
text: "She wrapped her lips around the head and started sucking hard, taking as much as she could. You grabbed the back of her head and started fucking her throat deep and rough."
},
{
speaker: "player",
text: "That's it, take that thick cock down your throat like a good little whore."
},
{
type: "narration",
text: "After a few long thrusts you let go. Jessa pulled off, spit dripping down her chin, gasping."
},
{
speaker: "jessa",
text: "Fuck… that was so deep. My throat's already ruined and I love it."
},
{
type: "narration",
text: "She went straight back to sucking, messy and desperate. After a while she stood up and kissed you again, transferring the taste of your cock into your mouth."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/playerEvent6PussyLicking1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You bent her over the counter, dropped to your knees, and started licking her dripping pussy from behind. She was soaked."
},
{
speaker: "jessa",
text: "Ahh… fuck yes… eat that wet pussy… it feels so fucking good…"
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/playerEvent6StandingDoggy2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You stood up, lined your cock up, and shoved it into her in one hard thrust. Jessa cried out the second you bottomed out."
},
{
speaker: "jessa",
text: "Oh my god— it's so fucking big… give it to me. Fuck me like the dirty little whore I am."
},
{
speaker: "player",
text: "You want this thick cock to destroy this tight pussy? Then take every inch."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/playerEvent6StandingMissionary2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You turned her around, made her sit on the edge of a chair, threw both her legs over one of your shoulders and slammed back in. You spanked her ass hard while you fucked her."
},
{
speaker: "jessa",
text: "Ahh—yes! Spank me… fuck me deeper… I can feel you stretching me open—"
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/playerEvent6Cowgirl2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She pushed you back, forced you into the chair, climbed on top and sank down onto your cock, riding you hard and fast."
},
{
speaker: "jessa",
text: "Look at me bouncing on this massive cock… it feels so fucking deep like this—"
},
{
speaker: "player",
text: "Ride it harder, slut. I want to feel that pussy milking me."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/playerEvent6Doggy2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You stood, bent her over the chair on her knees, slammed her head down onto the counter and started pounding her from behind without mercy."
},
{
speaker: "player",
text: "Take it. Take every thick inch while I use this pussy."
},
{
speaker: "jessa",
text: "Ahh—fuck—yes—use me—don't stop—"
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/playerEvent6Missionary4.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You pulled out, flipped her so she was facing you, and drove back in so you could watch her tits bounce with every thrust."
},
{
speaker: "jessa",
text: "I'm gonna cum… don't you dare stop… keep fucking me right there—fuck me through it—"
},
{
speaker: "player",
text: "Cum on this cock, you filthy slut. I want to feel it."
},
{
type: "narration",
text: "Jessa came hard, body shaking, almost collapsing. You held her steady and kept fucking her even faster and deeper through the entire orgasm."
},
{
speaker: "player",
text: "It's not over yet, whore. I'm still using this pussy."
},
{
type: "narration",
text: "She slowly came back to her senses, still moaning and twitching around your cock."
},
{
speaker: "jessa",
text: "I want your cum… all over my face. Cover me. Please."
},
{
speaker: "player",
text: "Get on your knees then. I'm going to paint that pretty face."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/player/playerEvent6Cum1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Jessa dropped to her knees. You stroked your cock right in front of her open mouth and came hard, thick ropes covering her cheeks, lips, tongue and chin."
},
{
type: "narration",
text: "She didn't waste a drop — licked your cock clean, swallowed everything that landed in her mouth, and kept sucking until you were completely empty."
},
{
speaker: "jessa",
text: "Fuck… I wish I met you earlier. I'm actually going to regret leaving this city after what you just did to me."
},
{
type: "narration",
text: "The two of you got dressed in silence. Jessa still had your cum drying on her face when she unlocked the door and let you out into the night."
}
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Leave restaurant">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div><img class="background" src="media/background/patreon_cover.png">
<<=
setup.renderDialogue([
{
speaker: "admenz",
text: "Well… looks like that's where this part of the story ends."
},
{
speaker: "admenz",
text: "This version is only one step in a much bigger journey. There's plenty more to come — more characters, more stories, more places to explore, and a lot more trouble waiting around the corner."
},
{
speaker: "admenz",
text: "Freshman Year is still in development, and I'll be adding new content with every monthly update. We're only getting started.😉"
},
{
speaker: "admenz",
text: "And one last thing before you head out.😂 Yes, the game is still in development. So if you're about to rush down there and announce that it's incomplete, congratulations, detective. You've discovered how development works.💀"
},
{
speaker: "admenz",
text: "Instead, tell me what you enjoyed, what you'd like to see next, or which character has you hooked. That's the kind of comment that actually helps this game grow.😉"
},
{
speaker: "admenz",
text: "And if you're curious about what's coming next, you can follow FRESHMAN YEAR on Patreon. The story there is already months ahead, with access to new content long before it reaches the public version. You can also follow the development and support the project along the way.👀"
},
{
speaker: "admenz",
text: "For now, though… thanks for playing. Every player who gives this project a chance helps bring the next chapter to life."
},
{
speaker: "admenz",
text: "I'll see you in the next update. And trust me, we're only getting started.😈"
}
])
>>
<hr>
<center>
<<link "Continue">>
<<run setup.finishEvent()>>
<</link>>
</center><div id="sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "You walk into the SkillHub with a clear goal today. You're not just here to practice. You're here to play, and you're going to make sure everyone notices."
},
{
type: "narration",
text: "You head to the usual spot where Riley and the rest of the group are already hanging out. You pick up the guitar, sit down, and start playing."
}
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/activity/practiceSkills_vid5.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "At first it's just background noise. Then heads start turning. A couple of girls from another group stop what they're doing. Within a few minutes, a small crowd has gathered."
},
{
type: "narration",
text: "You finish the piece. The room reacts immediately — claps, whistles, a few loud cheers."
},
{
speaker: "riley",
text: "OH MY GOD!"
},
{
type: "narration",
text: "Riley is the loudest by far. She jumps up, clapping hard, then comes straight to your side."
},
{
speaker: "riley",
text: "That was so good! I swear you get better every single time."
},
{
type: "narration",
text: "A few girls from the crowd come closer instead of leaving."
},
{
type: "narration",
text: "One of them lightly touches your arm as she speaks."
},
{
speaker: "abella",
text: "Seriously, that was amazing. You should play here more often."
},
{
type: "narration",
text: "Another girl smiles and stays a little too close."
},
{
speaker: "jane",
text: "I didn't know you were that good. You have to teach me sometime."
},
{
type: "narration",
text: "Riley watches the interaction, then shifts even closer to you, almost like she's claiming the space."
},
{
speaker: "riley",
text: "Okay, that was actually incredible. How do you even do that?"
},
{
speaker: "player",
text: "Practice."
},
{
speaker: "riley",
text: "Yeah, well, apparently I need about ten years of it."
},
{
type: "narration",
text: "She laughs and nudges your shoulder, staying pressed against your side."
}
]) >>
</div>
<div id="continue1">
<hr>
<center>
<<link "Continue">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
speaker: "riley",
text: "Come on. Teach me."
}
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/activity/practiceWith_vid2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You hand her the guitar. She adjusts it awkwardly and tries the chord you show her. It comes out horribly."
},
{
speaker: "riley",
text: "Oh."
},
{
type: "narration",
text: "She tries again. Worse."
},
{
speaker: "riley",
text: "God… I'm so bad at this."
},
{
type: "narration",
text: "She stares at the guitar for a second, then lets out a small, frustrated breath."
},
{
speaker: "riley",
text: "I'm bad at everything."
},
{
speaker: "player",
text: "That's not true."
},
{
speaker: "riley",
text: "It is. Coding — sucked. Painting — sucked. Photography — sucked. I've tried so many things, and every time I think maybe this is finally the one… I'm terrible at it."
},
{
type: "narration",
text: "Her voice gets quieter."
},
{
speaker: "riley",
text: "I just want to have something."
},
{
speaker: "player",
text: "Something you're good at?"
},
{
speaker: "riley",
text: "Yeah. You can play guitar. You can do basically everything. And then there's me."
},
{
speaker: "player",
text: "Riley, I don't think you've figured out what you're actually good at yet."
}
]) >>
<</append>>
<<replace "#continue1">>
<div id="continue2">
<hr>
<center>
<<link "Continue">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
speaker: "riley",
text: "What?"
},
{
speaker: "player",
text: "Think about what you were doing five minutes ago. You were the loudest person in the entire room."
},
{
speaker: "riley",
text: "I was excited!"
},
{
speaker: "player",
text: "I know. But that's you. You walk into a room and you bring energy with you. You're confident around people, naturally expressive, and you don't hesitate to show support."
},
{
speaker: "player",
text: "When someone's doing something, you're the one standing there telling them to keep going. Honestly, I think you'd be really good at something like cheerleading… or even commentating."
},
{
speaker: "riley",
text: "Cheerleading and commentating?"
},
{
speaker: "player",
text: "Yeah. You're energetic, expressive, and you actually like encouraging people. I can see you on the sidelines getting the whole crowd behind a team… or with a mic in your hand, talking through a performance, interviewing people after, keeping everyone engaged."
},
{
type: "narration",
text: "Riley's eyes widen a little. A small smile starts forming."
},
{
speaker: "riley",
text: "You really think that's something I could do?"
},
{
speaker: "player",
text: "I do."
},
{
speaker: "riley",
text: "I… actually like that. I like being the person who's there for everyone."
},
{
speaker: "player",
text: "Exactly."
},
{
type: "narration",
text: "She looks at you, a little more confident now, and shifts even closer."
},
{
speaker: "riley",
text: "And if you're playing… I could be the one cheering for you."
},
{
speaker: "player",
text: "I could definitely get used to that."
},
{
speaker: "riley",
text: "I'd be really good at it."
},
{
speaker: "player",
text: "I know you would. And honestly, I think that same energy is what you've been missing."
},
{
speaker: "riley",
text: "What do you mean?"
},
{
speaker: "player",
text: "Maybe you're not supposed to be sitting somewhere by yourself trying to force a skill. You're at your best when there are people around, when something's happening and you can be part of it."
},
{
speaker: "riley",
text: "Yeah… that actually feels right."
}
]) >>
<</append>>
<<replace "#continue2">>
<div id="continue3">
<hr>
<center>
<<link "Continue">>
<<append "#sceneDialogue">>
<<= setup.renderDialogue([
{
type: "narration",
text: "She looks down at the guitar again, then back up at you. Her voice softens."
},
{
speaker: "riley",
text: "But I still want to learn this."
},
{
speaker: "player",
text: "Yeah?"
},
{
speaker: "riley",
text: "Yeah. You're really good at it… and I like being around you when you play. If I learn, I get to stay close. And maybe… you'll actually notice me for it."
},
{
type: "narration",
text: "She glances at you, a little shy, but doesn't look away."
},
{
speaker: "riley",
text: "I want you to be impressed with me too."
}
]) >>
<img class="background" src="media/event/riley/rileyGuitar.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "She tries the chord again. It's still terrible. She grimaces, then lets out a small laugh and tries once more, staying right against your side."
}
]) >>
<</append>>
<<replace "#continue3">>
<div id="continue4">
<hr>
<center>
<<link "Continue">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div><div id = "sceneDialogue">
<<= setup.renderDialogue([
{
type: "narration",
text: "Late afternoon. The campus is almost completely empty when you cut across the playground."
},
]) >>
<img class="background" src="media/event/riley/rileyEvent2Waiting.png">
<<= setup.renderDialogue([
{
type: "narration",
text: "Riley is standing on the running track in a brand-new cheerleader uniform, pom-poms hanging from both hands. The skirt is stupidly short and the top is stretched tight across her chest."
},
{
speaker: "player",
text: "Holy fuck… you look insane in that. Congrats. Knew you'd crush it."
},
{
speaker: "riley",
text: "I haven't gone in yet. Tryouts got moved. That's why I'm still standing here looking like this."
},
{
type: "narration",
text: "She's smiling, but her fingers keep tightening around the pom-poms."
},
{
speaker: "player",
text: "You're gonna be the best one in there. Don't let the nerves talk you out of it."
},
{
speaker: "riley",
text: "I just… don't want to be alone afterward. Can you wait for me? Whether I make it or completely fuck it up, I want someone there."
},
{
speaker: "player",
text: "I'll be here when you're done."
},
{
type: "narration",
text: "Something in her shoulders finally loosens."
},
{
speaker: "riley",
text: "Okay. I'm going in."
},
{
type: "narration",
text: "You go for a run while she disappears into the tryouts. By the time you finish, your shirt is stuck to your back. You head straight into the locker room to cool down and change."
},
]) >>
</div>
<div id = "continue1">
<hr>
<center>
<<link "Change your clothes">>
<<append "#sceneDialogue">>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/riley/rileyEvent2Change.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You peel the wet shirt off first, then the pants, then everything else. For a few seconds you're completely naked, skin still hot from the run, before you finally wrap the towel around your waist."
},
{
type: "narration",
text: "The second the towel is secure, Riley steps out from behind the lockers."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/riley/rileyEvent2Kiss1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She doesn't say a word. She just walks straight up to you, and kisses you like she's been holding it in for days. It's messy, hungry, full of pure adrenaline."
},
{
type: "narration",
text: "When she finally pulls back she's breathing hard, lips already red."
},
{
speaker: "riley",
text: "I got in."
},
{
speaker: "player",
text: "Fuck yes."
},
{
speaker: "riley",
text: "I don't think I would've walked in there without you. You made me feel like I actually belonged."
},
{
type: "narration",
text: "She kisses you again, deeper this time."
},
{
type: "narration",
text: "Your hands slide under the cheer top and push it straight up, freeing her tits."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/riley/rileyEvent2Kiss2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You drop your mouth to one nipple and suck hard, tongue dragging slow, wet circles."
},
{
speaker: "riley",
text: "Ahh—fuck…"
},
{
type: "narration",
text: "You're still licking her when a voice suddenly cuts through from outside the locker room."
},
{
speaker: "janitor",
text: "Anyone in there? I need to get this place cleaned up."
},
{
type: "narration",
text: "You both freeze. Riley's eyes go wide, then she bites down hard on a laugh."
},
{
type: "narration",
text: "You wait. A full minute of silence passes before you finally check the doorway. Empty."
},
{
type: "narration",
text: "She yanks her top back down, still grinning, cheeks flushed."
},
{
type: "narration",
text: "The two of you slip out together, still breathing a little too hard, exchanging the same filthy little look the second you're clear of the door."
}
]) >>
<</append>>
<<replace "#continue1">>
<div id = "continue2">
<hr>
<center>
<<link "Back to hostel">>
<<run setup.finishEvent()>>
<</link>>
</center>
</div>
<</replace>>
<</link>>
</center>
</div><div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/activity/attendClass_vid1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "You sat down next to Riley. The second class ended and the last students started filing out, you turned toward her."
},
{
speaker: "player",
text: "I need your help."
},
{
speaker: "riley",
text: "Anything. What do you need?"
},
{
speaker: "player",
text: "I have to catch up on Physics. Angela said your notes are the best in the whole year… so I came straight to you."
},
{
type: "narration",
text: "Riley's face lit up the moment she heard that"
},
{
speaker: "riley",
text: "She really said that? Of course she did. I don't half-ass anything… especially when it comes to being the best."
},
{
type: "narration",
text: "She pulled out her notebook and slid it toward you. You flipped through a few pages and raised your eyebrows."
},
{
speaker: "player",
text: "Fuck… these are actually perfect. Didn't expect you to be this good at Physics."
},
{
speaker: "riley",
text: "I'm good at a lot of things. You just haven't seen most of them yet."
},
{
type: "narration",
text: "You started copying. After a minute she leaned in a little closer, voice dropping."
},
{
speaker: "riley",
text: "I'm giving you my best notes… so what am I getting in return?"
},
{
speaker: "player",
text: "In return? What is this, a business deal now?"
},
{
speaker: "riley",
text: "No. But if you're taking the best notes in the year, I should get something worth it."
},
{
speaker: "player",
text: "I'm already teaching you guitar. Doesn't that count?"
},
{
speaker: "riley",
text: "That doesn't count. I want something else."
},
{
speaker: "player",
text: "Alright then. Tell me what you want."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/riley/rileyEvent3Kiss1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Riley gave you a filthy little smile, then leaned in and kissed you. Soft at first, then deeper the second she felt you respond — like she'd been waiting for permission to do it."
},
{
speaker: "riley",
text: "Mmmmm"
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/riley/rileyEvent3Kiss2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "The kiss got messier fast. You stood up, grabbed the back of her neck, and kissed her hard while pulling her top down. Her tits spilled free."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/riley/rileyEvent3Stop.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
speaker: "riley",
text: "Ahh… fuck—"
},
{
type: "narration",
text: "You kept going, switching between both, until the sound of footsteps in the hallway made you freeze."
},
{
speaker: "player",
text: "Wait a minute. Someone's coming."
},
{
type: "narration",
text: "Riley quickly yanked her top back up, cheeks flushed, breathing hard. A few students walked past the open door without looking in. When they were gone, the frustrated look on her face was obvious."
},
{
speaker: "player",
text: "Sorry, baby. I didn't want it to stop either."
},
{
speaker: "riley",
text: "I wish nobody else ever existed."
},
{
speaker: "player",
text: "Awww… Then let me make it up to you. Dinner. Friday evening. Just us."
},
{
type: "narration",
text: "The frustration on her face vanished instantly, replaced by pure excitement."
},
{
speaker: "riley",
text: "Yes. Definitely yes."
},
{
speaker: "player",
text: "There's a place near campus. I'll text you the time."
},
{
speaker: "riley",
text: "Who knows? Maybe I'll end up eating you instead."
},
{
type: "narration",
text: "You finished copying the last of her notes while she watched you the entire time, still visibly worked up. When you closed the notebook, you stood and left, feeling her eyes on you until you were out the door."
}
]) >>
<hr>
<center>
<<link "Get out of classroom">>
<<run setup.finishEvent()>>
<</link>>
</center><<= setup.renderDialogue([
{
type: "narration",
text: "You reached the restaurant and barely had time to look around before Riley spotted you. Her face lit up and she ran straight at you."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/riley/rileyEvent4Kiss1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She jumped into your arms, legs wrapping tight around your waist, and kissed you hard — deep, hungry, like she'd been holding it in all day."
},
{
speaker: "player",
text: "Wait, wait, wait— what are we doing right here?"
},
{
speaker: "riley",
text: "Shut up and kiss me."
},
{
type: "narration",
text: "She kissed you again, even messier this time, grinding against you in the middle of the entrance."
},
{
speaker: "player",
text: "No problem, but at least let me get us a private booth before someone sees you climbing me."
},
{
type: "narration",
text: "Riley finally slid down, still breathing fast, cheeks flushed."
},
{
speaker: "riley",
text: "I couldn't help it… I've been wet since this morning just thinking about you. The second I saw you I just needed your mouth on me."
},
{
type: "narration",
text: "You walked up to the counter and found a gorgeous waitress named Jessa standing there, looking unusually sad."
},
{
speaker: "player",
text: "Jessa, everything okay?"
},
]) >>
<img class="background" src="media/event/player/playerEvent6Jessa_bg.jpg">
<<= setup.renderDialogue([
{
type: "narration",
text: "She suddenly looked up, startled like she hadn't even noticed you standing there."
},
{
speaker: "jessa",
text: "How do you know my name?"
},
{
speaker: "player",
text: "Your nameplate."
},
{
type: "narration",
text: "Jessa glanced down at her shirt, then made a small embarrassed face at herself."
},
{
speaker: "jessa",
text: "Oh… right. I'm fine."
},
{
type: "narration",
text: "She forced a quick smile before looking back at you."
},
{
speaker: "jessa",
text: "What can I get you?"
},
{
type: "narration",
text: "You could tell something was wrong, but you decided not to push her."
},
{
speaker: "player",
text: "I need a private booth."
},
{
speaker: "jessa",
text: "Sure, I can do that. Follow me."
},
{
type: "narration",
text: "She stepped out from behind the counter and guided you and Riley toward a private booth before leaving you to settle in."
},
{
type: "narration",
text: "The two of you sat across from each other and actually managed to eat, though Riley kept staring at your mouth the whole time."
},
{
type: "narration",
text: "When the plates were cleared, you leaned back."
},
{
speaker: "player",
text: "What do you want for dessert?"
},
{
type: "narration",
text: "Riley didn't answer. She stood up, walked around the table, and dropped to her knees between your legs and the tablecloth."
},
{
speaker: "riley",
text: "You."
},
{
type: "narration",
text: "She pulled you into another filthy kiss, moaning into your mouth while her hands already worked on your belt."
},
{
type: "narration",
text: "She got your pants open and your cock sprang free, slapping against her face. Riley froze for a second, eyes wide."
},
{
speaker: "riley",
text: "Holy fuck… it's even bigger up close. This thing is thicker than my wrist. I can't even fit half of this in my mouth."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/riley/rileyEvent4Handjob1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "She wrapped both hands around it and started stroking slowly, staring at it like she was obsessed."
},
{
speaker: "riley",
text: "Fuck… I've been thinking about choking on this all week… but look at it. I can't even get past the tip."
},
{
speaker: "player",
text: "Don't force it. Just suck on the tip like a good girl and use your hands. That's more than enough."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/riley/rileyEvent4Handjob2.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "Riley leaned in, wrapped her lips around the head, and started sucking on just the tip while her hands kept stroking the rest."
},
{
speaker: "player",
text: "That's it… suck on the tip like a good girl while you jerk the rest. Look at you, already drooling all over it."
},
{
type: "narration",
text: "She moaned around the head, eyes looking up at you, hands moving faster."
},
{
speaker: "player",
text: "Fuck… you're gonna make me cum. Don't you dare pull away."
},
{
type: "narration",
text: "Riley didn't stop. She kept her lips sealed around the tip and stroked even harder, taking every thick pulse of cum straight into her mouth."
},
]) >>
<div class="media-container">
<video class="scene-media" loop playsinline preload="metadata">
<source src="media/event/riley/rileyEvent4Cum1.mp4" type="video/mp4">
</video>
</div>
<<= setup.renderDialogue([
{
type: "narration",
text: "When you finished, she opened her mouth and showed you the heavy load sitting on her tongue, then swallowed it all in one go and stuck her tongue out again to prove it was gone."
},
{
speaker: "riley",
text: "Fuck… your cum is so thick and warm. I could drink that every day."
},
{
type: "narration",
text: "She wiped her lips with her thumb and smiled up at you, still on her knees."
},
{
speaker: "riley",
text: "I already got my dessert. Order whatever you want… I'm full."
},
{
type: "narration",
text: "She fixed her clothes, stood up, and the two of you left the restaurant together, heading back toward the hostel."
}
]) >>
<hr>
<center>
<<link "Leave restaurant">>
<<run setup.finishEvent()>>
<</link>>
</center>