:root {
    /* Font Families */
    --primary-font: 'Source Sans Pro', Arial, sans-serif;
    --heading-font: 'Source Sans Pro', Arial, sans-serif;
    --body-font: 'Source Sans Pro', Arial, sans-serif;

    /* Font Sizes - Fluid Typography */
    --fs-xs: clamp(0.75rem, 0.5vw + 0.65rem, 0.875rem);
    --fs-sm: clamp(0.875rem, 0.7vw + 0.75rem, 1rem);
    --fs-base: clamp(1rem, 1vw + 0.85rem, 1.125rem);
    --fs-lg: clamp(1.125rem, 1.2vw + 0.95rem, 1.25rem);
    --fs-xl: clamp(1.25rem, 1.5vw + 1.05rem, 1.5rem);
    --fs-2xl: clamp(1.5rem, 2vw + 1.2rem, 1.875rem);
    --fs-3xl: clamp(1.875rem, 2.5vw + 1.5rem, 2.25rem);
    --fs-4xl: clamp(2.25rem, 3vw + 1.8rem, 2.75rem);
    --fs-5xl: clamp(2.75rem, 4vw + 2.2rem, 3.5rem);
    --fs-6xl: clamp(3.5rem, 5vw + 2.8rem, 4.5rem);

    /* Line Heights */
    --lh-tight: 1.2;
    --lh-normal: 1.5;
    --lh-relaxed: 1.75;

    /* Font Weights */
    --fw-light: 300;
    --fw-normal: 400;
    --fw-medium: 500;
    --fw-semibold: 600;
    --fw-bold: 700;

    /* Letter Spacing */
    --ls-tight: -0.025em;
    --ls-normal: 0em;
    --ls-wide: 0.025em;
    --ls-wider: 0.05em;

    /* Animation Properties */
    --transition-fast: 0.15s ease-out;
    --transition-normal: 0.3s ease-out;
    --transition-slow: 0.5s ease-out;
}


body {
    font-family: var(--body-font);
    font-size: var(--fs-base);
    line-height: var(--lh-normal);
    overflow-x: hidden;
}

/* Headings */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--heading-font);
    font-weight: var(--fw-semibold);
    line-height: var(--lh-tight);
    letter-spacing: var(--ls-tight);
    margin-bottom: 0.5em;
    transition: all var(--transition-normal);
}



/* Paragraphs */
p {
    font-size: var(--fs-base);
    line-height: var(--lh-normal);
    transition: all var(--transition-normal);
}





/* Links */
a {
    text-decoration: none;
    transition: all var(--transition-fast);
    font-weight: var(--fw-medium);
}


/* Responsive Font Sizes */
@media (max-width: 768px) {
    :root {
        --fs-6xl: clamp(2.5rem, 6vw + 1.5rem, 3.5rem);
        --fs-5xl: clamp(2rem, 5vw + 1.2rem, 2.75rem);
        --fs-4xl: clamp(1.75rem, 4vw + 1rem, 2.25rem);
    }
}

@media (max-width: 480px) {
    :root {
        --fs-6xl: clamp(2rem, 8vw + 1rem, 3rem);
        --fs-5xl: clamp(1.75rem, 6vw + 0.8rem, 2.5rem);
        --fs-4xl: clamp(1.5rem, 5vw + 0.6rem, 2rem);
    }
}


/* Print Styles */
@media print {


    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        page-break-after: avoid;
    }

    p {
        orphans: 3;
        widows: 3;
    }
}

/* High DPI Adjustments */
@media (-webkit-min-device-pixel-ratio: 2),
(min-resolution: 192dpi) {
    body {
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    }
}