/* 1005 字體規範（使用者：演出字「開張大吉」與表情字太醜）。最後載入（city.html 在所有 city*.css 之後），只管字型與文字外觀。
   字型檔與授權：assets/fonts/README.md；子集化：python tools/subset_fonts.py。
   --font-pixel   像素字（俐方體11號子集 "Miyaken Pixel"）：演出大字、飄字數字、表情貼圖字。只用 12 的整數倍字級（12／24／36／48px）。
   --font-display 標題、按鈕主字、數字、短標籤（jf open 粉圓子集 "Miyaken Round"，圓潤手帳風）。
   --font-num     數字（同 display；tabular-nums 對齊）。
   --font-body    說明內文（系統黑體，易讀為先，不下載）。 */
@font-face {
  font-family:"Miyaken Pixel"; src:url(../assets/fonts/miyaken-pixel.woff2) format("woff2");
  font-weight:100 900; font-style:normal; font-display:swap; /* 宣告全字重：粗體不再人工加粗（像素字加粗會糊） */
}
@font-face {
  font-family:"Miyaken Round"; src:url(../assets/fonts/miyaken-round.woff2) format("woff2");
  font-weight:400; font-style:normal; font-display:swap; /* 粉圓只有一種字重；粗體交給瀏覽器合成，維持標題／數字的層級 */
}
:root {
  /* 1007 晚：每個字族都在中文黑體之後補符號字（--font-sym）：台詞／卡片裡的 ♡ ♥ ▿ ✓ ↩ ꒰ ꒱ ᵕ 粉圓與正黑體都沒有，
     沒補時 Chrome 會逐字退回新細明體／Times New Roman（使用者回報「卡片資訊出現新細明體」）。檢查缺字：python tools/font_coverage.py */
  --font-sym:"Segoe UI Symbol","Segoe UI","Microsoft Yi Baiti","Nirmala UI","Apple Symbols";
  --font-body:"Microsoft JhengHei","PingFang TC","Noto Sans TC","Heiti TC",var(--font-sym),sans-serif;
  --font-display:"Miyaken Round","Microsoft JhengHei","PingFang TC","Noto Sans TC",var(--font-sym),sans-serif;
  --font-num:"Miyaken Round","Arial Rounded MT Bold","Microsoft JhengHei","PingFang TC",var(--font-sym),sans-serif;
  --font-pixel:"Miyaken Pixel","Miyaken Round","Microsoft JhengHei","PingFang TC",var(--font-sym),sans-serif;
  /* 舊變數（cityUI／cityTips 等沿用）指向新規範 */
  --title:var(--font-display); --num:var(--font-num);
  font-family:var(--font-body);
}
/* 標題、按鈕主字、數字、強調短字 → display；說明段落維持 body */
h1, h2, h3, h4, button, select, .primary, b, strong, kbd, legend, summary,
.stat b, .eyebrow, .ticket-opt, #start { font-family:var(--font-display); }
p, li, small, .muted, input, textarea, .fx-bubble, .tip-text span { font-family:var(--font-body); }
.fx-bubble.say { font-family:var(--font-display); }
/* 1007 晚：字型稽核（使用者：卡片資訊出現「新細明體」）——
   1. 瀏覽器預設的 standard／monospace 字（繁中 Windows＝新細明體／細明體）不能被任何文字用到：html／body、表單元件、option、
      code／pre／samp（預設 monospace）一律指定變數；不可只寫 sans-serif 或 monospace（使用者可在瀏覽器設定改掉通用字）。
   2. i／em 在本遊戲只當小標籤用：中文沒有斜體字面，瀏覽器硬斜看起來像別的字型 → 一律正體。 */
html, body, dialog { font-family:var(--font-body); }
input, textarea, option, optgroup, output, [contenteditable] { font:inherit; font-family:var(--font-body); }
select, button { font-family:var(--font-display); }
code, pre, samp, tt, var { font-family:Consolas, var(--font-body); }
i, em, cite, dfn, address { font-style:normal; }
/* 演出用 DOM 大字（最後衝刺橫幅、開局 VS、冠軍名）：與 canvas drawTitle 同一套「粉圓貼紙字」——深色粗外框（text-stroke 疊在字後）＋白邊＋下方厚度 */
.sticker-text { font-family:var(--font-display); font-weight:400; color:#fff; -webkit-text-stroke:6px var(--ink, #3a2414); paint-order:stroke fill; letter-spacing:.04em;
  filter:drop-shadow(2px 0 0 #fff8e6) drop-shadow(-2px 0 0 #fff8e6) drop-shadow(0 -2px 0 #fff8e6) drop-shadow(0 2px 0 #fff8e6) drop-shadow(0 3px 0 var(--depth, #8f2a1c)); }

/* ── 像素字共通：整數像素外框（text-shadow 8 方向，不用 -webkit-text-stroke 以免圓角）── */
.px-text { font-family:var(--font-pixel); font-weight:400; -webkit-font-smoothing:none; font-smooth:never; letter-spacing:0; }

/* 飄字（cityFx.floatText）：像素字 24px（2 倍字身）、金色內框＋深棕外框＋下方厚度 */
#mapFx .fx-float { font-family:var(--font-pixel); font-weight:400; font-size:24px; line-height:1; letter-spacing:0; -webkit-font-smoothing:none;
  --ring:#ffd23a; --edge:#3e1a0a;
  text-shadow:
    2px 0 var(--ring), -2px 0 var(--ring), 0 2px var(--ring), 0 -2px var(--ring), 2px 2px var(--ring), -2px 2px var(--ring), 2px -2px var(--ring), -2px -2px var(--ring),
    4px 0 var(--edge), -4px 0 var(--edge), 0 4px var(--edge), 0 -4px var(--edge), 4px 2px var(--edge), -4px 2px var(--edge), 4px -2px var(--edge), -4px -2px var(--edge),
    2px 4px var(--edge), -2px 4px var(--edge), 2px -4px var(--edge), -2px -4px var(--edge), 0 6px var(--edge), 2px 6px var(--edge), -2px 6px var(--edge); }
#mapFx .fx-float.gain { color:#2f9a52; --ring:#ffe066; }
#mapFx .fx-float.loss { color:#d0321e; --ring:#fff1d0; }

/* 線上表情（cityLobby）：大圖下的字與棋子旁小泡泡改像素字 */
body .net-pop b { font-family:var(--font-pixel); font-weight:400; font-size:24px; line-height:1; -webkit-text-stroke:0; -webkit-font-smoothing:none; color:#fff;
  text-shadow:
    2px 0 var(--pc), -2px 0 var(--pc), 0 2px var(--pc), 0 -2px var(--pc), 2px 2px var(--pc), -2px 2px var(--pc), 2px -2px var(--pc), -2px -2px var(--pc),
    4px 0 #2e2219, -4px 0 #2e2219, 0 4px #2e2219, 0 -4px #2e2219, 4px 2px #2e2219, -4px 2px #2e2219, 4px -2px #2e2219, -4px -2px #2e2219,
    2px 4px #2e2219, -2px 4px #2e2219, 2px -4px #2e2219, -2px -4px #2e2219, 0 6px #2e2219, 2px 6px #2e2219, -2px 6px #2e2219; }
body .net-bubble b, body .net-sticker small { font-family:var(--font-pixel); font-weight:400; font-size:12px; line-height:1; -webkit-font-smoothing:none; }
