/*
 * File: fonts.css
 * Purpose: Metric-matched fallback @font-face rules for Columbus Bath Cost's
 *          two Google-hosted webfonts (Oswald, Source Sans 3). Google Fonts
 *          loads with font-display: swap, so on first paint the browser
 *          renders text in the next font in the stack (a local system sans),
 *          then swaps to the real webfont once it arrives. A plain system
 *          font has different average glyph width and vertical metrics than
 *          the webfont, so that swap reflows the page — every heading and
 *          label set in Oswald, every paragraph in Source Sans 3, jumps.
 *          These synthetic faces reuse Arial's local outlines but override
 *          its metrics (size-adjust, ascent/descent/line-gap) to match the
 *          real webfont, so the fallback text occupies the same box the
 *          webfont will and the swap causes no layout shift.
 * Method: size-adjust = webfont xWidthAvg/unitsPerEm ÷ Arial xWidthAvg/
 *          unitsPerEm; ascent/descent/line-gap normalized to the webfont's
 *          proportions, then divided by size-adjust (same recipe as
 *          roofing.css's DM Sans/Playfair fallback faces, 2026-09-21 round;
 *          verified by reproducing that file's published DM Sans numbers
 *          from the same source data before computing these). Source:
 *          @capsizecss/metrics (published Oswald/Source Sans 3/Arial
 *          tables) — Oswald ascent 1193, descent -289, lineGap 0, upm 1000,
 *          xWidthAvg 363; Source Sans 3 ascent 1024, descent -400, lineGap
 *          0, upm 1000, xWidthAvg 418; Arial ascent 1854, descent -434,
 *          lineGap 67, upm 2048, xWidthAvg 913. Recompute if the Google
 *          Fonts weights requested in public_main.php change.
 * Used by: layouts/public_main.php (linked after the Google Fonts request,
 *          before landing-pub.css/public.css/estimator.css). The fallback
 *          face names below must be inserted into each font-family stack
 *          that uses Oswald or Source Sans 3 for this to take effect —
 *          done in landing-pub.css (WP-D); public.css and estimator.css
 *          still need the same insertion (see wp-d/REPORT.md Requests).
 * Author: WP-D (SEO round 2026-09-21)
 * Created: 2026-09-21
 * Last Modified: 2026-09-21
 */

@font-face {
    font-family: 'Oswald Fallback';
    src: local('Arial');
    ascent-override: 146.51%;
    descent-override: 35.49%;
    line-gap-override: 0%;
    size-adjust: 81.43%;
    font-display: swap;
}

@font-face {
    font-family: 'Source Sans 3 Fallback';
    src: local('Arial');
    ascent-override: 109.21%;
    descent-override: 42.66%;
    line-gap-override: 0%;
    size-adjust: 93.76%;
    font-display: swap;
}
