/* Tokens globais do Soliker: espaçamento e motion. Única fonte destes valores.
   Carregado antes de app.css e de todas as páginas de artefato, para que nenhuma
   tela use valores próprios. Regra de uso: padding, gap e margin usam --sp-N;
   durações e curvas usam --dur-* e --ease*. Nunca px ou ms fixo no componente. */

/* Escala de espaçamento: --sp-N = 2N px (passo de 2 px). Mapa completo em docs/qa/integra8/ESCALA.md. */
:root {
  --sp-1: 2px;
  --sp-2: 4px;
  --sp-3: 6px;
  --sp-4: 8px;
  --sp-5: 10px;
  --sp-6: 12px;
  --sp-7: 14px;
  --sp-8: 16px;
  --sp-12: 24px;

  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --ease-sharp: cubic-bezier(0.165, 0.84, 0.44, 1);
  --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
  --dur-fast: 120ms;
  --dur-base: 200ms;
  --dur-slow: 300ms;
  --dur-drawer: 500ms;
}

/* prefers-reduced-motion vale em todas as páginas que carregam este arquivo:
   durações e curvas caem para o mínimo e nenhuma animação se repete. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-fast: 0.01ms;
    --dur-base: 0.01ms;
    --dur-slow: 0.01ms;
    --dur-drawer: 0.01ms;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  /* Entradas dos artefatos: sem animação sob reduced motion. Ficam aqui, e não em cada CSS de página,
     para o reduced motion ter uma única fonte. */
  .artifact-frame,
  .av-people {
    animation: none !important;
  }
}
