heyiam 0.3.6 → 0.3.7

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 (70) hide show
  1. package/dist/llm/project-enhance.js +11 -5
  2. package/dist/public/assets/{index-7mUuxgqY.js → index-BDh4ne9u.js} +1 -1
  3. package/dist/public/assets/index-ByoBtx7P.css +1 -0
  4. package/dist/public/index.html +2 -2
  5. package/dist/render/mock-data.js +6 -0
  6. package/dist/render/select-profile-skills.js +54 -0
  7. package/dist/render/templates/aurora/portfolio.liquid +4 -4
  8. package/dist/render/templates/aurora/styles.css +6 -6
  9. package/dist/render/templates/bauhaus/portfolio.liquid +4 -4
  10. package/dist/render/templates/bauhaus/styles.css +1 -1
  11. package/dist/render/templates/blueprint/portfolio.liquid +4 -4
  12. package/dist/render/templates/blueprint/styles.css +1 -1
  13. package/dist/render/templates/canvas/portfolio.liquid +4 -4
  14. package/dist/render/templates/canvas/styles.css +2 -2
  15. package/dist/render/templates/carbon/portfolio.liquid +4 -4
  16. package/dist/render/templates/carbon/styles.css +7 -7
  17. package/dist/render/templates/chalk/portfolio.liquid +4 -4
  18. package/dist/render/templates/chalk/styles.css +44 -2
  19. package/dist/render/templates/circuit/portfolio.liquid +4 -4
  20. package/dist/render/templates/cosmos/portfolio.liquid +4 -4
  21. package/dist/render/templates/cosmos/styles.css +4 -4
  22. package/dist/render/templates/daylight/portfolio.liquid +4 -4
  23. package/dist/render/templates/editorial/portfolio.liquid +4 -4
  24. package/dist/render/templates/editorial/styles.css +6 -1
  25. package/dist/render/templates/ember/portfolio.liquid +4 -4
  26. package/dist/render/templates/ember/styles.css +2 -2
  27. package/dist/render/templates/glacier/portfolio.liquid +4 -4
  28. package/dist/render/templates/glacier/styles.css +2 -2
  29. package/dist/render/templates/grid/portfolio.liquid +4 -4
  30. package/dist/render/templates/grid/styles.css +2 -2
  31. package/dist/render/templates/kinetic/portfolio.liquid +4 -4
  32. package/dist/render/templates/kinetic/styles.css +5 -5
  33. package/dist/render/templates/meridian/portfolio.liquid +4 -4
  34. package/dist/render/templates/meridian/styles.css +1 -1
  35. package/dist/render/templates/minimal/portfolio.liquid +3 -3
  36. package/dist/render/templates/mono/portfolio.liquid +4 -4
  37. package/dist/render/templates/mono/styles.css +15 -1
  38. package/dist/render/templates/neon/portfolio.liquid +4 -4
  39. package/dist/render/templates/neon/styles.css +11 -20
  40. package/dist/render/templates/noir/portfolio.liquid +4 -4
  41. package/dist/render/templates/noir/styles.css +5 -5
  42. package/dist/render/templates/obsidian/portfolio.liquid +4 -4
  43. package/dist/render/templates/obsidian/styles.css +2 -2
  44. package/dist/render/templates/paper/portfolio.liquid +4 -4
  45. package/dist/render/templates/paper/styles.css +60 -1
  46. package/dist/render/templates/parallax/portfolio.liquid +4 -4
  47. package/dist/render/templates/parallax/styles.css +1 -1
  48. package/dist/render/templates/parchment/portfolio.liquid +4 -4
  49. package/dist/render/templates/parchment/styles.css +3 -3
  50. package/dist/render/templates/radar/portfolio.liquid +4 -4
  51. package/dist/render/templates/radar/styles.css +4 -4
  52. package/dist/render/templates/showcase/portfolio.liquid +4 -4
  53. package/dist/render/templates/showcase/styles.css +7 -7
  54. package/dist/render/templates/signal/portfolio.liquid +4 -4
  55. package/dist/render/templates/signal/styles.css +5 -5
  56. package/dist/render/templates/strata/portfolio.liquid +4 -4
  57. package/dist/render/templates/strata/styles.css +3 -3
  58. package/dist/render/templates/styles.css +39 -28
  59. package/dist/render/templates/terminal/portfolio.liquid +2 -2
  60. package/dist/render/templates/verdant/portfolio.liquid +4 -4
  61. package/dist/render/templates/verdant/styles.css +17 -2
  62. package/dist/render/templates/zen/portfolio.liquid +4 -4
  63. package/dist/render/templates/zen/styles.css +8 -8
  64. package/dist/routes/export.js +1 -0
  65. package/dist/routes/github.js +1 -1
  66. package/dist/routes/portfolio-render-data.js +15 -1
  67. package/dist/routes/preview.js +15 -1
  68. package/dist/routes/publish.js +2 -1
  69. package/package.json +1 -1
  70. package/dist/public/assets/index-CMyamplX.css +0 -1
@@ -126,17 +126,17 @@
126
126
  <div class="project-card-header">
127
127
  <h3><a href="/{{ user.username }}/{{ p.slug }}">{{ p.title }}</a></h3>
128
128
  </div>
129
- {% if p.narrative %}
130
- <p class="project-card-narrative">{{ p.narrative }}</p>
129
+ {% if p.tagline != blank %}
130
+ <p class="project-card-narrative">{{ p.tagline }}</p>
131
131
  {% endif %}
132
132
  <div class="project-card-stats">
133
133
  <span><span class="val">{{ p.totalSessions }}</span> sessions</span>
134
134
  <span><span class="val">{{ p.totalDurationMinutes | formatDuration }}</span></span>
135
135
  <span><span class="val">{{ p.totalLoc | formatLoc }}</span> LOC</span>
136
136
  </div>
137
- {% if p.skills.size > 0 %}
137
+ {% if p.profileSkills.size > 0 %}
138
138
  <div class="skill-pins">
139
- {% for skill in p.skills %}
139
+ {% for skill in p.profileSkills %}
140
140
  <span class="skill-pin">{{ skill }}</span>
141
141
  {% endfor %}
142
142
  </div>
@@ -119,17 +119,17 @@
119
119
  <div class="cos-project-card-header">
120
120
  <h3><a href="/{{ user.username }}/{{ p.slug }}">{{ p.title }}</a></h3>
121
121
  </div>
122
- {% if p.narrative %}
123
- <p class="cos-project-card-narrative">{{ p.narrative }}</p>
122
+ {% if p.tagline != blank %}
123
+ <p class="cos-project-card-narrative">{{ p.tagline }}</p>
124
124
  {% endif %}
125
125
  <div class="cos-project-card-meta">
126
126
  <span><strong>{{ p.totalSessions }}</strong> sessions</span>
127
127
  <span><strong>{{ p.totalDurationMinutes | formatDuration }}</strong></span>
128
128
  <span><strong>{{ p.totalLoc | localeNumber }}</strong> LOC</span>
129
129
  </div>
130
- {% if p.skills.size > 0 %}
130
+ {% if p.profileSkills.size > 0 %}
131
131
  <div class="cos-skill-chips">
132
- {% for skill in p.skills %}
132
+ {% for skill in p.profileSkills %}
133
133
  <span class="cos-skill-chip">{{ skill }}</span>
134
134
  {% endfor %}
135
135
  </div>
@@ -246,7 +246,7 @@ body { background: var(--cos-bg); color: var(--cos-text); }
246
246
  }
247
247
  .cosmos .cos-narrative p {
248
248
  color: var(--cos-text-secondary);
249
- font-size: 0.9375rem;
249
+ font-size: 1rem;
250
250
  line-height: 1.75;
251
251
  margin-block-end: 1rem;
252
252
  }
@@ -431,7 +431,7 @@ body { background: var(--cos-bg); color: var(--cos-text); }
431
431
  }
432
432
  .cosmos .cos-project-card-narrative {
433
433
  color: var(--cos-text-secondary);
434
- font-size: 0.9375rem;
434
+ font-size: 1rem;
435
435
  line-height: 1.6;
436
436
  margin-block-end: 1.25rem;
437
437
  }
@@ -710,7 +710,7 @@ body { background: var(--cos-bg); color: var(--cos-text); }
710
710
  }
711
711
  .cosmos .cos-decision p {
712
712
  color: var(--cos-text-secondary);
713
- font-size: 0.9375rem;
713
+ font-size: 1rem;
714
714
  line-height: 1.5;
715
715
  }
716
716
 
@@ -890,7 +890,7 @@ body { background: var(--cos-bg); color: var(--cos-text); }
890
890
  }
891
891
  .cosmos .cos-dev-take blockquote {
892
892
  color: var(--cos-text-secondary);
893
- font-size: 0.9375rem;
893
+ font-size: 1rem;
894
894
  line-height: 1.7;
895
895
  font-style: italic;
896
896
  border: none;
@@ -92,15 +92,15 @@
92
92
  <h3 class="dl-project-title">
93
93
  <a href="/{{ user.username }}/{{ p.slug }}">{{ p.title }}</a>
94
94
  </h3>
95
- {% if p.narrative %}
96
- <p class="dl-project-narrative">{{ p.narrative }}</p>
95
+ {% if p.tagline != blank %}
96
+ <p class="dl-project-narrative">{{ p.tagline }}</p>
97
97
  {% endif %}
98
98
  <p class="dl-project-meta">
99
99
  {{ p.totalSessions }} session{% if p.totalSessions != 1 %}s{% endif %} &middot; {{ p.totalDurationMinutes | formatDuration }} &middot; {{ p.totalLoc | localeNumber }} LOC
100
100
  </p>
101
- {% if p.skills.size > 0 %}
101
+ {% if p.profileSkills.size > 0 %}
102
102
  <div class="dl-project-skills">
103
- {% for skill in p.skills %}
103
+ {% for skill in p.profileSkills %}
104
104
  <span class="dl-skill-chip">{{ skill }}</span>
105
105
  {% endfor %}
106
106
  </div>
@@ -86,17 +86,17 @@
86
86
  {% for p in projects %}
87
87
  <a href="/{{ user.username }}/{{ p.slug }}" class="ed-project-card">
88
88
  <h3 class="ed-project-card-title">{{ p.title }}</h3>
89
- {% if p.narrative %}
90
- <p class="ed-project-card-narrative">{{ p.narrative }}</p>
89
+ {% if p.tagline != blank %}
90
+ <p class="ed-project-card-narrative">{{ p.tagline }}</p>
91
91
  {% endif %}
92
92
  <div class="ed-project-card-stats">
93
93
  <span class="ed-project-card-stat"><strong>{{ p.totalSessions }}</strong> sessions</span>
94
94
  <span class="ed-project-card-stat"><strong>{{ p.totalLoc | localeNumber }}</strong> LOC</span>
95
95
  <span class="ed-project-card-stat"><strong>{{ p.totalDurationMinutes | formatDuration }}</strong></span>
96
96
  </div>
97
- {% if p.skills.size > 0 %}
97
+ {% if p.profileSkills.size > 0 %}
98
98
  <div class="ed-chip-list">
99
- {% for skill in p.skills %}
99
+ {% for skill in p.profileSkills %}
100
100
  <span class="chip chip--violet">{{ skill }}</span>
101
101
  {% endfor %}
102
102
  </div>
@@ -156,7 +156,7 @@
156
156
  .editorial .ed-stat-label {
157
157
  display: block;
158
158
  font-family: var(--font-mono);
159
- font-size: 0.6875rem;
159
+ font-size: 0.75rem;
160
160
  text-transform: uppercase;
161
161
  letter-spacing: 0.05em;
162
162
  color: var(--on-surface-variant);
@@ -707,6 +707,11 @@
707
707
  border-radius: 3px;
708
708
  transition: width 0.6s ease-out;
709
709
  }
710
+ @media (prefers-reduced-motion: reduce) {
711
+ .editorial .ed-agent-bar-fill {
712
+ transition: none;
713
+ }
714
+ }
710
715
  .editorial .ed-agent-meta {
711
716
  font-family: var(--font-mono);
712
717
  font-size: 0.6875rem;
@@ -88,12 +88,12 @@
88
88
  <h3 class="project-card-title">{{ p.title }}</h3>
89
89
  <span class="project-card-arrow" aria-hidden="true">&rarr;</span>
90
90
  </div>
91
- {% if p.narrative %}
92
- <p class="project-card-narrative">{{ p.narrative }}</p>
91
+ {% if p.tagline != blank %}
92
+ <p class="project-card-narrative">{{ p.tagline }}</p>
93
93
  {% endif %}
94
- {% if p.skills.size > 0 %}
94
+ {% if p.profileSkills.size > 0 %}
95
95
  <div class="project-card-skills">
96
- {% for skill in p.skills %}
96
+ {% for skill in p.profileSkills %}
97
97
  <span class="skill-chip">{{ skill }}</span>
98
98
  {% endfor %}
99
99
  </div>
@@ -302,7 +302,7 @@ body { background: var(--bg); color: var(--text); }
302
302
  }
303
303
  .ember .stat-label {
304
304
  font-family: var(--font-mono);
305
- font-size: 11px;
305
+ font-size: 12px;
306
306
  color: var(--text-muted);
307
307
  text-transform: uppercase;
308
308
  letter-spacing: 0.05em;
@@ -319,7 +319,7 @@ body { background: var(--bg); color: var(--text); }
319
319
  white-space: nowrap;
320
320
  }
321
321
  .ember.heyiam-project .stat-label {
322
- font-size: 10px;
322
+ font-size: 12px;
323
323
  margin-top: 2px;
324
324
  }
325
325
 
@@ -91,12 +91,12 @@
91
91
  <div class="project-card-header">
92
92
  <a href="/{{ user.username }}/{{ p.slug }}" class="project-name">{{ p.title }}</a>
93
93
  </div>
94
- {% if p.narrative %}
95
- <p class="project-narrative">{{ p.narrative }}</p>
94
+ {% if p.tagline != blank %}
95
+ <p class="project-narrative">{{ p.tagline }}</p>
96
96
  {% endif %}
97
- {% if p.skills.size > 0 %}
97
+ {% if p.profileSkills.size > 0 %}
98
98
  <div class="project-skills">
99
- {% for skill in p.skills %}
99
+ {% for skill in p.profileSkills %}
100
100
  <span class="skill-chip">{{ skill }}</span>
101
101
  {% endfor %}
102
102
  </div>
@@ -164,7 +164,7 @@
164
164
  font-size: 24px;
165
165
  }
166
166
  .glacier.heyiam-project .stat-label {
167
- font-size: 11px;
167
+ font-size: 12px;
168
168
  text-transform: uppercase;
169
169
  letter-spacing: 0.04em;
170
170
  }
@@ -817,7 +817,7 @@ a.session-card:hover, a.featured-card:hover {
817
817
  }
818
818
  .session-stat-label {
819
819
  font-family: var(--font-mono);
820
- font-size: 11px;
820
+ font-size: 12px;
821
821
  color: var(--fg-muted);
822
822
  text-transform: uppercase;
823
823
  letter-spacing: 0.04em;
@@ -151,17 +151,17 @@
151
151
  <h2 class="project-title">{{ p.title }}</h2>
152
152
  <svg class="project-arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="7" y1="17" x2="17" y2="7"/><polyline points="7 7 17 7 17 17"/></svg>
153
153
  </div>
154
- {% if p.narrative %}
155
- <p class="project-narrative">{{ p.narrative | truncate: 120 }}</p>
154
+ {% if p.tagline != blank %}
155
+ <p class="project-narrative">{{ p.tagline }}</p>
156
156
  {% endif %}
157
157
  <div class="project-meta">
158
158
  <span class="project-meta-item"><strong>{{ p.totalSessions }}</strong> sessions</span>
159
159
  <span class="project-meta-item"><strong>{{ p.totalDurationMinutes | formatDuration }}</strong></span>
160
160
  <span class="project-meta-item"><strong>{{ p.totalLoc | formatLoc }}</strong> LOC</span>
161
161
  </div>
162
- {% if p.skills.size > 0 %}
162
+ {% if p.profileSkills.size > 0 %}
163
163
  <div class="project-skills">
164
- {% for skill in p.skills %}
164
+ {% for skill in p.profileSkills %}
165
165
  <span class="skill-chip chip">{{ skill }}</span>
166
166
  {% endfor %}
167
167
  </div>
@@ -333,7 +333,7 @@
333
333
  }
334
334
  .grid .stat-label {
335
335
  font-family: var(--font-mono);
336
- font-size: 11px;
336
+ font-size: 12px;
337
337
  text-transform: uppercase;
338
338
  letter-spacing: 0.06em;
339
339
  color: var(--fg-muted);
@@ -1435,7 +1435,7 @@
1435
1435
  gap: 4px;
1436
1436
  }
1437
1437
  .grid .nav-links a {
1438
- font-size: 13px;
1438
+ font-size: 14px;
1439
1439
  padding: 6px 10px;
1440
1440
  }
1441
1441
  }
@@ -107,12 +107,12 @@
107
107
  <span class="project-stat-label">Lines changed</span>
108
108
  </div>
109
109
  </div>
110
- {% if p.narrative %}
111
- <div class="narrative-card">{{ p.narrative }}</div>
110
+ {% if p.tagline != blank %}
111
+ <div class="narrative-card">{{ p.tagline }}</div>
112
112
  {% endif %}
113
- {% if p.skills.size > 0 %}
113
+ {% if p.profileSkills.size > 0 %}
114
114
  <div class="chips">
115
- {% for skill in p.skills %}
115
+ {% for skill in p.profileSkills %}
116
116
  <span>{{ skill }}</span>
117
117
  {% endfor %}
118
118
  </div>
@@ -190,7 +190,7 @@ body {
190
190
  }
191
191
  .kinetic .stat-label {
192
192
  font-family: var(--font-mono);
193
- font-size: 0.5rem;
193
+ font-size: 0.75rem;
194
194
  text-transform: uppercase;
195
195
  letter-spacing: 0.08em;
196
196
  color: var(--text-3);
@@ -222,7 +222,7 @@ body {
222
222
  }
223
223
  .kinetic .leverage-row .leverage-sub {
224
224
  font-family: var(--font-mono);
225
- font-size: 0.5rem;
225
+ font-size: 0.75rem;
226
226
  text-transform: uppercase;
227
227
  letter-spacing: 0.08em;
228
228
  color: var(--text-3);
@@ -248,7 +248,7 @@ body {
248
248
  display: flex;
249
249
  justify-content: space-between;
250
250
  font-family: var(--font-mono);
251
- font-size: 0.5rem;
251
+ font-size: 0.75rem;
252
252
  text-transform: uppercase;
253
253
  letter-spacing: 0.08em;
254
254
  color: var(--text-3);
@@ -354,7 +354,7 @@ body {
354
354
  }
355
355
  .kinetic .project-stat-label {
356
356
  font-family: var(--font-mono);
357
- font-size: 0.5rem;
357
+ font-size: 0.75rem;
358
358
  text-transform: uppercase;
359
359
  letter-spacing: 0.08em;
360
360
  color: var(--text-3);
@@ -497,7 +497,7 @@ body {
497
497
  }
498
498
  .kinetic .split-stat-label {
499
499
  font-family: var(--font-mono);
500
- font-size: 0.625rem;
500
+ font-size: 0.75rem;
501
501
  color: var(--text-3);
502
502
  text-transform: uppercase;
503
503
  letter-spacing: 0.08em;
@@ -142,17 +142,17 @@
142
142
  <span class="project-card__source">{{ p.publishedCount }} session{% if p.publishedCount != 1 %}s{% endif %} published</span>
143
143
  {% endif %}
144
144
  </div>
145
- {% if p.narrative != blank %}
146
- <p class="project-card__narrative">{{ p.narrative }}</p>
145
+ {% if p.tagline != blank %}
146
+ <p class="project-card__narrative">{{ p.tagline }}</p>
147
147
  {% endif %}
148
148
  <div class="project-card__stats">
149
149
  <span><strong>{{ p.totalSessions }}</strong> sessions</span>
150
150
  <span><strong>{{ p.totalDurationMinutes | formatDuration }}</strong></span>
151
151
  <span><strong>{{ p.totalLoc | localeNumber }}</strong> LOC</span>
152
152
  </div>
153
- {% if p.skills.size > 0 %}
153
+ {% if p.profileSkills.size > 0 %}
154
154
  <div class="project-card__skills">
155
- {% for skill in p.skills %}
155
+ {% for skill in p.profileSkills %}
156
156
  <span class="skill-chip">{{ skill }}</span>
157
157
  {% endfor %}
158
158
  </div>
@@ -320,7 +320,7 @@ body { background: var(--mer-bg); color: var(--mer-text); }
320
320
  }
321
321
 
322
322
  .meridian .session-stats .stat-cell__label {
323
- font-size: 0.6875rem;
323
+ font-size: 0.75rem;
324
324
  }
325
325
 
326
326
  /* ── Stat Cell (shared) ── */
@@ -52,9 +52,9 @@
52
52
  <li class="mn-project-item">
53
53
  <a href="/{{ user.username }}/{{ p.slug }}" class="mn-project-link">{{ p.title }}</a>
54
54
  <span class="mn-meta">{{ p.totalSessions }} sessions &middot; {{ p.totalDurationMinutes | formatDuration }} &middot; {{ p.totalLoc | formatLoc }} lines</span>
55
- {% if p.narrative != blank %}<span class="mn-meta">{{ p.narrative | truncate: 120 }}</span>{% endif %}
56
- {% if p.skills.size > 0 %}
57
- <span class="mn-meta mn-skill-line">{% for skill in p.skills %}{{ skill }}{% unless forloop.last %}, {% endunless %}{% endfor %}</span>
55
+ {% if p.tagline != blank %}<span class="mn-meta">{{ p.tagline }}</span>{% endif %}
56
+ {% if p.profileSkills.size > 0 %}
57
+ <span class="mn-meta mn-skill-line">{% for skill in p.profileSkills %}{{ skill }}{% unless forloop.last %}, {% endunless %}{% endfor %}</span>
58
58
  {% endif %}
59
59
  </li>
60
60
  {% endfor %}
@@ -119,17 +119,17 @@
119
119
  <h3 class="project-name">{{ p.title }}</h3>
120
120
  </div>
121
121
  <div class="project-card-body">
122
- {% if p.narrative != blank %}
123
- <p class="project-narrative">{{ p.narrative }}</p>
122
+ {% if p.tagline != blank %}
123
+ <p class="project-narrative">{{ p.tagline }}</p>
124
124
  {% endif %}
125
125
  <div class="project-stats-row">
126
126
  <span class="project-stat"><strong>{{ p.totalSessions }}</strong> sessions</span>
127
127
  <span class="project-stat"><strong>{{ p.totalDurationMinutes | formatDuration }}</strong></span>
128
128
  <span class="project-stat"><strong>{{ p.totalLoc | localeNumber }}</strong> LOC</span>
129
129
  </div>
130
- {% if p.skills.size > 0 %}
130
+ {% if p.profileSkills.size > 0 %}
131
131
  <div class="project-tags">
132
- {% for skill in p.skills %}
132
+ {% for skill in p.profileSkills %}
133
133
  <span class="tag">[{{ skill }}]</span>
134
134
  {% endfor %}
135
135
  </div>
@@ -12,7 +12,7 @@ body { background: var(--mono-bg, #0a0a0a); color: var(--mono-text, #e0e0e0); }
12
12
  background: var(--mono-bg, #0a0a0a);
13
13
  color: var(--mono-text, #e0e0e0);
14
14
  font-family: var(--font, 'JetBrains Mono', monospace);
15
- font-size: 14px;
15
+ font-size: 16px;
16
16
  line-height: 1.6;
17
17
  -webkit-font-smoothing: antialiased;
18
18
  }
@@ -996,6 +996,20 @@ body { background: var(--mono-bg, #0a0a0a); color: var(--mono-text, #e0e0e0); }
996
996
  .mono .git-log-entry { font-size: 0.75rem; }
997
997
  }
998
998
 
999
+ @media (max-width: 480px) {
1000
+ .mono .mono-page { padding: 1rem 0.75rem; }
1001
+ .mono .hero-title { font-size: 1.25rem; }
1002
+ .mono .hero-title--project { font-size: 1.25rem; }
1003
+ .mono .hero-title--session { font-size: 1.0625rem; }
1004
+ .mono .stats-row,
1005
+ .mono .stats-grid { grid-template-columns: 1fr; }
1006
+ .mono .stat-cell { padding: 0.625rem 0.75rem; }
1007
+ .mono .terminal-header { padding: 0.375rem 0.75rem; font-size: 0.6875rem; }
1008
+ .mono .ascii-label { width: 50px; font-size: 0.5625rem; }
1009
+ .mono .hero-meta { flex-direction: column; align-items: flex-start; gap: 0.25rem; }
1010
+ .mono .hero-contact { flex-direction: column; align-items: center; gap: 0.25rem; }
1011
+ }
1012
+
999
1013
  @media (prefers-reduced-motion: reduce) {
1000
1014
  .mono .hero-title,
1001
1015
  .mono .hero-title--project {
@@ -85,12 +85,12 @@
85
85
  {% for p in projects %}
86
86
  <article class="project-card fade-in">
87
87
  <a href="/{{ user.username }}/{{ p.slug }}" class="project-title">{{ p.title }}</a>
88
- {% if p.narrative != blank %}
89
- <p class="project-narrative">{{ p.narrative | truncate: 120 }}</p>
88
+ {% if p.tagline != blank %}
89
+ <p class="project-narrative">{{ p.tagline }}</p>
90
90
  {% endif %}
91
- {% if p.skills.size > 0 %}
91
+ {% if p.profileSkills.size > 0 %}
92
92
  <ul class="skills-list" aria-label="Skills used in {{ p.title }}">
93
- {% for skill in p.skills %}
93
+ {% for skill in p.profileSkills %}
94
94
  <li class="skill-chip">{{ skill }}</li>
95
95
  {% endfor %}
96
96
  </ul>
@@ -17,8 +17,8 @@ body { background: var(--neon-bg); color: var(--neon-text); }
17
17
  --neon-cyan-dim: rgba(34, 211, 238, 0.15);
18
18
  --neon-cyan-glow: rgba(34, 211, 238, 0.3);
19
19
  --neon-text: #f0e6ff;
20
- --neon-text-secondary: #a78bbd;
21
- --neon-text-tertiary: #6b5280;
20
+ --neon-text-secondary: #c4abd9;
21
+ --neon-text-tertiary: #a894c0;
22
22
  --neon-border: rgba(244, 114, 182, 0.2);
23
23
  --neon-border-cyan: rgba(34, 211, 238, 0.2);
24
24
  --neon-font-display: 'Space Grotesk', system-ui, sans-serif;
@@ -165,10 +165,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
165
165
  font-family: var(--neon-font-display);
166
166
  font-size: clamp(2.25rem, 5vw, 3.5rem);
167
167
  font-weight: 700;
168
- background: linear-gradient(135deg, var(--neon-pink), var(--neon-cyan));
169
- -webkit-background-clip: text;
170
- -webkit-text-fill-color: transparent;
171
- background-clip: text;
168
+ color: var(--neon-text);
172
169
  margin-bottom: 1rem;
173
170
  line-height: 1.15;
174
171
  }
@@ -339,7 +336,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
339
336
  .neon .project-narrative {
340
337
  color: var(--neon-text-secondary);
341
338
  margin-top: 0.75rem;
342
- font-size: 0.9375rem;
339
+ font-size: 1rem;
343
340
  line-height: 1.65;
344
341
  }
345
342
 
@@ -577,10 +574,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
577
574
  font-family: var(--neon-font-display);
578
575
  font-size: clamp(2rem, 4.5vw, 3rem);
579
576
  font-weight: 700;
580
- background: linear-gradient(135deg, var(--neon-pink), var(--neon-cyan));
581
- -webkit-background-clip: text;
582
- -webkit-text-fill-color: transparent;
583
- background-clip: text;
577
+ color: var(--neon-text);
584
578
  line-height: 1.15;
585
579
  margin-bottom: 0.75rem;
586
580
  }
@@ -638,7 +632,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
638
632
  .neon .narrative p {
639
633
  color: var(--neon-text-secondary);
640
634
  margin-bottom: 1rem;
641
- font-size: 0.9375rem;
635
+ font-size: 1rem;
642
636
  line-height: 1.7;
643
637
  }
644
638
 
@@ -666,7 +660,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
666
660
  .neon .stat-item:nth-child(odd) .value { color: var(--neon-pink); }
667
661
  .neon .stat-item:nth-child(even) .value { color: var(--neon-cyan); }
668
662
  .neon .stat-item .label {
669
- font-size: 0.6875rem;
663
+ font-size: 0.75rem;
670
664
  color: var(--neon-text-tertiary);
671
665
  margin-top: 0.15rem;
672
666
  text-transform: uppercase;
@@ -789,7 +783,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
789
783
  border: 1px solid var(--neon-border);
790
784
  border-radius: var(--neon-radius-lg);
791
785
  margin-bottom: 0.75rem;
792
- font-size: 0.9375rem;
786
+ font-size: 1rem;
793
787
  color: var(--neon-text-secondary);
794
788
  position: relative;
795
789
  padding-inline-start: 3rem;
@@ -911,10 +905,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
911
905
  font-family: var(--neon-font-display);
912
906
  font-size: clamp(1.5rem, 3.5vw, 2.25rem);
913
907
  font-weight: 700;
914
- background: linear-gradient(135deg, var(--neon-pink), var(--neon-cyan));
915
- -webkit-background-clip: text;
916
- -webkit-text-fill-color: transparent;
917
- background-clip: text;
908
+ color: var(--neon-text);
918
909
  line-height: 1.2;
919
910
  margin-bottom: 1rem;
920
911
  }
@@ -957,7 +948,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
957
948
  .neon .session-stat:nth-child(odd) .value { color: var(--neon-pink); }
958
949
  .neon .session-stat:nth-child(even) .value { color: var(--neon-cyan); }
959
950
  .neon .session-stat .label {
960
- font-size: 0.6875rem;
951
+ font-size: 0.75rem;
961
952
  color: var(--neon-text-tertiary);
962
953
  text-transform: uppercase;
963
954
  letter-spacing: 0.04em;
@@ -995,7 +986,7 @@ body { background: var(--neon-bg); color: var(--neon-text); }
995
986
  }
996
987
  .neon .dev-take p {
997
988
  color: var(--neon-text-secondary);
998
- font-size: 0.9375rem;
989
+ font-size: 1rem;
999
990
  font-style: italic;
1000
991
  line-height: 1.65;
1001
992
  }
@@ -97,12 +97,12 @@
97
97
  <a href="/{{ user.username }}/{{ p.slug }}" class="noir-project" aria-label="{{ p.title }} project">
98
98
  <div>
99
99
  <h3 class="noir-project__title">{{ p.title }}</h3>
100
- {% if p.narrative != blank %}
101
- <p class="noir-project__narrative">{{ p.narrative }}</p>
100
+ {% if p.tagline != blank %}
101
+ <p class="noir-project__narrative">{{ p.tagline }}</p>
102
102
  {% endif %}
103
- {% if p.skills.size > 0 %}
103
+ {% if p.profileSkills.size > 0 %}
104
104
  <div class="noir-project__skills" aria-label="Skills">
105
- {% for skill in p.skills %}
105
+ {% for skill in p.profileSkills %}
106
106
  <span class="noir-chip">{{ skill }}</span>
107
107
  {% endfor %}
108
108
  </div>
@@ -10,8 +10,8 @@
10
10
  --noir-border: #2a2a2a;
11
11
  --noir-border-strong: #404040;
12
12
  --noir-text: #e5e5e5;
13
- --noir-text-secondary: #a3a3a3;
14
- --noir-text-muted: #737373;
13
+ --noir-text-secondary: #b8b8b8;
14
+ --noir-text-muted: #9a9a9a;
15
15
  --noir-white: #ffffff;
16
16
  --noir-highlight: #e5e5e5;
17
17
  --noir-rule: #333333;
@@ -194,7 +194,7 @@ body { background: var(--noir-bg); color: var(--noir-text); }
194
194
 
195
195
  .noir-stats-row__label {
196
196
  font-family: var(--font-mono);
197
- font-size: 0.6875rem;
197
+ font-size: 0.75rem;
198
198
  color: var(--noir-text-muted);
199
199
  text-transform: uppercase;
200
200
  letter-spacing: 0.1em;
@@ -345,7 +345,7 @@ body { background: var(--noir-bg); color: var(--noir-text); }
345
345
 
346
346
  .noir-project__stat-label {
347
347
  font-family: var(--font-mono);
348
- font-size: 0.6875rem;
348
+ font-size: 0.75rem;
349
349
  color: var(--noir-text-muted);
350
350
  text-transform: uppercase;
351
351
  letter-spacing: 0.08em;
@@ -507,7 +507,7 @@ body { background: var(--noir-bg); color: var(--noir-text); }
507
507
 
508
508
  .noir-stat-cell__label {
509
509
  font-family: var(--font-mono);
510
- font-size: 0.625rem;
510
+ font-size: 0.75rem;
511
511
  color: var(--noir-text-muted);
512
512
  text-transform: uppercase;
513
513
  letter-spacing: 0.1em;
@@ -96,12 +96,12 @@
96
96
  <span>{{ p.totalLoc | formatLoc }} LOC</span>
97
97
  </div>
98
98
  </div>
99
- {% if p.narrative != blank %}
100
- <p class="project-narrative">{{ p.narrative | truncate: 120 }}</p>
99
+ {% if p.tagline != blank %}
100
+ <p class="project-narrative">{{ p.tagline }}</p>
101
101
  {% endif %}
102
- {% if p.skills.size > 0 %}
102
+ {% if p.profileSkills.size > 0 %}
103
103
  <div class="project-skills">
104
- {% for skill in p.skills %}
104
+ {% for skill in p.profileSkills %}
105
105
  <span class="skill-tag chip">{{ skill }}</span>
106
106
  {% endfor %}
107
107
  </div>
@@ -327,7 +327,7 @@ body { background: var(--obs-bg); color: var(--obs-text); }
327
327
  }
328
328
  .obsidian .stat-label {
329
329
  font-family: var(--font-mono);
330
- font-size: 11px;
330
+ font-size: 12px;
331
331
  text-transform: uppercase;
332
332
  letter-spacing: 0.08em;
333
333
  color: var(--fg-dim);
@@ -340,7 +340,7 @@ body { background: var(--obs-bg); color: var(--obs-text); }
340
340
  font-size: clamp(20px, 3vw, 28px);
341
341
  }
342
342
  .obsidian.heyiam-project .stat-label {
343
- font-size: 10px;
343
+ font-size: 12px;
344
344
  }
345
345
  .obsidian .stat-card--leverage {
346
346
  grid-column: span 2;