`},o=()=>html` <${POST.EffectComposer} disableNormalPass multisampling=0> <${POST.Bloom} intensity=0.8 luminanceThreshold=0.3 kernelSize=4 /> <${POST.Bloom} intensity=0.5 luminanceThreshold=0.3 mipmapBlur/> <${POST.Vignette} darkness=0.5/> <${POST.Noise} opacity=0.015 /> /> `,n=()=>{const e=useRef();window.topBlock=e;const[,o]=useSpring((()=>({metalness:.2,config:{mass:2,friction:50,tension:300},onChange:o=>{e.current.material.metalness=o.value.metalness}}))),n=useCallback((()=>{o.start({metalness:-.2})}),[o]),t=useCallback((()=>{o.start({metalness:0})}),[o]),r=useCallback((()=>{o.start({metalness:0}),e.current.material.color=new Color(1.5*Math.random(),1.5*Math.random(),1.5*Math.random().toFixed(1))}),[]);return html` <${DREI.RoundedBox} ref=${e} args=${[.6,.6,.3]} position-y=0.11 onPointerDown=${r} onPointerEnter=${n} onPointerLeave=${t}> >`},t=()=>{const e=useRef(),[,o]=useSpring((()=>({metalness:-.65,config:{mass:2,friction:50,tension:500},onChange:o=>{e.current.material.metalness=o.value.metalness}}))),n=useCallback((()=>{o.start({metalness:-1.9})}),[]),t=useCallback((()=>{o.start({metalness:-.32})}),[]),r=useCallback((()=>{o.start({metalness:-.32}),e.current.material.color=new Color(1.5*Math.random(),1.5*Math.random(),1.5*Math.random().toFixed(1))}),[]);return html` <${DREI.RoundedBox} ref=${e} args=${[.23,.23,.27]} position=${[-.185,-.32,0]} onPointerDown=${r} onPointerEnter=${n} onPointerLeave=${t}> >`},r=DREI.shaderMaterial({time:0,color:new THREE.Color(.2,0,.1)},"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n ","\n uniform float time;\n uniform vec3 color;\n varying vec2 vUv;\n void main() {\n vec3 c = vec3(0.03, 0.03, 0.05);\n float a = 0.5;\n if (fract(vUv.x * 100.) < 0.1) {\n c.r = 0.5;\n c.g = 0.2;\n }\n if (fract(vUv.y * 100.) < 0.05) {\n c.r = 0.5;\n c.g = 0.2;\n }\n float dist = distance(vUv, vec2(0.5, 0.5));\n a -= dist * 4.;\n a -= sin(vUv.x * 2.) * 0.3;\n if (a < 0.) {\n a = 0.;\n }\n gl_FragColor.rgba = vec4(c, a);\n }\n ",(e=>{e.transparent=!0}));FIBER.extend({FloorMat:r});const a=()=>html` `,i=()=>{const e=VfxComposerFiber.useParticleLifetime(),o=VfxComposerFiber.useParticleAttribute((()=>new Vector3)),n=VfxComposerFiber.useParticleAttribute((()=>new Color)),t=useConst((()=>ShaderComposer.Time())),r=VfxComposerFiber.useParticleAttribute((()=>0));return html` <${VfxComposerFiber.InstancedParticles} frustumCulled=${!1}> <${MaterialComposerFiber.composable.meshBasicMaterial} side=${THREE.DoubleSide} transparent blending=${THREE.AdditiveBlending} > <${MaterialComposerFiber.modules.Color} color=${ShaderComposer.Gradient(e.progress,[new Color(0,0,0),0],[n,.1],[new Color(0,0,0),.9])} /> <${MaterialComposerFiber.modules.Rotate} rotation=${ShaderComposer.Rotation3DX(ShaderComposer.Mul(t,r))} /> <${MaterialComposerFiber.modules.Billboard} /> <${MaterialComposerFiber.modules.Velocity} direction=${o} time=${e.age} /> <${MaterialComposerFiber.modules.Acceleration} direction=${new Vector3(0,-.5,0)} time=${e.age} /> <${MaterialComposerFiber.modules.Lifetime} progress=${e.progress} /> /> <${VfxComposerFiber.Emitter} rate=${24} setup=${({mesh:t,position:a})=>{if(e.write(t,Randomish.between(1,3)),!window.topBlock.current)return;const i=topBlock.current.material.color;n.write(t,(e=>i)),a.x=Randomish.between(-.3,.3),a.y=Randomish.between(-.3,.3),a.z=Randomish.between(-.1,.1),r.write(t,Randomish.plusMinus(2.9)),o.write(t,(e=>e.set(Randomish.plusMinus(.3*i.r),Randomish.between(.2,i.g),Randomish.plusMinus(.3))))}} /> />`};render({mainScene:{component:r=>html` <${FIBER.Canvas} ...${r}> <${e}/> <${n} /> <${t} /> <${i} /> <${a} /> <${o}/> <${Suspense}> <${DREIFX.Environment} resolution=64 files=${"/content/8c4ea8f9fafef081345ba8a72c08efed2373d0ba33ac92aca5f043071fc42909i0"}/> /> /> `,props:{dpr:.12*window.devicePixelRatio,camera:{near:.1,far:100,fov:24,position:[0,0,10],zppm:.001},gl:{alpha:!1,depth:!1,stencil:!1,antialias:!1}}}})}