/* ============================================================
   JIM MATTICE — BASE / RESET + helpers
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: var(--text-body);
  background: var(--surface-page);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Headings default to display voice */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  color: var(--text-strong);
  font-weight: var(--fw-black);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  margin: 0 0 0.4em;
}

a { color: var(--text-link); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 2px; }

p { margin: 0 0 1em; text-wrap: pretty; }

/* ---- Utility classes ---- */
/* Eyebrow / kicker — Space Mono, wide-tracked, uppercase (property voice). */
.jm-eyebrow {
  font-family: var(--font-mono);
  font-weight: var(--fw-regular);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-size: var(--text-xs);
  color: var(--primary);
}
.jm-eyebrow--red { color: var(--accent); }
.jm-eyebrow--muted { color: var(--text-muted); }

/* Numbered section label, e.g. "01 — The Suite". */
.jm-label {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--primary);
}
.jm-label--mute { color: var(--text-faint); }

.jm-display {
  font-family: var(--font-display);
  font-weight: var(--fw-black);
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-tight);
  color: var(--text-strong);
}

/* the signature red underline (PERSONAL brand). Use .jm-underline--blue for property. */
.jm-underline {
  position: relative;
  display: inline-block;
}
.jm-underline::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -0.12em;
  height: 3px;
  background: var(--accent);
  border-radius: 2px;
}
.jm-underline--blue::after { background: var(--primary); }

/* short accent rule. Red = personal brand; .jm-rule--blue = property. */
.jm-rule {
  width: 56px; height: 4px;
  background: var(--accent);
  border: 0; border-radius: 2px;
  margin: var(--space-5) 0;
}
.jm-rule--blue { background: var(--primary); }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}
