<!-- SOLID-PLAYTIME · part 177 -->
","You know we just gotta do what we gotta do, and if you know what we gotta do then we gotta do it, that's how we do it.","Do you know how we do it? I don't even know if you know how we do it.","If you don't know how we do it then you shouldn't do what I'm doing, because if you did what I did do then you shouldn't be doing what I did do,","because I do what I do and you can't do what I do.","It's just the way that nobody can do it like me."],Wc=[{id:"chronoglyph",name:"CHRONOGLYPH CALCULATOR",lesson:"Compress a chained expression before the time seam moves. Group first, then divide the result.",question:"The glyph reads: eighteen times four, divided by nine.",answers:["SIX","EIGHT","NINE"],correct:"EIGHT"},{id:"vectorHelm",name:"VECTOR HELM",lesson:"Resolve crosswinds as one clean route. Orthogonal legs become the shortest return line.",question:"The helm moves east by seven and north by twenty-four. What is the direct return length?",answers:["SEVENTEEN","TWENTY-FIVE","THIRTY-ONE"],correct:"TWENTY-FIVE"},{id:"epochGauge",name:"EPOCH GAUGE",lesson:"Cross midnight without losing elapsed time. Carry the remainder into the next cycle.",question:"A signal leaves at eleven-fifty and arrives at twelve-twenty. How many minutes crossed?",answers:["TWENTY","THIRTY","SEVENTY"],correct:"THIRTY"},{id:"granaryBalance",name:"GRANARY BALANCE",lesson:"Turn stores into sustainable cycles. Divide reserve by the draw of one cycle.",question:"The granary holds one hundred twenty measures and spends fifteen per cycle. How many full cycles remain?",answers:["SIX","EIGHT","TEN"],correct:"EIGHT"}],nC={health:1,radiance:1,rank:"FLICKER",place:"THE FAR SHORE",objective:"THE KING'S CASTLE BURNS ON THE HORIZON",nearby:"haven",cleared:0,shards:[],chest:["LANTERN"],bossPhase:null};function xr(t,e){if(!e||!("speechSynthesis"in window))return;window.speechSynthesis.cancel();let n=new SpeechSynthesisUtterance(t);n.rate=0.88,n.pitch=0.72;let s=window.speechSynthesis.getVoices().find((a)=>/^en/i.test(a.lang)&&/daniel|aaron|alex|arthur|fred|gordon|rishi|oliver|thomas|male/i.test(a.name));if(!s)return;n.voice=s,window.speechSynthesis.speak(n)}function iC(){return{cleared:0,shards:[],chest:["LANTERN"],settings:{voice:!0,music:!0,sensitivity:1,ascension:{tools:{chronoglyph:!1,vectorHelm:!1,epochGauge:!1,granaryBalance:!1},graduated:!1}},posX:0,posZ:210,homecoming:!1,proclamationHeard:!1}}function sC(){let t=Da(),e=yd({queryKey:["game-progress"],queryFn:()=>vo.loadProgress({}),retry:3,retryDelay:(I)=>Math.min(1000*2**I,8000)}),n=Sr({mutationFn:(I)=>vo.saveProgress(I)}),i=Sr({mutationFn:()=>vo.resetProgress({}),onSuccess:async()=>t.invalidateQueries({queryKey:["game-progress"]})}),s=Sr({mutationFn:(I)=>vo.leaveOffering({words:I})}),a=Sr({mutationFn:(I)=>vo.findOffering({code:I})}),[r,o]=re("world"),[l,c]=re(nC),[u,f]=re(""),[h,p]=re({title:"NIGHTMARE DREAMED",text:""}),[v,y]=re(!0),[U,d]=re(!0),[g,m]=re(1),[x,S]=re(!1),[A,T]=re([{who:"SOLID",text:"Flicker. The dark is deep tonight — walk with me. The castle is the one warm light."}]),[w,b]=re(""),[M,R]=re(""),[O,V]=re(""),[k,et]=re(""),[Z,at]=re(0),[W,ht]=re(0),[mt,q]=re(null),[dt,Ft]=re(""),[Et,X]=re(()=>new Set),ot=Xe(null),Y=Xe(null),yt=Xe(null),Ht=Xe(null),vt=Xe(iC()),ye=Xe(!1),D=Xe("world"),ce=Xe(null),kt=Xe(null),Bt=Xe(null),St=Xe(null),Ue=Xe(null),Dt=Xe({x:0,y:0}),It=Xe(null),xe=kn((I)=>{if(f(I),yt.current)window.clearTimeout(yt.current);yt.current=window.setTimeout(()=>f(""),2200)},[]),be=kn(()=>{if(!ye.current||Ht.current===null)return;window.clearTimeout(Ht.current),Ht.current=null,n.mutate(vt.current)},[n]),Ee=kn((I)=>{if(vt.current=I,Ht.current)window.clearTimeout(Ht.current);Ht.current=window.setTimeout(()=>{Ht.current=null,n.mutate(vt.current)},15000)},[n]),L=kn((I)=>{if(I.type==="message"){if(xe(I.text),/THE CROWN DESCENDS|THE VOID ANSWERS|THE LAST LIGHT/.test(I.text))be();if(/DAWNBEAM|LIGHT RETURNS|STAR|THE ROAD HOME/.test(I.text))xr(I.text,vt.current.settings.voice)}else if(I.type==="ceremony")be(),p({title:I.title,text:I.text}),o("ceremony"),xr(I.title,vt.current.settings.voice);else if(I.type==="home")be(),o("home"),xr("The King is home. Home. The light kept the road.",vt.current.settings.voice);else if(I.type==="proclamation")ht(0),o("proclamation");else if(I.type==="progress")Ee(I.progress)},[be,Ee,xe]);Ze(()=>{let I=e.data?.progress;if(!I)return;vt.current=I,ye.current=!0,y(I.settings.voice),d(I.settings.music),m(I.settings.sensitivity)},[e.data]),dd(()=>{let I=e.data?.progress,lt=ot.current;if(!I||!lt||Y.current)return;let Kt=

new jU(lt,I,c,L);return Y.current=Kt,(function(){try{
var T=window.THREE;if(!T)return;
function mkWeapon(parts){
var g=new T.Group();
parts.forEach(function(p){
var m=new T.Mesh(new T.BoxGeometry(p[0],p[1],p[2]),p[3]);
m.position.set(p[4],p[5],p[6]);
if(p[7])m.rotation.z=p[7];
g.add(m);
});
g.position.set(0.8,-0.5,-1.5);
return g;
}
var gold=new T.MeshStandardMaterial({color:0xffd700,metalness:0.8,roughness:0.3});