/* appearance.css - member typeface choices (Settings > Appearance).
 *
 * lib/appearance.js writes the chosen stacks onto <html style="--font-ui: ...">.
 * Nothing here changes until a member picks a font: every variable defaults
 * to the board's own face, --font-cp437, which settings never touch.
 *
 * Surfaces that draw CP437 as HTML text (ANSI fallbacks, oneliners, the
 * terminal, the home connect table) are pinned to --font-cp437 at the bottom.
 * Canvas-drawn art (GraphicsConverter, fTelnet) is unaffected either way.
 */

/* Pixel faces (Spleen 8x16 is declared in custom.css) */
@font-face { font-family: 'Spleen 12x24'; src: url('../fonts/spleen-12x24.woff2') format('woff2'); font-weight: normal; font-style: normal; font-display: swap; }
@font-face { font-family: 'Spleen 16x32'; src: url('../fonts/spleen-16x32.woff2') format('woff2'); font-weight: normal; font-style: normal; font-display: swap; }
@font-face { font-family: 'IBM VGA 8x16'; src: url('../fonts/ibm-vga-8x16.woff2') format('woff2'); font-weight: normal; font-style: normal; font-display: swap; }
@font-face { font-family: 'Unscii 16'; src: url('../fonts/unscii-16.woff2') format('woff2'); font-weight: normal; font-style: normal; font-display: swap; }
/* Monospace reading faces */
@font-face { font-family: 'IBM Plex Mono'; src: url('../fonts/IBMPlexMono-400.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'IBM Plex Mono'; src: url('../fonts/IBMPlexMono-700.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'JetBrains Mono'; src: url('../fonts/JetBrainsMono-Variable.woff2') format('woff2'); font-weight: 100 800; font-style: normal; font-display: swap; }
/* Proportional reading faces */
@font-face { font-family: 'Atkinson Hyperlegible'; src: url('../fonts/AtkinsonHyperlegible-400.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Atkinson Hyperlegible'; src: url('../fonts/AtkinsonHyperlegible-700.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Lexend'; src: url('../fonts/Lexend-Variable.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('../fonts/Inter-Variable.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap; }

:root {
    --font-cp437: "Spleen", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
    --font-ui: var(--font-cp437);
    --font-chat: var(--font-ui);
    --font-forum: var(--font-ui);
    --font-news: var(--font-ui);
}

body { font-family: var(--font-ui); }
body[data-page="chat"] { font-family: var(--font-chat); }
body[data-page="forum"] { font-family: var(--font-forum); }
body[data-page="news"],
body[data-page="newsflip"] { font-family: var(--font-news); }
/* Chat pop-ups appear on every page but belong to chat. */
.chat-toast { font-family: var(--font-chat); }

/* CP437 drawn as text: always the board's face, whatever the member picked. */
pre, code, kbd, samp,
pre.ansi, .ansi, .ansi-render,
.terminal,
.ol-feed, .ol-preview-box, #ol-input, .ol-send-btn,
.hm-connect,
.cp437 {
    font-family: var(--font-cp437);
}
