<!-- SAGA2 · part 85 -->
shBasicMaterial({color:0x66eeff}));
  antTip.position.set(7.0, 34, 0);
  avatarGrp.add(antTip);
  avatarGrp.userData.antTip = antTip;

  // ===== NEW NECK — defined form =====
  for(var nk=0; nk<16; nk++){
    var na = nk/16*Math.PI*2, pts=[];
    for(var ny=0; ny<=8; ny++){
      var y = 14.5-ny*1.1;
      var nr = 3.2-Math.sin(ny/8*Math.PI)*0.5; // slight taper
      pts.push(new THREE.Vector3(Math.cos(na)*nr, y, Math.sin(na)*nr*0.9+0.5));
    }
    draw(pts, nk%5===0?lnGold:(nk%2?lnCyan:lnDim));
  }
  // throat — front detail
  for(var th=0; th<3; th++){
    var pts=[];
    for(var i=0;i<=8;i++){ var t=i/8;
      pts.push(new THREE.Vector3((th-1)*0.8, 13-t*6, 3.8-t*0.5));
    }
    draw(pts, lnDim);
  }

  // ===== TORSO — contour lines on tapered form =====
  // chest: wide, tapering to waist
  for(var tr=0; tr<18; tr++){
    var ty = 13-tr*0.85; // y from 12 down to -1.5
    var tw = 9 - tr*0.32; // width tapers
    var td = 5.5 - tr*0.15; // depth tapers
    var pts=[];
    for(var i=0;i<=24;i++){ var an=i/24*Math.PI*2;
      pts.push(new THREE.Vector3(Math.cos(an)*tw, ty, Math.sin(an)*td));
    }
    draw(pts, tr%5===0?lnGold:(tr>10?lnDim:lnCyan));
  }
  // vertical torso lines (contour)
  for(var tv=0; tv<16; tv++){
    var an = tv/16*Math.PI*2, pts=[];
    for(var ty2=0; ty2<=16; ty2++){
      var y = 12-ty2*0.9, w = 8.5-ty2*0.28, d = 4.8-ty2*0.12;
      pts.push(new THREE.Vector3(Math.cos(an)*w, y, Math.sin(an)*d));
    }
    draw(pts, tv%4===0?lnGold:lnDim);
  }
  // CROSS-HATCH — shadow side of torso (Marcantonio)
  for(var chx=0; chx<10; chx++){
    var pts=[];
    for(var i=0;i<=12;i++){
      var t=i/12, y=10-t*10, w=9-t*3;
      // diagonal cross lines on left shadow side
      pts.push(new THREE.Vector3(-w+ t*4, y, 3.5));
    }
    draw(pts, lnDim);
  }
  // arc reactor — pure line circles
  for(var rr=0; rr<4; rr++){
    var pts=[];
    for(var i=0;i<=32;i++){ var an=i/32*Math.PI*2;
      pts.push(new THREE.Vector3(Math.cos(an)*(2.5-rr*0.4), 8+Math.sin(an)*(2.5-rr*0.4), 5.8)); }
    draw(pts, rr===0?lnGold:lnCyan);
  }
  // ===== PLATE CARRIER — tactical vest =====
  // horizontal straps
  for(var ps=0; ps<4; ps++){
    var py = 10-ps*2.5, pts=[];
    for(var i=0;i<=24;i++){ var an=i/24*Math.PI*2;
      // only front 180 degrees (chest rig)
      if(an > Math.PI*0.7 && an < Math.PI*1.3) continue;
      var w = 10.5-ps*0.3, d = 6.0-ps*0.12;
      pts.push(new THREE.Vector3(Math.cos(an)*w, py, Math.sin(an)*d));
    }
    // draw as segments (skip back)
    for(var sg=0; sg<pts.length-1; sg+=2){
      if(pts[sg] && pts[sg+1]) draw([pts[sg], pts[sg+1]], lnGold);
    }
  }
  // mag pouches — vertical line clusters on chest
  [-1,1].forEach(function(sd){
    for(var mp=0; mp<3; mp++){
      for(var ml=0; ml<4; ml++){
        var pts=[];
        for(var mi=0; mi<=4; mi++){
          pts.push(new THREE.Vector3(sd*(3+mp*2.2)+ml*0.3, 9-mi*1.0, 6.2));
        }
        draw(pts, lnDim);
      }
    }
  });
  // STIPPLE — dot clusters on shoulders
  [-1,1].forEach(function(sd){
    for(var st=0; st<30; st++){
      var sa = Math.random()*Math.PI*2, sr = Math.random()*3;
      var sx = sd*13+Math.cos(sa)*sr, sy = 11+Math.sin(sa)*sr*0.6;
      draw([new THREE.Vector3(sx, sy, 4.2), new THREE.Vector3(sx+0.15, sy, 4.2)], st%5===0?lnGold:lnDim);
    }
  });
  // ===== DELTOIDS — imagined muscle caps =====
  [-1,1].forEach(function(sd){
    var dx = sd*13, dy = 10, dz = 4;
    // deltoid latitudes (muscle cap rings)
    for(var dl=0; dl<8; dl++){
      var pts=[], phi = dl/8*Math.PI*0.55;
      for(var i=0;i<=20;i++){ var an=i/20*Math.PI*2;
        var r = 3.5*Math.sin(phi);
        pts.push(new THREE.Vector3(
          dx+Math.cos(an)*r,
          dy+3.5*Math.cos(phi),
          dz+Math.sin(an)*r*0.85
        ));
      }
      draw(pts, dl>5?lnGold:(dl<3?lnDim:lnCyan));
    }
    // deltoid meridians (fiber direction)
    for(var dm2=0; dm2<10; dm2++){
      var an = dm2/10*Math.PI*2, pts=[];
      for(var dp=0; dp<=8; dp++){
        var phi = dp/8*Math.PI*0.55, r = 3.5*Math.sin(phi);
        pts.push(new THREE.Vector3(
          dx+Math.cos(an)*r,
          dy+3.5*Math.cos(phi),
          dz+Math.sin(an)*r*0.85
        ));
      }
      draw(pts, dm2%3===0?lnGold:lnDim);
    }
    // TRAPEZIUS — sweep from neck to shoulder
    for(var tp=0; tp<3; tp++){
      var pts=[];
      for(var ti=0; ti<=12; ti++){
        var t = ti/12;
        pts.push(new THREE.Vector3(
          sd*t*13,
          14-t*4+tp*0.8-Math.sin(t*Math.PI)*1.0,
          0.5+t*3.5
        ));
      }
      draw(pts, tp%3===0?lnGold:lnCyan);
    }
  });
  // shoulder rank chevrons
  [-1,1].forEach(function(sd){
    for(var chv=0; chv<3; chv++){
      var pts=[
        new THREE.Vector3(sd*13-1.5+chv*0.5, 10-chv*0.8, 4),
        new THREE.Vector3(sd*13, 10.8-chv*0.8, 4),
        new THREE.Vector3(sd*13+1.5-chv*0.5, 10-chv*0.8, 4)
      ];
      draw(pts, lnGold);
    }
  });
  // PECS
  [-1,1].forEach(function(s