1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
export interface Palette {
name: string;
descriptor: string;
top: string;
bottom: string;
grid: string;
primary: string;
accent: string;
warm: string;
ghost: string;
signal: string;
}
export interface LayerDescriptor {
name: string;
caption: string;
motif: 'core' | 'roots' | 'surface' | 'aqueduct' | 'towers' | 'clouds' | 'orbital';
}
export const CYCLE_HEIGHT = 900;
export const WORLD_WIDTH = 18;
export const LAYERS: LayerDescriptor[] = [
{
name: 'Planetary Core',
caption: 'Magnetic furnaces hum below the city. Infrastructure begins as pressure.',
motif: 'core'
},
{
name: 'Mycelial Switchyard',
caption: 'Roots and fungal circuits share memory through living cable bundles.',
motif: 'roots'
},
{
name: 'Surface Arteries',
caption: 'Aqueduct rails, markets, and dense habitation recycle heat into movement.',
motif: 'surface'
},
{
name: 'Analog Canals',
caption: 'Fluid logic, wheels, and pressure gates store power in visible machinery.',
motif: 'aqueduct'
},
{
name: 'Tower Choir',
caption: 'Needle towers process weather, finance, and rumor in stacked districts.',
motif: 'towers'
},
{
name: 'Cloud Mesh',
caption: 'Platforms thin into luminous rafts and relay gardens above the weather.',
motif: 'clouds'
},
{
name: 'Orbital Threshold',
caption: 'Geometry strips itself down to signal, velocity, and intention.',
motif: 'orbital'
}
];
export const PALETTES: Palette[] = [
{
name: 'Neon Furnace',
descriptor: 'dense, humid, electric',
top: '#140b26',
bottom: '#04070f',
grid: '#1f4d5f',
primary: '#71faff',
accent: '#fd4fd0',
warm: '#ff9f43',
ghost: '#d8f8ff',
signal: '#a78bfa'
},
{
name: 'Biolume Relay',
descriptor: 'organic, damp, networked',
top: '#0f1d17',
bottom: '#04070d',
grid: '#205a4f',
primary: '#70ffbf',
accent: '#8de95f',
warm: '#f4d35e',
ghost: '#d4ffe8',
signal: '#64d2ff'
},
{
name: 'Ceramic Dawn',
descriptor: 'clean, bright, infrastructural',
top: '#1c2448',
bottom: '#080b13',
grid: '#315f8e',
primary: '#98c8ff',
accent: '#ff6aa2',
warm: '#ffd166',
ghost: '#f4faff',
signal: '#8cf1ff'
},
{
name: 'Voltage Bloom',
descriptor: 'vibrant, ceremonial, airborne',
top: '#221140',
bottom: '#05070c',
grid: '#483f9b',
primary: '#b8a7ff',
accent: '#ff7b72',
warm: '#ffe066',
ghost: '#ece9ff',
signal: '#6ef3ff'
}
];
export const THOUGHT_LINES = [
'If the world gets simpler as you rise, what exactly are you learning to ignore?',
'The city stores memory in pipes, fungus, glass, and habits. Which medium trusts you most?',
'Ghosts are not dead players. They are adjacent decisions still visible from here.',
'Progress can mean refinement, abstraction, or amputation. Which one are you performing?',
'A platform is a temporary agreement between gravity and intention.',
'Every layer calls itself the real city. Each one merely found a different compression.',
'Information wants a body. Bodies want a future. Cities negotiate between the two.',
'Ascending is easy to narrate and hard to define. Are you escaping or integrating?',
'The brighter the signal, the easier it is to mistake compression for truth.',
'Shared ghosts make failure public and persistence communal.'
] as const;
|