/* Sistema de Tipografia */
:root {
    --font-family-primary: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    --font-family-secondary: 'Helvetica Neue', Arial, sans-serif;
    --font-family-mono: 'SF Mono', 'Roboto Mono', 'Courier New', monospace;

    /* Escala de Tipografia (base 16px = 1rem) */
    --text-xs: 0.75rem;
    /* 12px */
    --text-sm: 0.875rem;
    /* 14px */
    --text-base: 1rem;
    /* 16px */
    --text-lg: 1.125rem;
    /* 18px */
    --text-xl: 1.25rem;
    /* 20px */
    --text-2xl: 1.5rem;
    /* 24px */
    --text-3xl: 1.875rem;
    /* 30px */
    --text-4xl: 2.25rem;
    /* 36px */

    /* Pesos de fonte */
    --font-light: 300;
    --font-normal: 400;
    --font-medium: 500;
    --font-semibold: 600;
    --font-bold: 700;
    --font-extrabold: 800;

    /* Altura de linha */
    --leading-tight: 1.2;
    --leading-normal: 1.5;
    --leading-relaxed: 1.75;
}

/* Aplicar fonte principal */
body {
    font-family: var(--font-family-primary);
    font-weight: 400;
    /* Regular para o texto principal */
    line-height: 1.6;
    /* Altura de linha confortável */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Hierarquia de títulos */
h1 {
    font-size: var(--text-3xl);
    font-weight: 700;
    /* Peso mais forte para títulos principais */
    line-height: var(--leading-tight);
    letter-spacing: -0.015em;
    /* Espaçamento ligeiramente mais fechado */
    margin-bottom: 1.25rem;
}

h2 {
    font-size: var(--text-2xl);
    font-weight: 600;
    /* Semi-bold para subtítulos */
    line-height: var(--leading-tight);
    margin-bottom: 1rem;
}

h3 {
    font-size: var(--text-xl);
    font-weight: 600;
    margin-bottom: 0.75rem;
}

h4 {
    font-size: var(--text-lg);
    font-weight: var(--font-medium);
    margin-bottom: 0.5rem;
}

/* Textos comuns */
p {
    font-size: var(--text-base);
    line-height: var(--leading-relaxed);
    margin-bottom: 1rem;
}

p,
.small-text {
    font-weight: 400;
    color: var(--text-secondary);
}

.small-text {
    font-size: var(--text-sm);
}

/* Destaques e labels */
.label,
.stat-label {
    font-weight: 500;
    /* Medium para textos de destaque médio */
    letter-spacing: 0.02em;
}

/* Cards de projeto - Tipografia específica */
.project-title {
    font-size: var(--text-xl);
    font-weight: var(--font-bold);
    color: var(--text-primary);
    line-height: var(--leading-tight);
    margin-bottom: 0.5rem;
}

.project-subtitle {
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 1rem;
}