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

html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-family);
  font-size: var(--font-size-base);
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.5;
  min-height: 100vh;
  overflow: hidden;
}

a { color: inherit; text-decoration: none; }
button { cursor: pointer; font: inherit; border: none; background: none; color: inherit; }
ul, ol { list-style: none; }
img, svg { display: block; max-width: 100%; }
textarea { font: inherit; resize: none; color: inherit; background: transparent; }
input[type="checkbox"] { cursor: pointer; }

/* Headings use Space Grotesk for that modern athletic/tech feel */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-family-heading);
  letter-spacing: -0.01em;
}

/* Brand wordmark class — for any "RepGym" text rendered as HTML */
.brand-wordmark {
  font-family: var(--font-family-brand);
  font-weight: 900;
  letter-spacing: -0.02em;
}

/* Scrollbar styling for dark mode */
::-webkit-scrollbar {
  width: 8px;
}
::-webkit-scrollbar-track {
  background: var(--color-bg);
}
::-webkit-scrollbar-thumb {
  background: var(--color-border);
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--color-text-muted);
}
