heyiam 0.2.29 → 0.3.1

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 (186) hide show
  1. package/README.md +45 -0
  2. package/dist/auth.js +29 -3
  3. package/dist/config.js +10 -1
  4. package/dist/db.js +0 -1
  5. package/dist/export.js +124 -27
  6. package/dist/format-utils.js +5 -0
  7. package/dist/github.js +381 -0
  8. package/dist/index.js +168 -0
  9. package/dist/mount.js +300 -102
  10. package/dist/parsers/claude.js +2 -28
  11. package/dist/parsers/codex.js +2 -26
  12. package/dist/parsers/cursor.js +2 -26
  13. package/dist/parsers/duration.js +35 -0
  14. package/dist/parsers/gemini.js +2 -20
  15. package/dist/parsers/index.js +22 -3
  16. package/dist/parsers/types.js +0 -1
  17. package/dist/public/assets/index-Coilyhtr.css +1 -0
  18. package/dist/public/assets/index-D0noVMFu.js +44 -0
  19. package/dist/public/index.html +2 -2
  20. package/dist/redact.js +4 -104
  21. package/dist/render/build-render-data.js +9 -2
  22. package/dist/render/index.js +32 -5
  23. package/dist/render/liquid.js +147 -7
  24. package/dist/render/mock-data.js +303 -0
  25. package/dist/render/templates/aurora/portfolio.liquid +192 -0
  26. package/dist/render/templates/aurora/project.liquid +260 -0
  27. package/dist/render/templates/aurora/session.liquid +223 -0
  28. package/dist/render/templates/aurora/styles.css +1184 -0
  29. package/dist/render/templates/bauhaus/portfolio.liquid +169 -0
  30. package/dist/render/templates/bauhaus/project.liquid +300 -0
  31. package/dist/render/templates/bauhaus/session.liquid +333 -0
  32. package/dist/render/templates/bauhaus/styles.css +1645 -0
  33. package/dist/render/templates/blueprint/portfolio.liquid +153 -0
  34. package/dist/render/templates/blueprint/project.liquid +286 -0
  35. package/dist/render/templates/blueprint/session.liquid +248 -0
  36. package/dist/render/templates/blueprint/styles.css +1289 -0
  37. package/dist/render/templates/canvas/portfolio.liquid +203 -0
  38. package/dist/render/templates/canvas/project.liquid +235 -0
  39. package/dist/render/templates/canvas/session.liquid +223 -0
  40. package/dist/render/templates/canvas/styles.css +1440 -0
  41. package/dist/render/templates/carbon/portfolio.liquid +160 -0
  42. package/dist/render/templates/carbon/project.liquid +249 -0
  43. package/dist/render/templates/carbon/session.liquid +190 -0
  44. package/dist/render/templates/carbon/styles.css +1097 -0
  45. package/dist/render/templates/chalk/portfolio.liquid +189 -0
  46. package/dist/render/templates/chalk/project.liquid +245 -0
  47. package/dist/render/templates/chalk/session.liquid +215 -0
  48. package/dist/render/templates/chalk/styles.css +1161 -0
  49. package/dist/render/templates/circuit/portfolio.liquid +152 -0
  50. package/dist/render/templates/circuit/project.liquid +247 -0
  51. package/dist/render/templates/circuit/session.liquid +205 -0
  52. package/dist/render/templates/circuit/styles.css +1409 -0
  53. package/dist/render/templates/cosmos/portfolio.liquid +222 -0
  54. package/dist/render/templates/cosmos/project.liquid +327 -0
  55. package/dist/render/templates/cosmos/session.liquid +239 -0
  56. package/dist/render/templates/cosmos/styles.css +1157 -0
  57. package/dist/render/templates/daylight/portfolio.liquid +207 -0
  58. package/dist/render/templates/daylight/project.liquid +229 -0
  59. package/dist/render/templates/daylight/session.liquid +219 -0
  60. package/dist/render/templates/daylight/styles.css +1315 -0
  61. package/dist/render/templates/editorial/portfolio.liquid +110 -0
  62. package/dist/render/templates/editorial/project.liquid +202 -0
  63. package/dist/render/templates/editorial/session.liquid +171 -0
  64. package/dist/render/templates/editorial/styles.css +826 -0
  65. package/dist/render/templates/ember/portfolio.liquid +306 -0
  66. package/dist/render/templates/ember/project.liquid +232 -0
  67. package/dist/render/templates/ember/session.liquid +202 -0
  68. package/dist/render/templates/ember/styles.css +1289 -0
  69. package/dist/render/templates/glacier/portfolio.liquid +261 -0
  70. package/dist/render/templates/glacier/project.liquid +288 -0
  71. package/dist/render/templates/glacier/session.liquid +217 -0
  72. package/dist/render/templates/glacier/styles.css +1204 -0
  73. package/dist/render/templates/grid/portfolio.liquid +255 -0
  74. package/dist/render/templates/grid/project.liquid +306 -0
  75. package/dist/render/templates/grid/session.liquid +260 -0
  76. package/dist/render/templates/grid/styles.css +1445 -0
  77. package/dist/render/templates/kinetic/portfolio.liquid +158 -0
  78. package/dist/render/templates/kinetic/project.liquid +242 -0
  79. package/dist/render/templates/kinetic/session.liquid +228 -0
  80. package/dist/render/templates/kinetic/styles.css +948 -0
  81. package/dist/render/templates/meridian/portfolio.liquid +243 -0
  82. package/dist/render/templates/meridian/project.liquid +376 -0
  83. package/dist/render/templates/meridian/session.liquid +298 -0
  84. package/dist/render/templates/meridian/styles.css +1375 -0
  85. package/dist/render/templates/minimal/portfolio.liquid +71 -0
  86. package/dist/render/templates/minimal/project.liquid +154 -0
  87. package/dist/render/templates/minimal/session.liquid +140 -0
  88. package/dist/render/templates/minimal/styles.css +529 -0
  89. package/dist/render/templates/mono/portfolio.liquid +281 -0
  90. package/dist/render/templates/mono/project.liquid +275 -0
  91. package/dist/render/templates/mono/session.liquid +276 -0
  92. package/dist/render/templates/mono/styles.css +1022 -0
  93. package/dist/render/templates/neon/portfolio.liquid +207 -0
  94. package/dist/render/templates/neon/project.liquid +225 -0
  95. package/dist/render/templates/neon/session.liquid +195 -0
  96. package/dist/render/templates/neon/styles.css +1271 -0
  97. package/dist/render/templates/noir/portfolio.liquid +137 -0
  98. package/dist/render/templates/noir/project.liquid +220 -0
  99. package/dist/render/templates/noir/session.liquid +241 -0
  100. package/dist/render/templates/noir/styles.css +1229 -0
  101. package/dist/render/templates/obsidian/portfolio.liquid +247 -0
  102. package/dist/render/templates/obsidian/project.liquid +280 -0
  103. package/dist/render/templates/obsidian/session.liquid +241 -0
  104. package/dist/render/templates/obsidian/styles.css +1407 -0
  105. package/dist/render/templates/paper/portfolio.liquid +257 -0
  106. package/dist/render/templates/paper/project.liquid +235 -0
  107. package/dist/render/templates/paper/session.liquid +271 -0
  108. package/dist/render/templates/paper/styles.css +1513 -0
  109. package/dist/render/templates/parallax/portfolio.liquid +295 -0
  110. package/dist/render/templates/parallax/project.liquid +275 -0
  111. package/dist/render/templates/parallax/session.liquid +295 -0
  112. package/dist/render/templates/parallax/styles.css +1880 -0
  113. package/dist/render/templates/parchment/portfolio.liquid +280 -0
  114. package/dist/render/templates/parchment/project.liquid +289 -0
  115. package/dist/render/templates/parchment/session.liquid +346 -0
  116. package/dist/render/templates/parchment/styles.css +1401 -0
  117. package/dist/render/templates/partials/_beats.liquid +16 -0
  118. package/dist/render/templates/partials/_breadcrumb.liquid +9 -0
  119. package/dist/render/templates/partials/_footer.liquid +7 -0
  120. package/dist/render/templates/partials/_growth-chart.liquid +7 -0
  121. package/dist/render/templates/partials/_key-decisions.liquid +20 -0
  122. package/dist/render/templates/partials/_links.liquid +16 -0
  123. package/dist/render/templates/partials/_narrative.liquid +8 -0
  124. package/dist/render/templates/partials/_phases.liquid +20 -0
  125. package/dist/render/templates/partials/_portfolio-header.liquid +20 -0
  126. package/dist/render/templates/partials/_portfolio-projects.liquid +16 -0
  127. package/dist/render/templates/partials/_portfolio-stats.liquid +19 -0
  128. package/dist/render/templates/partials/_qa.liquid +13 -0
  129. package/dist/render/templates/partials/_screenshot.liquid +15 -0
  130. package/dist/render/templates/partials/_session-cards.liquid +30 -0
  131. package/dist/render/templates/partials/_session-header.liquid +39 -0
  132. package/dist/render/templates/partials/_session-sidebar.liquid +30 -0
  133. package/dist/render/templates/partials/_skills.liquid +12 -0
  134. package/dist/render/templates/partials/_source-breakdown.liquid +22 -0
  135. package/dist/render/templates/partials/_stats.liquid +38 -0
  136. package/dist/render/templates/partials/_work-timeline.liquid +7 -0
  137. package/dist/render/templates/project.liquid +7 -4
  138. package/dist/render/templates/radar/portfolio.liquid +223 -0
  139. package/dist/render/templates/radar/project.liquid +278 -0
  140. package/dist/render/templates/radar/session.liquid +300 -0
  141. package/dist/render/templates/radar/styles.css +1055 -0
  142. package/dist/render/templates/showcase/portfolio.liquid +221 -0
  143. package/dist/render/templates/showcase/project.liquid +237 -0
  144. package/dist/render/templates/showcase/session.liquid +210 -0
  145. package/dist/render/templates/showcase/styles.css +1284 -0
  146. package/dist/render/templates/signal/portfolio.liquid +217 -0
  147. package/dist/render/templates/signal/project.liquid +278 -0
  148. package/dist/render/templates/signal/session.liquid +282 -0
  149. package/dist/render/templates/signal/styles.css +1401 -0
  150. package/dist/render/templates/strata/portfolio.liquid +180 -0
  151. package/dist/render/templates/strata/project.liquid +282 -0
  152. package/dist/render/templates/strata/session.liquid +261 -0
  153. package/dist/render/templates/strata/styles.css +1354 -0
  154. package/dist/render/templates/styles.css +1190 -0
  155. package/dist/render/templates/terminal/portfolio.liquid +102 -0
  156. package/dist/render/templates/terminal/project.liquid +161 -0
  157. package/dist/render/templates/terminal/session.liquid +145 -0
  158. package/dist/render/templates/terminal/styles.css +497 -0
  159. package/dist/render/templates/verdant/portfolio.liquid +321 -0
  160. package/dist/render/templates/verdant/project.liquid +309 -0
  161. package/dist/render/templates/verdant/session.liquid +237 -0
  162. package/dist/render/templates/verdant/styles.css +1261 -0
  163. package/dist/render/templates/zen/portfolio.liquid +124 -0
  164. package/dist/render/templates/zen/project.liquid +187 -0
  165. package/dist/render/templates/zen/session.liquid +203 -0
  166. package/dist/render/templates/zen/styles.css +1211 -0
  167. package/dist/render/templates.js +90 -0
  168. package/dist/routes/auth.js +7 -3
  169. package/dist/routes/context.js +17 -10
  170. package/dist/routes/delete.js +195 -0
  171. package/dist/routes/enhance.js +57 -40
  172. package/dist/routes/export.js +14 -4
  173. package/dist/routes/github.js +254 -0
  174. package/dist/routes/index.js +2 -0
  175. package/dist/routes/portfolio-render-data.js +160 -0
  176. package/dist/routes/preview.js +555 -108
  177. package/dist/routes/projects.js +61 -24
  178. package/dist/routes/publish.js +320 -31
  179. package/dist/routes/settings.js +194 -1
  180. package/dist/routes/sse.js +9 -0
  181. package/dist/search.js +6 -0
  182. package/dist/server.js +11 -3
  183. package/dist/settings.js +112 -9
  184. package/package.json +3 -4
  185. package/dist/public/assets/index-CC9G8EF1.js +0 -21
  186. package/dist/public/assets/index-Dalqz2mC.css +0 -1
@@ -0,0 +1,497 @@
1
+ body { background: var(--term-bg); color: var(--term-text); }
2
+ /* ── Terminal template styles ──
3
+ * Green-on-black terminal aesthetic.
4
+ * Monospace font, ASCII elements, command-line feel.
5
+ * Accent: #4ade80 (green-400)
6
+ */
7
+
8
+ /* ── Base ── */
9
+ .terminal {
10
+ --term-bg: #0a0f0a;
11
+ --term-surface: #0d1a0d;
12
+ --term-border: rgba(74, 222, 128, 0.2);
13
+ --term-green: #4ade80;
14
+ --term-green-dim: rgba(74, 222, 128, 0.6);
15
+ --term-green-faint: rgba(74, 222, 128, 0.1);
16
+ --term-text: #d1fae5;
17
+ --term-dim: rgba(74, 222, 128, 0.45);
18
+ --term-red: #f87171;
19
+ --term-font: 'JetBrains Mono', 'IBM Plex Mono', 'Fira Code', monospace;
20
+
21
+ font-family: var(--term-font);
22
+ background: var(--term-bg);
23
+ color: var(--term-text);
24
+ padding: 2rem 2.5rem;
25
+ max-width: 860px;
26
+ margin: 0 auto;
27
+ font-size: 0.875rem;
28
+ line-height: 1.6;
29
+ }
30
+
31
+ .terminal a {
32
+ color: var(--term-green);
33
+ text-decoration: none;
34
+ }
35
+ .terminal a:hover {
36
+ text-decoration: underline;
37
+ }
38
+
39
+ /* ── Prompt breadcrumb ── */
40
+ .term-prompt {
41
+ margin-bottom: 1.5rem;
42
+ font-size: 0.8125rem;
43
+ }
44
+ .term-prompt__char {
45
+ color: var(--term-green);
46
+ font-weight: 700;
47
+ }
48
+ .term-prompt__path {
49
+ color: var(--term-green-dim);
50
+ }
51
+ .term-prompt__path a {
52
+ color: var(--term-green-dim);
53
+ }
54
+ .term-prompt__path a:hover {
55
+ color: var(--term-green);
56
+ }
57
+
58
+ /* ── Header (portfolio) ── */
59
+ .term-header {
60
+ display: flex;
61
+ gap: 1.5rem;
62
+ align-items: flex-start;
63
+ margin-bottom: 1.5rem;
64
+ }
65
+
66
+ /* ── Photo with ASCII art border ── */
67
+ .term-photo {
68
+ flex-shrink: 0;
69
+ }
70
+ .term-photo__border {
71
+ border: 2px solid var(--term-green);
72
+ padding: 3px;
73
+ position: relative;
74
+ }
75
+ .term-photo__border::before {
76
+ content: '+ - - - - - - +';
77
+ position: absolute;
78
+ top: -1.2em;
79
+ left: -2px;
80
+ font-size: 0.625rem;
81
+ color: var(--term-dim);
82
+ letter-spacing: 0.05em;
83
+ }
84
+ .term-photo__border::after {
85
+ content: '+ - - - - - - +';
86
+ position: absolute;
87
+ bottom: -1.2em;
88
+ left: -2px;
89
+ font-size: 0.625rem;
90
+ color: var(--term-dim);
91
+ letter-spacing: 0.05em;
92
+ }
93
+ .term-photo__img {
94
+ display: block;
95
+ width: 80px;
96
+ height: 80px;
97
+ object-fit: cover;
98
+ filter: grayscale(0.3) contrast(1.1);
99
+ }
100
+
101
+ .term-identity {
102
+ flex: 1;
103
+ min-width: 0;
104
+ }
105
+
106
+ /* ── Heading ── */
107
+ .term-heading {
108
+ font-family: var(--term-font);
109
+ font-size: 1.25rem;
110
+ font-weight: 700;
111
+ color: var(--term-green);
112
+ margin: 0 0 0.25rem;
113
+ letter-spacing: -0.01em;
114
+ }
115
+
116
+ /* ── Status ── */
117
+ .term-status {
118
+ font-size: 0.75rem;
119
+ color: var(--term-dim);
120
+ margin-bottom: 0.5rem;
121
+ }
122
+
123
+ /* ── Blockquote ── */
124
+ .term-blockquote {
125
+ border-left: 2px solid var(--term-border);
126
+ padding-left: 1rem;
127
+ margin: 0.5rem 0;
128
+ color: var(--term-text);
129
+ font-style: normal;
130
+ }
131
+
132
+ /* ── Section ── */
133
+ .term-section {
134
+ margin: 1.5rem 0;
135
+ }
136
+
137
+ /* ── Comment heading ── */
138
+ .term-comment {
139
+ color: var(--term-dim);
140
+ font-size: 0.8125rem;
141
+ margin-bottom: 0.5rem;
142
+ font-weight: 400;
143
+ }
144
+
145
+ /* ── Table ── */
146
+ .term-table {
147
+ border-collapse: collapse;
148
+ width: 100%;
149
+ font-family: var(--term-font);
150
+ font-size: 0.8125rem;
151
+ }
152
+ .term-table tr {
153
+ border-bottom: 1px solid var(--term-green-faint);
154
+ }
155
+ .term-table tr:last-child {
156
+ border-bottom: none;
157
+ }
158
+ .term-table__key {
159
+ color: var(--term-green-dim);
160
+ padding: 0.25rem 1rem 0.25rem 0;
161
+ white-space: nowrap;
162
+ vertical-align: top;
163
+ }
164
+ .term-table__eq {
165
+ color: var(--term-dim);
166
+ padding: 0.25rem 0.5rem;
167
+ vertical-align: top;
168
+ }
169
+ .term-table__val {
170
+ color: var(--term-text);
171
+ padding: 0.25rem 0;
172
+ vertical-align: top;
173
+ }
174
+ .term-table__header {
175
+ color: var(--term-dim);
176
+ font-size: 0.6875rem;
177
+ text-transform: uppercase;
178
+ letter-spacing: 0.08em;
179
+ padding: 0.25rem 1rem 0.25rem 0;
180
+ border-bottom: 1px solid var(--term-border);
181
+ font-weight: 400;
182
+ }
183
+
184
+ /* ── Accent + dim helpers ── */
185
+ .term-accent {
186
+ color: var(--term-green);
187
+ font-weight: 700;
188
+ }
189
+ .term-dim {
190
+ color: var(--term-dim);
191
+ }
192
+ .term-sep {
193
+ color: var(--term-dim);
194
+ margin: 0 0.25rem;
195
+ }
196
+
197
+ /* ── Project entries (portfolio) ── */
198
+ .term-project-entry {
199
+ display: block;
200
+ padding: 0.75rem 0.75rem;
201
+ margin: 0.25rem 0;
202
+ border: 1px solid transparent;
203
+ border-radius: 2px;
204
+ text-decoration: none;
205
+ color: inherit;
206
+ transition: border-color 0.15s, background 0.15s;
207
+ }
208
+ .term-project-entry:hover {
209
+ border-color: var(--term-border);
210
+ background: var(--term-green-faint);
211
+ text-decoration: none;
212
+ }
213
+ .term-project-entry__row {
214
+ display: flex;
215
+ align-items: baseline;
216
+ gap: 0.5rem;
217
+ }
218
+ .term-project-entry__idx {
219
+ color: var(--term-green);
220
+ font-weight: 700;
221
+ flex-shrink: 0;
222
+ }
223
+ .term-project-entry__title {
224
+ color: var(--term-text);
225
+ font-weight: 600;
226
+ }
227
+ .term-project-entry__meta {
228
+ font-size: 0.75rem;
229
+ color: var(--term-dim);
230
+ margin-top: 0.125rem;
231
+ padding-left: 2rem;
232
+ }
233
+ .term-project-entry__skills {
234
+ display: flex;
235
+ flex-wrap: wrap;
236
+ gap: 0.375rem;
237
+ margin-top: 0.25rem;
238
+ padding-left: 2rem;
239
+ }
240
+
241
+ /* ── Session entries ── */
242
+ .term-session-entry {
243
+ margin: 0.375rem 0;
244
+ padding: 0.5rem 0.75rem;
245
+ }
246
+ .term-session-link {
247
+ display: block;
248
+ text-decoration: none;
249
+ color: inherit;
250
+ padding: 0.5rem 0.75rem;
251
+ margin: 0.25rem -0.75rem;
252
+ border: 1px solid transparent;
253
+ border-radius: 2px;
254
+ transition: border-color 0.15s, background 0.15s;
255
+ }
256
+ .term-session-link:hover {
257
+ border-color: var(--term-border);
258
+ background: var(--term-green-faint);
259
+ text-decoration: none;
260
+ }
261
+ .term-session-entry__row {
262
+ display: flex;
263
+ align-items: baseline;
264
+ gap: 0.5rem;
265
+ }
266
+ .term-session-entry__idx {
267
+ color: var(--term-green);
268
+ font-weight: 700;
269
+ flex-shrink: 0;
270
+ }
271
+ .term-session-entry__title {
272
+ color: var(--term-text);
273
+ font-weight: 600;
274
+ }
275
+ .term-session-entry__meta {
276
+ font-size: 0.75rem;
277
+ color: var(--term-dim);
278
+ margin-top: 0.125rem;
279
+ padding-left: 2rem;
280
+ }
281
+
282
+ /* ── Skill tags ── */
283
+ .term-skill-tag {
284
+ display: inline-block;
285
+ font-size: 0.6875rem;
286
+ padding: 0.125rem 0.5rem;
287
+ border: 1px solid var(--term-border);
288
+ border-radius: 2px;
289
+ color: var(--term-green-dim);
290
+ background: var(--term-green-faint);
291
+ }
292
+
293
+ .term-inline-skills {
294
+ display: flex;
295
+ flex-wrap: wrap;
296
+ gap: 0.375rem;
297
+ }
298
+
299
+ /* ── Command style ── */
300
+ .term-cmd {
301
+ margin: 0.25rem 0;
302
+ font-size: 0.8125rem;
303
+ }
304
+ .term-cmd__prefix {
305
+ color: var(--term-green);
306
+ font-weight: 700;
307
+ }
308
+ .term-cmd__text {
309
+ color: var(--term-green-dim);
310
+ }
311
+
312
+ /* ── Screenshot chrome ── */
313
+ .term-screenshot {
314
+ border: 1px solid var(--term-border);
315
+ border-radius: 2px;
316
+ overflow: hidden;
317
+ }
318
+ .term-screenshot__chrome {
319
+ display: flex;
320
+ align-items: center;
321
+ gap: 0.75rem;
322
+ padding: 0.375rem 0.75rem;
323
+ background: var(--term-surface);
324
+ border-bottom: 1px solid var(--term-border);
325
+ font-size: 0.6875rem;
326
+ }
327
+ .term-screenshot__dots {
328
+ color: var(--term-dim);
329
+ font-size: 0.5rem;
330
+ letter-spacing: 0.2em;
331
+ }
332
+ .term-screenshot__url {
333
+ color: var(--term-dim);
334
+ }
335
+ .term-screenshot__img {
336
+ display: block;
337
+ width: 100%;
338
+ filter: brightness(0.95) saturate(0.9);
339
+ }
340
+
341
+ /* ── Git log style (phases) ── */
342
+ .term-git-log {
343
+ font-size: 0.8125rem;
344
+ }
345
+ .term-git-log__entry {
346
+ display: flex;
347
+ align-items: baseline;
348
+ gap: 0.5rem;
349
+ padding: 0.25rem 0;
350
+ }
351
+ .term-git-log__graph {
352
+ color: var(--term-green);
353
+ flex-shrink: 0;
354
+ }
355
+ .term-git-log__hash {
356
+ color: var(--term-green);
357
+ font-weight: 700;
358
+ flex-shrink: 0;
359
+ }
360
+ .term-git-log__msg {
361
+ color: var(--term-text);
362
+ font-weight: 600;
363
+ }
364
+ .term-git-log__desc {
365
+ color: var(--term-dim);
366
+ }
367
+
368
+ /* ── Beats ── */
369
+ .term-beat {
370
+ margin: 0.75rem 0;
371
+ padding-left: 1rem;
372
+ border-left: 2px solid var(--term-green-faint);
373
+ }
374
+ .term-beat__header {
375
+ display: flex;
376
+ align-items: baseline;
377
+ gap: 0.375rem;
378
+ }
379
+ .term-beat__num {
380
+ color: var(--term-green);
381
+ font-weight: 700;
382
+ font-size: 0.75rem;
383
+ }
384
+ .term-beat__prefix {
385
+ color: var(--term-green);
386
+ font-weight: 700;
387
+ }
388
+ .term-beat__title {
389
+ color: var(--term-text);
390
+ }
391
+ .term-beat__body {
392
+ color: var(--term-dim);
393
+ margin: 0.125rem 0 0;
394
+ font-size: 0.8125rem;
395
+ }
396
+
397
+ /* ── List items ── */
398
+ .term-list-item {
399
+ color: var(--term-text);
400
+ padding: 0.125rem 0;
401
+ font-size: 0.8125rem;
402
+ }
403
+
404
+ /* ── Context ── */
405
+ .term-context {
406
+ color: var(--term-dim);
407
+ margin: 0.25rem 0;
408
+ font-size: 0.8125rem;
409
+ }
410
+
411
+ /* ── File entries ── */
412
+ .term-file-entry {
413
+ display: flex;
414
+ justify-content: space-between;
415
+ align-items: baseline;
416
+ padding: 0.1875rem 0;
417
+ font-size: 0.8125rem;
418
+ gap: 1rem;
419
+ }
420
+ .term-file-path {
421
+ color: var(--term-text);
422
+ overflow: hidden;
423
+ text-overflow: ellipsis;
424
+ white-space: nowrap;
425
+ min-width: 0;
426
+ }
427
+ .term-file-diff {
428
+ flex-shrink: 0;
429
+ font-size: 0.75rem;
430
+ }
431
+ .term-adds {
432
+ color: var(--term-green);
433
+ }
434
+ .term-dels {
435
+ color: var(--term-red);
436
+ }
437
+
438
+ /* ── Q&A as stdin/stdout ── */
439
+ .term-qa {
440
+ margin: 0.75rem 0;
441
+ font-size: 0.8125rem;
442
+ }
443
+ .term-qa__prefix {
444
+ color: var(--term-green);
445
+ font-weight: 700;
446
+ margin-right: 0.25rem;
447
+ }
448
+ .term-qa__question {
449
+ color: var(--term-text);
450
+ margin-bottom: 0.25rem;
451
+ }
452
+ .term-qa__answer {
453
+ color: var(--term-dim);
454
+ padding-left: 1rem;
455
+ }
456
+
457
+ /* ── Footer ── */
458
+ .term-footer {
459
+ margin-top: 3rem;
460
+ padding-top: 1rem;
461
+ border-top: 1px solid var(--term-green-faint);
462
+ font-size: 0.6875rem;
463
+ color: var(--term-dim);
464
+ }
465
+ .term-footer a {
466
+ color: var(--term-dim);
467
+ }
468
+ .term-footer a:hover {
469
+ color: var(--term-green);
470
+ }
471
+
472
+ /* ── Responsive ── */
473
+ @media (max-width: 640px) {
474
+ .terminal {
475
+ padding: 1.25rem 1rem;
476
+ font-size: 0.8125rem;
477
+ }
478
+ .term-header {
479
+ flex-direction: column;
480
+ gap: 1rem;
481
+ }
482
+ .term-photo__img {
483
+ width: 64px;
484
+ height: 64px;
485
+ }
486
+ .term-file-entry {
487
+ flex-direction: column;
488
+ gap: 0;
489
+ }
490
+ .term-git-log__entry {
491
+ flex-wrap: wrap;
492
+ }
493
+ }
494
+
495
+
496
+ /* Live-edit empty field hiding */
497
+ [data-portfolio-empty="true"] { display: none; }