<<run setup.resetStory()>>
<<cacheaudio "breath" "https://cardiffwriters.org/twines/audio/breath1.mp3">>
<<cacheaudio "breath2" "https://cardiffwriters.org/twines/audio/breath2.mp3">>
<<cacheaudio "breath3" "https://cardiffwriters.org/twines/audio/breath3.mp3">><p class="sectionhead">I WILL FETCH YOU - THE FETCHER ARRIVES</p>
<<if $hasArrived>>
<<goto "FetcherWake">>
<</if>>
<<run setup.resetStory()>>\
<<if $crossingCount gt 0>>\
You know this dark.
You have been in it before.
<<print setup.aside('<em>The glass on the bedside table. You did not move it.</em>')>>\
<<print setup.rule()>>\
The ceiling too high.
No traffic.
<<timed 2s>>
The breathing.
Of course the breathing.
<<timed 2s>>
It's beside you.
It has been here before.
<<timed 2s>>\
<p>You do not pretend to be asleep.</p>
<<linkreplace "Open your eyes">>\
<<replace "#chorusReveal">>\
<<print setup.renderChorus($phantomCount)>>\
<<timed 1s>>\
It carries on.
[[Keep still->Listening]]
[[Say something->SayFirst]]
<</timed>>\
<</replace>>\
<<audio ":all" stop>>\
<<audio "breath" volume 0.1 loop play>>\
<</linkreplace>>\
<</timed>>\
<</timed>>\
<</timed>>\
<<else>>\
Wrong taste. Chemical. Sweet. Feel sick.
The dark is wrong.
Too dark. Too cold.
Whose bed is this?
<<print setup.aside('<em>The glass was moved. You drank it anyway.</em>')>>\
<<print setup.rule()>>\
The ceiling is too high.
No traffic outside.
<<timed 2s>>
Breathing. Is it you?
<<timed 2s>>
It's beside you.
Slow.
<<timed 2s>>\
<p>You hold your breath.</p>
<<linkreplace "Open your eyes">>\
<<replace "#chorusReveal">>\
<<print setup.renderChorus($phantomCount)>>\
<<timed 1s>>\
It carries on.
[[Keep still->Listening]]
[[Say something->SayFirst]]
<</timed>>\
<</replace>>\
<<audio ":all" stop>>\
<<audio "breath" volume 0.1 loop play>>\
<</linkreplace>>\
<</timed>>\
<</timed>>\
<</timed>>\
<</if>>\
<div id="chorusReveal"></div>\
<<print setup.renderChorus($phantomCount)>>\
<<if $crossingCount gt 0>>\
<p>You remember the pub. You remembered it last time too.</p>\
<p>After that: nothing. Same nothing.</p>\
<<print setup.aside('<em>The breathing. Again. Still.</em>')>>\
<<print setup.aside('<em>How many times now.</em>')>>\
<<else>>\
<p>The pub. That corner table. Who was there?</p>\
<p>After that: nothing..</p>\
<<print setup.aside('<em>Something changes. The breathing.</em>')>>\
<<print setup.aside('<em>How long has it been going on.</em>')>>\
<</if>>\
<<print setup.rule()>>\
<p>The bedclothes move. Just slightly.</p>\
[[You speak into the dark->SayFirst]]
<p>The breathing holds. Half a beat. Then steadies.</p>\
<<audio ":all" stop>>\
<<timed 2s>>\
<<audio "breath" volume 0.3 loop play>>\
<<print setup.renderChorus($phantomCount)>>\
<<if $crossingCount gt 0>>\
You know better than to ask.
You ask anyway. <<print setup.prot('"Who is there."')>>
<<else>>\
You dare not speak.
You think... <<print setup.prot('"Who is there."')>>
<</if>>\
<<timed 2s>>\
<<print setup.rule()>>\
<<if $crossingCount gt 0>>\
<<print setup.aside('<em>You knew. You asked anyway. Something about the dark makes you ask.</em>')>>\
<<else>>\
<<print setup.aside('<em>The darkness changes. <p><br>A thought.</p><br> It heard a thought.</em>')>>\
<</if>>\
<<print setup.rule()>>\
<<timed 2s>>
<p>Cold by my side.</p>\
<p>A name comes. Tumbling from the blackness.</p>\
[[Is it who you think? You name them->NameInput]]
<</timed>>
<</timed>>\
<</timed>>\
<<print setup.renderChorus($phantomCount)>>\
<p>Quietly. The quiet that only exists at night.</p>\
<<print setup.rule()>>\
<p>A name for the shape beside you:</p>\
<<textbox "$currentGuess" "">>\
<<button "Speak it">>\
<<set _guess = $currentGuess.trim()>>\
<<if _guess neq "">>\
<<run setup.speak(_guess)>>\
<<if not /^[A-Za-z]+$/.test(_guess) or setup.isSwear(_guess)>>\
<<set $angerLevel += 1>>\
<<replace "#name-warning">><p class="angry-warning"><<= setup.ph(setup.isSwear(_guess) ? setup.swearMsg() : '"A name. Letters. That is all I have time for. Dawn is approaching."')>></p><</replace>>\
<<else>>\
<<set $currentGuess = _guess>>\
<<set _n = _guess.toLowerCase()>>\
<<set $guessAttempt += 1>>\
<<if $fetchedNamesSet.includes(_n)>>\
<<goto "FetchedNameGuess">>\
<<elseif $nameCounts[_n]>>\
<<set $nameCounts[_n] += 1>>\
<<set $angerLevel += 1>>\
<<goto "RepeatName">>\
<<else>>\
<<set $nameCounts[_n] = 1>>\
<<run $wrongNames.push($currentGuess)>>\
<<set $phantomCount += 1>>\
<<run setup.pickFetchName()>>\
<<goto "WrongName">>\
<</if>>\
<</if>>\
<</if>>\
<</button>>\
<<timed 4s>>
<span id="name-warning"></span>
<</timed>><<print setup.renderChorus($phantomCount)>>
<p><<print setup.ph('"I fetched ' + $currentGuess + '. ' + $currentGuess + ' is already there."')>></p>
<<print setup.rule()>>
<p>Not this one. That one is already gone ahead.</p>
<<print setup.aside('<em>Already fetched. Already there. Not this name.</em>')>>
<<print setup.rule()>>
<p>Another name for what is beside you.</p>
[[Another name->NameInput]]
[[Ask who it is->AskWho]]<<timed 1s>>>
<<print setup.renderChorus($phantomCount)>>\
<p><<print setup.ph('"I am not ' + $currentGuess + '."')>></p>\
<<print setup.rule()>>\
<<if $crossingCount gt 0>>\
Of course not.
<<else>>\
Did I hear that?
<</if>>\
<<timed 2s>>
<p><<print setup.phc('"I will fetch ' + $lastFetched + '."')>></p>\
<<print setup.renderChorus($phantomCount)>>\
<<print setup.rule()>>\
<<audio "breath2" volume 0.4 loop play>>\
<<print setup.countText()>>\
<<timed 2s>>
<<print setup.realityText()>>\
<<print setup.rule()>>\
<p class="dim">Names spoken: <<= $wrongNames.map(setup.strikeName).join(' ')>></p>\
[[Another name->NameInput]]
[[Ask who it is->AskWho]]
<<if $phantomCount gte 3>> [[Say you have always known->Knowing]]<</if>>\
<</timed>><</timed>><</timed>>
<<print setup.renderChorus($phantomCount)>>\
<<if $angerLevel is 1>>\
<p><<print setup.ph('"I am not ' + $currentGuess + '."')>></p>\
<<print setup.rule()>>\
<p>The cold changes. A different quality.</p>\
<<print setup.aside('<em>I said it again. I don't know why I said it again.</em>')>>\
<<print setup.rule()>>\
<p><<print setup.ph('"Say something else. Or say nothing."')>></p>
\
[[A different name->NameInput]]\
[[Ask who it is->AskWho]]\
<<elseif $angerLevel is 2>>\
<<run setup.pickFetchName()>>\
<<set $phantomCount += 1>>\
<p><span class="name-struck"><<= $currentGuess>></span>.</p>\
<<print setup.rule()>>\
<p>The breathing pauses. The silence falls like a snowflake.</p>\
<<print setup.rule()>>\
<<print setup.ph('"Twice. Fine."')>>\
<<print setup.phc('"I will fetch ' + $lastFetched + '."')>>\
<<print setup.ph('"We can do this all night."')>>\
<<print setup.rule()>>\
<p>Another breath. Somewhere to the left.</p>\
<<print setup.aside('<em>I was careless with something that had no reason to be here at all.</em>')>>\
\
[[A different name->NameInput]]
[[Apologise->Apologise]]
[[Ask who it is->AskWho]]
<<elseif $angerLevel is 3>>
<<set $silenced = true>>
<p>Again.</p>
<<print setup.rule()>>
<p>The cold goes. The breathing goes. The weight on the mattress — gone.</p>
<<print setup.rule()>>
<<print setup.aside('<em>It went. I did that.</em>')>>
<<print setup.aside('<em>There is something there.</em>')>>
<<print setup.rule()>>
<p>Very far away —</p>
<p><<print setup.ph('...in...')>></p>
[[Apologise->Apologise]]
[[Lie still->SilenceWait]]
<<else>>
<<run setup.pickFetchName()>>
<<set $phantomCount += 1>>
<p><span class="name-struck"><<= $currentGuess>></span>. Again.</p>
<<print setup.rule()>>
<p>The thread surges. Closer than before.</p>
<<print setup.aside('<em>Something older is here now. Less interested in waiting.</em>')>>
<<print setup.rule()>>
<p><<print setup.ph('"Fine."')>></p>
<p><<print setup.phc('"I will fetch ' + $lastFetched + '."')>></p>
<p><<print setup.ph('"I have more than you."')>></p>
<<print setup.rule()>>
<p class="dim">Names spoken: <<= $wrongNames.map(setup.strikeName).join(' ')>></p>
[[A different name->NameInput]]
[[Apologise->Apologise]]
[[Ask who it is->AskWho]]
<</if>><<set $angerLevel = Math.max(0, $angerLevel - 1)>>
<<set $silenced = false>>
<<print setup.renderChorus($phantomCount)>>
<p><<print setup.prot('"I'm sorry. I don't know your name. I am trying."')>></p>
<<print setup.rule()>>
<p>Silence. Then the breathing again.</p>
<<print setup.aside('<em>I apologised to something I cannot see at three in the morning and it worked.</em>')>>
<<print setup.rule()>>
<p>The cold settles. Patient again.</p>
<p>Another chance. You understand it will not keep coming.</p>
[[Another name->NameInput]]
[[Ask who it is->AskWho]]<<print setup.renderChorus($phantomCount)>>
<p>You wait.</p>
<<print setup.rule()>>
<p>The thread...distant, barely there...holds. Doesn't come closer. Doesn't go.</p>
<<print setup.aside('<em>Waiting. Both of us waiting.</em>')>>
<p>The clock would say 3:14. You have stopped looking at the clock.</p>
<<print setup.rule()>>
<p>After a while the breathing shifts.</p>
<p><<print setup.ph('"Try again."')>></p>
[[Another name->NameInput]]
[[Ask who it is->AskWho]]<<print setup.renderChorus($phantomCount)>>\
<<print setup.prot('"Who are you?"')>>
<<timed 2s>>
The breathing shifts.\
<<print setup.rule()>>\
No name. Something else.
Something invisible. Unreal.\
<<if $crossingCount gt 0>>\
<<print setup.aside('<em>You already know the feeling. You know it from the last time.</em>')>>\
<<print setup.rule()>>\
<p>The name is already there. It has been there since you woke.</p>\
<<else>>\
<<print setup.aside('<em>It is a feeling..</em>')>>\
<<print setup.rule()>>\
<p>You know... The name has been in your mind ever since ....</p>\
<</if>>\
[[Tell me your name->PlayerNameInput]]
[[Ask why it came->WhyCame]]
<</timed>>
<<print setup.renderChorus($phantomCount)>>
<p><<print setup.ph('"I know who you are."')>></p>
<p>The breathing. A fraction quieter.</p>
<<print setup.rule()>>
<<print setup.aside('<em>I said that. And I meant it.</em>')>>
<<print setup.rule()>>
<p>Your name. The version nobody uses.</p>
[[Say it back->PlayerNameInput]]<<print setup.renderChorus($phantomCount)>>
<<print setup.prot('"Why did you come?"')>>
<<print setup.rule()>>\
Not even whispered. A brief flutter of your lips:
<<print setup.rule()>>
<p style="text-align:center; font-style:italic; color:var(--ghost); font-size:1.05em; letter-spacing:.04em;">
<em>Because you were cold.<br>Because it is time.<br>Because you said I should come.</em>\
\
<<print setup.rule()>>\
<<print setup.aside('<em>I never said that.</em>')>>\
<<print setup.aside('<em>There are things you half dream before you are properly asleep. They aren't real.</em>')>>\
<p>You hear your name again. Whispered into the dark.</p>\
[[Ask how it knows->PlayerNameInput]]<<print setup.renderChorus($phantomCount)>>
It whispers a name.
Your ... name.
<<print setup.rule()>>
<<print setup.aside('<em>How does it know it?</em>')>>
You repeat it, trying to make it real.
<<textbox "$playerName" "">>
<<button "Say it">>\
<<set _playerGuess = ($playerName || '').trim()>>\
<<if _playerGuess eq ''>>\
<<set $playerName = 'you'>>\
<<goto "NameAccepted">>\
<<elseif not /^[A-Za-z]+$/.test(_playerGuess) or setup.isSwear(_playerGuess)>>\
<<replace "#player-name-warning">><p class="angry-warning"><<= setup.ph(setup.isSwear(_playerGuess) ? setup.swearMsg() : '"Your name. Letters only. Dawn is coming and I will not wait."')>></p><</replace>>
<<else>>\
<<run setup.speak(_playerGuess)>>\
<<set _pn = _playerGuess.toLowerCase()>>\
<<if $fetchedNamesSet.includes(_pn) or $nameCounts[_pn]>>\
<<set $currentGuess = _playerGuess>>\
<<goto "PlayerNameRejected">>\
<<else>>\
<<set $playerName = _playerGuess>>\
<<goto "NameAccepted">>\
<</if>>\
<</if>>\
<</button>>\
<span id="player-name-warning"></span><<print setup.renderChorus($phantomCount)>>
<p>No.</p>
<<print setup.rule()>>
<p><<print setup.ph('"Not that one. You gave me that name already."')>></p>
<p><<print setup.ph('"' + $currentGuess + ' belongs to someone I fetched, or someone you tried to make me be."')>></p>
<<print setup.aside('<em>Not any of the names already whispered into the dark.</em>')>>
<<print setup.rule()>>
<p>Your name. The one that is still yours.</p>
[[Try again->PlayerNameInput]]
[[Ask why it knows->WhyCame]]<p class="sectionhead">THE NAME</p>\
<<print setup.renderChorus($phantomCount)>>\
<p>You say: <span class="name-true"><<= $playerName>></span></p>\
<p>The breathing stops.</p>\
<p>The room grows large.</p>\
<<audio ":all" stop>>\
<<print setup.rule()>>\
<<if $crossingCount gt 0>>\
<<print setup.aside('<em>Again. The same word. As if you have been practicing for this.</em>')>>\
<<else>>\
<<print setup.aside('<em>In the morning — coffee, the radio, this will be nothing —</em>')>>\
<</if>>\
<<print setup.rule()>>\
<p>One breath.
Close.
Just beside you.</p>
<<timed 2s>>\
<<audio "breath" volume 0.4 loop play>>\
<<if $crossingCount gt 0>>\
<p><<print setup.ph('"Yes."')>></p>\
<<print setup.rule()>>\
<p><<print setup.ph('"Again."')>></p>\
<p><<print setup.ph('"' + $playerName + '. You are coming with me."')>></p>\
<<else>>\
<p><<print setup.ph('"Yes."')>></p>\
<<print setup.rule()>>\
<p><<print setup.ph('"' + $playerName + '. You are coming with me."')>></p>\
<</if>>\
[[Ask where->AskWhere]]
<<set $refuseCount = 0>>
[[Say you are not going->RefuseChoice]]
[[Say nothing->WaitSilent]]
<</timed>>
<<print setup.renderChorus($phantomCount)>>
<<set $refuseCount = ($refuseCount || 0) + 1>>
<<if $refuseCount is 1>>
<p><<print setup.prot('"I am not going anywhere."')>></p>
<<print setup.rule()>>
<<print setup.aside('<em>You said it. The room held its breath.</em>')>>
<<elseif $refuseCount is 2>>
<p><<print setup.prot('"I am not going anywhere."')>></p>
<<print setup.rule()>>
<<print setup.aside('<em>I said it again. I don\'t know why I said it again.</em>')>>
<p>The breathing stops. One full second of silence.</p>
<<elseif $refuseCount gte 3>>
<p><<print setup.prot('"I am NOT going."')>></p>
<<print setup.rule()>>
<<print setup.aside('<em>I shouted it. At three in the morning, at nothing, I shouted.</em>')>>
<p>The glass of water on the bedside table — you hear it move.</p>
<<print setup.aside('<em>I heard the glass move. The glass moved.</em>')>>
<</if>>
<<print setup.rule()>>
<<goto "RefuseChoice">><<print setup.renderChorus($phantomCount)>>
<p>You say nothing.</p>
<<print setup.rule()>>
<p>The breathing slows. Thirty seconds between breaths. Time doing something wrong.</p>
<<print setup.aside('<em>No traffic. Not a sound from outside. The whole street gone quiet.</em>')>>
<<print setup.rule()>>
<p><<print setup.ph('"' + $playerName + '. The way back is longer in the light."')>></p>
[[Ask what way back->AskWhere]]
[[Say you will come->Agree]]<<print setup.renderChorus($phantomCount)>>
<p><<print setup.prot('"Where are you taking me?"')>></p>
<<print setup.rule()>>
<p><<print setup.ph('"Where things that were now are. Not far. Not what you think."')>></p>
<<print setup.aside('<em>My hand is cold. I can't grip.</em>')>>
<<print setup.rule()>>
<p><<print setup.ph('"You have glimpsed it before."')>></p>
[[Say you will come->Agree]]
[[Ask about the others->AskFetched]]<<print setup.renderChorus($phantomCount)>>
<p><<print setup.prot('"The names I said. Did you fetch them?"')>></p>
<<print setup.rule()>>
<<if $wrongNames.length gt 0>><p><<print setup.ph('"Already there. They went when I called. They are waiting."')>></p><</if>>
<p><<print setup.ph('"Everyone. Eventually. Different nights, different ones to walk alongside. No exceptions."')>></p>
<<print setup.aside('<em>If I set my alarm for eight.</em>')>>
<<print setup.aside('<em>This will all be gone.</em>')>>
<<print setup.rule()>>
<p><<print setup.ph('"' + $playerName + '. Come."')>></p>
[[Say you will come->Agree]]<<set $agreedToGo = true>>
<<print setup.renderChorus($phantomCount)>>
<p><<print setup.prot('"Yes."')>></p>
<<print setup.rule()>>
<<print setup.aside('<em>The word came out before you chose it. But you knew it had to be yes.</em>')>>
<<print setup.rule()>>
<p>The breathing steadies. Someone takes your hand.</p>
<p>Cold. A hand that has been waiting.</p>
[[Begin the journey->JourneyThreshold]]<p class="sectionhead">I · THE THRESHOLD</p>
<p>You are standing. You know the bed is behind you.</p>
<<print setup.aside('<em>You can't remember getting up.</em>')>>
<<print setup.aside('<em>The wallpaper.From years ago.</p></em>')>>
<<print setup.rule()>>
<p>The hand in yours grips firmly and gently tugs.</p>
<p>There&apos&s a door where no door should be, standing open. Through the gap: grey light. Neither end of the night nor the beginning of day.</p>
<<print setup.aside('<em>There is a draught. You can feel the draught.</em>')>>
[[Step through->JourneyCorridor]]
[[Hesitate at the threshold->JourneyHesitate]]<p>You stop at the threshold.</p>
<p>The frame is wood. Old paint over old paint. </p><p>You touch it, and it is solid and cold.</p>
<<print setup.aside('<em>Solid. So is this a real door?</em>')>>
<p>The hand in yours does not pull. It simply holds. Waits.</p>
<p><<print setup.ph('"There is no hurry. But the light is waiting."')>></p>
<<print setup.aside('<em>You are not turning around. You notice that.</em>')>>
[[Step through->JourneyCorridor]]<p class="sectionhead">II · THE CORRIDOR OF FORGETTING</p>
<p>A corridor. Long. Longer than a house could be, runs into the distance.</p>
<<print setup.aside('<em>You have stopped expecting things to fit.</em>')>>
<p>Lined with doors. All closed. Different handles, different slivers of light beneath them. All silent.</p>
<<print setup.rule()>>
<p>As you walk, you forget things.
Small things first: the colour of your car, the name of your street.
Then larger.
Faces, voices, books fade away.</p>
<<print setup.aside('<em>Like putting away. You didn't know you were carrying all that.</em>')>>
<<print setup.rule()>>
<p>The hand tugs yours.</p>
<p><<print setup.ph('"You will not need them where we are going."')>></p>
[[Ask what you will need->JourneyCorridorAsk]]
[[Keep walking->JourneyRiver]]<p><<print setup.prot('"What will I need?"')>></p>
<<print setup.rule()>>
<p>The hand squeezes once.</p>
<p><<print setup.ph('"Only what you are. <p>Not what you have done or owned or told or been told you are. </p>Beneath that. What you know you are."')>></p>
<<print setup.aside('<em>Names disappear, people, places, things.Gone.</em>')>>
<<print setup.aside('<em>You don't miss it. You thought you would miss it.</em>')>>
[[Keep walking->JourneyRiver]]<p class="sectionhead">III · THE RIVER</p>
<p>You come out from the corridor onto a bank.</p>
<p>Dark water, moving slowly. The sound running water makes at night.</p>
<<print setup.aside('<em>Of course a river.<P>A river to cross</p></em>')>>
<<print setup.aside('<em>The smell of it: cold stone, dank water. You have never imagined smells. Is this real?</em>')>>
<<print setup.rule()>>
<p>A boat. Small. Old. Riding still on water.</p>
<p>On the far bank: lights. Low, amber, spread across the dark like a village seen from afar at night.</p>
<p>Figures in the lights. Some figures wave.</p>
<p><<print setup.ph('"They are waiting for you. Some of them have been waiting a long time."')>></p>
[[Ask who is waiting->JourneyRiverAsk]]
[[Step into the boat->JourneyBoat]]<p><<print setup.prot('"Who is waiting?"')>></p>
<<print setup.rule()>>
<<if $wrongNames.length gt 0>><p><<print setup.ph('"Among them: ' + $wrongNames.join(', ') + '. The ones I fetched when you could not find the right name. They were glad to be called. You can be glad sometimes."')>></p><</if>>
<p><<print setup.ph('"Everyone you have lost. Everyone who left before you. They are here. They are only there ahead of you."')>></p>
<<print setup.aside('<em>That amber light. It feels familiar.</em>')>>
<p>Your eyes are burning. Tears fall. Not from grief. From recognition.</p>
[[Step into the boat->JourneyBoat]]<p class="sectionhead">IV · CROSSING</p>
<p>The boat takes your weight. It doesn't rock. As if it has been waiting for exactly this.</p>
<p>The hand releases yours. You see who has been walking with you.</p>
<<print setup.rule()>>
<<print setup.aside('<em>Of course. Yes. Of course it is you.</em>')>>
<<print setup.rule()>>
<p>They settle into the boat across from you. Their face is the face you know, but younger. From when everything was still possible, before you knew it would not always be.</p>
<p>They take up the oars without speaking.</p>
<<print setup.rule()>>
<p>The far bank grows closer. The amber lights resolve into windows. Behind the windows: figures who have been in the middle of something for a long time and have looked up.</p>
<<print setup.aside('<em>You are not frightened. You feel warm.</em>')>>
[[Arrive->JourneyArrival]]<p class="sectionhead" style="color:var(--ghost);">V · ARRIVAL</p>
<p>The boat touches the bank.</p>
<p>Grass underfoot, or something like grass — that give, that specific living resistance. The air is warmer. The amber light comes from windows in buildings that are neither old nor new, neither familiar nor strange.</p>
<<print setup.rule()>>
<p>From one of the doorways, a figure. Walking toward you with the unhurried certainty of someone who has known you were coming.</p>
<<print setup.aside('<em>I know that walk.</em>')>>
<<print setup.rule()>>
<<if $crossingCount gt 0>>
<p>Someone else, too. Closer to the water.</p>
<p>Watching. They were here last time. They have been waiting.</p>
<<print setup.aside('<em>They look the way they looked before everything. Before I knew how it went.</em>')>>
<<print setup.rule()>>
<</if>>
<p>Behind you, the boat pushes off. Your guide raises a hand.</p>
<p><<print setup.ph('"I will go back. There are others."')>></p>
<p>You watch the boat until it is swallowed in darkness.</p>
<<print setup.rule()>>
<p>You turn toward the figure on the bank.</p>
<p>They are close enough now that you can see their face.</p>
<p>They are smiling the way they always smiled to greet you.</p>
<<print setup.rule()>>
<p style="text-align:center; font-style:italic; color:var(--ghost); font-size:1.05em; letter-spacing:.04em; margin:1.8rem 0;">
As if your coming was never in any doubt.<br>
As if you were always going to arrive.<br>
As if the only question was when.
</p>
<<print setup.rule()>>
<p class="end-head">I Will Fetch You</p>
<<if $crossingCount gt 0>>
<p class="dim">All of us are fetched. Eventually.<br>You are learning what eventually means.</p>
<<else>>
<p class="dim">All of us are fetched. Eventually.<br>This is only the account of one such night.</p>
<</if>>
<<set $hasArrived = true>>
<<set $crossingCount += 1>>
[[Begin again->Start]]
<<set $crossingCount = $crossingCount || 0>>
<<set $hasArrived = true>>
<<set $nextFetchName = setup.pickFetchName()>>
<<cacheaudio "breath" "https://cardiffwriters.org/twines/audio/breath1.mp3">>
<<cacheaudio "breath2" "https://cardiffwriters.org/twines/audio/breath2.mp3">>
<<audio "breath" volume 0.15 loop play>>
<p class="sectionhead">I · THE FETCH</p>
<p>You know this dark. You have been on the other side of it.</p>
<<print setup.aside('<em>Warmer here. Amber light somewhere behind you. You do not look back.</em>')>>
<<print setup.rule()>>
<p>Beside you: breathing. Wrong breathing. Shallow, caught.</p>
<p>Somebody is awake in their bed and they do not know what is beside them.</p>
<<print setup.rule()>>
<<print setup.aside('<em>You came because they were cold. Because it is time. Because — you realise now — they said your name once, almost, in the dark, half-asleep, years ago. </em>' + (($playerName && $playerName neq 'you') ? '<em>' + $playerName + '. </em>' : '') + '<em>You have been holding it ever since.</em>')>>
<<print setup.rule()>>
<p>Their name is in your mouth. You have carried it the whole way.</p>
<p>You only have to say it.</p>
[[Speak their name->FetcherNameSpeak]]
[[Wait. Listen first->FetcherListen]]<<print setup.renderChorus($phantomCount)>>
<p>The breathing is uneven. Frightened, or only half-asleep.</p>
<<print setup.aside('<em>You remember this. You were the one holding your breath.</em>')>>
<<print setup.rule()>>
<p>They are going to speak. You can feel the thought forming. A question they do not have words for yet.</p>
<<print setup.rule()>>
<<print setup.ph('"Who is there."')>>
<<print setup.rule()>>
<p>You wait.</p>
[[They are trying to name you->FetcherNamed]]
[[Speak their name first->FetcherNameSpeak]]<<print setup.renderChorus($phantomCount)>>
<p>A name. Not yours.</p>
<<print setup.rule()>>
<<print setup.aside('<em>I know this. I said wrong names too. All night.</em>')>>
<<print setup.rule()>>
<p>They are frightened and trying. You remember what it felt like to try.</p>
<p>You could correct them. You could say: <em>I am not that.</em></p>
<p>Or you could wait. Let them find it themselves.</p>
[[Say "I am not that"->FetcherDeny]]
[[Wait in the dark->FetcherWait]]
[[Speak their name and end it->FetcherNameSpeak]]<<print setup.renderChorus($phantomCount)>>
<<print setup.ph('"I am not that."')>>
<<print setup.rule()>>
<p>The breathing catches. They heard it.</p>
<<print setup.aside('<em>Good. They need to hear it to know this is real.</em>')>>
<<print setup.rule()>>
<p>You say the thing you always said:</p>
<<print setup.phc('"I will fetch ' + $lastFetched + '."')>>
<<print setup.rule()>>
<<print setup.aside('<em>The name went. From here it is easy. They stepped forward and they were here and now they are in the lights.</em>')>>
<p>One more sent ahead.</p>
<p>The sleeper is still trying.</p>
[[Wait->FetcherWait]]
[[Speak their name->FetcherNameSpeak]]<<print setup.renderChorus($phantomCount)>>
<p>You wait.</p>
<<print setup.rule()>>
<<print setup.aside('<em>You have waited longer. Time works differently here — loose, patient. You are not in a hurry.</em>')>>
<p>The clock in their room says 3:14.</p>
<p>They have stopped looking at the clock. Good.</p>
<<print setup.rule()>>
<p>Another name comes out of the dark. Still not yours. Closer, though.</p>
<p>They are working through something. Some old list of the lost.</p>
[[Still not right->FetcherDeny]]
[[Close enough. Speak their name->FetcherNameSpeak]]<<print setup.renderChorus($phantomCount)>>
<p>You say their name.</p>
<<print setup.rule()>>
<<print setup.aside('<em>Strange, after carrying it so long. Like setting something down.</em>')>>
<<print setup.rule()>>
<p>The breathing stops.</p>
<p>The room goes very quiet.</p>
<<print setup.rule()>>
<<if $nextFetchName neq "">><p><<print setup.ph('"' + $nextFetchName + '."')>></p>
<p>It is their name. They know it.</p><<else>><p><<print setup.ph('"You."')>></p>
<p>They know what you mean.</p><</if>>
<<print setup.rule()>>
<<print setup.aside('<em>I remember this moment. On the other side of it. The name arriving from the dark like something that had always been there.</em>')>>
[[They answer->FetcherAnswer]]<<print setup.renderChorus($phantomCount)>>
<<print setup.prot('"Yes."')>>
<<print setup.rule()>>
<<print setup.aside('<em>They said it before they chose it. The same as you.</em>')>>
<<print setup.rule()>>
<p>The breathing steadies.</p>
<p>You reach out your hand.</p>
<p>Cold. Then something warmer. A hand that has been here before.</p>
<<print setup.rule()>>
<<print setup.aside('<em>From the far bank, someone is watching. They were waiting for this one. They always knew it would be tonight.</em>')>>
[[Begin the crossing->FetcherCrossing]]<p class="sectionhead">II · RETURNING</p>
<p>You lead them through the door.</p>
<p>They do not look back. You notice that.</p>
<<print setup.aside('<em>Some of them look back. This one does not. There is a kind of grace in that.</em>')>>
<<print setup.rule()>>
<p>The corridor is shorter from this side. The forgetting happens faster — they are light already, letting things go. Small things first. Then larger.</p>
<<print setup.rule()>>
<<print setup.aside('<em>You do not tell them what they are losing. You never do. It comes by itself and they do not miss it and that is the whole of it.</em>')>>
<<print setup.rule()>>
<p>At the river: the boat is already waiting.</p>
<p>You pick up the oars.</p>
[[Cross->FetcherArrival]]<p class="sectionhead" style="color:var(--ghost);">III · THE FAR BANK</p>
<p>The boat touches the bank.</p>
<<print setup.rule()>>
<p>From the lights: the figure you knew was coming. Running now, not walking. Someone who has been patient for a long time and is done with patience.</p>
<<print setup.aside('<em>I know that run. I have always known that run.</em>')>>
<<print setup.rule()>>
<p>Your passenger steps out. You do not follow.</p>
<p>You push the boat back.</p>
<<print setup.rule()>>
<<print setup.ph('"I will go back. There are others."')>>
<<print setup.rule()>>
<p>The oars in your hands. The dark water. The sound it makes.</p>
<p>On the far bank, two figures. One of them is waving.</p>
<<print setup.aside('<em>They are all right. They were always going to be all right. That is the thing nobody alive believes and everybody here knows.</em>')>>
<<print setup.rule()>>
<p>You row back into the dark.</p>
<p>There is always someone waiting on the other side of it.</p>
<<print setup.rule()>>
<p class="end-head">I Will Fetch You</p>
<p class="dim">All of us are fetched. Eventually.<br>
The second night, you are the one doing the fetching.</p>
[[Start to fetch->Start]]<<audio ":all" stop>>
<<set $crossingCount = ($crossingCount || 0) + 1>>
<<print setup.renderChorus($phantomCount)>>
<p>The breathing goes.</p>
<<print setup.rule()>>
<p>All of it. Every offset pulse. The room suddenly just a room again.</p>
<<print setup.rule()>>
<<if $crossingCount gt 1>>
<<print setup.aside('<em>Gone. Again. I did it again.</em>')>>
<<else>>
<<print setup.aside('<em>Gone. And I did that. I held my ground and it went.</em>')>>
<</if>>
<<print setup.rule()>>
<p>The clock says 4:18.</p>
<p>You have been awake for two hours.</p>
<<if $crossingCount gt 1>>
<p>There is a glass of water on the bedside table. You moved it earlier, you realise. You do not remember doing that.</p>
<<else>>
<p>There is a glass of water on the bedside table. You do not drink from it.</p>
<</if>>
<<print setup.rule()>>
<p>In the morning: coffee, the radio, the ordinary weight of things returning in the right order.</p>
<<if $crossingCount gt 1>>
<<print setup.aside('<em>You still will not tell anyone. There is no version of this that anyone would believe.</em>')>>
<<else>>
<<print setup.aside('<em>You will not tell anyone. What would you say.</em>')>>
<</if>>
<<print setup.rule()>>
<p>You will not remember this as a story.</p>
<p>Only as a feeling when someone says a name.</p>
<p>Only as the brief pause before you answer.</p>
<<if $crossingCount gt 1>>
<p>Only as the knowledge, growing quieter each time, that it is still out there.</p>
<p>That "not yet" has a limit.</p>
<<else>>
<p>Only as the particular quality of dark between 3 and 4 in the morning, which you now know is different from any other dark.</p>
<</if>>
<<print setup.rule()>>
<p class="end-head">I Will Fetch You</p>
<<if $crossingCount gt 1>>
<p class="dim">Not yet.<br>
You have said that before.<br>
It remembers.</p>
<<else>>
<p class="dim">Not yet.<br>
That is the only answer that stays answered.<br>
For now.</p>
<</if>>
[[Begin again->Start]]
<<print setup.renderChorus($phantomCount)>>
<<if $refuseCount is 0>>
<p><<print setup.ph('"' + $playerName + '. You are coming with me."')>></p>
<<print setup.rule()>>
<p>The cold beside you. The breathing just beside your ear.</p>
<<print setup.aside('<em>Something is waiting to see if you mean it.</em>')>>
<<elseif $refuseCount is 1>>
<p><<print setup.ph('"You are already going. I am only the one walking beside you."')>></p>
<<print setup.rule()>>
<p>The cold beside you has become something else. A churchyard cold.</p>
<<print setup.aside('<em>It is still patient. That is almost worse.</em>')>>
<<elseif $refuseCount is 2>>
<p><<print setup.ph('"Twice."')>></p>
<p><<print setup.ph('"I have waited for stubborn ones before. They always come. They are waiting there now, on the other side."')>></p>
<<print setup.rule()>>
<p>The cold has weight now. It presses.</p>
<<print setup.aside('<em>That\'s anger. That is what anger feels like from something that doesn\'t have a face.</em>')>>
<<elseif $refuseCount gte 3>>
<p><<print setup.ph('"Three times."')>></p>
<<print setup.rule()>>
<p>The cold becomes a sound, low and continuous, felt in the back teeth.</p>
<<print setup.ph('"Fine."')>>
<<print setup.ph('"Then be the one who stayed."')>>
<</if>>
<<print setup.rule()>>
<<if $refuseCount gte 3>>
[[Say you will come->Agree]]
[[Hold your ground->StayBehind]]
<<else>>
<p><<print setup.ph('"' + $playerName + '. You are coming with me."')>></p>
[[Say you will come->Agree]]
[[Say you will not->Refuse]]
<</if>>