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">→</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 & 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 & 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 & 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 & 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">←</button> 1235 <button type="button" class="pp-arrow" data-dir="1" aria-label="More people">→</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">→</em></a> 1251 <a href="/blogs"><span>Blog</span><em aria-hidden="true">→</em></a> 1252 <a href="/video-center"><span>Video center</span><em aria-hidden="true">→</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 & 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.