/* Pakstoor :: pks-flyin.css :: v1.2-000010 :: 2026-06-11 */
/* ============================================================
 *  Site-wide card fly-in (companion: js/pks-flyin.js).
 *
 *  Generalisation of the /about pattern (pks-about-flyin) to the
 *  public content pages: help, safety, how-it-works, trust,
 *  contact, protected-dispute-review, privacy, popia, cookies,
 *  terms, legal-disclosure, trust-progress. /about keeps its own
 *  original pair; admin pages and listing grids are excluded.
 *
 *  Cards fly in from the left or right screen edge and decelerate
 *  STRAIGHT into their resting position (no overshoot, no float),
 *  each from the side of the screen it lives on so paths never
 *  cross. Driven by --fly (0 → 1) per card.
 *
 *  Uses the independent `translate` / `rotate` CSS properties —
 *  NOT `transform` — so hover transforms (card tilt, translateY
 *  hovers) compose instead of fighting. Older browsers ignore
 *  these and show the cards in place. --fly defaults to 1 →
 *  identity, so no-JS and reduced-motion render every page
 *  exactly as before.
 *
 *  The selector list is the UNION across all wired pages — an
 *  element here only moves if pks-flyin.js drives it, and only
 *  pages that link this file are affected at all.
 * ============================================================ */

.dossier-card,
.dossier-disclosure,
.dossier-evidence-row,
.dossier-contact-card,
.pks-help-card,
.hp-evidence-step,
.pks-visual-card,
.sf-report-tile,
.sf-rep-outcome,
.hiw-process-card,
.hiw-step,
.pks-trust-rung,
.pks-trust-caveat,
.ctc-desk,
.ctc-office-card,
.ctc-alt-card,
.pdr-art-lane,
.pr-right,
.pr-pillar,
.pp-art-condition,
.pp-art-right,
.paia-doc-card,
.pks-disc-identity,
.tp-stat,
.cat-tile,
.ab-pcard,
.pks-flow-node,
.pks-flow-arrow,
.pks-operator-node,
.pks-operator-arrow,
.pks-timeline-node,
.pks-timeline-arrow,
.sf-courier-node,
.sf-timeline-row,
.sf-rep-tl-step,
.sf-rep-not-card,
.sf-rep-conf-card,
.sf-rep-console-chip,
.sf-wont-grid > li,
.sf-module-art,
.sf-cta,
.stops-card,
.trust-journey-step,
[data-fly-from] {
  /* x = fan sweep (proportional to grid position), y = rise for
     center-of-row cards (--fly-up, set per card by the JS) */
  translate:
    calc((1 - var(--fly, 1)) * var(--fly-from, -70vw))
    calc((1 - var(--fly, 1)) * var(--fly-up, 0px));
  rotate: calc((1 - var(--fly, 1)) * var(--fly-rot, -4deg));
}

@media (prefers-reduced-motion: reduce) {
  .dossier-card,
  .dossier-disclosure,
  .dossier-evidence-row,
  .dossier-contact-card,
  .pks-help-card,
  .hp-evidence-step,
  .pks-visual-card,
  .sf-report-tile,
  .sf-rep-outcome,
  .hiw-process-card,
  .hiw-step,
  .pks-trust-rung,
  .pks-trust-caveat,
  .ctc-desk,
  .ctc-office-card,
  .ctc-alt-card,
  .pdr-art-lane,
  .pr-right,
  .pr-pillar,
  .pp-art-condition,
  .pp-art-right,
  .paia-doc-card,
  .pks-disc-identity,
  .tp-stat,
  .cat-tile,
  .ab-pcard,
  .pks-flow-node,
  .pks-flow-arrow,
  .pks-operator-node,
  .pks-operator-arrow,
  .pks-timeline-node,
  .pks-timeline-arrow,
  .sf-courier-node,
  .sf-timeline-row,
  .sf-rep-tl-step,
  .sf-rep-not-card,
  .sf-rep-conf-card,
  .sf-rep-console-chip,
  .sf-wont-grid > li,
  .sf-module-art,
  .sf-cta,
  .stops-card,
  .trust-journey-step,
  [data-fly-from] {
    translate: 0 0;
    rotate: 0deg;
  }
}
