/* Themes: <html data-theme="…"> (src/themes.ts) picks one block; style.css :root holds every token with the values of «base».
   A theme sets the contract tokens of docs/design/themes/TOKENS.md — colours by their triplet --c-x-rgb ("r, g, b"), so
   --c-x and every rgba(var(--c-x-rgb), a) follow. Every block here has the specificity of :root; the later one wins. */

/* The themes' own faces (OFL, latin + cyrillic, licences in assets/fonts/licenses/). Declared for every page, but a
   browser downloads a face only when text on screen uses it — so only the active theme's files are fetched. */
@font-face { font-family: "EB Garamond"; font-weight: 400 700; font-display: swap; src: url("assets/fonts/eb-garamond-400-700-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* d2 */
@font-face { font-family: "EB Garamond"; font-weight: 400 700; font-display: swap; src: url("assets/fonts/eb-garamond-400-700-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; } /* d2 */
@font-face { font-family: "Manrope"; font-weight: 400 800; font-display: swap; src: url("assets/fonts/manrope-400-800-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* d3 */
@font-face { font-family: "Manrope"; font-weight: 400 800; font-display: swap; src: url("assets/fonts/manrope-400-800-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; } /* d3 */
@font-face { font-family: "Alegreya SC"; font-weight: 500; font-display: swap; src: url("assets/fonts/alegreya-sc-500-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* d4 */
@font-face { font-family: "Alegreya SC"; font-weight: 500; font-display: swap; src: url("assets/fonts/alegreya-sc-500-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; } /* d4 */
@font-face { font-family: "Alegreya SC"; font-weight: 700; font-display: swap; src: url("assets/fonts/alegreya-sc-700-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* d4 */
@font-face { font-family: "Alegreya SC"; font-weight: 700; font-display: swap; src: url("assets/fonts/alegreya-sc-700-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; } /* d4 */
@font-face { font-family: "Alegreya SC"; font-weight: 800; font-display: swap; src: url("assets/fonts/alegreya-sc-800-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* d4 */
@font-face { font-family: "Alegreya SC"; font-weight: 800; font-display: swap; src: url("assets/fonts/alegreya-sc-800-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; } /* d4 */
@font-face { font-family: "Alegreya Sans"; font-weight: 400; font-display: swap; src: url("assets/fonts/alegreya-sans-400-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* d4 */
@font-face { font-family: "Alegreya Sans"; font-weight: 400; font-display: swap; src: url("assets/fonts/alegreya-sans-400-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; } /* d4 */
@font-face { font-family: "Alegreya Sans"; font-weight: 500; font-display: swap; src: url("assets/fonts/alegreya-sans-500-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* d4 */
@font-face { font-family: "Alegreya Sans"; font-weight: 500; font-display: swap; src: url("assets/fonts/alegreya-sans-500-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; } /* d4 */
@font-face { font-family: "Alegreya Sans"; font-weight: 700; font-display: swap; src: url("assets/fonts/alegreya-sans-700-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* d4 */
@font-face { font-family: "Alegreya Sans"; font-weight: 700; font-display: swap; src: url("assets/fonts/alegreya-sans-700-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; } /* d4 */
@font-face { font-family: "Alegreya Sans"; font-weight: 800; font-display: swap; src: url("assets/fonts/alegreya-sans-800-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* d4 */
@font-face { font-family: "Alegreya Sans"; font-weight: 800; font-display: swap; src: url("assets/fonts/alegreya-sans-800-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; } /* d4 */
@font-face { font-family: "Forum"; font-weight: 400; font-display: swap; src: url("assets/fonts/forum-400-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* d5 */
@font-face { font-family: "Forum"; font-weight: 400; font-display: swap; src: url("assets/fonts/forum-400-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; } /* d5 */
@font-face { font-family: "Spectral"; font-weight: 400; font-display: swap; src: url("assets/fonts/spectral-400-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* d5 */
@font-face { font-family: "Spectral"; font-weight: 400; font-display: swap; src: url("assets/fonts/spectral-400-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; } /* d5 */
@font-face { font-family: "Spectral"; font-weight: 500; font-display: swap; src: url("assets/fonts/spectral-500-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* d5 */
@font-face { font-family: "Spectral"; font-weight: 500; font-display: swap; src: url("assets/fonts/spectral-500-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; } /* d5 */
@font-face { font-family: "Spectral"; font-weight: 600; font-display: swap; src: url("assets/fonts/spectral-600-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* d5 */
@font-face { font-family: "Spectral"; font-weight: 600; font-display: swap; src: url("assets/fonts/spectral-600-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; } /* d5 */
@font-face { font-family: "Spectral"; font-weight: 700; font-display: swap; src: url("assets/fonts/spectral-700-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* d5 */
@font-face { font-family: "Spectral"; font-weight: 700; font-display: swap; src: url("assets/fonts/spectral-700-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; } /* d5 */
@font-face { font-family: "IBM Plex Sans Condensed"; font-weight: 400; font-display: swap; src: url("assets/fonts/ibm-plex-sans-condensed-400-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; } /* d6 */
@font-face { font-family: "IBM Plex Sans Condensed"; font-weight: 500; font-display: swap; src: url("assets/fonts/ibm-plex-sans-condensed-500-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; } /* d6 */
@font-face { font-family: "IBM Plex Sans Condensed"; font-weight: 600; font-display: swap; src: url("assets/fonts/ibm-plex-sans-condensed-600-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; } /* d6 */
@font-face { font-family: "IBM Plex Sans Condensed"; font-weight: 700; font-display: swap; src: url("assets/fonts/ibm-plex-sans-condensed-700-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; } /* d6 */
@font-face { font-family: "IBM Plex Sans Condensed"; font-weight: 400 700; font-display: swap; src: url("assets/fonts/ibm-plex-sans-400-700-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* d6: Condensed has no cyrillic; IBM Plex Sans lends it */
@font-face { font-family: "JetBrains Mono"; font-weight: 400 700; font-display: swap; src: url("assets/fonts/jetbrains-mono-400-700-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; } /* d6 */
@font-face { font-family: "JetBrains Mono"; font-weight: 400 700; font-display: swap; src: url("assets/fonts/jetbrains-mono-400-700-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; } /* d6 */

/* For every theme but base: the tones (--t-*) follow the roles they were named after, so a theme that sets only the
   contract still recolours everything. A theme may set a tone itself (its block comes after this one). */
/* @@tones: generated by scripts/themes-build.mjs. A tone follows the role it was named after (its nearest in base),
   leaning toward ink or bg as far as it sat from the role; a tone only card faces use (81 of them) follows the card
   stock instead — --c-paper / --c-paper-ink, the pair no theme inverts — so a card keeps its polarity in a light theme. */
:where([data-theme]):not([data-theme="base"]) {
  --t-danger-1-rgb: var(--c-danger-rgb); --t-danger-1: color-mix(in srgb, var(--c-danger) 70%, var(--c-ink)); --t-danger-2-rgb: var(--c-danger-rgb); --t-danger-2: color-mix(in srgb, var(--c-danger) 85%, var(--c-ink)); --t-danger-3-rgb: var(--c-danger-rgb); --t-danger-3: var(--c-danger);
  --t-danger-4-rgb: var(--c-danger-rgb); --t-danger-4: color-mix(in srgb, var(--c-danger) 65%, var(--c-bg)); --t-danger-5-rgb: var(--c-danger-rgb); --t-danger-5: color-mix(in srgb, var(--c-danger) 90%, var(--c-ink)); --t-danger-6-rgb: var(--c-danger-rgb); --t-danger-6: color-mix(in srgb, var(--c-danger) 90%, var(--c-ink));
  --t-danger-7-rgb: var(--c-danger-rgb); --t-danger-7: color-mix(in srgb, var(--c-danger) 95%, var(--c-paper)); --t-danger-8-rgb: var(--c-danger-rgb); --t-danger-9-rgb: var(--c-danger-rgb);
  --t-danger-10-rgb: var(--c-danger-rgb); --t-danger-10: color-mix(in srgb, var(--c-danger) 90%, var(--c-bg)); --t-ink-1-rgb: var(--c-ink-rgb); --t-ink-1: var(--c-ink); --t-ink-2-rgb: var(--c-ink-rgb);
  --t-ink-3-rgb: var(--c-ink-rgb); --t-ink-3: var(--c-ink); --t-ink-4-rgb: var(--c-ink-rgb); --t-ink-4: var(--c-ink); --t-ink-5-rgb: var(--c-paper-rgb);
  --t-ink-6-rgb: var(--c-ink-rgb); --t-ink-6: var(--c-ink); --t-ink-7-rgb: var(--c-ink-rgb); --t-ink-8-rgb: var(--c-ink-rgb); --t-ink-8: var(--c-ink);
  --t-ink-9-rgb: var(--c-ink-rgb); --t-ink-9: var(--c-ink); --t-ink-10-rgb: var(--c-paper-rgb); --t-ink-10: var(--c-paper); --t-ink-11-rgb: var(--c-paper-rgb); --t-ink-11: var(--c-paper);
  --t-ink-12-rgb: var(--c-paper-rgb); --t-ink-12: var(--c-paper); --t-ink-13-rgb: var(--c-ink-rgb); --t-ink-13: var(--c-ink); --t-ink-14-rgb: var(--c-paper-rgb); --t-ink-14: var(--c-paper);
  --t-ink-15-rgb: var(--c-paper-rgb); --t-ink-15: var(--c-paper); --t-ink-16-rgb: var(--c-paper-rgb); --t-ink-16: var(--c-paper); --t-ink-17-rgb: var(--c-ink-rgb);
  --t-ink-18-rgb: var(--c-ink-rgb); --t-ink-18: var(--c-ink); --t-ink-19-rgb: var(--c-paper-rgb); --t-ink-19: color-mix(in srgb, var(--c-paper) 95%, var(--c-paper-ink)); --t-ink-20-rgb: var(--c-ink-rgb);
  --t-bg2-1-rgb: var(--c-bg-2-rgb); --t-bg2-2-rgb: var(--c-bg-2-rgb); --t-bg2-2: var(--c-bg-2); --t-bg2-3-rgb: var(--c-bg-2-rgb);
  --t-bg2-4-rgb: var(--c-bg-2-rgb); --t-bg2-4: var(--c-bg-2); --t-bg2-5-rgb: var(--c-bg-2-rgb); --t-bg2-6-rgb: var(--c-bg-2-rgb); --t-bg2-6: var(--c-bg-2);
  --t-bg2-7-rgb: var(--c-paper-ink-rgb); --t-bg2-7: var(--c-paper-ink); --t-bg2-8-rgb: var(--c-bg-2-rgb); --t-bg2-9-rgb: var(--c-bg-2-rgb); --t-bg2-9: var(--c-bg-2);
  --t-bg2-10-rgb: var(--c-bg-2-rgb); --t-bg2-11-rgb: var(--c-bg-2-rgb); --t-bg2-11: var(--c-bg-2); --t-bg2-12-rgb: var(--c-bg-2-rgb);
  --t-bg2-13-rgb: var(--c-bg-2-rgb); --t-bg2-14-rgb: var(--c-bg-2-rgb); --t-bg2-15-rgb: var(--c-bg-2-rgb);
  --t-bg2-16-rgb: var(--c-bg-2-rgb); --t-bg2-17-rgb: var(--c-bg-2-rgb); --t-bg2-17: var(--c-bg-2); --t-bg2-18-rgb: var(--c-bg-2-rgb); --t-bg2-18: var(--c-bg-2);
  --t-bg2-19-rgb: var(--c-bg-2-rgb); --t-ok-1-rgb: var(--c-ok-rgb); --t-ok-1: color-mix(in srgb, var(--c-ok) 90%, var(--c-bg)); --t-ok-2-rgb: var(--c-ink-rgb); --t-ok-2: color-mix(in srgb, var(--c-ok) 35%, var(--c-ink));
  --t-ok-3-rgb: var(--c-ok-rgb); --t-ok-3: color-mix(in srgb, var(--c-ok) 90%, var(--c-ink)); --t-ok-4-rgb: var(--c-ok-rgb); --t-ok-4: color-mix(in srgb, var(--c-ok) 85%, var(--c-ink)); --t-ok-5-rgb: var(--c-ok-rgb); --t-ok-5: var(--c-ok);
  --t-paper-1-rgb: var(--c-ink-rgb); --t-paper-1: color-mix(in srgb, var(--c-ink) 85%, var(--c-bg)); --t-paper-2-rgb: var(--c-ink-rgb); --t-paper-2: var(--c-ink); --t-paper-3-rgb: var(--c-ink-rgb); --t-paper-3: color-mix(in srgb, var(--c-ink) 85%, var(--c-bg));
  --t-paper-4-rgb: var(--c-ink-rgb); --t-paper-4: color-mix(in srgb, var(--c-ink) 85%, var(--c-bg)); --t-paper-5-rgb: var(--c-ink-rgb); --t-paper-5: color-mix(in srgb, var(--c-ink) 90%, var(--c-bg)); --t-paper-6-rgb: var(--c-ink-rgb); --t-paper-6: color-mix(in srgb, var(--c-ink) 80%, var(--c-bg));
  --t-paper-7-rgb: var(--c-ink-rgb); --t-paper-7: color-mix(in srgb, var(--c-ink) 80%, var(--c-bg)); --t-paper-8-rgb: var(--c-paper-rgb); --t-paper-8: color-mix(in srgb, var(--c-paper) 95%, var(--c-paper-ink)); --t-paper-9-rgb: var(--c-ink-rgb); --t-paper-9: color-mix(in srgb, var(--c-ink) 90%, var(--c-bg));
  --t-paper-10-rgb: var(--c-paper-rgb); --t-paper-10: color-mix(in srgb, var(--c-paper) 95%, var(--c-paper-ink)); --t-paper-11-rgb: var(--c-ink-rgb); --t-paper-11: color-mix(in srgb, var(--c-ink) 80%, var(--c-bg)); --t-paper-12-rgb: var(--c-ink-rgb); --t-paper-12: color-mix(in srgb, var(--c-ink) 90%, var(--c-bg));
  --t-paper-13-rgb: var(--c-ink-rgb); --t-paper-13: color-mix(in srgb, var(--c-ink) 95%, var(--c-bg)); --t-paper-14-rgb: var(--c-ink-rgb); --t-paper-14: var(--c-ink); --t-paper-15-rgb: var(--c-ink-rgb);
  --t-danger2-1-rgb: var(--c-danger-2-rgb); --t-danger2-1: color-mix(in srgb, var(--c-danger-2) 75%, var(--c-ink)); --t-danger2-2-rgb: var(--c-danger-2-rgb); --t-danger2-2: color-mix(in srgb, var(--c-danger-2) 95%, var(--c-bg)); --t-danger2-3-rgb: var(--c-ink-rgb); --t-danger2-3: color-mix(in srgb, var(--c-danger-2) 50%, var(--c-ink));
  --t-danger2-4-rgb: var(--c-paper-rgb); --t-danger2-5-rgb: var(--c-paper-rgb); --t-danger2-5: color-mix(in srgb, var(--c-paper) 95%, var(--c-paper-ink)); --t-danger2-6-rgb: var(--c-danger-2-rgb); --t-danger2-6: var(--c-danger-2);
  --t-danger2-7-rgb: var(--c-danger-2-rgb); --t-danger2-7: color-mix(in srgb, var(--c-danger-2) 80%, var(--c-ink)); --t-danger2-8-rgb: var(--c-danger-2-rgb); --t-danger2-8: color-mix(in srgb, var(--c-danger-2) 70%, var(--c-ink)); --t-ink2-1-rgb: var(--c-ink-2-rgb); --t-ink2-1: color-mix(in srgb, var(--c-ink-2) 90%, var(--c-bg));
  --t-ink2-2-rgb: var(--c-ink-2-rgb); --t-ink2-2: color-mix(in srgb, var(--c-ink-2) 80%, var(--c-bg)); --t-ink2-3-rgb: var(--c-ink-2-rgb); --t-ink2-3: color-mix(in srgb, var(--c-ink-2) 65%, var(--c-ink)); --t-ink2-4-rgb: var(--c-ink-2-rgb); --t-ink2-4: color-mix(in srgb, var(--c-ink-2) 85%, var(--c-ink));
  --t-ink2-5-rgb: var(--c-ink-2-rgb); --t-ink2-5: color-mix(in srgb, var(--c-ink-2) 80%, var(--c-bg)); --t-ink2-6-rgb: var(--c-ink-2-rgb); --t-ink2-6: color-mix(in srgb, var(--c-ink-2) 80%, var(--c-ink)); --t-ink2-7-rgb: var(--c-ink-2-rgb); --t-ink2-7: color-mix(in srgb, var(--c-ink-2) 80%, var(--c-ink));
  --t-ink2-8-rgb: var(--c-ink-2-rgb); --t-ink2-8: color-mix(in srgb, var(--c-ink-2) 85%, var(--c-bg)); --t-ink2-9-rgb: var(--c-ink-2-rgb); --t-ink2-9: color-mix(in srgb, var(--c-ink-2) 95%, var(--c-bg)); --t-ink2-10-rgb: var(--c-ink-2-rgb); --t-ink2-10: color-mix(in srgb, var(--c-ink-2) 90%, var(--c-bg));
  --t-hi-1-rgb: var(--c-hi-rgb); --t-hi-2-rgb: var(--c-hi-rgb); --t-hi-2: color-mix(in srgb, var(--c-hi) 90%, var(--c-bg)); --t-hi-3-rgb: var(--c-hi-rgb); --t-hi-3: color-mix(in srgb, var(--c-hi) 95%, var(--c-bg));
  --t-hi-4-rgb: var(--c-paper-rgb); --t-hi-4: var(--c-paper); --t-hi-5-rgb: var(--c-paper-rgb); --t-hi-5: var(--c-paper); --t-hi-6-rgb: var(--c-paper-rgb); --t-hi-6: var(--c-paper);
  --t-accentink-1-rgb: var(--c-paper-ink-rgb); --t-accentink-1: var(--c-paper-ink); --t-accentink-2-rgb: var(--c-on-accent-rgb); --t-accentink-2: var(--c-on-accent); --t-accentink-3-rgb: var(--c-paper-ink-rgb); --t-accentink-3: var(--c-paper-ink);
  --t-accentink-4-rgb: var(--c-paper-ink-rgb); --t-accentink-4: var(--c-paper-ink); --t-accentink-5-rgb: var(--c-on-accent-rgb); --t-accentink-5: color-mix(in srgb, var(--c-on-accent) 95%, var(--c-bg)); --t-accentink-6-rgb: var(--c-on-accent-rgb); --t-accentink-6: var(--c-on-accent);
  --t-accentink-7-rgb: var(--c-on-accent-rgb); --t-accentink-7: color-mix(in srgb, var(--c-on-accent) 95%, var(--c-bg)); --t-accentink-8-rgb: var(--c-paper-ink-rgb); --t-accentink-8: var(--c-paper-ink); --t-accentink-9-rgb: var(--c-on-accent-rgb);
  --t-accent2-1-rgb: var(--c-accent-2-rgb); --t-accent2-1: color-mix(in srgb, var(--c-accent-2) 95%, var(--c-ink)); --t-accent2-2-rgb: var(--c-accent-2-rgb); --t-accent2-2: color-mix(in srgb, var(--c-accent-2) 85%, var(--c-ink)); --t-accent2-3-rgb: var(--c-accent-2-rgb); --t-accent2-3: color-mix(in srgb, var(--c-accent-2) 60%, var(--c-ink));
  --t-accent2-4-rgb: var(--c-accent-2-rgb); --t-accent2-4: color-mix(in srgb, var(--c-accent-2) 75%, var(--c-ink)); --t-accent2-5-rgb: var(--c-accent-2-rgb); --t-accent2-5: color-mix(in srgb, var(--c-accent-2) 60%, var(--c-ink)); --t-accent2-6-rgb: var(--c-warn-rgb); --t-accent2-6: var(--c-warn);
  --t-accent2-7-rgb: var(--c-paper-rgb); --t-accent2-8-rgb: var(--c-accent-2-rgb); --t-accent2-8: color-mix(in srgb, var(--c-accent-2) 90%, var(--c-bg)); --t-accent2-9-rgb: var(--c-accent-2-rgb); --t-accent2-9: var(--c-accent-2);
  --t-surface2-1-rgb: var(--c-surface-2-rgb); --t-surface2-1: color-mix(in srgb, var(--c-surface-2) 95%, var(--c-ink)); --t-surface2-2-rgb: var(--c-surface-2-rgb); --t-surface2-2: color-mix(in srgb, var(--c-surface-2) 95%, var(--c-bg)); --t-surface2-3-rgb: var(--c-surface-2-rgb); --t-surface2-3: color-mix(in srgb, var(--c-surface-2) 95%, var(--c-bg));
  --t-surface2-4-rgb: var(--c-surface-2-rgb); --t-surface2-4: color-mix(in srgb, var(--c-surface-2) 90%, var(--c-bg)); --t-surface2-5-rgb: var(--c-surface-2-rgb); --t-surface2-5: color-mix(in srgb, var(--c-surface-2) 95%, var(--c-ink)); --t-surface2-6-rgb: var(--c-surface-2-rgb); --t-surface2-6: color-mix(in srgb, var(--c-surface-2) 85%, var(--c-bg));
  --t-surface2-7-rgb: var(--c-surface-2-rgb); --t-surface2-8-rgb: var(--c-surface-2-rgb); --t-surface2-8: color-mix(in srgb, var(--c-surface-2) 90%, var(--c-bg)); --t-surface2-9-rgb: var(--c-surface-2-rgb); --t-surface2-9: color-mix(in srgb, var(--c-surface-2) 95%, var(--c-ink));
  --t-surface2-10-rgb: var(--c-paper-ink-rgb); --t-surface2-10: color-mix(in srgb, var(--c-paper-ink) 95%, var(--c-paper)); --t-surface2-11-rgb: var(--c-surface-2-rgb); --t-surface2-11: color-mix(in srgb, var(--c-surface-2) 95%, var(--c-ink)); --t-surface2-12-rgb: var(--c-surface-2-rgb); --t-surface2-12: color-mix(in srgb, var(--c-surface-2) 95%, var(--c-ink));
  --t-surface2-13-rgb: var(--c-surface-2-rgb); --t-surface2-13: color-mix(in srgb, var(--c-surface-2) 95%, var(--c-ink)); --t-surface2-14-rgb: var(--c-surface-2-rgb); --t-surface2-15-rgb: var(--c-surface-2-rgb); --t-surface2-15: var(--c-surface-2);
  --t-paperink-1-rgb: var(--c-paper-ink-rgb); --t-paperink-1: var(--c-paper-ink); --t-paperink-2-rgb: var(--c-bg-rgb); --t-paperink-2: color-mix(in srgb, var(--c-bg) 90%, var(--c-ink)); --t-paperink-3-rgb: var(--c-paper-ink-rgb); --t-paperink-3: var(--c-paper-ink);
  --t-paperink-4-rgb: var(--c-bg-rgb); --t-paperink-4: color-mix(in srgb, var(--c-bg) 90%, var(--c-ink)); --t-paperink-5-rgb: var(--c-bg-rgb); --t-paperink-6-rgb: var(--c-bg-rgb); --t-paperink-6: color-mix(in srgb, var(--c-bg) 95%, var(--c-ink));
  --t-paperink-7-rgb: var(--c-bg-rgb); --t-paperink-7: color-mix(in srgb, var(--c-bg) 95%, var(--c-ink)); --t-paperink-8-rgb: var(--c-bg-rgb); --t-paperink-8: color-mix(in srgb, var(--c-bg) 90%, var(--c-ink)); --t-paperink-9-rgb: var(--c-bg-rgb); --t-paperink-9: color-mix(in srgb, var(--c-bg) 90%, var(--c-ink));
  --t-paperink-10-rgb: var(--c-paper-ink-rgb); --t-paperink-11-rgb: var(--c-bg-rgb); --t-paperink-11: color-mix(in srgb, var(--c-bg) 85%, var(--c-ink)); --t-paperink-12-rgb: var(--c-bg-rgb); --t-paperink-12: color-mix(in srgb, var(--c-bg) 85%, var(--c-ink));
  --t-paperink-13-rgb: var(--c-bg-rgb); --t-paperink-13: color-mix(in srgb, var(--c-bg) 90%, var(--c-ink)); --t-surface-1-rgb: var(--c-surface-rgb); --t-surface-1: var(--c-surface); --t-surface-2-rgb: var(--c-paper-ink-rgb); --t-surface-2: var(--c-paper-ink);
  --t-surface-3-rgb: var(--c-paper-ink-rgb); --t-surface-3: var(--c-paper-ink); --t-surface-4-rgb: var(--c-surface-rgb); --t-surface-4: var(--c-surface); --t-surface-5-rgb: var(--c-surface-rgb); --t-surface-5: color-mix(in srgb, var(--c-surface) 90%, var(--c-bg));
  --t-surface-6-rgb: var(--c-surface-rgb); --t-surface-6: var(--c-surface); --t-surface-7-rgb: var(--c-surface-rgb); --t-surface-7: color-mix(in srgb, var(--c-surface) 95%, var(--c-ink)); --t-surface-8-rgb: var(--c-surface-rgb); --t-surface-8: color-mix(in srgb, var(--c-surface) 95%, var(--c-bg));
  --t-surface3-1-rgb: var(--c-bg-rgb); --t-surface3-1: color-mix(in srgb, var(--c-surface-3) 45%, var(--c-bg)); --t-surface3-2-rgb: var(--c-surface-3-rgb); --t-surface3-2: color-mix(in srgb, var(--c-surface-3) 65%, var(--c-bg)); --t-surface3-3-rgb: var(--c-surface-3-rgb); --t-surface3-3: color-mix(in srgb, var(--c-surface-3) 85%, var(--c-bg));
  --t-surface3-4-rgb: var(--c-bg-rgb); --t-surface3-4: color-mix(in srgb, var(--c-surface-3) 50%, var(--c-bg)); --t-surface3-5-rgb: var(--c-surface-3-rgb); --t-surface3-5: var(--c-surface-3); --t-surface3-6-rgb: var(--c-surface-3-rgb); --t-surface3-6: color-mix(in srgb, var(--c-surface-3) 65%, var(--c-bg));
  --t-surface3-7-rgb: var(--c-surface-3-rgb); --t-surface3-7: var(--c-surface-3); --t-surface3-8-rgb: var(--c-paper-ink-rgb); --t-surface3-8: var(--c-paper-ink); --t-surface3-9-rgb: var(--c-paper-ink-rgb); --t-surface3-9: var(--c-paper-ink);
  --t-surface3-10-rgb: var(--c-surface-3-rgb); --t-surface3-11-rgb: var(--c-surface-3-rgb); --t-surface3-11: color-mix(in srgb, var(--c-surface-3) 85%, var(--c-bg)); --t-surface3-12-rgb: var(--c-paper-ink-rgb);
  --t-surface3-13-rgb: var(--c-surface-3-rgb); --t-surface3-13: color-mix(in srgb, var(--c-surface-3) 95%, var(--c-bg)); --t-bg-1-rgb: var(--c-paper-ink-rgb); --t-bg-1: var(--c-paper-ink); --t-bg-2-rgb: var(--c-bg-rgb); --t-bg-2: var(--c-bg);
  --t-bg-3-rgb: var(--c-bg-rgb); --t-bg-3: var(--c-bg); --t-bg-4-rgb: var(--c-paper-ink-rgb); --t-bg-4: var(--c-paper-ink); --t-bg-5-rgb: var(--c-bg-rgb); --t-bg-5: var(--c-bg);
  --t-bg-6-rgb: var(--c-bg-rgb); --t-bg-7-rgb: var(--c-bg-rgb); --t-bg-8-rgb: var(--c-bg-rgb); --t-bg-8: var(--c-bg);
  --t-bg-9-rgb: var(--c-bg-rgb); --t-bg-9: var(--c-bg); --t-bg-10-rgb: var(--c-bg-rgb); --t-bg-11-rgb: var(--c-bg-rgb); --t-bg-11: var(--c-bg);
  --t-bg-12-rgb: var(--c-bg-rgb); --t-bg-12: var(--c-bg); --t-bg-13-rgb: var(--c-bg-rgb); --t-info-1-rgb: var(--c-info-rgb); --t-info-1: color-mix(in srgb, var(--c-info) 55%, var(--c-ink));
  --t-info-2-rgb: var(--c-info-rgb); --t-info-2: color-mix(in srgb, var(--c-info) 75%, var(--c-paper)); --t-info-3-rgb: var(--c-info-rgb); --t-info-3: color-mix(in srgb, var(--c-info) 80%, var(--c-paper)); --t-info-4-rgb: var(--c-info-rgb); --t-info-4: color-mix(in srgb, var(--c-info) 90%, var(--c-bg));
  --t-info-5-rgb: var(--c-paper-rgb); --t-info-5: color-mix(in srgb, var(--c-paper) 95%, var(--c-paper-ink)); --t-info-6-rgb: var(--c-info-rgb); --t-info-6: color-mix(in srgb, var(--c-info) 90%, var(--c-bg)); --t-magic-1-rgb: var(--c-magic-rgb); --t-magic-1: color-mix(in srgb, var(--c-magic) 70%, var(--c-bg));
  --t-magic-2-rgb: var(--c-paper-ink-rgb); --t-magic-2: color-mix(in srgb, var(--c-accent-lo) 50%, var(--c-paper-ink)); --t-magic-3-rgb: var(--c-magic-rgb); --t-magic-3: color-mix(in srgb, var(--c-magic) 80%, var(--c-paper-ink)); --t-magic-4-rgb: var(--c-magic-rgb); --t-magic-4: color-mix(in srgb, var(--c-magic) 90%, var(--c-bg));
  --t-magic-5-rgb: var(--c-magic-rgb); --t-magic-5: color-mix(in srgb, var(--c-magic) 75%, var(--c-paper-ink)); --t-magic-6-rgb: var(--c-magic-rgb); --t-magic-6: color-mix(in srgb, var(--c-magic) 90%, var(--c-bg)); --t-magic-7-rgb: var(--c-magic-rgb); --t-magic-7: color-mix(in srgb, var(--c-magic) 60%, var(--c-ink));
  --t-accentlo-1-rgb: var(--c-accent-lo-rgb); --t-accentlo-1: var(--c-accent-lo); --t-accentlo-2-rgb: var(--c-accent-lo-rgb); --t-accentlo-2: color-mix(in srgb, var(--c-accent-lo) 60%, var(--c-paper-ink)); --t-accentlo-3-rgb: var(--c-accent-lo-rgb); --t-accentlo-3: color-mix(in srgb, var(--c-accent-lo) 90%, var(--c-bg));
  --t-accentlo-4-rgb: var(--c-accent-lo-rgb); --t-accentlo-4: color-mix(in srgb, var(--c-accent-lo) 65%, var(--c-paper-ink)); --t-accentlo-5-rgb: var(--c-bg-rgb); --t-accentlo-5: color-mix(in srgb, var(--c-accent-lo) 50%, var(--c-bg)); --t-accentlo-6-rgb: var(--c-accent-lo-rgb); --t-accentlo-6: color-mix(in srgb, var(--c-accent-lo) 70%, var(--c-bg));
  --t-accent-1-rgb: var(--c-accent-rgb); --t-accent-1: color-mix(in srgb, var(--c-accent) 95%, var(--c-bg)); --t-accent-2-rgb: var(--c-accent-rgb); --t-accent-2: color-mix(in srgb, var(--c-accent) 85%, var(--c-paper-ink)); --t-accent-3-rgb: var(--c-accent-rgb); --t-accent-3: color-mix(in srgb, var(--c-accent) 95%, var(--c-bg));
  --t-accent-4-rgb: var(--c-accent-rgb); --t-accent-4: var(--c-accent); --t-accent-5-rgb: var(--c-accent-rgb); --t-accent-5: color-mix(in srgb, var(--c-accent) 85%, var(--c-ink)); --t-accent-6-rgb: var(--c-accent-rgb);
  --t-accent-7-rgb: var(--c-accent-rgb); --t-gold-1-rgb: var(--c-warn-rgb); --t-gold-1: color-mix(in srgb, var(--c-warn) 80%, var(--c-paper)); --t-gold-2-rgb: var(--c-gold-rgb); --t-gold-2: color-mix(in srgb, var(--c-gold) 90%, var(--c-bg));
  --t-gold-3-rgb: var(--c-gold-rgb); --t-gold-4-rgb: var(--c-gold-rgb); --t-gold-5-rgb: var(--c-gold-rgb);
  --t-inkdim-1-rgb: var(--c-accent-lo-rgb); --t-inkdim-1: color-mix(in srgb, var(--c-accent-lo) 60%, var(--c-paper-ink)); --t-inkdim-2-rgb: var(--c-ink-dim-rgb); --t-inkdim-2: color-mix(in srgb, var(--c-ink-dim) 90%, var(--c-bg)); --t-accentedge-1-rgb: var(--c-accent-edge-rgb); --t-accentedge-1: color-mix(in srgb, var(--c-accent-edge) 70%, var(--c-bg));
  --t-accentedge-2-rgb: var(--c-accent-edge-rgb); --t-accentedge-2: color-mix(in srgb, var(--c-accent-edge) 95%, var(--c-ink)); --t-accentedge-3-rgb: var(--c-accent-edge-rgb); --t-accentedge-3: color-mix(in srgb, var(--c-accent-edge) 90%, var(--c-bg)); --t-accentedge-4-rgb: var(--c-accent-edge-rgb); --t-accentedge-4: color-mix(in srgb, var(--c-accent-edge) 90%, var(--c-ink));
  --t-accentedge-5-rgb: var(--c-paper-ink-rgb); --t-accentedge-6-rgb: var(--c-paper-ink-rgb); --t-accentedge-6: color-mix(in srgb, var(--c-paper-ink) 85%, var(--c-paper)); --t-accentedge-7-rgb: var(--c-accent-edge-rgb); --t-accentedge-7: color-mix(in srgb, var(--c-accent-edge) 90%, var(--c-bg));
  --t-accentedge-8-rgb: var(--c-accent-lo-rgb); --t-accentedge-8: color-mix(in srgb, var(--c-accent-lo) 55%, var(--c-paper-ink)); --t-accentedge-9-rgb: var(--c-accent-edge-rgb); --t-accentedge-9: color-mix(in srgb, var(--c-accent-edge) 95%, var(--c-ink)); --t-accentedge-10-rgb: var(--c-accent-edge-rgb); --t-accentedge-10: var(--c-accent-edge);
  --t-accentedge-11-rgb: var(--c-accent-edge-rgb); --t-accentedge-11: color-mix(in srgb, var(--c-accent-edge) 95%, var(--c-ink)); --t-felt-1-rgb: var(--c-felt-rgb); --t-felt-1: color-mix(in srgb, var(--c-felt) 90%, var(--c-ink)); --t-felt-2-rgb: var(--c-felt-rgb); --t-felt-2: color-mix(in srgb, var(--c-felt) 90%, var(--c-bg));
  --t-felt-3-rgb: var(--c-felt-rgb); --t-felt-3: var(--c-felt); --t-felt2-1-rgb: var(--c-felt-2-rgb); --t-felt2-1: color-mix(in srgb, var(--c-felt-2) 70%, var(--c-bg)); --t-felt2-2-rgb: var(--c-felt-2-rgb); --t-felt2-2: color-mix(in srgb, var(--c-felt-2) 80%, var(--c-bg));
  --t-felt2-3-rgb: var(--c-felt-2-rgb); --t-felt2-3: color-mix(in srgb, var(--c-felt-2) 65%, var(--c-bg)); --t-felt2-4-rgb: var(--c-paper-ink-rgb); --t-felt2-4: color-mix(in srgb, var(--c-paper-ink) 95%, var(--c-paper)); --t-warn-1-rgb: var(--c-warn-rgb); --t-warn-1: color-mix(in srgb, var(--c-warn) 95%, var(--c-bg));
  --t-warn-2-rgb: var(--c-warn-rgb); --t-warn-2: var(--c-warn); --t-warn-3-rgb: var(--c-warn-rgb); --t-warn-4-rgb: var(--c-accent-rgb); --t-warn-4: color-mix(in srgb, var(--c-accent) 95%, var(--c-paper));
  --t-warn-5-rgb: var(--c-warn-rgb); --t-warn-6-rgb: var(--c-warn-rgb); --t-warn-7-rgb: var(--c-warn-rgb);
  --t-felt3-1-rgb: var(--c-felt-3-rgb); --t-felt3-1: color-mix(in srgb, var(--c-felt-3) 75%, var(--c-bg)); --t-felt3-2-rgb: var(--c-bg-rgb); --t-gold-6-rgb: var(--c-gold-rgb); --t-gold-6: color-mix(in srgb, var(--c-gold) 95%, var(--c-bg));
  --t-gold-7-rgb: var(--c-gold-rgb); --t-gold-7: color-mix(in srgb, var(--c-gold) 85%, var(--c-ink)); --t-magic-8-rgb: var(--c-magic-rgb); --t-magic-8: color-mix(in srgb, var(--c-magic) 75%, var(--c-ink)); --t-ink-21-rgb: var(--c-ink-rgb); --t-ink-21: var(--c-ink);
  --t-warn-8-rgb: var(--c-warn-rgb); --t-warn-8: color-mix(in srgb, var(--c-warn) 95%, var(--c-bg)); --t-info-7-rgb: var(--c-info-rgb); --t-info-7: color-mix(in srgb, var(--c-info) 80%, var(--c-bg)); --t-c-accent-1-rgb: var(--c-accent-rgb); --t-c-accent-1: color-mix(in srgb, var(--c-accent) 90%, var(--c-paper-ink));
  --t-c-bg-1-rgb: var(--c-paper-ink-rgb); --t-c-bg-1: var(--c-paper-ink); --t-c-bg2-6-rgb: var(--c-paper-ink-rgb); --t-c-bg2-6: var(--c-paper-ink); --t-c-danger-1-rgb: var(--c-accent-rgb); --t-c-danger-1: var(--c-accent);
  --t-c-danger-4-rgb: var(--c-danger-rgb); --t-c-danger-4: color-mix(in srgb, var(--c-danger) 60%, var(--c-paper-ink)); --t-c-hi-rgb: var(--c-paper-rgb); --t-c-hi: var(--c-paper); --t-c-hi-2-rgb: var(--c-paper-rgb); --t-c-hi-2: var(--c-paper);
  --t-c-ink-1-rgb: var(--c-paper-rgb); --t-c-ink-1: var(--c-paper); --t-c-ink-2-rgb: var(--c-ok-rgb); --t-c-ink-2: color-mix(in srgb, var(--c-ok) 90%, var(--c-paper-ink)); --t-c-ink-3-rgb: var(--c-paper-rgb); --t-c-ink-3: var(--c-paper);
  --t-c-paper-2-rgb: var(--c-paper-rgb); --t-c-paper-2: var(--c-paper); --t-c-paper-3-rgb: var(--c-paper-rgb); --t-c-paper-3: color-mix(in srgb, var(--c-paper) 90%, var(--c-paper-ink)); --t-c-surface-2-rgb: var(--c-paper-ink-rgb); --t-c-surface-2: var(--c-paper-ink);
  --t-c-surface2-1-rgb: var(--c-paper-ink-rgb); --t-c-surface2-1: color-mix(in srgb, var(--c-paper-ink) 95%, var(--c-paper)); --t-c-accent2-1-rgb: var(--c-warn-rgb); --t-c-accent2-1: color-mix(in srgb, var(--c-warn) 60%, var(--c-paper)); --t-c-accent2-2-rgb: var(--c-paper-rgb); --t-c-accent2-2: color-mix(in srgb, var(--c-warn) 50%, var(--c-paper));
  --t-c-accentedge-1-rgb: var(--c-paper-ink-rgb); --t-c-accentedge-1: color-mix(in srgb, var(--c-paper-ink) 90%, var(--c-paper)); --t-c-bg-2-rgb: var(--c-paper-ink-rgb); --t-c-bg-2: var(--c-paper-ink); --t-c-bg2-2-rgb: var(--c-paper-ink-rgb); --t-c-bg2-2: var(--c-paper-ink);
  --t-c-bg2-5-rgb: var(--c-paper-ink-rgb); --t-c-danger-3-rgb: var(--c-danger-rgb); --t-c-danger-3: var(--c-danger); --t-c-danger-6-rgb: var(--c-danger-rgb); --t-c-danger-6: color-mix(in srgb, var(--c-danger) 90%, var(--c-paper));
  --t-c-danger2-1-rgb: var(--c-paper-rgb); --t-c-danger2-1: color-mix(in srgb, var(--c-paper) 90%, var(--c-paper-ink)); --t-c-ink-rgb: var(--c-paper-rgb); --t-c-ink: var(--c-paper); --t-c-ink-6-rgb: var(--c-paper-rgb); --t-c-ink-6: var(--c-paper);
  --t-c-ink-dim-rgb: var(--c-accent-lo-rgb); --t-c-ink-dim: color-mix(in srgb, var(--c-accent-lo) 75%, var(--c-paper-ink)); --t-c-magic-1-rgb: var(--c-magic-rgb); --t-c-magic-1: color-mix(in srgb, var(--c-magic) 70%, var(--c-paper-ink)); --t-c-ok-1-rgb: var(--c-ok-rgb); --t-c-ok-1: color-mix(in srgb, var(--c-ok) 90%, var(--c-paper-ink));
  --t-c-surface3-3-rgb: var(--c-paper-ink-rgb); --t-c-surface3-3: var(--c-paper-ink); --t-g-accent-7-rgb: var(--c-glow-rgb); --t-g-gold-3-rgb: var(--c-glow-rgb);
  --t-g-gold-4-rgb: var(--c-glow-rgb); --t-g-gold-5-rgb: var(--c-glow-rgb); --t-g-warn-3-rgb: var(--c-glow-rgb);
  --t-g-warn-6-rgb: var(--c-glow-rgb); --t-g-warn-7-rgb: var(--c-glow-rgb);
}
/* @@tones-end */

/* base: the look the game has always had (its values are style.css :root) */
[data-theme="base"] { }

/* @@sets: generated by scripts/themes-build.mjs from docs/design/themes/themes.mjs — edit there, not here */
/* D1 · Гильдейский зал (dark). Draft notes:
   warn: derived (no warn in canvas)
   tex-panel: canvas also draws 4 brass corner brackets and a double inset frame as extra layers — not a token
   ink-dim: canvas --c-fnt #75664f fails AA; token raised */
[data-theme="d1"] {
  --c-bg-rgb: 11, 8, 7;
  --c-bg-2-rgb: 13, 10, 8;
  --c-surface-rgb: 26, 20, 16;
  --c-surface-2-rgb: 42, 33, 25;
  --c-surface-3-rgb: 47, 38, 30;
  --c-ink-rgb: 241, 229, 204;
  --c-ink-2-rgb: 179, 162, 132;
  --c-ink-dim-rgb: 139, 125, 102;
  --c-accent-rgb: 201, 162, 102;
  --c-accent-2-rgb: 236, 210, 157;
  --c-gold-rgb: 231, 201, 143;
  --c-danger-rgb: 216, 100, 79;
  --c-ok-rgb: 156, 203, 143;
  --c-warn-rgb: 224, 160, 74;
  --c-shadow-rgb: 0, 0, 0;
  --c-felt-rgb: 46, 61, 44;
  --c-felt-2-rgb: 20, 30, 21;
  --c-on-accent-rgb: 26, 18, 10;
  --c-line: rgba(var(--c-ink-rgb), .16); --c-line-strong: rgba(var(--c-ink-rgb), .28); --c-overlay: rgba(4,3,2,.8);
  --c-well-rgb:0, 0, 0; --c-glow-rgb: 231, 201, 143;
  --c-accent-lo-rgb: 152, 122, 77; --c-accent-edge-rgb: 87, 70, 45; --c-danger-2-rgb: 225, 145, 123; --c-felt-3-rgb: 16, 19, 14; --c-info-rgb: 140, 188, 255; --c-magic-rgb: 157, 140, 255; --c-paper-rgb: 236, 221, 192; --c-paper-ink-rgb: 30, 23, 17;
  --font-display: "Cormorant SC", Georgia, serif; --font-body: "Fira Sans", system-ui, sans-serif; --font-num: "Fira Sans Condensed", "Fira Sans", sans-serif;
  --fw-bold: 700; --ls-caps: .2em;
  --r-xs: 2px; --r-sm: 3px; --r-md: 4px; --r-lg: 6px; --r-pill: 999px; --bw: 1px; --bw-strong: 2px;
  --shadow-1: inset 0 1px 0 rgba(255,235,200,.12), 0 4px 10px rgba(0,0,0,.5);
  --shadow-2: 0 24px 60px rgba(0,0,0,.65);
  --shadow-glow: 0 0 0 4px rgba(201,162,102,.18), 0 6px 18px rgba(201,162,102,.25);
  --tex-panel: linear-gradient(172deg,#2a2119 0%,#1a1410 55%,#130f0c 100%);
  --tex-felt: radial-gradient(ellipse at 50% 40%,#2e3d2c,#141e15 72%);
  --seat-0-rgb: 246, 168, 74; --seat-1-rgb: 179, 156, 242; --seat-2-rgb: 184, 216, 92; --seat-3-rgb: 125, 196, 255; --seat-4-rgb: 255, 127, 184;
  --seat-tip-0-rgb: 246, 168, 74; --seat-tip-1-rgb: 179, 156, 242; --seat-tip-2-rgb: 184, 216, 92; --seat-tip-3-rgb: 125, 196, 255; --seat-tip-4-rgb: 255, 127, 184;
  --fam-mc-yellow: #e6b540; --fam-mc-white: #efe9db; --fam-mc-red: #fe7064; --fam-mc-blue: #63a1fe; --fam-mc-amber: #bb8721; --fam-mc-cream: #f4df95; --fam-mc-orange: #e37e3c; --fam-mc-green: #52b16d; --fam-mc-silver: #aca9a3; --fam-mc-pink: #eea6a3; --fam-mc-sky: #a6cbf5; --fam-mc-crimson: #d45e55; --fam-mc-violet: #a068dd; --fam-mc-navy: #5c81d1;
}

/* D2 · Манускрипт (light). Draft notes:
   bg: INVERSION: canvas is light paper sheets on DARK leather (#140d09). Contract has one ink, so skin-only D2 is a light page; the leather surround is lost
   bg-2: derived
   gold: derived (canvas has none)
   warn: derived
   felt: canvas has no felt. Was D1's dark felt; theme-tokens 07.10: a light vellum instead — no text colour reads 4.5:1 on a light page AND a dark felt
   ink-dim: canvas --ink3 #8b7457 fails AA; token darkened
   num: EB Garamond defaults to old-style figures: needs font-variant-numeric: lining-nums tabular-nums */
[data-theme="d2"] {
  --c-bg-rgb: 211, 194, 154;
  --c-bg-2-rgb: 196, 178, 131;
  --c-surface-rgb: 237, 225, 197;
  --c-surface-2-rgb: 230, 215, 179;
  --c-surface-3-rgb: 220, 203, 159;
  --c-ink-rgb: 43, 29, 18;
  --c-ink-2-rgb: 86, 66, 47;
  --c-ink-dim-rgb: 83, 66, 47;
  --c-accent-rgb: 126, 41, 26;
  --c-accent-2-rgb: 121, 45, 28;
  --c-gold-rgb: 90, 64, 27;
  --c-danger-rgb: 131, 36, 22;
  --c-ok-rgb: 55, 76, 35;
  --c-warn-rgb: 98, 61, 22;
  --c-shadow-rgb: 40, 22, 6;
  --c-felt-rgb: 221, 208, 171;
  --c-felt-2-rgb: 196, 176, 127;
  --c-on-accent-rgb: 248, 237, 213;
  --c-on-brass: rgb(26, 19, 10);
  --c-line: rgba(var(--c-ink-rgb), .16); --c-line-strong: rgba(var(--c-ink-rgb), .28); --c-overlay: rgba(20,13,9,.72);
  --c-well-rgb:211, 194, 154; --c-glow-rgb: 219, 202, 170;
  --c-accent-lo-rgb: 154, 91, 68; --c-accent-edge-rgb: 177, 133, 103; --c-danger-2-rgb: 100, 34, 21; --c-felt-3-rgb: 204, 185, 141; --c-info-rgb: 92, 109, 137; --c-magic-rgb: 106, 90, 148; --c-paper-rgb: 237, 225, 197; --c-paper-ink-rgb: 43, 29, 18;
  --font-display: "Cormorant SC", Georgia, serif; --font-body: "EB Garamond", Georgia, serif; --font-num: "EB Garamond", Georgia, serif;
  --fw-bold: 700; --ls-caps: .16em; --fv-num: lining-nums tabular-nums;
  --r-xs: 1px; --r-sm: 2px; --r-md: 2px; --r-lg: 3px; --r-pill: 999px; --bw: 1px; --bw-strong: 1.5px;
  --shadow-1: 0 2px 6px rgba(60,35,10,.35);
  --shadow-2: 0 30px 70px rgba(40,22,6,.55);
  --shadow-glow: 0 0 0 3px rgba(161,46,29,.25);
  --tex-panel: radial-gradient(ellipse 85% 75% at 50% 45%,#f3e9d1 0%,#e9dbbb 60%,#d8c49a 100%);
  --tex-felt: radial-gradient(ellipse at 50% 40%,#e6dbbb,#ddd0ab 45%,#c4b07f 100%);
  --veil-fight: linear-gradient(180deg,rgba(var(--t-bg2-2-rgb), .95),rgba(var(--t-bg2-2-rgb), .92) 40%,rgba(var(--t-bg2-2-rgb), .96));
  --veil-online: linear-gradient(rgba(var(--t-bg2-2-rgb), .94),rgba(var(--t-bg2-2-rgb), .97)); --veil-room: linear-gradient(rgba(var(--t-bg2-2-rgb), .92),rgba(var(--t-bg2-2-rgb), .96));
  --seat-0-rgb: 95, 57, 2; --seat-1-rgb: 62, 35, 110; --seat-2-rgb: 69, 86, 1; --seat-3-rgb: 3, 72, 115; --seat-4-rgb: 108, 0, 63;
  --seat-tip-0-rgb: 95, 57, 2; --seat-tip-1-rgb: 62, 35, 110; --seat-tip-2-rgb: 69, 86, 1; --seat-tip-3-rgb: 3, 72, 115; --seat-tip-4-rgb: 108, 0, 63;
}

/* D3 · Минимал-стол (dark). Draft notes:
   bg-2: derived
   line-strong: derived
   accent-2: derived
   gold: = accent (one brass accent)
   warn: derived
   felt: canvas felt is the flat surface #1a1716 — NOT green; cell colours sit on grey-brown
   ink-dim: canvas --c-fnt #625a52 fails AA; token raised
   tex-*: none (flat) */
[data-theme="d3"] {
  --c-bg-rgb: 18, 16, 17;
  --c-bg-2-rgb: 13, 11, 12;
  --c-surface-rgb: 26, 23, 22;
  --c-surface-2-rgb: 33, 29, 27;
  --c-surface-3-rgb: 43, 38, 35;
  --c-ink-rgb: 243, 237, 228;
  --c-ink-2-rgb: 154, 145, 135;
  --c-ink-dim-rgb: 136, 128, 120;
  --c-accent-rgb: 214, 171, 98;
  --c-accent-2-rgb: 230, 195, 134;
  --c-gold-rgb: 214, 171, 98;
  --c-danger-rgb: 227, 113, 91;
  --c-ok-rgb: 140, 197, 143;
  --c-warn-rgb: 224, 161, 74;
  --c-shadow-rgb: 0, 0, 0;
  --c-felt-rgb: 26, 23, 22;
  --c-felt-2-rgb: 20, 17, 15;
  --c-on-accent-rgb: 24, 18, 10;
  --c-line: rgba(var(--c-ink-rgb), .16); --c-line-strong: rgba(var(--c-ink-rgb), .28); --c-overlay: rgba(10,8,8,.78);
  --c-well-rgb:0, 0, 0; --c-glow-rgb: 214, 171, 98;
  --c-accent-lo-rgb: 151, 121, 72; --c-accent-edge-rgb: 96, 78, 49; --c-danger-2-rgb: 233, 156, 139; --c-felt-3-rgb: 19, 17, 16; --c-info-rgb: 140, 188, 255; --c-magic-rgb: 157, 140, 255; --c-paper-rgb: 240, 229, 212; --c-paper-ink-rgb: 38, 32, 25;
  --font-display: "Manrope", system-ui, sans-serif; --font-body: "Manrope", system-ui, sans-serif; --font-num: "Manrope", system-ui, sans-serif;
  --fw-bold: 800; --ls-caps: .16em;
  --r-xs: 4px; --r-sm: 6px; --r-md: 8px; --r-lg: 12px; --r-pill: 999px; --bw: 1px; --bw-strong: 2px;
  --shadow-1: 0 1px 0 rgba(0,0,0,.4);
  --shadow-2: 0 20px 50px rgba(0,0,0,.5);
  --shadow-glow: 0 0 0 2px rgba(214,171,98,.35);
  --tex-panel: linear-gradient(var(--c-surface), var(--c-surface));
  --tex-felt: linear-gradient(var(--c-felt), var(--c-felt));
  --seat-0-rgb: 246, 168, 74; --seat-1-rgb: 179, 156, 242; --seat-2-rgb: 184, 216, 92; --seat-3-rgb: 125, 196, 255; --seat-4-rgb: 255, 127, 184;
  --seat-tip-0-rgb: 246, 168, 74; --seat-tip-1-rgb: 179, 156, 242; --seat-tip-2-rgb: 184, 216, 92; --seat-tip-3-rgb: 125, 196, 255; --seat-tip-4-rgb: 255, 127, 184;
}

/* D4 · Игорный стол (dark). Draft notes:
   bg: canvas: wooden rail (#4a2a18) around a green felt; one bg token can carry only the felt. The ivory playing-card panels (#f3ebd9) are NOT used: dark placemats instead
   accent-2: derived
   warn: derived
   bg-2: = felt-lo
   r-*: canvas: chips round 50%, buttons pill 28px, cards 18px, mats 24px, inputs 10px
   num: Alegreya default figures are old-style: set lining-nums tabular-nums */
[data-theme="d4"] {
  --c-bg-rgb: 10, 44, 32;
  --c-bg-2-rgb: 4, 19, 13;
  --c-surface-rgb: 17, 66, 49;
  --c-surface-2-rgb: 15, 58, 43;
  --c-surface-3-rgb: 27, 92, 66;
  --c-ink-rgb: 235, 227, 207;
  --c-ink-2-rgb: 157, 179, 163;
  --c-ink-dim-rgb: 151, 168, 150;
  --c-accent-rgb: 168, 48, 42;
  --c-accent-2-rgb: 192, 69, 61;
  --c-gold-rgb: 217, 184, 120;
  --c-danger-rgb: 240, 138, 116;
  --c-ok-rgb: 155, 208, 142;
  --c-warn-rgb: 227, 178, 60;
  --c-shadow-rgb: 0, 0, 0;
  --c-felt-rgb: 17, 66, 49;
  --c-felt-2-rgb: 4, 19, 13;
  --c-on-accent-rgb: 251, 242, 223;
  --c-on-brass: rgb(26, 19, 10);
  --c-line: rgba(var(--c-ink-rgb), .16); --c-line-strong: rgba(var(--c-ink-rgb), .28); --c-overlay: rgba(2,8,6,.6);
  --c-accent-tx-rgb: 217, 184, 120;
  --c-accent-2-tx-rgb: 217, 184, 120;
  --c-well-rgb:0, 0, 0; --c-glow-rgb: 217, 184, 120;
  --c-accent-lo-rgb: 97, 46, 38; --c-accent-edge-rgb: 73, 46, 36; --c-danger-2-rgb: 238, 169, 148; --c-felt-3-rgb: 7, 32, 23; --c-info-rgb: 140, 188, 255; --c-magic-rgb: 157, 140, 255; --c-paper-rgb: 227, 206, 187; --c-paper-ink-rgb: 26, 44, 33;
  --font-display: "Alegreya SC", Georgia, serif; --font-body: "Alegreya Sans", "Segoe UI", sans-serif; --font-num: "Alegreya Sans", "Segoe UI", sans-serif;
  --fw-bold: 700; --ls-caps: .2em; --fv-num: lining-nums tabular-nums;
  --r-xs: 6px; --r-sm: 10px; --r-md: 18px; --r-lg: 24px; --r-pill: 999px; --bw: 2px; --bw-strong: 3px;
  --shadow-1: 0 5px 0 rgba(0,0,0,.55), 0 11px 20px rgba(0,0,0,.5);
  --shadow-2: 0 20px 44px rgba(0,0,0,.55);
  --shadow-glow: 0 0 0 3px rgba(241,220,170,.6);
  --tex-panel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .32 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"), linear-gradient(168deg,#1b5c42,#114231 45%,#0d3a2a);
  --tex-felt: radial-gradient(ellipse 60% 55% at 50% 45%,rgba(46,128,90,.42),transparent 72%), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .32 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"), radial-gradient(ellipse 120% 105% at 50% 42%,#114231 0%,#0a2c20 52%,#04130d 100%);
  --seat-0-rgb: 254, 201, 145; --seat-1-rgb: 203, 186, 254; --seat-2-rgb: 210, 243, 119; --seat-3-rgb: 180, 220, 254; --seat-4-rgb: 254, 175, 207;
  --seat-tip-0-rgb: 254, 201, 145; --seat-tip-1-rgb: 203, 186, 254; --seat-tip-2-rgb: 210, 243, 119; --seat-tip-3-rgb: 180, 220, 254; --seat-tip-4-rgb: 254, 175, 207;
  --fam-mc-yellow: #e8b742; --fam-mc-white: #f1ebdd; --fam-mc-red: #fe7367; --fam-mc-blue: #66a3fe; --fam-mc-amber: #bd8923; --fam-mc-cream: #f6e197; --fam-mc-orange: #e5803e; --fam-mc-green: #54b36e; --fam-mc-silver: #aeaba5; --fam-mc-pink: #f0a8a5; --fam-mc-sky: #a8cdf7; --fam-mc-crimson: #d66056; --fam-mc-violet: #a26adf; --fam-mc-navy: #5d83d3;
}

/* D5 · Витраж и свеча (dark). Draft notes:
   danger: canvas ruby #c0352d is a glass FILL; as text it fails: lightened #e0584d
   fw-bold: Forum has ONE weight (400): no bold exists; hierarchy by size and caps
   felt: canvas has no felt (night glass): derived
   surface*: canvas panes are jewel-tinted PER PANE (--j: ruby/sapphire/emerald…) — one token cannot do that
   accent: = amber; the other 6 jewels have no token
   r-*: 0 everywhere: lead-framed glass; rings stay round */
[data-theme="d5"] {
  --c-bg-rgb: 7, 6, 10;
  --c-bg-2-rgb: 15, 12, 20;
  --c-surface-rgb: 12, 9, 16;
  --c-surface-2-rgb: 16, 12, 22;
  --c-surface-3-rgb: 23, 18, 29;
  --c-ink-rgb: 243, 232, 210;
  --c-ink-2-rgb: 163, 150, 138;
  --c-ink-dim-rgb: 133, 123, 110;
  --c-accent-rgb: 227, 163, 60;
  --c-accent-2-rgb: 255, 179, 87;
  --c-gold-rgb: 232, 194, 122;
  --c-danger-rgb: 224, 88, 77;
  --c-ok-rgb: 58, 154, 98;
  --c-warn-rgb: 255, 179, 87;
  --c-shadow-rgb: 3, 2, 4;
  --c-felt-rgb: 20, 16, 28;
  --c-felt-2-rgb: 7, 6, 10;
  --c-on-accent-rgb: 26, 16, 7;
  --c-line: rgba(var(--c-ink-rgb), .16); --c-line-strong: rgba(var(--c-ink-rgb), .28); --c-overlay: rgba(3,2,4,.82);
  --c-well-rgb:3, 2, 4; --c-glow-rgb: 232, 194, 122;
  --c-accent-lo-rgb: 161, 116, 45; --c-accent-edge-rgb: 95, 69, 30; --c-danger-2-rgb: 231, 138, 124; --c-felt-3-rgb: 7, 6, 10; --c-info-rgb: 140, 188, 255; --c-magic-rgb: 157, 140, 255; --c-paper-rgb: 241, 224, 192; --c-paper-ink-rgb: 29, 22, 15;
  --font-display: "Forum", "Times New Roman", serif; --font-body: "Spectral", Georgia, serif; --font-num: "Spectral", Georgia, serif;
  --fw-bold: 400; --ls-caps: .16em; --fv-num: lining-nums tabular-nums;
  --r-xs: 0; --r-sm: 0; --r-md: 0; --r-lg: 0; --r-pill: 999px; --bw: 1px; --bw-strong: 3px;
  --shadow-1: 0 0 0 3px #030204, 0 0 0 4px rgba(227,163,60,.3);
  --shadow-2: 0 0 0 3px #030204, 0 0 46px rgba(227,163,60,.16);
  --shadow-glow: 0 0 34px rgba(227,163,60,.55);
  --tex-panel: linear-gradient(162deg,rgba(227,163,60,.2) 0%,rgba(12,9,16,.92) 42%,rgba(8,6,11,.96) 100%);
  --tex-felt: radial-gradient(ellipse 60% 70% at 40% 40%,#241a38,#14101c 60%,#07060a);
  --seat-0-rgb: 246, 168, 74; --seat-1-rgb: 179, 156, 242; --seat-2-rgb: 184, 216, 92; --seat-3-rgb: 125, 196, 255; --seat-4-rgb: 255, 127, 184;
  --seat-tip-0-rgb: 246, 168, 74; --seat-tip-1-rgb: 179, 156, 242; --seat-tip-2-rgb: 184, 216, 92; --seat-tip-3-rgb: 125, 196, 255; --seat-tip-4-rgb: 255, 127, 184;
}

/* D6 · Кодекс-HUD (dark). Draft notes:
   r-pill: 0 on purpose: the canvas has only squares (crests, dots); avatars/dots turn square with this token
   gold: = brass-hi
   felt: canvas has no felt: dark panel with the 24px grid (derived)
   warn: derived (canvas has `info` blue instead)
   ink-dim: canvas --faint #5c574e fails AA; token raised
   display: no display face: same Plex Condensed (600)
   shadow-1: none (hairline panels) */
[data-theme="d6"] {
  --c-bg-rgb: 12, 12, 11;
  --c-bg-2-rgb: 15, 15, 13;
  --c-surface-rgb: 19, 19, 17;
  --c-surface-2-rgb: 25, 24, 21;
  --c-surface-3-rgb: 29, 27, 23;
  --c-ink-rgb: 233, 227, 213;
  --c-ink-2-rgb: 149, 141, 127;
  --c-ink-dim-rgb: 131, 126, 116;
  --c-accent-rgb: 201, 162, 102;
  --c-accent-2-rgb: 231, 201, 143;
  --c-gold-rgb: 231, 201, 143;
  --c-danger-rgb: 226, 115, 95;
  --c-ok-rgb: 147, 197, 140;
  --c-warn-rgb: 227, 178, 60;
  --c-shadow-rgb: 0, 0, 0;
  --c-felt-rgb: 18, 22, 17;
  --c-felt-2-rgb: 12, 12, 11;
  --c-on-accent-rgb: 21, 16, 10;
  --c-line: rgba(var(--c-ink-rgb), .16); --c-line-strong: rgba(var(--c-ink-rgb), .28); --c-overlay: rgba(6,6,5,.8);
  --c-well-rgb:0, 0, 0; --c-glow-rgb: 231, 201, 143;
  --c-accent-lo-rgb: 148, 120, 77; --c-accent-edge-rgb: 88, 72, 47; --c-danger-2-rgb: 228, 154, 136; --c-felt-3-rgb: 12, 12, 11; --c-info-rgb: 140, 188, 255; --c-magic-rgb: 157, 140, 255; --c-paper-rgb: 229, 219, 200; --c-paper-ink-rgb: 31, 27, 20;
  --font-display: "IBM Plex Sans Condensed", "Arial Narrow", sans-serif; --font-body: "IBM Plex Sans Condensed", "Arial Narrow", sans-serif; --font-num: "JetBrains Mono", Consolas, monospace;
  --fw-bold: 600; --ls-caps: .16em;
  --r-xs: 0; --r-sm: 0; --r-md: 0; --r-lg: 0; --r-pill: 0; --r-round: 0; --bw: 1px; --bw-strong: 2px;
  --shadow-1: none;
  --shadow-2: 0 12px 30px rgba(0,0,0,.6);
  --shadow-glow: 0 0 0 1px #e7c98f;
  --tex-panel: linear-gradient(var(--c-surface), var(--c-surface));
  --tex-felt: linear-gradient(rgba(201,162,102,.035) 1px,transparent 1px) 0 0/24px 24px, linear-gradient(90deg,rgba(201,162,102,.035) 1px,transparent 1px) 0 0/24px 24px, #121611;
  --seat-0-rgb: 246, 168, 74; --seat-1-rgb: 179, 156, 242; --seat-2-rgb: 184, 216, 92; --seat-3-rgb: 125, 196, 255; --seat-4-rgb: 255, 127, 184;
  --seat-tip-0-rgb: 246, 168, 74; --seat-tip-1-rgb: 179, 156, 242; --seat-tip-2-rgb: 184, 216, 92; --seat-tip-3-rgb: 125, 196, 255; --seat-tip-4-rgb: 255, 127, 184;
}
/* @@sets-end */

/* mask: the dev theme «Тест · макет» — a pure wireframe of the UX: a white page, every box a white box with a thin grey outline,
   black and grey only, no art, no shadows, no glow. src/themes.ts turns the text mask on («▮»); the look below is CSS only.
   Everything coloured in the game reaches the screen through the tokens (roles, tones, seats, families: all greys here), through
   a few inline custom properties and colours the code sets (listed in the «one hook» rule), or through SVG art (greyed by a filter). */
[data-theme="mask"] {
  color-scheme: light;
  --c-bg-rgb: 255, 255, 255; --c-bg-2-rgb: 255, 255, 255;
  --c-surface-rgb: 255, 255, 255; --c-surface-2-rgb: 255, 255, 255; --c-surface-3-rgb: 255, 255, 255;
  --c-ink-rgb: 58, 58, 58; --c-ink-2-rgb: 106, 106, 106; --c-ink-dim-rgb: 154, 154, 154;
  --c-accent-rgb: 70, 70, 70; --c-accent-2-rgb: 40, 40, 40; --c-gold-rgb: 90, 90, 90;
  --c-danger-rgb: 60, 60, 60; --c-ok-rgb: 120, 120, 120; --c-warn-rgb: 90, 90, 90;
  --c-shadow-rgb: 255, 255, 255; --c-felt-rgb: 255, 255, 255; --c-felt-2-rgb: 255, 255, 255; --c-felt-3-rgb: 255, 255, 255;
  --c-on-accent-rgb: 255, 255, 255;
  --c-line: #c2c2c2; --c-line-strong: #8a8a8a; --c-overlay: rgba(255, 255, 255, .86);
  --c-well-rgb: 255, 255, 255; --c-glow-rgb: 255, 255, 255;
  --c-accent-lo-rgb: 136, 136, 136; --c-accent-edge-rgb: 160, 160, 160; --c-danger-2-rgb: 80, 80, 80; --c-info-rgb: 100, 100, 100; --c-magic-rgb: 120, 120, 120;
  --c-hi-rgb: 255, 255, 255; --c-paper-rgb: 255, 255, 255; --c-paper-ink-rgb: 58, 58, 58;
  --r-xs: 0; --r-sm: 0; --r-md: 0; --r-lg: 0; --r-pill: 0; --r-round: 0; --bw: 1px; --bw-strong: 2px;
  --shadow-1: none; --shadow-2: none; --shadow-glow: none; --shadow-well: none; --shadow-well-2: none; --shadow-well-3: none; --shadow-edge: none;
  --tex-plate: linear-gradient(#fff, #fff); --tex-panel: linear-gradient(#fff, #fff); --tex-felt: linear-gradient(#fff, #fff);
  --veil-fight: none; --veil-online: none; --veil-room: none;
  --seat-0-rgb: 34, 34, 34; --seat-1-rgb: 85, 85, 85; --seat-2-rgb: 119, 119, 119; --seat-3-rgb: 51, 51, 51; --seat-4-rgb: 102, 102, 102;
  --seat-tip-0-rgb: 34, 34, 34; --seat-tip-1-rgb: 85, 85, 85; --seat-tip-2-rgb: 119, 119, 119; --seat-tip-3-rgb: 51, 51, 51; --seat-tip-4-rgb: 102, 102, 102;
  --seat-lit-0-rgb: 34, 34, 34; --seat-lit-1-rgb: 85, 85, 85; --seat-lit-2-rgb: 119, 119, 119; --seat-lit-3-rgb: 51, 51, 51; --seat-lit-4-rgb: 102, 102, 102;
  --fam-mc-yellow: #8c8c8c; --fam-mc-white: #8c8c8c; --fam-mc-red: #8c8c8c; --fam-mc-blue: #8c8c8c; --fam-mc-amber: #8c8c8c; --fam-mc-cream: #8c8c8c; --fam-mc-orange: #8c8c8c; --fam-mc-green: #8c8c8c; --fam-mc-silver: #8c8c8c; --fam-mc-pink: #8c8c8c; --fam-mc-sky: #8c8c8c; --fam-mc-crimson: #8c8c8c; --fam-mc-violet: #8c8c8c; --fam-mc-navy: #8c8c8c; --fam-hit: #666;
}
/* the one hook for what the code colours inline: custom properties (--sc --hc --seat --c and the socket enamel --e-*) and the colour of a seat name */
[data-theme="mask"] *, [data-theme="mask"] *::before, [data-theme="mask"] *::after {
  --sc: #777 !important; --hc: #777 !important; --seat: #555 !important; --c: #8c8c8c !important;
  --e-top: #fff !important; --e-bot: #fff !important; --e-idle-top: #fff !important; --e-idle-bot: #fff !important; --e-edge: #9a9a9a !important;
  background-image: none !important; box-shadow: none !important; text-shadow: none !important; filter: none !important;
}
[data-theme="mask"] [style*="color:"] { color: var(--c-ink) !important; }
[data-theme="mask"] svg, [data-theme="mask"] img, [data-theme="mask"] canvas { filter: grayscale(1) contrast(.5) brightness(1.15) !important; }
[data-theme="mask"], [data-theme="mask"] body, [data-theme="mask"] #stage, [data-theme="mask"] .screen, [data-theme="mask"] .atmo { background: #fff !important; }
/* the wireframe: no fills (the page is white), every box one thin grey outline; the signals the player reads are line weight, dash style and grey level */
[data-theme="mask"] :where(#stage, .modal, .modal *) *, [data-theme="mask"] .modal { background-color: transparent !important; border-color: #b4b4b4 !important; }
[data-theme="mask"] button, [data-theme="mask"] .btn, [data-theme="mask"] .card, [data-theme="mask"] .sk, [data-theme="mask"] .tag, [data-theme="mask"] .mmark, [data-theme="mask"] .mres,
[data-theme="mask"] .plate, [data-theme="mask"] .mmed-disc, [data-theme="mask"] .mpill, [data-theme="mask"] .mcap, [data-theme="mask"] .mcap-i, [data-theme="mask"] .felt,
[data-theme="mask"] .mdock2, [data-theme="mask"] .mbag, [data-theme="mask"] .mintro-box, [data-theme="mask"] .modal > div, [data-theme="mask"] .tip, [data-theme="mask"] .mplq, [data-theme="mask"] .mtask,
[data-theme="mask"] .mnat-pop, [data-theme="mask"] .mrule-pop, [data-theme="mask"] .mchoice, [data-theme="mask"] .mmed, [data-theme="mask"] .mbank, [data-theme="mask"] .ftop { outline: 1px solid #a8a8a8; outline-offset: -1px; background-color: #fff !important; }
[data-theme="mask"] .tip, [data-theme="mask"] .modal > div, [data-theme="mask"] .mintro-box, [data-theme="mask"] .mcap, [data-theme="mask"] .mchoice, [data-theme="mask"] .mnat-pop, [data-theme="mask"] .mrule-pop { outline-color: #777; }
/* signals */
[data-theme="mask"] .sk.empty { outline: 1px dashed #bdbdbd; }
[data-theme="mask"] .sk.legal, [data-theme="mask"] .sk.lit, [data-theme="mask"] .sk.jlit, [data-theme="mask"] .sk.mpk-tgt, [data-theme="mask"] .sk.mpart { outline: 2px dashed #222; outline-offset: 2px; }
[data-theme="mask"] .sk.aimed, [data-theme="mask"] .sk.msrc, [data-theme="mask"] .sk.mlink { outline: 3px double #222; outline-offset: 1px; }
[data-theme="mask"] .sk.struck, [data-theme="mask"] .sk.mattk { outline: 3px dotted #222; outline-offset: 1px; }
[data-theme="mask"] .card.sel, [data-theme="mask"] .btn.legal { outline: 3px solid #222; outline-offset: 0; }
[data-theme="mask"] .card.dmark { outline: 2px dashed #222; }
[data-theme="mask"] .card.dim, [data-theme="mask"] [aria-disabled="true"] { opacity: .45; outline-style: dashed; outline-color: #bbb; }
[data-theme="mask"] .mach.turn { outline: 2px solid #222; outline-offset: 4px; }
[data-theme="mask"] .mach.out, [data-theme="mask"] .plate.out { opacity: .45; }
[data-theme="mask"] .mach.frozen, [data-theme="mask"] .mach[data-notip] { outline: 3px double #888; outline-offset: 6px; }
[data-theme="mask"] [data-kw] { outline: 1px dotted #999; }
[data-theme="mask"] .rt-num { color: var(--c-ink) !important; }
[data-theme="mask"] button, [data-theme="mask"] button * { color: var(--c-ink) !important; }
