new-site/site/public/_astro/hoisted.lOsJxXLV.js
justin f8cd37ac8c Initial commit — Performance West telecom compliance platform
Includes: API (Express/TypeScript), Astro site, Python workers,
document generators, FCC compliance tools, Canada CRTC formation,
Ansible infrastructure, and deployment scripts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 06:54:22 -05:00

1 line
4.8 KiB
JavaScript

import"./hoisted.yFz1BYXO.js";const M=document.getElementById("hero-canvas"),t=M.getContext("2d");let n=0,l=0,w=[],b=[],g=[],S=[],y=0;const P="#0a1628",T="#132744",v="#1e3a5f",k="#0f2744",C="#091a2e";function u(){const a=Math.min(window.devicePixelRatio||1,2);n=M.clientWidth,l=M.clientHeight,M.width=n*a,M.height=l*a,t.setTransform(a,0,0,a,0,0),$()}function $(){const a=l*.55;S=[];for(let i=0;i<(n<640?40:80);i++)S.push({x:Math.random()*n,y:Math.random()*a*.7,r:Math.random()*1.2+.3,twinkle:Math.random()*Math.PI*2,speed:.01+Math.random()*.03});w=[];const e=n<640?4:7;for(let i=0;i<e;i++)w.push({x:Math.random()*n*1.5-n*.25,y:l*.08+Math.random()*a*.35,w:80+Math.random()*160,h:20+Math.random()*30,speed:.08+Math.random()*.15,opacity:.04+Math.random()*.08});b=[];const o=n<640?14:28,h=n/o;for(let i=0;i<o;i++){const c=h*(.5+Math.random()*.4),d=Math.random()<.2?l*.12+Math.random()*l*.18:l*.04+Math.random()*l*.1,f=[],z=Math.floor(d/8);for(let p=0;p<z*3;p++)f.push(Math.random()<.35);const m=12+Math.floor(Math.random()*15);b.push({x:i*h,bw:c,bh:d,lit:f,color:`rgb(${m},${m+8},${m+18})`})}g=[];const r=n<640?2:4;for(let i=0;i<r;i++){const c=n<640?25+Math.random()*20:35+Math.random()*30;g.push({x:n*.1+Math.random()*n*.8,speed:.15+Math.random()*.3,size:c,sailPhase:Math.random()*Math.PI*2,hull:`rgba(${40+Math.floor(Math.random()*30)}, ${50+Math.floor(Math.random()*30)}, ${70+Math.floor(Math.random()*30)}, 0.8)`,sail:`rgba(200, 210, 225, ${.5+Math.random()*.3})`})}}function R(a){const e=l*.55,o=t.createLinearGradient(0,0,0,e);o.addColorStop(0,P),o.addColorStop(.5,T),o.addColorStop(1,v),t.fillStyle=o,t.fillRect(0,0,n,e);const h=n*(.65+Math.sin(a*5e-5)*.1),r=t.createRadialGradient(h,e,0,h,e,n*.4);r.addColorStop(0,"rgba(201, 146, 62, 0.12)"),r.addColorStop(.3,"rgba(201, 146, 62, 0.06)"),r.addColorStop(1,"rgba(201, 146, 62, 0)"),t.fillStyle=r,t.fillRect(0,0,n,e+20)}function G(a){for(const e of S){e.twinkle+=e.speed;const o=.3+Math.sin(e.twinkle)*.3;t.fillStyle=`rgba(200, 215, 240, ${o})`,t.beginPath(),t.arc(e.x,e.y,e.r,0,Math.PI*2),t.fill()}}function I(a){for(const e of w)e.x+=e.speed,e.x>n+e.w&&(e.x=-e.w*1.5),t.fillStyle=`rgba(140, 165, 200, ${e.opacity})`,t.beginPath(),t.ellipse(e.x,e.y,e.w*.5,e.h*.5,0,0,Math.PI*2),t.fill(),t.beginPath(),t.ellipse(e.x-e.w*.25,e.y+e.h*.1,e.w*.35,e.h*.4,0,0,Math.PI*2),t.fill(),t.beginPath(),t.ellipse(e.x+e.w*.2,e.y+e.h*.05,e.w*.3,e.h*.35,0,0,Math.PI*2),t.fill()}function W(a){const e=l*.55;for(const o of b){t.fillStyle=o.color;const h=e-o.bh;t.fillRect(o.x+1,h,o.bw-2,o.bh);const r=2,i=5;let c=0;for(let s=h+4;s<e-3;s+=i)for(let d=o.x+3;d<o.x+o.bw-3;d+=i){if(c<o.lit.length&&o.lit[c]){const f=Math.sin(a*.001+c*7)>.2?1:.3;t.fillStyle=`rgba(255, 220, 140, ${.4*f})`,t.fillRect(d,s,r,r)}c++}}t.strokeStyle="rgba(80, 110, 150, 0.15)",t.lineWidth=1;for(const o of b)t.beginPath(),t.moveTo(o.x+1,e),t.lineTo(o.x+1,e-o.bh),t.lineTo(o.x+o.bw-1,e-o.bh),t.lineTo(o.x+o.bw-1,e),t.stroke()}function q(a){const e=l*.55,o=t.createLinearGradient(0,e,0,l);o.addColorStop(0,k),o.addColorStop(1,C),t.fillStyle=o,t.fillRect(0,e,n,l-e),y+=.3,t.strokeStyle="rgba(100, 150, 200, 0.04)",t.lineWidth=1;for(let i=e+8;i<l;i+=6){t.beginPath();const c=(i-e)/(l-e);t.strokeStyle=`rgba(100, 150, 200, ${.03+c*.02})`;for(let s=0;s<n;s+=3){const d=Math.sin((s+y)*.02+i*.05+a*.001)*(2+c*3);s===0?t.moveTo(s,i+d):t.lineTo(s,i+d)}t.stroke()}const h=n*(.65+Math.sin(a*5e-5)*.1),r=t.createLinearGradient(h-60,e,h+60,l*.8);r.addColorStop(0,"rgba(201, 146, 62, 0.08)"),r.addColorStop(1,"rgba(201, 146, 62, 0)"),t.fillStyle=r,t.fillRect(h-80,e,160,l-e)}function B(a){const e=l*.55;for(const o of g){o.x+=o.speed,o.x>n+o.size*3&&(o.x=-o.size*3),o.sailPhase+=.008;const h=e+20+o.x/n*(l*.2)+Math.sin(o.sailPhase*3)*10,r=Math.sin(a*.002+o.sailPhase)*1.5,i=Math.sin(o.sailPhase)*.05;t.save(),t.translate(o.x,h+r),t.rotate(i),t.fillStyle=o.hull,t.beginPath(),t.moveTo(-o.size,0),t.quadraticCurveTo(-o.size*.8,o.size*.4,o.size*.3,o.size*.3),t.lineTo(o.size,0),t.closePath(),t.fill(),t.strokeStyle="rgba(180, 190, 200, 0.6)",t.lineWidth=1,t.beginPath(),t.moveTo(0,0),t.lineTo(0,-o.size*1.8),t.stroke();const c=Math.sin(o.sailPhase)*o.size*.15;t.fillStyle=o.sail,t.beginPath(),t.moveTo(0,-o.size*1.7),t.quadraticCurveTo(o.size*.5+c,-o.size*.8,0,-o.size*.1),t.closePath(),t.fill(),t.fillStyle=`rgba(200, 210, 225, ${.3+Math.sin(o.sailPhase+1)*.1})`,t.beginPath(),t.moveTo(0,-o.size*1.5),t.quadraticCurveTo(-o.size*.4-c*.5,-o.size*.7,-o.size*.1,-o.size*.1),t.closePath(),t.fill(),t.restore(),t.strokeStyle="rgba(150, 180, 210, 0.08)",t.lineWidth=1,t.beginPath();for(let s=0;s<o.size*2;s+=3){const d=o.x-o.size-s,f=h+r+Math.sin(s*.2+a*.003)*1;s===0?t.moveTo(d,f):t.lineTo(d,f)}t.stroke()}}function x(a){t.clearRect(0,0,n,l),R(a),G(),I(),W(a),q(a),B(a),requestAnimationFrame(x)}function O(){u(),window.addEventListener("resize",()=>{u()}),requestAnimationFrame(x)}O();