The cafe buzzed with the Saturday morning rush, but Amelia barely registered the noise. She stared at the floral pattern on her coffee cup, the ceramic strangely cold against her trembling fingers. Across from her, Liam was regaling her with a tale of a disastrous camping trip. She forced a smile, the muscles in her face aching from the effort. It had been three months of stolen afternoons, whispered phone calls, and the delicious secret of their shared affection. Then, last night, she’d seen a photograph on his phone – a blurry shot of him and another woman, laughing on a beach that looked suspiciously like the one she’d visited last week with… someone else.

Amelia’s stomach churned, a knot of unease twisting tighter with each of Liam's enthusiastic sentences. She’d made a promise to go back to that beach with Liam, a promise that now felt like a cruel joke. The air in the cafe felt thick, suffocating. She couldn't meet his eyes.

“You alright, M?” Liam asked, his brow furrowing with concern.

She swallowed hard, the lump in her throat making it difficult to breathe. “Fine,” she managed, her voice a strained whisper. She needed to leave, to get away from him, from the truth that simmered beneath the surface of their stolen moments.

Emotion: guilty

Cluster: Shame / Guilt
PC1 (Valence): -1.62 Negative
PC2 (Disposition): 1.23

Role in Research

This story is one of 1,000 stories generated for the emotion guilty. During extraction, it was fed through Gemma4-31B and its hidden state activations were captured at 11 layers.

The mean activation across all 1,000 guilty stories, after denoising with neutral dialogue baselines, produces the guilty emotion vector -- a direction in the model's 5,376-dimensional representation space.

Logit Lens (Layer 40)

Tokens promoted/suppressed when the guilty vector is projected through the unembedding matrix.

Promoted:
S0.492
L0.398
0.354
been0.323
ashamed0.319
Suppressed:
de-0.400
(!)-0.279
la-0.276
😍-0.274
"!-0.264