sc-research 1.0.14 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +207 -115
- package/dist/web/assets/index-Bo0b_RP8.css +1 -0
- package/dist/web/assets/{index-sZb3bzqd.js → index-DgM-F6S-.js} +16 -16
- package/dist/web/icon.svg +3 -0
- package/dist/web/index.html +4 -4
- package/dist/web/mocks/classified_controversy.json +122 -0
- package/dist/web/mocks/classified_discovery.json +151 -0
- package/dist/web/mocks/classified_rank.json +160 -0
- package/dist/web/mocks/classified_sentiment.json +52 -0
- package/dist/web/mocks/classified_trend.json +175 -0
- package/package.json +2 -1
- package/dist/web/assets/index-FB2oq23H.css +0 -1
- package/dist/web/vite.svg +0 -11
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 social-media-research-skill
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,179 +1,271 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
<h1>🔍 social-media-research-skill</h1>
|
|
3
|
+
<p>
|
|
4
|
+
<a href="https://www.npmjs.com/package/sc-research"><img src="https://img.shields.io/npm/v/sc-research" alt="NPM Version" /></a>
|
|
5
|
+
<img src="https://img.shields.io/node/v/sc-research" alt="Node Version" />
|
|
6
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License" /></a>
|
|
7
|
+
</p>
|
|
8
|
+
<h3>Social Media & Public Opinion Analysis for AI Agents</h3>
|
|
9
|
+
<p>Analyze what real people are saying on <b>Reddit</b> and <b>X</b> — powered by live data, not outdated training sets.</p>
|
|
2
10
|
|
|
3
|
-
|
|
11
|
+
|
|
12
|
+
</div>
|
|
4
13
|
|
|
5
|
-
|
|
14
|
+
---
|
|
6
15
|
|
|
7
|
-
|
|
8
|
-
-
|
|
9
|
-
|
|
10
|
-
-
|
|
16
|
+
<p align="center">
|
|
17
|
+
<a href="#-what-is-it">🤔 What is it?</a> •
|
|
18
|
+
<a href="#-features">✨ Features</a> •
|
|
19
|
+
<a href="#why-social-media-research-skill">❓ Why?</a> •
|
|
20
|
+
<a href="#-quick-start">🚀 Quick Start</a> •
|
|
21
|
+
<a href="#-analysis-types">📊 Analysis Types</a> •
|
|
22
|
+
<a href="#-cli-reference">🔧 CLI Reference</a> •
|
|
23
|
+
<a href="#️-development">🛠️ Development</a> •
|
|
24
|
+
<a href="#-contributing">🤝 Contributing</a>
|
|
25
|
+
</p>
|
|
11
26
|
|
|
12
|
-
|
|
27
|
+
---
|
|
13
28
|
|
|
14
|
-
|
|
29
|
+
## 🤔 What is it?
|
|
15
30
|
|
|
16
|
-
- **
|
|
17
|
-
- **Analysis layer**: agent skills produce strict `classified_*.json` files
|
|
18
|
-
- **Presentation layer**: dashboard auto-loads available classified files
|
|
31
|
+
**social-media-research-skill** is a social media & public opinion analysis skill for AI agents. It pulls **live discussions from real people** on **Reddit** and **X (Twitter)** and turns them into structured, evidence-backed insights — with real quotes, real sentiment, and up-to-date data. No hallucinated summaries. No stale training data. Just what people are **actually saying right now**.
|
|
19
32
|
|
|
20
|
-
|
|
33
|
+
Works with **Claude Code**, **Cursor**, **Windsurf**, and other AI coding assistants.
|
|
21
34
|
|
|
22
|
-
|
|
35
|
+
Use it for:
|
|
36
|
+
- 🛒 **Product research** — real user opinions before you buy
|
|
37
|
+
- 📈 **Market trends** — discover what's gaining traction early
|
|
38
|
+
- 🏢 **Brand monitoring** — track public reaction to launches and events
|
|
39
|
+
- ⚔️ **Competitive analysis** — understand real arguments on every side
|
|
40
|
+
- 🔍 **Community research** — find what people are talking about right now
|
|
41
|
+
- ✅ **Decision making** — crowd-sourced verdicts backed by real experiences
|
|
23
42
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## ✨ Features
|
|
46
|
+
|
|
47
|
+
### ⚡ Quick Answer — Fast, direct answers
|
|
48
|
+
Ask any question and get a straight answer pulled from real social media discussions. No deep analysis, just a quick summary of what people are saying.
|
|
49
|
+
|
|
50
|
+
> _"Quick answer: Best $20 iems?"_
|
|
51
|
+
|
|
52
|
+
> **Based on recent Reddit and X discussions**, the most recommended IEMs under $20 are:
|
|
53
|
+
> 1. **Moondrop Chu II** — praised for balanced tuning and build quality at the price
|
|
54
|
+
> 2. **7Hz Salnotes Zero** — wide soundstage, often called "best value in audio"
|
|
55
|
+
> 3. **CCA CRA+** — bass-heavy V-shape, popular with casual listeners
|
|
56
|
+
>
|
|
57
|
+
> _Sources: r/headphones, r/iems, X discussions from the past 7 days_
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
### 🏆 Ranking — Community-driven rankings
|
|
62
|
+
Find out what people actually recommend. Get ranked lists based on real community consensus, not SEO-optimized listicles.
|
|
63
|
+
|
|
64
|
+
> _"What are the best open-back headphones for gaming in 2025?"_
|
|
65
|
+
|
|
66
|
+

|
|
67
|
+
|
|
68
|
+
[👉 View Live Example](https://skainguyen1412.github.io/social-media-research-skill/visualize/index.html?mock=classified_rank)
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
### 💬 Sentiment — Public opinion at a glance
|
|
73
|
+
Understand how people feel about any product, brand, or topic. See the breakdown — positive, negative, mixed — backed by direct quotes.
|
|
74
|
+
|
|
75
|
+
> _"How do people feel about the Sony WH-1000XM6? Is the feedback positive?"_
|
|
76
|
+
|
|
77
|
+

|
|
78
|
+
|
|
79
|
+
[👉 View Live Example](https://skainguyen1412.github.io/social-media-research-skill/visualize/index.html?mock=classified_sentiment)
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
### 📈 Trends — Track how opinions shift over time
|
|
84
|
+
See when something started trending, whether it's gaining or losing momentum, and how public opinion evolves.
|
|
85
|
+
|
|
86
|
+
> _"When did the Sennheiser HD600 start trending again? Show me the timeline of its popularity."_
|
|
87
|
+
|
|
88
|
+

|
|
89
|
+
|
|
90
|
+
[👉 View Live Example](https://skainguyen1412.github.io/social-media-research-skill/visualize/index.html?mock=classified_trend)
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
### ⚔️ Controversy — Map both sides of any debate
|
|
95
|
+
Understand polarizing topics by seeing every argument laid out with real evidence from both sides.
|
|
96
|
+
|
|
97
|
+
> _"What is the debate about EQing audiophile headphones? Is there a lot of disagreement?"_
|
|
98
|
+
|
|
99
|
+

|
|
100
|
+
|
|
101
|
+
[👉 View Live Example](https://skainguyen1412.github.io/social-media-research-skill/visualize/index.html?mock=classified_controversy)
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
### 🔥 Discovery — Surface emerging topics early
|
|
106
|
+
Spot what's gaining traction in niche communities before it goes mainstream.
|
|
107
|
+
|
|
108
|
+
> _"What is trending in the world this week? Show me viral topics."_
|
|
27
109
|
|
|
28
|
-
|
|
110
|
+

|
|
111
|
+
|
|
112
|
+
[👉 View Live Example](https://skainguyen1412.github.io/social-media-research-skill/visualize/index.html?mock=classified_discovery)
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Why social-media-research-skill?
|
|
117
|
+
|
|
118
|
+
- **Real data** — Pulls live discussions from Reddit and X, not cached or training data
|
|
119
|
+
- **Real opinions** — Every insight is backed by actual quotes from real people
|
|
120
|
+
- **Up to date** — Analyzes today's conversations, not last year's
|
|
121
|
+
- **Structured output** — Results come as typed JSON + interactive dashboards, ready for your agent to use
|
|
122
|
+
- **Works with your AI assistant** — Installs as a skill for Claude, Cursor, Windsurf, and more
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## 🚀 Quick Start
|
|
127
|
+
|
|
128
|
+
### 1. Install
|
|
129
|
+
|
|
130
|
+
Install the CLI globally via npm:
|
|
29
131
|
|
|
30
132
|
```bash
|
|
31
|
-
sc-research
|
|
133
|
+
npm install -g sc-research
|
|
32
134
|
```
|
|
33
135
|
|
|
34
|
-
|
|
136
|
+
Requires **Node.js >= 20**.
|
|
35
137
|
|
|
36
|
-
###
|
|
138
|
+
### 2. Configure API keys
|
|
37
139
|
|
|
38
|
-
Create `.sc-research` in your project root:
|
|
140
|
+
Create a `.sc-research` file in your project root:
|
|
39
141
|
|
|
40
142
|
```env
|
|
41
|
-
OPENAI_API_KEY
|
|
42
|
-
XAI_API_KEY
|
|
143
|
+
OPENAI_API_KEY=sk-... # Required for Reddit data
|
|
144
|
+
XAI_API_KEY=xai-... # Required for X (Twitter) data
|
|
43
145
|
```
|
|
44
146
|
|
|
45
|
-
|
|
147
|
+
You need at least one key. The tool will gracefully skip any pipeline whose key is missing.
|
|
46
148
|
|
|
47
|
-
|
|
48
|
-
- You can override env path with `SC_RESEARCH_ENV_FILE`.
|
|
149
|
+
### 3. Set up your AI assistant
|
|
49
150
|
|
|
50
|
-
|
|
151
|
+
Run the init command to install social-media-research-skill into your AI assistant's workspace:
|
|
51
152
|
|
|
52
153
|
```bash
|
|
53
|
-
#
|
|
54
|
-
sc-research
|
|
154
|
+
# For Claude Code
|
|
155
|
+
sc-research init --ai claude
|
|
55
156
|
|
|
56
|
-
#
|
|
57
|
-
sc-research
|
|
157
|
+
# For Cursor
|
|
158
|
+
sc-research init --ai cursor
|
|
58
159
|
|
|
59
|
-
#
|
|
60
|
-
sc-research
|
|
61
|
-
```
|
|
160
|
+
# For Windsurf
|
|
161
|
+
sc-research init --ai windsurf
|
|
62
162
|
|
|
63
|
-
|
|
163
|
+
# For Antigravity
|
|
164
|
+
sc-research init --ai antigravity
|
|
64
165
|
|
|
65
|
-
|
|
66
|
-
sc-research
|
|
166
|
+
# Or set up multiple at once
|
|
167
|
+
sc-research init --ai claude,cursor
|
|
168
|
+
|
|
169
|
+
# Or all supported platforms
|
|
170
|
+
sc-research init --ai all
|
|
67
171
|
```
|
|
68
172
|
|
|
69
|
-
|
|
173
|
+
Supported platforms: `claude` · `cursor` · `windsurf` · `antigravity` · `all`
|
|
70
174
|
|
|
71
|
-
|
|
175
|
+
### 4. Start asking questions
|
|
72
176
|
|
|
73
|
-
|
|
74
|
-
sc-research init --ai <targets> [--dry-run] [--force] [--project-root <path>]
|
|
75
|
-
sc-research research "<topic>" [--source=reddit|x|both] [--from=YYYY-MM-DD --to=YYYY-MM-DD] [--mode=discovery]
|
|
76
|
-
sc-research research:deep "<topic>" [same flags as research]
|
|
77
|
-
sc-research visualize [path/to/classified_rank.json]
|
|
78
|
-
```
|
|
177
|
+
That's it — you're ready. Just ask your AI assistant questions in **natural language**, like you normally would:
|
|
79
178
|
|
|
80
|
-
|
|
179
|
+
- _"What do people think about the Sony WH-1000XM6?"_
|
|
180
|
+
- _"What's trending in the gaming community this week?"_
|
|
181
|
+
- _"Is it worth upgrading to the new MacBook Air M4?"_
|
|
182
|
+
- _"What are the best budget IEMs under $50?"_
|
|
81
183
|
|
|
82
|
-
-
|
|
83
|
-
- `cursor`
|
|
84
|
-
- `windsurf`
|
|
85
|
-
- `antigravity`
|
|
86
|
-
- `all`
|
|
184
|
+
Your AI assistant will automatically use social-media-research-skill to fetch live discussions from Reddit and X, analyze them, and give you a structured answer backed by real data.
|
|
87
185
|
|
|
88
|
-
|
|
186
|
+
### 5. Visualize results
|
|
89
187
|
|
|
90
|
-
|
|
188
|
+
For deeper analysis, your agent generates structured JSON files. You can view them in an interactive dashboard:
|
|
91
189
|
|
|
92
190
|
```bash
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
# preview
|
|
96
|
-
sc-research init --ai claude,cursor --dry-run
|
|
97
|
-
|
|
98
|
-
# apply
|
|
99
|
-
sc-research init --ai claude,cursor
|
|
191
|
+
sc-research visualize
|
|
100
192
|
```
|
|
101
193
|
|
|
102
|
-
|
|
194
|
+
This opens a local dashboard in your browser with charts, sentiment breakdowns, ranked lists, trend timelines, and direct quotes from real discussions.
|
|
195
|
+
|
|
196
|
+
### Using the CLI directly
|
|
103
197
|
|
|
104
|
-
|
|
198
|
+
You can also use the CLI directly without going through your AI assistant:
|
|
105
199
|
|
|
106
|
-
|
|
200
|
+
```bash
|
|
201
|
+
# Quick research
|
|
202
|
+
sc-research research "best budget IEMs under $50"
|
|
107
203
|
|
|
108
|
-
|
|
204
|
+
# Deep dive — pulls more data for a thorough analysis
|
|
205
|
+
sc-research research:deep "best budget IEMs under $50"
|
|
206
|
+
```
|
|
109
207
|
|
|
110
|
-
|
|
208
|
+
---
|
|
111
209
|
|
|
112
|
-
|
|
210
|
+
## 📊 Analysis Types
|
|
113
211
|
|
|
114
|
-
|
|
115
|
-
|
|
212
|
+
| Type | Output | Description |
|
|
213
|
+
|---|---|---|
|
|
214
|
+
| **Rank** | `classified_rank.json` | Community-driven rankings with social evidence |
|
|
215
|
+
| **Sentiment** | `classified_sentiment.json` | Public opinion breakdown by mood and source |
|
|
216
|
+
| **Trend** | `classified_trend.json` | Momentum and popularity shifts over time |
|
|
217
|
+
| **Controversy** | `classified_controversy.json` | Polarized debates mapped with opposing arguments |
|
|
218
|
+
| **Discovery** | `classified_discovery.json` | Emerging topics surfaced from niche communities |
|
|
116
219
|
|
|
117
|
-
|
|
220
|
+
---
|
|
118
221
|
|
|
119
|
-
|
|
120
|
-
- `classified_sentiment.json`
|
|
121
|
-
- `classified_trend.json`
|
|
122
|
-
- `classified_controversy.json`
|
|
123
|
-
- `classified_discovery.json`
|
|
222
|
+
## 🔧 CLI Reference
|
|
124
223
|
|
|
125
|
-
|
|
224
|
+
| Command | Description |
|
|
225
|
+
|---|---|
|
|
226
|
+
| `sc-research research "<topic>"` | Fetch social data on a topic |
|
|
227
|
+
| `sc-research research:deep "<topic>"` | Deep fetch for comprehensive analysis |
|
|
228
|
+
| `sc-research visualize` | Launch interactive dashboard |
|
|
229
|
+
| `sc-research init --ai <targets>` | Install agent skills for your AI assistant |
|
|
126
230
|
|
|
127
|
-
|
|
231
|
+
**Flags:**
|
|
232
|
+
- `--source` — `reddit`, `x`, or `both` *(default)*
|
|
233
|
+
- `--from` / `--to` — Date range filter (`YYYY-MM-DD`)
|
|
234
|
+
- `--mode` — `research` *(default)* or `discovery`
|
|
128
235
|
|
|
129
|
-
|
|
130
|
-
- Other discovery topics map to candidate subreddits, then fetch subreddit top/search.
|
|
131
|
-
- X still runs through X search flow when X is enabled.
|
|
236
|
+
---
|
|
132
237
|
|
|
133
|
-
|
|
238
|
+
## 🛠️ Development
|
|
134
239
|
|
|
135
240
|
```bash
|
|
136
|
-
#
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
#
|
|
140
|
-
sc-research research:deep "wireless earbuds" --mode=discovery
|
|
241
|
+
bun run research "topic" # Fetch data
|
|
242
|
+
bun run visualize # Launch dashboard
|
|
243
|
+
bun test # Run tests
|
|
244
|
+
bun run build # Build for distribution
|
|
141
245
|
```
|
|
142
246
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
```text
|
|
146
|
-
src/
|
|
147
|
-
core/ # fetch clients + research/data services
|
|
148
|
-
cli/ # init system, adapters, template rendering
|
|
149
|
-
entries/ # CLI entrypoints (research, visualize, cli)
|
|
150
|
-
templates/
|
|
151
|
-
base/ # source-of-truth command + skill templates
|
|
152
|
-
platforms/ # platform folder mapping config
|
|
153
|
-
web/ # dashboard frontend
|
|
154
|
-
docs/ # usage notes and orchestrator test cases
|
|
155
|
-
```
|
|
247
|
+
---
|
|
156
248
|
|
|
157
|
-
##
|
|
249
|
+
## 🤝 Contributing
|
|
158
250
|
|
|
159
|
-
|
|
160
|
-
# run source entrypoints
|
|
161
|
-
bun run research "topic"
|
|
162
|
-
bun run research:deep "topic"
|
|
163
|
-
bun run visualize
|
|
251
|
+
Contributions are highly welcome! Here are some areas where you can help:
|
|
164
252
|
|
|
165
|
-
|
|
166
|
-
|
|
253
|
+
- **New analysis templates** — Create new ways to analyze social data (e.g., comparison, timeline, geographic breakdown)
|
|
254
|
+
- **Data handling** — Improve how raw data is fetched, cleaned, and processed from Reddit and X
|
|
255
|
+
- **New data sources** — Add support for other platforms beyond Reddit and X
|
|
256
|
+
- **Dashboard visualizations** — Build new chart types or improve existing ones
|
|
257
|
+
- **Bug fixes & improvements** — Always appreciated
|
|
167
258
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
259
|
+
Feel free to open an issue or submit a pull request.
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## Acknowledgements
|
|
171
264
|
|
|
172
|
-
|
|
265
|
+
Inspired by [last30days-skill](https://github.com/mvanhorn/last30days-skill)
|
|
173
266
|
|
|
174
|
-
|
|
175
|
-
- Project uses Bun scripts for local development/build.
|
|
267
|
+
---
|
|
176
268
|
|
|
177
|
-
## License
|
|
269
|
+
## 📄 License
|
|
178
270
|
|
|
179
|
-
MIT
|
|
271
|
+
[MIT](LICENSE) © 2026
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-divide-x-reverse:0}}}@layer theme{:root,:host{--font-sans:"Inter",sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-900:oklch(40.8% .123 38.172);--color-orange-950:oklch(26.6% .079 36.259);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-900:oklch(37.8% .077 168.94);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-900:oklch(38.1% .176 304.987);--color-zinc-50:oklch(98.5% 0 0);--color-zinc-100:oklch(96.7% .001 286.375);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-300:oklch(87.1% .006 286.286);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-600:oklch(44.2% .017 285.786);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-800:oklch(27.4% .006 286.033);--color-zinc-900:oklch(21% .006 285.885);--color-zinc-950:oklch(14.1% .005 285.823);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wider:.05em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-0{top:calc(var(--spacing)*0)}.top-2{top:calc(var(--spacing)*2)}.left-2{left:calc(var(--spacing)*2)}.z-10{z-index:10}.col-span-2{grid-column:span 2/span 2}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-48{height:calc(var(--spacing)*48)}.h-64{height:calc(var(--spacing)*64)}.h-72{height:calc(var(--spacing)*72)}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-8{width:calc(var(--spacing)*8)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-full{width:100%}.max-w-5xl{max-width:var(--container-5xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-6{min-width:calc(var(--spacing)*6)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}.gap-y-2{row-gap:calc(var(--spacing)*2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-zinc-100>:not(:last-child)){border-color:var(--color-zinc-100)}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-\[3px\]{border-left-style:var(--tw-border-style);border-left-width:3px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-100{border-color:var(--color-amber-100)}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-500{border-color:var(--color-blue-500)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-green-200{border-color:var(--color-green-200)}.border-purple-200{border-color:var(--color-purple-200)}.border-red-100{border-color:var(--color-red-100)}.border-red-200{border-color:var(--color-red-200)}.border-transparent{border-color:#0000}.border-zinc-100{border-color:var(--color-zinc-100)}.border-zinc-200{border-color:var(--color-zinc-200)}.border-l-green-400{border-left-color:var(--color-green-400)}.border-l-red-400{border-left-color:var(--color-red-400)}.border-l-zinc-300{border-left-color:var(--color-zinc-300)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-black\/5{background-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.bg-black\/5{background-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-orange-50{background-color:var(--color-orange-50)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-100\/50{background-color:#ffedd580}@supports (color:color-mix(in lab,red,red)){.bg-orange-100\/50{background-color:color-mix(in oklab,var(--color-orange-100)50%,transparent)}}.bg-orange-500{background-color:var(--color-orange-500)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-white{background-color:var(--color-white)}.bg-zinc-50{background-color:var(--color-zinc-50)}.bg-zinc-50\/30{background-color:#fafafa4d}@supports (color:color-mix(in lab,red,red)){.bg-zinc-50\/30{background-color:color-mix(in oklab,var(--color-zinc-50)30%,transparent)}}.bg-zinc-100{background-color:var(--color-zinc-100)}.bg-zinc-200{background-color:var(--color-zinc-200)}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-amber-50{--tw-gradient-from:var(--color-amber-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-orange-50{--tw-gradient-to:var(--color-orange-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.fill-zinc-700{fill:var(--color-zinc-700)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.py-20{padding-block:calc(var(--spacing)*20)}.py-24{padding-block:calc(var(--spacing)*24)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-5{padding-top:calc(var(--spacing)*5)}.pt-6{padding-top:calc(var(--spacing)*6)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-20{padding-bottom:calc(var(--spacing)*20)}.pl-6{padding-left:calc(var(--spacing)*6)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-black{color:var(--color-black)}.text-blue-400{color:var(--color-blue-400)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-emerald-700{color:var(--color-emerald-700)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-orange-500{color:var(--color-orange-500)}.text-orange-600{color:var(--color-orange-600)}.text-orange-700{color:var(--color-orange-700)}.text-purple-700{color:var(--color-purple-700)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-white{color:var(--color-white)}.text-zinc-300{color:var(--color-zinc-300)}.text-zinc-400{color:var(--color-zinc-400)}.text-zinc-500{color:var(--color-zinc-500)}.text-zinc-600{color:var(--color-zinc-600)}.text-zinc-700{color:var(--color-zinc-700)}.text-zinc-800{color:var(--color-zinc-800)}.text-zinc-900{color:var(--color-zinc-900)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-blue-200{--tw-shadow-color:oklch(88.2% .059 254.128)}@supports (color:color-mix(in lab,red,red)){.shadow-blue-200{--tw-shadow-color:color-mix(in oklab,var(--color-blue-200)var(--tw-shadow-alpha),transparent)}}.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-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.group-open\:hidden:is(:where(.group):is([open],:popover-open,:open) *){display:none}.group-open\:inline:is(:where(.group):is([open],:popover-open,:open) *){display:inline}@media(hover:hover){.group-hover\:text-blue-600:is(:where(.group):hover *){color:var(--color-blue-600)}.hover\:border-zinc-200:hover{border-color:var(--color-zinc-200)}.hover\:border-zinc-300:hover{border-color:var(--color-zinc-300)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-zinc-50:hover{background-color:var(--color-zinc-50)}.hover\:bg-zinc-50\/50:hover{background-color:#fafafa80}@supports (color:color-mix(in lab,red,red)){.hover\:bg-zinc-50\/50:hover{background-color:color-mix(in oklab,var(--color-zinc-50)50%,transparent)}}.hover\:bg-zinc-100:hover{background-color:var(--color-zinc-100)}.hover\:text-zinc-700:hover{color:var(--color-zinc-700)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}@media(min-width:40rem){.sm\:col-span-1{grid-column:span 1/span 1}.sm\:inline{display:inline}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-8{grid-column:span 8/span 8}.md\:block{display:block}.md\:grid{display:grid}.md\:hidden{display:none}.md\:inline{display:inline}.md\:w-auto{width:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:gap-6{gap:calc(var(--spacing)*6)}.md\:gap-y-0{row-gap:calc(var(--spacing)*0)}:where(.md\:divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px*var(--tw-divide-x-reverse));border-inline-end-width:calc(1px*calc(1 - var(--tw-divide-x-reverse)))}:where(.md\:divide-y-0>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(0px*var(--tw-divide-y-reverse));border-bottom-width:calc(0px*calc(1 - var(--tw-divide-y-reverse)))}.md\:text-center{text-align:center}}:where(.dark\:divide-zinc-800:where(.dark,.dark *)>:not(:last-child)){border-color:var(--color-zinc-800)}.dark\:border-amber-900\/30:where(.dark,.dark *){border-color:#7b33064d}@supports (color:color-mix(in lab,red,red)){.dark\:border-amber-900\/30:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-amber-900)30%,transparent)}}.dark\:border-amber-900\/50:where(.dark,.dark *){border-color:#7b330680}@supports (color:color-mix(in lab,red,red)){.dark\:border-amber-900\/50:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-amber-900)50%,transparent)}}.dark\:border-blue-500:where(.dark,.dark *){border-color:var(--color-blue-500)}.dark\:border-blue-900\/50:where(.dark,.dark *){border-color:#1c398e80}@supports (color:color-mix(in lab,red,red)){.dark\:border-blue-900\/50:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-blue-900)50%,transparent)}}.dark\:border-emerald-900\/50:where(.dark,.dark *){border-color:#004e3b80}@supports (color:color-mix(in lab,red,red)){.dark\:border-emerald-900\/50:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-emerald-900)50%,transparent)}}.dark\:border-green-900\/50:where(.dark,.dark *){border-color:#0d542b80}@supports (color:color-mix(in lab,red,red)){.dark\:border-green-900\/50:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-green-900)50%,transparent)}}.dark\:border-purple-900\/50:where(.dark,.dark *){border-color:#59168b80}@supports (color:color-mix(in lab,red,red)){.dark\:border-purple-900\/50:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-purple-900)50%,transparent)}}.dark\:border-red-900\/20:where(.dark,.dark *){border-color:#82181a33}@supports (color:color-mix(in lab,red,red)){.dark\:border-red-900\/20:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-red-900)20%,transparent)}}.dark\:border-red-900\/50:where(.dark,.dark *){border-color:#82181a80}@supports (color:color-mix(in lab,red,red)){.dark\:border-red-900\/50:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-red-900)50%,transparent)}}.dark\:border-zinc-700:where(.dark,.dark *){border-color:var(--color-zinc-700)}.dark\:border-zinc-800:where(.dark,.dark *){border-color:var(--color-zinc-800)}.dark\:border-l-zinc-600:where(.dark,.dark *){border-left-color:var(--color-zinc-600)}.dark\:bg-amber-900\/20:where(.dark,.dark *){background-color:#7b330633}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-900\/20:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-amber-900)20%,transparent)}}.dark\:bg-amber-900\/30:where(.dark,.dark *){background-color:#7b33064d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-900\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-amber-900)30%,transparent)}}.dark\:bg-blue-900\/20:where(.dark,.dark *){background-color:#1c398e33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-900\/20:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-blue-900)20%,transparent)}}.dark\:bg-blue-900\/30:where(.dark,.dark *){background-color:#1c398e4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-900\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-blue-900)30%,transparent)}}.dark\:bg-emerald-900\/20:where(.dark,.dark *){background-color:#004e3b33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-emerald-900\/20:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-emerald-900)20%,transparent)}}.dark\:bg-green-900\/20:where(.dark,.dark *){background-color:#0d542b33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-900\/20:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-green-900)20%,transparent)}}.dark\:bg-green-900\/30:where(.dark,.dark *){background-color:#0d542b4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-900\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-green-900)30%,transparent)}}.dark\:bg-orange-900\/30:where(.dark,.dark *){background-color:#7e2a0c4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-orange-900\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-orange-900)30%,transparent)}}.dark\:bg-orange-950\/30:where(.dark,.dark *){background-color:#4413064d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-orange-950\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-orange-950)30%,transparent)}}.dark\:bg-purple-900\/20:where(.dark,.dark *){background-color:#59168b33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-purple-900\/20:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-purple-900)20%,transparent)}}.dark\:bg-red-900\/10:where(.dark,.dark *){background-color:#82181a1a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-900\/10:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-red-900)10%,transparent)}}.dark\:bg-red-900\/20:where(.dark,.dark *){background-color:#82181a33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-900\/20:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-red-900)20%,transparent)}}.dark\:bg-red-900\/30:where(.dark,.dark *){background-color:#82181a4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-900\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-red-900)30%,transparent)}}.dark\:bg-white\/10:where(.dark,.dark *){background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-white\/10:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.dark\:bg-zinc-700:where(.dark,.dark *){background-color:var(--color-zinc-700)}.dark\:bg-zinc-700\/50:where(.dark,.dark *){background-color:#3f3f4680}@supports (color:color-mix(in lab,red,red)){.dark\:bg-zinc-700\/50:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-zinc-700)50%,transparent)}}.dark\:bg-zinc-800:where(.dark,.dark *){background-color:var(--color-zinc-800)}.dark\:bg-zinc-800\/30:where(.dark,.dark *){background-color:#27272a4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-zinc-800\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-zinc-800)30%,transparent)}}.dark\:bg-zinc-800\/50:where(.dark,.dark *){background-color:#27272a80}@supports (color:color-mix(in lab,red,red)){.dark\:bg-zinc-800\/50:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-zinc-800)50%,transparent)}}.dark\:bg-zinc-800\/60:where(.dark,.dark *){background-color:#27272a99}@supports (color:color-mix(in lab,red,red)){.dark\:bg-zinc-800\/60:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-zinc-800)60%,transparent)}}.dark\:bg-zinc-900:where(.dark,.dark *){background-color:var(--color-zinc-900)}.dark\:bg-zinc-900\/30:where(.dark,.dark *){background-color:#18181b4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-zinc-900\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-zinc-900)30%,transparent)}}.dark\:bg-zinc-900\/40:where(.dark,.dark *){background-color:#18181b66}@supports (color:color-mix(in lab,red,red)){.dark\:bg-zinc-900\/40:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-zinc-900)40%,transparent)}}.dark\:bg-zinc-950:where(.dark,.dark *){background-color:var(--color-zinc-950)}.dark\:bg-zinc-950\/30:where(.dark,.dark *){background-color:#09090b4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-zinc-950\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-zinc-950)30%,transparent)}}.dark\:from-amber-950\/20:where(.dark,.dark *){--tw-gradient-from:#46190133}@supports (color:color-mix(in lab,red,red)){.dark\:from-amber-950\/20:where(.dark,.dark *){--tw-gradient-from:color-mix(in oklab,var(--color-amber-950)20%,transparent)}}.dark\:from-amber-950\/20:where(.dark,.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-orange-950\/20:where(.dark,.dark *){--tw-gradient-to:#44130633}@supports (color:color-mix(in lab,red,red)){.dark\:to-orange-950\/20:where(.dark,.dark *){--tw-gradient-to:color-mix(in oklab,var(--color-orange-950)20%,transparent)}}.dark\:to-orange-950\/20:where(.dark,.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:fill-zinc-200:where(.dark,.dark *){fill:var(--color-zinc-200)}.dark\:text-amber-200:where(.dark,.dark *){color:var(--color-amber-200)}.dark\:text-amber-300:where(.dark,.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:where(.dark,.dark *){color:var(--color-amber-400)}.dark\:text-blue-300:where(.dark,.dark *){color:var(--color-blue-300)}.dark\:text-blue-400:where(.dark,.dark *){color:var(--color-blue-400)}.dark\:text-blue-500:where(.dark,.dark *){color:var(--color-blue-500)}.dark\:text-emerald-300:where(.dark,.dark *){color:var(--color-emerald-300)}.dark\:text-green-300:where(.dark,.dark *){color:var(--color-green-300)}.dark\:text-green-400:where(.dark,.dark *){color:var(--color-green-400)}.dark\:text-orange-300:where(.dark,.dark *){color:var(--color-orange-300)}.dark\:text-orange-400:where(.dark,.dark *){color:var(--color-orange-400)}.dark\:text-purple-300:where(.dark,.dark *){color:var(--color-purple-300)}.dark\:text-red-300:where(.dark,.dark *){color:var(--color-red-300)}.dark\:text-red-400:where(.dark,.dark *){color:var(--color-red-400)}.dark\:text-white:where(.dark,.dark *){color:var(--color-white)}.dark\:text-zinc-100:where(.dark,.dark *){color:var(--color-zinc-100)}.dark\:text-zinc-200:where(.dark,.dark *){color:var(--color-zinc-200)}.dark\:text-zinc-300:where(.dark,.dark *){color:var(--color-zinc-300)}.dark\:text-zinc-400:where(.dark,.dark *){color:var(--color-zinc-400)}.dark\:text-zinc-500:where(.dark,.dark *){color:var(--color-zinc-500)}.dark\:text-zinc-600:where(.dark,.dark *){color:var(--color-zinc-600)}.dark\:shadow-blue-900\/20:where(.dark,.dark *){--tw-shadow-color:#1c398e33}@supports (color:color-mix(in lab,red,red)){.dark\:shadow-blue-900\/20:where(.dark,.dark *){--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-blue-900)20%,transparent)var(--tw-shadow-alpha),transparent)}}@media(hover:hover){.dark\:group-hover\:text-blue-400:where(.dark,.dark *):is(:where(.group):hover *){color:var(--color-blue-400)}.dark\:hover\:border-zinc-600:where(.dark,.dark *):hover{border-color:var(--color-zinc-600)}.dark\:hover\:border-zinc-700:where(.dark,.dark *):hover{border-color:var(--color-zinc-700)}.dark\:hover\:bg-zinc-700:where(.dark,.dark *):hover{background-color:var(--color-zinc-700)}.dark\:hover\:bg-zinc-800:where(.dark,.dark *):hover{background-color:var(--color-zinc-800)}.dark\:hover\:bg-zinc-800\/50:where(.dark,.dark *):hover{background-color:#27272a80}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-zinc-800\/50:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-zinc-800)50%,transparent)}}.dark\:hover\:text-zinc-200:where(.dark,.dark *):hover{color:var(--color-zinc-200)}.dark\:hover\:text-zinc-300:where(.dark,.dark *):hover{color:var(--color-zinc-300)}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}
|