/* ════════════════════════════════════════════════════════════════════════
   css/firm-pages-sheet.css — THE STAGGER BRIDGE FOR THE FIRM PAGES
   service.tnaado.ca · /firm, /office, /team only

   This file exists for ONE reason and it should never grow past it.

   css/components/contactsheet.css staggers its frames off :nth-child, which
   is correct for the markup the component was written against — a flat strip
   whose frames ARE the siblings:

       <ul data-sheet><li data-sheet-frame>…</li>…</ul>

   The firm pages do not have that markup and must not be rewritten to get
   it. Their photo strips are .fp-frames > .fp-shot > figure.fp-fig, and the
   frame that has to clip the overscan is the FIGURE, not the .fp-shot: the
   figure is the box with the aspect-ratio, and .fp-shot also holds the
   .fp-slug caption line underneath. Put data-sheet-frame on .fp-shot and the
   photograph grows 2% over its own caption for 1.3s; put it on the figure
   and every figure is the first child of its own wrapper, so :nth-child sees
   1 every time and the whole group fires at once.

   So the delay is re-derived here from the position of the WRAPPER. The
   component's own --cs-step is reused rather than a new number invented, and
   the ceiling is the same one it sets: past five steps the stagger stops
   reading as a sequence, so everything beyond shares the fifth delay.

   NOTHING ELSE BELONGS IN THIS FILE. No colour, no spacing, no type. If you
   are about to add a rule here that is not a --cs-d assignment, it belongs
   in the page's own stylesheet or in the component's.
   ════════════════════════════════════════════════════════════════════════ */

/* ── PHOTO STRIPS · .fp-frames > .fp-shot > figure[data-sheet-frame] ────── */
[data-sheet] > .fp-shot:nth-child(2) > [data-sheet-frame] { --cs-d: calc(var(--cs-step) * 1); }
[data-sheet] > .fp-shot:nth-child(3) > [data-sheet-frame] { --cs-d: calc(var(--cs-step) * 2); }
[data-sheet] > .fp-shot:nth-child(4) > [data-sheet-frame] { --cs-d: calc(var(--cs-step) * 3); }
[data-sheet] > .fp-shot:nth-child(n + 5) > [data-sheet-frame] { --cs-d: calc(var(--cs-step) * 4); }

/* ── THE ROSTER · .fp-people > li > .fp-disc[data-sheet-frame] ───────────
   The list items already carry --i as an author-set ordinal (1-based), put
   there for the existing arrival animation in css/firm-pages-motion.css, so
   the roll across the faces reads in roster order without a second set of
   nth-child rules. min() caps it at the component's own five-step ceiling —
   the media group is seven faces and the last of them would otherwise be
   most of a second behind the first. */
.fp-people[data-sheet] > li > [data-sheet-frame] {
  --cs-d: min(calc(var(--cs-step) * (var(--i, 1) - 1)), calc(var(--cs-step) * 4));
}
