/* ============================================================================
   register-voice.css — Sovereign warm-voice register (Phase 2 Wave 1 stub)
   ============================================================================

   Sprint:  S9-DS-PHASE2-W1
   Source:  governance file id=15 (philosophy v0.5 §4.3 + §7)
            docs/reviews/S9-DS-PHASE1-analysis-v2.md §4.1

   Purpose: Sovereign warm-voice register — scoped layer for Tier 2
            register-crossing isolation. Wave 3 (S9-DS-PHASE3) adds
            Stylelint plugin enforcement; Wave 1 establishes the file
            boundary so the canonical class lives in one auditable
            location.

   Cascade:
     `@layer voice` is declared AFTER `@layer utilities` from
     sovereign.css / tokens.css cascade order. Voice-register declarations
     therefore win over utilities for any element carrying .register-voice
     without requiring !important. Templates that import this file should
     import it after tokens.css.

   Whitelisted consumers (the ONLY places this class may be applied or
   the warm-voice combination may be replicated, per philosophy §4.3):
     - Oracle component (Wave 2: today/tasks/roadmap oracle cards) —
       prose body inside the .oracle component.
     - Hero headlines on flight-deck routes — h1 elements expressing
       day-shape, queue-shape, trajectory-shape framing.
     - Agent provenance — paragraphs marked as agent-authored content
       per philosophy §4.2 boundary-treatment mechanism (Wave 4 wiring).
     - Mobile interstitial micro-oracle (per Phase 1 v2 §5) — the
       below-1280 viewport message uses warm-voice as the only
       non-flight-deck treatment on flight-deck routes.

   ENFORCEMENT NOTE (Wave 3):
     DO NOT replicate the
       font-family: <Instrument Serif | display-flightdeck> + font-style: italic
     combination outside this file or the oracle component CSS.
     Wave 3 CI rule (Stylelint custom plugin per Phase 1 v2 §4.1 primary
     mechanism, with grep fallback) will fail any other declaration. If
     Wave 2 needs warm-voice in a new whitelisted surface, add the surface
     to the whitelist here AND in the Wave 3 plugin config — do not
     re-declare the font combination ad-hoc.
   ============================================================================ */

@layer voice {

  /* The single canonical warm-voice class.
     Inherits size from caller; this class does not impose a size token,
     because warm-voice appears at hero-48px (h1), subtitle-22px (oracle
     prose), and 12-15px (provenance paragraphs / inline italic). The
     caller composes .type-hero / .type-subtitle / inherited body size
     alongside .register-voice. */
  .register-voice {
    font-family: var(--font-display-flightdeck);
    font-style: italic;
    font-weight: 400;
    /* No font-size: caller decides via .type-* utility or context. */
    /* No color: caller decides — register-voice is hue-neutral; oracle
       carries amber accent on borders, prose stays bone. */
  }
}
