/* 渾儀 Armillary — 設計 token 單一出處
 *
 * 值可以改；改的地方只有這裡。這條規則不隨美學降級而放寬：
 * 它的理由是維護性與 i18n，不是好不好看。
 * 其餘 CSS 一律引用本檔，不得就地寫死色值或字體堆疊。
 *
 * 目前值取自候選 V2（黑底招牌 + 暖紙圖版），2026-08-05 前端評選結果。
 */
:root {
  /* ── 紙面（主體）────────────────────────────────────── */
  --paper:      #F0EAD9;
  --paper-2:    #E8E0CC;
  --ink:        #1C1913;
  --ink-dim:    #574F41;
  /* 2026-08-06 調暗：原值 #8E856E 對 --paper 只有 3.05:1、對 --paper-2 只有
     2.79:1，低於 WCAG AA 對小字要求的 4.5:1。這個 token 承載的不是裝飾——
     「西元 1900–2399」、「目錄查不到時使用」這類欄位說明都用它，而錯誤指引
     正是把使用者指向那些說明。現值對兩種紙色分別是 5.04:1 與 4.61:1。
     依 DESIGN_TOKENS §「調整某個 hex 讓對比更好」屬實作期決定，非方向變更；
     階層仍在（比 --ink-dim 淺），深底另有 --plate-dim，不受影響。 */
  --ink-faint:  #696251;
  --hair:       #CFC5AE;
  --hair-soft:  #DFD7C2;

  /* ── 黑底招牌段 ─────────────────────────────────────── */
  --plate:      #131210;
  --plate-fg:   #F2ECDC;
  --plate-dim:  #968E7C;
  --plate-hair: #2E2B26;

  /* ── 重點色 ─────────────────────────────────────────── */
  --accent:     #A03A22;   /* 紙上 */
  /* 2026-08-06 再提亮一階：原值 #C4502F 在 --plate 上是 4.04:1，而它承載的是
     首頁招牌段那行 11.2px 的「只計算，不解盤」——小字，需要 4.5:1。現值 4.62:1。
     提亮的方向與這個 token 本來的用意一致（同一個紅在深底要更亮才有相同重量）。 */
  --accent-rev: #D45633;   /* 黑底上；同一個紅在深底需要提亮才有相同重量 */

  /* ── 三環與驗證層 ───────────────────────────────────────
   * 四個各自獨立。美學降級之後這是參考而非規格，但「三個環不共用同一個
   * token」這件事仍是刻意的：共用會讓分層在畫面上不可見。            */
  /* 2026-08-27 調暗：原值 #4A7C59 對 --paper 只有 4.05:1、對 --paper-2 3.70:1。
     在 /validation 之前它只當 border-left 與頁尾色帶的一段，沒有小字用途，
     所以一直沒被抓到；該頁的 PASS 判定籤是 11.2px 小字，需要 4.5:1。
     現值 5.27:1 與 4.82:1。色相不變，且仍與 --ring-2 同一個明度家族。
     其餘用途都是邊框或色帶，調暗只會讓它們對紙面更清楚。 */
  --ring-1:     #3D6949;   /* 天文事實 */
  --ring-2:     #3E6B8A;   /* 幾何推導 */
  --ring-3:     #A0632B;   /* 方法判斷 */
  --ring-v:     #6E6A5F;   /* 驗證 */

  /* ── 收據狀態 ───────────────────────────────────────────
   * 「產品明確拒絕」與「使用者未請求」必須是不同的視覺，不只是不同的字——
   * 那個區分由邊框形狀承擔（虛線／實線／實心），不靠顏色深淺，所以下面兩個
   * 值可以壓深而不破壞它。
   *
   * 這組字正是在告訴使用者「哪一區沒有算」，讀不清楚等於那個資訊沒送到，
   * 所以每一個值在 --paper 與 --paper-2 上都必須達到 WCAG AA 的 4.5。
   * 目前對比分別是：
   *   absent 5.18／4.73   unavailable 5.60／5.11
   * 收斂順序刻意維持——absent 仍是三者中最安靜的一個。 */
  --state-refused:     #A03A22;
  --state-absent:      #68604F;
  --state-unavailable: #7E5227;

  /* ── 字體 ───────────────────────────────────────────── */
  /* 繁中字型依平台列：macOS／iOS、網頁字型名、Linux 套件的字族名（Noto … CJK TC）、
     Windows。不列日文字型：同一碼位的日文字形與台灣標準字形不同。等寬字型只供拉丁
     字母與數字，其中夾的中文落到同一組繁中字型，不交給瀏覽器任選。 */
  --serif: "Songti TC", "Noto Serif TC", "Noto Serif CJK TC", "Source Han Serif TC",
           "Times New Roman", serif;
  --sans:  "PingFang TC", "Noto Sans TC", "Noto Sans CJK TC", "Microsoft JhengHei",
           sans-serif;
  --mono:  ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "DejaVu Sans Mono",
           "Liberation Mono", "PingFang TC", "Noto Sans CJK TC", "Microsoft JhengHei", monospace;

  /* ── 間距階梯 ───────────────────────────────────────── */
  --s1: .5rem;
  --s2: 1.15rem;
  --s3: 2rem;
  --s4: 3.5rem;
  --s5: 5.5rem;
  --s6: 8rem;

  /* ── 列印 ───────────────────────────────────────────────
   * 列印時強制白底黑字（省墨、避免深色大面積）。它們是 token 不是就地寫死，
   * 因為這條規則沒有為列印開例外，而例外正是漂移的起點。 */
  --print-bg: #FFFFFF;
  --print-fg: #000000;

  /* ── 執行層地層（/trust 專用）─────────────────────────────
   * 由 --plate 到 --paper 之間的四個中間調。存在的理由是語意的：
   * /trust 用材質濃淡表達「這一層能被反證到什麼程度」，而只有黑與紙兩級時
   * 那個梯度讀不出來——實測過，後三層全是 transparent，看起來只有「白跟很白」。
   * 純新增，不改動任何既有 token 的值：tokens.css 由 calculate.css 一併載入，
   * 改既有值會同時改到計算頁，新增則不會。
   */
  --stratum-2: #35322B;   /* 深：容器，可在 compose 逐行核對 */
  --stratum-3: #5C5648;   /* 中：主機，只能在真實主機上驗 */
  --stratum-4: #D2C9B1;   /* 淺：瀏覽器，在你的裝置上 */

  /* ── 反白文字與斑馬紋 ───────────────────────────────────
   * --on-accent 是壓在 --accent 上的字色；斑馬紋刻意極淡，
   * 因為量測記錄的可讀性來自對齊與髮絲線，不是來自底色。 */
  --on-accent: #FFFFFF;
  --zebra:     rgba(0, 0, 0, .014);

  /* ── 版面 ───────────────────────────────────────────── */
  --pad:     4.5rem;
  --measure: 36rem;
  --wrap:    1160px;
  --radius:  2px;

  /* ── 斷點（供 JS 讀取時保持同一出處）──────────────────── */
  --bp-narrow: 900px;
  --bp-mobile: 640px;   /* 媒體查詢無法引用自訂屬性，這兩個值在 CSS 裡仍是字面值；
                         * 記於此以維持單一出處，改值時兩處都要改。 */
}
