1import{r as o,j as e}from"./index-k21SMcNw.js";import{C as x,a as h,a2 as b,a3 as j,u as v}from"./CanvasGuard-ZPD5wiAL.js";function g({color:s,phase:l=0}){const a=o.useRef(null),r=o.useMemo(()=>new Array(220).fill(0).map((i,n)=>n),[]),m=o.useMemo(()=>{const i=new b,n=new Float32Array(r.length*3);return i.setAttribute("position",new j(n,3)),i},[r.length]);return v(({clock:i})=>{if(!a.current)return;const n=i.getElapsedTime(),c=a.current.geometry.attributes.position.array,f=r.length;for(let t=0;t<f;t++){const p=t/(f-1)*8-4,u=Math.exp(-Math.pow((t/f-.5)*4,2)),d=Math.sin(t*.18+n*1.4+l)*.35*u+Math.sin(t*.06-n*.6+l)*.18*u;c[t*3]=p,c[t*3+1]=d,c[t*3+2]=0}a.current.geometry.attributes.position.needsUpdate=!0}),e.jsx("line",{ref:a,geometry:m,children:e.jsx("lineBasicMaterial",{color:s,linewidth:2,transparent:!0,opacity:.95})})}function M(){const[s,l]=o.useState("listens");return o.useEffect(()=>{const a=setInterval(()=>l(r=>r==="listens"?"speaks":"listens"),3200);return()=>clearInterval(a)},[]),e.jsxs("div",{className:"absolute inset-0 bg-[#f5f1ea]","data-testid":"scene-4-listens",children:[e.jsx(x,{fallback:e.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:e.jsx("div",{className:"w-[60vw] h-px",style:{background:s==="listens"?"#0a0e1a":"#ff8a6b",opacity:.7,transition:"all 1200ms ease-out"}})}),children:e.jsxs(h,{camera:{position:[0,0,6],fov:35},dpr:[1,2],children:[e.jsx("color",{attach:"background",args:["#f5f1ea"]}),e.jsx(g,{color:s==="listens"?"#0a0e1a":"#ff8a6b"})]})}),e.jsx("div",{className:"pointer-events-none absolute inset-0 flex flex-col items-center justify-center",children:e.jsx("div",{className:"absolute top-[20vh] text-center",children:e.jsxs("p",{className:"font-serif italic animate-broll-fade-in-slow",style:{fontFamily:"'Instrument Serif', serif",fontSize:"clamp(3rem, 10vw, 9rem)",color:s==="listens"?"#0a0e1a":"#ff8a6b",letterSpacing:"-0.03em",lineHeight:1},children:["It ",s,"."]},s)})})]})}export{M as default};
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.