Browse Source

feat: implement interactive copilot orb and particle canvas components for the hero section

master
sina_sajjadi 1 week ago
parent
commit
78e37d2199
  1. 52
      app/globals.css
  2. 109
      components/copilot/AnimatedCopilotOrb.tsx
  3. 3281
      components/copilot/CopilotParticleCanvas.tsx
  4. 2
      components/sections/AiCopilotSection.tsx

52
app/globals.css

@ -215,37 +215,6 @@ body {
} }
} }
/* 9. Particle Constellation A: Continuous smooth orbital drift around orb */
@keyframes particlesMotionA {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
/* 10. Particle Constellation B: Continuous counter-orbital drift with gentle shimmer */
@keyframes particlesMotionB {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(-360deg);
}
}
/* 11. Particle Constellation C: Continuous floating wave */
@keyframes particlesMotionC {
0%, 100% {
transform: translate(0px, 0px);
opacity: 0.7;
}
50% {
transform: translate(-8px, 10px);
opacity: 1;
}
}
/* Animation Utility Classes - Constant velocity & uninterrupted flow */ /* Animation Utility Classes - Constant velocity & uninterrupted flow */
.animate-orbit-ring { .animate-orbit-ring {
@ -290,24 +259,3 @@ body {
transform-origin: 637.492px 421.5px; transform-origin: 637.492px 421.5px;
will-change: transform, opacity; will-change: transform, opacity;
} }
.animate-particles-a {
animation: particlesMotionA 24s linear infinite;
transform-origin: 637.492px 421.5px;
will-change: transform;
}
.animate-particles-b {
animation: particlesMotionB 30s linear infinite;
transform-origin: 637.492px 421.5px;
will-change: transform;
}
.animate-particles-c {
animation: particlesMotionC 6s ease-in-out infinite;
will-change: transform, opacity;
}

109
components/copilot/AnimatedCopilotOrb.tsx

@ -109,115 +109,6 @@ export function AnimatedCopilotOrb() {
</g> </g>
</g> </g>
</g> </g>
{/* Constellation of 98 Dynamic Particles */}
<g id="particles-constellation">
<g className="animate-particles-a">
<path d="M775.676 409.65C775.145 409.698 774.753 410.168 774.801 410.699C774.849 411.23 775.319 411.622 775.85 411.574C776.382 411.526 776.773 411.056 776.725 410.525C776.677 409.993 776.207 409.602 775.676 409.65Z" fill="#9DB2D1"/>
<path d="M720.653 455.369C720.121 455.418 719.73 455.887 719.778 456.419C719.826 456.95 720.296 457.342 720.827 457.294C721.358 457.245 721.75 456.776 721.702 456.244C721.654 455.713 721.184 455.321 720.653 455.369Z" fill="#9DB2D1"/>
<path opacity="0.3" d="M649.028 446.344C648.496 446.392 648.105 446.862 648.153 447.393C648.201 447.924 648.671 448.316 649.202 448.268C649.733 448.219 650.125 447.75 650.077 447.218C650.029 446.687 649.559 446.295 649.028 446.344Z" fill="#9DB2D1"/>
<path d="M611.239 457.532C610.707 457.58 610.316 458.05 610.364 458.581C610.412 459.112 610.882 459.504 611.413 459.456C611.944 459.407 612.336 458.938 612.288 458.406C612.24 457.875 611.77 457.483 611.239 457.532Z" fill="#9DB2D1"/>
<path opacity="0.5" d="M582.028 477.636C581.496 477.684 581.105 478.154 581.153 478.685C581.201 479.217 581.671 479.608 582.202 479.56C582.733 479.512 583.125 479.042 583.077 478.511C583.029 477.98 582.559 477.588 582.028 477.636Z" fill="#9DB2D1"/>
<path d="M507.965 441.677C507.434 441.725 507.042 442.195 507.09 442.726C507.138 443.257 507.608 443.649 508.14 443.601C508.671 443.552 509.063 443.083 509.014 442.551C508.966 442.02 508.496 441.628 507.965 441.677Z" fill="#9DB2D1"/>
<path d="M895.082 519.379C894.551 519.427 894.159 519.897 894.208 520.428C894.256 520.959 894.725 521.351 895.257 521.303C895.788 521.255 896.18 520.785 896.132 520.254C896.083 519.722 895.614 519.331 895.082 519.379Z" fill="#9DB2D1"/>
<path d="M479.106 465.631C478.574 465.679 478.183 466.149 478.231 466.68C478.279 467.212 478.749 467.603 479.28 467.555C479.811 467.507 480.203 467.037 480.155 466.506C480.107 465.975 479.637 465.583 479.106 465.631Z" fill="#9DB2D1"/>
<path d="M450.332 447.874C449.801 447.922 449.409 448.392 449.458 448.923C449.506 449.454 449.975 449.846 450.507 449.798C451.038 449.75 451.43 449.28 451.382 448.749C451.333 448.217 450.864 447.826 450.332 447.874Z" fill="#9DB2D1"/>
<path d="M840.239 404.535C839.707 404.583 839.316 405.052 839.364 405.584C839.412 406.115 839.882 406.507 840.413 406.459C840.944 406.41 841.336 405.941 841.288 405.409C841.24 404.878 840.77 404.486 840.239 404.535Z" fill="#9DB2D1"/>
<path d="M333.637 476.901C333.106 476.949 332.714 477.419 332.762 477.95C332.81 478.482 333.28 478.873 333.811 478.825C334.343 478.777 334.734 478.307 334.686 477.776C334.638 477.245 334.168 476.853 333.637 476.901Z" fill="#9DB2D1"/>
<path opacity="0.5" d="M257.035 423.707C256.504 423.756 256.112 424.225 256.161 424.757C256.209 425.288 256.679 425.68 257.21 425.631C257.741 425.583 258.133 425.113 258.085 424.582C258.037 424.051 257.567 423.659 257.035 423.707Z" fill="#9DB2D1"/>
<path d="M220.746 504.59C220.215 504.638 219.823 505.108 219.872 505.639C219.92 506.17 220.389 506.562 220.921 506.514C221.452 506.466 221.844 505.996 221.796 505.464C221.747 504.933 221.278 504.542 220.746 504.59Z" fill="#9DB2D1"/>
<path d="M807.176 490.225C806.645 490.273 806.253 490.743 806.301 491.274C806.349 491.805 806.819 492.197 807.35 492.149C807.882 492.101 808.273 491.631 808.225 491.1C808.177 490.568 807.707 490.177 807.176 490.225Z" fill="#9DB2D1"/>
<path opacity="0.3" d="M3.21513 580.391C2.68382 580.439 2.29216 580.909 2.34032 581.44C2.38849 581.971 2.85824 582.363 3.38955 582.315C3.92085 582.267 4.31252 581.797 4.26435 581.266C4.21619 580.734 3.74643 580.343 3.21513 580.391Z" fill="#9DB2D1"/>
<path d="M69.8167 444.558C69.2854 444.606 68.8937 445.076 68.9419 445.607C68.9901 446.138 69.4598 446.53 69.9911 446.482C70.5224 446.434 70.9141 445.964 70.8659 445.433C70.8178 444.901 70.348 444.51 69.8167 444.558Z" fill="#9DB2D1"/>
<path d="M0.879191 493.321C0.347885 493.369 -0.0437781 493.839 0.00438636 494.37C0.0525508 494.901 0.522304 495.293 1.05361 495.245C1.58492 495.197 1.97658 494.727 1.92842 494.195C1.88025 493.664 1.4105 493.272 0.879191 493.321Z" fill="#9DB2D1"/>
<path d="M1189.32 316.418C1188.78 316.418 1188.35 316.85 1188.35 317.384C1188.35 317.917 1188.78 318.35 1189.32 318.35C1189.85 318.35 1190.28 317.917 1190.28 317.384C1190.28 316.85 1189.85 316.418 1189.32 316.418Z" fill="#9DB2D1"/>
<path d="M1130.39 391.762C1129.85 391.762 1129.42 392.194 1129.42 392.728C1129.42 393.261 1129.85 393.694 1130.39 393.694C1130.92 393.694 1131.35 393.261 1131.35 392.728C1131.35 392.194 1130.92 391.762 1130.39 391.762Z" fill="#9DB2D1"/>
<path d="M1081.13 362.783C1080.59 362.783 1080.16 363.215 1080.16 363.749C1080.16 364.282 1080.59 364.715 1081.13 364.715C1081.66 364.715 1082.09 364.282 1082.09 363.749C1082.09 363.215 1081.66 362.783 1081.13 362.783Z" fill="#9DB2D1"/>
<path opacity="0.5" d="M1036.7 345.399C1036.16 345.399 1035.73 345.832 1035.73 346.365C1035.73 346.899 1036.16 347.331 1036.7 347.331C1037.23 347.331 1037.66 346.899 1037.66 346.365C1037.66 345.832 1037.23 345.399 1036.7 345.399Z" fill="#9DB2D1"/>
<path opacity="0.3" d="M1298.42 424.623C1297.88 424.623 1297.45 425.056 1297.45 425.589C1297.45 426.123 1297.88 426.555 1298.42 426.555C1298.95 426.555 1299.38 426.123 1299.38 425.589C1299.38 425.056 1298.95 424.623 1298.42 424.623Z" fill="#9DB2D1"/>
<path d="M955.55 302.892C955.016 302.892 954.584 303.325 954.584 303.858C954.584 304.392 955.016 304.824 955.55 304.824C956.083 304.824 956.516 304.392 956.516 303.858C956.516 303.325 956.083 302.892 955.55 302.892Z" fill="#9DB2D1"/>
<path opacity="0.3" d="M942.034 428.47C941.501 428.47 941.068 428.903 941.068 429.436C941.068 429.97 941.501 430.402 942.034 430.402C942.568 430.402 943 429.97 943 429.436C943 428.903 942.568 428.47 942.034 428.47Z" fill="#9DB2D1"/>
<path d="M920.776 391.762C920.243 391.762 919.81 392.195 919.81 392.728C919.81 393.262 920.243 393.694 920.776 393.694C921.31 393.694 921.742 393.262 921.742 392.728C921.742 392.195 921.31 391.762 920.776 391.762Z" fill="#9DB2D1"/>
<path d="M858.956 385.97C858.422 385.97 857.99 386.402 857.99 386.936C857.99 387.469 858.422 387.902 858.956 387.902C859.489 387.902 859.922 387.469 859.922 386.936C859.922 386.402 859.489 385.97 858.956 385.97Z" fill="#9DB2D1"/>
<path d="M813.518 312.572C812.985 312.572 812.552 313.004 812.552 313.538C812.552 314.071 812.985 314.504 813.518 314.504C814.052 314.504 814.484 314.071 814.484 313.538C814.484 313.004 814.052 312.572 813.518 312.572Z" fill="#9DB2D1"/>
<path d="M743.003 297.117C742.469 297.117 742.037 297.549 742.037 298.083C742.037 298.616 742.469 299.049 743.003 299.049C743.536 299.049 743.969 298.616 743.969 298.083C743.969 297.549 743.536 297.117 743.003 297.117Z" fill="#9DB2D1"/>
<path d="M704.37 304.848C703.836 304.848 703.404 305.28 703.404 305.814C703.404 306.347 703.836 306.78 704.37 306.78C704.903 306.78 705.336 306.347 705.336 305.814C705.336 305.28 704.903 304.848 704.37 304.848Z" fill="#9DB2D1"/>
<path d="M625.182 349.282C624.649 349.282 624.217 349.714 624.217 350.248C624.217 350.781 624.649 351.214 625.182 351.214C625.716 351.214 626.148 350.781 626.148 350.248C626.148 349.714 625.716 349.282 625.182 349.282Z" fill="#9DB2D1"/>
<path opacity="0.3" d="M574.948 293.253C574.415 293.253 573.982 293.686 573.982 294.219C573.982 294.753 574.415 295.185 574.948 295.185C575.482 295.185 575.914 294.753 575.914 294.219C575.914 293.686 575.482 293.253 574.948 293.253Z" fill="#9DB2D1"/>
<path d="M538.245 287.459C537.711 287.459 537.279 287.892 537.279 288.425C537.279 288.959 537.711 289.391 538.245 289.391C538.778 289.391 539.211 288.959 539.211 288.425C539.211 287.892 538.778 287.459 538.245 287.459Z" fill="#9DB2D1"/>
<path d="M465.182 396.97C464.649 396.97 464.217 397.403 464.217 397.936C464.217 398.47 464.649 398.902 465.182 398.902C465.716 398.902 466.148 398.47 466.148 397.936C466.148 397.403 465.716 396.97 465.182 396.97Z" fill="#9DB2D1"/>
</g>
<g className="animate-particles-b">
<path d="M745.121 490.012C744.59 490.06 744.198 490.529 744.247 491.061C744.295 491.592 744.764 491.984 745.296 491.936C745.827 491.887 746.219 491.418 746.171 490.886C746.122 490.355 745.653 489.963 745.121 490.012Z" fill="#9DB2D1"/>
<path d="M710.075 434.993C709.543 435.041 709.152 435.51 709.2 436.042C709.248 436.573 709.718 436.965 710.249 436.917C710.78 436.868 711.172 436.399 711.124 435.867C711.076 435.336 710.606 434.944 710.075 434.993Z" fill="#9DB2D1"/>
<path opacity="0.3" d="M636.348 434.889C635.817 434.937 635.425 435.406 635.473 435.938C635.521 436.469 635.991 436.861 636.522 436.813C637.054 436.764 637.445 436.295 637.397 435.763C637.349 435.232 636.879 434.84 636.348 434.889Z" fill="#9DB2D1"/>
<path d="M588.051 533.346C587.52 533.394 587.128 533.864 587.176 534.395C587.224 534.927 587.694 535.318 588.225 535.27C588.757 535.222 589.148 534.752 589.1 534.221C589.052 533.69 588.582 533.298 588.051 533.346Z" fill="#9DB2D1"/>
<path d="M536.371 508.936C535.84 508.985 535.448 509.454 535.497 509.986C535.545 510.517 536.014 510.909 536.546 510.86C537.077 510.812 537.469 510.342 537.421 509.811C537.372 509.28 536.903 508.888 536.371 508.936Z" fill="#9DB2D1"/>
<path d="M511.457 480.158C510.926 480.206 510.534 480.676 510.583 481.207C510.631 481.739 511.1 482.13 511.632 482.082C512.163 482.034 512.555 481.564 512.507 481.033C512.458 480.502 511.989 480.11 511.457 480.158Z" fill="#9DB2D1"/>
<path d="M894.309 475.806C893.778 475.855 893.386 476.324 893.434 476.856C893.482 477.387 893.952 477.779 894.483 477.731C895.015 477.682 895.406 477.213 895.358 476.681C895.31 476.15 894.84 475.758 894.309 475.806Z" fill="#9DB2D1"/>
<path opacity="0.5" d="M454.825 347.558C454.293 347.607 453.902 348.076 453.95 348.608C453.998 349.139 454.468 349.531 454.999 349.482C455.53 349.434 455.922 348.965 455.874 348.433C455.826 347.902 455.356 347.51 454.825 347.558Z" fill="#9DB2D1"/>
<path d="M408.379 380.872C407.848 380.921 407.456 381.39 407.504 381.922C407.553 382.453 408.022 382.845 408.554 382.796C409.085 382.748 409.477 382.279 409.428 381.747C409.38 381.216 408.91 380.824 408.379 380.872Z" fill="#9DB2D1"/>
<path opacity="0.3" d="M377.809 461.256C377.278 461.304 376.886 461.774 376.934 462.305C376.982 462.836 377.452 463.228 377.983 463.18C378.515 463.132 378.906 462.662 378.858 462.131C378.81 461.599 378.34 461.208 377.809 461.256Z" fill="#9DB2D1"/>
<path d="M308.715 448.123C308.184 448.172 307.792 448.641 307.84 449.173C307.888 449.704 308.358 450.096 308.89 450.047C309.421 449.999 309.813 449.529 309.764 448.998C309.716 448.467 309.246 448.075 308.715 448.123Z" fill="#9DB2D1"/>
<path d="M817.59 476.675C817.059 476.723 816.667 477.193 816.715 477.724C816.763 478.256 817.233 478.647 817.765 478.599C818.296 478.551 818.688 478.081 818.639 477.55C818.591 477.019 818.121 476.627 817.59 476.675Z" fill="#9DB2D1"/>
<path opacity="0.5" d="M214.723 448.88C214.192 448.928 213.8 449.398 213.848 449.929C213.896 450.461 214.366 450.852 214.897 450.804C215.429 450.756 215.82 450.286 215.772 449.755C215.724 449.224 215.254 448.832 214.723 448.88Z" fill="#9DB2D1"/>
<path d="M124.457 501.683C123.926 501.731 123.534 502.201 123.583 502.732C123.631 503.263 124.1 503.655 124.632 503.607C125.163 503.559 125.555 503.089 125.507 502.558C125.458 502.026 124.989 501.635 124.457 501.683Z" fill="#9DB2D1"/>
<path opacity="0.5" d="M99.9729 467.048C99.4416 467.096 99.05 467.566 99.0981 468.097C99.1463 468.628 99.6161 469.02 100.147 468.972C100.679 468.924 101.07 468.454 101.022 467.923C100.974 467.391 100.504 467 99.9729 467.048Z" fill="#9DB2D1"/>
<path d="M55.5511 501.139C55.0198 501.187 54.6281 501.657 54.6763 502.188C54.7244 502.72 55.1942 503.111 55.7255 503.063C56.2568 503.015 56.6485 502.545 56.6003 502.014C56.5521 501.483 56.0824 501.091 55.5511 501.139Z" fill="#9DB2D1"/>
<path d="M1235.68 333.806C1235.15 333.806 1234.72 334.239 1234.72 334.772C1234.72 335.306 1235.15 335.738 1235.68 335.738C1236.22 335.738 1236.65 335.306 1236.65 334.772C1236.65 334.239 1236.22 333.806 1235.68 333.806Z" fill="#9DB2D1"/>
<path d="M1176.76 374.371C1176.23 374.371 1175.79 374.804 1175.79 375.337C1175.79 375.871 1176.23 376.303 1176.76 376.303C1177.29 376.303 1177.73 375.871 1177.73 375.337C1177.73 374.804 1177.29 374.371 1176.76 374.371Z" fill="#9DB2D1"/>
<path opacity="0.3" d="M1106.24 358.917C1105.71 358.917 1105.28 359.349 1105.28 359.883C1105.28 360.416 1105.71 360.849 1106.24 360.849C1106.78 360.849 1107.21 360.416 1107.21 359.883C1107.21 359.349 1106.78 358.917 1106.24 358.917Z" fill="#9DB2D1"/>
<path d="M1067.6 366.646C1067.06 366.646 1066.63 367.079 1066.63 367.612C1066.63 368.146 1067.06 368.578 1067.6 368.578C1068.13 368.578 1068.56 368.146 1068.56 367.612C1068.56 367.079 1068.13 366.646 1067.6 366.646Z" fill="#9DB2D1"/>
<path opacity="0.5" d="M1036.69 384.032C1036.16 384.032 1035.72 384.464 1035.72 384.998C1035.72 385.531 1036.16 385.964 1036.69 385.964C1037.22 385.964 1037.66 385.531 1037.66 384.998C1037.66 384.464 1037.22 384.032 1036.69 384.032Z" fill="#9DB2D1"/>
<path d="M966.175 341.533C965.641 341.533 965.209 341.965 965.209 342.499C965.209 343.032 965.641 343.465 966.175 343.465C966.708 343.465 967.141 343.032 967.141 342.499C967.141 341.965 966.708 341.533 966.175 341.533Z" fill="#9DB2D1"/>
<path d="M1344.7 453.867C1344.16 453.867 1343.73 454.3 1343.73 454.833C1343.73 455.367 1344.16 455.799 1344.7 455.799C1345.23 455.799 1345.66 455.367 1345.66 454.833C1345.66 454.3 1345.23 453.867 1344.7 453.867Z" fill="#9DB2D1"/>
<path d="M935.268 362.784C934.735 362.784 934.302 363.216 934.302 363.75C934.302 364.283 934.735 364.716 935.268 364.716C935.802 364.716 936.234 364.283 936.234 363.75C936.234 363.216 935.802 362.784 935.268 362.784Z" fill="#9DB2D1"/>
<path d="M908.222 342.502C907.688 342.502 907.256 342.934 907.256 343.468C907.256 344.001 907.688 344.434 908.222 344.434C908.755 344.434 909.188 344.001 909.188 343.468C909.188 342.934 908.755 342.502 908.222 342.502Z" fill="#9DB2D1"/>
<path d="M1300.45 334.541C1299.91 334.541 1299.48 334.973 1299.48 335.507C1299.48 336.04 1299.91 336.473 1300.45 336.473C1300.98 336.473 1301.41 336.04 1301.41 335.507C1301.41 334.973 1300.98 334.541 1300.45 334.541Z" fill="#9DB2D1"/>
<path d="M789.37 360.874C788.836 360.874 788.404 361.306 788.404 361.84C788.404 362.373 788.836 362.806 789.37 362.806C789.903 362.806 790.336 362.373 790.336 361.84C790.336 361.306 789.903 360.874 789.37 360.874Z" fill="#9DB2D1"/>
<path opacity="0.5" d="M717.893 300.982C717.36 300.982 716.927 301.414 716.927 301.948C716.927 302.481 717.36 302.914 717.893 302.914C718.427 302.914 718.859 302.481 718.859 301.948C718.859 301.414 718.427 300.982 717.893 300.982Z" fill="#9DB2D1"/>
<path d="M674.448 378.258C673.915 378.258 673.482 378.69 673.482 379.223C673.482 379.757 673.915 380.189 674.448 380.189C674.982 380.189 675.414 379.757 675.414 379.223C675.414 378.69 674.982 378.258 674.448 378.258Z" fill="#9DB2D1"/>
<path d="M1259.78 416.896C1259.25 416.896 1258.82 417.329 1258.82 417.862C1258.82 418.396 1259.25 418.828 1259.78 418.828C1260.32 418.828 1260.75 418.396 1260.75 417.862C1260.75 417.329 1260.32 416.896 1259.78 416.896Z" fill="#9DB2D1"/>
<path opacity="0.3" d="M450.956 434.109C450.422 434.109 449.99 434.542 449.99 435.075C449.99 435.609 450.422 436.041 450.956 436.041C451.489 436.041 451.922 435.609 451.922 435.075C451.922 434.542 451.489 434.109 450.956 434.109Z" fill="#9DB2D1"/>
<path d="M529.55 304.844C529.016 304.844 528.584 305.276 528.584 305.81C528.584 306.343 529.016 306.776 529.55 306.776C530.083 306.776 530.516 306.343 530.516 305.81C530.516 305.276 530.083 304.844 529.55 304.844Z" fill="#9DB2D1"/>
<path d="M456.495 347.184C455.961 347.184 455.529 347.617 455.529 348.15C455.529 348.684 455.961 349.116 456.495 349.116C457.028 349.116 457.461 348.684 457.461 348.15C457.461 347.617 457.028 347.184 456.495 347.184Z" fill="#9DB2D1"/>
</g>
<g className="animate-particles-c">
<path d="M727.926 396.519C727.395 396.568 727.003 397.037 727.051 397.569C727.099 398.1 727.569 398.492 728.1 398.443C728.632 398.395 729.023 397.925 728.975 397.394C728.927 396.863 728.457 396.471 727.926 396.519Z" fill="#9DB2D1"/>
<path d="M676.035 476.876C675.504 476.924 675.112 477.394 675.161 477.925C675.209 478.456 675.679 478.848 676.21 478.8C676.741 478.752 677.133 478.282 677.085 477.751C677.037 477.219 676.567 476.828 676.035 476.876Z" fill="#9DB2D1"/>
<path d="M624.364 452.463C623.832 452.511 623.441 452.981 623.489 453.512C623.537 454.043 624.007 454.435 624.538 454.387C625.069 454.339 625.461 453.869 625.413 453.338C625.365 452.806 624.895 452.415 624.364 452.463Z" fill="#9DB2D1"/>
<path opacity="0.5" d="M578.543 439.16C578.012 439.209 577.62 439.678 577.668 440.21C577.717 440.741 578.186 441.133 578.718 441.085C579.249 441.036 579.641 440.567 579.592 440.035C579.544 439.504 579.075 439.112 578.543 439.16Z" fill="#9DB2D1"/>
<path opacity="0.3" d="M846.348 494.432C845.817 494.481 845.425 494.95 845.473 495.482C845.521 496.013 845.991 496.405 846.522 496.356C847.054 496.308 847.445 495.839 847.397 495.307C847.349 494.776 846.879 494.384 846.348 494.432Z" fill="#9DB2D1"/>
<path d="M493.895 404.154C493.364 404.202 492.972 404.672 493.02 405.203C493.068 405.735 493.538 406.126 494.069 406.078C494.601 406.03 494.992 405.56 494.944 405.029C494.896 404.498 494.426 404.106 493.895 404.154Z" fill="#9DB2D1"/>
<path opacity="0.3" d="M491.77 530.439C491.239 530.487 490.847 530.957 490.895 531.488C490.943 532.02 491.413 532.411 491.944 532.363C492.476 532.315 492.867 531.845 492.819 531.314C492.771 530.783 492.301 530.391 491.77 530.439Z" fill="#9DB2D1"/>
<path d="M467.293 495.8C466.762 495.849 466.37 496.318 466.418 496.85C466.467 497.381 466.936 497.773 467.468 497.724C467.999 497.676 468.391 497.206 468.342 496.675C468.294 496.144 467.825 495.752 467.293 495.8Z" fill="#9DB2D1"/>
<path d="M405.192 495.613C404.66 495.661 404.269 496.131 404.317 496.662C404.365 497.193 404.835 497.585 405.366 497.537C405.897 497.489 406.289 497.019 406.241 496.487C406.193 495.956 405.723 495.564 405.192 495.613Z" fill="#9DB2D1"/>
<path d="M353.317 426.618C352.785 426.666 352.394 427.135 352.442 427.667C352.49 428.198 352.96 428.59 353.491 428.542C354.022 428.493 354.414 428.024 354.366 427.492C354.318 426.961 353.848 426.569 353.317 426.618Z" fill="#9DB2D1"/>
<path d="M281.707 417.592C281.176 417.64 280.784 418.11 280.833 418.641C280.881 419.172 281.35 419.564 281.882 419.516C282.413 419.468 282.805 418.998 282.757 418.466C282.708 417.935 282.239 417.543 281.707 417.592Z" fill="#9DB2D1"/>
<path d="M243.918 428.779C243.387 428.827 242.995 429.297 243.043 429.828C243.092 430.36 243.561 430.751 244.093 430.703C244.624 430.655 245.016 430.185 244.967 429.654C244.919 429.123 244.45 428.731 243.918 428.779Z" fill="#9DB2D1"/>
<path d="M169.067 480.18C168.535 480.228 168.144 480.697 168.192 481.229C168.24 481.76 168.71 482.152 169.241 482.104C169.772 482.055 170.164 481.586 170.116 481.054C170.068 480.523 169.598 480.131 169.067 480.18Z" fill="#9DB2D1"/>
<path opacity="0.3" d="M113.981 428.916C113.449 428.964 113.058 429.434 113.106 429.965C113.154 430.496 113.624 430.888 114.155 430.84C114.686 430.792 115.078 430.322 115.03 429.791C114.982 429.259 114.512 428.868 113.981 428.916Z" fill="#9DB2D1"/>
<path d="M76.9026 426.459C76.3713 426.507 75.9797 426.977 76.0278 427.509C76.076 428.04 76.5457 428.432 77.077 428.383C77.6084 428.335 78 427.865 77.9519 427.334C77.9037 426.803 77.4339 426.411 76.9026 426.459Z" fill="#9DB2D1"/>
<path d="M14.0276 542.119C13.4963 542.167 13.1047 542.637 13.1528 543.168C13.201 543.7 13.6707 544.091 14.202 544.043C14.7334 543.995 15.125 543.525 15.0769 542.994C15.0287 542.462 14.5589 542.071 14.0276 542.119Z" fill="#9DB2D1"/>
<path d="M1198 411.081C1197.47 411.081 1197.04 411.514 1197.04 412.047C1197.04 412.581 1197.47 413.013 1198 413.013C1198.54 413.013 1198.97 412.581 1198.97 412.047C1198.97 411.514 1198.54 411.081 1198 411.081Z" fill="#9DB2D1"/>
<path d="M1168.07 353.123C1167.53 353.123 1167.1 353.555 1167.1 354.089C1167.1 354.622 1167.53 355.055 1168.07 355.055C1168.6 355.055 1169.03 354.622 1169.03 354.089C1169.03 353.555 1168.6 353.123 1168.07 353.123Z" fill="#9DB2D1"/>
<path opacity="0.3" d="M1094.64 346.363C1094.11 346.363 1093.68 346.795 1093.68 347.328C1093.68 347.862 1094.11 348.294 1094.64 348.294C1095.18 348.294 1095.61 347.862 1095.61 347.328C1095.61 346.795 1095.18 346.363 1094.64 346.363Z" fill="#9DB2D1"/>
<path d="M1037.66 440.058C1037.13 440.058 1036.69 440.49 1036.69 441.024C1036.69 441.557 1037.13 441.99 1037.66 441.99C1038.19 441.99 1038.62 441.557 1038.62 441.024C1038.62 440.49 1038.19 440.058 1037.66 440.058Z" fill="#9DB2D1"/>
<path d="M988.393 411.082C987.86 411.082 987.427 411.514 987.427 412.048C987.427 412.581 987.86 413.014 988.393 413.014C988.927 413.014 989.359 412.581 989.359 412.048C989.359 411.514 988.927 411.082 988.393 411.082Z" fill="#9DB2D1"/>
<path d="M966.182 380.172C965.649 380.172 965.217 380.605 965.217 381.138C965.217 381.672 965.649 382.104 966.182 382.104C966.716 382.104 967.148 381.672 967.148 381.138C967.148 380.605 966.716 380.172 966.182 380.172Z" fill="#9DB2D1"/>
<path d="M1347.86 410.404C1347.33 410.404 1346.9 410.836 1346.9 411.369C1346.9 411.903 1347.33 412.335 1347.86 412.335C1348.4 412.335 1348.83 411.903 1348.83 411.369C1348.83 410.836 1348.4 410.404 1347.86 410.404Z" fill="#9DB2D1"/>
<path opacity="0.5" d="M921.745 243C921.211 243 920.779 243.432 920.779 243.966C920.779 244.499 921.211 244.932 921.745 244.932C922.278 244.932 922.711 244.499 922.711 243.966C922.711 243.432 922.278 243 921.745 243Z" fill="#9DB2D1"/>
<path d="M872.479 271.984C871.946 271.984 871.513 272.417 871.513 272.95C871.513 273.484 871.946 273.916 872.479 273.916C873.013 273.916 873.445 273.484 873.445 272.95C873.445 272.417 873.013 271.984 872.479 271.984Z" fill="#9DB2D1"/>
<path opacity="0.3" d="M834.776 349.28C834.243 349.28 833.81 349.712 833.81 350.246C833.81 350.779 834.243 351.212 834.776 351.212C835.31 351.212 835.742 350.779 835.742 350.246C835.742 349.712 835.31 349.28 834.776 349.28Z" fill="#9DB2D1"/>
<path d="M767.159 329.964C766.626 329.964 766.193 330.397 766.193 330.93C766.193 331.464 766.626 331.896 767.159 331.896C767.693 331.896 768.125 331.464 768.125 330.93C768.125 330.397 767.693 329.964 767.159 329.964Z" fill="#9DB2D1"/>
<path d="M1271.38 404.342C1270.84 404.342 1270.41 404.774 1270.41 405.307C1270.41 405.841 1270.84 406.273 1271.38 406.273C1271.91 406.273 1272.34 405.841 1272.34 405.307C1272.34 404.774 1271.91 404.342 1271.38 404.342Z" fill="#9DB2D1"/>
<path opacity="0.5" d="M673.479 322.231C672.946 322.231 672.513 322.664 672.513 323.197C672.513 323.731 672.946 324.163 673.479 324.163C674.013 324.163 674.445 323.731 674.445 323.197C674.445 322.664 674.013 322.231 673.479 322.231Z" fill="#9DB2D1"/>
<path d="M578.815 366.67C578.282 366.67 577.849 367.102 577.849 367.636C577.849 368.169 578.282 368.602 578.815 368.602C579.349 368.602 579.781 368.169 579.781 367.636C579.781 367.102 579.349 366.67 578.815 366.67Z" fill="#9DB2D1"/>
<path opacity="0.5" d="M557.557 329.966C557.024 329.966 556.592 330.398 556.592 330.932C556.592 331.465 557.024 331.897 557.557 331.897C558.091 331.897 558.523 331.465 558.523 330.932C558.523 330.398 558.091 329.966 557.557 329.966Z" fill="#9DB2D1"/>
<path d="M510.237 359.906C509.704 359.906 509.271 360.339 509.271 360.872C509.271 361.406 509.704 361.838 510.237 361.838C510.771 361.838 511.203 361.406 511.203 360.872C511.203 360.339 510.771 359.906 510.237 359.906Z" fill="#9DB2D1"/>
</g>
</g>
{/* SVG Filters & Linear Gradients */} {/* SVG Filters & Linear Gradients */}
<defs> <defs>
<filter id="filter0_f_1429_12168" x="166.992" y="0" width="706" height="659" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB"> <filter id="filter0_f_1429_12168" x="166.992" y="0" width="706" height="659" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB">

3281
components/copilot/CopilotParticleCanvas.tsx
File diff suppressed because it is too large
View File

2
components/sections/AiCopilotSection.tsx

@ -1,5 +1,6 @@
import Image from "next/image"; import Image from "next/image";
import { AnimatedCopilotOrb } from "@/components/copilot/AnimatedCopilotOrb"; import { AnimatedCopilotOrb } from "@/components/copilot/AnimatedCopilotOrb";
import { CopilotParticleCanvas } from "@/components/copilot/CopilotParticleCanvas";
export function AiCopilotSection() { export function AiCopilotSection() {
return ( return (
@ -97,6 +98,7 @@ export function AiCopilotSection() {
{/* Middle Luminous Orb (Figma: 437x437 centered at x=608, y=218.5) */} {/* Middle Luminous Orb (Figma: 437x437 centered at x=608, y=218.5) */}
<div className="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 w-[132.57%] h-[197.94%] pointer-events-none select-none z-10"> <div className="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 w-[132.57%] h-[197.94%] pointer-events-none select-none z-10">
<AnimatedCopilotOrb /> <AnimatedCopilotOrb />
<CopilotParticleCanvas />
</div> </div>
</div> </div>
</div> </div>

Loading…
Cancel
Save