/* src/figures/figures.css — the people's strokes (ported from scratchpad/rig-v2 lib/figures.css; its full notes are
   there). Filled depth layers with a two-weight contour: .fs outer silhouette, .fi interior overlap line, .fp paper
   knockout, .ft detail lines, .fb a carried member behind, .fa an accessory line. Widths are on-screen px: geometry is
   in world cm and --k = 1 / zoom (FIGURES writes it on each mount group). */
.fig {
  /* on-screen height of the figure (--fh: its height in world px, set by render.js); every weight below is a
     continuous function of it, so a camera zoom never makes the outline jump at a level-of-detail boundary */
  --hpx: calc(var(--fh, 175px) / var(--k));
  --fs: clamp(.82px, calc(.82px + (var(--hpx) - 40px) * .0086), 1.25px);    /* outer silhouette: 40 px .82 -> 90 px 1.25 */
  --fi: clamp(.5px, calc(.5px + (var(--hpx) - 40px) * .0024), .62px);      /* interior overlap line */
  --fm: clamp(0px, calc((96px - var(--hpx)) * .022), 1.15px);              /* minimum paper core: grows as figures shrink */
  --fd: clamp(.5px, calc(.5px + (var(--hpx) - 45px) * .0005), .54px);     /* detail lines */
  --fwp: max(var(--fw), calc(var(--k) * var(--fm)));
}
.fig[data-lod="2"] { --fd: .55px; }
.hidpi .fig { --fm: clamp(0px, calc((70px - var(--hpx)) * .012), .5px); }
/* the detail pass fades in across the bottom of the mid band (the scene sets --dop); the identity pass (.fid: hat
   brims, a hi-vis band, the inseam, carried props) never fades */
.fig .fdt { opacity: var(--dop, 1); }
.fig .fs, .fig .fi, .fig .fp, .fig .ft, .fig .fa { stroke-linecap: round; stroke-linejoin: round; }
.fig .fs, .fig .fi, .fig .ft, .fig .fa { stroke-opacity: var(--fio, 1); }
.fig .fs { fill: none; stroke: var(--ink); stroke-width: calc(var(--fwp) + var(--k) * 2 * var(--fs)); }
.fig .fi { fill: none; stroke: var(--ink); stroke-width: calc(var(--fwp) + var(--k) * 2 * var(--fi)); }
.fig .fp { fill: var(--paper); stroke: var(--paper); stroke-width: var(--fwp); }
.fig .ft { fill: var(--paper); stroke: var(--ink); stroke-width: calc(var(--k) * var(--fd)); }
/* carried members behind the figure (a beam): an opaque object with a medium outline */
.fig .ft.fb { stroke-width: calc(var(--k) * .85px); }
.fig .fa { fill: none; stroke: var(--ink); stroke-width: calc(var(--k) * 1.3px); }
