/**
 * Kestrel self-hosted fonts, hand-authored with latin and latin-ext subsets.
 * Bricolage Grotesque is a variable face (optical size 12 to 96, weight 200 to 800) for display text.
 * Geist (weight 100 to 900) is the UI and body face; Geist Mono (weight 100 to 900) sets labels,
 * eyebrows and meta. All three are roman only: italics are browser-synthesised.
 * The profile preloads only bricolage-grotesque-var-latin.woff2 and geist-var-latin.woff2.
 *
 * Fallbacks are measured from these shipped latin files against Windows Arial and Consolas by
 * tools/measure-fallbacks.py at weight 400 (Bricolage Grotesque at its default optical size, 96).
 * The fixed sample is:
 * "The night market moves to Quay Street. Stories about the people, streets and decisions. 0123456789"
 * Size-adjust is the ratio of summed advances, each divided by unitsPerEm. Ascent, descent and
 * line gap use OS/2 typo metrics when USE_TYPO_METRICS is set, otherwise hhea, divided by
 * unitsPerEm and the size-adjust ratio. No kerning or shaping is included. Values are rounded to
 * two decimal places.
 * Licences: OFL-bricolage-grotesque.txt, OFL-geist.txt and OFL-geist-mono.txt, SIL Open Font License 1.1.
 *
 * @copyright   Copyright (C) 2026 BulaSikku Technologies Private Limited. All rights reserved.
 * @license     GNU General Public License version 2 or later
 */

/* Bricolage Grotesque variable 200 to 800, latin-ext. */
@font-face {
    font-family: 'Bricolage Grotesque';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('../fonts/bricolage-grotesque-var-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Bricolage Grotesque variable 200 to 800, latin. */
@font-face {
    font-family: 'Bricolage Grotesque';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('../fonts/bricolage-grotesque-var-latin.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;
}

/* Geist variable 100 to 900, latin-ext. */
@font-face {
    font-family: 'Geist';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/geist-var-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Geist variable 100 to 900, latin. */
@font-face {
    font-family: 'Geist';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/geist-var-latin.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;
}

/* Geist Mono variable 100 to 900, latin-ext. */
@font-face {
    font-family: 'Geist Mono';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/geist-mono-var-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Geist Mono variable 100 to 900, latin. */
@font-face {
    font-family: 'Geist Mono';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/geist-mono-var-latin.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;
}

/* Bricolage Grotesque at 400 (optical size 96), measured against Arial regular. */
@font-face {
    font-family: 'Bricolage Grotesque Fallback';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: local('Arial');
    size-adjust: 94.16%;
    ascent-override: 98.77%;
    descent-override: 28.67%;
    line-gap-override: 0.00%;
}

/* Geist at 400, measured against Arial regular. */
@font-face {
    font-family: 'Geist Fallback';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: local('Arial');
    size-adjust: 104.29%;
    ascent-override: 96.37%;
    descent-override: 28.29%;
    line-gap-override: 0.00%;
}

/* Geist Mono at 400, measured against Consolas regular. */
@font-face {
    font-family: 'Geist Mono Fallback';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: local('Consolas');
    size-adjust: 109.13%;
    ascent-override: 92.09%;
    descent-override: 27.03%;
    line-gap-override: 0.00%;
}
