@import "tailwindcss"; /* --------------------------------------------------------------------------- Lora, vendored from Google Fonts — self-hosted, not linked. --------------------------------------------------------------------------- The files live in wwwroot/fonts (served by the dev server straight out of ./wwwroot), so the app pulls no third-party request at runtime: no CDN to be blocked, no extra DNS round trip, and no dependency on fonts.gstatic.com being up. It is a VARIABLE font, so ONE file per style covers weights 400-700 — hence "font-weight: 400 700" rather than a file per weight. Only the latin and latin-ext subsets are vendored (~120 KB in total). The unicode-range on each face is what lets the browser skip downloading latin-ext entirely unless the page actually uses a character from it. To refresh: fetch https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700 and re-download the woff2 URLs it names. --------------------------------------------------------------------------- */ @font-face { font-family: "Lora"; font-style: italic; font-weight: 400 700; /* a variable font: one file covers the whole range */ font-display: swap; src: url("/fonts/lora-latin-ext-italic.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } @font-face { font-family: "Lora"; font-style: italic; font-weight: 400 700; /* a variable font: one file covers the whole range */ font-display: swap; src: url("/fonts/lora-latin-italic.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: "Lora"; font-style: normal; font-weight: 400 700; /* a variable font: one file covers the whole range */ font-display: swap; src: url("/fonts/lora-latin-ext-normal.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } @font-face { font-family: "Lora"; font-style: normal; font-weight: 400 700; /* a variable font: one file covers the whole range */ font-display: swap; src: url("/fonts/lora-latin-normal.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; } /* App-side design tokens the webui kit references (Tailwind v4 @theme). Brand values live with the app; the kit stays generic. */ @theme { --radius-default: 0.375rem; --color-primary: #4f46e5; --color-primary-hover: #4338ca; --color-text-heading: #111827; --color-text-on-dark: #f9fafb; --color-text-on-dark-muted: #9ca3af; /* Lora is the body face. Declaring it as --font-sans makes it the default for everything (Tailwind's preflight sets `font-family: var(--font-sans)` on html), and also gives you `font-sans` as a utility. --font-serif points at it too, so `font-serif` is not a different, unvendored face. */ --font-sans: "Lora", ui-serif, Georgia, Cambria, "Times New Roman", serif; --font-serif: "Lora", ui-serif, Georgia, Cambria, "Times New Roman", serif; }