.text-hero {
  font-size: var(--text-hero);
  font-weight: 800;
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
}

.text-6xl { font-size: var(--text-6xl); font-weight: 800; line-height: var(--leading-tight); letter-spacing: var(--tracking-tight); }
.text-5xl { font-size: var(--text-5xl); font-weight: 700; line-height: var(--leading-tight); letter-spacing: var(--tracking-tight); }
.text-4xl { font-size: var(--text-4xl); font-weight: 700; line-height: var(--leading-snug); }
.text-3xl { font-size: var(--text-3xl); font-weight: 700; line-height: var(--leading-snug); }
.text-2xl { font-size: var(--text-2xl); font-weight: 600; line-height: var(--leading-snug); }
.text-xl  { font-size: var(--text-xl);  font-weight: 600; line-height: var(--leading-snug); }
.text-lg  { font-size: var(--text-lg);  font-weight: 500; }
.text-base{ font-size: var(--text-base); }
.text-sm  { font-size: var(--text-sm); }
.text-xs  { font-size: var(--text-xs); }

.text-muted  { color: var(--color-text-muted); }
.text-faint  { color: var(--color-text-faint); }
.text-accent { color: var(--color-accent); }
.text-success{ color: var(--color-success); }
.text-warning{ color: var(--color-warning); }
.text-error  { color: var(--color-error); }

.text-upper  { text-transform: uppercase; letter-spacing: var(--tracking-wider); }
.text-mono   { font-family: var(--font-mono); }

.font-light   { font-weight: 300; }
.font-normal  { font-weight: 400; }
.font-medium  { font-weight: 500; }
.font-semi    { font-weight: 600; }
.font-bold    { font-weight: 700; }
.font-black   { font-weight: 800; }

.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.truncate-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.truncate-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.section-label {
  font-size: var(--text-sm);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  color: var(--color-accent);
  margin-bottom: var(--space-4);
  display: block;
}

.section-title {
  font-size: clamp(var(--text-3xl), 4vw, var(--text-5xl));
  font-weight: 800;
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  margin-top: 0;
}

.blockquote {
  border-left: 3px solid var(--color-accent);
  padding-left: var(--space-6);
  font-size: var(--text-xl);
  font-weight: 500;
  line-height: var(--leading-loose);
  color: var(--color-text-muted);
  font-style: italic;
}
