function t15DrawHUD(s){if(!isTrio()||!s||mode==='menu')return;
 const l=t15Layout(s),m=t15Model(s);ctx.save();ctx.scale(l.unit,l.unit);ctx.imageSmoothingEnabled=false;
 const ax=(s.p.x+s.p.w/2-(s.cam||0))/l.unit,ay=(s.p.y-(s.r05Arena?s.camY||0:s.r07CamY||0))/l.unit;
 // Fade only the panels which overlap the actor; there is no opaque full-width bar.
 const leftFade=ay<65&&ax<246?.42:1,rightFade=ay<65&&ax>l.uiW-244?.42:1;
 ctx.globalAlpha=leftFade;
 t15Text('1-3',12,5,12);t15Text(String(m.score).padStart(6,'0'),53,5,12);
 const ci=ready?classicSprite('coin0'):null;if(ci)ctx.drawImage(ci,136,6,8,12);else{ctx.fillStyle='#ffd780';ctx.fillRect(136,7,5,7);}
 t15Text('×'+String(m.coins).padStart(2,'0'),146,5,11);t15Text(String(m.time).padStart(3,'0'),223,5,12,'#f3e2b1','right');
 for(let i=0;i<6;i++){const q=l.slots[i],sel=i===m.tool;ctx.fillStyle=sel?'#27384dcc':'#1022389e';ctx.fillRect(q.x,q.y,q.w,q.h);ctx.strokeStyle=sel?'#f3d996':'#afc6d180';ctx.lineWidth=2;ctx.strokeRect(q.x+1,q.y+1,q.w-2,q.h-2);if(sel){ctx.fillStyle='#f8de94';ctx.fillRect(q.x+3,q.y+q.h-3,q.w-6,1);}
  t15Icon(ctx,m.keys[i],q.x+q.w/2,q.y+q.h/2,23);t15Text(i+1,q.x+3,q.y+2,8,sel?'#ffe8ad':'#c0d1db');
  if(m.counts[i]!==null&&m.counts[i]!==undefined)t15Text(m.counts[i]>=1000?(Math.floor(m.counts[i]/1000)+'K'):m.counts[i],q.x+q.w-3,q.y+q.h-10,9,'#fff6d3','right');
 }
 ctx.globalAlpha=rightFade;const xx=l.uiW-230;
 t15Icon(ctx,'heart',xx+6,12,14);t15Meter({x:xx+20,y:9,w:111,h:6},m.hp/Math.max(1,m.maxHp),'#cd6370','#fac09e');t15Text(m.hp+'/'+m.maxHp,l.uiW-12,5,12,'#fff1e8','right');
 t15Icon(ctx,'manaSymbol',xx+6,28,12);t15Meter({x:xx+20,y:25,w:111,h:6},m.mana/Math.max(1,m.maxMana),'#719ce0','#c0deff');t15Text(m.mana+'/'+m.maxMana,l.uiW-12,21,12,'#d5e7ff','right');
 for(let i=0;i<m.gear.length;i++){const x=xx+7+i*23;ctx.fillStyle='#11213961';ctx.fillRect(x-9,40,18,18);t15Icon(ctx,m.gear[i].key,x,49,16);}
 t15Text('DEF '+m.defense,l.uiW-12,42,10,'#d0ddd5','right');ctx.globalAlpha=1;
 if(s.phase==='battle'&&s.eye&&!s.eye.dead){const e=s.eye,bw=l.wide?350:264,x=(l.uiW-bw)/2,y=l.uiH-31;ctx.fillStyle='#132035ad';ctx.fillRect(x,y,bw,23);ctx.strokeStyle='#b47c6470';ctx.lineWidth=1;ctx.strokeRect(x+.5,y+.5,bw-1,22);
  ctx.save();ctx.font='12px "Microsoft YaHei",sans-serif';ctx.textBaseline='top';ctx.fillStyle='#f1d4c3';ctx.fillText('克苏鲁之眼'+(e.phase===2?'  II':''),x+7,y+3);ctx.restore();t15Text(Math.max(0,Math.ceil(e.hp))+'/'+e.maxHp,x+bw-7,y+3,11,'#f4d6be','right');t15Meter({x:x+7,y:y+17,w:bw-14,h:4},e.hp/e.maxHp,e.phase===2?'#dc8a79':'#bd7171','#ffd4ab');
 }
 ctx.restore();s.t15Hud={hp:m.hp,maxHp:m.maxHp,mana:m.mana,maxMana:m.maxMana,gear:m.gear.map(x=>x.name),tool:m.tool,weapon:m.weapon,rows:2,view:[l.viewW,l.viewH]};
}
