Add ink integration UI and media playback

This commit is contained in:
2026-05-15 21:23:46 +02:00
parent 44dc64f830
commit f2e786d5bc
89 changed files with 6561 additions and 556 deletions
+795
View File
@@ -0,0 +1,795 @@
// Kaiserpunk Horror Intro
// Ink source file draft
// Covers: opening train journey, class selection, name builder, supernatural stance,
// spiritual-sense selection, first Viktor relationship choices, and arrival at Eibenreith.
VAR birth_class = "unset"
VAR title_part = ""
VAR given_names = ""
VAR common_name = ""
VAR surname = ""
VAR full_name = ""
VAR supernatural_belief = "unset" // believer, sceptic, performer, undecided
VAR supernatural_senses = "unset" // genuine, faked, repressed, ambiguous
VAR viktor_relation = "unset" // trust, tension, utility, dependence, provocation
VAR lover = 0
VAR sapphic = 0
VAR detective = 0
VAR careless = 0
VAR eccentric = 0
VAR class_confidence = 0
VAR medium_reputation = 0
VAR court_loyalty = 0
VAR viktor_trust = 0
VAR viktor_suspicion = 0
VAR supernatural_exposure = 0
-> intro_train
=== intro_train ===
The train has left Vienna behind, though Vienna has not yet left you. #chapter[Eibenreith] #music[Kaiserpunk Waltz.mp3](crossfade, loop, lead=8)
It clings to the black gloss of your travelling boots, to the cut of your coat, to the stiff little prison of your gloves. It lives in the seal upon the letter folded inside your reticule, in the thin scent of coal smoke that has insinuated itself even into first-class upholstery, in the fact that Herr Viktor Nowak sits opposite you as if the carriage were a field office and not a compartment lined in velvet, polished wood, and brass.
Outside the window, the last outskirts of the capital have broken apart into winter-browned fields and villages with church towers too small to compete with the engine's whistle. The rails take the land without asking permission. Embankments cut through orchards. Telegraph poles pass at regular intervals, each one vanishing behind you like a thought dismissed too quickly. #sfx[steam-whistle.ogg]
You had expected the train to feel like a triumph of the age.
Instead it feels like an argument. #image[suedbahn.png](landscape)
The machine throws itself southward with a violence that polite society would never admit to admiring. The lamps tremble in their fittings. Your cup rattles against its saucer. Beyond the glass, the country begins to rise, first gently, then with a firmer will, until the line itself seems to negotiate with the mountains through stone arches, black tunnels, and viaducts thrown across ravines with all the confidence of imperial engineering.
Viktor has not looked impressed once.
His civilian clothes are correct enough to pass without comment: dark frock coat, sober waistcoat, gloves, collar immaculate, the posture of a man who has never truly sat at ease in his life. But no tailor can disguise discipline. It remains in his shoulders, in the economy of his movements, in the way his eyes measure doors, windows, luggage rack, corridor, your face, then the door again.
On the paperwork he is your secretary and travelling companion.
In truth, he is an officer lent to a delicate matter by channels that prefer not to be named. Rittmeister Viktor Alois Nowak, though no one at Jagdhaus Hohenreith is expected to call him that. Your hosts have asked for a medium. The Cabinet has sent them you. The military has sent him to make certain that you do not become a scandal before you become useful.
He folds the newspaper, though you are quite certain he had not been reading it.
"You have been very quiet, gnädiges Fräulein."
The form of address is technically correct if you are noble, excessive if you are not, and perfectly chosen because he does not yet know which part of you is useful, which part is costume, and which part is threat.
"For a lady on her first official journey," he adds, "you show remarkable restraint."
You look around the compartment before you answer. The answer comes from somewhere older than the letter in your reticule. It comes from the place you began.
* [The compartment seems built for people who never wonder whether they belong in it.] #class:noble
~ birth_class = "noble"
~ class_confidence += 2
~ court_loyalty += 1
It is not luxury that unsettles you. Luxury is only wood, cloth, brass, service, silence. What matters is whether the servants glance twice, whether the guard lowers his voice, whether another passenger weighs your gloves and decides not to ask your business.
You were born among people who understood such things before they understood kindness.
-> class_noble_background
* [You count the cost of each detail before you can stop yourself.] #class:middle
~ birth_class = "middle"
~ class_confidence += 1
The upholstery, the lamps, the polished veneer, the quiet attendance at stations: none of it is magical. It is paid for. Accounted for. Itemised somewhere by someone with ink on his cuffs and a wife who knows how long candles may be burned before the household budget complains.
You were not born to this compartment, but you were born close enough to study its rules.
-> class_middle_background
* [You notice first how clean everything is, and how carefully one must sit so as not to betray noticing.] #class:working
~ birth_class = "working"
~ class_confidence -= 1
The velvet looks soft enough to swallow fingerprints. The brass fittings have been polished by hands that will never sit here. The little curtain strap is worn where other travellers, all of them more certain than you, have touched it without gratitude.
You were not born on this side of service.
-> class_working_background
=== class_noble_background ===
"Restraint is not a virtue, Herr Nowak," you say. "It is often only good breeding with its mouth shut."
His brows move almost imperceptibly.
You learned young that every room contains a court, even when no emperor is present. A girl of your rank is trained to enter, to bow, to be introduced, to be placed, to speak only enough, to understand more than she admits, and to know that a family name can be both a key and a chain.
Your own family possesses no grand seat, no army of retainers, no ancient right to command provinces. But your name opened drawing-room doors in Vienna, and once inside those rooms you learned to make people repeat stories they had meant only to hint at. You learned how widows speak when priests are absent, how officers lie when flattered, how old men confess when they believe themselves admired, and how a young woman may be underestimated so consistently that underestimation becomes a profession.
Your reputation as a medium did not descend from heaven. It was assembled from half-lights, correct guesses, careful silences, and the willingness of better-born fools to mistake performance for revelation.
Before the court could use you, society had first to invent you.
Now choose the name by which Vienna invented you.
-> choose_name_noble
=== class_middle_background ===
"Restraint," you say, "is easier when one has learned that every mistake is remembered by someone better placed."
Viktor watches you more closely.
You were born in that broad, anxious territory between deference and ambition. Your family had books, invoices, respectability, perhaps a piano no one played well enough, perhaps a father with an office, a mother with callers, brothers who were expected to advance, and daughters who were expected not to make advancement look hungry.
You learned accounts before etiquette, etiquette before French, and French before you learned how easily a woman with a calm voice could make men explain themselves. You rose because you listened. You rose because you understood that fraud, faith, medicine, gossip, politics, and grief all use the same doors into the human mind.
The court does not like to admit that it needs middle-class competence. It prefers to borrow it, dress it properly, and call it discretion.
Your reputation as a medium gave them a word that sounded less dangerous than investigator.
Now choose the name under which you entered the salons that first laughed at you, then invited you back.
-> choose_name_middle
=== class_working_background ===
"Restraint," you say, "is what people praise when they prefer not to see the effort."
The newspaper in Viktor's hand creases once.
You were born among people who owned little but obligations. Work had a sound before it had a meaning: water, broom, bootsteps, breath, the clatter of dishes, the cough of men coming in from cold yards, women counting coins under their breath. You learned early that the high-born are not more observant than others. They are merely less often required to observe.
That was your first advantage.
A servant knows which door matters because she uses the others. A seamstress learns bodies because she measures them. A maid learns secrets because fine people leave their souls lying about like gloves, certain that no one beneath them has hands.
You rose by talent, patronage, imitation, nerve, and the terrible convenience of being believed harmless. By the time Vienna began whispering that you saw more than respectable people saw, you had already spent years seeing what respectable people missed.
The court has placed you in first class because it needs what birth did not give you.
Now choose the name you carried upward, altered perhaps in pronunciation, never quite cleansed of where it began.
-> choose_name_working
=== choose_name_noble ===
// Noble title is fixed for the canonical lower-noble route.
// Full names are formal; common_name is used for narration and dialogue.
* [Valerie Eleonore Josepha]
~ given_names = "Valerie Eleonore Josepha"
~ common_name = "Valerie"
-> choose_surname_noble
* [Helene Cäcilie Franziska]
~ given_names = "Helene Cäcilie Franziska"
~ common_name = "Helene"
-> choose_surname_noble
* [Clara Theresia Leopoldine]
~ given_names = "Clara Theresia Leopoldine"
~ common_name = "Clara"
-> choose_surname_noble
* [Sophie Eleonore Auguste]
~ given_names = "Sophie Eleonore Auguste"
~ common_name = "Sophie"
-> choose_surname_noble
* [Mathilde Josepha Henriette]
~ given_names = "Mathilde Josepha Henriette"
~ common_name = "Mathilde"
-> choose_surname_noble
* [Therese Valerie Franziska]
~ given_names = "Therese Valerie Franziska"
~ common_name = "Therese"
-> choose_surname_noble
* [Ilona Theresia Eleonore]
~ given_names = "Ilona Theresia Eleonore"
~ common_name = "Ilona"
-> choose_surname_noble
* [Zdenka Eleonore Josepha]
~ given_names = "Zdenka Eleonore Josepha"
~ common_name = "Zdenka"
-> choose_surname_noble
=== choose_surname_noble ===
Your title is fixed by birth and by the careful modesty of your family: not countess, not princess, not one of the brilliant names that gather ambassadors and creditors like dust.
A Freiin. Baronial. Usable. Admitted, but not enthroned.
* [Freiin von Rauhenfels]
~ title_part = "Freiin von"
~ surname = "Rauhenfels"
-> assemble_full_name
* [Freiin von Traunegg]
~ title_part = "Freiin von"
~ surname = "Traunegg"
-> assemble_full_name
* [Freiin von Ebenwald]
~ title_part = "Freiin von"
~ surname = "Ebenwald"
-> assemble_full_name
* [Freiin von Arnsberg]
~ title_part = "Freiin von"
~ surname = "Arnsberg"
-> assemble_full_name
* [Freiin von Reichenau]
~ title_part = "Freiin von"
~ surname = "Reichenau"
-> assemble_full_name
* [Freiin von Waldstätten]
~ title_part = "Freiin von"
~ surname = "Waldstätten"
-> assemble_full_name
=== choose_name_middle ===
* [Clara Eleonore]
~ given_names = "Clara Eleonore"
~ common_name = "Clara"
-> choose_surname_middle
* [Anna Katharina]
~ given_names = "Anna Katharina"
~ common_name = "Anna"
-> choose_surname_middle
* [Helene Theresia]
~ given_names = "Helene Theresia"
~ common_name = "Helene"
-> choose_surname_middle
* [Rosa Franziska]
~ given_names = "Rosa Franziska"
~ common_name = "Rosa"
-> choose_surname_middle
* [Johanna Elise]
~ given_names = "Johanna Elise"
~ common_name = "Johanna"
-> choose_surname_middle
* [Katharina Sophie]
~ given_names = "Katharina Sophie"
~ common_name = "Katharina"
-> choose_surname_middle
* [Therese Leopoldine]
~ given_names = "Therese Leopoldine"
~ common_name = "Therese"
-> choose_surname_middle
* [Magdalena Cäcilie]
~ given_names = "Magdalena Cäcilie"
~ common_name = "Magdalena"
-> choose_surname_middle
=== choose_surname_middle ===
Your family name contains no particle to soften the ascent. It must stand upright by itself.
* [Leitner]
~ title_part = "Fräulein"
~ surname = "Leitner"
-> assemble_full_name
* [Wagner]
~ title_part = "Fräulein"
~ surname = "Wagner"
-> assemble_full_name
* [Kellner]
~ title_part = "Fräulein"
~ surname = "Kellner"
-> assemble_full_name
* [Baumgartner]
~ title_part = "Fräulein"
~ surname = "Baumgartner"
-> assemble_full_name
* [Fischer]
~ title_part = "Fräulein"
~ surname = "Fischer"
-> assemble_full_name
* [Schmid]
~ title_part = "Fräulein"
~ surname = "Schmid"
-> assemble_full_name
* [Pichler]
~ title_part = "Fräulein"
~ surname = "Pichler"
-> assemble_full_name
* [Rosenfeld]
~ title_part = "Fräulein"
~ surname = "Rosenfeld"
-> assemble_full_name
=== choose_name_working ===
* [Anna]
~ given_names = "Anna"
~ common_name = "Anna"
-> choose_surname_working
* [Klara]
~ given_names = "Klara"
~ common_name = "Klara"
-> choose_surname_working
* [Agnes]
~ given_names = "Agnes"
~ common_name = "Agnes"
-> choose_surname_working
* [Leni]
~ given_names = "Leni"
~ common_name = "Leni"
-> choose_surname_working
* [Rosa]
~ given_names = "Rosa"
~ common_name = "Rosa"
-> choose_surname_working
* [Gertrud]
~ given_names = "Gertrud"
~ common_name = "Gertrud"
-> choose_surname_working
* [Elisabeth]
~ given_names = "Elisabeth"
~ common_name = "Elisabeth"
-> choose_surname_working
* [Franziska]
~ given_names = "Franziska"
~ common_name = "Franziska"
-> choose_surname_working
=== choose_surname_working ===
A simple name can be a burden in Vienna. It tells people how little they must pretend to respect you before you have spoken.
* [Pichler]
~ title_part = "Fräulein"
~ surname = "Pichler"
-> assemble_full_name
* [Huber]
~ title_part = "Fräulein"
~ surname = "Huber"
-> assemble_full_name
* [Maier]
~ title_part = "Fräulein"
~ surname = "Maier"
-> assemble_full_name
* [Gruber]
~ title_part = "Fräulein"
~ surname = "Gruber"
-> assemble_full_name
* [Schuster]
~ title_part = "Fräulein"
~ surname = "Schuster"
-> assemble_full_name
* [Krenn]
~ title_part = "Fräulein"
~ surname = "Krenn"
-> assemble_full_name
* [Wolf]
~ title_part = "Fräulein"
~ surname = "Wolf"
-> assemble_full_name
* [Moser]
~ title_part = "Fräulein"
~ surname = "Moser"
-> assemble_full_name
=== assemble_full_name ===
{birth_class == "noble":
~ full_name = given_names + " " + title_part + " " + surname
- else:
~ full_name = title_part + " " + given_names + " " + surname
}
{birth_class == "noble":
On visiting cards, in letters, in the cautious mouths of servants, you are {full_name}.
- else:
On railway documents, hotel ledgers, and the tongues of people who have not yet decided how much respect you deserve, you are {full_name}.
}
But in the private chamber where a name is first answered before it is performed, you are {common_name}.
Viktor has waited through your silence with a soldier's patience and a jailer's courtesy. The train enters another tunnel. For several seconds the compartment window gives you back only your own reflection: your hat, your pale face above the dark collar, your eyes too steady or not steady enough.
When the mountains return, they seem closer.
-> supernatural_stance
=== supernatural_stance ===
The letter of commission in your reticule does not call you an investigator.
It calls you, in prose dry enough to pass through any number of offices, a woman whose unusual spiritual reputation has recommended her to a delicate household matter. The phrasing is exquisite. It neither affirms nor denies. It permits everyone involved to believe afterward that they had believed nothing improper.
The comital family at Jagdhaus Hohenreith has asked for discretion. Vienna has answered with a sealed letter, a woman reputed to speak with what is hidden, and a man opposite her who has orders of his own.
Before this journey, before this train, before the mountains began taking the sky piece by piece, what did you believe?
* [The dead are not silent. The living are merely poor listeners.] #supernatural:believer
~ supernatural_belief = "believer"
~ medium_reputation += 1
~ supernatural_exposure += 1
You have always thought disbelief a provincial arrogance of the educated. There are pressures in rooms where grief has been. There are words people speak before they know they have spoken. There are dreams that arrive with mud on their hems.
Perhaps the world is not haunted. Perhaps it is simply crowded.
-> spiritual_senses
* [The supernatural is usually pain, fraud, fever, inheritance, or bad ventilation.] #supernatural:sceptic #route:detective
~ supernatural_belief = "sceptic"
~ detective += 1
The word spirit covers too much and explains too little. You have watched respectable people call an echo a message, a coincidence a sign, a trembling hand an angelic visitation. Men of science can be fools, but fools with candles and planchettes are no improvement.
If Hohenreith has ghosts, you expect them to keep accounts, write letters, leave footprints, and benefit someone.
-> spiritual_senses
* [Belief is a costume. You wear it because men insist on dressing you in it.] #supernatural:performer
~ supernatural_belief = "performer"
~ medium_reputation += 2
You discovered early that men who distrust a woman's mind will sometimes worship her nerves. A conclusion from evidence irritates them. A vision, sighed through lowered lashes, makes them lean closer.
Very well. Let them lean.
-> spiritual_senses
* [You have learned not to decide too early.] #supernatural:undecided
~ supernatural_belief = "undecided"
There are things you can explain, things you cannot yet explain, and things that explanation damages before it helps. You have made a profession of standing at thresholds with a face composed enough for both sides to continue speaking.
Hohenreith will have to show you what kind of case it is.
-> spiritual_senses
=== spiritual_senses ===
Belief is one matter. Experience is another.
People call a woman sensitive when they want her perceptions to sound like an illness. They call her hysterical when those perceptions inconvenience them. They call her inspired when they need her, and unstable when they do not.
What, beneath reputation and performance, has truly happened to you?
* [There have been moments you cannot explain away.] #powers:genuine
~ supernatural_senses = "genuine"
~ supernatural_exposure += 2
Once, as a child, you knew before the telegram came. Once, in a crowded room, a stranger's grief entered you with such force that your own knees failed. Once, in a mirror, you saw a door behind you that was not in the room when you turned.
You learned caution after that. It is unwise for a woman to know things before a man has asked her opinion.
-> viktor_first_exchange
* [Everything you do can be explained by observation, timing, and nerve.] #powers:faked #route:detective
~ supernatural_senses = "faked"
~ detective += 1
You notice rings removed too recently, mourning gloves worn too carefully, letters folded and refolded until the crease gives away the reader's obsession. You hear servants misname guests, mothers pause before daughters' rooms, officers lie by becoming too exact.
The dead have never told you anything. The living cannot stop telling you everything.
-> viktor_first_exchange
* [Something happens, but never when summoned.] #powers:ambiguous
~ supernatural_senses = "ambiguous"
~ supernatural_exposure += 1
Your reputation depends upon command. The truth, if truth it is, has no respect for appointments.
Sometimes a room changes pressure around you. Sometimes a face acquires an old expression no living person taught it. Sometimes names arrive before introductions. But the harder you reach, the more ordinary the world becomes.
-> viktor_first_exchange
* [You buried the first signs so thoroughly that even you do not know what remains.] #powers:repressed #route:eccentric
~ supernatural_senses = "repressed"
~ eccentric += 1
There are childhood memories sealed behind politeness: a nursery mirror turned to the wall, a nurse dismissed without reference, your mother's hand tightening around your wrist until the bones complained.
You became strange afterward in ways society found easier to admire than understand.
-> viktor_first_exchange
=== viktor_first_exchange ===
The train emerges from the tunnel into a pale afternoon cut by dark firs and white rock. Far below, water shows itself only in flashes. The valley is no longer a view from a salon painting. It has depth enough to hide things.
Viktor opens a leather folder and removes a memorandum. He does not hand it to you at once.
"When we leave the railway," he says, "we will be met by a coach from Hohenreith. From that moment, appearances matter. Your hosts have been told that I assist with correspondence, travel, and practical arrangements. They need not be troubled with military definitions."
"And the villagers?" you ask.
"The villagers need not be troubled with anything."
There it is: the empire in miniature. A man, a folder, a locked sentence.
"You will be addressed according to the station you present," he continues. "The Graf's household will observe rank. Servants will observe what the household observes. Villagers may observe less and remember more. I advise restraint."
The advice is sound. That makes it no less irritating.
How do you answer him?
* ["If gentlemen were less easily led, Herr Nowak, ladies would require fewer methods."] #route:lover
~ lover += 1
~ viktor_relation = "provocation"
~ viktor_trust -= 1
~ viktor_suspicion += 1
For the first time, amusement almost reaches his mouth.
"A dangerous doctrine."
"A practical one."
"You intend to practice it at Hohenreith?"
"Only where patriotism requires sacrifice."
He looks down at the memorandum, but not quickly enough to conceal that he is reassessing you.
-> viktor_explains_orders
* ["If you wish me to pass as harmless, you must stop warning me like a gaoler."] #route:sapphic
~ sapphic += 1
~ viktor_relation = "tension"
~ viktor_suspicion += 1
His gaze sharpens.
"I am not your gaoler."
"No. A gaoler is at least honest about the key."
The words surprise you by leaving a mark. Not on him, perhaps. On yourself. The closer the train carries you to Amalia's world, though you do not yet know her face, the more intolerable it seems that every female life there might be guarded by men who call the guarding concern.
Viktor folds the memorandum once, precisely.
-> viktor_explains_orders
* ["Then let us be exact. What do they know, what do they suspect, and what am I permitted to verify?"] #route:detective
~ detective += 1
~ viktor_relation = "professional"
~ viktor_trust += 1
He gives the smallest nod, as if you have chosen the only answer fit for adults.
"They know that you come recommended. They suspect that you may be able to settle disturbances without police, priest, or press. You are permitted to verify fraud, coercion, threat to public order, or credible phenomena not presently classifiable."
"Credible phenomena not presently classifiable."
"That is the phrase."
"A bureaucratic ghost."
"The safest kind."
-> viktor_explains_orders
* ["I shall do my best not to faint unless it is useful."] #route:careless
~ careless += 1
~ viktor_relation = "dependence"
~ viktor_trust -= 1
Something in his expression tightens; not contempt exactly, but readiness.
"I would prefer you did not faint at all."
"How ungallant."
"How practical."
"Then you must be practical for both of us. I have never trusted the floor in strange houses."
His answer is delayed by half a breath.
"That, gnädiges Fräulein, is precisely what concerns me."
-> viktor_explains_orders
* ["Restraint is what timid people call obedience after they have forgotten who trained them."] #route:eccentric
~ eccentric += 1
~ viktor_relation = "challenge"
~ viktor_suspicion += 2
Viktor studies you as he might study an unfamiliar weapon found in luggage.
"You enjoy making enemies."
"No. I dislike the laziness of letting fools remain undecided."
"At Hohenreith, that dislike may become expensive."
"Then the Graf should have invited someone cheaper."
The wheels strike a curve. The compartment leans. For a moment the two of you are held in the same narrow imbalance.
-> viktor_explains_orders
=== viktor_explains_orders ===
Viktor gives you the memorandum at last.
The document is not long. That is part of its menace. Long documents invite argument; short ones carry authority.
A comital household. A hunting residence in Upper Styria, not the family's principal seat. Reports of disturbances among servants and villagers. No police action requested. No public ecclesiastical inquiry desired. No press. No correspondence beyond approved channels. Your presence to be explained as a discreet consultation requested by the family. Herr Nowak to assist in practical matters.
No one has written the word ghost.
No one has written the word fraud.
No one has written the word daughter.
Yet the omissions arrange themselves around the page like furniture around a corpse.
"There is another instruction," you say.
Viktor does not ask how you know.
"There is always another instruction," he says.
"For you."
"Yes."
"Concerning me?"
"Partly."
The train begins to slow. The rhythm changes first in the floor, then in the window, then in the body. Houses gather beside the line. A station roof appears between drifting smoke and the dark combs of forested slopes. #sfx[steam-whistle.ogg]
"Then I shall try to be worth the ink," you say.
"I sincerely hope so."
You cannot decide whether it is an insult, a prayer, or his first honest sentence.
-> railway_station
=== railway_station ===
The station is small enough that the train seems briefly embarrassed to stop there. #chapter[The Station] #image[muerzzuschlag.png](portrait)
A porter in a cap too large for him hurries along the platform. A woman with a basket steps back from the steam as if from an animal. Somewhere beyond the station building, a cart horse stamps at frozen mud. The signboard gives the place a name you have seen in the timetable but will not remember with affection.
Your luggage descends in stages: trunk, hatbox, smaller travelling case, dispatch case, folded rug, a narrow black case whose contents would embarrass both a priest and a conjurer if either searched it without imagination. Viktor oversees the transfer with clipped civility. He does not carry like a servant. He directs like a man pretending not to command.
The coach from Hohenreith waits beyond the station yard: dark green paint, black wheels, the comital crest discreetly worn on the door, and two horses already restless beneath harness. The driver removes his hat when he sees you. Not too deeply. Deep enough for rank, not deep enough for reverence. #sfx[horse-neigh.ogg]
"Gnädiges Fräulein? Herr Sekretär?"
{birth_class == "noble":
He has been told enough to place you. That is a courtesy. It is also a warning.
- else:
He hesitates over you by the smallest measure. The hesitation is not rudeness. It is calculation. First-class carriage, court letter, no title beyond Fräulein, and a man beside you who looks like he has arrested people for less than staring.
}
Viktor answers before you can.
"From Jagdhaus Hohenreith?"
"Jawohl, Herr Sekretär. The road is passable. If the mist holds, we should reach Eibenreith before dark."
The word enters the air without ceremony.
Eibenreith.
Not Hohenreith, the name printed on the invitation in a clean hand. Eibenreith: the village below it. A smaller name. Older in the mouth. A name with roots rather than stationery.
-> coach_journey
=== coach_journey ===
The coach leaves the station behind and with it the last easy evidence of empire. #chapter[The Graben] #music[Kaiserpunk Jodler.mp3](crossfade, loop, lead=4)
At first the road follows a valley where telegraph wire still keeps company with it and the river moves in a pale, stony bed. Sawmills, fenced meadows, and farmhouses appear and vanish behind stands of spruce. The mountains do not rise all at once. They advance by jurisdiction. A wooded slope claims the left-hand sky, then a grey wall of limestone closes the north, then another ridge gathers to the east until even the clouds seem to have entered service.
The driver names places when Viktor asks, but the names are local and practical, meant for men who know which bridge floods and which farm breeds stubborn horses. Somewhere beyond the visible ridges, he says, lies the great white back of the Hochschwab. Eastward, beyond forest and pass, the Hohe Veitsch keeps its own weather. He says this not as a guide would say it, but as a man explaining neighbours who may or may not be in a temper.
The main valley narrows.
The road turns from it into a side Graben, and the change is immediate. Sound alters. The wheels no longer ring against open distance but grind between banks, roots, and wet stone. The air smells of leaf mould, resin, and cold water. Yews appear among the firs in dark, improbable patience, their needles too black for the afternoon.
"Eibenreither Graben," the driver says, and crosses himself so quickly that the gesture might have been meant for a rut in the road.
Viktor notices. Of course he notices.
"Bad road?" he asks.
"Old road," the driver says.
No one speaks for a while.
You watch the trees.
There are forests that invite stories because they are pretty, and forests that reject stories because whatever happened there did not require witnesses. This one belongs to the second kind. Its trunks stand close, not wildly, but with the air of a crowd making room for something carried through it long ago. The snow that remains in hollows is not clean. It has gathered needles, bark, and a yellowish stain where water has risen underneath.
On a slope above the road, half swallowed by undergrowth, you glimpse stone.
A shrine, perhaps. A boundary marker. A figure. The coach has passed before your eyes can persuade themselves of its shape. For one instant you are left with the impression of a woman's head inclined not in prayer, but in listening. #image[statue.png](square)
{supernatural_senses == "genuine" or supernatural_senses == "ambiguous" or supernatural_senses == "repressed":
The back of your neck tightens.
Not fear. Recognition would be worse.
~ supernatural_exposure += 1
- else:
You tell yourself that old stone, seen through moving branches, will become whatever the mind is cowardly enough to supply.
}
Viktor has turned slightly toward the same slope.
"Did you see something?" he asks.
* ["A woman in the wood, perhaps. Or a stone that wanted to be one."] #route:eccentric #statue_hint
~ eccentric += 1
~ viktor_suspicion += 1
He studies the passing trees.
"A local shrine?"
"If it is a shrine, it has not been loved recently."
"You speak as if stones notice neglect."
"Do soldiers not?"
He does not answer.
-> coach_nears_village
* ["A marker. I would like to know where that path leads."] #route:detective #statue_hint
~ detective += 1
~ viktor_trust += 1
"You saw a path?"
"Not clearly. Enough to ask later."
Viktor looks back through the small rear window. The bend has already erased the slope.
"Ask carefully. Places people fail to mention are often more informative than those they recommend."
-> coach_nears_village
* ["Only trees. The sort that make one grateful for gentlemen with revolvers."] #route:careless
~ careless += 1
~ viktor_relation = "dependence"
His expression darkens by one official degree.
"A revolver is a poor instrument against trees."
"Then I shall rely on your conversation to intimidate them."
The driver pretends not to hear. His shoulders, however, hear everything.
-> coach_nears_village
* ["Would you believe me if I said I had?"] #route:lover
~ lover += 1
~ viktor_suspicion += 1
"That would depend on what advantage you expected from the answer."
"Herr Nowak. You wound me."
"Not yet."
It is the first thing he has said all day that almost sounds like flirtation, though perhaps only because danger has a talent for borrowing warmer clothes.
-> coach_nears_village
* ["No." ] #route:sapphic
~ sapphic += 1
The denial is too quick, and you both hear it.
You are not thinking of the stone now. You are thinking of the young woman waiting somewhere ahead: the Graf's daughter, the reason carefully not written into the memorandum, the stranger whose household has summoned you under a title both absurd and useful.
If this place keeps women in stone, you think, what does it do to them in houses?
-> coach_nears_village
=== coach_nears_village ===
The Graben opens reluctantly.
First comes the smell of smoke. Then a roof, low and dark with weather. Then another. Then a church tower, not high, not graceful, but thick-shouldered and pale against the slope behind it. Its walls look older than the village around them and less certain of victory. The windows are small. The churchyard wall holds the road at a distance, as if the dead require fortification from the living, or the living from something else. #chapter[Eibenreith Village] #sfx[church-bells.ogg](max=8, fade) #image[eibenreith.png](landscape)
Eibenreith appears not as a village in a picture appears, all at once and composed for admiration, but by fragments.
A woman in a dark kerchief pauses with a pail in her hand. A boy stops driving geese and lets them complain around his boots. Two men outside a shed end their conversation at the same moment without looking at each other. Curtains stir in windows where no one admits to standing. A blacksmith's sign moves slightly in air you cannot feel. Water runs somewhere under boards, under stone, under the road itself, quick and cold and hidden.
The houses are not poor, not exactly. Many are solid, whitewashed, shingled, kept with the stubborn decency of people who repair what they cannot replace. Yet something in their arrangement troubles the eye. They turn toward the church but not fully. They keep the road but lean from it. They leave, between yard and fence and woodpile, narrow passages where shadow gathers too early.
The coach slows.
No one runs to greet it.
No one needs to. News has already entered the village by means faster than railway, telegraph, or imperial seal.
You sit very straight as Eibenreith takes its first look at you.
Beside you, Viktor lowers his voice.
"Remember: at Hohenreith, every courtesy will mean something. Here, every silence will."
The horses draw the coach past the churchyard wall. Above it, on the old plaster beside the gate, a faded painted woman looks down from beneath a flaking blue mantle. Her hands are folded in prayer. Her eyes, damaged by weather, no longer point in the same direction.
For one breath, as the wheels pass over a buried runnel of water, the painted face seems less like the Holy Mother than like a mask put on something that had been waiting longer.
Then the coach enters the village proper, and the road bends toward the unseen height where Jagdhaus Hohenreith stands above Eibenreith under its newer name.
-> END
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+28 -26
View File
@@ -2,43 +2,45 @@ title: The Mysterious Mansion
author: AI Interactive Fiction
version: 1.0.0
introduction: |
::music[crossfade, loop, lead=10](Dark Jodler.mp3)
::chapter[The Mysterious Mansion]
#chapter[The Mysterious Mansion]
#music[Dark Jodler.mp3](lead=10)
The last thing you remember is the letter: heavy paper, black wax, your name written in a hand you almost recognized.
It asked you to come after dusk, alone, and promised that the house would answer what the sender could not.
Now you stand beyond the wrought iron gate, with rain cooling your face and the hill rising before you.
At its crest waits the old Victorian mansion, every dark window turned toward the path as if the building has been expecting you.
The gate gives under your hand with no protest, though its ironwork is wet enough to shine black.
Gravel shifts beneath your boots as you pass between the pillars, and the garden closes behind you with the soft finality of a curtain.
Halfway up the path, you stop and listen.
The rain has thinned to a whisper, but the house answers with other sounds: timber settling, gutters ticking, and something deep inside the walls that might be machinery or breath.
For a heartbeat you think the mansion is about to speak ... but only the wind moves through the ivy.
It drags the leaves across the brickwork in slow strokes, as if wiping dust from an old name.
# Room definitions
rooms:
Now you stand beyond the wrought iron gate, with rain cooling your face and the hill rising before you.
At its crest waits the old Victorian mansion, every dark window turned toward the path as if the building has been expecting you.
The gate gives under your hand with no protest, though its ironwork is wet enough to shine black.
Gravel shifts beneath your boots as you pass between the pillars, and the garden closes behind you with the soft finality of a curtain.
Halfway up the path, you stop and listen.
The rain has thinned to a whisper, but the house answers with other sounds: timber settling, gutters ticking, and something deep inside the walls that might be machinery or breath.
For a heartbeat you think the mansion is about to speak ... but only the wind moves through the ivy.
It drags the leaves across the brickwork in slow strokes, as if wiping dust from an old name.
# Room definitions
rooms:
# Starting area
front_yard:
name: Front Yard
description: |
You follow the gravel path up the hill.
The rain softens to a drizzle, and moonlight peeks through gaps in the clouds.
Ancient oak trees frame the property, their branches swaying in the gentle breeze.
At the top of three worn stone steps, the mansion's front door waits under a sagging porch roof.
The porch boards are swollen with rain, each one bending under your weight before it remembers its shape.
A brass knocker hangs at eye level, polished bright at the edges where countless hands have touched it and left no warmth behind.
The letter in your pocket presses against your ribs.
You remember the last line now: come before the clocks learn your name.
Somewhere above you, behind a blind upper window, a pale shape passes from left to right and is gone.
You tell yourself it was a reflection, then look back at the path and find no light behind you bright enough to make one.
The house waits.
When you reach for the handle, it turns before your fingers touch it, and the door opens {{sfx:squeaky-door.ogg}} with a long, complaining squeak.
Ancient oak trees frame the property, their branches swaying in the gentle breeze.
At the top of three worn stone steps, the mansion's front door waits under a sagging porch roof.
The porch boards are swollen with rain, each one bending under your weight before it remembers its shape.
A brass knocker hangs at eye level, polished bright at the edges where countless hands have touched it and left no warmth behind.
The letter in your pocket presses against your ribs.
You remember the last line now: come before the clocks learn your name.
Somewhere above you, behind a blind upper window, a pale shape passes from left to right and is gone.
You tell yourself it was a reflection, then look back at the path and find no light behind you bright enough to make one.
The house waits.
#sfx[squeaky-door.ogg]
When you reach for the handle, it turns before your fingers touch it, and the door opens with a long, complaining squeak.
exits:
- direction: north
targetRoomId: entrance_hall