@anyknown/ui 0.4.2 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -7,6 +7,7 @@ AnyKnown 全產品線共用的 design system,以 [StyleX](https://stylexjs.com)
7
7
  - `src/tokens.stylex.ts` — semantic tokens(color / font / text / space / radius / motion / shadow)。light 為預設,dark 跟隨 OS。**唯一真相**。
8
8
  - `src/tokens.css` — 同一組值的純 CSS variables(`--ak-*`),給非 StyleX 的使用端(desktop 的 Tailwind v4 `@theme` 直接引用)。import 路徑:`@anyknown/ui/tokens.css`。
9
9
  - `src/themes.stylex.ts` — `light` / `dark` theme,給有手動切換主題的 app:`<div {...stylex.props(...light)}>`。**由 `pnpm gen:themes` 從 tokens 生成**,不要手改(`themes.test.ts` 會擋住不同步)。
10
+ - `src/brand.css` — 給沒有 bundler 的一次性頁面(報告、提案、benchmark)的有界詞彙,二十來個 `ak-*` class。build 時內聯 tokens、接 Google Fonts、把按鈕織體預渲染成 SVG data URI(`scripts/brand-css.mjs`),出 `dist/brand.css` 與 <https://ui.anyknown.com/brand.css>。判斷寫在根目錄的 [DESIGN.md](./DESIGN.md),`pnpm check` 會擋文件與詞彙不同步。
10
11
  - `src/scrollbar.css` — 客製捲軸(全域套用)。StyleX 做不了 `::-webkit-scrollbar` 偽元素,所以獨立成 css 檔。
11
12
  - `src/components/` — 34 個元件,每個一個 folder(`<Name>.tsx` + `<Name>.test.tsx`)。清單與共同決策見 [components/README.md](./src/components/README.md),定案理由與走過的彎路見 [components/COMPONENTS.md](./src/components/COMPONENTS.md)。
12
13
  - `src/lib/` — 共用 hooks 與生成邏輯(reduced-motion、controllable state、clipboard、diff、`styled` 與 `reset.control`)。織體幾何在 `weave.ts`(靜態)與 `silk.ts`(動態),規格見 [components/TEXTURE-GUIDE.md](./src/components/TEXTURE-GUIDE.md)。
@@ -65,6 +66,8 @@ CI 驗不了的只剩視覺:發之前 `pnpm playground` 開一輪看視覺與動
65
66
  | repo | <https://github.com/anyknown-com/ui>(public、MIT) |
66
67
  | npm | `@anyknown/ui`,trusted publisher 綁 `anyknown-com/ui` → `release.yml` |
67
68
  | 文檔站 | <https://ui.anyknown.com>(Cloudflare Workers) |
69
+ | design.md | <https://ui.anyknown.com/design.md>,`DESIGN.md` 原文 + 生成的 token 表與 `brand.css` 詞彙表;`llms.txt` 第一條 |
70
+ | brand.css | <https://ui.anyknown.com/brand.css>,外部 agent 做一次性頁面 `<link>` 這份就好;同時是套件的 `@anyknown/ui/brand.css` |
68
71
  | remote cache | `turbo.anyknown.com`,team `anyknown-ui`;token 在 repo secret `TURBO_TOKEN`,本機 `export TURBO_TOKEN=<token>`(worker 端的來源是 `anyknown-com/turbo-cache` 的 secret binding) |
69
72
 
70
73
  ## 在各 app 使用(Vite)
package/dist/brand.css ADDED
@@ -0,0 +1,627 @@
1
+ /* brand.css — Ledger 的有界詞彙,給沒有 bundler 的一次性頁面。
2
+ *
3
+ * 這是原始檔。發佈版 dist/brand.css 由 scripts/brand-css.mjs 生成:
4
+ * Google Fonts @import、tokens.css 內聯、ak-theme-* 兩個手動主題、
5
+ * 織體 SVG 預渲染成 data URI 都在 build 時接進來。
6
+ *
7
+ * 每個 class 上面一行「//」註解是它的用途,design.md 的詞彙表從這裡掃出來。
8
+ * 詞彙刻意小,不在這裡的 class 就是不准用;要新的排版需求先回來改這份,再改 DESIGN.md。 */
9
+
10
+ @import url("https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Geist+Mono:wght@100..900&family=Newsreader:ital,opsz,wght@0,6..72,200..800;1,6..72,200..800&display=swap");
11
+ /* Ledger tokens as plain CSS variables — for non-StyleX consumers
12
+ * (desktop uses Tailwind v4 @theme; reference these vars there).
13
+ * Source of truth: tokens.stylex.ts. Keep values in sync manually for now. */
14
+
15
+ /* 展開/收合讓頁面長高時捲軸出現 → 置中內容左移;永遠留捲軸的位置。 */
16
+ html {
17
+ scrollbar-gutter: stable;
18
+ }
19
+
20
+ :root {
21
+ --ak-bg: #fafaf6;
22
+ --ak-surface: #ffffff;
23
+ --ak-surface-raised: #ffffff;
24
+ --ak-border: #e3e0d5;
25
+ --ak-border-strong: #c8c3b4;
26
+ --ak-text: #23211d;
27
+ --ak-text-muted: #635d52;
28
+ --ak-text-faint: #9c958a;
29
+ --ak-accent: #23705a;
30
+ --ak-accent-text: #fcfcf9;
31
+ --ak-accent-subtle: #e7f0eb;
32
+ --ak-danger: #b3402e;
33
+ --ak-danger-subtle: #f7e7e3;
34
+ --ak-success: #23705a;
35
+ --ak-success-subtle: #e7f0eb;
36
+ --ak-warning: #9a6a1b;
37
+ --ak-warning-subtle: #f5ebd9;
38
+ --ak-info: #2c5c86;
39
+ --ak-info-subtle: #e4edf5;
40
+ --ak-focus-ring: #23705a;
41
+ --ak-bone: #ece9df;
42
+ --ak-sheen: #f6f4ec;
43
+ --ak-success-hl: #c6e0c6;
44
+ --ak-danger-hl: #efcec3;
45
+
46
+ --ak-shadow-popover: 0 8px 24px rgba(35, 33, 29, 0.1);
47
+ --ak-shadow-raised: 0 1px 2px rgba(35, 33, 29, 0.08);
48
+
49
+ --ak-font-display: "Newsreader Variable", Georgia, "Times New Roman", serif;
50
+ --ak-font-body: "Geist Variable", system-ui, sans-serif;
51
+ --ak-font-mono: "Geist Mono Variable", ui-monospace, monospace;
52
+
53
+ --ak-radius-sm: 0.375rem;
54
+ --ak-radius-md: 0.5rem;
55
+ --ak-radius-lg: 0.75rem;
56
+ --ak-radius-xl: 1rem;
57
+
58
+ --ak-motion-fast: 120ms;
59
+ --ak-motion-normal: 200ms;
60
+ --ak-motion-slow: 400ms;
61
+ --ak-motion-ease: cubic-bezier(0.25, 0.1, 0.25, 1);
62
+ --ak-motion-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
63
+ /* 過衝曲線:全站規則是「動畫不回彈」,沒有元件在用,新的也不要用 */
64
+ --ak-motion-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
65
+ }
66
+
67
+ @media (prefers-color-scheme: dark) {
68
+ :root:not([data-theme="light"]) {
69
+ --ak-bg: #181613;
70
+ --ak-surface: #201d18;
71
+ --ak-surface-raised: #282420;
72
+ --ak-border: #35302a;
73
+ --ak-border-strong: #4a443c;
74
+ --ak-text: #eae6dc;
75
+ --ak-text-muted: #b0a697;
76
+ --ak-text-faint: #736a5d;
77
+ --ak-accent: #4fa184;
78
+ --ak-accent-text: #14120f;
79
+ --ak-accent-subtle: #22352e;
80
+ --ak-danger: #dd7059;
81
+ --ak-danger-subtle: #3d231e;
82
+ --ak-success: #4fa184;
83
+ --ak-success-subtle: #22352e;
84
+ --ak-warning: #d9a254;
85
+ --ak-warning-subtle: #3a2f1d;
86
+ --ak-info: #6fa3ce;
87
+ --ak-info-subtle: #1e2c38;
88
+ --ak-focus-ring: #4fa184;
89
+ --ak-bone: #2a2620;
90
+ --ak-sheen: #35302a;
91
+ --ak-success-hl: #2f4a2e;
92
+ --ak-danger-hl: #573328;
93
+
94
+ --ak-shadow-popover: 0 8px 24px rgba(0, 0, 0, 0.4);
95
+ --ak-shadow-raised: 0 1px 2px rgba(0, 0, 0, 0.3);
96
+ }
97
+ }
98
+
99
+ [data-theme="dark"] {
100
+ --ak-bone: #2a2620;
101
+ --ak-sheen: #35302a;
102
+ --ak-success-hl: #2f4a2e;
103
+ --ak-danger-hl: #573328;
104
+ --ak-shadow-popover: 0 8px 24px rgba(0, 0, 0, 0.4);
105
+ --ak-shadow-raised: 0 1px 2px rgba(0, 0, 0, 0.3);
106
+ --ak-bg: #181613;
107
+ --ak-surface: #201d18;
108
+ --ak-surface-raised: #282420;
109
+ --ak-border: #35302a;
110
+ --ak-border-strong: #4a443c;
111
+ --ak-text: #eae6dc;
112
+ --ak-text-muted: #b0a697;
113
+ --ak-text-faint: #736a5d;
114
+ --ak-accent: #4fa184;
115
+ --ak-accent-text: #14120f;
116
+ --ak-accent-subtle: #22352e;
117
+ --ak-danger: #dd7059;
118
+ --ak-danger-subtle: #3d231e;
119
+ --ak-success: #4fa184;
120
+ --ak-success-subtle: #22352e;
121
+ --ak-warning: #d9a254;
122
+ --ak-warning-subtle: #3a2f1d;
123
+ --ak-info: #6fa3ce;
124
+ --ak-info-subtle: #1e2c38;
125
+ --ak-focus-ring: #4fa184;
126
+ }
127
+ /* 織體與手動主題:由 scripts/brand-css.mjs 生成 */
128
+ :root {
129
+ --ak-weave-primary-light: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 36' preserveAspectRatio='none'%3e%3crect width='120' height='36' fill='%2311362C'/%3e%3cg fill='none' stroke-linecap='round'%3e%3cg stroke='%23123C31' opacity='.5'%3e%3cpath d='M-4.0,0.8L0.0,0.9L4.0,1.0L8.0,1.0L12.0,1.1L16.0,1.2L20.0,1.3L24.0,1.4L28.0,1.5L32.0,1.5L36.0,1.6L40.0,1.7L44.0,1.7L48.0,1.8L52.0,1.8L56.0,1.8L60.0,1.8L64.0,1.8L68.0,1.8L72.0,1.7L76.0,1.7L80.0,1.6L84.0,1.5L88.0,1.5L92.0,1.4L96.0,1.3L100.0,1.2L104.0,1.2L108.0,1.1L112.0,1.1L116.0,1.0L120.0,1.0L124.0,1.0' stroke-width='0.78'/%3e%3cpath d='M-4.0,3.3L0.0,3.4L4.0,3.4L8.0,3.5L12.0,3.6L16.0,3.7L20.0,3.8L24.0,3.9L28.0,4.0L32.0,4.0L36.0,4.1L40.0,4.1L44.0,4.2L48.0,4.2L52.0,4.2L56.0,4.2L60.0,4.2L64.0,4.2L68.0,4.1L72.0,4.1L76.0,4.0L80.0,3.9L84.0,3.9L88.0,3.8L92.0,3.7L96.0,3.6L100.0,3.6L104.0,3.5L108.0,3.4L112.0,3.4L116.0,3.4L120.0,3.4L124.0,3.4' stroke-width='0.59'/%3e%3cpath d='M-4.0,5.8L0.0,5.8L4.0,5.9L8.0,6.0L12.0,6.1L16.0,6.2L20.0,6.3L24.0,6.4L28.0,6.4L32.0,6.5L36.0,6.5L40.0,6.6L44.0,6.6L48.0,6.6L52.0,6.6L56.0,6.6L60.0,6.6L64.0,6.5L68.0,6.5L72.0,6.4L76.0,6.3L80.0,6.3L84.0,6.2L88.0,6.1L92.0,6.0L96.0,5.9L100.0,5.9L104.0,5.8L108.0,5.8L112.0,5.7L116.0,5.7L120.0,5.7L124.0,5.8' stroke-width='0.55'/%3e%3cpath d='M-4.0,8.3L0.0,8.3L4.0,8.4L8.0,8.5L12.0,8.6L16.0,8.7L20.0,8.8L24.0,8.8L28.0,8.9L32.0,8.9L36.0,9.0L40.0,9.0L44.0,9.0L48.0,9.0L52.0,9.0L56.0,9.0L60.0,8.9L64.0,8.9L68.0,8.8L72.0,8.7L76.0,8.6L80.0,8.6L84.0,8.5L88.0,8.4L92.0,8.3L96.0,8.3L100.0,8.2L104.0,8.2L108.0,8.1L112.0,8.1L116.0,8.1L120.0,8.1L124.0,8.2' stroke-width='0.78'/%3e%3cpath d='M-4.0,10.7L0.0,10.8L4.0,10.9L8.0,11.0L12.0,11.1L16.0,11.2L20.0,11.2L24.0,11.3L28.0,11.3L32.0,11.4L36.0,11.4L40.0,11.4L44.0,11.4L48.0,11.4L52.0,11.4L56.0,11.3L60.0,11.3L64.0,11.2L68.0,11.1L72.0,11.0L76.0,11.0L80.0,10.9L84.0,10.8L88.0,10.7L92.0,10.6L96.0,10.6L100.0,10.5L104.0,10.5L108.0,10.5L112.0,10.5L116.0,10.5L120.0,10.6L124.0,10.6' stroke-width='0.78'/%3e%3cpath d='M-4.0,13.2L0.0,13.3L4.0,13.4L8.0,13.5L12.0,13.6L16.0,13.6L20.0,13.7L24.0,13.7L28.0,13.8L32.0,13.8L36.0,13.8L40.0,13.8L44.0,13.8L48.0,13.8L52.0,13.7L56.0,13.6L60.0,13.6L64.0,13.5L68.0,13.4L72.0,13.3L76.0,13.3L80.0,13.2L84.0,13.1L88.0,13.0L92.0,13.0L96.0,12.9L100.0,12.9L104.0,12.9L108.0,12.9L112.0,12.9L116.0,12.9L120.0,13.0L124.0,13.1' stroke-width='0.67'/%3e%3cpath d='M-4.0,15.7L0.0,15.8L4.0,15.9L8.0,16.0L12.0,16.0L16.0,16.1L20.0,16.1L24.0,16.2L28.0,16.2L32.0,16.2L36.0,16.2L40.0,16.2L44.0,16.2L48.0,16.1L52.0,16.0L56.0,16.0L60.0,15.9L64.0,15.8L68.0,15.7L72.0,15.6L76.0,15.6L80.0,15.5L84.0,15.4L88.0,15.4L92.0,15.3L96.0,15.3L100.0,15.3L104.0,15.3L108.0,15.3L112.0,15.3L116.0,15.4L120.0,15.4L124.0,15.5' stroke-width='0.79'/%3e%3cpath d='M-4.0,18.2L0.0,18.3L4.0,18.4L8.0,18.4L12.0,18.5L16.0,18.6L20.0,18.6L24.0,18.6L28.0,18.6L32.0,18.6L36.0,18.6L40.0,18.5L44.0,18.5L48.0,18.4L52.0,18.4L56.0,18.3L60.0,18.2L64.0,18.1L68.0,18.0L72.0,18.0L76.0,17.9L80.0,17.8L84.0,17.7L88.0,17.7L92.0,17.7L96.0,17.6L100.0,17.6L104.0,17.7L108.0,17.7L112.0,17.8L116.0,17.8L120.0,17.9L124.0,18.0' stroke-width='0.61'/%3e%3cpath d='M-4.0,20.7L0.0,20.8L4.0,20.9L8.0,20.9L12.0,21.0L16.0,21.0L20.0,21.0L24.0,21.0L28.0,21.0L32.0,21.0L36.0,20.9L40.0,20.9L44.0,20.8L48.0,20.8L52.0,20.7L56.0,20.6L60.0,20.5L64.0,20.4L68.0,20.3L72.0,20.3L76.0,20.2L80.0,20.1L84.0,20.1L88.0,20.0L92.0,20.0L96.0,20.0L100.0,20.0L104.0,20.1L108.0,20.1L112.0,20.2L116.0,20.3L120.0,20.4L124.0,20.5' stroke-width='0.60'/%3e%3cpath d='M-4.0,23.2L0.0,23.3L4.0,23.3L8.0,23.4L12.0,23.4L16.0,23.4L20.0,23.4L24.0,23.4L28.0,23.4L32.0,23.3L36.0,23.3L40.0,23.2L44.0,23.2L48.0,23.1L52.0,23.0L56.0,22.9L60.0,22.8L64.0,22.7L68.0,22.7L72.0,22.6L76.0,22.5L80.0,22.5L84.0,22.4L88.0,22.4L92.0,22.4L96.0,22.4L100.0,22.5L104.0,22.5L108.0,22.6L112.0,22.7L116.0,22.8L120.0,22.9L124.0,23.0' stroke-width='0.80'/%3e%3cpath d='M-4.0,25.7L0.0,25.7L4.0,25.8L8.0,25.8L12.0,25.8L16.0,25.8L20.0,25.8L24.0,25.8L28.0,25.7L32.0,25.7L36.0,25.6L40.0,25.6L44.0,25.5L48.0,25.4L52.0,25.3L56.0,25.2L60.0,25.1L64.0,25.0L68.0,25.0L72.0,24.9L76.0,24.8L80.0,24.8L84.0,24.8L88.0,24.8L92.0,24.8L96.0,24.8L100.0,24.9L104.0,25.0L108.0,25.0L112.0,25.2L116.0,25.3L120.0,25.4L124.0,25.6' stroke-width='0.58'/%3e%3cpath d='M-4.0,28.1L0.0,28.2L4.0,28.2L8.0,28.2L12.0,28.2L16.0,28.2L20.0,28.2L24.0,28.1L28.0,28.1L32.0,28.0L36.0,28.0L40.0,27.9L44.0,27.8L48.0,27.7L52.0,27.6L56.0,27.5L60.0,27.4L64.0,27.4L68.0,27.3L72.0,27.2L76.0,27.2L80.0,27.2L84.0,27.2L88.0,27.2L92.0,27.2L96.0,27.3L100.0,27.3L104.0,27.4L108.0,27.5L112.0,27.7L116.0,27.8L120.0,27.9L124.0,28.1' stroke-width='0.70'/%3e%3cpath d='M-4.0,30.6L0.0,30.6L4.0,30.6L8.0,30.6L12.0,30.6L16.0,30.6L20.0,30.6L24.0,30.5L28.0,30.4L32.0,30.4L36.0,30.3L40.0,30.2L44.0,30.1L48.0,30.0L52.0,29.9L56.0,29.8L60.0,29.7L64.0,29.7L68.0,29.6L72.0,29.6L76.0,29.5L80.0,29.5L84.0,29.6L88.0,29.6L92.0,29.6L96.0,29.7L100.0,29.8L104.0,29.9L108.0,30.0L112.0,30.2L116.0,30.3L120.0,30.5L124.0,30.6' stroke-width='0.73'/%3e%3cpath d='M-4.0,33.0L0.0,33.0L4.0,33.0L8.0,33.0L12.0,33.0L16.0,33.0L20.0,32.9L24.0,32.8L28.0,32.8L32.0,32.7L36.0,32.6L40.0,32.5L44.0,32.4L48.0,32.3L52.0,32.2L56.0,32.1L60.0,32.1L64.0,32.0L68.0,32.0L72.0,31.9L76.0,31.9L80.0,31.9L84.0,32.0L88.0,32.0L92.0,32.1L96.0,32.2L100.0,32.3L104.0,32.4L108.0,32.5L112.0,32.7L116.0,32.8L120.0,33.0L124.0,33.2' stroke-width='0.70'/%3e%3cpath d='M-4.0,35.4L0.0,35.4L4.0,35.4L8.0,35.4L12.0,35.4L16.0,35.3L20.0,35.2L24.0,35.2L28.0,35.1L32.0,35.0L36.0,34.9L40.0,34.8L44.0,34.7L48.0,34.6L52.0,34.5L56.0,34.4L60.0,34.4L64.0,34.3L68.0,34.3L72.0,34.3L76.0,34.3L80.0,34.3L84.0,34.4L88.0,34.5L92.0,34.5L96.0,34.7L100.0,34.8L104.0,34.9L108.0,35.1L112.0,35.2L116.0,35.4L120.0,35.6L124.0,35.7' stroke-width='0.53'/%3e%3c/g%3e%3cg stroke='%231E6250'%3e%3c/g%3e%3cg stroke='%23216A55'%3e%3cpath d='M-4.0,26.5L0.0,26.6L4.0,26.6L8.0,26.6L12.0,26.6L16.0,26.6L20.0,26.6L24.0,26.6L28.0,26.6L32.0,26.5L36.0,26.4L40.0,26.4L44.0,26.3L48.0,26.2L52.0,26.1L56.0,26.0L60.0,25.9L64.0,25.8L68.0,25.8L72.0,25.7L76.0,25.6L80.0,25.6L84.0,25.6L88.0,25.6L92.0,25.6L96.0,25.7L100.0,25.7L104.0,25.8L108.0,25.9L112.0,26.0L116.0,26.1L120.0,26.3L124.0,26.4' stroke-width='0.76'/%3e%3cpath d='M-4.0,31.6L0.0,31.6L4.0,31.7L8.0,31.7L12.0,31.6L16.0,31.6L20.0,31.6L24.0,31.5L28.0,31.4L32.0,31.3L36.0,31.3L40.0,31.2L44.0,31.1L48.0,31.0L52.0,30.9L56.0,30.8L60.0,30.7L64.0,30.7L68.0,30.6L72.0,30.6L76.0,30.6L80.0,30.6L84.0,30.6L88.0,30.6L92.0,30.7L96.0,30.8L100.0,30.9L104.0,31.0L108.0,31.1L112.0,31.2L116.0,31.4L120.0,31.6L124.0,31.7' stroke-width='0.87'/%3e%3cpath d='M-4.0,34.0L0.0,34.0L4.0,34.0L8.0,34.0L12.0,33.9L16.0,33.9L20.0,33.8L24.0,33.7L28.0,33.7L32.0,33.6L36.0,33.5L40.0,33.4L44.0,33.3L48.0,33.2L52.0,33.1L56.0,33.0L60.0,33.0L64.0,32.9L68.0,32.9L72.0,32.9L76.0,32.8L80.0,32.9L84.0,32.9L88.0,33.0L92.0,33.0L96.0,33.1L100.0,33.2L104.0,33.4L108.0,33.5L112.0,33.7L116.0,33.8L120.0,34.0L124.0,34.2' stroke-width='0.86'/%3e%3cpath d='M-4.0,36.4L0.0,36.4L4.0,36.3L8.0,36.3L12.0,36.3L16.0,36.2L20.0,36.1L24.0,36.0L28.0,36.0L32.0,35.9L36.0,35.8L40.0,35.7L44.0,35.6L48.0,35.5L52.0,35.4L56.0,35.3L60.0,35.3L64.0,35.2L68.0,35.2L72.0,35.2L76.0,35.2L80.0,35.3L84.0,35.3L88.0,35.4L92.0,35.5L96.0,35.6L100.0,35.7L104.0,35.9L108.0,36.0L112.0,36.2L116.0,36.4L120.0,36.5L124.0,36.7' stroke-width='0.86'/%3e%3c/g%3e%3cg stroke='%2323705A'%3e%3cpath d='M-4.0,16.4L0.0,16.5L4.0,16.5L8.0,16.6L12.0,16.7L16.0,16.7L20.0,16.8L24.0,16.8L28.0,16.8L32.0,16.8L36.0,16.8L40.0,16.8L44.0,16.8L48.0,16.7L52.0,16.6L56.0,16.6L60.0,16.5L64.0,16.4L68.0,16.3L72.0,16.2L76.0,16.2L80.0,16.1L84.0,16.0L88.0,16.0L92.0,15.9L96.0,15.9L100.0,15.9L104.0,15.9L108.0,15.9L112.0,15.9L116.0,16.0L120.0,16.1L124.0,16.2' stroke-width='0.62'/%3e%3cpath d='M-4.0,17.7L0.0,17.8L4.0,17.8L8.0,17.9L12.0,18.0L16.0,18.0L20.0,18.1L24.0,18.1L28.0,18.1L32.0,18.1L36.0,18.1L40.0,18.0L44.0,18.0L48.0,17.9L52.0,17.9L56.0,17.8L60.0,17.7L64.0,17.6L68.0,17.5L72.0,17.5L76.0,17.4L80.0,17.3L84.0,17.2L88.0,17.2L92.0,17.1L96.0,17.1L100.0,17.1L104.0,17.1L108.0,17.2L112.0,17.2L116.0,17.3L120.0,17.4L124.0,17.5' stroke-width='0.66'/%3e%3cpath d='M-4.0,19.0L0.0,19.1L4.0,19.1L8.0,19.2L12.0,19.3L16.0,19.3L20.0,19.3L24.0,19.3L28.0,19.4L32.0,19.3L36.0,19.3L40.0,19.3L44.0,19.2L48.0,19.2L52.0,19.1L56.0,19.0L60.0,18.9L64.0,18.8L68.0,18.7L72.0,18.7L76.0,18.6L80.0,18.5L84.0,18.5L88.0,18.4L92.0,18.4L96.0,18.4L100.0,18.4L104.0,18.4L108.0,18.4L112.0,18.5L116.0,18.6L120.0,18.7L124.0,18.8' stroke-width='0.79'/%3e%3cpath d='M-4.0,22.8L0.0,22.8L4.0,22.9L8.0,22.9L12.0,23.0L16.0,23.0L20.0,23.0L24.0,23.0L28.0,23.0L32.0,22.9L36.0,22.9L40.0,22.8L44.0,22.8L48.0,22.7L52.0,22.6L56.0,22.5L60.0,22.4L64.0,22.3L68.0,22.3L72.0,22.2L76.0,22.1L80.0,22.1L84.0,22.0L88.0,22.0L92.0,22.0L96.0,22.0L100.0,22.0L104.0,22.1L108.0,22.2L112.0,22.2L116.0,22.3L120.0,22.5L124.0,22.6' stroke-width='1.18'/%3e%3cpath d='M-4.0,23.9L0.0,23.9L4.0,24.0L8.0,24.0L12.0,24.1L16.0,24.1L20.0,24.1L24.0,24.1L28.0,24.0L32.0,24.0L36.0,23.9L40.0,23.9L44.0,23.8L48.0,23.7L52.0,23.6L56.0,23.6L60.0,23.5L64.0,23.4L68.0,23.3L72.0,23.2L76.0,23.2L80.0,23.1L84.0,23.1L88.0,23.1L92.0,23.1L96.0,23.1L100.0,23.1L104.0,23.2L108.0,23.3L112.0,23.4L116.0,23.5L120.0,23.6L124.0,23.7' stroke-width='0.84'/%3e%3cpath d='M-4.0,27.9L0.0,27.9L4.0,28.0L8.0,28.0L12.0,28.0L16.0,28.0L20.0,28.0L24.0,27.9L28.0,27.9L32.0,27.8L36.0,27.7L40.0,27.6L44.0,27.6L48.0,27.5L52.0,27.4L56.0,27.3L60.0,27.2L64.0,27.1L68.0,27.1L72.0,27.0L76.0,27.0L80.0,26.9L84.0,26.9L88.0,26.9L92.0,27.0L96.0,27.0L100.0,27.1L104.0,27.2L108.0,27.3L112.0,27.4L116.0,27.5L120.0,27.7L124.0,27.8' stroke-width='1.31'/%3e%3cpath d='M-4.0,29.2L0.0,29.2L4.0,29.2L8.0,29.2L12.0,29.2L16.0,29.2L20.0,29.2L24.0,29.1L28.0,29.1L32.0,29.0L36.0,28.9L40.0,28.8L44.0,28.7L48.0,28.7L52.0,28.6L56.0,28.5L60.0,28.4L64.0,28.3L68.0,28.3L72.0,28.2L76.0,28.2L80.0,28.2L84.0,28.2L88.0,28.2L92.0,28.2L96.0,28.3L100.0,28.4L104.0,28.5L108.0,28.6L112.0,28.7L116.0,28.8L120.0,29.0L124.0,29.1' stroke-width='1.29'/%3e%3cpath d='M-4.0,30.5L0.0,30.5L4.0,30.5L8.0,30.5L12.0,30.5L16.0,30.5L20.0,30.5L24.0,30.4L28.0,30.3L32.0,30.3L36.0,30.2L40.0,30.1L44.0,30.0L48.0,29.9L52.0,29.8L56.0,29.7L60.0,29.7L64.0,29.6L68.0,29.5L72.0,29.5L76.0,29.5L80.0,29.5L84.0,29.5L88.0,29.5L92.0,29.5L96.0,29.6L100.0,29.7L104.0,29.8L108.0,29.9L112.0,30.1L116.0,30.2L120.0,30.4L124.0,30.5' stroke-width='0.89'/%3e%3cpath d='M-4.0,32.7L0.0,32.7L4.0,32.7L8.0,32.7L12.0,32.7L16.0,32.7L20.0,32.6L24.0,32.6L28.0,32.5L32.0,32.4L36.0,32.3L40.0,32.2L44.0,32.1L48.0,32.0L52.0,31.9L56.0,31.9L60.0,31.8L64.0,31.7L68.0,31.7L72.0,31.6L76.0,31.6L80.0,31.6L84.0,31.7L88.0,31.7L92.0,31.8L96.0,31.9L100.0,32.0L104.0,32.1L108.0,32.2L112.0,32.4L116.0,32.5L120.0,32.7L124.0,32.9' stroke-width='0.66'/%3e%3cpath d='M-4.0,35.2L0.0,35.2L4.0,35.2L8.0,35.1L12.0,35.1L16.0,35.0L20.0,35.0L24.0,34.9L28.0,34.8L32.0,34.7L36.0,34.6L40.0,34.5L44.0,34.4L48.0,34.3L52.0,34.3L56.0,34.2L60.0,34.1L64.0,34.1L68.0,34.0L72.0,34.0L76.0,34.0L80.0,34.1L84.0,34.1L88.0,34.2L92.0,34.3L96.0,34.4L100.0,34.5L104.0,34.6L108.0,34.8L112.0,34.9L116.0,35.1L120.0,35.3L124.0,35.4' stroke-width='0.70'/%3e%3c/g%3e%3cg stroke='%2328795F'%3e%3cpath d='M-4.0,2.2L0.0,2.3L4.0,2.3L8.0,2.4L12.0,2.5L16.0,2.6L20.0,2.7L24.0,2.8L28.0,2.8L32.0,2.9L36.0,3.0L40.0,3.0L44.0,3.1L48.0,3.1L52.0,3.1L56.0,3.1L60.0,3.1L64.0,3.1L68.0,3.1L72.0,3.0L76.0,3.0L80.0,2.9L84.0,2.8L88.0,2.7L92.0,2.7L96.0,2.6L100.0,2.5L104.0,2.4L108.0,2.4L112.0,2.3L116.0,2.3L120.0,2.3L124.0,2.3' stroke-width='0.91'/%3e%3cpath d='M-4.0,9.8L0.0,9.8L4.0,9.9L8.0,10.0L12.0,10.1L16.0,10.2L20.0,10.3L24.0,10.3L28.0,10.4L32.0,10.4L36.0,10.5L40.0,10.5L44.0,10.5L48.0,10.5L52.0,10.4L56.0,10.4L60.0,10.3L64.0,10.3L68.0,10.2L72.0,10.1L76.0,10.0L80.0,10.0L84.0,9.9L88.0,9.8L92.0,9.7L96.0,9.7L100.0,9.6L104.0,9.6L108.0,9.6L112.0,9.6L116.0,9.6L120.0,9.6L124.0,9.7' stroke-width='1.37'/%3e%3cpath d='M-4.0,13.8L0.0,13.9L4.0,13.9L8.0,14.0L12.0,14.1L16.0,14.2L20.0,14.2L24.0,14.3L28.0,14.3L32.0,14.3L36.0,14.3L40.0,14.3L44.0,14.3L48.0,14.3L52.0,14.2L56.0,14.2L60.0,14.1L64.0,14.0L68.0,13.9L72.0,13.8L76.0,13.8L80.0,13.7L84.0,13.6L88.0,13.5L92.0,13.5L96.0,13.4L100.0,13.4L104.0,13.4L108.0,13.4L112.0,13.4L116.0,13.5L120.0,13.5L124.0,13.6' stroke-width='0.73'/%3e%3cpath d='M-4.0,15.1L0.0,15.2L4.0,15.3L8.0,15.4L12.0,15.5L16.0,15.5L20.0,15.6L24.0,15.6L28.0,15.6L32.0,15.6L36.0,15.6L40.0,15.6L44.0,15.6L48.0,15.6L52.0,15.5L56.0,15.4L60.0,15.4L64.0,15.3L68.0,15.2L72.0,15.1L76.0,15.0L80.0,14.9L84.0,14.9L88.0,14.8L92.0,14.8L96.0,14.7L100.0,14.7L104.0,14.7L108.0,14.7L112.0,14.7L116.0,14.8L120.0,14.9L124.0,15.0' stroke-width='0.85'/%3e%3cpath d='M-4.0,20.3L0.0,20.4L4.0,20.5L8.0,20.5L12.0,20.6L16.0,20.6L20.0,20.7L24.0,20.7L28.0,20.7L32.0,20.6L36.0,20.6L40.0,20.5L44.0,20.5L48.0,20.4L52.0,20.3L56.0,20.3L60.0,20.2L64.0,20.1L68.0,20.0L72.0,19.9L76.0,19.8L80.0,19.8L84.0,19.7L88.0,19.7L92.0,19.7L96.0,19.7L100.0,19.7L104.0,19.7L108.0,19.8L112.0,19.8L116.0,19.9L120.0,20.0L124.0,20.1' stroke-width='1.00'/%3e%3cpath d='M-4.0,21.5L0.0,21.6L4.0,21.7L8.0,21.7L12.0,21.8L16.0,21.8L20.0,21.8L24.0,21.8L28.0,21.8L32.0,21.8L36.0,21.7L40.0,21.7L44.0,21.6L48.0,21.5L52.0,21.5L56.0,21.4L60.0,21.3L64.0,21.2L68.0,21.1L72.0,21.0L76.0,21.0L80.0,20.9L84.0,20.9L88.0,20.8L92.0,20.8L96.0,20.8L100.0,20.8L104.0,20.9L108.0,20.9L112.0,21.0L116.0,21.1L120.0,21.2L124.0,21.4' stroke-width='1.29'/%3e%3cpath d='M-4.0,25.2L0.0,25.3L4.0,25.3L8.0,25.4L12.0,25.4L16.0,25.4L20.0,25.4L24.0,25.4L28.0,25.3L32.0,25.3L36.0,25.2L40.0,25.1L44.0,25.1L48.0,25.0L52.0,24.9L56.0,24.8L60.0,24.7L64.0,24.6L68.0,24.6L72.0,24.5L76.0,24.4L80.0,24.4L84.0,24.4L88.0,24.4L92.0,24.4L96.0,24.4L100.0,24.4L104.0,24.5L108.0,24.6L112.0,24.7L116.0,24.8L120.0,25.0L124.0,25.1' stroke-width='0.62'/%3e%3c/g%3e%3cg stroke='%232E8266'%3e%3cpath d='M-4.0,-0.1L0.0,-0.1L4.0,-0.0L8.0,0.0L12.0,0.1L16.0,0.2L20.0,0.2L24.0,0.3L28.0,0.4L32.0,0.5L36.0,0.6L40.0,0.7L44.0,0.7L48.0,0.8L52.0,0.8L56.0,0.8L60.0,0.8L64.0,0.8L68.0,0.8L72.0,0.8L76.0,0.7L80.0,0.6L84.0,0.6L88.0,0.5L92.0,0.4L96.0,0.4L100.0,0.3L104.0,0.2L108.0,0.1L112.0,0.1L116.0,0.0L120.0,0.0L124.0,0.0' stroke-width='0.94'/%3e%3cpath d='M-4.0,1.0L0.0,1.1L4.0,1.1L8.0,1.2L12.0,1.3L16.0,1.4L20.0,1.5L24.0,1.6L28.0,1.7L32.0,1.7L36.0,1.8L40.0,1.9L44.0,1.9L48.0,2.0L52.0,2.0L56.0,2.0L60.0,2.0L64.0,2.0L68.0,2.0L72.0,1.9L76.0,1.9L80.0,1.8L84.0,1.7L88.0,1.7L92.0,1.6L96.0,1.5L100.0,1.4L104.0,1.4L108.0,1.3L112.0,1.2L116.0,1.2L120.0,1.2L124.0,1.2' stroke-width='1.31'/%3e%3cpath d='M-4.0,3.5L0.0,3.6L4.0,3.7L8.0,3.8L12.0,3.9L16.0,3.9L20.0,4.0L24.0,4.1L28.0,4.2L32.0,4.3L36.0,4.3L40.0,4.4L44.0,4.4L48.0,4.5L52.0,4.5L56.0,4.5L60.0,4.4L64.0,4.4L68.0,4.4L72.0,4.3L76.0,4.2L80.0,4.2L84.0,4.1L88.0,4.0L92.0,3.9L96.0,3.9L100.0,3.8L104.0,3.7L108.0,3.7L112.0,3.6L116.0,3.6L120.0,3.6L124.0,3.6' stroke-width='0.90'/%3e%3cpath d='M-4.0,4.7L0.0,4.8L4.0,4.9L8.0,5.0L12.0,5.1L16.0,5.1L20.0,5.2L24.0,5.3L28.0,5.4L32.0,5.5L36.0,5.5L40.0,5.6L44.0,5.6L48.0,5.6L52.0,5.6L56.0,5.6L60.0,5.6L64.0,5.5L68.0,5.5L72.0,5.4L76.0,5.4L80.0,5.3L84.0,5.2L88.0,5.1L92.0,5.0L96.0,5.0L100.0,4.9L104.0,4.8L108.0,4.8L112.0,4.8L116.0,4.7L120.0,4.7L124.0,4.7' stroke-width='1.03'/%3e%3cpath d='M-4.0,6.1L0.0,6.1L4.0,6.2L8.0,6.3L12.0,6.4L16.0,6.5L20.0,6.6L24.0,6.7L28.0,6.7L32.0,6.8L36.0,6.8L40.0,6.9L44.0,6.9L48.0,6.9L52.0,6.9L56.0,6.9L60.0,6.8L64.0,6.8L68.0,6.7L72.0,6.7L76.0,6.6L80.0,6.5L84.0,6.4L88.0,6.4L92.0,6.3L96.0,6.2L100.0,6.2L104.0,6.1L108.0,6.1L112.0,6.0L116.0,6.0L120.0,6.0L124.0,6.1' stroke-width='1.00'/%3e%3cpath d='M-4.0,7.3L0.0,7.3L4.0,7.4L8.0,7.5L12.0,7.6L16.0,7.7L20.0,7.8L24.0,7.8L28.0,7.9L32.0,8.0L36.0,8.0L40.0,8.0L44.0,8.0L48.0,8.0L52.0,8.0L56.0,8.0L60.0,8.0L64.0,7.9L68.0,7.9L72.0,7.8L76.0,7.7L80.0,7.6L84.0,7.5L88.0,7.5L92.0,7.4L96.0,7.3L100.0,7.3L104.0,7.2L108.0,7.2L112.0,7.2L116.0,7.2L120.0,7.2L124.0,7.2' stroke-width='1.05'/%3e%3cpath d='M-4.0,8.5L0.0,8.5L4.0,8.6L8.0,8.7L12.0,8.8L16.0,8.9L20.0,8.9L24.0,9.0L28.0,9.1L32.0,9.1L36.0,9.2L40.0,9.2L44.0,9.2L48.0,9.2L52.0,9.2L56.0,9.1L60.0,9.1L64.0,9.0L68.0,9.0L72.0,8.9L76.0,8.8L80.0,8.7L84.0,8.7L88.0,8.6L92.0,8.5L96.0,8.4L100.0,8.4L104.0,8.3L108.0,8.3L112.0,8.3L116.0,8.3L120.0,8.3L124.0,8.4' stroke-width='0.79'/%3e%3cpath d='M-4.0,11.0L0.0,11.1L4.0,11.2L8.0,11.2L12.0,11.3L16.0,11.4L20.0,11.5L24.0,11.5L28.0,11.6L32.0,11.6L36.0,11.6L40.0,11.6L44.0,11.6L48.0,11.6L52.0,11.6L56.0,11.5L60.0,11.5L64.0,11.4L68.0,11.3L72.0,11.3L76.0,11.2L80.0,11.1L84.0,11.0L88.0,10.9L92.0,10.9L96.0,10.8L100.0,10.8L104.0,10.7L108.0,10.7L112.0,10.7L116.0,10.8L120.0,10.8L124.0,10.9' stroke-width='1.36'/%3e%3cpath d='M-4.0,12.4L0.0,12.5L4.0,12.6L8.0,12.6L12.0,12.7L16.0,12.8L20.0,12.9L24.0,12.9L28.0,12.9L32.0,13.0L36.0,13.0L40.0,13.0L44.0,13.0L48.0,12.9L52.0,12.9L56.0,12.8L60.0,12.8L64.0,12.7L68.0,12.6L72.0,12.6L76.0,12.5L80.0,12.4L84.0,12.3L88.0,12.2L92.0,12.2L96.0,12.1L100.0,12.1L104.0,12.1L108.0,12.1L112.0,12.1L116.0,12.1L120.0,12.2L124.0,12.2' stroke-width='0.73'/%3e%3c/g%3e%3cg stroke='%235CAA89' opacity='.45'%3e%3cpath d='M-4.0,15.8L0.0,15.9L4.0,15.9L8.0,16.0L12.0,16.1L16.0,16.1L20.0,16.2L24.0,16.2L28.0,16.2L32.0,16.2L36.0,16.2L40.0,16.2L44.0,16.2L48.0,16.1L52.0,16.1L56.0,16.0L60.0,15.9L64.0,15.9L68.0,15.8L72.0,15.7L76.0,15.6L80.0,15.5L84.0,15.5L88.0,15.4L92.0,15.3L96.0,15.3L100.0,15.3L104.0,15.3L108.0,15.3L112.0,15.4L116.0,15.4L120.0,15.5L124.0,15.6' stroke-width='0.69'/%3e%3cpath d='M-4.0,14.5L0.0,14.6L4.0,14.7L8.0,14.8L12.0,14.8L16.0,14.9L20.0,15.0L24.0,15.0L28.0,15.0L32.0,15.0L36.0,15.0L40.0,15.0L44.0,15.0L48.0,15.0L52.0,14.9L56.0,14.8L60.0,14.8L64.0,14.7L68.0,14.6L72.0,14.5L76.0,14.4L80.0,14.4L84.0,14.3L88.0,14.2L92.0,14.2L96.0,14.1L100.0,14.1L104.0,14.1L108.0,14.1L112.0,14.1L116.0,14.2L120.0,14.3L124.0,14.3' stroke-width='0.60'/%3e%3cpath d='M-4.0,15.4L0.0,15.5L4.0,15.5L8.0,15.6L12.0,15.7L16.0,15.7L20.0,15.8L24.0,15.8L28.0,15.9L32.0,15.9L36.0,15.9L40.0,15.8L44.0,15.8L48.0,15.8L52.0,15.7L56.0,15.6L60.0,15.6L64.0,15.5L68.0,15.4L72.0,15.3L76.0,15.2L80.0,15.1L84.0,15.1L88.0,15.0L92.0,15.0L96.0,14.9L100.0,14.9L104.0,14.9L108.0,14.9L112.0,15.0L116.0,15.0L120.0,15.1L124.0,15.2' stroke-width='0.47'/%3e%3cpath d='M-4.0,11.3L0.0,11.4L4.0,11.5L8.0,11.6L12.0,11.7L16.0,11.7L20.0,11.8L24.0,11.9L28.0,11.9L32.0,11.9L36.0,12.0L40.0,12.0L44.0,12.0L48.0,11.9L52.0,11.9L56.0,11.9L60.0,11.8L64.0,11.7L68.0,11.6L72.0,11.6L76.0,11.5L80.0,11.4L84.0,11.3L88.0,11.3L92.0,11.2L96.0,11.1L100.0,11.1L104.0,11.1L108.0,11.1L112.0,11.1L116.0,11.1L120.0,11.1L124.0,11.2' stroke-width='0.45'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");
130
+ --ak-weave-secondary-light: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 36' preserveAspectRatio='none'%3e%3crect width='120' height='36' fill='%23CBC5B4'/%3e%3cg fill='none' stroke-linecap='round'%3e%3cg stroke='%23C9C4B4' opacity='.5'%3e%3cpath d='M-4.0,0.8L0.0,0.9L4.0,1.0L8.0,1.0L12.0,1.1L16.0,1.2L20.0,1.3L24.0,1.4L28.0,1.5L32.0,1.5L36.0,1.6L40.0,1.7L44.0,1.7L48.0,1.8L52.0,1.8L56.0,1.8L60.0,1.8L64.0,1.8L68.0,1.8L72.0,1.7L76.0,1.7L80.0,1.6L84.0,1.5L88.0,1.5L92.0,1.4L96.0,1.3L100.0,1.2L104.0,1.2L108.0,1.1L112.0,1.1L116.0,1.0L120.0,1.0L124.0,1.0' stroke-width='0.78'/%3e%3cpath d='M-4.0,3.3L0.0,3.4L4.0,3.4L8.0,3.5L12.0,3.6L16.0,3.7L20.0,3.8L24.0,3.9L28.0,4.0L32.0,4.0L36.0,4.1L40.0,4.1L44.0,4.2L48.0,4.2L52.0,4.2L56.0,4.2L60.0,4.2L64.0,4.2L68.0,4.1L72.0,4.1L76.0,4.0L80.0,3.9L84.0,3.9L88.0,3.8L92.0,3.7L96.0,3.6L100.0,3.6L104.0,3.5L108.0,3.4L112.0,3.4L116.0,3.4L120.0,3.4L124.0,3.4' stroke-width='0.59'/%3e%3cpath d='M-4.0,5.8L0.0,5.8L4.0,5.9L8.0,6.0L12.0,6.1L16.0,6.2L20.0,6.3L24.0,6.4L28.0,6.4L32.0,6.5L36.0,6.5L40.0,6.6L44.0,6.6L48.0,6.6L52.0,6.6L56.0,6.6L60.0,6.6L64.0,6.5L68.0,6.5L72.0,6.4L76.0,6.3L80.0,6.3L84.0,6.2L88.0,6.1L92.0,6.0L96.0,5.9L100.0,5.9L104.0,5.8L108.0,5.8L112.0,5.7L116.0,5.7L120.0,5.7L124.0,5.8' stroke-width='0.55'/%3e%3cpath d='M-4.0,8.3L0.0,8.3L4.0,8.4L8.0,8.5L12.0,8.6L16.0,8.7L20.0,8.8L24.0,8.8L28.0,8.9L32.0,8.9L36.0,9.0L40.0,9.0L44.0,9.0L48.0,9.0L52.0,9.0L56.0,9.0L60.0,8.9L64.0,8.9L68.0,8.8L72.0,8.7L76.0,8.6L80.0,8.6L84.0,8.5L88.0,8.4L92.0,8.3L96.0,8.3L100.0,8.2L104.0,8.2L108.0,8.1L112.0,8.1L116.0,8.1L120.0,8.1L124.0,8.2' stroke-width='0.78'/%3e%3cpath d='M-4.0,10.7L0.0,10.8L4.0,10.9L8.0,11.0L12.0,11.1L16.0,11.2L20.0,11.2L24.0,11.3L28.0,11.3L32.0,11.4L36.0,11.4L40.0,11.4L44.0,11.4L48.0,11.4L52.0,11.4L56.0,11.3L60.0,11.3L64.0,11.2L68.0,11.1L72.0,11.0L76.0,11.0L80.0,10.9L84.0,10.8L88.0,10.7L92.0,10.6L96.0,10.6L100.0,10.5L104.0,10.5L108.0,10.5L112.0,10.5L116.0,10.5L120.0,10.6L124.0,10.6' stroke-width='0.78'/%3e%3cpath d='M-4.0,13.2L0.0,13.3L4.0,13.4L8.0,13.5L12.0,13.6L16.0,13.6L20.0,13.7L24.0,13.7L28.0,13.8L32.0,13.8L36.0,13.8L40.0,13.8L44.0,13.8L48.0,13.8L52.0,13.7L56.0,13.6L60.0,13.6L64.0,13.5L68.0,13.4L72.0,13.3L76.0,13.3L80.0,13.2L84.0,13.1L88.0,13.0L92.0,13.0L96.0,12.9L100.0,12.9L104.0,12.9L108.0,12.9L112.0,12.9L116.0,12.9L120.0,13.0L124.0,13.1' stroke-width='0.67'/%3e%3cpath d='M-4.0,15.7L0.0,15.8L4.0,15.9L8.0,16.0L12.0,16.0L16.0,16.1L20.0,16.1L24.0,16.2L28.0,16.2L32.0,16.2L36.0,16.2L40.0,16.2L44.0,16.2L48.0,16.1L52.0,16.0L56.0,16.0L60.0,15.9L64.0,15.8L68.0,15.7L72.0,15.6L76.0,15.6L80.0,15.5L84.0,15.4L88.0,15.4L92.0,15.3L96.0,15.3L100.0,15.3L104.0,15.3L108.0,15.3L112.0,15.3L116.0,15.4L120.0,15.4L124.0,15.5' stroke-width='0.79'/%3e%3cpath d='M-4.0,18.2L0.0,18.3L4.0,18.4L8.0,18.4L12.0,18.5L16.0,18.6L20.0,18.6L24.0,18.6L28.0,18.6L32.0,18.6L36.0,18.6L40.0,18.5L44.0,18.5L48.0,18.4L52.0,18.4L56.0,18.3L60.0,18.2L64.0,18.1L68.0,18.0L72.0,18.0L76.0,17.9L80.0,17.8L84.0,17.7L88.0,17.7L92.0,17.7L96.0,17.6L100.0,17.6L104.0,17.7L108.0,17.7L112.0,17.8L116.0,17.8L120.0,17.9L124.0,18.0' stroke-width='0.61'/%3e%3cpath d='M-4.0,20.7L0.0,20.8L4.0,20.9L8.0,20.9L12.0,21.0L16.0,21.0L20.0,21.0L24.0,21.0L28.0,21.0L32.0,21.0L36.0,20.9L40.0,20.9L44.0,20.8L48.0,20.8L52.0,20.7L56.0,20.6L60.0,20.5L64.0,20.4L68.0,20.3L72.0,20.3L76.0,20.2L80.0,20.1L84.0,20.1L88.0,20.0L92.0,20.0L96.0,20.0L100.0,20.0L104.0,20.1L108.0,20.1L112.0,20.2L116.0,20.3L120.0,20.4L124.0,20.5' stroke-width='0.60'/%3e%3cpath d='M-4.0,23.2L0.0,23.3L4.0,23.3L8.0,23.4L12.0,23.4L16.0,23.4L20.0,23.4L24.0,23.4L28.0,23.4L32.0,23.3L36.0,23.3L40.0,23.2L44.0,23.2L48.0,23.1L52.0,23.0L56.0,22.9L60.0,22.8L64.0,22.7L68.0,22.7L72.0,22.6L76.0,22.5L80.0,22.5L84.0,22.4L88.0,22.4L92.0,22.4L96.0,22.4L100.0,22.5L104.0,22.5L108.0,22.6L112.0,22.7L116.0,22.8L120.0,22.9L124.0,23.0' stroke-width='0.80'/%3e%3cpath d='M-4.0,25.7L0.0,25.7L4.0,25.8L8.0,25.8L12.0,25.8L16.0,25.8L20.0,25.8L24.0,25.8L28.0,25.7L32.0,25.7L36.0,25.6L40.0,25.6L44.0,25.5L48.0,25.4L52.0,25.3L56.0,25.2L60.0,25.1L64.0,25.0L68.0,25.0L72.0,24.9L76.0,24.8L80.0,24.8L84.0,24.8L88.0,24.8L92.0,24.8L96.0,24.8L100.0,24.9L104.0,25.0L108.0,25.0L112.0,25.2L116.0,25.3L120.0,25.4L124.0,25.6' stroke-width='0.58'/%3e%3cpath d='M-4.0,28.1L0.0,28.2L4.0,28.2L8.0,28.2L12.0,28.2L16.0,28.2L20.0,28.2L24.0,28.1L28.0,28.1L32.0,28.0L36.0,28.0L40.0,27.9L44.0,27.8L48.0,27.7L52.0,27.6L56.0,27.5L60.0,27.4L64.0,27.4L68.0,27.3L72.0,27.2L76.0,27.2L80.0,27.2L84.0,27.2L88.0,27.2L92.0,27.2L96.0,27.3L100.0,27.3L104.0,27.4L108.0,27.5L112.0,27.7L116.0,27.8L120.0,27.9L124.0,28.1' stroke-width='0.70'/%3e%3cpath d='M-4.0,30.6L0.0,30.6L4.0,30.6L8.0,30.6L12.0,30.6L16.0,30.6L20.0,30.6L24.0,30.5L28.0,30.4L32.0,30.4L36.0,30.3L40.0,30.2L44.0,30.1L48.0,30.0L52.0,29.9L56.0,29.8L60.0,29.7L64.0,29.7L68.0,29.6L72.0,29.6L76.0,29.5L80.0,29.5L84.0,29.6L88.0,29.6L92.0,29.6L96.0,29.7L100.0,29.8L104.0,29.9L108.0,30.0L112.0,30.2L116.0,30.3L120.0,30.5L124.0,30.6' stroke-width='0.73'/%3e%3cpath d='M-4.0,33.0L0.0,33.0L4.0,33.0L8.0,33.0L12.0,33.0L16.0,33.0L20.0,32.9L24.0,32.8L28.0,32.8L32.0,32.7L36.0,32.6L40.0,32.5L44.0,32.4L48.0,32.3L52.0,32.2L56.0,32.1L60.0,32.1L64.0,32.0L68.0,32.0L72.0,31.9L76.0,31.9L80.0,31.9L84.0,32.0L88.0,32.0L92.0,32.1L96.0,32.2L100.0,32.3L104.0,32.4L108.0,32.5L112.0,32.7L116.0,32.8L120.0,33.0L124.0,33.2' stroke-width='0.70'/%3e%3cpath d='M-4.0,35.4L0.0,35.4L4.0,35.4L8.0,35.4L12.0,35.4L16.0,35.3L20.0,35.2L24.0,35.2L28.0,35.1L32.0,35.0L36.0,34.9L40.0,34.8L44.0,34.7L48.0,34.6L52.0,34.5L56.0,34.4L60.0,34.4L64.0,34.3L68.0,34.3L72.0,34.3L76.0,34.3L80.0,34.3L84.0,34.4L88.0,34.5L92.0,34.5L96.0,34.7L100.0,34.8L104.0,34.9L108.0,35.1L112.0,35.2L116.0,35.4L120.0,35.6L124.0,35.7' stroke-width='0.53'/%3e%3c/g%3e%3cg stroke='%23E4E0D3'%3e%3c/g%3e%3cg stroke='%23E8E5D9'%3e%3cpath d='M-4.0,26.5L0.0,26.6L4.0,26.6L8.0,26.6L12.0,26.6L16.0,26.6L20.0,26.6L24.0,26.6L28.0,26.6L32.0,26.5L36.0,26.4L40.0,26.4L44.0,26.3L48.0,26.2L52.0,26.1L56.0,26.0L60.0,25.9L64.0,25.8L68.0,25.8L72.0,25.7L76.0,25.6L80.0,25.6L84.0,25.6L88.0,25.6L92.0,25.6L96.0,25.7L100.0,25.7L104.0,25.8L108.0,25.9L112.0,26.0L116.0,26.1L120.0,26.3L124.0,26.4' stroke-width='0.76'/%3e%3cpath d='M-4.0,31.6L0.0,31.6L4.0,31.7L8.0,31.7L12.0,31.6L16.0,31.6L20.0,31.6L24.0,31.5L28.0,31.4L32.0,31.3L36.0,31.3L40.0,31.2L44.0,31.1L48.0,31.0L52.0,30.9L56.0,30.8L60.0,30.7L64.0,30.7L68.0,30.6L72.0,30.6L76.0,30.6L80.0,30.6L84.0,30.6L88.0,30.6L92.0,30.7L96.0,30.8L100.0,30.9L104.0,31.0L108.0,31.1L112.0,31.2L116.0,31.4L120.0,31.6L124.0,31.7' stroke-width='0.87'/%3e%3cpath d='M-4.0,34.0L0.0,34.0L4.0,34.0L8.0,34.0L12.0,33.9L16.0,33.9L20.0,33.8L24.0,33.7L28.0,33.7L32.0,33.6L36.0,33.5L40.0,33.4L44.0,33.3L48.0,33.2L52.0,33.1L56.0,33.0L60.0,33.0L64.0,32.9L68.0,32.9L72.0,32.9L76.0,32.8L80.0,32.9L84.0,32.9L88.0,33.0L92.0,33.0L96.0,33.1L100.0,33.2L104.0,33.4L108.0,33.5L112.0,33.7L116.0,33.8L120.0,34.0L124.0,34.2' stroke-width='0.86'/%3e%3cpath d='M-4.0,36.4L0.0,36.4L4.0,36.3L8.0,36.3L12.0,36.3L16.0,36.2L20.0,36.1L24.0,36.0L28.0,36.0L32.0,35.9L36.0,35.8L40.0,35.7L44.0,35.6L48.0,35.5L52.0,35.4L56.0,35.3L60.0,35.3L64.0,35.2L68.0,35.2L72.0,35.2L76.0,35.2L80.0,35.3L84.0,35.3L88.0,35.4L92.0,35.5L96.0,35.6L100.0,35.7L104.0,35.9L108.0,36.0L112.0,36.2L116.0,36.4L120.0,36.5L124.0,36.7' stroke-width='0.86'/%3e%3c/g%3e%3cg stroke='%23EDEAE0'%3e%3cpath d='M-4.0,16.4L0.0,16.5L4.0,16.5L8.0,16.6L12.0,16.7L16.0,16.7L20.0,16.8L24.0,16.8L28.0,16.8L32.0,16.8L36.0,16.8L40.0,16.8L44.0,16.8L48.0,16.7L52.0,16.6L56.0,16.6L60.0,16.5L64.0,16.4L68.0,16.3L72.0,16.2L76.0,16.2L80.0,16.1L84.0,16.0L88.0,16.0L92.0,15.9L96.0,15.9L100.0,15.9L104.0,15.9L108.0,15.9L112.0,15.9L116.0,16.0L120.0,16.1L124.0,16.2' stroke-width='0.62'/%3e%3cpath d='M-4.0,17.7L0.0,17.8L4.0,17.8L8.0,17.9L12.0,18.0L16.0,18.0L20.0,18.1L24.0,18.1L28.0,18.1L32.0,18.1L36.0,18.1L40.0,18.0L44.0,18.0L48.0,17.9L52.0,17.9L56.0,17.8L60.0,17.7L64.0,17.6L68.0,17.5L72.0,17.5L76.0,17.4L80.0,17.3L84.0,17.2L88.0,17.2L92.0,17.1L96.0,17.1L100.0,17.1L104.0,17.1L108.0,17.2L112.0,17.2L116.0,17.3L120.0,17.4L124.0,17.5' stroke-width='0.66'/%3e%3cpath d='M-4.0,19.0L0.0,19.1L4.0,19.1L8.0,19.2L12.0,19.3L16.0,19.3L20.0,19.3L24.0,19.3L28.0,19.4L32.0,19.3L36.0,19.3L40.0,19.3L44.0,19.2L48.0,19.2L52.0,19.1L56.0,19.0L60.0,18.9L64.0,18.8L68.0,18.7L72.0,18.7L76.0,18.6L80.0,18.5L84.0,18.5L88.0,18.4L92.0,18.4L96.0,18.4L100.0,18.4L104.0,18.4L108.0,18.4L112.0,18.5L116.0,18.6L120.0,18.7L124.0,18.8' stroke-width='0.79'/%3e%3cpath d='M-4.0,22.8L0.0,22.8L4.0,22.9L8.0,22.9L12.0,23.0L16.0,23.0L20.0,23.0L24.0,23.0L28.0,23.0L32.0,22.9L36.0,22.9L40.0,22.8L44.0,22.8L48.0,22.7L52.0,22.6L56.0,22.5L60.0,22.4L64.0,22.3L68.0,22.3L72.0,22.2L76.0,22.1L80.0,22.1L84.0,22.0L88.0,22.0L92.0,22.0L96.0,22.0L100.0,22.0L104.0,22.1L108.0,22.2L112.0,22.2L116.0,22.3L120.0,22.5L124.0,22.6' stroke-width='1.18'/%3e%3cpath d='M-4.0,23.9L0.0,23.9L4.0,24.0L8.0,24.0L12.0,24.1L16.0,24.1L20.0,24.1L24.0,24.1L28.0,24.0L32.0,24.0L36.0,23.9L40.0,23.9L44.0,23.8L48.0,23.7L52.0,23.6L56.0,23.6L60.0,23.5L64.0,23.4L68.0,23.3L72.0,23.2L76.0,23.2L80.0,23.1L84.0,23.1L88.0,23.1L92.0,23.1L96.0,23.1L100.0,23.1L104.0,23.2L108.0,23.3L112.0,23.4L116.0,23.5L120.0,23.6L124.0,23.7' stroke-width='0.84'/%3e%3cpath d='M-4.0,27.9L0.0,27.9L4.0,28.0L8.0,28.0L12.0,28.0L16.0,28.0L20.0,28.0L24.0,27.9L28.0,27.9L32.0,27.8L36.0,27.7L40.0,27.6L44.0,27.6L48.0,27.5L52.0,27.4L56.0,27.3L60.0,27.2L64.0,27.1L68.0,27.1L72.0,27.0L76.0,27.0L80.0,26.9L84.0,26.9L88.0,26.9L92.0,27.0L96.0,27.0L100.0,27.1L104.0,27.2L108.0,27.3L112.0,27.4L116.0,27.5L120.0,27.7L124.0,27.8' stroke-width='1.31'/%3e%3cpath d='M-4.0,29.2L0.0,29.2L4.0,29.2L8.0,29.2L12.0,29.2L16.0,29.2L20.0,29.2L24.0,29.1L28.0,29.1L32.0,29.0L36.0,28.9L40.0,28.8L44.0,28.7L48.0,28.7L52.0,28.6L56.0,28.5L60.0,28.4L64.0,28.3L68.0,28.3L72.0,28.2L76.0,28.2L80.0,28.2L84.0,28.2L88.0,28.2L92.0,28.2L96.0,28.3L100.0,28.4L104.0,28.5L108.0,28.6L112.0,28.7L116.0,28.8L120.0,29.0L124.0,29.1' stroke-width='1.29'/%3e%3cpath d='M-4.0,30.5L0.0,30.5L4.0,30.5L8.0,30.5L12.0,30.5L16.0,30.5L20.0,30.5L24.0,30.4L28.0,30.3L32.0,30.3L36.0,30.2L40.0,30.1L44.0,30.0L48.0,29.9L52.0,29.8L56.0,29.7L60.0,29.7L64.0,29.6L68.0,29.5L72.0,29.5L76.0,29.5L80.0,29.5L84.0,29.5L88.0,29.5L92.0,29.5L96.0,29.6L100.0,29.7L104.0,29.8L108.0,29.9L112.0,30.1L116.0,30.2L120.0,30.4L124.0,30.5' stroke-width='0.89'/%3e%3cpath d='M-4.0,32.7L0.0,32.7L4.0,32.7L8.0,32.7L12.0,32.7L16.0,32.7L20.0,32.6L24.0,32.6L28.0,32.5L32.0,32.4L36.0,32.3L40.0,32.2L44.0,32.1L48.0,32.0L52.0,31.9L56.0,31.9L60.0,31.8L64.0,31.7L68.0,31.7L72.0,31.6L76.0,31.6L80.0,31.6L84.0,31.7L88.0,31.7L92.0,31.8L96.0,31.9L100.0,32.0L104.0,32.1L108.0,32.2L112.0,32.4L116.0,32.5L120.0,32.7L124.0,32.9' stroke-width='0.66'/%3e%3cpath d='M-4.0,35.2L0.0,35.2L4.0,35.2L8.0,35.1L12.0,35.1L16.0,35.0L20.0,35.0L24.0,34.9L28.0,34.8L32.0,34.7L36.0,34.6L40.0,34.5L44.0,34.4L48.0,34.3L52.0,34.3L56.0,34.2L60.0,34.1L64.0,34.1L68.0,34.0L72.0,34.0L76.0,34.0L80.0,34.1L84.0,34.1L88.0,34.2L92.0,34.3L96.0,34.4L100.0,34.5L104.0,34.6L108.0,34.8L112.0,34.9L116.0,35.1L120.0,35.3L124.0,35.4' stroke-width='0.70'/%3e%3c/g%3e%3cg stroke='%23F1EEE6'%3e%3cpath d='M-4.0,2.2L0.0,2.3L4.0,2.3L8.0,2.4L12.0,2.5L16.0,2.6L20.0,2.7L24.0,2.8L28.0,2.8L32.0,2.9L36.0,3.0L40.0,3.0L44.0,3.1L48.0,3.1L52.0,3.1L56.0,3.1L60.0,3.1L64.0,3.1L68.0,3.1L72.0,3.0L76.0,3.0L80.0,2.9L84.0,2.8L88.0,2.7L92.0,2.7L96.0,2.6L100.0,2.5L104.0,2.4L108.0,2.4L112.0,2.3L116.0,2.3L120.0,2.3L124.0,2.3' stroke-width='0.91'/%3e%3cpath d='M-4.0,9.8L0.0,9.8L4.0,9.9L8.0,10.0L12.0,10.1L16.0,10.2L20.0,10.3L24.0,10.3L28.0,10.4L32.0,10.4L36.0,10.5L40.0,10.5L44.0,10.5L48.0,10.5L52.0,10.4L56.0,10.4L60.0,10.3L64.0,10.3L68.0,10.2L72.0,10.1L76.0,10.0L80.0,10.0L84.0,9.9L88.0,9.8L92.0,9.7L96.0,9.7L100.0,9.6L104.0,9.6L108.0,9.6L112.0,9.6L116.0,9.6L120.0,9.6L124.0,9.7' stroke-width='1.37'/%3e%3cpath d='M-4.0,13.8L0.0,13.9L4.0,13.9L8.0,14.0L12.0,14.1L16.0,14.2L20.0,14.2L24.0,14.3L28.0,14.3L32.0,14.3L36.0,14.3L40.0,14.3L44.0,14.3L48.0,14.3L52.0,14.2L56.0,14.2L60.0,14.1L64.0,14.0L68.0,13.9L72.0,13.8L76.0,13.8L80.0,13.7L84.0,13.6L88.0,13.5L92.0,13.5L96.0,13.4L100.0,13.4L104.0,13.4L108.0,13.4L112.0,13.4L116.0,13.5L120.0,13.5L124.0,13.6' stroke-width='0.73'/%3e%3cpath d='M-4.0,15.1L0.0,15.2L4.0,15.3L8.0,15.4L12.0,15.5L16.0,15.5L20.0,15.6L24.0,15.6L28.0,15.6L32.0,15.6L36.0,15.6L40.0,15.6L44.0,15.6L48.0,15.6L52.0,15.5L56.0,15.4L60.0,15.4L64.0,15.3L68.0,15.2L72.0,15.1L76.0,15.0L80.0,14.9L84.0,14.9L88.0,14.8L92.0,14.8L96.0,14.7L100.0,14.7L104.0,14.7L108.0,14.7L112.0,14.7L116.0,14.8L120.0,14.9L124.0,15.0' stroke-width='0.85'/%3e%3cpath d='M-4.0,20.3L0.0,20.4L4.0,20.5L8.0,20.5L12.0,20.6L16.0,20.6L20.0,20.7L24.0,20.7L28.0,20.7L32.0,20.6L36.0,20.6L40.0,20.5L44.0,20.5L48.0,20.4L52.0,20.3L56.0,20.3L60.0,20.2L64.0,20.1L68.0,20.0L72.0,19.9L76.0,19.8L80.0,19.8L84.0,19.7L88.0,19.7L92.0,19.7L96.0,19.7L100.0,19.7L104.0,19.7L108.0,19.8L112.0,19.8L116.0,19.9L120.0,20.0L124.0,20.1' stroke-width='1.00'/%3e%3cpath d='M-4.0,21.5L0.0,21.6L4.0,21.7L8.0,21.7L12.0,21.8L16.0,21.8L20.0,21.8L24.0,21.8L28.0,21.8L32.0,21.8L36.0,21.7L40.0,21.7L44.0,21.6L48.0,21.5L52.0,21.5L56.0,21.4L60.0,21.3L64.0,21.2L68.0,21.1L72.0,21.0L76.0,21.0L80.0,20.9L84.0,20.9L88.0,20.8L92.0,20.8L96.0,20.8L100.0,20.8L104.0,20.9L108.0,20.9L112.0,21.0L116.0,21.1L120.0,21.2L124.0,21.4' stroke-width='1.29'/%3e%3cpath d='M-4.0,25.2L0.0,25.3L4.0,25.3L8.0,25.4L12.0,25.4L16.0,25.4L20.0,25.4L24.0,25.4L28.0,25.3L32.0,25.3L36.0,25.2L40.0,25.1L44.0,25.1L48.0,25.0L52.0,24.9L56.0,24.8L60.0,24.7L64.0,24.6L68.0,24.6L72.0,24.5L76.0,24.4L80.0,24.4L84.0,24.4L88.0,24.4L92.0,24.4L96.0,24.4L100.0,24.4L104.0,24.5L108.0,24.6L112.0,24.7L116.0,24.8L120.0,25.0L124.0,25.1' stroke-width='0.62'/%3e%3c/g%3e%3cg stroke='%23F5F3EC'%3e%3cpath d='M-4.0,-0.1L0.0,-0.1L4.0,-0.0L8.0,0.0L12.0,0.1L16.0,0.2L20.0,0.2L24.0,0.3L28.0,0.4L32.0,0.5L36.0,0.6L40.0,0.7L44.0,0.7L48.0,0.8L52.0,0.8L56.0,0.8L60.0,0.8L64.0,0.8L68.0,0.8L72.0,0.8L76.0,0.7L80.0,0.6L84.0,0.6L88.0,0.5L92.0,0.4L96.0,0.4L100.0,0.3L104.0,0.2L108.0,0.1L112.0,0.1L116.0,0.0L120.0,0.0L124.0,0.0' stroke-width='0.94'/%3e%3cpath d='M-4.0,1.0L0.0,1.1L4.0,1.1L8.0,1.2L12.0,1.3L16.0,1.4L20.0,1.5L24.0,1.6L28.0,1.7L32.0,1.7L36.0,1.8L40.0,1.9L44.0,1.9L48.0,2.0L52.0,2.0L56.0,2.0L60.0,2.0L64.0,2.0L68.0,2.0L72.0,1.9L76.0,1.9L80.0,1.8L84.0,1.7L88.0,1.7L92.0,1.6L96.0,1.5L100.0,1.4L104.0,1.4L108.0,1.3L112.0,1.2L116.0,1.2L120.0,1.2L124.0,1.2' stroke-width='1.31'/%3e%3cpath d='M-4.0,3.5L0.0,3.6L4.0,3.7L8.0,3.8L12.0,3.9L16.0,3.9L20.0,4.0L24.0,4.1L28.0,4.2L32.0,4.3L36.0,4.3L40.0,4.4L44.0,4.4L48.0,4.5L52.0,4.5L56.0,4.5L60.0,4.4L64.0,4.4L68.0,4.4L72.0,4.3L76.0,4.2L80.0,4.2L84.0,4.1L88.0,4.0L92.0,3.9L96.0,3.9L100.0,3.8L104.0,3.7L108.0,3.7L112.0,3.6L116.0,3.6L120.0,3.6L124.0,3.6' stroke-width='0.90'/%3e%3cpath d='M-4.0,4.7L0.0,4.8L4.0,4.9L8.0,5.0L12.0,5.1L16.0,5.1L20.0,5.2L24.0,5.3L28.0,5.4L32.0,5.5L36.0,5.5L40.0,5.6L44.0,5.6L48.0,5.6L52.0,5.6L56.0,5.6L60.0,5.6L64.0,5.5L68.0,5.5L72.0,5.4L76.0,5.4L80.0,5.3L84.0,5.2L88.0,5.1L92.0,5.0L96.0,5.0L100.0,4.9L104.0,4.8L108.0,4.8L112.0,4.8L116.0,4.7L120.0,4.7L124.0,4.7' stroke-width='1.03'/%3e%3cpath d='M-4.0,6.1L0.0,6.1L4.0,6.2L8.0,6.3L12.0,6.4L16.0,6.5L20.0,6.6L24.0,6.7L28.0,6.7L32.0,6.8L36.0,6.8L40.0,6.9L44.0,6.9L48.0,6.9L52.0,6.9L56.0,6.9L60.0,6.8L64.0,6.8L68.0,6.7L72.0,6.7L76.0,6.6L80.0,6.5L84.0,6.4L88.0,6.4L92.0,6.3L96.0,6.2L100.0,6.2L104.0,6.1L108.0,6.1L112.0,6.0L116.0,6.0L120.0,6.0L124.0,6.1' stroke-width='1.00'/%3e%3cpath d='M-4.0,7.3L0.0,7.3L4.0,7.4L8.0,7.5L12.0,7.6L16.0,7.7L20.0,7.8L24.0,7.8L28.0,7.9L32.0,8.0L36.0,8.0L40.0,8.0L44.0,8.0L48.0,8.0L52.0,8.0L56.0,8.0L60.0,8.0L64.0,7.9L68.0,7.9L72.0,7.8L76.0,7.7L80.0,7.6L84.0,7.5L88.0,7.5L92.0,7.4L96.0,7.3L100.0,7.3L104.0,7.2L108.0,7.2L112.0,7.2L116.0,7.2L120.0,7.2L124.0,7.2' stroke-width='1.05'/%3e%3cpath d='M-4.0,8.5L0.0,8.5L4.0,8.6L8.0,8.7L12.0,8.8L16.0,8.9L20.0,8.9L24.0,9.0L28.0,9.1L32.0,9.1L36.0,9.2L40.0,9.2L44.0,9.2L48.0,9.2L52.0,9.2L56.0,9.1L60.0,9.1L64.0,9.0L68.0,9.0L72.0,8.9L76.0,8.8L80.0,8.7L84.0,8.7L88.0,8.6L92.0,8.5L96.0,8.4L100.0,8.4L104.0,8.3L108.0,8.3L112.0,8.3L116.0,8.3L120.0,8.3L124.0,8.4' stroke-width='0.79'/%3e%3cpath d='M-4.0,11.0L0.0,11.1L4.0,11.2L8.0,11.2L12.0,11.3L16.0,11.4L20.0,11.5L24.0,11.5L28.0,11.6L32.0,11.6L36.0,11.6L40.0,11.6L44.0,11.6L48.0,11.6L52.0,11.6L56.0,11.5L60.0,11.5L64.0,11.4L68.0,11.3L72.0,11.3L76.0,11.2L80.0,11.1L84.0,11.0L88.0,10.9L92.0,10.9L96.0,10.8L100.0,10.8L104.0,10.7L108.0,10.7L112.0,10.7L116.0,10.8L120.0,10.8L124.0,10.9' stroke-width='1.36'/%3e%3cpath d='M-4.0,12.4L0.0,12.5L4.0,12.6L8.0,12.6L12.0,12.7L16.0,12.8L20.0,12.9L24.0,12.9L28.0,12.9L32.0,13.0L36.0,13.0L40.0,13.0L44.0,13.0L48.0,12.9L52.0,12.9L56.0,12.8L60.0,12.8L64.0,12.7L68.0,12.6L72.0,12.6L76.0,12.5L80.0,12.4L84.0,12.3L88.0,12.2L92.0,12.2L96.0,12.1L100.0,12.1L104.0,12.1L108.0,12.1L112.0,12.1L116.0,12.1L120.0,12.2L124.0,12.2' stroke-width='0.73'/%3e%3c/g%3e%3cg stroke='%23FFFFFF' opacity='.45'%3e%3cpath d='M-4.0,15.8L0.0,15.9L4.0,15.9L8.0,16.0L12.0,16.1L16.0,16.1L20.0,16.2L24.0,16.2L28.0,16.2L32.0,16.2L36.0,16.2L40.0,16.2L44.0,16.2L48.0,16.1L52.0,16.1L56.0,16.0L60.0,15.9L64.0,15.9L68.0,15.8L72.0,15.7L76.0,15.6L80.0,15.5L84.0,15.5L88.0,15.4L92.0,15.3L96.0,15.3L100.0,15.3L104.0,15.3L108.0,15.3L112.0,15.4L116.0,15.4L120.0,15.5L124.0,15.6' stroke-width='0.69'/%3e%3cpath d='M-4.0,14.5L0.0,14.6L4.0,14.7L8.0,14.8L12.0,14.8L16.0,14.9L20.0,15.0L24.0,15.0L28.0,15.0L32.0,15.0L36.0,15.0L40.0,15.0L44.0,15.0L48.0,15.0L52.0,14.9L56.0,14.8L60.0,14.8L64.0,14.7L68.0,14.6L72.0,14.5L76.0,14.4L80.0,14.4L84.0,14.3L88.0,14.2L92.0,14.2L96.0,14.1L100.0,14.1L104.0,14.1L108.0,14.1L112.0,14.1L116.0,14.2L120.0,14.3L124.0,14.3' stroke-width='0.60'/%3e%3cpath d='M-4.0,15.4L0.0,15.5L4.0,15.5L8.0,15.6L12.0,15.7L16.0,15.7L20.0,15.8L24.0,15.8L28.0,15.9L32.0,15.9L36.0,15.9L40.0,15.8L44.0,15.8L48.0,15.8L52.0,15.7L56.0,15.6L60.0,15.6L64.0,15.5L68.0,15.4L72.0,15.3L76.0,15.2L80.0,15.1L84.0,15.1L88.0,15.0L92.0,15.0L96.0,14.9L100.0,14.9L104.0,14.9L108.0,14.9L112.0,15.0L116.0,15.0L120.0,15.1L124.0,15.2' stroke-width='0.47'/%3e%3cpath d='M-4.0,11.3L0.0,11.4L4.0,11.5L8.0,11.6L12.0,11.7L16.0,11.7L20.0,11.8L24.0,11.9L28.0,11.9L32.0,11.9L36.0,12.0L40.0,12.0L44.0,12.0L48.0,11.9L52.0,11.9L56.0,11.9L60.0,11.8L64.0,11.7L68.0,11.6L72.0,11.6L76.0,11.5L80.0,11.4L84.0,11.3L88.0,11.3L92.0,11.2L96.0,11.1L100.0,11.1L104.0,11.1L108.0,11.1L112.0,11.1L116.0,11.1L120.0,11.1L124.0,11.2' stroke-width='0.45'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");
131
+ --ak-weave-primary-dark: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 36' preserveAspectRatio='none'%3e%3crect width='120' height='36' fill='%23173629'/%3e%3cg fill='none' stroke-linecap='round'%3e%3cg stroke='%231B4437' opacity='.5'%3e%3cpath d='M-4.0,0.8L0.0,0.9L4.0,1.0L8.0,1.0L12.0,1.1L16.0,1.2L20.0,1.3L24.0,1.4L28.0,1.5L32.0,1.5L36.0,1.6L40.0,1.7L44.0,1.7L48.0,1.8L52.0,1.8L56.0,1.8L60.0,1.8L64.0,1.8L68.0,1.8L72.0,1.7L76.0,1.7L80.0,1.6L84.0,1.5L88.0,1.5L92.0,1.4L96.0,1.3L100.0,1.2L104.0,1.2L108.0,1.1L112.0,1.1L116.0,1.0L120.0,1.0L124.0,1.0' stroke-width='0.78'/%3e%3cpath d='M-4.0,3.3L0.0,3.4L4.0,3.4L8.0,3.5L12.0,3.6L16.0,3.7L20.0,3.8L24.0,3.9L28.0,4.0L32.0,4.0L36.0,4.1L40.0,4.1L44.0,4.2L48.0,4.2L52.0,4.2L56.0,4.2L60.0,4.2L64.0,4.2L68.0,4.1L72.0,4.1L76.0,4.0L80.0,3.9L84.0,3.9L88.0,3.8L92.0,3.7L96.0,3.6L100.0,3.6L104.0,3.5L108.0,3.4L112.0,3.4L116.0,3.4L120.0,3.4L124.0,3.4' stroke-width='0.59'/%3e%3cpath d='M-4.0,5.8L0.0,5.8L4.0,5.9L8.0,6.0L12.0,6.1L16.0,6.2L20.0,6.3L24.0,6.4L28.0,6.4L32.0,6.5L36.0,6.5L40.0,6.6L44.0,6.6L48.0,6.6L52.0,6.6L56.0,6.6L60.0,6.6L64.0,6.5L68.0,6.5L72.0,6.4L76.0,6.3L80.0,6.3L84.0,6.2L88.0,6.1L92.0,6.0L96.0,5.9L100.0,5.9L104.0,5.8L108.0,5.8L112.0,5.7L116.0,5.7L120.0,5.7L124.0,5.8' stroke-width='0.55'/%3e%3cpath d='M-4.0,8.3L0.0,8.3L4.0,8.4L8.0,8.5L12.0,8.6L16.0,8.7L20.0,8.8L24.0,8.8L28.0,8.9L32.0,8.9L36.0,9.0L40.0,9.0L44.0,9.0L48.0,9.0L52.0,9.0L56.0,9.0L60.0,8.9L64.0,8.9L68.0,8.8L72.0,8.7L76.0,8.6L80.0,8.6L84.0,8.5L88.0,8.4L92.0,8.3L96.0,8.3L100.0,8.2L104.0,8.2L108.0,8.1L112.0,8.1L116.0,8.1L120.0,8.1L124.0,8.2' stroke-width='0.78'/%3e%3cpath d='M-4.0,10.7L0.0,10.8L4.0,10.9L8.0,11.0L12.0,11.1L16.0,11.2L20.0,11.2L24.0,11.3L28.0,11.3L32.0,11.4L36.0,11.4L40.0,11.4L44.0,11.4L48.0,11.4L52.0,11.4L56.0,11.3L60.0,11.3L64.0,11.2L68.0,11.1L72.0,11.0L76.0,11.0L80.0,10.9L84.0,10.8L88.0,10.7L92.0,10.6L96.0,10.6L100.0,10.5L104.0,10.5L108.0,10.5L112.0,10.5L116.0,10.5L120.0,10.6L124.0,10.6' stroke-width='0.78'/%3e%3cpath d='M-4.0,13.2L0.0,13.3L4.0,13.4L8.0,13.5L12.0,13.6L16.0,13.6L20.0,13.7L24.0,13.7L28.0,13.8L32.0,13.8L36.0,13.8L40.0,13.8L44.0,13.8L48.0,13.8L52.0,13.7L56.0,13.6L60.0,13.6L64.0,13.5L68.0,13.4L72.0,13.3L76.0,13.3L80.0,13.2L84.0,13.1L88.0,13.0L92.0,13.0L96.0,12.9L100.0,12.9L104.0,12.9L108.0,12.9L112.0,12.9L116.0,12.9L120.0,13.0L124.0,13.1' stroke-width='0.67'/%3e%3cpath d='M-4.0,15.7L0.0,15.8L4.0,15.9L8.0,16.0L12.0,16.0L16.0,16.1L20.0,16.1L24.0,16.2L28.0,16.2L32.0,16.2L36.0,16.2L40.0,16.2L44.0,16.2L48.0,16.1L52.0,16.0L56.0,16.0L60.0,15.9L64.0,15.8L68.0,15.7L72.0,15.6L76.0,15.6L80.0,15.5L84.0,15.4L88.0,15.4L92.0,15.3L96.0,15.3L100.0,15.3L104.0,15.3L108.0,15.3L112.0,15.3L116.0,15.4L120.0,15.4L124.0,15.5' stroke-width='0.79'/%3e%3cpath d='M-4.0,18.2L0.0,18.3L4.0,18.4L8.0,18.4L12.0,18.5L16.0,18.6L20.0,18.6L24.0,18.6L28.0,18.6L32.0,18.6L36.0,18.6L40.0,18.5L44.0,18.5L48.0,18.4L52.0,18.4L56.0,18.3L60.0,18.2L64.0,18.1L68.0,18.0L72.0,18.0L76.0,17.9L80.0,17.8L84.0,17.7L88.0,17.7L92.0,17.7L96.0,17.6L100.0,17.6L104.0,17.7L108.0,17.7L112.0,17.8L116.0,17.8L120.0,17.9L124.0,18.0' stroke-width='0.61'/%3e%3cpath d='M-4.0,20.7L0.0,20.8L4.0,20.9L8.0,20.9L12.0,21.0L16.0,21.0L20.0,21.0L24.0,21.0L28.0,21.0L32.0,21.0L36.0,20.9L40.0,20.9L44.0,20.8L48.0,20.8L52.0,20.7L56.0,20.6L60.0,20.5L64.0,20.4L68.0,20.3L72.0,20.3L76.0,20.2L80.0,20.1L84.0,20.1L88.0,20.0L92.0,20.0L96.0,20.0L100.0,20.0L104.0,20.1L108.0,20.1L112.0,20.2L116.0,20.3L120.0,20.4L124.0,20.5' stroke-width='0.60'/%3e%3cpath d='M-4.0,23.2L0.0,23.3L4.0,23.3L8.0,23.4L12.0,23.4L16.0,23.4L20.0,23.4L24.0,23.4L28.0,23.4L32.0,23.3L36.0,23.3L40.0,23.2L44.0,23.2L48.0,23.1L52.0,23.0L56.0,22.9L60.0,22.8L64.0,22.7L68.0,22.7L72.0,22.6L76.0,22.5L80.0,22.5L84.0,22.4L88.0,22.4L92.0,22.4L96.0,22.4L100.0,22.5L104.0,22.5L108.0,22.6L112.0,22.7L116.0,22.8L120.0,22.9L124.0,23.0' stroke-width='0.80'/%3e%3cpath d='M-4.0,25.7L0.0,25.7L4.0,25.8L8.0,25.8L12.0,25.8L16.0,25.8L20.0,25.8L24.0,25.8L28.0,25.7L32.0,25.7L36.0,25.6L40.0,25.6L44.0,25.5L48.0,25.4L52.0,25.3L56.0,25.2L60.0,25.1L64.0,25.0L68.0,25.0L72.0,24.9L76.0,24.8L80.0,24.8L84.0,24.8L88.0,24.8L92.0,24.8L96.0,24.8L100.0,24.9L104.0,25.0L108.0,25.0L112.0,25.2L116.0,25.3L120.0,25.4L124.0,25.6' stroke-width='0.58'/%3e%3cpath d='M-4.0,28.1L0.0,28.2L4.0,28.2L8.0,28.2L12.0,28.2L16.0,28.2L20.0,28.2L24.0,28.1L28.0,28.1L32.0,28.0L36.0,28.0L40.0,27.9L44.0,27.8L48.0,27.7L52.0,27.6L56.0,27.5L60.0,27.4L64.0,27.4L68.0,27.3L72.0,27.2L76.0,27.2L80.0,27.2L84.0,27.2L88.0,27.2L92.0,27.2L96.0,27.3L100.0,27.3L104.0,27.4L108.0,27.5L112.0,27.7L116.0,27.8L120.0,27.9L124.0,28.1' stroke-width='0.70'/%3e%3cpath d='M-4.0,30.6L0.0,30.6L4.0,30.6L8.0,30.6L12.0,30.6L16.0,30.6L20.0,30.6L24.0,30.5L28.0,30.4L32.0,30.4L36.0,30.3L40.0,30.2L44.0,30.1L48.0,30.0L52.0,29.9L56.0,29.8L60.0,29.7L64.0,29.7L68.0,29.6L72.0,29.6L76.0,29.5L80.0,29.5L84.0,29.6L88.0,29.6L92.0,29.6L96.0,29.7L100.0,29.8L104.0,29.9L108.0,30.0L112.0,30.2L116.0,30.3L120.0,30.5L124.0,30.6' stroke-width='0.73'/%3e%3cpath d='M-4.0,33.0L0.0,33.0L4.0,33.0L8.0,33.0L12.0,33.0L16.0,33.0L20.0,32.9L24.0,32.8L28.0,32.8L32.0,32.7L36.0,32.6L40.0,32.5L44.0,32.4L48.0,32.3L52.0,32.2L56.0,32.1L60.0,32.1L64.0,32.0L68.0,32.0L72.0,31.9L76.0,31.9L80.0,31.9L84.0,32.0L88.0,32.0L92.0,32.1L96.0,32.2L100.0,32.3L104.0,32.4L108.0,32.5L112.0,32.7L116.0,32.8L120.0,33.0L124.0,33.2' stroke-width='0.70'/%3e%3cpath d='M-4.0,35.4L0.0,35.4L4.0,35.4L8.0,35.4L12.0,35.4L16.0,35.3L20.0,35.2L24.0,35.2L28.0,35.1L32.0,35.0L36.0,34.9L40.0,34.8L44.0,34.7L48.0,34.6L52.0,34.5L56.0,34.4L60.0,34.4L64.0,34.3L68.0,34.3L72.0,34.3L76.0,34.3L80.0,34.3L84.0,34.4L88.0,34.5L92.0,34.5L96.0,34.7L100.0,34.8L104.0,34.9L108.0,35.1L112.0,35.2L116.0,35.4L120.0,35.6L124.0,35.7' stroke-width='0.53'/%3e%3c/g%3e%3cg stroke='%233F8A70'%3e%3c/g%3e%3cg stroke='%2347957A'%3e%3cpath d='M-4.0,26.5L0.0,26.6L4.0,26.6L8.0,26.6L12.0,26.6L16.0,26.6L20.0,26.6L24.0,26.6L28.0,26.6L32.0,26.5L36.0,26.4L40.0,26.4L44.0,26.3L48.0,26.2L52.0,26.1L56.0,26.0L60.0,25.9L64.0,25.8L68.0,25.8L72.0,25.7L76.0,25.6L80.0,25.6L84.0,25.6L88.0,25.6L92.0,25.6L96.0,25.7L100.0,25.7L104.0,25.8L108.0,25.9L112.0,26.0L116.0,26.1L120.0,26.3L124.0,26.4' stroke-width='0.76'/%3e%3cpath d='M-4.0,31.6L0.0,31.6L4.0,31.7L8.0,31.7L12.0,31.6L16.0,31.6L20.0,31.6L24.0,31.5L28.0,31.4L32.0,31.3L36.0,31.3L40.0,31.2L44.0,31.1L48.0,31.0L52.0,30.9L56.0,30.8L60.0,30.7L64.0,30.7L68.0,30.6L72.0,30.6L76.0,30.6L80.0,30.6L84.0,30.6L88.0,30.6L92.0,30.7L96.0,30.8L100.0,30.9L104.0,31.0L108.0,31.1L112.0,31.2L116.0,31.4L120.0,31.6L124.0,31.7' stroke-width='0.87'/%3e%3cpath d='M-4.0,34.0L0.0,34.0L4.0,34.0L8.0,34.0L12.0,33.9L16.0,33.9L20.0,33.8L24.0,33.7L28.0,33.7L32.0,33.6L36.0,33.5L40.0,33.4L44.0,33.3L48.0,33.2L52.0,33.1L56.0,33.0L60.0,33.0L64.0,32.9L68.0,32.9L72.0,32.9L76.0,32.8L80.0,32.9L84.0,32.9L88.0,33.0L92.0,33.0L96.0,33.1L100.0,33.2L104.0,33.4L108.0,33.5L112.0,33.7L116.0,33.8L120.0,34.0L124.0,34.2' stroke-width='0.86'/%3e%3cpath d='M-4.0,36.4L0.0,36.4L4.0,36.3L8.0,36.3L12.0,36.3L16.0,36.2L20.0,36.1L24.0,36.0L28.0,36.0L32.0,35.9L36.0,35.8L40.0,35.7L44.0,35.6L48.0,35.5L52.0,35.4L56.0,35.3L60.0,35.3L64.0,35.2L68.0,35.2L72.0,35.2L76.0,35.2L80.0,35.3L84.0,35.3L88.0,35.4L92.0,35.5L96.0,35.6L100.0,35.7L104.0,35.9L108.0,36.0L112.0,36.2L116.0,36.4L120.0,36.5L124.0,36.7' stroke-width='0.86'/%3e%3c/g%3e%3cg stroke='%234FA184'%3e%3cpath d='M-4.0,16.4L0.0,16.5L4.0,16.5L8.0,16.6L12.0,16.7L16.0,16.7L20.0,16.8L24.0,16.8L28.0,16.8L32.0,16.8L36.0,16.8L40.0,16.8L44.0,16.8L48.0,16.7L52.0,16.6L56.0,16.6L60.0,16.5L64.0,16.4L68.0,16.3L72.0,16.2L76.0,16.2L80.0,16.1L84.0,16.0L88.0,16.0L92.0,15.9L96.0,15.9L100.0,15.9L104.0,15.9L108.0,15.9L112.0,15.9L116.0,16.0L120.0,16.1L124.0,16.2' stroke-width='0.62'/%3e%3cpath d='M-4.0,17.7L0.0,17.8L4.0,17.8L8.0,17.9L12.0,18.0L16.0,18.0L20.0,18.1L24.0,18.1L28.0,18.1L32.0,18.1L36.0,18.1L40.0,18.0L44.0,18.0L48.0,17.9L52.0,17.9L56.0,17.8L60.0,17.7L64.0,17.6L68.0,17.5L72.0,17.5L76.0,17.4L80.0,17.3L84.0,17.2L88.0,17.2L92.0,17.1L96.0,17.1L100.0,17.1L104.0,17.1L108.0,17.2L112.0,17.2L116.0,17.3L120.0,17.4L124.0,17.5' stroke-width='0.66'/%3e%3cpath d='M-4.0,19.0L0.0,19.1L4.0,19.1L8.0,19.2L12.0,19.3L16.0,19.3L20.0,19.3L24.0,19.3L28.0,19.4L32.0,19.3L36.0,19.3L40.0,19.3L44.0,19.2L48.0,19.2L52.0,19.1L56.0,19.0L60.0,18.9L64.0,18.8L68.0,18.7L72.0,18.7L76.0,18.6L80.0,18.5L84.0,18.5L88.0,18.4L92.0,18.4L96.0,18.4L100.0,18.4L104.0,18.4L108.0,18.4L112.0,18.5L116.0,18.6L120.0,18.7L124.0,18.8' stroke-width='0.79'/%3e%3cpath d='M-4.0,22.8L0.0,22.8L4.0,22.9L8.0,22.9L12.0,23.0L16.0,23.0L20.0,23.0L24.0,23.0L28.0,23.0L32.0,22.9L36.0,22.9L40.0,22.8L44.0,22.8L48.0,22.7L52.0,22.6L56.0,22.5L60.0,22.4L64.0,22.3L68.0,22.3L72.0,22.2L76.0,22.1L80.0,22.1L84.0,22.0L88.0,22.0L92.0,22.0L96.0,22.0L100.0,22.0L104.0,22.1L108.0,22.2L112.0,22.2L116.0,22.3L120.0,22.5L124.0,22.6' stroke-width='1.18'/%3e%3cpath d='M-4.0,23.9L0.0,23.9L4.0,24.0L8.0,24.0L12.0,24.1L16.0,24.1L20.0,24.1L24.0,24.1L28.0,24.0L32.0,24.0L36.0,23.9L40.0,23.9L44.0,23.8L48.0,23.7L52.0,23.6L56.0,23.6L60.0,23.5L64.0,23.4L68.0,23.3L72.0,23.2L76.0,23.2L80.0,23.1L84.0,23.1L88.0,23.1L92.0,23.1L96.0,23.1L100.0,23.1L104.0,23.2L108.0,23.3L112.0,23.4L116.0,23.5L120.0,23.6L124.0,23.7' stroke-width='0.84'/%3e%3cpath d='M-4.0,27.9L0.0,27.9L4.0,28.0L8.0,28.0L12.0,28.0L16.0,28.0L20.0,28.0L24.0,27.9L28.0,27.9L32.0,27.8L36.0,27.7L40.0,27.6L44.0,27.6L48.0,27.5L52.0,27.4L56.0,27.3L60.0,27.2L64.0,27.1L68.0,27.1L72.0,27.0L76.0,27.0L80.0,26.9L84.0,26.9L88.0,26.9L92.0,27.0L96.0,27.0L100.0,27.1L104.0,27.2L108.0,27.3L112.0,27.4L116.0,27.5L120.0,27.7L124.0,27.8' stroke-width='1.31'/%3e%3cpath d='M-4.0,29.2L0.0,29.2L4.0,29.2L8.0,29.2L12.0,29.2L16.0,29.2L20.0,29.2L24.0,29.1L28.0,29.1L32.0,29.0L36.0,28.9L40.0,28.8L44.0,28.7L48.0,28.7L52.0,28.6L56.0,28.5L60.0,28.4L64.0,28.3L68.0,28.3L72.0,28.2L76.0,28.2L80.0,28.2L84.0,28.2L88.0,28.2L92.0,28.2L96.0,28.3L100.0,28.4L104.0,28.5L108.0,28.6L112.0,28.7L116.0,28.8L120.0,29.0L124.0,29.1' stroke-width='1.29'/%3e%3cpath d='M-4.0,30.5L0.0,30.5L4.0,30.5L8.0,30.5L12.0,30.5L16.0,30.5L20.0,30.5L24.0,30.4L28.0,30.3L32.0,30.3L36.0,30.2L40.0,30.1L44.0,30.0L48.0,29.9L52.0,29.8L56.0,29.7L60.0,29.7L64.0,29.6L68.0,29.5L72.0,29.5L76.0,29.5L80.0,29.5L84.0,29.5L88.0,29.5L92.0,29.5L96.0,29.6L100.0,29.7L104.0,29.8L108.0,29.9L112.0,30.1L116.0,30.2L120.0,30.4L124.0,30.5' stroke-width='0.89'/%3e%3cpath d='M-4.0,32.7L0.0,32.7L4.0,32.7L8.0,32.7L12.0,32.7L16.0,32.7L20.0,32.6L24.0,32.6L28.0,32.5L32.0,32.4L36.0,32.3L40.0,32.2L44.0,32.1L48.0,32.0L52.0,31.9L56.0,31.9L60.0,31.8L64.0,31.7L68.0,31.7L72.0,31.6L76.0,31.6L80.0,31.6L84.0,31.7L88.0,31.7L92.0,31.8L96.0,31.9L100.0,32.0L104.0,32.1L108.0,32.2L112.0,32.4L116.0,32.5L120.0,32.7L124.0,32.9' stroke-width='0.66'/%3e%3cpath d='M-4.0,35.2L0.0,35.2L4.0,35.2L8.0,35.1L12.0,35.1L16.0,35.0L20.0,35.0L24.0,34.9L28.0,34.8L32.0,34.7L36.0,34.6L40.0,34.5L44.0,34.4L48.0,34.3L52.0,34.3L56.0,34.2L60.0,34.1L64.0,34.1L68.0,34.0L72.0,34.0L76.0,34.0L80.0,34.1L84.0,34.1L88.0,34.2L92.0,34.3L96.0,34.4L100.0,34.5L104.0,34.6L108.0,34.8L112.0,34.9L116.0,35.1L120.0,35.3L124.0,35.4' stroke-width='0.70'/%3e%3c/g%3e%3cg stroke='%2356A98B'%3e%3cpath d='M-4.0,2.2L0.0,2.3L4.0,2.3L8.0,2.4L12.0,2.5L16.0,2.6L20.0,2.7L24.0,2.8L28.0,2.8L32.0,2.9L36.0,3.0L40.0,3.0L44.0,3.1L48.0,3.1L52.0,3.1L56.0,3.1L60.0,3.1L64.0,3.1L68.0,3.1L72.0,3.0L76.0,3.0L80.0,2.9L84.0,2.8L88.0,2.7L92.0,2.7L96.0,2.6L100.0,2.5L104.0,2.4L108.0,2.4L112.0,2.3L116.0,2.3L120.0,2.3L124.0,2.3' stroke-width='0.91'/%3e%3cpath d='M-4.0,9.8L0.0,9.8L4.0,9.9L8.0,10.0L12.0,10.1L16.0,10.2L20.0,10.3L24.0,10.3L28.0,10.4L32.0,10.4L36.0,10.5L40.0,10.5L44.0,10.5L48.0,10.5L52.0,10.4L56.0,10.4L60.0,10.3L64.0,10.3L68.0,10.2L72.0,10.1L76.0,10.0L80.0,10.0L84.0,9.9L88.0,9.8L92.0,9.7L96.0,9.7L100.0,9.6L104.0,9.6L108.0,9.6L112.0,9.6L116.0,9.6L120.0,9.6L124.0,9.7' stroke-width='1.37'/%3e%3cpath d='M-4.0,13.8L0.0,13.9L4.0,13.9L8.0,14.0L12.0,14.1L16.0,14.2L20.0,14.2L24.0,14.3L28.0,14.3L32.0,14.3L36.0,14.3L40.0,14.3L44.0,14.3L48.0,14.3L52.0,14.2L56.0,14.2L60.0,14.1L64.0,14.0L68.0,13.9L72.0,13.8L76.0,13.8L80.0,13.7L84.0,13.6L88.0,13.5L92.0,13.5L96.0,13.4L100.0,13.4L104.0,13.4L108.0,13.4L112.0,13.4L116.0,13.5L120.0,13.5L124.0,13.6' stroke-width='0.73'/%3e%3cpath d='M-4.0,15.1L0.0,15.2L4.0,15.3L8.0,15.4L12.0,15.5L16.0,15.5L20.0,15.6L24.0,15.6L28.0,15.6L32.0,15.6L36.0,15.6L40.0,15.6L44.0,15.6L48.0,15.6L52.0,15.5L56.0,15.4L60.0,15.4L64.0,15.3L68.0,15.2L72.0,15.1L76.0,15.0L80.0,14.9L84.0,14.9L88.0,14.8L92.0,14.8L96.0,14.7L100.0,14.7L104.0,14.7L108.0,14.7L112.0,14.7L116.0,14.8L120.0,14.9L124.0,15.0' stroke-width='0.85'/%3e%3cpath d='M-4.0,20.3L0.0,20.4L4.0,20.5L8.0,20.5L12.0,20.6L16.0,20.6L20.0,20.7L24.0,20.7L28.0,20.7L32.0,20.6L36.0,20.6L40.0,20.5L44.0,20.5L48.0,20.4L52.0,20.3L56.0,20.3L60.0,20.2L64.0,20.1L68.0,20.0L72.0,19.9L76.0,19.8L80.0,19.8L84.0,19.7L88.0,19.7L92.0,19.7L96.0,19.7L100.0,19.7L104.0,19.7L108.0,19.8L112.0,19.8L116.0,19.9L120.0,20.0L124.0,20.1' stroke-width='1.00'/%3e%3cpath d='M-4.0,21.5L0.0,21.6L4.0,21.7L8.0,21.7L12.0,21.8L16.0,21.8L20.0,21.8L24.0,21.8L28.0,21.8L32.0,21.8L36.0,21.7L40.0,21.7L44.0,21.6L48.0,21.5L52.0,21.5L56.0,21.4L60.0,21.3L64.0,21.2L68.0,21.1L72.0,21.0L76.0,21.0L80.0,20.9L84.0,20.9L88.0,20.8L92.0,20.8L96.0,20.8L100.0,20.8L104.0,20.9L108.0,20.9L112.0,21.0L116.0,21.1L120.0,21.2L124.0,21.4' stroke-width='1.29'/%3e%3cpath d='M-4.0,25.2L0.0,25.3L4.0,25.3L8.0,25.4L12.0,25.4L16.0,25.4L20.0,25.4L24.0,25.4L28.0,25.3L32.0,25.3L36.0,25.2L40.0,25.1L44.0,25.1L48.0,25.0L52.0,24.9L56.0,24.8L60.0,24.7L64.0,24.6L68.0,24.6L72.0,24.5L76.0,24.4L80.0,24.4L84.0,24.4L88.0,24.4L92.0,24.4L96.0,24.4L100.0,24.4L104.0,24.5L108.0,24.6L112.0,24.7L116.0,24.8L120.0,25.0L124.0,25.1' stroke-width='0.62'/%3e%3c/g%3e%3cg stroke='%235EB193'%3e%3cpath d='M-4.0,-0.1L0.0,-0.1L4.0,-0.0L8.0,0.0L12.0,0.1L16.0,0.2L20.0,0.2L24.0,0.3L28.0,0.4L32.0,0.5L36.0,0.6L40.0,0.7L44.0,0.7L48.0,0.8L52.0,0.8L56.0,0.8L60.0,0.8L64.0,0.8L68.0,0.8L72.0,0.8L76.0,0.7L80.0,0.6L84.0,0.6L88.0,0.5L92.0,0.4L96.0,0.4L100.0,0.3L104.0,0.2L108.0,0.1L112.0,0.1L116.0,0.0L120.0,0.0L124.0,0.0' stroke-width='0.94'/%3e%3cpath d='M-4.0,1.0L0.0,1.1L4.0,1.1L8.0,1.2L12.0,1.3L16.0,1.4L20.0,1.5L24.0,1.6L28.0,1.7L32.0,1.7L36.0,1.8L40.0,1.9L44.0,1.9L48.0,2.0L52.0,2.0L56.0,2.0L60.0,2.0L64.0,2.0L68.0,2.0L72.0,1.9L76.0,1.9L80.0,1.8L84.0,1.7L88.0,1.7L92.0,1.6L96.0,1.5L100.0,1.4L104.0,1.4L108.0,1.3L112.0,1.2L116.0,1.2L120.0,1.2L124.0,1.2' stroke-width='1.31'/%3e%3cpath d='M-4.0,3.5L0.0,3.6L4.0,3.7L8.0,3.8L12.0,3.9L16.0,3.9L20.0,4.0L24.0,4.1L28.0,4.2L32.0,4.3L36.0,4.3L40.0,4.4L44.0,4.4L48.0,4.5L52.0,4.5L56.0,4.5L60.0,4.4L64.0,4.4L68.0,4.4L72.0,4.3L76.0,4.2L80.0,4.2L84.0,4.1L88.0,4.0L92.0,3.9L96.0,3.9L100.0,3.8L104.0,3.7L108.0,3.7L112.0,3.6L116.0,3.6L120.0,3.6L124.0,3.6' stroke-width='0.90'/%3e%3cpath d='M-4.0,4.7L0.0,4.8L4.0,4.9L8.0,5.0L12.0,5.1L16.0,5.1L20.0,5.2L24.0,5.3L28.0,5.4L32.0,5.5L36.0,5.5L40.0,5.6L44.0,5.6L48.0,5.6L52.0,5.6L56.0,5.6L60.0,5.6L64.0,5.5L68.0,5.5L72.0,5.4L76.0,5.4L80.0,5.3L84.0,5.2L88.0,5.1L92.0,5.0L96.0,5.0L100.0,4.9L104.0,4.8L108.0,4.8L112.0,4.8L116.0,4.7L120.0,4.7L124.0,4.7' stroke-width='1.03'/%3e%3cpath d='M-4.0,6.1L0.0,6.1L4.0,6.2L8.0,6.3L12.0,6.4L16.0,6.5L20.0,6.6L24.0,6.7L28.0,6.7L32.0,6.8L36.0,6.8L40.0,6.9L44.0,6.9L48.0,6.9L52.0,6.9L56.0,6.9L60.0,6.8L64.0,6.8L68.0,6.7L72.0,6.7L76.0,6.6L80.0,6.5L84.0,6.4L88.0,6.4L92.0,6.3L96.0,6.2L100.0,6.2L104.0,6.1L108.0,6.1L112.0,6.0L116.0,6.0L120.0,6.0L124.0,6.1' stroke-width='1.00'/%3e%3cpath d='M-4.0,7.3L0.0,7.3L4.0,7.4L8.0,7.5L12.0,7.6L16.0,7.7L20.0,7.8L24.0,7.8L28.0,7.9L32.0,8.0L36.0,8.0L40.0,8.0L44.0,8.0L48.0,8.0L52.0,8.0L56.0,8.0L60.0,8.0L64.0,7.9L68.0,7.9L72.0,7.8L76.0,7.7L80.0,7.6L84.0,7.5L88.0,7.5L92.0,7.4L96.0,7.3L100.0,7.3L104.0,7.2L108.0,7.2L112.0,7.2L116.0,7.2L120.0,7.2L124.0,7.2' stroke-width='1.05'/%3e%3cpath d='M-4.0,8.5L0.0,8.5L4.0,8.6L8.0,8.7L12.0,8.8L16.0,8.9L20.0,8.9L24.0,9.0L28.0,9.1L32.0,9.1L36.0,9.2L40.0,9.2L44.0,9.2L48.0,9.2L52.0,9.2L56.0,9.1L60.0,9.1L64.0,9.0L68.0,9.0L72.0,8.9L76.0,8.8L80.0,8.7L84.0,8.7L88.0,8.6L92.0,8.5L96.0,8.4L100.0,8.4L104.0,8.3L108.0,8.3L112.0,8.3L116.0,8.3L120.0,8.3L124.0,8.4' stroke-width='0.79'/%3e%3cpath d='M-4.0,11.0L0.0,11.1L4.0,11.2L8.0,11.2L12.0,11.3L16.0,11.4L20.0,11.5L24.0,11.5L28.0,11.6L32.0,11.6L36.0,11.6L40.0,11.6L44.0,11.6L48.0,11.6L52.0,11.6L56.0,11.5L60.0,11.5L64.0,11.4L68.0,11.3L72.0,11.3L76.0,11.2L80.0,11.1L84.0,11.0L88.0,10.9L92.0,10.9L96.0,10.8L100.0,10.8L104.0,10.7L108.0,10.7L112.0,10.7L116.0,10.8L120.0,10.8L124.0,10.9' stroke-width='1.36'/%3e%3cpath d='M-4.0,12.4L0.0,12.5L4.0,12.6L8.0,12.6L12.0,12.7L16.0,12.8L20.0,12.9L24.0,12.9L28.0,12.9L32.0,13.0L36.0,13.0L40.0,13.0L44.0,13.0L48.0,12.9L52.0,12.9L56.0,12.8L60.0,12.8L64.0,12.7L68.0,12.6L72.0,12.6L76.0,12.5L80.0,12.4L84.0,12.3L88.0,12.2L92.0,12.2L96.0,12.1L100.0,12.1L104.0,12.1L108.0,12.1L112.0,12.1L116.0,12.1L120.0,12.2L124.0,12.2' stroke-width='0.73'/%3e%3c/g%3e%3cg stroke='%238FD2B4' opacity='.45'%3e%3cpath d='M-4.0,15.8L0.0,15.9L4.0,15.9L8.0,16.0L12.0,16.1L16.0,16.1L20.0,16.2L24.0,16.2L28.0,16.2L32.0,16.2L36.0,16.2L40.0,16.2L44.0,16.2L48.0,16.1L52.0,16.1L56.0,16.0L60.0,15.9L64.0,15.9L68.0,15.8L72.0,15.7L76.0,15.6L80.0,15.5L84.0,15.5L88.0,15.4L92.0,15.3L96.0,15.3L100.0,15.3L104.0,15.3L108.0,15.3L112.0,15.4L116.0,15.4L120.0,15.5L124.0,15.6' stroke-width='0.69'/%3e%3cpath d='M-4.0,14.5L0.0,14.6L4.0,14.7L8.0,14.8L12.0,14.8L16.0,14.9L20.0,15.0L24.0,15.0L28.0,15.0L32.0,15.0L36.0,15.0L40.0,15.0L44.0,15.0L48.0,15.0L52.0,14.9L56.0,14.8L60.0,14.8L64.0,14.7L68.0,14.6L72.0,14.5L76.0,14.4L80.0,14.4L84.0,14.3L88.0,14.2L92.0,14.2L96.0,14.1L100.0,14.1L104.0,14.1L108.0,14.1L112.0,14.1L116.0,14.2L120.0,14.3L124.0,14.3' stroke-width='0.60'/%3e%3cpath d='M-4.0,15.4L0.0,15.5L4.0,15.5L8.0,15.6L12.0,15.7L16.0,15.7L20.0,15.8L24.0,15.8L28.0,15.9L32.0,15.9L36.0,15.9L40.0,15.8L44.0,15.8L48.0,15.8L52.0,15.7L56.0,15.6L60.0,15.6L64.0,15.5L68.0,15.4L72.0,15.3L76.0,15.2L80.0,15.1L84.0,15.1L88.0,15.0L92.0,15.0L96.0,14.9L100.0,14.9L104.0,14.9L108.0,14.9L112.0,15.0L116.0,15.0L120.0,15.1L124.0,15.2' stroke-width='0.47'/%3e%3cpath d='M-4.0,11.3L0.0,11.4L4.0,11.5L8.0,11.6L12.0,11.7L16.0,11.7L20.0,11.8L24.0,11.9L28.0,11.9L32.0,11.9L36.0,12.0L40.0,12.0L44.0,12.0L48.0,11.9L52.0,11.9L56.0,11.9L60.0,11.8L64.0,11.7L68.0,11.6L72.0,11.6L76.0,11.5L80.0,11.4L84.0,11.3L88.0,11.3L92.0,11.2L96.0,11.1L100.0,11.1L104.0,11.1L108.0,11.1L112.0,11.1L116.0,11.1L120.0,11.1L124.0,11.2' stroke-width='0.45'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");
132
+ --ak-weave-secondary-dark: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 36' preserveAspectRatio='none'%3e%3crect width='120' height='36' fill='%230E0C09'/%3e%3cg fill='none' stroke-linecap='round'%3e%3cg stroke='%2315120E' opacity='.5'%3e%3cpath d='M-4.0,0.8L0.0,0.9L4.0,1.0L8.0,1.0L12.0,1.1L16.0,1.2L20.0,1.3L24.0,1.4L28.0,1.5L32.0,1.5L36.0,1.6L40.0,1.7L44.0,1.7L48.0,1.8L52.0,1.8L56.0,1.8L60.0,1.8L64.0,1.8L68.0,1.8L72.0,1.7L76.0,1.7L80.0,1.6L84.0,1.5L88.0,1.5L92.0,1.4L96.0,1.3L100.0,1.2L104.0,1.2L108.0,1.1L112.0,1.1L116.0,1.0L120.0,1.0L124.0,1.0' stroke-width='0.78'/%3e%3cpath d='M-4.0,3.3L0.0,3.4L4.0,3.4L8.0,3.5L12.0,3.6L16.0,3.7L20.0,3.8L24.0,3.9L28.0,4.0L32.0,4.0L36.0,4.1L40.0,4.1L44.0,4.2L48.0,4.2L52.0,4.2L56.0,4.2L60.0,4.2L64.0,4.2L68.0,4.1L72.0,4.1L76.0,4.0L80.0,3.9L84.0,3.9L88.0,3.8L92.0,3.7L96.0,3.6L100.0,3.6L104.0,3.5L108.0,3.4L112.0,3.4L116.0,3.4L120.0,3.4L124.0,3.4' stroke-width='0.59'/%3e%3cpath d='M-4.0,5.8L0.0,5.8L4.0,5.9L8.0,6.0L12.0,6.1L16.0,6.2L20.0,6.3L24.0,6.4L28.0,6.4L32.0,6.5L36.0,6.5L40.0,6.6L44.0,6.6L48.0,6.6L52.0,6.6L56.0,6.6L60.0,6.6L64.0,6.5L68.0,6.5L72.0,6.4L76.0,6.3L80.0,6.3L84.0,6.2L88.0,6.1L92.0,6.0L96.0,5.9L100.0,5.9L104.0,5.8L108.0,5.8L112.0,5.7L116.0,5.7L120.0,5.7L124.0,5.8' stroke-width='0.55'/%3e%3cpath d='M-4.0,8.3L0.0,8.3L4.0,8.4L8.0,8.5L12.0,8.6L16.0,8.7L20.0,8.8L24.0,8.8L28.0,8.9L32.0,8.9L36.0,9.0L40.0,9.0L44.0,9.0L48.0,9.0L52.0,9.0L56.0,9.0L60.0,8.9L64.0,8.9L68.0,8.8L72.0,8.7L76.0,8.6L80.0,8.6L84.0,8.5L88.0,8.4L92.0,8.3L96.0,8.3L100.0,8.2L104.0,8.2L108.0,8.1L112.0,8.1L116.0,8.1L120.0,8.1L124.0,8.2' stroke-width='0.78'/%3e%3cpath d='M-4.0,10.7L0.0,10.8L4.0,10.9L8.0,11.0L12.0,11.1L16.0,11.2L20.0,11.2L24.0,11.3L28.0,11.3L32.0,11.4L36.0,11.4L40.0,11.4L44.0,11.4L48.0,11.4L52.0,11.4L56.0,11.3L60.0,11.3L64.0,11.2L68.0,11.1L72.0,11.0L76.0,11.0L80.0,10.9L84.0,10.8L88.0,10.7L92.0,10.6L96.0,10.6L100.0,10.5L104.0,10.5L108.0,10.5L112.0,10.5L116.0,10.5L120.0,10.6L124.0,10.6' stroke-width='0.78'/%3e%3cpath d='M-4.0,13.2L0.0,13.3L4.0,13.4L8.0,13.5L12.0,13.6L16.0,13.6L20.0,13.7L24.0,13.7L28.0,13.8L32.0,13.8L36.0,13.8L40.0,13.8L44.0,13.8L48.0,13.8L52.0,13.7L56.0,13.6L60.0,13.6L64.0,13.5L68.0,13.4L72.0,13.3L76.0,13.3L80.0,13.2L84.0,13.1L88.0,13.0L92.0,13.0L96.0,12.9L100.0,12.9L104.0,12.9L108.0,12.9L112.0,12.9L116.0,12.9L120.0,13.0L124.0,13.1' stroke-width='0.67'/%3e%3cpath d='M-4.0,15.7L0.0,15.8L4.0,15.9L8.0,16.0L12.0,16.0L16.0,16.1L20.0,16.1L24.0,16.2L28.0,16.2L32.0,16.2L36.0,16.2L40.0,16.2L44.0,16.2L48.0,16.1L52.0,16.0L56.0,16.0L60.0,15.9L64.0,15.8L68.0,15.7L72.0,15.6L76.0,15.6L80.0,15.5L84.0,15.4L88.0,15.4L92.0,15.3L96.0,15.3L100.0,15.3L104.0,15.3L108.0,15.3L112.0,15.3L116.0,15.4L120.0,15.4L124.0,15.5' stroke-width='0.79'/%3e%3cpath d='M-4.0,18.2L0.0,18.3L4.0,18.4L8.0,18.4L12.0,18.5L16.0,18.6L20.0,18.6L24.0,18.6L28.0,18.6L32.0,18.6L36.0,18.6L40.0,18.5L44.0,18.5L48.0,18.4L52.0,18.4L56.0,18.3L60.0,18.2L64.0,18.1L68.0,18.0L72.0,18.0L76.0,17.9L80.0,17.8L84.0,17.7L88.0,17.7L92.0,17.7L96.0,17.6L100.0,17.6L104.0,17.7L108.0,17.7L112.0,17.8L116.0,17.8L120.0,17.9L124.0,18.0' stroke-width='0.61'/%3e%3cpath d='M-4.0,20.7L0.0,20.8L4.0,20.9L8.0,20.9L12.0,21.0L16.0,21.0L20.0,21.0L24.0,21.0L28.0,21.0L32.0,21.0L36.0,20.9L40.0,20.9L44.0,20.8L48.0,20.8L52.0,20.7L56.0,20.6L60.0,20.5L64.0,20.4L68.0,20.3L72.0,20.3L76.0,20.2L80.0,20.1L84.0,20.1L88.0,20.0L92.0,20.0L96.0,20.0L100.0,20.0L104.0,20.1L108.0,20.1L112.0,20.2L116.0,20.3L120.0,20.4L124.0,20.5' stroke-width='0.60'/%3e%3cpath d='M-4.0,23.2L0.0,23.3L4.0,23.3L8.0,23.4L12.0,23.4L16.0,23.4L20.0,23.4L24.0,23.4L28.0,23.4L32.0,23.3L36.0,23.3L40.0,23.2L44.0,23.2L48.0,23.1L52.0,23.0L56.0,22.9L60.0,22.8L64.0,22.7L68.0,22.7L72.0,22.6L76.0,22.5L80.0,22.5L84.0,22.4L88.0,22.4L92.0,22.4L96.0,22.4L100.0,22.5L104.0,22.5L108.0,22.6L112.0,22.7L116.0,22.8L120.0,22.9L124.0,23.0' stroke-width='0.80'/%3e%3cpath d='M-4.0,25.7L0.0,25.7L4.0,25.8L8.0,25.8L12.0,25.8L16.0,25.8L20.0,25.8L24.0,25.8L28.0,25.7L32.0,25.7L36.0,25.6L40.0,25.6L44.0,25.5L48.0,25.4L52.0,25.3L56.0,25.2L60.0,25.1L64.0,25.0L68.0,25.0L72.0,24.9L76.0,24.8L80.0,24.8L84.0,24.8L88.0,24.8L92.0,24.8L96.0,24.8L100.0,24.9L104.0,25.0L108.0,25.0L112.0,25.2L116.0,25.3L120.0,25.4L124.0,25.6' stroke-width='0.58'/%3e%3cpath d='M-4.0,28.1L0.0,28.2L4.0,28.2L8.0,28.2L12.0,28.2L16.0,28.2L20.0,28.2L24.0,28.1L28.0,28.1L32.0,28.0L36.0,28.0L40.0,27.9L44.0,27.8L48.0,27.7L52.0,27.6L56.0,27.5L60.0,27.4L64.0,27.4L68.0,27.3L72.0,27.2L76.0,27.2L80.0,27.2L84.0,27.2L88.0,27.2L92.0,27.2L96.0,27.3L100.0,27.3L104.0,27.4L108.0,27.5L112.0,27.7L116.0,27.8L120.0,27.9L124.0,28.1' stroke-width='0.70'/%3e%3cpath d='M-4.0,30.6L0.0,30.6L4.0,30.6L8.0,30.6L12.0,30.6L16.0,30.6L20.0,30.6L24.0,30.5L28.0,30.4L32.0,30.4L36.0,30.3L40.0,30.2L44.0,30.1L48.0,30.0L52.0,29.9L56.0,29.8L60.0,29.7L64.0,29.7L68.0,29.6L72.0,29.6L76.0,29.5L80.0,29.5L84.0,29.6L88.0,29.6L92.0,29.6L96.0,29.7L100.0,29.8L104.0,29.9L108.0,30.0L112.0,30.2L116.0,30.3L120.0,30.5L124.0,30.6' stroke-width='0.73'/%3e%3cpath d='M-4.0,33.0L0.0,33.0L4.0,33.0L8.0,33.0L12.0,33.0L16.0,33.0L20.0,32.9L24.0,32.8L28.0,32.8L32.0,32.7L36.0,32.6L40.0,32.5L44.0,32.4L48.0,32.3L52.0,32.2L56.0,32.1L60.0,32.1L64.0,32.0L68.0,32.0L72.0,31.9L76.0,31.9L80.0,31.9L84.0,32.0L88.0,32.0L92.0,32.1L96.0,32.2L100.0,32.3L104.0,32.4L108.0,32.5L112.0,32.7L116.0,32.8L120.0,33.0L124.0,33.2' stroke-width='0.70'/%3e%3cpath d='M-4.0,35.4L0.0,35.4L4.0,35.4L8.0,35.4L12.0,35.4L16.0,35.3L20.0,35.2L24.0,35.2L28.0,35.1L32.0,35.0L36.0,34.9L40.0,34.8L44.0,34.7L48.0,34.6L52.0,34.5L56.0,34.4L60.0,34.4L64.0,34.3L68.0,34.3L72.0,34.3L76.0,34.3L80.0,34.3L84.0,34.4L88.0,34.5L92.0,34.5L96.0,34.7L100.0,34.8L104.0,34.9L108.0,35.1L112.0,35.2L116.0,35.4L120.0,35.6L124.0,35.7' stroke-width='0.53'/%3e%3c/g%3e%3cg stroke='%232B2620'%3e%3c/g%3e%3cg stroke='%232F2A23'%3e%3cpath d='M-4.0,26.5L0.0,26.6L4.0,26.6L8.0,26.6L12.0,26.6L16.0,26.6L20.0,26.6L24.0,26.6L28.0,26.6L32.0,26.5L36.0,26.4L40.0,26.4L44.0,26.3L48.0,26.2L52.0,26.1L56.0,26.0L60.0,25.9L64.0,25.8L68.0,25.8L72.0,25.7L76.0,25.6L80.0,25.6L84.0,25.6L88.0,25.6L92.0,25.6L96.0,25.7L100.0,25.7L104.0,25.8L108.0,25.9L112.0,26.0L116.0,26.1L120.0,26.3L124.0,26.4' stroke-width='0.76'/%3e%3cpath d='M-4.0,31.6L0.0,31.6L4.0,31.7L8.0,31.7L12.0,31.6L16.0,31.6L20.0,31.6L24.0,31.5L28.0,31.4L32.0,31.3L36.0,31.3L40.0,31.2L44.0,31.1L48.0,31.0L52.0,30.9L56.0,30.8L60.0,30.7L64.0,30.7L68.0,30.6L72.0,30.6L76.0,30.6L80.0,30.6L84.0,30.6L88.0,30.6L92.0,30.7L96.0,30.8L100.0,30.9L104.0,31.0L108.0,31.1L112.0,31.2L116.0,31.4L120.0,31.6L124.0,31.7' stroke-width='0.87'/%3e%3cpath d='M-4.0,34.0L0.0,34.0L4.0,34.0L8.0,34.0L12.0,33.9L16.0,33.9L20.0,33.8L24.0,33.7L28.0,33.7L32.0,33.6L36.0,33.5L40.0,33.4L44.0,33.3L48.0,33.2L52.0,33.1L56.0,33.0L60.0,33.0L64.0,32.9L68.0,32.9L72.0,32.9L76.0,32.8L80.0,32.9L84.0,32.9L88.0,33.0L92.0,33.0L96.0,33.1L100.0,33.2L104.0,33.4L108.0,33.5L112.0,33.7L116.0,33.8L120.0,34.0L124.0,34.2' stroke-width='0.86'/%3e%3cpath d='M-4.0,36.4L0.0,36.4L4.0,36.3L8.0,36.3L12.0,36.3L16.0,36.2L20.0,36.1L24.0,36.0L28.0,36.0L32.0,35.9L36.0,35.8L40.0,35.7L44.0,35.6L48.0,35.5L52.0,35.4L56.0,35.3L60.0,35.3L64.0,35.2L68.0,35.2L72.0,35.2L76.0,35.2L80.0,35.3L84.0,35.3L88.0,35.4L92.0,35.5L96.0,35.6L100.0,35.7L104.0,35.9L108.0,36.0L112.0,36.2L116.0,36.4L120.0,36.5L124.0,36.7' stroke-width='0.86'/%3e%3c/g%3e%3cg stroke='%23332E26'%3e%3cpath d='M-4.0,16.4L0.0,16.5L4.0,16.5L8.0,16.6L12.0,16.7L16.0,16.7L20.0,16.8L24.0,16.8L28.0,16.8L32.0,16.8L36.0,16.8L40.0,16.8L44.0,16.8L48.0,16.7L52.0,16.6L56.0,16.6L60.0,16.5L64.0,16.4L68.0,16.3L72.0,16.2L76.0,16.2L80.0,16.1L84.0,16.0L88.0,16.0L92.0,15.9L96.0,15.9L100.0,15.9L104.0,15.9L108.0,15.9L112.0,15.9L116.0,16.0L120.0,16.1L124.0,16.2' stroke-width='0.62'/%3e%3cpath d='M-4.0,17.7L0.0,17.8L4.0,17.8L8.0,17.9L12.0,18.0L16.0,18.0L20.0,18.1L24.0,18.1L28.0,18.1L32.0,18.1L36.0,18.1L40.0,18.0L44.0,18.0L48.0,17.9L52.0,17.9L56.0,17.8L60.0,17.7L64.0,17.6L68.0,17.5L72.0,17.5L76.0,17.4L80.0,17.3L84.0,17.2L88.0,17.2L92.0,17.1L96.0,17.1L100.0,17.1L104.0,17.1L108.0,17.2L112.0,17.2L116.0,17.3L120.0,17.4L124.0,17.5' stroke-width='0.66'/%3e%3cpath d='M-4.0,19.0L0.0,19.1L4.0,19.1L8.0,19.2L12.0,19.3L16.0,19.3L20.0,19.3L24.0,19.3L28.0,19.4L32.0,19.3L36.0,19.3L40.0,19.3L44.0,19.2L48.0,19.2L52.0,19.1L56.0,19.0L60.0,18.9L64.0,18.8L68.0,18.7L72.0,18.7L76.0,18.6L80.0,18.5L84.0,18.5L88.0,18.4L92.0,18.4L96.0,18.4L100.0,18.4L104.0,18.4L108.0,18.4L112.0,18.5L116.0,18.6L120.0,18.7L124.0,18.8' stroke-width='0.79'/%3e%3cpath d='M-4.0,22.8L0.0,22.8L4.0,22.9L8.0,22.9L12.0,23.0L16.0,23.0L20.0,23.0L24.0,23.0L28.0,23.0L32.0,22.9L36.0,22.9L40.0,22.8L44.0,22.8L48.0,22.7L52.0,22.6L56.0,22.5L60.0,22.4L64.0,22.3L68.0,22.3L72.0,22.2L76.0,22.1L80.0,22.1L84.0,22.0L88.0,22.0L92.0,22.0L96.0,22.0L100.0,22.0L104.0,22.1L108.0,22.2L112.0,22.2L116.0,22.3L120.0,22.5L124.0,22.6' stroke-width='1.18'/%3e%3cpath d='M-4.0,23.9L0.0,23.9L4.0,24.0L8.0,24.0L12.0,24.1L16.0,24.1L20.0,24.1L24.0,24.1L28.0,24.0L32.0,24.0L36.0,23.9L40.0,23.9L44.0,23.8L48.0,23.7L52.0,23.6L56.0,23.6L60.0,23.5L64.0,23.4L68.0,23.3L72.0,23.2L76.0,23.2L80.0,23.1L84.0,23.1L88.0,23.1L92.0,23.1L96.0,23.1L100.0,23.1L104.0,23.2L108.0,23.3L112.0,23.4L116.0,23.5L120.0,23.6L124.0,23.7' stroke-width='0.84'/%3e%3cpath d='M-4.0,27.9L0.0,27.9L4.0,28.0L8.0,28.0L12.0,28.0L16.0,28.0L20.0,28.0L24.0,27.9L28.0,27.9L32.0,27.8L36.0,27.7L40.0,27.6L44.0,27.6L48.0,27.5L52.0,27.4L56.0,27.3L60.0,27.2L64.0,27.1L68.0,27.1L72.0,27.0L76.0,27.0L80.0,26.9L84.0,26.9L88.0,26.9L92.0,27.0L96.0,27.0L100.0,27.1L104.0,27.2L108.0,27.3L112.0,27.4L116.0,27.5L120.0,27.7L124.0,27.8' stroke-width='1.31'/%3e%3cpath d='M-4.0,29.2L0.0,29.2L4.0,29.2L8.0,29.2L12.0,29.2L16.0,29.2L20.0,29.2L24.0,29.1L28.0,29.1L32.0,29.0L36.0,28.9L40.0,28.8L44.0,28.7L48.0,28.7L52.0,28.6L56.0,28.5L60.0,28.4L64.0,28.3L68.0,28.3L72.0,28.2L76.0,28.2L80.0,28.2L84.0,28.2L88.0,28.2L92.0,28.2L96.0,28.3L100.0,28.4L104.0,28.5L108.0,28.6L112.0,28.7L116.0,28.8L120.0,29.0L124.0,29.1' stroke-width='1.29'/%3e%3cpath d='M-4.0,30.5L0.0,30.5L4.0,30.5L8.0,30.5L12.0,30.5L16.0,30.5L20.0,30.5L24.0,30.4L28.0,30.3L32.0,30.3L36.0,30.2L40.0,30.1L44.0,30.0L48.0,29.9L52.0,29.8L56.0,29.7L60.0,29.7L64.0,29.6L68.0,29.5L72.0,29.5L76.0,29.5L80.0,29.5L84.0,29.5L88.0,29.5L92.0,29.5L96.0,29.6L100.0,29.7L104.0,29.8L108.0,29.9L112.0,30.1L116.0,30.2L120.0,30.4L124.0,30.5' stroke-width='0.89'/%3e%3cpath d='M-4.0,32.7L0.0,32.7L4.0,32.7L8.0,32.7L12.0,32.7L16.0,32.7L20.0,32.6L24.0,32.6L28.0,32.5L32.0,32.4L36.0,32.3L40.0,32.2L44.0,32.1L48.0,32.0L52.0,31.9L56.0,31.9L60.0,31.8L64.0,31.7L68.0,31.7L72.0,31.6L76.0,31.6L80.0,31.6L84.0,31.7L88.0,31.7L92.0,31.8L96.0,31.9L100.0,32.0L104.0,32.1L108.0,32.2L112.0,32.4L116.0,32.5L120.0,32.7L124.0,32.9' stroke-width='0.66'/%3e%3cpath d='M-4.0,35.2L0.0,35.2L4.0,35.2L8.0,35.1L12.0,35.1L16.0,35.0L20.0,35.0L24.0,34.9L28.0,34.8L32.0,34.7L36.0,34.6L40.0,34.5L44.0,34.4L48.0,34.3L52.0,34.3L56.0,34.2L60.0,34.1L64.0,34.1L68.0,34.0L72.0,34.0L76.0,34.0L80.0,34.1L84.0,34.1L88.0,34.2L92.0,34.3L96.0,34.4L100.0,34.5L104.0,34.6L108.0,34.8L112.0,34.9L116.0,35.1L120.0,35.3L124.0,35.4' stroke-width='0.70'/%3e%3c/g%3e%3cg stroke='%2338322A'%3e%3cpath d='M-4.0,2.2L0.0,2.3L4.0,2.3L8.0,2.4L12.0,2.5L16.0,2.6L20.0,2.7L24.0,2.8L28.0,2.8L32.0,2.9L36.0,3.0L40.0,3.0L44.0,3.1L48.0,3.1L52.0,3.1L56.0,3.1L60.0,3.1L64.0,3.1L68.0,3.1L72.0,3.0L76.0,3.0L80.0,2.9L84.0,2.8L88.0,2.7L92.0,2.7L96.0,2.6L100.0,2.5L104.0,2.4L108.0,2.4L112.0,2.3L116.0,2.3L120.0,2.3L124.0,2.3' stroke-width='0.91'/%3e%3cpath d='M-4.0,9.8L0.0,9.8L4.0,9.9L8.0,10.0L12.0,10.1L16.0,10.2L20.0,10.3L24.0,10.3L28.0,10.4L32.0,10.4L36.0,10.5L40.0,10.5L44.0,10.5L48.0,10.5L52.0,10.4L56.0,10.4L60.0,10.3L64.0,10.3L68.0,10.2L72.0,10.1L76.0,10.0L80.0,10.0L84.0,9.9L88.0,9.8L92.0,9.7L96.0,9.7L100.0,9.6L104.0,9.6L108.0,9.6L112.0,9.6L116.0,9.6L120.0,9.6L124.0,9.7' stroke-width='1.37'/%3e%3cpath d='M-4.0,13.8L0.0,13.9L4.0,13.9L8.0,14.0L12.0,14.1L16.0,14.2L20.0,14.2L24.0,14.3L28.0,14.3L32.0,14.3L36.0,14.3L40.0,14.3L44.0,14.3L48.0,14.3L52.0,14.2L56.0,14.2L60.0,14.1L64.0,14.0L68.0,13.9L72.0,13.8L76.0,13.8L80.0,13.7L84.0,13.6L88.0,13.5L92.0,13.5L96.0,13.4L100.0,13.4L104.0,13.4L108.0,13.4L112.0,13.4L116.0,13.5L120.0,13.5L124.0,13.6' stroke-width='0.73'/%3e%3cpath d='M-4.0,15.1L0.0,15.2L4.0,15.3L8.0,15.4L12.0,15.5L16.0,15.5L20.0,15.6L24.0,15.6L28.0,15.6L32.0,15.6L36.0,15.6L40.0,15.6L44.0,15.6L48.0,15.6L52.0,15.5L56.0,15.4L60.0,15.4L64.0,15.3L68.0,15.2L72.0,15.1L76.0,15.0L80.0,14.9L84.0,14.9L88.0,14.8L92.0,14.8L96.0,14.7L100.0,14.7L104.0,14.7L108.0,14.7L112.0,14.7L116.0,14.8L120.0,14.9L124.0,15.0' stroke-width='0.85'/%3e%3cpath d='M-4.0,20.3L0.0,20.4L4.0,20.5L8.0,20.5L12.0,20.6L16.0,20.6L20.0,20.7L24.0,20.7L28.0,20.7L32.0,20.6L36.0,20.6L40.0,20.5L44.0,20.5L48.0,20.4L52.0,20.3L56.0,20.3L60.0,20.2L64.0,20.1L68.0,20.0L72.0,19.9L76.0,19.8L80.0,19.8L84.0,19.7L88.0,19.7L92.0,19.7L96.0,19.7L100.0,19.7L104.0,19.7L108.0,19.8L112.0,19.8L116.0,19.9L120.0,20.0L124.0,20.1' stroke-width='1.00'/%3e%3cpath d='M-4.0,21.5L0.0,21.6L4.0,21.7L8.0,21.7L12.0,21.8L16.0,21.8L20.0,21.8L24.0,21.8L28.0,21.8L32.0,21.8L36.0,21.7L40.0,21.7L44.0,21.6L48.0,21.5L52.0,21.5L56.0,21.4L60.0,21.3L64.0,21.2L68.0,21.1L72.0,21.0L76.0,21.0L80.0,20.9L84.0,20.9L88.0,20.8L92.0,20.8L96.0,20.8L100.0,20.8L104.0,20.9L108.0,20.9L112.0,21.0L116.0,21.1L120.0,21.2L124.0,21.4' stroke-width='1.29'/%3e%3cpath d='M-4.0,25.2L0.0,25.3L4.0,25.3L8.0,25.4L12.0,25.4L16.0,25.4L20.0,25.4L24.0,25.4L28.0,25.3L32.0,25.3L36.0,25.2L40.0,25.1L44.0,25.1L48.0,25.0L52.0,24.9L56.0,24.8L60.0,24.7L64.0,24.6L68.0,24.6L72.0,24.5L76.0,24.4L80.0,24.4L84.0,24.4L88.0,24.4L92.0,24.4L96.0,24.4L100.0,24.4L104.0,24.5L108.0,24.6L112.0,24.7L116.0,24.8L120.0,25.0L124.0,25.1' stroke-width='0.62'/%3e%3c/g%3e%3cg stroke='%233D372E'%3e%3cpath d='M-4.0,-0.1L0.0,-0.1L4.0,-0.0L8.0,0.0L12.0,0.1L16.0,0.2L20.0,0.2L24.0,0.3L28.0,0.4L32.0,0.5L36.0,0.6L40.0,0.7L44.0,0.7L48.0,0.8L52.0,0.8L56.0,0.8L60.0,0.8L64.0,0.8L68.0,0.8L72.0,0.8L76.0,0.7L80.0,0.6L84.0,0.6L88.0,0.5L92.0,0.4L96.0,0.4L100.0,0.3L104.0,0.2L108.0,0.1L112.0,0.1L116.0,0.0L120.0,0.0L124.0,0.0' stroke-width='0.94'/%3e%3cpath d='M-4.0,1.0L0.0,1.1L4.0,1.1L8.0,1.2L12.0,1.3L16.0,1.4L20.0,1.5L24.0,1.6L28.0,1.7L32.0,1.7L36.0,1.8L40.0,1.9L44.0,1.9L48.0,2.0L52.0,2.0L56.0,2.0L60.0,2.0L64.0,2.0L68.0,2.0L72.0,1.9L76.0,1.9L80.0,1.8L84.0,1.7L88.0,1.7L92.0,1.6L96.0,1.5L100.0,1.4L104.0,1.4L108.0,1.3L112.0,1.2L116.0,1.2L120.0,1.2L124.0,1.2' stroke-width='1.31'/%3e%3cpath d='M-4.0,3.5L0.0,3.6L4.0,3.7L8.0,3.8L12.0,3.9L16.0,3.9L20.0,4.0L24.0,4.1L28.0,4.2L32.0,4.3L36.0,4.3L40.0,4.4L44.0,4.4L48.0,4.5L52.0,4.5L56.0,4.5L60.0,4.4L64.0,4.4L68.0,4.4L72.0,4.3L76.0,4.2L80.0,4.2L84.0,4.1L88.0,4.0L92.0,3.9L96.0,3.9L100.0,3.8L104.0,3.7L108.0,3.7L112.0,3.6L116.0,3.6L120.0,3.6L124.0,3.6' stroke-width='0.90'/%3e%3cpath d='M-4.0,4.7L0.0,4.8L4.0,4.9L8.0,5.0L12.0,5.1L16.0,5.1L20.0,5.2L24.0,5.3L28.0,5.4L32.0,5.5L36.0,5.5L40.0,5.6L44.0,5.6L48.0,5.6L52.0,5.6L56.0,5.6L60.0,5.6L64.0,5.5L68.0,5.5L72.0,5.4L76.0,5.4L80.0,5.3L84.0,5.2L88.0,5.1L92.0,5.0L96.0,5.0L100.0,4.9L104.0,4.8L108.0,4.8L112.0,4.8L116.0,4.7L120.0,4.7L124.0,4.7' stroke-width='1.03'/%3e%3cpath d='M-4.0,6.1L0.0,6.1L4.0,6.2L8.0,6.3L12.0,6.4L16.0,6.5L20.0,6.6L24.0,6.7L28.0,6.7L32.0,6.8L36.0,6.8L40.0,6.9L44.0,6.9L48.0,6.9L52.0,6.9L56.0,6.9L60.0,6.8L64.0,6.8L68.0,6.7L72.0,6.7L76.0,6.6L80.0,6.5L84.0,6.4L88.0,6.4L92.0,6.3L96.0,6.2L100.0,6.2L104.0,6.1L108.0,6.1L112.0,6.0L116.0,6.0L120.0,6.0L124.0,6.1' stroke-width='1.00'/%3e%3cpath d='M-4.0,7.3L0.0,7.3L4.0,7.4L8.0,7.5L12.0,7.6L16.0,7.7L20.0,7.8L24.0,7.8L28.0,7.9L32.0,8.0L36.0,8.0L40.0,8.0L44.0,8.0L48.0,8.0L52.0,8.0L56.0,8.0L60.0,8.0L64.0,7.9L68.0,7.9L72.0,7.8L76.0,7.7L80.0,7.6L84.0,7.5L88.0,7.5L92.0,7.4L96.0,7.3L100.0,7.3L104.0,7.2L108.0,7.2L112.0,7.2L116.0,7.2L120.0,7.2L124.0,7.2' stroke-width='1.05'/%3e%3cpath d='M-4.0,8.5L0.0,8.5L4.0,8.6L8.0,8.7L12.0,8.8L16.0,8.9L20.0,8.9L24.0,9.0L28.0,9.1L32.0,9.1L36.0,9.2L40.0,9.2L44.0,9.2L48.0,9.2L52.0,9.2L56.0,9.1L60.0,9.1L64.0,9.0L68.0,9.0L72.0,8.9L76.0,8.8L80.0,8.7L84.0,8.7L88.0,8.6L92.0,8.5L96.0,8.4L100.0,8.4L104.0,8.3L108.0,8.3L112.0,8.3L116.0,8.3L120.0,8.3L124.0,8.4' stroke-width='0.79'/%3e%3cpath d='M-4.0,11.0L0.0,11.1L4.0,11.2L8.0,11.2L12.0,11.3L16.0,11.4L20.0,11.5L24.0,11.5L28.0,11.6L32.0,11.6L36.0,11.6L40.0,11.6L44.0,11.6L48.0,11.6L52.0,11.6L56.0,11.5L60.0,11.5L64.0,11.4L68.0,11.3L72.0,11.3L76.0,11.2L80.0,11.1L84.0,11.0L88.0,10.9L92.0,10.9L96.0,10.8L100.0,10.8L104.0,10.7L108.0,10.7L112.0,10.7L116.0,10.8L120.0,10.8L124.0,10.9' stroke-width='1.36'/%3e%3cpath d='M-4.0,12.4L0.0,12.5L4.0,12.6L8.0,12.6L12.0,12.7L16.0,12.8L20.0,12.9L24.0,12.9L28.0,12.9L32.0,13.0L36.0,13.0L40.0,13.0L44.0,13.0L48.0,12.9L52.0,12.9L56.0,12.8L60.0,12.8L64.0,12.7L68.0,12.6L72.0,12.6L76.0,12.5L80.0,12.4L84.0,12.3L88.0,12.2L92.0,12.2L96.0,12.1L100.0,12.1L104.0,12.1L108.0,12.1L112.0,12.1L116.0,12.1L120.0,12.2L124.0,12.2' stroke-width='0.73'/%3e%3c/g%3e%3cg stroke='%235E5546' opacity='.45'%3e%3cpath d='M-4.0,15.8L0.0,15.9L4.0,15.9L8.0,16.0L12.0,16.1L16.0,16.1L20.0,16.2L24.0,16.2L28.0,16.2L32.0,16.2L36.0,16.2L40.0,16.2L44.0,16.2L48.0,16.1L52.0,16.1L56.0,16.0L60.0,15.9L64.0,15.9L68.0,15.8L72.0,15.7L76.0,15.6L80.0,15.5L84.0,15.5L88.0,15.4L92.0,15.3L96.0,15.3L100.0,15.3L104.0,15.3L108.0,15.3L112.0,15.4L116.0,15.4L120.0,15.5L124.0,15.6' stroke-width='0.69'/%3e%3cpath d='M-4.0,14.5L0.0,14.6L4.0,14.7L8.0,14.8L12.0,14.8L16.0,14.9L20.0,15.0L24.0,15.0L28.0,15.0L32.0,15.0L36.0,15.0L40.0,15.0L44.0,15.0L48.0,15.0L52.0,14.9L56.0,14.8L60.0,14.8L64.0,14.7L68.0,14.6L72.0,14.5L76.0,14.4L80.0,14.4L84.0,14.3L88.0,14.2L92.0,14.2L96.0,14.1L100.0,14.1L104.0,14.1L108.0,14.1L112.0,14.1L116.0,14.2L120.0,14.3L124.0,14.3' stroke-width='0.60'/%3e%3cpath d='M-4.0,15.4L0.0,15.5L4.0,15.5L8.0,15.6L12.0,15.7L16.0,15.7L20.0,15.8L24.0,15.8L28.0,15.9L32.0,15.9L36.0,15.9L40.0,15.8L44.0,15.8L48.0,15.8L52.0,15.7L56.0,15.6L60.0,15.6L64.0,15.5L68.0,15.4L72.0,15.3L76.0,15.2L80.0,15.1L84.0,15.1L88.0,15.0L92.0,15.0L96.0,14.9L100.0,14.9L104.0,14.9L108.0,14.9L112.0,15.0L116.0,15.0L120.0,15.1L124.0,15.2' stroke-width='0.47'/%3e%3cpath d='M-4.0,11.3L0.0,11.4L4.0,11.5L8.0,11.6L12.0,11.7L16.0,11.7L20.0,11.8L24.0,11.9L28.0,11.9L32.0,11.9L36.0,12.0L40.0,12.0L44.0,12.0L48.0,11.9L52.0,11.9L56.0,11.9L60.0,11.8L64.0,11.7L68.0,11.6L72.0,11.6L76.0,11.5L80.0,11.4L84.0,11.3L88.0,11.3L92.0,11.2L96.0,11.1L100.0,11.1L104.0,11.1L108.0,11.1L112.0,11.1L116.0,11.1L120.0,11.1L124.0,11.2' stroke-width='0.45'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");
133
+ --ak-weave-primary: var(--ak-weave-primary-light);
134
+ --ak-weave-primary-shadow: drop-shadow(0 1px 1.5px rgba(18, 60, 49, 0.3));
135
+ --ak-weave-secondary: var(--ak-weave-secondary-light);
136
+ --ak-weave-secondary-shadow: drop-shadow(0 1px 1.5px rgba(80, 74, 60, 0.22));
137
+ }
138
+ @media (prefers-color-scheme: dark) {
139
+ :root:not([data-theme="light"]) {
140
+ --ak-weave-primary: var(--ak-weave-primary-dark);
141
+ --ak-weave-primary-shadow: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45));
142
+ --ak-weave-secondary: var(--ak-weave-secondary-dark);
143
+ --ak-weave-secondary-shadow: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
144
+ }
145
+ }
146
+ [data-theme="dark"] {
147
+ --ak-weave-primary: var(--ak-weave-primary-dark);
148
+ --ak-weave-primary-shadow: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45));
149
+ --ak-weave-secondary: var(--ak-weave-secondary-dark);
150
+ --ak-weave-secondary-shadow: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
151
+ }
152
+ /* 手動鎖定淺色;放在 html 上就整頁鎖,放在子樹上只鎖那塊。 */
153
+ :root.ak-theme-light,
154
+ .ak-theme-light {
155
+ --ak-bg: #fafaf6;
156
+ --ak-surface: #ffffff;
157
+ --ak-surface-raised: #ffffff;
158
+ --ak-border: #e3e0d5;
159
+ --ak-border-strong: #c8c3b4;
160
+ --ak-text: #23211d;
161
+ --ak-text-muted: #635d52;
162
+ --ak-text-faint: #9c958a;
163
+ --ak-accent: #23705a;
164
+ --ak-accent-text: #fcfcf9;
165
+ --ak-accent-subtle: #e7f0eb;
166
+ --ak-danger: #b3402e;
167
+ --ak-danger-subtle: #f7e7e3;
168
+ --ak-success: #23705a;
169
+ --ak-success-subtle: #e7f0eb;
170
+ --ak-warning: #9a6a1b;
171
+ --ak-warning-subtle: #f5ebd9;
172
+ --ak-info: #2c5c86;
173
+ --ak-info-subtle: #e4edf5;
174
+ --ak-focus-ring: #23705a;
175
+ --ak-bone: #ece9df;
176
+ --ak-sheen: #f6f4ec;
177
+ --ak-success-hl: #c6e0c6;
178
+ --ak-danger-hl: #efcec3;
179
+ --ak-shadow-popover: 0 8px 24px rgba(35, 33, 29, 0.1);
180
+ --ak-shadow-raised: 0 1px 2px rgba(35, 33, 29, 0.08);
181
+ --ak-font-display: "Newsreader Variable", Georgia, "Times New Roman", serif;
182
+ --ak-font-body: "Geist Variable", system-ui, sans-serif;
183
+ --ak-font-mono: "Geist Mono Variable", ui-monospace, monospace;
184
+ --ak-radius-sm: 0.375rem;
185
+ --ak-radius-md: 0.5rem;
186
+ --ak-radius-lg: 0.75rem;
187
+ --ak-radius-xl: 1rem;
188
+ --ak-motion-fast: 120ms;
189
+ --ak-motion-normal: 200ms;
190
+ --ak-motion-slow: 400ms;
191
+ --ak-motion-ease: cubic-bezier(0.25, 0.1, 0.25, 1);
192
+ --ak-motion-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
193
+ --ak-motion-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
194
+ --ak-weave-primary: var(--ak-weave-primary-light);
195
+ --ak-weave-primary-shadow: drop-shadow(0 1px 1.5px rgba(18, 60, 49, 0.3));
196
+ --ak-weave-secondary: var(--ak-weave-secondary-light);
197
+ --ak-weave-secondary-shadow: drop-shadow(0 1px 1.5px rgba(80, 74, 60, 0.22));
198
+ }
199
+ /* 手動鎖定暗色。 */
200
+ :root.ak-theme-dark,
201
+ .ak-theme-dark {
202
+ --ak-bone: #2a2620;
203
+ --ak-sheen: #35302a;
204
+ --ak-success-hl: #2f4a2e;
205
+ --ak-danger-hl: #573328;
206
+ --ak-shadow-popover: 0 8px 24px rgba(0, 0, 0, 0.4);
207
+ --ak-shadow-raised: 0 1px 2px rgba(0, 0, 0, 0.3);
208
+ --ak-bg: #181613;
209
+ --ak-surface: #201d18;
210
+ --ak-surface-raised: #282420;
211
+ --ak-border: #35302a;
212
+ --ak-border-strong: #4a443c;
213
+ --ak-text: #eae6dc;
214
+ --ak-text-muted: #b0a697;
215
+ --ak-text-faint: #736a5d;
216
+ --ak-accent: #4fa184;
217
+ --ak-accent-text: #14120f;
218
+ --ak-accent-subtle: #22352e;
219
+ --ak-danger: #dd7059;
220
+ --ak-danger-subtle: #3d231e;
221
+ --ak-success: #4fa184;
222
+ --ak-success-subtle: #22352e;
223
+ --ak-warning: #d9a254;
224
+ --ak-warning-subtle: #3a2f1d;
225
+ --ak-info: #6fa3ce;
226
+ --ak-info-subtle: #1e2c38;
227
+ --ak-focus-ring: #4fa184;
228
+ --ak-weave-primary: var(--ak-weave-primary-dark);
229
+ --ak-weave-primary-shadow: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45));
230
+ --ak-weave-secondary: var(--ak-weave-secondary-dark);
231
+ --ak-weave-secondary-shadow: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
232
+ }
233
+
234
+ :root {
235
+ /* Google Fonts 的家族名沒有 Variable 後綴;兩個名字都列,fontsource 或 Google Fonts 都能接上 */
236
+ --ak-font-display: "Newsreader Variable", "Newsreader", Georgia, "Times New Roman", serif;
237
+ --ak-font-body: "Geist Variable", "Geist", system-ui, sans-serif;
238
+ --ak-font-mono: "Geist Mono Variable", "Geist Mono", ui-monospace, monospace;
239
+ }
240
+
241
+ body {
242
+ margin: 0;
243
+ background: var(--ak-bg);
244
+ color: var(--ak-text);
245
+ font-family: var(--ak-font-body);
246
+ font-size: 1rem;
247
+ line-height: 1.6;
248
+ -webkit-font-smoothing: antialiased;
249
+ }
250
+
251
+ /* ---- 骨架 ---- */
252
+
253
+ /* 頁面容器:最大寬、左右留白、紙底。一頁一個。 */
254
+ .ak-page {
255
+ max-width: 64rem;
256
+ margin-inline: auto;
257
+ padding: 3rem 1.5rem;
258
+ background: var(--ak-bg);
259
+ }
260
+
261
+ /* 分段:上方一條髮線加留白。結論在前的頁面用它切證據段。 */
262
+ .ak-section {
263
+ margin-top: 3rem;
264
+ padding-top: 2rem;
265
+ border-top: 1px solid var(--ak-border);
266
+ }
267
+
268
+ /* 兩欄網格,375 寬以下折成單欄。 */
269
+ .ak-grid-2 {
270
+ display: grid;
271
+ grid-template-columns: repeat(2, minmax(0, 1fr));
272
+ gap: 1.5rem;
273
+ }
274
+
275
+ /* 三欄網格,375 寬以下折成單欄。stat 一排最多放這麼多再加一。 */
276
+ .ak-grid-3 {
277
+ display: grid;
278
+ grid-template-columns: repeat(3, minmax(0, 1fr));
279
+ gap: 1.5rem;
280
+ }
281
+
282
+ @media (max-width: 40rem) {
283
+ .ak-page {
284
+ padding: 2rem 1rem;
285
+ }
286
+ .ak-grid-2,
287
+ .ak-grid-3 {
288
+ grid-template-columns: minmax(0, 1fr);
289
+ }
290
+ }
291
+
292
+ /* ---- 文字 ---- */
293
+
294
+ /* display 級標題,serif。一頁一個。 */
295
+ .ak-display {
296
+ font-family: var(--ak-font-display);
297
+ font-optical-sizing: auto;
298
+ font-size: 2.25rem;
299
+ font-weight: 500;
300
+ line-height: 1.2;
301
+ letter-spacing: -0.01em;
302
+ margin: 0 0 1rem;
303
+ text-wrap: balance;
304
+ }
305
+
306
+ /* section 標題,serif。 */
307
+ .ak-h1 {
308
+ font-family: var(--ak-font-display);
309
+ font-optical-sizing: auto;
310
+ font-size: 1.75rem;
311
+ font-weight: 500;
312
+ line-height: 1.2;
313
+ margin: 0 0 0.75rem;
314
+ text-wrap: balance;
315
+ }
316
+
317
+ /* section 內的分節標題,serif。 */
318
+ .ak-h2 {
319
+ font-family: var(--ak-font-display);
320
+ font-optical-sizing: auto;
321
+ font-size: 1.375rem;
322
+ font-weight: 500;
323
+ line-height: 1.4;
324
+ margin: 2rem 0 0.5rem;
325
+ text-wrap: balance;
326
+ }
327
+
328
+ /* 正文區:p / ul / ol / a / code / pre / blockquote / h3 的階層與行長。 */
329
+ .ak-prose {
330
+ max-width: 68ch;
331
+ font-size: 1rem;
332
+ line-height: 1.6;
333
+ }
334
+ .ak-prose p,
335
+ .ak-prose ul,
336
+ .ak-prose ol,
337
+ .ak-prose pre,
338
+ .ak-prose blockquote {
339
+ margin: 0 0 1rem;
340
+ }
341
+ .ak-prose ul,
342
+ .ak-prose ol {
343
+ padding-inline-start: 1.5rem;
344
+ }
345
+ .ak-prose li {
346
+ margin-bottom: 0.25rem;
347
+ }
348
+ .ak-prose a {
349
+ color: var(--ak-accent);
350
+ text-decoration: underline;
351
+ text-decoration-color: var(--ak-border-strong);
352
+ text-underline-offset: 0.15em;
353
+ }
354
+ .ak-prose a:hover {
355
+ text-decoration-color: currentColor;
356
+ }
357
+ .ak-prose h3 {
358
+ font-family: var(--ak-font-body);
359
+ font-size: 1.125rem;
360
+ font-weight: 600;
361
+ line-height: 1.4;
362
+ margin: 1.5rem 0 0.5rem;
363
+ }
364
+ .ak-prose code {
365
+ font-family: var(--ak-font-mono);
366
+ font-size: 0.8125rem;
367
+ background: var(--ak-bone);
368
+ border-radius: 0.375rem;
369
+ padding: 0.1em 0.35em;
370
+ }
371
+ .ak-prose pre {
372
+ font-family: var(--ak-font-mono);
373
+ font-size: 0.8125rem;
374
+ line-height: 1.5;
375
+ background: var(--ak-bone);
376
+ border-radius: 0.5rem;
377
+ padding: 0.75rem 1rem;
378
+ overflow-x: auto;
379
+ }
380
+ .ak-prose pre code {
381
+ background: none;
382
+ padding: 0;
383
+ font-size: inherit;
384
+ }
385
+ .ak-prose blockquote {
386
+ border-inline-start: 2px solid var(--ak-border-strong);
387
+ padding-inline-start: 1rem;
388
+ color: var(--ak-text-muted);
389
+ }
390
+ .ak-prose hr {
391
+ border: 0;
392
+ border-top: 1px solid var(--ak-border);
393
+ margin: 2rem 0;
394
+ }
395
+
396
+ /* 次要說明:顏色降一階,字級不變。 */
397
+ .ak-muted {
398
+ color: var(--ak-text-muted);
399
+ }
400
+
401
+ /* 等寬:數據、代碼、識別碼。不當裝飾。 */
402
+ .ak-mono {
403
+ font-family: var(--ak-font-mono);
404
+ font-size: 0.875em;
405
+ font-variant-numeric: tabular-nums;
406
+ }
407
+
408
+ /* ---- 證據 ---- */
409
+
410
+ /* 證據表:滿版、tabular-nums、斑馬用 bone。數字欄加 data-num 靠右。 */
411
+ .ak-table {
412
+ width: 100%;
413
+ border-collapse: collapse;
414
+ font-size: 0.875rem;
415
+ line-height: 1.5;
416
+ font-variant-numeric: tabular-nums;
417
+ margin: 1rem 0;
418
+ }
419
+ .ak-table th,
420
+ .ak-table td {
421
+ text-align: start;
422
+ vertical-align: top;
423
+ padding: 0.5rem 0.75rem;
424
+ border-bottom: 1px solid var(--ak-border);
425
+ }
426
+ .ak-table th {
427
+ font-weight: 500;
428
+ color: var(--ak-text-muted);
429
+ border-bottom-color: var(--ak-border-strong);
430
+ }
431
+ .ak-table tbody tr:nth-child(even) {
432
+ background: var(--ak-bone);
433
+ }
434
+ .ak-table [data-num] {
435
+ text-align: end;
436
+ font-variant-numeric: tabular-nums;
437
+ }
438
+ .ak-table caption {
439
+ text-align: start;
440
+ color: var(--ak-text-muted);
441
+ font-size: 0.875rem;
442
+ padding-bottom: 0.5rem;
443
+ }
444
+ @media (max-width: 40rem) {
445
+ .ak-table {
446
+ display: block;
447
+ overflow-x: auto;
448
+ }
449
+ }
450
+
451
+ /* 結論級的大數字:serif 數字加 muted 小標。一排最多四個。 */
452
+ .ak-stat {
453
+ display: flex;
454
+ flex-direction: column;
455
+ gap: 0.25rem;
456
+ padding: 1rem 0;
457
+ border-top: 1px solid var(--ak-border);
458
+ }
459
+ /* ak-stat 的數字。 */
460
+ .ak-stat-value {
461
+ font-family: var(--ak-font-display);
462
+ font-optical-sizing: auto;
463
+ font-size: 2.25rem;
464
+ font-weight: 500;
465
+ line-height: 1.2;
466
+ letter-spacing: -0.01em;
467
+ font-variant-numeric: tabular-nums;
468
+ }
469
+ /* ak-stat 的小標。 */
470
+ .ak-stat-label {
471
+ font-size: 0.875rem;
472
+ color: var(--ak-text-muted);
473
+ }
474
+
475
+ /* 提示框:左側一條色線加淡底,語意由 ak-callout-info / -warning / -danger 決定。 */
476
+ .ak-callout {
477
+ border-inline-start: 2px solid var(--ak-border-strong);
478
+ background: var(--ak-sheen);
479
+ padding: 0.75rem 1rem;
480
+ margin: 1rem 0;
481
+ font-size: 0.875rem;
482
+ line-height: 1.5;
483
+ border-radius: 0 0.5rem 0.5rem 0;
484
+ }
485
+ .ak-callout > :first-child {
486
+ margin-top: 0;
487
+ }
488
+ .ak-callout > :last-child {
489
+ margin-bottom: 0;
490
+ }
491
+ /* 說明性提示。 */
492
+ .ak-callout-info {
493
+ border-color: var(--ak-info);
494
+ background: var(--ak-info-subtle);
495
+ }
496
+ /* 要注意但不擋路。 */
497
+ .ak-callout-warning {
498
+ border-color: var(--ak-warning);
499
+ background: var(--ak-warning-subtle);
500
+ }
501
+ /* 會出事。 */
502
+ .ak-callout-danger {
503
+ border-color: var(--ak-danger);
504
+ background: var(--ak-danger-subtle);
505
+ }
506
+
507
+ /* ---- 動作 ---- */
508
+
509
+ /* 表單欄位:label 在上、控件在下,input / textarea / select 都給一樣的邊框與焦點環。 */
510
+ .ak-field {
511
+ display: flex;
512
+ flex-direction: column;
513
+ gap: 0.25rem;
514
+ max-width: 24rem;
515
+ margin: 0 0 1rem;
516
+ font-size: 0.875rem;
517
+ }
518
+ .ak-field > label {
519
+ font-weight: 500;
520
+ }
521
+ .ak-field input,
522
+ .ak-field textarea,
523
+ .ak-field select {
524
+ font: inherit;
525
+ font-family: var(--ak-font-body);
526
+ color: var(--ak-text);
527
+ background: var(--ak-surface);
528
+ border: 1px solid var(--ak-border-strong);
529
+ border-radius: 0.5rem;
530
+ padding: 0.5rem 0.75rem;
531
+ min-height: 2.25rem;
532
+ box-sizing: border-box;
533
+ width: 100%;
534
+ }
535
+ .ak-field textarea {
536
+ min-height: 5rem;
537
+ resize: vertical;
538
+ }
539
+ .ak-field input:focus-visible,
540
+ .ak-field textarea:focus-visible,
541
+ .ak-field select:focus-visible {
542
+ outline: 2px solid var(--ak-focus-ring);
543
+ outline-offset: 2px;
544
+ }
545
+ .ak-field input::placeholder,
546
+ .ak-field textarea::placeholder {
547
+ color: var(--ak-text-faint);
548
+ }
549
+
550
+ /* 主動作按鈕:viridian 織體,一頁一顆。 */
551
+ .ak-btn {
552
+ display: inline-flex;
553
+ align-items: center;
554
+ justify-content: center;
555
+ gap: 0.5rem;
556
+ min-height: 2.25rem;
557
+ padding: 0.5rem 1rem;
558
+ border: 0;
559
+ border-radius: 0.5rem;
560
+ font-family: var(--ak-font-body);
561
+ font-size: 0.875rem;
562
+ font-weight: 500;
563
+ line-height: 1.2;
564
+ color: var(--ak-accent-text);
565
+ background-color: var(--ak-accent);
566
+ background-image: var(--ak-weave-primary);
567
+ background-size: 100% 100%;
568
+ background-repeat: no-repeat;
569
+ filter: var(--ak-weave-primary-shadow);
570
+ cursor: pointer;
571
+ text-decoration: none;
572
+ transition: opacity var(--ak-motion-fast) var(--ak-motion-ease-out);
573
+ }
574
+ .ak-btn:hover {
575
+ opacity: 0.92;
576
+ }
577
+ .ak-btn:active {
578
+ opacity: 0.85;
579
+ }
580
+ .ak-btn:focus-visible,
581
+ .ak-btn-secondary:focus-visible {
582
+ outline: 2px solid var(--ak-focus-ring);
583
+ outline-offset: 3px;
584
+ }
585
+ .ak-btn:disabled,
586
+ .ak-btn-secondary:disabled {
587
+ opacity: 0.5;
588
+ cursor: not-allowed;
589
+ }
590
+
591
+ /* 次要按鈕:淺色織體,其他動作都用它。 */
592
+ .ak-btn-secondary {
593
+ display: inline-flex;
594
+ align-items: center;
595
+ justify-content: center;
596
+ gap: 0.5rem;
597
+ min-height: 2.25rem;
598
+ padding: 0.5rem 1rem;
599
+ border: 0;
600
+ border-radius: 0.5rem;
601
+ font-family: var(--ak-font-body);
602
+ font-size: 0.875rem;
603
+ font-weight: 500;
604
+ line-height: 1.2;
605
+ color: var(--ak-text);
606
+ background-color: var(--ak-bone);
607
+ background-image: var(--ak-weave-secondary);
608
+ background-size: 100% 100%;
609
+ background-repeat: no-repeat;
610
+ filter: var(--ak-weave-secondary-shadow);
611
+ cursor: pointer;
612
+ text-decoration: none;
613
+ transition: opacity var(--ak-motion-fast) var(--ak-motion-ease-out);
614
+ }
615
+ .ak-btn-secondary:hover {
616
+ opacity: 0.92;
617
+ }
618
+ .ak-btn-secondary:active {
619
+ opacity: 0.85;
620
+ }
621
+
622
+ @media (prefers-reduced-motion: reduce) {
623
+ .ak-btn,
624
+ .ak-btn-secondary {
625
+ transition: none;
626
+ }
627
+ }
@@ -0,0 +1,18 @@
1
+ import { type StyleArg } from "../../lib/styled.js";
2
+ export type FormulaProps = {
3
+ children: string;
4
+ display?: boolean;
5
+ sx?: StyleArg;
6
+ };
7
+ /**
8
+ * TeX → MathML, rendered by the browser itself.
9
+ *
10
+ * Temml emits MathML rather than a pile of positioned spans, which is why this component needs no
11
+ * stylesheet and no web font — the two things a KaTeX integration would push onto every consumer
12
+ * of this package. It also means a screen reader gets the actual maths, not a div soup.
13
+ *
14
+ * Temml writes into the node directly (`temml.render`), so nothing here ever hands a string to
15
+ * `dangerouslySetInnerHTML` — this package does not use it anywhere and maths is not the place to
16
+ * start, given the TeX usually arrives from a language model.
17
+ */
18
+ export declare function Formula({ children, display, sx }: FormulaProps): import("react").JSX.Element;
@@ -0,0 +1,75 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as stylex from "@stylexjs/stylex";
3
+ import { useEffect, useRef } from "react";
4
+ import { styled } from "../../lib/styled.js";
5
+ import { color, space, text } from "../../tokens.stylex.js";
6
+ const styles = stylex.create({
7
+ // Display maths is the one block that routinely overflows a phone: a long equation cannot be
8
+ // re-wrapped the way a paragraph can, so it gets its own scroller rather than widening the page.
9
+ block: {
10
+ display: "block",
11
+ overflowX: "auto",
12
+ overflowY: "hidden",
13
+ paddingBlock: space.xs,
14
+ marginBlock: space.xs,
15
+ color: color.text,
16
+ },
17
+ inline: {
18
+ display: "inline-block",
19
+ maxWidth: "100%",
20
+ overflowX: "auto",
21
+ verticalAlign: "middle",
22
+ color: color.text,
23
+ },
24
+ // What a caller sees when the TeX itself is wrong. Showing the source beats showing nothing:
25
+ // the reader can still read the formula, and it is obvious who to blame.
26
+ error: {
27
+ fontFamily: "ui-monospace, monospace",
28
+ fontSize: text.xs,
29
+ color: color.danger,
30
+ overflowWrap: "anywhere",
31
+ },
32
+ });
33
+ /**
34
+ * TeX → MathML, rendered by the browser itself.
35
+ *
36
+ * Temml emits MathML rather than a pile of positioned spans, which is why this component needs no
37
+ * stylesheet and no web font — the two things a KaTeX integration would push onto every consumer
38
+ * of this package. It also means a screen reader gets the actual maths, not a div soup.
39
+ *
40
+ * Temml writes into the node directly (`temml.render`), so nothing here ever hands a string to
41
+ * `dangerouslySetInnerHTML` — this package does not use it anywhere and maths is not the place to
42
+ * start, given the TeX usually arrives from a language model.
43
+ */
44
+ export function Formula({ children, display = false, sx }) {
45
+ const host = useRef(null);
46
+ useEffect(() => {
47
+ const node = host.current;
48
+ if (!node)
49
+ return;
50
+ let live = true;
51
+ // Temml is ~250KB and most messages contain no maths at all, so it arrives only when the
52
+ // first formula does.
53
+ void import("temml")
54
+ .then((temml) => {
55
+ if (!live || !host.current)
56
+ return;
57
+ temml.default.render(children, host.current, {
58
+ displayMode: display,
59
+ // `throwOnError: false` renders the offending source in red instead of blowing up the
60
+ // whole message; `trust: false` (the default) keeps \href and friends inert.
61
+ throwOnError: false,
62
+ errorColor: "currentColor",
63
+ });
64
+ })
65
+ // Nothing about one formula is worth taking a message down for. `throwOnError` covers bad
66
+ // TeX, this covers everything else: a chunk that fails to load, or a DOM that will not
67
+ // take MathML at all (jsdom builds those elements without a `style`, so Temml throws
68
+ // there and only there). The source TeX is already on screen and simply stays.
69
+ .catch(() => { });
70
+ return () => {
71
+ live = false;
72
+ };
73
+ }, [children, display]);
74
+ return (_jsx("span", { ref: host, ...styled({}, display ? styles.block : styles.inline, sx), ...(display ? { role: "math" } : {}), children: _jsx("span", { ...stylex.props(styles.error), children: children }) }));
75
+ }
@@ -0,0 +1,30 @@
1
+ import type { ComponentProps, ReactNode } from "react";
2
+ import { type StyleArg } from "../../lib/styled.js";
3
+ /** A fenced block a shell wants to draw itself — mermaid, a chart spec, anything. */
4
+ export type MarkdownBlock = {
5
+ lang: string;
6
+ code: string;
7
+ };
8
+ export type MarkdownProps = Omit<ComponentProps<"div">, "children"> & {
9
+ children: string;
10
+ /**
11
+ * Draws a fenced block instead of the built-in code block. Returning `undefined` (or not
12
+ * passing this at all) falls back to the code block, which is why a shell that has no mermaid
13
+ * bundled still shows the source rather than nothing.
14
+ *
15
+ * This package deliberately does not depend on any diagram library: mermaid alone unpacks to
16
+ * ~84MB, which no design system should push onto every app that installs it.
17
+ */
18
+ renderBlock?: (block: MarkdownBlock) => ReactNode | undefined;
19
+ /** Passed through to code blocks, so a shell can localise their copy button. */
20
+ copyLabel?: string;
21
+ copiedLabel?: string;
22
+ sx?: StyleArg;
23
+ };
24
+ /**
25
+ * Markdown as a conversation renders it: GFM tables, fenced code, TeX maths, task lists.
26
+ *
27
+ * Nothing here goes through `innerHTML`. The markdown is tokenised and every token is turned into
28
+ * a React element, so a model that emits `<script>` gets its source shown, not run.
29
+ */
30
+ export declare function Markdown({ children, renderBlock, copyLabel, copiedLabel, sx, ...rest }: MarkdownProps): import("react").JSX.Element;
@@ -0,0 +1,223 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as stylex from "@stylexjs/stylex";
3
+ import { Marked } from "marked";
4
+ import { styled } from "../../lib/styled.js";
5
+ import { color, radius, space, text } from "../../tokens.stylex.js";
6
+ import { Checkbox } from "../checkbox/Checkbox.js";
7
+ import { CodeBlock, InlineCode } from "../code-block/CodeBlock.js";
8
+ import { Formula } from "./Formula.js";
9
+ import { isMathToken, mathExtensions } from "./math.js";
10
+ // Its own Marked instance, not the module-level `marked`: `marked.use()` is global, and a design
11
+ // system must not reach into whatever else the host app parses.
12
+ //
13
+ // `breaks: true` because this renders what a person or a model just typed into a conversation. In
14
+ // a document a lone newline is a space; in a chat message it is a line the writer meant to break.
15
+ const parser = new Marked({ gfm: true, breaks: true }).use({ extensions: mathExtensions });
16
+ const styles = stylex.create({
17
+ root: {
18
+ display: "grid",
19
+ gap: space.sm,
20
+ // Set, never inherited. Every other component in this package states its own colour and
21
+ // size for the same reason: a host whose text colour is wrong (or missing, as when a page
22
+ // forgets tokens.css) would otherwise paint this black on a dark ground.
23
+ color: color.text,
24
+ fontSize: text.sm,
25
+ lineHeight: text.leadingRelaxed,
26
+ // Model output is full of things with no spaces in them — URLs, file paths, hashes. On a
27
+ // 390px screen any one of them would otherwise push the whole conversation sideways.
28
+ overflowWrap: "anywhere",
29
+ minWidth: 0,
30
+ },
31
+ p: { margin: 0, lineHeight: text.leadingNormal },
32
+ heading: { margin: 0, lineHeight: text.leadingSnug, fontWeight: 600 },
33
+ h1: { fontSize: text.lg },
34
+ // h2 and below are body-sized and carry their weight instead: these are headings inside one
35
+ // chat message, not a page outline, and a message that shouts three sizes at you reads worse.
36
+ h2: { fontSize: text.base },
37
+ h3: { fontSize: text.base },
38
+ list: { margin: 0, paddingInlineStart: "1.5em", display: "grid", gap: space.xxs },
39
+ item: { lineHeight: text.leadingNormal },
40
+ // The item's own text follows it on the same line, so the box must not take the whole row.
41
+ task: { display: "inline-flex", marginInlineEnd: space.xxs, verticalAlign: "middle" },
42
+ quote: {
43
+ margin: 0,
44
+ paddingInlineStart: space.sm,
45
+ borderInlineStartWidth: 2,
46
+ borderInlineStartStyle: "solid",
47
+ borderInlineStartColor: color.border,
48
+ color: color.textMuted,
49
+ display: "grid",
50
+ gap: space.xs,
51
+ },
52
+ rule: {
53
+ border: "none",
54
+ borderBlockStartWidth: 1,
55
+ borderBlockStartStyle: "solid",
56
+ borderBlockStartColor: color.border,
57
+ margin: 0,
58
+ },
59
+ link: { color: color.accent, textUnderlineOffset: "0.15em" },
60
+ image: { maxWidth: "100%", height: "auto", borderRadius: radius.md },
61
+ // The table itself must not shrink to fit; the wrapper scrolls instead. A squashed table on a
62
+ // phone is unreadable, a scrolling one is merely narrow.
63
+ tableWrap: { overflowX: "auto", maxWidth: "100%" },
64
+ // Sized by its own content, not stretched to the message width: a two-column table pulled out
65
+ // to full width puts its cells at opposite ends of the screen and is harder to read, not easier.
66
+ table: { borderCollapse: "collapse" },
67
+ cell: {
68
+ borderWidth: 1,
69
+ borderStyle: "solid",
70
+ borderColor: color.border,
71
+ paddingBlock: space.xxs,
72
+ paddingInline: space.xs,
73
+ textAlign: "start",
74
+ verticalAlign: "top",
75
+ },
76
+ head: { backgroundColor: color.surface, fontWeight: 600 },
77
+ });
78
+ const ALIGN = { left: "start", center: "center", right: "end" };
79
+ function inlineTokens(token) {
80
+ return token.tokens;
81
+ }
82
+ function renderInline(tokens, context, keyPrefix) {
83
+ if (!tokens)
84
+ return null;
85
+ return tokens.map((token, index) => {
86
+ const key = `${keyPrefix}.${index}`;
87
+ if (isMathToken(token)) {
88
+ return (_jsx(Formula, { display: token.display, children: token.text }, key));
89
+ }
90
+ switch (token.type) {
91
+ case "text":
92
+ case "escape": {
93
+ const nested = inlineTokens(token);
94
+ // A `text` token carries children only when it contains inline markup; otherwise the
95
+ // string itself is the whole of it.
96
+ return nested ? (_jsx("span", { children: renderInline(nested, context, key) }, key)) : (token.text);
97
+ }
98
+ case "strong":
99
+ return _jsx("strong", { children: renderInline(inlineTokens(token), context, key) }, key);
100
+ case "em":
101
+ return _jsx("em", { children: renderInline(inlineTokens(token), context, key) }, key);
102
+ case "del":
103
+ return _jsx("del", { children: renderInline(inlineTokens(token), context, key) }, key);
104
+ case "codespan":
105
+ return _jsx(InlineCode, { children: token.text }, key);
106
+ case "br":
107
+ return _jsx("br", {}, key);
108
+ // The list draws the box itself; this token is the source `[x]` and would double it.
109
+ case "checkbox":
110
+ return null;
111
+ case "link": {
112
+ const link = token;
113
+ return (_jsx("a", { href: link.href, title: link.title ?? undefined, target: "_blank",
114
+ // Model output is untrusted: never hand a new tab a live `window.opener`.
115
+ rel: "noopener noreferrer nofollow", ...stylex.props(styles.link), children: renderInline(inlineTokens(token), context, key) }, key));
116
+ }
117
+ case "image": {
118
+ const image = token;
119
+ return (_jsx("img", { src: image.href, alt: image.text, title: image.title ?? undefined, loading: "lazy", ...stylex.props(styles.image) }, key));
120
+ }
121
+ // `html` inline: shown as text, never parsed. See renderBlocks.
122
+ case "html":
123
+ return _jsx("span", { children: token.raw }, key);
124
+ default:
125
+ return _jsx("span", { children: token.raw ?? "" }, key);
126
+ }
127
+ });
128
+ }
129
+ /**
130
+ * A list item's children are a mix: its own sentence arrives as inline tokens, but a nested list
131
+ * or fenced block is block-level. Sending the whole lot to one renderer is what flattened
132
+ * "巢狀:\n 1. 第一\n 2. 第二" into a single line.
133
+ */
134
+ function renderItem(item, context, key) {
135
+ return item.tokens.map((token, index) => {
136
+ const childKey = `${key}.${index}`;
137
+ return token.type === "text" || token.type === "checkbox"
138
+ ? renderInline([token], context, childKey)
139
+ : renderBlocks([token], context, childKey);
140
+ });
141
+ }
142
+ function renderList(token, context, key) {
143
+ const Tag = token.ordered ? "ol" : "ul";
144
+ return (_jsx(Tag, { ...(token.ordered && token.start !== "" ? { start: token.start } : {}), ...stylex.props(styles.list), children: token.items.map((item, index) => (_jsxs("li", { ...stylex.props(styles.item), children: [item.task && (
145
+ // The design system's own box, not a native <input>: that one paints itself in the
146
+ // OS accent colour and ignores the theme entirely.
147
+ _jsx(Checkbox, { checked: item.checked ?? false, disabled: true, readOnly: true, "aria-label": item.checked ? "已完成" : "未完成", sx: styles.task })), renderItem(item, context, `${key}.${index}`)] }, `${key}.${index}`))) }, key));
148
+ }
149
+ function renderTable(token, context, key) {
150
+ return (_jsx("div", { ...stylex.props(styles.tableWrap), children: _jsxs("table", { ...stylex.props(styles.table), children: [_jsx("thead", { children: _jsx("tr", { children: token.header.map((cell, index) => (_jsx("th", { ...stylex.props(styles.cell, styles.head), style: { textAlign: ALIGN[token.align[index] ?? "left"] }, children: renderInline(cell.tokens, context, `${key}.h.${index}`) }, index))) }) }), _jsx("tbody", { children: token.rows.map((row, rowIndex) => (_jsx("tr", { children: row.map((cell, index) => (_jsx("td", { ...stylex.props(styles.cell), style: { textAlign: ALIGN[token.align[index] ?? "left"] }, children: renderInline(cell.tokens, context, `${key}.${rowIndex}.${index}`) }, index))) }, rowIndex))) })] }) }, key));
151
+ }
152
+ function renderBlocks(tokens, context, keyPrefix = "b") {
153
+ const out = [];
154
+ tokens.forEach((token, index) => {
155
+ const key = `${keyPrefix}.${index}`;
156
+ if (isMathToken(token)) {
157
+ out.push(_jsx(Formula, { display: true, children: token.text }, key));
158
+ return;
159
+ }
160
+ switch (token.type) {
161
+ case "space":
162
+ return;
163
+ case "paragraph":
164
+ out.push(_jsx("p", { ...stylex.props(styles.p), children: renderInline(inlineTokens(token), context, key) }, key));
165
+ return;
166
+ case "heading": {
167
+ const heading = token;
168
+ const level = headingLevel(heading.depth);
169
+ const Tag = `h${level}`;
170
+ out.push(_jsx(Tag, { ...stylex.props(styles.heading, styles[Tag]), children: renderInline(inlineTokens(token), context, key) }, key));
171
+ return;
172
+ }
173
+ case "code": {
174
+ const block = token;
175
+ const lang = (block.lang ?? "").trim().split(/\s+/)[0] ?? "";
176
+ const custom = context.renderBlock?.({ lang, code: block.text });
177
+ out.push(custom !== undefined && custom !== null ? (_jsx("div", { children: custom }, key)) : (_jsx(CodeBlock, { code: block.text, ...(lang ? { lang } : {}), ...(context.copyLabel ? { copyLabel: context.copyLabel } : {}), ...(context.copiedLabel ? { copiedLabel: context.copiedLabel } : {}) }, key)));
178
+ return;
179
+ }
180
+ case "table":
181
+ out.push(renderTable(token, context, key));
182
+ return;
183
+ case "list":
184
+ out.push(renderList(token, context, key));
185
+ return;
186
+ case "blockquote":
187
+ out.push(_jsx("blockquote", { ...stylex.props(styles.quote), children: renderBlocks(inlineTokens(token) ?? [], context, key) }, key));
188
+ return;
189
+ case "hr":
190
+ out.push(_jsx("hr", { ...stylex.props(styles.rule) }, key));
191
+ return;
192
+ case "html":
193
+ // Never parsed, never injected — the source is shown as code. Markdown from a model is
194
+ // untrusted input and this package has no sanitiser to lean on, so `<script>` is
195
+ // something to display, not something to run.
196
+ out.push(_jsx(CodeBlock, { lang: "html", code: token.raw.trimEnd(), ...(context.copyLabel ? { copyLabel: context.copyLabel } : {}), ...(context.copiedLabel ? { copiedLabel: context.copiedLabel } : {}) }, key));
197
+ return;
198
+ case "text": {
199
+ const nested = inlineTokens(token);
200
+ out.push(_jsx("p", { ...stylex.props(styles.p), children: nested ? renderInline(nested, context, key) : token.text }, key));
201
+ return;
202
+ }
203
+ // `def` is a link reference definition: it defines, it does not render.
204
+ default:
205
+ return;
206
+ }
207
+ });
208
+ return out;
209
+ }
210
+ /** Headings inside a message never go past h3; deeper ones would be smaller than the body. */
211
+ function headingLevel(depth) {
212
+ return depth <= 1 ? 1 : depth === 2 ? 2 : 3;
213
+ }
214
+ /**
215
+ * Markdown as a conversation renders it: GFM tables, fenced code, TeX maths, task lists.
216
+ *
217
+ * Nothing here goes through `innerHTML`. The markdown is tokenised and every token is turned into
218
+ * a React element, so a model that emits `<script>` gets its source shown, not run.
219
+ */
220
+ export function Markdown({ children, renderBlock, copyLabel, copiedLabel, sx, ...rest }) {
221
+ const tokens = parser.lexer(children);
222
+ return (_jsx("div", { ...rest, ...styled(rest, styles.root, sx), children: renderBlocks(tokens, { renderBlock, copyLabel, copiedLabel }) }));
223
+ }
@@ -0,0 +1,10 @@
1
+ import type { TokenizerAndRendererExtension, Tokens } from "marked";
2
+ export type MathToken = Tokens.Generic & {
3
+ type: "math";
4
+ text: string;
5
+ display: boolean;
6
+ };
7
+ export declare const mathExtensions: TokenizerAndRendererExtension[];
8
+ export declare function isMathToken(token: {
9
+ type: string;
10
+ }): token is MathToken;
@@ -0,0 +1,86 @@
1
+ // 數學是 marked 沒有的語法,所以走 extension 自己 tokenize。兩種寫法都收:$…$ / $$…$$ 是
2
+ // TeX 的慣例,\( … \) / \[ … \] 是 LaTeX 自己的,兩種模型都會吐。
3
+ //
4
+ // `$` 的難處在它同時是錢:「$5 到 $10」不是公式。所以開頭的 `$` 後面不能是空白,結尾的
5
+ // `$` 前面不能是空白、後面不能接數字——GitHub 與 KaTeX 的 auto-render 用的是同一組條件。
6
+ const INLINE_DOLLAR = /^\$(?![\s$])((?:\\.|[^\n$\\])+?)(?<!\s)\$(?!\d)/;
7
+ const INLINE_PAREN = /^\\\(([\s\S]+?)\\\)/;
8
+ const BLOCK_DOLLAR = /^\$\$([\s\S]+?)\$\$/;
9
+ const BLOCK_BRACKET = /^\\\[([\s\S]+?)\\\]/;
10
+ function first(src, ...patterns) {
11
+ for (const pattern of patterns) {
12
+ const match = pattern.exec(src);
13
+ if (match)
14
+ return match;
15
+ }
16
+ return null;
17
+ }
18
+ /**
19
+ * Where the next real match starts.
20
+ *
21
+ * This has to be exact, not merely "the next `$`". marked splits the surrounding text token at
22
+ * whatever index `start` names, and with `breaks: true` a fragment that is left as trailing
23
+ * whitespace before the split becomes a `<br>` — so pointing at a `$` that turns out to be a
24
+ * dollar sign inserted line breaks into "從 $5 漲到 $10".
25
+ */
26
+ function startWith(...patterns) {
27
+ return (src) => {
28
+ let at = src.search(/[$\\]/);
29
+ while (at !== -1) {
30
+ if (first(src.slice(at), ...patterns))
31
+ return at;
32
+ const next = src.slice(at + 1).search(/[$\\]/);
33
+ if (next === -1)
34
+ return undefined;
35
+ at += 1 + next;
36
+ }
37
+ return undefined;
38
+ };
39
+ }
40
+ // The block hint must ignore inline maths. `start` is where marked *cuts*, and a block-level
41
+ // extension cuts the paragraph itself — so pointing at the `$` in "行內數學 $E = mc^2$" split that
42
+ // sentence in half and left the two pieces as separate lines.
43
+ const startBlock = startWith(BLOCK_DOLLAR, BLOCK_BRACKET);
44
+ const startInline = startWith(BLOCK_DOLLAR, BLOCK_BRACKET, INLINE_DOLLAR, INLINE_PAREN);
45
+ export const mathExtensions = [
46
+ {
47
+ name: "math",
48
+ level: "block",
49
+ start: startBlock,
50
+ tokenizer(src) {
51
+ const match = first(src, BLOCK_DOLLAR, BLOCK_BRACKET);
52
+ if (!match)
53
+ return undefined;
54
+ const token = {
55
+ type: "math",
56
+ raw: match[0],
57
+ text: (match[1] ?? "").trim(),
58
+ display: true,
59
+ };
60
+ return token;
61
+ },
62
+ },
63
+ {
64
+ name: "inlineMath",
65
+ level: "inline",
66
+ start: startInline,
67
+ tokenizer(src) {
68
+ // A `$$…$$` that sits inside a paragraph is still display maths; the block tokenizer
69
+ // only ever sees it when it starts its own line.
70
+ const block = first(src, BLOCK_DOLLAR, BLOCK_BRACKET);
71
+ const match = block ?? first(src, INLINE_DOLLAR, INLINE_PAREN);
72
+ if (!match)
73
+ return undefined;
74
+ const token = {
75
+ type: "math",
76
+ raw: match[0],
77
+ text: (match[1] ?? "").trim(),
78
+ display: block !== null,
79
+ };
80
+ return token;
81
+ },
82
+ },
83
+ ];
84
+ export function isMathToken(token) {
85
+ return token.type === "math";
86
+ }
package/dist/index.d.ts CHANGED
@@ -53,3 +53,5 @@ export type { FileRowProps, FileListProps, FileItem, FileRowAction } from "./com
53
53
  export { DiffViewer, type DiffViewerProps, type DiffFile } from "./components/diff-viewer/DiffViewer.js";
54
54
  export { DataTable } from "./components/data-table/DataTable.js";
55
55
  export type { DataTableProps, DataTableColumn, SortState } from "./components/data-table/DataTable.js";
56
+ export { Markdown, type MarkdownProps, type MarkdownBlock } from "./components/markdown/Markdown.js";
57
+ export { Formula, type FormulaProps } from "./components/markdown/Formula.js";
package/dist/index.js CHANGED
@@ -36,3 +36,5 @@ export { Dropzone, UploadList } from "./components/dropzone/Dropzone.js";
36
36
  export { FileRow, FileList } from "./components/file-row/FileRow.js";
37
37
  export { DiffViewer } from "./components/diff-viewer/DiffViewer.js";
38
38
  export { DataTable } from "./components/data-table/DataTable.js";
39
+ export { Markdown } from "./components/markdown/Markdown.js";
40
+ export { Formula } from "./components/markdown/Formula.js";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@anyknown/ui",
3
- "version": "0.4.2",
4
- "description": "AnyKnown design system — StyleX tokens, themes, and 34 components",
3
+ "version": "0.6.0",
4
+ "description": "AnyKnown design system — StyleX tokens, themes, and 36 components",
5
5
  "homepage": "https://ui.anyknown.com",
6
6
  "bugs": {
7
7
  "url": "https://github.com/anyknown-com/ui/issues"
@@ -31,19 +31,22 @@
31
31
  "default": "./dist/themes.stylex.js"
32
32
  },
33
33
  "./tokens.css": "./dist/tokens.css",
34
- "./scrollbar.css": "./dist/scrollbar.css"
34
+ "./scrollbar.css": "./dist/scrollbar.css",
35
+ "./brand.css": "./dist/brand.css"
35
36
  },
36
37
  "publishConfig": {
37
38
  "access": "public"
38
39
  },
39
40
  "scripts": {
40
- "build": "rm -rf dist && tsc -p tsconfig.build.json && node scripts/esm-extensions.mjs && cp src/tokens.css src/scrollbar.css dist/",
41
+ "build": "rm -rf dist && tsc -p tsconfig.build.json && node scripts/esm-extensions.mjs && cp src/tokens.css src/scrollbar.css dist/ && node scripts/brand-css.mjs",
41
42
  "typecheck": "tsc --noEmit",
42
43
  "lint": "oxlint src",
43
44
  "fmt": "oxfmt",
44
45
  "fmt:check": "oxfmt --check",
45
46
  "gen:themes": "node -e \"import('./scripts/themes.mjs').then(async m => (await import('node:fs')).writeFileSync('src/themes.stylex.ts', m.generate()))\" && oxfmt src/themes.stylex.ts",
46
- "check": "turbo run typecheck lint fmt:check",
47
+ "check": "turbo run typecheck lint fmt:check design:check",
48
+ "design:check": "node scripts/design-check.mjs",
49
+ "design:lint": "node scripts/design-lint.mjs",
47
50
  "test": "vitest run",
48
51
  "playground": "vite --config playground/vite.config.ts",
49
52
  "site": "vite --config site/vite.config.ts",
@@ -56,7 +59,9 @@
56
59
  "dependencies": {
57
60
  "@base-ui/react": "^1.7.0",
58
61
  "@stylexjs/stylex": "^0.19.0",
59
- "diff": "^9.0.0"
62
+ "diff": "^9.0.0",
63
+ "marked": "^18.0.11",
64
+ "temml": "^0.13.5"
60
65
  },
61
66
  "devDependencies": {
62
67
  "@babel/core": "^8.0.1",
@@ -73,7 +78,6 @@
73
78
  "@vitest/coverage-v8": "^4.1.11",
74
79
  "autoprefixer": "^10.5.4",
75
80
  "jsdom": "^30.0.1",
76
- "marked": "^18.0.11",
77
81
  "oxfmt": "^0.65.0",
78
82
  "oxlint": "^1.80.0",
79
83
  "postcss": "^8.5.26",