/* =============================================================================
   POOL 原宿 — 自前配信フォント (2026-08-15)
   -----------------------------------------------------------------------------
   外部CDN (fonts.googleapis.com / fonts.gstatic.com / cdn.jsdelivr.net) への
   依存を全廃し、17ページで実際に使う文字だけにサブセットしたものを同一オリジンで配る。

   - Noto Serif JP は可変フォント (wght 400-600) を2面に分割
       -a : ファーストビューで実測した文字 + ASCII + かな + 約物  → preload 対象
       -b : 残り (下層の本文で出る漢字)                          → 後追いで読む
     unicode-range で自動的に振り分かれるため、-a だけで初回描画が成立する。
   - 再生成は tools/build_fonts.md の手順を参照 (文言を増やしたら必ず作り直す)。
   - ライセンス: Noto Serif JP / Cormorant Garamond / Comfortaa = SIL OFL 1.1
     (同梱の OFL-*.txt)、YakuHanJP = MIT (qrac/yakuhanjp) の配布物をそのまま同梱。
   ============================================================================= */

/* ---- 約物 (括弧・句読点の半角詰め)。和文本文より前に置く ---- */
@font-face{font-family:YakuHanJP;font-style:normal;font-weight:400;font-display:swap;
  src:url("fonts/YakuHanJP-Regular.woff2") format("woff2");
  unicode-range:U+3001-3002,U+300C-300F,U+3014-3015,U+2018-2019,U+201C-201D,U+3008-3011,U+FF01,U+FF08-FF09,U+FF0C,U+FF0E,U+FF1A-FF1B,U+FF1F,U+FF3B,U+FF3D,U+FF5B,U+FF5D}
@font-face{font-family:YakuHanJP;font-style:normal;font-weight:500;font-display:swap;
  src:url("fonts/YakuHanJP-Medium.woff2") format("woff2");
  unicode-range:U+3001-3002,U+300C-300F,U+3014-3015,U+2018-2019,U+201C-201D,U+3008-3011,U+FF01,U+FF08-FF09,U+FF0C,U+FF0E,U+FF1A-FF1B,U+FF1F,U+FF3B,U+FF3D,U+FF5B,U+FF5D}
@font-face{font-family:YakuHanJP;font-style:normal;font-weight:600 900;font-display:swap;
  src:url("fonts/YakuHanJP-Bold.woff2") format("woff2");
  unicode-range:U+3001-3002,U+300C-300F,U+3014-3015,U+2018-2019,U+201C-201D,U+3008-3011,U+FF01,U+FF08-FF09,U+FF0C,U+FF0E,U+FF1A-FF1B,U+FF1F,U+FF3B,U+FF3D,U+FF5B,U+FF5D}

/* ---- 和文 (可変・wght 400-600) ---- */
@font-face{
  font-family:"Noto Serif JP";font-style:normal;font-weight:400 600;font-display:swap;
  src:url("fonts/NotoSerifJP-a.woff2") format("woff2");
  unicode-range:U+0021-007E,U+00A5,U+00E9,U+2010-203B,U+2192,U+2460-2462,U+3000-3003,U+3005-3015,U+301C,U+3041-30FE,U+4E00,
    U+4E07-4E08,U+4E0A-4E0B,U+4E0D-4E0E,U+4E2D,U+4E88,U+4E8B-4E8C,U+4EA4,U+4EAC,U+4EBA,U+4ECB,U+4ED5-4ED6,U+4ED8,
    U+4EE3,U+4EE5,U+4F0F,U+4F11,U+4F1A,U+4F3C,U+4F4E,U+4F55,U+4F75,U+4F7F,U+4F8B,U+4FA1,U+4FDD,U+5019,U+5065,
    U+5099,U+50CD,U+50DA,U+5149,U+514D,U+5150,U+5165,U+5168,U+5177,U+5185-5186,U+5199,U+51E6,U+51FA,U+5206-5207,
    U+521D,U+5225,U+5229,U+5236,U+523A,U+524D,U+52A0,U+52B4,U+52D9,U+52DF,U+52E4,U+533A-533B,U+534A,U+5358,U+539A,
    U+539F,U+53CE,U+53D6-53D7,U+53EF,U+53F3,U+5404,U+5408,U+540C-540D,U+548C,U+54E1,U+554F,U+55B6,U+5668,U+56DE,
    U+56FA,U+56FD,U+571F,U+5730,U+5747,U+57FA,U+5831,U+5834,U+58EB,U+5909,U+5916,U+591A,U+5927,U+592A-592B,U+597D,
    U+59A8,U+5B50,U+5B66,U+5B89,U+5B8C,U+5B9A,U+5B9F,U+5BA2,U+5BAE,U+5BB6,U+5BB9,U+5BBF,U+5BDD,U+5C02,U+5C11,
    U+5C4A,U+5C71,U+5DE6,U+5DEE,U+5E0C,U+5E2B,U+5E2D,U+5E45,U+5E73-5E74,U+5E83,U+5E97,U+5EA6,U+5EFA,U+5F15,U+5F37,
    U+5F53,U+5F62,U+5F79,U+5F85,U+5F8C,U+5F92,U+5F97,U+5FC3,U+5FC5,U+5FDC,U+6025,U+6027,U+606F,U+60A9,U+60C5,
    U+610F,U+611F,U+614B,U+6210,U+6240,U+624B,U+6255,U+6271,U+627F-6280,U+629C,U+629E,U+62B9,U+62C5,U+62ED,U+6301,
    U+6307,U+632F,U+63A1,U+63A5,U+63D0,U+63DB,U+64E6,U+652F,U+654F,U+6559,U+6563,U+6570,U+6599,U+65B0,U+65B9,
    U+65BD,U+65E5,U+660E,U+6642,U+6687,U+66DC,U+66F4,U+66FF-6700,U+6708,U+670D,U+671B,U+671D,U+671F,U+672A,U+672C,
    U+6749,U+6765,U+676F,U+6771,U+677F,U+67A0,U+67FB,U+6839,U+683C,U+6848,U+690E,U+691C,U+696D,U+697D,U+69D8,
    U+6B53,U+6B63,U+6B69,U+6B74,U+6B8B,U+6BCE,U+6BD2,U+6C17,U+6C5A,U+6CB9,U+6CBB,U+6CC1,U+6CD5,U+6D0B,U+6D17,
    U+6D41,U+6D6E,U+6D74,U+6D77,U+6D88,U+6E08,U+6E0B,U+6FC0,U+706B,U+707D,U+7247,U+7269,U+72AC,U+72B6,U+72EC,
    U+73CD,U+73FE,U+7406,U+751F,U+7523,U+7528,U+7530-7531,U+7591,U+7642,U+767B,U+767D,U+7684,U+76EE,U+76F4,U+76F8,
    U+770B,U+771F,U+7740,U+77ED,U+78BA,U+793A,U+793E,U+795D-795E,U+798F,U+7A0B,U+7A0E,U+7A2E,U+7A7A,U+7B2C,U+7B54,
    U+7D04,U+7D2B,U+7D30,U+7D39,U+7D42,U+7D44,U+7D4C,U+7D61,U+7D66,U+7D9A,U+7DCF,U+7DD2,U+7DDA,U+7F8E,U+7FD2,
    U+8003,U+8005,U+805E,U+8077,U+80B2,U+80FD,U+81EA,U+822C,U+8272,U+82F1,U+8336,U+843D,U+8449,U+884C,U+8853,
    U+885B,U+8868,U+88C5,U+88DC,U+88FD,U+8907,U+8981,U+898B,U+89A7,U+89E6,U+8A00,U+8A2D,U+8A31,U+8A71,U+8A8D,
    U+8A9E,U+8AAD,U+8ABF,U+8AC7,U+8B77,U+8C37,U+8CA0,U+8CB4,U+8CBB,U+8CC7,U+8CEA,U+8D64,U+8ED2,U+8EFD,U+8FBC,
    U+8FCE,U+8FFD,U+900F,U+901A,U+9023,U+9031,U+9047,U+9078,U+90E8,U+90FD,U+91CD-91CE,U+91D1,U+9332,U+9577,U+9580,
    U+9593,U+9650,U+967A,U+96C6-96C7,U+96FB,U+97D3,U+9806,U+9808,U+982D,U+984C-984D,U+9854,U+985E,U+9999,U+99C5,
    U+9A13,U+9AD8,U+9AEA,U+9F62,U+FF01-FF5F;
}
@font-face{
  font-family:"Noto Serif JP";font-style:normal;font-weight:400 600;font-display:swap;
  src:url("fonts/NotoSerifJP-b.woff2") format("woff2");
  unicode-range:U+00A7-00A9,U+00B0-00B1,U+00B4,U+00D7,U+00F7,U+2000-200F,U+203C-206E,U+2103,U+2190-2191,U+2193,U+21C4,U+2208,
    U+221E,U+2234,U+2260,U+2266-2267,U+2463,U+25A0-25A1,U+25B2-25B3,U+25BC-25BD,U+25C6-25C7,U+25CB,U+25CE-25CF,
    U+2605-2606,U+2640,U+2642,U+4E21,U+4E38,U+4E57,U+4E7E,U+4E86,U+4EDD,U+4EEE,U+4EF0,U+4EF6,U+4F34,U+4F38,U+4F4D,
    U+4F4F,U+4F53,U+4F59,U+4F5C,U+4FC3,U+4FEE,U+500D,U+5024,U+505C,U+5074,U+50B7,U+50BE,U+50CF,U+512A,U+5143,
    U+5145,U+5148,U+516C,U+5171,U+517C,U+518D,U+5217,U+5224,U+523B,U+5247,U+524A,U+5272,U+529B,U+52B9,U+52D5,
    U+52DD,U+52E2,U+5316,U+5339,U+5370,U+5373,U+53B3,U+53BB,U+53C2,U+53CA,U+53CD,U+53E3,U+53F7,U+5411,U+542B,
    U+5438,U+5468,U+5473,U+547C,U+559C,U+55A7,U+56DB,U+56E0,U+56F3,U+5728,U+5782,U+57CB,U+584A,U+5869,U+5883,
    U+58F2,U+592E,U+598A,U+5999,U+59CB,U+59FF,U+5A20,U+5B57-5B58,U+5B85,U+5BA4,U+5BC4,U+5BC6,U+5BFE,U+5C0E-5C0F,
    U+5C3B,U+5C4B,U+5C64,U+5DE8,U+5E02-5E03,U+5E2F,U+5E38,U+5E7E,U+5E87,U+5EA7,U+5EC3,U+5EF6,U+5F0F,U+5F27,U+5F31,
    U+5F69,U+5F71,U+5F80,U+5F8B,U+5F93,U+5FA1,U+5FA9,U+5FAE,U+5FD8,U+5FF5,U+61A9,U+623B,U+6291,U+6298,U+62BC-62BD,
    U+62E0-62E1,U+6319,U+63A7,U+63C3,U+63CF,U+63EE,U+64A4,U+64AB,U+64CD,U+6539,U+6545,U+6574,U+6577,U+6587,U+659C,
    U+65AD,U+65E2,U+65E7-65E9,U+6606,U+6613,U+663C,U+666E-666F,U+6709,U+675F,U+6761,U+677E,U+679A,U+67D3-67D4,
    U+683D,U+6841,U+68B0,U+68D2,U+690D,U+6955,U+6975,U+69CB,U+6A19,U+6A2A,U+6A5F,U+6B21,U+6B27,U+6B62,U+6B6A,
    U+6BB5,U+6BD4,U+6BDB,U+6C34,U+6C38,U+6C7A,U+6C88,U+6CA1,U+6CBF,U+6CE1,U+6CE8,U+6D45,U+6DB2,U+6DE1,U+6DF1,
    U+6DF7,U+6DFB,U+6E1B,U+6E21,U+6E2C,U+6E80,U+6E90,U+6E96,U+6EB6,U+6ED1,U+6F0F,U+6F5C,U+6FC3,U+706F,U+708E,
    U+70B9,U+7121,U+7136,U+7167,U+71E5,U+7206,U+7248,U+7279,U+72ED,U+7387,U+74B0,U+753B,U+754C,U+7559,U+756A,
    U+7570,U+7573,U+75AB,U+767A,U+76AE,U+770C,U+7720,U+7761,U+77AC,U+77E5,U+77E9,U+77EF,U+79D2,U+79FB,U+7A4D,
    U+7A93,U+7ACB,U+7AEF,U+7B11,U+7B46,U+7B49,U+7B56,U+7B87,U+7B97,U+7BB1,U+7BC0,U+7BC9,U+7C21,U+7CFB,U+7D19,
    U+7D20,U+7D50,U+7D71,U+7D75-7D76,U+7D99,U+7DAD,U+7DBF,U+7E01,U+7E26,U+7E2E,U+7E4A,U+7F6B,U+7F6E,U+7FA9,U+808C,
    U+80CC,U+80F4,U+80F8,U+811A,U+816B,U+8170,U+8179,U+819A,U+819C,U+81F4,U+820C,U+826F,U+8377,U+8584,U+866B,
    U+8840,U+8870,U+88CF,U+8986,U+898F,U+899A,U+89D2,U+89E3,U+8A18,U+8A3C,U+8A66,U+8A72,U+8AA4,U+8AAC,U+8B0E,
    U+8C46,U+8C61,U+8CA9,U+8CBC,U+8CFC,U+8D70,U+8DB3,U+8DDD,U+8DEF,U+8DF3,U+8EAB,U+8EAF,U+8EE2,U+8F09,U+8F2A,
    U+8FD1,U+8FD4,U+9000,U+9006,U+9014,U+901F,U+9032,U+9045,U+904A,U+9055,U+9060,U+9069,U+9077,U+907F,U+90AA,
    U+90ED,U+914D,U+9178,U+91C8,U+91CF,U+9589,U+958B,U+9632,U+964D,U+9664,U+9670,U+9685,U+968E,U+9694,U+9699,
    U+969B,U+96A0,U+96A3,U+96D1,U+96E2-96E3,U+96EB,U+96F2,U+96F7,U+9759,U+975E,U+9762,U+97FF,U+983B,U+9855,U+98DF,
    U+9996,U+99B4,U+99C4,U+99C6,U+9AA8,U+9B54,U+9ED2,U+9ED9,U+9F3B,U+FFE0-FFE1,U+FFE3,U+FFE5;
}

/* ---- 代替書体のメトリクス合わせ ----
   Noto Serif JP (unitsPerEm 1000 / hhea asc 1151 desc -286) に行送りを揃えた
   システム明朝。読込中に本文が入れ替わっても行の高さがズレない (CLS 対策)。 */
@font-face{
  font-family:"Noto Serif JP fallback";
  src:local("Hiragino Mincho ProN"),local("HiraMinProN-W3"),local("Hiragino Mincho Pro"),
      local("Yu Mincho"),local("YuMincho"),local("Noto Serif CJK JP"),local("Songti SC"),local("serif");
  size-adjust:100%;ascent-override:115.1%;descent-override:28.6%;line-gap-override:0%;
}

/* ---- 欧文 ---- */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400 500;font-display:swap;
  src:url("fonts/CormorantGaramond.woff2") format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:400;font-display:swap;
  src:url("fonts/CormorantGaramond-Italic.woff2") format("woff2")}
@font-face{font-family:"Comfortaa";font-style:normal;font-weight:400 700;font-display:swap;
  src:url("fonts/Comfortaa.woff2") format("woff2")}
