PageSourceSearch

https://chipagents.ai/

html chipagents.ai collected 2026-10-03 20:28:05 UTC 207,048 bytes, 2,165 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="UTF-8">
5<meta name="viewport" content="width=device-width, initial-scale=1.0">
6<title>ChipAgents | The agentic foundation for semiconductor</title>
7<style>
8  @font-face {
9    font-family: 'Mozaic Geo';
10    src: url(/redesign/fonts/mozaic-regular.woff2) format('woff2');
11    font-weight: 400 600;
12    font-style: normal;
13    font-display: swap;
14  }
15  @font-face {
16    font-family: 'Mozaic Geo';
17    src: url(/redesign/fonts/mozaic-bold.woff2) format('woff2');
18    font-weight: 700 900;
19    font-style: normal;
20    font-display: swap;
21  }
22  :root{
23    --bg: #f4f4f4;
24    --ink: #0d1117;
25    --orange: #fd6420;
26    --orange-pale: #ffd9bd;
27    --line: rgba(13,17,23,0.12);
28    --paper: #ffffff;
29    --font: 'Mozaic Geo', 'Figtree', sans-serif;
30  }
31  *{ margin:0; padding:0; box-sizing:border-box; border-radius:0 !important; }
32
33  /* ---------- Text selection ---------- */
34  ::selection{ background:var(--orange-pale); color:var(--ink); }
35  ::-moz-selection{ background:var(--orange-pale); color:var(--ink); }
36  .signal ::selection, .cta-banner ::selection, footer ::selection, .photo-band ::selection{
37    background:var(--orange-pale); color:var(--ink);
38  }
39  .signal ::-moz-selection, .cta-banner ::-moz-selection, footer ::-moz-selection, .photo-band ::-moz-selection{
40    background:var(--orange-pale); color:var(--ink);
41  }
42  html{ scroll-behavior:smooth; }
43  body{
44    background:var(--bg);
45    color:var(--ink);
46    font-family:var(--font);
47    -webkit-font-smoothing:antialiased;
48    overflow-x:hidden;
49  }
50  a{ color:inherit; text-decoration:none; }
51  img, svg{ display:block; max-width:100%; }
52  button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
53  .wrap{ max-width:1240px; margin:0 auto; padding:0 32px; }
54  .eyebrow{
55    font-size:17px; font-weight:700; color:var(--orange); display:flex; align-items:center; gap:8px;
56    margin-bottom:16px;
57  }
58  h1,h2,h3{ font-family:var(--font); font-weight:800; letter-spacing:-0.015em; }
59
60  /* ---------- Announcement bar (sits under the nav, reads into the hero) ---------- */
61  .announce{
62    display:block; position:relative; z-index:190; overflow:hidden;
63    background:linear-gradient(90deg, #0d1117 0%, #141a23 50%, #0d1117 100%);
64    color:rgba(244,244,244,0.86); font-size:17px; font-weight:500;
65    border-bottom:1px solid rgba(244,244,244,0.08);
66  }
67  /* a slow ember sheen drifts across; hover brightens it */
68  .announce::before{
69    content:''; position:absolute; top:0; bottom:0; width:38%; left:-40%; pointer-events:none;
70    background:linear-gradient(90deg, transparent, rgba(253,100,32,0.16), transparent);
71    animation:announceSheen 9s ease-in-out infinite;
72  }
73  @keyframes announceSheen{ 0%{ left:-40%; } 55%,100%{ left:110%; } }
74  .announce-inner{
75    position:relative; display:flex; align-items:center; justify-content:center; gap:14px;
76    padding:10px 32px; max-width:1440px; margin:0 auto;
77  }
78  .announce .tag{
79    display:inline-flex; align-items:center; gap:9px; flex-shrink:0;
80    font-size:16px; font-weight:700; color:#ff8a52; letter-spacing:0.01em;
81  }
82  .announce .tag::before{
83    content:''; width:7px; height:7px; border-radius:50%; background:var(--orange);
84    box-shadow:0 0 0 0 rgba(253,100,32,0.6); animation:announcePulse 2.4s ease-out infinite;
85  }
86  @keyframes announcePulse{ 0%{ box-shadow:0 0 0 0 rgba(253,100,32,0.55); } 70%,100%{ box-shadow:0 0 0 8px rgba(253,100,32,0); } }
87  .announce .sep{ width:1px; height:14px; background:rgba(244,244,244,0.22); flex-shrink:0; }
88  .announce .txt{ text-wrap:pretty; color:rgba(244,244,244,0.9); }
89  .announce .cta{
90    flex-shrink:0; font-weight:700; color:#f4f4f4; display:inline-flex; align-items:center; gap:6px;
91    padding-bottom:1px; background:linear-gradient(var(--orange), var(--orange)) 0 100% / 0% 1px no-repeat;
92    transition:background-size .3s ease, color .2s ease;
93  }
94  .announce:hover .cta{ color:#ff8a52; background-size:100% 1px; }
95  .announce .arrow{ transition:transform .2s ease; }
96  .announce:hover .arrow{ transform:translateX(3px); }
97  @media (prefers-reduced-motion: reduce){ .announce::before, .announce .tag::before{ animation:none; } }
98  @media (max-width: 900px){
99    .announce .cta, .announce .sep + .cta, .announce .txt + .sep{ display:none; }
100    .announce .txt{ font-size:16px; }
101  }
102
103  /* ---------- Header ---------- */
104  header{
105    position:sticky; top:0; z-index:200; background:rgba(244,244,244,0.94);
106    backdrop-filter:blur(10px); border-bottom:1px solid var(--line);
107  }
108  .scroll-rail{
109    position:absolute; left:0; right:0; bottom:-1px; height:2px; background:transparent; overflow:hidden;
110  }
111  .scroll-rail i{
112    display:block; height:100%; width:0%; background:var(--orange); transform-origin:left;
113    transition:width .08s linear;
114  }
115  .nav-row{ display:flex; align-items:center; justify-content:space-between; padding:16px 32px; gap:24px; }
116  .logo{ display:block; flex-shrink:0; }
117  .logo img{ height:34px; width:auto; display:block; }
118  .logo .logo-light{ display:none; }
119  .nav-actions{ display:flex; align-items:center; gap:14px; }
120  .menu-trigger{
121    display:flex; align-items:center; gap:9px; font-size:17px; font-weight:700; color:var(--ink);
122    padding:11px 6px; cursor:pointer; background:none; border:none;
123  }
124  .menu-trigger .bars{ display:flex; flex-direction:column; gap:3px; width:18px; }
125  .menu-trigger .bars span{ display:block; height:1.6px; background:var(--ink); transition:all .25s ease; }
126  .menu-trigger.open .bars span:nth-child(1){ transform:translateY(4.6px) rotate(45deg); }
127  .menu-trigger.open .bars span:nth-child(2){ opacity:0; }
128  .menu-trigger.open .bars span:nth-child(3){ transform:translateY(-4.6px) rotate(-45deg); }
129
130  .nav-overlay{
131    position:fixed; inset:0; z-index:190; background:var(--ink);
132    display:flex; flex-direction:column; justify-content:center;
133    opacity:0; pointer-events:none; transition:opacity .35s ease;
134    padding:100px 8vw;
135  }
136  .nav-overlay.open{ opacity:1; pointer-events:auto; }
137  .nav-overlay-links{ display:flex; flex-direction:column; gap:6px; }
138  .nav-overlay-links a{
139    font-family:var(--font); font-weight:800; font-size:clamp(32px,6vw,64px); color:#f4f4f4;
140    line-height:1.15; letter-spacing:-0.01em; opacity:0.88; transition:opacity .2s, transform .2s;
141    transform:translateX(0);
142  }
143  .nav-overlay-links a:hover{ opacity:1; color:var(--orange); transform:translateX(10px); }
144  .nav-group{ display:flex; flex-direction:column; }
145  /* Resources is a heading, not a destination — its children are the links */
146  .nav-label{
147    font-family:var(--font); font-weight:800; font-size:clamp(32px,6vw,64px);
148    color:rgba(244,244,244,0.48); line-height:1.15; letter-spacing:-0.01em; cursor:default;
149  }
150  .nav-sub{ display:flex; flex-wrap:wrap; gap:6px 26px; margin:10px 0 6px 4px; }
151  .nav-sub a{
152    font-family:var(--font); font-size:17px; font-weight:600; letter-spacing:0;
153    color:rgba(244,244,244,0.6); opacity:1; line-height:1.4;
154  }
155  .nav-sub a:hover{ color:var(--orange); transform:translateX(4px); }
156  .nav-overlay-foot{ display:flex; gap:28px; margin-top:56px; flex-wrap:wrap; }
157  .nav-overlay-foot a{ font-size:17px; font-weight:600; color:rgba(244,244,244,0.55); }
158  .nav-overlay-foot a:hover{ color:var(--orange); }
159  .btn{
160    font-size:17px; font-weight:700; padding:11px 22px; white-space:nowrap;
161    border:1px solid transparent; transition:all .15s;
162    display:inline-flex; align-items:center; justify-content:center; text-align:center;
163  }
164  .btn-ghost{ border-color:var(--ink); color:var(--ink); }
165  .btn-ghost:hover{ background:var(--ink); color:var(--bg); }
166  .btn-flash{ transition:border-color .15s, color .15s; }
167  .btn-flash:hover{ animation:flashOrange 0.55s ease forwards; border-color:var(--orange) !important; }
168  @keyframes flashOrange{
169    0%{ background:transparent; }
170    35%{ background:var(--orange); color:#ffffff !important; }
171    100%{ background:rgba(253,100,32,0.16); color:#ffffff !important; }
172  }
173  .btn-solid{ background:var(--orange); color:#ffffff; }
174  .btn-solid:hover{ background:#e2540f; }
175  .btn-solid-dark{ background:var(--ink); color:var(--bg); }
176  .btn-solid-dark:hover{ background:#1c2532; }
177
178  /* ---------- Hero (light) ---------- */
179  .hero{
180    position:relative; background:var(--ink); color:#f4f4f4; overflow:hidden;
181    padding:0; min-height:clamp(600px, 52vw, 760px);
182    display:flex; align-items:center; box-sizing:border-box;
183  }
184  .hero-media{ position:absolute; inset:0; z-index:0; }
185  .hero-media img{
186    width:100%; height:100%; object-fit:cover; display:block;
187    transform:scale(1.08);
187 filter:saturate(1.04); will-change:transform;
188  }
189  /* one gentle veil rather than a hard bright/dark split */
190  .hero-media::after{
191    content:''; position:absolute; inset:0;
192    background:
193      linear-gradient(100deg, rgba(13,17,23,0.64) 0%, rgba(13,17,23,0.58) 46%, rgba(13,17,23,0.46) 78%, rgba(13,17,23,0.42) 100%),
194      radial-gradient(130% 100% at 38% 45%, transparent 48%, rgba(13,17,23,0.36) 100%);
195  }
196  /* dissolve into the section below so the hero has no bottom edge */
197  .hero::after{
198    content:''; position:absolute; left:0; right:0; bottom:0; height:200px; z-index:1;
199    background:linear-gradient(180deg, rgba(13,17,23,0) 0%, rgba(13,17,23,0.45) 48%, rgba(13,17,23,0.85) 80%, var(--ink) 100%);
200    pointer-events:none;
201  }
202  /* comet/long-exposure light-streak graphic, reminiscent of the reference photo but tuned
203     for the light hero background (fades into #f4f4f4 instead of black) — sits behind the
204     product panel, upper-right of the hero */
205  .hero-trails{ display:none; }
206  .hero-glow{
207    position:absolute; inset:0; z-index:1; pointer-events:none;
208    background:radial-gradient(420px circle at var(--mx,78%) var(--my,22%), rgba(253,100,32,0.1), transparent 72%);
209  }
210  .hero-inner{ position:relative; z-index:2; max-width:1240px; width:100%; margin:0 auto; padding:72px 32px 88px; }
211  .hero-split{ display:grid; grid-template-columns:minmax(0,0.86fr) minmax(0,1.14fr); gap:56px; align-items:center; }
212  .hero-text{ text-align:left; position:relative; z-index:3; }
213  .hero h1{
214    font-size:clamp(38px, 4.1vw, 54px); line-height:1.06; letter-spacing:-0.028em;
215    color:#ffffff; max-width:none; margin:0;
216  }
217  .hero h1 em{ font-style:normal; color:var(--orange); }
218  .hero .sub{
219    font-size:21px; font-weight:500; color:rgba(244,244,244,0.84); max-width:500px; margin:22px 0 0; line-height:1.4;
220  }
221  .hero-ctas{ display:flex; gap:14px; justify-content:flex-start; margin:34px 0 0; }
222  .hero-ctas .btn-ghost{ border:1px solid rgba(244,244,244,0.4); color:#f4f4f4; }
223  .hero-ctas .btn{ padding:15px 30px; font-size:17px; }
224
225  .hero-stage{
226    border-radius:18px !important;
227    position:relative; z-index:2; border:1px solid rgba(255,255,255,0.22);
228    background:rgba(255,255,255,0.94); backdrop-filter:blur(14px) saturate(1.25);
229    border-radius:18px; overflow:hidden;
230    box-shadow:0 1px 0 rgba(255,255,255,0.35) inset, 0 30px 80px -30px rgba(13,17,23,0.75), 0 80px 160px -70px rgba(0,0,0,0.6);
231  }
232  .hero-stage-wrap{ position:relative; }
233  .hero-stage-wrap::before{
234    content:''; position:absolute; inset:-70px -70px -70px -70px; z-index:0; pointer-events:none;
235    background:radial-gradient(60% 60% at 50% 45%, rgba(253,100,32,0.18), transparent 72%);
236  }
237  .stage-bar{
238    display:flex; align-items:center; gap:8px; padding:12px 18px; border-bottom:1px solid var(--line);
239    font-size:16px; font-weight:600; color:rgba(13,17,23,0.45);
240  }
241  .stage-bar .traffic{ display:flex; gap:5px; margin-right:8px; }
242  .stage-bar .traffic span{ width:8px; height:8px; background:rgba(13,17,23,0.14); }
243  .stage-grid{ display:grid; grid-template-columns:190px 1fr; }
244  .stage-nav{ border-right:1px solid var(--line); padding:18px 0; font-size:16px; font-weight:600; }
245  .stage-nav .grp{ padding:12px 20px 6px; color:rgba(13,17,23,0.62); font-size:16px; font-weight:700; }
246  .stage-nav a{ display:flex; align-items:center; gap:9px; padding:9px 20px; color:rgba(13,17,23,0.6); }
247  .stage-nav a.active{ color:var(--orange); background:rgba(253,100,32,0.08); border-left:2px solid var(--orange); padding-left:18px; }
248  .stage-nav a .ic{ width:16px; height:16px; flex-shrink:0; }
249  .stage-main{ padding:28px 30px 32px; text-align:left; }
250  .home-title{ font-family:var(--font); font-size:28px; font-weight:800; color:var(--ink); margin-bottom:6px; }
251  .home-sub{ font-size:16px; color:rgba(13,17,23,0.62); margin-bottom:24px; }
252  .project-pill{ display:flex; align-items:center; gap:10px; margin:4px 20px 10px; padding:8px 10px; border:1px solid var(--line); border-radius:9px !important; }
253  .project-pill .ic{ width:14px; height:14px; background:var(--orange); flex-shrink:0; }
254  .project-pill .bar{ flex:1; height:6px; background:rgba(13,17,23,0.1); }
255  .session-card{ border:1px solid var(--line); border-radius:12px !important;
255 padding:24px 26px; }
256  .session-card-head{ display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:20px; gap:16px; }
257  .session-card-title{ font-family:var(--font); font-weight:700; font-size:17px; color:var(--ink); margin-bottom:4px; }
258  .session-card-sub{ font-size:16px; color:rgba(13,17,23,0.62); }
259  .legend-dots{ display:flex; gap:6px; padding-top:5px; flex-shrink:0; }
260  .legend-dots span{ width:9px; height:9px; border-radius:50% !important; }
261  .legend-dots span:nth-child(1){ background:#7a2e0a; }
262  .legend-dots span:nth-child(2){ background:#fd6420; }
263  .legend-dots span:nth-child(3){ background:#ffab7a; }
264  .legend-dots span:nth-child(4){ background:var(--orange-pale); }
265  .weekly-chart{ display:flex; align-items:flex-end; gap:10px; height:140px; margin-bottom:20px; }
266  .chart-bar{ flex:1; display:flex; flex-direction:column-reverse; height:100%; background:rgba(13,17,23,0.04); }
267  .chart-bar span{ display:block; width:100%; }
268  .chart-bar span:nth-child(1){ background:#7a2e0a; }
269  .chart-bar span:nth-child(2){ background:#fd6420; }
270  .chart-bar span:nth-child(3){ background:#ffab7a; }
271  .chart-bar span:nth-child(4){ background:var(--orange-pale); }
272  .weekly-progress-label{ font-size:16px; font-weight:700; color:rgba(13,17,23,0.65); margin-bottom:10px; }
273  .weekly-progress-bar{ height:6px; background:rgba(13,17,23,0.08); width:100%; }
274  .weekly-progress-bar span{ display:block; height:100%; background:linear-gradient(90deg, var(--orange), #ffab7a); }
275  .hub-tile .icwrap{ width:34px; height:34px; display:flex; align-items:center; justify-content:center; background:rgba(253,100,32,0.1); }
276  .hub-tile .icwrap svg{ width:18px; height:18px; }
277  .hub-tile .tname{ font-size:16px; font-weight:700; }
278
279  /* ---------- Photo band (bold diagonal beam, long-exposure) ---------- */
280  .photo-band{
281    position:relative; overflow:hidden; padding:96px 32px;
282    background:#0d1117;
283  }
284  /* the section above is the same ink, so fade the photo in rather than cutting to it */
285  .photo-band::before{
286    content:''; position:absolute; left:0; right:0; top:0; height:200px; z-index:2;
287    background:linear-gradient(180deg, #0d1117 0%, rgba(13,17,23,0.82) 34%, rgba(13,17,23,0.4) 70%, rgba(13,17,23,0) 100%);
288    pointer-events:none;
289  }
290  .photo-band-bg{ position:absolute; inset:0; z-index:0; overflow:hidden; }
291  .photo-constellation{ position:absolute; inset:0; z-index:1; width:100%; height:100%; }
292  .photo-band-inner{
293    position:relative; z-index:3; display:grid; grid-template-columns:1.05fr 1fr; gap:56px; align-items:center;
294  }
295  .photo-band h2{ font-size:clamp(26px,3vw,38px); color:#f4f4f4; max-width:460px; line-height:1.16; }
296  .photo-band .eyebrow{ color:var(--orange); }
297  .photo-band .sub-orange{ font-size:clamp(17px,1.25vw,16.5px); font-weight:700; color:var(--orange); max-width:520px; line-height:1.5; margin-top:14px; text-wrap:pretty; }
298  .photo-band .sub-orange-2{ color:#f4f4f4; font-weight:500; }
299  .photo-stats{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(244,244,244,0.14); border:1px solid rgba(244,244,244,0.14); }
300  .photo-stats div{ background:rgba(13,17,23,0.55); backdrop-filter:blur(2px); padding:22px; }
301  .photo-stats .n{ font-family:var(--font); font-size:30px; font-weight:800; color:var(--orange); }
302  .photo-stats .l{ font-size:16px; font-weight:600; color:rgba(244,244,244,0.65); margin-top:6px; line-height:1.4; }
303  .orbital-canvas{ position:absolute; inset:-16% -10%; width:120%; height:132%; display:block; }
304  .arch-diagram{
305    position:relative; width:100%; aspect-ratio:1/1; max-width:1100px; margin:0 auto 0 0;
306    display:flex; align-items:center; justify-content:flex-start;
307  }
308  .arch-glow{
309    position:absolute; width:62%; aspect-ratio:1/1; border-radius:50%; z-index:0;
310    background:radial-gradient(circle, rgba(253,100,32,0.4), transparent 72%);
311    filter:blur(28px); animation:archGlowPulse 4.5s ease-in-out infinite;
312  }
313  @keyframes archGlowPulse{
314    0%, 100%{ opacity:0.5; transform:scale(0.92); }
315    50%{ opacity:1; transform:scale(1.08); }
316  }
317  .solar{ position:relative; z-index:2; width:100%; height:100%; display:block; overflow:visible; }
318  .solar-ring{ transform-origin:50px 50px; }
319  .solar-spin-1{ animation:solarSpin 14s linear infinite; }
320  .solar-spin-2{ animation:solarSpin 24s linear infinite reverse; }
321  .solar-spin-3{ animation:solarSpin 38s linear infinite; }
322  /* each ring is drawn on, then starts orbiting — driven by scroll progress */
323  .solar-build{ opacity:0; transform:scale(0.82); transition:opacity .5s ease, transform .6s cubic-bezier(.22,.61,.36,1); }
324  .solar-build.is-in{ opacity:1; transform:none; }
325  .solar-build ellipse{
326    stroke-dasharray:var(--len, 200); stroke-dashoffset:var(--len, 200);
327    transition:stroke-dashoffset .9s cubic-bezier(.22,.61,.36,1);
328  }
329  .solar-build.is-in ellipse{ stroke-dashoffset:0; }
330  .solar-core{ opacity:0; transform:scale(0.6); transform-origin:50px 50px; transition:opacity .45s ease, transform .55s cubic-bezier(.22,.61,.36,1); }
331  .solar-core.is-in{ opacity:1; transform:none; }
332  .solar-core-halo{ transform-origin:50px 50px; }
333  .solar-core-halo.is-in{ animation:solarPulse 4.5s ease-in-out infinite; }
334  @keyframes solarSpin{ from{ transform:rotate(0deg); } to{ transform:rotate(360deg); } }
335  @keyframes solarPulse{ 0%,100%{ transform:scale(0.9); opacity:0.55; } 50%{ transform:scale(1.16); opacity:1; } }
336  @media (prefers-reduced-motion: reduce){
337    .arch-glow, .solar-ring, .solar-core-halo{ animation:none !important; }
338    .solar-build, .solar-core{ opacity:1 !important; transform:none !important; }
339    .solar-build ellipse{ stroke-dashoffset:0 !important; }
340  }
341
342  /* ---------- Trust strip ---------- */
343  .trust{ background:var(--ink); padding:10px 32px 64px; position:relative; }
344  .trust .label{ color:rgba(244,244,244,0.6) !important; }
345  .trust .logo-run .lg{ display:flex; align-items:center; flex:none; }
346  .trust .logo-run .lg img{
347    display:block; width:auto; opacity:0.62; transition:opacity .2s ease;
348  }
349  .trust .logos:hover .logo-run .lg img{ opacity:0.82; }
350  .trust .logo-run span:not(.lg){ color:rgba(244,244,244,0.72) !important; }
351  .trust-top{ display:flex; flex-direction:column; align-items:center; gap:24px; text-align:center; }
352  .trust .label{ font-size:16px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:rgba(13,17,23,0.62); }
353  .trust .logos{
354    width:100%; overflow:hidden; position:relative;
355    mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
356    -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
357  }
358  .trust .logo-belt{ display:flex; width:max-content; animation:logoBelt 38s linear infinite; }
359  .trust .logos:hover .logo-belt{ animation-play-state:paused; }
360  .trust .logo-run{ display:flex; align-items:center; gap:72px; padding-right:72px; flex:none; }
361  .trust .logo-run .lg{ display:flex; align-items:center; flex:none; }
362  .trust .logo-run .lg img{
363    display:block; width:auto; opacity:0.62; transition:opacity .2s ease;
364  }
365  .trust .logos:hover .logo-run .lg img{ opacity:0.82; }
366  .trust .logo-run span:not(.lg){
367    font-family:var(--font); font-weight:700; font-size:17px; letter-spacing:-0.01em;
368    color:rgba(13,17,23,0.55); white-space:nowrap; flex:none;
369    transition:color .25s ease;
370  }
371  .trust .logo-run img{ height:26px; width:auto; filter:grayscale(1); opacity:0.62; flex:none; }
372  .trust .logos:hover .logo-run span{ color:rgba(13,17,23,0.72); }
373  @media (max-width: 600px){
374    .trust{ padding-left:0; padding-right:0; }
375    .trust > .wrap{ padding-left:12px; padding-right:12px; }
376    .trust .logo-run{ gap:28px; padding-right:28px; }
377  }
378  @keyframes logoBelt{
379    from{ transform:translate3d(-50%,0,0); }
380    to{ transform:translate3d(0,0,0); }
381  }
382
383  /* ---------- Section shell ---------- */
384  section.block{ padding:110px 32px; }
385  /* align: wrap owns side gutters */
386  section.block{ padding-left:0; padding-right:0; }
387  .block-head{ max-width:640px; margin-bottom:64px; }
388  .block-head h2{ font-size:clamp(28px,3.4vw,42px); line-height:1.14; }
389  .block-head p{ font-size:17px; font-weight:500; color:rgba(13,17,23,0.6); margin-top:16px; line-height:1.6; max-width:520px; }
390
391  /* ---------- Node / signal diagram section ---------- */
392  .signal{ background:var(--ink); color:var(--bg); position:relative; overflow:hidden; }
393  .block.signal{ padding-bottom:190px; }
394  .signal > .wrap{ position:relative; z-index:4; }
395  /* the dark act dissolves into the light one over its own bottom padding */
396  .signal::after{
397    content:''; position:absolute; left:0; right:0; bottom:0; height:185px; z-index:3; pointer-events:none;
398    background:linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.08) 34%, rgba(255,255,255,0.34) 62%, rgba(255,255,255,0.74) 84%, #ffffff 100%);
399  }
400  .signal{ background:#0d1117; }
401  .signal-bg{ position:absolute; inset:0; z-index:0; overflow:hidden; background:#0d1117; }
402  .signal .nebula{
403    position:absolute; inset:0; z-index:1; width:100%; height:100%; display:block;
404    transform:scale(0.78); transform-origin:50% 44%; opacity:0.5;
405    filter:blur(2px);
406    mask-image:radial-gradient(72% 74% at 50% 46%, #000 38%, transparent 82%);
407    -webkit-mask-image:radial-gradient(72% 74% at 50% 46%, #000 38%, transparent 82%);
408  }
409  .signal-particles{ position:absolute; inset:0; z-index:1; width:100%; height:100%; display:block; }
410  .signal .block-head p{ color:rgba(244,244,244,0.55); }
411  .signal .block-head h2{ color:var(--bg); }
412  .signal .eyebrow{ color:var(--orange); }
413  .signal h2{ font-size:clamp(26px,3vw,38px); color:#f4f4f4; line-height:1.16; }
414  .signal-grid::before{
415    content:''; position:absolute; inset:-40px -32px;
415 z-index:-1; pointer-events:none;
416    background:radial-gradient(64% 58% at 50% 50%, rgba(13,17,23,0.72), transparent 78%);
417  }
418  .signal-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:56px; align-items:start; position:relative; z-index:2; }
419  .stat-carousel{
420    margin-top:28px; width:100%;
421    border:1px solid rgba(244,244,244,0.18); background:rgba(13,17,23,0.82);
422  }
423  .stat-slides{ position:relative; min-height:238px; }
424  .stat-slide{
425    position:absolute; inset:0; padding:38px 34px; display:flex; flex-direction:column; justify-content:center;
426    opacity:0; visibility:hidden; transform:translateY(10px);
427    transition:opacity .45s ease, transform .45s ease;
428  }
429  .stat-slide.is-active{ opacity:1; visibility:visible; transform:none; }
430  .stat-slide .n{
431    font-family:var(--font); font-weight:800; color:var(--orange);
432    font-size:clamp(64px,7.4vw,104px); line-height:0.95; letter-spacing:-0.03em;
433  }
434  .stat-slide .l{
435    font-size:18px; font-weight:600; color:rgba(244,244,244,0.85); margin-top:16px; line-height:1.35; max-width:340px;
436  }
437  .stat-controls{
438    display:flex; align-items:center; justify-content:space-between; gap:16px;
439    padding:14px 34px 18px; border-top:1px solid rgba(244,244,244,0.16);
440  }
441  .stat-dots{ display:flex; gap:8px; }
442  .stat-dots button{ width:26px; height:3px; background:rgba(244,244,244,0.28); transition:background .2s; }
443  .stat-dots button.is-active{ background-color:var(--orange); }
444  @media (max-width: 600px){
445    .stat-dots button{
446      width:44px; height:44px; padding:18px 0;
447      background-clip:content-box; box-sizing:border-box;
448    }
449  }
450  .signal-stats{
451    display:grid; grid-template-columns:repeat(3, 1fr);
452    border:1px solid rgba(244,244,244,0.16); margin-top:32px; max-width:520px;
453  }
454  .signal-stats div{
455    background:var(--ink); padding:26px 18px; text-align:center;
456    border-right:1px solid rgba(244,244,244,0.16);
457    border-bottom:1px solid rgba(244,244,244,0.16);
458  }
459  .signal-stats div:nth-child(3n){ border-right:none; }
460  .signal-stats div:nth-child(n+4){ border-bottom:none; }
461  .signal-stats .n{ font-family:var(--font); font-size:38px; color:var(--orange); font-weight:800; display:block; }
462  .signal-stats .l{ font-size:16px; font-weight:600; color:rgba(244,244,244,0.5); margin-top:8px; line-height:1.3; }
463  .diagram-box{ border:1px solid rgba(244,244,244,0.16); background:rgba(244,244,244,0.02); padding:20px; }
464  .diagram-box svg{ width:100%; height:auto; }
465  .video-embed{
466    position:relative; width:100%; aspect-ratio:16/10; overflow:hidden;
467    background-image:
468      linear-gradient(185deg, rgba(13,17,23,0.62) 0%, rgba(13,17,23,0.94) 100%),
469      radial-gradient(55% 65% at 82% 10%, rgba(253,100,32,0.18), transparent 70%),
470      url("data:image/jpeg;base64,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");
471    background-size: cover, cover, cover;
472    background-position: center, center, center 28%;
473    background-repeat: no-repeat, no-repeat, no-repeat;
474    display:flex; align-items:center; justify-content:center;
475  }
476  .video-embed .play-btn{
477    position:absolute; left:28px; bottom:26px; cursor:pointer;
478    display:inline-flex; align-items:center; gap:14px; padding:10px 20px 10px 10px;
479    background:rgba(13,17,23,0.42); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
480    border:1px solid rgba(244,244,244,0.32); color:#f4f4f4; font-family:var(--font); font-size:17px; font-weight:600;
481    transition:border-color .2s ease, background .2s ease;
482    box-shadow:0 0 0 14px rgba(253,100,32,0.14);
483    transition:transform .2s ease;
484  }
485  .video-embed .play-btn .ring{ width:40px; height:40px; border:1.5px solid #f4f4f4; display:flex; align-items:center; justify-content:center; transition:border-color .2s ease, background .2s ease; }
486  .video-embed .play-btn svg{ width:14px; height:14px; margin-left:2px; }
487  .video-embed .play-btn .len{ color:rgba(244,244,244,0.66); font-weight:500; }
488  .video-embed .play-btn:hover{ border-color:var(--orange); background:rgba(13,17,23,0.6); }
489  .video-embed .play-btn:hover .ring{ border-color:var(--orange); background:var(--orange); }
490  .video-embed .play-btn:hover{ transform:none; }
491  .video-caption{
492    position:absolute; left:20px; bottom:16px; color:#f4f4f4; font-size:16px; font-weight:700;
493  }
494  .founder-eyebrow{
495    display:inline-flex; align-items:center; font-size:16px; font-weight:700;
496    letter-spacing:0.01em; color:#ffffff; background:var(--orange);
497    padding:6px 12px; margin-bottom:14px;
498  }
499  .founder-copy{
500    color:rgba(244,244,244,0.72); font-weight:500; font-size:17px;
501    margin-top:20px; line-height:1.65; max-width:46ch; text-wrap:pretty;
502  }
503  .video-caption span{ display:block; color:rgba(244,244,244,0.6); font-weight:500; font-size:16px; margin-top:3px; }
504
505  /* ---------- Customer testimonial ---------- */
506  .block.testimonial-section{ padding-bottom:112px; }
507  .testimonial-section{ position:relative; background:var(--paper); }
508
509  /* ---------- Security section ---------- */
510  .security-section{ position:relative; background:var(--ink); color:#f4f4f4; padding:80px 32px 96px; overflow:hidden; }
511  /* slow breathing radial — ported from the gradient component, ember kept to one stop */
512  .security-section::after{
513    content:''; position:absolute; left:0; right:0; bottom:0; height:220px; z-index:1; pointer-events:none;
514    background:linear-gradient(180deg, rgba(13,17,23,0) 0%, rgba(13,17,23,0.35) 40%, rgba(13,17,23,0.8) 74%, var(--ink) 100%);
515  }
516  .security-breathe{
517    position:absolute; inset:0; z-index:0; pointer-events:none;
518    background:radial-gradient(125% 145% at 50% 20%, #0d1117 35%, #131a22 58%, #1d2129 72%, #2a2019 84%, #3a2214 93%, #2c1a12 100%);
519  }
520  .security-stars{ position:absolute; inset:0; z-index:1; width:100%; height:100%; display:block; pointer-events:none; }
521  .security-inner{ position:relative; z-index:2; display:flex; align-items:center; justify-content:center; gap:80px; flex-wrap:wrap; }
522  .security-inner > .reveal{ max-width:560px; }
523  .security-inner .eyebrow{ color:var(--orange); }
524  .security-inner h2{ font-size:clamp(26px,3vw,38px); color:#f4f4f4; margin-bottom:16px; max-width:520px; }
525  .security-inner p{ color:rgba(244,244,244,0.6); font-weight:500; line-height:1.6; max-width:460px; margin-bottom:26px; }
526  .security-cta{ border-color:rgba(244,244,244,0.45); color:#f4f4f4; }
527  .security-cta:hover{ background:#f4f4f4; color:var(--ink); }
528  .soc2-badge{
529    display:flex; align-items:center; gap:18px;
530    border:1px solid rgba(244,244,244,0.14); padding:22px 28px; width:280px; flex-shrink:0;
531    background:rgba(13,17,23,0.72); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
532    box-shadow:0 24px 48px -28px rgba(0,0,0,0.65), inset 0 0 0 1px rgba(253,100,32,0.08);
533  }
534  .soc2-shield{ width:42px; height:42px; flex-shrink:0; }
535  .soc2-label{ font-family:var(--font); font-weight:800; font-size:18px; text-align:left; line-height:1.2; white-space:nowrap; }
536  .soc2-label span{ display:block; font-size:16px; font-weight:700; color:var(--orange); letter-spacing:0.06em; margin-top:3px; }
537
538  /* ---------- Ecosystem partners (reuses .trust visual language) ---------- */
539  /* ---------- Testimonial carousel (Harvey-style: autoplays, click a tab to jump) ---------- */
540  .testimonial-carousel{ position:relative; }
541  .testimonial-track{ position:relative; min-height:380px; }
542  .testimonial-slide{
543    display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:center;
544    position:absolute; inset:0;
544 opacity:0; visibility:hidden; pointer-events:none;
545    transition:opacity .5s ease;
546  }
547  .testimonial-slide.active{ position:relative; opacity:1; visibility:visible; pointer-events:auto; }
548  /* a quote with no customer photo runs full width rather than reserving an empty panel */
549  .testimonial-slide.no-photo{ grid-template-columns:1fr; }
550  .story-photo-placeholder{
551    position:relative; width:100%; aspect-ratio:4/3.3; background:var(--paper); border:1px solid var(--line);
552    display:flex; align-items:center; justify-content:center; overflow:hidden;
553  }
554  /* TODO: swap for a real customer photo or headshot once available — stock photos are a placeholder for now */
555  .story-photo-placeholder img{ width:100%; height:100%; object-fit:cover; }
556  .story-mark{
557    width:64px; height:64px; border-radius:50%; background:var(--ink); color:var(--bg);
558    display:flex; align-items:center; justify-content:center; font-weight:800; font-size:19px; flex-shrink:0;
559  }
560  .testimonial-company{
561    font-family:var(--font); font-weight:800; font-size:clamp(34px,3.8vw,52px); line-height:1;
562    letter-spacing:-0.03em; color:var(--ink); margin-bottom:22px;
563  }
564  .testimonial-quote{ font-size:clamp(18px,1.7vw,23px); font-weight:500; line-height:1.5; color:rgba(13,17,23,0.78); }
565  .testimonial-quote mark{ background:none; color:var(--ember-ink, #fd6420); font-weight:700; }
566  .t-foot{
567    display:grid; grid-template-columns:minmax(0,1fr) minmax(0,0.9fr); gap:28px; align-items:start;
568    margin-top:28px; padding-top:22px; border-top:1px solid var(--line);
569  }
570  .testimonial-meta{ margin:0; }
571  .testimonial-stat{ display:flex; flex-direction:column; gap:6px; padding-left:24px; border-left:1px solid var(--line); }
572  .testimonial-stat .v{
573    font-family:var(--font); font-weight:800; font-size:clamp(28px,2.6vw,36px); line-height:1;
574    letter-spacing:-0.03em; color:var(--orange);
575    display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px;
576  }
577  .testimonial-stat .v .from{
578    font-size:0.62em; font-weight:700; color:rgba(13,17,23,0.68);
579    white-space:nowrap;
580  }
581  .testimonial-stat .v .arr{ font-size:0.62em; font-weight:700; color:rgba(13,17,23,0.68); }
582  .testimonial-stat .v .to{ white-space:nowrap; }
583  .testimonial-stat .l{ font-size:17px; font-weight:600; line-height:1.35; color:rgba(13,17,23,0.7); }
584  @media (max-width: 720px){
585    .t-foot{ grid-template-columns:1fr; gap:18px; }
586    .testimonial-stat{ padding-left:0; border-left:none; }
587  }
588  .testimonial-name{ font-family:var(--font); font-weight:700; font-size:20px; color:var(--ink); }
589  .testimonial-role{ font-size:17px; font-weight:600; color:rgba(13,17,23,0.7); margin-top:4px; }
590  .testimonial-source{ margin-top:16px; font-size:16px; font-weight:600; color:rgba(13,17,23,0.62); line-height:1.5; max-width:520px; }
591  .testimonial-source a{ color:var(--orange); }
592  .testimonial-cta{ display:inline-block; margin-top:12px; font-size:17px; font-weight:700; color:var(--ink); border-bottom:1px solid var(--ink); }
593  .story-placeholder-badge{
594    display:inline-block; font-size:16px; font-weight:800; letter-spacing:0.04em; color:var(--orange);
595    border:1px solid var(--orange); padding:3px 8px; margin-bottom:12px; text-transform:uppercase;
596  }
597  .testimonial-tabs{ display:flex; gap:36px; margin-top:44px; align-items:flex-start; }
598  .testimonial-tab .tab-co{
599    display:block; padding-top:12px; font-size:17px; font-weight:700; color:rgba(13,17,23,0.5);
600    transition:color .2s ease;
601  }
602  .testimonial-tab:hover .tab-co{ color:var(--ink); }
603  .testimonial-tab.active .tab-co{ color:var(--ink); }
604  .testimonial-tab{
605    flex:1; position:relative; background:none; border:none; padding:0; cursor:pointer; text-align:left;
606  }
607  .testimonial-tab::before{ content:''; display:block; height:3px; background:var(--line); }
608  .testimonial-tab.active.is-frozen::before{ background:var(--ink); }
609  .testimonial-tab .fill{ position:absolute; top:0; left:0; height:3px; width:0%; background:var(--ink); }
610
611  /* ---------- People strip (compact; full bios live on About) ---------- */
612  .people-strip{ background:var(--paper); position:relative; z-index:160; }
613  .block.people-strip{ padding:56px 0 48px; }
614  .pp-group + .pp-group{ margin-top:26px; }
615  /* one continuous rail of everyone, exec through board */
616  .pp-rail{
617    overflow-x:auto; cursor:grab; scrollbar-width:none; -ms-overflow-style:none;
618    scroll-snap-type:x proximity;
619    max-width:1240px; margin:0 auto; scroll-padding-inline:32px;
620    --fade-l:0px; --fade-r:88px;
621    mask-image:linear-gradient(90deg, transparent 0, #000 var(--fade-l), #000 calc(100% - var(--fade-r)), transparent 100%);
622    -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 var(--fade-l), #000 calc(100% - var(--fade-r)), transparent 100%);
623  }
624  .pp-rail::-webkit-scrollbar{ display:none; }
625  .pp-rail.is-dragging{ cursor:grabbing; scroll-snap-type:none; }
626  .pp-track{ display:flex; gap:10px; width:max-content; padding:0 32px; }
627  .pp{
628    flex:0 0 206px; scroll-snap-align:start; background:var(--bg);
629    display:block; color:inherit; text-decoration:none; cursor:pointer;
630    user-select:none; transition:background .2s ease;
631  }
632  .pp-rail.is-dragging .pp{ cursor:grabbing; }
633  .pp:hover{ background:#eceae4; }
634  .pp img{
635    width:100%; aspect-ratio:3/4; height:auto; object-fit:cover; object-position:center top;
636    display:block; pointer-events:none;
637    mask-image:linear-gradient(180deg, #000 0, #000 92%, transparent 100%);
638    -webkit-mask-image:linear-gradient(180deg, #000 0, #000 92%, transparent 100%);
639  }
640  .pp-meta{ padding:14px 16px 18px; }
641  .pp .pn{
642    font-family:var(--font); font-weight:700; font-size:17px; line-height:1.2; color:var(--ink);
643  }
644  .pp .pr{
645    font-size:16px; font-weight:500; line-height:1.32; color:rgba(13,17,23,0.66); margin-top:5px;
646    display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden;
647    min-height:49px;
648  }
649  .pp-foot{
650    display:flex; align-items:center; justify-content:space-between; gap:20px;
651    margin-top:24px; flex-wrap:wrap;
652  }
653  .pp-nav{ display:flex; align-items:center; gap:10px; }
654  .pp-arrow{
655    width:36px; height:36px; border:1px solid var(--line); background:none; color:var(--ink);
656    font-size:17px; display:flex; align-items:center; justify-content:center; cursor:pointer;
657    transition:background .15s, border-color .15s, color .15s, opacity .15s;
658  }
659  .pp-arrow:hover{ background:var(--orange); border-color:var(--orange); color:#ffffff; }
660  .pp-arrow[disabled]{ opacity:0.3; cursor:default; }
661  .pp-arrow[disabled]:hover{ background:none; border-color:var(--line); color:var(--ink); }
662  .pp-foot > a{ font-size:17px; font-weight:700; border-bottom:2px solid var(--ink); padding-bottom:2px; }
663  .pp-foot >
663 a:hover{ border-color:var(--orange); color:var(--orange); }
664  @media (max-width: 560px){
665    .pp{ flex-basis:180px; }
666    .pp-track{ padding:0 24px; }
667    .pp-rail{ scroll-padding-inline:24px; }
668  }
669
670  /* ---------- Newsroom ---------- */
671  .news-section{ background:var(--paper); position:relative; }
672  .block.news-section{ padding-bottom:170px; }
673  /* and back into the dark closing act */
674  .news-section::after{
675    content:''; position:absolute; left:0; right:0; bottom:0; height:260px; z-index:3; pointer-events:none;
676    background:linear-gradient(180deg, rgba(13,17,23,0) 0%, rgba(13,17,23,0.06) 34%, rgba(13,17,23,0.3) 62%, rgba(13,17,23,0.74) 85%, var(--ink) 100%);
677  }
678  .news-section > .wrap{ position:relative; z-index:4; }
679  .news-tabs{ display:flex; flex-wrap:wrap; gap:12px; margin-bottom:40px; }
680  .ntab{
681    display:inline-flex; align-items:center; gap:5px;
682    font-size:17px; font-weight:600; padding:13px 22px; border-radius:999px;
683    background:#f0efe8; border:1px solid var(--line); color:rgba(13,17,23,0.75);
684    cursor:pointer; transition: background .18s ease, color .18s ease, border-color .18s ease;
685  }
686  .ntab:hover{ border-color:rgba(13,17,23,0.32); }
687  .ntab.active{ background:var(--ink); border-color:var(--ink); color:#ffffff; }
688  .ntab .count{ font-size:16px; font-weight:700; opacity:.6; position:relative; top:-6px; }
689  .ntab.active .count{ opacity:.75; }
690
691  .news-layout{ display:grid; grid-template-columns:minmax(0,1fr) 268px; gap:14px; align-items:start; }
692  .news-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:14px; }
693  .ncard{
694    position:relative; overflow:hidden; padding:22px; min-height:300px;
695    display:flex; flex-direction:column; gap:10px;
696    background:#f0efe8; border:1px solid var(--line); will-change:transform;
697  }
698  .ncard .card-bg{ position:absolute; inset:0; z-index:0; background-size:cover; background-position:center; }
699  .ncard .card-bg-blog{ background-image:url('/redesign/assets/spotlight-blog.svg'); }
700  .ncard .card-bg-video{ background-image:url('/redesign/assets/spotlight-video.svg'); }
701  .ncard.photo{ border-color:transparent; }
702  .ncard.photo::after{
703    content:''; position:absolute; inset:0; z-index:1;
704    background:linear-gradient(180deg, rgba(13,17,23,0.78) 0%, rgba(13,17,23,0.62) 26%, rgba(13,17,23,0) 52%, rgba(13,17,23,0) 78%, rgba(13,17,23,0.6) 100%);
705  }
706  .ncard > .top, .ncard > .headline, .ncard > .meta{ position:relative; z-index:2; }
707  .ncard .top{ display:flex; align-items:center; gap:8px; font-weight:700; font-size:16px; color:var(--orange); }
708  .ncard.photo .top{ color:#ffffff; }
709  .ncard .top .ic{ width:16px; height:16px; flex-shrink:0; }
710  .ncard .headline{ font-family:var(--font); font-weight:800; font-size:19px; line-height:1.28; color:var(--ink); }
711  .ncard.photo .headline{ color:#ffffff; }
712  .ncard .meta{ font-size:16px; font-weight:500; color:rgba(13,17,23,0.62); margin-top:auto; padding-top:10px; }
713  .ncard.photo .meta{ color:rgba(244,244,244,0.7); }
714  .news-cta{
715    display:grid; grid-template-rows:repeat(3,1fr); gap:1px; align-self:stretch;
716    background:var(--line); border:1px solid var(--line);
717  }
718  .news-cta a{
719    background:var(--paper); padding:24px 24px; display:flex; align-items:center;
720    justify-content:space-between; gap:16px; font-size:17px; font-weight:700;
721    color:var(--ink); transition:background .18s ease, color .18s ease;
722  }
723  .news-cta a em{ font-style:normal; font-size:18px; color:var(--orange); transition:transform .18s ease; }
724  .news-cta a:hover{ background:var(--ink); color:#f4f4f4; }
725  .news-cta a:hover em{ transform:translateX(5px); }
726  @media (max-width: 1080px){
727    .news-layout{ grid-template-columns:1fr; }
728    .news-cta{ grid-template-rows:none; grid-template-columns:repeat(3,1fr); margin-top:14px; }
729  }
730  @media (max-width: 720px){ .news-cta{ grid-template-columns:1fr; } }
731
732  /* ---------- CTA banner ---------- */
733  .cta-banner{
734    color:var(--bg); padding:96px 32px; position:relative; overflow:hidden;
735    background:#0d1117;
736  }
737  .cta-banner .cta-stars{ position:absolute; inset:0; z-index:0; pointer-events:none; }
738  /* gateway flow: channels stream in from both edges and converge behind the form */
739  .cta-flow{
740    position:absolute; inset:0; width:100%; height:100%; z-index:2; pointer-events:none; display:block;
741    -webkit-mask-image:linear-gradient(180deg, transparent 0, #000 16%, #000 84%, transparent 100%);
742    mask-image:linear-gradient(180deg, transparent 0, #000 16%, #000 84%, transparent 100%);
743  }
744  /* the copy sits in front of the system, on its own soft scrim */
745  .cta-with-form{ position:relative; z-index:3; }
746  .cta-form-intro{ position:relative; }
747  .cta-form-intro::before{
748    content:''; position:absolute; inset:-48px -40px; z-index:-1; pointer-events:none;
749    background:radial-gradient(58% 56% at 44% 50%, rgba(13,17,23,0.7), rgba(13,17,23,0) 72%);
750  }
751  /* keeps the form and headline well clear of the brightest part of the field */
752  .cta-banner::after{
753    content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
754    background:
755      linear-gradient(180deg, var(--ink) 0%, rgba(13,17,23,0.7) 10%, rgba(13,17,23,0.2) 30%, rgba(13,17,23,0.08) 60%, rgba(13,17,23,0.5) 100%);
756  }
757  .cta-with-form{
758    position:relative; z-index:2; max-width:1040px; margin:0 auto;
759    display:grid; grid-template-columns:0.85fr 1.15fr; gap:64px; align-items:center; text-align:left;
760  }
761  .cta-form-intro h2{ font-size:clamp(28px,3.6vw,42px); margin-bottom:16px; }
762  .cta-form-intro p{ font-weight:500; color:rgba(244,244,244,0.86); max-width:400px; font-size:17px; line-height:1.55; }
763  .demo-form{
764    box-shadow:0 0 0 1px rgba(253,100,32,0.22), 0 0 70px rgba(253,100,32,0.22), 0 24px 70px rgba(0,0,0,0.42);
765    background:#f4f4f4; border:1px solid rgba(244,244,244,0.14); padding:36px;
766    display:flex; flex-direction:column; gap:22px;
767  }
768  .field-line{ position:relative; }
769  .demo-form input, .demo-form textarea, .demo-form select{
770    width:100%; font-family:var(--font); font-size:17px; font-weight:500; color:var(--ink);
771    border:none; border-bottom:1px solid rgba(13,17,23,0.22); background:transparent;
772    padding:6px 0 12px; transition:border-color .15s; appearance:none;
773  }
774  .demo-form textarea{ min-height:70px; resize:vertical; padding-top:6px; }
775  .demo-form input:focus, .demo-form textarea:focus, .demo-form select:focus{
776    outline:none; border-color:var(--orange);
777  }
778  .demo-form input::placeholder, .demo-form textarea::placeholder{ color:rgba(13,17,23,0.6); }
779  .select-line{ position:relative; }
780  .select-line::after{
781    content:'⌄'; position:absolute; right:2px; bottom:10px; color:rgba(13,17,23,0.6); pointer-events:none; font-size:17px;
782  }
783  .demo-form select{ color:rgba(13,17,23,0.6); cursor:pointer; }
784  .demo-form select:valid{ color:var(--ink); }
785  .required-note{ font-size:16px; font-weight:500; color:rgba(13,17,23,0.6); }
786  .demo-submit{
787    margin-top:4px; width:100%; border:none; background:var(--orange); color:#ffffff;
788    font-family:var(--font); font-size:17px; font-weight:700; padding:15px 22px;
789    cursor:pointer; transition:background .15s;
790  }
791  .demo-submit:hover{ background:#e2540f; }
792  .demo-checkbox{
793    display:flex; align-items:flex-start; gap:10px; cursor:pointer;
794    font-size:16px; font-weight:500; color:rgba(13,17,23,0.65); line-height:1.5;
795  }
796  .demo-form .demo-checkbox input[type="checkbox"]{
797    -webkit-appearance:none; appearance:none; flex-shrink:0; cursor:pointer;
798    width:18px; height:18px; margin:2px 0 0; padding:0;
799    border:1.5px solid rgba(13,17,23,0.45); border-radius:0; background:#ffffff;
800    display:grid; place-items:center; transition:background .15s ease, border-color .15s ease;
801  }
802  .demo-form .demo-checkbox input[type="checkbox"]::after{
803    content:''; width:5px; height:9px; margin-top:-2px;
804    border:solid #ffffff; border-width:0 2px 2px 0; transform:rotate(45deg) scale(0);
805    transition:transform .15s ease;
806  }
807  .demo-form .demo-checkbox input[type="checkbox"]:hover{ border-color:var(--orange); }
808  .demo-form .demo-checkbox input[type="checkbox"]:checked{ background:var(--orange); border-color:var(--orange); }
809  .demo-form .demo-checkbox input[type="checkbox"]:checked::after{ transform:rotate(45deg) scale(1); }
810  .demo-form .demo-checkbox input[type="checkbox"]:focus-visible{ outline:2px solid var(--orange); outline-offset:2px; }
811  .demo-checkbox a{ color:#d44202; text-decoration:underline; }
812  .btn-hero{
813    font-size:18px; font-weight:800; padding:20px 44px; box-shadow:0 18px 40px -12px rgba(253,100,32,0.55);
814    transition:transform .15s ease, box-shadow .15s ease;
815  }
816  .btn-hero:hover{ transform:translateY(-2px); box-shadow:0 22px 46px -10px rgba(253,100,32,0.65); background:#e2540f; }
817
818  /* ---------- Footer ---------- */
819  footer{
820    background:#0d1117; color:#f4f4f4; padding:96px 32px 40px; position:relative; overflow:hidden;
821    border-top:1px solid rgba(244,244,244,0.12);
822    min-height:100vh; display:flex; flex-direction:column; justify-content:center;
823  }
824  .foot-glow{ position:absolute; inset:0; z-index:0; opacity:0.5; }
825  .foot-particles{ position:absolute; inset:0; z-index:1; width:100%; height:100%; display:block; }
826  footer .wrap{ position:relative; z-index:2; }
827  .foot-lead{
828    display:grid; grid-template-columns:minmax(0,1fr) auto; gap:40px; align-items:end;
829    padding-bottom:56px; margin-bottom:56px; border-bottom:1px solid rgba(244,244,244,0.14);
830  }
831  .foot-lead h2{
832    font-family:var(--font); font-weight:800; font-size:clamp(34px,5vw,68px); line-height:1.04;
833    letter-spacing:-0.035em; color:#f4f4f4; max-width:15ch;
834  }
835  .foot-lead-actions{ display:flex; gap:12px; flex-wrap:wrap; }
836  .foot-lead .btn-light{ border:1px solid rgba(244,244,244,0.42); color:#f4f4f4; }
837  .foot-lead .btn-light:hover{ background:#f4f4f4; color:var(--ink); }
838  @media (max-width: 860px){
839    .foot-lead{ grid-template-columns:1fr; align-items:start; gap:28px; }
840  }
841  .foot-grid{ display:grid; grid-template-columns:1.15fr 0.7fr 0.7fr 0.8fr 0.85fr; gap:40px; margin-bottom:64px; }
842  .foot-social-icons{ display:flex; gap:10px; }
843  .foot-col .foot-social-icons a{
844    width:44px; height:44px; margin-bottom:0; display:grid; place-items:center;
845    color:rgba(244,244,244,0.82); transition:color .18s ease;
846  }
847  .foot-col .foot-social-icons a:hover{ color:var(--orange); }
848  .foot-social-icons svg{ width:38px; height:38px; display:block; }
849  .foot-logo{ margin-bottom:20px; }
850  .foot-logo img{ height:34px; width:auto; display:block; }
851  .foot-addr{ font-size:17px; font-weight:500; color:rgba(244,244,244,0.72); line-height:1.6; margin-bottom:22px; }
852  .foot-addr b{ display:block; color:#f4f4f4; font-weight:700; margin-bottom:5px; font-size:17px; }
853  .foot-col .cap{ font-size:17px; font-weight:700; letter-spacing:0.04em; color:rgba(244,244,244,0.75); margin-bottom:20px; }
854  .foot-col a{ display:block; font-size:17px; font-weight:500; color:rgba(244,244,244,0.82); margin-bottom:14px; }
855  .foot-col a:hover{ color:var(--orange); }
856  .foot-bottom{ border-top:1px solid rgba(244,244,244,0.14); padding-top:30px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; }
857  .foot-bottom .copy{ font-size:17px; font-weight:500; color:rgba(244,244,244,0.72); }
858  .foot-social{ display:flex; gap:18px; }
859  .foot-social a{ font-size:17px; font-weight:600; color:rgba(244,244,244,0.78); }
860
861  .review-chip{
862    position:fixed; bottom:20px; right:20px; background:var(--ink); color:var(--bg);
863    font-size:16px; font-weight:600; padding:10px 14px; border:1px solid var(--orange); z-index:200;
864    max-width:260px; line-height:1.5;
865  }
866
867  /* ---------- Scroll reveals ---------- */
868  .reveal{
869    opacity:0; transform:translateY(22px);
870    transition:opacity .7s cubic-bezier(.16,.8,.3,1), transform .7s cubic-bezier(.16,.8,.3,1);
871  }
872  .reveal.is-visible{ opacity:1; transform:translateY(0); }
873  .reveal-stagger > *{
874    opacity:0; transform:translateY(18px);
875    transition:opacity .6s cubic-bezier(.16,.8,.3,1), transform .6s cubic-bezier(.16,.8,.3,1);
876  }
877  .reveal-stagger.is-visible > *{ opacity:1; transform:translateY(0); }
878  .reveal-stagger.is-visible > *:nth-child(1){ transition-delay:0s; }
879  .reveal-stagger.is-visible >
879 *:nth-child(2){ transition-delay:.08s; }
880  .reveal-stagger.is-visible > *:nth-child(3){ transition-delay:.16s; }
881  .reveal-stagger.is-visible > *:nth-child(4){ transition-delay:.24s; }
882  .reveal-stagger.is-visible > *:nth-child(5){ transition-delay:.32s; }
883  @media (prefers-reduced-motion: reduce){
884    .reveal, .reveal-stagger > *{ opacity:1 !important; transform:none !important; transition:none !important; }
885    .trust .logo-belt{ animation:none !important; transform:none !important; }
886  }
887
888  @media (max-width: 980px){
889    .nav-actions .btn-ghost{ display:none; }
890    .hero-split{ grid-template-columns:1fr; }
891    .hero-inner{ padding:72px 32px 64px; }
892    .stage-grid{ grid-template-columns:1fr; }
893    .stage-nav{ display:none; }
894    .weekly-chart{ height:100px; }
895    .testimonial-slide{ grid-template-columns:1fr; }
896    .testimonial-track{ min-height:620px; }
897    .signal-grid{ grid-template-columns:1fr; }
898    .photo-band-inner{ grid-template-columns:1fr; text-align:center; }
899    .security-inner{ flex-direction:column; text-align:center; gap:40px; }
900    .soc2-badge{ width:100%; max-width:280px; }
901    .security-inner .btn{ margin:0 auto; }
902    .photo-band h2{ margin:0 auto; }
903    .news-grid{ grid-template-columns:1fr; }
904    .foot-grid{ grid-template-columns:1fr 1fr; }
905    .foot-col:last-child{ grid-column:1 / -1; }
906  }
907  /* Customer voices: compact index linking to the Customer Success page */
908  .cv-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:40px; }
909  .cv-head h2{ font-size:clamp(26px,3vw,38px); line-height:1.16; }
910  .cv-all, .cv-more{ font-size:17px; font-weight:700; color:var(--ember-ink); display:inline-flex; align-items:center; gap:8px; }
911  .cv-all .arrow, .cv-more .arrow{ transition:transform .18s ease; display:inline-block; }
912  .cv-all:hover .arrow, .cv-item:hover .cv-more .arrow{ transform:translateX(4px); }
913  .cv-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:40px; }
914  .cv-item{ display:flex; flex-direction:column; color:var(--ink); }
915  .cv-co{ font-family:var(--font); font-weight:800; font-size:clamp(22px,2vw,28px); letter-spacing:-0.02em; }
916  .cv-st{ font-family:var(--font); font-weight:800; font-size:clamp(20px,1.8vw,24px); letter-spacing:-0.02em; color:var(--orange); margin-top:20px; line-height:1.15; }
917  .cv-l{ font-size:17px; font-weight:500; color:rgba(13,17,23,0.7); margin-top:8px; line-height:1.45; }
918  .cv-more{ margin-top:22px; opacity:0; transform:translateY(4px); transition:opacity .2s ease, transform .2s ease; }
919  .cv-item:hover .cv-more, .cv-item:focus-visible .cv-more{ opacity:1; transform:none; }
920  @media (hover: none){ .cv-more{ opacity:1; transform:none; } }
921  @media (max-width: 980px){ .cv-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 28px; } }
922  @media (max-width: 520px){ .cv-grid{ grid-template-columns:1fr; } }
923  /* Customer voices, typographic: no photos, quote carries the slide */
924  .testimonial-track{ min-height:0; }
925  .cv-slide{ margin:0; grid-template-columns:minmax(0,4fr) minmax(0,8fr) !important; gap:72px; align-items:stretch; }
926  /* light-leak panel stands in for the photo: brand texture, no stock imagery */
927  .cv-who{
928    position:relative; overflow:hidden; min-height:340px; padding:30px 30px 28px;
929    display:flex; flex-direction:column; justify-content:space-between; gap:24px;
930    background:var(--ink); color:#ffffff;
931  }
932  .cv-who::before{
933    content:''; position:absolute; inset:-6%; z-index:0;
934    background:linear-gradient(180deg, rgba(13,17,23,0.1) 0%, rgba(13,17,23,0.72) 100%), var(--leak) center / cover no-repeat;
935    transform:scale(1.08); transition:transform 6.5s linear;
936  }
937  .cv-slide.active .cv-who::before{ transform:scale(1); }
938  .cv-who > *{ position:relative; z-index:1; }
939  .cv-who .testimonial-company{ font-size:clamp(30px,3.2vw,44px); margin:0; color:#ffffff; }
940  .cv-who .testimonial-name{ color:#ffffff; }
941  .cv-who .testimonial-role{ color:rgba(255,255,255,0.84); }
942  .cv-quote{ align-self:center; }
943  .cv-quote{
944    position:relative; margin:0; font-size:clamp(24px,2.5vw,34px); font-weight:500; line-height:1.34;
945    letter-spacing:-0.012em; color:var(--ink); text-wrap:pretty;
946  }
947  .cv-quote::before{
948    content:'“'; position:absolute; left:-0.52em; top:-0.08em; font-family:var(--font); font-weight:800;
949    font-size:1.9em; line-height:1; color:var(--orange);
950  }
951  .cv-quote mark{
952    color:var(--ink); font-weight:700; padding-bottom:2px;
953    background:linear-gradient(var(--orange), var(--orange)) 0 100% / 0% 3px no-repeat;
954    transition:background-size .9s cubic-bezier(.16,.8,.3,1) .35s;
955  }
956  .cv-slide.active .cv-quote mark{ background-size:100% 3px; }
957  .cv-slide .cv-quote, .cv-slide .cv-who{ opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s cubic-bezier(.16,.8,.3,1); }
958  .cv-slide.active .cv-quote, .cv-slide.active .cv-who{ opacity:1; transform:none; }
959  .cv-slide.active .cv-quote{ transition-delay:.08s; }
960  @media (max-width: 900px){
961    .cv-slide{ grid-template-columns:1fr !important; gap:32px; }
962    .cv-who{ min-height:220px; }
963    .cv-quote::before{ position:static; display:block; margin-bottom:-0.3em; }
964  }
965  @media (max-width: 600px){
966    .testimonial-track{ min-height:0; }
967    .testimonial-slide:not(.active){ display:none; }
968    .cv-slide{ gap:24px; min-width:0; }
969    .cv-quote{ min-width:0; font-size:clamp(20px,5.5vw,24px); line-height:1.4; overflow-wrap:break-word; }
970    .testimonial-tabs{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 12px; margin-top:32px; }
971    .testimonial-tab{ min-width:0; }
972    .testimonial-tab .tab-co{ font-size:14px; overflow-wrap:anywhere; }
973  }
974  .v2-embed{ min-width:0; }
975  .hero-inner{ max-width:1440px !important; }
976  .hero-split{ grid-template-columns:minmax(0,0.85fr) minmax(0,1.45fr) !important; gap:64px !important; }
977  .hero-text{ padding-left:clamp(0px, 3vw, 56px); }
978  .hero-text{ min-width:0; }
979  .hero-text h1{ font-size:clamp(40px, 3.7vw, 64px) !important; line-height:1.04 !important; }
980  .hero-text .btn{ font-size:18px; padding:16px 30px; }
981  @media (max-width: 1100px){ .hero-text{ padding-left:0; } }
982  @media (max-width: 1100px){ .hero-split{ grid-template-columns:1fr !important; } }
983  @media (max-width: 980px){
984    .cta-with-form{ grid-template-columns:minmax(0,1fr); gap:32px; align-items:start; }
985  }
986  @media (max-width: 600px){
987    .cta-banner{ padding:72px 20px; }
988    .demo-form{ min-width:0; padding:24px; gap:18px; }
989  }
990  .v2-embed .hero-stage{ display:none; }
991  /* align: footer */
992  body footer{ padding-left:0 !important; padding-right:0 !important; }
993  body footer > .wrap{ width:100%; box-sizing:border-box; }
994  /* header log in: text link */
995  .nav-login{ display:inline-flex; align-items:center; gap:6px; font-size:17px; font-weight:600; color:var(--ink); padding:10px 6px; transition:color .15s ease; }
996  .nav-login span{ transition:transform .15s ease; }
997  .nav-login:hover{ color:var(--ember-ink, #c2410c); }
998  .nav-login:hover span{ transform:translateX(3px); }
999</style>
1000
1001<meta name="description" content="Agentic AI for semiconductor design and verification. Explore ChipAgents, customer results, research, and the latest company news.">
1002<link rel="canonical" href="https://chipagents.ai/">
1003<meta property="og:type" content="website">
1004<meta property="og:site_name" content="ChipAgents">
1005<meta property="og:title" content="ChipAgents | The agentic foun
1005dation for semiconductor">
1006<meta property="og:description" content="Agentic AI for semiconductor design and verification. Explore ChipAgents, customer results, research, and the latest company news.">
1007<meta property="og:url" content="https://chipagents.ai/">
1008<meta property="og:image" content="https://chipagents.ai/images/opengraph-image.webp">
1009<meta name="twitter:card" content="summary_large_image">
1010<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","name":"ChipAgents","url":"https://chipagents.ai","logo":"https://chipagents.ai/images/chipagents-logo.png"}</script>
1010
1011<style>
1012      @font-face{font-family:Figtree;src:url('/redesign/fonts/figtree-latin.woff2') format('woff2');font-style:normal;font-weight:400 900;font-display:swap}
1013      @font-face{font-family:'JetBrains Mono';src:url('/redesign/fonts/jetbrains-mono-latin.woff2') format('woff2');font-style:normal;font-weight:400 600;font-display:swap}
1014      .skip-link{position:fixed;z-index:9999;top:8px;left:8px;padding:12px 18px;background:#fff;color:#111;transform:translateY(-180%)}
1015      .skip-link:focus{transform:none}
1016      html.nav-menu-open,html.nav-menu-open body{overflow:hidden}
1017      html.nav-menu-open body{padding-top:var(--menu-header-height,72px)}
1018      html.nav-menu-open body > header{position:fixed;top:0;left:0;right:0;z-index:200}
1019      .nav-overlay{inset:var(--menu-header-height,72px) 0 auto;height:calc(100vh - var(--menu-header-height,72px));height:calc(100dvh - var(--menu-header-height,72px));box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;justify-content:flex-start;padding:max(32px, 5vh) 8vw}
1020      .nav-overlay-links{flex-shrink:0;margin-top:auto}
1021      .nav-overlay-foot{flex-shrink:0;margin-bottom:auto}
1022      @media(max-height:700px){.nav-overlay-links>a,.nav-label{font-size:clamp(28px,7vh,52px)}.nav-overlay-foot{margin-top:28px}}
1023      html{overflow-x:clip}
1024      :focus-visible{outline:3px solid #e95a16!important;outline-offset:3px}
1025      @media (max-width:600px){
1026        .nav-row{padding:12px 16px!important;gap:8px!important}
1027        .logo img{height:27px!important}
1028        .nav-login,.nav-actions>.btn{display:none!important}
1029        .menu-trigger{font-size:16px!important;padding:8px!important}
1030        .announce{overflow:hidden}
1031        .announce .txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
1032      }
1033      @media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal,.reveal-stagger{opacity:1!important;transform:none!important}}
1034    </style><link rel="preload" href="/redesign/fonts/mozaic-bold.woff2" as="font" type="font/woff2" crossorigin><style>
1035      .demo-feedback{position:fixed;z-index:10000;top:20px;right:20px;display:flex;align-items:flex-start;gap:16px;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow-y:auto;padding:18px 18px 18px 20px;background:#fff;color:#0d1117;border-left:5px solid #b42318;box-shadow:0 16px 48px rgba(0,0,0,.28);font-family:var(--font)}
1036      .demo-feedback[hidden]{display:none!important}
1037      .demo-feedback.is-success{border-left-color:#147d52}
1038      .demo-feedback__content{flex:1;min-width:0}
1039      .demo-feedback strong{display:block;margin-bottom:4px;font-size:18px;line-height:1.3}
1040      .demo-feedback p{margin:0;font-size:15px;line-height:1.45}
1041      .demo-feedback__close{flex:none;display:grid;place-items:center;width:36px;height:36px;margin:-8px -8px 0 0;border:0;background:transparent;color:#0d1117;font-size:28px;line-height:1;cursor:pointer}
1042      .demo-form [aria-invalid="true"],.demo-form [aria-invalid="true"]:focus{border-bottom:2px solid #b42318}
1043      .demo-form .demo-field-error{margin:6px 0 0;color:#a61b1b;font-size:14px;font-weight:600;line-height:1.35}
1044      .demo-form input,.demo-form textarea{scroll-margin-top:120px}
1045      @media(max-width:600px){.demo-feedback{top:12px;right:12px;left:12px;width:auto}}
1046    </style></head>
1047<body>
1048<a class="skip-link" href="#main-content">Skip to main content</a>
1049
1050  <header>
1051    <div class="nav-row">
1052      <a href="/" class="logo" aria-label="ChipAgents AI">
1053        <picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/logo-dark-text-300.avif 300w, /redesign/assets/logo-dark-text-600.avif 600w, /redesign/assets/logo-dark-text.avif 1200w" sizes="300px"><img class="logo-dark" src="/redesign/assets/logo-dark-text.avif" alt="ChipAgents AI" width="1200" height="269" decoding="async"></picture>
1054        <picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/logo-light-text-300.avif 300w, /redesign/assets/logo-light-text-600.avif 600w, /redesign/assets/logo-light-text.avif 1200w" sizes="300px"><img class="logo-light" src="/redesign/assets/logo-light-text.avif" alt="" width="1200" height="269" decoding="async"></picture>
1055      </a>
1056      <div class="nav-actions">
1057        <a href="https://agent.chipagents.ai/api/auth/login" class="nav-login">Log in <span aria-hidden="true">&#8594;</span></a>
1058        <a href="#book-a-demo" class="btn btn-solid">Book a demo</a>
1059        <button class="menu-trigger" id="menuTrigger" aria-controls="navOverlay" aria-expanded="false" aria-label="Open menu">
1060          Menu
1061          <span class="bars"><span></span><span></span><span></span></span>
1062        </button>
1063      </div>
1064    </div>
1065    <div class="scroll-rail" aria-hidden="true"><i id="scrollRail"></i></div>
1066  </header>
1067
1068  <a class="announce" href="/events">
1069    <span class="announce-inner">
1070      <span class="tag">Oct 6</span>
1071      <span class="sep" aria-hidden="true"></span>
1072      <span class="txt">Meet ChipAgents at DSF 2026 in Yokohama</span>
1073      <span class="sep" aria-hidden="true"></span>
1074      <span class="cta">See our events <span class="arrow" aria-hidden="true">→</span></span>
1075    </span>
1076  </a>
1077
1078  <div class="nav-overlay" id="navOverlay" inert>
1079    <nav class="nav-overlay-links">
1080      <a href="/about">About</a>
1081
1082      <a href="/customers">Customer success</a>
1083      <a href="/partners">Partners</a>
1084      <div class="nav-group">
1085        <div class="nav-label">Resources</div>
1086        <div class="nav-sub">
1087          <a href="/blogs">Blog</a>
1088          <a href="/newsroom">Newsroom</a>
1089          <a href="/video-center">Video center</a>
1090          <a href="/trust-center">Trust center</a>
1091        </div>
1092      </div>
1093      <a href="/events">Events</a>
1094      <a href="/careers">Careers</a>
1095      <a href="/hub" target="_blank" rel="noopener">Learning hub</a>
1096    </nav>
1097    <div class="nav-overlay-foot">
1098      <a href="https://agent.chipagents.ai/api/auth/login">Log in</a>
1099      <a href="#book-a-demo">Book a demo</a>
1100      <a href="#book-a-demo">Contact</a>
1101    </div>
1102  </div>
1103
1104  <main id="main-content"><section class="hero" id="heroSection">
1105    <div class="hero-trails" id="heroTrails"></div>
1106    <div class="hero-glow" id="heroGlow"></div>
1107    <div class="hero-media">
1108      <picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/hero-flare-768.avif 768w, /redesign/assets/hero-flare-1440.avif 1440w, /redesign/assets/hero-flare.avif 2000w" sizes="100vw"><img src="/redesign/assets/hero-flare.avif" alt="" width="2000" height="1333" fetchpriority="high" loading="eager"></picture>
1109    </div>
1110    <div class="hero-inner">
1111      <div class="hero-split">
1112        <div class="hero-text">
1113          <h1>The agentic<br>foundation for<br>semiconductor</h1>
1114          <div class="hero-ctas">
1115            <a href="#book-a-demo" class="btn btn-solid">Try ChipAgents</a>
1116          </div>
1117        </div>
1118
1119        <div class="hero-stage-wrap v2-embed">
1120          <iframe src="/redesign/hero-workspace.html?embed" title="ChipAgents workspace" style="display:block;width:100%;height:500px;border:0;background:transparent;" allowtransparency="true"></iframe>
1121        </div>
1122      </div>
1123    </div>
1124  </section>
1125
1126  <section class="trust">
1127    <div class="wrap reveal">
1128      <div class="trust-top">
1129        <span class="label">With support from</span>
1130        <div class="logos">
1131          <div class="logo-belt">
1132            <div class="logo-run" aria-hidden="false"><span class="lg"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/inv-b-capital-300.avif 300w, /redesign/assets/inv-b-capital-600.avif 600w, /redesign/assets/inv-b-capital.avif 664w" sizes="300px"><img src="/redesign/assets/inv-b-capital.avif" data-lg alt="B Capital" style="height:22px" width="664" height="120" decoding="async"></picture></span><span class="lg"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/inv-micron-300.avif 300w, /redesign/assets/inv-micron.avif 580w" sizes="300px"><img src="/redesign/assets/inv-micron.avif" data-lg alt="Micron" style="height:21px" width="580" height="120" decoding="async"></picture></span><span class="lg"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/inv-bessemer.avif"><img src="/redesign/assets/inv-bessemer.avif" data-lg alt="Bessemer Venture Partners" style="height:39px" width="279" height="120" decoding="async"></picture></span><span class="lg"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/inv-mediatek-300.avif 300w, /redesign/assets/inv-mediatek-600.avif 600w, /redesign/assets/inv-mediatek.avif 982w" sizes="300px"><img src="/redesign/assets/inv-mediatek.avif" data-lg alt="MediaTek" style="height:16px" width="982" height="120" decoding="async"></picture></span><span class="lg"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/inv-matter-300.avif 300w, /redesign/assets/inv-matter-600.avif 600w, /redesign/assets/inv-matter.avif 1200w" sizes="300px"><img src="/redesign/assets/inv-matter.avif" data-lg alt="Matter" style="height:18px" width="1200" height="120" decoding="async"></picture></span><span class="lg"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/inv-samsung-300.avif 300w, /redesign/assets/inv-samsung-600.avif 600w, /redesign/assets/inv-samsung.avif 784w" sizes="300px"><img src="/redesign/assets/inv-samsung.avif" data-lg alt="Samsung" style="height:19.5px" width="784" height="120" decoding="async"></picture></span><span class="lg"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/inv-ericsson-300.avif 300w, /redesign/assets/inv-ericsson-600.avif 600w, /redesign/assets/inv-ericsson.avif 604w" sizes="300px"><img src="/redesign/assets/inv-ericsson.avif" data-lg alt="Ericsson" style="height:18.5px" width="604" height="120" decoding="async"></picture></span></div>
1133            <div class="logo-run" aria-hidden="true"><span class="lg"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/inv-b-capital-300.avif 300w, /redesign/assets/inv-b-capital-600.avif 600w, /redesign/assets/inv-b-capital.avif 664w" sizes="300px"><img src="/redesign/assets/inv-b-capital.avif" data-lg alt="B Capital" style="height:22px" width="664" height="120" decoding="async"></picture></span><span class="lg"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/inv-micron-300.avif 300w, /redesign/assets/inv-micron.avif 580w" sizes="300px"><img src="/redesign/assets/inv-micron.avif" data-lg alt="Micron" style="height:21px" width="580" height="120" decoding="async"></picture></span><span class="lg"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/inv-bessemer.avif"><img src="/redesign/assets/inv-bessemer.avif" data-lg alt="Bessemer Venture Partners" style="height:39px" width="279" height="120" decoding="async"></picture></span><span class="lg"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/inv-mediatek-300.avif 300w, /redesign/assets/inv-mediatek-600.avif 600w, /redesign/assets/inv-mediatek.avif 982w" sizes="300px"><img src="/redesign/assets/inv-mediatek.avif" data-lg alt="MediaTek" style="height:16px" width="982" height="120" decoding="async"></picture></span><span class="lg"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/inv-matter-300.avif 300w, /redesign/assets/inv-matter-600.avif 600w, /redesign/assets/inv-matter.avif 1200w" sizes="300px"><img src="/redesign/assets/inv-matter.avif" data-lg alt="Matter" style="height:18px" width="1200" height="120" decoding="async"></picture></span><span class="lg"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/inv-samsung-300.avif 300w, /redesign/assets/inv-samsung-600.avif 600w, /redesign/assets/inv-samsung.avif 784w" sizes="300px"><img src="/redesign/assets/inv-samsung.avif" data-lg alt="Samsung" style="height:19.5px" width="784" height="120" decoding="async"></picture></span><span class="lg"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/inv-ericsson-300.avif 300w, /redesign/assets/inv-ericsson-600.avif 600w, /redesign/assets/inv-ericsson.avif 604w" sizes="300px"><img src="/redesign/assets/inv-ericsson.avif" data-lg alt="Ericsson" style="height:18.5px" width="604" height="120" decoding="async"></picture></span></div>
1134          </div>
1135        </div>
1136      </div>
1137    </div>
1138  </section>
1139
1140  <section class="photo-band">
1141    <div class="photo-band-bg" id="photoTrail"></div>
1142    <canvas id="photoConstellation" class="photo-constellation"></canvas>
1143    <div class="wrap photo-band-inner">
1144      <div class="arch-diagram reveal" aria-hidden="true">
1145        <canvas id="orbitalField" class="orbital-canvas"></canvas>
1146      </div>
1147      <div class="reveal">
1148        <h2>Unveiling IC-star</h2>
1149        <p class="sub-orange">Navigate your fastest path to tapeout. Join the reveal on October 29, 10:00 AM PDT / 1:00 PM EDT.</p>
1150        <a href="https://event.on24.com/wcc/r/5507421/A45CEFBA43BC7B2A43F265520AFDBA32" target="_blank" rel="noopener" class="btn btn-ghost btn-flash" style="border-color:rgba(244,244,244,0.45); color:#f4f4f4; margin-top:20px;">Register for the webinar →</a>
1151      </div>
1152    </div>
1153  </section>
1154
1155
1156  <section class="block signal">
1157    <div class="signal-bg"></div>
1158    <canvas class="nebula" id="signalNebula" aria-hidden="true"></canvas>
1159    <canvas id="signalParticles" class="signal-particles"></canvas>
1160    <div class="wrap signal-grid">
1161      <div>
1162        <div class="reveal">
1163          <h2>Why ChipAgents</h2>
1164        </div>
1165        <div class="stat-carousel reveal" id="statCarousel">
1166          <div class="stat-slides" id="statSlides">
1167            <div class="stat-slide is-active"><div class="n">200+</div><div class="l">Semiconductor enterprise deployments</div></div>
1168            <div class="stat-slide"><div class="n">50%</div><div class="l">Design cycle reduction</div></div>
1169            <div class="stat-slide"><div class="n">20,000+</div><div class="l">Global user community</div></div>
1170            <div class="stat-slide"><div class="n">40%</div><div class="l">Annual LLM spending savings</div></div>
1171          </div>
1172          <div class="stat-controls">
1173            <div class="stat-dots" id="statDots"></div>
1174          </div>
1175        </div>
1176      </div>
1177      <div class="diagram-box reveal">
1178        <div class="founder-eyebrow">Founder Story</div>
1179
1180        <div class="video-embed" id="founderVideo"><video controls preload="none" playsinline poster="/redesign/assets/founder-story-poster.avif" aria-label="ChipAgents founder story" style="width:100%;height:100%;object-fit:cover"><source src="/videos/founder-story.mp4" type="video/mp4">Your browser does not support video playback.</video></div>
1181        <p class="founder-copy">
1182          Hear how ChipAgents accelerates physical AI and custom silicon innovations from our Founder &amp; CEO,
1183          William Wang.
1184        </p>
1185      </div>
1186    </div>
1187  </section>
1188
1189  <section class="block testimonial-section">
1190    <div class="wrap">
1191      <div class="cv-head reveal">
1192        <h2>Customer voices</h2>
1193        <a class="cv-all" href="/customers">All customer stories <span class="arrow">→</span></a>
1194      </div>
1195      <div class="testimonial-carousel reveal-stagger" id="testimonialCarousel">
1196        <div class="testimonial-track" id="testimonialTrack"></div>
1197        <div class="testimonial-tabs" id="testimonialTabs"></div>
1198      </div>
1199    </div>
1200  </section>
1201
1202  <section class="block people-strip">
1203    <div class="wrap">
1204      <div class="block-head reveal" style="margin-bottom:22px;">
1205        <h2>The people building ChipAgents</h2>
1206      </div>
1207    </div>
1208    <div class="pp-rail" id="peopleRail">
1209      <div class="pp-track">
1210        <a class="pp" draggable="false" href="/about#bio-william-wang" aria-label="Read bio for William Wang"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/team/WilliamWang-360.avif 360w, /redesign/assets/team/WilliamWang.avif 384w" sizes="(max-width:600px) 280px, 470px"><img src="/redesign/assets/team/WilliamWang.avif" alt="William Wang" width="384" height="505" loading="lazy" decoding="async"></picture><div class="pp-meta"><div class="pn">William Wang</div><div class="pr">CEO &amp; Founder</div></div></a>
1211        <a class="pp" draggable="false" href="/about#bio-solaiman-rahim" aria-label="Read bio for Solaiman Rahim"><img src="/redesign/assets/team/SolaimanRahim.avif" alt="Solaiman Rahim" width="463" height="483" loading="lazy" decoding="async"><div class="pp-meta"><div class="pn">Solaiman Rahim</div><div class="pr">Chief Product Officer</div></div></a>
1212        <a class="pp" draggable="false" href="/about#bio-mayur-savla" aria-label="Read bio for Mayur Savla"><img src="/redesign/assets/team/MayurSavla.avif" alt="Mayur Savla" width="512" height="487" loading="lazy" decoding="async"><div class="pp-meta"><div class="pn">Mayur Savla</div><div class="pr">Head of Global Sales</div></div></a>
1213        <a class="pp" draggable="false" href="/about#bio-mehir-arora" aria-label="Read bio for Mehir Arora"><img src="/redesign/assets/team/MehirArora.avif" alt="Mehir Arora" width="658" height="866" loading="lazy" decoding="async"><div class="pp-meta"><div class="pn">Mehir Arora</div><div class="pr">Head of Engineering</div></div></a>
1214        <a class="pp" draggable="false" href="/about#bio-cindy-cui" aria-label="Read bio for Cindy Cui"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/team/CindyCui-360.avif 360w, /redesign/assets/team/CindyCui-480.avif 480w, /redesign/assets/team/CindyCui.avif 760w" sizes="(max-width:600px) 280px, 470px"><img src="/redesign/assets/team/CindyCui.avif" alt="Cindy Cui" width="760" height="777" loading="lazy" decoding="async"></picture><div class="pp-meta"><div class="pn">Cindy Cui</div><div class="pr">
1214VP, Application Engineering &amp; Global Customer Success</div></div></a>
1215        <a class="pp" draggable="false" href="/about#bio-harrison-balistreri" aria-label="Read bio for Harrison Balistreri"><img src="/redesign/assets/team/HarrisonBalistreri.avif" alt="Harrison Balistreri" width="418" height="413" loading="lazy" decoding="async"><div class="pp-meta"><div class="pn">Harrison Balistreri</div><div class="pr">Head of Business Development and Strategic Partnerships</div></div></a>
1216        <a class="pp" draggable="false" href="/about#bio-emily-yan" aria-label="Read bio for Emily Yan"><img src="/redesign/assets/team/EmilyYan.avif" alt="Emily Yan" width="500" height="500" loading="lazy" decoding="async"><div class="pp-meta"><div class="pn">Emily Yan</div><div class="pr">Head of Marketing</div></div></a>
1217        <a class="pp" draggable="false" href="/about#bio-kexun-zhang" aria-label="Read bio for Kexun Zhang"><img src="/redesign/assets/team/KexunZhang.avif" alt="Kexun Zhang" width="512" height="512" loading="lazy" decoding="async"><div class="pp-meta"><div class="pn">Kexun Zhang</div><div class="pr">Head of Research</div></div></a>
1218        <a class="pp" draggable="false" href="/about#bio-corey-wallace" aria-label="Read bio for Corey Wallace"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/team/CoreyWallace-360.avif 360w, /redesign/assets/team/CoreyWallace.avif 768w" sizes="(max-width:600px) 280px, 470px"><img src="/redesign/assets/team/CoreyWallace.avif" alt="Corey Wallace" width="768" height="871" loading="lazy" decoding="async"></picture><div class="pp-meta"><div class="pn">Corey Wallace</div><div class="pr">General Counsel</div></div></a>
1219        <a class="pp" draggable="false" href="/about#bio-walden-rhines" aria-label="Read bio for Walden Rhines"><img src="/redesign/assets/team/WaldenRhines.avif" alt="Walden Rhines" width="422" height="591" loading="lazy" decoding="async"><div class="pp-meta"><div class="pn">Walden Rhines</div><div class="pr">Advisor, Former CEO of Mentor Graphics (Siemens EDA)</div></div></a>
1220        <a class="pp" draggable="false" href="/about#bio-raul-camposano" aria-label="Read bio for Raúl Camposano"><img src="/redesign/assets/team/RaulCamposano.avif" alt="Raúl Camposano" width="500" height="500" loading="lazy" decoding="async"><div class="pp-meta"><div class="pn">Raúl Camposano</div><div class="pr">Advisor, Former CTO of Synopsys</div></div></a>
1221        <a class="pp" draggable="false" href="/about#bio-jack-harding" aria-label="Read bio for Jack Harding"><img src="/redesign/assets/team/JackHarding.avif" alt="Jack Harding" width="500" height="500" loading="lazy" decoding="async"><div class="pp-meta"><div class="pn">Jack Harding</div><div class="pr">Advisor, Former CEO of Cadence</div></div></a>
1222        <a class="pp" draggable="false" href="/about#bio-sandeep-bharathi" aria-label="Read bio for Sandeep Bharathi"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/team/SandeepBharathi-3x4-360.avif 360w, /redesign/assets/team/SandeepBharathi-3x4.avif 480w" sizes="(max-width:600px) 280px, 470px"><img src="/redesign/assets/team/SandeepBharathi-3x4.avif" alt="Sandeep Bharathi" width="480" height="640" loading="lazy" decoding="async"></picture><div class="pp-meta"><div class="pn">Sandeep Bharathi</div><div class="pr">Advisor, President of the Data Center Group at Marvell</div></div></a>
1223        <a class="pp" draggable="false" href="/about#bio-erez-tsur" aria-label="Read bio for Erez Tsur"><img src="/redesign/assets/team/ErezTsur.avif" alt="Erez Tsur" width="516" height="483" loading="lazy" decoding="async"><div class="pp-meta"><div class="pn">Erez Tsur</div><div class="pr">Advisor, Former CEO of Cadence Israel</div></div></a>
1224        <a class="pp" draggable="false" href="/about#bio-john-bowers" aria-label="Read bio for John Bowers"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/team/JohnBowers-360.avif 360w, /redesign/assets/team/JohnBowers.avif 384w" sizes="(max-width:600px) 280px, 470px"><img src="/redesign/assets/team/JohnBowers.avif" alt="John Bowers" width="384" height="505" loading="lazy" decoding="async"></picture><div class="pp-meta"><div class="pn">John Bowers</div><div class="pr">Advisor &amp; Board Member, Electrical Engineering Pioneer</div></div></a>
1225        <a class="pp" draggable="false" href="/about#bio-wen-hsieh" aria-label="Read bio for Wen Hsieh"><img src="/redesign/assets/team/WenHsieh.avif" alt="Wen Hsieh" width="355" height="381" loading="lazy" decoding="async"><div class="pp-meta"><div class="pn">Wen Hsieh</div><div class="pr">Board Member, Founding Managing Partner at Matter Venture Partners</div></div></a>
1226        <a class="pp" draggable="false" href="/about#bio-lance-co-ting-keh" aria-label="Read bio for Lance Co Ting Keh"><img src="/redesign/assets/team/LanceCoTingKeh.avif" alt="Lance Co Ting Keh" width="520" height="480" loading="lazy" decoding="async"><div class="pp-meta"><div class="pn">
1226Lance Co Ting Keh</div><div class="pr">Board Member, Venture Partner at Bessemer Venture Partners</div></div></a>
1227        <a class="pp" draggable="false" href="/about#bio-daisy-cai" aria-label="Read bio for Daisy Cai"><img src="/redesign/assets/team/DaisyCai.avif" alt="Daisy Cai" width="447" height="559" loading="lazy" decoding="async"><div class="pp-meta"><div class="pn">Daisy Cai</div><div class="pr">Board Member, General Partner at B Capital</div></div></a>
1228        <a class="pp" draggable="false" href="/about#bio-ivan-bercovich" aria-label="Read bio for Ivan Bercovich"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/team/IvanBercovich-360.avif 360w, /redesign/assets/team/IvanBercovich.avif 384w" sizes="(max-width:600px) 280px, 470px"><img src="/redesign/assets/team/IvanBercovich.avif" alt="Ivan Bercovich" width="384" height="505" loading="lazy" decoding="async"></picture><div class="pp-meta"><div class="pn">Ivan Bercovich</div><div class="pr">Board Member, General Partner at ScOp Venture Capital</div></div></a>
1229      </div>
1230    </div>
1231    <div class="wrap">
1232      <div class="pp-foot reveal">
1233        <div class="pp-nav">
1234          <button type="button" class="pp-arrow" data-dir="-1" aria-label="Previous people">&#8592;</button>
1235          <button type="button" class="pp-arrow" data-dir="1" aria-label="More people">&#8594;</button>
1236        </div>
1237        <a href="/about#team">See full bios on About →</a>
1238      </div>
1239    </div>
1240  </section>
1241
1242  <section class="block news-section" id="news">
1243    <div class="wrap">
1244      <div class="block-head reveal" style="margin-bottom:44px;">
1245        <h2>In the spotlight</h2>
1246      </div>
1247      <div class="news-layout">
1248        <div class="news-grid reveal-stagger" id="newsGrid"><a class="ncard" href="https://www.businesswire.com/news/home/20260921141786/en/ChipAgents-Helps-eMemory-Cut-NVM-IP-Functional-Model-Verification-Effort-by-80" target="_blank" rel="noopener noreferrer"><div class="top"><span>Press Release</span></div><div class="headline">ChipAgents Helps eMemory Cut NVM IP Functional-Model Verification Effort by 80%</div><div class="meta">2026-09-21</div></a><a class="ncard photo" href="/blogs/agentic-ai-chip-design-aws-chipagents" target="_blank" rel="noopener noreferrer"><div class="top"><span>Blog</span></div><div class="card-bg card-bg-blog" aria-hidden="true"></div><div class="headline">Agentic AI for Chip Design: How AWS and ChipAgents Tackle the Engineering Bottleneck</div><div class="meta">2026-10-02</div></a><a class="ncard photo" href="/video-center/building-multi-agent-systems-for-asic-flows" target="_blank" rel="noopener noreferrer"><div class="top"><span>Video</span></div><div class="card-bg card-bg-video" aria-hidden="true"></div><div class="headline">Building Multi-Agent Systems for ASIC Flows</div><div class="meta">2026-07-07</div></a></div>
1249        <div class="news-cta reveal">
1250        <a href="/newsroom"><span>Newsroom</span><em aria-hidden="true">&#8594;</em></a>
1251        <a href="/blogs"><span>Blog</span><em aria-hidden="true">&#8594;</em></a>
1252          <a href="/video-center"><span>Video center</span><em aria-hidden="true">&#8594;</em></a>
1253        </div>
1254      </div>
1255    </div>
1256  </section>
1257
1258  <section class="security-section" id="security">
1259    <div class="security-breathe" id="securityBreathe"></div>
1260    <canvas id="securityParticles" class="security-stars"></canvas>
1261    <div class="wrap security-inner">
1262      <div class="reveal">
1263        <h2>Enterprise-grade security, by design</h2>
1264        <p>ChipAgents meets the security and compliance bar your team already expects: sensitive design IP stays exactly where it belongs.</p>
1265        <a href="/trust-center" class="btn btn-ghost security-cta">Visit the Trust Center →</a>
1266      </div>
1267      <div class="soc2-badge reveal">
1268        <div class="soc2-shield">
1269          <svg viewBox="0 0 48 48" fill="none"><path d="M24 4 L42 11 V23 C42 34 34.5 41 24 44 C13.5 41 6 34 6 23 V11 Z" stroke="#fd6420" stroke-width="2"/><path d="M16 24 L21 29 L33 16" stroke="#fd6420" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/></svg>
1270        </div>
1271        <div class="soc2-label">SOC 2<span>TYPE II</span></div>
1272      </div>
1273    </div>
1274  </section>
1275
1276  <section class="cta-banner" id="book-a-demo">
1277    <div class="cta-stars" id="ctaStars"></div>
1278    <canvas class="cta-flow" id="ctaFlow" aria-hidden="true"></canvas>
1279    <div class="reveal cta-with-form">
1280      <div class="cta-form-intro">
1281        <h2>Book a demo</h2>
1282        <p>Tell us what you're working on, and we'll show you what ChipAgents can do with it.</p>
1283      </div>
1284      <form class="demo-form" >
1285        <div class="field-line">
1286          <input type="text" id="demoName" aria-label="Name" name="name" placeholder="Name *" required>
1287        </div>
1288        <div class="field-line">
1289          <input type="email" id="demoEmail" aria-label="Work email" name="email" placeholder="Work email *" required>
1290        </div>
1291        <div class="field-line">
1292          <input type="text" id="demoCompany" aria-label="Company name" name="company" placeholder="Company name *" required>
1293        </div>
1294        <div class="field-line">
1295          <input type="text" id="demoRole" aria-label="Role" name="role" placeholder="Role *" required>
1296        </div>
1297        <div class="field-line">
1298          <textarea id="demoUseCase" aria-label="Tell us about your use case" name="use_case" placeholder="Tell us about your use case *" required></textarea>
1299        </div>
1300        <div class="field-line select-line">
1301          <select id="demoSource" aria-label="Where did you hear about ChipAgents?" name="referral_source">
1302            <option value="" disabled selected>How did you hear about us?</option>
1303            <option>Search engine</option>
1304            <option>Social media</option>
1305            <option>Referral</option>
1306            <option>Conference or event</option>
1307            <option>News or press</option>
1308            <option>Other</option>
1309          </select>
1310        </div>
1311        <label class="demo-checkbox">
1312          <input type="checkbox" id="demoMarketing" name="marketing_opt_in" value="yes">
1313          <span>I would like to receive marketing communications regarding ChipAgents' products, services, and events. I can unsubscribe at any time. For details about how we collect, use, and protect your information, please see our <a href="/privacy-policy" onclick="event.stopPropagation()">Privacy Policy</a>.</span>
1314        </label>
1315        <div class="required-note">* Required field</div>
1316        <button type="submit" class="demo-submit">Send message</button>
1317      </form>
1318    </div>
1319  </section>
1320
1321  </main><footer>
1322    <div class="foot-glow" id="footGlow"></div>
1323    <canvas id="footParticles" class="foot-particles"></canvas>
1324    <div class="wrap">
1325      <div class="foot-lead">
1326        <h2>The agentic<br>foundation for<br>semiconductor</h2>
1327        <div class="foot-lead-actions">
1328          <a href="#book-a-demo" class="btn btn-solid">Book a demo</a>
1329          <a href="/careers" class="btn btn-light">We're hiring →</a>
1330        </div>
1331      </div>
1332      <div class="foot-grid">
1333        <div>
1334          <div class="foot-logo"><picture style="display:contents"><source type="image/avif" srcset="/redesign/assets/logo-light-text-300.avif 300w, /redesign/assets/logo-light-text-600.avif 600w, /redesign/assets/logo-light-text.avif 1200w" sizes="300px"><img src="/redesign/assets/logo-light-text.avif" alt="ChipAgents" width="1200" height="269" loading="lazy" decoding="async"></picture></div>
1335          <div class="foot-addr"><b>Headquarters</b>6280 America Center Drive, Suite 200<br>San Jose, CA 95002</div>
1336          <div class="foot-addr"><b>Research &amp; Development</b>110 Castilian Drive, Suite 102<br>Goleta, CA 93117</div>
1337        </div>
1338        <div class="foot-col">
1339          <div class="cap">Company</div>
1340          <a href="/about">About</a><a href="/about#team">Team</a><a href="/customers">Customer success</a><a href="/partners">Partners</a><a href="/careers">Careers</a><a href="/trust-center">Trust center</a>
1341        </div>
1342        <div class="foot-col">
1343          <div class="cap">Resources</div>
1344          <a href="/blogs">Blog</a><a href="/newsroom">Newsroom</a><a href="/video-center">Video center</a><a href="/events">Events</a>
1345        </div>
1346        <div class="foot-col">
1347          <div class="cap">Get started</div>
1348          <a href="#book-a-demo">Book a demo</a><a href="https://agent.chipagents.ai/api/auth/login">Log in</a><a href="/hub" target="_blank" rel="noopener">Learning hub</a><a href="/privacy-policy">Privacy policy</a>
1349        </div>
1350        <div class="foot-col">
1351          <div class="cap">Follow us</div>
1352          <div class="foot-social-icons">
1353            <a href="https://www.linkedin.com/company/chipagents-ai" aria-label="ChipAgents on LinkedIn" target="_blank" rel="noopener"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM3 9h4v12H3V9zm7 0h3.8v1.71h.05c.53-.95 1.83-1.96 3.76-1.96C21.4 8.75 22 11.02 22 14.2V21h-4v-6.03c0-1.44-.03
1353-3.29-2.06-3.29-2.06 0-2.38 1.56-2.38 3.18V21h-3.9V9z"/></svg></a>
1354            <a href="https://x.com/AlphaDesignAI" aria-label="ChipAgents on X" target="_blank" rel="noopener"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M17.53 3h3.14l-6.86 7.84L21.9 21h-6.3l-4.94-6.46L4.98 21H1.84l7.34-8.39L2.1 3h6.46l4.47 5.9L17.53 3zm-1.1 16.13h1.74L7.65 4.78H5.79l10.64 14.35z"/></svg></a>
1355            <a href="https://www.youtube.com/@chipagents" aria-label="ChipAgents on YouTube" target="_blank" rel="noopener"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M23.5 6.9a3.02 3.02 0 0 0-2.12-2.14C19.5 4.25 12 4.25 12 4.25s-7.5 0-9.38.51A3.02 3.02 0 0 0 .5 6.9C0 8.79 0 12 0 12s0 3.21.5 5.1a3.02 3.02 0 0 0 2.12 2.14c1.88.51 9.38.51 9.38.51s7.5 0 9.38-.51a3.02 3.02 0 0 0 2.12-2.14C24 15.21 24 12 24 12s0-3.21-.5-5.1zM9.6 15.57V8.43L15.82 12 9.6 15.57z"/></svg></a>
1356          </div>
1357        </div>
1358      </div>
1359      <div class="foot-bottom">
1360        <div class="copy">© Alpha Design AI 2026. All rights reserved.</div>
1361      </div>
1362    </div>
1363  </footer>
1364
1365
1366<script src="/redesign/nebula.js"></script>
vendor: 1 bytes, line 1366
1366
1367<script src="/redesign/orbital.js"></script>
vendor: 1 bytes, line 1367
1367
1368<script src="/redesign/gateway-flow.js"></script>
vendor: 1 bytes, line 1368
1368
1369<script>
1370  // Shooting-star streak for the hero — bright falling heads with a tapered glowing tail
1371  // behind each (reminiscent of a meteor-shower reference photo), in the brand orange, tuned
1372  // to fade into the light #f4f4f4 hero background instead of black. The tail actually tapers
1373  // to a point (rather than a uniform-width line) so the shape reads clearly as a shooting
1374  // star rather than just a light beam.
1375  function buildHeroBeam(container){
1376    const w = 1400, h = 620;
1377
1378    function star(tailX, tailY, headX, headY, opts){
1379      opts = opts || {};
1380      const id = opts.id;
1381      const outerHalf = opts.outerHalf != null ? opts.outerHalf : 20;
1382      const innerHalf = opts.innerHalf != null ? opts.innerHalf : 7;
1383      const glowR = opts.glowR != null ? opts.glowR : 34;
1384      const headR = opts.headR != null ? opts.headR : 5;
1385      const op = opts.opacity != null ? opts.opacity : 1;
1386      const sparkle = !!opts.sparkle;
1387      const dx = headX - tailX, dy = headY - tailY;
1388      const len = Math.hypot(dx, dy);
1389      const ux = dx/len, uy = dy/len;
1390      const px = -uy, py = ux;
1391      const o1x = (headX + px*outerHalf).toFixed(1), o1y = (headY + py*outerHalf).toFixed(1);
1392      const o2x = (headX - px*outerHalf).toFixed(1), o2y = (headY - py*outerHalf).toFixed(1);
1393      const i1x = (headX + px*innerHalf).toFixed(1), i1y = (headY + py*innerHalf).toFixed(1);
1394      const i2x = (headX - px*innerHalf).toFixed(1), i2y = (headY - py*innerHalf).toFixed(1);
1395      let defs = `
1396        <linearGradient id="starOuter${id}" gradientUnits="userSpaceOnUse" x1="${tailX}" y1="${tailY}" x2="${headX}" y2="${headY}">
1397          <stop offset="0%" stop-color="#fd6420" stop-opacity="0"/>
1398          <stop offset="55%" stop-color="#fd6420" stop-opacity="${0.28*op}"/>
1399          <stop offset="100%" stop-color="#fd6420" stop-opacity="${0.55*op}"/>
1400        </linearGradient>
1401        <linearGradient id="starInner${id}" gradientUnits="userSpaceOnUse" x1="${tailX}" y1="${tailY}" x2="${headX}" y2="${headY}">
1402          <stop offset="0%" stop-color="#fd6420" stop-opacity="0"/>
1403          <stop offset="45%" stop-color="#fd6420" stop-opacity="${0.65*op}"/>
1404          <stop offset="85%" stop-color="#fd6420" stop-opacity="${0.95*op}"/>
1405          <stop offset="100%" stop-color="#ffe4bf" stop-opacity="${op}"/>
1406        </linearGradient>
1407        <radialGradient id="starHeadGlow${id}" cx="50%" cy="50%" r="50%">
1408          <stop offset="0%" stop-color="#fff6ea" stop-opacity="${op}"/>
1409          <stop offset="40%" stop-color="#fd6420" stop-opacity="${0.7*op}"/>
1410          <stop offset="100%" stop-color="#fd6420" stop-opacity="0"/>
1411        </radialGradient>`;
1412      let mk = '';
1413      // soft wide taper (glow), then a crisp narrow taper (bright core) on top
1414      mk += `<polygon points="${tailX.toFixed(1)},${tailY.toFixed(1)} ${o1x},${o1y} ${o2x},${o2y}" fill="url(#starOuter${id})" filter="url(#heroTrailGlowSoft)"/>`;
1415      mk += `<polygon points="${tailX.toFixed(1)},${tailY.toFixed(1)} ${i1x},${i1y} ${i2x},${i2y}" fill="url(#starInner${id})" filter="url(#heroTrailGlow)"/>`;
1416      // soft halo behind the head, then a crisp bright point on top
1417      mk += `<circle cx="${headX.toFixed(1)}" cy="${headY.toFixed(1)}" r="${glowR}" fill="url(#starHeadGlow${id})" filter="url(#heroHeadBlur)"/>`;
1418      mk += `<circle cx="${headX.toFixed(1)}" cy="${headY.toFixed(1)}" r="${headR}" fill="#fff6ea" opacity="${op}"/>`;
1419      if(sparkle){
1420        const arm = headR*3.6;
1421        mk += `<g stroke="#ffe9cf" stroke-width="1" opacity="${0.55*op}">
1422          <line x1="${(headX-arm).toFixed(1)}" y1="${headY.toFixed(1)}" x2="${(headX+arm).toFixed(1)}" y2="${headY.toFixed(1)}"/>
1423          <line x1="${headX.toFixed(1)}" y1="${(headY-arm).toFixed(1)}" x2="${headX.toFixed(1)}" y2="${(headY+arm).toFixed(1)}"/>
1424        </g>`;
1425      }
1426      return { defs, mk };
1427    }
1428
1429    // primary star: falls from upper-right toward lower-left, head lower on the canvas —
1430    // kept well inside the frame (not right at the edges) so it isn't cropped when the SVG
1431    // is scaled/cover-cropped to fill taller or wider viewports
1432    const s1 = star(w*0.94, h*0.06, w*0.66, h*0.42, { id: '1', outerHalf: 22, innerHalf: 8, glowR: 42, headR: 6.5, sparkle: true });
1433    // secondary, smaller star just behind it for a touch of depth
1434    const s2 = star(w*0.60, h*0.08, w*0.48, h*0.24, { id: '2', outerHalf: 12, innerHalf: 4.5, glowR: 18, headR: 3.5, opacity: 0.72 });
1435    // third star tucked where the soft aura sits in the lower-middle of the hero — its tail
1436    // runs up and back into the product panel (hidden behind it, since this layer sits under
1437    // the panel's z-index) and the bright head emerges past it, into the open area below-left
1438    const s3 = star(w*0.80, h*0.18, w*0.46, h*0.72, { id: '3', outerHalf: 17, innerHalf: 6, glowR: 30, headR: 5, opacity: 0.85 });
1439
1440    let svg = `<svg viewBox="0 0 ${w} ${h}" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" style="width:100%;height:100%;">`;
1441    svg += `<defs>
1442      <filter id="heroTrailGlowSoft" x="-150%" y="-150%" width="400%" height="400%"><feGaussianBlur stdDeviation="10"/></filter>
1443      <filter id="heroTrailGlow" x="-100%" y="-100%" width="300%" height="300%"><feGaussianBlur stdDeviation="3"/></filter>
1444      <filter id="heroHeadBlur" x="-150%" y="-150%" width="400%" height="400%"><feGaussianBlur stdDeviation="14"/></filter>
1445      ${s1.defs}${s2.defs}${s3.defs}
1446    </defs>`;
1447    svg += s1.mk + s2.mk + s3.mk;
1448    // a light scatter of stardust, kept to that same upper-right area
1449    const dust = 30;
1450    for(let i=0;i<dust;i++){
1451      const x = w*0.32 + Math.random()*w*0.66, y = Math.random()*h*0.62, r = Math.random()*1.0+0.3;
1452      const isOrange = Math.random() < 0.25;
1453      svg += `<circle cx="${x.toFixed(1)}" cy="${y.toFixed(1)}" r="${r.toFixed(2)}" fill="${isOrange ? '#fd6420' : '#0d1117'}" opacity="${(0.06+Math.random()*0.12).toFixed(2)}"/>`;
1454    }
1455    svg += `</svg>`;
1456    container.innerHTML = svg;
1457  }
1458
1459  // Concentric star-trail motif (long exposure, circumpolar), kept light/dusk-toned per brief
1460  // opts.dark tunes the palette for placement on the dark ink Trust & Security band
1461  // (planets/dust flip to light tones so they read against #0d1117 instead of the paper bg)
1462  function buildStarTrails(container, opts){
1463    opts = opts || {};
1464    const dark = !!opts.dark;
1465    const w = opts.w || 1400, h = opts.h || 620;
1466    const cx = w * (opts.fx != null ? opts.fx : 0.78);
1467    const cy = h * (opts.fy != null ? opts.fy : 0.22);
1468    const dustFill = dark ? '#f4f4f4' : '#0d1117';
1469    const dustOpacity = dark ? [0.08, 0.22] : [0.06, 0.12];
1470    const planetDarkFill = dark ? '#f4f4f4' : '#0d1117';
1471    const orbitLineFill = dark ? '#f4f4f4' : '#0d1117';
1472    const orbitLineOpacity = dark ? 0.16 : 0.14;
1473    let svg = `<svg viewBox="0 0 ${w} ${h}" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid slice" style="width:100%;height:100%;">`;
1474    svg += `<defs>
1475      <radialGradient id="duskGlow${dark?'Dk':''}" cx="50%" cy="50%" r="55%">
1476        <stop offset="0%" stop-color="${dark ? '#1c2532' : '#e7e9ea'}" stop-opacity="${dark ? 0.9 : 0.9}"/>
1477        <stop offset="45%" stop-color="${dark ? '#161d27' : '#e2e2df'}" stop-opacity="0.45"/>
1478        <stop offset="100%" stop-color="${dark ? '#0d1117' : '#f4f4f4'}" stop-opacity="0"/>
1479      </radialGradient>
1480      <radialGradient id="sunCore${dark?'Dk':''}" cx="50%" cy="50%" r="50%">
1481        <stop offset="0%" stop-color="#ffffff" stop-opacity="1"/>
1482        <stop offset="35%" stop-color="#fd6420" stop-opacity="0.95"/>
1483        <stop offset="100%" stop-color="#fd6420" stop-opacity="0"/>
1484      </radialGradient>
1485    </defs>`;
1486    // soft dusk-toned glow behind the system, centered on the focal point
1487    svg += `<circle cx="${cx}" cy="${cy}" r="380" fill="url(#duskGlow${dark?'Dk':''})"/>`;
1488
1489    // faint scattered stardust for depth
1490    const dust = 44;
1491    for(let i=0;i<dust;i++){
1492      const x = Math.random()*w, y = Math.random()*h, r = Math.random()*1.1+0.3;
1493      svg += `<circle cx="${x.toFixed(1)}" cy="${y.toFixed(1)}" r="${r.toFixed(2)}" fill="${dustFill}" opacity="${(dustOpacity[0]+Math.random()*(dustOpacity[1]-dustOpacity[0])).toFixed(2)}"/>`;
1494    }
1495
1496    // tilted elliptical orbits, each carrying a planet that travels the path continuously
1497    const orbits = 6;
1498    for(let i=0;i<orbits;i++){
1499      const rx = 46 + i * 52 + Math.random()*10;
1500      const ry = rx * (0.28 + Math.random()*0.08);
1501      const tilt = -10 + Math.random()*6;
1502      const sweep = Math.random() < 0.5 ? 1 : 0; // flips travel direction for variety
1503      const pathId = `orbitPath${dark?'Dk':''}${i}`;
1504      const ellipseD = `M ${(cx+rx).toFixed(1)} ${cy.toFixed(1)} A ${rx.toFixed(1)} ${ry.toFixed(1)} 0 1 ${sweep} ${(cx-rx).toFixed(1)} ${cy.toFixed(1)} A ${rx.toFixed(1)} ${ry.toFixed(1)} 0 1 ${sweep} ${(cx+rx).toFixed(1)} ${cy.toFixed(1)}`;
1505      const isOrange = Math.random() < 0.24;
1506      const planetR = isOrange ? (3.2+Math.random()*2.4) : (1.8+Math.random()*2.1);
1507      const planetFill = isOrange ? '#fd6420' : planetDarkFill;
1508      const planetOpacity = isOrange ? 0.9 : (0.5+Math.random()*0.3);
1509      const dur = (16 + i*8 + Math.random()*6).toFixed(1); // outer orbits move slower, like real orbital mechanics
1510      const hasRing = isOrange && Math.random() < 0.35;
1511      svg += `<g transform="rotate(${tilt.toFixed(1)} ${cx.toFixed(1)} ${cy.toFixed(1)})">
1512        <path id="${pathId}" d="${ellipseD}" fill="none" stroke="${isOrange ? '#fd6420' : orbitLineFill}" stroke-width="0.6" opacity="${orbitLineOpacity}"/>
1513        <g>
1514          ${hasRing ? `<ellipse rx="${(planetR*2.1).toFixed(2)}" ry="${(planetR*0.7).toFixed(2)}" fill="none" stroke="#fd6420" stroke-width="0.6" opacity="0.5">
1515            <animateMotion dur="${dur}s" repeatCount="indefinite" rotate="auto"><mpath xlink:href="#${pathId}" href="#${pathId}"/></animateMotion>
1516          </ellipse>` : ''}
1517          <circle r="${planetR.toFixed(2)}" fill="${planetFill}" opacity="${planetOpacity.toFixed(2)}">
1518            <animateMotion dur="${dur}
1518s" repeatCount="indefinite" rotate="auto"><mpath xlink:href="#${pathId}" href="#${pathId}"/></animateMotion>
1519          </circle>
1520        </g>
1521      </g>`;
1522    }
1523
1524    // the central star, standing in for the pole star, with a gentle pulse
1525    svg += `<circle cx="${cx.toFixed(1)}" cy="${cy.toFixed(1)}" r="10" fill="url(#sunCore${dark?'Dk':''})" opacity="0.9">
1526      <animate attributeName="r" values="9;11.5;9" dur="4s" repeatCount="indefinite"/>
1527    </circle>`;
1528    svg += `<circle cx="${cx.toFixed(1)}" cy="${cy.toFixed(1)}" r="3" fill="#fd6420" opacity="0.95"/>`;
1529
1530    svg += `</svg>`;
1531    container.innerHTML = svg;
1532  }
1533
1534  // Light-toned trail motif for hero (subtle, not dark)
1535  function buildLightTrails(container){
1536    const w = 1400, h = 620;
1537    let svg = `<svg viewBox="0 0 ${w} ${h}" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" style="width:100%;height:100%;">`;
1538    svg += `<defs>
1539      <linearGradient id="fadeO" x1="0" y1="0" x2="1" y2="0">
1540        <stop offset="0%" stop-color="#fd6420" stop-opacity="0"/>
1541        <stop offset="50%" stop-color="#fd6420" stop-opacity="0.55"/>
1542        <stop offset="100%" stop-color="#fd6420" stop-opacity="0"/>
1543      </linearGradient>
1544      <linearGradient id="fadeInk" x1="0" y1="0" x2="1" y2="0">
1545        <stop offset="0%" stop-color="#0d1117" stop-opacity="0"/>
1546        <stop offset="50%" stop-color="#0d1117" stop-opacity="0.12"/>
1547        <stop offset="100%" stop-color="#0d1117" stop-opacity="0"/>
1548      </linearGradient>
1549    </defs>`;
1550    const streaks = 9;
1551    for(let i=0;i<streaks;i++){
1552      const y = 20 + Math.random()*(h-40);
1553      const bend = (Math.random()-0.5)*100;
1554      const len = 400 + Math.random()*600;
1555      const startX = Math.random()*(w-len);
1556      const stroke = i % 3 === 0 ? 'url(#fadeO)' : 'url(#fadeInk)';
1557      const width = (Math.random()*1.4+0.5).toFixed(2);
1558      const midY = y + bend;
1559      svg += `<path d="M ${startX} ${y} Q ${startX+len/2} ${midY} ${startX+len} ${y - bend/2}"
1560                fill="none" stroke="${stroke}" stroke-width="${width}" opacity="${(0.4+Math.random()*0.4).toFixed(2)}"/>`;
1561    }
1562    // faint scattered nodes hinting at a network, kept quiet on light bg
1563    const stars = 20;
1564    for(let i=0;i<stars;i++){
1565      const x = Math.random()*w;
1566      const y = Math.random()*h;
1567      const r = Math.random()*1.3+0.4;
1568      const isOrange = Math.random() < 0.3;
1569      svg += `<circle cx="${x}" cy="${y}" r="${r.toFixed(2)}" fill="${isOrange ? '#fd6420' : '#0d1117'}" opacity="${(0.12+Math.random()*0.18).toFixed(2)}"/>`;
1570    }
1571    svg += `</svg>`;
1572    container.innerHTML = svg;
1573  }
1574
1575  // Dark starfield trail for the low CTA band only
1576  function buildDarkTrails(container){
1577    const w = 1400, h = 500;
1578    let svg = `<svg viewBox="0 0 ${w} ${h}" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" style="width:100%;height:100%;">`;
1579    svg += `<defs><linearGradient id="fadeO2" x1="0" y1="0" x2="1" y2="0">
1580      <stop offset="0%" stop-color="#fd6420" stop-opacity="0"/><stop offset="50%" stop-color="#fd6420" stop-opacity="0.8"/><stop offset="100%" stop-color="#fd6420" stop-opacity="0"/>
1581    </linearGradient></defs>`;
1582    for(let i=0;i<8;i++){
1583      const y = Math.random()*h;
1584      const len = 400 + Math.random()*600;
1585      const startX = Math.random()*(w-len);
1586      svg += `<path d="M ${startX} ${y} Q ${startX+len/2} ${y+(Math.random()-0.5)*90} ${startX+len} ${y}" fill="none" stroke="url(#fadeO2)" stroke-width="${(Math.random()*1.2+0.4).toFixed(2)}" opacity="0.5"/>`;
1587    }
1588    for(let i=0;i<40;i++){
1589      const x = Math.random()*w, y = Math.random()*h, r = Math.random()*1.2+0.3;
1590      svg += `<circle cx="${x}" cy="${y}" r="${r.toFixed(2)}" fill="#f4f4f4" opacity="${(0.15+Math.random()*0.4).toFixed(2)}"/>`;
1591    }
1592    svg += `</svg>`;
1593    container.innerHTML = svg;
1594  }
1595
1596  // Bold diagonal light beam, long-exposure film look (dark ground, luminous core, grain + scratches)
1597  // mirror: true flips the beam angle so repeat placements don't feel identical
1598  // Plain static star field — just scattered dust, no beam/orbit motif (used behind the
1599  // drifting photoConstellation particles for a denser "just stars" look)
1600  function buildPlainStarfield(container, opts){
1601    opts = opts || {};
1602    const w = opts.w || 1400, h = opts.h || 620;
1603    const count = opts.count || 110;
1604    const dark = opts.dark !== false;
1605    let svg = `<svg viewBox="0 0 ${w} ${h}" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" style="width:100%;height:100%;">`;
1606    for(let i=0;i<count;i++){
1607      const x = Math.random()*w, y = Math.random()*h, r = Math.random()*1.1+0.3;
1608      const isOrange = Math.random() < 0.14;
1609      const dustFill = isOrange ? '#fd6420' : (dark ? '#f4f4f4' : '#0d1117');
1610      svg += `<circle cx="${x.toFixed(1)}" cy="${y.toFixed(1)}" r="${r.toFixed(2)}" fill="${dustFill}" opacity="${(0.15+Math.random()*0.35).toFixed(2)}"/>`;
1611    }
1612    svg += `</svg>`;
1613    container.innerHTML = svg;
1614  }
1615
1616  function buildBeamBand(container, mirror){
1617    const w = 1400, h = 500;
1618    const rot = mirror ? 22 : -22;
1619    let svg = `<svg viewBox="0 0 ${w} ${h}" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" style="width:100%;height:100%;">`;
1620    svg += `<defs>
1621      <filter id="beamBlur${mirror?'2':''}" x="-50%" y="-50%" width="200%" height="200%">
1622        <feGaussianBlur stdDeviation="26"/>
1623      </filter>
1624      <linearGradient id="beamCore${mirror?'2':''}" x1="0" y1="1" x2="1" y2="0">
1625        <stop offset="0%" stop-color="#0d1117" stop-opacity="0"/>
1626        <stop offset="38%" stop-color="#fd6420" stop-opacity="0.95"/>
1627        <stop offset="55%" stop-color="#ffd8ab" stop-opacity="1"/>
1628        <stop offset="72%" stop-color="#fd6420" stop-opacity="0.85"/>
1629        <stop offset="100%" stop-color="#0d1117" stop-opacity="0"/>
1630      </linearGradient>
1631      <radialGradient id="vignette${mirror?'2':''}" cx="50%" cy="50%" r="75%">
1632        <stop offset="0%" stop-color="#0d1117" stop-opacity="0"/>
1633        <stop offset="100%" stop-color="#0d1117" stop-opacity="0.62"/>
1634      </radialGradient>
1635    </defs>`;
1636    svg += `<g filter="url(#beamBlur${mirror?'2':''})">
1637      <rect x="${-w*0.3}" y="${h*0.55}" width="${w*1.7}" height="${h*0.32}" fill="url(#beamCore${mirror?'2':''})"
1638            transform="rotate(${rot} ${w/2} ${h/2})"/>
1639    </g>`;
1640    svg += `<line x1="${-40}" y1="${h*0.86}" x2="${w+40}" y2="${h*-0.1}" stroke="#ffe4bf" stroke-width="2" opacity="0.5" filter="url(#beamBlur${mirror?'2':''})" transform="${mirror?`scale(-1,1) translate(${-w},0)`:''}"/>`;
1641    svg += `<rect x="0" y="0" width="${w}" height="${h}" fill="url(#vignette${mirror?'2':''})"/>`;
1642    for(let i=0;i<7;i++){
1643      const x1 = Math.random()*w, y1 = Math.random()*h;
1644      const len = 80 + Math.random()*220;
1645      const ang = Math.random()*Math.PI;
1646      const x2 = x1 + len*Math.cos(ang), y2 = y1 + len*Math.sin(ang);
1647      svg += `<line x1="${x1.toFixed(1)}" y1="${y1.toFixed(1)}" x2="${x2.toFixed(1)}" y2="${y2.toFixed(1)}" stroke="#f4f4f4" stroke-width="0.5" opacity="${(0.08+Math.random()*0.12).toFixed(2)}"/>`;
1648    }
1649    for(let i=0;i<90;i++){
1650      const x = Math.random()*w, y = Math.random()*h, r = Math.random()*0.9+0.2;
1651      svg += `<circle cx="${x.toFixed(1)}" cy="${y.toFixed(1)}" r="${r.toFixed(2)}" fill="#ffffff" opacity="${(0.05+Math.random()*0.12).toFixed(2)}"/>`;
1652    }
1653    svg += `</svg>`;
1654    container.innerHTML = svg;
1655  }
1656
1657  // Diffuse comet-glow, soft nebula-like long exposure for the closing footer moment
1658  function buildCometGlow(container){
1659    const w = 1400, h = 620;
1660    let svg = `<svg viewBox="0 0 ${w} ${h}" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" style="width:100%;height:100%;">`;
1661    svg += `<defs>
1662      <filter id="cometBlur" x="-60%" y="-60%" width="220%" height="220%"><feGaussianBlur stdDeviation="40"/></filter>
1663      <radialGradient id="cometCore" cx="50%" cy="50%" r="50%">
1664        <stop offset="0%" stop-color="#ffe0b0" stop-opacity="0.6"/>
1665        <stop offset="35%" stop-color="#fd6420" stop-opacity="0.4"/>
1666        <stop offset="70%" stop-color="#c14c14" stop-opacity="0.15"/>
1667        <stop offset="100%" stop-color="#0d1117" stop-opacity="0"/>
1668      </radialGradient>
1669    </defs>`;
1670    // soft diffuse glow tucked in the top-right corner, clear of the logo/address column and nav links
1671    const bx = w*0.88, by = h*0.1;
1672    svg += `<g filter="url(#cometBlur)">
1673      <ellipse cx="${bx}" cy="${by}" rx="220" ry="140" fill="url(#cometCore)" transform="rotate(-16 ${bx} ${by})"/>
1674    </g>`;
1675    // scattered stars / grain — denser starfield for the footer's closing moment
1676    for(let i=0;i<120;i++){
1677      const x = Math.random()*w, y = Math.random()*h, r = Math.random()*1.2+0.2;
1678      svg += `<circle cx="${x.toFixed(1)}" cy="${y.toFixed(1)}" r="${r.toFixed(2)}" fill="#ffffff" opacity="${(0.08+Math.random()*0.28).toFixed(2)}"/>`;
1679    }
1680    // a few fine scratch marks for the film-photo feel
1681    for(let i=0;i<6;i++){
1682      const x1 = Math.random()*w, y1 = Math.random()*h;
1683      const len = 60+Math.random()*180;
1684      const ang = Math.random()*Math.PI;
1685      const x2 = x1+len*Math.cos(ang), y2 = y1+len*Math.sin(ang);
1686      svg += `<line x1="${x1.toFixed(1)}" y1="${y1.toFixed(1)}" x2="${x2.toFixed(1)}" y2="${y2.toFixed(1)}" stroke="#f4f4f4" stroke-width="0.4" opacity="${(0.06+Math.random()*0.1).toFixed(2)}"/>`;
1687    }
1688    svg += `</svg>`;
1689    container.innerHTML = svg;
1690  }
1691
1692  buildHeroBeam(document.getElementById('heroTrails'));
1693  // the constellation now closes the page behind Book a demo, at a larger scale
1694  buildStarTrails(document.getElementById('ctaStars'), { dark:true, w:1900, h:820, fx:1.25, fy:0.5 });
1695
1696  // Breathing radial ground for the security band: the gradient's radius eases
1697  // in and out around a resting size, so the section glows rather than pulses.
1698  (function(){
1699    const el = document.getElementById('securityBreathe');
1700    if(!el) return;
1701    if(window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
1702    const REST = 125, RANGE = 9, SPEED = 0.03;
1703    let w = REST, dir = 1;
1704    gateLoop(function(){
1705      if(w >= REST + RANGE) dir = -1;
1706      if(w <= REST - RANGE) dir = 1;
1707      w += dir * SPEED;
1708      el.style.background =
1709        'radial-gradient(' + w.toFixed(2) + '% ' + (w + 20).toFixed(2) + '% at 50% 20%, ' +
1710        '#0d1117 35%, #131a22 58%, #1d2129 72%, #2a2019 84%, #3a2214 93%, #2c1a12 100%)';
1711    }, el);
1712  })();
1713
1714  // shared visibility gate: parks a rAF loop whenever its element is off screen
1715  function gateLoop(tick, watchEl){
1716    let running = false;
1717    function pump(){
1718      if(!running) return;
1719      tick();
1720      requestAnimationFrame(pump);
1721    }
1722    new IntersectionObserver((entries) => {
1723      const vis = entries[0].isIntersecting;
1724      if(vis && !running){ running = true; requestAnimationFrame(pump); }
1725      else if(!vis) running = false;
1726    }, { rootMargin: '140px' }).observe(watchEl);
1727  }
1728
1729  // Cursor-reactive glow in the hero
1730  const heroSection = document.getElementById('heroSection');
1731  const heroGlow = document.getElementById('heroGlow');
1732  if(heroSection && heroGlow){
1733    heroSection.addEventListener('mousemove', (e) => {
1734      const rect = heroSection.getBoundingClientRect();
1735      const mx = ((e.clientX - rect.left) / rect.width * 100).toFixed(1) + '%';
1736      const my = ((e.clientY - rect.top) / rect.height * 100).toFixed(1) + '%';
1737      heroGlow.style.setProperty('--mx', mx);
1738      heroGlow.style.setProperty('--my', my);
1739    });
1740    heroSection.addEventListener('mouseleave', () => {
1741      heroGlow.style.removeProperty('--mx');
1742      heroGlow.style.removeProperty('--my'); // settles back to the default upper-right position
1743    });
1744  }
1745  // photo-band background is now just the star field (photoConstellation particles below) — no beam streak
1746  buildPlainStarfield(document.getElementById('photoTrail'), { count: 150 });
1747  // founder story section gets the same comet-streak treatment as the reference photo
1748  buildCometGlow(document.getElementById('footGlow'));
1749
1750  // Interactive particle field for the footer — particles drift back to a home
1751  // position, and scatter away from the cursor when it comes near.
1752  function initParticleField(canvasId, containerEl, options){
1753    const canvas = document.getElementById(canvasId);
1754    if(!canvas || !containerEl) return;
1755    const ctx = canvas.getContext('2d');
1756    const density = options.density || 4500;
1757    const maxCount = options.maxCount || 130;
1758    const connectDist = options.connectDist || 115;
1759    const lineOpacity = options.lineOpacity || 0.16;
1760    const showLines = options.showLines !== false; // defaults to true unless explicitly disabled
1761    let particles = [];
1762    let mouse = { x: -9999, y: -9999, active: false };
1763    let dpr = Math.min(window.devicePixelRatio || 1, 2);
1764
1765    function resize(){
1766      const rect = containerEl.getBoundingClientRect();
1767      canvas.width = rect.width * dpr;
1768      canvas.height = rect.height * dpr;
1769      canvas.style.width = rect.width + 'px';
1770      canvas.style.height = rect.height + 'px';
1771      ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
1772      buildParticles(rect.width, rect.height);
1773    }
1774
1775    function buildParticles(w, h){
1776      const count = Math.min(maxCount, Math.round((w * h) / density));
1777      particles = [];
1778      for(let i = 0; i < count; i++){
1779        const hx = Math.random() * w;
1780        const hy = Math.random() * h;
1781        particles.push({
1782          hx, hy, x: hx, y: hy,
1783          vx: 0, vy: 0,
1784          r: Math.random() * 2.1 + 0.7,
1785          baseOpacity: 0.12 + Math.random() * 0.35,
1786          tint: (() => { const q = Math.random();
1787            return q < 0.6 ? [244,244,244] : q < 0.82 ? [255,222,196] : q < 0.93 ? [255,176,122] : [253,100,32]; })()
1788        });
1789      }
1790    }
1791
1792    function tick(){
1793      const w = canvas.width / dpr, h = canvas.height / dpr;
1794      ctx.clearRect(0, 0, w, h);
1795
1796      particles.forEach(p => {
1797        // cursor repulsion — the only thing that gives particles velocity/momentum
1798        if(mouse.active){
1799          const dx = p.x - mouse.x, dy = p.y - mouse.y;
1800          const dist = Math.sqrt(dx*dx + dy*dy) || 1;
1801          const radius = 90;
1802          if(dist < radius){
1803            const force = (1 - dist / radius) * 2.2;
1804            p.vx += (dx / dist) * force;
1805            p.vy += (dy / dist) * force;
1806          }
1807        }
1808        // heavy damping so any repulsion impulse dies out quickly rather than oscillating
1809        p.vx *= 0.82; p.vy *= 0.82;
1810        p.x += p.vx; p.y += p.vy;
1811        // critically-damped ease back to home — a direct glide, no spring overshoot
1812        p.x += (p.hx - p.x) * 0.06;
1813        p.y += (p.hy - p.y) * 0.06;
1814      });
1815
1816      // connecting lines between nearby particles — closer pairs read more solid
1817      if(showLines){
1818        for(let i = 0; i < particles.length; i++){
1819          for(let j = i + 1; j < particles.length; j++){
1820            const a = particles[i], b = particles[j];
1821            const dx = a.x - b.x, dy = a.y - b.y;
1822            const dist = Math.sqrt(dx*dx + dy*dy);
1823            if(dist < connectDist){
1824              const op = (1 - dist / connectDist) * lineOpacity;
1825              ctx.beginPath();
1826              ctx.moveTo(a.x, a.y);
1827              ctx.lineTo(b.x, b.y);
1828              ctx.strokeStyle = `rgba(244,244,244,${op.toFixed(3)})`;
1829              ctx.lineWidth = 0.6;
1830              ctx.stroke();
1831            }
1832          }
1833        }
1834      }
1835
1836      particles.forEach(p => {
1837        ctx.beginPath();
1838        ctx.arc(p.x, p.y, p.r, 0, Math.PI * 2);
1839        ctx.fillStyle = `rgba(${p.tint[0]},${p.tint[1]},${p.tint[2]},${p.baseOpacity})`;
1840        ctx.fill();
1841      });
1842
1843    }
1844
1845    containerEl.addEventListener('mousemove', (e) => {
1846      const rect = containerEl.getBoundingClientRect();
1847      mouse.x = e.clientX - rect.left;
1848      mouse.y = e.clientY - rect.top;
1849      mouse.active = true;
1850    });
1851    containerEl.addEventListener('mouseleave', () => { mouse.active = false; });
1852
1853    window.addEventListener('resize', resize);
1854    resize();
1855    gateLoop(tick, containerEl);
1856  }
1857
1858  initParticleField('footParticles', document.querySelector('footer'), { density: 3200, maxCount: 170, connectDist: 120, lineOpacity: 0.18 });
1859  initParticleField('photoConstellation', document.querySelector('.photo-band'), { density: 5500, maxCount: 90, showLines: true, connectDist: 100, lineOpacity: 0.22 });
1860  initParticleField('signalParticles', document.querySelector('.signal'), { density: 6000, maxCount: 70, showLines: false });
1861  initParticleField('securityParticles', document.querySelector('.security-section'), { density: 4200, maxCount: 130, showLines: true, connectDist: 110, lineOpacity: 0.2 });
1862
1863
1864
1865
1866  // Tilt hover on news cards — delegated on the grid so it survives filter re-renders
1867  const newsGridEl = document.getElementById('newsGrid');
1868  const TILT_MAX = 9; // degrees
1869  newsGridEl.addEventListener('mousemove', (e) => {
1870    if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
1871    const hovered = e.target.closest('.ncard');
1872    newsGridEl.querySelectorAll('.ncard').forEach(card => {
1873      if(card === hovered){
1874        const rect = card.getBoundingClientRect();
1875        const px = (e.clientX - rect.left) / rect.width;  // 0..1 across the card
1876        const py = (e.clientY - rect.top) / rect.height;
1877        const rotY = (px - 0.5) * TILT_MAX * 2;   // left/right tilt
1878        const rotX = (0.5 - py) * TILT_MAX * 2;   // up/down tilt
1879        card.style.transition = 'transform .08s linear';
1880        card.style.transform = `perspective(700px) rotateX(${rotX.toFixed(2)}deg) rotateY(${rotY.toFixed(2)}deg) scale(1.02)`;
1881        card.style.boxShadow = `${(-rotY*1.4).toFixed(1)}px ${(rotX*1.4+14).toFixed(1)}px 26px -14px rgba(13,17,23,0.35)`;
1882      } else {
1883        card.style.transition = 'transform .4s cubic-bezier(.16,.8,.3,1), box-shadow .4s ease';
1884        card.style.transform = 'perspective(700px) rotateX(0) rotateY(0) scale(1)';
1885        card.style.boxShadow = 'none';
1886      }
1887    });
1888  });
1889  newsGridEl.addEventListener('mouseleave', () => {
1890    newsGridEl.querySelectorAll('.ncard').forEach(card => {
1891      card.style.transition = 'transform .4s cubic-bezier(.16,.8,.3,1), box-shadow .4s ease';
1892      card.style.transform = 'perspective(700px) rotateX(0) rotateY(0) scale(1)';
1893      card.style.boxShadow = 'none';
1894    });
1895  });
1896
1897
1898  // Testimonial carousel — data-driven so more quotes can be dropped in later.
1899  // photo: TBD per account whether this becomes a real customer photo or the company logo
1900  // (still open for Whalechip, Ambiq, and Andes Technologies — quotes below are confirmed).
1901  // Every slide links back to the on-page Newsroom/press section (#news) rather than an external site.
1902
1903  const testimonials = [
1904    { id:'whalechip', company:'Whalechip', photo:'/redesign/assets/customers/whalechip.avif', name:'Thomas Tsai', role:'CEO',
1905      quote:"As a company with hands-on 3DIC and Wafer-on-Wafer mass production experience, ChipAgents enabled us to <mark>isolate design bugs significantly faster</mark> … a capability that will only grow more important as 3D stacked die interactions introduce ever-greater debugging complexity.",
1906      stat:'Days → 15–60 min', statLabel:'Root-cause analysis per round, with a 100% hit rate' },
1907    { id:'ememory', company:'eMemory', photo:'/redesign/assets/customers/ememory.avif', name:'Max Yeh', role:'CAD Director',
1908      quote:"ChipAgents has gone beyond serving as an AI evaluator for eMemory’s behavioral model … It has also enabled our engineers to <mark>significantly enhance the quality and reliability of our IP datasheets</mark>.",
1909      stat:'4 days → 5 hours', statLabel:'80% less functional-model verification effort' },
1910    { id:'andes', company:'Andes Technology', photo:'/redesign/assets/customers/andes.avif', name:'Yung-Ching Hsiao', role:'Senior VP of R&D',
1911      quote:"As processor architectures continue to evolve, both customization and verification are becoming increasingly resource-intensive. ChipAgents helps our teams <mark>reduce manual effort across multiple engineering workflows</mark> … while maintaining the quality and correctness required for production processor designs.",
1912      stat:'2–3 months → ~3 weeks', statLabel:'Bus interface unit verification' },
1913    { id:'ambiq', company:'Ambiq', photo:'/redesign/assets/customers/ambiq.avif', name:'Raghuram Tupuri', role:'Executive Vice President of Engineering',
1914      quote:"Ambiq's leadership in Edge AI has always been driven by a relentless focus on innovation … As semiconductor designs become increasingly complex, we chose ChipAgents to <mark>help our engineering teams innovate faster</mark> while maintaining the quality our customers expect.",
1915      stat:'Expanded', statLabel:'Deployment to additional engineering teams after evaluation' }
1916  ];
1917  (function(){
1918    const track = document.getElementById('testimonialTrack');
1919    const tabs = document.getElementById('testimonialTabs');
1920    const root = document.getElementById('testimonialCarousel');
1921    if(!track || !tabs || !root) return;
1922    const MS = 6500;
1923    let active = 0, timer = null, frame = null, startedAt = null, remaining = MS;
1924    track.innerHTML = testimonials.map((t, i) => `
1925      <figure class="testimonial-slide cv-slide${i===0 ? ' active' : ''}" data-index="${i}">
1926        <figcaption class="cv-who" data-leak="${['/redesign/assets/lightleak-6-web.avif','/redesign/assets/lightleak-3-web.avif','/redesign/assets/lightleak-5-web.avif','/redesign/assets/lightleak-4-web.avif'][i % 4]}">
1927          <div class="testimonial-company">${t.company}</div>
1928          <div>
1929            <div class="testimonial-name">${t.name}</div>
1930            <div class="testimonial-role">${t.role}</div>
1931          </div>
1932        </figcaption>
1933        <blockquote class="testimonial-quote cv-quote">${t.quote}</blockquote>
1934      </figure>`).join('');
1935    tabs.innerHTML = testimonials.map((t, i) => `
1936      <button class="testimonial-tab${i===0 ? ' active' : ''}" type="button" data-index="${i}" aria-label="Show ${t.company}">
1937        <span class="fill"></span><span class="tab-co">${t.company}</span>
1938      </button>`).join('');
1939    const slides = track.querySelectorAll('.testimonial-slide');
1940    const tabEls = tabs.querySelectorAll('.testimonial-tab');
1941    function activateLeak(i){
1942      const who = slides[i]?.querySelector('.cv-who');
1943      if (!who || who.style.getPropertyValue('--leak')) return;
1944      who.style.setProperty('--leak', `url("${who.dataset.leak}")`);
1945    }
1946    activateLeak(0);
1947    function stop(){
1948      clearTimeout(timer);
1949      cancelAnimationFrame(frame);
1950      timer = frame = null;
1951      startedAt = null;
1952    }
1953    function go(i){
1954      stop();
1955      remaining = MS;
1956      active = i;
1957      activateLeak(i);
1958      slides.forEach((s, k) => s.classList.toggle('active', k === i));
1959      tabEls.forEach((t, k) => { t.classList.toggle('active', k === i); t.classList.remove('is-frozen'); const f = t.querySelector('.fill'); f.style.transition = 'none'; f.style.width = '0%'; });
1960    }
1961    function pause(){
1962      if (timer === null && frame === null) return;
1963      const indicator = tabEls[active].querySelector('.fill');
1964      const width = getComputedStyle(indicator).width;
1965      if (startedAt !== null) remaining = Math.max(0, remaining - (performance.now() - startedAt));
1966      stop();
1967      indicator.style.transition = 'none';
1968      indicator.style.width = width;
1969    }
1970    function start(){
1971      if (timer !== null || frame !== null || document.hidden || window.redesignTestimonialPaused || root.matches(':hover') || root.contains(document.activeElement)) return;
1972      if (remaining <= 0) { go((active + 1) % testimonials.length); }
1973      tabEls[active].classList.remove('is-frozen');
1974      const indicator = tabEls[active].querySelector('.fill');
1975      frame = requestAnimationFrame(() => {
1976        frame = null;
1977        if (document.hidden) return;
1978        indicator.style.transition = 'width ' + remaining + 'ms linear';
1979        indicator.style.width = '100%';
1980        startedAt = performance.now();
1981        timer = setTimeout(() => {
1982          if (document.hidden) { pause(); return; }
1983          go((active + 1) % testimonials.length);
1984          start();
1985        }, remaining);
1986      });
1987    }
1988    root.addEventListener('mouseenter', pause);
1989    root.addEventListener('mouseleave', start);
1990    root.addEventListener('focusin', pause);
1991    root.addEventListener('focusout', () => queueMicrotask(start));
1992    tabEls.forEach(t => t.addEventListener('click', () => { go(+t.dataset.index); t.classList.add('is-frozen'); start(); }));
1993    document.addEventListener('visibilitychange', () => document.hidden ? pause() : start());
1994    window.addEventListener('pagehide', pause);
1995    window.addEventListener('pageshow', start);
1996    start();
1997  })();
1998
1999  if (window.initNebula) initNebula(document.getElementById('signalNebula'), { intensity: 1.35 });
2000
2001  // Scroll progress + hero parallax, both on one rAF-throttled pass
2002  (function(){
2003    const rail = document.getElementById('scrollRail');
2004    const heroImg = document.querySelector('.hero-media img');
2005    const reduced = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
2006    let queued = false;
2007    function apply(){
2008      queued = false;
2009      const max = document.documentElement.scrollHeight - window.innerHeight;
2010      if (rail) rail.style.width = (max > 0 ? (window.scrollY / max) * 100 : 0).toFixed(2) + '%';
2011      if (heroImg && !reduced) {
2012        const y = Math.min(window.scrollY, 900) * 0.12;
2013        heroImg.style.transform = 'scale(1.08) translateY(' + (-y) + 'px)';
2014      }
2015    }
2016    window.addEventListener('scroll', () => { if (!queued) { queued = true; requestAnimationFrame(apply); } }, { passive: true });
2017    window.addEventListener('resize', apply);
2018    apply();
2019  })();
2020
2021  // People rail: pointer drag, arrow paging, ends disabled
2022  (function(){
2023    const rail = document.getElementById('peopleRail');
2024    if(!rail) return;
2025    const arrows = rail.parentElement.querySelectorAll('.pp-arrow');
2026    function sync(){
2027      const FADE = window.matchMedia('(max-width: 560px)').matches ? 48 : 88;
2028      const max = rail.scrollWidth - rail.clientWidth - 2;
2029      const atStart = rail.scrollLeft <= 2, atEnd = rail.scrollLeft >= max;
2030      if(arrows.length){
2031        arrows[0].disabled = atStart;
2032        arrows[1].disabled = atEnd;
2033      }
2034      rail.style.setProperty('--fade-l', atStart ? '0px' : FADE + 'px');
2035      rail.style.setProperty('--fade-r', atEnd ? '0px' : FADE + 'px');
2036    }
2037    arrows.forEach(btn => btn.addEventListener('click', () => {
2038      rail.scrollBy({ left: Number(btn.dataset.dir) * rail.clientWidth * 0.75, behavior: 'smooth' });
2039    }));
2040
2041    let down = false, startX = 0, startScroll = 0, moved = 0;
2042    rail.addEventListener('pointerdown', (e) => {
2043      moved = 0;
2044      if(e.pointerType === 'touch') return;      // native touch scrolling is better
2045      down = true;
2046      startX = e.clientX; startScroll = rail.scrollLeft;
2047    });
2048    rail.addEventListener('pointermove', (e) => {
2049      if(!down) return;
2050      const dx = e.clientX - startX;
2051      moved = Math.max(moved, Math.abs(dx));
2052      if(moved <= 6) return;
2053      if(!rail.hasPointerCapture(e.pointerId)) rail.setPointerCapture(e.pointerId);
2054      rail.classList.add('is-dragging');
2055      rail.scrollLeft = startScroll - dx;
2056    });
2057    function release(e){
2058      if(!down) return;
2059      down = false;
2060      rail.classList.remove('is-dragging');
2061      if(e && rail.hasPointerCapture && rail.hasPointerCapture(e.pointerId)) rail.releasePointerCapture(e.pointerId);
2062    }
2063    rail.addEventListener('pointerup', release);
2064    rail.addEventListener('pointercancel', release);
2065    rail.addEventListener('dragstart', (e) => e.preventDefault());
2066    rail.addEventListener('click', (e) => { if(moved > 6) e.preventDefault(); }, true);
2067
2068    rail.addEventListener('scroll', sync, { passive: true });
2069    window.addEventListener('resize', sync);
2070    window.addEventListener('load', () => { if(rail.scrollLeft < 40) rail.scrollLeft = 0; sync(); });
2071    // the 18 portraits carry no intrinsic size, so the track width is only final post-decode
2072    const track = rail.querySelector('.pp-track');
2073    if(track && typeof ResizeObserver !== 'undefined') new ResizeObserver(sync).observe(track);
2074    sync();
2075  })();
2076
2077  // Book a demo orbit system leans with the cursor
2078
2079  // Book a demo backdrop: flow channels converge on the form
2080  (function(){
2081    const cv = document.getElementById('ctaFlow'), host = document.getElementById('book-a-demo');
2082    if(cv && host && window.initGatewayFlow){
2083      initGatewayFlow(cv, host, { paths: 40, speed: 0.6, target: () => host.querySelector('.demo-form') });
2084    }
2085  })();
2086
2087  // IC-star orbital field: Kepler ellipses plus the core's drift, so each
2088  // body's real track through space is a helix
2089  (function(){
2090    const cv = document.getElementById('orbitalField');
2091    if(cv && window.initOrbital) initOrbital(cv, { focus: [0.62, 0.5], viewRadius: 1.95, glow: 1.05, starCount: 520 });
2092  })();
2093
2094
2095  // Scroll-triggered reveals
2096  function countUpStat(el, delay){
2097    const raw = el.textContent.trim();
2098    const match = raw.match(/^([^\d]*)([\d.]+)(.*)$/);
2099    if(!match){ return; } // no number found, leave text as-is
2100    const prefix = match[1], target = parseFloat(match[2]), suffix = match[3];
2101    const decimals = match[2].includes('.') ? match[2].split('.')[1].length : 0;
2102    const duration = 1100;
2103    setTimeout(() => {
2104      const start = performance.now();
2105      function tick(now){
2106        const t = Math.min(1, (now - start) / duration);
2107        const eased = 1 - Math.pow(1 - t, 3); // ease-out cubic
2108        const current = target * eased;
2109        el.textContent = prefix + current.toFixed(decimals) + suffix;
2110        if(t < 1) requestAnimationFrame(tick);
2111        else el.textContent = raw; // land exactly on the original string
2112      }
2113      requestAnimationFrame(tick);
2114    }, delay);
2115  }
2116
2117  const revealObserver = new IntersectionObserver((entries) => {
2118    entries.forEach(entry => {
2119      if(entry.isIntersecting){
2120        entry.target.classList.add('is-visible');
2121        // if this reveal contains stat numbers, count them up in sync with the stagger delay
2122        const nums = entry.target.querySelectorAll('.n');
2123        nums.forEach((el, i) => countUpStat(el, i * 80));
2124        revealObserver.unobserve(entry.target); // animate in once, don't re-trigger on scroll-back
2125      }
2126    });
2127  }, { threshold: 0.15, rootMargin: '0px 0px -60px 0px' });
2128
2129  document.querySelectorAll('.reveal, .reveal-stagger').forEach(el => revealObserver.observe(el));
2130
2131  // Stat carousel: autoplays; dots jump directly to a stat
2132  (function(){
2133    const root = document.getElementById('statCarousel');
2134    if(!root) return;
2135    const slides = Array.from(root.querySelectorAll('.stat-slide'));
2136    const dotWrap = document.getElementById('statDots');
2137    let i = 0, timer = null;
2138    const dots = slides.map((_, n) => {
2139      const b = document.createElement('button');
2140      b.type = 'button';
2141      b.setAttribute('aria-label', 'Show stat ' + (n + 1));
2142      b.addEventListener('click', () => { go(n); restart(); });
2143      dotWrap.appendChild(b);
2144      return b;
2145    });
2146    function go(n){
2147      i = (n + slides.length) % slides.length;
2148      slides.forEach((s, k) => s.classList.toggle('is-active', k === i));
2149      dots.forEach((d, k) => d.classList.toggle('is-active', k === i));
2150    }
2151    function restart(){
2152      clearInterval(timer);
2153      if (window.redesignStatPaused || root.querySelector(':focus-visible')) return;
2154      timer = setInterval(() => { if (!window.redesignStatPaused) go(i + 1); }, 4000);
2155    }
2156    root.addEventListener('focusin', () => queueMicrotask(restart));
2157    root.addEventListener('focusout', () => queueMicrotask(restart));
2158    go(0);
2159    restart();
2160  })();
2161
2162
2163</script>
vendor: 1 bytes, line 2163
2163
2164<script src="/redesign/accessibility.js" defer></script>
2164<script src="/redesign/demo-form.js" defer></script>
2164</body>
2165</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.