/* ==========================================================================
   Typography — Font loading & type scale
   Matches frontend/index.html + frontend/src/index.css
   ========================================================================== */

/* Inter variable font — loaded via <link> in HTML head, configured here */
:root {
  font-family: var(--font-sans);
  font-feature-settings: 'liga' 1, 'calt' 1;
}

@supports (font-variation-settings: normal) {
  :root {
    font-family: var(--font-sans);
  }
}

/* Type Scale */
h1 {
  font-size: clamp(2.25rem, 5vw, 3.5rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--text-primary);
}

h2 {
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text-primary);
}

h3 {
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  font-weight: 600;
  color: var(--text-primary);
}

h4 {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-primary);
}

p {
  font-size: 1rem;
  color: var(--text-secondary);
}

small {
  font-size: 0.875rem;
}

/* Utility Classes */
.text-gradient {
  background: linear-gradient(135deg, #22d3ee, #3b82f6);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.text-accent {
  color: var(--accent);
}

.text-muted {
  color: var(--text-muted);
}

.text-center {
  text-align: center;
}

.text-balance {
  text-wrap: balance;
}

.font-mono {
  font-family: var(--font-mono);
}

.font-semibold {
  font-weight: 600;
}

.font-bold {
  font-weight: 700;
}

/* Lead paragraph — larger text for hero/intro sections */
.text-lead {
  font-size: clamp(1.125rem, 2vw, 1.25rem);
  line-height: 1.7;
  color: var(--text-secondary);
}

/* Overline — small caps label above headings */
.text-overline {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
}

/* Code inline */
.code-inline {
  font-family: var(--font-mono);
  font-size: 0.875em;
  padding: 0.15em 0.4em;
  border-radius: var(--radius-sm);
  background: var(--bg-secondary);
  color: var(--accent);
}
