/*
MODULE: Design Tokens
RESPONSIBILITY: Single source of truth for every color, spacing,
  typography, radius, shadow, border, transition and z-index value used
  across the site. No other stylesheet may declare a raw literal for any
  of these categories.
DEPENDS ON: none
EXPOSES: CSS custom properties on :root
*/

:root {
  /* Color */
  --color-background: #111111;
  --color-surface: #1a1a1a;
  --color-border: #2b2b2b;
  --color-text: #e8e5dc;
  --color-muted: #77736b;
  --color-accent: #c8ff3d;
  --color-accent-text: #111111;
  --color-focus-ring: #c8ff3d;

  /* Spacing */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-9: 6rem;
  --space-10: 8rem;

  /* Typography */
  --font-family-display: "Space Grotesk", system-ui, sans-serif;
  --font-family-body: "Space Grotesk", system-ui, sans-serif;
  --font-family-mono: "JetBrains Mono", "Courier New", monospace;

  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-base: 1.125rem;
  --font-size-md: 1.375rem;
  --font-size-lg: 1.75rem;
  --font-size-xl: 2.5rem;
  --font-size-2xl: 3.5rem;
  --font-size-3xl: 5rem;
  --font-size-4xl: 7rem;
  /* Hero name on screens below 768px: scales with viewport width so the
     longest word ("Jakobsson") fits from 320px upward. */
  --font-size-hero-mobile: clamp(2.75rem, 14vw, 5rem);

  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-bold: 700;

  --line-height-tight: 1.05;
  --line-height-snug: 1.25;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.7;

  --letter-spacing-tight: -0.02em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: 0.08em;

  /* Radius (physical corners, applied individually in component files) */
  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-lg: 8px;
  --radius-full: 999px;

  /* Shadow (box-shadow has no longhand decomposition in CSS) */
  --shadow-card: 0px 20px 40px -20px rgba(0, 0, 0, 0.6);

  /* Border */
  --border-width-thin: 1px;
  --border-width-thick: 2px;

  /* Transition */
  --transition-duration-fast: 150ms;
  --transition-duration-base: 300ms;
  --transition-duration-slow: 600ms;
  --transition-timing-standard: cubic-bezier(0.16, 1, 0.3, 1);

  /* Z-index */
  --z-nav: 100;
  --z-overlay: 200;

  /* Layout */
  --content-max-width: 1200px;
  --content-gutter: 1.5rem;
}

/*
Breakpoint reference (media queries cannot consume custom properties, so
these are documented here and used as literals in each stylesheet):
  sm: 480px
  md: 768px
  lg: 1024px
  xl: 1440px
*/
