/* Shared design-system foundation (gui-premium-upgrade, design ADR-1).
   Palette-free: only --fd-* scale tokens on :root; personalities own every color.
   Loaded first by every public consumer page and imported into the panel `tokens` layer. */
:root {
  /* spacing — indices 1..6 equal today's --ui-space-1..6 */
  --fd-space-0: 0;
  --fd-space-1: 0.25rem;
  --fd-space-2: 0.5rem;
  --fd-space-3: 0.75rem;
  --fd-space-4: 1rem;
  --fd-space-5: 1.5rem;
  --fd-space-6: 2rem;
  --fd-space-7: 3rem;
  --fd-space-8: 4rem;
  --fd-space-9: 6rem;
  --fd-space-10: 8rem;

  /* radius — personalities pick steps */
  --fd-radius-0: 0;
  --fd-radius-1: 0.125rem;
  --fd-radius-2: 0.25rem;
  --fd-radius-3: 0.5rem;
  --fd-radius-4: 0.625rem;
  --fd-radius-5: 0.875rem;
  --fd-radius-6: 1rem;
  --fd-radius-7: 1.25rem;
  --fd-radius-8: 1.75rem;
  --fd-radius-pill: 999px;
  --fd-radius-round: 50%;

  /* type */
  --fd-text-2xs: 0.6875rem;
  --fd-text-xs: 0.75rem;
  --fd-text-sm: 0.875rem;
  --fd-text-md: 1rem;
  --fd-text-lg: 1.125rem;
  --fd-text-xl: 1.375rem;
  --fd-text-2xl: 1.75rem;
  --fd-text-3xl: 2.25rem;
  --fd-text-4xl: 3rem;
  --fd-text-display: clamp(2.25rem, 6vw, 4.5rem);
  --fd-leading-tight: 1.1;
  --fd-leading-snug: 1.3;
  --fd-leading-normal: 1.5;
  --fd-leading-relaxed: 1.65;
  --fd-weight-regular: 400;
  --fd-weight-medium: 500;
  --fd-weight-semibold: 600;
  --fd-weight-bold: 700;
  --fd-tracking-caps: 0.08em;

  /* focus geometry, sizes */
  --fd-focus-width: 3px;
  --fd-focus-offset: 3px;
  --fd-control-min: 2.75rem;
  --fd-target-min: 2.75rem;

  /* collection gutters (values identical to today's --ui-collection-gutter-*) */
  --fd-gutter-collection-inline: clamp(.75rem, 2vw, 1.25rem);
  --fd-gutter-collection-block: .75rem;

  /* motion */
  --fd-duration-instant: 90ms;
  --fd-duration-fast: 150ms;
  --fd-duration-base: 250ms;
  --fd-duration-slow: 400ms;
  --fd-duration-shimmer: 1.6s;
  --fd-ease-standard: cubic-bezier(.2, 0, 0, 1);
  --fd-ease-emphasized: cubic-bezier(.2, .72, .22, 1);

  /* elevation (ADR-14) — colorless layer geometry "<offset-x> <offset-y> <blur> <spread>";
     personalities add color and alpha. Negative spreads keep the wide layers tucked under the surface. */
  --fd-shadow-1: 0 1px 2px 0;
  --fd-shadow-2: 0 2px 6px -1px;
  --fd-shadow-3: 0 6px 14px -4px;
  --fd-shadow-4: 0 10px 24px -8px;
  --fd-shadow-5: 0 18px 40px -14px;
  --fd-shadow-6: 0 28px 60px -20px;
  --fd-shadow-7: 0 40px 90px -28px;
  --fd-shadow-up-1: 0 -2px 6px -1px;
  --fd-shadow-up-2: 0 -14px 32px -14px;

  /* hover lift of interactive surfaces */
  --fd-lift-1: -1px;
  --fd-lift-2: -2px;
}

/* 0.01ms (not 0) keeps transitionend/animationend firing, matching the existing global nets.
   Lifts collapse to 0: a hovered surface only changes its shadow step, with no translation (ADR-14). */
@media (prefers-reduced-motion: reduce) {
  :root {
    --fd-duration-instant: 0.01ms;
    --fd-duration-fast: 0.01ms;
    --fd-duration-base: 0.01ms;
    --fd-duration-slow: 0.01ms;
    --fd-duration-shimmer: 0.01ms;
    --fd-lift-1: 0;
    --fd-lift-2: 0;
  }
}
