<!-- SOLID-PLAYTIME · part 160 -->
TACHMENT0,pi.__webglTexture,N,Ot+zn);else D.framebufferTexture2D(D.READ_FRAMEBUFFER,D.COLOR_ATTACHMENT0,D.TEXTURE_2D,pi.__webglTexture,N);if(di)D.framebufferTextureLayer(D.DRAW_FRAMEBUFFER,D.COLOR_ATTACHMENT0,In.__webglTexture,ut,Qe+zn);else D.framebufferTexture2D(D.DRAW_FRAMEBUFFER,D.COLOR_ATTACHMENT0,D.TEXTURE_2D,In.__webglTexture,ut);if(N!==0)D.blitFramebuffer(Vt,$t,Mt,Pt,se,Re,Mt,Pt,D.COLOR_BUFFER_BIT,D.NEAREST);else if(di)D.copyTexSubImage3D(Je,ut,se,Re,Qe+zn,Vt,$t,Mt,Pt);else D.copyTexSubImage2D(Je,ut,se,Re,Vt,$t,Mt,Pt)}St.bindFramebuffer(D.READ_FRAMEBUFFER,null),St.bindFramebuffer(D.DRAW_FRAMEBUFFER,null)}else if(di)if(_.isDataTexture||_.isData3DTexture)D.texSubImage3D(Je,ut,se,Re,Qe,Mt,Pt,wt,He,zt,Oe.data);else if(F.isCompressedArrayTexture)D.compressedTexSubImage3D(Je,ut,se,Re,Qe,Mt,Pt,wt,He,Oe.data);else D.texSubImage3D(Je,ut,se,Re,Qe,Mt,Pt,wt,He,zt,Oe);else if(_.isDataTexture)D.texSubImage2D(D.TEXTURE_2D,ut,se,Re,Mt,Pt,He,zt,Oe.data);else if(_.isCompressedTexture)D.compressedTexSubImage2D(D.TEXTURE_2D,ut,se,Re,Oe.width,Oe.height,He,Oe.data);else D.texSubImage2D(D.TEXTURE_2D,ut,se,Re,Mt,Pt,He,zt,Oe);if(D.pixelStorei(D.UNPACK_ROW_LENGTH,pe),D.pixelStorei(D.UNPACK_IMAGE_HEIGHT,Kn),D.pixelStorei(D.UNPACK_SKIP_PIXELS,br),D.pixelStorei(D.UNPACK_SKIP_ROWS,jn),D.pixelStorei(D.UNPACK_SKIP_IMAGES,sl),ut===0&&F.generateMipmaps)D.generateMipmap(Je);St.unbindTexture()},this.initRenderTarget=function(_){if(Dt.get(_).__webglFramebuffer===void 0)It.setupRenderTarget(_)},this.initTexture=function(_){if(_.isCubeTexture)It.setTextureCube(_,0);else if(_.isData3DTexture)It.setTexture3D(_,0);else if(_.isDataArrayTexture||_.isCompressedArrayTexture)It.setTexture2DArray(_,0);else It.setTexture2D(_,0);St.unbindTexture()},this.resetState=function(){S=0,A=0,T=null,St.reset(),Lt.reset()},typeof __THREE_DEVTOOLS__<"u")__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return gU}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;let e=this.getContext();e.drawingBufferColorSpace=ue._getDrawingBufferColorSpace(t),e.unpackColorSpace=ue._getUnpackColorSpace()}}var le=[{name:"THE FIRST NIGHTMARE",boss:"THE WARDEN",x:-82,z:154,color:14773573,reward:"EMBER SIGIL",line:"The first seal is ash. Walk on."},{name:"THE DROWNED VAULT",boss:"THE TIDEWARDEN",x:-172,z:74,color:2799828,reward:"TIDAL SCROLL",line:"Even the deep must release what it keeps."},{name:"THE ASHEN CHOIR",boss:"THE CHOIRMASTER",x:-142,z:-82,color:10261640,reward:"CHOIR SIGIL",line:"Silence is not emptiness. It is command."},{name:"THE FROZEN VERSE",boss:"THE UNWRITTEN",x:-20,z:-184,color:10349311,reward:"ICE VERSE",line:"What was unwritten can still be lived."},{name:"THE VIOLET WOMB",boss:"THE HUNGER",x:132,z:-126,color:13718505,reward:"VIOLET SIGIL",line:"Hunger named itself infinite. It was wrong."},{name:"THE GILDED MAW",boss:"THE MISER",x:178,z:18,color:15776059,reward:"GOLDEN KEY",line:"Gold is warmest when the hand opens."},{name:"THE EMPEROR'S NIGHTMARE",boss:"THE EMPEROR",x:116,z:162,color:6634910,reward:"CROWN OF LIGHT",line:"The dark exhales. The light remains."}],Qf=["FLICKER","SPARK","BLAZE","RADIANCE"],AM=["ASH STAR","TIDE STAR","CHOIR STAR","ICE STAR","VIOLET STAR","GILDED STAR","CROWN STAR"];
class jU{mount;onHud;onEvent;progress;scene=new Qo;camera=new xn(56,1,0.1,720);renderer;hero=new he;heroRig={};sword=null;cape=null;world=new he;trial=new he;visionGroup=new he;palaceGroups=[];shards=[];shardInstances=null;enemies=[];boss=null;sparks=[];sparkGeometry=new me;sparkPoints=null;heroTrailGeometry=new me;heroTrail=null;heroTrailPositions=new Float32Array(162);heroTrailCursor=0;sparkCapacity;starField=null;starCount=0;fiberLayers=[];worldCodeLayers=[];goldenRoad=null;trialArenas=[];raf=0;last=0;accumulator=0;t=0;mobile;basePixelRatio;qualityLevel=0;qualityFrames=0;qualityWindowStart=0;slowWindows=0;fastWindows=0;fixedStep=0.016666666666666666;tempDirection=new C;tempTarget=new C;tempCamera=new C;x=0;z=210;y=0;vy=0;velX=0;velZ=0;moveX=0;moveY=0;yaw=0;runHeld=!1;vision=!1;grounded=!0;coyote=0.12;jumpQueued=!1;jumpAnticipation=0;landing=0;walkCycle=0;gameplayActive=!1;journeyTime=0;distanceTravelled=0;hasMoved=!1;hasJumped=!1;facing=0;health=1;radiance=1;nearby=null;trialIndex=null;bossHits=0;hazardClock=0;attackClock=0;lastHud=0;disposed=!1;resizeObserver;onVisibilityChange=()=>{if(document.hidden){cancelAnimationFrame(this.raf),this.raf=0,this.last=0,this.accumulator=0;return}if(!this.disposed&&this.raf===0)this.last=performance.now(),this.qualityWindowStart=this.last,this.raf=requestAnimationFrame(this.loop)};constructor(t,e,n,i){this.mount=t,this.progress={...e,shards:[...e.shards],chest:[...e.chest]},this.onHud=n,this.onEvent=i,this.x=e.posX,this.z=e.posZ,this.mobile=window.matchMedia("(max-width: 820px), (pointer: coarse)").matches,this.basePixelRatio=Math.min(window.devicePixelRatio||1,this.mobile?1.25:1.55),this.spark