/* flat/pages/ai-knowledge-base.css — local rules the system doesn't provide.
   Tokens only, prefix .pg-akb-, no shadows. Linked after flat/flat.css. */

/* The hero is drawn at 480 units wide. flat.css's default --viz-pin of 440 scales it to 0.917,
   which drops a 10-unit label to 9.17 px, under the 9.5 px floor. Pin it at its drawn width. */
.pg-akb-svg { --viz-pin: 480px; }

/* Behaviour 1a: the old centre node drifted on `lp-float` (6s). Drift is banned; the brief's
   substitute is a pulse ring. Opacity only — no transform, no glow, no blur. */
.pg-akb-pulse { opacity: 0.32; animation: pg-akb-pulse 6s var(--ease) infinite; }
@keyframes pg-akb-pulse { 0%, 100% { opacity: 0.32; } 50% { opacity: 0.06; } }

/* Behaviour 1b: the float's meaning was "this node works on what arrives". flat.css has no SVG
   dash-flow utility, so the two connectors carry it. 4 3 dash → -14 is two whole periods. */
.pg-akb-flow { animation: pg-akb-dash 1.6s linear infinite; }
@keyframes pg-akb-dash { to { stroke-dashoffset: -14; } }

/* Behaviours 3–5 (the FAQ disclosure) now use the system's `.disclosure` component
   (flat.css §7c) directly — no page-local styling needed. */

/* flat.css collapses every animation to 0.01ms / 1 iteration under reduce, which lands each
   element on its 100% frame. Both keyframes above already end readable; pinned here anyway. */
@media (prefers-reduced-motion: reduce) {
  .pg-akb-pulse { animation: none; opacity: 0.32; }
  .pg-akb-flow { animation: none; stroke-dashoffset: 0; }
}

