@supersoniks/concorde 3.1.1 → 3.1.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 (73) hide show
  1. package/build-infos.json +1 -1
  2. package/concorde-core.bundle.js +227 -142
  3. package/concorde-core.es.js +831 -726
  4. package/dist/concorde-core.bundle.js +227 -142
  5. package/dist/concorde-core.es.js +831 -726
  6. package/dist/img/paul_metrand.jpg +0 -0
  7. package/dist/img/paul_metrand_xs.jpg +0 -0
  8. package/package.json +1 -1
  9. package/src/core/_types/types.ts +1 -0
  10. package/src/core/components/functional/submit/submit.ts +3 -2
  11. package/src/core/components/ui/form/input-autocomplete/input-autocomplete.ts +101 -35
  12. package/src/core/utils/PublisherProxy.ts +3 -2
  13. package/src/docs/header/header.ts +217 -217
  14. package/docs/assets/index--bDsd7qW.css +0 -1
  15. package/docs/assets/index-Ce3mr_lI.js +0 -4040
  16. package/docs/css/docs.css +0 -0
  17. package/docs/img/concorde-logo.svg +0 -1
  18. package/docs/img/concorde.png +0 -0
  19. package/docs/img/concorde_def.png +0 -0
  20. package/docs/index.html +0 -132
  21. package/docs/src/core/components/functional/date/date.md +0 -290
  22. package/docs/src/core/components/functional/fetch/fetch.md +0 -117
  23. package/docs/src/core/components/functional/if/if.md +0 -16
  24. package/docs/src/core/components/functional/list/list.md +0 -194
  25. package/docs/src/core/components/functional/mix/mix.md +0 -41
  26. package/docs/src/core/components/functional/queue/queue.md +0 -87
  27. package/docs/src/core/components/functional/router/router.md +0 -112
  28. package/docs/src/core/components/functional/sdui/default-library.json +0 -108
  29. package/docs/src/core/components/functional/sdui/example.json +0 -99
  30. package/docs/src/core/components/functional/sdui/sdui.md +0 -356
  31. package/docs/src/core/components/functional/states/states.md +0 -87
  32. package/docs/src/core/components/functional/submit/submit.md +0 -48
  33. package/docs/src/core/components/functional/subscriber/subscriber.md +0 -91
  34. package/docs/src/core/components/functional/value/value.md +0 -35
  35. package/docs/src/core/components/ui/alert/alert.md +0 -121
  36. package/docs/src/core/components/ui/badge/badge.md +0 -102
  37. package/docs/src/core/components/ui/button/button.md +0 -184
  38. package/docs/src/core/components/ui/captcha/captcha.md +0 -12
  39. package/docs/src/core/components/ui/card/card.md +0 -96
  40. package/docs/src/core/components/ui/divider/divider.md +0 -35
  41. package/docs/src/core/components/ui/form/checkbox/checkbox.md +0 -96
  42. package/docs/src/core/components/ui/form/fieldset/fieldset.md +0 -129
  43. package/docs/src/core/components/ui/form/form-actions/form-actions.md +0 -77
  44. package/docs/src/core/components/ui/form/form-layout/form-layout.md +0 -43
  45. package/docs/src/core/components/ui/form/input/input.md +0 -168
  46. package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -130
  47. package/docs/src/core/components/ui/form/radio/radio.md +0 -86
  48. package/docs/src/core/components/ui/form/select/select.md +0 -99
  49. package/docs/src/core/components/ui/form/textarea/textarea.md +0 -66
  50. package/docs/src/core/components/ui/group/group.md +0 -75
  51. package/docs/src/core/components/ui/icon/icon.md +0 -125
  52. package/docs/src/core/components/ui/icon/icons.json +0 -1
  53. package/docs/src/core/components/ui/image/image.md +0 -107
  54. package/docs/src/core/components/ui/link/link.md +0 -43
  55. package/docs/src/core/components/ui/loader/loader.md +0 -37
  56. package/docs/src/core/components/ui/menu/menu.md +0 -288
  57. package/docs/src/core/components/ui/modal/modal.md +0 -123
  58. package/docs/src/core/components/ui/pop/pop.md +0 -79
  59. package/docs/src/core/components/ui/progress/progress.md +0 -65
  60. package/docs/src/core/components/ui/table/table.md +0 -467
  61. package/docs/src/core/components/ui/tooltip/tooltip.md +0 -37
  62. package/docs/src/docs/_core-concept/overview.md +0 -57
  63. package/docs/src/docs/_core-concept/subscriber.md +0 -76
  64. package/docs/src/docs/_getting-started/concorde-outside.md +0 -141
  65. package/docs/src/docs/_getting-started/create-a-component.md +0 -137
  66. package/docs/src/docs/_getting-started/pubsub.md +0 -150
  67. package/docs/src/docs/_getting-started/start.md +0 -37
  68. package/docs/src/docs/_getting-started/theming.md +0 -91
  69. package/docs/src/docs/search/docs-search.json +0 -3737
  70. package/docs/src/tag-list.json +0 -1
  71. package/docs/src/tsconfig.json +0 -113
  72. package/docs/svg/regular/plane.svg +0 -1
  73. package/docs/svg/solid/plane.svg +0 -1
@@ -1,217 +1,217 @@
1
- import { html, LitElement, nothing } from "lit";
2
- import { customElement, state } from "lit/decorators.js";
3
- import Subscriber from "@supersoniks/concorde/core/mixins/Subscriber";
4
- import { tailwind } from "../tailwind";
5
- import { animate } from "@lit-labs/motion";
6
- import { Theme } from "@supersoniks/concorde/core/components/ui/theme/theme";
7
- const tagName = "sonic-docs-header"; // For Astro.build
8
- @customElement(tagName)
9
- export class SonicComponent extends Subscriber(LitElement) {
10
- static styles = [tailwind];
11
-
12
- @state() theme: "dark" | "light" = "light";
13
- @state() searchVisible = false;
14
-
15
- connectedCallback() {
16
- this.handleColorScheme();
17
- super.connectedCallback();
18
-
19
- // if escape key is pressed and search is visible, hide search
20
- document.addEventListener("keydown", (e) => {
21
- if (e.key === "Escape" && this.searchVisible) {
22
- this.hideSearch();
23
- }
24
- });
25
-
26
- // ctrl + k to toggle search
27
- document.addEventListener("keydown", (e) => {
28
- if (e.ctrlKey && e.key === "k") {
29
- this.toggleSearch();
30
- e.preventDefault();
31
- }
32
- // command + k to toggle search
33
- if (e.metaKey && e.key === "k") {
34
- this.toggleSearch();
35
- e.preventDefault();
36
- }
37
- });
38
-
39
- // on hash change, hide search
40
- window.addEventListener("hashchange", () => {
41
- this.hideSearch();
42
- });
43
- }
44
-
45
- handleColorScheme() {
46
- const themeComponent = document.querySelector("sonic-theme") as Theme;
47
- if (
48
- localStorage.sonicTheme === "dark" ||
49
- (!("sonicTheme" in localStorage) &&
50
- window.matchMedia("(prefers-color-scheme: dark)").matches)
51
- ) {
52
- document.documentElement.setAttribute("data-concorde-theme", "dark");
53
- document.documentElement.classList.add("dark");
54
- this.theme = "dark";
55
- themeComponent.theme = "dark";
56
- } else {
57
- document.documentElement.classList.remove("dark");
58
- document.documentElement.setAttribute("data-concorde-theme", "light");
59
- this.theme = "light";
60
- themeComponent.theme = "light";
61
- }
62
- }
63
-
64
- setMode(theme: "dark" | "light") {
65
- localStorage.sonicTheme = theme;
66
- this.handleColorScheme();
67
- }
68
-
69
- hideSearch() {
70
- this.searchVisible = false;
71
- }
72
- toggleSearch() {
73
- this.searchVisible = !this.searchVisible;
74
- }
75
-
76
- render() {
77
- return html`<div
78
- class="flex items-center gap-4 border-b-[.18rem] text-content border-current py-3 sticky top-0 z-40 bg-neutral-0"
79
- >
80
- <div class="">
81
- <sonic-link href="/" class="flex items-end gap-x-1">
82
- <svg
83
- class="size-[2.4rem] inline-block rotate-[55deg] "
84
- viewBox="0 0 66 66"
85
- fill="none"
86
- xmlns="http://www.w3.org/2000/svg"
87
-
88
- >
89
- <circle cx="33" cy="33" r="30" fill="var(--sc-base-content)" />
90
- <path
91
- d="M33.2499 62.03C33.8799 59.24 34.26 56.17 34.39 53.08C34.57 52.78 34.9099 52.6 35.2599 52.64H35.39C35.48 52.64 35.5799 52.64 35.6899 52.64H35.7599C35.7599 52.64 35.7999 52.64 35.8299 52.64C36.2499 52.62 36.6799 52.58 36.9099 52.56C36.9399 52.56 36.9599 52.56 36.9799 52.56C37.0099 52.56 37.0299 52.56 37.0499 52.56H37.0899L37.2099 51.93H37.4799L37.5799 52.4L37.6899 52.49H39.2699L39.39 52.38L39.5099 51.93H39.7899L39.8399 52.21L39.9999 52.29L45.2099 51.86L46.2799 51.29C46.2799 51.29 46.2799 50.85 46.2399 50.25V50.18C46.2399 50.18 46.2399 50.13 46.2399 50.11C46.2099 49.62 46.1399 49.13 46.0399 48.65C45.7899 47.45 45.29 46 42.2 41.58C39.11 37.16 38.04 35.52 35.89 27.63C35.85 27.48 35.8199 27.35 35.7899 27.2C35.1399 24.53 34.6899 22.95 34.5199 22.38V10.89C34.4999 9.60996 34.3999 8.33996 34.2099 7.07996C34.0499 5.97996 33.6099 4.89996 33.3499 3.95996H32.6299C32.3599 4.89996 31.9299 5.97996 31.7699 7.06996C31.5799 8.33996 31.4799 9.60996 31.4599 10.89V22.38C31.2899 22.95 30.8299 24.52 30.1899 27.2C30.1599 27.35 30.1199 27.49 30.0899 27.63C27.9499 35.52 26.8699 37.16 23.7799 41.58C20.6899 46 20.1899 47.45 19.9399 48.65C19.8399 49.13 19.7799 49.62 19.7399 50.11C19.7399 50.13 19.7399 50.16 19.7399 50.18V50.25C19.6999 50.85 19.7 51.29 19.7 51.29L20.7699 51.86L25.9799 52.29L26.14 52.21L26.1899 51.93H26.4799L26.5999 52.38L26.7299 52.49H28.2999L28.4099 52.4L28.5099 51.93H28.7699L28.89 52.56H28.9399C28.9399 52.56 28.9799 52.56 29.0099 52.56C29.0299 52.56 29.0499 52.56 29.0799 52.56C29.3099 52.58 29.7499 52.63 30.1599 52.64C30.1799 52.64 30.2099 52.64 30.2299 52.64H30.2999C30.4099 52.64 30.5099 52.64 30.5999 52.64H30.7299C31.0799 52.6 31.4299 52.77 31.6099 53.08C31.7299 56.17 32.1099 59.24 32.7399 62.03H33.2499Z"
92
- fill="var(--sc-base)"
93
- />
94
- </svg>
95
-
96
- <span class="font-headings text-4xl leading-none inline-block italic font-medium"
97
- >concorde</span
98
- >
99
- </sonic-link>
100
- </div>
101
-
102
- <div class="ml-auto flex gap-x-3 ">
103
- <sonic-button
104
- @click=${() => (this.searchVisible = !this.searchVisible)}
105
- class="lg:min-w-[19rem]"
106
- align="left"
107
- >
108
- Quick search...
109
- <sonic-icon
110
- name="magnifying-glass"
111
- library="custom"
112
- slot="prefix"
113
- ></sonic-icon>
114
- </sonic-button>
115
-
116
- <sonic-pop>
117
- <sonic-button shape="circle" variant="ghost" icon>
118
- ${
119
- this.theme == "light"
120
- ? html`<sonic-icon name="sun" library="custom"></sonic-icon>`
121
- : html`<sonic-icon name="moon" library="custom"></sonic-icon>`
122
- }
123
- </sonic-button>
124
-
125
- <sonic-menu slot="content">
126
- <sonic-menu-item
127
- ?active="${this.theme == "light"}"
128
- @click=${() => this.setMode("light")}
129
- >
130
- <sonic-icon
131
- name="sun"
132
- library="custom"
133
- slot="prefix"
134
- ></sonic-icon>
135
- light
136
- </sonic-menu-item>
137
- <sonic-menu-item
138
- ?active="${this.theme == "dark"}"
139
- @click=${() => this.setMode("dark")}
140
- >
141
- <sonic-icon
142
- name="moon"
143
- library="custom"
144
- slot="prefix"
145
- ></sonic-icon>
146
- dark
147
- </sonic-menu-item>
148
- </sonic-menu>
149
- </sonic-pop>
150
- </div>
151
- </div>
152
-
153
-
154
-
155
- ${
156
- this.searchVisible
157
- ? html`
158
- <div
159
- ${animate({
160
- keyframeOptions: {
161
- duration: 250,
162
- },
163
- in: [
164
- {
165
- opacity: 0,
166
- },
167
- ],
168
- out: [
169
- {
170
- opacity: 0,
171
- },
172
- ],
173
- stabilizeOut: true,
174
- })}
175
- class="fixed top-0 w-full left-0 z-[3000] pt-[20vh] flex items-center justify-center "
176
- >
177
- <div
178
- @click=${() => this.hideSearch()}
179
- class="bg-neutral-0 dark:bg-neutral-300 opacity-90 fixed top-0 left-0 w-full h-full "
180
- ></div>
181
-
182
- <div
183
- ${animate({
184
- keyframeOptions: {
185
- duration: 250,
186
- easing: `cubic-bezier(0.250, 0.250, 0.420, 1.225)`,
187
- },
188
- in: [
189
- {
190
- transform: "translateY(1rem) scale(1.05)",
191
- opacity: 0,
192
- },
193
- ],
194
- out: [
195
- {
196
- transform: "scale(.90) ",
197
- opacity: 0,
198
- duration: 3000,
199
- easing: `ease-in-out`,
200
- },
201
- ],
202
- stabilizeOut: true,
203
- })}
204
- class="relative z-20 w-full max-w-[40rem] w-full block "
205
- >
206
- <docs-search setFocus class="max-w-[40rem] w-full block">
207
- </docs-search>
208
- </div>
209
- </div>
210
- `
211
- : nothing
212
- }
213
- </div>
214
-
215
- </div> `;
216
- }
217
- }
1
+ import { html, LitElement, nothing } from "lit";
2
+ import { customElement, state } from "lit/decorators.js";
3
+ import Subscriber from "@supersoniks/concorde/core/mixins/Subscriber";
4
+ import { tailwind } from "../tailwind";
5
+ import { animate } from "@lit-labs/motion";
6
+ import { Theme } from "@supersoniks/concorde/core/components/ui/theme/theme";
7
+ const tagName = "sonic-docs-header"; // For Astro.build
8
+ @customElement(tagName)
9
+ export class SonicComponent extends Subscriber(LitElement) {
10
+ static styles = [tailwind];
11
+
12
+ @state() theme: "dark" | "light" = "light";
13
+ @state() searchVisible = false;
14
+
15
+ connectedCallback() {
16
+ this.handleColorScheme();
17
+ super.connectedCallback();
18
+
19
+ // if escape key is pressed and search is visible, hide search
20
+ document.addEventListener("keydown", (e) => {
21
+ if (e.key === "Escape" && this.searchVisible) {
22
+ this.hideSearch();
23
+ }
24
+ });
25
+
26
+ // ctrl + k to toggle search
27
+ document.addEventListener("keydown", (e) => {
28
+ if (e.ctrlKey && e.key === "k") {
29
+ this.toggleSearch();
30
+ e.preventDefault();
31
+ }
32
+ // command + k to toggle search
33
+ if (e.metaKey && e.key === "k") {
34
+ this.toggleSearch();
35
+ e.preventDefault();
36
+ }
37
+ });
38
+
39
+ // on hash change, hide search
40
+ window.addEventListener("hashchange", () => {
41
+ this.hideSearch();
42
+ });
43
+ }
44
+
45
+ handleColorScheme() {
46
+ const themeComponent = document.querySelector("sonic-theme") as Theme;
47
+ if (
48
+ localStorage.sonicTheme === "dark" ||
49
+ (!("sonicTheme" in localStorage) &&
50
+ window.matchMedia("(prefers-color-scheme: dark)").matches)
51
+ ) {
52
+ document.documentElement.setAttribute("data-concorde-theme", "dark");
53
+ document.documentElement.classList.add("dark");
54
+ this.theme = "dark";
55
+ themeComponent.theme = "dark";
56
+ } else {
57
+ document.documentElement.classList.remove("dark");
58
+ document.documentElement.setAttribute("data-concorde-theme", "light");
59
+ this.theme = "light";
60
+ themeComponent.theme = "light";
61
+ }
62
+ }
63
+
64
+ setMode(theme: "dark" | "light") {
65
+ localStorage.sonicTheme = theme;
66
+ this.handleColorScheme();
67
+ }
68
+
69
+ hideSearch() {
70
+ this.searchVisible = false;
71
+ }
72
+ toggleSearch() {
73
+ this.searchVisible = !this.searchVisible;
74
+ }
75
+
76
+ render() {
77
+ return html`<div
78
+ class="flex items-center gap-4 border-b-[.18rem] text-content border-current py-3 sticky top-0 z-40 bg-neutral-0"
79
+ >
80
+ <div class="">
81
+ <sonic-link href="/" class="flex items-end gap-x-1">
82
+ <svg
83
+ class="size-[2.4rem] inline-block rotate-[55deg] "
84
+ viewBox="0 0 66 66"
85
+ fill="none"
86
+ xmlns="http://www.w3.org/2000/svg"
87
+
88
+ >
89
+ <circle cx="33" cy="33" r="30" fill="var(--sc-base-content)" />
90
+ <path
91
+ d="M33.2499 62.03C33.8799 59.24 34.26 56.17 34.39 53.08C34.57 52.78 34.9099 52.6 35.2599 52.64H35.39C35.48 52.64 35.5799 52.64 35.6899 52.64H35.7599C35.7599 52.64 35.7999 52.64 35.8299 52.64C36.2499 52.62 36.6799 52.58 36.9099 52.56C36.9399 52.56 36.9599 52.56 36.9799 52.56C37.0099 52.56 37.0299 52.56 37.0499 52.56H37.0899L37.2099 51.93H37.4799L37.5799 52.4L37.6899 52.49H39.2699L39.39 52.38L39.5099 51.93H39.7899L39.8399 52.21L39.9999 52.29L45.2099 51.86L46.2799 51.29C46.2799 51.29 46.2799 50.85 46.2399 50.25V50.18C46.2399 50.18 46.2399 50.13 46.2399 50.11C46.2099 49.62 46.1399 49.13 46.0399 48.65C45.7899 47.45 45.29 46 42.2 41.58C39.11 37.16 38.04 35.52 35.89 27.63C35.85 27.48 35.8199 27.35 35.7899 27.2C35.1399 24.53 34.6899 22.95 34.5199 22.38V10.89C34.4999 9.60996 34.3999 8.33996 34.2099 7.07996C34.0499 5.97996 33.6099 4.89996 33.3499 3.95996H32.6299C32.3599 4.89996 31.9299 5.97996 31.7699 7.06996C31.5799 8.33996 31.4799 9.60996 31.4599 10.89V22.38C31.2899 22.95 30.8299 24.52 30.1899 27.2C30.1599 27.35 30.1199 27.49 30.0899 27.63C27.9499 35.52 26.8699 37.16 23.7799 41.58C20.6899 46 20.1899 47.45 19.9399 48.65C19.8399 49.13 19.7799 49.62 19.7399 50.11C19.7399 50.13 19.7399 50.16 19.7399 50.18V50.25C19.6999 50.85 19.7 51.29 19.7 51.29L20.7699 51.86L25.9799 52.29L26.14 52.21L26.1899 51.93H26.4799L26.5999 52.38L26.7299 52.49H28.2999L28.4099 52.4L28.5099 51.93H28.7699L28.89 52.56H28.9399C28.9399 52.56 28.9799 52.56 29.0099 52.56C29.0299 52.56 29.0499 52.56 29.0799 52.56C29.3099 52.58 29.7499 52.63 30.1599 52.64C30.1799 52.64 30.2099 52.64 30.2299 52.64H30.2999C30.4099 52.64 30.5099 52.64 30.5999 52.64H30.7299C31.0799 52.6 31.4299 52.77 31.6099 53.08C31.7299 56.17 32.1099 59.24 32.7399 62.03H33.2499Z"
92
+ fill="var(--sc-base)"
93
+ />
94
+ </svg>
95
+
96
+ <span class="font-headings text-4xl leading-none inline-block italic font-medium"
97
+ >concorde</span
98
+ >
99
+ </sonic-link>
100
+ </div>
101
+
102
+ <div class="ml-auto flex gap-x-3 ">
103
+ <sonic-button
104
+ @click=${() => (this.searchVisible = !this.searchVisible)}
105
+ class="lg:min-w-[19rem]"
106
+ align="left"
107
+ >
108
+ Quick search...
109
+ <sonic-icon
110
+ name="magnifying-glass"
111
+ library="custom"
112
+ slot="prefix"
113
+ ></sonic-icon>
114
+ </sonic-button>
115
+
116
+ <sonic-pop>
117
+ <sonic-button shape="circle" variant="ghost" icon>
118
+ ${
119
+ this.theme == "light"
120
+ ? html`<sonic-icon name="sun" library="custom"></sonic-icon>`
121
+ : html`<sonic-icon name="moon" library="custom"></sonic-icon>`
122
+ }
123
+ </sonic-button>
124
+
125
+ <sonic-menu slot="content">
126
+ <sonic-menu-item
127
+ ?active="${this.theme == "light"}"
128
+ @click=${() => this.setMode("light")}
129
+ >
130
+ <sonic-icon
131
+ name="sun"
132
+ library="custom"
133
+ slot="prefix"
134
+ ></sonic-icon>
135
+ light
136
+ </sonic-menu-item>
137
+ <sonic-menu-item
138
+ ?active="${this.theme == "dark"}"
139
+ @click=${() => this.setMode("dark")}
140
+ >
141
+ <sonic-icon
142
+ name="moon"
143
+ library="custom"
144
+ slot="prefix"
145
+ ></sonic-icon>
146
+ dark
147
+ </sonic-menu-item>
148
+ </sonic-menu>
149
+ </sonic-pop>
150
+ </div>
151
+ </div>
152
+
153
+
154
+
155
+ ${
156
+ this.searchVisible
157
+ ? html`
158
+ <div
159
+ ${animate({
160
+ keyframeOptions: {
161
+ duration: 250,
162
+ },
163
+ in: [
164
+ {
165
+ opacity: 0,
166
+ },
167
+ ],
168
+ out: [
169
+ {
170
+ opacity: 0,
171
+ },
172
+ ],
173
+ stabilizeOut: true,
174
+ })}
175
+ class="fixed top-0 w-full left-0 z-[3000] pt-[20vh] flex items-center justify-center "
176
+ >
177
+ <div
178
+ @click=${() => this.hideSearch()}
179
+ class="bg-neutral-0 dark:bg-neutral-300 opacity-90 fixed top-0 left-0 w-full h-full "
180
+ ></div>
181
+
182
+ <div
183
+ ${animate({
184
+ keyframeOptions: {
185
+ duration: 250,
186
+ easing: `cubic-bezier(0.250, 0.250, 0.420, 1.225)`,
187
+ },
188
+ in: [
189
+ {
190
+ transform: "translateY(1rem) scale(1.05)",
191
+ opacity: 0,
192
+ },
193
+ ],
194
+ out: [
195
+ {
196
+ transform: "scale(.90) ",
197
+ opacity: 0,
198
+ duration: 3000,
199
+ easing: `ease-in-out`,
200
+ },
201
+ ],
202
+ stabilizeOut: true,
203
+ })}
204
+ class="relative z-20 w-full max-w-[40rem] w-full block "
205
+ >
206
+ <docs-search setFocus class="max-w-[40rem] w-full block">
207
+ </docs-search>
208
+ </div>
209
+ </div>
210
+ `
211
+ : nothing
212
+ }
213
+ </div>
214
+
215
+ </div> `;
216
+ }
217
+ }
@@ -1 +0,0 @@
1
- *,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1em;margin-bottom:1em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;padding-inline-start:1.625em;margin-top:1em;margin-bottom:1em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;padding-inline-start:1.625em;margin-top:1em;margin-bottom:1em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;text-align:start;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: var(--sc-base-content);--tw-prose-headings: var(--sc-base-900);--tw-prose-lead: var(--sc-base-content);--tw-prose-links: var(--sc-base-900);--tw-prose-bold: var(--sc-base-content);--tw-prose-counters: var(--sc-base-500);--tw-prose-bullets: var(--sc-base-300);--tw-prose-hr: var(--sc-base-200);--tw-prose-quotes: var(--sc-base-content);--tw-prose-quote-borders: var(--sc-base-200);--tw-prose-captions: var(--sc-base-500);--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: var(--sc-base-900);--tw-prose-pre-code: var(--sc-base-200);--tw-prose-pre-bg: var(--sc-base-800);--tw-prose-th-borders: var(--sc-base-300);--tw-prose-td-borders: var(--sc-base-200);--tw-prose-invert-body: var(--sc-base-300);--tw-prose-invert-headings: var(--sc-base);--tw-prose-invert-lead: var(--sc-base-400);--tw-prose-invert-links: var(--sc-base);--tw-prose-invert-bold: var(--sc-base);--tw-prose-invert-counters: var(--sc-base-400);--tw-prose-invert-bullets: var(--sc-base-600);--tw-prose-invert-hr: var(--sc-base-700);--tw-prose-invert-quotes: var(--sc-base-100);--tw-prose-invert-quote-borders: var(--sc-base-700);--tw-prose-invert-captions: var(--sc-base-400);--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: var(--sc-base);--tw-prose-invert-pre-code: var(--sc-base-300);--tw-prose-invert-pre-bg: var(--sc-base-900);--tw-prose-invert-th-borders: var(--sc-base-600);--tw-prose-invert-td-borders: var(--sc-base-700);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>*:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>*:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>*:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>*:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose{line-height:1.5}.prose :where(strong a):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:bolder}.prose :where(iframe[src*=youtu]):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:var(--sc-rounded-md)}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-top-1{top:-.25rem}.bottom-1{bottom:.25rem}.bottom-2{bottom:.5rem}.left-0{left:0}.right-1{right:.25rem}.right-2{right:.5rem}.top-0{top:0}.top-\[4\.2rem\]{top:4.2rem}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.m-2{margin:.5rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.-mb-12{margin-bottom:-3rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-9{margin-top:2.25rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-1\/2{height:50%}.h-10{height:2.5rem}.h-96{height:24rem}.max-h-\[50vh\]{max-height:50vh}.max-h-\[calc\(100vh_-_4\.2rem\)\]{max-height:calc(100vh - 4.2rem)}.min-h-\[100vh\]{min-height:100vh}.w-16{width:4rem}.w-20{width:5rem}.w-24{width:6rem}.w-64{width:16rem}.w-\[5rem\]{width:5rem}.w-full{width:100%}.min-w-\[8rem\]{min-width:8rem}.max-w-\[29ch\]{max-width:29ch}.max-w-\[32rem\]{max-width:32rem}.max-w-\[40rem\]{max-width:40rem}.max-w-\[80ch\]{max-width:80ch}.max-w-lg{max-width:32rem}.flex-shrink{flex-shrink:1}.flex-grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1\/2{--tw-translate-x: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1\/2{--tw-translate-y: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[minmax\(10rem\,15rem\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(10rem,15rem) minmax(0,1fr)}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-end{justify-content:flex-end}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-2{row-gap:.5rem}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:var(--sc-rounded)}.rounded-lg{border-radius:var(--sc-rounded-lg)}.rounded-md{border-radius:var(--sc-rounded-md)}.rounded-xl{border-radius:var(--sc-rounded-xl)}.border{border-width:var(--sc-border-width)}.border-0{border-width:0px}.border-2{border-width:2px}.border-b-\[\.3rem\]{border-bottom-width:.3rem}.border-b-\[1px\]{border-bottom-width:1px}.border-t{border-top-width:var(--sc-border-width)}.border-t-2{border-top-width:2px}.border-solid{border-style:solid}.border-dotted{border-style:dotted}.border-current{border-color:currentColor}.border-neutral-100{border-color:var(--sc-base-100)}.border-success{border-color:var(--sc-success)}.border-b-neutral-300{border-bottom-color:var(--sc-base-300)}.border-t-neutral-200{border-top-color:var(--sc-base-200)}.bg-danger{background-color:var(--sc-danger)}.bg-info{background-color:var(--sc-info)}.bg-neutral-0{background-color:var(--sc-base)}.bg-neutral-100{background-color:var(--sc-base-100)}.bg-neutral-800{background-color:var(--sc-base-800)}.bg-success{background-color:var(--sc-success)}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.from-\[rgba\(0\,0\,10\,\.2\)\]{--tw-gradient-from: rgba(0,0,10,.2) var(--tw-gradient-from-position);--tw-gradient-to: rgba(0, 0, 10, 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-8{padding:2rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pl-\[\.75rem\]{padding-left:.75rem}.pt-3{padding-top:.75rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-sm{font-size:.875rem}.text-xl{font-size:1.25rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.leading-none{line-height:1}.leading-tight{line-height:1.25}.text-contrast-content{color:var(--sc-contrast-content)}.text-danger{color:var(--sc-danger)}.text-info{color:var(--sc-info)}.text-neutral-0{color:var(--sc-base)}.text-neutral-400{color:var(--sc-base-400)}.text-neutral-600{color:var(--sc-base-600)}.text-neutral-700{color:var(--sc-base-700)}.text-neutral-900{color:var(--sc-base-900)}.text-success{color:var(--sc-success)}.underline{text-decoration-line:underline}.opacity-40{opacity:.4}.mix-blend-multiply{mix-blend-mode:multiply}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-lg{--tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / .04)) drop-shadow(0 4px 3px rgb(0 0 0 / .1));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.custom-scroll{overflow:auto!important}.custom-scroll:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 2rem 2rem var(--sc-base-900)}.custom-scroll::-webkit-scrollbar{width:.5rem;height:.5rem;border:solid .15rem transparent;border-radius:var(--sc-rounded);background:transparent}.custom-scroll::-webkit-scrollbar-thumb{opacity:0;-webkit-transition:box-shadow .2s;transition:box-shadow .2s;border:solid .15rem transparent}.hover\:bg-neutral-100:hover{background-color:var(--sc-base-100)}@media (min-width: 640px){.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 768px){.md\:text-5xl{font-size:3rem}}@media (min-width: 1024px){.lg\:max-w-\[19ch\]{max-width:19ch}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:px-20{padding-left:5rem;padding-right:5rem}.lg\:text-7xl{font-size:4.5rem}}@media (min-width: 1280px){.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:text-8xl{font-size:6rem}}.\[\&\[active\]\]\:min-w-\[13rem\][active]{min-width:13rem}.\[\&\[active\]\]\:rounded-full[active]{border-radius:9999px}.\[\&\[active\]\]\:bg-danger[active]{background-color:var(--sc-danger)}.\[\&\[active\]\]\:font-black[active]{font-weight:900}.\[\&\[active\]\]\:text-danger-content[active]{color:var(--sc-danger-content)}.\[\&\[active\]\]\:text-success[active]{color:var(--sc-success)}