/* ═══════════════════════════════════════════════════════════════
   Typography System — editorial model

   ROLES are JOBS, not sizes. Each role names what a piece of text
   DOES in the document (announce, divide, orient, act, etc.).
   A role's family, weight, leading, tracking, and case are FIXED.
   Only its size changes with CONTEXT.

   The 13 roles, by job:
     ANNOUNCE — display, title, heading        (what is this)
     DIVIDE   — section, subsection            (how it's divided)
     ORIENT   — kicker, label, caption         (where are you)
     ENTICE   — deck                           (what follows)
     IDENTIFY — metric                         (a datum named by its value)
     ACT      — ui                             (interactive text)
     TEXT     — body, code                     (running content)

   CONTEXT (sm/md/lg) is a VOLUME KNOB, not a size gradient.
     sm  — background voice   (sidebar, nested card, footnote)
     md  — normal voice       (article body, default page)
     lg  — hero voice         (cover, marquee, hero landing)

   Context travels with nesting via [size] on any ancestor — the
   universal size token system in tokens.css shifts --a-*-size
   tokens so every consuming component tracks the cascade.

   THREE PUBLICATION REGISTERS  (inset · gap · control · type · radius scale together)
     [verse] — Dense product UI (inspectors, tables, toolbars, side rails).
       Smallest scale: tight inset/gap, small controls + type, tight radius
       (max 16px). Type SHIFTS with [size] (body 11/12/13). styles/verse.css.

     Default (productive) — Product UI.
       Static, compressed scale. Announce/Divide roles default to -sm
       because product UI rarely needs hero-scale type. Everything else
       defaults to -md. 1-2 px between tiers. No fluid clamps in UI chrome.

     [prose] — Long-form content (articles, docs, marketing).
       Dynamic scale. All roles default to -md (type PINNED — doesn't shift
       with [size]). Fluid clamps on display/title/metric respond to viewport.
       Reading measure (max-width) + generous insets + rounder radius (max 28px).

   TIERS
     Base defaults to -sm. [size="md"] or [size="lg"] on containers shifts up.
     [verse] keeps the base convention (type shifts with [size]); [prose]
     overrides to -md defaults (pinned) with fluid viewport-responsive clamps.

   FONTS
     --a-font-family-sans    — long-form, marketing body
     --a-font-family-mono    — code blocks
     --a-font-family-display — headings/metric (aliased to sans today)
     --a-font-family-text    — body/label/caption (aliased to sans today)

   VIEWPORT
     Fluid clamps use a 375px → 1440px viewport range.

   4-LAYER STACK
     L1 Primitives → L2 Semantics → L3 Roles → L4 Components
   ═══════════════════════════════════════════════════════════════ */

/* adia:barrel/typography — COMPAT BARREL (public entry; standalone-linked).
   The type system is now split by layer under type/{scale,roles,elements}.css,
   and the presentational attribute API that had drifted in here moved to
   api/{text,layout}.css (v0.6.48 foundation reorg, ADR-0035). The imports
   below reproduce the historical cascade order exactly. */

@import "./type/scale.css" layer(tokens);    /* L1/L2 — families, weights, leading, tracking → tokens layer (ADR-0038) */
@import "./type/roles.css";    /* L3   — 13 roles + h1-h6 + [variant] */
@import "./type/elements.css" layer(elements); /* native element defaults → elements layer (ADR-0038 step 4) */
@import "./api/text.css" layer(utilities);      /* [text-align][weight][color][transform][truncate] → utilities (ADR-0038 step 6) */
@import "./api/layout.css" layer(utilities);    /* [hidden][nomargin][grow] → utilities */
