/* typography.css — Editorial type system
 * Fluid display sizes, refined tracking, tabular data. */

/* ===== Families ===== */
.font-sans    { font-family: var(--font-sans); }
.font-mono    { font-family: var(--font-mono); font-variant-numeric: tabular-nums slashed-zero; }
.font-display { font-family: var(--font-display); font-variation-settings: "opsz" 144, "SOFT" 30; font-weight: 400; letter-spacing: -0.035em; }

/* ===== Weight ===== */
.font-normal    { font-weight: 400; }
.font-medium    { font-weight: 500; }
.font-semibold  { font-weight: 600; }
.font-bold      { font-weight: 700; }

/* ===== Size — fluid scale with precise line-heights ===== */
.text-xs    { font-size: 0.75rem;  line-height: 1.5; }
.text-sm    { font-size: 0.875rem; line-height: 1.55; }
.text-base  { font-size: 1rem;     line-height: 1.6; }
.text-lg    { font-size: 1.125rem; line-height: 1.55; }
.text-xl    { font-size: 1.25rem;  line-height: 1.45; }
.text-2xl   { font-size: 1.6rem;   line-height: 1.25; letter-spacing: -0.02em; }
.text-3xl   { font-size: 2.1rem;   line-height: 1.12; letter-spacing: -0.028em; }
.text-4xl   { font-size: 2.75rem;  line-height: 1.04; letter-spacing: -0.032em; }
.text-5xl   { font-size: clamp(3rem, 6vw, 4.25rem);   line-height: 0.98; letter-spacing: -0.038em; }
.text-6xl   { font-size: clamp(3.75rem, 8vw, 5.75rem); line-height: 0.94; letter-spacing: -0.042em; }
.text-7xl   { font-size: clamp(4.5rem, 10vw, 7rem);    line-height: 0.92; letter-spacing: -0.045em; }

.text-\[10px\] { font-size: 10px; letter-spacing: 0.02em; }
.text-\[11px\] { font-size: 11px; letter-spacing: 0.01em; }
.text-\[13px\] { font-size: 13px; }

/* ===== Alignment & transform ===== */
.text-center { text-align: center; }
.text-left   { text-align: left; }
.text-right  { text-align: right; }
.uppercase   { text-transform: uppercase; }
.capitalize  { text-transform: capitalize; }

/* ===== Tracking ===== */
.tracking-tight   { letter-spacing: -0.025em; }
.tracking-wider   { letter-spacing: 0.08em; }
.tracking-widest  { letter-spacing: 0.16em; }

/* ===== Leading ===== */
.leading-relaxed  { line-height: 1.68; }
.leading-\[1\.1\] { line-height: 1.02; }

/* ===== Misc ===== */
.truncate           { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.whitespace-nowrap  { white-space: nowrap; }
.break-all          { word-break: break-all; }
.line-clamp-2       { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.underline          { text-decoration-line: underline; text-decoration-thickness: 1px; }
.underline-offset-2 { text-underline-offset: 3px; }
.select-all         { user-select: all; }
.list-disc          { list-style-type: disc; }
.list-inside        { list-style-position: inside; }
.antialiased        { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.cursor-pointer     { cursor: pointer; }

/* ===== Editorial utilities ===== */

/* Eyebrow — monospace uppercase label above editorial headlines */
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-primary-light);
}
.eyebrow::before {
    content: "";
    display: inline-block;
    width: 18px;
    height: 1px;
    background: currentColor;
    opacity: 0.55;
}

.tabular { font-variant-numeric: tabular-nums slashed-zero; }

/* Large stat numerals — terminal style */
.num-display {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums slashed-zero;
    font-feature-settings: "ss01";
    letter-spacing: -0.03em;
}


