<!-- SAGA2 · part 86 -->
d){
    for(var pc=0; pc<5; pc++){
      var pts=[];
      for(var i=0;i<=12;i++){ var t=i/12;
        pts.push(new THREE.Vector3(sd*(1.5+t*5.5), 10-pc*0.6-Math.sin(t*Math.PI)*1.6, 5.0+Math.cos(t*Math.PI)*1.2));
      }
      draw(pts, pc%3===0?lnGold:lnCyan);
    }
  });
  // ABS
  for(var ab=0; ab<4; ab++){
    var ay = 4-ab*1.8;
    for(var ai=0; ai<3; ai++){
      var pts=[];
      for(var i=0;i<=10;i++){ var t=i/10;
        pts.push(new THREE.Vector3(Math.sin(t*Math.PI)*6.2, ay+Math.cos(t*Math.PI*2+ai)*0.25, Math.cos(t*Math.PI)*4.0));
      }
      draw(pts, ab%2?lnGold:lnCyan);
    }
  }
  // NEW KIND 1: DOT-DASH bands (3x = 30 bands)
  for(var dd=0; dd<30; dd++){
    var dy = 12-dd*0.9;
    for(var ddi=0; ddi<3; ddi++){
      var pts=[];
      for(var i=0;i<=12;i++){ var t=i/12;
        var an = t*Math.PI*2;
        // dash for 2/3, gap for 1/3
        if((i+ddi)%3===2) continue;
        pts.push(new THREE.Vector3(Math.cos(an)*8.0, dy, Math.sin(an)*4.5));
        if(pts.length>=2){ draw([pts[pts.length-2], pts[pts.length-1]], dd%3===0?lnGold:lnDim); pts=[pts[pts.length-1]]; }
      }
    }
  }
  // NEW KIND 2: ZIGZAG accents (3x = 24 zigzags)
  for(var zg=0; zg<24; zg++){
    var pts=[], zy = 10-zg*0.8;
    for(var i=0;i<=20;i++){ var t=i/20;
      var zx = -7+t*14;
      var zz = 5.0+((i%2)?0.4:-0.4);
      pts.push(new THREE.Vector3(zx, zy, zz));
    }
    for(var zi=0; zi<pts.length-1; zi++) draw([pts[zi], pts[zi+1]], zg%4===0?lnGold:lnCyan);
  }
  // NEW KIND 3: SPIRAL details (3x = 18 spirals)
  [-1,1].forEach(function(sd){
    for(var sp=0; sp<9; sp++){
      var pts=[], sy = 8-sp*1.5;
      for(var i=0;i<=30;i++){ var t=i/30;
        var an = t*Math.PI*4, r = 2.5-t*2.0;
        pts.push(new THREE.Vector3(sd*8+Math.cos(an)*r, sy+t*1.0, 3.0+Math.sin(an)*r));
      }
      draw(pts, sp%3===0?lnGold:lnCyan);
    }
  });
  // TACTICAL PLATE CARRIER — black
  for(var pc2=0; pc2<6; pc2++){
    var ppts=[], py = 11-pc2*1.5;
    for(var i=0;i<=20;i++){ var t=i/20, an=t*Math.PI*2;
      if(Math.cos(an)<-0.3 || Math.cos(an)>0.3) continue;
      ppts.push(new THREE.Vector3(Math.cos(an)*8.5, py, Math.sin(an)*5.0));
    }
    for(var sgi=0; sgi<ppts.length-1; sgi++) drawDark([ppts[sgi], ppts[sgi+1]], lnBlack);
  }
  // STEEL SHOULDER PLATES
  [-1,1].forEach(function(sd){
    for(var sp2=0; sp2<4; sp2++){
      var pts=[];
      for(var i=0;i<=14;i++){ var an=i/14*Math.PI;
        pts.push(new THREE.Vector3(sd*13+Math.cos(an)*4.0, 12+Math.sin(an)*2.0-sp2*0.5, 4.0));
      }
      drawDark(pts, lnSteel);
    }
  });
  // CHROME CHEST PLATE
  for(var cp=0; cp<3; cp++){
    var pts=[];
    for(var i=0;i<=16;i++){ var t=i/16;
      pts.push(new THREE.Vector3(-4+t*8, 8-cp*1.2, 5.5-Math.sin(t*Math.PI)*0.5));
    }
    drawDark(pts, lnChrome);
  }
  // ===== COLLAR ORNAMENT — decorative neck ring =====
  for(var cor=0; cor<3; cor++){
    var pts=[], cr = 4.2-cor*0.4;
    for(var i=0;i<=32;i++){ var an=i/32*Math.PI*2;
      var wob = Math.sin(an*12)*0.15;
      pts.push(new THREE.Vector3(Math.cos(an)*(cr+wob), 13.5-cor*0.7, Math.sin(an)*(cr+wob)*0.8));
    }
    draw(pts, cor===1?lnGold:lnCyan);
  }
  // ===== WAIST SASH — decorative belt =====
  for(var ws=0; ws<4; ws++){
    var pts=[], wy = -1-ws*0.5, ww = 7.5-ws*0.2;
    for(var i=0;i<=32;i++){ var an=i/32*Math.PI*2;
      var wob = Math.sin(an*10+ws)*0.12;
      pts.push(new THREE.Vector3(Math.cos(an)*(ww+wob), wy, Math.sin(an)*(ww+wob)*0.75));
    }
    draw(pts, ws%2?lnGold:lnCyan);
  }

  // ===== ARMS — contour lines on cylinders =====
  [-1,1].forEach(function(sd){
    var ax = sd*13;
    // upper arm + forearm as one tapered form
    // ARM SURFACE — dense wrap
    for(var as2=0; as2<20; as2++){
      var apts=[], ay2 = 8-as2*1.0;
      for(var ai=0;ai<=16;ai++){ var aan=ai/16*Math.PI*2;
        apts.push(new THREE.Vector3(ax+Math.cos(aan)*2.4, ay2, 6.5+Math.sin(aan)*2.0));
      }
      draw(apts, as2%5===0?lnGold:lnCyan);
    }
    // RULED MECHANICAL — straight precision lines on arms
    for(var rl=0; rl<8; rl++){
      var pts=[];
      for(var ri=0; ri<=10; ri++){
        pts.push(new THREE.Vector3(ax-2.5+rl*0.7, 8-ri*1.9, 6.5));
      }
      draw(pts, lnDim);
    }
    for(var ar=0; ar<12; ar++){
      var ay = 8-ar*1.8;
      var aw = 2.8-ar*0.06;
      var pts=[];
      for(var i=0;i<=16;i++){ var an=i/16*Math.PI*2;
        pts.push(new THREE.Vector3(ax+Math.cos(an)*aw, ay, 4+Math.sin(an)*aw));
      }
      draw(pts, ar%4===0?lnGold:lnCyan);
    }
    // cannon: line-art barrel
    var bx = ax;
    for(var br=0; br<8; br++){
      var by = -10, bz = 7+br*1.8, bw = 1.6-br*0.05;
      var pts=[];
      for(var i=0;i<=12;i++){ var an=i/12*Math.PI*2;
        pts.push(new THREE.Vector3(bx+Math.cos(an)*bw, by+Math.sin(an)*bw, bz));
      }
      draw(pts, sd<0?lnGold:lnCyan);
    }
    // muzzle ring
    var mpts=[];
    for(var i=0;i<=16;i++){ var an=i/16*Math.PI*2;
      mpts.push(new THREE.Vector3(bx+Math.cos(an)*1.4, -