/* =========================================================
   Design Tokens — Giorgi Samukashvili Portfolio
   ========================================================= */

:root {
  /* --- Backgrounds --- */
  --bg-primary:   #0f0f0f;
  --bg-raised:    #161616;
  --bg-card:      #1a1a1a;
  --bg-card-hover:#1e1e1e;

  /* --- Glass card --- */
  --glass-bg:     rgba(255, 255, 255, 0.03);
  --glass-border: rgba(255, 255, 255, 0.07);
  --glass-blur:   blur(12px);

  /* --- Text --- */
  --text-primary:   #f2f2f2;
  --text-secondary: #888888;
  --text-muted:     #555555;

  /* --- Borders --- */
  --border-subtle:  rgba(255, 255, 255, 0.07);
  --border-medium:  rgba(255, 255, 255, 0.12);

  /* --- Gradients --- */
  --gradient-hero:     radial-gradient(ellipse 80% 60% at 50% -10%, rgba(255,255,255,0.06) 0%, transparent 70%);
  --gradient-noise:    url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  --gradient-card-top: linear-gradient(180deg, rgba(255,255,255,0.04) 0%, transparent 100%);

  /* --- Typography --- */
  --font-heading: 'Space Grotesk', sans-serif;
  --font-body:    'Inter', sans-serif;

  --size-xs:   0.75rem;   /* 12px */
  --size-sm:   0.875rem;  /* 14px */
  --size-base: 1rem;      /* 16px */
  --size-lg:   1.125rem;  /* 18px */
  --size-xl:   1.25rem;   /* 20px */
  --size-2xl:  1.5rem;    /* 24px */
  --size-3xl:  1.875rem;  /* 30px */
  --size-4xl:  2.25rem;   /* 36px */
  --size-5xl:  3rem;      /* 48px */
  --size-6xl:  3.75rem;   /* 60px */
  --size-7xl:  4.5rem;    /* 72px */

  --weight-regular: 400;
  --weight-medium:  500;
  --weight-semibold:600;
  --weight-bold:    700;

  --leading-tight:  1.15;
  --leading-snug:   1.3;
  --leading-normal: 1.6;
  --leading-relaxed:1.75;

  --tracking-tight: -0.03em;
  --tracking-base:  -0.01em;
  --tracking-wide:  0.06em;
  --tracking-wider: 0.12em;

  /* --- Spacing --- */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-32: 8rem;

  /* --- Border radius --- */
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   12px;
  --radius-xl:   16px;
  --radius-full: 9999px;

  /* --- Transitions --- */
  --transition-fast:   150ms ease;
  --transition-base:   250ms ease;
  --transition-slow:   400ms ease;
  --transition-reveal: 600ms cubic-bezier(0.16, 1, 0.3, 1);

  /* --- Layout --- */
  --max-width:        1840px;
  --max-width-narrow: 800px;
  --nav-height:       64px;
  --section-gap:      var(--space-24);
}
