/* ============================================================================
   VICE — MOTION TOKENS  ·  v1  (spec §5 — THE BUDGET)
   The rAF budget (33ms ≈ 30fps) lives in engine/vice-engine.js `loop()`, not
   here — a unitless CSS number could not drive a canvas anyway. This sheet
   carries the ONE easing curve and the two motion-kill rules (calm + reduced
   motion), both scoped to VICE surfaces so a consumer's own page is never reset.
   ==========================================================================*/

:root {
  --vice-ease: cubic-bezier(.4, 0, .2, 1); /* @kind other */
}

/* Law 1 — THE SCENE IS DRAWN, NOT IMAGED. Any VICE canvas wears this. */
.vice-canvas {
  image-rendering: pixelated;
  image-rendering: -moz-crisp-edges;
  image-rendering: crisp-edges;
  display: block;
  width: 100%;
  height: 100%;
}

/* Global calm flag (DECK §6) — one class on <body> kills all motion, scoped so
   it silences OUR scene, never the host page. The canvas half is in loop(). */
.vice-calm .vice-stage,
.vice-calm .vice-stage *,
.vice-calm .vice-stage *::before,
.vice-calm .vice-stage *::after {
  animation: none !important;
  transition: none !important;
}

/* Reduced motion — scoped to VICE surfaces only. */
@media (prefers-reduced-motion: reduce) {
  .vice-stage, .vice-stage *,
  .vice-stage *::before, .vice-stage *::after {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
  }
}
