<!-- SAGA2 · part 98 -->
7-nw*0.1,-0.8-nw*0.15,6.1]], iG); // left ala
      L([[1.0+nw*0.15,-0.5-nw*0.2,5.9],[0.7+nw*0.1,-0.8-nw*0.15,6.1]], iG); // right ala
    }
    // Lips defined (upper and lower, with cupid's bow)
    L([[-1.2,-2.6,6.0],[-0.4,-2.5,6.2],[0,-2.45,6.25],[0.4,-2.5,6.2],[1.2,-2.6,6.0]], iG); // upper lip
    L([[-1.0,-3.0,5.9],[0,-3.15,6.0],[1.0,-3.0,5.9]], iG); // lower lip
    L([[0,-2.45,6.25],[0,-2.7,6.15]], iC); // philtrum to mouth


    // NOSE FRONT — bridge width, nostrils defined
    for(var nb=0;nb<5;nb++){ var nby=3-nb*0.8;
      L([[-0.4-nb*0.08,nby,5.6+nb*0.15],[0.4+nb*0.08,nby,5.6+nb*0.15]], iG); // bridge width
    }
    // Nostrils — anatomical comma shape (not ovals)
    for(var no=0;no<3;no++){ var ns=1-no*0.25;
      // Left: comma (wide outer, narrow inner)
      L([[-1.1*ns,-1.0,6.0],[-0.85*ns,-1.25,6.05],[-0.6*ns,-1.3,6.05],[-0.45*ns,-1.15,6.0]], iD);
      // Right: mirrored comma
      L([[1.1*ns,-1.0,6.0],[0.85*ns,-1.25,6.05],[0.6*ns,-1.3,6.05],[0.45*ns,-1.15,6.0]], iD);
    }
    // Nose tip — rounded definition
    for(var nt=0;nt<3;nt++){ var nty=-0.6-nt*0.2, ntp=[];
      for(var ntx=-0.5;ntx<=0.5;ntx+=0.1){
        ntp.push([ntx, nty - Math.pow(ntx/0.5,2)*0.25, 6.2-nt*0.05]);
      }
      L(ntp, nt==1?iG:iD);
    }
    // MOUTH — larger, more present
    L([[-1.8,-2.7,5.8],[-0.9,-2.55,6.0],[0,-2.5,6.05],[0.9,-2.55,6.0],[1.8,-2.7,5.8]], iG); // upper lip (wider)
    L([[-1.5,-3.1,5.7],[-0.7,-3.25,5.85],[0,-3.3,5.9],[0.7,-3.25,5.85],[1.5,-3.1,5.7]], iG); // lower lip (fuller)
    L([[-1.8,-2.7,5.8],[1.8,-2.7,5.8]], iD); // mouth line


    // STIPPLING — skin texture (dots where light hits, R5)
    function stipple(cx, cy, cz, r, n, mat){
      for(var sd=0;sd<n;sd++){
        var sa=(sd/n)*Math.PI*2 + 0.3, sr=r*(0.3+0.7*((sd*7)%5)/5);
        var sx=cx+Math.cos(sa)*sr, sy=cy+Math.sin(sa)*sr*0.7;
        // tiny dot as 3-point ribbon
        L([[sx-0.03,sy,cz],[sx,sy+0.03,cz],[sx+0.03,sy,cz]], mat);
      }
    }
    stipple(2.5, 0.5, 5.2, 1.2, 12, iC); // right cheek
    stipple(-2.5, 0.5, 5.2, 1.2, 12, iC); // left cheek
    stipple(0, 4.5, 5.5, 0.8, 8, iC); // forehead
    stipple(0, 1.5, 5.8, 0.5, 6, iC); // nose bridge

    // PHILTRUM — two lines nose to lip
    L([[-0.25,-1.5,6.1],[-0.25,-2.2,6.05]], iD);
    L([[0.25,-1.5,6.1],[0.25,-2.2,6.05]], iD);
    // LIPS — more defined (Cupid's bow, full lower)
    L([[-1.8,-2.7,5.8],[-0.9,-2.6,6.0],[-0.3,-2.45,6.1],[0,-2.5,6.12],[0.3,-2.45,6.1],[0.9,-2.6,6.0],[1.8,-2.7,5.8]], iG);
    // CHIN — mental crease + form
    L([[-0.8,-3.8,5.7],[0,-3.9,5.75],[0.8,-3.8,5.7]], iD); // crease under lip
    L([[-1.2,-4.5,5.5],[-0.5,-4.8,5.6],[0,-4.9,5.65],[0.5,-4.8,5.6],[1.2,-4.5,5.5]], iG); // chin curve

    // CHEEKS — fold back to ear, graft into jaw (measure: zygomatic at y=-0.5)
    for(var ck=0;ck<3;ck++){ var cky=-0.3-ck*0.35;
      // Right: nose -> cheekbone -> ear -> fold down to jaw
      L([[2.0,cky,5.5],[3.2,cky-0.2,4.5],[4.5,cky-0.5,3.0],[5.0,cky-1.2,2.0],[4.8,cky-2.0,1.5]], iW);
      // Left: mirror
      L([[-2.0,cky,5.5],[-3.2,cky-0.2,4.5],[-4.5,cky-0.5,3.0],[-5.0,cky-1.2,2.0],[-4.8,cky-2.0,1.5]], iW);
    }

    // NOSE BRIDGE — two lines defining width (graft to topography)
    for(var nbw=-1;nbw<=1;nbw+=2){
      var nbpts=[];
      for(var nby=3.5;nby>=-0.5;nby-=0.4){
        // Follow the topography bulge
        var nx=nbw*0.45;
        var nz=4.8 + 0.9*Math.exp(-(nx*nx+(nby-0)*(nby-0))/2.88); // match v165 deform
        nbpts.push([nx, nby, nz]);
      }
      L(nbpts, iG);
    }


    // === THE HUMAN (v177) — ears, eyelids, nose volume, lip volume, asymmetry, seated features ===
    var ASYM = 0.03; // 3% asymmetry (left vs right)

    // 1. EARS — C-shaped, at sides of head (±5, 0, 0)
    for(var earSide=-1; earSide<=1; earSide+=2){
      var ex = earSide * (5.0 + earSide*ASYM*2); // asymmetry in position
      for(var er=0; er<3; er++){
        var earPts=[], earR = 1.2 + er*0.3;
        for(var ea=-1.2; ea<=1.2; ea+=0.15){
          // C-shape: vertical curve
          var ey = ea * 1.0;
          var ez = Math.cos(ea*1.2) * 0.5;
          earPts.push([ex + earSide*0.2*Math.sin(ea), ey, ez]);
        }
        L(earPts, iG);
      }
      // Inner ear (concha)
      L([[ex,0.5,0.3],[ex+earSide*0.3,0,0.4],[ex,-0.5,0.3]], iD);
    }

    // (v177 eyelids removed v192 — blue discs are the eyes now, one pair)

    // 3. NOSE VOLUME — 3D woven form (not lines)
    // Bridge (2 lines, following topography bulge +0.8)
    for(var nbw=-1; nbw<=1; nbw+=2){
      var nbPts=[];
      for(var nby=2.5; nby>=-0.8; nby-=0.3){
        var nx = nbw*(0.35 + (2.5-nby)*0.08) * (1+nbw*ASYM); // widens to tip, asymmetry
        var nz = 4.8 + 0.8*Math.exp(-(nx*nx+(nby)*(nby))/2.5) + 0.1;
        nbPts.push([nx, nby, nz]);
      }
      L(nbPts, iG);
    }
    // Nose tip (rounded)
    var tipPts=[];
    for(var ta=0; ta<=10; ta++){
      var tan=(ta/10)*Math.PI*2;
      tipPts.push([Math.cos(tan)*0.5, -0.8