sc-research 1.0.14 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/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
- # sc-research
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
- AI-ready social research toolkit for Reddit + X with a template installer for agent workflows.
11
+
12
+ </div>
4
13
 
5
- Use it to:
14
+ ---
6
15
 
7
- - fetch normalized social discussion data,
8
- - run deep or quick research from CLI,
9
- - scaffold command/skill templates into agent folders,
10
- - visualize classified outputs in a local dashboard.
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
- ## Why This Project
27
+ ---
13
28
 
14
- `sc-research` is designed for **AI-agent pipelines** where research and analysis are separated:
29
+ ## 🤔 What is it?
15
30
 
16
- - **Fetch layer**: collect raw social signals (`reddit_data.json`, `x_data.json`)
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
- This keeps the data pipeline composable and tool-agnostic.
33
+ Works with **Claude Code**, **Cursor**, **Windsurf**, and other AI coding assistants.
21
34
 
22
- ## Install
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
- ```bash
25
- npm install -g sc-research
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
+ ![Rank Analysis](assets/rank.png)
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
+ ![Sentiment Analysis](assets/sentiment.png)
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
+ ![Trends Analysis](assets/trends.png)
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
+ ![Controversy Analysis](assets/controversy.png)
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
- Check version:
110
+ ![Discovery Analysis](assets/discovery.png)
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 --version
133
+ npm install -g sc-research
32
134
  ```
33
135
 
34
- ## Quick Start
136
+ Requires **Node.js >= 20**.
35
137
 
36
- ### 1) Configure API keys
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
- Notes:
147
+ You need at least one key. The tool will gracefully skip any pipeline whose key is missing.
46
148
 
47
- - If a key is missing, that source is skipped.
48
- - You can override env path with `SC_RESEARCH_ENV_FILE`.
149
+ ### 3. Set up your AI assistant
49
150
 
50
- ### 2) Run research
151
+ Run the init command to install social-media-research-skill into your AI assistant's workspace:
51
152
 
52
153
  ```bash
53
- # quick
54
- sc-research research "best budget iem"
154
+ # For Claude Code
155
+ sc-research init --ai claude
55
156
 
56
- # deep
57
- sc-research research:deep "best budget iem"
157
+ # For Cursor
158
+ sc-research init --ai cursor
58
159
 
59
- # deep discovery mode
60
- sc-research research:deep "DISCOVERY_WEEKLY" --mode=discovery
61
- ```
160
+ # For Windsurf
161
+ sc-research init --ai windsurf
62
162
 
63
- ### 3) Visualize
163
+ # For Antigravity
164
+ sc-research init --ai antigravity
64
165
 
65
- ```bash
66
- sc-research visualize
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
- Dashboard reads available `classified_*.json` files and enables tabs accordingly.
173
+ Supported platforms: `claude` · `cursor` · `windsurf` · `antigravity` · `all`
70
174
 
71
- ## CLI Commands
175
+ ### 4. Start asking questions
72
176
 
73
- ```bash
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
- Supported init targets:
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
- - `claude`
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
- ## Agent Template Bootstrap
186
+ ### 5. Visualize results
89
187
 
90
- Install templates into a target project:
188
+ For deeper analysis, your agent generates structured JSON files. You can view them in an interactive dashboard:
91
189
 
92
190
  ```bash
93
- cd /path/to/your/project
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
- Canonical template source:
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
- - `templates/base/`
198
+ You can also use the CLI directly without going through your AI assistant:
105
199
 
106
- Platform mapping config:
200
+ ```bash
201
+ # Quick research
202
+ sc-research research "best budget IEMs under $50"
107
203
 
108
- - `templates/platforms/*.json`
204
+ # Deep dive — pulls more data for a thorough analysis
205
+ sc-research research:deep "best budget IEMs under $50"
206
+ ```
109
207
 
110
- ## Data Outputs
208
+ ---
111
209
 
112
- ### Raw fetch outputs
210
+ ## 📊 Analysis Types
113
211
 
114
- - `reddit_data.json`
115
- - `x_data.json`
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
- ### Classified analysis outputs
220
+ ---
118
221
 
119
- - `classified_rank.json`
120
- - `classified_sentiment.json`
121
- - `classified_trend.json`
122
- - `classified_controversy.json`
123
- - `classified_discovery.json`
222
+ ## 🔧 CLI Reference
124
223
 
125
- ## Discovery Mode (Special Flow)
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
- Discovery has dedicated behavior in runtime:
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
- - `DISCOVERY_WEEKLY` + discovery mode fetches Reddit weekly trending (`r/popular/top`).
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
- Recommended commands:
238
+ ## 🛠️ Development
134
239
 
135
240
  ```bash
136
- # broad weekly discovery
137
- sc-research research:deep "DISCOVERY_WEEKLY" --mode=discovery
138
-
139
- # topic-focused discovery
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
- ## Repository Structure
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
- ## Development
249
+ ## 🤝 Contributing
158
250
 
159
- ```bash
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
- # tests
166
- bun test
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
- # build all distributables
169
- bun run build
170
- ```
259
+ Feel free to open an issue or submit a pull request.
260
+
261
+ ---
262
+
263
+ ## Acknowledgements
171
264
 
172
- ## Notes
265
+ Inspired by [last30days-skill](https://github.com/mvanhorn/last30days-skill)
173
266
 
174
- - Requires Node.js `>=20` for packaged CLI runtime.
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}