/* [cafeteria] elevation, radii & spacing — px-resolved convenience aliases.
   Sizes derive from the Figma scale (fig-tokens.css, unitless → ×1px). */

:root {
  /* Radii (px) — Figma radius scale */
  --radius-none: 0;                           /* 0 */
  --radius-xs: calc(var(--scale-100) * 1px);  /* 4 */
  --radius-sm: calc(var(--scale-200) * 1px);  /* 8 */
  --radius-md: calc(var(--scale-300) * 1px);  /* 12 */
  --radius-lg: calc(var(--scale-500) * 1px);  /* 20 */
  --radius-xl: calc(var(--scale-800) * 1px);  /* 32 */
  --radius-full: 9999px;

  /* Spacing (px) — BINDING scale for margin/padding/gap (house-rule §1).
     px-unit aliases of the unitless --spacing-space-* fig tokens; use these
     names everywhere. 0 is allowed for none; snap in-between values to a step. */
  --space-xxs: calc(var(--scale-100) * 1px);   /* 4 */
  --space-xs:  calc(var(--scale-150) * 1px);   /* 6 */
  --space-sm:  calc(var(--scale-200) * 1px);   /* 8 */
  --space-md:  calc(var(--scale-250) * 1px);   /* 10 */
  --space-lg:  calc(var(--scale-300) * 1px);   /* 12 */
  --space-xl:  calc(var(--scale-400) * 1px);   /* 16 */
  --space-2xl: calc(var(--scale-500) * 1px);   /* 20 */
  --space-3xl: calc(var(--scale-600) * 1px);   /* 24 */
  --space-4xl: calc(var(--scale-800) * 1px);   /* 32 */
  --space-5xl: calc(var(--scale-1200) * 1px);  /* 48 */
  --space-gutter: var(--space-3xl);            /* 24 — default gutter */

  /* Legacy numeric aliases (kept for existing usage — prefer the xxs–5xl steps). */
  --space-half: var(--space-xxs);              /* 4 */
  --space-1: var(--space-sm);                  /* 8 */
  --space-2: var(--space-xl);                  /* 16 */
  --space-3: var(--space-3xl);                 /* 24 */
  --space-4: var(--space-4xl);                 /* 32 */
  --space-5: var(--space-5xl);                 /* 48 */

  /* Border widths (px) — house-rule §3. Default hairline is border-xs (1px). */
  --border-none: 0; /* @kind other */
  --border-xs: 1px;
  --border-sm: 1.5px;
  --border-md: 2px;
  --border-lg: 3px;

  /* Icon sizes (px) — house-rule §13. Render icons at these named steps only.
     Aliases of the --scale-* ramp, like every other length token. */
  --icon-default: calc(var(--scale-250) * 1px);  /* 10 */
  --icon-m:  calc(var(--scale-400) * 1px);        /* 16 */
  --icon-l:  calc(var(--scale-500) * 1px);        /* 20 */
  --icon-xl: calc(var(--scale-600) * 1px);        /* 24 */
  --icon-xxl: calc(var(--scale-800) * 1px);       /* 32 */

  /* Elevation — the cafeteria UI is mostly flat; shadows are soft & low. */
  --shadow-xs: 0 1px 2px rgba(35,32,32,0.06);
  --shadow-sm: 0 1px 3px rgba(35,32,32,0.08), 0 1px 2px rgba(35,32,32,0.06);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.10);
  --shadow-lg: 0 12px 32px rgba(0,0,0,0.16);
  --shadow-overlay: 0 24px 64px rgba(0,0,0,0.25);
  --shadow-glow-green: 0 0 24px rgba(53,255,146,0.45);

  /* Hairline inset border used on cards/surfaces throughout the file. */
  --hairline: inset 0 0 0 1px rgba(35,32,32,0.05); /* @kind shadow */
  --hairline-inverse: inset 0 0 0 1px rgba(252,252,252,0.15); /* @kind shadow */

  /* Motion — the house easings & durations behind our signature transitions
     (springy bracket, flower zoom-out, hovers, blinks). */
  --ease-spring:   cubic-bezier(.34, 1.56, .64, 1);   /* @kind other */
  --ease-out:      cubic-bezier(.22, .80, .24, 1);     /* @kind other */
  --ease-standard: cubic-bezier(.40, 0, .20, 1);       /* @kind other */
  --duration-instant: 150ms;   /* @kind other */
  --duration-quick:   320ms;   /* @kind other */
  --duration-base:    500ms;   /* @kind other */
  --duration-slow:    900ms;   /* @kind other */
  --duration-blink:   700ms;   /* @kind other */
}

