/* =============================================================
   BASE — Reset, root styles, typography defaults
   ============================================================= */

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

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

body {
  background-color: var(--clr-bg);
  color:            var(--clr-text);
  font-family:      var(--ff-body);
  font-size:        var(--fs-base);
  font-weight:      var(--fw-regular);
  line-height:      var(--lh-normal);
  overflow-x:       hidden;
  min-height:       100vh;
}

/* Links */
a {
  color: inherit;
  text-decoration: none;
}

/* Media */
img, video, iframe {
  display: block;
  max-width: 100%;
}

/* Lists */
ul, ol { list-style: none; }

/* Buttons */
button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
}

/* Inputs & selects */
input, select, textarea {
  font-family: inherit;
  font-size: inherit;
}

/* Headings — use display font by default for h1–h3 */
h1, h2, h3 {
  font-family: var(--ff-display);
  font-weight: var(--fw-regular); /* Bebas Neue is already heavy */
  line-height:  var(--lh-tight);
  letter-spacing: .01em;
}

h4, h5, h6 {
  font-family:  var(--ff-body);
  font-weight:  var(--fw-bold);
  line-height:  var(--lh-snug);
}

p {
  line-height: var(--lh-normal);
  color: var(--clr-text-muted);
}

strong { color: var(--clr-text); }

code {
  font-family: 'Courier New', monospace;
  font-size: .875em;
  background: var(--clr-accent-dim);
  color: var(--clr-accent);
  padding: .1em .4em;
  border-radius: var(--radius-sm);
}
