/* ag-rollcall · seven rails, every agent accounted for (01 Discover, white band).
   Desktop plan 1232 x 344: rails at x = 24 + i*176 (the spec's 88 + i*176 pushed rail 7's labels ~50px past the content edge),
   each rail's labels live inside its own 152px column; rails run y=0 to the baseline at y=304; labels at x+12, y=40; root join at y=176;
   rail 6 terminator at y=250; caption row at y=320. x scales with the width, y is fixed.
   Solid 1px hairlines only, faded in over their top 48px on the stroke itself. No pulses: detection method is not described.
   Scoped under .aa-rollcall. The markup is the final frame; .is-live (added by asset.js) rewinds it. */
@property --aa-low{syntax:"<number>";inherits:false;initial-value:0}
.aa-rollcall{
  --aa-t1:var(--t1,120ms);--aa-t2:var(--t2,200ms);--aa-t3:var(--t3,320ms);--aa-t4:var(--t4,560ms);--aa-t5:var(--t5,900ms);
  --aa-draw:var(--ease-draw,cubic-bezier(.45,.05,.25,1));--aa-ease:var(--ease,cubic-bezier(.25,1,.5,1));
  --aa-bg:#fff;
  position:relative;margin:0;color:var(--ink);
}
.aa-rollcall .aa-rk-stage{position:relative;height:344px}
.aa-rollcall .aa-rk-rails{position:absolute;inset:0 0 auto 0;height:304px}
.aa-rollcall .aa-rk-r{position:absolute;top:0;left:calc((24 + var(--i) * 176) / 1232 * 100%);width:calc(152 / 1232 * 100%);height:304px}

/* the rail: base (governed ink-40), dashed overlay (ungoverned ink-60, 3 on 4 off), solid overlay (enrolled) */
.aa-rollcall .aa-rk-line{position:absolute;left:0;top:0;width:1px;height:304px;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 48px);mask-image:linear-gradient(to bottom,transparent 0,#000 48px)}
.aa-rollcall .aa-rk-line i{position:absolute;inset:0}
.aa-rollcall .aa-rk-l0{background:var(--ink-40)}
.aa-rollcall .is-ungov .aa-rk-l0{background:transparent}
.aa-rollcall .aa-rk-dash{background:repeating-linear-gradient(to bottom,var(--ink-60) 0 3px,transparent 3px 7px)}
.aa-rollcall .aa-rk-solid{background:var(--ink-40)}
.aa-rollcall .is-enrol .aa-rk-dash{opacity:0}
/* denied: the rail stops at the terminator; below it the stroke is gone (--aa-low 0 = gone) */
.aa-rollcall .is-deny .aa-rk-line{
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 48px,#000 249px,rgba(0,0,0,var(--aa-low)) 249px);
          mask-image:linear-gradient(to bottom,transparent 0,#000 48px,#000 249px,rgba(0,0,0,var(--aa-low)) 249px)}
.aa-rollcall .aa-rk-term{position:absolute;left:-5.5px;top:249.25px;width:12px;height:1.5px;background:var(--deny)}

/* labels: tag line, 4px, handle (agents are mono) */
.aa-rollcall .aa-rk-lab{position:absolute;left:12px;right:8px;top:40px;display:flex;flex-direction:column;gap:4px}
.aa-rollcall .aa-rk-h{order:2;font:500 12px/16px var(--mono);color:var(--ink)}
.aa-rollcall .aa-rk-tag{order:1;display:inline-grid;font:400 10px/14px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-40)}
.aa-rollcall .aa-rk-tag>span,.aa-rollcall .aa-rk-own>.aa-rk-was,.aa-rollcall .aa-rk-own>.aa-rk-now{grid-area:1/1}
.aa-rollcall .aa-rk-was{opacity:0}

/* the root: a 5px ink dot on the rail and a 14px stub to the owner (people are sans); no identity = a hollow circle, no stub */
.aa-rollcall .aa-rk-own{position:absolute;left:0;right:4px;top:167px;display:grid;padding-left:20px;font-size:13px;line-height:18px;color:var(--ink-80)}
.aa-rollcall .aa-rk-join{position:absolute;left:-2px;top:6.5px;width:5px;height:5px;border-radius:50%;background:var(--ink)}
.aa-rollcall .aa-rk-join::after{content:"";position:absolute;left:2.5px;top:2px;width:13.5px;height:1px;background:var(--ink);transform-origin:0 50%}
.aa-rollcall .is-ungov .aa-rk-join{background:var(--aa-bg);box-shadow:inset 0 0 0 1px var(--ink-40)}
.aa-rollcall .is-ungov .aa-rk-join::after{display:none}
.aa-rollcall .is-enrol .aa-rk-join{background:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.aa-rollcall .is-enrol .aa-rk-join::after{display:block}
.aa-rollcall .aa-rk-none{color:var(--ink-40)}
.aa-rollcall .aa-rk-suf{display:none}
.aa-rollcall .aa-rk-den{position:absolute;left:12px;right:4px;top:244px;font:400 11px/12px var(--mono);color:var(--deny)}

/* baseline and caption row */
.aa-rollcall .aa-rk-base{position:absolute;left:0;right:0;top:304px;height:1px;background:var(--ink-15)}
.aa-rollcall .aa-rk-sys{position:absolute;left:0;top:316px;font:400 11px/16px var(--mono);color:var(--ink-40)}
.aa-rollcall .aa-rk-foot{position:absolute;right:0;top:316px;display:flex;align-items:center;gap:12px;font:400 12px/16px var(--mono);color:var(--ink)}
.aa-rollcall .aa-rk-count b{font-weight:500}
.aa-rollcall .aa-rk-div{width:1px;height:12px;background:var(--ink-15)}
.aa-rollcall .aa-rk-demo{font-size:11px;color:var(--ink-40)}

/* ---- live: rewind (no transitions), then each .is-* state transitions in ---- */
.aa-rollcall.is-live .aa-rk-line{clip-path:inset(0 0 100% 0)}
.aa-rollcall.is-live .aa-rk-r.is-0 .aa-rk-line{clip-path:inset(0);transition:clip-path var(--aa-t5) var(--aa-draw)}
.aa-rollcall.is-live .aa-rk-l0{background:var(--ink-08)}
.aa-rollcall.is-live .aa-rk-r.is-gov.is-a .aa-rk-l0{background:var(--ink-40);transition:background-color var(--aa-t2) linear}
.aa-rollcall.is-live .aa-rk-r.is-ungov.is-a .aa-rk-l0{background:transparent;transition:background-color var(--aa-t4) linear}
.aa-rollcall.is-live .aa-rk-dash{clip-path:inset(0 0 100% 0)}
.aa-rollcall.is-live .aa-rk-r.is-a .aa-rk-dash{clip-path:inset(0);transition:clip-path var(--aa-t4) var(--aa-draw)}
.aa-rollcall.is-live .aa-rk-r.is-enrol .aa-rk-dash{opacity:1}
.aa-rollcall.is-live .aa-rk-r.is-enrol.is-h .aa-rk-dash{opacity:0;transition:opacity var(--aa-t3) linear 120ms}
.aa-rollcall.is-live .aa-rk-r.is-enrol .aa-rk-solid{clip-path:inset(0 0 100% 0)}
.aa-rollcall.is-live .aa-rk-r.is-enrol.is-h .aa-rk-solid{clip-path:inset(0);transition:clip-path var(--aa-t4) var(--aa-draw)}
.aa-rollcall.is-live .aa-rk-r.is-deny .aa-rk-line{--aa-low:1}
.aa-rollcall.is-live .aa-rk-r.is-deny.is-f .aa-rk-line{--aa-low:0;transition:clip-path var(--aa-t5) var(--aa-draw),--aa-low var(--aa-t3) linear}
.aa-rollcall.is-live .aa-rk-term{transform:scaleX(0)}
.aa-rollcall.is-live .aa-rk-r.is-e .aa-rk-term{transform:none;transition:transform var(--aa-t2) var(--aa-ease)}
.aa-rollcall.is-live .aa-rk-lab{opacity:0;transform:translateY(6px)}
.aa-rollcall.is-live .aa-rk-r.is-b .aa-rk-lab{opacity:1;transform:none;transition:opacity var(--aa-t3) var(--aa-ease),transform var(--aa-t3) var(--aa-ease)}
.aa-rollcall.is-live .aa-rk-join{transform:scale(0)}
.aa-rollcall.is-live .aa-rk-r.is-c .aa-rk-join{transform:none;transition:transform var(--aa-t1) var(--aa-ease),background-color var(--aa-t2) linear,box-shadow var(--aa-t2) linear}
.aa-rollcall.is-live .aa-rk-r.is-ungov .aa-rk-join{transform:scale(.4);opacity:0}
.aa-rollcall.is-live .aa-rk-r.is-ungov.is-c .aa-rk-join{transform:none;opacity:1;transition:transform var(--aa-t2) var(--aa-ease),opacity var(--aa-t2) linear,background-color var(--aa-t2) linear,box-shadow var(--aa-t2) linear}
.aa-rollcall.is-live .aa-rk-r.is-enrol .aa-rk-join{background:var(--aa-bg);box-shadow:inset 0 0 0 1px var(--ink-40)}
.aa-rollcall.is-live .aa-rk-r.is-enrol.is-e .aa-rk-join{background:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.aa-rollcall.is-live .aa-rk-join::after{transform:scaleX(0)}
.aa-rollcall.is-live .aa-rk-r.is-gov.is-c .aa-rk-join::after,.aa-rollcall.is-live .aa-rk-r.is-enrol.is-f .aa-rk-join::after{transform:none;transition:transform var(--aa-t2) var(--aa-draw)}
.aa-rollcall.is-live .aa-rk-who,.aa-rollcall.is-live .aa-rk-none{opacity:0}
.aa-rollcall.is-live .aa-rk-r.is-gov.is-d .aa-rk-who{opacity:1;transition:opacity var(--aa-t3) linear}
.aa-rollcall.is-live .aa-rk-r.is-ungov.is-c .aa-rk-none{opacity:1;transition:opacity var(--aa-t3) linear}
.aa-rollcall.is-live .aa-rk-r.is-enrol .aa-rk-now{opacity:0}
.aa-rollcall.is-live .aa-rk-r.is-enrol .aa-rk-tag .aa-rk-was{opacity:1}
.aa-rollcall.is-live .aa-rk-r.is-enrol.is-g .aa-rk-was{opacity:0;transition:opacity var(--aa-t3) linear}
.aa-rollcall.is-live .aa-rk-r.is-enrol.is-g .aa-rk-now{opacity:1;transition:opacity var(--aa-t3) linear}
.aa-rollcall.is-live .aa-rk-den{opacity:0}
.aa-rollcall.is-live .aa-rk-r.is-g .aa-rk-den{opacity:1;transition:opacity var(--aa-t3) linear}
.aa-rollcall.is-live .aa-rk-base{clip-path:inset(0 100% 0 0)}
.aa-rollcall.is-live.is-draw .aa-rk-base{clip-path:inset(0);transition:clip-path var(--aa-t5) var(--aa-draw)}
.aa-rollcall.is-live .aa-rk-sys{opacity:0}
.aa-rollcall.is-live.is-sys .aa-rk-sys{opacity:1;transition:opacity var(--aa-t3) linear}
.aa-rollcall.is-live .aa-rk-foot{opacity:0;transform:translateY(6px)}
.aa-rollcall.is-live.is-count .aa-rk-foot{opacity:1;transform:none;transition:opacity var(--aa-t3) var(--aa-ease),transform var(--aa-t3) var(--aa-ease)}
.aa-rollcall.is-sim,.aa-rollcall.is-sim *,.aa-rollcall.is-sim *::after{transition:none!important}

/* ---- tablet: tighter labels; owner addresses may break before the @ ---- */
@media (max-width:1100px){
  .aa-rollcall .aa-rk-h{font-size:11.5px}
  .aa-rollcall .aa-rk-own{font-size:12.5px}
  .aa-rollcall .aa-rk-tag{letter-spacing:.06em}
}

/* ---- narrow: rails become rows; a vertical systems baseline on the right; tags and join dots drop ---- */
@media (max-width:900px){
  .aa-rollcall .aa-rk-stage{height:auto;padding-top:24px}
  .aa-rollcall .aa-rk-rails{position:relative;inset:auto;height:auto}
  .aa-rollcall .aa-rk-r{position:relative;left:auto;top:auto;width:auto;height:56px}
  .aa-rollcall .aa-rk-line{top:36px;width:calc(100% - 16px);height:1px;
    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 32px);mask-image:linear-gradient(to right,transparent 0,#000 32px)}
  .aa-rollcall .aa-rk-dash{background:repeating-linear-gradient(to right,var(--ink-60) 0 3px,transparent 3px 7px)}
  .aa-rollcall .is-deny .aa-rk-line{
    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 32px,#000 calc(100% - 47px),rgba(0,0,0,var(--aa-low)) calc(100% - 47px));
            mask-image:linear-gradient(to right,transparent 0,#000 32px,#000 calc(100% - 47px),rgba(0,0,0,var(--aa-low)) calc(100% - 47px))}
  .aa-rollcall .aa-rk-term{left:calc(100% - 63.75px);top:30px;width:1.5px;height:12px}
  .aa-rollcall .aa-rk-lab{left:0;right:auto;top:11px;display:block;line-height:18px}
  .aa-rollcall .aa-rk-tag{display:none}
  .aa-rollcall .aa-rk-h{font-size:12px;line-height:18px}
  .aa-rollcall .aa-rk-own{left:auto;right:28px;top:11px;padding:0;text-align:right;font-size:13px}
  .aa-rollcall .aa-rk-own wbr{display:none}
  .aa-rollcall .aa-rk-join{display:none}
  .aa-rollcall .aa-rk-suf{display:inline;color:var(--ink-40)}
  .aa-rollcall .aa-rk-den{left:auto;right:28px;top:13px;line-height:16px;text-align:right}
  .aa-rollcall .is-deny .aa-rk-none{opacity:0}
  .aa-rollcall .aa-rk-base{left:auto;right:16px;top:24px;width:1px;height:392px}
  .aa-rollcall .aa-rk-sys{left:auto;right:10px;top:0;font-size:10px;line-height:16px}
  .aa-rollcall .aa-rk-foot{position:static;margin-top:20px;flex-wrap:wrap;gap:8px 12px}

  .aa-rollcall.is-live .aa-rk-line,.aa-rollcall.is-live .aa-rk-dash,.aa-rollcall.is-live .aa-rk-r.is-enrol .aa-rk-solid{clip-path:inset(0 100% 0 0)}
  .aa-rollcall.is-live .aa-rk-term{transform:scaleY(0)}
  .aa-rollcall.is-live .aa-rk-base{clip-path:inset(0 0 100% 0)}
  .aa-rollcall.is-live .aa-rk-r.is-deny .aa-rk-none{opacity:0}
  .aa-rollcall.is-live .aa-rk-r.is-deny.is-c .aa-rk-none{opacity:1}
  .aa-rollcall.is-live .aa-rk-r.is-deny.is-g .aa-rk-none{opacity:0;transition:opacity var(--aa-t3) linear}
}
@media (max-width:760px){
  .aa-rollcall .aa-rk-own{font-size:12.5px}
}
/* very narrow phones: the "enrolled" suffix drops under the rail so it never meets the handle */
@media (max-width:380px){
  .aa-rollcall .aa-rk-suf{position:absolute;right:0;top:31px;font:400 10px/14px var(--mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
  .aa-rollcall .aa-rk-sep{display:none}
}

@media (prefers-reduced-motion:reduce){
  .aa-rollcall *,.aa-rollcall *::after{transition:none!important}
}
@media (forced-colors:active){
  .aa-rollcall .aa-rk-line i,.aa-rollcall .aa-rk-base,.aa-rollcall .aa-rk-join,.aa-rollcall .aa-rk-join::after,.aa-rollcall .aa-rk-term,.aa-rollcall .aa-rk-div{forced-color-adjust:none}
  .aa-rollcall .aa-rk-l0,.aa-rollcall .aa-rk-solid,.aa-rollcall .aa-rk-base,.aa-rollcall .aa-rk-join,.aa-rollcall .aa-rk-join::after,.aa-rollcall .aa-rk-term,.aa-rollcall .aa-rk-div{background:CanvasText}
  .aa-rollcall .is-ungov .aa-rk-l0{background:transparent}
  .aa-rollcall .aa-rk-dash{background:repeating-linear-gradient(to bottom,CanvasText 0 3px,transparent 3px 7px)}
  .aa-rollcall .is-ungov .aa-rk-join{background:Canvas;box-shadow:inset 0 0 0 1px CanvasText}
}
