/* Self-hosted faces (public/fonts). No fonts.googleapis.com / fonts.gstatic.com at runtime.

   The CJK faces run to a megabyte and more each. Each carries a `unicode-range`
   so a browser fetches it only once a kana, kanji or hanzi character is actually
   on the page, and the small Latin subsets above them cover the Latin glyphs.
   The few CJK characters the English estate shows (神里屋敷, 綾, 令和 …) come
   from the tiny `-ui` subsets declared at the end of this file, so an English
   visitor still never downloads a full CJK face. */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/inter-latin-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('./fonts/inter-latin-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('./fonts/inter-latin-700.woff2') format('woff2');
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/jetbrains-mono-latin-400.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('./fonts/jetbrains-mono-latin-600.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('./fonts/jetbrains-mono-latin-700.woff2') format('woff2');
}

@font-face {
  font-family: 'Noto Serif JP';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/noto-serif-jp-latin-400.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: 'Noto Serif JP';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/noto-serif-jp-400.woff2') format('woff2');
  unicode-range: U+2E80-2FDF, U+3000-30FF, U+31F0-31FF, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FF00-FFEF;
}
@font-face {
  font-family: 'Noto Serif JP';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('./fonts/noto-serif-jp-600.woff2') format('woff2');
  unicode-range: U+2E80-2FDF, U+3000-30FF, U+31F0-31FF, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FF00-FFEF;
}
@font-face {
  font-family: 'Noto Serif JP';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('./fonts/noto-serif-jp-700.woff2') format('woff2');
  unicode-range: U+2E80-2FDF, U+3000-30FF, U+31F0-31FF, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FF00-FFEF;
}

@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/noto-sans-jp-latin-400.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: 'Noto Sans JP';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/noto-sans-jp-400.woff2') format('woff2');
  unicode-range: U+2E80-2FDF, U+3000-30FF, U+31F0-31FF, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FF00-FFEF;
}
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('./fonts/noto-sans-jp-500.woff2') format('woff2');
  unicode-range: U+2E80-2FDF, U+3000-30FF, U+31F0-31FF, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FF00-FFEF;
}

@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/noto-serif-sc-400.woff2') format('woff2');
  unicode-range: U+2E80-2FDF, U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FF00-FFEF, U+20000-2A6DF;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('./fonts/noto-serif-sc-700.woff2') format('woff2');
  unicode-range: U+2E80-2FDF, U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FF00-FFEF, U+20000-2A6DF;
}

/*
  The pre-boot garden (cycle 100).

  `#root` ships empty, so between the first paint and the entry bundle booting
  the estate is a navy rectangle — 109 ms on a quick machine, two seconds on a
  throttled one. These rules live here rather than in an inline <style> because
  the served build's CSP is `style-src 'self'`, and this file is already linked
  from the head of `index.html` and inlined into the drop-in, so it is the one
  stylesheet the browser has before any script runs. Six petals, one
  transform-only keyframe, no filter and no shadow: compositor work only, zero
  frame cost. `use-petals.ts` removes the layer the moment a real petal frame
  is on the canvas.
*/
html,
body {
  background: #0d1a2e;
}
#preboot-petals {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  contain: strict;
}
#preboot-petals i {
  position: absolute;
  top: -10vh;
  width: 14px;
  height: 14px;
  border-radius: 14px 2px 14px 2px;
  background: #f4a7b9;
  opacity: 0.7;
  will-change: transform;
  animation: preboot-fall 13s linear infinite;
}
#preboot-petals i:nth-child(1) {
  left: 8%;
}
#preboot-petals i:nth-child(2) {
  left: 24%;
  animation-delay: -3s;
  animation-duration: 16s;
}
#preboot-petals i:nth-child(3) {
  left: 41%;
  animation-delay: -7s;
  animation-duration: 11s;
}
#preboot-petals i:nth-child(4) {
  left: 58%;
  animation-delay: -1.5s;
  animation-duration: 15s;
}
#preboot-petals i:nth-child(5) {
  left: 74%;
  animation-delay: -9s;
}
#preboot-petals i:nth-child(6) {
  left: 89%;
  animation-delay: -5s;
  animation-duration: 17s;
}
@keyframes preboot-fall {
  from {
    transform: translate3d(0, 0, 0) rotate(0deg);
  }
  to {
    transform: translate3d(7vw, 118vh, 0) rotate(540deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  #preboot-petals {
    display: none;
  }
}
/* Pen-written estate faces; original licenses and source hashes live in
   fonts/licenses/. CJK ranges avoid downloading both faces for Latin text.
   Both handwriting faces lack U+99D8 (駘); excluding that code point lets the
   existing fallback choose its proper family and weight without a wasted fetch. */
@font-face {
  font-family: 'Estate Serif';
  src: url('./fonts/lora-latin-variable.woff2') format('woff2');
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Estate WenKai';
  src: url('./fonts/lxgw-wenkai-screen-400.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+2E80-99D7, U+99D9-9FFF, U+F900-FAFF, U+FE10-FE1F, U+FE30-FE4F, U+FF00-FFEF, U+20000-323AF;
}
@font-face {
  font-family: 'Estate Klee';
  src: url('./fonts/klee-one-japanese-600.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  unicode-range: U+2E80-99D7, U+99D9-9FFF, U+F900-FAFF, U+FE10-FE1F, U+FE30-FE4F, U+FF00-FFEF;
}
/* cjk-ui subsets: generated by scripts/make-cjk-subsets.mjs — do not edit by hand */
@font-face {
  font-family: 'Noto Serif JP';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/noto-serif-jp-400-ui.woff2') format('woff2');
  unicode-range: U+3001, U+300C, U+300D, U+3046, U+304A, U+304C, U+304D, U+304F, U+3053, U+3057, U+3059, U+3061, U+3066, U+3067, U+3069, U+306B, U+306E, U+306F, U+3073, U+307E, U+3080, U+3082, U+3084, U+3086, U+308A, U+308B, U+4E00, U+4E03, U+4E09, U+4E0A, U+4E2D, U+4E5D, U+4E8C, U+4E94, U+4EE4, U+4F98, U+5149, U+5165, U+5168, U+516B, U+516D, U+5175, U+5185, U+518D, U+523B, U+5341, U+5348, U+536F, U+53E4, U+548C, U+56DB, U+58A8, U+590F, U+5915, U+591C, U+5922, U+5929, U+5B89, U+5BB6, U+5C04, U+5C0F, U+5C3E, U+5C4B, U+5E74, U+5EAD, U+5F85, U+5FC3, U+606F, U+62DB, U+6570, U+6577, U+6587, U+65E5, U+660E, U+6625, U+663C, U+6708, U+671D, U+672C, U+6765, U+677E, U+685C, U+6C34, U+6C60, U+6E80, U+706F, U+707D, U+7121, U+75C5, U+767D, U+77F3, U+795E, U+798F, U+79CB, U+7A4D, U+7B11, U+7D75, U+7DBE, U+80A5, U+82AD, U+82B1, U+82D4, U+8336, U+8349, U+8549, U+8569, U+86D9, U+89E3, U+8A18, U+8A9E, U+8D6B, U+8D77, U+8DE1, U+8DEF, U+8EE2, U+904A, U+904B, U+90ED, U+9149, U+91CC, U+9234, U+9580, U+958B, U+9759, U+97F3, U+98A8, U+98DB, U+99AC, U+99C6, U+99D8, U+9AD8, U+9BC9, U+9DFA, U+9ECE;
}
@font-face {
  font-family: 'Noto Serif JP';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('./fonts/noto-serif-jp-600-ui.woff2') format('woff2');
  unicode-range: U+3001, U+300C, U+300D, U+3046, U+304A, U+304C, U+304D, U+304F, U+3053, U+3057, U+3059, U+3061, U+3066, U+3067, U+3069, U+306B, U+306E, U+306F, U+3073, U+307E, U+3080, U+3082, U+3084, U+3086, U+308A, U+308B, U+4E00, U+4E03, U+4E09, U+4E0A, U+4E2D, U+4E5D, U+4E8C, U+4E94, U+4EE4, U+4F98, U+5149, U+5165, U+5168, U+516B, U+516D, U+5175, U+5185, U+518D, U+523B, U+5341, U+5348, U+536F, U+53E4, U+548C, U+56DB, U+58A8, U+590F, U+5915, U+591C, U+5922, U+5929, U+5B89, U+5BB6, U+5C04, U+5C0F, U+5C3E, U+5C4B, U+5E74, U+5EAD, U+5F85, U+5FC3, U+606F, U+62DB, U+6570, U+6577, U+6587, U+65E5, U+660E, U+6625, U+663C, U+6708, U+671D, U+672C, U+6765, U+677E, U+685C, U+6C34, U+6C60, U+6E80, U+706F, U+707D, U+7121, U+75C5, U+767D, U+77F3, U+795E, U+798F, U+79CB, U+7A4D, U+7B11, U+7D75, U+7DBE, U+80A5, U+82AD, U+82B1, U+82D4, U+8336, U+8349, U+8549, U+8569, U+86D9, U+89E3, U+8A18, U+8A9E, U+8D6B, U+8D77, U+8DE1, U+8DEF, U+8EE2, U+904A, U+904B, U+90ED, U+9149, U+91CC, U+9234, U+9580, U+958B, U+9759, U+97F3, U+98A8, U+98DB, U+99AC, U+99C6, U+99D8, U+9AD8, U+9BC9, U+9DFA, U+9ECE;
}
@font-face {
  font-family: 'Noto Serif JP';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('./fonts/noto-serif-jp-700-ui.woff2') format('woff2');
  unicode-range: U+3001, U+300C, U+300D, U+3046, U+304A, U+304C, U+304D, U+304F, U+3053, U+3057, U+3059, U+3061, U+3066, U+3067, U+3069, U+306B, U+306E, U+306F, U+3073, U+307E, U+3080, U+3082, U+3084, U+3086, U+308A, U+308B, U+4E00, U+4E03, U+4E09, U+4E0A, U+4E2D, U+4E5D, U+4E8C, U+4E94, U+4EE4, U+4F98, U+5149, U+5165, U+5168, U+516B, U+516D, U+5175, U+5185, U+518D, U+523B, U+5341, U+5348, U+536F, U+53E4, U+548C, U+56DB, U+58A8, U+590F, U+5915, U+591C, U+5922, U+5929, U+5B89, U+5BB6, U+5C04, U+5C0F, U+5C3E, U+5C4B, U+5E74, U+5EAD, U+5F85, U+5FC3, U+606F, U+62DB, U+6570, U+6577, U+6587, U+65E5, U+660E, U+6625, U+663C, U+6708, U+671D, U+672C, U+6765, U+677E, U+685C, U+6C34, U+6C60, U+6E80, U+706F, U+707D, U+7121, U+75C5, U+767D, U+77F3, U+795E, U+798F, U+79CB, U+7A4D, U+7B11, U+7D75, U+7DBE, U+80A5, U+82AD, U+82B1, U+82D4, U+8336, U+8349, U+8549, U+8569, U+86D9, U+89E3, U+8A18, U+8A9E, U+8D6B, U+8D77, U+8DE1, U+8DEF, U+8EE2, U+904A, U+904B, U+90ED, U+9149, U+91CC, U+9234, U+9580, U+958B, U+9759, U+97F3, U+98A8, U+98DB, U+99AC, U+99C6, U+99D8, U+9AD8, U+9BC9, U+9DFA, U+9ECE;
}
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/noto-sans-jp-400-ui.woff2') format('woff2');
  unicode-range: U+3001, U+300C, U+300D, U+3046, U+304A, U+304C, U+304D, U+304F, U+3053, U+3057, U+3059, U+3061, U+3066, U+3067, U+3069, U+306B, U+306E, U+306F, U+3073, U+307E, U+3080, U+3082, U+3084, U+3086, U+308A, U+308B, U+4E00, U+4E03, U+4E09, U+4E0A, U+4E2D, U+4E5D, U+4E8C, U+4E94, U+4EE4, U+4F98, U+5149, U+5165, U+5168, U+516B, U+516D, U+5175, U+5185, U+518D, U+523B, U+5341, U+5348, U+536F, U+53E4, U+548C, U+56DB, U+58A8, U+590F, U+5915, U+591C, U+5922, U+5929, U+5B89, U+5BB6, U+5C04, U+5C0F, U+5C3E, U+5C4B, U+5E74, U+5EAD, U+5F85, U+5FC3, U+606F, U+62DB, U+6570, U+6577, U+6587, U+65E5, U+660E, U+6625, U+663C, U+6708, U+671D, U+672C, U+6765, U+677E, U+685C, U+6C34, U+6C60, U+6E80, U+706F, U+707D, U+7121, U+75C5, U+767D, U+77F3, U+795E, U+798F, U+79CB, U+7A4D, U+7B11, U+7D75, U+7DBE, U+80A5, U+82AD, U+82B1, U+82D4, U+8336, U+8349, U+8549, U+8569, U+86D9, U+89E3, U+8A18, U+8A9E, U+8D6B, U+8D77, U+8DE1, U+8DEF, U+8EE2, U+904A, U+904B, U+90ED, U+9149, U+91CC, U+9234, U+9580, U+958B, U+9759, U+97F3, U+98A8, U+98DB, U+99AC, U+99C6, U+99D8, U+9AD8, U+9BC9, U+9DFA, U+9ECE;
}
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('./fonts/noto-sans-jp-500-ui.woff2') format('woff2');
  unicode-range: U+3001, U+300C, U+300D, U+3046, U+304A, U+304C, U+304D, U+304F, U+3053, U+3057, U+3059, U+3061, U+3066, U+3067, U+3069, U+306B, U+306E, U+306F, U+3073, U+307E, U+3080, U+3082, U+3084, U+3086, U+308A, U+308B, U+4E00, U+4E03, U+4E09, U+4E0A, U+4E2D, U+4E5D, U+4E8C, U+4E94, U+4EE4, U+4F98, U+5149, U+5165, U+5168, U+516B, U+516D, U+5175, U+5185, U+518D, U+523B, U+5341, U+5348, U+536F, U+53E4, U+548C, U+56DB, U+58A8, U+590F, U+5915, U+591C, U+5922, U+5929, U+5B89, U+5BB6, U+5C04, U+5C0F, U+5C3E, U+5C4B, U+5E74, U+5EAD, U+5F85, U+5FC3, U+606F, U+62DB, U+6570, U+6577, U+6587, U+65E5, U+660E, U+6625, U+663C, U+6708, U+671D, U+672C, U+6765, U+677E, U+685C, U+6C34, U+6C60, U+6E80, U+706F, U+707D, U+7121, U+75C5, U+767D, U+77F3, U+795E, U+798F, U+79CB, U+7A4D, U+7B11, U+7D75, U+7DBE, U+80A5, U+82AD, U+82B1, U+82D4, U+8336, U+8349, U+8549, U+8569, U+86D9, U+89E3, U+8A18, U+8A9E, U+8D6B, U+8D77, U+8DE1, U+8DEF, U+8EE2, U+904A, U+904B, U+90ED, U+9149, U+91CC, U+9234, U+9580, U+958B, U+9759, U+97F3, U+98A8, U+98DB, U+99AC, U+99C6, U+99D8, U+9AD8, U+9BC9, U+9DFA, U+9ECE;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/noto-serif-sc-400-ui.woff2') format('woff2');
  unicode-range: U+3001, U+300C, U+300D, U+4E00, U+4E03, U+4E09, U+4E0A, U+4E2D, U+4E5D, U+4E8C, U+4E94, U+4EE4, U+5149, U+5165, U+5168, U+516B, U+516D, U+5175, U+5185, U+518D, U+523B, U+5341, U+5348, U+536F, U+53E4, U+548C, U+56DB, U+58A8, U+590F, U+5915, U+591C, U+5922, U+5929, U+5B89, U+5BB6, U+5C04, U+5C0F, U+5C3E, U+5C4B, U+5E74, U+5EAD, U+5F85, U+5FC3, U+606F, U+62DB, U+6570, U+6577, U+6587, U+65E5, U+660E, U+6625, U+663C, U+6708, U+671D, U+672C, U+6765, U+677E, U+685C, U+6C34, U+6C60, U+6E80, U+706F, U+707D, U+7121, U+75C5, U+767D, U+77F3, U+795E, U+798F, U+79CB, U+7A4D, U+7B11, U+7D75, U+7DBE, U+80A5, U+82AD, U+82B1, U+82D4, U+8336, U+8349, U+8549, U+8569, U+86D9, U+89E3, U+8A18, U+8A9E, U+8D6B, U+8D77, U+8DE1, U+8DEF, U+8EE2, U+904A, U+904B, U+90ED, U+9149, U+91CC, U+9234, U+9580, U+958B, U+9759, U+97F3, U+98A8, U+98DB, U+99AC, U+9AD8, U+9ECE;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('./fonts/noto-serif-sc-700-ui.woff2') format('woff2');
  unicode-range: U+3001, U+300C, U+300D, U+4E00, U+4E03, U+4E09, U+4E0A, U+4E2D, U+4E5D, U+4E8C, U+4E94, U+4EE4, U+5149, U+5165, U+5168, U+516B, U+516D, U+5175, U+5185, U+518D, U+523B, U+5341, U+5348, U+536F, U+53E4, U+548C, U+56DB, U+58A8, U+590F, U+5915, U+591C, U+5922, U+5929, U+5B89, U+5BB6, U+5C04, U+5C0F, U+5C3E, U+5C4B, U+5E74, U+5EAD, U+5F85, U+5FC3, U+606F, U+62DB, U+6570, U+6577, U+6587, U+65E5, U+660E, U+6625, U+663C, U+6708, U+671D, U+672C, U+6765, U+677E, U+685C, U+6C34, U+6C60, U+6E80, U+706F, U+707D, U+7121, U+75C5, U+767D, U+77F3, U+795E, U+798F, U+79CB, U+7A4D, U+7B11, U+7D75, U+7DBE, U+80A5, U+82AD, U+82B1, U+82D4, U+8336, U+8349, U+8549, U+8569, U+86D9, U+89E3, U+8A18, U+8A9E, U+8D6B, U+8D77, U+8DE1, U+8DEF, U+8EE2, U+904A, U+904B, U+90ED, U+9149, U+91CC, U+9234, U+9580, U+958B, U+9759, U+97F3, U+98A8, U+98DB, U+99AC, U+9AD8, U+9ECE;
}
@font-face {
  font-family: 'Estate WenKai';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/lxgw-wenkai-screen-400-ui.woff2') format('woff2');
  unicode-range: U+3001, U+300C, U+300D, U+3046, U+304A, U+304C, U+304D, U+304F, U+3053, U+3057, U+3059, U+3061, U+3066, U+3067, U+3069, U+306B, U+306E, U+306F, U+3073, U+307E, U+3080, U+3082, U+3084, U+3086, U+308A, U+308B, U+4E00, U+4E03, U+4E09, U+4E0A, U+4E2D, U+4E5D, U+4E8C, U+4E94, U+4EE4, U+4F98, U+5149, U+5165, U+5168, U+516B, U+516D, U+5175, U+5185, U+518D, U+523B, U+5341, U+5348, U+536F, U+53E4, U+548C, U+56DB, U+58A8, U+590F, U+5915, U+591C, U+5922, U+5929, U+5B89, U+5BB6, U+5C04, U+5C0F, U+5C3E, U+5C4B, U+5E74, U+5EAD, U+5F85, U+5FC3, U+606F, U+62DB, U+6570, U+6577, U+6587, U+65E5, U+660E, U+6625, U+663C, U+6708, U+671D, U+672C, U+6765, U+677E, U+685C, U+6C34, U+6C60, U+6E80, U+706F, U+707D, U+7121, U+75C5, U+767D, U+77F3, U+795E, U+798F, U+79CB, U+7A4D, U+7B11, U+7D75, U+7DBE, U+80A5, U+82AD, U+82B1, U+82D4, U+8336, U+8349, U+8549, U+8569, U+86D9, U+89E3, U+8A18, U+8A9E, U+8D6B, U+8D77, U+8DE1, U+8DEF, U+8EE2, U+904A, U+904B, U+90ED, U+9149, U+91CC, U+9234, U+9580, U+958B, U+9759, U+97F3, U+98A8, U+98DB, U+99AC, U+99C6, U+9AD8, U+9BC9, U+9DFA, U+9ECE;
}
@font-face {
  font-family: 'Estate Klee';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('./fonts/klee-one-japanese-600-ui.woff2') format('woff2');
  unicode-range: U+3001, U+300C, U+300D, U+3046, U+304A, U+304C, U+304D, U+304F, U+3053, U+3057, U+3059, U+3061, U+3066, U+3067, U+3069, U+306B, U+306E, U+306F, U+3073, U+307E, U+3080, U+3082, U+3084, U+3086, U+308A, U+308B, U+4E00, U+4E03, U+4E09, U+4E0A, U+4E2D, U+4E5D, U+4E8C, U+4E94, U+4EE4, U+4F98, U+5149, U+5165, U+5168, U+516B, U+516D, U+5175, U+5185, U+518D, U+523B, U+5341, U+5348, U+536F, U+53E4, U+548C, U+56DB, U+58A8, U+590F, U+5915, U+591C, U+5922, U+5929, U+5B89, U+5BB6, U+5C04, U+5C0F, U+5C3E, U+5C4B, U+5E74, U+5EAD, U+5F85, U+5FC3, U+606F, U+62DB, U+6570, U+6577, U+6587, U+65E5, U+660E, U+6625, U+663C, U+6708, U+671D, U+672C, U+6765, U+677E, U+685C, U+6C34, U+6C60, U+6E80, U+706F, U+707D, U+7121, U+75C5, U+767D, U+77F3, U+795E, U+798F, U+79CB, U+7A4D, U+7B11, U+7D75, U+7DBE, U+80A5, U+82AD, U+82B1, U+82D4, U+8336, U+8349, U+8549, U+8569, U+86D9, U+89E3, U+8A18, U+8A9E, U+8D6B, U+8D77, U+8DE1, U+8DEF, U+8EE2, U+904A, U+904B, U+90ED, U+9149, U+91CC, U+9234, U+9580, U+958B, U+9759, U+97F3, U+98A8, U+98DB, U+99AC, U+99C6, U+9AD8, U+9BC9, U+9DFA, U+9ECE;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/noto-serif-sc-400-ui-borrowed.woff2') format('woff2');
  unicode-range: U+4F98, U+99C6, U+99D8, U+9BC9, U+9DFA;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('./fonts/noto-serif-sc-700-ui-borrowed.woff2') format('woff2');
  unicode-range: U+4F98, U+99C6, U+99D8, U+9BC9, U+9DFA;
}
/* end cjk-ui subsets */
/* 6 Oct 2026 (owner, top bar G2 hybrid): the bar's crest, wordmark and subline.
   Hiragino Mincho ProN is the face on Apple systems; these bundled subsets are
   the offline and non-Apple fallback, cut to the bar's own strings by
   scripts/make-crest-fonts.mjs (SIL OFL 1.1, licences in fonts/licenses). */
@font-face {
  font-family: 'Shippori Mincho';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('./fonts/shippori-mincho-600-crest.woff2') format('woff2');
  unicode-range: U+7DBE, U+795E, U+91CC, U+83EF;
}
@font-face {
  font-family: 'Shippori Mincho';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/shippori-mincho-400-subline.woff2') format('woff2');
  unicode-range: U+63A2, U+7D22, U+5E84, U+56ED, U+5C4B, U+6577, U+3092, U+5DE1, U+308B, U+9759, U+79BB, U+30AA, U+30D5, U+30E9, U+30A4, U+30F3, U+4E3B, U+673A, U+65E0, U+6CD5, U+63A5, U+30DB, U+30B9, U+30C8, U+306B, U+5C4A, U+304D, U+307E, U+305B, U+3093, U+30D6, U+97F3, U+6BB5, U+304B, U+306A, U+6642, U+9593, U+5361, U+7247, U+30AB, U+30FC, U+30C9, U+679A, U+B7;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('./fonts/cormorant-garamond-600-caps.woff2') format('woff2');
  unicode-range: U+20, U+41-5A;
}
