svedocs 0.1.0-beta.10

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.
Files changed (286) hide show
  1. package/LICENSE +5 -0
  2. package/README.md +85 -0
  3. package/dist/ai/openai-compatible.d.ts +13 -0
  4. package/dist/ai/openai-compatible.d.ts.map +1 -0
  5. package/dist/ai/openai-compatible.js +92 -0
  6. package/dist/ai/providers.d.ts +20 -0
  7. package/dist/ai/providers.d.ts.map +1 -0
  8. package/dist/ai/providers.js +185 -0
  9. package/dist/ai/rate-limit.d.ts +18 -0
  10. package/dist/ai/rate-limit.d.ts.map +1 -0
  11. package/dist/ai/rate-limit.js +52 -0
  12. package/dist/ai/response.d.ts +4 -0
  13. package/dist/ai/response.d.ts.map +1 -0
  14. package/dist/ai/response.js +151 -0
  15. package/dist/ai/runtime.d.ts +32 -0
  16. package/dist/ai/runtime.d.ts.map +1 -0
  17. package/dist/ai/runtime.js +111 -0
  18. package/dist/ai/types.d.ts +93 -0
  19. package/dist/ai/types.d.ts.map +1 -0
  20. package/dist/ai/types.js +1 -0
  21. package/dist/ai.d.ts +7 -0
  22. package/dist/ai.d.ts.map +1 -0
  23. package/dist/ai.js +6 -0
  24. package/dist/ambient.d.ts +5 -0
  25. package/dist/cloudflare.d.ts +29 -0
  26. package/dist/cloudflare.d.ts.map +1 -0
  27. package/dist/cloudflare.js +149 -0
  28. package/dist/config.d.ts +373 -0
  29. package/dist/config.d.ts.map +1 -0
  30. package/dist/config.js +299 -0
  31. package/dist/core/checks.d.ts +4 -0
  32. package/dist/core/checks.d.ts.map +1 -0
  33. package/dist/core/checks.js +267 -0
  34. package/dist/core/config.d.ts +6 -0
  35. package/dist/core/config.d.ts.map +1 -0
  36. package/dist/core/config.js +178 -0
  37. package/dist/core/content.d.ts +7 -0
  38. package/dist/core/content.d.ts.map +1 -0
  39. package/dist/core/content.js +340 -0
  40. package/dist/core/i18n.d.ts +5 -0
  41. package/dist/core/i18n.d.ts.map +1 -0
  42. package/dist/core/i18n.js +117 -0
  43. package/dist/core/links.d.ts +5 -0
  44. package/dist/core/links.d.ts.map +1 -0
  45. package/dist/core/links.js +60 -0
  46. package/dist/core/messages.d.ts +149 -0
  47. package/dist/core/messages.d.ts.map +1 -0
  48. package/dist/core/messages.js +163 -0
  49. package/dist/core/navigation.d.ts +5 -0
  50. package/dist/core/navigation.d.ts.map +1 -0
  51. package/dist/core/navigation.js +144 -0
  52. package/dist/core/routes.d.ts +36 -0
  53. package/dist/core/routes.d.ts.map +1 -0
  54. package/dist/core/routes.js +152 -0
  55. package/dist/core/search.d.ts +5 -0
  56. package/dist/core/search.d.ts.map +1 -0
  57. package/dist/core/search.js +41 -0
  58. package/dist/core/types.d.ts +468 -0
  59. package/dist/core/types.d.ts.map +1 -0
  60. package/dist/core/types.js +4 -0
  61. package/dist/core/utils.d.ts +13 -0
  62. package/dist/core/utils.d.ts.map +1 -0
  63. package/dist/core/utils.js +60 -0
  64. package/dist/core.d.ts +9 -0
  65. package/dist/core.d.ts.map +1 -0
  66. package/dist/core.js +8 -0
  67. package/dist/index.d.ts +6 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +3 -0
  70. package/dist/mdx/ast.d.ts +32 -0
  71. package/dist/mdx/ast.d.ts.map +1 -0
  72. package/dist/mdx/ast.js +148 -0
  73. package/dist/mdx/code.d.ts +17 -0
  74. package/dist/mdx/code.d.ts.map +1 -0
  75. package/dist/mdx/code.js +327 -0
  76. package/dist/mdx/compile.d.ts +29 -0
  77. package/dist/mdx/compile.d.ts.map +1 -0
  78. package/dist/mdx/compile.js +59 -0
  79. package/dist/mdx/diff.d.ts +9 -0
  80. package/dist/mdx/diff.d.ts.map +1 -0
  81. package/dist/mdx/diff.js +171 -0
  82. package/dist/mdx/headings.d.ts +4 -0
  83. package/dist/mdx/headings.d.ts.map +1 -0
  84. package/dist/mdx/headings.js +42 -0
  85. package/dist/mdx/links.d.ts +4 -0
  86. package/dist/mdx/links.d.ts.map +1 -0
  87. package/dist/mdx/links.js +144 -0
  88. package/dist/mdx/utils.d.ts +10 -0
  89. package/dist/mdx/utils.d.ts.map +1 -0
  90. package/dist/mdx/utils.js +64 -0
  91. package/dist/og/image.d.ts +25 -0
  92. package/dist/og/image.d.ts.map +1 -0
  93. package/dist/og/image.js +224 -0
  94. package/dist/og/metadata.d.ts +7 -0
  95. package/dist/og/metadata.d.ts.map +1 -0
  96. package/dist/og/metadata.js +198 -0
  97. package/dist/og/response.d.ts +4 -0
  98. package/dist/og/response.d.ts.map +1 -0
  99. package/dist/og/response.js +49 -0
  100. package/dist/og/rss.d.ts +4 -0
  101. package/dist/og/rss.d.ts.map +1 -0
  102. package/dist/og/rss.js +96 -0
  103. package/dist/og/sitemap.d.ts +7 -0
  104. package/dist/og/sitemap.d.ts.map +1 -0
  105. package/dist/og/sitemap.js +90 -0
  106. package/dist/og/types.d.ts +65 -0
  107. package/dist/og/types.d.ts.map +1 -0
  108. package/dist/og/types.js +1 -0
  109. package/dist/og.d.ts +6 -0
  110. package/dist/og.d.ts.map +1 -0
  111. package/dist/og.js +5 -0
  112. package/dist/routes.d.ts +2 -0
  113. package/dist/routes.d.ts.map +1 -0
  114. package/dist/routes.js +1 -0
  115. package/dist/search/algolia.d.ts +10 -0
  116. package/dist/search/algolia.d.ts.map +1 -0
  117. package/dist/search/algolia.js +82 -0
  118. package/dist/search/cloudflare-sync.d.ts +5 -0
  119. package/dist/search/cloudflare-sync.d.ts.map +1 -0
  120. package/dist/search/cloudflare-sync.js +169 -0
  121. package/dist/search/cloudflare.d.ts +11 -0
  122. package/dist/search/cloudflare.d.ts.map +1 -0
  123. package/dist/search/cloudflare.js +126 -0
  124. package/dist/search/local.d.ts +9 -0
  125. package/dist/search/local.d.ts.map +1 -0
  126. package/dist/search/local.js +165 -0
  127. package/dist/search/runtime.d.ts +41 -0
  128. package/dist/search/runtime.d.ts.map +1 -0
  129. package/dist/search/runtime.js +152 -0
  130. package/dist/search/types.d.ts +172 -0
  131. package/dist/search/types.d.ts.map +1 -0
  132. package/dist/search/types.js +1 -0
  133. package/dist/search/typesense.d.ts +11 -0
  134. package/dist/search/typesense.d.ts.map +1 -0
  135. package/dist/search/typesense.js +91 -0
  136. package/dist/search/utils.d.ts +11 -0
  137. package/dist/search/utils.d.ts.map +1 -0
  138. package/dist/search/utils.js +93 -0
  139. package/dist/search.d.ts +8 -0
  140. package/dist/search.d.ts.map +1 -0
  141. package/dist/search.js +7 -0
  142. package/dist/svelte.d.ts +27 -0
  143. package/dist/svelte.d.ts.map +1 -0
  144. package/dist/svelte.js +45 -0
  145. package/dist/testing.d.ts +3 -0
  146. package/dist/testing.d.ts.map +1 -0
  147. package/dist/testing.js +23 -0
  148. package/dist/theme/Article.svelte +145 -0
  149. package/dist/theme/Article.svelte.d.ts +36 -0
  150. package/dist/theme/Article.svelte.d.ts.map +1 -0
  151. package/dist/theme/AskAiPanel.svelte +241 -0
  152. package/dist/theme/AskAiPanel.svelte.d.ts +31 -0
  153. package/dist/theme/AskAiPanel.svelte.d.ts.map +1 -0
  154. package/dist/theme/Brand.svelte +19 -0
  155. package/dist/theme/Brand.svelte.d.ts +22 -0
  156. package/dist/theme/Brand.svelte.d.ts.map +1 -0
  157. package/dist/theme/Button.svelte +34 -0
  158. package/dist/theme/Button.svelte.d.ts +41 -0
  159. package/dist/theme/Button.svelte.d.ts.map +1 -0
  160. package/dist/theme/Checkbox.svelte +63 -0
  161. package/dist/theme/Checkbox.svelte.d.ts +45 -0
  162. package/dist/theme/Checkbox.svelte.d.ts.map +1 -0
  163. package/dist/theme/CodeBlock.svelte +6 -0
  164. package/dist/theme/CodeBlock.svelte.d.ts +22 -0
  165. package/dist/theme/CodeBlock.svelte.d.ts.map +1 -0
  166. package/dist/theme/DocPage.svelte +15 -0
  167. package/dist/theme/DocPage.svelte.d.ts +33 -0
  168. package/dist/theme/DocPage.svelte.d.ts.map +1 -0
  169. package/dist/theme/DocsApp.svelte +194 -0
  170. package/dist/theme/DocsApp.svelte.d.ts +60 -0
  171. package/dist/theme/DocsApp.svelte.d.ts.map +1 -0
  172. package/dist/theme/DocsLayout.svelte +99 -0
  173. package/dist/theme/DocsLayout.svelte.d.ts +39 -0
  174. package/dist/theme/DocsLayout.svelte.d.ts.map +1 -0
  175. package/dist/theme/DocsShell.svelte +91 -0
  176. package/dist/theme/DocsShell.svelte.d.ts +34 -0
  177. package/dist/theme/DocsShell.svelte.d.ts.map +1 -0
  178. package/dist/theme/ErrorPage.svelte +113 -0
  179. package/dist/theme/ErrorPage.svelte.d.ts +34 -0
  180. package/dist/theme/ErrorPage.svelte.d.ts.map +1 -0
  181. package/dist/theme/FloatingToolbar.svelte +8 -0
  182. package/dist/theme/FloatingToolbar.svelte.d.ts +22 -0
  183. package/dist/theme/FloatingToolbar.svelte.d.ts.map +1 -0
  184. package/dist/theme/Footer.svelte +18 -0
  185. package/dist/theme/Footer.svelte.d.ts +24 -0
  186. package/dist/theme/Footer.svelte.d.ts.map +1 -0
  187. package/dist/theme/FooterLinks.svelte +37 -0
  188. package/dist/theme/FooterLinks.svelte.d.ts +22 -0
  189. package/dist/theme/FooterLinks.svelte.d.ts.map +1 -0
  190. package/dist/theme/FormField.svelte +41 -0
  191. package/dist/theme/FormField.svelte.d.ts +35 -0
  192. package/dist/theme/FormField.svelte.d.ts.map +1 -0
  193. package/dist/theme/HomePage.svelte +284 -0
  194. package/dist/theme/HomePage.svelte.d.ts +65 -0
  195. package/dist/theme/HomePage.svelte.d.ts.map +1 -0
  196. package/dist/theme/Input.svelte +36 -0
  197. package/dist/theme/Input.svelte.d.ts +34 -0
  198. package/dist/theme/Input.svelte.d.ts.map +1 -0
  199. package/dist/theme/LayoutShell.svelte +120 -0
  200. package/dist/theme/LayoutShell.svelte.d.ts +43 -0
  201. package/dist/theme/LayoutShell.svelte.d.ts.map +1 -0
  202. package/dist/theme/LocalizedLink.svelte +21 -0
  203. package/dist/theme/LocalizedLink.svelte.d.ts +38 -0
  204. package/dist/theme/LocalizedLink.svelte.d.ts.map +1 -0
  205. package/dist/theme/MobileNav.svelte +20 -0
  206. package/dist/theme/MobileNav.svelte.d.ts +26 -0
  207. package/dist/theme/MobileNav.svelte.d.ts.map +1 -0
  208. package/dist/theme/Navbar.svelte +69 -0
  209. package/dist/theme/Navbar.svelte.d.ts +29 -0
  210. package/dist/theme/Navbar.svelte.d.ts.map +1 -0
  211. package/dist/theme/PageLayout.svelte +49 -0
  212. package/dist/theme/PageLayout.svelte.d.ts +34 -0
  213. package/dist/theme/PageLayout.svelte.d.ts.map +1 -0
  214. package/dist/theme/PageShell.svelte +98 -0
  215. package/dist/theme/PageShell.svelte.d.ts +35 -0
  216. package/dist/theme/PageShell.svelte.d.ts.map +1 -0
  217. package/dist/theme/PageTools.svelte +87 -0
  218. package/dist/theme/PageTools.svelte.d.ts +25 -0
  219. package/dist/theme/PageTools.svelte.d.ts.map +1 -0
  220. package/dist/theme/RenderError.svelte +62 -0
  221. package/dist/theme/RenderError.svelte.d.ts +31 -0
  222. package/dist/theme/RenderError.svelte.d.ts.map +1 -0
  223. package/dist/theme/RootLayout.svelte +274 -0
  224. package/dist/theme/RootLayout.svelte.d.ts +47 -0
  225. package/dist/theme/RootLayout.svelte.d.ts.map +1 -0
  226. package/dist/theme/RouteRenderError.svelte +53 -0
  227. package/dist/theme/RouteRenderError.svelte.d.ts +34 -0
  228. package/dist/theme/RouteRenderError.svelte.d.ts.map +1 -0
  229. package/dist/theme/SafeRenderError.svelte +49 -0
  230. package/dist/theme/SafeRenderError.svelte.d.ts +33 -0
  231. package/dist/theme/SafeRenderError.svelte.d.ts.map +1 -0
  232. package/dist/theme/ScopeSwitcher.svelte +107 -0
  233. package/dist/theme/ScopeSwitcher.svelte.d.ts +26 -0
  234. package/dist/theme/ScopeSwitcher.svelte.d.ts.map +1 -0
  235. package/dist/theme/SearchDialog.svelte +200 -0
  236. package/dist/theme/SearchDialog.svelte.d.ts +31 -0
  237. package/dist/theme/SearchDialog.svelte.d.ts.map +1 -0
  238. package/dist/theme/Select.svelte +37 -0
  239. package/dist/theme/Select.svelte.d.ts +42 -0
  240. package/dist/theme/Select.svelte.d.ts.map +1 -0
  241. package/dist/theme/SidebarTree.svelte +148 -0
  242. package/dist/theme/SidebarTree.svelte.d.ts +24 -0
  243. package/dist/theme/SidebarTree.svelte.d.ts.map +1 -0
  244. package/dist/theme/SocialNav.svelte +17 -0
  245. package/dist/theme/SocialNav.svelte.d.ts +22 -0
  246. package/dist/theme/SocialNav.svelte.d.ts.map +1 -0
  247. package/dist/theme/TableOfContents.svelte +73 -0
  248. package/dist/theme/TableOfContents.svelte.d.ts +25 -0
  249. package/dist/theme/TableOfContents.svelte.d.ts.map +1 -0
  250. package/dist/theme/Textarea.svelte +33 -0
  251. package/dist/theme/Textarea.svelte.d.ts +33 -0
  252. package/dist/theme/Textarea.svelte.d.ts.map +1 -0
  253. package/dist/theme/ThemeInit.svelte +16 -0
  254. package/dist/theme/ThemeInit.svelte.d.ts +23 -0
  255. package/dist/theme/ThemeInit.svelte.d.ts.map +1 -0
  256. package/dist/theme/ThemeToggle.svelte +37 -0
  257. package/dist/theme/ThemeToggle.svelte.d.ts +23 -0
  258. package/dist/theme/ThemeToggle.svelte.d.ts.map +1 -0
  259. package/dist/theme/TopNav.svelte +23 -0
  260. package/dist/theme/TopNav.svelte.d.ts +22 -0
  261. package/dist/theme/TopNav.svelte.d.ts.map +1 -0
  262. package/dist/theme/base.css +240 -0
  263. package/dist/theme/defaults.d.ts +4 -0
  264. package/dist/theme/defaults.d.ts.map +1 -0
  265. package/dist/theme/defaults.js +55 -0
  266. package/dist/theme/forms.d.ts +4 -0
  267. package/dist/theme/forms.d.ts.map +1 -0
  268. package/dist/theme/forms.js +3 -0
  269. package/dist/theme/headless.d.ts +62 -0
  270. package/dist/theme/headless.d.ts.map +1 -0
  271. package/dist/theme/headless.js +1064 -0
  272. package/dist/theme/index.d.ts +41 -0
  273. package/dist/theme/index.d.ts.map +1 -0
  274. package/dist/theme/index.js +38 -0
  275. package/dist/theme/portal.d.ts +6 -0
  276. package/dist/theme/portal.d.ts.map +1 -0
  277. package/dist/theme/portal.js +59 -0
  278. package/dist/theme/styles.css +4232 -0
  279. package/dist/theme/types.d.ts +363 -0
  280. package/dist/theme/types.d.ts.map +1 -0
  281. package/dist/theme/types.js +1 -0
  282. package/dist/virtual.d.ts +65 -0
  283. package/dist/vite.d.ts +16 -0
  284. package/dist/vite.d.ts.map +1 -0
  285. package/dist/vite.js +386 -0
  286. package/package.json +132 -0
@@ -0,0 +1,4232 @@
1
+ @import "tailwindcss";
2
+ @source "./**/*.{svelte,ts,js}";
3
+
4
+ @import 'katex/dist/katex.min.css';
5
+
6
+ @theme {
7
+ --font-sans: "IBM Plex Sans", "Avenir Next", sans-serif;
8
+ --font-mono: "JetBrains Mono", "SFMono-Regular", monospace;
9
+ --color-sd-bg: #f8f7f2;
10
+ --color-sd-ink: #161612;
11
+ --color-sd-muted: #68675f;
12
+ --color-sd-line: #dedbd0;
13
+ --color-sd-panel: #fffdf7;
14
+ --color-sd-accent: #007f68;
15
+ --color-sd-accent-2: #d64735;
16
+ }
17
+
18
+ :root {
19
+ color-scheme: light;
20
+ --sd-bg: #f8f7f2;
21
+ --sd-ink: #161612;
22
+ --sd-muted: #68675f;
23
+ --sd-line: #dedbd0;
24
+ --sd-grid-line: color-mix(in srgb, var(--sd-line) 42%, transparent);
25
+ --sd-panel: #fffdf7;
26
+ --sd-accent: #007f68;
27
+ --sd-accent-2: #d64735;
28
+ --sd-radius: 0px;
29
+ --sd-font-display: var(--font-sans);
30
+ --sd-scrollbar-size: 10px;
31
+ --sd-scrollbar-thumb: color-mix(in srgb, var(--sd-ink) 30%, transparent);
32
+ --sd-scrollbar-thumb-hover: color-mix(in srgb, var(--sd-accent) 62%, var(--sd-ink));
33
+ --sd-scrollbar-track: transparent;
34
+ }
35
+
36
+ :root[data-theme="dark"],
37
+ html:has(.sd-root[data-theme="dark"]),
38
+ .sd-root[data-theme="dark"] {
39
+ color-scheme: dark;
40
+ --sd-bg: #11130f;
41
+ --sd-ink: #f4f1e8;
42
+ --sd-muted: #aaa698;
43
+ --sd-line: #2f332d;
44
+ --sd-grid-line: color-mix(in srgb, var(--sd-line) 45%, transparent);
45
+ --sd-panel: #181b16;
46
+ --sd-accent: #50d6b3;
47
+ --sd-accent-2: #ff8a66;
48
+ --sd-scrollbar-thumb: color-mix(in srgb, var(--sd-ink) 34%, transparent);
49
+ --sd-scrollbar-thumb-hover: color-mix(in srgb, var(--sd-accent) 70%, var(--sd-ink));
50
+ }
51
+
52
+ html {
53
+ scroll-behavior: auto;
54
+ background: var(--sd-bg);
55
+ color: var(--sd-ink);
56
+ overflow-y: auto;
57
+ scrollbar-width: thin;
58
+ scrollbar-color: transparent transparent;
59
+ }
60
+
61
+ body {
62
+ margin: 0;
63
+ font-family: var(--font-sans);
64
+ background: var(--sd-bg);
65
+ color: var(--sd-ink);
66
+ scrollbar-width: thin;
67
+ scrollbar-color: transparent transparent;
68
+ }
69
+
70
+ :is(
71
+ html,
72
+ body,
73
+ .sd-sidebar,
74
+ .sd-toc,
75
+ .sd-topbar-menu,
76
+ .sd-search-results,
77
+ .sd-chat-messages,
78
+ .sd-prose table,
79
+ .sd-code code,
80
+ .sd-prose pre code,
81
+ .sd-diff-scroll
82
+ ) {
83
+ scrollbar-width: thin;
84
+ scrollbar-color: transparent transparent;
85
+ }
86
+
87
+ html.sd-is-window-scrolling,
88
+ body.sd-is-window-scrolling,
89
+ :is(
90
+ .sd-sidebar,
91
+ .sd-toc,
92
+ .sd-topbar-menu,
93
+ .sd-search-results,
94
+ .sd-chat-messages,
95
+ .sd-prose table,
96
+ .sd-code code,
97
+ .sd-prose pre code,
98
+ .sd-diff-scroll
99
+ ):is(:hover, :focus, :focus-within, .sd-is-scrolling) {
100
+ scrollbar-color: var(--sd-scrollbar-thumb) var(--sd-scrollbar-track);
101
+ }
102
+
103
+ :is(
104
+ html,
105
+ body,
106
+ .sd-sidebar,
107
+ .sd-toc,
108
+ .sd-topbar-menu,
109
+ .sd-search-results,
110
+ .sd-chat-messages,
111
+ .sd-prose table,
112
+ .sd-code code,
113
+ .sd-prose pre code,
114
+ .sd-diff-scroll
115
+ )::-webkit-scrollbar {
116
+ width: var(--sd-scrollbar-size);
117
+ height: var(--sd-scrollbar-size);
118
+ }
119
+
120
+ :is(
121
+ html,
122
+ body,
123
+ .sd-sidebar,
124
+ .sd-toc,
125
+ .sd-topbar-menu,
126
+ .sd-search-results,
127
+ .sd-chat-messages,
128
+ .sd-prose table,
129
+ .sd-code code,
130
+ .sd-prose pre code,
131
+ .sd-diff-scroll
132
+ )::-webkit-scrollbar-track {
133
+ background: var(--sd-scrollbar-track);
134
+ }
135
+
136
+ :is(
137
+ html,
138
+ body,
139
+ .sd-sidebar,
140
+ .sd-toc,
141
+ .sd-topbar-menu,
142
+ .sd-search-results,
143
+ .sd-chat-messages,
144
+ .sd-prose table,
145
+ .sd-code code,
146
+ .sd-prose pre code,
147
+ .sd-diff-scroll
148
+ )::-webkit-scrollbar-thumb {
149
+ border: 3px solid transparent;
150
+ border-radius: 999px;
151
+ background: transparent;
152
+ background-clip: padding-box;
153
+ }
154
+
155
+ html.sd-is-window-scrolling::-webkit-scrollbar-thumb,
156
+ body.sd-is-window-scrolling::-webkit-scrollbar-thumb,
157
+ :is(
158
+ .sd-sidebar,
159
+ .sd-toc,
160
+ .sd-topbar-menu,
161
+ .sd-search-results,
162
+ .sd-chat-messages,
163
+ .sd-prose table,
164
+ .sd-code code,
165
+ .sd-prose pre code,
166
+ .sd-diff-scroll
167
+ ):is(:hover, :focus, :focus-within, .sd-is-scrolling)::-webkit-scrollbar-thumb {
168
+ background-color: var(--sd-scrollbar-thumb);
169
+ }
170
+
171
+ :is(
172
+ html,
173
+ body,
174
+ .sd-sidebar,
175
+ .sd-toc,
176
+ .sd-topbar-menu,
177
+ .sd-search-results,
178
+ .sd-chat-messages,
179
+ .sd-prose table,
180
+ .sd-code code,
181
+ .sd-prose pre code,
182
+ .sd-diff-scroll
183
+ )::-webkit-scrollbar-thumb:hover {
184
+ background-color: var(--sd-scrollbar-thumb-hover);
185
+ }
186
+
187
+ @supports (overflow: overlay) {
188
+ html {
189
+ overflow-y: overlay;
190
+ }
191
+
192
+ .sd-sidebar,
193
+ .sd-toc,
194
+ .sd-topbar-menu,
195
+ .sd-search-results,
196
+ .sd-chat-messages,
197
+ .sd-prose table,
198
+ .sd-diff-scroll {
199
+ overflow: overlay;
200
+ }
201
+
202
+ .sd-code code,
203
+ .sd-prose pre code {
204
+ overflow-x: overlay;
205
+ overflow-y: hidden;
206
+ }
207
+ }
208
+
209
+ @media (prefers-reduced-motion: reduce) {
210
+ *, *::before, *::after {
211
+ animation-duration: 0.01ms !important;
212
+ animation-iteration-count: 1 !important;
213
+ scroll-behavior: auto !important;
214
+ transition-duration: 0.01ms !important;
215
+ }
216
+ }
217
+
218
+ @keyframes sd-fade-in {
219
+ from { opacity: 0; }
220
+ to { opacity: 1; }
221
+ }
222
+
223
+ @keyframes sd-dialog-in {
224
+ from {
225
+ opacity: 0;
226
+ transform: translateX(-50%) translateY(-8px) scale(.985);
227
+ }
228
+ to {
229
+ opacity: 1;
230
+ transform: translateX(-50%) translateY(0) scale(1);
231
+ }
232
+ }
233
+
234
+ @keyframes sd-panel-in {
235
+ from {
236
+ opacity: 0;
237
+ transform: translateX(8px);
238
+ }
239
+ to {
240
+ opacity: 1;
241
+ transform: translateX(0);
242
+ }
243
+ }
244
+
245
+ @keyframes sd-pixel-wave {
246
+ 0%, 100% {
247
+ opacity: .52;
248
+ background: color-mix(in srgb, var(--sd-accent) var(--mix), var(--sd-line));
249
+ }
250
+ 38% {
251
+ opacity: .96;
252
+ background: color-mix(in srgb, var(--sd-accent-2) 42%, var(--sd-accent));
253
+ }
254
+ 64% {
255
+ opacity: .76;
256
+ background: color-mix(in srgb, var(--sd-accent) 64%, var(--sd-line));
257
+ }
258
+ }
259
+
260
+ @keyframes sd-reading-grid-drift {
261
+ from {
262
+ background-position: 0 0, 0 0, 0 0;
263
+ }
264
+ to {
265
+ background-position: 56px 56px, 56px 56px, 0 0;
266
+ }
267
+ }
268
+
269
+ .sd-root {
270
+ position: relative;
271
+ isolation: isolate;
272
+ min-height: 100vh;
273
+ background:
274
+ linear-gradient(var(--sd-grid-line) 1px, transparent 1px),
275
+ linear-gradient(90deg, var(--sd-grid-line) 1px, transparent 1px),
276
+ var(--sd-bg);
277
+ background-size: 48px 48px;
278
+ }
279
+
280
+ .sd-root[data-surface="reading"] {
281
+ background:
282
+ linear-gradient(180deg, color-mix(in srgb, var(--sd-panel) 58%, transparent), transparent 18rem),
283
+ var(--sd-bg);
284
+ }
285
+
286
+ .sd-root.sd-has-background-slot,
287
+ .sd-root.sd-has-background-slot[data-surface="reading"] {
288
+ background: var(--sd-bg);
289
+ }
290
+
291
+ .sd-root.sd-has-background-slot[data-surface="reading"]::after {
292
+ display: none;
293
+ }
294
+
295
+ .sd-root.sd-has-background-slot .sd-home-hero::before {
296
+ display: none;
297
+ }
298
+
299
+ .sd-background-slot {
300
+ position: fixed;
301
+ inset: 0;
302
+ z-index: 0;
303
+ pointer-events: none;
304
+ overflow: hidden;
305
+ }
306
+
307
+ .sd-background-slot > * {
308
+ width: 100%;
309
+ min-height: 100%;
310
+ }
311
+
312
+ .sd-root[data-surface="reading"]::after {
313
+ content: "";
314
+ position: fixed;
315
+ inset: auto 0 0;
316
+ height: min(22rem, 42vh);
317
+ pointer-events: none;
318
+ z-index: 0;
319
+ background:
320
+ linear-gradient(var(--sd-grid-line) 1px, transparent 1px),
321
+ linear-gradient(90deg, var(--sd-grid-line) 1px, transparent 1px),
322
+ radial-gradient(circle at 72% 86%, color-mix(in srgb, var(--sd-accent) 13%, transparent), transparent 19rem);
323
+ background-size: 56px 56px, 56px 56px, 100% 100%;
324
+ mask-image: linear-gradient(to top, black 12%, transparent 100%);
325
+ opacity: .72;
326
+ animation: sd-reading-grid-drift 24s linear infinite;
327
+ }
328
+
329
+ .sd-root[data-surface="reading"] > main,
330
+ .sd-root[data-surface="reading"] > .sd-doc-shell,
331
+ .sd-root[data-surface="reading"] > .sd-page,
332
+ .sd-root[data-surface="reading"] > .sd-footer {
333
+ position: relative;
334
+ z-index: 1;
335
+ }
336
+
337
+ .sd-root.sd-has-background-slot > main,
338
+ .sd-root.sd-has-background-slot > .sd-doc-shell,
339
+ .sd-root.sd-has-background-slot > .sd-page,
340
+ .sd-root.sd-has-background-slot > .sd-footer {
341
+ position: relative;
342
+ z-index: 1;
343
+ }
344
+
345
+ .sd-skip {
346
+ position: fixed;
347
+ left: 1rem;
348
+ top: -4rem;
349
+ z-index: 50;
350
+ background: var(--sd-ink);
351
+ color: var(--sd-bg);
352
+ padding: .6rem .8rem;
353
+ }
354
+
355
+ .sd-skip:focus {
356
+ top: 1rem;
357
+ }
358
+
359
+ .sd-topbar {
360
+ position: sticky;
361
+ top: 0;
362
+ z-index: 20;
363
+ display: flex;
364
+ align-items: center;
365
+ gap: .5rem;
366
+ height: 64px;
367
+ padding: 0 clamp(1.2rem, 4vw, 2rem);
368
+ border-bottom: 1px solid var(--sd-line);
369
+ background: color-mix(in srgb, var(--sd-bg) 88%, transparent);
370
+ backdrop-filter: blur(16px);
371
+ white-space: nowrap;
372
+ }
373
+
374
+ .sd-topbar-menu {
375
+ display: contents;
376
+ }
377
+
378
+ .sd-topbar-tools {
379
+ display: inline-flex;
380
+ align-items: center;
381
+ gap: .45rem;
382
+ }
383
+
384
+ .sd-mobile-docnav {
385
+ display: none;
386
+ }
387
+
388
+ .sd-brand,
389
+ .sd-topnav a,
390
+ .sd-socialnav a,
391
+ .sd-sidebar a,
392
+ .sd-sidebar-link,
393
+ .sd-sidebar-summary-link,
394
+ .sd-sidebar-section-link,
395
+ .sd-toc-link,
396
+ .sd-button,
397
+ .sd-prev-next,
398
+ .sd-footer a {
399
+ color: inherit;
400
+ text-decoration: none;
401
+ }
402
+
403
+ .sd-brand,
404
+ .sd-brand *,
405
+ .sd-topnav a,
406
+ .sd-socialnav a,
407
+ .sd-theme-toggle,
408
+ .sd-menu-button,
409
+ .sd-search-trigger,
410
+ .sd-search-trigger kbd,
411
+ .sd-search-results a,
412
+ .sd-scope-trigger,
413
+ .sd-scope-options a,
414
+ .sd-checkbox,
415
+ .sd-checkbox *,
416
+ .sd-control-button,
417
+ .sd-floating-toolbar,
418
+ .sd-floating-tool,
419
+ .sd-floating-tool-label,
420
+ .sd-sidebar-section-heading,
421
+ .sd-sidebar-section-heading *,
422
+ .sd-sidebar-section-label,
423
+ .sd-sidebar-summary,
424
+ .sd-sidebar-summary *,
425
+ .sd-sidebar-link,
426
+ .sd-sidebar-link *,
427
+ .sd-toc-title,
428
+ .sd-toc-link,
429
+ .sd-doc-eyebrow,
430
+ .sd-doc-eyebrow *,
431
+ .sd-kicker,
432
+ .sd-kicker *,
433
+ .sd-heading-anchor,
434
+ .sd-code-header,
435
+ .sd-code-header *,
436
+ .sd-code-copy,
437
+ .sd-diff-column-label,
438
+ .sd-diff-line-no,
439
+ .sd-prev-next,
440
+ .sd-prev-next *,
441
+ .sd-button,
442
+ .sd-button *,
443
+ .sd-pixel-stage,
444
+ .sd-pixel-stage *,
445
+ .sd-home-grid a,
446
+ .sd-home-grid a *,
447
+ .sd-qa-num,
448
+ .sd-qa-chips li,
449
+ .sd-chat-header,
450
+ .sd-chat-header *,
451
+ .sd-chat-icon-button,
452
+ .sd-chat-suggestions,
453
+ .sd-chat-suggestions button,
454
+ .sd-chat-send,
455
+ .sd-footer a,
456
+ .sd-footer a * {
457
+ -webkit-user-select: none;
458
+ -moz-user-select: none;
459
+ user-select: none;
460
+ }
461
+
462
+ .sd-brand,
463
+ .sd-brand *,
464
+ .sd-brand-logo,
465
+ .sd-topnav a,
466
+ .sd-socialnav a,
467
+ .sd-search-results a,
468
+ .sd-scope-options a,
469
+ .sd-sidebar a,
470
+ .sd-sidebar-link,
471
+ .sd-sidebar-summary-link,
472
+ .sd-toc-link,
473
+ .sd-button,
474
+ .sd-button *,
475
+ .sd-prev-next,
476
+ .sd-prev-next *,
477
+ .sd-code-copy,
478
+ .sd-home-visual,
479
+ .sd-home-grid a,
480
+ .sd-home-grid a *,
481
+ .sd-chat-citations a,
482
+ .sd-chat-suggestions button,
483
+ .sd-footer a,
484
+ .sd-footer a * {
485
+ -webkit-user-drag: none;
486
+ }
487
+
488
+ .sd-brand {
489
+ display: inline-flex;
490
+ align-items: center;
491
+ gap: .55rem;
492
+ font-family: var(--font-sans);
493
+ font-size: 1rem;
494
+ font-weight: 700;
495
+ letter-spacing: -.005em;
496
+ margin-right: 1.4rem;
497
+ }
498
+
499
+ .sd-brand-mark {
500
+ width: 1.3rem;
501
+ height: 1.3rem;
502
+ image-rendering: pixelated;
503
+ background:
504
+ linear-gradient(90deg, var(--sd-accent) 50%, transparent 0) 0 0 / 50% 50%,
505
+ linear-gradient(90deg, transparent 50%, var(--sd-accent-2) 0) 0 100% / 50% 50%,
506
+ var(--sd-ink);
507
+ }
508
+
509
+ .sd-brand-logo {
510
+ width: 1.35rem;
511
+ height: 1.35rem;
512
+ object-fit: contain;
513
+ }
514
+
515
+ .sd-topnav {
516
+ display: flex;
517
+ align-items: center;
518
+ gap: 1.4rem;
519
+ color: var(--sd-muted);
520
+ font-family: var(--font-sans);
521
+ font-size: .885rem;
522
+ font-weight: 500;
523
+ letter-spacing: -.005em;
524
+ }
525
+
526
+ .sd-socialnav {
527
+ display: flex;
528
+ align-items: center;
529
+ gap: .9rem;
530
+ color: var(--sd-muted);
531
+ font-family: var(--font-sans);
532
+ font-size: .885rem;
533
+ font-weight: 500;
534
+ }
535
+
536
+ .sd-topbar-spacer {
537
+ flex: 1 1 auto;
538
+ }
539
+
540
+ .sd-topbar-tools .sd-search-trigger {
541
+ margin-left: 0;
542
+ margin-right: .35rem;
543
+ }
544
+
545
+ .sd-topnav a:hover,
546
+ .sd-socialnav a:hover,
547
+ .sd-sidebar a:hover,
548
+ .sd-sidebar-summary-link:hover,
549
+ .sd-toc-link:hover,
550
+ .sd-footer a:hover {
551
+ color: var(--sd-accent);
552
+ }
553
+
554
+ .sd-topnav a.sd-active {
555
+ color: var(--sd-accent);
556
+ }
557
+
558
+ .sd-theme-toggle,
559
+ .sd-menu-button,
560
+ .sd-search-trigger,
561
+ .sd-button {
562
+ border: 1px solid var(--sd-line);
563
+ background: var(--sd-panel);
564
+ color: var(--sd-ink);
565
+ min-height: 2.35rem;
566
+ padding: 0 .8rem;
567
+ font: inherit;
568
+ border-radius: var(--sd-radius);
569
+ transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
570
+ }
571
+
572
+ .sd-theme-toggle {
573
+ display: inline-flex;
574
+ align-items: center;
575
+ justify-content: center;
576
+ width: 2.35rem;
577
+ padding: 0;
578
+ }
579
+
580
+ .sd-theme-toggle svg {
581
+ width: 1.05rem;
582
+ height: 1.05rem;
583
+ fill: none;
584
+ stroke: currentColor;
585
+ stroke-width: 1.9;
586
+ stroke-linecap: square;
587
+ stroke-linejoin: miter;
588
+ }
589
+
590
+ .sd-theme-toggle [data-theme-icon="light"],
591
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-theme-toggle [data-theme-icon="dark"] {
592
+ display: none;
593
+ }
594
+
595
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-theme-toggle [data-theme-icon="light"] {
596
+ display: block;
597
+ }
598
+
599
+ .sd-theme-toggle:focus-visible,
600
+ .sd-menu-button:focus-visible,
601
+ .sd-button:focus-visible,
602
+ .sd-search-trigger:focus-visible,
603
+ .sd-floating-tool:focus-visible,
604
+ .sd-sidebar a:focus-visible,
605
+ .sd-sidebar-link:focus-visible,
606
+ .sd-sidebar-summary:focus-visible,
607
+ .sd-sidebar-summary-link:focus-visible,
608
+ .sd-sidebar-section-link:focus-visible,
609
+ .sd-toc-link:focus-visible {
610
+ outline: 2px solid var(--sd-accent);
611
+ outline-offset: 2px;
612
+ }
613
+
614
+ .sd-field {
615
+ display: grid;
616
+ gap: .42rem;
617
+ max-width: 100%;
618
+ color: var(--sd-ink);
619
+ font-family: var(--font-sans);
620
+ }
621
+
622
+ .sd-field-label {
623
+ display: flex;
624
+ align-items: baseline;
625
+ flex-wrap: wrap;
626
+ gap: .35rem;
627
+ max-width: 100%;
628
+ color: var(--sd-ink);
629
+ font: 650 .88rem/1.35 var(--font-sans);
630
+ }
631
+
632
+ .sd-field-required,
633
+ .sd-field-error {
634
+ color: var(--sd-accent-2);
635
+ }
636
+
637
+ .sd-field-description,
638
+ .sd-field-error {
639
+ margin: 0;
640
+ font: .8rem/1.45 var(--font-sans);
641
+ }
642
+
643
+ .sd-field-description {
644
+ color: var(--sd-muted);
645
+ }
646
+
647
+ .sd-input,
648
+ .sd-textarea,
649
+ .sd-select-control {
650
+ box-sizing: border-box;
651
+ width: 100%;
652
+ min-width: 0;
653
+ border: 1px solid var(--sd-line);
654
+ border-radius: var(--sd-radius);
655
+ background: var(--sd-panel);
656
+ color: var(--sd-ink);
657
+ font: .92rem/1.45 var(--font-sans);
658
+ outline: none;
659
+ transition: background .14s ease, border-color .14s ease, color .14s ease, opacity .14s ease;
660
+ }
661
+
662
+ .sd-input::placeholder,
663
+ .sd-textarea::placeholder {
664
+ color: color-mix(in srgb, var(--sd-muted) 72%, transparent);
665
+ }
666
+
667
+ .sd-input[data-density='sm'],
668
+ .sd-select[data-density='sm'] .sd-select-control {
669
+ min-height: 2rem;
670
+ padding: 0 .6rem;
671
+ font-size: .84rem;
672
+ }
673
+
674
+ .sd-input[data-density='md'],
675
+ .sd-select[data-density='md'] .sd-select-control {
676
+ min-height: 2.35rem;
677
+ padding: 0 .72rem;
678
+ }
679
+
680
+ .sd-input[data-density='lg'],
681
+ .sd-select[data-density='lg'] .sd-select-control {
682
+ min-height: 2.8rem;
683
+ padding: 0 .9rem;
684
+ font-size: 1rem;
685
+ }
686
+
687
+ .sd-textarea {
688
+ min-height: 6rem;
689
+ resize: vertical;
690
+ }
691
+
692
+ .sd-textarea[data-density='sm'] {
693
+ min-height: 4.6rem;
694
+ padding: .48rem .6rem;
695
+ font-size: .84rem;
696
+ }
697
+
698
+ .sd-textarea[data-density='md'] {
699
+ padding: .58rem .72rem;
700
+ }
701
+
702
+ .sd-textarea[data-density='lg'] {
703
+ min-height: 7rem;
704
+ padding: .72rem .9rem;
705
+ font-size: 1rem;
706
+ }
707
+
708
+ .sd-select {
709
+ position: relative;
710
+ display: inline-grid;
711
+ width: 100%;
712
+ max-width: 100%;
713
+ color: var(--sd-ink);
714
+ }
715
+
716
+ .sd-select-control {
717
+ appearance: none;
718
+ padding-right: 2.1rem;
719
+ }
720
+
721
+ .sd-select-icon {
722
+ position: absolute;
723
+ top: 50%;
724
+ right: .8rem;
725
+ width: .45rem;
726
+ height: .45rem;
727
+ pointer-events: none;
728
+ border-right: 1.5px solid currentColor;
729
+ border-bottom: 1.5px solid currentColor;
730
+ color: var(--sd-muted);
731
+ transform: translateY(-68%) rotate(45deg);
732
+ }
733
+
734
+ .sd-input:not(:disabled):hover,
735
+ .sd-textarea:not(:disabled):hover,
736
+ .sd-select-control:not(:disabled):hover {
737
+ border-color: color-mix(in srgb, var(--sd-accent) 48%, var(--sd-line));
738
+ }
739
+
740
+ .sd-input:focus-visible,
741
+ .sd-textarea:focus-visible,
742
+ .sd-select-control:focus-visible {
743
+ border-color: color-mix(in srgb, var(--sd-accent) 72%, var(--sd-line));
744
+ outline: 2px solid color-mix(in srgb, var(--sd-accent) 22%, transparent);
745
+ outline-offset: 1px;
746
+ }
747
+
748
+ .sd-input[aria-invalid='true'],
749
+ .sd-textarea[aria-invalid='true'],
750
+ .sd-select-control[aria-invalid='true'] {
751
+ border-color: color-mix(in srgb, var(--sd-accent-2) 70%, var(--sd-line));
752
+ background: color-mix(in srgb, var(--sd-accent-2) 5%, var(--sd-panel));
753
+ }
754
+
755
+ .sd-input:disabled,
756
+ .sd-textarea:disabled,
757
+ .sd-select-control:disabled {
758
+ cursor: not-allowed;
759
+ opacity: .56;
760
+ }
761
+
762
+ .sd-checkbox {
763
+ position: relative;
764
+ display: inline-grid;
765
+ grid-template-columns: auto minmax(0, 1fr);
766
+ align-items: flex-start;
767
+ gap: .55rem;
768
+ max-width: 100%;
769
+ color: var(--sd-ink);
770
+ font: .9rem/1.4 var(--font-sans);
771
+ cursor: pointer;
772
+ }
773
+
774
+ .sd-checkbox input {
775
+ position: absolute;
776
+ width: 1px;
777
+ height: 1px;
778
+ margin: 0;
779
+ opacity: 0;
780
+ pointer-events: none;
781
+ }
782
+
783
+ .sd-checkbox-box {
784
+ position: relative;
785
+ display: inline-flex;
786
+ align-items: center;
787
+ justify-content: center;
788
+ box-sizing: border-box;
789
+ border: 1px solid var(--sd-line);
790
+ background: var(--sd-panel);
791
+ color: var(--sd-bg);
792
+ transition: background .14s ease, border-color .14s ease, opacity .14s ease;
793
+ }
794
+
795
+ .sd-checkbox[data-density='sm'] .sd-checkbox-box {
796
+ width: .95rem;
797
+ height: .95rem;
798
+ margin-top: .13rem;
799
+ }
800
+
801
+ .sd-checkbox[data-density='md'] .sd-checkbox-box {
802
+ width: 1.08rem;
803
+ height: 1.08rem;
804
+ margin-top: .12rem;
805
+ }
806
+
807
+ .sd-checkbox[data-density='lg'] .sd-checkbox-box {
808
+ width: 1.22rem;
809
+ height: 1.22rem;
810
+ margin-top: .14rem;
811
+ }
812
+
813
+ .sd-checkbox-box svg {
814
+ position: absolute;
815
+ width: 78%;
816
+ height: 78%;
817
+ fill: none;
818
+ stroke: currentColor;
819
+ stroke-width: 2;
820
+ stroke-linecap: square;
821
+ stroke-linejoin: miter;
822
+ opacity: 0;
823
+ }
824
+
825
+ .sd-checkbox input:checked + .sd-checkbox-box,
826
+ .sd-checkbox input:indeterminate + .sd-checkbox-box {
827
+ border-color: var(--sd-accent);
828
+ background: var(--sd-accent);
829
+ }
830
+
831
+ .sd-checkbox input:checked + .sd-checkbox-box .sd-checkbox-check,
832
+ .sd-checkbox input:indeterminate + .sd-checkbox-box .sd-checkbox-minus {
833
+ opacity: 1;
834
+ }
835
+
836
+ .sd-checkbox input:focus-visible + .sd-checkbox-box {
837
+ outline: 2px solid var(--sd-accent);
838
+ outline-offset: 2px;
839
+ }
840
+
841
+ .sd-checkbox[data-invalid='true'] .sd-checkbox-box {
842
+ border-color: color-mix(in srgb, var(--sd-accent-2) 74%, var(--sd-line));
843
+ }
844
+
845
+ .sd-checkbox:has(input:disabled) {
846
+ cursor: not-allowed;
847
+ color: var(--sd-muted);
848
+ }
849
+
850
+ .sd-checkbox input:disabled + .sd-checkbox-box,
851
+ .sd-checkbox:has(input:disabled) .sd-checkbox-copy {
852
+ opacity: .58;
853
+ }
854
+
855
+ .sd-checkbox-copy {
856
+ display: grid;
857
+ gap: .12rem;
858
+ min-width: 0;
859
+ }
860
+
861
+ .sd-checkbox-label {
862
+ font-weight: 650;
863
+ }
864
+
865
+ .sd-checkbox-description {
866
+ color: var(--sd-muted);
867
+ font-size: .82rem;
868
+ }
869
+
870
+ .sd-control-button {
871
+ display: inline-flex;
872
+ align-items: center;
873
+ justify-content: center;
874
+ gap: .5rem;
875
+ border: 1px solid var(--sd-line);
876
+ border-radius: var(--sd-radius);
877
+ background: var(--sd-panel);
878
+ color: var(--sd-ink);
879
+ font: 650 .9rem/1 var(--font-sans);
880
+ max-width: 100%;
881
+ text-align: center;
882
+ overflow-wrap: anywhere;
883
+ white-space: normal;
884
+ cursor: pointer;
885
+ transition: background .14s ease, border-color .14s ease, color .14s ease, opacity .14s ease, transform .14s ease;
886
+ }
887
+
888
+ .sd-control-button[data-density='sm'] {
889
+ min-height: 2rem;
890
+ padding: 0 .68rem;
891
+ font-size: .82rem;
892
+ }
893
+
894
+ .sd-control-button[data-density='md'] {
895
+ min-height: 2.35rem;
896
+ padding: 0 .82rem;
897
+ }
898
+
899
+ .sd-control-button[data-density='lg'] {
900
+ min-height: 2.8rem;
901
+ padding: 0 1rem;
902
+ font-size: .96rem;
903
+ }
904
+
905
+ .sd-control-button[data-variant='primary'] {
906
+ border-color: var(--sd-ink);
907
+ background: var(--sd-ink);
908
+ color: var(--sd-bg);
909
+ }
910
+
911
+ .sd-control-button[data-variant='ghost'] {
912
+ background: transparent;
913
+ }
914
+
915
+ .sd-control-button[data-variant='danger'] {
916
+ border-color: color-mix(in srgb, var(--sd-accent-2) 72%, var(--sd-line));
917
+ background: color-mix(in srgb, var(--sd-accent-2) 10%, var(--sd-panel));
918
+ color: color-mix(in srgb, var(--sd-accent-2) 84%, var(--sd-ink));
919
+ }
920
+
921
+ .sd-control-button:not(:disabled):hover {
922
+ border-color: color-mix(in srgb, var(--sd-accent) 55%, var(--sd-line));
923
+ transform: translateY(-1px);
924
+ }
925
+
926
+ .sd-control-button[data-variant='primary']:not(:disabled):hover {
927
+ background: color-mix(in srgb, var(--sd-ink) 84%, var(--sd-accent) 16%);
928
+ }
929
+
930
+ .sd-control-button[data-variant='danger']:not(:disabled):hover {
931
+ border-color: var(--sd-accent-2);
932
+ background: color-mix(in srgb, var(--sd-accent-2) 14%, var(--sd-panel));
933
+ }
934
+
935
+ .sd-control-button:focus-visible {
936
+ outline: 2px solid var(--sd-accent);
937
+ outline-offset: 2px;
938
+ }
939
+
940
+ .sd-control-button:disabled {
941
+ cursor: not-allowed;
942
+ opacity: .48;
943
+ }
944
+
945
+ .sd-menu-button {
946
+ display: none;
947
+ align-items: center;
948
+ justify-content: center;
949
+ width: 2.45rem;
950
+ padding: 0;
951
+ margin-left: auto;
952
+ }
953
+
954
+ .sd-menu-button svg {
955
+ width: 1.08rem;
956
+ height: 1.08rem;
957
+ fill: none;
958
+ stroke: currentColor;
959
+ stroke-width: 1.9;
960
+ stroke-linecap: square;
961
+ stroke-linejoin: miter;
962
+ }
963
+
964
+ .sd-search-trigger {
965
+ display: inline-flex;
966
+ align-items: center;
967
+ gap: .55rem;
968
+ border-radius: 0;
969
+ color: var(--sd-muted);
970
+ }
971
+
972
+ .sd-theme-toggle:hover,
973
+ .sd-menu-button:hover,
974
+ .sd-search-trigger:hover,
975
+ .sd-floating-tool:hover,
976
+ .sd-button:hover {
977
+ border-color: color-mix(in srgb, var(--sd-accent) 55%, var(--sd-line));
978
+ transform: translateY(-1px);
979
+ }
980
+
981
+ .sd-search-trigger {
982
+ min-width: min(16rem, 28vw);
983
+ justify-content: space-between;
984
+ }
985
+
986
+ .sd-search-trigger kbd {
987
+ border: 1px solid var(--sd-line);
988
+ padding: .05rem .35rem;
989
+ color: var(--sd-muted);
990
+ font: .72rem var(--font-mono);
991
+ }
992
+
993
+ .sd-dialog-backdrop {
994
+ position: fixed;
995
+ inset: 0;
996
+ z-index: 60;
997
+ background: color-mix(in srgb, var(--sd-bg) 70%, transparent);
998
+ backdrop-filter: blur(8px);
999
+ animation: sd-fade-in .14s ease both;
1000
+ }
1001
+
1002
+ .sd-search-dialog {
1003
+ position: fixed;
1004
+ z-index: 70;
1005
+ border: 1px solid var(--sd-line);
1006
+ background: var(--sd-panel);
1007
+ color: var(--sd-ink);
1008
+ box-shadow: 0 24px 80px color-mix(in srgb, var(--sd-ink) 18%, transparent);
1009
+ animation: sd-dialog-in .16s ease both;
1010
+ }
1011
+
1012
+ .sd-search-dialog {
1013
+ left: 50%;
1014
+ top: 5.5rem;
1015
+ width: min(44rem, calc(100vw - 2rem));
1016
+ transform: translateX(-50%);
1017
+ }
1018
+
1019
+ .sd-search-box {
1020
+ display: block;
1021
+ border-bottom: 1px solid var(--sd-line);
1022
+ }
1023
+
1024
+ .sd-search-box input {
1025
+ width: 100%;
1026
+ box-sizing: border-box;
1027
+ border: 0;
1028
+ background: transparent;
1029
+ color: var(--sd-ink);
1030
+ font: inherit;
1031
+ }
1032
+
1033
+ .sd-search-box input {
1034
+ min-height: 3.6rem;
1035
+ padding: 0 1rem;
1036
+ font-size: 1.05rem;
1037
+ }
1038
+
1039
+ .sd-search-box input:focus {
1040
+ outline: none;
1041
+ }
1042
+
1043
+ .sd-search-results {
1044
+ display: grid;
1045
+ max-height: min(32rem, 70vh);
1046
+ overflow: auto;
1047
+ padding: .45rem;
1048
+ }
1049
+
1050
+ .sd-search-results a {
1051
+ display: grid;
1052
+ gap: .22rem;
1053
+ padding: .8rem;
1054
+ color: inherit;
1055
+ text-decoration: none;
1056
+ border: 1px solid transparent;
1057
+ }
1058
+
1059
+ .sd-search-results a.sd-active,
1060
+ .sd-search-results a:hover {
1061
+ border-color: var(--sd-line);
1062
+ background: color-mix(in srgb, var(--sd-accent) 10%, transparent);
1063
+ }
1064
+
1065
+ .sd-search-results span {
1066
+ font-family: var(--font-sans);
1067
+ font-weight: 650;
1068
+ }
1069
+
1070
+ .sd-search-results small,
1071
+ .sd-search-results p,
1072
+ .sd-empty-state {
1073
+ color: var(--sd-muted);
1074
+ }
1075
+
1076
+ .sd-search-results p,
1077
+ .sd-empty-state {
1078
+ margin: 0;
1079
+ font-size: .9rem;
1080
+ line-height: 1.5;
1081
+ }
1082
+
1083
+ .sd-empty-state {
1084
+ padding: 1rem;
1085
+ }
1086
+
1087
+ .sd-floating-toolbar {
1088
+ position: fixed;
1089
+ right: max(1rem, env(safe-area-inset-right));
1090
+ bottom: max(1rem, env(safe-area-inset-bottom));
1091
+ z-index: 50;
1092
+ display: inline-flex;
1093
+ align-items: center;
1094
+ gap: .3rem;
1095
+ border: 1px solid color-mix(in srgb, var(--sd-line) 86%, transparent);
1096
+ background: color-mix(in srgb, var(--sd-panel) 88%, transparent);
1097
+ box-shadow: 0 18px 42px color-mix(in srgb, var(--sd-ink) 13%, transparent);
1098
+ backdrop-filter: blur(14px);
1099
+ padding: .3rem;
1100
+ transition: padding .24s cubic-bezier(.4, 0, .2, 1), gap .24s cubic-bezier(.4, 0, .2, 1), background .24s ease, border-color .24s ease;
1101
+ }
1102
+
1103
+ .sd-floating-toolbar[data-mode='solo'] {
1104
+ background: transparent;
1105
+ border-color: transparent;
1106
+ box-shadow: none;
1107
+ backdrop-filter: none;
1108
+ padding: 0;
1109
+ gap: 0;
1110
+ }
1111
+
1112
+ .sd-floating-tool {
1113
+ display: inline-flex;
1114
+ align-items: center;
1115
+ justify-content: center;
1116
+ gap: .42rem;
1117
+ min-width: 2.2rem;
1118
+ min-height: 2.2rem;
1119
+ border: 1px solid transparent;
1120
+ background: transparent;
1121
+ color: var(--sd-muted);
1122
+ padding: 0 .6rem;
1123
+ font: .82rem var(--font-sans);
1124
+ border-radius: var(--sd-radius);
1125
+ cursor: pointer;
1126
+ transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease, padding .24s cubic-bezier(.4, 0, .2, 1), min-width .24s cubic-bezier(.4, 0, .2, 1), width .24s cubic-bezier(.4, 0, .2, 1);
1127
+ }
1128
+
1129
+ .sd-floating-tool-icon {
1130
+ padding: 0;
1131
+ min-width: 2.2rem;
1132
+ width: 2.2rem;
1133
+ }
1134
+
1135
+ .sd-floating-tool svg {
1136
+ width: 1rem;
1137
+ height: 1rem;
1138
+ fill: none;
1139
+ stroke: currentColor;
1140
+ stroke-width: 1.8;
1141
+ stroke-linecap: square;
1142
+ stroke-linejoin: miter;
1143
+ flex-shrink: 0;
1144
+ }
1145
+
1146
+ .sd-floating-tool-ai {
1147
+ background: var(--sd-ink);
1148
+ color: var(--sd-bg);
1149
+ overflow: hidden;
1150
+ padding: 0 .8rem 0 .65rem;
1151
+ }
1152
+
1153
+ .sd-floating-tool-label {
1154
+ display: inline-block;
1155
+ overflow: hidden;
1156
+ white-space: nowrap;
1157
+ max-width: 8rem;
1158
+ opacity: 1;
1159
+ transition: max-width .28s cubic-bezier(.4, 0, .2, 1), opacity .2s ease, margin .28s cubic-bezier(.4, 0, .2, 1);
1160
+ }
1161
+
1162
+ .sd-floating-tool-ai[data-collapsed='true'] {
1163
+ padding: 0;
1164
+ min-width: 2.2rem;
1165
+ width: 2.2rem;
1166
+ gap: 0;
1167
+ }
1168
+
1169
+ .sd-floating-tool-ai[data-collapsed='true'] .sd-floating-tool-label {
1170
+ max-width: 0;
1171
+ opacity: 0;
1172
+ margin-left: 0;
1173
+ margin-right: 0;
1174
+ }
1175
+
1176
+ .sd-floating-tool-back {
1177
+ animation: sd-floating-tool-pop .22s cubic-bezier(.4, 0, .2, 1) both;
1178
+ }
1179
+
1180
+ @keyframes sd-floating-tool-pop {
1181
+ 0% { opacity: 0; transform: scale(.85); }
1182
+ 100% { opacity: 1; transform: scale(1); }
1183
+ }
1184
+
1185
+ .sd-floating-tool:hover {
1186
+ background: color-mix(in srgb, var(--sd-accent) 10%, transparent);
1187
+ color: var(--sd-ink);
1188
+ }
1189
+
1190
+ .sd-floating-tool-ai:hover {
1191
+ background: color-mix(in srgb, var(--sd-ink) 86%, var(--sd-accent) 14%);
1192
+ color: var(--sd-bg);
1193
+ }
1194
+
1195
+ .sd-floating-toolbar[data-mode='solo'] .sd-floating-tool-icon {
1196
+ background: color-mix(in srgb, var(--sd-panel) 92%, transparent);
1197
+ border-color: color-mix(in srgb, var(--sd-line) 86%, transparent);
1198
+ box-shadow: 0 12px 28px color-mix(in srgb, var(--sd-ink) 12%, transparent);
1199
+ backdrop-filter: blur(12px);
1200
+ }
1201
+
1202
+ @media (prefers-reduced-motion: reduce) {
1203
+ .sd-floating-toolbar,
1204
+ .sd-floating-tool,
1205
+ .sd-floating-tool-label {
1206
+ transition: none;
1207
+ }
1208
+ .sd-floating-tool-back {
1209
+ animation: none;
1210
+ }
1211
+ }
1212
+
1213
+ .sd-chat-portal {
1214
+ display: contents;
1215
+ }
1216
+
1217
+ .sd-chat-panel {
1218
+ position: fixed;
1219
+ top: 80px;
1220
+ right: clamp(.5rem, 1.2vw, 1rem);
1221
+ bottom: clamp(.5rem, 1.2vw, 1rem);
1222
+ z-index: 70;
1223
+ width: min(24rem, calc(100vw - 1.5rem));
1224
+ display: grid;
1225
+ grid-template-rows: auto 1fr auto auto;
1226
+ background: var(--sd-panel);
1227
+ border: 1px solid var(--sd-line);
1228
+ box-shadow: -18px 0 48px color-mix(in srgb, var(--sd-ink) 12%, transparent);
1229
+ animation: sd-chat-panel-in .18s ease both;
1230
+ outline: none;
1231
+ }
1232
+
1233
+ @keyframes sd-chat-panel-in {
1234
+ from { opacity: 0; transform: translateX(12px); }
1235
+ to { opacity: 1; transform: translateX(0); }
1236
+ }
1237
+
1238
+ .sd-chat-header {
1239
+ display: flex;
1240
+ align-items: center;
1241
+ justify-content: space-between;
1242
+ gap: .5rem;
1243
+ padding: .7rem .85rem;
1244
+ border-bottom: 1px solid var(--sd-line);
1245
+ background: color-mix(in srgb, var(--sd-panel) 92%, var(--sd-accent) 8%);
1246
+ }
1247
+
1248
+ .sd-chat-title {
1249
+ display: inline-flex;
1250
+ align-items: center;
1251
+ gap: .55rem;
1252
+ color: var(--sd-ink);
1253
+ }
1254
+
1255
+ .sd-chat-title strong {
1256
+ font: 650 .92rem var(--font-sans);
1257
+ letter-spacing: .01em;
1258
+ }
1259
+
1260
+ .sd-chat-mark {
1261
+ display: inline-block;
1262
+ width: .65rem;
1263
+ height: .65rem;
1264
+ background: var(--sd-accent);
1265
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--sd-accent) 32%, transparent);
1266
+ }
1267
+
1268
+ .sd-chat-actions {
1269
+ display: inline-flex;
1270
+ align-items: center;
1271
+ gap: .15rem;
1272
+ }
1273
+
1274
+ .sd-chat-icon-button {
1275
+ display: inline-flex;
1276
+ align-items: center;
1277
+ justify-content: center;
1278
+ width: 1.85rem;
1279
+ height: 1.85rem;
1280
+ border: 1px solid transparent;
1281
+ background: transparent;
1282
+ color: var(--sd-muted);
1283
+ cursor: pointer;
1284
+ transition: background .14s ease, color .14s ease, border-color .14s ease;
1285
+ }
1286
+
1287
+ .sd-chat-icon-button:hover {
1288
+ background: color-mix(in srgb, var(--sd-accent) 12%, transparent);
1289
+ color: var(--sd-ink);
1290
+ }
1291
+
1292
+ .sd-chat-icon-button svg {
1293
+ width: .95rem;
1294
+ height: .95rem;
1295
+ fill: none;
1296
+ stroke: currentColor;
1297
+ stroke-width: 1.8;
1298
+ stroke-linecap: square;
1299
+ stroke-linejoin: miter;
1300
+ }
1301
+
1302
+ .sd-chat-messages {
1303
+ display: flex;
1304
+ flex-direction: column;
1305
+ gap: .55rem;
1306
+ padding: .85rem;
1307
+ overflow-y: auto;
1308
+ scroll-behavior: smooth;
1309
+ }
1310
+
1311
+ .sd-chat-empty {
1312
+ margin: auto;
1313
+ padding: 1.5rem 1rem;
1314
+ text-align: center;
1315
+ color: var(--sd-muted);
1316
+ font-size: .9rem;
1317
+ }
1318
+
1319
+ .sd-chat-bubble {
1320
+ display: flex;
1321
+ flex-direction: column;
1322
+ gap: .35rem;
1323
+ max-width: 92%;
1324
+ }
1325
+
1326
+ .sd-chat-bubble[data-role='user'] {
1327
+ align-self: flex-end;
1328
+ align-items: flex-end;
1329
+ }
1330
+
1331
+ .sd-chat-bubble[data-role='assistant'] {
1332
+ align-self: flex-start;
1333
+ align-items: flex-start;
1334
+ }
1335
+
1336
+ .sd-chat-bubble-body {
1337
+ padding: .55rem .75rem;
1338
+ font: .9rem/1.55 var(--font-sans);
1339
+ white-space: pre-wrap;
1340
+ word-break: break-word;
1341
+ background: var(--sd-panel);
1342
+ border: 1px solid var(--sd-line);
1343
+ }
1344
+
1345
+ .sd-chat-bubble[data-role='assistant'] .sd-chat-bubble-body {
1346
+ border-left: 2px solid var(--sd-accent);
1347
+ background: color-mix(in srgb, var(--sd-panel) 96%, var(--sd-accent) 4%);
1348
+ }
1349
+
1350
+ .sd-chat-bubble[data-role='user'] .sd-chat-bubble-body {
1351
+ border-right: 2px solid var(--sd-accent);
1352
+ background: color-mix(in srgb, var(--sd-accent) 12%, var(--sd-panel) 88%);
1353
+ color: var(--sd-ink);
1354
+ }
1355
+
1356
+ .sd-chat-typing {
1357
+ display: inline-flex;
1358
+ gap: .25rem;
1359
+ align-items: center;
1360
+ height: 1rem;
1361
+ }
1362
+
1363
+ .sd-chat-typing span {
1364
+ width: .35rem;
1365
+ height: .35rem;
1366
+ background: color-mix(in srgb, var(--sd-accent) 70%, var(--sd-muted) 30%);
1367
+ animation: sd-chat-typing 1s infinite ease-in-out;
1368
+ }
1369
+
1370
+ .sd-chat-typing span:nth-child(2) {
1371
+ animation-delay: .16s;
1372
+ }
1373
+
1374
+ .sd-chat-typing span:nth-child(3) {
1375
+ animation-delay: .32s;
1376
+ }
1377
+
1378
+ @keyframes sd-chat-typing {
1379
+ 0%, 80%, 100% { opacity: .25; transform: translateY(0); }
1380
+ 40% { opacity: 1; transform: translateY(-3px); }
1381
+ }
1382
+
1383
+ .sd-chat-citations {
1384
+ display: flex;
1385
+ flex-wrap: wrap;
1386
+ gap: .3rem;
1387
+ }
1388
+
1389
+ .sd-chat-citations a {
1390
+ display: inline-flex;
1391
+ padding: .18rem .5rem;
1392
+ font: .74rem var(--font-sans);
1393
+ color: var(--sd-muted);
1394
+ border: 1px solid var(--sd-line);
1395
+ background: color-mix(in srgb, var(--sd-panel) 96%, transparent);
1396
+ text-decoration: none;
1397
+ transition: color .14s ease, border-color .14s ease, background .14s ease;
1398
+ }
1399
+
1400
+ .sd-chat-citations a:hover {
1401
+ color: var(--sd-ink);
1402
+ border-color: color-mix(in srgb, var(--sd-accent) 60%, var(--sd-line) 40%);
1403
+ background: color-mix(in srgb, var(--sd-accent) 8%, var(--sd-panel) 92%);
1404
+ }
1405
+
1406
+ .sd-chat-error {
1407
+ margin: 0;
1408
+ font: .78rem var(--font-sans);
1409
+ color: var(--sd-accent-2, var(--sd-muted));
1410
+ }
1411
+
1412
+ .sd-chat-suggestions {
1413
+ display: flex;
1414
+ flex-wrap: wrap;
1415
+ gap: .3rem;
1416
+ padding: 0 .85rem .65rem;
1417
+ border-top: 1px dashed color-mix(in srgb, var(--sd-line) 80%, transparent);
1418
+ padding-top: .65rem;
1419
+ }
1420
+
1421
+ .sd-chat-suggestions button {
1422
+ border: 1px solid var(--sd-line);
1423
+ background: var(--sd-panel);
1424
+ color: var(--sd-ink);
1425
+ padding: .3rem .55rem;
1426
+ font: .78rem var(--font-sans);
1427
+ cursor: pointer;
1428
+ transition: background .14s ease, border-color .14s ease, color .14s ease;
1429
+ }
1430
+
1431
+ .sd-chat-suggestions button:hover {
1432
+ background: color-mix(in srgb, var(--sd-accent) 10%, var(--sd-panel) 90%);
1433
+ border-color: color-mix(in srgb, var(--sd-accent) 55%, var(--sd-line) 45%);
1434
+ }
1435
+
1436
+ .sd-chat-composer {
1437
+ display: flex;
1438
+ align-items: flex-end;
1439
+ gap: .4rem;
1440
+ padding: .55rem .65rem .65rem;
1441
+ border-top: 1px solid var(--sd-line);
1442
+ background: color-mix(in srgb, var(--sd-panel) 96%, transparent);
1443
+ }
1444
+
1445
+ .sd-chat-composer textarea {
1446
+ flex: 1;
1447
+ min-height: 2.4rem;
1448
+ max-height: 9rem;
1449
+ resize: none;
1450
+ border: 1px solid var(--sd-line);
1451
+ background: var(--sd-bg);
1452
+ color: var(--sd-ink);
1453
+ padding: .5rem .65rem;
1454
+ font: .9rem/1.45 var(--font-sans);
1455
+ outline: none;
1456
+ transition: border-color .14s ease;
1457
+ }
1458
+
1459
+ .sd-chat-composer textarea:focus {
1460
+ border-color: color-mix(in srgb, var(--sd-accent) 70%, var(--sd-line) 30%);
1461
+ }
1462
+
1463
+ .sd-chat-send {
1464
+ display: inline-flex;
1465
+ align-items: center;
1466
+ justify-content: center;
1467
+ width: 2.4rem;
1468
+ height: 2.4rem;
1469
+ border: 1px solid var(--sd-ink);
1470
+ background: var(--sd-ink);
1471
+ color: var(--sd-bg);
1472
+ cursor: pointer;
1473
+ transition: background .14s ease, color .14s ease, opacity .14s ease;
1474
+ }
1475
+
1476
+ .sd-chat-send:disabled {
1477
+ opacity: .42;
1478
+ cursor: not-allowed;
1479
+ }
1480
+
1481
+ .sd-chat-send:not(:disabled):hover {
1482
+ background: color-mix(in srgb, var(--sd-ink) 80%, var(--sd-accent) 20%);
1483
+ }
1484
+
1485
+ .sd-chat-send svg {
1486
+ width: 1rem;
1487
+ height: 1rem;
1488
+ fill: none;
1489
+ stroke: currentColor;
1490
+ stroke-width: 1.8;
1491
+ stroke-linecap: square;
1492
+ stroke-linejoin: miter;
1493
+ }
1494
+
1495
+ .sd-visually-hidden {
1496
+ position: absolute;
1497
+ width: 1px;
1498
+ height: 1px;
1499
+ overflow: hidden;
1500
+ clip: rect(0 0 0 0);
1501
+ white-space: nowrap;
1502
+ }
1503
+
1504
+ .sd-scope-switcher {
1505
+ display: inline-flex;
1506
+ gap: .45rem;
1507
+ }
1508
+
1509
+ .sd-scope-menu {
1510
+ position: relative;
1511
+ }
1512
+
1513
+ .sd-scope-trigger {
1514
+ display: inline-flex;
1515
+ align-items: center;
1516
+ justify-content: space-between;
1517
+ gap: .55rem;
1518
+ min-width: 5.7rem;
1519
+ min-height: 2.35rem;
1520
+ box-sizing: border-box;
1521
+ border: 1px solid var(--sd-line);
1522
+ background: var(--sd-panel);
1523
+ color: var(--sd-ink);
1524
+ padding: 0 .72rem;
1525
+ font: .86rem var(--font-sans);
1526
+ cursor: pointer;
1527
+ transition: border-color .16s ease, background .16s ease, transform .16s ease;
1528
+ }
1529
+
1530
+ .sd-scope-trigger span {
1531
+ min-width: 0;
1532
+ overflow: hidden;
1533
+ text-overflow: ellipsis;
1534
+ white-space: nowrap;
1535
+ }
1536
+
1537
+ .sd-scope-label-short {
1538
+ display: none;
1539
+ }
1540
+
1541
+ .sd-scope-trigger::after {
1542
+ content: "";
1543
+ width: .42rem;
1544
+ height: .42rem;
1545
+ flex: 0 0 auto;
1546
+ border-right: 1.5px solid currentColor;
1547
+ border-bottom: 1.5px solid currentColor;
1548
+ transform: translateY(-2px) rotate(45deg);
1549
+ transition: transform .16s ease;
1550
+ }
1551
+
1552
+ .sd-scope-menu.sd-open .sd-scope-trigger {
1553
+ border-color: color-mix(in srgb, var(--sd-accent) 55%, var(--sd-line));
1554
+ }
1555
+
1556
+ .sd-scope-menu.sd-open .sd-scope-trigger::after {
1557
+ transform: translateY(2px) rotate(225deg);
1558
+ }
1559
+
1560
+ .sd-scope-trigger:hover {
1561
+ border-color: color-mix(in srgb, var(--sd-accent) 55%, var(--sd-line));
1562
+ transform: translateY(-1px);
1563
+ }
1564
+
1565
+ .sd-scope-options {
1566
+ position: absolute;
1567
+ right: 0;
1568
+ top: calc(100% + .45rem);
1569
+ z-index: 40;
1570
+ display: grid;
1571
+ min-width: 11rem;
1572
+ border: 1px solid var(--sd-line);
1573
+ background: var(--sd-panel);
1574
+ box-shadow: 0 18px 46px color-mix(in srgb, var(--sd-ink) 14%, transparent);
1575
+ padding: .35rem;
1576
+ animation: sd-fade-in .12s ease both;
1577
+ }
1578
+
1579
+ .sd-scope-options a,
1580
+ .sd-scope-options span {
1581
+ display: block;
1582
+ border: 1px solid transparent;
1583
+ background: transparent;
1584
+ color: var(--sd-muted);
1585
+ text-align: left;
1586
+ font: .9rem var(--font-sans);
1587
+ padding: .62rem .72rem;
1588
+ text-decoration: none;
1589
+ }
1590
+
1591
+ .sd-scope-options a {
1592
+ cursor: pointer;
1593
+ }
1594
+
1595
+ .sd-scope-options a:hover,
1596
+ .sd-scope-options a[aria-checked="true"] {
1597
+ border-color: var(--sd-line);
1598
+ background: color-mix(in srgb, var(--sd-accent) 10%, transparent);
1599
+ color: var(--sd-ink);
1600
+ }
1601
+
1602
+ .sd-scope-options span[aria-disabled="true"] {
1603
+ cursor: not-allowed;
1604
+ opacity: .42;
1605
+ }
1606
+
1607
+ .sd-footer {
1608
+ display: flex;
1609
+ flex-wrap: wrap;
1610
+ align-items: center;
1611
+ justify-content: space-between;
1612
+ gap: 1rem;
1613
+ max-width: 1440px;
1614
+ margin: 0 auto;
1615
+ padding: 2rem 1.2rem;
1616
+ border-top: 2px solid color-mix(in srgb, var(--sd-ink) 28%, transparent);
1617
+ color: var(--sd-muted);
1618
+ font-size: .9rem;
1619
+ }
1620
+
1621
+ .sd-footer nav {
1622
+ display: flex;
1623
+ flex-wrap: wrap;
1624
+ gap: .8rem;
1625
+ }
1626
+
1627
+ .sd-footer nav a {
1628
+ border: 1px solid color-mix(in srgb, var(--sd-line) 80%, transparent);
1629
+ background: color-mix(in srgb, var(--sd-panel) 76%, transparent);
1630
+ padding: .42rem .62rem;
1631
+ color: var(--sd-ink);
1632
+ font-size: .84rem;
1633
+ }
1634
+
1635
+ .sd-footer nav a.sd-footer-icon {
1636
+ display: inline-flex;
1637
+ align-items: center;
1638
+ justify-content: center;
1639
+ width: 2.2rem;
1640
+ height: 2.2rem;
1641
+ padding: 0;
1642
+ line-height: 0;
1643
+ }
1644
+
1645
+ .sd-footer nav a.sd-footer-icon svg {
1646
+ display: block;
1647
+ width: 1.05rem;
1648
+ height: 1.05rem;
1649
+ fill: currentColor;
1650
+ }
1651
+
1652
+ .sd-footer nav a:last-child {
1653
+ background: var(--sd-ink);
1654
+ color: var(--sd-bg);
1655
+ }
1656
+
1657
+ .sd-footer nav a:hover {
1658
+ border-color: color-mix(in srgb, var(--sd-accent) 55%, var(--sd-line));
1659
+ transform: translateY(-1px);
1660
+ }
1661
+
1662
+ .sd-doc-shell {
1663
+ display: grid;
1664
+ grid-template-columns: minmax(190px, 260px) minmax(0, 880px) minmax(170px, 230px);
1665
+ gap: 1.5rem;
1666
+ max-width: 1380px;
1667
+ margin: 0 auto;
1668
+ padding: 1.5rem 1.2rem 5rem;
1669
+ }
1670
+
1671
+ .sd-sidebar,
1672
+ .sd-toc {
1673
+ position: sticky;
1674
+ top: 80px;
1675
+ align-self: start;
1676
+ max-height: calc(100vh - 100px);
1677
+ overflow: auto;
1678
+ }
1679
+
1680
+ .sd-sidebar nav,
1681
+ .sd-toc {
1682
+ display: grid;
1683
+ gap: .25rem;
1684
+ }
1685
+
1686
+ .sd-sidebar,
1687
+ .sd-toc {
1688
+ scrollbar-width: thin;
1689
+ }
1690
+
1691
+ .sd-sidebar {
1692
+ border: none;
1693
+ background: transparent;
1694
+ padding: .25rem 0;
1695
+ }
1696
+
1697
+ .sd-toc {
1698
+ padding: .25rem 0 .25rem 1rem;
1699
+ background-image:
1700
+ linear-gradient(
1701
+ color-mix(in srgb, var(--sd-line) 55%, transparent),
1702
+ color-mix(in srgb, var(--sd-line) 55%, transparent)
1703
+ );
1704
+ background-position: 0 0;
1705
+ background-repeat: no-repeat;
1706
+ background-size: 1px 100%;
1707
+ }
1708
+
1709
+ .sd-toc::before {
1710
+ content: "";
1711
+ position: absolute;
1712
+ left: 0;
1713
+ top: var(--toc-indicator-top, 0);
1714
+ width: 2px;
1715
+ height: var(--toc-indicator-height, 0);
1716
+ border-radius: 999px;
1717
+ background: color-mix(in srgb, var(--sd-accent) 88%, var(--sd-ink));
1718
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--sd-accent) 18%, transparent);
1719
+ opacity: 0;
1720
+ transition: top .22s cubic-bezier(.4, 0, .2, 1), height .22s cubic-bezier(.4, 0, .2, 1), opacity .16s ease;
1721
+ pointer-events: none;
1722
+ }
1723
+
1724
+ .sd-toc.sd-toc-ready::before {
1725
+ opacity: 1;
1726
+ }
1727
+
1728
+ .sd-sidebar-root {
1729
+ display: grid;
1730
+ gap: .15rem;
1731
+ }
1732
+
1733
+ .sd-sidebar-section-heading {
1734
+ position: relative;
1735
+ display: flex;
1736
+ align-items: center;
1737
+ gap: .45rem;
1738
+ padding: 1rem .55rem .35rem;
1739
+ font-family: var(--font-sans);
1740
+ font-size: .72rem;
1741
+ font-weight: 600;
1742
+ text-transform: uppercase;
1743
+ letter-spacing: .08em;
1744
+ color: color-mix(in srgb, var(--sd-ink) 70%, transparent);
1745
+ border-top: 1px solid color-mix(in srgb, var(--sd-line) 70%, transparent);
1746
+ margin-top: .35rem;
1747
+ }
1748
+
1749
+ .sd-sidebar-section-heading.sd-first {
1750
+ margin-top: 0;
1751
+ padding-top: .25rem;
1752
+ border-top: none;
1753
+ }
1754
+
1755
+ .sd-sidebar-section-heading.sd-active {
1756
+ color: var(--sd-ink);
1757
+ }
1758
+
1759
+ .sd-sidebar-section-link {
1760
+ position: relative;
1761
+ display: inline-flex;
1762
+ min-width: 0;
1763
+ align-items: center;
1764
+ color: inherit;
1765
+ }
1766
+
1767
+ .sd-sidebar-section-link:hover {
1768
+ color: var(--sd-accent);
1769
+ }
1770
+
1771
+ .sd-sidebar-section-link.sd-active {
1772
+ color: var(--sd-ink);
1773
+ }
1774
+
1775
+ .sd-sidebar-section-link.sd-active::after {
1776
+ content: "";
1777
+ position: absolute;
1778
+ inset: -.28rem -.38rem;
1779
+ pointer-events: none;
1780
+ border: 1px solid color-mix(in srgb, var(--sd-accent) 36%, transparent);
1781
+ background:
1782
+ linear-gradient(135deg, var(--sd-accent) 0 1px, transparent 1px) top left/4px 4px no-repeat,
1783
+ linear-gradient(225deg, var(--sd-accent) 0 1px, transparent 1px) top right/4px 4px no-repeat,
1784
+ linear-gradient(45deg, var(--sd-accent) 0 1px, transparent 1px) bottom left/4px 4px no-repeat,
1785
+ linear-gradient(315deg, var(--sd-accent) 0 1px, transparent 1px) bottom right/4px 4px no-repeat;
1786
+ opacity: .75;
1787
+ }
1788
+
1789
+ .sd-sidebar-section-icon {
1790
+ display: inline-flex;
1791
+ align-items: center;
1792
+ justify-content: center;
1793
+ width: 1rem;
1794
+ height: 1rem;
1795
+ flex: 0 0 auto;
1796
+ }
1797
+
1798
+ .sd-sidebar-list {
1799
+ display: grid;
1800
+ gap: .05rem;
1801
+ list-style: none;
1802
+ margin: 0;
1803
+ padding: 0;
1804
+ }
1805
+
1806
+ .sd-sidebar-item {
1807
+ margin: 0;
1808
+ }
1809
+
1810
+ .sd-sidebar-group {
1811
+ display: grid;
1812
+ }
1813
+
1814
+ .sd-sidebar-group > summary {
1815
+ list-style: none;
1816
+ }
1817
+
1818
+ .sd-sidebar-group > summary::-webkit-details-marker {
1819
+ display: none;
1820
+ }
1821
+
1822
+ .sd-sidebar-summary {
1823
+ position: relative;
1824
+ display: flex;
1825
+ align-items: center;
1826
+ gap: .4rem;
1827
+ padding: .35rem .55rem;
1828
+ cursor: pointer;
1829
+ color: var(--sd-muted);
1830
+ font-size: .855rem;
1831
+ border-radius: 4px;
1832
+ transition: background .14s ease, color .14s ease;
1833
+ }
1834
+
1835
+ .sd-sidebar-summary:hover {
1836
+ background: color-mix(in srgb, var(--sd-accent) 6%, transparent);
1837
+ color: var(--sd-ink);
1838
+ }
1839
+
1840
+ .sd-sidebar-item.sd-branch-active > .sd-sidebar-group > .sd-sidebar-summary {
1841
+ color: var(--sd-ink);
1842
+ }
1843
+
1844
+ .sd-sidebar-summary-label {
1845
+ flex: 1 1 auto;
1846
+ min-width: 0;
1847
+ }
1848
+
1849
+ .sd-sidebar-summary-link,
1850
+ .sd-sidebar-summary-text {
1851
+ display: inline-block;
1852
+ color: inherit;
1853
+ }
1854
+
1855
+ .sd-sidebar-icon {
1856
+ display: inline-flex;
1857
+ align-items: center;
1858
+ justify-content: center;
1859
+ width: 1rem;
1860
+ height: 1rem;
1861
+ flex: 0 0 auto;
1862
+ font-size: .9rem;
1863
+ color: color-mix(in srgb, var(--sd-ink) 75%, transparent);
1864
+ }
1865
+
1866
+ .sd-sidebar-link.sd-active .sd-sidebar-icon,
1867
+ .sd-sidebar-summary.sd-active .sd-sidebar-icon {
1868
+ color: var(--sd-accent);
1869
+ }
1870
+
1871
+ .sd-sidebar-chevron {
1872
+ display: inline-flex;
1873
+ width: .9rem;
1874
+ height: .9rem;
1875
+ flex: 0 0 auto;
1876
+ color: color-mix(in srgb, var(--sd-muted) 80%, transparent);
1877
+ transition: transform .18s ease, color .18s ease;
1878
+ }
1879
+
1880
+ .sd-sidebar-list:not([data-depth="0"]) .sd-sidebar-chevron {
1881
+ order: -1;
1882
+ }
1883
+
1884
+ .sd-sidebar-list[data-depth="0"] > .sd-sidebar-item > .sd-sidebar-group > .sd-sidebar-summary > .sd-sidebar-chevron {
1885
+ margin-left: auto;
1886
+ width: .8rem;
1887
+ height: .8rem;
1888
+ }
1889
+
1890
+ .sd-sidebar-chevron svg {
1891
+ width: 100%;
1892
+ height: 100%;
1893
+ fill: none;
1894
+ stroke: currentColor;
1895
+ stroke-width: 2;
1896
+ stroke-linecap: round;
1897
+ stroke-linejoin: round;
1898
+ }
1899
+
1900
+ .sd-sidebar-group[open] > .sd-sidebar-summary > .sd-sidebar-chevron {
1901
+ transform: rotate(90deg);
1902
+ }
1903
+
1904
+ .sd-sidebar-group::details-content {
1905
+ block-size: 0;
1906
+ overflow: hidden;
1907
+ transition: block-size .22s ease, content-visibility .22s ease allow-discrete;
1908
+ }
1909
+
1910
+ .sd-sidebar-group[open]::details-content {
1911
+ block-size: auto;
1912
+ }
1913
+
1914
+ .sd-sidebar-group-body {
1915
+ display: grid;
1916
+ }
1917
+
1918
+ .sd-sidebar-list:not([data-depth="0"]) {
1919
+ position: relative;
1920
+ padding-left: .85rem;
1921
+ margin-left: .9rem;
1922
+ border-left: 1px solid color-mix(in srgb, var(--sd-line) 60%, transparent);
1923
+ }
1924
+
1925
+ .sd-sidebar-link {
1926
+ position: relative;
1927
+ display: flex;
1928
+ align-items: center;
1929
+ gap: .4rem;
1930
+ padding: .35rem .55rem;
1931
+ border-radius: 4px;
1932
+ font-size: .855rem;
1933
+ color: var(--sd-muted);
1934
+ transition: background .14s ease, color .14s ease;
1935
+ }
1936
+
1937
+ .sd-sidebar-link:hover {
1938
+ background: color-mix(in srgb, var(--sd-accent) 6%, transparent);
1939
+ color: var(--sd-ink);
1940
+ }
1941
+
1942
+ .sd-sidebar-link.sd-active {
1943
+ background: color-mix(in srgb, var(--sd-accent) 14%, transparent);
1944
+ color: var(--sd-ink);
1945
+ font-weight: 500;
1946
+ border-radius: 0;
1947
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sd-accent) 32%, transparent);
1948
+ }
1949
+
1950
+ .sd-sidebar-link.sd-active::after {
1951
+ content: "";
1952
+ position: absolute;
1953
+ inset: -1px;
1954
+ pointer-events: none;
1955
+ border-radius: 0;
1956
+ background:
1957
+ linear-gradient(135deg, var(--sd-accent) 0 1px, transparent 1px) top left/4px 4px no-repeat,
1958
+ linear-gradient(225deg, var(--sd-accent) 0 1px, transparent 1px) top right/4px 4px no-repeat,
1959
+ linear-gradient(45deg, var(--sd-accent) 0 1px, transparent 1px) bottom left/4px 4px no-repeat,
1960
+ linear-gradient(315deg, var(--sd-accent) 0 1px, transparent 1px) bottom right/4px 4px no-repeat;
1961
+ opacity: .55;
1962
+ }
1963
+
1964
+ .sd-sidebar-list:not([data-depth="0"]) > .sd-sidebar-item > .sd-sidebar-link.sd-active::before {
1965
+ content: "";
1966
+ position: absolute;
1967
+ left: -.85rem;
1968
+ top: 50%;
1969
+ width: 2px;
1970
+ height: 1.2rem;
1971
+ margin-top: -.6rem;
1972
+ background: var(--sd-accent);
1973
+ }
1974
+
1975
+ .sd-sidebar-summary.sd-active {
1976
+ background: color-mix(in srgb, var(--sd-accent) 14%, transparent);
1977
+ color: var(--sd-ink);
1978
+ border-radius: 0;
1979
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sd-accent) 32%, transparent);
1980
+ }
1981
+
1982
+ .sd-sidebar-summary.sd-active .sd-sidebar-summary-link {
1983
+ color: var(--sd-ink);
1984
+ font-weight: 500;
1985
+ }
1986
+
1987
+ .sd-sidebar-summary.sd-active::after {
1988
+ content: "";
1989
+ position: absolute;
1990
+ inset: -1px;
1991
+ pointer-events: none;
1992
+ border-radius: 0;
1993
+ background:
1994
+ linear-gradient(135deg, var(--sd-accent) 0 1px, transparent 1px) top left/4px 4px no-repeat,
1995
+ linear-gradient(225deg, var(--sd-accent) 0 1px, transparent 1px) top right/4px 4px no-repeat,
1996
+ linear-gradient(45deg, var(--sd-accent) 0 1px, transparent 1px) bottom left/4px 4px no-repeat,
1997
+ linear-gradient(315deg, var(--sd-accent) 0 1px, transparent 1px) bottom right/4px 4px no-repeat;
1998
+ opacity: .55;
1999
+ }
2000
+
2001
+ .sd-sidebar-section-label {
2002
+ display: block;
2003
+ padding: .35rem .55rem;
2004
+ font-size: .78rem;
2005
+ font-weight: 600;
2006
+ text-transform: uppercase;
2007
+ letter-spacing: .04em;
2008
+ color: color-mix(in srgb, var(--sd-ink) 70%, transparent);
2009
+ }
2010
+
2011
+ .sd-content {
2012
+ min-width: 0;
2013
+ }
2014
+
2015
+ .sd-doc,
2016
+ .sd-page {
2017
+ position: relative;
2018
+ box-sizing: border-box;
2019
+ width: 100%;
2020
+ border: 1px solid color-mix(in srgb, var(--sd-line) 86%, transparent);
2021
+ background: var(--sd-panel);
2022
+ box-shadow: 0 18px 50px color-mix(in srgb, var(--sd-ink) 5%, transparent);
2023
+ }
2024
+
2025
+ .sd-doc-corner {
2026
+ position: absolute;
2027
+ top: -1px;
2028
+ width: 14px;
2029
+ height: 14px;
2030
+ pointer-events: none;
2031
+ background:
2032
+ linear-gradient(var(--sd-accent), var(--sd-accent)) 0 0 / 100% 2px no-repeat,
2033
+ linear-gradient(var(--sd-accent), var(--sd-accent)) 0 0 / 2px 100% no-repeat;
2034
+ }
2035
+
2036
+ .sd-doc-corner[data-corner="tl"] {
2037
+ left: -1px;
2038
+ }
2039
+
2040
+ .sd-doc-corner[data-corner="tr"] {
2041
+ right: -1px;
2042
+ transform: scaleX(-1);
2043
+ }
2044
+
2045
+ .sd-doc {
2046
+ padding: 0 clamp(1.1rem, 3vw, 2.8rem) 2.4rem;
2047
+ }
2048
+
2049
+ .sd-page {
2050
+ max-width: 920px;
2051
+ margin: 1.5rem auto 5rem;
2052
+ padding: 0 clamp(1.1rem, 3vw, 2.8rem) 2.6rem;
2053
+ }
2054
+
2055
+ .sd-breadcrumb {
2056
+ display: none;
2057
+ }
2058
+
2059
+ .sd-doc-eyebrow {
2060
+ display: inline-flex;
2061
+ flex-wrap: wrap;
2062
+ align-items: center;
2063
+ gap: .5rem;
2064
+ margin: 0 0 .75rem;
2065
+ color: var(--sd-muted);
2066
+ font-family: var(--font-sans);
2067
+ font-size: .76rem;
2068
+ font-weight: 650;
2069
+ letter-spacing: .04em;
2070
+ text-transform: uppercase;
2071
+ }
2072
+
2073
+ .sd-doc-eyebrow-mark {
2074
+ display: inline-block;
2075
+ width: 8px;
2076
+ height: 8px;
2077
+ background: var(--sd-accent);
2078
+ image-rendering: pixelated;
2079
+ }
2080
+
2081
+ .sd-doc-eyebrow a {
2082
+ color: inherit;
2083
+ text-decoration: none;
2084
+ transition: color .15s ease;
2085
+ }
2086
+
2087
+ .sd-doc-eyebrow a:hover {
2088
+ color: var(--sd-accent);
2089
+ }
2090
+
2091
+ .sd-doc-eyebrow a:last-of-type {
2092
+ color: var(--sd-ink);
2093
+ }
2094
+
2095
+ .sd-doc-eyebrow-sep {
2096
+ color: color-mix(in srgb, var(--sd-muted) 50%, transparent);
2097
+ font-weight: 400;
2098
+ }
2099
+
2100
+ .sd-doc-lede {
2101
+ margin: .9rem 0 0;
2102
+ max-width: 62ch;
2103
+ color: var(--sd-muted);
2104
+ font-size: 1.08rem;
2105
+ line-height: 1.62;
2106
+ }
2107
+
2108
+ .sd-doc {
2109
+ max-width: 880px;
2110
+ }
2111
+
2112
+ .sd-page {
2113
+ max-width: 920px;
2114
+ }
2115
+
2116
+ .sd-home {
2117
+ max-width: none;
2118
+ }
2119
+
2120
+ .sd-doc-header,
2121
+ .sd-page-hero {
2122
+ position: relative;
2123
+ padding: 2.6rem 0 2.2rem;
2124
+ border-bottom: 1px solid var(--sd-line);
2125
+ }
2126
+
2127
+ .sd-doc-header-rule {
2128
+ position: absolute;
2129
+ left: 0;
2130
+ bottom: -1px;
2131
+ width: 80px;
2132
+ height: 2px;
2133
+ background: var(--sd-accent);
2134
+ }
2135
+
2136
+ .sd-kicker {
2137
+ display: inline-flex;
2138
+ align-items: center;
2139
+ gap: .55rem;
2140
+ color: var(--sd-accent);
2141
+ font-size: .78rem;
2142
+ font-family: var(--font-sans);
2143
+ font-weight: 650;
2144
+ letter-spacing: .04em;
2145
+ text-transform: uppercase;
2146
+ }
2147
+
2148
+ .sd-kicker-mark {
2149
+ position: relative;
2150
+ display: inline-block;
2151
+ width: .82rem;
2152
+ height: .82rem;
2153
+ image-rendering: pixelated;
2154
+ background:
2155
+ linear-gradient(90deg, var(--sd-accent) 50%, transparent 0) 0 0 / 50% 50%,
2156
+ linear-gradient(90deg, transparent 50%, var(--sd-accent-2) 0) 0 100% / 50% 50%,
2157
+ color-mix(in srgb, var(--sd-accent) 22%, var(--sd-line));
2158
+ background-repeat: no-repeat;
2159
+ }
2160
+
2161
+ .sd-page h1,
2162
+ .sd-home h1 {
2163
+ margin: .35rem 0 0;
2164
+ font-size: clamp(2.2rem, 7vw, 5.9rem);
2165
+ line-height: .92;
2166
+ letter-spacing: 0;
2167
+ font-family: var(--font-sans);
2168
+ font-weight: 650;
2169
+ }
2170
+
2171
+ .sd-doc h1 {
2172
+ margin: .45rem 0 0;
2173
+ max-width: 14ch;
2174
+ font-family: var(--font-sans);
2175
+ font-size: clamp(2rem, 4.2vw, 3.65rem);
2176
+ font-weight: 640;
2177
+ line-height: 1.06;
2178
+ letter-spacing: 0;
2179
+ }
2180
+
2181
+ .sd-doc-header p:last-child,
2182
+ .sd-page-hero p:last-child,
2183
+ .sd-home-copy > p:last-of-type {
2184
+ color: var(--sd-muted);
2185
+ font-size: 1.1rem;
2186
+ line-height: 1.65;
2187
+ max-width: 62ch;
2188
+ }
2189
+
2190
+ .sd-error-page {
2191
+ display: grid;
2192
+ place-items: center;
2193
+ min-height: min(68vh, 42rem);
2194
+ padding: clamp(2.2rem, 8vw, 5rem) 1.2rem;
2195
+ }
2196
+
2197
+ .sd-error-panel {
2198
+ position: relative;
2199
+ width: min(100%, 740px);
2200
+ border: 1px solid color-mix(in srgb, var(--sd-line) 86%, transparent);
2201
+ background:
2202
+ linear-gradient(135deg, color-mix(in srgb, var(--sd-accent) 9%, transparent), transparent 34%),
2203
+ var(--sd-panel);
2204
+ padding: clamp(1.35rem, 4vw, 2.6rem);
2205
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sd-panel) 82%, transparent);
2206
+ }
2207
+
2208
+ .sd-error-panel::after {
2209
+ content: "";
2210
+ position: absolute;
2211
+ inset: -1px;
2212
+ pointer-events: none;
2213
+ background:
2214
+ linear-gradient(135deg, var(--sd-accent) 0 1px, transparent 1px) top left/7px 7px no-repeat,
2215
+ linear-gradient(225deg, var(--sd-accent) 0 1px, transparent 1px) top right/7px 7px no-repeat,
2216
+ linear-gradient(45deg, var(--sd-accent) 0 1px, transparent 1px) bottom left/7px 7px no-repeat,
2217
+ linear-gradient(315deg, var(--sd-accent) 0 1px, transparent 1px) bottom right/7px 7px no-repeat;
2218
+ opacity: .58;
2219
+ }
2220
+
2221
+ .sd-error-panel h1 {
2222
+ max-width: 12ch;
2223
+ margin: .7rem 0 0;
2224
+ color: var(--sd-ink);
2225
+ font-family: var(--sd-font-display);
2226
+ font-size: clamp(2.4rem, 8vw, 5.5rem);
2227
+ font-weight: 650;
2228
+ line-height: .92;
2229
+ }
2230
+
2231
+ .sd-error-panel p {
2232
+ max-width: 62ch;
2233
+ margin: 1rem 0 0;
2234
+ color: var(--sd-muted);
2235
+ font-size: clamp(1rem, 1.6vw, 1.16rem);
2236
+ line-height: 1.7;
2237
+ }
2238
+
2239
+ .sd-error-panel code {
2240
+ display: inline-block;
2241
+ max-width: 100%;
2242
+ margin-top: 1rem;
2243
+ overflow-wrap: anywhere;
2244
+ border: 1px solid color-mix(in srgb, var(--sd-line) 80%, transparent);
2245
+ background: color-mix(in srgb, var(--sd-bg) 70%, var(--sd-panel));
2246
+ color: color-mix(in srgb, var(--sd-ink) 85%, var(--sd-muted));
2247
+ padding: .32rem .5rem;
2248
+ font: .88rem var(--font-mono);
2249
+ }
2250
+
2251
+ .sd-error-actions {
2252
+ display: flex;
2253
+ flex-wrap: wrap;
2254
+ gap: .75rem;
2255
+ margin-top: 1.5rem;
2256
+ }
2257
+
2258
+ .sd-render-error {
2259
+ position: relative;
2260
+ display: flex;
2261
+ gap: .95rem;
2262
+ margin: 1.2rem 0;
2263
+ border: 1px solid color-mix(in srgb, var(--sd-accent-2) 36%, var(--sd-line));
2264
+ background:
2265
+ linear-gradient(135deg, color-mix(in srgb, var(--sd-accent-2) 8%, transparent), transparent 34%),
2266
+ color-mix(in srgb, var(--sd-panel) 94%, var(--sd-bg));
2267
+ color: var(--sd-ink);
2268
+ padding: 1rem;
2269
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sd-panel) 70%, transparent);
2270
+ }
2271
+
2272
+ .sd-render-error::after {
2273
+ content: "";
2274
+ position: absolute;
2275
+ inset: -1px;
2276
+ pointer-events: none;
2277
+ background:
2278
+ linear-gradient(135deg, var(--sd-accent-2) 0 1px, transparent 1px) top left/6px 6px no-repeat,
2279
+ linear-gradient(225deg, var(--sd-accent-2) 0 1px, transparent 1px) top right/6px 6px no-repeat,
2280
+ linear-gradient(45deg, var(--sd-accent-2) 0 1px, transparent 1px) bottom left/6px 6px no-repeat,
2281
+ linear-gradient(315deg, var(--sd-accent-2) 0 1px, transparent 1px) bottom right/6px 6px no-repeat;
2282
+ opacity: .55;
2283
+ }
2284
+
2285
+ .sd-render-error-mark {
2286
+ width: .62rem;
2287
+ min-height: 2.2rem;
2288
+ flex: 0 0 auto;
2289
+ image-rendering: pixelated;
2290
+ background:
2291
+ linear-gradient(var(--sd-accent-2), var(--sd-accent-2)) 0 0 / 100% 42% no-repeat,
2292
+ linear-gradient(var(--sd-accent), var(--sd-accent)) 0 100% / 100% 42% no-repeat;
2293
+ }
2294
+
2295
+ .sd-render-error-body {
2296
+ min-width: 0;
2297
+ }
2298
+
2299
+ .sd-render-error-kicker {
2300
+ margin: 0 0 .24rem;
2301
+ color: color-mix(in srgb, var(--sd-accent-2) 82%, var(--sd-ink));
2302
+ font: 650 .75rem/1.35 var(--font-sans);
2303
+ letter-spacing: .08em;
2304
+ text-transform: uppercase;
2305
+ }
2306
+
2307
+ .sd-render-error strong {
2308
+ display: block;
2309
+ color: var(--sd-ink);
2310
+ font: 650 1rem/1.35 var(--font-sans);
2311
+ letter-spacing: 0;
2312
+ }
2313
+
2314
+ .sd-render-error p {
2315
+ max-width: 60ch;
2316
+ margin: .45rem 0 0;
2317
+ color: var(--sd-muted);
2318
+ font-size: .93rem;
2319
+ line-height: 1.62;
2320
+ }
2321
+
2322
+ .sd-render-error details {
2323
+ margin-top: .78rem;
2324
+ color: var(--sd-muted);
2325
+ font-size: .86rem;
2326
+ }
2327
+
2328
+ .sd-render-error summary {
2329
+ width: fit-content;
2330
+ cursor: pointer;
2331
+ color: color-mix(in srgb, var(--sd-ink) 82%, var(--sd-muted));
2332
+ font-weight: 600;
2333
+ }
2334
+
2335
+ .sd-render-error summary:hover {
2336
+ color: var(--sd-accent-2);
2337
+ }
2338
+
2339
+ .sd-render-error code {
2340
+ display: block;
2341
+ max-width: 100%;
2342
+ margin-top: .52rem;
2343
+ overflow-wrap: anywhere;
2344
+ white-space: pre-wrap;
2345
+ border: 1px solid color-mix(in srgb, var(--sd-line) 80%, transparent);
2346
+ background: color-mix(in srgb, var(--sd-bg) 74%, var(--sd-panel));
2347
+ color: color-mix(in srgb, var(--sd-ink) 86%, var(--sd-muted));
2348
+ padding: .5rem .62rem;
2349
+ font: .82rem/1.6 var(--font-mono);
2350
+ }
2351
+
2352
+ .sd-render-error-actions {
2353
+ display: flex;
2354
+ flex-wrap: wrap;
2355
+ gap: .6rem;
2356
+ margin-top: .95rem;
2357
+ }
2358
+
2359
+ .sd-render-error .sd-button {
2360
+ min-width: auto;
2361
+ min-height: 2.1rem;
2362
+ padding: 0 .7rem;
2363
+ font-size: .84rem;
2364
+ }
2365
+
2366
+ .sd-sidebar .sd-render-error,
2367
+ .sd-toc .sd-render-error {
2368
+ display: grid;
2369
+ gap: .62rem;
2370
+ margin: .35rem 0;
2371
+ padding: .75rem;
2372
+ }
2373
+
2374
+ .sd-sidebar .sd-render-error-mark,
2375
+ .sd-toc .sd-render-error-mark {
2376
+ width: 2rem;
2377
+ min-height: .38rem;
2378
+ }
2379
+
2380
+ .sd-sidebar .sd-render-error strong,
2381
+ .sd-toc .sd-render-error strong {
2382
+ font-size: .9rem;
2383
+ }
2384
+
2385
+ .sd-sidebar .sd-render-error p,
2386
+ .sd-toc .sd-render-error p {
2387
+ font-size: .82rem;
2388
+ line-height: 1.5;
2389
+ }
2390
+
2391
+ .sd-render-error[data-variant="tools"] {
2392
+ max-width: min(92vw, 28rem);
2393
+ margin: 1rem;
2394
+ }
2395
+
2396
+ .sd-content > .sd-render-error {
2397
+ margin-top: 2rem;
2398
+ }
2399
+
2400
+ .sd-prose {
2401
+ padding-top: 2rem;
2402
+ color: color-mix(in srgb, var(--sd-ink) 94%, var(--sd-muted));
2403
+ font-size: 1rem;
2404
+ line-height: 1.78;
2405
+ overflow-wrap: break-word;
2406
+ }
2407
+
2408
+ .sd-prose > :first-child {
2409
+ margin-top: 0;
2410
+ }
2411
+
2412
+ .sd-prose > :last-child {
2413
+ margin-bottom: 0;
2414
+ }
2415
+
2416
+ .sd-prose p,
2417
+ .sd-prose ul,
2418
+ .sd-prose ol,
2419
+ .sd-prose blockquote,
2420
+ .sd-prose table,
2421
+ .sd-prose pre,
2422
+ .sd-prose .sd-code,
2423
+ .sd-prose .sd-table-scroll,
2424
+ .sd-prose .katex-display {
2425
+ margin: 1.15rem 0 0;
2426
+ }
2427
+
2428
+ .sd-prose h1,
2429
+ .sd-prose h2,
2430
+ .sd-prose h3,
2431
+ .sd-prose h4,
2432
+ .sd-prose h5,
2433
+ .sd-prose h6 {
2434
+ scroll-margin-top: 80px;
2435
+ color: var(--sd-ink);
2436
+ font-family: var(--font-sans);
2437
+ font-weight: 650;
2438
+ letter-spacing: 0;
2439
+ line-height: 1.16;
2440
+ }
2441
+
2442
+ .sd-prose h1 {
2443
+ margin: 0 0 1rem;
2444
+ font-size: clamp(2rem, 5vw, 3.7rem);
2445
+ }
2446
+
2447
+ .sd-prose h2,
2448
+ .sd-prose h3,
2449
+ .sd-prose h4 {
2450
+ margin: 2.6rem 0 0;
2451
+ }
2452
+
2453
+ .sd-prose h2 {
2454
+ padding-top: 1.2rem;
2455
+ border-top: 1px solid var(--sd-line);
2456
+ font-size: clamp(1.55rem, 3vw, 2rem);
2457
+ }
2458
+
2459
+ .sd-prose h3 {
2460
+ font-size: 1.28rem;
2461
+ }
2462
+
2463
+ .sd-prose h4 {
2464
+ color: color-mix(in srgb, var(--sd-ink) 88%, var(--sd-muted));
2465
+ font-size: 1.08rem;
2466
+ }
2467
+
2468
+ .sd-prose h5,
2469
+ .sd-prose h6 {
2470
+ margin: 1.8rem 0 0;
2471
+ font-size: .92rem;
2472
+ text-transform: uppercase;
2473
+ }
2474
+
2475
+ .sd-prose p {
2476
+ max-width: 74ch;
2477
+ }
2478
+
2479
+ .sd-prose strong {
2480
+ color: var(--sd-ink);
2481
+ font-weight: 650;
2482
+ }
2483
+
2484
+ .sd-prose em {
2485
+ color: color-mix(in srgb, var(--sd-ink) 90%, var(--sd-muted));
2486
+ }
2487
+
2488
+ .sd-prose :not(pre) > code,
2489
+ .sd-prose kbd {
2490
+ border: 1px solid color-mix(in srgb, var(--sd-line) 80%, transparent);
2491
+ background: color-mix(in srgb, var(--sd-panel) 88%, var(--sd-accent) 6%);
2492
+ color: color-mix(in srgb, var(--sd-accent) 78%, var(--sd-ink));
2493
+ padding: .12rem .32rem;
2494
+ font: .88em var(--font-mono);
2495
+ }
2496
+
2497
+ .sd-prose kbd {
2498
+ color: var(--sd-muted);
2499
+ box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--sd-ink) 10%, transparent);
2500
+ }
2501
+
2502
+ .sd-prose ul,
2503
+ .sd-prose ol {
2504
+ display: grid;
2505
+ gap: .48rem;
2506
+ padding-left: 1.35rem;
2507
+ list-style-position: outside;
2508
+ }
2509
+
2510
+ .sd-prose ul {
2511
+ list-style-type: disc;
2512
+ }
2513
+
2514
+ .sd-prose ul ul {
2515
+ list-style-type: circle;
2516
+ }
2517
+
2518
+ .sd-prose ul ul ul {
2519
+ list-style-type: square;
2520
+ }
2521
+
2522
+ .sd-prose ol {
2523
+ list-style-type: decimal;
2524
+ }
2525
+
2526
+ .sd-prose li > :first-child {
2527
+ margin-top: 0;
2528
+ }
2529
+
2530
+ .sd-prose li::marker {
2531
+ color: var(--sd-accent);
2532
+ font-weight: 650;
2533
+ }
2534
+
2535
+ .sd-prose input[type="checkbox"] {
2536
+ accent-color: var(--sd-accent);
2537
+ transform: translateY(1px);
2538
+ }
2539
+
2540
+ .sd-prose blockquote {
2541
+ border-left: 3px solid var(--sd-accent);
2542
+ background: color-mix(in srgb, var(--sd-accent) 8%, var(--sd-panel));
2543
+ color: color-mix(in srgb, var(--sd-ink) 86%, var(--sd-muted));
2544
+ padding: .9rem 1rem;
2545
+ }
2546
+
2547
+ .sd-prose blockquote > :first-child {
2548
+ margin-top: 0;
2549
+ }
2550
+
2551
+ .sd-prose hr {
2552
+ height: 1px;
2553
+ margin: 2.4rem 0;
2554
+ border: 0;
2555
+ background: var(--sd-line);
2556
+ }
2557
+
2558
+ .sd-heading-anchor {
2559
+ display: inline-flex;
2560
+ width: .9em;
2561
+ height: .9em;
2562
+ margin-left: .45rem;
2563
+ align-items: center;
2564
+ justify-content: center;
2565
+ vertical-align: -.08em;
2566
+ color: var(--sd-muted);
2567
+ opacity: 0;
2568
+ border-radius: 3px;
2569
+ text-decoration: none;
2570
+ transition: color .14s ease, opacity .14s ease;
2571
+ }
2572
+
2573
+ .sd-heading-anchor svg {
2574
+ width: 100%;
2575
+ height: 100%;
2576
+ }
2577
+
2578
+ .sd-prose :is(h2, h3, h4):hover .sd-heading-anchor,
2579
+ .sd-heading-anchor:focus-visible {
2580
+ opacity: 1;
2581
+ }
2582
+
2583
+ .sd-heading-anchor:hover,
2584
+ .sd-heading-anchor:focus-visible {
2585
+ color: var(--sd-accent);
2586
+ }
2587
+
2588
+ @media (hover: none) {
2589
+ .sd-heading-anchor {
2590
+ opacity: .5;
2591
+ }
2592
+ }
2593
+
2594
+ .sd-home-faq .sd-heading-anchor {
2595
+ display: none;
2596
+ }
2597
+
2598
+ .sd-prose a {
2599
+ color: var(--sd-accent);
2600
+ text-underline-offset: .18em;
2601
+ }
2602
+
2603
+ .sd-prose a:hover {
2604
+ color: color-mix(in srgb, var(--sd-accent) 70%, var(--sd-accent-2));
2605
+ }
2606
+
2607
+ .sd-external-link-icon {
2608
+ display: inline;
2609
+ width: .82em;
2610
+ height: .82em;
2611
+ margin-left: .18em;
2612
+ transform: translateY(.08em);
2613
+ stroke-width: 2;
2614
+ }
2615
+
2616
+ .sd-link-card-row {
2617
+ max-width: 74ch;
2618
+ margin: 1.2rem 0;
2619
+ }
2620
+
2621
+ .sd-prose .sd-link-card {
2622
+ position: relative;
2623
+ display: flex;
2624
+ align-items: center;
2625
+ justify-content: space-between;
2626
+ gap: 1rem;
2627
+ min-height: 4.6rem;
2628
+ padding: .9rem 1rem;
2629
+ border: 1px solid color-mix(in srgb, var(--sd-line) 82%, transparent);
2630
+ background:
2631
+ linear-gradient(90deg, color-mix(in srgb, var(--sd-accent) 8%, transparent), transparent 34%),
2632
+ var(--sd-panel);
2633
+ color: var(--sd-ink);
2634
+ text-decoration: none;
2635
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sd-panel) 82%, transparent);
2636
+ transition: border-color .14s ease, background .14s ease, color .14s ease, transform .14s ease;
2637
+ }
2638
+
2639
+ .sd-prose .sd-link-card:hover {
2640
+ transform: translateY(-1px);
2641
+ border-color: color-mix(in srgb, var(--sd-accent) 42%, var(--sd-line));
2642
+ background:
2643
+ linear-gradient(90deg, color-mix(in srgb, var(--sd-accent) 12%, transparent), transparent 42%),
2644
+ var(--sd-panel);
2645
+ color: var(--sd-ink);
2646
+ }
2647
+
2648
+ .sd-prose .sd-link-card::after {
2649
+ content: "";
2650
+ position: absolute;
2651
+ inset: -1px;
2652
+ pointer-events: none;
2653
+ background:
2654
+ linear-gradient(135deg, var(--sd-accent) 0 1px, transparent 1px) top left/5px 5px no-repeat,
2655
+ linear-gradient(225deg, var(--sd-accent) 0 1px, transparent 1px) top right/5px 5px no-repeat,
2656
+ linear-gradient(45deg, var(--sd-accent) 0 1px, transparent 1px) bottom left/5px 5px no-repeat,
2657
+ linear-gradient(315deg, var(--sd-accent) 0 1px, transparent 1px) bottom right/5px 5px no-repeat;
2658
+ opacity: .42;
2659
+ }
2660
+
2661
+ .sd-link-card-content {
2662
+ display: grid;
2663
+ gap: .22rem;
2664
+ min-width: 0;
2665
+ }
2666
+
2667
+ .sd-link-card-title {
2668
+ color: var(--sd-ink);
2669
+ font-weight: 650;
2670
+ line-height: 1.35;
2671
+ }
2672
+
2673
+ .sd-link-card-description {
2674
+ color: var(--sd-muted);
2675
+ font-size: .92rem;
2676
+ line-height: 1.55;
2677
+ }
2678
+
2679
+ .sd-link-card-arrow {
2680
+ display: inline-flex;
2681
+ width: 1.8rem;
2682
+ height: 1.8rem;
2683
+ flex: 0 0 auto;
2684
+ align-items: center;
2685
+ justify-content: center;
2686
+ border: 1px solid color-mix(in srgb, var(--sd-accent) 38%, transparent);
2687
+ color: var(--sd-accent);
2688
+ font-family: var(--font-mono);
2689
+ font-size: .9rem;
2690
+ }
2691
+
2692
+ .sd-callout {
2693
+ margin: 1.5rem 0;
2694
+ border-left: 3px solid var(--sd-accent);
2695
+ background: color-mix(in srgb, var(--sd-accent) 10%, transparent);
2696
+ padding: .9rem 1rem;
2697
+ color: var(--sd-ink);
2698
+ }
2699
+
2700
+ .sd-callout[data-tone="edge"] {
2701
+ border-color: var(--sd-accent-2);
2702
+ background: color-mix(in srgb, var(--sd-accent-2) 10%, transparent);
2703
+ }
2704
+
2705
+ .sd-prose table {
2706
+ display: block;
2707
+ width: 100%;
2708
+ max-width: 100%;
2709
+ max-height: min(32rem, 72vh);
2710
+ overflow: auto;
2711
+ scrollbar-gutter: auto;
2712
+ border: 1px solid var(--sd-line);
2713
+ border-collapse: separate;
2714
+ border-spacing: 0;
2715
+ border-radius: 6px;
2716
+ background: var(--sd-panel);
2717
+ color: var(--sd-ink);
2718
+ font-size: .875rem;
2719
+ }
2720
+
2721
+ .sd-prose th,
2722
+ .sd-prose td {
2723
+ min-width: 8rem;
2724
+ border-bottom: 1px solid color-mix(in srgb, var(--sd-line) 70%, transparent);
2725
+ padding: .7rem .9rem;
2726
+ vertical-align: top;
2727
+ line-height: 1.6;
2728
+ text-align: left;
2729
+ }
2730
+
2731
+ .sd-prose thead th {
2732
+ position: sticky;
2733
+ top: 0;
2734
+ z-index: 1;
2735
+ background-color: color-mix(in srgb, var(--sd-panel) 70%, var(--sd-bg) 30%);
2736
+ background-image: none;
2737
+ border-bottom: 1px solid var(--sd-line);
2738
+ color: color-mix(in srgb, var(--sd-ink) 90%, var(--sd-muted));
2739
+ font-weight: 600;
2740
+ font-size: .82rem;
2741
+ letter-spacing: .005em;
2742
+ white-space: nowrap;
2743
+ }
2744
+
2745
+ .sd-prose td {
2746
+ background: var(--sd-panel);
2747
+ color: color-mix(in srgb, var(--sd-ink) 92%, var(--sd-muted));
2748
+ }
2749
+
2750
+ .sd-prose tbody tr:hover td {
2751
+ background: color-mix(in srgb, var(--sd-accent) 4%, var(--sd-panel));
2752
+ }
2753
+
2754
+ .sd-prose tbody tr:nth-child(even) td {
2755
+ background: color-mix(in srgb, var(--sd-panel) 92%, var(--sd-bg) 8%);
2756
+ }
2757
+
2758
+ .sd-prose tbody tr:nth-child(even):hover td {
2759
+ background: color-mix(in srgb, var(--sd-accent) 4%, color-mix(in srgb, var(--sd-panel) 92%, var(--sd-bg) 8%));
2760
+ }
2761
+
2762
+ .sd-prose tbody tr:last-child td {
2763
+ border-bottom: 0;
2764
+ }
2765
+
2766
+ .sd-prose :is(th, td) code {
2767
+ padding: .08rem .35rem;
2768
+ font-size: .82em;
2769
+ border-radius: 4px;
2770
+ background: color-mix(in srgb, var(--sd-accent) 8%, color-mix(in srgb, var(--sd-bg) 70%, var(--sd-panel)));
2771
+ border: 1px solid color-mix(in srgb, var(--sd-line) 60%, transparent);
2772
+ }
2773
+
2774
+ .sd-code,
2775
+ .sd-prose pre {
2776
+ position: relative;
2777
+ display: block;
2778
+ margin: 1.5rem 0;
2779
+ border: 1px solid color-mix(in srgb, var(--sd-line) 90%, transparent);
2780
+ background: #fbfbfa;
2781
+ color: var(--sd-ink);
2782
+ padding: 0;
2783
+ font-family: var(--font-mono);
2784
+ font-size: 13px;
2785
+ line-height: 20px;
2786
+ counter-reset: sd-code-line;
2787
+ border-radius: 6px;
2788
+ tab-size: 2;
2789
+ overflow: hidden;
2790
+ box-shadow: 0 1px 0 color-mix(in srgb, var(--sd-ink) 4%, transparent);
2791
+ }
2792
+
2793
+ .sd-code.shiki,
2794
+ .sd-prose pre.shiki {
2795
+ background-color: #fbfbfa !important;
2796
+ color: var(--shiki-light, var(--sd-ink)) !important;
2797
+ }
2798
+
2799
+ .sd-code.shiki code,
2800
+ .sd-prose pre.shiki code {
2801
+ color: inherit;
2802
+ }
2803
+
2804
+ .sd-code.shiki .line > .sd-line-content > span,
2805
+ .sd-prose pre.shiki .line > .sd-line-content > span,
2806
+ .sd-code.shiki .line > span:not(.sd-line-no):not(.sd-line-content),
2807
+ .sd-prose pre.shiki .line > span:not(.sd-line-no):not(.sd-line-content) {
2808
+ color: var(--shiki-light, inherit);
2809
+ font-style: var(--shiki-light-font-style, normal);
2810
+ font-weight: var(--shiki-light-font-weight, inherit);
2811
+ text-decoration: var(--shiki-light-text-decoration, none);
2812
+ }
2813
+
2814
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-code,
2815
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-prose pre {
2816
+ background: #1e1e1e;
2817
+ border-color: color-mix(in srgb, var(--sd-line) 90%, transparent);
2818
+ box-shadow: none;
2819
+ }
2820
+
2821
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-code.shiki,
2822
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-prose pre.shiki {
2823
+ background-color: #1e1e1e !important;
2824
+ color: var(--shiki-dark, #d4d4d4) !important;
2825
+ }
2826
+
2827
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-code.shiki .line > .sd-line-content > span,
2828
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-prose pre.shiki .line > .sd-line-content > span,
2829
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-code.shiki .line > span:not(.sd-line-no):not(.sd-line-content),
2830
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-prose pre.shiki .line > span:not(.sd-line-no):not(.sd-line-content) {
2831
+ color: var(--shiki-dark, inherit) !important;
2832
+ font-style: var(--shiki-dark-font-style, normal) !important;
2833
+ font-weight: var(--shiki-dark-font-weight, inherit) !important;
2834
+ text-decoration: var(--shiki-dark-text-decoration, none) !important;
2835
+ }
2836
+
2837
+ .sd-code code,
2838
+ .sd-prose pre code {
2839
+ display: block;
2840
+ width: 100%;
2841
+ padding: .75rem 0;
2842
+ background: transparent;
2843
+ font-family: var(--font-mono);
2844
+ font-size: inherit;
2845
+ line-height: inherit;
2846
+ color: inherit;
2847
+ white-space: pre;
2848
+ overflow-x: auto;
2849
+ overflow-y: hidden;
2850
+ scrollbar-gutter: auto;
2851
+ }
2852
+
2853
+ .sd-code[data-wrap="true"] code,
2854
+ .sd-prose pre[data-wrap="true"] code {
2855
+ white-space: pre-wrap;
2856
+ overflow-x: hidden;
2857
+ word-break: break-word;
2858
+ overflow-wrap: anywhere;
2859
+ }
2860
+
2861
+ .sd-code[data-wrap="true"] .sd-line-content,
2862
+ .sd-prose pre[data-wrap="true"] .sd-line-content {
2863
+ white-space: pre-wrap;
2864
+ word-break: break-word;
2865
+ overflow-wrap: anywhere;
2866
+ }
2867
+
2868
+ .sd-code[data-wrap="true"] .line,
2869
+ .sd-prose pre[data-wrap="true"] .line {
2870
+ width: 100%;
2871
+ min-width: 0;
2872
+ }
2873
+
2874
+ .sd-code .line {
2875
+ display: flex;
2876
+ align-items: stretch;
2877
+ position: relative;
2878
+ width: max-content;
2879
+ min-width: 100%;
2880
+ padding: 0 1.2rem;
2881
+ background: transparent;
2882
+ line-height: 20px;
2883
+ min-height: 20px;
2884
+ }
2885
+
2886
+ .sd-code .sd-line-no {
2887
+ flex: 0 0 auto;
2888
+ width: 1.8rem;
2889
+ margin-right: .9rem;
2890
+ padding-right: .9rem;
2891
+ border-right: 1px solid color-mix(in srgb, currentColor 12%, transparent);
2892
+ text-align: right;
2893
+ color: color-mix(in srgb, currentColor 35%, transparent);
2894
+ font-size: inherit;
2895
+ line-height: inherit;
2896
+ font-variant-numeric: tabular-nums;
2897
+ user-select: none;
2898
+ -webkit-user-select: none;
2899
+ -moz-user-select: none;
2900
+ pointer-events: none;
2901
+ }
2902
+
2903
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-code .sd-line-no {
2904
+ border-right-color: color-mix(in srgb, currentColor 16%, transparent);
2905
+ }
2906
+
2907
+ .sd-code .sd-line-no::selection {
2908
+ background: transparent;
2909
+ color: inherit;
2910
+ }
2911
+
2912
+ .sd-code .sd-line-content {
2913
+ flex: 1 1 auto;
2914
+ min-width: 0;
2915
+ }
2916
+
2917
+ .sd-code .sd-line-content[data-empty="true"]::before,
2918
+ .sd-code .sd-line-content:empty::before {
2919
+ content: "\00a0";
2920
+ }
2921
+
2922
+ .sd-code[data-language='text'] .sd-line-no,
2923
+ .sd-code[data-language='txt'] .sd-line-no,
2924
+ .sd-code[data-language='plaintext'] .sd-line-no,
2925
+ .sd-code[data-no-line-numbers="true"] .sd-line-no {
2926
+ display: none;
2927
+ }
2928
+
2929
+ .sd-code .sd-line-add {
2930
+ background: color-mix(in srgb, #2ea043 16%, transparent);
2931
+ }
2932
+
2933
+ .sd-code .sd-line-remove {
2934
+ background: color-mix(in srgb, #f85149 16%, transparent);
2935
+ }
2936
+
2937
+ .sd-code .sd-line-add > .sd-line-no {
2938
+ color: #2ea043;
2939
+ }
2940
+
2941
+ .sd-code .sd-line-remove > .sd-line-no {
2942
+ color: #f85149;
2943
+ }
2944
+
2945
+ .sd-code .sd-line-meta {
2946
+ background: color-mix(in srgb, var(--sd-accent) 8%, transparent);
2947
+ color: color-mix(in srgb, var(--sd-accent) 80%, currentColor);
2948
+ }
2949
+
2950
+ .sd-code .sd-line-meta > .sd-line-no {
2951
+ color: var(--sd-accent);
2952
+ }
2953
+
2954
+ .sd-code .sd-line-highlight {
2955
+ background: color-mix(in srgb, var(--sd-accent) 10%, transparent);
2956
+ box-shadow: inset 2px 0 0 var(--sd-accent);
2957
+ }
2958
+
2959
+ .sd-code .sd-line-focus {
2960
+ background: color-mix(in srgb, var(--sd-accent-2) 10%, transparent);
2961
+ box-shadow: inset 2px 0 0 var(--sd-accent-2);
2962
+ }
2963
+
2964
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-code .sd-line-add { background: color-mix(in srgb, #3fb950 18%, transparent); }
2965
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-code .sd-line-remove { background: color-mix(in srgb, #ff7b72 18%, transparent); }
2966
+
2967
+ .sd-code-header {
2968
+ display: flex;
2969
+ align-items: center;
2970
+ gap: .55rem;
2971
+ padding: .35rem .35rem .35rem .85rem;
2972
+ border-bottom: 1px solid color-mix(in srgb, currentColor 10%, transparent);
2973
+ background: color-mix(in srgb, currentColor 4%, transparent);
2974
+ color: inherit;
2975
+ font-family: var(--font-sans);
2976
+ font-size: .78rem;
2977
+ line-height: 1;
2978
+ }
2979
+
2980
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-code-header {
2981
+ background: #181818;
2982
+ border-bottom-color: color-mix(in srgb, currentColor 14%, transparent);
2983
+ }
2984
+
2985
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-code-language {
2986
+ background: color-mix(in srgb, currentColor 8%, transparent);
2987
+ border-color: color-mix(in srgb, currentColor 16%, transparent);
2988
+ }
2989
+
2990
+ .sd-code-language {
2991
+ display: inline-flex;
2992
+ align-items: center;
2993
+ gap: .35rem;
2994
+ padding: .22rem .5rem;
2995
+ border: 1px solid color-mix(in srgb, currentColor 12%, transparent);
2996
+ border-radius: 4px;
2997
+ background: color-mix(in srgb, currentColor 5%, transparent);
2998
+ color: color-mix(in srgb, currentColor 78%, transparent);
2999
+ font: 600 .7rem var(--font-mono);
3000
+ letter-spacing: .03em;
3001
+ text-transform: none;
3002
+ }
3003
+
3004
+ .sd-code-language::before {
3005
+ content: "";
3006
+ display: inline-block;
3007
+ width: .4rem;
3008
+ height: .4rem;
3009
+ border-radius: 0;
3010
+ background: var(--sd-code-language-color, color-mix(in srgb, var(--sd-accent) 70%, currentColor 30%));
3011
+ }
3012
+
3013
+ .sd-code-language[data-language="ts"],
3014
+ .sd-code-language[data-language="tsx"] { --sd-code-language-color: #3178c6; }
3015
+ .sd-code-language[data-language="js"],
3016
+ .sd-code-language[data-language="jsx"],
3017
+ .sd-code-language[data-language="mjs"],
3018
+ .sd-code-language[data-language="cjs"] { --sd-code-language-color: #f1c40f; }
3019
+ .sd-code-language[data-language="svelte"],
3020
+ .sd-code-language[data-language="svx"] { --sd-code-language-color: #ff3e00; }
3021
+ .sd-code-language[data-language="vue"] { --sd-code-language-color: #41b883; }
3022
+ .sd-code-language[data-language="html"] { --sd-code-language-color: #e34f26; }
3023
+ .sd-code-language[data-language="css"] { --sd-code-language-color: #2965f1; }
3024
+ .sd-code-language[data-language="scss"],
3025
+ .sd-code-language[data-language="sass"] { --sd-code-language-color: #c69; }
3026
+ .sd-code-language[data-language="json"],
3027
+ .sd-code-language[data-language="jsonc"] { --sd-code-language-color: #cbcb41; }
3028
+ .sd-code-language[data-language="yaml"],
3029
+ .sd-code-language[data-language="yml"] { --sd-code-language-color: #cb171e; }
3030
+ .sd-code-language[data-language="toml"] { --sd-code-language-color: #9c4221; }
3031
+ .sd-code-language[data-language="md"],
3032
+ .sd-code-language[data-language="mdx"] { --sd-code-language-color: #519aba; }
3033
+ .sd-code-language[data-language="sh"],
3034
+ .sd-code-language[data-language="bash"],
3035
+ .sd-code-language[data-language="zsh"] { --sd-code-language-color: #4eaa25; }
3036
+ .sd-code-language[data-language="ps1"] { --sd-code-language-color: #2671be; }
3037
+ .sd-code-language[data-language="python"],
3038
+ .sd-code-language[data-language="py"] { --sd-code-language-color: #3572a5; }
3039
+ .sd-code-language[data-language="rs"] { --sd-code-language-color: #dea584; }
3040
+ .sd-code-language[data-language="go"] { --sd-code-language-color: #00add8; }
3041
+ .sd-code-language[data-language="java"] { --sd-code-language-color: #b07219; }
3042
+ .sd-code-language[data-language="kt"] { --sd-code-language-color: #a97bff; }
3043
+ .sd-code-language[data-language="swift"] { --sd-code-language-color: #f05138; }
3044
+ .sd-code-language[data-language="c"] { --sd-code-language-color: #555555; }
3045
+ .sd-code-language[data-language="cpp"] { --sd-code-language-color: #f34b7d; }
3046
+ .sd-code-language[data-language="cs"] { --sd-code-language-color: #178600; }
3047
+ .sd-code-language[data-language="sql"] { --sd-code-language-color: #e38c00; }
3048
+ .sd-code-language[data-language="diff"] { --sd-code-language-color: #2ea043; }
3049
+
3050
+ .sd-code-title {
3051
+ flex: 1;
3052
+ min-width: 0;
3053
+ overflow: hidden;
3054
+ text-overflow: ellipsis;
3055
+ white-space: nowrap;
3056
+ color: color-mix(in srgb, currentColor 80%, transparent);
3057
+ font-weight: 600;
3058
+ letter-spacing: -.005em;
3059
+ }
3060
+
3061
+ .sd-code-stats {
3062
+ display: inline-flex;
3063
+ align-items: center;
3064
+ gap: .4rem;
3065
+ font: 600 .7rem var(--font-mono);
3066
+ letter-spacing: .02em;
3067
+ }
3068
+
3069
+ .sd-code-stat-add { color: #2ea043; }
3070
+ .sd-code-stat-remove { color: #d1242f; }
3071
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-code-stat-add { color: #3fb950; }
3072
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-code-stat-remove { color: #ff7b72; }
3073
+
3074
+ .sd-code-copy {
3075
+ display: inline-flex;
3076
+ align-items: center;
3077
+ justify-content: center;
3078
+ width: 1.85rem;
3079
+ height: 1.85rem;
3080
+ margin-left: auto;
3081
+ border: 1px solid transparent;
3082
+ border-radius: 5px;
3083
+ background: transparent;
3084
+ color: color-mix(in srgb, currentColor 65%, transparent);
3085
+ cursor: pointer;
3086
+ transition: background .14s ease, color .14s ease, border-color .14s ease, opacity .14s ease, transform .14s ease;
3087
+ }
3088
+
3089
+ .sd-code-copy svg {
3090
+ width: 1rem;
3091
+ height: 1rem;
3092
+ fill: none;
3093
+ stroke: currentColor;
3094
+ stroke-width: 1.8;
3095
+ stroke-linecap: round;
3096
+ stroke-linejoin: round;
3097
+ pointer-events: none;
3098
+ }
3099
+
3100
+ .sd-code-copy:hover {
3101
+ background: color-mix(in srgb, currentColor 8%, transparent);
3102
+ color: color-mix(in srgb, currentColor 90%, transparent);
3103
+ border-color: color-mix(in srgb, currentColor 14%, transparent);
3104
+ }
3105
+
3106
+ .sd-code-copy:focus-visible {
3107
+ outline: 2px solid color-mix(in srgb, var(--sd-accent) 70%, transparent);
3108
+ outline-offset: 1px;
3109
+ }
3110
+
3111
+ .sd-code-copy[data-state="copied"] {
3112
+ color: #2ea043;
3113
+ border-color: color-mix(in srgb, #2ea043 35%, transparent);
3114
+ background: color-mix(in srgb, #2ea043 10%, transparent);
3115
+ }
3116
+
3117
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-code-copy[data-state="copied"] {
3118
+ color: #3fb950;
3119
+ background: color-mix(in srgb, #3fb950 16%, transparent);
3120
+ }
3121
+
3122
+ .sd-code-copy[data-state="copied"] svg {
3123
+ animation: sd-code-copy-pop .3s ease both;
3124
+ }
3125
+
3126
+ @keyframes sd-code-copy-pop {
3127
+ 0% { transform: scale(.6); opacity: 0; }
3128
+ 50% { transform: scale(1.15); opacity: 1; }
3129
+ 100% { transform: scale(1); opacity: 1; }
3130
+ }
3131
+
3132
+ .sd-code:not(:has(.sd-code-header)) .sd-code-copy {
3133
+ position: absolute;
3134
+ top: .5rem;
3135
+ right: .5rem;
3136
+ }
3137
+
3138
+ .sd-diff-split {
3139
+ display: block;
3140
+ padding: 0;
3141
+ }
3142
+
3143
+ .sd-diff-panes {
3144
+ display: grid;
3145
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
3146
+ font-family: var(--font-mono);
3147
+ font-size: 13px;
3148
+ line-height: 20px;
3149
+ }
3150
+
3151
+ .sd-diff-pane {
3152
+ min-width: 0;
3153
+ background: color-mix(in srgb, var(--sd-bg) 76%, var(--sd-panel));
3154
+ }
3155
+
3156
+ .sd-diff-pane[data-side="old"] {
3157
+ border-right: 1px solid color-mix(in srgb, var(--sd-line) 86%, transparent);
3158
+ }
3159
+
3160
+ .sd-diff-column-label {
3161
+ padding: .42rem .75rem .42rem 4.15rem;
3162
+ border-bottom: 1px solid color-mix(in srgb, var(--sd-line) 86%, transparent);
3163
+ background: color-mix(in srgb, var(--sd-ink) 4%, transparent);
3164
+ color: color-mix(in srgb, var(--sd-ink) 58%, transparent);
3165
+ font: 600 .68rem var(--font-sans);
3166
+ text-transform: uppercase;
3167
+ }
3168
+
3169
+ .sd-diff-scroll {
3170
+ min-width: 0;
3171
+ overflow-x: auto;
3172
+ overflow-y: hidden;
3173
+ scrollbar-gutter: auto;
3174
+ }
3175
+
3176
+ .sd-diff-scroll:focus-visible {
3177
+ outline: 2px solid color-mix(in srgb, var(--sd-accent) 70%, transparent);
3178
+ outline-offset: -2px;
3179
+ }
3180
+
3181
+ .sd-diff-lines {
3182
+ width: max-content;
3183
+ min-width: 100%;
3184
+ padding: .15rem 0 .55rem;
3185
+ }
3186
+
3187
+ .sd-diff-row {
3188
+ display: block;
3189
+ }
3190
+
3191
+ .sd-diff-meta {
3192
+ display: block;
3193
+ }
3194
+
3195
+ .sd-diff-cell {
3196
+ display: grid;
3197
+ grid-template-columns: 3ch max-content;
3198
+ align-items: start;
3199
+ gap: .75rem;
3200
+ width: max-content;
3201
+ min-width: 100%;
3202
+ min-height: 20px;
3203
+ padding: 0 .8rem 0 .65rem;
3204
+ border-top: 1px solid color-mix(in srgb, var(--sd-line) 44%, transparent);
3205
+ white-space: pre;
3206
+ }
3207
+
3208
+ .sd-diff-line-no {
3209
+ font-size: .72rem;
3210
+ line-height: inherit;
3211
+ color: color-mix(in srgb, var(--sd-ink) 35%, transparent);
3212
+ text-align: right;
3213
+ user-select: none;
3214
+ }
3215
+
3216
+ .sd-diff-code {
3217
+ display: inline;
3218
+ min-width: max-content;
3219
+ padding: 0;
3220
+ border: 0;
3221
+ border-radius: 0;
3222
+ background: transparent;
3223
+ white-space: pre;
3224
+ font-family: var(--font-mono);
3225
+ font-size: inherit;
3226
+ line-height: inherit;
3227
+ color: inherit;
3228
+ }
3229
+
3230
+ .sd-diff-add {
3231
+ background: color-mix(in srgb, #2ea043 15%, transparent);
3232
+ }
3233
+
3234
+ .sd-diff-remove {
3235
+ background: color-mix(in srgb, #d1242f 13%, transparent);
3236
+ }
3237
+
3238
+ .sd-diff-add .sd-diff-line-no {
3239
+ color: #2ea043;
3240
+ }
3241
+
3242
+ .sd-diff-remove .sd-diff-line-no {
3243
+ color: #d1242f;
3244
+ }
3245
+
3246
+ .sd-diff-empty {
3247
+ background: color-mix(in srgb, var(--sd-line) 16%, transparent);
3248
+ }
3249
+
3250
+ .sd-diff-meta-cell {
3251
+ color: color-mix(in srgb, var(--sd-accent) 80%, var(--sd-ink));
3252
+ background: color-mix(in srgb, var(--sd-accent) 9%, transparent);
3253
+ font-size: .78rem;
3254
+ white-space: pre;
3255
+ }
3256
+
3257
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-diff-pane {
3258
+ background: color-mix(in srgb, #1e1e1e 88%, var(--sd-panel));
3259
+ }
3260
+
3261
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-diff-column-label {
3262
+ background: color-mix(in srgb, currentColor 5%, transparent);
3263
+ border-bottom-color: color-mix(in srgb, currentColor 13%, transparent);
3264
+ color: color-mix(in srgb, currentColor 58%, transparent);
3265
+ }
3266
+
3267
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-diff-pane[data-side="old"] {
3268
+ border-right-color: color-mix(in srgb, currentColor 12%, transparent);
3269
+ }
3270
+
3271
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-diff-cell {
3272
+ border-top-color: color-mix(in srgb, currentColor 8%, transparent);
3273
+ }
3274
+
3275
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-diff-add {
3276
+ background: color-mix(in srgb, #3fb950 17%, transparent);
3277
+ }
3278
+
3279
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-diff-remove {
3280
+ background: color-mix(in srgb, #ff7b72 17%, transparent);
3281
+ }
3282
+
3283
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-diff-add .sd-diff-line-no {
3284
+ color: #3fb950;
3285
+ }
3286
+
3287
+ :is(:root[data-theme="dark"], html:has(.sd-root[data-theme="dark"])) .sd-diff-remove .sd-diff-line-no {
3288
+ color: #ff7b72;
3289
+ }
3290
+
3291
+ .sd-toc-title {
3292
+ color: color-mix(in srgb, var(--sd-ink) 70%, transparent);
3293
+ font-size: .72rem;
3294
+ line-height: 1.5;
3295
+ font-family: var(--font-sans);
3296
+ font-weight: 600;
3297
+ text-transform: uppercase;
3298
+ letter-spacing: .06em;
3299
+ padding: .25rem .15rem .5rem;
3300
+ }
3301
+
3302
+ .sd-toc-link {
3303
+ color: var(--sd-muted);
3304
+ display: block;
3305
+ font-size: .82rem;
3306
+ line-height: 1.5;
3307
+ padding: .3rem .25rem;
3308
+ border-radius: 4px;
3309
+ transition: color .16s ease, background .16s ease;
3310
+ }
3311
+
3312
+ .sd-toc-link:hover {
3313
+ color: var(--sd-ink);
3314
+ }
3315
+
3316
+ .sd-toc-link.sd-active {
3317
+ color: var(--sd-accent);
3318
+ font-weight: 500;
3319
+ }
3320
+
3321
+ .sd-depth-3 {
3322
+ padding-left: .9rem;
3323
+ }
3324
+
3325
+ .sd-depth-4 {
3326
+ padding-left: 1.7rem;
3327
+ }
3328
+
3329
+ .sd-doc-footer {
3330
+ display: grid;
3331
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3332
+ gap: 1rem;
3333
+ margin-top: 4rem;
3334
+ padding-top: 1.6rem;
3335
+ border-top: 1px dashed color-mix(in srgb, var(--sd-line) 80%, transparent);
3336
+ }
3337
+
3338
+ .sd-doc-meta {
3339
+ grid-column: 1 / -1;
3340
+ display: flex;
3341
+ flex-wrap: wrap;
3342
+ gap: .8rem;
3343
+ color: var(--sd-muted);
3344
+ font-family: var(--font-sans);
3345
+ font-size: .82rem;
3346
+ }
3347
+
3348
+ .sd-doc-meta a {
3349
+ color: var(--sd-accent);
3350
+ }
3351
+
3352
+ .sd-prev-next {
3353
+ position: relative;
3354
+ display: grid;
3355
+ gap: .35rem;
3356
+ border: 1px solid var(--sd-line);
3357
+ background: var(--sd-panel);
3358
+ padding: 1rem 1.1rem;
3359
+ text-decoration: none;
3360
+ color: var(--sd-ink);
3361
+ overflow: hidden;
3362
+ transition: transform .2s ease, border-color .2s ease;
3363
+ }
3364
+
3365
+ .sd-prev-next::before {
3366
+ content: "";
3367
+ position: absolute;
3368
+ top: 0;
3369
+ height: 100%;
3370
+ width: 3px;
3371
+ background:
3372
+ repeating-linear-gradient(var(--sd-accent) 0 4px, transparent 0 8px);
3373
+ opacity: .55;
3374
+ transition: opacity .2s ease;
3375
+ }
3376
+
3377
+ .sd-prev-next[data-direction="prev"] {
3378
+ grid-column: 1;
3379
+ }
3380
+
3381
+ .sd-prev-next[data-direction="next"] {
3382
+ grid-column: 2;
3383
+ }
3384
+
3385
+ .sd-prev-next[data-direction="prev"]::before {
3386
+ left: 0;
3387
+ }
3388
+
3389
+ .sd-prev-next[data-direction="next"]::before {
3390
+ right: 0;
3391
+ }
3392
+
3393
+ .sd-prev-next[data-direction="next"] {
3394
+ text-align: right;
3395
+ }
3396
+
3397
+ .sd-prev-next:hover {
3398
+ border-color: color-mix(in srgb, var(--sd-accent) 60%, var(--sd-line));
3399
+ transform: translateY(-2px);
3400
+ }
3401
+
3402
+ .sd-prev-next:hover::before {
3403
+ opacity: 1;
3404
+ }
3405
+
3406
+ .sd-prev-next span {
3407
+ display: inline-flex;
3408
+ align-items: center;
3409
+ gap: .4rem;
3410
+ color: var(--sd-muted);
3411
+ font-size: .72rem;
3412
+ font-family: var(--font-sans);
3413
+ font-weight: 650;
3414
+ letter-spacing: .04em;
3415
+ text-transform: uppercase;
3416
+ }
3417
+
3418
+ .sd-prev-next[data-direction="next"] span {
3419
+ justify-content: flex-end;
3420
+ }
3421
+
3422
+ .sd-prev-next span i {
3423
+ display: inline-block;
3424
+ width: 6px;
3425
+ height: 6px;
3426
+ background: var(--sd-accent);
3427
+ image-rendering: pixelated;
3428
+ }
3429
+
3430
+ .sd-prev-next strong {
3431
+ font-family: var(--font-sans);
3432
+ font-size: 1.02rem;
3433
+ font-weight: 600;
3434
+ letter-spacing: -.005em;
3435
+ }
3436
+
3437
+ .sd-prev-next-arrow {
3438
+ position: absolute;
3439
+ bottom: .75rem;
3440
+ font-family: var(--font-mono);
3441
+ font-style: normal;
3442
+ font-size: 1rem;
3443
+ color: color-mix(in srgb, var(--sd-accent) 70%, var(--sd-ink));
3444
+ opacity: .25;
3445
+ transition: opacity .2s ease, transform .2s ease;
3446
+ }
3447
+
3448
+ .sd-prev-next[data-direction="prev"] .sd-prev-next-arrow {
3449
+ right: .9rem;
3450
+ }
3451
+
3452
+ .sd-prev-next[data-direction="next"] .sd-prev-next-arrow {
3453
+ left: .9rem;
3454
+ }
3455
+
3456
+ .sd-prev-next:hover .sd-prev-next-arrow {
3457
+ opacity: 1;
3458
+ }
3459
+
3460
+ .sd-prev-next[data-direction="next"]:hover .sd-prev-next-arrow {
3461
+ transform: translateX(3px);
3462
+ }
3463
+
3464
+ .sd-prev-next[data-direction="prev"]:hover .sd-prev-next-arrow {
3465
+ transform: translateX(-3px);
3466
+ }
3467
+
3468
+ .sd-home {
3469
+ max-width: none;
3470
+ }
3471
+
3472
+ .sd-home-hero {
3473
+ position: relative;
3474
+ display: grid;
3475
+ grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
3476
+ align-items: center;
3477
+ gap: clamp(2rem, 4vw, 3.5rem);
3478
+ min-height: min(720px, calc(100vh - 140px));
3479
+ padding: clamp(3rem, 7vw, 5.5rem) clamp(1.2rem, 6vw, 5rem);
3480
+ overflow: hidden;
3481
+ }
3482
+
3483
+ .sd-home-hero::before {
3484
+ content: "";
3485
+ position: absolute;
3486
+ inset: 0;
3487
+ pointer-events: none;
3488
+ background:
3489
+ linear-gradient(color-mix(in srgb, var(--sd-grid-line) 55%, transparent) 1px, transparent 1px),
3490
+ linear-gradient(90deg, color-mix(in srgb, var(--sd-grid-line) 55%, transparent) 1px, transparent 1px),
3491
+ radial-gradient(ellipse at 78% 22%, color-mix(in srgb, var(--sd-accent-2) 14%, transparent), transparent 26rem),
3492
+ radial-gradient(ellipse at 12% 78%, color-mix(in srgb, var(--sd-accent) 12%, transparent), transparent 24rem);
3493
+ background-size: 64px 64px, 64px 64px, 100% 100%, 100% 100%;
3494
+ mask-image: radial-gradient(ellipse at 50% 40%, black 55%, transparent 100%);
3495
+ opacity: .55;
3496
+ }
3497
+
3498
+ .sd-home-hero-tape {
3499
+ position: absolute;
3500
+ inset: auto 0 0 0;
3501
+ height: 18px;
3502
+ pointer-events: none;
3503
+ background:
3504
+ repeating-linear-gradient(
3505
+ 90deg,
3506
+ var(--sd-ink) 0 14px,
3507
+ transparent 14px 28px
3508
+ );
3509
+ opacity: .14;
3510
+ mask-image: linear-gradient(90deg, transparent, black 18%, black 82%, transparent);
3511
+ }
3512
+
3513
+ .sd-home-copy,
3514
+ .sd-home-visual,
3515
+ .sd-pixel-stage {
3516
+ position: relative;
3517
+ z-index: 1;
3518
+ }
3519
+
3520
+ .sd-home-copy h1 {
3521
+ margin-top: .55rem;
3522
+ }
3523
+
3524
+ .sd-home-copy > p {
3525
+ margin-top: 1.15rem;
3526
+ }
3527
+
3528
+ .sd-actions {
3529
+ display: flex;
3530
+ flex-wrap: wrap;
3531
+ gap: .8rem;
3532
+ margin-top: 1.8rem;
3533
+ }
3534
+
3535
+ .sd-button {
3536
+ display: inline-flex;
3537
+ align-items: center;
3538
+ justify-content: center;
3539
+ gap: .55rem;
3540
+ min-width: 8rem;
3541
+ }
3542
+
3543
+ .sd-button-primary {
3544
+ background: var(--sd-ink);
3545
+ color: var(--sd-bg);
3546
+ }
3547
+
3548
+ .sd-button-arrow {
3549
+ display: inline-block;
3550
+ width: .55rem;
3551
+ height: .55rem;
3552
+ image-rendering: pixelated;
3553
+ background:
3554
+ linear-gradient(currentColor, currentColor) 0 100% / 100% 25% no-repeat,
3555
+ linear-gradient(currentColor, currentColor) 100% 0 / 25% 100% no-repeat;
3556
+ transition: transform .18s ease;
3557
+ }
3558
+
3559
+ .sd-button:hover .sd-button-arrow {
3560
+ transform: translate(2px, -2px);
3561
+ }
3562
+
3563
+ .sd-pixel-stage {
3564
+ position: relative;
3565
+ display: block;
3566
+ aspect-ratio: 14 / 9;
3567
+ padding: clamp(1rem, 2vw, 1.5rem);
3568
+ border: 1px solid var(--sd-line);
3569
+ background:
3570
+ linear-gradient(var(--sd-grid-line) 1px, transparent 1px),
3571
+ linear-gradient(90deg, var(--sd-grid-line) 1px, transparent 1px),
3572
+ color-mix(in srgb, var(--sd-panel) 82%, transparent);
3573
+ background-size: 16px 16px;
3574
+ box-shadow:
3575
+ inset 0 0 0 1px color-mix(in srgb, var(--sd-bg) 38%, transparent),
3576
+ 0 24px 80px color-mix(in srgb, var(--sd-ink) 9%, transparent);
3577
+ overflow: hidden;
3578
+ }
3579
+
3580
+ .sd-pixel-stage::after {
3581
+ content: "";
3582
+ position: absolute;
3583
+ inset: 0;
3584
+ pointer-events: none;
3585
+ background:
3586
+ radial-gradient(circle at 50% 50%, transparent 38%, color-mix(in srgb, var(--sd-bg) 28%, transparent) 100%);
3587
+ }
3588
+
3589
+ .sd-pixel-frame {
3590
+ position: absolute;
3591
+ width: 14px;
3592
+ height: 14px;
3593
+ z-index: 2;
3594
+ pointer-events: none;
3595
+ background:
3596
+ linear-gradient(var(--sd-accent), var(--sd-accent)) 0 0 / 100% 2px no-repeat,
3597
+ linear-gradient(var(--sd-accent), var(--sd-accent)) 0 0 / 2px 100% no-repeat;
3598
+ }
3599
+
3600
+ .sd-pixel-frame[data-corner="tl"] { top: .55rem; left: .55rem; }
3601
+ .sd-pixel-frame[data-corner="tr"] { top: .55rem; right: .55rem; transform: scaleX(-1); }
3602
+ .sd-pixel-frame[data-corner="bl"] { bottom: .55rem; left: .55rem; transform: scaleY(-1); }
3603
+ .sd-pixel-frame[data-corner="br"] { bottom: .55rem; right: .55rem; transform: scale(-1); }
3604
+
3605
+ .sd-pixel-grid {
3606
+ position: relative;
3607
+ z-index: 1;
3608
+ display: grid;
3609
+ grid-template-columns: repeat(14, minmax(0, 1fr));
3610
+ grid-auto-rows: 1fr;
3611
+ gap: 6px;
3612
+ width: 100%;
3613
+ height: 100%;
3614
+ }
3615
+
3616
+ .sd-pixel-grid > span {
3617
+ position: relative;
3618
+ min-width: 0;
3619
+ min-height: 0;
3620
+ background: color-mix(in srgb, var(--sd-accent) var(--mix), var(--sd-line));
3621
+ opacity: .42;
3622
+ animation: sd-pixel-wave 8.4s ease-in-out infinite;
3623
+ animation-delay: var(--wave-delay);
3624
+ transition: background .28s ease, opacity .28s ease, transform .28s ease;
3625
+ will-change: background-color, opacity;
3626
+ }
3627
+
3628
+ .sd-pixel-grid > span.sd-pixel-hot {
3629
+ background: color-mix(in srgb, var(--sd-accent) 78%, var(--sd-ink));
3630
+ opacity: .92;
3631
+ }
3632
+
3633
+ .sd-pixel-grid > span.sd-pixel-accent {
3634
+ background: color-mix(in srgb, var(--sd-accent-2) 65%, var(--sd-accent));
3635
+ opacity: .94;
3636
+ }
3637
+
3638
+ .sd-pixel-stage:hover .sd-pixel-grid > span:not(.sd-pixel-hot) {
3639
+ opacity: .62;
3640
+ }
3641
+
3642
+ .sd-pixel-tag {
3643
+ position: absolute;
3644
+ right: .85rem;
3645
+ bottom: .65rem;
3646
+ z-index: 3;
3647
+ border: 1px solid color-mix(in srgb, var(--sd-line) 88%, transparent);
3648
+ background: color-mix(in srgb, var(--sd-panel) 92%, transparent);
3649
+ color: var(--sd-muted);
3650
+ padding: .12rem .42rem;
3651
+ font-family: var(--font-sans);
3652
+ font-size: .68rem;
3653
+ font-weight: 650;
3654
+ letter-spacing: .03em;
3655
+ }
3656
+
3657
+ .sd-home-visual {
3658
+ display: block;
3659
+ width: 100%;
3660
+ aspect-ratio: 14 / 9;
3661
+ object-fit: cover;
3662
+ border: 1px solid var(--sd-line);
3663
+ background: var(--sd-panel);
3664
+ }
3665
+
3666
+ .sd-home-grid {
3667
+ display: grid;
3668
+ grid-template-columns: repeat(4, minmax(0, 1fr));
3669
+ border-top: 1px solid var(--sd-line);
3670
+ border-bottom: 1px solid var(--sd-line);
3671
+ background: color-mix(in srgb, var(--sd-panel) 60%, transparent);
3672
+ }
3673
+
3674
+ .sd-home-grid a {
3675
+ position: relative;
3676
+ display: grid;
3677
+ grid-template-rows: auto auto auto 1fr auto;
3678
+ gap: 1rem;
3679
+ color: inherit;
3680
+ min-height: 17.5rem;
3681
+ padding: 1.4rem 1.3rem 1.55rem;
3682
+ text-decoration: none;
3683
+ border-right: 1px solid var(--sd-line);
3684
+ background: transparent;
3685
+ overflow: hidden;
3686
+ transition: background .22s ease, transform .22s ease, color .22s ease;
3687
+ }
3688
+
3689
+ .sd-home-grid a:last-child {
3690
+ border-right: 0;
3691
+ }
3692
+
3693
+ .sd-home-grid a::before {
3694
+ content: "";
3695
+ position: absolute;
3696
+ inset: auto 0 0 0;
3697
+ height: 3px;
3698
+ background:
3699
+ repeating-linear-gradient(
3700
+ 90deg,
3701
+ var(--sd-accent) 0 6px,
3702
+ transparent 6px 12px
3703
+ );
3704
+ transform: scaleX(.18);
3705
+ transform-origin: left;
3706
+ transition: transform .35s ease;
3707
+ }
3708
+
3709
+ .sd-home-grid a::after {
3710
+ content: "";
3711
+ position: absolute;
3712
+ inset: 0;
3713
+ pointer-events: none;
3714
+ background:
3715
+ linear-gradient(var(--sd-grid-line) 1px, transparent 1px),
3716
+ linear-gradient(90deg, var(--sd-grid-line) 1px, transparent 1px);
3717
+ background-size: 12px 12px;
3718
+ background-position: 100% 100%;
3719
+ mask-image: radial-gradient(circle at 100% 100%, black 0%, transparent 55%);
3720
+ opacity: .42;
3721
+ transition: opacity .22s ease;
3722
+ }
3723
+
3724
+ .sd-home-grid a:hover {
3725
+ background: color-mix(in srgb, var(--sd-accent) 7%, var(--sd-panel));
3726
+ transform: translateY(-2px);
3727
+ }
3728
+
3729
+ .sd-home-grid a:hover::before {
3730
+ transform: scaleX(1);
3731
+ }
3732
+
3733
+ .sd-home-grid a:hover::after {
3734
+ opacity: .74;
3735
+ }
3736
+
3737
+ .sd-home-card-tag {
3738
+ display: inline-flex;
3739
+ align-items: center;
3740
+ gap: .42rem;
3741
+ width: max-content;
3742
+ border: 1px solid color-mix(in srgb, var(--sd-accent) 45%, var(--sd-line));
3743
+ color: var(--sd-accent);
3744
+ padding: .18rem .5rem .18rem .42rem;
3745
+ font-family: var(--font-sans);
3746
+ font-size: .72rem;
3747
+ font-weight: 650;
3748
+ text-transform: uppercase;
3749
+ letter-spacing: .02em;
3750
+ }
3751
+
3752
+ .sd-home-card-tag i {
3753
+ width: .42rem;
3754
+ height: .42rem;
3755
+ background: var(--sd-accent);
3756
+ display: inline-block;
3757
+ }
3758
+
3759
+ .sd-home-card-glyph {
3760
+ display: grid;
3761
+ gap: 2px;
3762
+ width: max-content;
3763
+ padding: 4px;
3764
+ border: 1px solid color-mix(in srgb, var(--sd-line) 70%, transparent);
3765
+ background: color-mix(in srgb, var(--sd-panel) 60%, transparent);
3766
+ }
3767
+
3768
+ .sd-home-card-glyph > div {
3769
+ display: grid;
3770
+ grid-auto-flow: column;
3771
+ gap: 2px;
3772
+ }
3773
+
3774
+ .sd-home-card-glyph i {
3775
+ display: block;
3776
+ width: 7px;
3777
+ height: 7px;
3778
+ background: color-mix(in srgb, var(--sd-line) 80%, transparent);
3779
+ transition: background .25s ease;
3780
+ }
3781
+
3782
+ .sd-home-card-glyph i[data-on="true"] {
3783
+ background: color-mix(in srgb, var(--sd-accent) 75%, var(--sd-ink));
3784
+ }
3785
+
3786
+ .sd-home-grid a:hover .sd-home-card-glyph i[data-on="true"] {
3787
+ background: var(--sd-accent-2);
3788
+ }
3789
+
3790
+ .sd-home-grid strong {
3791
+ display: block;
3792
+ align-self: end;
3793
+ margin: 0;
3794
+ font-size: 1.3rem;
3795
+ font-weight: 650;
3796
+ line-height: 1.2;
3797
+ }
3798
+
3799
+ .sd-home-grid small {
3800
+ color: var(--sd-muted);
3801
+ min-height: 4.2em;
3802
+ line-height: 1.6;
3803
+ font-size: .92rem;
3804
+ }
3805
+
3806
+ .sd-home-card-arrow {
3807
+ position: absolute;
3808
+ right: 1.2rem;
3809
+ bottom: 1.2rem;
3810
+ color: var(--sd-muted);
3811
+ font: 1.05rem var(--font-mono);
3812
+ opacity: 0;
3813
+ transform: translateX(-4px);
3814
+ transition: opacity .22s ease, transform .22s ease, color .22s ease;
3815
+ }
3816
+
3817
+ .sd-home-grid a:hover .sd-home-card-arrow {
3818
+ opacity: 1;
3819
+ transform: translateX(0);
3820
+ color: var(--sd-accent);
3821
+ }
3822
+
3823
+ .sd-home-body {
3824
+ max-width: 1080px;
3825
+ margin: 0 auto;
3826
+ padding: clamp(3rem, 6vw, 5rem) 1.2rem;
3827
+ }
3828
+
3829
+ .sd-home-body.sd-prose {
3830
+ max-width: 1100px;
3831
+ line-height: 1.65;
3832
+ }
3833
+
3834
+ .sd-qa {
3835
+ display: grid;
3836
+ gap: 1.6rem;
3837
+ margin: 2rem 0 0;
3838
+ }
3839
+
3840
+ .sd-qa-head {
3841
+ display: grid;
3842
+ gap: .55rem;
3843
+ max-width: 56ch;
3844
+ }
3845
+
3846
+ .sd-qa-eyebrow {
3847
+ display: inline-flex;
3848
+ align-items: center;
3849
+ gap: .55rem;
3850
+ margin: 0;
3851
+ color: var(--sd-muted);
3852
+ font-family: var(--font-sans);
3853
+ font-size: .74rem;
3854
+ font-weight: 650;
3855
+ letter-spacing: .04em;
3856
+ text-transform: uppercase;
3857
+ }
3858
+
3859
+ .sd-qa-dot {
3860
+ display: inline-block;
3861
+ width: 8px;
3862
+ height: 8px;
3863
+ background: var(--sd-accent);
3864
+ image-rendering: pixelated;
3865
+ }
3866
+
3867
+ .sd-qa-head h2 {
3868
+ margin: 0;
3869
+ font-family: var(--font-sans);
3870
+ font-size: clamp(1.7rem, 3vw, 2.25rem);
3871
+ font-weight: 650;
3872
+ line-height: 1.14;
3873
+ letter-spacing: -.005em;
3874
+ color: var(--sd-ink);
3875
+ border: 0;
3876
+ padding: 0;
3877
+ }
3878
+
3879
+ .sd-qa-stack {
3880
+ display: grid;
3881
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3882
+ gap: 0;
3883
+ border: 1px solid var(--sd-line);
3884
+ background: var(--sd-panel);
3885
+ }
3886
+
3887
+ .sd-qa-card {
3888
+ position: relative;
3889
+ display: grid;
3890
+ grid-template-columns: auto 1fr;
3891
+ gap: 1rem 1.1rem;
3892
+ margin: 0;
3893
+ padding: 1.4rem 1.5rem 1.5rem;
3894
+ background: transparent;
3895
+ transition: background-color .2s ease;
3896
+ }
3897
+
3898
+ .sd-qa-card + .sd-qa-card {
3899
+ border-left: 1px solid var(--sd-line);
3900
+ }
3901
+
3902
+ .sd-qa-card:nth-child(n+3) {
3903
+ border-top: 1px solid var(--sd-line);
3904
+ }
3905
+
3906
+ .sd-qa-card:nth-child(odd) {
3907
+ border-left: 0;
3908
+ }
3909
+
3910
+ .sd-qa-card:hover {
3911
+ background: color-mix(in srgb, var(--sd-accent) 5%, transparent);
3912
+ }
3913
+
3914
+ .sd-qa-num {
3915
+ display: inline-flex;
3916
+ align-items: flex-start;
3917
+ font-family: var(--font-sans);
3918
+ font-size: .82rem;
3919
+ font-weight: 650;
3920
+ letter-spacing: .03em;
3921
+ color: var(--sd-accent);
3922
+ padding-top: .2rem;
3923
+ }
3924
+
3925
+ .sd-qa-body {
3926
+ display: grid;
3927
+ gap: .55rem;
3928
+ min-width: 0;
3929
+ }
3930
+
3931
+ .sd-qa-body h3 {
3932
+ margin: 0;
3933
+ font-family: var(--font-sans);
3934
+ font-size: 1.04rem;
3935
+ font-weight: 650;
3936
+ line-height: 1.32;
3937
+ letter-spacing: -.003em;
3938
+ color: var(--sd-ink);
3939
+ }
3940
+
3941
+ .sd-qa-body p {
3942
+ margin: 0;
3943
+ max-width: 50ch;
3944
+ color: color-mix(in srgb, var(--sd-ink) 72%, var(--sd-muted));
3945
+ font-size: .94rem;
3946
+ line-height: 1.62;
3947
+ }
3948
+
3949
+ .sd-qa-chips {
3950
+ list-style: none;
3951
+ display: flex;
3952
+ flex-wrap: wrap;
3953
+ gap: .4rem;
3954
+ margin: .15rem 0 0;
3955
+ padding: 0;
3956
+ }
3957
+
3958
+ .sd-qa-chips li {
3959
+ display: inline-flex;
3960
+ align-items: center;
3961
+ gap: .35rem;
3962
+ border: 1px solid color-mix(in srgb, var(--sd-line) 90%, transparent);
3963
+ background: color-mix(in srgb, var(--sd-bg) 60%, var(--sd-panel));
3964
+ padding: .28rem .55rem;
3965
+ color: color-mix(in srgb, var(--sd-ink) 80%, var(--sd-muted));
3966
+ font-family: var(--font-sans);
3967
+ font-size: .78rem;
3968
+ font-weight: 500;
3969
+ letter-spacing: .01em;
3970
+ }
3971
+
3972
+ .sd-qa-chips li::before {
3973
+ content: "";
3974
+ width: 4px;
3975
+ height: 4px;
3976
+ background: var(--sd-accent);
3977
+ image-rendering: pixelated;
3978
+ }
3979
+
3980
+ @media (max-width: 720px) {
3981
+ .sd-qa-stack {
3982
+ grid-template-columns: 1fr;
3983
+ }
3984
+
3985
+ .sd-qa-card + .sd-qa-card {
3986
+ border-left: 0;
3987
+ border-top: 1px solid var(--sd-line);
3988
+ }
3989
+ }
3990
+
3991
+ @media (max-width: 980px) {
3992
+ .sd-menu-button {
3993
+ display: inline-flex;
3994
+ }
3995
+
3996
+ .sd-doc-shell {
3997
+ display: block;
3998
+ padding: .85rem .85rem 4.5rem;
3999
+ }
4000
+
4001
+ .sd-sidebar {
4002
+ display: none;
4003
+ }
4004
+
4005
+ .sd-toc {
4006
+ display: none;
4007
+ }
4008
+
4009
+ .sd-topbar {
4010
+ height: 64px;
4011
+ min-height: 64px;
4012
+ flex-wrap: nowrap;
4013
+ padding: 0 clamp(.85rem, 4vw, 1.15rem);
4014
+ }
4015
+
4016
+ .sd-topbar.sd-mobile-menu-open {
4017
+ z-index: 60;
4018
+ }
4019
+
4020
+ .sd-topbar-menu {
4021
+ position: absolute;
4022
+ left: 0;
4023
+ right: 0;
4024
+ top: calc(100% - 1px);
4025
+ z-index: 1;
4026
+ display: none;
4027
+ grid-template-columns: minmax(0, 1fr);
4028
+ gap: .75rem;
4029
+ max-height: calc(100dvh - 64px);
4030
+ overflow: auto;
4031
+ padding: .85rem;
4032
+ border-top: 1px solid color-mix(in srgb, var(--sd-line) 70%, transparent);
4033
+ border-bottom: 1px solid var(--sd-line);
4034
+ background: var(--sd-bg);
4035
+ box-shadow: 0 18px 40px color-mix(in srgb, var(--sd-ink) 12%, transparent);
4036
+ backdrop-filter: blur(16px);
4037
+ white-space: normal;
4038
+ }
4039
+
4040
+ .sd-topbar.sd-mobile-menu-open .sd-topbar-menu {
4041
+ display: grid;
4042
+ }
4043
+
4044
+ .sd-topbar-spacer {
4045
+ display: none;
4046
+ }
4047
+
4048
+ .sd-topbar-menu .sd-theme-toggle {
4049
+ justify-self: start;
4050
+ }
4051
+
4052
+ .sd-brand {
4053
+ min-width: 0;
4054
+ margin-right: 0;
4055
+ }
4056
+
4057
+ .sd-brand span:last-child {
4058
+ min-width: 0;
4059
+ overflow: hidden;
4060
+ text-overflow: ellipsis;
4061
+ }
4062
+
4063
+ .sd-topbar-tools {
4064
+ order: -1;
4065
+ display: flex;
4066
+ align-items: stretch;
4067
+ gap: .45rem;
4068
+ min-width: 0;
4069
+ }
4070
+
4071
+ .sd-topbar-tools .sd-search-trigger {
4072
+ flex: 1 1 auto;
4073
+ min-width: 0;
4074
+ margin-right: 0;
4075
+ justify-content: space-between;
4076
+ }
4077
+
4078
+ .sd-topbar-tools .sd-search-trigger kbd {
4079
+ display: none;
4080
+ }
4081
+
4082
+ .sd-topbar-tools .sd-scope-switcher {
4083
+ flex: 0 0 auto;
4084
+ min-width: 0;
4085
+ }
4086
+
4087
+ .sd-topbar-tools .sd-scope-menu,
4088
+ .sd-topbar-tools .sd-scope-trigger {
4089
+ min-width: 0;
4090
+ }
4091
+
4092
+ .sd-topbar-tools .sd-scope-trigger {
4093
+ min-width: 3.45rem;
4094
+ width: auto;
4095
+ gap: .38rem;
4096
+ padding: 0 .55rem;
4097
+ }
4098
+
4099
+ .sd-topbar-tools .sd-scope-label-full {
4100
+ display: none;
4101
+ }
4102
+
4103
+ .sd-topbar-tools .sd-scope-label-short {
4104
+ display: inline;
4105
+ }
4106
+
4107
+ .sd-scope-options {
4108
+ left: 0;
4109
+ right: auto;
4110
+ min-width: 7rem;
4111
+ }
4112
+
4113
+ .sd-topnav {
4114
+ display: flex;
4115
+ flex-direction: column;
4116
+ align-items: stretch;
4117
+ gap: 0;
4118
+ padding: .15rem 0;
4119
+ border-top: 1px solid color-mix(in srgb, var(--sd-line) 72%, transparent);
4120
+ border-bottom: 1px solid color-mix(in srgb, var(--sd-line) 72%, transparent);
4121
+ }
4122
+
4123
+ .sd-topnav a {
4124
+ padding: .68rem .2rem;
4125
+ border-bottom: 1px solid color-mix(in srgb, var(--sd-line) 58%, transparent);
4126
+ color: var(--sd-ink);
4127
+ overflow: visible;
4128
+ text-overflow: clip;
4129
+ }
4130
+
4131
+ .sd-topnav a.sd-active {
4132
+ color: var(--sd-accent);
4133
+ }
4134
+
4135
+ .sd-topnav a:last-child {
4136
+ border-bottom: 0;
4137
+ }
4138
+
4139
+ .sd-socialnav a {
4140
+ min-width: 0;
4141
+ border: 1px solid color-mix(in srgb, var(--sd-line) 80%, transparent);
4142
+ background: color-mix(in srgb, var(--sd-panel) 78%, transparent);
4143
+ padding: .6rem .68rem;
4144
+ overflow: hidden;
4145
+ text-overflow: ellipsis;
4146
+ }
4147
+
4148
+ .sd-socialnav {
4149
+ display: flex;
4150
+ flex-wrap: wrap;
4151
+ gap: .35rem;
4152
+ }
4153
+
4154
+ .sd-mobile-docnav {
4155
+ display: grid;
4156
+ gap: .25rem;
4157
+ padding-top: .75rem;
4158
+ border-top: 1px solid color-mix(in srgb, var(--sd-line) 76%, transparent);
4159
+ white-space: normal;
4160
+ }
4161
+
4162
+ .sd-mobile-docnav .sd-sidebar-root {
4163
+ gap: .1rem;
4164
+ }
4165
+
4166
+ .sd-home-hero,
4167
+ .sd-home-grid {
4168
+ grid-template-columns: 1fr;
4169
+ }
4170
+
4171
+ .sd-home-hero {
4172
+ min-height: auto;
4173
+ padding: 3rem 1.2rem;
4174
+ }
4175
+
4176
+ .sd-home-faq {
4177
+ grid-template-columns: 1fr;
4178
+ }
4179
+
4180
+ .sd-chat-panel {
4181
+ top: 80px;
4182
+ right: .5rem;
4183
+ bottom: .5rem;
4184
+ width: calc(100vw - 1rem);
4185
+ }
4186
+
4187
+ .sd-floating-toolbar {
4188
+ right: 1rem;
4189
+ }
4190
+
4191
+ .sd-floating-tool-ai .sd-floating-tool-label {
4192
+ display: none;
4193
+ max-width: 0;
4194
+ opacity: 0;
4195
+ margin: 0;
4196
+ }
4197
+
4198
+ .sd-floating-tool-ai {
4199
+ padding: 0;
4200
+ min-width: 2.2rem;
4201
+ width: 2.2rem;
4202
+ gap: 0;
4203
+ justify-content: center;
4204
+ }
4205
+
4206
+ .sd-floating-tool-ai .sd-floating-tool-glyph {
4207
+ margin: 0;
4208
+ }
4209
+
4210
+ .sd-root[data-surface="home"] > .sd-footer {
4211
+ flex-wrap: nowrap;
4212
+ align-items: center;
4213
+ gap: .85rem;
4214
+ padding: 1.25rem .95rem;
4215
+ }
4216
+
4217
+ .sd-root[data-surface="home"] > .sd-footer > span {
4218
+ min-width: 0;
4219
+ overflow: hidden;
4220
+ text-overflow: ellipsis;
4221
+ white-space: nowrap;
4222
+ }
4223
+
4224
+ .sd-root[data-surface="home"] > .sd-footer nav {
4225
+ flex: 0 0 auto;
4226
+ margin-left: auto;
4227
+ }
4228
+
4229
+ .sd-root[data-surface="home"] > .sd-footer nav a:not(.sd-footer-icon) {
4230
+ display: none;
4231
+ }
4232
+ }