# Viz-Spec — declarative animation grammar (self-attesting)

This is the signed, content-addressed animation manifest for the ICore Universal
Visualization System. The surface VERIFIES this artifact's signature before applying
any motion grammar — closing UI supply-chain drift (mirrors EI-core self-attest).

## Grammar
- entrance:   vertical fade/slide only (NO horizontal tabs, ever)
- state:      proof-verify pulse, mesh-node pulse, routing fade — transform/opacity only
- ambient:    mesh heartbeat <=1Hz; CPU-bounded; paused under visibility:hidden / reduced-motion
- attention:  routing pill, activation glow — ephemeral, never infinite loops
- trust:      proof seal pending->ok/bad; never shows "signed" for an unverified node
- motion:     opt-IN via prefers-reduced-motion; sovereignty includes neuro-inclusion

## Tokens (resolved by Viz-core)
- --viz-ok #3ddc84 | --viz-bad #ff5f6d | --viz-pending #4f8cff | --viz-accent #00bfa5
- durations: lock .4s | shake .4s | spin 1.1s | heart 2.4s | fadeIn .3s

## Enforcement
1. Surfaces MUST NOT animate before verifying the viz-spec signature (VIZ_CORE.verifySpec).
2. Unverified spec => fall back to static (no motion), never silent trust.
3. Any motion outside the declared grammar is non-conformant and MUST be rejected.
