heyiam 0.2.29 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/README.md +45 -0
  2. package/dist/config.js +10 -1
  3. package/dist/db.js +1 -2
  4. package/dist/export.js +40 -25
  5. package/dist/format-utils.js +5 -0
  6. package/dist/index.js +168 -0
  7. package/dist/mount.js +300 -102
  8. package/dist/parsers/claude.js +2 -28
  9. package/dist/parsers/codex.js +2 -26
  10. package/dist/parsers/cursor.js +2 -26
  11. package/dist/parsers/duration.js +35 -0
  12. package/dist/parsers/gemini.js +2 -20
  13. package/dist/parsers/types.js +0 -1
  14. package/dist/public/assets/index-BZ65TU_Y.js +40 -0
  15. package/dist/public/assets/index-CqCaW2cb.css +1 -0
  16. package/dist/public/index.html +2 -2
  17. package/dist/redact.js +4 -104
  18. package/dist/render/build-render-data.js +9 -2
  19. package/dist/render/index.js +32 -5
  20. package/dist/render/liquid.js +147 -7
  21. package/dist/render/mock-data.js +303 -0
  22. package/dist/render/templates/aurora/portfolio.liquid +204 -0
  23. package/dist/render/templates/aurora/project.liquid +260 -0
  24. package/dist/render/templates/aurora/session.liquid +223 -0
  25. package/dist/render/templates/aurora/styles.css +1178 -0
  26. package/dist/render/templates/bauhaus/portfolio.liquid +179 -0
  27. package/dist/render/templates/bauhaus/project.liquid +300 -0
  28. package/dist/render/templates/bauhaus/session.liquid +333 -0
  29. package/dist/render/templates/bauhaus/styles.css +1641 -0
  30. package/dist/render/templates/blueprint/portfolio.liquid +167 -0
  31. package/dist/render/templates/blueprint/project.liquid +286 -0
  32. package/dist/render/templates/blueprint/session.liquid +248 -0
  33. package/dist/render/templates/blueprint/styles.css +1285 -0
  34. package/dist/render/templates/canvas/portfolio.liquid +215 -0
  35. package/dist/render/templates/canvas/project.liquid +235 -0
  36. package/dist/render/templates/canvas/session.liquid +223 -0
  37. package/dist/render/templates/canvas/styles.css +1436 -0
  38. package/dist/render/templates/carbon/portfolio.liquid +170 -0
  39. package/dist/render/templates/carbon/project.liquid +249 -0
  40. package/dist/render/templates/carbon/session.liquid +190 -0
  41. package/dist/render/templates/carbon/styles.css +1091 -0
  42. package/dist/render/templates/chalk/portfolio.liquid +199 -0
  43. package/dist/render/templates/chalk/project.liquid +245 -0
  44. package/dist/render/templates/chalk/session.liquid +215 -0
  45. package/dist/render/templates/chalk/styles.css +1157 -0
  46. package/dist/render/templates/circuit/portfolio.liquid +162 -0
  47. package/dist/render/templates/circuit/project.liquid +247 -0
  48. package/dist/render/templates/circuit/session.liquid +205 -0
  49. package/dist/render/templates/circuit/styles.css +1403 -0
  50. package/dist/render/templates/cosmos/portfolio.liquid +232 -0
  51. package/dist/render/templates/cosmos/project.liquid +327 -0
  52. package/dist/render/templates/cosmos/session.liquid +239 -0
  53. package/dist/render/templates/cosmos/styles.css +1151 -0
  54. package/dist/render/templates/daylight/portfolio.liquid +217 -0
  55. package/dist/render/templates/daylight/project.liquid +229 -0
  56. package/dist/render/templates/daylight/session.liquid +219 -0
  57. package/dist/render/templates/daylight/styles.css +1311 -0
  58. package/dist/render/templates/editorial/portfolio.liquid +126 -0
  59. package/dist/render/templates/editorial/project.liquid +202 -0
  60. package/dist/render/templates/editorial/session.liquid +171 -0
  61. package/dist/render/templates/editorial/styles.css +822 -0
  62. package/dist/render/templates/ember/portfolio.liquid +318 -0
  63. package/dist/render/templates/ember/project.liquid +232 -0
  64. package/dist/render/templates/ember/session.liquid +202 -0
  65. package/dist/render/templates/ember/styles.css +1283 -0
  66. package/dist/render/templates/glacier/portfolio.liquid +271 -0
  67. package/dist/render/templates/glacier/project.liquid +288 -0
  68. package/dist/render/templates/glacier/session.liquid +217 -0
  69. package/dist/render/templates/glacier/styles.css +1200 -0
  70. package/dist/render/templates/grid/portfolio.liquid +265 -0
  71. package/dist/render/templates/grid/project.liquid +306 -0
  72. package/dist/render/templates/grid/session.liquid +260 -0
  73. package/dist/render/templates/grid/styles.css +1441 -0
  74. package/dist/render/templates/kinetic/portfolio.liquid +170 -0
  75. package/dist/render/templates/kinetic/project.liquid +242 -0
  76. package/dist/render/templates/kinetic/session.liquid +228 -0
  77. package/dist/render/templates/kinetic/styles.css +944 -0
  78. package/dist/render/templates/meridian/portfolio.liquid +255 -0
  79. package/dist/render/templates/meridian/project.liquid +376 -0
  80. package/dist/render/templates/meridian/session.liquid +298 -0
  81. package/dist/render/templates/meridian/styles.css +1369 -0
  82. package/dist/render/templates/minimal/portfolio.liquid +71 -0
  83. package/dist/render/templates/minimal/project.liquid +154 -0
  84. package/dist/render/templates/minimal/session.liquid +140 -0
  85. package/dist/render/templates/minimal/styles.css +525 -0
  86. package/dist/render/templates/mono/portfolio.liquid +291 -0
  87. package/dist/render/templates/mono/project.liquid +275 -0
  88. package/dist/render/templates/mono/session.liquid +276 -0
  89. package/dist/render/templates/mono/styles.css +1016 -0
  90. package/dist/render/templates/neon/portfolio.liquid +217 -0
  91. package/dist/render/templates/neon/project.liquid +225 -0
  92. package/dist/render/templates/neon/session.liquid +195 -0
  93. package/dist/render/templates/neon/styles.css +1265 -0
  94. package/dist/render/templates/noir/portfolio.liquid +137 -0
  95. package/dist/render/templates/noir/project.liquid +220 -0
  96. package/dist/render/templates/noir/session.liquid +241 -0
  97. package/dist/render/templates/noir/styles.css +1223 -0
  98. package/dist/render/templates/obsidian/portfolio.liquid +257 -0
  99. package/dist/render/templates/obsidian/project.liquid +280 -0
  100. package/dist/render/templates/obsidian/session.liquid +241 -0
  101. package/dist/render/templates/obsidian/styles.css +1401 -0
  102. package/dist/render/templates/paper/portfolio.liquid +267 -0
  103. package/dist/render/templates/paper/project.liquid +235 -0
  104. package/dist/render/templates/paper/session.liquid +271 -0
  105. package/dist/render/templates/paper/styles.css +1509 -0
  106. package/dist/render/templates/parallax/portfolio.liquid +305 -0
  107. package/dist/render/templates/parallax/project.liquid +275 -0
  108. package/dist/render/templates/parallax/session.liquid +295 -0
  109. package/dist/render/templates/parallax/styles.css +1874 -0
  110. package/dist/render/templates/parchment/portfolio.liquid +290 -0
  111. package/dist/render/templates/parchment/project.liquid +289 -0
  112. package/dist/render/templates/parchment/session.liquid +346 -0
  113. package/dist/render/templates/parchment/styles.css +1397 -0
  114. package/dist/render/templates/partials/_beats.liquid +16 -0
  115. package/dist/render/templates/partials/_breadcrumb.liquid +9 -0
  116. package/dist/render/templates/partials/_footer.liquid +7 -0
  117. package/dist/render/templates/partials/_growth-chart.liquid +7 -0
  118. package/dist/render/templates/partials/_key-decisions.liquid +20 -0
  119. package/dist/render/templates/partials/_links.liquid +16 -0
  120. package/dist/render/templates/partials/_narrative.liquid +8 -0
  121. package/dist/render/templates/partials/_phases.liquid +20 -0
  122. package/dist/render/templates/partials/_portfolio-header.liquid +20 -0
  123. package/dist/render/templates/partials/_portfolio-projects.liquid +16 -0
  124. package/dist/render/templates/partials/_portfolio-stats.liquid +19 -0
  125. package/dist/render/templates/partials/_qa.liquid +13 -0
  126. package/dist/render/templates/partials/_screenshot.liquid +15 -0
  127. package/dist/render/templates/partials/_session-cards.liquid +30 -0
  128. package/dist/render/templates/partials/_session-header.liquid +39 -0
  129. package/dist/render/templates/partials/_session-sidebar.liquid +30 -0
  130. package/dist/render/templates/partials/_skills.liquid +12 -0
  131. package/dist/render/templates/partials/_source-breakdown.liquid +22 -0
  132. package/dist/render/templates/partials/_stats.liquid +38 -0
  133. package/dist/render/templates/partials/_work-timeline.liquid +7 -0
  134. package/dist/render/templates/project.liquid +7 -4
  135. package/dist/render/templates/radar/portfolio.liquid +233 -0
  136. package/dist/render/templates/radar/project.liquid +278 -0
  137. package/dist/render/templates/radar/session.liquid +300 -0
  138. package/dist/render/templates/radar/styles.css +1049 -0
  139. package/dist/render/templates/showcase/portfolio.liquid +231 -0
  140. package/dist/render/templates/showcase/project.liquid +237 -0
  141. package/dist/render/templates/showcase/session.liquid +210 -0
  142. package/dist/render/templates/showcase/styles.css +1279 -0
  143. package/dist/render/templates/signal/portfolio.liquid +227 -0
  144. package/dist/render/templates/signal/project.liquid +278 -0
  145. package/dist/render/templates/signal/session.liquid +282 -0
  146. package/dist/render/templates/signal/styles.css +1395 -0
  147. package/dist/render/templates/strata/portfolio.liquid +192 -0
  148. package/dist/render/templates/strata/project.liquid +282 -0
  149. package/dist/render/templates/strata/session.liquid +261 -0
  150. package/dist/render/templates/strata/styles.css +1350 -0
  151. package/dist/render/templates/styles.css +1190 -0
  152. package/dist/render/templates/terminal/portfolio.liquid +118 -0
  153. package/dist/render/templates/terminal/project.liquid +161 -0
  154. package/dist/render/templates/terminal/session.liquid +145 -0
  155. package/dist/render/templates/terminal/styles.css +492 -0
  156. package/dist/render/templates/verdant/portfolio.liquid +333 -0
  157. package/dist/render/templates/verdant/project.liquid +309 -0
  158. package/dist/render/templates/verdant/session.liquid +237 -0
  159. package/dist/render/templates/verdant/styles.css +1257 -0
  160. package/dist/render/templates/zen/portfolio.liquid +136 -0
  161. package/dist/render/templates/zen/project.liquid +187 -0
  162. package/dist/render/templates/zen/session.liquid +203 -0
  163. package/dist/render/templates/zen/styles.css +1207 -0
  164. package/dist/render/templates.js +90 -0
  165. package/dist/routes/context.js +15 -10
  166. package/dist/routes/enhance.js +17 -40
  167. package/dist/routes/export.js +14 -4
  168. package/dist/routes/preview.js +480 -108
  169. package/dist/routes/projects.js +11 -19
  170. package/dist/routes/publish.js +15 -17
  171. package/dist/routes/settings.js +94 -1
  172. package/dist/routes/sse.js +9 -0
  173. package/dist/server.js +8 -2
  174. package/dist/settings.js +17 -9
  175. package/package.json +2 -4
  176. package/dist/public/assets/index-CC9G8EF1.js +0 -21
  177. package/dist/public/assets/index-Dalqz2mC.css +0 -1
@@ -0,0 +1,1369 @@
1
+ /* ── Meridian template styles ──
2
+ * Extracted from mockup HTML files.
3
+ * Dark emerald theme with topographic contour background.
4
+ * Fonts: Space Grotesk (display), Inter (body), IBM Plex Mono (mono).
5
+ */
6
+
7
+ /* ── Meridian Design Tokens ── */
8
+ .meridian {
9
+ --mer-bg: #022c22;
10
+ --mer-surface: #064e3b;
11
+ --mer-card: #053f30;
12
+ --mer-border: #0d7357;
13
+ --mer-border-subtle: #065f46;
14
+ --mer-text: #d1fae5;
15
+ --mer-text-secondary: #a7f3d0;
16
+ --mer-text-muted: #6ee7b7;
17
+ --mer-accent: #34d399;
18
+ --mer-accent-dim: rgba(52, 211, 153, 0.15);
19
+ --mer-white: #ecfdf5;
20
+ --mer-contour: rgba(52, 211, 153, 0.06);
21
+ --mer-contour-strong: rgba(52, 211, 153, 0.1);
22
+
23
+ --font-display: 'Space Grotesk', sans-serif;
24
+ --font-body: 'Inter', sans-serif;
25
+ --font-mono: 'IBM Plex Mono', monospace;
26
+
27
+ --radius-sm: 4px;
28
+ --radius: 8px;
29
+
30
+ /* Agent colors */
31
+ --agent-frontend: #7c3aed;
32
+ --agent-backend: #0891b2;
33
+ --agent-qa: #059669;
34
+ --agent-security: #475569;
35
+ --agent-reviewer: #e11d48;
36
+ --agent-ux: #d97706;
37
+
38
+ background: var(--mer-bg);
39
+ color: var(--mer-text);
40
+ font-family: var(--font-body);
41
+ line-height: 1.6;
42
+ -webkit-font-smoothing: antialiased;
43
+ -moz-osx-font-smoothing: grayscale;
44
+ position: relative;
45
+ overflow-x: hidden;
46
+ }
47
+
48
+ .meridian a { color: var(--mer-accent); text-decoration: none; }
49
+ .meridian a:visited { color: var(--mer-accent); }
50
+ .meridian a:hover { text-decoration: underline; }
51
+
52
+ /* ── Topographic Contour Background ── */
53
+ .meridian .topo-bg {
54
+ position: fixed;
55
+ inset: 0;
56
+ z-index: 0;
57
+ pointer-events: none;
58
+ overflow: hidden;
59
+ }
60
+
61
+ .meridian .topo-bg svg {
62
+ width: 100%;
63
+ height: 100%;
64
+ opacity: 1;
65
+ }
66
+
67
+ .meridian .topo-contours {
68
+ animation: mer-topo-drift 30s ease-in-out infinite alternate;
69
+ }
70
+
71
+ @keyframes mer-topo-drift {
72
+ 0% { transform: translate(0, 0) scale(1); }
73
+ 50% { transform: translate(-12px, 8px) scale(1.02); }
74
+ 100% { transform: translate(6px, -6px) scale(0.99); }
75
+ }
76
+
77
+ @media (prefers-reduced-motion: reduce) {
78
+ .meridian .topo-contours { animation: none; }
79
+ .meridian .section-reveal { opacity: 1 !important; transform: none !important; }
80
+ .meridian .stat-counter { animation: none !important; }
81
+ .meridian .route-waypoint { animation: none !important; }
82
+ .meridian .beat-marker { animation: none !important; }
83
+ .meridian .elevation-path { animation: none !important; }
84
+ .meridian .agent-bar-row__fill { transition: none; }
85
+ }
86
+
87
+ /* ── Skip Link ── */
88
+ .meridian .skip-link {
89
+ position: absolute;
90
+ top: -100%;
91
+ left: 1rem;
92
+ background: var(--mer-accent);
93
+ color: var(--mer-bg);
94
+ padding: 0.5rem 1rem;
95
+ z-index: 1000;
96
+ font-family: var(--font-mono);
97
+ font-size: 0.875rem;
98
+ border-radius: var(--radius-sm);
99
+ }
100
+ .meridian .skip-link:focus {
101
+ top: 1rem;
102
+ color: var(--mer-bg);
103
+ text-decoration: none;
104
+ }
105
+
106
+ /* ── Page Shell ── */
107
+ .meridian .mer-page {
108
+ position: relative;
109
+ z-index: 1;
110
+ max-width: 940px;
111
+ margin: 0 auto;
112
+ padding: 2rem 1.5rem;
113
+ }
114
+
115
+ /* ── Section Headers (coordinate style) ── */
116
+ .meridian .section-label {
117
+ font-family: var(--font-mono);
118
+ font-size: 0.75rem;
119
+ color: var(--mer-text-muted);
120
+ letter-spacing: 0.08em;
121
+ text-transform: uppercase;
122
+ margin-block-end: 0.5rem;
123
+ display: flex;
124
+ align-items: center;
125
+ gap: 0.75rem;
126
+ }
127
+
128
+ .meridian .section-label::after {
129
+ content: '';
130
+ flex: 1;
131
+ height: 1px;
132
+ background: var(--mer-border-subtle);
133
+ }
134
+
135
+ .meridian .section-heading {
136
+ font-family: var(--font-display);
137
+ font-weight: 700;
138
+ font-size: 1.5rem;
139
+ color: var(--mer-white);
140
+ margin-block-end: 1.25rem;
141
+ line-height: 1.2;
142
+ }
143
+
144
+ /* ── Section Fade-In ── */
145
+ .meridian .section-reveal {
146
+ opacity: 0;
147
+ transform: translateY(16px);
148
+ transition: opacity 0.6s ease, transform 0.6s ease;
149
+ }
150
+
151
+ .meridian .section-reveal.visible {
152
+ opacity: 1;
153
+ transform: translateY(0);
154
+ }
155
+
156
+ /* ── Hero (portfolio) ── */
157
+ .meridian .hero {
158
+ margin-block-end: 4rem;
159
+ padding-block: 2rem 0;
160
+ }
161
+
162
+ .meridian .hero__profile {
163
+ display: flex;
164
+ gap: 2rem;
165
+ align-items: flex-start;
166
+ }
167
+
168
+ .meridian .hero__photo {
169
+ width: 120px;
170
+ height: 150px;
171
+ border-radius: var(--radius);
172
+ object-fit: cover;
173
+ object-position: 55% 10%;
174
+ border: 2px solid var(--mer-accent);
175
+ box-shadow: 0 0 24px var(--mer-accent-dim);
176
+ flex-shrink: 0;
177
+ filter: grayscale(0.2);
178
+ }
179
+
180
+ .meridian .hero__info {
181
+ flex: 1;
182
+ min-width: 0;
183
+ }
184
+
185
+ .meridian .hero__name {
186
+ font-family: var(--font-display);
187
+ font-weight: 700;
188
+ font-size: 2.75rem;
189
+ color: var(--mer-white);
190
+ line-height: 1.1;
191
+ margin-block-end: 0.25rem;
192
+ }
193
+
194
+ .meridian .hero__handle {
195
+ font-family: var(--font-mono);
196
+ font-size: 1rem;
197
+ color: var(--mer-accent);
198
+ margin-block-end: 1rem;
199
+ }
200
+
201
+ .meridian .hero__bio {
202
+ font-size: 1.0625rem;
203
+ color: var(--mer-text-secondary);
204
+ max-width: 600px;
205
+ line-height: 1.65;
206
+ margin-block-end: 1rem;
207
+ }
208
+
209
+ .meridian .hero__location {
210
+ font-family: var(--font-mono);
211
+ font-size: 0.8125rem;
212
+ color: var(--mer-text-muted);
213
+ display: flex;
214
+ align-items: center;
215
+ gap: 0.375rem;
216
+ }
217
+
218
+ .meridian .hero__location svg {
219
+ width: 14px;
220
+ height: 14px;
221
+ fill: none;
222
+ stroke: var(--mer-text-muted);
223
+ stroke-width: 2;
224
+ }
225
+
226
+ .meridian .hero__contact {
227
+ display: flex;
228
+ flex-wrap: wrap;
229
+ gap: 0.75rem;
230
+ margin-block-start: 1rem;
231
+ list-style: none;
232
+ }
233
+
234
+ .meridian .hero__contact a {
235
+ display: inline-flex;
236
+ align-items: center;
237
+ gap: 0.375rem;
238
+ font-family: var(--font-mono);
239
+ font-size: 0.8125rem;
240
+ color: var(--mer-text-muted);
241
+ transition: color 0.2s;
242
+ }
243
+
244
+ .meridian .hero__contact a:hover {
245
+ color: var(--mer-accent);
246
+ text-decoration: none;
247
+ }
248
+
249
+ .meridian .hero__contact svg {
250
+ flex-shrink: 0;
251
+ }
252
+
253
+ .meridian .hero__resume-btn {
254
+ display: inline-flex;
255
+ align-items: center;
256
+ gap: 0.375rem;
257
+ margin-block-start: 1rem;
258
+ padding: 0.5rem 1rem;
259
+ font-family: var(--font-mono);
260
+ font-size: 0.8125rem;
261
+ color: var(--mer-bg);
262
+ background: var(--mer-accent);
263
+ border: none;
264
+ border-radius: var(--radius-sm);
265
+ cursor: pointer;
266
+ text-decoration: none;
267
+ transition: opacity 0.2s;
268
+ }
269
+
270
+ .meridian .hero__resume-btn:hover {
271
+ opacity: 0.85;
272
+ text-decoration: none;
273
+ color: var(--mer-bg);
274
+ }
275
+
276
+ /* ── Stats Grid (portfolio) ── */
277
+ .meridian .stats-grid {
278
+ display: grid;
279
+ grid-template-columns: repeat(4, 1fr);
280
+ gap: 1rem;
281
+ margin-block-end: 4rem;
282
+ padding: 1.5rem;
283
+ background: var(--mer-surface);
284
+ border: 1px solid var(--mer-border-subtle);
285
+ border-radius: var(--radius);
286
+ }
287
+
288
+ /* ── Stats Row (project) ── */
289
+ .meridian .stats-row {
290
+ display: grid;
291
+ grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
292
+ gap: 0.75rem;
293
+ margin-block-end: 3rem;
294
+ padding: 1.25rem;
295
+ background: var(--mer-surface);
296
+ border: 1px solid var(--mer-border-subtle);
297
+ border-radius: var(--radius);
298
+ }
299
+
300
+ /* ── Session Stats (compact) ── */
301
+ .meridian .session-stats {
302
+ display: grid;
303
+ grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
304
+ gap: 0.75rem;
305
+ margin-block-end: 3rem;
306
+ padding: 1rem 1.25rem;
307
+ background: var(--mer-surface);
308
+ border: 1px solid var(--mer-border-subtle);
309
+ border-radius: var(--radius);
310
+ }
311
+
312
+ .meridian .session-stats .stat-cell__coord {
313
+ margin-block-end: 0.125rem;
314
+ }
315
+
316
+ .meridian .session-stats .stat-cell__value {
317
+ font-size: 1.25rem;
318
+ }
319
+
320
+ .meridian .session-stats .stat-cell__label {
321
+ font-size: 0.6875rem;
322
+ }
323
+
324
+ /* ── Stat Cell (shared) ── */
325
+ .meridian .stat-cell {
326
+ text-align: center;
327
+ }
328
+
329
+ .meridian .stat-cell__coord {
330
+ font-family: var(--font-mono);
331
+ font-size: 0.6875rem;
332
+ color: var(--mer-text-muted);
333
+ letter-spacing: 0.08em;
334
+ text-transform: uppercase;
335
+ margin-block-end: 0.25rem;
336
+ }
337
+
338
+ .meridian .stat-cell__value {
339
+ font-family: var(--font-mono);
340
+ font-weight: 600;
341
+ font-size: 1.375rem;
342
+ color: var(--mer-accent);
343
+ }
344
+
345
+ .meridian .stat-cell__label {
346
+ font-family: var(--font-body);
347
+ font-size: 0.75rem;
348
+ color: var(--mer-text-secondary);
349
+ }
350
+
351
+ /* Counter animation */
352
+ @keyframes mer-stat-glow {
353
+ 0% { opacity: 0; transform: translateY(6px); }
354
+ 100% { opacity: 1; transform: translateY(0); }
355
+ }
356
+
357
+ .meridian .stat-counter {
358
+ animation: mer-stat-glow 0.8s ease forwards;
359
+ }
360
+
361
+ .meridian .stat-counter:nth-child(2) { animation-delay: 0.1s; }
362
+ .meridian .stat-counter:nth-child(3) { animation-delay: 0.2s; }
363
+ .meridian .stat-counter:nth-child(4) { animation-delay: 0.3s; }
364
+
365
+ /* ── Leverage ── */
366
+ .meridian .stat-cell--leverage {
367
+ grid-column: span 2;
368
+ }
369
+ .meridian .stat-cell--leverage .stat-cell__coord {
370
+ margin-bottom: 0.5rem;
371
+ }
372
+ .meridian .mer-leverage-nums {
373
+ display: flex;
374
+ align-items: baseline;
375
+ justify-content: center;
376
+ gap: 0.75rem;
377
+ margin-bottom: 0.5rem;
378
+ }
379
+ .meridian .mer-leverage-nums .mlev-val {
380
+ font-family: var(--font-mono);
381
+ font-weight: 600;
382
+ font-size: 1.375rem;
383
+ color: var(--mer-text);
384
+ }
385
+ .meridian .mer-leverage-nums .mlev-val--agent,
386
+ .meridian .mer-leverage-nums .mlev-val--multi {
387
+ color: var(--mer-accent);
388
+ }
389
+ .meridian .mer-leverage-nums .mlev-lbl {
390
+ font-family: var(--font-body);
391
+ font-size: 0.6875rem;
392
+ color: var(--mer-text-muted);
393
+ text-transform: uppercase;
394
+ letter-spacing: 0.05em;
395
+ }
396
+ .meridian .mer-leverage-bar {
397
+ height: 4px;
398
+ border-radius: 2px;
399
+ background: var(--mer-border-subtle);
400
+ display: flex;
401
+ overflow: hidden;
402
+ }
403
+ .meridian .mer-leverage-bar__human {
404
+ height: 100%;
405
+ background: rgba(0,0,0,0.15);
406
+ border-radius: 2px 0 0 2px;
407
+ }
408
+ .meridian .mer-leverage-bar__agent {
409
+ height: 100%;
410
+ background: var(--mer-accent);
411
+ border-radius: 0 2px 2px 0;
412
+ }
413
+
414
+ /* ── Breadcrumb ── */
415
+ .meridian .breadcrumb {
416
+ font-family: var(--font-mono);
417
+ font-size: 0.8125rem;
418
+ color: var(--mer-text-muted);
419
+ margin-block-end: 1.5rem;
420
+ }
421
+
422
+ .meridian .breadcrumb a { color: var(--mer-text-muted); }
423
+ .meridian .breadcrumb a:visited { color: var(--mer-text-muted); }
424
+ .meridian .breadcrumb a:hover { color: var(--mer-accent); }
425
+ .meridian .breadcrumb__sep { margin-inline: 0.375rem; opacity: 0.4; }
426
+
427
+ /* ── Project Hero ── */
428
+ .meridian .project-hero {
429
+ margin-block-end: 3rem;
430
+ }
431
+
432
+ .meridian .project-hero__title {
433
+ font-family: var(--font-display);
434
+ font-weight: 700;
435
+ font-size: 2.25rem;
436
+ color: var(--mer-white);
437
+ line-height: 1.1;
438
+ margin-block-end: 0.75rem;
439
+ }
440
+
441
+ .meridian .project-hero__links {
442
+ display: flex;
443
+ gap: 1.25rem;
444
+ font-family: var(--font-mono);
445
+ font-size: 0.8125rem;
446
+ margin-block-end: 1.5rem;
447
+ }
448
+
449
+ .meridian .project-hero__links a {
450
+ display: flex;
451
+ align-items: center;
452
+ gap: 0.375rem;
453
+ }
454
+
455
+ .meridian .project-hero__links svg {
456
+ width: 14px;
457
+ height: 14px;
458
+ stroke: var(--mer-accent);
459
+ fill: none;
460
+ stroke-width: 2;
461
+ }
462
+
463
+ /* ── Screenshot ── */
464
+ .meridian .screenshot {
465
+ background: var(--mer-surface);
466
+ border: 1px solid var(--mer-border-subtle);
467
+ border-radius: var(--radius);
468
+ overflow: hidden;
469
+ margin-block-end: 3rem;
470
+ }
471
+
472
+ .meridian .screenshot__chrome {
473
+ background: var(--mer-card);
474
+ padding: 0.625rem 1rem;
475
+ display: flex;
476
+ align-items: center;
477
+ gap: 0.5rem;
478
+ border-bottom: 1px solid var(--mer-border-subtle);
479
+ }
480
+
481
+ .meridian .screenshot__dot {
482
+ width: 10px;
483
+ height: 10px;
484
+ border-radius: 50%;
485
+ background: var(--mer-border);
486
+ }
487
+
488
+ .meridian .screenshot__url {
489
+ font-family: var(--font-mono);
490
+ font-size: 0.75rem;
491
+ color: var(--mer-text-muted);
492
+ margin-inline-start: 0.5rem;
493
+ }
494
+
495
+ .meridian .screenshot__body {
496
+ height: 240px;
497
+ background: linear-gradient(135deg, var(--mer-surface), var(--mer-card));
498
+ display: flex;
499
+ align-items: center;
500
+ justify-content: center;
501
+ }
502
+
503
+ .meridian .screenshot__placeholder {
504
+ font-family: var(--font-mono);
505
+ font-size: 0.875rem;
506
+ color: var(--mer-text-muted);
507
+ opacity: 0.5;
508
+ }
509
+
510
+ /* ── Project Cards (portfolio) ── */
511
+ .meridian .projects-section {
512
+ margin-block-end: 4rem;
513
+ }
514
+
515
+ .meridian .project-card {
516
+ background: var(--mer-surface);
517
+ border: 1px solid var(--mer-border-subtle);
518
+ border-radius: var(--radius);
519
+ padding: 1.75rem;
520
+ margin-block-end: 1.25rem;
521
+ transition: border-color 0.2s;
522
+ position: relative;
523
+ overflow: hidden;
524
+ }
525
+
526
+ .meridian .project-card::before {
527
+ content: '';
528
+ position: absolute;
529
+ top: 0;
530
+ left: 0;
531
+ width: 3px;
532
+ height: 100%;
533
+ background: var(--mer-accent);
534
+ border-radius: var(--radius-sm) 0 0 var(--radius-sm);
535
+ }
536
+
537
+ .meridian .project-card:hover {
538
+ border-color: var(--mer-accent);
539
+ }
540
+
541
+ .meridian .project-card__header {
542
+ display: flex;
543
+ align-items: flex-start;
544
+ justify-content: space-between;
545
+ gap: 1rem;
546
+ margin-block-end: 0.75rem;
547
+ }
548
+
549
+ .meridian .project-card__title {
550
+ font-family: var(--font-display);
551
+ font-weight: 600;
552
+ font-size: 1.25rem;
553
+ color: var(--mer-white);
554
+ }
555
+
556
+ .meridian .project-card__title a { color: var(--mer-white); }
557
+ .meridian .project-card__title a:visited { color: var(--mer-white); }
558
+ .meridian .project-card__title a:hover { color: var(--mer-accent); }
559
+
560
+ .meridian .project-card__source {
561
+ font-family: var(--font-mono);
562
+ font-size: 0.6875rem;
563
+ color: var(--mer-text-muted);
564
+ white-space: nowrap;
565
+ padding: 0.25rem 0.5rem;
566
+ background: var(--mer-accent-dim);
567
+ border-radius: var(--radius-sm);
568
+ }
569
+
570
+ .meridian .project-card__narrative {
571
+ font-size: 0.9375rem;
572
+ color: var(--mer-text-secondary);
573
+ line-height: 1.6;
574
+ margin-block-end: 1rem;
575
+ }
576
+
577
+ .meridian .project-card__stats {
578
+ display: flex;
579
+ flex-wrap: wrap;
580
+ gap: 1.25rem;
581
+ font-family: var(--font-mono);
582
+ font-size: 0.8125rem;
583
+ color: var(--mer-text-muted);
584
+ margin-block-end: 1rem;
585
+ padding-block-end: 1rem;
586
+ border-bottom: 1px solid var(--mer-border-subtle);
587
+ }
588
+
589
+ .meridian .project-card__stats span strong {
590
+ color: var(--mer-accent);
591
+ font-weight: 500;
592
+ }
593
+
594
+ .meridian .project-card__skills {
595
+ display: flex;
596
+ flex-wrap: wrap;
597
+ gap: 0.375rem;
598
+ }
599
+
600
+ /* ── Skill Chips ── */
601
+ .meridian .skill-chip {
602
+ font-family: var(--font-mono);
603
+ font-size: 0.75rem;
604
+ padding: 0.3125rem 0.75rem;
605
+ background: var(--mer-accent-dim);
606
+ color: var(--mer-accent);
607
+ border-radius: var(--radius-sm);
608
+ letter-spacing: 0.02em;
609
+ }
610
+
611
+ /* ── Narrative ── */
612
+ .meridian .narrative {
613
+ margin-block-end: 3rem;
614
+ }
615
+
616
+ .meridian .narrative p {
617
+ font-size: 1rem;
618
+ color: var(--mer-text-secondary);
619
+ line-height: 1.7;
620
+ margin-block-end: 1.25rem;
621
+ }
622
+
623
+ .meridian .narrative p:last-child { margin-block-end: 0; }
624
+
625
+ /* ── Phase Route / Timeline ── */
626
+ .meridian .route-section {
627
+ margin-block-end: 3rem;
628
+ }
629
+
630
+ .meridian .route {
631
+ position: relative;
632
+ padding-inline-start: 2.5rem;
633
+ }
634
+
635
+ .meridian .route::before {
636
+ content: '';
637
+ position: absolute;
638
+ left: 9px;
639
+ top: 0;
640
+ bottom: 0;
641
+ width: 2px;
642
+ background: linear-gradient(to bottom, var(--mer-accent), var(--mer-border-subtle));
643
+ border-radius: 1px;
644
+ }
645
+
646
+ .meridian .route-waypoint {
647
+ position: relative;
648
+ margin-block-end: 1.75rem;
649
+ padding-block-end: 0.5rem;
650
+ }
651
+
652
+ .meridian .route-waypoint:last-child { margin-block-end: 0; }
653
+
654
+ .meridian .route-waypoint__marker {
655
+ position: absolute;
656
+ left: -2.5rem;
657
+ top: 0.125rem;
658
+ width: 20px;
659
+ height: 20px;
660
+ display: flex;
661
+ align-items: center;
662
+ justify-content: center;
663
+ }
664
+
665
+ .meridian .route-waypoint__marker-dot {
666
+ width: 10px;
667
+ height: 10px;
668
+ border-radius: 50%;
669
+ background: var(--mer-accent);
670
+ border: 2px solid var(--mer-bg);
671
+ box-shadow: 0 0 0 2px var(--mer-accent);
672
+ }
673
+
674
+ .meridian .route-waypoint__phase {
675
+ font-family: var(--font-mono);
676
+ font-size: 0.6875rem;
677
+ color: var(--mer-accent);
678
+ letter-spacing: 0.06em;
679
+ text-transform: uppercase;
680
+ margin-block-end: 0.25rem;
681
+ }
682
+
683
+ .meridian .route-waypoint__title {
684
+ font-family: var(--font-display);
685
+ font-weight: 600;
686
+ font-size: 1.0625rem;
687
+ color: var(--mer-white);
688
+ margin-block-end: 0.375rem;
689
+ }
690
+
691
+ .meridian .route-waypoint__desc {
692
+ font-size: 0.875rem;
693
+ color: var(--mer-text-secondary);
694
+ line-height: 1.55;
695
+ }
696
+
697
+ .meridian .route-waypoint__dates {
698
+ font-family: var(--font-mono);
699
+ font-size: 0.75rem;
700
+ color: var(--mer-text-muted);
701
+ margin-block-start: 0.375rem;
702
+ }
703
+
704
+ /* ── Elevation Profile Chart ── */
705
+ .meridian .elevation-section {
706
+ margin-block-end: 3rem;
707
+ }
708
+
709
+ .meridian .elevation-chart {
710
+ background: var(--mer-surface);
711
+ border: 1px solid var(--mer-border-subtle);
712
+ border-radius: var(--radius);
713
+ padding: 1.5rem;
714
+ overflow: hidden;
715
+ }
716
+
717
+ .meridian .elevation-chart svg {
718
+ width: 100%;
719
+ height: auto;
720
+ display: block;
721
+ }
722
+
723
+ .meridian .elevation-chart__x-labels {
724
+ display: flex;
725
+ justify-content: space-between;
726
+ margin-block-start: 0.75rem;
727
+ font-family: var(--font-mono);
728
+ font-size: 0.6875rem;
729
+ color: var(--mer-text-muted);
730
+ }
731
+
732
+ /* ── Session Table ── */
733
+ .meridian .sessions-section {
734
+ margin-block-end: 3rem;
735
+ }
736
+
737
+ .meridian .session-table-wrap {
738
+ overflow-x: auto;
739
+ -webkit-overflow-scrolling: touch;
740
+ }
741
+
742
+ .meridian .session-table {
743
+ width: 100%;
744
+ border-collapse: collapse;
745
+ font-size: 0.875rem;
746
+ }
747
+
748
+ .meridian .session-table th {
749
+ font-family: var(--font-mono);
750
+ font-size: 0.6875rem;
751
+ color: var(--mer-text-muted);
752
+ letter-spacing: 0.06em;
753
+ text-transform: uppercase;
754
+ text-align: left;
755
+ padding: 0.625rem 0.75rem;
756
+ border-bottom: 1px solid var(--mer-border-subtle);
757
+ white-space: nowrap;
758
+ }
759
+
760
+ .meridian .session-table td {
761
+ padding: 0.625rem 0.75rem;
762
+ border-bottom: 1px solid rgba(6, 95, 70, 0.3);
763
+ color: var(--mer-text-secondary);
764
+ white-space: nowrap;
765
+ }
766
+
767
+ .meridian .session-table tbody tr:hover {
768
+ background: var(--mer-accent-dim);
769
+ }
770
+
771
+ .meridian .session-table td:first-child {
772
+ font-family: var(--font-mono);
773
+ color: var(--mer-text-muted);
774
+ font-size: 0.8125rem;
775
+ }
776
+
777
+ .meridian .session-table__title-cell {
778
+ white-space: normal !important;
779
+ min-width: 200px;
780
+ }
781
+
782
+ .meridian .session-table__title-cell a {
783
+ color: var(--mer-white);
784
+ font-weight: 500;
785
+ }
786
+
787
+ .meridian .session-table__title-cell a:visited { color: var(--mer-white); }
788
+ .meridian .session-table__title-cell a:hover { color: var(--mer-accent); }
789
+
790
+ .meridian .session-table .mono-val {
791
+ font-family: var(--font-mono);
792
+ color: var(--mer-accent);
793
+ font-size: 0.8125rem;
794
+ }
795
+
796
+ /* ── Skills Grid ── */
797
+ .meridian .skills-section {
798
+ margin-block-end: 3rem;
799
+ }
800
+
801
+ .meridian .skills-grid {
802
+ display: flex;
803
+ flex-wrap: wrap;
804
+ gap: 0.5rem;
805
+ }
806
+
807
+ /* ── Source Breakdown ── */
808
+ .meridian .source-section {
809
+ margin-block-end: 3rem;
810
+ }
811
+
812
+ .meridian .source-bar-large {
813
+ display: flex;
814
+ height: 10px;
815
+ border-radius: 5px;
816
+ overflow: hidden;
817
+ margin-block-end: 0.75rem;
818
+ }
819
+
820
+ .meridian .source-bar-large__segment { height: 100%; }
821
+ .meridian .source-bar-large__segment--claude { background: var(--mer-accent); }
822
+ .meridian .source-bar-large__segment--cursor { background: var(--mer-text-muted); }
823
+
824
+ .meridian .source-legend {
825
+ display: flex;
826
+ gap: 1.5rem;
827
+ font-family: var(--font-mono);
828
+ font-size: 0.8125rem;
829
+ color: var(--mer-text-secondary);
830
+ }
831
+
832
+ .meridian .source-legend__dot {
833
+ display: inline-block;
834
+ width: 10px;
835
+ height: 10px;
836
+ border-radius: 50%;
837
+ margin-inline-end: 0.375rem;
838
+ vertical-align: middle;
839
+ }
840
+
841
+ /* ── Featured Sessions ── */
842
+ .meridian .featured-section {
843
+ margin-block-end: 3rem;
844
+ }
845
+
846
+ .meridian .featured-grid {
847
+ display: grid;
848
+ grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
849
+ gap: 1rem;
850
+ }
851
+
852
+ .meridian .featured-card {
853
+ background: var(--mer-surface);
854
+ border: 1px solid var(--mer-border-subtle);
855
+ border-radius: var(--radius);
856
+ padding: 1.25rem;
857
+ transition: border-color 0.2s;
858
+ text-decoration: none;
859
+ color: inherit;
860
+ display: block;
861
+ }
862
+
863
+ .meridian .featured-card:hover {
864
+ border-color: var(--mer-accent);
865
+ text-decoration: none;
866
+ }
867
+
868
+ .meridian .featured-card__tag {
869
+ font-family: var(--font-mono);
870
+ font-size: 0.6875rem;
871
+ color: var(--mer-accent);
872
+ letter-spacing: 0.06em;
873
+ text-transform: uppercase;
874
+ margin-block-end: 0.375rem;
875
+ }
876
+
877
+ .meridian .featured-card__title {
878
+ font-family: var(--font-display);
879
+ font-weight: 600;
880
+ font-size: 1rem;
881
+ color: var(--mer-white);
882
+ margin-block-end: 0.5rem;
883
+ }
884
+
885
+ .meridian .featured-card__title a { color: var(--mer-white); }
886
+ .meridian .featured-card__title a:visited { color: var(--mer-white); }
887
+ .meridian .featured-card__title a:hover { color: var(--mer-accent); text-decoration: none; }
888
+
889
+ .meridian .featured-card__meta {
890
+ font-family: var(--font-mono);
891
+ font-size: 0.75rem;
892
+ color: var(--mer-text-muted);
893
+ display: flex;
894
+ flex-wrap: wrap;
895
+ gap: 0.75rem;
896
+ }
897
+
898
+ .meridian .featured-card__meta strong {
899
+ color: var(--mer-accent);
900
+ font-weight: 500;
901
+ }
902
+
903
+ /* ── Session Header ── */
904
+ .meridian .session-header {
905
+ margin-block-end: 2.5rem;
906
+ }
907
+
908
+ .meridian .session-header__title {
909
+ font-family: var(--font-display);
910
+ font-weight: 700;
911
+ font-size: 2rem;
912
+ color: var(--mer-white);
913
+ line-height: 1.15;
914
+ margin-block-end: 1rem;
915
+ }
916
+
917
+ .meridian .session-header__meta {
918
+ display: flex;
919
+ flex-wrap: wrap;
920
+ gap: 1.25rem;
921
+ font-family: var(--font-mono);
922
+ font-size: 0.8125rem;
923
+ color: var(--mer-text-muted);
924
+ margin-block-end: 1.25rem;
925
+ }
926
+
927
+ .meridian .session-header__meta-item {
928
+ display: flex;
929
+ align-items: center;
930
+ gap: 0.375rem;
931
+ }
932
+
933
+ .meridian .session-header__meta-item svg {
934
+ width: 14px;
935
+ height: 14px;
936
+ stroke: var(--mer-text-muted);
937
+ fill: none;
938
+ stroke-width: 2;
939
+ }
940
+
941
+ .meridian .session-header__meta-value {
942
+ color: var(--mer-accent);
943
+ font-weight: 500;
944
+ }
945
+
946
+ /* ── Dev Take ── */
947
+ .meridian .dev-take {
948
+ background: var(--mer-surface);
949
+ border: 1px solid var(--mer-border-subtle);
950
+ border-inline-start: 3px solid var(--mer-accent);
951
+ border-radius: 0 var(--radius) var(--radius) 0;
952
+ padding: 1.25rem 1.5rem;
953
+ margin-block-end: 3rem;
954
+ }
955
+
956
+ .meridian .dev-take__label {
957
+ font-family: var(--font-mono);
958
+ font-size: 0.6875rem;
959
+ color: var(--mer-accent);
960
+ letter-spacing: 0.08em;
961
+ text-transform: uppercase;
962
+ margin-block-end: 0.5rem;
963
+ }
964
+
965
+ .meridian .dev-take__text {
966
+ font-size: 1rem;
967
+ color: var(--mer-text-secondary);
968
+ line-height: 1.6;
969
+ font-style: italic;
970
+ }
971
+
972
+ /* ── Layout: Main + Sidebar ── */
973
+ .meridian .session-layout {
974
+ display: grid;
975
+ grid-template-columns: 1fr 280px;
976
+ gap: 2.5rem;
977
+ align-items: start;
978
+ }
979
+
980
+ .meridian .session-main { min-width: 0; }
981
+
982
+ /* ── Sidebar ── */
983
+ .meridian .sidebar { position: sticky; top: 2rem; }
984
+
985
+ .meridian .sidebar-block {
986
+ margin-block-end: 2rem;
987
+ }
988
+
989
+ .meridian .sidebar-block__title {
990
+ font-family: var(--font-mono);
991
+ font-size: 0.6875rem;
992
+ color: var(--mer-text-muted);
993
+ letter-spacing: 0.08em;
994
+ text-transform: uppercase;
995
+ margin-block-end: 0.75rem;
996
+ padding-block-end: 0.5rem;
997
+ border-bottom: 1px solid var(--mer-border-subtle);
998
+ }
999
+
1000
+ /* Tools table */
1001
+ .meridian .tools-table {
1002
+ width: 100%;
1003
+ border-collapse: collapse;
1004
+ }
1005
+
1006
+ .meridian .tools-table td {
1007
+ padding: 0.375rem 0;
1008
+ font-size: 0.8125rem;
1009
+ }
1010
+
1011
+ .meridian .tools-table td:first-child {
1012
+ font-family: var(--font-mono);
1013
+ color: var(--mer-text-secondary);
1014
+ }
1015
+
1016
+ .meridian .tools-table td:last-child {
1017
+ text-align: right;
1018
+ font-family: var(--font-mono);
1019
+ color: var(--mer-accent);
1020
+ font-weight: 500;
1021
+ }
1022
+
1023
+ /* Files changed */
1024
+ .meridian .files-list {
1025
+ list-style: none;
1026
+ }
1027
+
1028
+ .meridian .files-list__item {
1029
+ display: flex;
1030
+ justify-content: space-between;
1031
+ align-items: flex-start;
1032
+ padding: 0.375rem 0;
1033
+ border-bottom: 1px solid rgba(6, 95, 70, 0.2);
1034
+ gap: 0.5rem;
1035
+ }
1036
+
1037
+ .meridian .files-list__item:last-child { border-bottom: none; }
1038
+
1039
+ .meridian .files-list__path {
1040
+ font-family: var(--font-mono);
1041
+ font-size: 0.75rem;
1042
+ color: var(--mer-text-secondary);
1043
+ word-break: break-all;
1044
+ line-height: 1.4;
1045
+ }
1046
+
1047
+ .meridian .files-list__diff {
1048
+ font-family: var(--font-mono);
1049
+ font-size: 0.75rem;
1050
+ color: var(--mer-accent);
1051
+ font-weight: 500;
1052
+ white-space: nowrap;
1053
+ flex-shrink: 0;
1054
+ }
1055
+
1056
+ /* Sidebar skills */
1057
+ .meridian .sidebar-skills {
1058
+ display: flex;
1059
+ flex-wrap: wrap;
1060
+ gap: 0.375rem;
1061
+ }
1062
+
1063
+ /* ── Execution Path (Beats) ── */
1064
+ .meridian .beats-section {
1065
+ margin-block-end: 3rem;
1066
+ }
1067
+
1068
+ .meridian .beats-path {
1069
+ position: relative;
1070
+ padding-inline-start: 2.5rem;
1071
+ }
1072
+
1073
+ .meridian .beats-path::before {
1074
+ content: '';
1075
+ position: absolute;
1076
+ left: 9px;
1077
+ top: 4px;
1078
+ bottom: 4px;
1079
+ width: 2px;
1080
+ background: linear-gradient(to bottom, var(--mer-accent), var(--mer-border-subtle));
1081
+ border-radius: 1px;
1082
+ }
1083
+
1084
+ .meridian .beat {
1085
+ position: relative;
1086
+ margin-block-end: 1.75rem;
1087
+ }
1088
+
1089
+ .meridian .beat:last-child { margin-block-end: 0; }
1090
+
1091
+ .meridian .beat__marker {
1092
+ position: absolute;
1093
+ left: -2.5rem;
1094
+ top: 0.1875rem;
1095
+ width: 20px;
1096
+ height: 20px;
1097
+ display: flex;
1098
+ align-items: center;
1099
+ justify-content: center;
1100
+ }
1101
+
1102
+ .meridian .beat__marker-num {
1103
+ width: 20px;
1104
+ height: 20px;
1105
+ border-radius: 50%;
1106
+ background: var(--mer-accent);
1107
+ color: var(--mer-bg);
1108
+ font-family: var(--font-mono);
1109
+ font-size: 0.625rem;
1110
+ font-weight: 600;
1111
+ display: flex;
1112
+ align-items: center;
1113
+ justify-content: center;
1114
+ line-height: 1;
1115
+ }
1116
+
1117
+ .meridian .beat__title {
1118
+ font-family: var(--font-display);
1119
+ font-weight: 600;
1120
+ font-size: 1.0625rem;
1121
+ color: var(--mer-white);
1122
+ margin-block-end: 0.375rem;
1123
+ }
1124
+
1125
+ .meridian .beat__desc {
1126
+ font-size: 0.9375rem;
1127
+ color: var(--mer-text-secondary);
1128
+ line-height: 1.6;
1129
+ }
1130
+
1131
+ /* ── Q&A ── */
1132
+ .meridian .qa-section {
1133
+ margin-block-end: 3rem;
1134
+ }
1135
+
1136
+ .meridian .qa-item {
1137
+ margin-block-end: 1.5rem;
1138
+ padding: 1.25rem;
1139
+ background: var(--mer-surface);
1140
+ border: 1px solid var(--mer-border-subtle);
1141
+ border-radius: var(--radius);
1142
+ }
1143
+
1144
+ .meridian .qa-item:last-child { margin-block-end: 0; }
1145
+
1146
+ .meridian .qa-item__q {
1147
+ font-family: var(--font-display);
1148
+ font-weight: 600;
1149
+ font-size: 0.9375rem;
1150
+ color: var(--mer-white);
1151
+ margin-block-end: 0.75rem;
1152
+ display: flex;
1153
+ gap: 0.5rem;
1154
+ }
1155
+
1156
+ .meridian .qa-item__q-mark {
1157
+ font-family: var(--font-mono);
1158
+ color: var(--mer-accent);
1159
+ font-weight: 600;
1160
+ flex-shrink: 0;
1161
+ }
1162
+
1163
+ .meridian .qa-item__a {
1164
+ font-size: 0.9375rem;
1165
+ color: var(--mer-text-secondary);
1166
+ line-height: 1.65;
1167
+ padding-inline-start: 1.5rem;
1168
+ }
1169
+
1170
+ /* ── Agent Summary ── */
1171
+ .meridian .agents-section {
1172
+ margin-block-end: 3rem;
1173
+ }
1174
+
1175
+ .meridian .agent-table {
1176
+ width: 100%;
1177
+ border-collapse: collapse;
1178
+ }
1179
+
1180
+ .meridian .agent-table th {
1181
+ font-family: var(--font-mono);
1182
+ font-size: 0.6875rem;
1183
+ color: var(--mer-text-muted);
1184
+ letter-spacing: 0.06em;
1185
+ text-transform: uppercase;
1186
+ text-align: left;
1187
+ padding: 0.625rem 0.75rem;
1188
+ border-bottom: 1px solid var(--mer-border-subtle);
1189
+ }
1190
+
1191
+ .meridian .agent-table td {
1192
+ padding: 0.625rem 0.75rem;
1193
+ border-bottom: 1px solid rgba(6, 95, 70, 0.25);
1194
+ font-size: 0.875rem;
1195
+ }
1196
+
1197
+ .meridian .agent-table__role {
1198
+ display: flex;
1199
+ align-items: center;
1200
+ gap: 0.5rem;
1201
+ color: var(--mer-text-secondary);
1202
+ }
1203
+
1204
+ .meridian .agent-table__dot {
1205
+ width: 10px;
1206
+ height: 10px;
1207
+ border-radius: 50%;
1208
+ flex-shrink: 0;
1209
+ }
1210
+
1211
+ .meridian .agent-table .mono-val {
1212
+ font-family: var(--font-mono);
1213
+ color: var(--mer-accent);
1214
+ font-size: 0.8125rem;
1215
+ }
1216
+
1217
+ /* ── Agent Bar Chart ── */
1218
+ .meridian .agent-bars {
1219
+ margin-block-start: 1.25rem;
1220
+ }
1221
+
1222
+ .meridian .agent-bar-row {
1223
+ display: flex;
1224
+ align-items: center;
1225
+ gap: 0.75rem;
1226
+ margin-block-end: 0.625rem;
1227
+ }
1228
+
1229
+ .meridian .agent-bar-row__label {
1230
+ font-family: var(--font-mono);
1231
+ font-size: 0.75rem;
1232
+ color: var(--mer-text-secondary);
1233
+ width: 120px;
1234
+ flex-shrink: 0;
1235
+ text-align: right;
1236
+ }
1237
+
1238
+ .meridian .agent-bar-row__track {
1239
+ flex: 1;
1240
+ height: 8px;
1241
+ background: rgba(6, 95, 70, 0.2);
1242
+ border-radius: 4px;
1243
+ overflow: hidden;
1244
+ }
1245
+
1246
+ .meridian .agent-bar-row__fill {
1247
+ height: 100%;
1248
+ border-radius: 4px;
1249
+ transition: width 0.8s ease;
1250
+ }
1251
+
1252
+ .meridian .agent-bar-row__value {
1253
+ font-family: var(--font-mono);
1254
+ font-size: 0.75rem;
1255
+ color: var(--mer-text-muted);
1256
+ width: 40px;
1257
+ flex-shrink: 0;
1258
+ }
1259
+
1260
+ /* ── Agent Dots (session table) ── */
1261
+ .meridian .agent-dots {
1262
+ display: flex;
1263
+ gap: 3px;
1264
+ }
1265
+
1266
+ .meridian .agent-dot {
1267
+ width: 8px;
1268
+ height: 8px;
1269
+ border-radius: 50%;
1270
+ }
1271
+
1272
+ /* ── Key Decisions ── */
1273
+ .meridian .decisions-section {
1274
+ margin-block-end: 3rem;
1275
+ }
1276
+
1277
+ .meridian .decision-list {
1278
+ list-style: none;
1279
+ counter-reset: decision-counter;
1280
+ }
1281
+
1282
+ .meridian .decision-item {
1283
+ counter-increment: decision-counter;
1284
+ position: relative;
1285
+ padding-inline-start: 2.5rem;
1286
+ margin-block-end: 1rem;
1287
+ font-size: 0.9375rem;
1288
+ color: var(--mer-text-secondary);
1289
+ line-height: 1.55;
1290
+ }
1291
+
1292
+ .meridian .decision-item::before {
1293
+ content: counter(decision-counter, decimal-leading-zero);
1294
+ position: absolute;
1295
+ left: 0;
1296
+ font-family: var(--font-mono);
1297
+ font-size: 0.875rem;
1298
+ color: var(--mer-accent);
1299
+ font-weight: 600;
1300
+ }
1301
+
1302
+ /* ── Footer ── */
1303
+ .meridian .mer-footer {
1304
+ margin-block-start: 4rem;
1305
+ padding-block-start: 1.5rem;
1306
+ border-top: 1px solid var(--mer-border-subtle);
1307
+ text-align: center;
1308
+ }
1309
+
1310
+ .meridian .mer-footer__text {
1311
+ font-family: var(--font-mono);
1312
+ font-size: 0.75rem;
1313
+ color: var(--mer-text-muted);
1314
+ letter-spacing: 0.04em;
1315
+ }
1316
+
1317
+ /* ── Responsive ── */
1318
+ @media (max-width: 768px) {
1319
+ .meridian .mer-page { padding: 1.25rem 1rem; }
1320
+
1321
+ .meridian .hero__name { font-size: 2rem; }
1322
+ .meridian .hero__profile { flex-direction: column; }
1323
+ .meridian .hero__photo { width: 80px; height: 100px; }
1324
+ .meridian .hero__contact { font-size: 0.75rem; }
1325
+
1326
+ .meridian .stats-grid {
1327
+ grid-template-columns: repeat(2, 1fr);
1328
+ gap: 1rem;
1329
+ }
1330
+
1331
+ .meridian .stat-cell__value { font-size: 1.375rem; }
1332
+
1333
+ .meridian .project-card { padding: 1.25rem; }
1334
+ .meridian .project-card__header { flex-direction: column; }
1335
+ .meridian .project-card__stats { gap: 0.75rem; }
1336
+
1337
+ .meridian .project-hero__title { font-size: 1.75rem; }
1338
+ .meridian .stats-row { grid-template-columns: repeat(3, 1fr); }
1339
+ .meridian .featured-grid { grid-template-columns: 1fr; }
1340
+ .meridian .session-table { font-size: 0.8125rem; }
1341
+
1342
+ .meridian .session-layout {
1343
+ grid-template-columns: 1fr;
1344
+ gap: 2rem;
1345
+ }
1346
+ .meridian .sidebar {
1347
+ position: static;
1348
+ order: -1;
1349
+ display: grid;
1350
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
1351
+ gap: 1.5rem;
1352
+ }
1353
+ .meridian .sidebar-block { margin-block-end: 0; }
1354
+ .meridian .session-header__title { font-size: 1.5rem; }
1355
+ .meridian .session-stats { grid-template-columns: repeat(2, 1fr); }
1356
+ .meridian .agent-bar-row__label { width: 80px; font-size: 0.6875rem; }
1357
+ }
1358
+
1359
+ @media (max-width: 480px) {
1360
+ .meridian .hero__name { font-size: 1.625rem; }
1361
+ .meridian .section-heading { font-size: 1.375rem; }
1362
+
1363
+ .meridian .project-hero__title { font-size: 1.375rem; }
1364
+ .meridian .stats-row { grid-template-columns: repeat(2, 1fr); }
1365
+
1366
+ .meridian .session-header__title { font-size: 1.25rem; }
1367
+ .meridian .session-header__meta { gap: 0.75rem; }
1368
+ .meridian .sidebar { grid-template-columns: 1fr; }
1369
+ }