@font-face {
  font-family: Noto Chess;
  font-display: block;
  src: url("../hashed/lichess-chess.02d5eb8f.woff2") format("woff2");
}

@font-face {
  font-family: racer-car;
  src: url("../hashed/racer-car.8e43fab1.woff2") format("woff2");
}

@font-face {
  font-family: storm;
  src: url("../hashed/storm.7c2cff15.woff2") format("woff2");
}

@font-face {
  font-family: Noto Sans;
  font-display: swap;
  font-weight: 100 900;
  src: url("../hashed/noto-sans-latin.086bfcad.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Noto Sans;
  font-display: swap;
  font-weight: 100 900;
  src: url("../hashed/noto-sans-latin-ext.6d5a7931.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Noto Sans;
  font-display: swap;
  font-weight: 100 900;
  src: url("../hashed/noto-sans-cyrillic.6ab64433.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: Noto Sans;
  font-display: swap;
  font-weight: 100 900;
  src: url("../hashed/noto-sans-cyrillic-ext.82ff72b2.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: Noto Sans;
  font-display: swap;
  font-weight: 100 900;
  src: url("../hashed/noto-sans-greek-ext.790b255c.woff2") format("woff2");
  unicode-range: U+1F??;
}

@font-face {
  font-family: Noto Sans;
  font-display: swap;
  font-weight: 100 900;
  src: url("../hashed/noto-sans-greek.7f655207.woff2") format("woff2");
  unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
}

@font-face {
  font-family: Noto Sans;
  font-display: swap;
  font-weight: 100 900;
  src: url("../hashed/noto-sans-devanagari.ea6a530b.woff2") format("woff2");
  unicode-range: U+900-97F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
}

@font-face {
  font-family: Noto Sans;
  font-display: swap;
  font-weight: 100 900;
  src: url("../hashed/noto-sans-vietnamese.791e3f21.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: Roboto;
  font-display: swap;
  font-weight: 100 900;
  src: url("../hashed/roboto-latin.20b535fa.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Roboto;
  font-display: swap;
  font-weight: 100 900;
  src: url("../hashed/roboto-latin-ext.884933fb.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Roboto;
  font-display: swap;
  font-weight: 100 900;
  src: url("../hashed/roboto-cyrillic.c06ca3fc.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: Roboto;
  font-display: swap;
  font-weight: 100 900;
  src: url("../hashed/roboto-cyrillic-ext.3a8eee83.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: Roboto;
  font-display: swap;
  font-weight: 100 900;
  src: url("../hashed/roboto-greek.31c59622.woff2") format("woff2");
  unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
}

@font-face {
  font-family: Roboto;
  font-display: swap;
  font-weight: 100 900;
  src: url("../hashed/roboto-greek-ext.d94ccab7.woff2") format("woff2");
  unicode-range: U+1F??;
}

@font-face {
  font-family: Roboto;
  font-display: swap;
  font-weight: 100 900;
  src: url("../hashed/roboto-vietnamese.38ca6805.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

:root {
  ---site-hue: 37deg;
  --c-bg: hsl(var(---site-hue) 7% 14%);
  --c-bg-box: var(--c-bg);
  --c-bg-high: var(--c-bg);
  --c-page-input: var(--c-bg);
  --c-bg-mid: hsl(var(---site-hue) 7% 16%);
  --c-bg-low: hsl(var(---site-hue) 7% 22%);
  --c-bg-popup: var(--c-bg-low);
  --c-bg-page: hsl(var(---site-hue) 10% 8%);
  --c-bg-zebra: hsl(var(---site-hue) 5% 19%);
  --c-bg-zebra2: hsl(var(---site-hue) 5% 24%);
  --c-bg-header-dropdown: var(--c-bg-popup);
  --c-bg-input: hsl(from var(--c-bg-page) h s 12% / alpha);
  --c-bg-variation: hsl(var(---site-hue) 5% 15%);
  --c-bg-opaque: hsl(var(---site-hue) 7% 14%);
  --c-body-gradient: hsl(var(---site-hue) 12% 16%);
  --c-font: #bababa;
  --c-header-dropdown: var(--c-font);
  --c-shade: #4d4d4d;
  --c-dark: #333;
  --c-dimmer: black;
  --c-clearer: white;
  --c-clas: #581c87;
  --c-future: #a068ca;
  --c-page-mask: #0009;
  --c-metal-top: hsl(var(---site-hue) 7% 22%);
  --c-metal-bottom: hsl(var(---site-hue) 5% 19%);
  --c-metal-top-hover: hsl(var(---site-hue) 7% 25%);
  --c-metal-bottom-hover: hsl(var(---site-hue) 5% 22%);
  --c-font-dim: #949494;
  --c-font-dimmer: hsl(from var(--c-font) h s 42% / alpha);
  --c-font-clear: hsl(from var(--c-font) h s 80% / alpha);
  --c-font-clearer: hsl(from var(--c-font) h s 89% / alpha);
  --c-font-page: var(--c-font-dim);
  --c-font-shadow: #2b2b2ba8;
  --c-primary-dim: color-mix(in oklab, var(--c-dimmer) 15%, var(--c-primary));
  --c-link-hover: color-mix(in oklab, var(--c-clearer) 25%, hsl(from var(--c-primary) h 100% l));
  --c-chat-host-bg: #4e7a1d66;
  --c-chat-mention-bg: #3b5c1666;
  --c-fancy: #b72fc6;
  --c-border: #404040;
  --c-border-page: #383838;
  --c-border-tour: color-mix(in oklab, var(--c-border-page) 50%, var(--c-bg-page));
  --c-border-light: #666;
  --c-primary: #3692e7;
  --c-primary-clear: color-mix(in oklab, var(--c-clearer) 20%, var(--c-primary));
  --c-secondary: #629924;
  --c-secondary-dim: color-mix(in oklab, var(--c-dimmer) 20%, var(--c-secondary));
  --c-secondary-dimmer: color-mix(in oklab, var(--c-dimmer) 40%, var(--c-secondary));
  --c-link: var(--c-primary);
  --c-link-dim: var(--c-primary-dim);
  --c-link-clear: var(--c-primary-clear);
  --c-over: white;
  --c-brag: hsl(var(---site-hue) 74% 43%);
  --c-brag-hover: hsl(from var(--c-brag) h 100 70);
  --c-contours: color-mix(in oklab, var(--c-brag) 80%, var(--c-shade));
  --c-accent: #d64f00;
  --c-accent-dim: color-mix(in oklab, var(--c-dimmer) 20%, var(--c-accent));
  --c-accent-faint: #d64f0066;
  --c-accent-clear: color-mix(in oklab, var(--c-clearer) 20%, var(--c-accent));
  --c-accent-glass: hsl(from var(--c-accent) h s l / .2);
  --c-accent-cloud: hsl(from var(--c-accent) h s l / .5);
  --c-dasher: var(--c-secondary);
  --c-bot: var(--c-fancy);
  --c-good: #629924;
  --c-warn: var(--c-brag);
  --c-bad: #c33;
  --c-error: var(--c-bad);
  --c-live: var(--c-bad);
  --c-dasher-light: color-mix(in oklab, var(--c-secondary) 40%, var(--c-bg-low));
  --c-racer-boost: hsl(from var(--c-brag) h s 50% / .7);
  --c-marathon: hsl(from var(--c-primary) calc(h - 190) calc(s - 70%) l);
  --c-tutor-bg: hsl(from color-mix(in oklab, var(--c-secondary) 80%, var(--c-bg)) h calc(s - 10) l);
  --c-inaccuracy: #53b2ea;
  --c-mistake: #e69d00;
  --c-blunder: #df5353;
  --c-good-move: var(--c-good);
  --c-brilliant: #21c43a;
  --c-interesting: #f075e1;
  --c-mv-branch-white: white;
  --c-mv-branch-black: black;
  --c-pool-button: hsl(var(---site-hue), 7%, 19%, .66);
  --c-paper: #f5f5db;
  --c-patron-1: #91ca58;
  --c-patron-2: #7fbd7f;
  --c-patron-3: #62daa2;
  --c-patron-4: #58b7ca;
  --c-patron-5: #72aedf;
  --c-patron-6: #7799df;
  --c-patron-7: #ba89ec;
  --c-patron-8: #d77fc8;
  --c-patron-9: #d47777;
  --c-patron-10: #bf811d;
}

html.light {
  --c-bg: #fff;
  --c-bg-page: hsl(var(---site-hue) 10% 92%);
  --c-bg-low: #e3e3e3;
  --c-bg-mid: hsl(var(---site-hue) 7% 97%);
  --c-bg-zebra: hsl(var(---site-hue) 12% 96.5%);
  --c-bg-zebra2: hsl(var(---site-hue) 12% 92%);
  --c-bg-popup: #fff;
  --c-bg-opaque: #fff;
  --c-body-gradient: hsl(var(---site-hue) 12% 84%);
  --c-font: #4d4d4d;
  --c-font-dim: #787878;
  --c-primary: #1b78d0;
  --c-brag: hsl(var(---site-hue) 74% 48%);
  --c-brag-hover: hsl(from var(--c-brag) h 100 30);
  --c-shade: #d6d6d6;
  --c-inaccuracy: #167bb6;
  --c-mistake: #b37a00;
  --c-blunder: #d62929;
  --c-brilliant: #168326;
  --c-interesting: #ea43d7;
  --c-future: #b981e4;
  --c-paper: #efefc7;
  --c-border: #d9d9d9;
  --c-dimmer: white;
  --c-clearer: black;
  --c-bg-input: hsl(from var(--c-bg-page) h s 97);
  --c-bg-variation: var(--c-bg-zebra2);
  --c-bg-header-dropdown: var(--c-bg);
  --c-page-input: var(--c-bg-low);
  --c-page-mask: #fff6;
  --c-metal-top: #f5f5f5;
  --c-metal-bottom: #ededed;
  --c-metal-top-hover: #fafafa;
  --c-metal-bottom-hover: #f2f2f2;
  --c-font-dimmer: hsl(from var(--c-font) h s 70);
  --c-font-clear: hsl(from var(--c-font) h s 12);
  --c-font-clearer: black;
  --c-font-page: hsl(from var(--c-font) h s 37);
  --c-font-shadow: white;
  --c-primary-dim: color-mix(in oklab, var(--c-dimmer) 17%, var(--c-primary));
  --c-link-hover: color-mix(in oklab, var(--c-clearer) 35%, hsl(from var(--c-primary) h 100 l));
  --c-chat-host-bg: #7daa4966;
  --c-chat-mention-bg: #a1c27c66;
  --c-fancy: #cd63d9;
  --c-border-page: #ccc;
  --c-border-light: #ccc;
  --c-patron-1: #6eaf2c;
  --c-patron-2: #45c445;
  --c-patron-3: #27b990;
  --c-patron-4: #35a9c0;
  --c-patron-5: #1b87de;
  --c-patron-6: #507bd3;
  --c-patron-7: #ab77df;
  --c-patron-8: #cf54ba;
  --c-patron-9: #ce6464;
}

html.transp {
  --c-bg-font: #ccc;
  --c-bg: #0009;
  --c-bg-opaque: #000000e6;
  --c-bg-low: #00000080;
  --c-bg-mid: #26262666;
  --c-bg-zebra: #ffffff0d;
  --c-bg-zebra2: #ffffff1a;
  --c-bg-popup: #0009;
  --c-bg-input: #000000b3;
  --c-bg-variation: #00000040;
  --c-bg-header-dropdown: #000000bf;
  --c-body-gradient: hsl(var(---site-hue) 8% 16% / .8);
  --c-font-dim: hsl(from var(--c-font) h s 69%);
  --c-font-dimmer: hsl(from var(--c-font) h s 48%);
  --c-font-clear: hsl(from var(--c-font) h s 89%);
  --c-font-clearer: hsl(from var(--c-font) h s 97%);
  --c-font-page: hsl(from var(--c-font) h s 97%);
  --c-metal-top: #34312d8f;
  --c-metal-bottom: #34312da8;
  --c-metal-top-hover: #6b6b6b66;
  --c-metal-bottom-hover: #6b6b6b73;
}

html.transp.light {
  --c-primary: #1978d2;
  --c-base: #262626;
  --c-font: #333;
  --c-clearer: #0d0d0d;
  --c-dimmer: #e6e6e6;
  --c-border: #cccc;
  --c-body-gradient: hsl(var(---site-hue) 2% 86% / .8);
  --c-brag-hover: hsl(from var(--c-brag) h 100 30);
  --c-bg: #fff9;
  --c-bg-page: hsl(var(---site-hue) 10% 92%);
  --c-bg-font: #333;
  --c-bg-opaque: #ffffffe6;
  --c-bg-low: #ffffff80;
  --c-bg-mid: #d9d9d966;
  --c-bg-zebra: #ffffff47;
  --c-bg-zebra2: #fff6;
  --c-bg-popup: #ffffffbf;
  --c-bg-input: #ffffffb3;
  --c-bg-variation: #ffffff40;
  --c-bg-header-dropdown: #ffffffbf;
  --c-font-dim: hsl(from var(--c-font) h s 31%);
  --c-font-dimmer: hsl(from var(--c-font) h s 52%);
  --c-font-clear: hsl(from var(--c-font) h s 11%);
  --c-font-clearer: hsl(from var(--c-font) h s 7%);
  --c-font-page: hsl(from var(--c-font) h s 7%);
  --c-font-shadow: #d4d4d4a8;
  --c-metal-top: #f5f5f48f;
  --c-metal-bottom: #eeedeca8;
  --c-metal-top-hover: #c7c7c766;
  --c-metal-bottom-hover: #c7c7c773;
  --c-shade: #d6d6d6;
  --c-page-mask: #fff6;
}

.is2d .pawn.white {
  background-image: var(---white-pawn);
}

.is2d .knight.white {
  background-image: var(---white-knight);
}

.is2d .bishop.white {
  background-image: var(---white-bishop);
}

.is2d .rook.white {
  background-image: var(---white-rook);
}

.is2d .queen.white {
  background-image: var(---white-queen);
}

.is2d .king.white {
  background-image: var(---white-king);
}

.is2d .pawn.black {
  background-image: var(---black-pawn);
}

.is2d .knight.black {
  background-image: var(---black-knight);
}

.is2d .bishop.black {
  background-image: var(---black-bishop);
}

.is2d .rook.black {
  background-image: var(---black-rook);
}

.is2d .queen.black {
  background-image: var(---black-queen);
}

.is2d .king.black {
  background-image: var(---black-king);
}
