svedocs 0.1.0-beta.2

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