In ancient woods where sunlight dies,
She waits beneath the changing skies,
Not as the maid of spring and bloom,
But as a shape within the gloom.
The shadows stretch, the shadows grow,
Where silent, frozen rivers flow,
And there she steps without a sound,
To trace her fingers on the ground.

The foolish wander near the edge,
Across the steep and rocky ledge,
They think the darkness is a veil,
Where only quiet myths prevail.
But she is watching from the black,
With eyes that trace each footprints' track,
A patient queen who claims the night,
And strips away the fading light.

She mimics whispers in the breeze,
That rustles through the dying trees,
A clever trap of sound and space,
To draw them to her hiding place.
They step into the deepest shade,
Where all the brightest memories fade,
Unknowing that the trap is sprung,
And every songs of hope is sung.

The dark wraps tight around their chest,
To put their final breath to rest,
She steps into the pale moonlight,
A crown of iron, cold and bright.
Her prey is caught, the hunt is done,
Beneath a black and buried sun,
She pulls them down into the floor,
To rule the dark forevermore.