/* ═══════════════════════════════════════════════════════════════════════════
   CASCADE LAYER ORDER — SURGICAL (Design-System Coherence SPEC §2 · Track-2 D3)

   Loaded FIRST in every CSS delivery path so the named-layer order is
   established once, up front — not left to first-appearance order as sheets
   load.

   SURGICAL SCOPE (deliberate): only the ENGINE TOKEN layer is named here. The
   engine's token sheets (tokens.css + the generated tokens.archetype/mode/
   derived/fonts/overrides files) are wrapped into `@layer tokens.<sub>`, so
   they become LAYERED and therefore LOSE to any UNLAYERED rule. The per-client
   theme `custom.css` stays UNLAYERED and thus WINS the token cascade — the
   client owns brand via tokens (win-model). base.css, every .hzo-* component,
   archetypes.css and WordPress global-styles are left UNLAYERED on purpose:
   their cascade among each other is unchanged, so the engine's spacing reset
   still beats WP block-gap exactly as today (no gap — the full-wrap regression
   this replaces).

   Token sub-layers (weakest → strongest, matching the enqueue order so the
   identity chain is reorder-proof, not enqueue-order-dependent):
     base       — tokens.css defaults (L1 primitives + L2 semantic + L3 component)
     archetype  — generated tokens.archetype.css (form language)
     mode       — generated light/dark tokens.mode.css
     derived    — reserved (clipped 2026-07; color.php no longer emits)
     fonts      — reserved (clipped 2026-07; typography.php no longer emits)
     widget     — Hozio Studio Live tokens.overrides.css (admin edits win)
   ═══════════════════════════════════════════════════════════════════════════ */

@layer tokens {
    @layer base, archetype, mode, derived, fonts, widget;
}
