Private Kindness
The first thing Seoul did when it wanted to pretend it wasn’t cruel was wash itself in light.
Morning sun on the Han River. Glass towers catching blue. White crosswalk stripes so clean you could believe no one had ever been dragged across them. Even the air around Jamsil had a brightness to it that felt rehearsed–an optimism written into the architecture.
Yerin didn’t trust brightness.
It made every shadow look like an accident.
She stood in the back of a black van with tinted windows, staring at the reflection of her own eyes in the glass. The van was parked near Olympic Park, where banners had been strung up like polite warnings: EVENT TODAY. PLEASE COOPERATE.
Cooperate. Another pretty word for control.
Her phone sat in her palm, warm from being held too long. On the screen was a new message thread from Han Soojin–Taesung’s assistant–with today’s schedule laid out in bullet points like instructions for assembling a human.
10:40 입장 (ipjang) – Entry.
11:00 포토 타임 (photo taim) – Photo time.
11:15 내부 이동 (naebu idong) – Move inside.
12:30 퇴장 (toejang) – Exit.
주의: 질문 받지 말기 (juui: jilmun batji malgi) – Warning: Don’t take questions.
As if her mouth was a loose wire they had to tape down.
She looked up from her phone.
Across from her, Joonho was seated with his knees angled toward the door, posture relaxed but ready, as if his body had been trained to leave quickly. He wore a black cap today despite the instruction not to–a plain one, brim low. A compromise: he could reduce his own visibility while she stayed exposed.
It annoyed her.
It relieved her.
Both feelings sat in her chest like mismatched weights.
Joonho glanced up, caught her looking.
“Do you want it removed?” he asked.
His voice was quiet. Practical.
Yerin’s eyes narrowed.
“The cap.”
Joonho nodded.
Yerin swallowed.
“No,” she said. “Keep it.”
The answer came out sharper than she meant, like it accused him of something.
Joonho didn’t react.
He simply looked away toward the van window, watching the crowd outside.
Outside, a small sea of people had begun to gather–fans in branded hoodies, staff in earpieces, security guards pretending they didn’t see the phones already lifted. The arena wasn’t even open yet, but the air carried that familiar pre-show electricity.
Not music.
Anticipation.
Yerin’s phone buzzed again.
A notification, not a message.
@CIPHER posted.
Her thumb froze.
She didn’t open it.
Not yet.
She felt Joonho’s gaze flick in her direction–fast, subtle. Not to her screen. To her face.
He’d learned her tells.
Or he’d always known them.
Yerin’s stomach tightened.
She looked away first.
The event was framed as a “public wellness campaign,” which meant an idol endorsement disguised as social responsibility. A few top groups were scheduled to appear for short speeches and photo ops before being ushered inside.
VANTA was the headline.
Yerin didn’t like that she knew their schedule by heart.
She told herself it was research. Pattern recognition. A necessary understanding of the machine.
Still–when she stepped out of the van and the crowd noise hit her, her body reacted like it remembered something older than anger.
A teenage memory.
A lightstick held too tight.
A voice lost in a chant.
She pushed the memory down.
She didn’t have space for nostalgia.
Soojin met them at the side entrance. Her blazer was immaculate. Her expression was the same polite blank she wore like armor.
“하예린 님 (ha yerin nim),” (Ms. Ha Yerin) she greeted. “오늘은 웃어주세요 (oneureun useo-juseyo) – please smile today.”
Yerin’s mouth tightened.
“I smile when I want,” she said.
Soojin’s gaze didn’t flicker.
“원하셔야 합니다 (wonhasyeoya hamnida),” (you must want to) she replied, as if correcting a child.
Then she turned to Joonho.
“Kang Joonho-ssi (gang joonho-ssi),” she said. “거리 유지 (geori yuji) – keep distance. No waist.”
Yerin’s jaw tightened.
No waist.
As if it was a switch they could turn off.
Joonho nodded once.
“Understood.”
Soojin’s eyes slid to the cap.
“모자 안 돼요 (moja an dwaeyo),” (no cap) she said.
Joonho didn’t argue. He lifted it off.
His hair fell forward slightly, dark strands catching the light.
He looked younger without it.
Less shield.
Yerin hated that she noticed.
Soojin gestured toward the photo line.
“Three minutes,” she said.
Yerin followed, shoulders tight.
As they approached, the sound thickened.
Fans chanting group names. Photographers shouting for angles. Staff calling out instructions like they were herding cattle.
Yerin stepped onto her mark.
Joonho took his place beside her.
He didn’t touch her.
Not yet.
The cameras lifted.
“Here! Here!”
“Smile!”
Yerin forced her lips into a curve that felt like borrowed skin.
A reporter shouted, “Ha Yerin-ssi, is it true you’re dating?”
Soojin’s warning echoed in her head: don’t take questions.
Yerin kept her eyes forward.
Joonho leaned slightly closer–not touching, but close enough that the crowd would read “couple.”
His voice was low.
“Breathe,” he said.
One word less than comfort.
Yerin inhaled.
The flash exploded.
In the strobe, she saw the same thing she’d seen before: her face fragmented, her emotion redacted.
Then the crowd shifted.
A commotion to the right.
Phones lifted like a flock startled into flight.
Yerin’s eyes flicked instinctively.
A young woman in a hoodie was pushing forward, face twisted with excitement or desperation. Security tried to hold her back. She resisted, elbowing, shrieking a name.
“JAEHYUK! JAEHYUK!”
The idol wasn’t even there yet.
Yerin’s skin prickled.
The woman’s phone was pointed toward a side corridor where staff were moving.
A staff member stepped into frame–young, nervous–trying to block the lens with their body.
The woman shoved harder.
Soojin hissed under her breath.
“미친 (michin) – crazy,” (crazy) she muttered, then recovered, face smoothing.
Yerin’s jaw tightened.
That word. Like the fan was the problem.
But the system had trained her.
Trained all of them.
To treat obsession like a weather condition.
Unavoidable.
Not accountable.
Joonho’s body shifted.
He stepped off the mark.
Soojin’s eyes snapped.
“Kang–”
Joonho didn’t look at her.
He moved toward the commotion with a calm that didn’t belong to PR.
He slipped between the phone and the corridor with the ease of someone who understood human angles.
He didn’t grab the fan.
He didn’t shout.
He simply stood in the path, shoulders squared, gaze steady.
“그만 (geuman),” (stop) he said.
One word.
The fan froze, startled by the lack of aggression.
Her phone wavered.
Joonho’s voice stayed low.
“여기 아니에요 (yeogi anieyo),” (not here) he said. “들어가요 (deureogayo) – go back.”
The fan blinked.
Her eyes flicked over his face, registering he wasn’t security in the usual way.
“Who are you?” she demanded in Korean.
Joonho didn’t answer with a title.
“사람 (saram),” (a person) he said.
Yerin’s breath caught.
A person.
Not staff.
Not authority.
Not weapon.
Just person.
The fan’s expression hardened.
“It’s my right!” she snapped, phone lifting again.
Joonho’s gaze sharpened.
“권리 아니에요 (gwolli anieyo),” (not a right) he said.
The sentence was quiet.
But the certainty in it made the air feel heavier.
The fan hesitated.
Security took the opportunity to guide her back.
She still shouted, but her phone lowered.
The corridor cleared.
The staff member–still shaken–bowed quickly toward Joonho, then scurried away.
Joonho stood still for a beat, scanning the crowd.
Then he returned to Yerin’s side.
Soojin’s face was tight.
“You broke line,” she whispered.
Joonho’s gaze flicked to her, calm.
“Fix it,” he said.
Two words.
Not respectful.
Not rude.
A command delivered without raising his voice.
Soojin blinked.
Her lips parted as if to argue.
Then she swallowed it.
“Five seconds,” she said sharply to the photographers. “Then done.”
They obeyed.
Yerin stared at Joonho.
Her heart beat hard.
He had stepped off a PR line to protect an unknown staff member from a phone.
That wasn’t optics.
That was instinct.
The cameras flashed again.
Yerin forced her face back into place.
But something had shifted.
A crack in her certainty.
Inside the arena complex, the noise muted into echo.
Security doors. Long corridors. The smell of hairspray and new carpet and sweat hidden under cologne.
Soojin guided them through a staff-only passage.
“Stay close,” she instructed.
Yerin bit back a retort.
She didn’t like being told what to do by people who had never been threatened in their own living room.
They passed a set of double doors.
On the other side, voices rose–excited, loud.
Fans inside.
Yerin caught snippets of chants, the rhythmic unity that made K-pop feel like religion.
Her chest tightened.
She didn’t look.
She kept her eyes on the corridor.
Joonho walked beside her. Not touching.
Still, his presence felt like a boundary line.
Soojin stopped at a corner.
“Wait here,” she said. “VANTA will pass in three minutes. You’ll wave. Smile. Then exit.”
Yerin’s mouth tightened.
“This is ridiculous,” she muttered.
Soojin’s smile returned–polished, faintly cruel.
“People love stories,” she said. “Give them one.”
Then she stepped away to coordinate.
Yerin exhaled slowly.
She leaned against the wall, cold under her coat.
Her phone buzzed.
Another @CIPHER notification.
She ignored it.
Joonho watched her face.
“You’re angry,” he said.
Yerin’s eyes narrowed.
“No.”
Joonho didn’t argue.
He simply waited.
The patience made her irritation flare.
“Stop doing that,” she snapped.
“Doing what?”
“Waiting like you’re… above it,” she said.
Joonho’s gaze held hers.
“I’m not above,” he replied.
Yerin scoffed.
“You’re calm.”
Joonho’s voice stayed even.
“Calm is a tool,” he said.
The sentence made her stomach dip.
A mirror of what he’d said before.
Fear is a tool.
Calm is a tool.
Tools. Levers.
Systems.
Yerin swallowed.
“You talk like him,” she said before she could stop herself.
Joonho’s eyes didn’t flicker.
“Who?”
The word was too clean.
Yerin’s pulse sharpened.
She forced her voice steady.
“Cipher.”
A beat.
Joonho’s gaze shifted–subtle, a fraction to the side.
Not guilt.
Not fear.
Calculation.
Then he looked back.
“He’s everywhere today,” he said.
Yerin’s jaw tightened.
“How do you know?”
Joonho’s mouth tightened.
“Because people are angry,” he replied. “Anger follows him.”
Yerin stared.
The answer was reasonable.
And yet her skin still prickled.
Soojin returned.
“Ready,” she said.
The corridor ahead filled with movement.
A group of men in suits walked first, then stylists, then a cluster of young faces–VANTA.
Idols didn’t walk.
They glided.
Even when they looked exhausted, there was a choreography to their steps.
JAEHYUK–tall, sharp-jawed, the one from the leak photo–walked in the center. His face was composed, but his eyes looked distant, like he was somewhere else.
Yerin’s throat tightened.
She hated herself for noticing the human under the makeup.
Soojin whispered, “Wave.”
Yerin lifted her hand.
Joonho lifted his.
JAEHYUK’s eyes flicked toward them.
For a second, something moved in his gaze.
Recognition.
Not of Yerin.
Of Joonho.
Yerin’s pulse jumped.
She watched carefully.
JAEHYUK’s lips tightened.
Then his face smoothed.
He nodded politely as he passed.
A professional gesture.
But the moment had been there.
A thread.
Yerin’s stomach tightened.
She turned her gaze to Joonho.
His expression was calm.
Too calm.
As if he hadn’t seen the glance.
Or as if he expected it.
VANTA moved on.
The corridor emptied.
Soojin exhaled like she’d completed a ritual.
“Good,” she said. “Exit.”
They began walking back.
Yerin’s mind raced.
Why would an idol recognize a crisis-PR tech consultant?
Maybe he’d worked a previous scandal.
Maybe he’d installed security.
Maybe he’d cleaned a mess.
Or maybe–
Yerin’s breath caught.
Maybe Cipher had been closer to JAEHYUK than anyone knew.
She swallowed.
Her phone buzzed again.
This time, it wasn’t a Cipher notification.
It was a text.
Unknown number.
기자님, 욕심 나요 (gija-nim, yoksim nayo). – Reporter, you’re getting greedy.
Yerin’s skin went cold.
Greedy.
As if chasing truth was appetite.
As if her career was a hunger that needed punishing.
Her fingers tightened around the phone.
Soojin didn’t notice.
Joonho did.
His gaze dropped to her hand.
“What?” he asked, voice low.
Yerin hesitated.
Then she showed him.
Joonho’s eyes scanned the text.
His jaw tightened.
A muscle jumped near his cheek.
Then, just as quickly, his face smoothed.
“Keep walking,” he said.
His voice held a steel edge.
Not loud.
But final.
Yerin swallowed.
She obeyed.
They reached the side entrance.
Outside, the crowd noise hit again.
Fans pressed toward barriers.
Phones up.
Voices chanting.
Yerin’s heartbeat hammered.
Joonho stepped closer–not touching, but aligning his body to block her from the nearest lens.
A small protection.
Private.
The kind cameras didn’t capture.
Soojin guided them toward the van.
“Smile,” she hissed through her teeth.
Yerin forced her lips into shape.
Her stomach churned.
She climbed into the van.
Joonho followed.
The door slid shut.
The outside noise muffled.
Yerin exhaled sharply.
Her hands trembled.
She hated that.
Joonho watched her.
“Breathe,” he said again.
One word.
Not pity.
Not control.
Permission.
Yerin inhaled.
Then, because the question had been clawing at her, she asked:
“Why did he look at you?”
Joonho’s gaze held hers.
“Who?”
“JAEHYUK,” she said. “He recognized you.”
A beat.
Joonho’s voice stayed even.
“I’ve worked with agencies,” he replied.
Yerin’s eyes narrowed.
“Which one?”
Joonho’s gaze didn’t flinch.
“Several,” he said.
The answer was too broad.
Redacted.
Yerin’s chest tightened.
“You’re avoiding,” she said.
Joonho’s expression didn’t change.
“Yes,” he replied.
One word.
It startled her.
Yerin blinked.
“You admit it.”
Joonho’s gaze held hers.
“I won’t lie,” he said.
The sentence landed heavy.
Because she remembered he had lied before.
For her boundary.
Or for his.
Yerin’s throat tightened.
“Then why avoid?”
Joonho looked away toward the van window.
When he spoke, his voice was quieter.
“Because you don’t need more weight,” he said.
Yerin’s breath caught.
The words weren’t romantic.
They weren’t confession.
But they were… care.
Private kindness.
The kind that didn’t ask for gratitude.
Yerin stared at him.
Her anger faltered.
Not gone.
Just… displaced.
She looked down at her phone.
The unknown number message still glowed.
Greedy.
She opened her blocked list.
No entry.
They were using new numbers.
Disposable.
Like Rin.
Like Cipher.
Like everyone who wanted her attention without accountability.
Her phone buzzed.
@CIPHER again.
Yerin’s thumb hovered.
She opened it.
A single image.
A screenshot of a payment ledger.
The same style as before: names redacted, amounts repeated, routes obscured.
At the bottom, a note.
문 앞에서 겁 주는 건 약해요 (mun ap-eseo geop juneun geon yaghaeyo). – Threatening at someone’s door is weak.
Yerin’s breath caught.
Her skin prickled.
Threatening at someone’s door.
He knew.
He knew about her keypad.
Her router.
Her fear.
Yerin’s heart hammered.
She glanced at Joonho.
He was watching the window.
His face unreadable.
But his hand–resting on his knee–had tightened into a fist.
A small tell.
Anger.
Or guilt.
Yerin’s mouth went dry.
“Cipher is watching me,” she whispered.
Joonho’s gaze slid to her.
His eyes sharpened.
“He wants to scare you,” he said.
Yerin shook her head.
“No,” she whispered. “He’s… talking to me.”
Joonho’s jaw tightened.
“He talks to everyone,” he said.
Yerin stared.
“That post,” she said, voice thin. “It mentioned doors.”
Joonho’s expression didn’t change.
“Because it happens,” he replied.
Yerin’s chest tightened.
“You’re deflecting,” she said.
Joonho’s gaze held hers.
“Yes,” he admitted again.
It wasn’t denial.
It was discipline.
He was choosing what not to give her.
Yerin’s pulse hammered.
She leaned back, staring at the van ceiling.
This was why she hated secrets.
They turned people into puzzles.
And puzzles made her obsessive.
The van began to move.
Soojin’s voice came from the front, speaking into her phone–something about sentiment numbers, about “good engagement,” about “couple narrative stabilizing.”
Yerin’s stomach twisted.
Narrative.
Stabilizing.
As if her fear was a stock graph.
Joonho leaned slightly closer.
“Later,” he murmured.
Yerin’s eyes narrowed.
“What?”
His voice stayed low.
“Not here,” he said.
One word less than reassurance.
A boundary.
Yerin swallowed.
She nodded once.
Later.
Later happened in a place no one would photograph on purpose.
A small alley behind a convenience store, where the fluorescent light buzzed and the air smelled faintly of cigarette smoke and spilled broth. The van had dropped them off near Yerin’s building, but Joonho had guided her away from the entrance.
“Walk,” he’d said.
Now they stood under an awning, rain misting lightly at the edge of the street.
Yerin’s breath fogged.
Joonho’s coat was speckled with damp.
The city around them moved on.
A man carried a bag of tangerines.
A dog in a puffy jacket trotted past.
Ordinary life,
and yet Yerin’s skin still felt like it was waiting to be touched by danger.
Joonho watched her face.
“You’re shaking,” he said.
Yerin’s jaw tightened.
“I’m cold.”
Joonho didn’t argue.
He reached into his pocket and pulled out another heat pack.
He held it out.
Yerin stared.
“How many do you have?”
Joonho’s mouth twitched faintly.
“Enough,” he said.
Yerin took it.
Warmth spread into her palm.
She hated how much she needed it.
She looked up.
“Cipher knew about my door,” she said.
Joonho’s gaze stayed steady.
“Yes,” he replied.
The agreement made her stomach dip.
“So he’s watching me.”
Joonho nodded.
“Yes.”
Yerin’s voice sharpened.
“And you knew.”
A beat.
Joonho’s jaw tightened.
“I suspected,” he corrected.
Yerin’s throat tightened.
“You didn’t tell me.”
Joonho’s gaze held hers.
“Because you’d spiral,” he said.
The bluntness stung.
Yerin’s eyes flashed.
“I don’t spiral.”
Joonho didn’t smile.
“You do,” he said.
One word less than kindness.
Still honest.
Yerin swallowed anger.
“Then I should stop,” she said, voice suddenly quiet.
Joonho’s gaze sharpened.
“Stop what?”
“Posting,” she said. “Chasing.”
Joonho’s jaw tightened.
“No,” he said.
The word was immediate.
Protective.
Yerin stared.
“You said I’m in danger because I poked a system,” she whispered. “So maybe I shouldn’t poke.”
Joonho’s eyes held hers.
A beat.
Then his voice lowered.
“If you stop,” he said, “they win.”
They.
The system.
The executives.
The people who hid behind privacy and called it ethics.
Yerin’s throat tightened.
“That’s what Cipher says,” she whispered.
Joonho didn’t flinch.
“Maybe he’s right,” he said.
The admission hit her like cold water.
Yerin stared.
“You agree with him.”
Joonho’s gaze didn’t soften.
“I agree with the goal,” he said. “Not the method.”
Yerin’s pulse hammered.
“And what is the method?” she asked.
Joonho’s jaw tightened.
“Using idols as bait,” he said.
Yerin’s breath caught.
He said it like it hurt.
Like he hated it.
Yerin swallowed.
“Then why doesn’t he change?”
Joonho’s gaze shifted away for half a beat.
Then back.
“Because changing costs leverage,” he said.
Yerin’s throat tightened.
“And you think leverage matters more than people.”
Joonho’s eyes sharpened.
“No,” he said. “I think people matter. That’s why I’m here.”
Here.
With her.
In an alley.
Holding heat packs like a person who prepared for winter.
Yerin stared.
“Why do you care?” she asked, voice thin.
Joonho didn’t answer immediately.
The pause was longer than his usual.
A crack.
When he spoke, his voice was quiet.
“Because you see patterns,” he said.
Yerin blinked.
“That’s not–”
“And you don’t look away,” he continued.
The words landed heavy.
Yerin’s throat tightened.
“That’s dangerous,” she whispered.
Joonho nodded.
“Yes,” he said. “So I stay close.”
Yerin’s breath caught.
Close.
Like a deterrent.
Like a narrative.
Like a wall.
And yet the way he said it made it feel like choice, not assignment.
Yerin swallowed.
“You’re not supposed to be nice,” she said.
Joonho’s mouth tightened.
“I’m not nice,” he replied.
A beat.
Then, softer:
“I’m careful.”
Careful.
The word sounded like a confession.
Yerin’s chest tightened.
She looked down at the heat pack in her hands.
Warmth.
Private kindness.
Uncaptured.
Unmonetized.
She hated that it made her want to trust.
Her phone buzzed.
A message from Sora.
괜찮아? (gwaenchanha?) – You okay?
Yerin’s throat tightened.
She typed back:
Fine.
One word.
A lie.
She looked up.
Joonho was watching her phone.
Not the screen.
Her fingers.
Her breathing.
Her face.
Yerin’s pulse ticked.
“Stop reading me,” she murmured.
Joonho’s gaze held hers.
“I can’t,” he said.
Two words.
Not romantic.
Not teasing.
Truth.
Yerin’s breath caught.
She should have stepped back.
She didn’t.
The rain misted harder, tapping the awning with soft insistence.
The city light smeared across wet pavement.
Redaction again.
Blur.
Yerin’s voice came quieter.
“Tell me one thing,” she said.
Joonho’s gaze stayed steady.
“What?”
“Are you lying to me,” she whispered, “about who you are?”
The question hung between them.
Sharp.
Dangerous.
Joonho didn’t move.
He didn’t flinch.
His eyes held hers for a long beat.
Then he spoke.
“Not about what matters,” he said.
Yerin’s stomach dropped.
Not about what matters.
A redaction, wrapped as reassurance.
Yerin swallowed.
“That’s not an answer.”
Joonho’s voice stayed calm.
“It’s the only one I can give,” he replied.
Yerin stared.
The honesty in the refusal felt like a wall.
And yet–walls kept you alive.
Yerin exhaled slowly.
“Okay,” she whispered.
Joonho’s gaze didn’t soften.
“Okay,” he echoed.
Two syllables.
A pact.
Not a comfort.
Not yet.
They stood under the awning while the city moved.
Then Joonho spoke again, voice low.
“Tonight,” he said. “Don’t post.”
Yerin’s jaw tightened.
“You don’t decide–”
“I’m asking,” he cut in.
The difference mattered.
Yerin swallowed.
“Why?”
Joonho’s gaze held hers.
“Because they want you reactive,” he said. “And because Cipher is watching.”
Yerin’s throat tightened.
She wanted to argue.
She wanted to prove she wasn’t controllable.
But her phone screen still burned in her mind:
Threatening at someone’s door is weak.
Cipher knew.
So someone had told him.
Or Cipher was closer than she’d admitted.
Yerin’s breath came shallow.
“Fine,” she said. “Not tonight.”
Joonho nodded once.
“Good,” he said.
Then he added, quieter:
“Sleep.”
The same word Cipher had posted.
Yerin’s stomach clenched.
She stared at him.
Joonho’s gaze held hers.
For a second, his expression looked almost… tired.
Then it smoothed.
He stepped back.
“Go,” he said.
Yerin hesitated.
“You’re staying?”
Joonho nodded.
“Nearby,” he replied.
Yerin swallowed.
She turned toward her building.
Each step felt heavy.
She reached the lobby.
The fluorescent light made everything look too honest.
She entered.
The elevator door slid open.
As she stepped in, her phone buzzed one last time.
Not a Cipher notification.
A message.
From Rin.
오늘 너 예뻤어 (oneul neo yeppeosseo). – You looked pretty today.
Yerin’s blood ran cold.
Because it wasn’t a compliment.
It was surveillance.
She looked up.
In the lobby’s glass reflection, she caught a glimpse of someone outside.
A phone lifted.
A face hidden under a cap.
The elevator doors began to close.
Yerin’s breath caught.
In the last sliver of glass, she saw the person lower the phone and smile.
Not a fan smile.
A knowing one.
The doors shut.
Yerin stood alone in the elevator, heart hammering, phone burning in her palm.
Pretty.
Couple.
Greedy.
The words weren’t just messages.
They were hands.
And they were getting closer.
Up on the eighth floor, her apartment door waited.
A keypad.
A lock.
A small space that had already been touched.
Yerin swallowed hard.
She opened her notes app.
Cipher phrases that overlap.
She added a new line with trembling fingers.
Sleep.
Then she typed another.
Rin knows location.
Her cursor blinked like a pulse.
And for the first time since she’d posted her vow to catch Cipher, Yerin felt a different vow forming.
Not about exposing.
Not about winning.
About surviving.
Because if the system wanted to turn her into bait,
then she would learn how bait learned.
She would become sharp.
She would become quiet.
And she would figure out who, in this city of redactions,
was close enough to call her pretty.