/* Hizashikan — self-hosted webfonts
 *
 * Loaded BEFORE styles.css, which stays byte-identical to the approved build.
 * Replaces the Google Fonts <link> that used to sit in every page's <head>, so the
 * site makes zero third-party requests. That is not a performance tweak: it is what
 * makes the Cookie Policy's claims true, and it stops every visitor's IP being handed
 * to a third party before they have chosen anything.
 *
 * DELIVERY: Latin comes from Google's own unicode-range subsets, unchanged. Japanese
 * is an EXACT GLYPH SUBSET — one file per family holding only the ~250 characters this
 * site actually uses — rather than Google's ~120 slices per weight.
 *
 * Why: the site's Japanese is a fixed vocabulary of 41 kanji, because the design system
 * requires kanji to be load-bearing and never decorative. With Google's slicing, the
 * nine virtue kanji on /philosophy/ scattered across sixteen slices and pulled 375 KB
 * of font to draw about thirty characters, behind a 209 KB render-blocking stylesheet
 * of 255 @font-face rules. The subset replaces all of it with 75 KB and 9 KB.
 *
 * Japanese is weight 400 only — every Japanese element in the design resolves to 400,
 * and a bolded kanji synthesises from the 400 face of the same family, so the typeface
 * identity survives.
 *
 * Generated file — do not hand-edit. Rebuild with:  manage.py build_jp_subset
 *
 * ADDING NEW JAPANESE TEXT: if it contains a character the site has never used, re-run
 * that command and `collectstatic`, or the character falls back to a system font.
 * core/tests/test_fonts.py fails loudly when that happens.
 */

/* ---------- Latin ---------- */

@font-face {
  font-family: 'Shippori Mincho';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/shippori-mincho-400-latin.0679fa4b8081.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: 'Shippori Mincho';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/shippori-mincho-400-latin-1.93b20f09709e.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: 'Shippori Mincho';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/shippori-mincho-500-latin.f49f7b92c02c.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: 'Shippori Mincho';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/shippori-mincho-500-latin-1.7127a95c25ea.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: 'Shippori Mincho';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/shippori-mincho-600-latin.a2a633aafa98.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: 'Shippori Mincho';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/shippori-mincho-600-latin-1.4ddddc5af32c.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: 'Shippori Mincho';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/shippori-mincho-700-latin.351d2909323a.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: 'Shippori Mincho';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/shippori-mincho-700-latin-1.d7737a62cfb0.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: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/zen-kaku-gothic-new-400-latin.d22d2f5d341b.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/zen-kaku-gothic-new-400-latin-1.7c3bb9edcdf5.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: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/zen-kaku-gothic-new-400-latin-2.04a7216bd2d7.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: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/zen-kaku-gothic-new-500-latin.8d8c4def477b.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/zen-kaku-gothic-new-500-latin-1.01eae33e2a19.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: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/zen-kaku-gothic-new-500-latin-2.2bf423987772.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: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/zen-kaku-gothic-new-700-latin.372a3a7bf183.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/zen-kaku-gothic-new-700-latin-1.bbe3b37d359b.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: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/zen-kaku-gothic-new-700-latin-2.0f3fa14fae77.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;
}

/* ---------- Japanese (weight 400, exact subset) ----------
 * One file per family holding only the characters this site uses — see
 * core/jp_glyphs.py for the inventory and `manage.py build_jp_subset` to
 * rebuild. Adding a new kanji WITHOUT rebuilding makes it fall back to a
 * system font; core/tests/test_fonts.py fails if that happens.
 */

@font-face {
  font-family: 'Shippori Mincho';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/shippori-mincho-400-jp.412351ec9ee4.woff2") format('woff2');
  unicode-range: U+3000-3002, U+3005-3007, U+300C-300D, U+301C, U+3040-30FF, U+4E8B, U+4EBA, U+4EC1, U+4EF2, U+5148, U+521D, U+52C7, U+53E4, U+5408, U+548C, U+578B, U+5834, U+58EB, U+58F0, U+5949, U+59CB, U+5C04, U+5EAB, U+5F8B, U+5FC3, U+6280, U+6587, U+6B66, U+6C17, U+7269, U+751F, U+78E8, U+793C, U+7A3D, U+7B46, U+7D04, U+80B2, U+884C, U+8A9E, U+8B19, U+9053, U+9580, U+9593, U+967D, U+990A, U+9928, U+FF01, U+FF08-FF09, U+FF1A-FF1B, U+FF1F;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/zen-kaku-gothic-new-400-jp.c1ccb71602b1.woff2") format('woff2');
  unicode-range: U+3000-3002, U+3005-3007, U+300C-300D, U+301C, U+3040-30FF, U+4E8B, U+4EBA, U+4EC1, U+4EF2, U+5148, U+521D, U+52C7, U+53E4, U+5408, U+548C, U+578B, U+5834, U+58EB, U+58F0, U+5949, U+59CB, U+5C04, U+5EAB, U+5F8B, U+5FC3, U+6280, U+6587, U+6B66, U+6C17, U+7269, U+751F, U+78E8, U+793C, U+7A3D, U+7B46, U+7D04, U+80B2, U+884C, U+8A9E, U+8B19, U+9053, U+9580, U+9593, U+967D, U+990A, U+9928, U+FF01, U+FF08-FF09, U+FF1A-FF1B, U+FF1F;
}
