Taming this bound hero is going to be a piece of cake. He stirs before I speak, a flicker of blue light catching the edge of his jawline. Even bound, he looks every inch the legend the city worships — all angles, defiance, and the faint shimmer of power flickering beneath his skin. I can feel the hum of it against the metal cuffs I designed myself. Titanium, laced with dampeners. Pretty little symbols, the kind that whisper you’re not the strongest one here.
“Comfortable?” I ask. My voice cuts through the half-dark like silk over a blade. He looks up, eyes flashing, the faintest sneer tugging at his mouth.
“You think this will hold me?” he says. Arrogance and disbelief — the perfume of heroes.
I circle him slowly, bare feet silent on the marble. The room smells of ozone and midnight — stormlight bleeding through the tall windows, the hum of the city below. “Oh, it will,” I murmur, tracing a finger along the curve of the device that keeps his wrists pinned above the headboard. “You’d be amazed what you can do with a little understanding of pressure points and pride.”
He tugs once more, a growl low in his throat. The cuffs pulse, answering with a quiet shimmer of containment energy. I smile. “See? You’re magnificent when you struggle. But we both know that’s not how this ends.”
He watches me — calculating, angry, intrigued despite himself. I see it in the shift of his shoulders, the way his breath slows to match mine. He’s learning my rhythm. Good.
I lean in close, just enough for him to feel the warmth of my breath against his ear. “You’ve spent your whole life saving people from their own darkness,” I whisper. “How does it feel to be caught by yours?”
His silence is delicious. He wants to answer, but pride glues his tongue in place. So I fill the quiet for him, pacing back to face him, hands clasped behind my back. “You’re used to control. To applause. To everyone bending toward your light.” I tilt my head, letting my hair fall over one shoulder. “But power doesn’t shine. It consumes. And right now, you’re learning who the fire belongs to.”
For a moment, the city thunder growls through the glass. He stares at me, the set of his jaw trembling between fury and something else.
I smile again — slow, sharp, knowing. “Good,” I say softly. “Hold on to that feeling. It’s the truth beneath the mask.”
The cuffs shimmer once more as I deactivate the dampeners. He could break free if he really tried — I can see the flicker of that thought in his eyes. But he doesn’t move. That’s the moment of surrender I was waiting for: when a man built from steel and certainty learns that stillness can be obedience.
I step back into the light, gaze fixed on him. “Remember this, hero,” I murmur. “You were never trapped by the metal. You were trapped by me.”
Come back next time to see what happens with Rhea and our Hero.
:root{
–cta-bg:#ff3366;
–cta-contrast:#fff;
–cta-hover:#e52656;
–cta-border-radius:12px;
–cta-padding:14px 20px;
–cta-font: 16px/1.1 “Inter”, system-ui, -apple-system, “Segoe UI”, Roboto, “Helvetica Neue”, Arial;
–muted:#667085;
–accent:#0a84ff;
}
/* Container */
.rhea-cta-wrap{
display:flex;
gap:12px;
align-items:center;
flex-wrap:wrap;
margin:16px 0;
font-family:var(–cta-font);
}
/* Primary CTA (book / url) */
.rhea-cta{
display:inline-flex;
align-items:center;
gap:10px;
background:var(–cta-bg);
color:var(–cta-contrast);
padding:var(–cta-padding);
border-radius:var(–cta-border-radius);
text-decoration:none;
box-shadow:0 6px 18px rgba(17,24,39,0.12);
border:0;
cursor:pointer;
transition:transform .12s ease, background .12s ease, box-shadow .12s ease;
font-weight:600;
}
.rhea-cta:hover{ background:var(–cta-hover); transform:translateY(-2px); box-shadow:0 10px 22px rgba(17,24,39,0.14);}
.rhea-cta:active{ transform:translateY(0); }
.rhea-cta svg{ width:18px; height:18px; flex:0 0 18px; }
/* Secondary CTA (call) */
.rhea-call{
display:inline-flex;
align-items:center;
gap:10px;
padding:12px 16px;
border-radius:10px;
text-decoration:none;
border:1px solid rgba(10,10,10,0.06);
background:linear-gradient(180deg,#fff,#fbfbfd);
color:#0b1220;
box-shadow:none;
transition:box-shadow .12s ease, transform .12s ease;
font-weight:600;
}
.rhea-call:hover{ box-shadow:0 6px 18px rgba(10,12,20,0.06); transform:translateY(-2px); }
.rhea-call .muted{ font-weight:500; color:var(–muted); font-size:13px; margin-left:6px; }
/* Floating phone (compact) */
.rhea-fab{
display:inline-grid;
place-items:center;
width:52px;
height:52px;
border-radius:999px;
background:var(–accent);
color:white;
text-decoration:none;
box-shadow:0 8px 24px rgba(10,10,30,0.18);
transition:transform .12s ease;
}
.rhea-fab:hover{ transform:translateY(-4px); }
/* small screens: stack */
@media (max-width:520px){
.rhea-cta-wrap{ flex-direction:column; align-items:stretch; }
.rhea-call, .rhea-cta{ justify-content:center; width:100%; }
}
// Simple tracking helper (replace console.log with analytics calls)
function rheaTrack(e){
const el = e.currentTarget;
const tag = el.getAttribute(‘data-analytics’) || ‘cta-unknown’;
// Example: replace with gtag(‘event’, ‘click’, { … })
console.log(‘RHEA CTA CLICK:’, tag, {href: el.href});
}
// Call handler: attempts to use the best tel: scheme for extensions.
function rheaCallHandler(e){
const el = e.currentTarget;
const analytics = el.getAttribute(‘data-analytics’) || ‘call-unknown’;
console.log(‘RHEA CALL CLICK:’, analytics);
// Modern: use tel:+1…;ext=868 (works on many devices)
const telExt = el.getAttribute(‘data-tel-ext’);
// Fallback: use pause commas which automatically insert a pause then extension digits (works on many smartphones)
const telPause = el.getAttribute(‘data-tel-pause’);
// Try to open the ext variant. Browsers may block JS-based navigation; letting the href do the job is fine.
// We won’t override user agent behavior but we attempt a safe navigation:
if(navigator && navigator.userAgent && /iPhone|Android|iPad|Mobile/i.test(navigator.userAgent)){
// mobile device: prefer pause style which often works to auto-dial ext
if(telPause){
window.location.href = telPause;
return;
}
}
// default: let the link’s href work (which may already be tel:+18887504746;ext=868)
// If JavaScript proceeds, do nothing to interrupt the default anchor behavior.
}