/* ============================================================
   Apple-Inspired Design Token System
   Single source of truth for all visual design decisions
   ============================================================ */

:root {
  /* ========== COLOR PALETTE ========== */
  /* Primary accent -- Apple-like blue */
  --color-accent:             #0071e3;
  --color-accent-hover:       #0077ed;
  --color-accent-dark:        #0066cc;
  --color-accent-light:       rgba(0, 113, 227, 0.08);

  /* Text colors */
  --color-text-primary:       #1d1d1f;
  --color-text-secondary:     #86868b;
  --color-text-body:          #333333;
  --color-text-inverse:       #ffffff;
  --color-text-footer:        rgba(255, 255, 255, 0.8);

  /* Surface / background colors */
  --color-bg-primary:         #ffffff;
  --color-bg-secondary:       #f5f5f7;
  --color-bg-tertiary:        #fafafa;
  --color-bg-footer:          #1d1d1f;
  --color-bg-footer-sub:      #2d2d2f;
  --color-bg-card:            #ffffff;
  --color-bg-overlay:         rgba(0, 0, 0, 0.4);

  /* Border colors */
  --color-border:             #d2d2d7;
  --color-border-light:       #e5e5ea;

  /* ========== TYPOGRAPHY ========== */
  --font-primary:             "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-weight-normal:       400;
  --font-weight-medium:       500;
  --font-weight-semibold:     600;
  --font-weight-bold:         700;

  /* Line heights */
  --line-height-tight:        1.2;
  --line-height-normal:       1.5;
  --line-height-relaxed:      1.75;

  /* ========== SPACING (8px scale) ========== */
  --space-xs:   0.25rem;
  --space-sm:   0.5rem;
  --space-md:   1rem;
  --space-lg:   1.5rem;
  --space-xl:   2rem;
  --space-2xl:  3rem;
  --space-3xl:  4rem;
  --space-4xl:  5rem;

  /* ========== BORDERS & RADII ========== */
  --radius-sm:      8px;
  --radius-md:      12px;
  --radius-lg:      16px;
  --radius-xl:      20px;
  --radius-pill:    9999px;

  /* ========== SHADOWS ========== */
  --shadow-sm:      0 1px 3px rgba(0, 0, 0, 0.08);
  --shadow-md:      0 4px 12px rgba(0, 0, 0, 0.08);
  --shadow-lg:      0 8px 30px rgba(0, 0, 0, 0.10);
  --shadow-card:    0 2px 8px rgba(0, 0, 0, 0.06);
  --shadow-hover:   0 6px 20px rgba(0, 0, 0, 0.12);

  /* ========== TRANSITIONS ========== */
  --transition-fast:     0.2s cubic-bezier(0.25, 0.1, 0.25, 1);
  --transition-normal:   0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
  --transition-smooth:   0.4s cubic-bezier(0.25, 0.1, 0.25, 1);
  --ease-apple:          cubic-bezier(0.16, 1, 0.3, 1);

  /* ========== TYPE SCALE (16px base, 1.25 ratio) ========== */
  --text-xs:    0.75rem;
  --text-sm:    0.875rem;
  --text-base:  1rem;
  --text-lg:    1.125rem;
  --text-xl:    1.25rem;
  --text-2xl:   1.5rem;
  --text-3xl:   1.875rem;
  --text-4xl:   2.25rem;
  --text-5xl:   3rem;
  --text-6xl:   3.75rem;

  /* ========== Z-INDEX ========== */
  --z-dropdown:  100;
  --z-sticky:    200;
  --z-overlay:   300;
  --z-modal:     400;
  --z-toast:     500;
}

/* ========== SELECTION ========== */
::selection {
  background: var(--color-accent);
  color: #fff;
}

/* ========== REDUCED MOTION ========== */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  [data-ani] {
    opacity: 1 !important;
    transform: none !important;
  }
}
