9router 0.2.14 → 0.2.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/LICENSE +2 -0
  2. package/README.md +2 -0
  3. package/app/.next/static/chunks/1055.0f91ab6513ec317b.js +1 -0
  4. package/app/.next/static/chunks/1393-c0bf788a0bc19102.js +1 -0
  5. package/app/.next/static/chunks/1441.7b9fc2e539f71e56.js +1 -0
  6. package/app/.next/static/chunks/197.83743acbae435446.js +1 -0
  7. package/app/.next/static/chunks/3433.dfc71de88505c41d.js +1 -0
  8. package/app/.next/static/chunks/3592.2bc2e6e506f250e3.js +1 -0
  9. package/app/.next/static/chunks/4244-0a98cf2e73799efe.js +1 -0
  10. package/app/.next/static/chunks/5812.5dc8861d62b394fe.js +1 -0
  11. package/app/.next/static/chunks/6899.44ddb324d06f2b00.js +1 -0
  12. package/app/.next/static/chunks/8456.50ee5fc36ad7054f.js +1 -0
  13. package/app/.next/static/chunks/9955-a027f64b1a9bf4e5.js +1 -0
  14. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-9009a2a4fdcd878c.js +1 -0
  15. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-60e73b7047f9e428.js +1 -0
  16. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/{route-0084262e28f0dd3b.js → route-a51a32870fa386f8.js} +1 -1
  17. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/{route-0084262e28f0dd3b.js → route-a51a32870fa386f8.js} +1 -1
  18. package/app/.next/static/chunks/app/api/cloud/auth/{route-0084262e28f0dd3b.js → route-a51a32870fa386f8.js} +1 -1
  19. package/app/.next/static/chunks/app/api/cloud/credentials/update/{route-0084262e28f0dd3b.js → route-a51a32870fa386f8.js} +1 -1
  20. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-a51a32870fa386f8.js +1 -0
  21. package/app/.next/static/chunks/app/api/cloud/models/alias/route-a51a32870fa386f8.js +1 -0
  22. package/app/.next/static/chunks/app/api/combos/[id]/route-a51a32870fa386f8.js +1 -0
  23. package/app/.next/static/chunks/app/api/combos/route-a51a32870fa386f8.js +1 -0
  24. package/app/.next/static/chunks/app/api/init/route-a51a32870fa386f8.js +1 -0
  25. package/app/.next/static/chunks/app/api/keys/[id]/route-a51a32870fa386f8.js +1 -0
  26. package/app/.next/static/chunks/app/api/keys/route-a51a32870fa386f8.js +1 -0
  27. package/app/.next/static/chunks/app/api/models/alias/route-a51a32870fa386f8.js +1 -0
  28. package/app/.next/static/chunks/app/api/models/route-a51a32870fa386f8.js +1 -0
  29. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-a51a32870fa386f8.js +1 -0
  30. package/app/.next/static/chunks/app/api/providers/[id]/models/route-a51a32870fa386f8.js +1 -0
  31. package/app/.next/static/chunks/app/api/providers/[id]/route-a51a32870fa386f8.js +1 -0
  32. package/app/.next/static/chunks/app/api/providers/[id]/test/route-a51a32870fa386f8.js +1 -0
  33. package/app/.next/static/chunks/app/api/providers/client/route-a51a32870fa386f8.js +1 -0
  34. package/app/.next/static/chunks/app/api/providers/route-a51a32870fa386f8.js +1 -0
  35. package/app/.next/static/chunks/app/api/providers/validate/route-a51a32870fa386f8.js +1 -0
  36. package/app/.next/static/chunks/app/api/settings/route-a51a32870fa386f8.js +1 -0
  37. package/app/.next/static/chunks/app/api/shutdown/route-a51a32870fa386f8.js +1 -0
  38. package/app/.next/static/chunks/app/api/sync/cloud/route-a51a32870fa386f8.js +1 -0
  39. package/app/.next/static/chunks/app/api/sync/initialize/route-a51a32870fa386f8.js +1 -0
  40. package/app/.next/static/chunks/app/api/tags/route-a51a32870fa386f8.js +1 -0
  41. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-a51a32870fa386f8.js +1 -0
  42. package/app/.next/static/chunks/app/api/v1/api/chat/route-a51a32870fa386f8.js +1 -0
  43. package/app/.next/static/chunks/app/api/v1/chat/completions/route-a51a32870fa386f8.js +1 -0
  44. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-a51a32870fa386f8.js +1 -0
  45. package/app/.next/static/chunks/app/api/v1/messages/route-a51a32870fa386f8.js +1 -0
  46. package/app/.next/static/chunks/app/api/v1/responses/route-a51a32870fa386f8.js +1 -0
  47. package/app/.next/static/chunks/app/api/v1/route-a51a32870fa386f8.js +1 -0
  48. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-a51a32870fa386f8.js +1 -0
  49. package/app/.next/static/chunks/app/api/v1beta/models/route-a51a32870fa386f8.js +1 -0
  50. package/app/.next/static/chunks/app/landing/page-c9ff4225b9e48650.js +1 -0
  51. package/app/.next/static/chunks/app/page-a51a32870fa386f8.js +1 -0
  52. package/app/.next/static/chunks/webpack-e009a29a8139b7cb.js +1 -0
  53. package/app/.next/static/css/d88eaa46491bd5c8.css +3 -0
  54. package/app/app/.next/BUILD_ID +1 -1
  55. package/app/app/.next/app-build-manifest.json +144 -148
  56. package/app/app/.next/app-path-routes-manifest.json +16 -16
  57. package/app/app/.next/build-manifest.json +5 -5
  58. package/app/app/.next/prerender-manifest.json +45 -45
  59. package/app/app/.next/react-loadable-manifest.json +27 -27
  60. package/app/app/.next/required-server-files.json +1 -1
  61. package/app/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +4 -4
  62. package/app/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  63. package/app/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  64. package/app/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  65. package/app/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  66. package/app/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  67. package/app/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  68. package/app/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  69. package/app/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  70. package/app/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  71. package/app/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  72. package/app/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
  73. package/app/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  74. package/app/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  75. package/app/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  76. package/app/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  77. package/app/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  78. package/app/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  79. package/app/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  80. package/app/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  81. package/app/app/.next/server/app/_not-found.html +1 -1
  82. package/app/app/.next/server/app/_not-found.rsc +4 -4
  83. package/app/app/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
  84. package/app/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  85. package/app/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  86. package/app/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  87. package/app/app/.next/server/app/api/cloud/auth/route.js +1 -1
  88. package/app/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  89. package/app/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  90. package/app/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  91. package/app/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  92. package/app/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  93. package/app/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  94. package/app/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  95. package/app/app/.next/server/app/api/combos/[id]/route.js +1 -1
  96. package/app/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  97. package/app/app/.next/server/app/api/combos/route.js +1 -1
  98. package/app/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  99. package/app/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  100. package/app/app/.next/server/app/api/keys/[id]/route.js +1 -1
  101. package/app/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  102. package/app/app/.next/server/app/api/keys/route.js +1 -1
  103. package/app/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  104. package/app/app/.next/server/app/api/models/alias/route.js +1 -1
  105. package/app/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  106. package/app/app/.next/server/app/api/models/route.js +1 -1
  107. package/app/app/.next/server/app/api/models/route.js.nft.json +1 -1
  108. package/app/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  109. package/app/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  110. package/app/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  111. package/app/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  112. package/app/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  113. package/app/app/.next/server/app/api/providers/[id]/route.js +1 -1
  114. package/app/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  115. package/app/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  116. package/app/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  117. package/app/app/.next/server/app/api/providers/client/route.js +1 -1
  118. package/app/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  119. package/app/app/.next/server/app/api/providers/route.js +1 -1
  120. package/app/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  121. package/app/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  122. package/app/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  123. package/app/app/.next/server/app/api/settings/route.js +1 -1
  124. package/app/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  125. package/app/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  126. package/app/app/.next/server/app/api/sync/cloud/route.js +1 -1
  127. package/app/app/.next/server/app/api/sync/cloud/route.js.nft.json +1 -1
  128. package/app/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  129. package/app/app/.next/server/app/api/sync/initialize/route.js +1 -1
  130. package/app/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  131. package/app/app/.next/server/app/api/tags/route.js +1 -1
  132. package/app/app/.next/server/app/api/tags/route.js.nft.json +1 -1
  133. package/app/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  134. package/app/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  135. package/app/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  136. package/app/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  137. package/app/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  138. package/app/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  139. package/app/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  140. package/app/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  141. package/app/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  142. package/app/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  143. package/app/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  144. package/app/app/.next/server/app/api/v1/messages/route.js +1 -1
  145. package/app/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  146. package/app/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  147. package/app/app/.next/server/app/api/v1/responses/route.js +1 -1
  148. package/app/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  149. package/app/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  150. package/app/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  151. package/app/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  152. package/app/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  153. package/app/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  154. package/app/app/.next/server/app/api/v1beta/models/route.js +1 -1
  155. package/app/app/.next/server/app/api/v1beta/models/route.js.nft.json +1 -1
  156. package/app/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  157. package/app/app/.next/server/app/callback/page.js.nft.json +1 -1
  158. package/app/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  159. package/app/app/.next/server/app/callback.html +1 -1
  160. package/app/app/.next/server/app/callback.rsc +4 -4
  161. package/app/app/.next/server/app/dashboard/cli-tools.html +1 -1
  162. package/app/app/.next/server/app/dashboard/cli-tools.rsc +6 -6
  163. package/app/app/.next/server/app/dashboard/combos.html +1 -1
  164. package/app/app/.next/server/app/dashboard/combos.rsc +6 -6
  165. package/app/app/.next/server/app/dashboard/endpoint.html +1 -1
  166. package/app/app/.next/server/app/dashboard/endpoint.rsc +6 -6
  167. package/app/app/.next/server/app/dashboard/profile.html +1 -1
  168. package/app/app/.next/server/app/dashboard/profile.rsc +6 -6
  169. package/app/app/.next/server/app/dashboard/providers/new.html +1 -1
  170. package/app/app/.next/server/app/dashboard/providers/new.rsc +6 -6
  171. package/app/app/.next/server/app/dashboard/providers.html +1 -1
  172. package/app/app/.next/server/app/dashboard/providers.rsc +6 -6
  173. package/app/app/.next/server/app/dashboard.html +1 -1
  174. package/app/app/.next/server/app/dashboard.rsc +6 -6
  175. package/app/app/.next/server/app/index.html +1 -1
  176. package/app/app/.next/server/app/index.meta +2 -0
  177. package/app/app/.next/server/app/index.rsc +5 -5
  178. package/app/app/.next/server/app/landing/page.js +2 -2
  179. package/app/app/.next/server/app/landing/page.js.nft.json +1 -1
  180. package/app/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  181. package/app/app/.next/server/app/landing.html +1 -1
  182. package/app/app/.next/server/app/landing.rsc +5 -5
  183. package/app/app/.next/server/app/page.js +2 -2
  184. package/app/app/.next/server/app/page.js.nft.json +1 -1
  185. package/app/app/.next/server/app/page_client-reference-manifest.js +1 -1
  186. package/app/app/.next/server/app-paths-manifest.json +16 -16
  187. package/app/app/.next/server/chunks/1104.js +1 -0
  188. package/app/app/.next/server/chunks/{4498.js → 1178.js} +1 -1
  189. package/app/app/.next/server/chunks/1354.js +1 -1
  190. package/app/app/.next/server/chunks/1582.js +1 -1
  191. package/app/app/.next/server/chunks/1717.js +1 -0
  192. package/app/app/.next/server/chunks/{5051.js → 2045.js} +1 -1
  193. package/app/app/.next/server/chunks/{6380.js → 2328.js} +1 -1
  194. package/app/app/.next/server/chunks/3103.js +1 -1
  195. package/app/app/.next/server/chunks/{1325.js → 3563.js} +1 -1
  196. package/app/app/.next/server/chunks/3576.js +1 -0
  197. package/app/app/.next/server/chunks/{5331.js → 3809.js} +1 -1
  198. package/app/app/.next/server/chunks/4515.js +1 -1
  199. package/app/app/.next/server/chunks/4656.js +1 -0
  200. package/app/app/.next/server/chunks/5170.js +1 -1
  201. package/app/app/.next/server/chunks/{8609.js → 5587.js} +1 -1
  202. package/app/app/.next/server/chunks/5977.js +1 -1
  203. package/app/app/.next/server/chunks/6367.js +1 -0
  204. package/app/app/.next/server/chunks/6689.js +9 -0
  205. package/app/app/.next/server/chunks/6814.js +1 -0
  206. package/app/app/.next/server/chunks/{9676.js → 7374.js} +1 -1
  207. package/app/app/.next/server/chunks/{1492.js → 8611.js} +1 -1
  208. package/app/app/.next/server/chunks/{2662.js → 8764.js} +1 -1
  209. package/app/app/.next/server/middleware-build-manifest.js +1 -1
  210. package/app/app/.next/server/middleware-react-loadable-manifest.js +1 -1
  211. package/app/app/.next/server/pages/404.html +1 -1
  212. package/app/app/.next/server/pages/500.html +1 -1
  213. package/app/app/.next/server/server-reference-manifest.js +1 -1
  214. package/app/app/.next/server/server-reference-manifest.json +1 -1
  215. package/app/app/.next/static/chunks/1055.0f91ab6513ec317b.js +1 -0
  216. package/app/app/.next/static/chunks/1393-c0bf788a0bc19102.js +1 -0
  217. package/app/app/.next/static/chunks/1441.7b9fc2e539f71e56.js +1 -0
  218. package/app/app/.next/static/chunks/197.83743acbae435446.js +1 -0
  219. package/app/app/.next/static/chunks/3433.dfc71de88505c41d.js +1 -0
  220. package/app/app/.next/static/chunks/3592.2bc2e6e506f250e3.js +1 -0
  221. package/app/app/.next/static/chunks/4244-0a98cf2e73799efe.js +1 -0
  222. package/app/app/.next/static/chunks/5812.5dc8861d62b394fe.js +1 -0
  223. package/app/app/.next/static/chunks/6899.44ddb324d06f2b00.js +1 -0
  224. package/app/app/.next/static/chunks/8456.50ee5fc36ad7054f.js +1 -0
  225. package/app/app/.next/static/chunks/9955-a027f64b1a9bf4e5.js +1 -0
  226. package/app/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-9009a2a4fdcd878c.js +1 -0
  227. package/app/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-60e73b7047f9e428.js +1 -0
  228. package/app/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-a51a32870fa386f8.js +1 -0
  229. package/app/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-a51a32870fa386f8.js +1 -0
  230. package/app/app/.next/static/chunks/app/api/cloud/auth/route-a51a32870fa386f8.js +1 -0
  231. package/app/app/.next/static/chunks/app/api/cloud/credentials/update/route-a51a32870fa386f8.js +1 -0
  232. package/app/app/.next/static/chunks/app/api/cloud/model/resolve/route-a51a32870fa386f8.js +1 -0
  233. package/app/app/.next/static/chunks/app/api/cloud/models/alias/route-a51a32870fa386f8.js +1 -0
  234. package/app/app/.next/static/chunks/app/api/combos/[id]/route-a51a32870fa386f8.js +1 -0
  235. package/app/app/.next/static/chunks/app/api/combos/route-a51a32870fa386f8.js +1 -0
  236. package/app/app/.next/static/chunks/app/api/init/route-a51a32870fa386f8.js +1 -0
  237. package/app/app/.next/static/chunks/app/api/keys/[id]/route-a51a32870fa386f8.js +1 -0
  238. package/app/app/.next/static/chunks/app/api/keys/route-a51a32870fa386f8.js +1 -0
  239. package/app/app/.next/static/chunks/app/api/models/alias/route-a51a32870fa386f8.js +1 -0
  240. package/app/app/.next/static/chunks/app/api/models/route-a51a32870fa386f8.js +1 -0
  241. package/app/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-a51a32870fa386f8.js +1 -0
  242. package/app/app/.next/static/chunks/app/api/providers/[id]/models/route-a51a32870fa386f8.js +1 -0
  243. package/app/app/.next/static/chunks/app/api/providers/[id]/route-a51a32870fa386f8.js +1 -0
  244. package/app/app/.next/static/chunks/app/api/providers/[id]/test/route-a51a32870fa386f8.js +1 -0
  245. package/app/app/.next/static/chunks/app/api/providers/client/route-a51a32870fa386f8.js +1 -0
  246. package/app/app/.next/static/chunks/app/api/providers/route-a51a32870fa386f8.js +1 -0
  247. package/app/app/.next/static/chunks/app/api/providers/validate/route-a51a32870fa386f8.js +1 -0
  248. package/app/app/.next/static/chunks/app/api/settings/route-a51a32870fa386f8.js +1 -0
  249. package/app/app/.next/static/chunks/app/api/shutdown/route-a51a32870fa386f8.js +1 -0
  250. package/app/app/.next/static/chunks/app/api/sync/cloud/route-a51a32870fa386f8.js +1 -0
  251. package/app/app/.next/static/chunks/app/api/sync/initialize/route-a51a32870fa386f8.js +1 -0
  252. package/app/app/.next/static/chunks/app/api/tags/route-a51a32870fa386f8.js +1 -0
  253. package/app/app/.next/static/chunks/app/api/usage/[connectionId]/route-a51a32870fa386f8.js +1 -0
  254. package/app/app/.next/static/chunks/app/api/v1/api/chat/route-a51a32870fa386f8.js +1 -0
  255. package/app/app/.next/static/chunks/app/api/v1/chat/completions/route-a51a32870fa386f8.js +1 -0
  256. package/app/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-a51a32870fa386f8.js +1 -0
  257. package/app/app/.next/static/chunks/app/api/v1/messages/route-a51a32870fa386f8.js +1 -0
  258. package/app/app/.next/static/chunks/app/api/v1/responses/route-a51a32870fa386f8.js +1 -0
  259. package/app/app/.next/static/chunks/app/api/v1/route-a51a32870fa386f8.js +1 -0
  260. package/app/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-a51a32870fa386f8.js +1 -0
  261. package/app/app/.next/static/chunks/app/api/v1beta/models/route-a51a32870fa386f8.js +1 -0
  262. package/app/app/.next/static/chunks/app/landing/page-c9ff4225b9e48650.js +1 -0
  263. package/app/app/.next/static/chunks/app/page-a51a32870fa386f8.js +1 -0
  264. package/app/app/.next/static/chunks/webpack-e009a29a8139b7cb.js +1 -0
  265. package/app/app/.next/static/css/d88eaa46491bd5c8.css +3 -0
  266. package/app/app/package.json +1 -9
  267. package/app/app/public/favicon.svg +11 -0
  268. package/app/app/server.js +1 -1
  269. package/app/package.json +2 -10
  270. package/app/public/favicon.svg +11 -0
  271. package/hooks/model-websearch.cjs +11 -11
  272. package/package.json +1 -1
  273. package/app/.next/static/chunks/1108.dfb5c59c23b4ad41.js +0 -1
  274. package/app/.next/static/chunks/1393-7288fec519c2e8bd.js +0 -1
  275. package/app/.next/static/chunks/252-cb6f99bd45e4e12b.js +0 -1
  276. package/app/.next/static/chunks/4244-699e2d023e54f7eb.js +0 -1
  277. package/app/.next/static/chunks/6360.0c430a4f52aa56a1.js +0 -1
  278. package/app/.next/static/chunks/6765.602b5bd2b6d6d21c.js +0 -1
  279. package/app/.next/static/chunks/7332.a4365ce6cc35978d.js +0 -1
  280. package/app/.next/static/chunks/7647.c62006182fa7eaa9.js +0 -1
  281. package/app/.next/static/chunks/8325.6269b283e886fd9b.js +0 -1
  282. package/app/.next/static/chunks/8717.c8dc7698be4136f1.js +0 -1
  283. package/app/.next/static/chunks/9817.655825f161ddc664.js +0 -1
  284. package/app/.next/static/chunks/9955-6d41cf5902a69a61.js +0 -1
  285. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-ff3ccae28ee7e6c5.js +0 -1
  286. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-b855a6ae07591f1f.js +0 -1
  287. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-0084262e28f0dd3b.js +0 -1
  288. package/app/.next/static/chunks/app/api/cloud/models/alias/route-0084262e28f0dd3b.js +0 -1
  289. package/app/.next/static/chunks/app/api/combos/[id]/route-0084262e28f0dd3b.js +0 -1
  290. package/app/.next/static/chunks/app/api/combos/route-0084262e28f0dd3b.js +0 -1
  291. package/app/.next/static/chunks/app/api/init/route-0084262e28f0dd3b.js +0 -1
  292. package/app/.next/static/chunks/app/api/keys/[id]/route-0084262e28f0dd3b.js +0 -1
  293. package/app/.next/static/chunks/app/api/keys/route-0084262e28f0dd3b.js +0 -1
  294. package/app/.next/static/chunks/app/api/models/alias/route-0084262e28f0dd3b.js +0 -1
  295. package/app/.next/static/chunks/app/api/models/route-0084262e28f0dd3b.js +0 -1
  296. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-0084262e28f0dd3b.js +0 -1
  297. package/app/.next/static/chunks/app/api/providers/[id]/models/route-0084262e28f0dd3b.js +0 -1
  298. package/app/.next/static/chunks/app/api/providers/[id]/route-0084262e28f0dd3b.js +0 -1
  299. package/app/.next/static/chunks/app/api/providers/[id]/test/route-0084262e28f0dd3b.js +0 -1
  300. package/app/.next/static/chunks/app/api/providers/client/route-0084262e28f0dd3b.js +0 -1
  301. package/app/.next/static/chunks/app/api/providers/route-0084262e28f0dd3b.js +0 -1
  302. package/app/.next/static/chunks/app/api/providers/validate/route-0084262e28f0dd3b.js +0 -1
  303. package/app/.next/static/chunks/app/api/settings/route-0084262e28f0dd3b.js +0 -1
  304. package/app/.next/static/chunks/app/api/shutdown/route-0084262e28f0dd3b.js +0 -1
  305. package/app/.next/static/chunks/app/api/sync/cloud/route-0084262e28f0dd3b.js +0 -1
  306. package/app/.next/static/chunks/app/api/sync/initialize/route-0084262e28f0dd3b.js +0 -1
  307. package/app/.next/static/chunks/app/api/tags/route-0084262e28f0dd3b.js +0 -1
  308. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-0084262e28f0dd3b.js +0 -1
  309. package/app/.next/static/chunks/app/api/v1/api/chat/route-0084262e28f0dd3b.js +0 -1
  310. package/app/.next/static/chunks/app/api/v1/chat/completions/route-0084262e28f0dd3b.js +0 -1
  311. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-0084262e28f0dd3b.js +0 -1
  312. package/app/.next/static/chunks/app/api/v1/messages/route-0084262e28f0dd3b.js +0 -1
  313. package/app/.next/static/chunks/app/api/v1/responses/route-0084262e28f0dd3b.js +0 -1
  314. package/app/.next/static/chunks/app/api/v1/route-0084262e28f0dd3b.js +0 -1
  315. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-0084262e28f0dd3b.js +0 -1
  316. package/app/.next/static/chunks/app/api/v1beta/models/route-0084262e28f0dd3b.js +0 -1
  317. package/app/.next/static/chunks/app/landing/page-1f54485eea138967.js +0 -1
  318. package/app/.next/static/chunks/app/page-3126678fc8370f4f.js +0 -1
  319. package/app/.next/static/chunks/webpack-f8817ed5cc2611bf.js +0 -1
  320. package/app/.next/static/css/12c46cc8881ce1ef.css +0 -3
  321. package/app/app/.next/server/chunks/1220.js +0 -1
  322. package/app/app/.next/server/chunks/308.js +0 -1
  323. package/app/app/.next/server/chunks/4208.js +0 -1
  324. package/app/app/.next/server/chunks/4696.js +0 -1
  325. package/app/app/.next/server/chunks/6161.js +0 -1
  326. package/app/app/.next/server/chunks/6697.js +0 -1
  327. package/app/app/.next/server/chunks/6918.js +0 -1
  328. package/app/app/.next/server/chunks/8272.js +0 -9
  329. package/app/app/.next/server/chunks/8487.js +0 -1
  330. package/app/app/.next/static/chunks/1108.dfb5c59c23b4ad41.js +0 -1
  331. package/app/app/.next/static/chunks/1393-7288fec519c2e8bd.js +0 -1
  332. package/app/app/.next/static/chunks/252-cb6f99bd45e4e12b.js +0 -1
  333. package/app/app/.next/static/chunks/4244-699e2d023e54f7eb.js +0 -1
  334. package/app/app/.next/static/chunks/6360.0c430a4f52aa56a1.js +0 -1
  335. package/app/app/.next/static/chunks/6765.602b5bd2b6d6d21c.js +0 -1
  336. package/app/app/.next/static/chunks/7332.a4365ce6cc35978d.js +0 -1
  337. package/app/app/.next/static/chunks/7647.c62006182fa7eaa9.js +0 -1
  338. package/app/app/.next/static/chunks/8325.6269b283e886fd9b.js +0 -1
  339. package/app/app/.next/static/chunks/8717.c8dc7698be4136f1.js +0 -1
  340. package/app/app/.next/static/chunks/9817.655825f161ddc664.js +0 -1
  341. package/app/app/.next/static/chunks/9955-6d41cf5902a69a61.js +0 -1
  342. package/app/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-ff3ccae28ee7e6c5.js +0 -1
  343. package/app/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-b855a6ae07591f1f.js +0 -1
  344. package/app/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-0084262e28f0dd3b.js +0 -1
  345. package/app/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-0084262e28f0dd3b.js +0 -1
  346. package/app/app/.next/static/chunks/app/api/cloud/auth/route-0084262e28f0dd3b.js +0 -1
  347. package/app/app/.next/static/chunks/app/api/cloud/credentials/update/route-0084262e28f0dd3b.js +0 -1
  348. package/app/app/.next/static/chunks/app/api/cloud/model/resolve/route-0084262e28f0dd3b.js +0 -1
  349. package/app/app/.next/static/chunks/app/api/cloud/models/alias/route-0084262e28f0dd3b.js +0 -1
  350. package/app/app/.next/static/chunks/app/api/combos/[id]/route-0084262e28f0dd3b.js +0 -1
  351. package/app/app/.next/static/chunks/app/api/combos/route-0084262e28f0dd3b.js +0 -1
  352. package/app/app/.next/static/chunks/app/api/init/route-0084262e28f0dd3b.js +0 -1
  353. package/app/app/.next/static/chunks/app/api/keys/[id]/route-0084262e28f0dd3b.js +0 -1
  354. package/app/app/.next/static/chunks/app/api/keys/route-0084262e28f0dd3b.js +0 -1
  355. package/app/app/.next/static/chunks/app/api/models/alias/route-0084262e28f0dd3b.js +0 -1
  356. package/app/app/.next/static/chunks/app/api/models/route-0084262e28f0dd3b.js +0 -1
  357. package/app/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-0084262e28f0dd3b.js +0 -1
  358. package/app/app/.next/static/chunks/app/api/providers/[id]/models/route-0084262e28f0dd3b.js +0 -1
  359. package/app/app/.next/static/chunks/app/api/providers/[id]/route-0084262e28f0dd3b.js +0 -1
  360. package/app/app/.next/static/chunks/app/api/providers/[id]/test/route-0084262e28f0dd3b.js +0 -1
  361. package/app/app/.next/static/chunks/app/api/providers/client/route-0084262e28f0dd3b.js +0 -1
  362. package/app/app/.next/static/chunks/app/api/providers/route-0084262e28f0dd3b.js +0 -1
  363. package/app/app/.next/static/chunks/app/api/providers/validate/route-0084262e28f0dd3b.js +0 -1
  364. package/app/app/.next/static/chunks/app/api/settings/route-0084262e28f0dd3b.js +0 -1
  365. package/app/app/.next/static/chunks/app/api/shutdown/route-0084262e28f0dd3b.js +0 -1
  366. package/app/app/.next/static/chunks/app/api/sync/cloud/route-0084262e28f0dd3b.js +0 -1
  367. package/app/app/.next/static/chunks/app/api/sync/initialize/route-0084262e28f0dd3b.js +0 -1
  368. package/app/app/.next/static/chunks/app/api/tags/route-0084262e28f0dd3b.js +0 -1
  369. package/app/app/.next/static/chunks/app/api/usage/[connectionId]/route-0084262e28f0dd3b.js +0 -1
  370. package/app/app/.next/static/chunks/app/api/v1/api/chat/route-0084262e28f0dd3b.js +0 -1
  371. package/app/app/.next/static/chunks/app/api/v1/chat/completions/route-0084262e28f0dd3b.js +0 -1
  372. package/app/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-0084262e28f0dd3b.js +0 -1
  373. package/app/app/.next/static/chunks/app/api/v1/messages/route-0084262e28f0dd3b.js +0 -1
  374. package/app/app/.next/static/chunks/app/api/v1/responses/route-0084262e28f0dd3b.js +0 -1
  375. package/app/app/.next/static/chunks/app/api/v1/route-0084262e28f0dd3b.js +0 -1
  376. package/app/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-0084262e28f0dd3b.js +0 -1
  377. package/app/app/.next/static/chunks/app/api/v1beta/models/route-0084262e28f0dd3b.js +0 -1
  378. package/app/app/.next/static/chunks/app/landing/page-1f54485eea138967.js +0 -1
  379. package/app/app/.next/static/chunks/app/page-3126678fc8370f4f.js +0 -1
  380. package/app/app/.next/static/chunks/webpack-f8817ed5cc2611bf.js +0 -1
  381. package/app/app/.next/static/css/12c46cc8881ce1ef.css +0 -3
  382. package/app/app/images/9router.png +0 -0
  383. package/app/images/9router.png +0 -0
  384. package/app/open-sse/package.json +0 -44
  385. /package/app/.next/static/{wfk2aeixNCUu0ZyAs6fjm → _gC7vRgPAPGHB1TBB8KL2}/_buildManifest.js +0 -0
  386. /package/app/.next/static/{wfk2aeixNCUu0ZyAs6fjm → _gC7vRgPAPGHB1TBB8KL2}/_ssgManifest.js +0 -0
  387. /package/app/app/.next/static/{wfk2aeixNCUu0ZyAs6fjm → _gC7vRgPAPGHB1TBB8KL2}/_buildManifest.js +0 -0
  388. /package/app/app/.next/static/{wfk2aeixNCUu0ZyAs6fjm → _gC7vRgPAPGHB1TBB8KL2}/_ssgManifest.js +0 -0
  389. /package/app/{open-sse → app/open-sse}/translator/from-openai/claude.js +0 -0
  390. /package/app/{open-sse → app/open-sse}/translator/from-openai/gemini.js +0 -0
  391. /package/app/{open-sse → app/open-sse}/translator/from-openai/openai-responses.js +0 -0
  392. /package/app/{open-sse → app/open-sse}/translator/to-openai/claude.js +0 -0
  393. /package/app/{open-sse → app/open-sse}/translator/to-openai/gemini.js +0 -0
  394. /package/app/{open-sse → app/open-sse}/translator/to-openai/openai-responses.js +0 -0
  395. /package/app/{open-sse → app/open-sse}/translator/to-openai/openai.js +0 -0
@@ -0,0 +1,3 @@
1
+ @font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_f367f3{font-family:Inter,Inter Fallback;font-style:normal}.__variable_f367f3{--font-inter:"Inter","Inter Fallback"}
2
+
3
+ /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--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-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-outline-style:solid;--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-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:"Inter",ui-sans-serif,system-ui,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-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-900:oklch(40.8% .123 38.172);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-lime-500:oklch(76.8% .233 130.85);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--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-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-teal-500:oklch(70.4% .14 182.503);--color-cyan-500:oklch(71.5% .143 215.221);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--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-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-500:oklch(58.5% .233 277.117);--color-violet-500:oklch(60.6% .25 292.717);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-pink-500:oklch(65.6% .241 354.308);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--container-7xl:80rem;--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:calc(1.5/1);--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-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-light:300;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:"Inter",ui-sans-serif,system-ui,sans-serif;--default-mono-font-family:var(--font-mono);--color-primary:var(--color-primary);--color-primary-hover:var(--color-primary-hover);--color-bg:var(--color-bg);--color-surface:var(--color-surface);--color-sidebar:var(--color-sidebar);--color-border:var(--color-border);--color-text-main:var(--color-text-main);--color-text-muted:var(--color-text-muted);--shadow-soft:var(--shadow-soft);--shadow-warm:var(--shadow-warm);--shadow-elevated:var(--shadow-elevated)}}@layer base{*,::backdrop,:after,:before{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}:host,html{-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,pre,samp{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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.-top-20{top:calc(var(--spacing)*-20)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-1\/3{top:33.3333%}.top-6{top:calc(var(--spacing)*6)}.top-12{top:calc(var(--spacing)*12)}.-right-20{right:calc(var(--spacing)*-20)}.right-0{right:calc(var(--spacing)*0)}.right-1\/4{right:25%}.right-6{right:calc(var(--spacing)*6)}.right-\[16\%\]{right:16%}.-bottom-20{bottom:calc(var(--spacing)*-20)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.left-1\/2{left:50%}.left-1\/4{left:25%}.left-2\.5{left:calc(var(--spacing)*2.5)}.left-\[16\%\]{left:16%}.-z-10{z-index:calc(10*-1)}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-3{margin-inline:calc(var(--spacing)*-3)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-16{margin-top:calc(var(--spacing)*16)}.mr-1{margin-right:calc(var(--spacing)*1)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.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-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.mb-16{margin-bottom:calc(var(--spacing)*16)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.size-1\.5{width:calc(var(--spacing)*1.5);height:calc(var(--spacing)*1.5)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-11{width:calc(var(--spacing)*11);height:calc(var(--spacing)*11)}.size-12{width:calc(var(--spacing)*12);height:calc(var(--spacing)*12)}.size-16{width:calc(var(--spacing)*16);height:calc(var(--spacing)*16)}.h-2{height:calc(var(--spacing)*2)}.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-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-14{height:calc(var(--spacing)*14)}.h-16{height:calc(var(--spacing)*16)}.h-24{height:calc(var(--spacing)*24)}.h-32{height:calc(var(--spacing)*32)}.h-\[2px\]{height:2px}.h-\[360px\]{height:360px}.h-\[500px\]{height:500px}.h-\[550px\]{height:550px}.h-\[600px\]{height:600px}.h-\[650px\]{height:650px}.h-\[700px\]{height:700px}.h-\[800px\]{height:800px}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing)*32)}.max-h-40{max-height:calc(var(--spacing)*40)}.max-h-\[240px\]{max-height:240px}.max-h-\[300px\]{max-height:300px}.max-h-\[calc\(80vh-140px\)\]{max-height:calc(80vh - 140px)}.min-h-\[90vh\]{min-height:90vh}.min-h-screen{min-height:100vh}.w-2{width:calc(var(--spacing)*2)}.w-3{width:calc(var(--spacing)*3)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-10{width:calc(var(--spacing)*10)}.w-11{width:calc(var(--spacing)*11)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-32{width:calc(var(--spacing)*32)}.w-72{width:calc(var(--spacing)*72)}.w-\[500px\]{width:500px}.w-\[550px\]{width:550px}.w-\[600px\]{width:600px}.w-\[650px\]{width:650px}.w-\[700px\]{width:700px}.w-\[800px\]{width:800px}.w-\[1000px\]{width:1000px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[300px\]{max-width:300px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[140px\]{min-width:140px}.flex-1{flex:1}.flex-none{flex:none}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1/2*100%)*-1)}.-translate-x-1\/2,.-translate-x-full{translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0)}.translate-x-0,.translate-x-0\.5{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0\.5{--tw-translate-x:calc(var(--spacing)*.5)}.translate-x-1\/3{--tw-translate-x:calc(1/3*100%)}.translate-x-1\/3,.translate-x-4{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing)*4)}.translate-x-5{--tw-translate-x:calc(var(--spacing)*5)}.translate-x-5,.translate-x-7{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-7{--tw-translate-x:calc(var(--spacing)*7)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1)}.-translate-y-1\/2,.translate-y-1\/3{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1\/3{--tw-translate-y:calc(1/3*100%)}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-\[dash_2s_linear_infinite\]{animation:dash 2s linear infinite}.animate-\[float_6s_ease-in-out_infinite\]{animation:float 6s ease-in-out infinite}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.appearance-none{appearance: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-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}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing)*0)}.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)}.gap-7{gap:calc(var(--spacing)*7)}.gap-8{gap:calc(var(--spacing)*8)}.gap-10{gap:calc(var(--spacing)*10)}.gap-16{gap:calc(var(--spacing)*16)}: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-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)))}.truncate{text-overflow:ellipsis;white-space:nowrap}.overflow-hidden,.truncate{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.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-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.\!border-red-500\/30{border-color:#fb2c364d!important}@supports (color:color-mix(in lab,red,red)){.\!border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500)30%,transparent)!important}}.border-\[\#3a2f27\]{border-color:#3a2f27}.border-\[\#f97815\]{border-color:#f97815}.border-\[\#f97815\]\/30{border-color:oklab(71.2065% .118574 .139854/.3)}.border-blue-100{border-color:var(--color-blue-100)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-500\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/30{border-color:color-mix(in oklab,var(--color-blue-500)30%,transparent)}}.border-border{border-color:var(--color-border)}.border-gray-700{border-color:var(--color-gray-700)}.border-green-100{border-color:var(--color-green-100)}.border-primary,.border-primary\/30{border-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/30{border-color:color-mix(in oklab,var(--color-primary)30%,transparent)}}.border-red-100{border-color:var(--color-red-100)}.border-red-200{border-color:var(--color-red-200)}.border-red-500{border-color:var(--color-red-500)}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500)30%,transparent)}}.border-yellow-100{border-color:var(--color-yellow-100)}.border-yellow-200{border-color:var(--color-yellow-200)}.border-yellow-500\/30{border-color:#edb2004d}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/30{border-color:color-mix(in oklab,var(--color-yellow-500)30%,transparent)}}.border-yellow-500\/50{border-color:#edb20080}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/50{border-color:color-mix(in oklab,var(--color-yellow-500)50%,transparent)}}.\!bg-red-500{background-color:var(--color-red-500)!important}.\!bg-red-500\/10{background-color:#fb2c361a!important}@supports (color:color-mix(in lab,red,red)){.\!bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)!important}}.bg-\[\#1e1e1e\]{background-color:#1e1e1e}.bg-\[\#120f0d\]{background-color:#120f0d}.bg-\[\#23180f\]{background-color:#23180f}.bg-\[\#23180f\]\/30{background-color:oklab(22.0127% .0119634 .0210278/.3)}.bg-\[\#23180f\]\/50{background-color:oklab(22.0127% .0119634 .0210278/.5)}.bg-\[\#181411\]{background-color:#181411}.bg-\[\#181411\]\/80{background-color:oklab(19.4942% .00452351 .00755855/.8)}.bg-\[\#181411\]\/95{background-color:oklab(19.4942% .00452351 .00755855/.95)}.bg-\[\#252526\]{background-color:#252526}.bg-\[\#f97815\]{background-color:#f97815}.bg-\[\#f97815\]\/10{background-color:oklab(71.2065% .118574 .139854/.1)}.bg-\[\#f97815\]\/12{background-color:oklab(71.2065% .118574 .139854/.12)}.bg-\[\#f97815\]\/20{background-color:oklab(71.2065% .118574 .139854/.2)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500)10%,transparent)}}.bg-bg,.bg-bg\/80{background-color:var(--color-bg)}@supports (color:color-mix(in lab,red,red)){.bg-bg\/80{background-color:color-mix(in oklab,var(--color-bg)80%,transparent)}}.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-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/8{background-color:#3080ff14}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/8{background-color:color-mix(in oklab,var(--color-blue-500)8%,transparent)}}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500)10%,transparent)}}.bg-blue-500\/12{background-color:#3080ff1f}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/12{background-color:color-mix(in oklab,var(--color-blue-500)12%,transparent)}}.bg-border{background-color:var(--color-border)}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.bg-fuchsia-500{background-color:var(--color-fuchsia-500)}.bg-fuchsia-500\/10{background-color:#e12afb1a}@supports (color:color-mix(in lab,red,red)){.bg-fuchsia-500\/10{background-color:color-mix(in oklab,var(--color-fuchsia-500)10%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-700{background-color:var(--color-gray-700)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/10{background-color:color-mix(in oklab,var(--color-green-500)10%,transparent)}}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-lime-500{background-color:var(--color-lime-500)}.bg-orange-200\/20{background-color:#ffd7a833}@supports (color:color-mix(in lab,red,red)){.bg-orange-200\/20{background-color:color-mix(in oklab,var(--color-orange-200)20%,transparent)}}.bg-orange-400{background-color:var(--color-orange-400)}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\/10{background-color:#fe6e001a}@supports (color:color-mix(in lab,red,red)){.bg-orange-500\/10{background-color:color-mix(in oklab,var(--color-orange-500)10%,transparent)}}.bg-pink-500{background-color:var(--color-pink-500)}.bg-primary,.bg-primary\/5{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,var(--color-primary)5%,transparent)}}.bg-primary\/10{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/10{background-color:color-mix(in oklab,var(--color-purple-500)10%,transparent)}}.bg-purple-500\/15{background-color:#ac4bff26}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/15{background-color:color-mix(in oklab,var(--color-purple-500)15%,transparent)}}.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-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/20{background-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.bg-rose-500{background-color:var(--color-rose-500)}.bg-rose-500\/10{background-color:#ff23571a}@supports (color:color-mix(in lab,red,red)){.bg-rose-500\/10{background-color:color-mix(in oklab,var(--color-rose-500)10%,transparent)}}.bg-sidebar,.bg-sidebar\/50{background-color:var(--color-sidebar)}@supports (color:color-mix(in lab,red,red)){.bg-sidebar\/50{background-color:color-mix(in oklab,var(--color-sidebar)50%,transparent)}}.bg-sky-500{background-color:var(--color-sky-500)}.bg-sky-500\/10{background-color:#00a5ef1a}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/10{background-color:color-mix(in oklab,var(--color-sky-500)10%,transparent)}}.bg-surface,.bg-surface\/60{background-color:var(--color-surface)}@supports (color:color-mix(in lab,red,red)){.bg-surface\/60{background-color:color-mix(in oklab,var(--color-surface)60%,transparent)}}.bg-teal-500{background-color:var(--color-teal-500)}.bg-violet-500{background-color:var(--color-violet-500)}.bg-white{background-color:var(--color-white)}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\/5{background-color:#edb2000d}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/5{background-color:color-mix(in oklab,var(--color-yellow-500)5%,transparent)}}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/10{background-color:color-mix(in oklab,var(--color-yellow-500)10%,transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab}.bg-gradient-to-br,.bg-gradient-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-\[\#f97815\]{--tw-gradient-from:#f97815;--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))}.from-\[\#f97815\]\/5{--tw-gradient-from:oklab(71.2065% .118574 .139854/.05);--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))}.from-gray-700{--tw-gradient-from:var(--color-gray-700);--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))}.from-primary{--tw-gradient-from:var(--color-primary);--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))}.via-\[\#f97815\]{--tw-gradient-via:#f97815;--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-\[\#c2590a\]{--tw-gradient-to:#c2590a;--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-blue-500{--tw-gradient-to:var(--color-blue-500);--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-gray-700{--tw-gradient-to:var(--color-gray-700);--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-700{--tw-gradient-to:var(--color-orange-700);--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-transparent{--tw-gradient-to:transparent;--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))}.bg-cover{background-size:cover}.bg-center{background-position:50%}.bg-no-repeat{background-repeat:no-repeat}.stroke-yellow-700{stroke:var(--color-yellow-700)}.object-contain{object-fit:contain}.\!p-4{padding:calc(var(--spacing)*4)!important}.p-0\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.px-10{padding-inline:calc(var(--spacing)*10)}.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-5{padding-block:calc(var(--spacing)*5)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.py-20{padding-block:calc(var(--spacing)*20)}.py-24{padding-block:calc(var(--spacing)*24)}.py-32{padding-block:calc(var(--spacing)*32)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-16{padding-top:calc(var(--spacing)*16)}.pt-32{padding-top:calc(var(--spacing)*32)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-10{padding-right:calc(var(--spacing)*10)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pb-12{padding-bottom:calc(var(--spacing)*12)}.pb-20{padding-bottom:calc(var(--spacing)*20)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-8{padding-left:calc(var(--spacing)*8)}.pl-10{padding-left:calc(var(--spacing)*10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:Inter,ui-sans-serif,system-ui,sans-serif}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--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}.text-\[14px\]{font-size:14px}.text-\[16px\]{font-size:16px}.text-\[18px\]{font-size:18px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.text-\[32px\]{font-size:32px}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.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-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.\!text-red-500{color:var(--color-red-500)!important}.\!text-white{color:var(--color-white)!important}.text-\[\#181411\]{color:#181411}.text-\[\#f97815\]{color:#f97815}.text-amber-500{color:var(--color-amber-500)}.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-blue-800{color:var(--color-blue-800)}.text-emerald-500{color:var(--color-emerald-500)}.text-fuchsia-500{color:var(--color-fuchsia-500)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-green-400{color:var(--color-green-400)}.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-orange-500{color:var(--color-orange-500)}.text-primary{color:var(--color-primary)}.text-purple-400{color:var(--color-purple-400)}.text-purple-500{color:var(--color-purple-500)}.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-red-800{color:var(--color-red-800)}.text-rose-500{color:var(--color-rose-500)}.text-sky-500{color:var(--color-sky-500)}.text-text-main{color:var(--color-text-main)}.text-text-muted{color:var(--color-text-muted)}.text-text-muted-light{color:#75736e}.text-text-muted\/30{color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.text-text-muted\/30{color:color-mix(in oklab,var(--color-text-muted)30%,transparent)}}.text-text-muted\/60{color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.text-text-muted\/60{color:color-mix(in oklab,var(--color-text-muted)60%,transparent)}}.text-white{color:var(--color-white)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-600{color:var(--color-yellow-600)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-text-muted\/60::placeholder{color:var(--color-text-muted)}@supports (color:color-mix(in lab,red,red)){.placeholder-text-muted\/60::placeholder{color:color-mix(in oklab,var(--color-text-muted)60%,transparent)}}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-\[0\.06\]{opacity:.06}.opacity-\[0\.08\]{opacity:.08}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040)}.shadow-2xl,.shadow-\[0_0_15px_rgba\(249\,120\,21\,0\.4\)\]{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_15px_rgba\(249\,120\,21\,0\.4\)\]{--tw-shadow:0 0 15px var(--tw-shadow-color,#f9781566)}.shadow-\[0_0_20px_rgba\(249\,120\,21\,0\.5\)\]{--tw-shadow:0 0 20px var(--tw-shadow-color,#f9781580)}.shadow-\[0_0_20px_rgba\(249\,120\,21\,0\.5\)\],.shadow-\[0_0_30px_rgba\(249\,120\,21\,0\.2\)\]{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_30px_rgba\(249\,120\,21\,0\.2\)\]{--tw-shadow:0 0 30px var(--tw-shadow-color,#f9781533)}.shadow-\[0_0_40px_rgba\(249\,120\,21\,0\.3\)\]{--tw-shadow:0 0 40px var(--tw-shadow-color,#f978154d)}.shadow-\[0_0_40px_rgba\(249\,120\,21\,0\.3\)\],.shadow-elevated{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-elevated{--tw-shadow:var(--shadow-elevated)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.shadow-lg,.shadow-sm{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)}.shadow-soft{--tw-shadow:var(--shadow-soft)}.shadow-soft,.shadow-warm{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-warm{--tw-shadow:var(--shadow-warm)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a)}.ring-2,.shadow-xl{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-\[\#f97815\]\/50{--tw-ring-color:oklab(71.2065% .118574 .139854/.5)}.ring-white{--tw-ring-color:var(--color-white)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur-\[100px\]{--tw-blur:blur(100px)}.blur-\[100px\],.blur-\[120px\]{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,)}.blur-\[120px\]{--tw-blur:blur(120px)}.blur-\[130px\]{--tw-blur:blur(130px)}.blur-\[130px\],.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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md))}.backdrop-blur-md,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm))}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.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))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;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}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media (hover:hover){.group-hover\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:rotate-12:is(:where(.group):hover *){rotate:12deg}.group-hover\:border-gray-500:is(:where(.group):hover *){border-color:var(--color-gray-500)}.group-hover\:text-amber-400:is(:where(.group):hover *){color:var(--color-amber-400)}.group-hover\:text-blue-400:is(:where(.group):hover *){color:var(--color-blue-400)}.group-hover\:text-emerald-400:is(:where(.group):hover *){color:var(--color-emerald-400)}.group-hover\:text-fuchsia-400:is(:where(.group):hover *){color:var(--color-fuchsia-400)}.group-hover\:text-orange-400:is(:where(.group):hover *){color:var(--color-orange-400)}.group-hover\:text-primary:is(:where(.group):hover *){color:var(--color-primary)}.group-hover\:text-purple-400:is(:where(.group):hover *){color:var(--color-purple-400)}.group-hover\:text-rose-400:is(:where(.group):hover *){color:var(--color-rose-400)}.group-hover\:text-sky-400:is(:where(.group):hover *){color:var(--color-sky-400)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.selection\:bg-\[\#f97815\] ::selection{background-color:#f97815}.selection\:bg-\[\#f97815\]::selection{background-color:#f97815}.selection\:bg-primary\/20 ::selection{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.selection\:bg-primary\/20 ::selection{background-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.selection\:bg-primary\/20::selection{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.selection\:bg-primary\/20::selection{background-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.selection\:text-primary ::selection{color:var(--color-primary)}.selection\:text-primary::selection{color:var(--color-primary)}.selection\:text-white ::selection{color:var(--color-white)}.selection\:text-white::selection{color:var(--color-white)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:border-\[\#f97815\]\/50:hover{border-color:oklab(71.2065% .118574 .139854/.5)}.hover\:border-amber-500\/50:hover{border-color:#f99c0080}@supports (color:color-mix(in lab,red,red)){.hover\:border-amber-500\/50:hover{border-color:color-mix(in oklab,var(--color-amber-500)50%,transparent)}}.hover\:border-blue-500\/50:hover{border-color:#3080ff80}@supports (color:color-mix(in lab,red,red)){.hover\:border-blue-500\/50:hover{border-color:color-mix(in oklab,var(--color-blue-500)50%,transparent)}}.hover\:border-emerald-500\/50:hover{border-color:#00bb7f80}@supports (color:color-mix(in lab,red,red)){.hover\:border-emerald-500\/50:hover{border-color:color-mix(in oklab,var(--color-emerald-500)50%,transparent)}}.hover\:border-fuchsia-500\/50:hover{border-color:#e12afb80}@supports (color:color-mix(in lab,red,red)){.hover\:border-fuchsia-500\/50:hover{border-color:color-mix(in oklab,var(--color-fuchsia-500)50%,transparent)}}.hover\:border-orange-500\/50:hover{border-color:#fe6e0080}@supports (color:color-mix(in lab,red,red)){.hover\:border-orange-500\/50:hover{border-color:color-mix(in oklab,var(--color-orange-500)50%,transparent)}}.hover\:border-primary:hover,.hover\:border-primary\/30:hover{border-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/30:hover{border-color:color-mix(in oklab,var(--color-primary)30%,transparent)}}.hover\:border-primary\/50:hover{border-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab,var(--color-primary)50%,transparent)}}.hover\:border-purple-500\/50:hover{border-color:#ac4bff80}@supports (color:color-mix(in lab,red,red)){.hover\:border-purple-500\/50:hover{border-color:color-mix(in oklab,var(--color-purple-500)50%,transparent)}}.hover\:border-red-300:hover{border-color:var(--color-red-300)}.hover\:border-rose-500\/50:hover{border-color:#ff235780}@supports (color:color-mix(in lab,red,red)){.hover\:border-rose-500\/50:hover{border-color:color-mix(in oklab,var(--color-rose-500)50%,transparent)}}.hover\:border-sky-500\/50:hover{border-color:#00a5ef80}@supports (color:color-mix(in lab,red,red)){.hover\:border-sky-500\/50:hover{border-color:color-mix(in oklab,var(--color-sky-500)50%,transparent)}}.hover\:\!bg-red-500\/20:hover{background-color:#fb2c3633!important}@supports (color:color-mix(in lab,red,red)){.hover\:\!bg-red-500\/20:hover{background-color:color-mix(in oklab,var(--color-red-500)20%,transparent)!important}}.hover\:\!bg-red-600:hover{background-color:var(--color-red-600)!important}.hover\:bg-\[\#3a2f27\]:hover{background-color:#3a2f27}.hover\:bg-\[\#23180f\]:hover{background-color:#23180f}.hover\:bg-\[\#e0650a\]:hover{background-color:#e0650a}.hover\:bg-amber-500\/5:hover{background-color:#f99c000d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-amber-500\/5:hover{background-color:color-mix(in oklab,var(--color-amber-500)5%,transparent)}}.hover\:bg-black\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/5:hover{background-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.hover\:bg-blue-500\/5:hover{background-color:#3080ff0d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-blue-500\/5:hover{background-color:color-mix(in oklab,var(--color-blue-500)5%,transparent)}}.hover\:bg-emerald-500\/5:hover{background-color:#00bb7f0d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-emerald-500\/5:hover{background-color:color-mix(in oklab,var(--color-emerald-500)5%,transparent)}}.hover\:bg-fuchsia-500\/5:hover{background-color:#e12afb0d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-fuchsia-500\/5:hover{background-color:color-mix(in oklab,var(--color-fuchsia-500)5%,transparent)}}.hover\:bg-orange-500\/5:hover{background-color:#fe6e000d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-orange-500\/5:hover{background-color:color-mix(in oklab,var(--color-orange-500)5%,transparent)}}.hover\:bg-primary-hover:hover{background-color:var(--color-primary-hover)}.hover\:bg-primary\/5:hover{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/5:hover{background-color:color-mix(in oklab,var(--color-primary)5%,transparent)}}.hover\:bg-purple-500\/5:hover{background-color:#ac4bff0d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-purple-500\/5:hover{background-color:color-mix(in oklab,var(--color-purple-500)5%,transparent)}}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-rose-500\/5:hover{background-color:#ff23570d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-rose-500\/5:hover{background-color:color-mix(in oklab,var(--color-rose-500)5%,transparent)}}.hover\:bg-sidebar:hover,.hover\:bg-sidebar\/30:hover{background-color:var(--color-sidebar)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-sidebar\/30:hover{background-color:color-mix(in oklab,var(--color-sidebar)30%,transparent)}}.hover\:bg-sidebar\/50:hover{background-color:var(--color-sidebar)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-sidebar\/50:hover{background-color:color-mix(in oklab,var(--color-sidebar)50%,transparent)}}.hover\:bg-sky-500\/5:hover{background-color:#00a5ef0d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-sky-500\/5:hover{background-color:color-mix(in oklab,var(--color-sky-500)5%,transparent)}}.hover\:bg-surface:hover,.hover\:bg-surface\/50:hover{background-color:var(--color-surface)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-surface\/50:hover{background-color:color-mix(in oklab,var(--color-surface)50%,transparent)}}.hover\:from-primary-hover:hover{--tw-gradient-from:var(--color-primary-hover);--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))}.hover\:to-blue-600:hover{--tw-gradient-to:var(--color-blue-600);--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))}.hover\:text-\[\#f97815\]:hover{color:#f97815}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:text-text-main:hover{color:var(--color-text-main)}.hover\:text-white:hover{color:var(--color-white)}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_20px_rgba\(249\,120\,21\,0\.6\)\]:hover{--tw-shadow:0 0 20px var(--tw-shadow-color,#f9781599)}.hover\:shadow-\[0_0_20px_rgba\(249\,120\,21\,0\.6\)\]:hover,.hover\:shadow-md:hover{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.hover\:shadow-warm:hover{--tw-shadow:var(--shadow-warm);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:border-primary:focus{border-color:var(--color-primary)}.focus\:border-red-500:focus{border-color:var(--color-red-500)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.focus\:ring-1:focus,.focus\:ring-2:focus{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.focus\:ring-primary\/20:focus{--tw-ring-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.focus\:ring-primary\/20:focus{--tw-ring-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.focus\:ring-primary\/50:focus{--tw-ring-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.focus\:ring-primary\/50:focus{--tw-ring-color:color-mix(in oklab,var(--color-primary)50%,transparent)}}.focus\:ring-red-500\/20:focus{--tw-ring-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.focus\:ring-red-500\/20:focus{--tw-ring-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:scale-\[0\.98\]:active{scale:.98}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:active\:scale-100:disabled:active{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}@media (min-width:40rem){.sm\:flex{display:flex}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:p-6{padding:calc(var(--spacing)*6)}.sm\:px-6{padding-inline:calc(var(--spacing)*6)}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (min-width:48rem){.md\:mx-0{margin-inline:calc(var(--spacing)*0)}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.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\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:items-end{align-items:flex-end}.md\:text-center{text-align:center}.md\:text-right{text-align:right}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.md\:text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:p-10{padding:calc(var(--spacing)*10)}.lg\:px-8{padding-inline:calc(var(--spacing)*8)}}@media (min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.dark\:border-blue-800:where(.dark,.dark *){border-color:var(--color-blue-800)}.dark\:border-blue-800\/30:where(.dark,.dark *){border-color:#193cb84d}@supports (color:color-mix(in lab,red,red)){.dark\:border-blue-800\/30:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-blue-800)30%,transparent)}}.dark\:border-green-800\/30:where(.dark,.dark *){border-color:#0166304d}@supports (color:color-mix(in lab,red,red)){.dark\:border-green-800\/30:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-green-800)30%,transparent)}}.dark\:border-red-800:where(.dark,.dark *){border-color:var(--color-red-800)}.dark\:border-red-800\/30:where(.dark,.dark *){border-color:#9f07124d}@supports (color:color-mix(in lab,red,red)){.dark\:border-red-800\/30:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-red-800)30%,transparent)}}.dark\:border-yellow-800:where(.dark,.dark *){border-color:var(--color-yellow-800)}.dark\:border-yellow-800\/30:where(.dark,.dark *){border-color:#874b004d}@supports (color:color-mix(in lab,red,red)){.dark\:border-yellow-800\/30:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-yellow-800)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-gray-800:where(.dark,.dark *){background-color:var(--color-gray-800)}.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\/10:where(.dark,.dark *){background-color:#7e2a0c1a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-orange-900\/10:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-orange-900)10%,transparent)}}.dark\:bg-primary\/5:where(.dark,.dark *){background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-primary\/5:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-primary)5%,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\/5:where(.dark,.dark *){background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-white\/5:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.dark\:bg-yellow-900\/20:where(.dark,.dark *){background-color:#733e0a33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-yellow-900\/20:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-yellow-900)20%,transparent)}}.dark\:bg-yellow-900\/30:where(.dark,.dark *){background-color:#733e0a4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-yellow-900\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-yellow-900)30%,transparent)}}.dark\:text-blue-200:where(.dark,.dark *){color:var(--color-blue-200)}.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-gray-300:where(.dark,.dark *){color:var(--color-gray-300)}.dark\:text-green-400:where(.dark,.dark *){color:var(--color-green-400)}.dark\:text-red-200:where(.dark,.dark *){color:var(--color-red-200)}.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-yellow-200:where(.dark,.dark *){color:var(--color-yellow-200)}.dark\:text-yellow-300:where(.dark,.dark *){color:var(--color-yellow-300)}.dark\:text-yellow-400:where(.dark,.dark *){color:var(--color-yellow-400)}.dark\:text-yellow-500:where(.dark,.dark *){color:var(--color-yellow-500)}.dark\:ring-surface-dark:where(.dark,.dark *){--tw-ring-color:#242423}.dark\:focus\:ring-offset-surface-dark:where(.dark,.dark *):focus{--tw-ring-offset-color:#242423}}:root{--color-primary:#d97757;--color-primary-hover:#c56243;--color-bg:#fbf9f6;--color-bg-alt:#f5f1ed;--color-surface:#fff;--color-sidebar:#f0efec;--color-border:#e6e4dd;--color-text-main:#383733;--color-text-muted:#75736e;--shadow-soft:0 2px 10px #00000008,0 10px 25px #00000005;--shadow-warm:0 4px 20px -2px #d9775726;--shadow-elevated:0 20px 40px -4px #3c322d14}.dark{--color-bg:#191918;--color-bg-alt:#1f1f1e;--color-surface:#242423;--color-sidebar:#1f1f1e;--color-border:#333331;--color-text-main:#ecebe8;--color-text-muted:#9e9d99;--shadow-soft:0 2px 10px #0003,0 10px 25px #00000026;--shadow-warm:0 4px 20px -2px #d9775733;--shadow-elevated:0 20px 40px -4px #0006}body{background-color:var(--color-bg);color:var(--color-text-main);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{color:var(--color-primary);background-color:#d9775733}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:0 0}.custom-scrollbar::-webkit-scrollbar-thumb{background-color:#9ca3af4d;border-radius:20px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#9ca3af80}.bg-hero-gradient{background:linear-gradient(#f5f1ed,#fefcfb)}.dark .bg-hero-gradient{background:linear-gradient(#1f1f1e,#191918)}.material-symbols-outlined{font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.material-symbols-outlined.fill-1{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes border-glow{0%,to{border-color:#d9775780;box-shadow:0 0 5px #d977574d,0 0 10px #d9775733}50%{border-color:#d97757cc;box-shadow:0 0 10px #d9775780,0 0 20px #d977574d}}.animate-border-glow{animation:border-glow 2s ease-in-out infinite}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@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-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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}
@@ -6,11 +6,7 @@
6
6
  "scripts": {
7
7
  "dev": "next dev",
8
8
  "build": "next build",
9
- "build:standalone": "next build && node scripts/prepare-standalone.js",
10
- "start": "next start",
11
- "start:cli": "node bin/cli.js",
12
- "lint": "eslint",
13
- "prepublishOnly": "npm run build:standalone"
9
+ "start": "next start"
14
10
  },
15
11
  "dependencies": {
16
12
  "fs": "^0.0.1-security",
@@ -18,7 +14,6 @@
18
14
  "next": "^15.2.0",
19
15
  "node-machine-id": "^1.1.12",
20
16
  "open": "^10.1.0",
21
- "open-sse": "^1.0.0",
22
17
  "ora": "^5.4.1",
23
18
  "react": "19.2.1",
24
19
  "react-dom": "19.2.1",
@@ -26,9 +21,6 @@
26
21
  "uuid": "^13.0.0",
27
22
  "zustand": "^5.0.9"
28
23
  },
29
- "overrides": {
30
- "open-sse": "file:../open-sse"
31
- },
32
24
  "devDependencies": {
33
25
  "@tailwindcss/postcss": "^4.1.18",
34
26
  "eslint": "^9",
@@ -0,0 +1,11 @@
1
+ <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect width="32" height="32" rx="6" fill="url(#gradient)"/>
3
+ <text x="16" y="24" font-family="system-ui, -apple-system, sans-serif" font-size="20" font-weight="700" fill="white" text-anchor="middle">9</text>
4
+ <defs>
5
+ <linearGradient id="gradient" x1="0" y1="0" x2="32" y2="32" gradientUnits="userSpaceOnUse">
6
+ <stop stop-color="#f97815"/>
7
+ <stop offset="1" stop-color="#c2590a"/>
8
+ </linearGradient>
9
+ </defs>
10
+ </svg>
11
+
package/app/app/server.js CHANGED
@@ -9,7 +9,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
9
9
  const hostname = process.env.HOSTNAME || '0.0.0.0'
10
10
 
11
11
  let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
12
- const nextConfig = {"env":{"NEXT_PUBLIC_CLOUD_URL":"https://proxy.9english.net"},"eslint":{"ignoreDuringBuilds":false},"typescript":{"ignoreBuildErrors":false,"tsconfigPath":"tsconfig.json"},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.mjs","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[16,32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":60,"formats":["image/webp"],"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","remotePatterns":[],"unoptimized":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"amp":{"canonicalBase":""},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"serverRuntimeConfig":{},"publicRuntimeConfig":{},"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/Users/Working/router4","experimental":{"useSkewCookie":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":4294967294}},"cacheHandlers":{},"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"serverSourceMaps":false,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"clientSegmentCache":false,"clientParamParsing":false,"dynamicOnHover":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","middlewarePrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":7,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"viewTransition":false,"routerBFCache":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"cacheComponents":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"devtoolSegmentExplorer":true,"browserDebugInfoInTerminal":false,"optimizeRouterScrolling":false,"middlewareClientMaxBodySize":10485760,"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.mjs","turbopack":{"root":"/Users/Working/router4"},"_originalRewrites":{"beforeFiles":[],"afterFiles":[{"source":"/v1/v1/:path*","destination":"/api/v1/:path*"},{"source":"/v1/v1","destination":"/api/v1"},{"source":"/codex/:path*","destination":"/api/v1/responses"},{"source":"/v1/:path*","destination":"/api/v1/:path*"},{"source":"/v1","destination":"/api/v1"}],"fallback":[]}}
12
+ const nextConfig = {"env":{"NEXT_PUBLIC_CLOUD_URL":"https://9router.com"},"eslint":{"ignoreDuringBuilds":false},"typescript":{"ignoreBuildErrors":false,"tsconfigPath":"tsconfig.json"},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.mjs","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[16,32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":60,"formats":["image/webp"],"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","remotePatterns":[],"unoptimized":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"amp":{"canonicalBase":""},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"serverRuntimeConfig":{},"publicRuntimeConfig":{},"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/Users/Working/router4","experimental":{"useSkewCookie":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":4294967294}},"cacheHandlers":{},"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"serverSourceMaps":false,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"clientSegmentCache":false,"clientParamParsing":false,"dynamicOnHover":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","middlewarePrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":7,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"viewTransition":false,"routerBFCache":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"cacheComponents":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"devtoolSegmentExplorer":true,"browserDebugInfoInTerminal":false,"optimizeRouterScrolling":false,"middlewareClientMaxBodySize":10485760,"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.mjs","turbopack":{"root":"/Users/Working/router4"},"_originalRewrites":{"beforeFiles":[],"afterFiles":[{"source":"/v1/v1/:path*","destination":"/api/v1/:path*"},{"source":"/v1/v1","destination":"/api/v1"},{"source":"/codex/:path*","destination":"/api/v1/responses"},{"source":"/v1/:path*","destination":"/api/v1/:path*"},{"source":"/v1","destination":"/api/v1"}],"fallback":[]}}
13
13
 
14
14
  process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
15
15
 
package/app/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "9router-monorepo",
3
- "version": "0.2.14",
3
+ "version": "0.2.15",
4
4
  "private": true,
5
5
  "description": "9Router monorepo - Endpoint proxy with dashboard, CLI and worker",
6
6
  "config": {
@@ -14,17 +14,9 @@
14
14
  ],
15
15
  "scripts": {
16
16
  "dev": "npm run dev --workspace=app",
17
- "build": "npm run build --workspace=app",
18
17
  "build:cli": "node scripts/build-cli.js",
19
- "build:all": "npm run build --workspaces --if-present",
20
- "start": "npm run start --workspace=app",
21
18
  "start:cli": "node bin/cli.js",
22
- "lint": "npm run lint --workspaces --if-present",
23
- "publish:open-sse": "npm publish --workspace=open-sse",
24
- "publish:cli": "npm publish --workspace=bin",
25
- "publish:dry:open-sse": "npm publish --workspace=open-sse --dry-run",
26
- "publish:dry:cli": "npm publish --workspace=bin --dry-run",
27
- "publish": "npm run build:cli && npm run publish:cli"
19
+ "publish": "npm run build:cli && npm publish --workspace=bin"
28
20
  },
29
21
  "engines": {
30
22
  "node": ">=18.0.0"
@@ -0,0 +1,11 @@
1
+ <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect width="32" height="32" rx="6" fill="url(#gradient)"/>
3
+ <text x="16" y="24" font-family="system-ui, -apple-system, sans-serif" font-size="20" font-weight="700" fill="white" text-anchor="middle">9</text>
4
+ <defs>
5
+ <linearGradient id="gradient" x1="0" y1="0" x2="32" y2="32" gradientUnits="userSpaceOnUse">
6
+ <stop stop-color="#f97815"/>
7
+ <stop offset="1" stop-color="#c2590a"/>
8
+ </linearGradient>
9
+ </defs>
10
+ </svg>
11
+
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * ROUTER4 WebSearch Hook - Model-based WebSearch via API
3
+ * 9ROUTER WebSearch Hook - Model-based WebSearch via API
4
4
  *
5
- * Intercepts Claude's WebSearch tool and executes search via ROUTER4 API.
5
+ * Intercepts Claude's WebSearch tool and executes search via 9ROUTER API.
6
6
  * Reads configuration from ~/.claude/settings.json (set by dashboard).
7
7
  *
8
8
  * Environment Variables (from settings.json):
9
9
  * ANTHROPIC_BASE_URL - API endpoint URL
10
10
  * ANTHROPIC_AUTH_TOKEN - API authentication token
11
- * ROUTER4_WEBSEARCH_MODEL - Model to use for search (e.g., gemini/gemini-2.5-flash)
11
+ * 9ROUTER_WEBSEARCH_MODEL - Model to use for search (e.g., gemini/gemini-2.5-flash)
12
12
  *
13
13
  * Exit codes:
14
14
  * 0 - Allow tool (pass-through to native WebSearch)
@@ -66,7 +66,7 @@ function getConfig() {
66
66
  return {
67
67
  baseUrl: env.ANTHROPIC_BASE_URL || process.env.ANTHROPIC_BASE_URL,
68
68
  authToken: env.ANTHROPIC_AUTH_TOKEN || process.env.ANTHROPIC_AUTH_TOKEN,
69
- model: env.ROUTER4_WEBSEARCH_MODEL || process.env.ROUTER4_WEBSEARCH_MODEL || "gemini/gemini-2.5-flash",
69
+ model: env.9ROUTER_WEBSEARCH_MODEL || process.env.9ROUTER_WEBSEARCH_MODEL || "gemini/gemini-2.5-flash",
70
70
  };
71
71
  }
72
72
 
@@ -292,9 +292,9 @@ async function processHook() {
292
292
  return;
293
293
  }
294
294
 
295
- if (process.env.ROUTER4_DEBUG) {
296
- console.error(`[ROUTER4 Hook] Searching with model: ${config.model}`);
297
- console.error(`[ROUTER4 Hook] API URL: ${config.baseUrl}`);
295
+ if (process.env.9ROUTER_DEBUG) {
296
+ console.error(`[9ROUTER Hook] Searching with model: ${config.model}`);
297
+ console.error(`[9ROUTER Hook] API URL: ${config.baseUrl}`);
298
298
  }
299
299
 
300
300
  const result = await searchWithModel(query, config);
@@ -303,14 +303,14 @@ async function processHook() {
303
303
  outputSuccess(query, result.content, result.model);
304
304
  } else {
305
305
  // Fallback to native WebSearch when API fails
306
- if (process.env.ROUTER4_DEBUG) {
307
- console.error(`[ROUTER4 Hook] API failed: ${result.error}, falling back to native WebSearch`);
306
+ if (process.env.9ROUTER_DEBUG) {
307
+ console.error(`[9ROUTER Hook] API failed: ${result.error}, falling back to native WebSearch`);
308
308
  }
309
309
  process.exit(0);
310
310
  }
311
311
  } catch (err) {
312
- if (process.env.ROUTER4_DEBUG) {
313
- console.error("[ROUTER4 Hook] Parse error:", err.message);
312
+ if (process.env.9ROUTER_DEBUG) {
313
+ console.error("[9ROUTER Hook] Parse error:", err.message);
314
314
  }
315
315
  // Fallback to native WebSearch on any error
316
316
  process.exit(0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "9router",
3
- "version": "0.2.14",
3
+ "version": "0.2.15",
4
4
  "description": "9Router CLI - Start and manage 9Router server",
5
5
  "bin": {
6
6
  "9router": "./cli.js"
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1108],{1108:(t,e,o)=>{o.r(e);var n=o(7895),s=o(235),r=o(334),l=o(5593);function a(t,e,o){let n={contents:[],generationConfig:{}};if(e.max_tokens&&(n.generationConfig.maxOutputTokens=e.max_tokens),void 0!==e.temperature&&(n.generationConfig.temperature=e.temperature),void 0!==e.top_p&&(n.generationConfig.topP=e.top_p),e.messages&&Array.isArray(e.messages))for(let t of e.messages)if("system"===t.role)n.systemInstruction={parts:[{text:"string"==typeof t.content?t.content:i(t.content)}]};else if("tool"===t.role)n.contents.push({role:"function",parts:[{functionResponse:{name:t.tool_call_id,response:c(t.content)}}]});else{let e=function(t){let e="assistant"===t.role?"model":"user",o=[];if("string"==typeof t.content)t.content&&o.push({text:t.content});else if(Array.isArray(t.content)){for(let e of t.content)if("text"===e.type)o.push({text:e.text});else if("image_url"===e.type){let t=e.image_url.url;if(t.startsWith("data:")){let e=t.match(/^data:([^;]+);base64,(.+)$/);e&&o.push({inlineData:{mimeType:e[1],data:e[2]}})}}}if(t.tool_calls&&Array.isArray(t.tool_calls))for(let e of t.tool_calls)o.push({functionCall:{name:e.function.name,args:c(e.function.arguments)}});return 0===o.length?null:{role:e,parts:o}}(t);e&&n.contents.push(e)}if(e.tools&&Array.isArray(e.tools)){let t=e.tools.filter(t=>t&&t.function&&t.function.name);t.length>0&&(n.tools=[{functionDeclarations:t.map(t=>({name:t.function.name,description:t.function.description||"",parameters:t.function.parameters||{type:"object",properties:{}}}))}])}return n}function i(t){return"string"==typeof t?t:Array.isArray(t)?t.filter(t=>"text"===t.type).map(t=>t.text).join("\n"):""}function c(t){if("string"!=typeof t)return t;try{return JSON.parse(t)}catch(e){return t}}(0,n.kz)(s.h.OPENAI,s.h.CLAUDE,function(t,e,o){var n;let s={model:t,max_tokens:(0,l.M)(e),stream:o};void 0!==e.temperature&&(s.temperature=e.temperature),s.messages=[];let a=[];if(e.messages&&Array.isArray(e.messages)){let t;for(let t of e.messages)"system"===t.role&&a.push("string"==typeof t.content?t.content:i(t.content));let o=e.messages.filter(t=>"system"!==t.role),n=[],r=()=>{t&&n.length>0&&(s.messages.push({role:t,content:n}),n=[])};for(let e of o){let o="user"===e.role||"tool"===e.role?"user":"assistant",l=function(t){let e=[];if("tool"===t.role)e.push({type:"tool_result",tool_use_id:t.tool_call_id,content:t.content});else if("user"===t.role){if("string"==typeof t.content)t.content&&e.push({type:"text",text:t.content});else if(Array.isArray(t.content))for(let o of t.content)if("text"===o.type&&o.text)e.push({type:"text",text:o.text});else if("tool_result"===o.type)e.push({type:"tool_result",tool_use_id:o.tool_use_id,content:o.content,...o.is_error&&{is_error:o.is_error}});else if("image_url"===o.type){let t=o.image_url.url.match(/^data:([^;]+);base64,(.+)$/);t&&e.push({type:"image",source:{type:"base64",media_type:t[1],data:t[2]}})}else"image"===o.type&&o.source&&e.push({type:"image",source:o.source})}else if("assistant"===t.role){if(Array.isArray(t.content))for(let o of t.content)"text"===o.type&&o.text?e.push({type:"text",text:o.text}):"tool_use"===o.type&&e.push({type:"tool_use",id:o.id,name:o.name,input:o.input});else if(t.content){let o="string"==typeof t.content?t.content:i(t.content);o&&e.push({type:"text",text:o})}if(t.tool_calls&&Array.isArray(t.tool_calls))for(let o of t.tool_calls)"function"===o.type&&e.push({type:"tool_use",id:o.id,name:o.function.name,input:c(o.function.arguments)})}return e}(e),a=l.some(t=>"tool_use"===t.type);if(l.some(t=>"tool_result"===t.type)){let e=l.filter(t=>"tool_result"===t.type),a=l.filter(t=>"tool_result"!==t.type);r(),e.length>0&&s.messages.push({role:"user",content:e}),a.length>0&&(t=o,n.push(...a));continue}t!==o&&(r(),t=o),n.push(...l),a&&r()}r();for(let t=s.messages.length-1;t>=0;t--){let e=s.messages[t];if("assistant"===e.role&&Array.isArray(e.content)&&e.content.length>0){let t=e.content[e.content.length-1];if(t){t.cache_control={type:"ephemeral"};break}}}}let u={type:"text",text:r.Co};return a.length>0?s.system=[u,{type:"text",text:a.join("\n"),cache_control:{type:"ephemeral",ttl:"1h"}}]:s.system=[u],e.tools&&Array.isArray(e.tools)&&(s.tools=e.tools.map(t=>{let e="function"===t.type&&t.function?t.function:t;return{name:e.name,description:e.description||"",input_schema:e.parameters||e.input_schema||{type:"object",properties:{},required:[]}}}),s.tools.length>0&&(s.tools[s.tools.length-1].cache_control={type:"ephemeral",ttl:"1h"})),e.tool_choice&&(s.tool_choice=(n=e.tool_choice)?"object"==typeof n&&n.type?n:"auto"===n||"none"===n?{type:"auto"}:"required"===n?{type:"any"}:"object"==typeof n&&n.function?{type:"tool",name:n.function.name}:{type:"auto"}:{type:"auto"}),s},null),(0,n.kz)(s.h.OPENAI,s.h.GEMINI,a,null),(0,n.kz)(s.h.OPENAI,s.h.GEMINI_CLI,a,null)},5593:(t,e,o)=>{o.d(e,{M:()=>s});var n=o(334);function s(t){let e=t.max_tokens||n.Uc;return t.tools&&Array.isArray(t.tools)&&t.tools.length>0&&e<n.eo&&(console.log("[AUTO-ADJUST] max_tokens: ".concat(e," → ").concat(n.eo," (tool calling detected)")),e=n.eo),e}}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1393],{1393:(e,s,l)=>{Promise.resolve().then(l.bind(l,1902))},1902:(e,s,l)=>{"use strict";l.d(s,{default:()=>d});var t=l(5155),a=l(2115),i=l(4244),n=l(2694);let r="https://proxy.9english.net";function d(e){let{machineId:s}=e,[l,d]=(0,a.useState)([]),[c,o]=(0,a.useState)(!0),[x,m]=(0,a.useState)(!1),[h,y]=(0,a.useState)(""),[p,u]=(0,a.useState)(null),[b,g]=(0,a.useState)(!1),[f,j]=(0,a.useState)(!1),[N,v]=(0,a.useState)(!1),[k,w]=(0,a.useState)(!1),[C,S]=(0,a.useState)(null),[_,E]=(0,a.useState)(""),{copied:P,copy:O}=(0,n.C)();(0,a.useEffect)(()=>{A(),$()},[]);let $=async()=>{try{let e=await fetch("/api/settings");if(e.ok){let s=await e.json();g(s.cloudEnabled||!1)}}catch(e){console.log("Error loading cloud settings:",e)}},A=async()=>{try{let e=await fetch("/api/keys"),s=await e.json();e.ok&&d(s.keys||[])}catch(e){console.log("Error fetching data:",e)}finally{o(!1)}},D=e=>{e?j(!0):v(!0)},T=async()=>{w(!0),E("syncing");try{let e=await fetch("/api/sync/cloud",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({machineId:s,action:"enable"})}),l=await e.json();e.ok?(E("verifying"),l.verified?(g(!0),S({type:"success",message:"Cloud Proxy connected and verified!"})):(g(!0),S({type:"warning",message:l.verifyError||"Connected but verification failed"})),j(!1),l.createdKey&&await A()):S({type:"error",message:l.error||"Failed to enable cloud"})}catch(e){S({type:"error",message:e.message})}finally{w(!1),E("")}},W=async()=>{w(!0),E("syncing");try{await fetch("/api/sync/cloud",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({machineId:s,action:"sync"})}),E("disabling"),(await fetch("/api/sync/cloud",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({machineId:s,action:"disable"})})).ok&&(g(!1),S({type:"success",message:"Cloud disabled"}),v(!1))}catch(e){console.log("Error disabling cloud:",e),S({type:"error",message:"Failed to disable cloud"})}finally{w(!1),E("")}},I=async()=>{if(h.trim())try{let e=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:h})}),s=await e.json();e.ok&&(u(s.key),await A(),y(""),m(!1))}catch(e){console.log("Error creating key:",e)}},K=async e=>{if(confirm("Delete this API key?"))try{(await fetch("/api/keys/".concat(e),{method:"DELETE"})).ok&&d(l.filter(s=>s.id!==e))}catch(e){console.log("Error deleting key:",e)}};"localhost"===window.location.hostname||window.location.hostname;let F="".concat(window.location.origin,"/v1");if("".concat(r,"/").concat(s,"/v1"),c)return(0,t.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,t.jsx)(i.Qv,{}),(0,t.jsx)(i.Qv,{})]});let J=b?"".concat(r,"/v1"):F;return(0,t.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,t.jsxs)(i.Zp,{className:"",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold",children:"API Endpoint"}),(0,t.jsx)("p",{className:"text-sm text-text-muted",children:b?"Using Cloud Proxy":"Using Local Server"})]}),(0,t.jsx)("div",{className:"flex items-center gap-2",children:b?(0,t.jsx)(i.$n,{size:"sm",variant:"secondary",icon:"cloud_off",onClick:()=>D(!1),disabled:k,className:"!bg-red-500/10 !text-red-500 hover:!bg-red-500/20 !border-red-500/30",children:"Disable Cloud"}):(0,t.jsx)(i.$n,{variant:"primary",icon:"cloud_upload",onClick:()=>D(!0),disabled:k,className:"bg-gradient-to-r from-primary to-blue-500 hover:from-primary-hover hover:to-blue-600",children:"Enable Cloud"})})]}),(0,t.jsxs)("div",{className:"flex gap-2 mb-3",children:[(0,t.jsx)(i.pd,{value:J,readOnly:!0,className:"flex-1 font-mono text-sm ".concat(b?"animate-border-glow":"")}),(0,t.jsx)(i.$n,{variant:"secondary",icon:"endpoint_url"===P?"check":"content_copy",onClick:()=>O(J,"endpoint_url"),children:"endpoint_url"===P?"Copied!":"Copy"})]})]}),(0,t.jsxs)(i.Zp,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsx)("h2",{className:"text-lg font-semibold",children:"API Keys"}),(0,t.jsx)(i.$n,{icon:"add",onClick:()=>m(!0),children:"Create Key"})]}),0===l.length?(0,t.jsxs)("div",{className:"text-center py-8",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-4xl text-text-muted mb-2",children:"vpn_key"}),(0,t.jsx)("p",{className:"text-sm text-text-muted",children:"No API keys yet"})]}):(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"border-b border-border",children:[(0,t.jsx)("th",{className:"text-left p-3 font-medium",children:"Name"}),(0,t.jsx)("th",{className:"text-left p-3 font-medium",children:"Key"}),(0,t.jsx)("th",{className:"text-left p-3 font-medium",children:"Created"}),(0,t.jsx)("th",{className:"text-left p-3 font-medium",children:"Actions"})]})}),(0,t.jsx)("tbody",{children:l.map(e=>(0,t.jsxs)("tr",{className:"border-b border-border hover:bg-sidebar/30",children:[(0,t.jsx)("td",{className:"p-3 text-sm",children:e.name}),(0,t.jsx)("td",{className:"p-3",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"font-mono text-xs text-text-muted",children:e.key}),(0,t.jsx)(i.$n,{size:"sm",variant:"ghost",icon:P===e.id?"check":"content_copy",onClick:()=>O(e.key,e.id)})]})}),(0,t.jsx)("td",{className:"p-3 text-sm text-text-muted",children:new Date(e.createdAt).toLocaleDateString()}),(0,t.jsx)("td",{className:"p-3",children:(0,t.jsx)(i.$n,{size:"sm",variant:"ghost",icon:"delete",className:"text-red-500",onClick:()=>K(e.id),children:"Delete"})})]},e.id))})]})})]}),!1,(0,t.jsx)(i.aF,{isOpen:f,title:"Enable Cloud Proxy",onClose:()=>j(!1),children:(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-4",children:[(0,t.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200 font-medium mb-2",children:"What you will get"}),(0,t.jsxs)("ul",{className:"text-sm text-blue-700 dark:text-blue-300 space-y-1",children:[(0,t.jsx)("li",{children:"• Access your API from anywhere in the world"}),(0,t.jsx)("li",{children:"• Share endpoint with your team easily"}),(0,t.jsx)("li",{children:"• No need to open ports or configure firewall"}),(0,t.jsx)("li",{children:"• Fast global edge network"})]})]}),(0,t.jsxs)("div",{className:"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4",children:[(0,t.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 font-medium mb-1",children:"Note"}),(0,t.jsxs)("ul",{className:"text-sm text-yellow-700 dark:text-yellow-300 space-y-1",children:[(0,t.jsx)("li",{children:"• Cloud will keep your auth session for 1 day. If not used, it will be automatically deleted."}),(0,t.jsx)("li",{children:"• Cloud is currently unstable with Claude Code OAuth in some cases."})]})]}),k&&(0,t.jsxs)("div",{className:"flex items-center gap-3 p-3 bg-primary/10 border border-primary/30 rounded-lg",children:[(0,t.jsx)("span",{className:"material-symbols-outlined animate-spin text-primary",children:"progress_activity"}),(0,t.jsx)("div",{className:"flex-1",children:(0,t.jsxs)("p",{className:"text-sm font-medium text-primary",children:["syncing"===_&&"Syncing data to cloud...","verifying"===_&&"Verifying connection..."]})})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(i.$n,{onClick:T,fullWidth:!0,disabled:k,children:k?(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"syncing"===_?"Syncing...":"Verifying..."]}):"Enable Cloud"}),(0,t.jsx)(i.$n,{onClick:()=>j(!1),variant:"ghost",fullWidth:!0,disabled:k,children:"Cancel"})]})]})}),(0,t.jsx)(i.aF,{isOpen:x,title:"Create API Key",onClose:()=>{m(!1),y("")},children:(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsx)(i.pd,{label:"Key Name",value:h,onChange:e=>y(e.target.value),placeholder:"Production Key"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(i.$n,{onClick:I,fullWidth:!0,disabled:!h.trim(),children:"Create"}),(0,t.jsx)(i.$n,{onClick:()=>{m(!1),y("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,t.jsx)(i.aF,{isOpen:!!p,title:"API Key Created",onClose:()=>u(null),children:(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4",children:[(0,t.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 mb-2 font-medium",children:"Save this key now!"}),(0,t.jsx)("p",{className:"text-sm text-yellow-700 dark:text-yellow-300",children:"This is the only time you will see this key. Store it securely."})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(i.pd,{value:p||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,t.jsx)(i.$n,{variant:"secondary",icon:"created_key"===P?"check":"content_copy",onClick:()=>O(p,"created_key"),children:"created_key"===P?"Copied!":"Copy"})]}),(0,t.jsx)(i.$n,{onClick:()=>u(null),fullWidth:!0,children:"Done"})]})}),(0,t.jsx)(i.aF,{isOpen:N,title:"Disable Cloud Proxy",onClose:()=>!k&&v(!1),children:(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4",children:(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-red-600 dark:text-red-400",children:"warning"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm text-red-800 dark:text-red-200 font-medium mb-1",children:"Warning"}),(0,t.jsx)("p",{className:"text-sm text-red-700 dark:text-red-300",children:"All auth sessions will be deleted from cloud."})]})]})}),k&&(0,t.jsxs)("div",{className:"flex items-center gap-3 p-3 bg-primary/10 border border-primary/30 rounded-lg",children:[(0,t.jsx)("span",{className:"material-symbols-outlined animate-spin text-primary",children:"progress_activity"}),(0,t.jsx)("div",{className:"flex-1",children:(0,t.jsxs)("p",{className:"text-sm font-medium text-primary",children:["syncing"===_&&"Syncing latest data...","disabling"===_&&"Disabling cloud..."]})})]}),(0,t.jsx)("p",{className:"text-sm text-text-muted",children:"Are you sure you want to disable cloud proxy?"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(i.$n,{onClick:W,fullWidth:!0,disabled:k,className:"!bg-red-500 hover:!bg-red-600 !text-white",children:k?(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"syncing"===_?"Syncing...":"Disabling..."]}):"Disable Cloud"}),(0,t.jsx)(i.$n,{onClick:()=>v(!1),variant:"ghost",fullWidth:!0,disabled:k,children:"Cancel"})]})]})})]})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[252],{252:(e,t,s)=>{s.r(t),s.d(t,{default:()=>j});var r=s(5155),a=s(8661),l=s.n(a),o=s(2115),n=s(63);function i(){let[e,t]=(0,o.useState)(!1),s=(0,n.useRouter)();return(0,r.jsxs)("nav",{className:"fixed top-0 z-50 w-full bg-[#181411]/80 backdrop-blur-md border-b border-[#3a2f27]",children:[(0,r.jsxs)("div",{className:"max-w-7xl mx-auto px-6 h-16 flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 cursor-pointer",onClick:()=>s.push("/"),children:[(0,r.jsx)("div",{className:"size-8 rounded bg-gradient-to-br from-[#f97815] to-orange-700 flex items-center justify-center text-white",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"hub"})}),(0,r.jsx)("h2",{className:"text-white text-xl font-bold tracking-tight",children:"9Router"})]}),(0,r.jsxs)("div",{className:"hidden md:flex items-center gap-8",children:[(0,r.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"#features",children:"Features"}),(0,r.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"#how-it-works",children:"How it Works"}),(0,r.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"https://github.com/decolua/9router#readme",target:"_blank",rel:"noopener noreferrer",children:"Docs"}),(0,r.jsxs)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors flex items-center gap-1",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:["GitHub ",(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"open_in_new"})]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-4",children:[(0,r.jsx)("button",{onClick:()=>s.push("/dashboard"),className:"hidden sm:flex h-9 items-center justify-center rounded-lg px-4 bg-[#f97815] hover:bg-[#e0650a] transition-all text-[#181411] text-sm font-bold shadow-[0_0_15px_rgba(249,120,21,0.4)] hover:shadow-[0_0_20px_rgba(249,120,21,0.6)]",children:"Get Started"}),(0,r.jsx)("button",{className:"md:hidden text-white",onClick:()=>t(!e),children:(0,r.jsx)("span",{className:"material-symbols-outlined",children:e?"close":"menu"})})]})]}),e&&(0,r.jsx)("div",{className:"md:hidden border-t border-[#3a2f27] bg-[#181411]/95 backdrop-blur-md",children:(0,r.jsxs)("div",{className:"flex flex-col gap-4 p-6",children:[(0,r.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"#features",onClick:()=>t(!1),children:"Features"}),(0,r.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"#how-it-works",onClick:()=>t(!1),children:"How it Works"}),(0,r.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"https://github.com/decolua/9router#readme",target:"_blank",rel:"noopener noreferrer",children:"Docs"}),(0,r.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:"GitHub"}),(0,r.jsx)("button",{onClick:()=>s.push("/dashboard"),className:"h-9 rounded-lg bg-[#f97815] hover:bg-[#e0650a] text-[#181411] text-sm font-bold",children:"Get Started"})]})})]})}function d(){return(0,r.jsxs)("section",{className:"relative pt-32 pb-20 px-6 min-h-[90vh] flex flex-col items-center justify-center overflow-hidden",children:[(0,r.jsx)("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[1000px] h-[500px] bg-[#f97815]/10 rounded-full blur-[120px] pointer-events-none"}),(0,r.jsxs)("div",{className:"relative z-10 max-w-4xl w-full text-center flex flex-col items-center gap-8",children:[(0,r.jsxs)("div",{className:"inline-flex items-center gap-2 rounded-full border border-[#3a2f27] bg-[#23180f]/50 px-3 py-1 text-xs font-medium text-[#f97815]",children:[(0,r.jsx)("span",{className:"flex h-2 w-2 rounded-full bg-[#f97815] animate-pulse"}),"v1.0 is now live"]}),(0,r.jsxs)("h1",{className:"text-5xl md:text-7xl font-black leading-[1.1] tracking-tight",children:["One Endpoint for ",(0,r.jsx)("br",{}),(0,r.jsx)("span",{className:"text-[#f97815]",children:"All AI Providers"})]}),(0,r.jsx)("p",{className:"text-lg md:text-xl text-gray-400 max-w-2xl mx-auto font-light",children:"AI endpoint proxy with web dashboard - A JavaScript port of CLIProxyAPI. Works seamlessly with Claude Code, OpenAI Codex, Cline, RooCode, and other CLI tools."}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-4 w-full",children:[(0,r.jsxs)("button",{className:"h-12 px-8 rounded-lg bg-[#f97815] hover:bg-[#e0650a] text-[#181411] text-base font-bold transition-all shadow-[0_0_15px_rgba(249,120,21,0.4)] flex items-center gap-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined",children:"rocket_launch"}),"Get Started"]}),(0,r.jsxs)("a",{href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",className:"h-12 px-8 rounded-lg border border-[#3a2f27] bg-[#23180f] hover:bg-[#3a2f27] text-white text-base font-bold transition-all flex items-center gap-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined",children:"code"}),"View on GitHub"]})]})]})]})}var c=s(5239);let x=[{id:"claude",name:"Claude Code",image:"/providers/claude.png"},{id:"codex",name:"OpenAI Codex",image:"/providers/codex.png"},{id:"cline",name:"Cline",image:"/providers/cline.png"},{id:"cursor",name:"Cursor",image:"/providers/cursor.png"}],m=[{id:"openai",name:"OpenAI",color:"bg-emerald-500",textColor:"text-white"},{id:"anthropic",name:"Anthropic",color:"bg-orange-400",textColor:"text-white"},{id:"gemini",name:"Gemini",color:"bg-blue-500",textColor:"text-white"},{id:"github",name:"GitHub Copilot",color:"bg-gray-700",textColor:"text-white"}];function h(){let[e,t]=(0,o.useState)(0);return(0,o.useEffect)(()=>{let e=setInterval(()=>{t(e=>(e+1)%m.length)},2e3);return()=>clearInterval(e)},[]),(0,r.jsxs)("div",{className:"mt-16 w-full max-w-4xl relative h-[360px] hidden md:flex items-center justify-center animate-[float_6s_ease-in-out_infinite]",children:[(0,r.jsxs)("div",{className:"relative z-20 w-32 h-32 rounded-full bg-[#23180f] border-2 border-[#f97815] shadow-[0_0_40px_rgba(249,120,21,0.3)] flex flex-col items-center justify-center gap-1 group cursor-pointer hover:scale-105 transition-transform duration-500",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-4xl text-[#f97815]",children:"hub"}),(0,r.jsx)("span",{className:"text-xs font-bold text-white tracking-widest uppercase",children:"9Router"}),(0,r.jsx)("div",{className:"absolute inset-0 rounded-full border border-[#f97815]/30 animate-ping opacity-20"})]}),(0,r.jsx)("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 flex flex-col gap-7",children:x.map(e=>(0,r.jsx)("div",{className:"flex items-center gap-3 opacity-70 hover:opacity-100 transition-opacity group",children:(0,r.jsx)("div",{className:"w-16 h-16 rounded-2xl bg-[#23180f] border border-[#3a2f27] flex items-center justify-center overflow-hidden p-2 hover:border-[#f97815]/50 transition-all hover:scale-105",children:(0,r.jsx)(c.default,{src:e.image,alt:e.name,width:48,height:48,className:"object-contain rounded-xl"})})},e.id))}),(0,r.jsxs)("svg",{className:"absolute inset-0 w-full h-full z-10 pointer-events-none stroke-yellow-700",xmlns:"http://www.w3.org/2000/svg",children:[(0,r.jsx)("path",{className:"animate-[dash_2s_linear_infinite]",d:"M 60 50 C 250 70, 250 180, 360 180",fill:"none",strokeDasharray:"5,5",strokeWidth:"2"}),(0,r.jsx)("path",{className:"animate-[dash_2s_linear_infinite]",d:"M 60 140 C 250 140, 250 180, 360 180",fill:"none",strokeDasharray:"5,5",strokeWidth:"2"}),(0,r.jsx)("path",{className:"animate-[dash_2s_linear_infinite]",d:"M 60 210 C 250 210, 250 180, 360 180",fill:"none",strokeDasharray:"5,5",strokeWidth:"2"}),(0,r.jsx)("path",{className:"animate-[dash_2s_linear_infinite]",d:"M 60 300 C 250 280, 250 180, 360 180",fill:"none",strokeDasharray:"5,5",strokeWidth:"2"})]}),(0,r.jsxs)("svg",{className:"absolute inset-0 w-full h-full z-10 pointer-events-none",xmlns:"http://www.w3.org/2000/svg",children:[(0,r.jsx)("path",{d:"M 440 180 C 550 180, 550 50, 740 50",fill:"none",stroke:0===e?"#f97815":"rgb(75, 85, 99)",strokeWidth:0===e?"3":"2",className:0===e?"animate-pulse":""}),(0,r.jsx)("path",{d:"M 440 180 C 550 180, 550 130, 740 130",fill:"none",stroke:1===e?"#f97815":"rgb(75, 85, 99)",strokeWidth:1===e?"3":"2",className:1===e?"animate-pulse":""}),(0,r.jsx)("path",{d:"M 440 180 C 550 180, 550 230, 740 230",fill:"none",stroke:2===e?"#f97815":"rgb(75, 85, 99)",strokeWidth:2===e?"3":"2",className:2===e?"animate-pulse":""}),(0,r.jsx)("path",{d:"M 440 180 C 550 180, 550 310, 740 310",fill:"none",stroke:3===e?"#f97815":"rgb(75, 85, 99)",strokeWidth:3===e?"3":"2",className:3===e?"animate-pulse":""})]}),(0,r.jsx)("div",{className:"absolute right-0 top-0 bottom-0 flex flex-col justify-between py-6",children:m.map((t,s)=>(0,r.jsx)("div",{className:"px-4 py-2 rounded-lg ".concat(t.color," ").concat(t.textColor," flex items-center justify-center font-bold text-xs shadow-lg hover:scale-110 transition-all cursor-help min-w-[140px] ").concat(e===s?"ring-4 ring-[#f97815]/50 scale-110":""),title:t.name,children:t.name},t.id))}),(0,r.jsx)("div",{className:"md:hidden mt-8 w-full p-4 rounded-lg bg-[#23180f] border border-[#3a2f27]",children:(0,r.jsx)("p",{className:"text-sm text-center text-gray-400",children:"Interactive diagram visible on desktop"})})]})}function f(){return(0,r.jsx)("section",{className:"py-24 border-y border-[#3a2f27] bg-[#23180f]/30",id:"how-it-works",children:(0,r.jsxs)("div",{className:"max-w-7xl mx-auto px-6",children:[(0,r.jsxs)("div",{className:"mb-16",children:[(0,r.jsx)("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"How 9Router Works"}),(0,r.jsx)("p",{className:"text-gray-400 max-w-xl text-lg",children:"Data flows seamlessly from your application through our intelligent routing layer to the best provider for the job."})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-8 relative",children:[(0,r.jsx)("div",{className:"hidden md:block absolute top-12 left-[16%] right-[16%] h-[2px] bg-gradient-to-r from-gray-700 via-[#f97815] to-gray-700 -z-10"}),(0,r.jsxs)("div",{className:"flex flex-col gap-6 relative group",children:[(0,r.jsx)("div",{className:"w-24 h-24 rounded-2xl bg-[#181411] border border-[#3a2f27] flex items-center justify-center shadow-xl group-hover:border-gray-500 transition-colors z-10 mx-auto md:mx-0",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-4xl text-gray-300",children:"terminal"})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-xl font-bold mb-2",children:"1. CLI & SDKs"}),(0,r.jsx)("p",{className:"text-sm text-gray-400",children:"Your requests start from your favorite tools or our unified SDK. Just change the base URL."})]})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-6 relative group md:items-center md:text-center",children:[(0,r.jsx)("div",{className:"w-24 h-24 rounded-2xl bg-[#181411] border-2 border-[#f97815] flex items-center justify-center shadow-[0_0_30px_rgba(249,120,21,0.2)] z-10 mx-auto",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-4xl text-[#f97815] animate-pulse",children:"hub"})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-xl font-bold mb-2 text-[#f97815]",children:"2. 9Router Hub"}),(0,r.jsx)("p",{className:"text-sm text-gray-400",children:"Our engine analyzes the prompt, checks provider health, and routes for lowest latency or cost."})]})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-6 relative group md:items-end md:text-right",children:[(0,r.jsx)("div",{className:"w-24 h-24 rounded-2xl bg-[#181411] border border-[#3a2f27] flex items-center justify-center shadow-xl group-hover:border-gray-500 transition-colors z-10 mx-auto md:mx-0",children:(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,r.jsx)("div",{className:"w-6 h-6 rounded bg-white/10"}),(0,r.jsx)("div",{className:"w-6 h-6 rounded bg-white/10"}),(0,r.jsx)("div",{className:"w-6 h-6 rounded bg-white/10"}),(0,r.jsx)("div",{className:"w-6 h-6 rounded bg-white/10"})]})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-xl font-bold mb-2",children:"3. AI Providers"}),(0,r.jsx)("p",{className:"text-sm text-gray-400",children:"The request is fulfilled by OpenAI, Anthropic, Gemini, or others instantly."})]})]})]})]})})}let u=[{icon:"link",title:"Unified Endpoint",desc:"Access all providers via a single standard API URL.",colors:{border:"hover:border-blue-500/50",bg:"hover:bg-blue-500/5",iconBg:"bg-blue-500/10",iconText:"text-blue-500",titleHover:"group-hover:text-blue-400"}},{icon:"bolt",title:"Easy Setup",desc:"Get up and running in minutes with npx command.",colors:{border:"hover:border-orange-500/50",bg:"hover:bg-orange-500/5",iconBg:"bg-orange-500/10",iconText:"text-orange-500",titleHover:"group-hover:text-orange-400"}},{icon:"shield_with_heart",title:"Model Fallback",desc:"Automatically switch providers on failure or high latency.",colors:{border:"hover:border-rose-500/50",bg:"hover:bg-rose-500/5",iconBg:"bg-rose-500/10",iconText:"text-rose-500",titleHover:"group-hover:text-rose-400"}},{icon:"monitoring",title:"Usage Tracking",desc:"Detailed analytics and cost monitoring across all models.",colors:{border:"hover:border-purple-500/50",bg:"hover:bg-purple-500/5",iconBg:"bg-purple-500/10",iconText:"text-purple-500",titleHover:"group-hover:text-purple-400"}},{icon:"key",title:"OAuth & API Keys",desc:"Securely manage credentials in one vault.",colors:{border:"hover:border-amber-500/50",bg:"hover:bg-amber-500/5",iconBg:"bg-amber-500/10",iconText:"text-amber-500",titleHover:"group-hover:text-amber-400"}},{icon:"cloud_sync",title:"Cloud Sync",desc:"Sync your configurations across devices instantly.",colors:{border:"hover:border-sky-500/50",bg:"hover:bg-sky-500/5",iconBg:"bg-sky-500/10",iconText:"text-sky-500",titleHover:"group-hover:text-sky-400"}},{icon:"terminal",title:"CLI Support",desc:"Works with Claude Code, Codex, Cline, Cursor, and more.",colors:{border:"hover:border-emerald-500/50",bg:"hover:bg-emerald-500/5",iconBg:"bg-emerald-500/10",iconText:"text-emerald-500",titleHover:"group-hover:text-emerald-400"}},{icon:"dashboard",title:"Dashboard",desc:"Visual dashboard for real-time traffic analysis.",colors:{border:"hover:border-fuchsia-500/50",bg:"hover:bg-fuchsia-500/5",iconBg:"bg-fuchsia-500/10",iconText:"text-fuchsia-500",titleHover:"group-hover:text-fuchsia-400"}}];function b(){return(0,r.jsx)("section",{className:"py-24 px-6",id:"features",children:(0,r.jsxs)("div",{className:"max-w-7xl mx-auto",children:[(0,r.jsxs)("div",{className:"mb-16",children:[(0,r.jsx)("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Powerful Features"}),(0,r.jsx)("p",{className:"text-gray-400 max-w-xl text-lg",children:"Everything you need to manage your AI infrastructure in one place, built for scale."})]}),(0,r.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:u.map(e=>(0,r.jsxs)("div",{className:"p-6 rounded-xl bg-[#23180f] border border-[#3a2f27] ".concat(e.colors.border," ").concat(e.colors.bg," transition-all duration-300 group"),children:[(0,r.jsx)("div",{className:"w-10 h-10 rounded-lg ".concat(e.colors.iconBg," flex items-center justify-center mb-4 ").concat(e.colors.iconText," group-hover:scale-110 transition-transform duration-300"),children:(0,r.jsx)("span",{className:"material-symbols-outlined",children:e.icon})}),(0,r.jsx)("h3",{className:"text-lg font-bold mb-2 ".concat(e.colors.titleHover," transition-colors"),children:e.title}),(0,r.jsx)("p",{className:"text-sm text-gray-400 leading-relaxed",children:e.desc})]},e.title))})]})})}function g(){let[e,t]=(0,o.useState)(!1);return(0,r.jsx)("section",{className:"py-24 px-6 bg-[#120f0d]",children:(0,r.jsx)("div",{className:"max-w-7xl mx-auto",children:(0,r.jsxs)("div",{className:"flex flex-col lg:flex-row gap-16 items-start",children:[(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)("h2",{className:"text-3xl md:text-4xl font-bold mb-6",children:"Get Started in 30 Seconds"}),(0,r.jsx)("p",{className:"text-gray-400 text-lg mb-8",children:"Install 9Router, configure your providers via web dashboard, and start routing AI requests."}),(0,r.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,r.jsxs)("div",{className:"flex gap-4",children:[(0,r.jsx)("div",{className:"flex-none w-8 h-8 rounded-full bg-[#f97815]/20 text-[#f97815] flex items-center justify-center font-bold",children:"1"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"font-bold text-lg",children:"Install 9Router"}),(0,r.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Run npx command to start the server instantly"})]})]}),(0,r.jsxs)("div",{className:"flex gap-4",children:[(0,r.jsx)("div",{className:"flex-none w-8 h-8 rounded-full bg-[#f97815]/20 text-[#f97815] flex items-center justify-center font-bold",children:"2"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"font-bold text-lg",children:"Open Dashboard"}),(0,r.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Configure providers and API keys via web interface"})]})]}),(0,r.jsxs)("div",{className:"flex gap-4",children:[(0,r.jsx)("div",{className:"flex-none w-8 h-8 rounded-full bg-[#f97815]/20 text-[#f97815] flex items-center justify-center font-bold",children:"3"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"font-bold text-lg",children:"Route Requests"}),(0,r.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Point your CLI tools to http://localhost:20128"})]})]})]})]}),(0,r.jsx)("div",{className:"flex-1 w-full",children:(0,r.jsxs)("div",{className:"rounded-xl overflow-hidden bg-[#1e1e1e] border border-[#3a2f27] shadow-2xl",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3 bg-[#252526] border-b border-gray-700",children:[(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-red-500"}),(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-yellow-500"}),(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-green-500"}),(0,r.jsx)("div",{className:"ml-2 text-xs text-gray-500 font-mono",children:"terminal"})]}),(0,r.jsxs)("div",{className:"p-6 font-mono text-sm leading-relaxed overflow-x-auto",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-4 group cursor-pointer",onClick:()=>{navigator.clipboard.writeText("npx 9router"),t(!0),setTimeout(()=>t(!1),2e3)},children:[(0,r.jsx)("span",{className:"text-green-400",children:"$"}),(0,r.jsx)("span",{className:"text-white",children:"npx 9router"}),(0,r.jsx)("span",{className:"ml-auto text-gray-500 text-xs opacity-0 group-hover:opacity-100",children:e?"✓ Copied":"Copy"})]}),(0,r.jsxs)("div",{className:"text-gray-400 mb-6",children:[(0,r.jsx)("span",{className:"text-[#f97815]",children:">"})," Starting 9Router...",(0,r.jsx)("br",{}),(0,r.jsx)("span",{className:"text-[#f97815]",children:">"})," Server running on ",(0,r.jsx)("span",{className:"text-blue-400",children:"http://localhost:20128"}),(0,r.jsx)("br",{}),(0,r.jsx)("span",{className:"text-[#f97815]",children:">"})," Dashboard: ",(0,r.jsx)("span",{className:"text-blue-400",children:"http://localhost:20128/dashboard"}),(0,r.jsx)("br",{}),(0,r.jsx)("span",{className:"text-green-400",children:">"})," Ready to route! ✓"]}),(0,r.jsx)("div",{className:"text-xs text-gray-500 mb-2 border-t border-gray-700 pt-4",children:"\uD83D\uDCDD Configure providers in dashboard or use environment variables"}),(0,r.jsxs)("div",{className:"text-gray-400 text-xs",children:[(0,r.jsx)("span",{className:"text-purple-400",children:"Data Location:"}),(0,r.jsx)("br",{}),(0,r.jsx)("span",{className:"text-gray-500",children:" macOS/Linux:"})," ~/.9router/db.json",(0,r.jsx)("br",{}),(0,r.jsx)("span",{className:"text-gray-500",children:" Windows:"})," %APPDATA%/9router/db.json"]})]})]})})]})})})}function p(){return(0,r.jsx)("footer",{className:"border-t border-[#3a2f27] bg-[#120f0d] pt-16 pb-8 px-6",children:(0,r.jsxs)("div",{className:"max-w-7xl mx-auto",children:[(0,r.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-8 mb-16",children:[(0,r.jsxs)("div",{className:"col-span-2 lg:col-span-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 mb-6",children:[(0,r.jsx)("div",{className:"size-6 rounded bg-[#f97815] flex items-center justify-center text-white",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"hub"})}),(0,r.jsx)("h3",{className:"text-white text-lg font-bold",children:"9Router"})]}),(0,r.jsx)("p",{className:"text-gray-500 text-sm max-w-xs mb-6",children:"The unified endpoint for AI generation. Connect, route, and manage your AI providers with ease."}),(0,r.jsx)("div",{className:"flex gap-4",children:(0,r.jsx)("a",{className:"text-gray-400 hover:text-white transition-colors",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:(0,r.jsx)("span",{className:"material-symbols-outlined",children:"code"})})})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsx)("h4",{className:"font-bold text-white",children:"Product"}),(0,r.jsx)("a",{className:"text-gray-400 hover:text-[#f97815] text-sm transition-colors",href:"#features",children:"Features"}),(0,r.jsx)("a",{className:"text-gray-400 hover:text-[#f97815] text-sm transition-colors",href:"/dashboard",children:"Dashboard"}),(0,r.jsx)("a",{className:"text-gray-400 hover:text-[#f97815] text-sm transition-colors",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:"Changelog"})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsx)("h4",{className:"font-bold text-white",children:"Resources"}),(0,r.jsx)("a",{className:"text-gray-400 hover:text-[#f97815] text-sm transition-colors",href:"https://github.com/decolua/9router#readme",target:"_blank",rel:"noopener noreferrer",children:"Documentation"}),(0,r.jsx)("a",{className:"text-gray-400 hover:text-[#f97815] text-sm transition-colors",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:"GitHub"}),(0,r.jsx)("a",{className:"text-gray-400 hover:text-[#f97815] text-sm transition-colors",href:"https://www.npmjs.com/package/9router",target:"_blank",rel:"noopener noreferrer",children:"NPM"})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsx)("h4",{className:"font-bold text-white",children:"Legal"}),(0,r.jsx)("a",{className:"text-gray-400 hover:text-[#f97815] text-sm transition-colors",href:"https://github.com/decolua/9router/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer",children:"MIT License"})]})]}),(0,r.jsxs)("div",{className:"border-t border-[#3a2f27] pt-8 flex flex-col md:flex-row justify-between items-center gap-4",children:[(0,r.jsx)("p",{className:"text-gray-600 text-sm",children:"\xa9 2025 9Router. All rights reserved."}),(0,r.jsxs)("div",{className:"flex gap-6",children:[(0,r.jsx)("a",{className:"text-gray-600 hover:text-white text-sm transition-colors",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:"GitHub"}),(0,r.jsx)("a",{className:"text-gray-600 hover:text-white text-sm transition-colors",href:"https://www.npmjs.com/package/9router",target:"_blank",rel:"noopener noreferrer",children:"NPM"})]})]})]})})}function j(){return(0,r.jsxs)("div",{className:"jsx-3853dfda129ea3f2 relative text-white font-sans overflow-x-hidden antialiased selection:bg-[#f97815] selection:text-white",children:[(0,r.jsxs)("div",{className:"jsx-3853dfda129ea3f2 fixed inset-0 z-0 overflow-hidden pointer-events-none bg-[#181411]",children:[(0,r.jsx)("div",{style:{backgroundImage:"linear-gradient(to right, #f97815 1px, transparent 1px), linear-gradient(to bottom, #f97815 1px, transparent 1px)",backgroundSize:"50px 50px"},className:"jsx-3853dfda129ea3f2 absolute inset-0 opacity-[0.06]"}),(0,r.jsx)("div",{className:"jsx-3853dfda129ea3f2 absolute top-0 left-1/4 w-[700px] h-[700px] bg-[#f97815]/12 rounded-full blur-[130px] animate-blob"}),(0,r.jsx)("div",{style:{animationDelay:"2s",animationDuration:"22s"},className:"jsx-3853dfda129ea3f2 absolute top-1/3 right-1/4 w-[600px] h-[600px] bg-purple-500/10 rounded-full blur-[130px] animate-blob"}),(0,r.jsx)("div",{style:{animationDelay:"4s",animationDuration:"25s"},className:"jsx-3853dfda129ea3f2 absolute bottom-0 left-1/2 w-[650px] h-[650px] bg-blue-500/8 rounded-full blur-[130px] animate-blob"}),(0,r.jsx)("div",{style:{background:"radial-gradient(circle at center, transparent 0%, rgba(24, 20, 17, 0.4) 100%)"},className:"jsx-3853dfda129ea3f2 absolute inset-0"})]}),(0,r.jsxs)("div",{className:"jsx-3853dfda129ea3f2 relative z-10",children:[(0,r.jsx)(i,{}),(0,r.jsxs)("main",{className:"jsx-3853dfda129ea3f2",children:[(0,r.jsxs)("div",{className:"jsx-3853dfda129ea3f2 relative",children:[(0,r.jsx)(d,{}),(0,r.jsx)("div",{className:"jsx-3853dfda129ea3f2 flex justify-center pb-20",children:(0,r.jsx)(h,{})})]}),(0,r.jsx)(g,{}),(0,r.jsx)(f,{}),(0,r.jsx)(b,{}),(0,r.jsxs)("section",{className:"jsx-3853dfda129ea3f2 py-32 px-6 relative overflow-hidden",children:[(0,r.jsx)("div",{className:"jsx-3853dfda129ea3f2 absolute inset-0 bg-gradient-to-t from-[#f97815]/5 to-transparent pointer-events-none"}),(0,r.jsxs)("div",{className:"jsx-3853dfda129ea3f2 max-w-4xl mx-auto text-center relative z-10",children:[(0,r.jsx)("h2",{className:"jsx-3853dfda129ea3f2 text-4xl md:text-5xl font-black mb-6",children:"Ready to Simplify Your AI Infrastructure?"}),(0,r.jsx)("p",{className:"jsx-3853dfda129ea3f2 text-xl text-gray-400 mb-10 max-w-2xl mx-auto",children:"Join developers who are streamlining their AI integrations with 9Router. Open source and free to start."}),(0,r.jsxs)("div",{className:"jsx-3853dfda129ea3f2 flex flex-col sm:flex-row items-center justify-center gap-4",children:[(0,r.jsx)("button",{onClick:()=>window.location.href="/dashboard",className:"jsx-3853dfda129ea3f2 w-full sm:w-auto h-14 px-10 rounded-lg bg-[#f97815] hover:bg-[#e0650a] text-[#181411] text-lg font-bold transition-all shadow-[0_0_20px_rgba(249,120,21,0.5)]",children:"Start Free"}),(0,r.jsx)("button",{onClick:()=>window.open("https://github.com/decolua/9router#readme","_blank"),className:"jsx-3853dfda129ea3f2 w-full sm:w-auto h-14 px-10 rounded-lg border border-[#3a2f27] hover:bg-[#23180f] text-white text-lg font-bold transition-all",children:"Read Documentation"})]})]})]})]}),(0,r.jsx)(p,{})]}),(0,r.jsx)(l(),{id:"3853dfda129ea3f2",children:"@keyframes float{0%,100%{transform:translatey(0)}50%{transform:translatey(-10px)}}@keyframes dash{to{stroke-dashoffset:-20}}@keyframes blob{0%,100%{transform:translate(0,0)scale(1)}33%{transform:translate(30px,-50px)scale(1.1)}66%{transform:translate(-20px,20px)scale(.9)}}.animate-blob{animation:blob 20s ease-in-out infinite}"})]})}}}]);