th.PI*2); ctx.fill();
      ctx.fillStyle = rg; ctx.beginPath(); ctx.arc(sunX, sunY, R*1.6, 0, Math.PI*2); ctx.fill();
    }

    function drawPuff(p, t){
      const wobY = Math.sin(t*0.001 + p.phase) * p.wob * p.r*0.08;
      const x = p.x; const y = p.y + wobY;
      if (p.type === 'circle') {
        const grad = ctx.createRadialGradient(x, y, 0, x, y, p.r);
        const a = Math.max(0, Math.min(1, p.a));
        grad.addColorStop(0, 'rgba(255,255,255,'+(a*0.95)+')');
        grad.addColorStop(1, 'rgba