/* 20261019-fab-disney (LAB ONLY) — FAB gesture rig inside the ONE #fab. No layout change: #fab stays 60×60 at the same spot;
   the rig overflows the box visually with pointer-events none, so the hit box is exactly today's.
   Rest = today's live fab-rest.png (.fab-base) at full opacity; the rig is opacity 0 and only shows during an arms move.
   Specificity beats the live `#fab img` / `#fab[data-pose] img` / `#fab.tb-bolt-bright img` rules for rig layers only. */
#fab .fab-body,#fab .fab-idle{display:block;position:relative;width:100%;height:100%;pointer-events:none}
#fab .fab-idle{transform-origin:50% 93%}
#fab .fab-body .fab-rig{position:absolute;left:-10.333px;top:-21.333px;width:80.667px;height:89.333px;pointer-events:none;opacity:0;
  transform-origin:50% 57.46%;transform:scale(.925) translate(.875px,-2.375px)}   /* best silhouette fit to fab-rest (IoU .815, wip/fab-disney-20261019-tools/fit.py) */
#fab .fab-body .fab-rig img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;filter:none;translate:none;rotate:none;transition:none;animation:none;transform:none;pointer-events:none}
/* colour-match the rig bolt to fab-rest (rig art is ~23% less saturated); static filter, never animated */
#fab .fab-body .fab-rig .fab-rig-body{filter:saturate(1.3) brightness(1.04) drop-shadow(0 10px 14px rgba(0,0,0,.4))}
#fab .fab-body .fab-rig .fab-crossed{filter:saturate(1.3) brightness(1.04)}
#fab .fab-body .fab-rig .fab-arm-L,#fab .fab-body .fab-rig .fab-pt-L{transform-origin:37.19% 60.82%;transform:rotate(-116deg);opacity:0}
#fab .fab-body .fab-rig .fab-arm-R,#fab .fab-body .fab-rig .fab-pt-R{transform-origin:56.20% 62.69%;transform:rotate(116deg);opacity:0}
#fab .fab-body .fab-rig .fab-think{transform-origin:28.93% 60.07%;opacity:0}
@media (prefers-reduced-motion:reduce){#fab .fab-body .fab-rig{display:none}}
