/* ========================================
   OpenCities - Typography
   ======================================== */

/* Font Sizes */
.text-xs { font-size: 0.7rem; }
.text-sm { font-size: 0.75rem; }
.text-xs-sm { font-size: 0.8rem; }
.text-sm-md { font-size: 0.85rem; }
.text-base { font-size: 0.9rem; }
.text-lg { font-size: 0.95rem; }
.text-xl { font-size: 1rem; }
.text-2xl { font-size: 1.05rem; }
.text-3xl { font-size: 1.1rem; }
.text-4xl { font-size: 1.2rem; }
.text-5xl { font-size: 1.5rem; }
.text-6xl { font-size: 1.8rem; }

/* Font Weights */
.font-normal { font-weight: 400; }
.font-medium { font-weight: 600; }
.font-semibold { font-weight: 700; }
.font-bold { font-weight: 800; }
.font-extrabold { font-weight: 900; }

/* Text Colors */
.text-primary { color: var(--text); }
.text-muted { color: var(--muted); }
.text-accent { color: var(--accent); }
.text-danger { color: var(--danger); }
.text-success { color: var(--success); }
.text-white { color: #ffffff; }
.text-gray { color: #e5e7eb; }
.text-blue-light { color: #bfdbfe; }
.text-yellow { color: #92400e; }
.text-red { color: #fff; }
.text-error { color: #854d0e; }
.text-green { color: #15803d; }
.text-dark { color: #111827; }
.text-blue-dark { color: #1e3a8a; }
.text-blue { color: #1e40af; }
.text-orange { color: #b45309; }
.text-orange-light { color: #92400e; }
.text-green-dark { color: #166534; }
.text-green-light { color: #14532d; }
.text-gray-light { color: #4b5563; }

/* Text Alignment */
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }

/* Letter Spacing */
.letter-tight { letter-spacing: 0.02em; }
.letter-wide { letter-spacing: 0.08em; }

/* Text Transform */
.uppercase { text-transform: uppercase; }

/* Font Family */
.font-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace; }
