:root {
    /* Body and base */
    --font-size-body: clamp(0.95rem, 0.9rem + 0.2vw, 1rem);
    --font-size-caption: clamp(0.8rem, 0.78rem + 0.15vw, 0.875rem);

    /* Headings */
    --font-size-h1: clamp(2rem, 1.8rem + 1vw, 2.5rem);
    --font-size-h2: clamp(1.5rem, 1.3rem + 0.8vw, 2rem);
    --font-size-h3: clamp(1.1rem, 1rem + 0.6vw, 1.4rem);

    /* Cards */
    --font-size-card-title: clamp(1.1rem, 1rem + 0.5vw, 1.25rem);
    --font-size-card-text: clamp(0.9rem, 0.85rem + 0.2vw, 0.95rem);
    --font-size-card-text-sm: clamp(0.85rem, 0.8rem + 0.2vw, 0.9rem);
    --font-size-card-text-xs: clamp(0.75rem, 0.7rem + 0.2vw, 0.8rem);

    /* Buttons */
    --font-size-button: clamp(1rem, 0.95rem + 0.3vw, 1.125rem);
    --font-size-button-sm: clamp(0.65rem, 0.6rem + 0.3vw, 0.75rem);

    /* Forms */
    --font-size-form-label: clamp(0.9rem, 0.85rem + 0.2vw, 0.95rem);
    --font-size-form-input: clamp(0.95rem, 0.9rem + 0.2vw, 1rem);

    /* General text */
    --font-size-text: clamp(0.95rem, 0.9rem + 0.2vw, 1rem);
    --font-size-subtext: clamp(0.85rem, 0.8rem + 0.2vw, 0.9rem);
    --font-size-text-lg: clamp(1.05rem, 1rem + 0.2vw, 1.2rem);
}