@agent-link/server 0.1.302 → 0.1.304
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.
- package/package.json +1 -1
- package/web/dist/assets/{cssMode-B2_6v8T2.js → cssMode-D9WAUUpo.js} +1 -1
- package/web/dist/assets/{editor.main-B1R1-qE_.js → editor.main-F3YyOFWi.js} +3 -3
- package/web/dist/assets/{freemarker2-BRK22ENa.js → freemarker2-fx-zAUwJ.js} +1 -1
- package/web/dist/assets/{handlebars-y7VxB2QG.js → handlebars-UNh84M5K.js} +1 -1
- package/web/dist/assets/{html-hlbXyl1x.js → html-Bg2uFyFu.js} +1 -1
- package/web/dist/assets/{htmlMode-DsqcDJBH.js → htmlMode-tOn2AdMq.js} +1 -1
- package/web/dist/assets/{index-CEzkBFyn.js → index-B1CXjQL3.js} +2 -2
- package/web/dist/assets/{javascript-BhXmVVca.js → javascript-Bklw5KMQ.js} +1 -1
- package/web/dist/assets/{jsonMode-Dscf1Dd1.js → jsonMode-CrP4A4Q8.js} +1 -1
- package/web/dist/assets/{liquid-C3IzT1ID.js → liquid-bqEyjPU0.js} +1 -1
- package/web/dist/assets/{lspLanguageFeatures-BswCNpbz.js → lspLanguageFeatures-D-fTyDOg.js} +1 -1
- package/web/dist/assets/{mdx-DQ74j0JV.js → mdx-DDLDJvE6.js} +1 -1
- package/web/dist/assets/{python-B8Kb7lFj.js → python-DleLrWgr.js} +1 -1
- package/web/dist/assets/{razor-C9hdZV_v.js → razor-BTaX0m9j.js} +1 -1
- package/web/dist/assets/{tsMode-CXnT3dOx.js → tsMode-Cm03KIG0.js} +1 -1
- package/web/dist/assets/{typescript-BxMmoCYy.js → typescript-CY9KIjc8.js} +1 -1
- package/web/dist/assets/{xml-DD8lgIZd.js → xml-BH2VJb5g.js} +1 -1
- package/web/dist/assets/{yaml-pbmxEf4r.js → yaml-KFIqq_w2.js} +1 -1
- package/web/dist/index.html +1 -1
- package/web/dist/landing.html +245 -848
- package/web/dist/landing.zh.html +258 -859
package/web/dist/landing.html
CHANGED
|
@@ -40,32 +40,19 @@
|
|
|
40
40
|
}
|
|
41
41
|
</script>
|
|
42
42
|
<style>
|
|
43
|
-
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@
|
|
43
|
+
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
|
|
44
44
|
|
|
45
45
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
46
46
|
|
|
47
|
-
html {
|
|
48
|
-
overflow-x: hidden;
|
|
49
|
-
overscroll-behavior-x: none;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
47
|
:root {
|
|
53
|
-
--bg: #
|
|
54
|
-
--surface:
|
|
55
|
-
--
|
|
56
|
-
--
|
|
57
|
-
--
|
|
58
|
-
--
|
|
59
|
-
--
|
|
60
|
-
--
|
|
61
|
-
--accent: #3b82f6;
|
|
62
|
-
--accent-soft: rgba(59,130,246,0.15);
|
|
63
|
-
--accent-glow: rgba(59,130,246,0.4);
|
|
64
|
-
--rose: #f43f5e;
|
|
65
|
-
--amber: #f59e0b;
|
|
66
|
-
--cyan: #22d3ee;
|
|
67
|
-
--green: #34d399;
|
|
68
|
-
--blue: #60a5fa;
|
|
48
|
+
--bg: #ffffff;
|
|
49
|
+
--surface: #f7f8fa;
|
|
50
|
+
--border: #e5e7eb;
|
|
51
|
+
--text: #1a1a1a;
|
|
52
|
+
--text-secondary: #6b7280;
|
|
53
|
+
--accent: #2563eb;
|
|
54
|
+
--accent-light: #eff4ff;
|
|
55
|
+
--code-bg: #1e293b;
|
|
69
56
|
}
|
|
70
57
|
|
|
71
58
|
body {
|
|
@@ -73,88 +60,7 @@
|
|
|
73
60
|
background: var(--bg);
|
|
74
61
|
color: var(--text);
|
|
75
62
|
line-height: 1.6;
|
|
76
|
-
|
|
77
|
-
overflow-x: hidden;
|
|
78
|
-
overscroll-behavior-x: none;
|
|
79
|
-
position: relative;
|
|
80
|
-
width: 100%;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/* ── Ambient Background ── */
|
|
84
|
-
.ambient {
|
|
85
|
-
position: fixed;
|
|
86
|
-
top: 0;
|
|
87
|
-
left: 0;
|
|
88
|
-
width: 100%;
|
|
89
|
-
height: 100%;
|
|
90
|
-
pointer-events: none;
|
|
91
|
-
z-index: 0;
|
|
92
|
-
overflow: hidden;
|
|
93
|
-
contain: strict;
|
|
94
|
-
will-change: transform;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
.ambient-orb {
|
|
98
|
-
position: absolute;
|
|
99
|
-
border-radius: 50%;
|
|
100
|
-
filter: blur(120px);
|
|
101
|
-
opacity: 0.35;
|
|
102
|
-
animation: float 20s ease-in-out infinite;
|
|
103
|
-
will-change: transform;
|
|
104
|
-
contain: layout style;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.ambient-orb:nth-child(1) {
|
|
108
|
-
width: 600px; height: 600px;
|
|
109
|
-
background: radial-gradient(circle, var(--accent) 0%, transparent 70%);
|
|
110
|
-
top: -10%; left: -5%;
|
|
111
|
-
animation-delay: 0s;
|
|
112
|
-
animation-duration: 25s;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
.ambient-orb:nth-child(2) {
|
|
116
|
-
width: 500px; height: 500px;
|
|
117
|
-
background: radial-gradient(circle, var(--rose) 0%, transparent 70%);
|
|
118
|
-
top: 20%; right: -10%;
|
|
119
|
-
animation-delay: -8s;
|
|
120
|
-
animation-duration: 22s;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
.ambient-orb:nth-child(3) {
|
|
124
|
-
width: 400px; height: 400px;
|
|
125
|
-
background: radial-gradient(circle, var(--cyan) 0%, transparent 70%);
|
|
126
|
-
bottom: 10%; left: 20%;
|
|
127
|
-
animation-delay: -15s;
|
|
128
|
-
animation-duration: 28s;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
@keyframes float {
|
|
132
|
-
0%, 100% { transform: translate(0, 0) scale(1); }
|
|
133
|
-
25% { transform: translate(30px, -40px) scale(1.05); }
|
|
134
|
-
50% { transform: translate(-20px, 20px) scale(0.95); }
|
|
135
|
-
75% { transform: translate(40px, 10px) scale(1.02); }
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
/* ── Grain overlay ── */
|
|
139
|
-
.grain {
|
|
140
|
-
position: fixed;
|
|
141
|
-
top: 0; left: 0;
|
|
142
|
-
width: 100%; height: 100%;
|
|
143
|
-
pointer-events: none;
|
|
144
|
-
z-index: 1;
|
|
145
|
-
opacity: 0.025;
|
|
146
|
-
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
|
|
147
|
-
background-repeat: repeat;
|
|
148
|
-
background-size: 256px 256px;
|
|
149
|
-
will-change: transform;
|
|
150
|
-
contain: strict;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/* ── Content wrapper ── */
|
|
154
|
-
.content {
|
|
155
|
-
position: relative;
|
|
156
|
-
z-index: 2;
|
|
157
|
-
overflow-x: hidden;
|
|
63
|
+
-webkit-font-smoothing: antialiased;
|
|
158
64
|
}
|
|
159
65
|
|
|
160
66
|
/* ── Nav ── */
|
|
@@ -162,253 +68,162 @@
|
|
|
162
68
|
display: flex;
|
|
163
69
|
align-items: center;
|
|
164
70
|
justify-content: space-between;
|
|
165
|
-
padding: 1.
|
|
166
|
-
max-width:
|
|
71
|
+
padding: 1.25rem 2rem;
|
|
72
|
+
max-width: 1080px;
|
|
167
73
|
margin: 0 auto;
|
|
168
74
|
}
|
|
169
75
|
|
|
170
76
|
.logo {
|
|
171
|
-
font-size: 1.2rem;
|
|
172
|
-
font-weight: 700;
|
|
173
|
-
letter-spacing: -0.03em;
|
|
174
77
|
display: flex;
|
|
175
78
|
align-items: center;
|
|
176
79
|
gap: 0.5rem;
|
|
80
|
+
font-size: 1.1rem;
|
|
81
|
+
font-weight: 700;
|
|
82
|
+
color: var(--text);
|
|
83
|
+
letter-spacing: -0.02em;
|
|
177
84
|
}
|
|
178
85
|
|
|
179
|
-
.logo-
|
|
180
|
-
width: 28px; height: 28px;
|
|
181
|
-
border-radius: 8px;
|
|
182
|
-
box-shadow: 0 0 20px var(--accent-glow);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
.logo-text span {
|
|
186
|
-
background: linear-gradient(135deg, var(--accent), var(--rose));
|
|
187
|
-
-webkit-background-clip: text;
|
|
188
|
-
-webkit-text-fill-color: transparent;
|
|
189
|
-
background-clip: text;
|
|
190
|
-
}
|
|
86
|
+
.logo img { width: 26px; height: 26px; border-radius: 6px; }
|
|
191
87
|
|
|
192
88
|
.nav-links {
|
|
193
89
|
display: flex;
|
|
194
90
|
align-items: center;
|
|
195
|
-
gap:
|
|
91
|
+
gap: 1.5rem;
|
|
196
92
|
}
|
|
197
93
|
|
|
198
94
|
.nav-links a {
|
|
199
|
-
color: var(--text-
|
|
95
|
+
color: var(--text-secondary);
|
|
200
96
|
text-decoration: none;
|
|
201
|
-
font-size: 0.
|
|
97
|
+
font-size: 0.875rem;
|
|
202
98
|
font-weight: 500;
|
|
203
|
-
transition: color 0.3s;
|
|
204
|
-
letter-spacing: 0.02em;
|
|
205
99
|
}
|
|
206
100
|
|
|
207
101
|
.nav-links a:hover { color: var(--text); }
|
|
208
102
|
|
|
209
103
|
.nav-gh {
|
|
210
|
-
display: flex;
|
|
104
|
+
display: inline-flex;
|
|
211
105
|
align-items: center;
|
|
212
|
-
gap: 0.
|
|
213
|
-
background: var(--surface);
|
|
106
|
+
gap: 0.35rem;
|
|
214
107
|
border: 1px solid var(--border);
|
|
215
108
|
border-radius: 8px;
|
|
216
|
-
padding: 0.
|
|
217
|
-
transition: all 0.3s;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
.nav-gh:hover {
|
|
221
|
-
background: var(--surface-hover);
|
|
222
|
-
border-color: var(--border-hover);
|
|
109
|
+
padding: 0.4rem 0.75rem;
|
|
223
110
|
}
|
|
224
111
|
|
|
225
112
|
.nav-gh svg { width: 16px; height: 16px; fill: currentColor; }
|
|
226
113
|
|
|
227
114
|
.nav-lang {
|
|
228
|
-
font-size: 0.8rem;
|
|
229
|
-
color: var(--text-dim);
|
|
230
|
-
padding: 0.35rem 0.7rem;
|
|
231
115
|
border: 1px solid var(--border);
|
|
232
116
|
border-radius: 6px;
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
.nav-lang:hover {
|
|
237
|
-
color: var(--text);
|
|
238
|
-
border-color: var(--border-hover);
|
|
117
|
+
padding: 0.3rem 0.6rem;
|
|
118
|
+
font-size: 0.8rem;
|
|
239
119
|
}
|
|
240
120
|
|
|
241
121
|
/* ── Hero ── */
|
|
242
122
|
.hero {
|
|
243
123
|
text-align: center;
|
|
244
|
-
padding: 5rem 2rem
|
|
245
|
-
max-width:
|
|
124
|
+
padding: 5rem 2rem 3rem;
|
|
125
|
+
max-width: 720px;
|
|
246
126
|
margin: 0 auto;
|
|
247
|
-
position: relative;
|
|
248
127
|
}
|
|
249
128
|
|
|
250
129
|
.hero-badge {
|
|
251
130
|
display: inline-flex;
|
|
252
131
|
align-items: center;
|
|
253
132
|
gap: 0.5rem;
|
|
254
|
-
background: var(--accent-
|
|
255
|
-
border: 1px solid
|
|
133
|
+
background: var(--accent-light);
|
|
134
|
+
border: 1px solid #dbeafe;
|
|
256
135
|
border-radius: 100px;
|
|
257
|
-
padding: 0.
|
|
136
|
+
padding: 0.35rem 1rem;
|
|
258
137
|
font-size: 0.8rem;
|
|
259
138
|
color: var(--accent);
|
|
260
139
|
font-weight: 500;
|
|
261
|
-
margin-bottom:
|
|
262
|
-
letter-spacing: 0.01em;
|
|
263
|
-
animation: fadeInUp 0.8s ease-out;
|
|
140
|
+
margin-bottom: 2rem;
|
|
264
141
|
}
|
|
265
142
|
|
|
266
143
|
.hero-badge-dot {
|
|
267
|
-
width:
|
|
144
|
+
width: 7px; height: 7px;
|
|
268
145
|
border-radius: 50%;
|
|
269
|
-
background:
|
|
270
|
-
box-shadow: 0 0 8px var(--green);
|
|
271
|
-
animation: pulse 2s ease-in-out infinite;
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
@keyframes pulse {
|
|
275
|
-
0%, 100% { opacity: 1; transform: scale(1); }
|
|
276
|
-
50% { opacity: 0.6; transform: scale(0.85); }
|
|
146
|
+
background: #22c55e;
|
|
277
147
|
}
|
|
278
148
|
|
|
279
149
|
.hero h1 {
|
|
280
|
-
font-size: clamp(2.
|
|
281
|
-
font-weight:
|
|
282
|
-
letter-spacing: -0.
|
|
283
|
-
line-height: 1.
|
|
284
|
-
margin-bottom: 1.
|
|
285
|
-
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
.hero h1 .line {
|
|
289
|
-
display: block;
|
|
150
|
+
font-size: clamp(2.4rem, 5vw, 3.5rem);
|
|
151
|
+
font-weight: 700;
|
|
152
|
+
letter-spacing: -0.03em;
|
|
153
|
+
line-height: 1.15;
|
|
154
|
+
margin-bottom: 1.5rem;
|
|
155
|
+
color: var(--text);
|
|
290
156
|
}
|
|
291
157
|
|
|
292
158
|
.hero h1 em {
|
|
293
159
|
font-style: normal;
|
|
294
|
-
|
|
295
|
-
background: linear-gradient(135deg, var(--accent), #60a5fa, var(--rose));
|
|
296
|
-
background-size: 200% 200%;
|
|
297
|
-
-webkit-background-clip: text;
|
|
298
|
-
-webkit-text-fill-color: transparent;
|
|
299
|
-
background-clip: text;
|
|
300
|
-
animation: shimmer 6s ease-in-out infinite;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
@keyframes shimmer {
|
|
304
|
-
0%, 100% { background-position: 0% 50%; }
|
|
305
|
-
50% { background-position: 100% 50%; }
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
.hero-sub {
|
|
309
|
-
font-size: 1.2rem;
|
|
310
|
-
color: var(--text-mid);
|
|
311
|
-
max-width: 600px;
|
|
312
|
-
margin: 0 auto 3rem;
|
|
313
|
-
font-weight: 400;
|
|
314
|
-
line-height: 1.7;
|
|
315
|
-
animation: fadeInUp 0.8s ease-out 0.2s both;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
.hero-sub strong {
|
|
319
|
-
color: var(--text);
|
|
320
|
-
font-weight: 500;
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
@keyframes fadeInUp {
|
|
324
|
-
from { opacity: 0; transform: translateY(20px); }
|
|
325
|
-
to { opacity: 1; transform: translateY(0); }
|
|
160
|
+
color: var(--accent);
|
|
326
161
|
}
|
|
327
162
|
|
|
328
|
-
/* ── CTA
|
|
163
|
+
/* ── CTA ── */
|
|
329
164
|
.cta-group {
|
|
330
165
|
display: flex;
|
|
331
166
|
align-items: center;
|
|
332
167
|
justify-content: center;
|
|
333
|
-
gap:
|
|
334
|
-
margin-bottom:
|
|
335
|
-
animation: fadeInUp 0.8s ease-out 0.3s both;
|
|
168
|
+
gap: 0.75rem;
|
|
169
|
+
margin-bottom: 2rem;
|
|
336
170
|
}
|
|
337
171
|
|
|
338
172
|
.cta-primary {
|
|
339
173
|
display: inline-flex;
|
|
340
174
|
align-items: center;
|
|
341
|
-
gap: 0.
|
|
342
|
-
background:
|
|
175
|
+
gap: 0.4rem;
|
|
176
|
+
background: var(--accent);
|
|
343
177
|
color: #fff;
|
|
344
178
|
font-weight: 600;
|
|
345
|
-
font-size: 0.
|
|
346
|
-
padding: 0.
|
|
347
|
-
border-radius:
|
|
348
|
-
text-decoration: none;
|
|
349
|
-
transition: all 0.3s;
|
|
350
|
-
box-shadow: 0 0 30px rgba(59,130,246,0.3), 0 4px 15px rgba(0,0,0,0.3);
|
|
179
|
+
font-size: 0.9rem;
|
|
180
|
+
padding: 0.7rem 1.5rem;
|
|
181
|
+
border-radius: 10px;
|
|
351
182
|
border: none;
|
|
352
183
|
cursor: pointer;
|
|
353
184
|
font-family: inherit;
|
|
354
185
|
}
|
|
355
186
|
|
|
356
|
-
.cta-primary:hover {
|
|
357
|
-
transform: translateY(-2px);
|
|
358
|
-
box-shadow: 0 0 40px rgba(59,130,246,0.45), 0 8px 25px rgba(0,0,0,0.4);
|
|
359
|
-
}
|
|
187
|
+
.cta-primary:hover { background: #1d4ed8; }
|
|
360
188
|
|
|
361
189
|
.cta-secondary {
|
|
362
190
|
display: inline-flex;
|
|
363
191
|
align-items: center;
|
|
364
|
-
gap: 0.
|
|
365
|
-
background: var(--
|
|
192
|
+
gap: 0.4rem;
|
|
193
|
+
background: var(--bg);
|
|
366
194
|
border: 1px solid var(--border);
|
|
367
195
|
color: var(--text);
|
|
368
196
|
font-weight: 500;
|
|
369
|
-
font-size: 0.
|
|
370
|
-
padding: 0.
|
|
371
|
-
border-radius:
|
|
197
|
+
font-size: 0.9rem;
|
|
198
|
+
padding: 0.7rem 1.5rem;
|
|
199
|
+
border-radius: 10px;
|
|
372
200
|
text-decoration: none;
|
|
373
|
-
transition: all 0.3s;
|
|
374
201
|
cursor: pointer;
|
|
375
202
|
font-family: inherit;
|
|
376
203
|
}
|
|
377
204
|
|
|
378
|
-
.cta-secondary:hover {
|
|
379
|
-
|
|
380
|
-
border-color: var(--border-hover);
|
|
381
|
-
transform: translateY(-2px);
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
.cta-secondary svg { width: 18px; height: 18px; fill: currentColor; }
|
|
205
|
+
.cta-secondary:hover { background: var(--surface); }
|
|
206
|
+
.cta-secondary svg { width: 16px; height: 16px; fill: currentColor; }
|
|
385
207
|
|
|
386
|
-
/* ── Terminal
|
|
208
|
+
/* ── Terminal ── */
|
|
387
209
|
.terminal {
|
|
388
|
-
max-width:
|
|
210
|
+
max-width: 500px;
|
|
389
211
|
margin: 0 auto;
|
|
390
|
-
background:
|
|
391
|
-
border:
|
|
392
|
-
border-radius: 14px;
|
|
212
|
+
background: var(--code-bg);
|
|
213
|
+
border-radius: 12px;
|
|
393
214
|
overflow: hidden;
|
|
394
|
-
|
|
395
|
-
box-shadow: 0 20px 60px rgba(0,0,0,0.4);
|
|
215
|
+
box-shadow: 0 4px 24px rgba(0,0,0,0.08);
|
|
396
216
|
}
|
|
397
217
|
|
|
398
218
|
.terminal-bar {
|
|
399
219
|
display: flex;
|
|
400
220
|
align-items: center;
|
|
401
221
|
gap: 6px;
|
|
402
|
-
padding: 0.
|
|
403
|
-
background: rgba(255,255,255,0.
|
|
404
|
-
border-bottom: 1px solid var(--border);
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
.terminal-dot {
|
|
408
|
-
width: 10px; height: 10px;
|
|
409
|
-
border-radius: 50%;
|
|
222
|
+
padding: 0.7rem 1rem;
|
|
223
|
+
background: rgba(255,255,255,0.06);
|
|
410
224
|
}
|
|
411
225
|
|
|
226
|
+
.terminal-dot { width: 10px; height: 10px; border-radius: 50%; }
|
|
412
227
|
.terminal-dot:nth-child(1) { background: #ff5f57; }
|
|
413
228
|
.terminal-dot:nth-child(2) { background: #ffbd2e; }
|
|
414
229
|
.terminal-dot:nth-child(3) { background: #28c840; }
|
|
@@ -416,17 +231,17 @@
|
|
|
416
231
|
.terminal-title {
|
|
417
232
|
flex: 1;
|
|
418
233
|
text-align: center;
|
|
419
|
-
font-size: 0.
|
|
420
|
-
color:
|
|
234
|
+
font-size: 0.7rem;
|
|
235
|
+
color: rgba(255,255,255,0.4);
|
|
421
236
|
font-weight: 500;
|
|
422
|
-
letter-spacing: 0.03em;
|
|
423
237
|
}
|
|
424
238
|
|
|
425
239
|
.terminal-body {
|
|
426
|
-
padding: 1.25rem
|
|
427
|
-
font-family: 'JetBrains Mono',
|
|
428
|
-
font-size: 0.
|
|
240
|
+
padding: 1rem 1.25rem;
|
|
241
|
+
font-family: 'JetBrains Mono', monospace;
|
|
242
|
+
font-size: 0.82rem;
|
|
429
243
|
line-height: 1.8;
|
|
244
|
+
color: #e2e8f0;
|
|
430
245
|
}
|
|
431
246
|
|
|
432
247
|
.terminal-line {
|
|
@@ -434,35 +249,31 @@
|
|
|
434
249
|
align-items: center;
|
|
435
250
|
gap: 0.5rem;
|
|
436
251
|
cursor: pointer;
|
|
437
|
-
padding: 0.
|
|
438
|
-
margin: 0 -0.
|
|
439
|
-
border-radius:
|
|
440
|
-
transition: background 0.2s;
|
|
252
|
+
padding: 0.1rem 0.3rem;
|
|
253
|
+
margin: 0 -0.3rem;
|
|
254
|
+
border-radius: 4px;
|
|
441
255
|
}
|
|
442
256
|
|
|
443
|
-
.terminal-line:hover { background: rgba(255,255,255,0.
|
|
257
|
+
.terminal-line:hover { background: rgba(255,255,255,0.05); }
|
|
444
258
|
|
|
445
|
-
.terminal-prompt { color:
|
|
446
|
-
.terminal-cmd { color:
|
|
259
|
+
.terminal-prompt { color: #60a5fa; user-select: none; }
|
|
260
|
+
.terminal-cmd { color: #86efac; }
|
|
447
261
|
|
|
448
262
|
.terminal-output {
|
|
449
|
-
color:
|
|
450
|
-
font-size: 0.
|
|
451
|
-
padding-left:
|
|
452
|
-
margin-top: 0.
|
|
263
|
+
color: rgba(255,255,255,0.45);
|
|
264
|
+
font-size: 0.78rem;
|
|
265
|
+
padding-left: 1rem;
|
|
266
|
+
margin-top: 0.1rem;
|
|
453
267
|
}
|
|
454
268
|
|
|
455
|
-
.terminal-output a {
|
|
456
|
-
color: var(--cyan);
|
|
457
|
-
text-decoration: none;
|
|
458
|
-
}
|
|
269
|
+
.terminal-output a { color: #67e8f9; text-decoration: none; }
|
|
459
270
|
|
|
460
271
|
.terminal-copy-toast {
|
|
461
272
|
position: fixed;
|
|
462
273
|
bottom: 2rem;
|
|
463
274
|
left: 50%;
|
|
464
275
|
transform: translateX(-50%) translateY(20px);
|
|
465
|
-
background: var(--
|
|
276
|
+
background: var(--text);
|
|
466
277
|
color: #fff;
|
|
467
278
|
padding: 0.5rem 1.25rem;
|
|
468
279
|
border-radius: 8px;
|
|
@@ -482,119 +293,36 @@
|
|
|
482
293
|
|
|
483
294
|
/* ── Showcase ── */
|
|
484
295
|
.showcase {
|
|
485
|
-
max-width:
|
|
486
|
-
margin:
|
|
296
|
+
max-width: 960px;
|
|
297
|
+
margin: 4rem auto 0;
|
|
487
298
|
padding: 0 2rem;
|
|
488
|
-
position: relative;
|
|
489
299
|
display: grid;
|
|
490
300
|
grid-template-columns: 5fr 2fr;
|
|
491
301
|
align-items: end;
|
|
492
|
-
gap:
|
|
493
|
-
animation: fadeInUp 1s ease-out 0.6s both;
|
|
494
|
-
overflow: hidden;
|
|
495
|
-
}
|
|
496
|
-
|
|
497
|
-
.showcase::before {
|
|
498
|
-
content: '';
|
|
499
|
-
position: absolute;
|
|
500
|
-
top: 50%;
|
|
501
|
-
left: 50%;
|
|
502
|
-
transform: translate(-50%, -50%);
|
|
503
|
-
width: 100%;
|
|
504
|
-
height: 100%;
|
|
505
|
-
background:
|
|
506
|
-
radial-gradient(ellipse at 35% 50%, rgba(59,130,246,0.12) 0%, transparent 55%),
|
|
507
|
-
radial-gradient(ellipse at 65% 50%, rgba(245,158,11,0.08) 0%, transparent 55%);
|
|
508
|
-
pointer-events: none;
|
|
509
|
-
z-index: 0;
|
|
510
|
-
filter: blur(60px);
|
|
511
|
-
will-change: transform;
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
/* Subtle connecting line between devices */
|
|
515
|
-
.showcase::after {
|
|
516
|
-
content: '';
|
|
517
|
-
position: absolute;
|
|
518
|
-
top: 50%;
|
|
519
|
-
left: 50%;
|
|
520
|
-
transform: translate(-50%, -50%);
|
|
521
|
-
width: 1px;
|
|
522
|
-
height: 35%;
|
|
523
|
-
background: linear-gradient(180deg, transparent, rgba(59,130,246,0.2), rgba(245,158,11,0.2), transparent);
|
|
524
|
-
pointer-events: none;
|
|
525
|
-
z-index: 0;
|
|
526
|
-
}
|
|
527
|
-
|
|
528
|
-
.device {
|
|
529
|
-
position: relative;
|
|
530
|
-
transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
|
|
531
|
-
}
|
|
532
|
-
|
|
533
|
-
.device:hover {
|
|
534
|
-
transform: translateY(-8px);
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
.device img, .device picture { display: block; width: 100%; height: auto; }
|
|
538
|
-
|
|
539
|
-
.device-ipad {
|
|
540
|
-
width: 100%;
|
|
541
|
-
z-index: 1;
|
|
542
|
-
transform: rotate(-1deg);
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
.device-ipad:hover {
|
|
546
|
-
transform: rotate(-1deg) translateY(-8px);
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
.device-ipad img {
|
|
550
|
-
border-radius: 0;
|
|
551
|
-
box-shadow: none;
|
|
302
|
+
gap: 1.5rem;
|
|
552
303
|
}
|
|
553
304
|
|
|
554
|
-
.device
|
|
555
|
-
width: 90%;
|
|
556
|
-
z-index: 2;
|
|
557
|
-
justify-self: center;
|
|
558
|
-
align-self: center;
|
|
559
|
-
transform: rotate(2deg);
|
|
560
|
-
}
|
|
305
|
+
.device img { display: block; width: 100%; height: auto; }
|
|
561
306
|
|
|
562
|
-
.device-
|
|
563
|
-
transform: rotate(2deg) translateY(-8px);
|
|
564
|
-
}
|
|
307
|
+
.device-ipad { z-index: 1; }
|
|
565
308
|
|
|
566
|
-
.device-iphone img {
|
|
567
|
-
border-radius: 12%;
|
|
568
|
-
box-shadow:
|
|
569
|
-
0 45px 100px rgba(0,0,0,0.55),
|
|
570
|
-
0 15px 50px rgba(0,0,0,0.35),
|
|
571
|
-
0 0 80px rgba(245,158,11,0.08);
|
|
572
|
-
}
|
|
573
|
-
|
|
574
|
-
/* ── iPad Carousel ── */
|
|
575
309
|
.ipad-carousel {
|
|
576
310
|
position: relative;
|
|
577
311
|
width: 100%;
|
|
578
312
|
overflow: hidden;
|
|
579
313
|
border-radius: 4.2%;
|
|
580
|
-
box-shadow:
|
|
581
|
-
|
|
582
|
-
0 15px 50px rgba(0,0,0,0.3),
|
|
583
|
-
0 0 80px rgba(59,130,246,0.08);
|
|
314
|
+
box-shadow: 0 8px 40px rgba(0,0,0,0.1);
|
|
315
|
+
border: 1px solid var(--border);
|
|
584
316
|
}
|
|
585
317
|
|
|
586
|
-
.carousel-track {
|
|
587
|
-
position: relative;
|
|
588
|
-
width: 100%;
|
|
589
|
-
}
|
|
318
|
+
.carousel-track { position: relative; width: 100%; }
|
|
590
319
|
|
|
591
320
|
.carousel-slide {
|
|
592
321
|
position: absolute;
|
|
593
|
-
top: 0;
|
|
594
|
-
left: 0;
|
|
322
|
+
top: 0; left: 0;
|
|
595
323
|
width: 100%;
|
|
596
324
|
opacity: 0;
|
|
597
|
-
transition: opacity 0.
|
|
325
|
+
transition: opacity 0.5s ease;
|
|
598
326
|
pointer-events: none;
|
|
599
327
|
}
|
|
600
328
|
|
|
@@ -604,469 +332,223 @@
|
|
|
604
332
|
pointer-events: auto;
|
|
605
333
|
}
|
|
606
334
|
|
|
607
|
-
.carousel-slide img {
|
|
608
|
-
display: block;
|
|
609
|
-
width: 100%;
|
|
610
|
-
height: auto;
|
|
611
|
-
border-radius: 0;
|
|
612
|
-
box-shadow: none;
|
|
613
|
-
}
|
|
335
|
+
.carousel-slide img { display: block; width: 100%; height: auto; }
|
|
614
336
|
|
|
615
337
|
.carousel-dots {
|
|
616
338
|
position: absolute;
|
|
617
|
-
bottom:
|
|
339
|
+
bottom: 10px;
|
|
618
340
|
left: 50%;
|
|
619
341
|
transform: translateX(-50%);
|
|
620
342
|
display: flex;
|
|
621
|
-
gap:
|
|
343
|
+
gap: 6px;
|
|
622
344
|
z-index: 5;
|
|
623
345
|
}
|
|
624
346
|
|
|
625
347
|
.carousel-dot {
|
|
626
|
-
width:
|
|
627
|
-
height: 8px;
|
|
348
|
+
width: 7px; height: 7px;
|
|
628
349
|
border-radius: 50%;
|
|
629
350
|
border: none;
|
|
630
|
-
background: rgba(255,255,255,0.
|
|
351
|
+
background: rgba(255,255,255,0.45);
|
|
631
352
|
cursor: pointer;
|
|
632
353
|
padding: 0;
|
|
633
|
-
transition: background 0.3s ease, transform 0.3s ease;
|
|
634
354
|
}
|
|
635
355
|
|
|
636
|
-
.carousel-dot.active {
|
|
637
|
-
background: rgba(255,255,255,0.9);
|
|
638
|
-
transform: scale(1.2);
|
|
639
|
-
}
|
|
640
|
-
|
|
641
|
-
.carousel-dot:hover {
|
|
642
|
-
background: rgba(255,255,255,0.7);
|
|
643
|
-
}
|
|
356
|
+
.carousel-dot.active { background: rgba(255,255,255,0.9); }
|
|
644
357
|
|
|
645
358
|
.carousel-label {
|
|
646
359
|
position: absolute;
|
|
647
|
-
top:
|
|
648
|
-
left: 16px;
|
|
360
|
+
top: 12px; left: 12px;
|
|
649
361
|
display: flex;
|
|
650
362
|
flex-direction: column;
|
|
651
|
-
gap:
|
|
652
|
-
background: rgba(0,0,0,0.
|
|
653
|
-
padding:
|
|
654
|
-
border-radius:
|
|
363
|
+
gap: 1px;
|
|
364
|
+
background: rgba(0,0,0,0.65);
|
|
365
|
+
padding: 6px 12px;
|
|
366
|
+
border-radius: 8px;
|
|
655
367
|
z-index: 4;
|
|
656
368
|
pointer-events: none;
|
|
657
369
|
}
|
|
658
370
|
|
|
659
|
-
.carousel-label-title {
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
371
|
+
.carousel-label-title { font-size: 0.85rem; font-weight: 700; color: #fff; }
|
|
372
|
+
.carousel-label-desc { font-size: 0.65rem; color: rgba(255,255,255,0.7); }
|
|
373
|
+
|
|
374
|
+
.device-iphone {
|
|
375
|
+
width: 90%;
|
|
376
|
+
z-index: 2;
|
|
377
|
+
justify-self: center;
|
|
378
|
+
align-self: center;
|
|
664
379
|
}
|
|
665
380
|
|
|
666
|
-
.
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
font-weight: 400;
|
|
381
|
+
.device-iphone img {
|
|
382
|
+
border-radius: 12%;
|
|
383
|
+
box-shadow: 0 8px 40px rgba(0,0,0,0.12);
|
|
670
384
|
}
|
|
671
385
|
|
|
672
386
|
/* ── Divider ── */
|
|
673
|
-
.
|
|
674
|
-
max-width:
|
|
675
|
-
margin:
|
|
387
|
+
.divider {
|
|
388
|
+
max-width: 80px;
|
|
389
|
+
margin: 5rem auto;
|
|
676
390
|
height: 1px;
|
|
677
|
-
background:
|
|
391
|
+
background: var(--border);
|
|
678
392
|
}
|
|
679
393
|
|
|
680
|
-
/* ──
|
|
681
|
-
.
|
|
682
|
-
max-width:
|
|
683
|
-
margin:
|
|
394
|
+
/* ── Features ── */
|
|
395
|
+
.features {
|
|
396
|
+
max-width: 960px;
|
|
397
|
+
margin: 0 auto;
|
|
684
398
|
padding: 0 2rem;
|
|
685
399
|
display: grid;
|
|
686
400
|
grid-template-columns: repeat(3, 1fr);
|
|
687
|
-
|
|
688
|
-
gap: 1rem;
|
|
401
|
+
gap: 1.5rem;
|
|
689
402
|
}
|
|
690
403
|
|
|
691
|
-
.
|
|
404
|
+
.feature-card {
|
|
692
405
|
background: var(--surface);
|
|
693
406
|
border: 1px solid var(--border);
|
|
694
|
-
border-radius:
|
|
695
|
-
padding:
|
|
696
|
-
position: relative;
|
|
697
|
-
overflow: hidden;
|
|
698
|
-
transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
|
|
699
|
-
display: flex;
|
|
700
|
-
flex-direction: column;
|
|
701
|
-
justify-content: flex-end;
|
|
702
|
-
}
|
|
703
|
-
|
|
704
|
-
.bento-card:hover {
|
|
705
|
-
border-color: var(--border-hover);
|
|
706
|
-
background: var(--surface-hover);
|
|
707
|
-
transform: translateY(-4px);
|
|
708
|
-
box-shadow: 0 20px 60px rgba(0,0,0,0.3);
|
|
407
|
+
border-radius: 14px;
|
|
408
|
+
padding: 1.75rem;
|
|
709
409
|
}
|
|
710
410
|
|
|
711
|
-
.
|
|
712
|
-
.bento-card.tall { grid-row: span 2; }
|
|
713
|
-
|
|
714
|
-
.bento-visual {
|
|
715
|
-
flex: 1;
|
|
716
|
-
display: flex;
|
|
717
|
-
align-items: center;
|
|
718
|
-
justify-content: center;
|
|
719
|
-
margin-bottom: 1.5rem;
|
|
720
|
-
position: relative;
|
|
721
|
-
}
|
|
411
|
+
.feature-card.wide { grid-column: span 2; }
|
|
722
412
|
|
|
723
|
-
.
|
|
724
|
-
width:
|
|
725
|
-
border-radius:
|
|
413
|
+
.feature-icon {
|
|
414
|
+
width: 40px; height: 40px;
|
|
415
|
+
border-radius: 10px;
|
|
726
416
|
display: flex;
|
|
727
417
|
align-items: center;
|
|
728
418
|
justify-content: center;
|
|
729
|
-
|
|
419
|
+
margin-bottom: 1rem;
|
|
420
|
+
background: var(--accent-light);
|
|
421
|
+
color: var(--accent);
|
|
730
422
|
}
|
|
731
423
|
|
|
732
|
-
.
|
|
733
|
-
.bento-icon.rose { background: linear-gradient(135deg, rgba(244,63,94,0.2), rgba(244,63,94,0.05)); color: var(--rose); }
|
|
734
|
-
.bento-icon.cyan { background: linear-gradient(135deg, rgba(34,211,238,0.2), rgba(34,211,238,0.05)); color: var(--cyan); }
|
|
735
|
-
.bento-icon.green { background: linear-gradient(135deg, rgba(52,211,153,0.2), rgba(52,211,153,0.05)); color: var(--green); }
|
|
736
|
-
.bento-icon.amber { background: linear-gradient(135deg, rgba(245,158,11,0.2), rgba(245,158,11,0.05)); color: var(--amber); }
|
|
737
|
-
.bento-icon.blue { background: linear-gradient(135deg, rgba(96,165,250,0.2), rgba(96,165,250,0.05)); color: var(--blue); }
|
|
424
|
+
.feature-icon svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
|
|
738
425
|
|
|
739
|
-
|
|
740
|
-
.
|
|
741
|
-
|
|
742
|
-
gap: 0;
|
|
743
|
-
background: rgba(255,255,255,0.04);
|
|
744
|
-
border: 1px solid var(--border);
|
|
745
|
-
border-radius: 12px;
|
|
746
|
-
overflow: hidden;
|
|
747
|
-
}
|
|
426
|
+
.feature-icon.green { background: #f0fdf4; color: #16a34a; }
|
|
427
|
+
.feature-icon.cyan { background: #ecfeff; color: #0891b2; }
|
|
428
|
+
.feature-icon.amber { background: #fffbeb; color: #d97706; }
|
|
748
429
|
|
|
749
|
-
.
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
position: relative;
|
|
754
|
-
transition: all 0.3s;
|
|
430
|
+
.feature-card h3 {
|
|
431
|
+
font-size: 0.95rem;
|
|
432
|
+
font-weight: 600;
|
|
433
|
+
margin-bottom: 0.3rem;
|
|
755
434
|
}
|
|
756
435
|
|
|
757
|
-
.
|
|
758
|
-
|
|
436
|
+
.feature-card p {
|
|
437
|
+
font-size: 0.85rem;
|
|
438
|
+
color: var(--text-secondary);
|
|
439
|
+
line-height: 1.55;
|
|
759
440
|
}
|
|
760
441
|
|
|
761
|
-
|
|
762
|
-
|
|
442
|
+
/* Mode visual for wide card */
|
|
443
|
+
.mode-pills {
|
|
444
|
+
display: flex;
|
|
445
|
+
gap: 0.5rem;
|
|
446
|
+
margin-bottom: 1rem;
|
|
763
447
|
}
|
|
764
448
|
|
|
765
|
-
.mode-
|
|
766
|
-
width: 32px; height: 32px;
|
|
767
|
-
margin: 0 auto 0.4rem;
|
|
768
|
-
border-radius: 8px;
|
|
449
|
+
.mode-pill {
|
|
769
450
|
display: flex;
|
|
770
451
|
align-items: center;
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
.mode-toggle-item .mode-icon.loop-icon { background: rgba(52,211,153,0.15); color: var(--green); }
|
|
779
|
-
|
|
780
|
-
.mode-toggle-item .mode-name {
|
|
781
|
-
font-size: 0.8rem;
|
|
782
|
-
font-weight: 600;
|
|
783
|
-
margin-bottom: 0.2rem;
|
|
452
|
+
gap: 0.35rem;
|
|
453
|
+
padding: 0.4rem 0.75rem;
|
|
454
|
+
border-radius: 8px;
|
|
455
|
+
font-size: 0.78rem;
|
|
456
|
+
font-weight: 500;
|
|
457
|
+
background: #fff;
|
|
458
|
+
border: 1px solid var(--border);
|
|
784
459
|
color: var(--text);
|
|
785
460
|
}
|
|
786
461
|
|
|
787
|
-
.mode-
|
|
788
|
-
|
|
789
|
-
color: var(--text-dim);
|
|
790
|
-
line-height: 1.4;
|
|
791
|
-
}
|
|
462
|
+
.mode-pill svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; }
|
|
463
|
+
.mode-pill.active { background: var(--accent-light); border-color: #bfdbfe; color: var(--accent); }
|
|
792
464
|
|
|
793
|
-
/*
|
|
465
|
+
/* Encrypt visual */
|
|
794
466
|
.encrypt-visual {
|
|
795
467
|
display: flex;
|
|
796
468
|
align-items: center;
|
|
797
|
-
gap: 0.
|
|
469
|
+
gap: 0.5rem;
|
|
798
470
|
font-family: 'JetBrains Mono', monospace;
|
|
799
471
|
font-size: 0.72rem;
|
|
800
|
-
color: var(--text-
|
|
472
|
+
color: var(--text-secondary);
|
|
473
|
+
margin-bottom: 1rem;
|
|
801
474
|
}
|
|
802
475
|
|
|
803
476
|
.encrypt-block {
|
|
804
|
-
padding: 0.
|
|
805
|
-
border-radius:
|
|
806
|
-
background:
|
|
807
|
-
border: 1px solid var(--border);
|
|
808
|
-
white-space: nowrap;
|
|
809
|
-
}
|
|
810
|
-
|
|
811
|
-
.encrypt-arrow { color: var(--accent); font-size: 1rem; }
|
|
812
|
-
|
|
813
|
-
.encrypt-block.locked {
|
|
814
|
-
color: var(--green);
|
|
815
|
-
border-color: rgba(52,211,153,0.2);
|
|
816
|
-
background: rgba(52,211,153,0.05);
|
|
817
|
-
}
|
|
818
|
-
|
|
819
|
-
/* Device flow visual */
|
|
820
|
-
.device-flow {
|
|
821
|
-
display: flex;
|
|
822
|
-
align-items: center;
|
|
823
|
-
gap: 1rem;
|
|
824
|
-
}
|
|
825
|
-
|
|
826
|
-
.device-pill {
|
|
827
|
-
display: flex;
|
|
828
|
-
align-items: center;
|
|
829
|
-
gap: 0.4rem;
|
|
830
|
-
padding: 0.5rem 0.8rem;
|
|
831
|
-
border-radius: 10px;
|
|
832
|
-
background: rgba(255,255,255,0.04);
|
|
833
|
-
border: 1px solid var(--border);
|
|
834
|
-
font-size: 0.75rem;
|
|
835
|
-
color: var(--text-mid);
|
|
836
|
-
}
|
|
837
|
-
|
|
838
|
-
.device-pill svg { width: 14px; height: 14px; fill: currentColor; opacity: 0.6; }
|
|
839
|
-
|
|
840
|
-
.flow-line {
|
|
841
|
-
flex: 1;
|
|
842
|
-
height: 1px;
|
|
843
|
-
background: linear-gradient(90deg, var(--border-hover), transparent);
|
|
844
|
-
position: relative;
|
|
845
|
-
}
|
|
846
|
-
|
|
847
|
-
.flow-line::after {
|
|
848
|
-
content: '';
|
|
849
|
-
position: absolute;
|
|
850
|
-
right: 0; top: -2px;
|
|
851
|
-
width: 5px; height: 5px;
|
|
852
|
-
border-radius: 50%;
|
|
853
|
-
background: var(--accent);
|
|
854
|
-
box-shadow: 0 0 8px var(--accent-glow);
|
|
855
|
-
animation: flowPulse 2s ease-in-out infinite;
|
|
856
|
-
}
|
|
857
|
-
|
|
858
|
-
@keyframes flowPulse {
|
|
859
|
-
0%, 100% { opacity: 0.4; }
|
|
860
|
-
50% { opacity: 1; }
|
|
861
|
-
}
|
|
862
|
-
|
|
863
|
-
.bento-card h3 {
|
|
864
|
-
font-size: 1.05rem;
|
|
865
|
-
font-weight: 600;
|
|
866
|
-
margin-bottom: 0.4rem;
|
|
867
|
-
letter-spacing: -0.01em;
|
|
868
|
-
}
|
|
869
|
-
|
|
870
|
-
.bento-card p {
|
|
871
|
-
font-size: 0.85rem;
|
|
872
|
-
color: var(--text-dim);
|
|
873
|
-
line-height: 1.55;
|
|
874
|
-
}
|
|
875
|
-
|
|
876
|
-
/* ── How It Works ── */
|
|
877
|
-
.workflow {
|
|
878
|
-
max-width: 700px;
|
|
879
|
-
margin: 0 auto 6rem;
|
|
880
|
-
padding: 0 2rem;
|
|
881
|
-
}
|
|
882
|
-
|
|
883
|
-
.workflow-label {
|
|
884
|
-
font-size: 0.7rem;
|
|
885
|
-
font-weight: 600;
|
|
886
|
-
letter-spacing: 0.15em;
|
|
887
|
-
text-transform: uppercase;
|
|
888
|
-
color: var(--accent);
|
|
889
|
-
text-align: center;
|
|
890
|
-
margin-bottom: 1.5rem;
|
|
891
|
-
}
|
|
892
|
-
|
|
893
|
-
.workflow h2 {
|
|
894
|
-
font-size: clamp(1.6rem, 3.5vw, 2.2rem);
|
|
895
|
-
font-weight: 700;
|
|
896
|
-
text-align: center;
|
|
897
|
-
letter-spacing: -0.03em;
|
|
898
|
-
margin-bottom: 3rem;
|
|
899
|
-
}
|
|
900
|
-
|
|
901
|
-
.workflow-steps {
|
|
902
|
-
position: relative;
|
|
903
|
-
display: flex;
|
|
904
|
-
flex-direction: column;
|
|
905
|
-
gap: 0;
|
|
906
|
-
}
|
|
907
|
-
|
|
908
|
-
.workflow-steps::before {
|
|
909
|
-
content: '';
|
|
910
|
-
position: absolute;
|
|
911
|
-
left: 23px;
|
|
912
|
-
top: 48px;
|
|
913
|
-
bottom: 48px;
|
|
914
|
-
width: 1px;
|
|
915
|
-
background: linear-gradient(180deg, var(--accent), var(--cyan), var(--green));
|
|
916
|
-
opacity: 0.3;
|
|
917
|
-
}
|
|
918
|
-
|
|
919
|
-
.workflow-step {
|
|
920
|
-
display: flex;
|
|
921
|
-
align-items: flex-start;
|
|
922
|
-
gap: 1.5rem;
|
|
923
|
-
padding: 1.5rem 0;
|
|
924
|
-
position: relative;
|
|
925
|
-
}
|
|
926
|
-
|
|
927
|
-
.step-marker {
|
|
928
|
-
width: 48px; height: 48px;
|
|
929
|
-
border-radius: 14px;
|
|
930
|
-
display: flex;
|
|
931
|
-
align-items: center;
|
|
932
|
-
justify-content: center;
|
|
933
|
-
flex-shrink: 0;
|
|
934
|
-
font-size: 1.1rem;
|
|
935
|
-
background: var(--surface);
|
|
477
|
+
padding: 0.3rem 0.6rem;
|
|
478
|
+
border-radius: 6px;
|
|
479
|
+
background: #fff;
|
|
936
480
|
border: 1px solid var(--border);
|
|
937
|
-
position: relative;
|
|
938
|
-
z-index: 1;
|
|
939
|
-
}
|
|
940
|
-
|
|
941
|
-
.workflow-step:nth-child(1) .step-marker { border-color: rgba(59,130,246,0.3); }
|
|
942
|
-
.workflow-step:nth-child(2) .step-marker { border-color: rgba(34,211,238,0.3); }
|
|
943
|
-
.workflow-step:nth-child(3) .step-marker { border-color: rgba(52,211,153,0.3); }
|
|
944
|
-
|
|
945
|
-
.step-content h3 {
|
|
946
|
-
font-size: 1rem;
|
|
947
|
-
font-weight: 600;
|
|
948
|
-
margin-bottom: 0.35rem;
|
|
949
|
-
letter-spacing: -0.01em;
|
|
950
481
|
}
|
|
951
482
|
|
|
952
|
-
.
|
|
953
|
-
|
|
954
|
-
color: var(--text-dim);
|
|
955
|
-
line-height: 1.6;
|
|
956
|
-
}
|
|
957
|
-
|
|
958
|
-
.step-content code {
|
|
959
|
-
font-family: 'JetBrains Mono', monospace;
|
|
960
|
-
font-size: 0.8rem;
|
|
961
|
-
color: var(--green);
|
|
962
|
-
background: rgba(52,211,153,0.08);
|
|
963
|
-
padding: 0.15rem 0.45rem;
|
|
964
|
-
border-radius: 5px;
|
|
965
|
-
border: 1px solid rgba(52,211,153,0.12);
|
|
966
|
-
}
|
|
483
|
+
.encrypt-arrow { color: var(--accent); }
|
|
484
|
+
.encrypt-block.locked { color: #16a34a; border-color: #bbf7d0; background: #f0fdf4; }
|
|
967
485
|
|
|
968
486
|
/* ── Footer ── */
|
|
969
487
|
footer {
|
|
970
488
|
text-align: center;
|
|
971
489
|
padding: 3rem 2rem;
|
|
972
|
-
color: var(--text-
|
|
490
|
+
color: var(--text-secondary);
|
|
973
491
|
font-size: 0.8rem;
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
footer::before {
|
|
978
|
-
content: '';
|
|
979
|
-
display: block;
|
|
980
|
-
max-width: 200px;
|
|
981
|
-
margin: 0 auto 2rem;
|
|
982
|
-
height: 1px;
|
|
983
|
-
background: linear-gradient(90deg, transparent, var(--border-hover), transparent);
|
|
492
|
+
border-top: 1px solid var(--border);
|
|
493
|
+
margin-top: 5rem;
|
|
984
494
|
}
|
|
985
495
|
|
|
986
|
-
footer a {
|
|
987
|
-
color: var(--text-mid);
|
|
988
|
-
text-decoration: none;
|
|
989
|
-
transition: color 0.3s;
|
|
990
|
-
}
|
|
991
|
-
|
|
992
|
-
footer a:hover { color: var(--text); }
|
|
993
|
-
|
|
994
496
|
.footer-links {
|
|
995
497
|
display: flex;
|
|
996
498
|
align-items: center;
|
|
997
499
|
justify-content: center;
|
|
998
500
|
gap: 1.5rem;
|
|
999
|
-
margin-bottom:
|
|
501
|
+
margin-bottom: 0.75rem;
|
|
1000
502
|
}
|
|
1001
503
|
|
|
1002
|
-
.footer-brand {
|
|
1003
|
-
|
|
1004
|
-
|
|
504
|
+
.footer-brand { font-weight: 600; color: var(--text); }
|
|
505
|
+
|
|
506
|
+
footer a {
|
|
507
|
+
color: var(--text-secondary);
|
|
508
|
+
text-decoration: none;
|
|
1005
509
|
}
|
|
1006
510
|
|
|
511
|
+
footer a:hover { color: var(--text); }
|
|
512
|
+
|
|
1007
513
|
/* ── Responsive ── */
|
|
1008
514
|
@media (max-width: 768px) {
|
|
1009
|
-
.
|
|
1010
|
-
|
|
1011
|
-
}
|
|
1012
|
-
.bento-card.wide { grid-column: span 1; }
|
|
1013
|
-
.bento-card.tall { grid-row: span 1; }
|
|
1014
|
-
.hero { padding: 5rem 1.5rem 3rem; }
|
|
515
|
+
.features { grid-template-columns: 1fr; }
|
|
516
|
+
.feature-card.wide { grid-column: span 1; }
|
|
517
|
+
.hero { padding: 4rem 1.5rem 2rem; }
|
|
1015
518
|
.cta-group { flex-direction: column; }
|
|
1016
|
-
.nav-links { gap:
|
|
519
|
+
.nav-links { gap: 0.75rem; }
|
|
1017
520
|
.nav-links a:not(.nav-gh):not(.nav-lang) { display: none; }
|
|
1018
|
-
.encrypt-visual { flex-wrap: wrap; justify-content:
|
|
521
|
+
.encrypt-visual { flex-wrap: wrap; justify-content: flex-start; gap: 0.4rem; }
|
|
1019
522
|
.encrypt-visual .encrypt-arrow { display: none; }
|
|
1020
|
-
.
|
|
1021
|
-
.device-flow { flex-wrap: wrap; justify-content: center; gap: 0.6rem; }
|
|
1022
|
-
.device-flow .flow-line { display: none; }
|
|
1023
|
-
.device-pill { font-size: 0.7rem; }
|
|
523
|
+
.mode-pills { flex-wrap: wrap; }
|
|
1024
524
|
}
|
|
1025
525
|
|
|
1026
526
|
@media (max-width: 640px) {
|
|
1027
527
|
nav { padding: 1rem 1.25rem; }
|
|
1028
528
|
.showcase {
|
|
1029
|
-
margin-top: 3rem;
|
|
1030
529
|
display: flex;
|
|
1031
530
|
justify-content: center;
|
|
1032
531
|
align-items: flex-end;
|
|
1033
532
|
gap: 0;
|
|
533
|
+
margin-top: 3rem;
|
|
1034
534
|
}
|
|
1035
|
-
.
|
|
1036
|
-
.device-ipad {
|
|
1037
|
-
width: 78%;
|
|
1038
|
-
transform: rotate(0deg);
|
|
1039
|
-
flex-shrink: 0;
|
|
1040
|
-
}
|
|
1041
|
-
.device-ipad:hover { transform: translateY(-8px); }
|
|
535
|
+
.device-ipad { width: 78%; flex-shrink: 0; }
|
|
1042
536
|
.device-iphone {
|
|
1043
537
|
width: 28%;
|
|
1044
|
-
transform:
|
|
538
|
+
transform: translateY(5%);
|
|
1045
539
|
margin-left: -12%;
|
|
1046
540
|
flex-shrink: 0;
|
|
1047
|
-
justify-self: auto;
|
|
1048
|
-
align-self: auto;
|
|
1049
541
|
}
|
|
1050
|
-
.
|
|
1051
|
-
.carousel-dots { bottom: 8px; gap: 6px; }
|
|
542
|
+
.carousel-dots { bottom: 6px; gap: 5px; }
|
|
1052
543
|
.carousel-dot { width: 6px; height: 6px; }
|
|
1053
|
-
.carousel-label { top: 8px; left: 8px; padding:
|
|
1054
|
-
.carousel-label-title { font-size: 0.
|
|
1055
|
-
.carousel-label-desc { font-size: 0.
|
|
1056
|
-
.terminal { margin: 0 1rem;
|
|
1057
|
-
.terminal-body { padding: 1rem; font-size: 0.75rem; overflow-x: auto; }
|
|
1058
|
-
.
|
|
1059
|
-
.
|
|
1060
|
-
.
|
|
1061
|
-
.bento { padding: 0 1rem; margin: 4rem auto; }
|
|
1062
|
-
.bento-card { padding: 1.5rem; border-radius: 16px; overflow: visible; }
|
|
1063
|
-
.encrypt-visual { gap: 0.4rem; }
|
|
1064
|
-
.encrypt-block { padding: 0.3rem 0.5rem; font-size: 0.6rem; }
|
|
1065
|
-
.device-flow { gap: 0.5rem; }
|
|
1066
|
-
.device-pill { padding: 0.4rem 0.6rem; font-size: 0.65rem; }
|
|
1067
|
-
.workflow-step { gap: 1rem; }
|
|
1068
|
-
.step-marker { width: 40px; height: 40px; border-radius: 12px; font-size: 1rem; }
|
|
1069
|
-
.workflow-steps::before { left: 19px; }
|
|
544
|
+
.carousel-label { top: 8px; left: 8px; padding: 4px 8px; }
|
|
545
|
+
.carousel-label-title { font-size: 0.75rem; }
|
|
546
|
+
.carousel-label-desc { font-size: 0.58rem; }
|
|
547
|
+
.terminal { margin: 0 1rem; }
|
|
548
|
+
.terminal-body { padding: 0.75rem 1rem; font-size: 0.75rem; overflow-x: auto; }
|
|
549
|
+
.features { padding: 0 1rem; }
|
|
550
|
+
.feature-card { padding: 1.25rem; }
|
|
551
|
+
.divider { margin: 3.5rem auto; }
|
|
1070
552
|
}
|
|
1071
553
|
|
|
1072
554
|
.sr-only {
|
|
@@ -1082,26 +564,14 @@
|
|
|
1082
564
|
</head>
|
|
1083
565
|
<body>
|
|
1084
566
|
|
|
1085
|
-
<!-- Ambient background -->
|
|
1086
|
-
<div class="ambient" aria-hidden="true">
|
|
1087
|
-
<div class="ambient-orb"></div>
|
|
1088
|
-
<div class="ambient-orb"></div>
|
|
1089
|
-
<div class="ambient-orb"></div>
|
|
1090
|
-
</div>
|
|
1091
|
-
<div class="grain" aria-hidden="true"></div>
|
|
1092
|
-
|
|
1093
|
-
<div class="content">
|
|
1094
|
-
|
|
1095
|
-
<!-- Nav -->
|
|
1096
567
|
<header>
|
|
1097
568
|
<nav>
|
|
1098
569
|
<div class="logo">
|
|
1099
|
-
<img
|
|
1100
|
-
<
|
|
570
|
+
<img src="/favicon.svg" alt="AgenticWorker">
|
|
571
|
+
<span>AgenticWorker</span>
|
|
1101
572
|
</div>
|
|
1102
573
|
<div class="nav-links">
|
|
1103
574
|
<a href="#features">Features</a>
|
|
1104
|
-
<a href="#how-it-works">How It Works</a>
|
|
1105
575
|
<a href="/zh" class="nav-lang">中文</a>
|
|
1106
576
|
<a href="https://github.com/kailunshi_microsoft/AgenticWorker" target="_blank" rel="noopener" class="nav-gh">
|
|
1107
577
|
<svg viewBox="0 0 16 16" aria-hidden="true"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>
|
|
@@ -1119,18 +589,10 @@
|
|
|
1119
589
|
<div class="hero-badge-dot"></div>
|
|
1120
590
|
Open Source · End-to-End Encrypted
|
|
1121
591
|
</div>
|
|
1122
|
-
<h1>
|
|
1123
|
-
<span class="line">Control Claude Code.</span>
|
|
1124
|
-
<span class="line"><em>From anywhere.</em></span>
|
|
1125
|
-
</h1>
|
|
1126
|
-
<p class="hero-sub">
|
|
1127
|
-
Start Claude Code on your machine. Walk away.
|
|
1128
|
-
<strong>Chat, launch agent teams, or schedule tasks</strong> —
|
|
1129
|
-
from your phone, tablet, or any browser. End-to-end encrypted, zero config.
|
|
1130
|
-
</p>
|
|
592
|
+
<h1>Remote Control<br><em>for Claude Code.</em></h1>
|
|
1131
593
|
<div class="cta-group">
|
|
1132
594
|
<button class="cta-primary" onclick="copyInstall()">
|
|
1133
|
-
<svg width="
|
|
595
|
+
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" y1="19" x2="20" y2="19"></line></svg>
|
|
1134
596
|
Quick Install
|
|
1135
597
|
</button>
|
|
1136
598
|
<a href="https://github.com/kailunshi_microsoft/AgenticWorker" target="_blank" rel="noopener" class="cta-secondary">
|
|
@@ -1139,7 +601,6 @@
|
|
|
1139
601
|
</a>
|
|
1140
602
|
</div>
|
|
1141
603
|
|
|
1142
|
-
<!-- Terminal -->
|
|
1143
604
|
<div class="terminal">
|
|
1144
605
|
<div class="terminal-bar">
|
|
1145
606
|
<div class="terminal-dot"></div>
|
|
@@ -1202,154 +663,94 @@
|
|
|
1202
663
|
</div>
|
|
1203
664
|
</section>
|
|
1204
665
|
|
|
1205
|
-
<div class="
|
|
666
|
+
<div class="divider"></div>
|
|
1206
667
|
|
|
1207
|
-
<!--
|
|
1208
|
-
<section class="
|
|
668
|
+
<!-- Features -->
|
|
669
|
+
<section class="features" id="features">
|
|
1209
670
|
<h2 class="sr-only">Features</h2>
|
|
1210
671
|
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
<
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
</div>
|
|
1226
|
-
<div class="mode-name">Team</div>
|
|
1227
|
-
<div class="mode-desc">Parallel sub-agents</div>
|
|
1228
|
-
</div>
|
|
1229
|
-
<div class="mode-toggle-item">
|
|
1230
|
-
<div class="mode-icon loop-icon">
|
|
1231
|
-
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 4 23 10 17 10"></polyline><polyline points="1 20 1 14 7 14"></polyline><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"></path></svg>
|
|
1232
|
-
</div>
|
|
1233
|
-
<div class="mode-name">Loop</div>
|
|
1234
|
-
<div class="mode-desc">Scheduled cron tasks</div>
|
|
1235
|
-
</div>
|
|
1236
|
-
</div>
|
|
672
|
+
<div class="feature-card wide">
|
|
673
|
+
<div class="mode-pills">
|
|
674
|
+
<span class="mode-pill active">
|
|
675
|
+
<svg viewBox="0 0 24 24"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>
|
|
676
|
+
Chat
|
|
677
|
+
</span>
|
|
678
|
+
<span class="mode-pill">
|
|
679
|
+
<svg viewBox="0 0 24 24"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>
|
|
680
|
+
Team
|
|
681
|
+
</span>
|
|
682
|
+
<span class="mode-pill">
|
|
683
|
+
<svg viewBox="0 0 24 24"><polyline points="23 4 23 10 17 10"></polyline><polyline points="1 20 1 14 7 14"></polyline><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"></path></svg>
|
|
684
|
+
Loop
|
|
685
|
+
</span>
|
|
1237
686
|
</div>
|
|
1238
687
|
<h3>Three Modes, One Interface</h3>
|
|
1239
688
|
<p>Chat with Claude interactively, spawn agent teams for complex tasks, or schedule recurring Loop jobs with cron — all from the same browser tab.</p>
|
|
1240
689
|
</div>
|
|
1241
690
|
|
|
1242
|
-
<div class="
|
|
1243
|
-
<div class="
|
|
1244
|
-
<
|
|
1245
|
-
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="2" width="14" height="20" rx="2" ry="2"></rect><line x1="12" y1="18" x2="12.01" y2="18"></line></svg>
|
|
1246
|
-
</div>
|
|
691
|
+
<div class="feature-card">
|
|
692
|
+
<div class="feature-icon cyan">
|
|
693
|
+
<svg viewBox="0 0 24 24"><rect x="5" y="2" width="14" height="20" rx="2" ry="2"></rect><line x1="12" y1="18" x2="12.01" y2="18"></line></svg>
|
|
1247
694
|
</div>
|
|
1248
695
|
<h3>Any Device</h3>
|
|
1249
696
|
<p>Phone, tablet, laptop — any browser becomes your Claude Code terminal.</p>
|
|
1250
697
|
</div>
|
|
1251
698
|
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
<div class="encrypt-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
<div class="encrypt-arrow">→</div>
|
|
1260
|
-
<div class="encrypt-block">hello world</div>
|
|
1261
|
-
</div>
|
|
699
|
+
<div class="feature-card wide">
|
|
700
|
+
<div class="encrypt-visual">
|
|
701
|
+
<div class="encrypt-block">hello world</div>
|
|
702
|
+
<div class="encrypt-arrow">→</div>
|
|
703
|
+
<div class="encrypt-block locked">x9f#k2$mQ...</div>
|
|
704
|
+
<div class="encrypt-arrow">→</div>
|
|
705
|
+
<div class="encrypt-block">hello world</div>
|
|
1262
706
|
</div>
|
|
1263
707
|
<h3>End-to-End Encrypted</h3>
|
|
1264
|
-
<p>XSalsa20-Poly1305 encryption. The relay server is a blind forwarder — it never sees your code,
|
|
708
|
+
<p>XSalsa20-Poly1305 encryption. The relay server is a blind forwarder — it never sees your code, prompts, or data.</p>
|
|
1265
709
|
</div>
|
|
1266
710
|
|
|
1267
|
-
<div class="
|
|
1268
|
-
<div class="
|
|
1269
|
-
<
|
|
1270
|
-
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg>
|
|
1271
|
-
</div>
|
|
711
|
+
<div class="feature-card">
|
|
712
|
+
<div class="feature-icon green">
|
|
713
|
+
<svg viewBox="0 0 24 24"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg>
|
|
1272
714
|
</div>
|
|
1273
715
|
<h3>Self-Hostable</h3>
|
|
1274
716
|
<p>Run your own relay server. Your infrastructure, your rules, your data.</p>
|
|
1275
717
|
</div>
|
|
1276
718
|
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
<div class="bento-icon blue">
|
|
1281
|
-
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>
|
|
1282
|
-
</div>
|
|
719
|
+
<div class="feature-card">
|
|
720
|
+
<div class="feature-icon">
|
|
721
|
+
<svg viewBox="0 0 24 24"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>
|
|
1283
722
|
</div>
|
|
1284
723
|
<h3>Multi-Agent Teams</h3>
|
|
1285
724
|
<p>Spawn parallel Claude subagents to tackle complex tasks. Live kanban board, activity feed, and team history.</p>
|
|
1286
725
|
</div>
|
|
1287
726
|
|
|
1288
|
-
<div class="
|
|
1289
|
-
<div class="
|
|
1290
|
-
<
|
|
1291
|
-
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="3" width="8" height="8" rx="1.5"></rect><rect x="14" y="3" width="8" height="8" rx="1.5"></rect><rect x="2" y="13" width="8" height="8" rx="1.5"></rect><rect x="14" y="13" width="8" height="8" rx="1.5"></rect></svg>
|
|
1292
|
-
</div>
|
|
727
|
+
<div class="feature-card">
|
|
728
|
+
<div class="feature-icon">
|
|
729
|
+
<svg viewBox="0 0 24 24"><rect x="2" y="3" width="8" height="8" rx="1.5"></rect><rect x="14" y="3" width="8" height="8" rx="1.5"></rect><rect x="2" y="13" width="8" height="8" rx="1.5"></rect><rect x="14" y="13" width="8" height="8" rx="1.5"></rect></svg>
|
|
1293
730
|
</div>
|
|
1294
731
|
<h3>Multi Session</h3>
|
|
1295
732
|
<p>Run multiple conversations in parallel. Switch between tasks without losing context.</p>
|
|
1296
733
|
</div>
|
|
1297
734
|
|
|
1298
|
-
<div class="
|
|
1299
|
-
<div class="
|
|
1300
|
-
<
|
|
1301
|
-
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
|
|
1302
|
-
</div>
|
|
735
|
+
<div class="feature-card">
|
|
736
|
+
<div class="feature-icon amber">
|
|
737
|
+
<svg viewBox="0 0 24 24"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
|
|
1303
738
|
</div>
|
|
1304
739
|
<h3>Zero Config</h3>
|
|
1305
740
|
<p>No accounts. No registration. Install, start, open — done.</p>
|
|
1306
741
|
</div>
|
|
1307
742
|
</section>
|
|
1308
743
|
|
|
1309
|
-
<div class="section-divider"></div>
|
|
1310
|
-
|
|
1311
|
-
<!-- How It Works -->
|
|
1312
|
-
<section class="workflow" id="how-it-works">
|
|
1313
|
-
<div class="workflow-label">How It Works</div>
|
|
1314
|
-
<h2>Three steps. That's it.</h2>
|
|
1315
|
-
<div class="workflow-steps">
|
|
1316
|
-
<div class="workflow-step">
|
|
1317
|
-
<div class="step-marker">01</div>
|
|
1318
|
-
<div class="step-content">
|
|
1319
|
-
<h3>Start the agent</h3>
|
|
1320
|
-
<p>Run <code>agentlink-client start -D</code> in your project directory. It prints a unique session URL.</p>
|
|
1321
|
-
</div>
|
|
1322
|
-
</div>
|
|
1323
|
-
<div class="workflow-step">
|
|
1324
|
-
<div class="step-marker">02</div>
|
|
1325
|
-
<div class="step-content">
|
|
1326
|
-
<h3>Open the URL, anywhere</h3>
|
|
1327
|
-
<p>Phone, tablet, a friend's laptop — any browser works. Traffic is end-to-end encrypted automatically; the relay never sees your data.</p>
|
|
1328
|
-
</div>
|
|
1329
|
-
</div>
|
|
1330
|
-
<div class="workflow-step">
|
|
1331
|
-
<div class="step-marker">03</div>
|
|
1332
|
-
<div class="step-content">
|
|
1333
|
-
<h3>Chat, collaborate, automate</h3>
|
|
1334
|
-
<p>Run interactive sessions, spawn agent teams for complex tasks, or set up scheduled Loop jobs — all from the same URL, with full history preserved.</p>
|
|
1335
|
-
</div>
|
|
1336
|
-
</div>
|
|
1337
|
-
</div>
|
|
1338
|
-
</section>
|
|
1339
|
-
|
|
1340
744
|
</main>
|
|
1341
745
|
|
|
1342
746
|
<footer>
|
|
1343
747
|
<div class="footer-links">
|
|
1344
748
|
<span class="footer-brand">AgenticWorker</span>
|
|
1345
749
|
<a href="https://github.com/kailunshi_microsoft/AgenticWorker" rel="noopener">GitHub</a>
|
|
750
|
+
<a href="https://www.linkedin.com/in/shikailun/" rel="noopener">LinkedIn</a>
|
|
1346
751
|
</div>
|
|
1347
|
-
<p>Open source. Free forever. Built for developers who ship from anywhere.</p>
|
|
1348
752
|
</footer>
|
|
1349
753
|
|
|
1350
|
-
</div>
|
|
1351
|
-
|
|
1352
|
-
<!-- Toast for copy -->
|
|
1353
754
|
<div class="terminal-copy-toast" id="copyToast">Copied to clipboard</div>
|
|
1354
755
|
|
|
1355
756
|
<script>
|
|
@@ -1401,13 +802,11 @@ function showToast() {
|
|
|
1401
802
|
});
|
|
1402
803
|
});
|
|
1403
804
|
|
|
1404
|
-
// Touch/swipe support
|
|
1405
805
|
const track = document.querySelector('.ipad-carousel');
|
|
1406
|
-
let startX = 0,
|
|
806
|
+
let startX = 0, dragging = false;
|
|
1407
807
|
|
|
1408
808
|
track.addEventListener('touchstart', e => {
|
|
1409
809
|
startX = e.touches[0].clientX;
|
|
1410
|
-
startY = e.touches[0].clientY;
|
|
1411
810
|
dragging = true;
|
|
1412
811
|
}, { passive: true });
|
|
1413
812
|
|
|
@@ -1415,14 +814,12 @@ function showToast() {
|
|
|
1415
814
|
if (!dragging) return;
|
|
1416
815
|
dragging = false;
|
|
1417
816
|
const dx = e.changedTouches[0].clientX - startX;
|
|
1418
|
-
|
|
1419
|
-
if (Math.abs(dx) > 50 && Math.abs(dx) > Math.abs(dy)) {
|
|
817
|
+
if (Math.abs(dx) > 50) {
|
|
1420
818
|
goTo(dx < 0 ? current + 1 : current - 1);
|
|
1421
819
|
resetAuto();
|
|
1422
820
|
}
|
|
1423
821
|
}, { passive: true });
|
|
1424
822
|
|
|
1425
|
-
// Mouse drag support for desktop
|
|
1426
823
|
track.addEventListener('mousedown', e => {
|
|
1427
824
|
startX = e.clientX;
|
|
1428
825
|
dragging = true;
|