/* Voidhaus micro-craft token law — the single source for house metrics.
   Every house-chrome font-size / line-height / tracking / spacing / max-width
   references one of these. Declared exceptions (product mockups, decorative 空
   glyphs) are enumerated in scripts/guard.sh check 10. */
:root{
  /* TYPE — 8 sizes, nothing else (clamp where fluid) */
  --t-cap:    11px;                       /* caps labels / eyebrows            */
  --t-meta:   12.5px;                     /* chips, footers, captions          */
  --t-body-s: 14px;                       /* secondary prose                   */
  --t-body:   16px;                       /* primary prose                     */
  --t-lede:   19px;                       /* section ledes                     */
  --t-h3:     24px;                       /* card / sub heads                  */
  --t-h2:     clamp(30px, 4.6vw, 52px);   /* section titles                    */
  --t-h1:     clamp(52px, 8vw, 104px);    /* page heroes                       */

  /* LINE-HEIGHT — 4 */
  --lh-display: 1.08;
  --lh-head:    1.2;
  --lh-prose:   1.6;
  --lh-caps:    1.4;

  /* TRACKING — 5 */
  --tr-display: -0.01em;
  --tr-h3:       0;
  --tr-prose:    0;
  --tr-caps:     0.28em;
  --tr-wide:     0.44em;

  /* SPACING — 4px grid, 10 steps */
  --s1: 4px;  --s2: 8px;  --s3: 12px; --s4: 16px; --s5: 24px;
  --s6: 32px; --s7: 48px; --s8: 64px; --s9: 96px; --s10: 128px;

  /* MAX-WIDTHS — 2 */
  --mw-prose: 640px;
  --mw-wide:  1100px;

  /* MOTION — 4 durations, 3 easings. Nothing else. Ambient keyframe loops
     (breathe / drift / ticker / bell / ignition) are decorative exceptions. */
  --dur-1: 120ms;   /* micro: hovers, colour shifts        */
  --dur-2: 240ms;   /* standard: underlines, chips, in-place */
  --dur-3: 480ms;   /* section reveals                      */
  --dur-4: 720ms;   /* page transitions only                */
  --ease-out:  cubic-bezier(.2,.7,.2,1);   /* entrances */
  --ease-in:   cubic-bezier(.6,0,.8,.4);   /* exits     */
  --ease-both: cubic-bezier(.45,0,.2,1);   /* morphs    */
}
