/* GENERATED by tools/build_nvy.py from the Nvy theme skeleton, 2026-10-17T11:41:40Z. Do not edit. */

:root {
    /* Heading-specific font sizes for clamp (min, preferred, max) */
    --h1-font-size-min: 2rem;
    --h1-font-size-preferred: 5vw;
    --h1-font-size-max: 3.5rem;

    --h2-font-size-min: 1.75rem;
    --h2-font-size-preferred: 4vw;
    --h2-font-size-max: 2.5rem;

    --h3-font-size-min: 1.5rem;
    --h3-font-size-preferred: 3vw;
    --h3-font-size-max: 2rem;

    --h4-font-size-min: 1.25rem;
    --h4-font-size-preferred: 2.5vw;
    --h4-font-size-max: 1.5rem;

    --h5-font-size-min: 1rem;
    --h5-font-size-preferred: 2vw;
    --h5-font-size-max: 1.25rem;

    --h6-font-size-min: 0.875rem;
    --h6-font-size-preferred: 1.5vw;
    --h6-font-size-max: 1rem;

    /* Heading-specific font weights */
    --h1-font-weight: 400;
    --h2-font-weight: 400;
    --h3-font-weight: 400;
    --h4-font-weight: 400;
    --h5-font-weight: 500;
    --h6-font-weight: 500;

    /* Heading-specific line heights */
    --h1-line-height: 1.2;
    --h2-line-height: 1.25;
    --h3-line-height: 1.3;
    --h4-line-height: 1.35;
    --h5-line-height: 1.4;
    --h6-line-height: 1.4;

    /* Heading-specific letter spacing */
    --h1-letter-spacing: -0.01em;
    --h2-letter-spacing: -0.015em;
    --h3-letter-spacing: -0.02em;
    --h4-letter-spacing: -0.025em;
    --h5-letter-spacing: -0.03em;
    --h6-letter-spacing: -0.035em;

    /* Heading-specific margins */
    --h1-margin-top: 1.5em;
    --h1-margin-bottom: 0.75em;
    --h2-margin-top: 1.25em;
    --h2-margin-bottom: 0.65em;
    --h3-margin-top: 1rem;
    --h3-margin-bottom: 0.5em;
    --h4-margin-top: 0.85em;
    --h4-margin-bottom: 0.4em;
    --h5-margin-top: 0.75em;
    --h5-margin-bottom: 0.35em;
    --h6-margin-top: 0.65em;
    --h6-margin-bottom: 0.3em;

    /* Heading-specific colors */
    --h1-color: var(--heading-color);
    --h2-color: var(--heading-color);
    --h3-color: var(--heading-color);
    --h4-color: var(--heading-color);
    --h5-color: var(--heading-color);
    --h6-color: var(--text-color-primary);

    /* Font weight variables */
    --font-weight-light: 300;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-bold: 700;

    /* Line height variables */
    --line-height-base: 1.6;
    --line-height-tight: 1.2;

    /* Letter spacing */
    --letter-spacing-base: -0.01em;

    /* Margins for spacing */
    --margin-base: 1rem;
}

/* Reset and base styles */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

/* Base body styles */
body {
    font-family: var(--font-family-base);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-normal);
    line-height: var(--line-height-base);
    letter-spacing: var(--letter-spacing-base);
    color: var(--text-color-primary);
}

/* Headings with specific variables and clamp */
h1,
.h1 {
    --h-color: var(--h1-color);
    font-family: var(--font-family-heading);
    font-size: clamp(var(--h1-font-size-min), var(--h1-font-size-preferred), var(--h1-font-size-max));
    font-weight: var(--h1-font-weight);
    line-height: var(--h1-line-height);
    letter-spacing: var(--h1-letter-spacing);
    margin-top: var(--h1-margin-top);
    margin-bottom: var(--h1-margin-bottom);
	  text-wrap-style: balance;
}

h2,
.h2 {
    --h-color: var(--h2-color);
    font-family: var(--font-family-heading);
    font-size: clamp(var(--h2-font-size-min), var(--h2-font-size-preferred), var(--h2-font-size-max));
    font-weight: var(--h2-font-weight);
    line-height: var(--h2-line-height);
    letter-spacing: var(--h2-letter-spacing);
    margin-top: var(--h2-margin-top);
    margin-bottom: var(--h2-margin-bottom);
	  text-wrap-style: balance;
}

h3,
.h3 {
    --h-color: var(--h3-color);
    font-family: var(--font-family-heading);
    font-size: clamp(var(--h3-font-size-min), var(--h3-font-size-preferred), var(--h3-font-size-max));
    font-weight: var(--h3-font-weight);
    line-height: var(--h3-line-height);
    letter-spacing: var(--h3-letter-spacing);
    margin-top: var(--h3-margin-top);
    margin-bottom: var(--h3-margin-bottom);
	  text-wrap-style: balance;
}

h4,
.h4 {
    --h-color: var(--h4-color);
    font-family: var(--font-family-heading);
    font-size: clamp(var(--h4-font-size-min), var(--h4-font-size-preferred), var(--h4-font-size-max));
    font-weight: var(--h4-font-weight);
    line-height: var(--h4-line-height);
    letter-spacing: var(--h4-letter-spacing);
    margin-top: var(--h4-margin-top);
    margin-bottom: var(--h4-margin-bottom);
	  text-wrap-style: balance;
}

h5,
.h5 {
    --h-color: var(--h5-color);
    font-family: var(--font-family-heading);
    font-size: clamp(var(--h5-font-size-min), var(--h5-font-size-preferred), var(--h5-font-size-max));
    font-weight: var(--h5-font-weight);
    line-height: var(--h5-line-height);
    letter-spacing: var(--h5-letter-spacing);
    margin-top: var(--h5-margin-top);
    margin-bottom: var(--h5-margin-bottom);
	  text-wrap-style: balance;
}

h6,
.h6 {
    --color: var(--h6-color);
    font-family: var(--font-family-heading);
    font-size: clamp(var(--h6-font-size-min), var(--h6-font-size-preferred), var(--h6-font-size-max));
    font-weight: var(--h6-font-weight);
    line-height: var(--h6-line-height);
    letter-spacing: var(--h6-letter-spacing);
    margin-top: var(--h6-margin-top);
    margin-bottom: var(--h6-margin-bottom);
	  text-wrap-style: balance;
}

/* Paragraphs */
p {
    margin-bottom: var(--margin-base);
    color: inherit;
}

/* Links */
a {
    color: var(--link-color);
    text-decoration: none;
    transition: color 0.2s ease;
}

a:hover {
    color: var(--link-color-hover);
    text-decoration: underline;
}

a:visited {
    color: var(--link-color-visited);
}

/* Blockquote */
blockquote {
    border-left: 4px solid var(--text-color-muted);
    padding-left: 1rem;
    margin: var(--margin-base) 0;
    color: inherit;
    font-style: italic;
}

/* Code and preformatted text */
code {
    font-family: var(--font-family-monospace);
    font-size: var(--font-size-sm);
    background-color: rgba(0, 0, 0, 0.05);
    padding: 0.2em 0.4em;
    border-radius: 3px;
    color: inherit;
}

pre {
    font-family: var(--font-family-monospace);
    font-size: var(--font-size-sm);
    background-color: rgba(0, 0, 0, 0.05);
    padding: 1rem;
    border-radius: 5px;
    overflow-x: auto;
    margin: var(--margin-base) 0;
    line-height: var(--line-height-tight);
    color: inherit;
}

/* Lists */
ul, ol {
    margin: var(--margin-base) 0;
    padding-left: 2rem;
}

li {
    margin-bottom: 0.5rem;
    color: inherit;
}

/* Inline elements */
strong {
    font-weight: var(--font-weight-bold);
    color: inherit;
}

em {
    font-style: italic;
    color: inherit;
}

small {
    font-size: var(--font-size-sm);
    color: var(--text-color-muted);
}

sub, sup {
    font-size: var(--font-size-sm);
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

/* Horizontal rule */
hr {
    border: none;
    border-top: 1px solid var(--text-color-muted);
    margin: var(--margin-base) 0;
}
