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,1311 @@
1
+ /* ── Daylight Design Tokens ── */
2
+ :root {
3
+ --dl-bg: #ffffff;
4
+ --dl-surface: #f8fafc;
5
+ --dl-card: #ffffff;
6
+ --dl-card-tint: #eff6ff;
7
+ --dl-text: #0f172a;
8
+ --dl-text-secondary: #475569;
9
+ --dl-text-tertiary: #94a3b8;
10
+ --dl-accent: #0ea5e9;
11
+ --dl-accent-light: #e0f2fe;
12
+ --dl-accent-dark: #0284c7;
13
+ --dl-accent-green: #10b981;
14
+ --dl-accent-green-light: #d1fae5;
15
+ --dl-border: #e2e8f0;
16
+ --dl-shadow-blue: 0 1px 3px rgba(14, 165, 233, 0.08), 0 1px 2px rgba(14, 165, 233, 0.04);
17
+ --dl-shadow-blue-lg: 0 4px 16px rgba(14, 165, 233, 0.10), 0 2px 4px rgba(14, 165, 233, 0.06);
18
+
19
+ --dl-font-display: 'DM Sans', system-ui, sans-serif;
20
+ --dl-font-body: 'Inter', system-ui, sans-serif;
21
+ --dl-font-mono: 'IBM Plex Mono', monospace;
22
+
23
+ --dl-radius: 12px;
24
+ --dl-radius-lg: 16px;
25
+ --dl-max-width: 1080px;
26
+
27
+ --dl-anim-duration: 600ms;
28
+ --dl-anim-ease: cubic-bezier(0.34, 1.56, 0.64, 1);
29
+ --dl-anim-ease-soft: cubic-bezier(0.25, 0.1, 0.25, 1);
30
+ }
31
+
32
+ @media (prefers-reduced-motion: reduce) {
33
+ :root { --dl-anim-duration: 0ms; }
34
+ .dl-bounce { transform: none !important; opacity: 1 !important; }
35
+ .dl-stat-card:hover,
36
+ .dl-project-card:hover,
37
+ .dl-session-card:hover,
38
+ .dl-source-card:hover,
39
+ .dl-skill-chip-lg:hover { transform: none; }
40
+ .dl-activity-cell:hover { transform: none; }
41
+ .dl-chart-bar:hover { opacity: 1; }
42
+ }
43
+
44
+ /* ── Base ── */
45
+ .daylight {
46
+ font-family: var(--dl-font-body);
47
+ color: var(--dl-text);
48
+ line-height: 1.6;
49
+ -webkit-font-smoothing: antialiased;
50
+ -moz-osx-font-smoothing: grayscale;
51
+ }
52
+
53
+ .daylight a {
54
+ color: var(--dl-accent);
55
+ text-decoration: none;
56
+ transition: color 200ms var(--dl-anim-ease-soft);
57
+ }
58
+ .daylight a:visited { color: var(--dl-accent); }
59
+ .daylight a:hover { color: var(--dl-accent-dark); }
60
+ .daylight a:focus-visible {
61
+ outline: 2px solid var(--dl-accent);
62
+ outline-offset: 3px;
63
+ border-radius: 4px;
64
+ }
65
+
66
+ /* ── Skip Link ── */
67
+ .dl-skip-link {
68
+ position: absolute;
69
+ top: -100%;
70
+ inset-inline-start: 1rem;
71
+ background: var(--dl-accent);
72
+ color: #ffffff;
73
+ padding: 0.5rem 1rem;
74
+ font-family: var(--dl-font-body);
75
+ font-size: 0.875rem;
76
+ font-weight: 500;
77
+ border-radius: var(--dl-radius);
78
+ z-index: 100;
79
+ text-decoration: none;
80
+ }
81
+ .dl-skip-link:focus { top: 1rem; }
82
+
83
+ /* ── Layout ── */
84
+ .dl-container {
85
+ max-width: var(--dl-max-width);
86
+ margin-inline: auto;
87
+ padding-inline: 1.25rem;
88
+ }
89
+
90
+ /* ── Navigation ── */
91
+ .dl-nav {
92
+ background: rgba(255, 255, 255, 0.92);
93
+ backdrop-filter: blur(8px);
94
+ border-block-end: 1px solid var(--dl-border);
95
+ position: sticky;
96
+ top: 0;
97
+ z-index: 50;
98
+ padding-block: 1rem;
99
+ }
100
+ .dl-nav-inner {
101
+ display: flex;
102
+ align-items: center;
103
+ gap: 0.5rem;
104
+ font-family: var(--dl-font-body);
105
+ font-size: 0.875rem;
106
+ font-weight: 500;
107
+ }
108
+ .dl-nav-brand {
109
+ font-family: var(--dl-font-display);
110
+ font-weight: 700;
111
+ font-size: 1rem;
112
+ color: var(--dl-accent);
113
+ text-decoration: none;
114
+ }
115
+ .dl-nav-brand:hover { color: var(--dl-accent-dark); }
116
+ .dl-nav-sep { color: var(--dl-text-tertiary); margin-inline: 0.25rem; }
117
+ .dl-nav-link {
118
+ color: var(--dl-text-secondary);
119
+ text-decoration: none;
120
+ padding: 0.25rem 0.5rem;
121
+ border-radius: 6px;
122
+ transition: background 200ms var(--dl-anim-ease-soft), color 200ms var(--dl-anim-ease-soft);
123
+ }
124
+ .dl-nav-link:hover { background: var(--dl-accent-light); color: var(--dl-accent); }
125
+ .dl-nav-link[aria-current="page"] { background: var(--dl-accent-light); color: var(--dl-accent); }
126
+
127
+ /* ── Breadcrumb ── */
128
+ .dl-breadcrumb {
129
+ padding-block: 1rem;
130
+ font-family: var(--dl-font-mono);
131
+ font-size: 0.8125rem;
132
+ color: var(--dl-text-tertiary);
133
+ display: flex;
134
+ align-items: center;
135
+ gap: 0.375rem;
136
+ flex-wrap: wrap;
137
+ }
138
+ .dl-breadcrumb a { color: var(--dl-text-tertiary); }
139
+ .dl-breadcrumb a:hover { color: var(--dl-accent); }
140
+ .dl-breadcrumb-current { color: var(--dl-text-secondary); }
141
+
142
+ /* ── Hero / Portfolio Header ── */
143
+ .dl-hero {
144
+ padding-block: 4rem 3rem;
145
+ text-align: center;
146
+ }
147
+ @media (min-width: 768px) {
148
+ .dl-hero { padding-block: 5rem 3.5rem; }
149
+ }
150
+ .dl-hero-name {
151
+ font-family: var(--dl-font-display);
152
+ font-weight: 700;
153
+ font-size: 2.5rem;
154
+ line-height: 1.15;
155
+ color: var(--dl-text);
156
+ margin-block-end: 1rem;
157
+ }
158
+ @media (min-width: 768px) {
159
+ .dl-hero-name { font-size: 3.25rem; }
160
+ }
161
+ .dl-hero-bio {
162
+ font-size: 1.125rem;
163
+ line-height: 1.7;
164
+ color: var(--dl-text-secondary);
165
+ max-width: 600px;
166
+ margin-inline: auto;
167
+ margin-block-end: 0.75rem;
168
+ }
169
+ .dl-hero-location {
170
+ font-family: var(--dl-font-mono);
171
+ font-size: 0.8125rem;
172
+ color: var(--dl-text-tertiary);
173
+ }
174
+ .dl-hero-photo {
175
+ width: 120px;
176
+ height: 120px;
177
+ border-radius: 50%;
178
+ object-fit: cover;
179
+ object-position: center 15%;
180
+ margin-inline: auto;
181
+ margin-block-end: 1.5rem;
182
+ display: block;
183
+ border: 3px solid var(--dl-accent-light);
184
+ box-shadow: var(--dl-shadow-blue-lg);
185
+ }
186
+ .dl-hero-links {
187
+ display: flex;
188
+ flex-wrap: wrap;
189
+ justify-content: center;
190
+ gap: 1rem;
191
+ margin-block-start: 1.25rem;
192
+ list-style: none;
193
+ }
194
+ .dl-hero-links a {
195
+ display: inline-flex;
196
+ align-items: center;
197
+ gap: 0.375rem;
198
+ font-family: var(--dl-font-mono);
199
+ font-size: 0.8125rem;
200
+ color: var(--dl-text-secondary);
201
+ transition: color 200ms var(--dl-anim-ease-soft);
202
+ }
203
+ .dl-hero-links a:hover { color: var(--dl-accent-dark); }
204
+ .dl-hero-links svg { flex-shrink: 0; }
205
+ @media (max-width: 768px) {
206
+ .dl-hero-photo { width: 80px; height: 80px; }
207
+ }
208
+
209
+ /* ── Stats Row ── */
210
+ .dl-stats {
211
+ display: grid;
212
+ grid-template-columns: repeat(2, 1fr);
213
+ gap: 1rem;
214
+ margin-block-end: 3.5rem;
215
+ }
216
+ @media (min-width: 768px) {
217
+ .dl-stats { grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
218
+ }
219
+ .dl-stats-row {
220
+ display: grid;
221
+ grid-template-columns: repeat(2, 1fr);
222
+ gap: 1rem;
223
+ margin-block-end: 3rem;
224
+ }
225
+ @media (min-width: 768px) {
226
+ .dl-stats-row { grid-template-columns: repeat(3, 1fr); }
227
+ }
228
+ .dl-stat-card {
229
+ background: var(--dl-card);
230
+ border: 1px solid var(--dl-border);
231
+ border-radius: var(--dl-radius-lg);
232
+ padding: 1.5rem;
233
+ text-align: center;
234
+ box-shadow: var(--dl-shadow-blue);
235
+ transition: box-shadow 300ms var(--dl-anim-ease-soft), transform 300ms var(--dl-anim-ease-soft);
236
+ }
237
+ .dl-stat-card:hover {
238
+ box-shadow: var(--dl-shadow-blue-lg);
239
+ transform: translateY(-2px);
240
+ }
241
+ .dl-stat-number {
242
+ font-family: var(--dl-font-display);
243
+ font-weight: 700;
244
+ font-size: 2rem;
245
+ color: var(--dl-accent);
246
+ line-height: 1.2;
247
+ display: block;
248
+ }
249
+ .dl-stat-label {
250
+ font-family: var(--dl-font-body);
251
+ font-size: 0.8125rem;
252
+ font-weight: 500;
253
+ color: var(--dl-text-tertiary);
254
+ margin-block-start: 0.25rem;
255
+ text-transform: uppercase;
256
+ letter-spacing: 0.05em;
257
+ }
258
+
259
+ /* ── Leverage Card ── */
260
+ .dl-leverage-card {
261
+ max-width: 280px;
262
+ margin-inline: auto;
263
+ margin-block: 1.5rem;
264
+ background: var(--dl-card);
265
+ border: 1px solid var(--dl-border);
266
+ border-radius: var(--dl-radius);
267
+ padding: 1.5rem;
268
+ text-align: center;
269
+ box-shadow: 0 1px 3px rgba(0,0,0,0.04);
270
+ }
271
+ .dl-leverage-card__title {
272
+ font-family: var(--dl-font-body);
273
+ font-size: 0.8125rem;
274
+ font-weight: 500;
275
+ color: var(--dl-text-tertiary);
276
+ text-transform: uppercase;
277
+ letter-spacing: 0.05em;
278
+ margin-block-end: 1rem;
279
+ }
280
+ .dl-leverage-card svg { display: block; margin-inline: auto; }
281
+ .dl-leverage-card__values {
282
+ display: flex;
283
+ justify-content: center;
284
+ gap: 2rem;
285
+ margin-block-start: 1rem;
286
+ }
287
+ .dl-leverage-card__num {
288
+ font-family: var(--dl-font-display);
289
+ font-weight: 700;
290
+ font-size: 1.25rem;
291
+ color: var(--dl-text);
292
+ display: block;
293
+ }
294
+ .dl-leverage-card__lbl {
295
+ font-family: var(--dl-font-mono);
296
+ font-size: 0.625rem;
297
+ color: var(--dl-text-tertiary);
298
+ text-transform: uppercase;
299
+ letter-spacing: 0.06em;
300
+ display: block;
301
+ margin-block-start: 0.125rem;
302
+ }
303
+
304
+ /* ── Section Headings ── */
305
+ .dl-section-heading {
306
+ font-family: var(--dl-font-display);
307
+ font-weight: 700;
308
+ font-size: 1.5rem;
309
+ color: var(--dl-text);
310
+ margin-block-end: 1.5rem;
311
+ padding-block-end: 0.75rem;
312
+ border-block-end: 2px solid var(--dl-accent-light);
313
+ }
314
+
315
+ /* ── Project Cards (Portfolio) ── */
316
+ .dl-projects {
317
+ display: grid;
318
+ gap: 1.5rem;
319
+ margin-block-end: 4rem;
320
+ }
321
+ @media (min-width: 768px) {
322
+ .dl-projects { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
323
+ }
324
+ .dl-project-card {
325
+ background: var(--dl-card);
326
+ border: 1px solid var(--dl-border);
327
+ border-radius: var(--dl-radius-lg);
328
+ padding: 1.75rem;
329
+ box-shadow: var(--dl-shadow-blue);
330
+ transition: box-shadow 300ms var(--dl-anim-ease-soft), transform 300ms var(--dl-anim-ease-soft), border-color 300ms var(--dl-anim-ease-soft);
331
+ position: relative;
332
+ overflow: hidden;
333
+ }
334
+ .dl-project-card::before {
335
+ content: '';
336
+ position: absolute;
337
+ inset: 0;
338
+ background: linear-gradient(135deg, rgba(14, 165, 233, 0.03) 0%, rgba(14, 165, 233, 0.08) 100%);
339
+ opacity: 0;
340
+ transition: opacity 300ms var(--dl-anim-ease-soft);
341
+ pointer-events: none;
342
+ }
343
+ .dl-project-card:hover {
344
+ box-shadow: var(--dl-shadow-blue-lg);
345
+ transform: translateY(-3px);
346
+ border-color: var(--dl-accent-light);
347
+ }
348
+ .dl-project-card:hover::before { opacity: 1; }
349
+ .dl-project-title {
350
+ font-family: var(--dl-font-display);
351
+ font-weight: 600;
352
+ font-size: 1.25rem;
353
+ line-height: 1.3;
354
+ margin-block-end: 0.75rem;
355
+ }
356
+ .dl-project-title a { color: var(--dl-text); text-decoration: none; }
357
+ .dl-project-title a:hover { color: var(--dl-accent); }
358
+ .dl-project-narrative {
359
+ font-size: 0.9375rem;
360
+ line-height: 1.7;
361
+ color: var(--dl-text-secondary);
362
+ margin-block-end: 1.25rem;
363
+ }
364
+ .dl-project-meta {
365
+ font-family: var(--dl-font-mono);
366
+ font-size: 0.75rem;
367
+ color: var(--dl-text-tertiary);
368
+ margin-block-end: 1rem;
369
+ }
370
+ .dl-project-skills {
371
+ display: flex;
372
+ flex-wrap: wrap;
373
+ gap: 0.375rem;
374
+ margin-block-end: 1rem;
375
+ }
376
+
377
+ /* ── Skill Chips ── */
378
+ .dl-skill-chip {
379
+ display: inline-block;
380
+ font-family: var(--dl-font-body);
381
+ font-size: 0.75rem;
382
+ font-weight: 500;
383
+ color: var(--dl-accent);
384
+ background: var(--dl-accent-light);
385
+ padding: 0.25rem 0.625rem;
386
+ border-radius: 999px;
387
+ line-height: 1.4;
388
+ }
389
+ .dl-skill-chip-lg {
390
+ display: inline-flex;
391
+ align-items: center;
392
+ gap: 0.375rem;
393
+ font-family: var(--dl-font-body);
394
+ font-size: 0.8125rem;
395
+ font-weight: 500;
396
+ color: var(--dl-accent);
397
+ background: var(--dl-accent-light);
398
+ padding: 0.375rem 0.875rem;
399
+ border-radius: 999px;
400
+ line-height: 1.4;
401
+ transition: background 200ms var(--dl-anim-ease-soft), color 200ms var(--dl-anim-ease-soft), transform 200ms var(--dl-anim-ease);
402
+ }
403
+ .dl-skill-chip-lg:hover {
404
+ background: var(--dl-accent);
405
+ color: #ffffff;
406
+ transform: translateY(-1px);
407
+ }
408
+ .dl-skill-count {
409
+ font-family: var(--dl-font-mono);
410
+ font-size: 0.6875rem;
411
+ opacity: 0.7;
412
+ }
413
+
414
+ /* ── Project Header (project page) ── */
415
+ .dl-project-header {
416
+ padding-block: 3rem 2.5rem;
417
+ }
418
+ @media (min-width: 768px) {
419
+ .dl-project-header { padding-block: 4rem 3rem; }
420
+ }
421
+ .dl-project-header h1 {
422
+ font-family: var(--dl-font-display);
423
+ font-weight: 700;
424
+ font-size: 2.25rem;
425
+ color: var(--dl-text);
426
+ margin-block-end: 0.75rem;
427
+ }
428
+ @media (min-width: 768px) {
429
+ .dl-project-header h1 { font-size: 2.75rem; }
430
+ }
431
+ .dl-project-links {
432
+ display: flex;
433
+ flex-wrap: wrap;
434
+ gap: 1rem;
435
+ font-family: var(--dl-font-mono);
436
+ font-size: 0.8125rem;
437
+ margin-block-end: 1.5rem;
438
+ }
439
+ .dl-project-links a {
440
+ color: var(--dl-accent);
441
+ padding: 0.375rem 0.75rem;
442
+ background: var(--dl-accent-light);
443
+ border-radius: 999px;
444
+ }
445
+ .dl-project-links a:hover {
446
+ background: var(--dl-accent);
447
+ color: #ffffff;
448
+ }
449
+
450
+ /* ── Screenshot ── */
451
+ .dl-screenshot {
452
+ background: linear-gradient(135deg, var(--dl-accent-light), var(--dl-surface));
453
+ border: 1px solid var(--dl-border);
454
+ border-radius: var(--dl-radius-lg);
455
+ overflow: hidden;
456
+ margin-block-end: 2.5rem;
457
+ box-shadow: var(--dl-shadow-blue-lg);
458
+ }
459
+ .dl-screenshot img {
460
+ width: 100%;
461
+ display: block;
462
+ }
463
+ .dl-screenshot-bar {
464
+ background: var(--dl-surface);
465
+ border-block-end: 1px solid var(--dl-border);
466
+ padding: 0.625rem 1rem;
467
+ display: flex;
468
+ align-items: center;
469
+ gap: 0.5rem;
470
+ }
471
+ .dl-screenshot-dot {
472
+ width: 10px;
473
+ height: 10px;
474
+ border-radius: 50%;
475
+ background: var(--dl-border);
476
+ }
477
+ .dl-screenshot-dot:first-child { background: #fca5a5; }
478
+ .dl-screenshot-dot:nth-child(2) { background: #fcd34d; }
479
+ .dl-screenshot-dot:nth-child(3) { background: #86efac; }
480
+ .dl-screenshot-body {
481
+ max-height: 320px;
482
+ overflow-y: auto;
483
+ }
484
+ .dl-screenshot-body img {
485
+ width: 100%;
486
+ display: block;
487
+ }
488
+
489
+ /* ── Narrative ── */
490
+ .dl-narrative {
491
+ margin-block-end: 3rem;
492
+ }
493
+ .dl-narrative p {
494
+ font-size: 1rem;
495
+ line-height: 1.8;
496
+ color: var(--dl-text-secondary);
497
+ margin-block-end: 1.25rem;
498
+ }
499
+ .dl-narrative p:last-child { margin-block-end: 0; }
500
+
501
+ /* ── Chart Container ── */
502
+ .dl-chart-container {
503
+ background: var(--dl-card);
504
+ border: 1px solid var(--dl-border);
505
+ border-radius: var(--dl-radius-lg);
506
+ padding: 1.5rem;
507
+ margin-block-end: 3rem;
508
+ box-shadow: var(--dl-shadow-blue);
509
+ }
510
+ .dl-chart-title {
511
+ font-family: var(--dl-font-display);
512
+ font-weight: 600;
513
+ font-size: 1rem;
514
+ margin-block-end: 1.25rem;
515
+ color: var(--dl-text);
516
+ }
517
+ .dl-chart {
518
+ display: flex;
519
+ align-items: flex-end;
520
+ gap: 0.5rem;
521
+ height: 160px;
522
+ padding-block-start: 0.5rem;
523
+ }
524
+ @media (min-width: 768px) {
525
+ .dl-chart { gap: 0.75rem; }
526
+ }
527
+ .dl-chart-bar-group {
528
+ flex: 1;
529
+ display: flex;
530
+ flex-direction: column;
531
+ align-items: center;
532
+ gap: 0.375rem;
533
+ height: 100%;
534
+ justify-content: flex-end;
535
+ }
536
+ .dl-chart-bar {
537
+ width: 100%;
538
+ max-width: 56px;
539
+ border-radius: 6px 6px 2px 2px;
540
+ transition: opacity 200ms;
541
+ position: relative;
542
+ }
543
+ .dl-chart-bar:hover { opacity: 0.8; }
544
+ .dl-chart-bar-loc {
545
+ background: linear-gradient(180deg, var(--dl-accent), #38bdf8);
546
+ }
547
+ .dl-chart-bar-duration {
548
+ background: linear-gradient(180deg, var(--dl-accent-green), #34d399);
549
+ }
550
+ .dl-chart-label {
551
+ font-family: var(--dl-font-mono);
552
+ font-size: 0.625rem;
553
+ color: var(--dl-text-tertiary);
554
+ text-align: center;
555
+ white-space: nowrap;
556
+ }
557
+ .dl-chart-legend {
558
+ display: flex;
559
+ gap: 1.25rem;
560
+ margin-block-start: 1rem;
561
+ font-family: var(--dl-font-body);
562
+ font-size: 0.75rem;
563
+ color: var(--dl-text-tertiary);
564
+ }
565
+ .dl-chart-legend-dot {
566
+ display: inline-block;
567
+ width: 8px;
568
+ height: 8px;
569
+ border-radius: 50%;
570
+ margin-inline-end: 0.375rem;
571
+ vertical-align: middle;
572
+ }
573
+
574
+ /* ── Phase Timeline ── */
575
+ .dl-phases {
576
+ margin-block-end: 3rem;
577
+ }
578
+ .dl-phase-list {
579
+ list-style: none;
580
+ position: relative;
581
+ padding-inline-start: 2rem;
582
+ }
583
+ .dl-phase-list::before {
584
+ content: '';
585
+ position: absolute;
586
+ inset-inline-start: 7px;
587
+ top: 4px;
588
+ bottom: 4px;
589
+ width: 3px;
590
+ border-radius: 2px;
591
+ background: linear-gradient(180deg, var(--dl-accent), #38bdf8, var(--dl-accent-green));
592
+ }
593
+ .dl-phase-item {
594
+ position: relative;
595
+ margin-block-end: 1.5rem;
596
+ }
597
+ .dl-phase-item:last-child { margin-block-end: 0; }
598
+ .dl-phase-item::before {
599
+ content: '';
600
+ position: absolute;
601
+ inset-inline-start: -2rem;
602
+ top: 6px;
603
+ width: 13px;
604
+ height: 13px;
605
+ border-radius: 50%;
606
+ background: var(--dl-accent);
607
+ border: 3px solid var(--dl-bg);
608
+ box-shadow: 0 0 0 2px var(--dl-accent);
609
+ }
610
+ .dl-phase-name {
611
+ font-family: var(--dl-font-display);
612
+ font-weight: 600;
613
+ font-size: 1rem;
614
+ color: var(--dl-text);
615
+ }
616
+ .dl-phase-dates {
617
+ font-family: var(--dl-font-mono);
618
+ font-size: 0.75rem;
619
+ color: var(--dl-text-tertiary);
620
+ margin-block-start: 0.125rem;
621
+ }
622
+ .dl-phase-desc {
623
+ font-size: 0.875rem;
624
+ color: var(--dl-text-secondary);
625
+ margin-block-start: 0.375rem;
626
+ line-height: 1.6;
627
+ }
628
+
629
+ /* ── Skills Section (project) ── */
630
+ .dl-skills-section {
631
+ margin-block-end: 3rem;
632
+ }
633
+ .dl-skill-chips {
634
+ display: flex;
635
+ flex-wrap: wrap;
636
+ gap: 0.5rem;
637
+ }
638
+ .dl-skill-chips .dl-skill-chip {
639
+ font-size: 0.8125rem;
640
+ padding: 0.375rem 0.875rem;
641
+ transition: background 200ms var(--dl-anim-ease-soft), color 200ms var(--dl-anim-ease-soft);
642
+ }
643
+ .dl-skill-chips .dl-skill-chip:hover {
644
+ background: var(--dl-accent);
645
+ color: #ffffff;
646
+ }
647
+
648
+ /* ── Key Decisions ── */
649
+ .dl-decisions {
650
+ margin-block-end: 3rem;
651
+ }
652
+ .dl-decision-list {
653
+ list-style: none;
654
+ counter-reset: decisions;
655
+ }
656
+ .dl-decision-item {
657
+ counter-increment: decisions;
658
+ position: relative;
659
+ padding-inline-start: 2.5rem;
660
+ margin-block-end: 1.25rem;
661
+ font-size: 0.9375rem;
662
+ line-height: 1.7;
663
+ color: var(--dl-text-secondary);
664
+ }
665
+ .dl-decision-item::before {
666
+ content: counter(decisions);
667
+ position: absolute;
668
+ inset-inline-start: 0;
669
+ top: 0;
670
+ width: 1.75rem;
671
+ height: 1.75rem;
672
+ border-radius: 50%;
673
+ background: var(--dl-accent-light);
674
+ color: var(--dl-accent);
675
+ font-family: var(--dl-font-display);
676
+ font-weight: 700;
677
+ font-size: 0.8125rem;
678
+ display: flex;
679
+ align-items: center;
680
+ justify-content: center;
681
+ line-height: 1;
682
+ }
683
+
684
+ /* ── Source Breakdown ── */
685
+ .dl-source-section {
686
+ margin-block-end: 3rem;
687
+ }
688
+ .dl-source-breakdown {
689
+ display: flex;
690
+ align-items: center;
691
+ gap: 1.25rem;
692
+ flex-wrap: wrap;
693
+ }
694
+ .dl-source-bar-large {
695
+ flex: 1;
696
+ min-width: 200px;
697
+ height: 12px;
698
+ border-radius: 6px;
699
+ background: var(--dl-border);
700
+ overflow: hidden;
701
+ }
702
+ .dl-source-fill-large {
703
+ height: 100%;
704
+ border-radius: 6px;
705
+ background: linear-gradient(90deg, var(--dl-accent), #38bdf8);
706
+ }
707
+ .dl-source-labels {
708
+ display: flex;
709
+ gap: 1.5rem;
710
+ font-family: var(--dl-font-mono);
711
+ font-size: 0.8125rem;
712
+ color: var(--dl-text-secondary);
713
+ }
714
+
715
+ /* ── Session Cards (project page) ── */
716
+ .dl-sessions-section {
717
+ margin-block-end: 3rem;
718
+ }
719
+ .dl-session-grid {
720
+ display: grid;
721
+ gap: 1rem;
722
+ }
723
+ @media (min-width: 768px) {
724
+ .dl-session-grid { grid-template-columns: repeat(2, 1fr); }
725
+ }
726
+ .dl-session-card {
727
+ background: var(--dl-card);
728
+ border: 1px solid var(--dl-border);
729
+ border-radius: var(--dl-radius);
730
+ padding: 1.25rem;
731
+ box-shadow: var(--dl-shadow-blue);
732
+ transition: box-shadow 300ms var(--dl-anim-ease-soft), transform 300ms var(--dl-anim-ease-soft);
733
+ display: flex;
734
+ flex-direction: column;
735
+ gap: 0.5rem;
736
+ text-decoration: none;
737
+ color: inherit;
738
+ }
739
+ .dl-session-card:hover {
740
+ box-shadow: var(--dl-shadow-blue-lg);
741
+ transform: translateY(-2px);
742
+ }
743
+ .dl-session-card-title {
744
+ font-family: var(--dl-font-display);
745
+ font-weight: 600;
746
+ font-size: 0.9375rem;
747
+ color: var(--dl-text);
748
+ }
749
+ .dl-session-card-title a { color: var(--dl-text); }
750
+ .dl-session-card-title a:hover { color: var(--dl-accent); }
751
+ .dl-session-card-meta {
752
+ font-family: var(--dl-font-mono);
753
+ font-size: 0.75rem;
754
+ color: var(--dl-text-tertiary);
755
+ }
756
+ .dl-session-card-tag {
757
+ display: inline-block;
758
+ font-family: var(--dl-font-body);
759
+ font-size: 0.6875rem;
760
+ font-weight: 500;
761
+ color: var(--dl-accent);
762
+ background: var(--dl-accent-light);
763
+ padding: 0.125rem 0.5rem;
764
+ border-radius: 999px;
765
+ align-self: flex-start;
766
+ }
767
+
768
+ /* ── Project page stat overrides ── */
769
+ .daylight.heyiam-project .dl-stat-card { padding: 1.25rem; }
770
+ .daylight.heyiam-project .dl-stat-number { font-size: 1.75rem; }
771
+ .daylight.heyiam-project .dl-stat-label { font-size: 0.75rem; }
772
+
773
+ /* ── Project Card Source Bar (portfolio) ── */
774
+ .dl-project-source {
775
+ display: flex;
776
+ align-items: center;
777
+ gap: 0.75rem;
778
+ font-family: var(--dl-font-mono);
779
+ font-size: 0.75rem;
780
+ color: var(--dl-text-tertiary);
781
+ }
782
+ .dl-source-bar {
783
+ flex: 1;
784
+ height: 6px;
785
+ border-radius: 3px;
786
+ background: var(--dl-border);
787
+ overflow: hidden;
788
+ }
789
+ .dl-source-fill {
790
+ height: 100%;
791
+ border-radius: 3px;
792
+ background: linear-gradient(90deg, var(--dl-accent), #38bdf8);
793
+ }
794
+
795
+ /* ── Session Card Agent Dots ── */
796
+ .dl-session-card-agents {
797
+ display: flex;
798
+ gap: 0.25rem;
799
+ margin-block-start: auto;
800
+ }
801
+ .dl-agent-dot {
802
+ width: 8px;
803
+ height: 8px;
804
+ border-radius: 50%;
805
+ }
806
+
807
+ /* ── Activity Chart (portfolio) ── */
808
+ .dl-activity-section {
809
+ margin-block-end: 3.5rem;
810
+ }
811
+ .dl-activity-chart {
812
+ background: var(--dl-card);
813
+ border: 1px solid var(--dl-border);
814
+ border-radius: var(--dl-radius-lg);
815
+ padding: 1.5rem;
816
+ box-shadow: var(--dl-shadow-blue);
817
+ }
818
+ .dl-activity-title {
819
+ font-family: var(--dl-font-display);
820
+ font-weight: 600;
821
+ font-size: 1rem;
822
+ margin-block-end: 1.25rem;
823
+ color: var(--dl-text);
824
+ }
825
+ .dl-activity-grid {
826
+ display: grid;
827
+ grid-template-columns: repeat(20, 1fr);
828
+ gap: 3px;
829
+ }
830
+ @media (min-width: 768px) {
831
+ .dl-activity-grid { gap: 4px; }
832
+ }
833
+ .dl-activity-cell {
834
+ aspect-ratio: 1;
835
+ border-radius: 3px;
836
+ background: var(--dl-surface);
837
+ transition: transform 200ms var(--dl-anim-ease-soft);
838
+ }
839
+ .dl-activity-cell:hover { transform: scale(1.3); }
840
+ .dl-activity-cell[data-level="1"] { background: #bae6fd; }
841
+ .dl-activity-cell[data-level="2"] { background: #7dd3fc; }
842
+ .dl-activity-cell[data-level="3"] { background: #38bdf8; }
843
+ .dl-activity-cell[data-level="4"] { background: var(--dl-accent); }
844
+ .dl-activity-legend {
845
+ display: flex;
846
+ align-items: center;
847
+ gap: 0.375rem;
848
+ justify-content: flex-end;
849
+ margin-block-start: 0.75rem;
850
+ font-family: var(--dl-font-mono);
851
+ font-size: 0.6875rem;
852
+ color: var(--dl-text-tertiary);
853
+ }
854
+ .dl-activity-legend-cell {
855
+ width: 12px;
856
+ height: 12px;
857
+ border-radius: 2px;
858
+ }
859
+
860
+ /* ── All Skills (portfolio) ── */
861
+ .dl-all-skills-section {
862
+ margin-block-end: 3.5rem;
863
+ }
864
+ .dl-all-skills {
865
+ display: flex;
866
+ flex-wrap: wrap;
867
+ gap: 0.5rem;
868
+ }
869
+
870
+ /* ── Source Overview (portfolio) ── */
871
+ .dl-source-overview {
872
+ margin-block-end: 3.5rem;
873
+ }
874
+ .dl-source-cards {
875
+ display: grid;
876
+ grid-template-columns: 1fr 1fr;
877
+ gap: 1rem;
878
+ }
879
+ .dl-source-card {
880
+ background: var(--dl-card);
881
+ border: 1px solid var(--dl-border);
882
+ border-radius: var(--dl-radius);
883
+ padding: 1.25rem;
884
+ box-shadow: var(--dl-shadow-blue);
885
+ text-align: center;
886
+ transition: box-shadow 300ms var(--dl-anim-ease-soft), transform 300ms var(--dl-anim-ease-soft);
887
+ }
888
+ .dl-source-card:hover {
889
+ box-shadow: var(--dl-shadow-blue-lg);
890
+ transform: translateY(-2px);
891
+ }
892
+ .dl-source-card-name {
893
+ font-family: var(--dl-font-display);
894
+ font-weight: 600;
895
+ font-size: 0.9375rem;
896
+ color: var(--dl-text);
897
+ margin-block-end: 0.5rem;
898
+ }
899
+ .dl-source-card-pct {
900
+ font-family: var(--dl-font-display);
901
+ font-weight: 700;
902
+ font-size: 2rem;
903
+ color: var(--dl-accent);
904
+ line-height: 1.2;
905
+ }
906
+ .dl-source-card-sessions {
907
+ font-family: var(--dl-font-mono);
908
+ font-size: 0.75rem;
909
+ color: var(--dl-text-tertiary);
910
+ margin-block-start: 0.25rem;
911
+ }
912
+ .dl-source-bar-overview {
913
+ margin-block-start: 1.25rem;
914
+ height: 8px;
915
+ border-radius: 4px;
916
+ background: var(--dl-border);
917
+ overflow: hidden;
918
+ }
919
+ .dl-source-fill-overview {
920
+ height: 100%;
921
+ border-radius: 4px;
922
+ background: linear-gradient(90deg, var(--dl-accent), #38bdf8);
923
+ }
924
+
925
+ /* ── Session Layout (session page) ── */
926
+ .dl-session-layout {
927
+ display: grid;
928
+ gap: 2rem;
929
+ }
930
+ @media (min-width: 768px) {
931
+ .dl-session-layout {
932
+ grid-template-columns: 1fr 280px;
933
+ gap: 2.5rem;
934
+ }
935
+ }
936
+
937
+ /* ── Session Header ── */
938
+ .dl-session-header {
939
+ padding-block: 1.5rem 2.5rem;
940
+ }
941
+ .dl-session-header h1 {
942
+ font-family: var(--dl-font-display);
943
+ font-weight: 700;
944
+ font-size: 1.75rem;
945
+ color: var(--dl-text);
946
+ line-height: 1.25;
947
+ margin-block-end: 1rem;
948
+ }
949
+ @media (min-width: 768px) {
950
+ .dl-session-header h1 { font-size: 2.25rem; }
951
+ }
952
+ .dl-session-meta-row {
953
+ display: flex;
954
+ flex-wrap: wrap;
955
+ gap: 0.5rem 1.25rem;
956
+ font-family: var(--dl-font-mono);
957
+ font-size: 0.8125rem;
958
+ color: var(--dl-text-tertiary);
959
+ }
960
+ .dl-session-meta-item {
961
+ display: flex;
962
+ align-items: center;
963
+ gap: 0.375rem;
964
+ }
965
+ .dl-meta-icon {
966
+ width: 16px;
967
+ height: 16px;
968
+ fill: none;
969
+ stroke: var(--dl-accent);
970
+ stroke-width: 2;
971
+ stroke-linecap: round;
972
+ stroke-linejoin: round;
973
+ }
974
+ .dl-source-badge {
975
+ display: inline-flex;
976
+ align-items: center;
977
+ gap: 0.375rem;
978
+ background: var(--dl-accent-light);
979
+ color: var(--dl-accent);
980
+ font-weight: 500;
981
+ padding: 0.25rem 0.75rem;
982
+ border-radius: 999px;
983
+ }
984
+
985
+ /* ── Dev Take ── */
986
+ .dl-dev-take {
987
+ background: var(--dl-card-tint);
988
+ border: 1px solid var(--dl-accent-light);
989
+ border-inline-start: 4px solid var(--dl-accent);
990
+ border-radius: 0 var(--dl-radius) var(--dl-radius) 0;
991
+ padding: 1.25rem 1.5rem;
992
+ margin-block-end: 2.5rem;
993
+ }
994
+ .dl-dev-take-label {
995
+ font-family: var(--dl-font-display);
996
+ font-weight: 600;
997
+ font-size: 0.75rem;
998
+ text-transform: uppercase;
999
+ letter-spacing: 0.08em;
1000
+ color: var(--dl-accent);
1001
+ margin-block-end: 0.5rem;
1002
+ }
1003
+ .dl-dev-take p {
1004
+ font-size: 1rem;
1005
+ line-height: 1.7;
1006
+ color: var(--dl-text-secondary);
1007
+ font-style: italic;
1008
+ }
1009
+
1010
+ /* ── Session Section Heading ── */
1011
+ .dl-session-section-heading {
1012
+ font-family: var(--dl-font-display);
1013
+ font-weight: 700;
1014
+ font-size: 1.25rem;
1015
+ color: var(--dl-text);
1016
+ margin-block-end: 1.25rem;
1017
+ padding-block-end: 0.625rem;
1018
+ border-block-end: 2px solid var(--dl-accent-light);
1019
+ }
1020
+
1021
+ /* ── Execution Path / Beats ── */
1022
+ .dl-beats {
1023
+ margin-block-end: 2.5rem;
1024
+ }
1025
+ .dl-beat-list {
1026
+ list-style: none;
1027
+ position: relative;
1028
+ padding-inline-start: 2.25rem;
1029
+ }
1030
+ .dl-beat-list::before {
1031
+ content: '';
1032
+ position: absolute;
1033
+ inset-inline-start: 7px;
1034
+ top: 8px;
1035
+ bottom: 8px;
1036
+ width: 3px;
1037
+ border-radius: 2px;
1038
+ background: linear-gradient(180deg, var(--dl-accent), #38bdf8);
1039
+ }
1040
+ .dl-beat-item {
1041
+ position: relative;
1042
+ margin-block-end: 1.5rem;
1043
+ }
1044
+ .dl-beat-item:last-child { margin-block-end: 0; }
1045
+ .dl-beat-item::before {
1046
+ content: '';
1047
+ position: absolute;
1048
+ inset-inline-start: -2.25rem;
1049
+ top: 6px;
1050
+ width: 13px;
1051
+ height: 13px;
1052
+ border-radius: 50%;
1053
+ background: var(--dl-accent);
1054
+ border: 3px solid var(--dl-bg);
1055
+ box-shadow: 0 0 0 2px var(--dl-accent);
1056
+ }
1057
+ .dl-beat-title {
1058
+ font-family: var(--dl-font-display);
1059
+ font-weight: 600;
1060
+ font-size: 1rem;
1061
+ color: var(--dl-text);
1062
+ margin-block-end: 0.25rem;
1063
+ }
1064
+ .dl-beat-desc {
1065
+ font-size: 0.9375rem;
1066
+ line-height: 1.7;
1067
+ color: var(--dl-text-secondary);
1068
+ }
1069
+
1070
+ /* ── Q&A ── */
1071
+ .dl-qa {
1072
+ margin-block-end: 2.5rem;
1073
+ }
1074
+ .dl-qa-pair {
1075
+ background: var(--dl-card);
1076
+ border: 1px solid var(--dl-border);
1077
+ border-radius: var(--dl-radius);
1078
+ padding: 1.25rem;
1079
+ margin-block-end: 1rem;
1080
+ box-shadow: var(--dl-shadow-blue);
1081
+ }
1082
+ .dl-qa-pair:last-child { margin-block-end: 0; }
1083
+ .dl-qa-question {
1084
+ font-family: var(--dl-font-display);
1085
+ font-weight: 600;
1086
+ font-size: 0.9375rem;
1087
+ color: var(--dl-text);
1088
+ margin-block-end: 0.75rem;
1089
+ display: flex;
1090
+ gap: 0.5rem;
1091
+ }
1092
+ .dl-qa-q-marker {
1093
+ color: var(--dl-accent);
1094
+ font-weight: 700;
1095
+ flex-shrink: 0;
1096
+ }
1097
+ .dl-qa-answer {
1098
+ font-size: 0.9375rem;
1099
+ line-height: 1.7;
1100
+ color: var(--dl-text-secondary);
1101
+ padding-inline-start: 1.5rem;
1102
+ }
1103
+
1104
+ /* ── Agent Summary ── */
1105
+ .dl-agents {
1106
+ margin-block-end: 2.5rem;
1107
+ }
1108
+ .dl-agent-table {
1109
+ width: 100%;
1110
+ border-collapse: collapse;
1111
+ font-size: 0.875rem;
1112
+ }
1113
+ .dl-agent-table th {
1114
+ font-family: var(--dl-font-display);
1115
+ font-weight: 600;
1116
+ font-size: 0.75rem;
1117
+ text-transform: uppercase;
1118
+ letter-spacing: 0.06em;
1119
+ color: var(--dl-text-tertiary);
1120
+ text-align: start;
1121
+ padding: 0.625rem 0.75rem;
1122
+ border-block-end: 2px solid var(--dl-accent-light);
1123
+ }
1124
+ .dl-agent-table td {
1125
+ padding: 0.625rem 0.75rem;
1126
+ border-block-end: 1px solid var(--dl-border);
1127
+ color: var(--dl-text-secondary);
1128
+ }
1129
+ .dl-agent-table tr:last-child td { border-block-end: none; }
1130
+ .dl-agent-role-cell {
1131
+ display: flex;
1132
+ align-items: center;
1133
+ gap: 0.5rem;
1134
+ }
1135
+ .dl-agent-color-dot {
1136
+ width: 10px;
1137
+ height: 10px;
1138
+ border-radius: 50%;
1139
+ flex-shrink: 0;
1140
+ }
1141
+ .dl-agent-bar-cell { width: 40%; }
1142
+ .dl-agent-bar {
1143
+ height: 6px;
1144
+ border-radius: 3px;
1145
+ background: var(--dl-border);
1146
+ overflow: hidden;
1147
+ }
1148
+ .dl-agent-bar-fill {
1149
+ height: 100%;
1150
+ border-radius: 3px;
1151
+ background: linear-gradient(90deg, var(--dl-accent), #38bdf8);
1152
+ }
1153
+
1154
+ /* ── Sidebar ── */
1155
+ .dl-sidebar {
1156
+ display: flex;
1157
+ flex-direction: column;
1158
+ gap: 1.5rem;
1159
+ }
1160
+ .dl-sidebar-card {
1161
+ background: var(--dl-card);
1162
+ border: 1px solid var(--dl-border);
1163
+ border-radius: var(--dl-radius);
1164
+ padding: 1.25rem;
1165
+ box-shadow: var(--dl-shadow-blue);
1166
+ }
1167
+ .dl-sidebar-title {
1168
+ font-family: var(--dl-font-display);
1169
+ font-weight: 600;
1170
+ font-size: 0.875rem;
1171
+ color: var(--dl-text);
1172
+ margin-block-end: 0.875rem;
1173
+ text-transform: uppercase;
1174
+ letter-spacing: 0.04em;
1175
+ }
1176
+
1177
+ /* ── Tools Used ── */
1178
+ .dl-tool-list { list-style: none; }
1179
+ .dl-tool-item {
1180
+ display: flex;
1181
+ align-items: center;
1182
+ justify-content: space-between;
1183
+ padding-block: 0.375rem;
1184
+ font-size: 0.8125rem;
1185
+ border-block-end: 1px solid var(--dl-border);
1186
+ }
1187
+ .dl-tool-item:last-child { border-block-end: none; }
1188
+ .dl-tool-name {
1189
+ font-family: var(--dl-font-mono);
1190
+ color: var(--dl-text-secondary);
1191
+ }
1192
+ .dl-tool-count {
1193
+ font-family: var(--dl-font-display);
1194
+ font-weight: 600;
1195
+ color: var(--dl-accent);
1196
+ background: var(--dl-accent-light);
1197
+ padding: 0.125rem 0.5rem;
1198
+ border-radius: 999px;
1199
+ font-size: 0.75rem;
1200
+ }
1201
+
1202
+ /* ── Files Changed ── */
1203
+ .dl-file-list { list-style: none; }
1204
+ .dl-file-item {
1205
+ display: flex;
1206
+ align-items: center;
1207
+ justify-content: space-between;
1208
+ gap: 0.5rem;
1209
+ padding-block: 0.375rem;
1210
+ font-size: 0.8125rem;
1211
+ border-block-end: 1px solid var(--dl-border);
1212
+ }
1213
+ .dl-file-item:last-child { border-block-end: none; }
1214
+ .dl-file-name {
1215
+ font-family: var(--dl-font-mono);
1216
+ font-size: 0.75rem;
1217
+ color: var(--dl-text-secondary);
1218
+ overflow: hidden;
1219
+ text-overflow: ellipsis;
1220
+ white-space: nowrap;
1221
+ min-width: 0;
1222
+ }
1223
+ .dl-file-diff {
1224
+ font-family: var(--dl-font-mono);
1225
+ font-size: 0.75rem;
1226
+ font-weight: 500;
1227
+ flex-shrink: 0;
1228
+ }
1229
+ .dl-file-adds { color: var(--dl-accent-green); }
1230
+ .dl-file-dels { color: #ef4444; }
1231
+
1232
+ /* ── Sidebar Skills ── */
1233
+ .dl-sidebar-skills {
1234
+ display: flex;
1235
+ flex-wrap: wrap;
1236
+ gap: 0.375rem;
1237
+ }
1238
+
1239
+ /* ── Narrative Section (session) ── */
1240
+ .dl-narrative-section {
1241
+ margin-block-end: 2.5rem;
1242
+ }
1243
+ .dl-narrative-section p {
1244
+ font-size: 0.9375rem;
1245
+ line-height: 1.7;
1246
+ color: var(--dl-text-secondary);
1247
+ }
1248
+
1249
+ /* ── Highlights ── */
1250
+ .dl-highlights {
1251
+ margin-block-end: 2.5rem;
1252
+ }
1253
+ .dl-highlights-list {
1254
+ list-style: none;
1255
+ padding: 0;
1256
+ }
1257
+ .dl-highlights-list li {
1258
+ font-size: 0.9375rem;
1259
+ color: var(--dl-text-secondary);
1260
+ line-height: 1.7;
1261
+ padding: 0.375rem 0;
1262
+ border-block-end: 1px solid var(--dl-border);
1263
+ }
1264
+ .dl-highlights-list li:last-child { border-block-end: none; }
1265
+
1266
+ /* ── Footer ── */
1267
+ .dl-footer {
1268
+ margin-block-start: 2rem;
1269
+ padding-block: 2rem;
1270
+ border-block-start: 1px solid var(--dl-border);
1271
+ text-align: center;
1272
+ font-family: var(--dl-font-body);
1273
+ font-size: 0.8125rem;
1274
+ color: var(--dl-text-tertiary);
1275
+ }
1276
+ .dl-footer a {
1277
+ color: var(--dl-accent);
1278
+ font-weight: 500;
1279
+ }
1280
+
1281
+ /* ── Bounce Animation ── */
1282
+ .dl-bounce {
1283
+ opacity: 0;
1284
+ transform: translateY(24px);
1285
+ }
1286
+ .dl-bounce.visible, .dl-bounce.dl-visible {
1287
+ opacity: 1;
1288
+ transform: translateY(0);
1289
+ transition:
1290
+ opacity var(--dl-anim-duration) var(--dl-anim-ease-soft),
1291
+ transform var(--dl-anim-duration) var(--dl-anim-ease);
1292
+ }
1293
+ .dl-delay-1 { transition-delay: 80ms; }
1294
+ .dl-delay-2 { transition-delay: 160ms; }
1295
+ .dl-delay-3 { transition-delay: 240ms; }
1296
+ .dl-delay-4 { transition-delay: 320ms; }
1297
+
1298
+ /* ── Clickable cards ── */
1299
+ a.dl-project-card, a.dl-session-card {
1300
+ text-decoration: none;
1301
+ color: inherit;
1302
+ display: block;
1303
+ }
1304
+
1305
+ /* ── Responsive ── */
1306
+ @media (max-width: 767px) {
1307
+ .dl-agent-bar-cell { display: none; }
1308
+ .dl-agent-table th:last-child { display: none; }
1309
+ .dl-session-header { padding-block: 1rem 1.5rem; }
1310
+ .dl-sidebar { order: -1; }
1311
+ }