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