Thick snow covered the village that morning. A cold silence gripped the streets. The cars parked opposite the hotel were shrouded with frost – except one, where a gloved hand had scraped a rough circle clear on the driver’s window. Behind the black glass, the red eye of a cigarette blinked and glowed.

A young woman came round the corner and hurried up the hotel steps. She was dressed as if for a run: a hooded sweatshirt and jogging trousers, running shoes, a woollen hat and a small rucksack on her back. But it was not a morning for running, and no footprints had left the hotel since the overnight snow. She let herself in the front door and disappeared. The cigarette in the car glowed faster, then went out.

Gillian reached the top of the hotel stairs, tiptoed across the landing and slipped into her room. A dirty half-light seeped through the curtains, making the shabby room look even shabbier. It stank of nicotine: in the thin mattress and untouched sheets, the heavily varnished furniture, the threadbare rugs slung over the floorboards. The black laptop on the dresser was the only sign of change in the last thirty years.

Gillian pulled off the hat and shook out her raven-black hair. She glimpsed herself in the mirror and felt a faint pang of surprise: the new hair colour still didn’t feel right. If she couldn’t recognise herself, perhaps others wouldn’t either. She unzipped her top and stripped it off. Mud streaked her pale arms; her fingers were cracked and bloody from climbing in the dark, but she hardly noticed. She’d found what she’d gone for. She crossed to the computer, flipped up the lid and turned it on. Down on the street, a car door slammed.

As the machine clicked into life, something gave inside Gillian. The adrenalin drained away. She was exhausted – and shivering with cold. Too tired to wait for the computer, she went to the bathroom and undressed, peeling the damp fabric away from her skin. She left the clothes in a heap on the floor and stepped into the shower. The old hotel might lack some comforts, but at least the plumbing worked. The hot water blasted her face, slicking her hair flat against her scalp. The sharp droplets pricked warmth back into her skin; her muscles began to relax. She closed her eyes. In the dark space that opened, she saw the castle on the cliff; the icy rock face and the tiny crevice; the terror in her throat as she pushed against the ancient door . . .

Her eyes snapped open. Over the white noise of steam and water, she’d heard a sound from the bedroom. It might have been nothing – the hotel had its share of creaks and bumps – but the last three weeks had taught Gillian new fears. She left the water running and stepped out of the shower, wrapping herself in a skimpy hotel towel. Wet footprints pooled on the floorboards as she tiptoed through to the bedroom.

There was no one there. The laptop sat on the dresser between the two windows, chattering away to itself.

The sound came again – a knock at the door. She didn’t move.

‘Fräulein – telefon .’

It was a man’s voice, not the hotel owner’s. Gillian looked at the door. She’d forgotten to attach the safety chain . Did she dare slip it on now, or would that only alert him to her presence? She grabbed the hooded top from the bed and zipped it over her breasts, then pulled on a pair of pyjama bottoms from under the pillow. That made her feel less vulnerable.

‘Fräulein?’ The voice was harsh, impatient – or was that just her imagination? No. In horror, she saw the door handle start to turn.

‘I’m here,’ she called, trying not to sound frightened. ‘Who is it?’

‘Telefon . Is important for you, Fräulein.’ But it didn’t sound important – it sounded false, a rehearsed lie at the wrong moment, dialogue out of sync with the film. The handle was still down, the tongue of the lock bumping the frame as the man pushed against it.

‘I can’t take it right now,’ said Gillian. She snatched the laptop from the dresser and stuffed it into the rucksack. ‘I’ll be down in five minutes.’

‘Is important.’ An ill-fitting key scrabbled in the lock. It was opening . She flew across the room and slammed the safety chain home. She grabbed the handle and tried to hold it, but the grip on the other side was remorseless. Her fingers went white; her wrist was twisted back.

With a pop, the lock gave. The door sprang open, flinging Gillian backwards onto the floor. The chain snapped taut, bit – and held. The door shuddered to a standstill. Gillian heard a muffled curse. An unseen hand pulled it back a fraction and thrust it forward again. Again the chain held.

Dazed and desperate, Gillian pushed herself up. Blood ran down her cheek where the door had grazed it but she didn’t notice. She knew what she had to do. She slung the rucksack over one shoulder, pulled open the window and climbed out onto the tiny balcony. A rusting ladder, the fire escape, ran down the side of the building. She’d insisted on a room next to it, though she hadn’t expected to need it. She’d thought she’d lost them after Mainz. She pulled her sleeves down over her hands and reached for the nearest rung.

A second before she touched it, the whole ladder shivered. The snow on the rungs shook loose. With her arm still outstretched, she looked down.

The icy air seemed to freeze in her lungs. Through the swirling mist and snow, she saw a dark figure climbing towards her. From inside the room she heard another crash: the impact must have almost torn the chain from its housing. Perhaps someone had heard the noise, but she doubted it. She hadn’t seen another guest since she checked in.

She was trapped. Only one thing mattered now. She ducked back through the window, ran to the bathroom and locked the door. It wouldn’t hold two minutes, but perhaps that would be enough. Trembling, she perched on the edge of the bathtub and opened the laptop. In the bedroom, she heard a splitting crack as the chain finally gave. Footsteps ran in, paused, then headed for the window. That would buy her a few more seconds.

But not enough time to write – to explain. She reached behind the machine and turned on the webcam built into the lid. The light on the data card blinked as it established a connection; on screen, a new window opened with a list of names. She cursed. All of them were greyed out, dead to the online world. Probably still fast asleep.

Out in the bedroom, voices conferred for a moment, then approached the bathroom. A heavy boot slammed against the door, so hard she thought they’d kick it off its hinges. But the door held. She scrolled frantically through the names. Someone must be up. The light on the data card blinked orange and her heart almost stopped, but a second later the connection re-established itself and the light turned green. Another kick; this time the door buckled.

There. At the very bottom of the list, she found what she was looking for: a single name rendered in firm bold letters. Nick – of course he’d be up. A flash of misgiving shot through her, but more pounding on the door drove it out instantly. He’d have to do. She clicked the button next to his name to open a connection. Without waiting to see if he answered, she found the file and clicked send. The light on the data card flashed a furious pulse as it started streaming the information out of the computer.

Come on , she mouthed. She waited for Nick’s face to appear on screen so she could warn him, tell him what to do with it – but the box where he should have been stayed black, blank. Answer, godamit .

‘About 1 minute remaining,’ the status bar said. But she didn’t have that long. There was a small window behind the bath: she reached up and jammed the laptop into the opening. Her fingers scrabbled on the keyboard as she typed two brief lines of text, praying that the message would find someone. Another kick. She pulled the shower curtain across the bath to hide the computer.

The door smashed open. A man in a long black coat and black gloves stepped through the splintered frame and advanced towards her, the cigarette glowing like a needle in his mouth. Unthinkingly, Gillian tugged up the zip of her top.

Outside, a faint scream drifted down the street until the cold mist smothered it. Loose snow filled the footsteps outside the front door. The car drove away, the chains on its tyres clanking like a ghost. And on the other side of the world, a handful of pixels flashed up on a screen to announce that a message had arrived.