/* AUTO-GENERATED by admin/cli/build_webfonts.py — DO NOT EDIT BY HAND.
 * Self-hosted latin-subset web fonts (DSGVO-compliant, no external requests).
 * Faces are subset from the vetted TTFs in admin/data/fonts/ (the same files
 * mPDF uses), so the FRONTEND and the CV/Portfolio/Invoice previews render the
 * exact families the PDF does — WYSIWYG, zero Google requests. Only the faces a
 * page actually uses are downloaded by the browser (lazy @font-face).
 * Inter keeps its hand-tuned variable block below (opsz axis, zero-CLS). */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400 700;
    font-display: optional;
    src: url('InterVariable.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Crimson Pro';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('CrimsonPro-Bold.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Crimson Pro';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('CrimsonPro-Italic.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Crimson Pro';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('CrimsonPro-Regular.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'DM Sans';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('DMSans-Bold.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'DM Sans';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('DMSans-Regular.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('JetBrainsMono-Bold.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('JetBrainsMono-Italic.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('JetBrainsMono-Regular.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Lato';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('Lato-Bold.woff2') format('woff2');
}

@font-face {
    font-family: 'Lato';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('Lato-Italic.woff2') format('woff2');
}

@font-face {
    font-family: 'Lato';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('Lato-Regular.woff2') format('woff2');
}

@font-face {
    font-family: 'Libre Baskerville';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('LibreBaskerville-Bold.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Libre Baskerville';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('LibreBaskerville-Italic.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Libre Baskerville';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('LibreBaskerville-Regular.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Lora';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('Lora-Bold.woff2') format('woff2');
}

@font-face {
    font-family: 'Lora';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('Lora-Italic.woff2') format('woff2');
}

@font-face {
    font-family: 'Lora';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('Lora-Regular.woff2') format('woff2');
}

@font-face {
    font-family: 'Merriweather';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('Merriweather-Bold.woff2') format('woff2');
}

@font-face {
    font-family: 'Merriweather';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('Merriweather-Italic.woff2') format('woff2');
}

@font-face {
    font-family: 'Merriweather';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('Merriweather-Regular.woff2') format('woff2');
}

@font-face {
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('OpenSans-Bold.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('OpenSans-Italic.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('OpenSans-Regular.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('PlayfairDisplay-Bold.woff2') format('woff2');
}

@font-face {
    font-family: 'Playfair Display';
    font-style: italic;
    font-weight: 700;
    font-display: swap;
    src: url('PlayfairDisplay-BoldItalic.woff2') format('woff2');
}

@font-face {
    font-family: 'Playfair Display';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('PlayfairDisplay-Italic.woff2') format('woff2');
}

@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('PlayfairDisplay-Regular.woff2') format('woff2');
}

@font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('Roboto-Bold.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Roboto';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('Roboto-Italic.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('Roboto-Regular.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Source Serif 4';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('SourceSerif4-Bold.woff2') format('woff2');
}

@font-face {
    font-family: 'Source Serif 4';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('SourceSerif4-Italic.woff2') format('woff2');
}

@font-face {
    font-family: 'Source Serif 4';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('SourceSerif4-Regular.woff2') format('woff2');
}

@font-face {
    font-family: 'Space Grotesk';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('SpaceGrotesk-Bold.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Space Grotesk';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('SpaceGrotesk-Regular.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Space Mono';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('SpaceMono-Bold.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Space Mono';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url('SpaceMono-Italic.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Space Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('SpaceMono-Regular.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Work Sans';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('WorkSans-Bold.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Work Sans';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('WorkSans-Regular.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0100-017F, U+0152-0153, U+2000-206F, U+2070-209F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FB01-FB02, U+FEFF, U+FFFD;
}
