/* ===============================================================
   BASE STYLES — CSS Variables, Reset, Typography
   =============================================================== */

/* ---- Design Tokens ---- */
:root {
  /* Backgrounds */
  --bg-primary:       #0f1012;
  --bg-secondary:     #131517;
  --bg-card:          #181a1d;
  --bg-card-hover:    #1d1f23;

  /* Accent */
  --accent:           #fc8a7d;
  --accent-dim:       rgba(252, 138, 125, 0.08);
  --accent-glow:      rgba(252, 138, 125, 0.18);
  --accent-border:    rgba(252, 138, 125, 0.22);

  /* Text */
  --text-primary:     #f0ece6;
  --text-secondary:   #79838c;
  --text-muted:       #3e4a56;

  /* Borders */
  --border:           rgba(255, 255, 255, 0.06);
  --border-hover:     rgba(255, 255, 255, 0.11);

  /* Typography */
  --font-heading:     'Funnel Display', sans-serif;
  --font-body:        'DM Sans', sans-serif;
  --font-mono:        'IBM Plex Mono', monospace;

  /* Spacing */
  --section-py:       130px;
  --container-px:     24px;

  /* Transitions */
  --ease-fast:        0.18s ease;
  --ease-med:         0.32s ease;
  --ease-slow:        0.6s cubic-bezier(0.16, 1, 0.3, 1);

  /* Radii */
  --r-sm:   8px;
  --r-md:   14px;
  --r-lg:   22px;
  --r-full: 9999px;
}

/* ---- Reset ---- */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  font-family: var(--font-body);
  background-color: var(--bg-primary);
  color: var(--text-primary);
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ---- Base Typography ---- */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  color: var(--text-primary);
  line-height: 1.15;
  font-weight: 700;
}

p {
  color: var(--text-secondary);
  line-height: 1.75;
}

a {
  color: inherit;
  text-decoration: none;
  transition: color var(--ease-fast);
}

img, svg { display: block; }
img { max-width: 100%; }

ul, ol { list-style: none; }

button {
  font-family: var(--font-body);
  cursor: pointer;
  border: none;
  background: none;
}

code, pre, kbd, samp {
  font-family: var(--font-mono);
}

strong {
  font-weight: 600;
  color: var(--text-primary);
}

/* ---- Selection ---- */
::selection {
  background: var(--accent);
  color: var(--bg-primary);
}

/* ---- Custom Scrollbar ---- */
::-webkit-scrollbar          { width: 5px; }
::-webkit-scrollbar-track    { background: var(--bg-primary); }
::-webkit-scrollbar-thumb    { background: #2a2e32; border-radius: var(--r-full); }
::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }

/* ---- Reduced Motion ---- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  html { scroll-behavior: auto; }
}
