/* The application's typefaces, in one place because two documents need them.
 *
 * `www/index.html` is the app. `verify/box.html` is the box check, which renders
 * the real `Pages.Session.View` and measures every block on it — and measured
 * heights depend on font metrics wherever a flex row is baseline-aligned, so a
 * check page without these is a check page measuring a different app. It was,
 * until `plans/one-phase-for-every-size.md` §5.1 changed the base size and the
 * two disagreed by a pixel.
 *
 * Font URLs are relative to this file, so the same stylesheet resolves whether
 * it is served from `/fonts/` or opened over `file://` from `ui/verify/`.
 *
 * Two variable files per family cover every weight the UI asks for
 * (300/400/500/700 sans, 400/500/700 mono); Google's stylesheet declared seven
 * faces and all seven resolved to the same two files. `latin-ext` is kept so an
 * accented character in a path or a name still renders in Roboto rather than
 * falling through to the system font.
 */

@font-face {
    font-family: 'Roboto';
    src: url('roboto-latin.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
    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: 'Roboto';
    src: url('roboto-latin-ext.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
    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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Roboto Mono is given ROBOTO'S vertical metrics, not its own: 1900/2048 and
 * 500/2048, line gap 0.
 *
 * Mono's own ascent puts its baseline 1-2px below sans at the same size and
 * leading, which would make the baseline phase a property of (level x family) —
 * ten cases to correct instead of five, and two of them unstable across a
 * breakpoint. Overriding it costs nothing, moves sans not at all, and collapses
 * the family dimension entirely.
 *
 * These three numbers are also written down in `Style.Theme.ascentRatio` and
 * `descentRatio`, because that is where the baseline arithmetic happens.
 * Changing one without the other puts every baseline in the app on the wrong
 * phase; `RhythmCheck` asserts the arithmetic and `BoxCheck` measures the page.
 * `plans/one-phase-for-every-size.md` §4.2.
 */

@font-face {
    font-family: 'Roboto Mono';
    src: url('roboto-mono-latin.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
    ascent-override: 92.7734%;
    descent-override: 24.4141%;
    line-gap-override: 0%;
    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: 'Roboto Mono';
    src: url('roboto-mono-latin-ext.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
    ascent-override: 92.7734%;
    descent-override: 24.4141%;
    line-gap-override: 0%;
    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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
