pyric-tools 0.1.0-alpha.7

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 (1052) hide show
  1. package/README.md +125 -0
  2. package/dist/auth/domains/handler.d.ts +6 -0
  3. package/dist/auth/domains/handler.d.ts.map +1 -0
  4. package/dist/auth/domains/handler.js +75 -0
  5. package/dist/auth/domains/handler.js.map +1 -0
  6. package/dist/auth/domains/spec.d.ts +25 -0
  7. package/dist/auth/domains/spec.d.ts.map +1 -0
  8. package/dist/auth/domains/spec.js +6 -0
  9. package/dist/auth/domains/spec.js.map +1 -0
  10. package/dist/auth/index.d.ts +34 -0
  11. package/dist/auth/index.d.ts.map +1 -0
  12. package/dist/auth/index.js +30 -0
  13. package/dist/auth/index.js.map +1 -0
  14. package/dist/auth/mapper.d.ts +5 -0
  15. package/dist/auth/mapper.d.ts.map +1 -0
  16. package/dist/auth/mapper.js +49 -0
  17. package/dist/auth/mapper.js.map +1 -0
  18. package/dist/auth/provider/handler.d.ts +9 -0
  19. package/dist/auth/provider/handler.d.ts.map +1 -0
  20. package/dist/auth/provider/handler.js +128 -0
  21. package/dist/auth/provider/handler.js.map +1 -0
  22. package/dist/auth/provider/spec.d.ts +29 -0
  23. package/dist/auth/provider/spec.d.ts.map +1 -0
  24. package/dist/auth/provider/spec.js +12 -0
  25. package/dist/auth/provider/spec.js.map +1 -0
  26. package/dist/auth/resolver.d.ts +16 -0
  27. package/dist/auth/resolver.d.ts.map +1 -0
  28. package/dist/auth/resolver.js +32 -0
  29. package/dist/auth/resolver.js.map +1 -0
  30. package/dist/auth/tools.d.ts +23 -0
  31. package/dist/auth/tools.d.ts.map +1 -0
  32. package/dist/auth/tools.js +71 -0
  33. package/dist/auth/tools.js.map +1 -0
  34. package/dist/auth/types.d.ts +37 -0
  35. package/dist/auth/types.d.ts.map +1 -0
  36. package/dist/auth/types.js +17 -0
  37. package/dist/auth/types.js.map +1 -0
  38. package/dist/bridge/client/bridge.d.ts +133 -0
  39. package/dist/bridge/client/bridge.d.ts.map +1 -0
  40. package/dist/bridge/client/bridge.js +430 -0
  41. package/dist/bridge/client/bridge.js.map +1 -0
  42. package/dist/bridge/client/dispatch.d.ts +49 -0
  43. package/dist/bridge/client/dispatch.d.ts.map +1 -0
  44. package/dist/bridge/client/dispatch.js +103 -0
  45. package/dist/bridge/client/dispatch.js.map +1 -0
  46. package/dist/bridge/client.d.ts +24 -0
  47. package/dist/bridge/client.d.ts.map +1 -0
  48. package/dist/bridge/client.js +26 -0
  49. package/dist/bridge/client.js.map +1 -0
  50. package/dist/bridge/protocol.d.ts +228 -0
  51. package/dist/bridge/protocol.d.ts.map +1 -0
  52. package/dist/bridge/protocol.js +131 -0
  53. package/dist/bridge/protocol.js.map +1 -0
  54. package/dist/bridge/server/audit.d.ts +19 -0
  55. package/dist/bridge/server/audit.d.ts.map +1 -0
  56. package/dist/bridge/server/audit.js +46 -0
  57. package/dist/bridge/server/audit.js.map +1 -0
  58. package/dist/bridge/server/bridge.d.ts +165 -0
  59. package/dist/bridge/server/bridge.d.ts.map +1 -0
  60. package/dist/bridge/server/bridge.js +410 -0
  61. package/dist/bridge/server/bridge.js.map +1 -0
  62. package/dist/bridge/server/confirm-policy.d.ts +56 -0
  63. package/dist/bridge/server/confirm-policy.d.ts.map +1 -0
  64. package/dist/bridge/server/confirm-policy.js +107 -0
  65. package/dist/bridge/server/confirm-policy.js.map +1 -0
  66. package/dist/bridge/server/confirm-prompt.d.ts +73 -0
  67. package/dist/bridge/server/confirm-prompt.d.ts.map +1 -0
  68. package/dist/bridge/server/confirm-prompt.js +199 -0
  69. package/dist/bridge/server/confirm-prompt.js.map +1 -0
  70. package/dist/bridge/server/confirm.d.ts +92 -0
  71. package/dist/bridge/server/confirm.d.ts.map +1 -0
  72. package/dist/bridge/server/confirm.js +210 -0
  73. package/dist/bridge/server/confirm.js.map +1 -0
  74. package/dist/bridge/server/headless.d.ts +36 -0
  75. package/dist/bridge/server/headless.d.ts.map +1 -0
  76. package/dist/bridge/server/headless.js +132 -0
  77. package/dist/bridge/server/headless.js.map +1 -0
  78. package/dist/bridge/server/json-schema-to-zod.d.ts +37 -0
  79. package/dist/bridge/server/json-schema-to-zod.d.ts.map +1 -0
  80. package/dist/bridge/server/json-schema-to-zod.js +93 -0
  81. package/dist/bridge/server/json-schema-to-zod.js.map +1 -0
  82. package/dist/bridge/server/local-bridge.d.ts +33 -0
  83. package/dist/bridge/server/local-bridge.d.ts.map +1 -0
  84. package/dist/bridge/server/local-bridge.js +42 -0
  85. package/dist/bridge/server/local-bridge.js.map +1 -0
  86. package/dist/bridge/server/logger.d.ts +28 -0
  87. package/dist/bridge/server/logger.d.ts.map +1 -0
  88. package/dist/bridge/server/logger.js +42 -0
  89. package/dist/bridge/server/logger.js.map +1 -0
  90. package/dist/bridge/server/mcp.d.ts +33 -0
  91. package/dist/bridge/server/mcp.d.ts.map +1 -0
  92. package/dist/bridge/server/mcp.js +159 -0
  93. package/dist/bridge/server/mcp.js.map +1 -0
  94. package/dist/bridge/server/peer.d.ts +39 -0
  95. package/dist/bridge/server/peer.d.ts.map +1 -0
  96. package/dist/bridge/server/peer.js +189 -0
  97. package/dist/bridge/server/peer.js.map +1 -0
  98. package/dist/bridge/server/standalone.d.ts +102 -0
  99. package/dist/bridge/server/standalone.d.ts.map +1 -0
  100. package/dist/bridge/server/standalone.js +352 -0
  101. package/dist/bridge/server/standalone.js.map +1 -0
  102. package/dist/bridge/server/tool-metadata.d.ts +38 -0
  103. package/dist/bridge/server/tool-metadata.d.ts.map +1 -0
  104. package/dist/bridge/server/tool-metadata.js +79 -0
  105. package/dist/bridge/server/tool-metadata.js.map +1 -0
  106. package/dist/bridge/server.d.ts +25 -0
  107. package/dist/bridge/server.d.ts.map +1 -0
  108. package/dist/bridge/server.js +23 -0
  109. package/dist/bridge/server.js.map +1 -0
  110. package/dist/cli/auth.d.ts +37 -0
  111. package/dist/cli/auth.d.ts.map +1 -0
  112. package/dist/cli/auth.js +119 -0
  113. package/dist/cli/auth.js.map +1 -0
  114. package/dist/cli/database-rules.d.ts +25 -0
  115. package/dist/cli/database-rules.d.ts.map +1 -0
  116. package/dist/cli/database-rules.js +215 -0
  117. package/dist/cli/database-rules.js.map +1 -0
  118. package/dist/cli/deploy-progress.d.ts +35 -0
  119. package/dist/cli/deploy-progress.d.ts.map +1 -0
  120. package/dist/cli/deploy-progress.js +69 -0
  121. package/dist/cli/deploy-progress.js.map +1 -0
  122. package/dist/cli/deploy.d.ts +81 -0
  123. package/dist/cli/deploy.d.ts.map +1 -0
  124. package/dist/cli/deploy.js +413 -0
  125. package/dist/cli/deploy.js.map +1 -0
  126. package/dist/cli/dev-runner.d.ts +112 -0
  127. package/dist/cli/dev-runner.d.ts.map +1 -0
  128. package/dist/cli/dev-runner.js +227 -0
  129. package/dist/cli/dev-runner.js.map +1 -0
  130. package/dist/cli/discover.d.ts +47 -0
  131. package/dist/cli/discover.d.ts.map +1 -0
  132. package/dist/cli/discover.js +77 -0
  133. package/dist/cli/discover.js.map +1 -0
  134. package/dist/cli/firebase-json.d.ts +66 -0
  135. package/dist/cli/firebase-json.d.ts.map +1 -0
  136. package/dist/cli/firebase-json.js +60 -0
  137. package/dist/cli/firebase-json.js.map +1 -0
  138. package/dist/cli/index.d.ts +55 -0
  139. package/dist/cli/index.d.ts.map +1 -0
  140. package/dist/cli/index.js +500 -0
  141. package/dist/cli/index.js.map +1 -0
  142. package/dist/cli/init-templates.d.ts +37 -0
  143. package/dist/cli/init-templates.d.ts.map +1 -0
  144. package/dist/cli/init-templates.js +638 -0
  145. package/dist/cli/init-templates.js.map +1 -0
  146. package/dist/cli/init.d.ts +124 -0
  147. package/dist/cli/init.d.ts.map +1 -0
  148. package/dist/cli/init.js +423 -0
  149. package/dist/cli/init.js.map +1 -0
  150. package/dist/cli/login.d.ts +18 -0
  151. package/dist/cli/login.d.ts.map +1 -0
  152. package/dist/cli/login.js +59 -0
  153. package/dist/cli/login.js.map +1 -0
  154. package/dist/cli/mcp-proxy.d.ts +10 -0
  155. package/dist/cli/mcp-proxy.d.ts.map +1 -0
  156. package/dist/cli/mcp-proxy.js +126 -0
  157. package/dist/cli/mcp-proxy.js.map +1 -0
  158. package/dist/cli/parse-args.d.ts +20 -0
  159. package/dist/cli/parse-args.d.ts.map +1 -0
  160. package/dist/cli/parse-args.js +69 -0
  161. package/dist/cli/parse-args.js.map +1 -0
  162. package/dist/cli/rules.d.ts +40 -0
  163. package/dist/cli/rules.d.ts.map +1 -0
  164. package/dist/cli/rules.js +162 -0
  165. package/dist/cli/rules.js.map +1 -0
  166. package/dist/cli/scope.d.ts +38 -0
  167. package/dist/cli/scope.d.ts.map +1 -0
  168. package/dist/cli/scope.js +63 -0
  169. package/dist/cli/scope.js.map +1 -0
  170. package/dist/cli/serve.d.ts +122 -0
  171. package/dist/cli/serve.d.ts.map +1 -0
  172. package/dist/cli/serve.js +685 -0
  173. package/dist/cli/serve.js.map +1 -0
  174. package/dist/cli/snapshot.d.ts +22 -0
  175. package/dist/cli/snapshot.d.ts.map +1 -0
  176. package/dist/cli/snapshot.js +139 -0
  177. package/dist/cli/snapshot.js.map +1 -0
  178. package/dist/cli/verify.d.ts +23 -0
  179. package/dist/cli/verify.d.ts.map +1 -0
  180. package/dist/cli/verify.js +349 -0
  181. package/dist/cli/verify.js.map +1 -0
  182. package/dist/credentials/core/authorize.d.ts +22 -0
  183. package/dist/credentials/core/authorize.d.ts.map +1 -0
  184. package/dist/credentials/core/authorize.js +39 -0
  185. package/dist/credentials/core/authorize.js.map +1 -0
  186. package/dist/credentials/core/client.d.ts +14 -0
  187. package/dist/credentials/core/client.d.ts.map +1 -0
  188. package/dist/credentials/core/client.js +13 -0
  189. package/dist/credentials/core/client.js.map +1 -0
  190. package/dist/credentials/core/exchange.d.ts +24 -0
  191. package/dist/credentials/core/exchange.d.ts.map +1 -0
  192. package/dist/credentials/core/exchange.js +46 -0
  193. package/dist/credentials/core/exchange.js.map +1 -0
  194. package/dist/credentials/core/flow.d.ts +15 -0
  195. package/dist/credentials/core/flow.d.ts.map +1 -0
  196. package/dist/credentials/core/flow.js +40 -0
  197. package/dist/credentials/core/flow.js.map +1 -0
  198. package/dist/credentials/core/from-user-credential.d.ts +3 -0
  199. package/dist/credentials/core/from-user-credential.d.ts.map +1 -0
  200. package/dist/credentials/core/from-user-credential.js +19 -0
  201. package/dist/credentials/core/from-user-credential.js.map +1 -0
  202. package/dist/credentials/core/scopes.d.ts +26 -0
  203. package/dist/credentials/core/scopes.d.ts.map +1 -0
  204. package/dist/credentials/core/scopes.js +32 -0
  205. package/dist/credentials/core/scopes.js.map +1 -0
  206. package/dist/credentials/core/types.d.ts +72 -0
  207. package/dist/credentials/core/types.d.ts.map +1 -0
  208. package/dist/credentials/core/types.js +2 -0
  209. package/dist/credentials/core/types.js.map +1 -0
  210. package/dist/credentials/index.d.ts +14 -0
  211. package/dist/credentials/index.d.ts.map +1 -0
  212. package/dist/credentials/index.js +13 -0
  213. package/dist/credentials/index.js.map +1 -0
  214. package/dist/credentials/node/ensure-scope.d.ts +29 -0
  215. package/dist/credentials/node/ensure-scope.d.ts.map +1 -0
  216. package/dist/credentials/node/ensure-scope.js +42 -0
  217. package/dist/credentials/node/ensure-scope.js.map +1 -0
  218. package/dist/credentials/node/file-store.d.ts +4 -0
  219. package/dist/credentials/node/file-store.d.ts.map +1 -0
  220. package/dist/credentials/node/file-store.js +52 -0
  221. package/dist/credentials/node/file-store.js.map +1 -0
  222. package/dist/credentials/node/from-adc.d.ts +10 -0
  223. package/dist/credentials/node/from-adc.d.ts.map +1 -0
  224. package/dist/credentials/node/from-adc.js +60 -0
  225. package/dist/credentials/node/from-adc.js.map +1 -0
  226. package/dist/credentials/node/index.d.ts +10 -0
  227. package/dist/credentials/node/index.d.ts.map +1 -0
  228. package/dist/credentials/node/index.js +10 -0
  229. package/dist/credentials/node/index.js.map +1 -0
  230. package/dist/credentials/node/loopback-authorizer.d.ts +12 -0
  231. package/dist/credentials/node/loopback-authorizer.d.ts.map +1 -0
  232. package/dist/credentials/node/loopback-authorizer.js +61 -0
  233. package/dist/credentials/node/loopback-authorizer.js.map +1 -0
  234. package/dist/credentials/node/resolve-local-token.d.ts +20 -0
  235. package/dist/credentials/node/resolve-local-token.d.ts.map +1 -0
  236. package/dist/credentials/node/resolve-local-token.js +97 -0
  237. package/dist/credentials/node/resolve-local-token.js.map +1 -0
  238. package/dist/credentials/server/bff.d.ts +44 -0
  239. package/dist/credentials/server/bff.d.ts.map +1 -0
  240. package/dist/credentials/server/bff.js +43 -0
  241. package/dist/credentials/server/bff.js.map +1 -0
  242. package/dist/deploy/api-enablement.d.ts +45 -0
  243. package/dist/deploy/api-enablement.d.ts.map +1 -0
  244. package/dist/deploy/api-enablement.js +125 -0
  245. package/dist/deploy/api-enablement.js.map +1 -0
  246. package/dist/deploy/firestore/databases.d.ts +41 -0
  247. package/dist/deploy/firestore/databases.d.ts.map +1 -0
  248. package/dist/deploy/firestore/databases.js +63 -0
  249. package/dist/deploy/firestore/databases.js.map +1 -0
  250. package/dist/deploy/firestore/indexes.d.ts +120 -0
  251. package/dist/deploy/firestore/indexes.d.ts.map +1 -0
  252. package/dist/deploy/firestore/indexes.js +243 -0
  253. package/dist/deploy/firestore/indexes.js.map +1 -0
  254. package/dist/deploy/firestore/recipes.d.ts +21 -0
  255. package/dist/deploy/firestore/recipes.d.ts.map +1 -0
  256. package/dist/deploy/firestore/recipes.js +34 -0
  257. package/dist/deploy/firestore/recipes.js.map +1 -0
  258. package/dist/deploy/firestore/rules.d.ts +76 -0
  259. package/dist/deploy/firestore/rules.d.ts.map +1 -0
  260. package/dist/deploy/firestore/rules.js +180 -0
  261. package/dist/deploy/firestore/rules.js.map +1 -0
  262. package/dist/deploy/from-admin-app.d.ts +20 -0
  263. package/dist/deploy/from-admin-app.d.ts.map +1 -0
  264. package/dist/deploy/from-admin-app.js +18 -0
  265. package/dist/deploy/from-admin-app.js.map +1 -0
  266. package/dist/deploy/from-service-account.d.ts +29 -0
  267. package/dist/deploy/from-service-account.d.ts.map +1 -0
  268. package/dist/deploy/from-service-account.js +115 -0
  269. package/dist/deploy/from-service-account.js.map +1 -0
  270. package/dist/deploy/functions/bundle.d.ts +37 -0
  271. package/dist/deploy/functions/bundle.d.ts.map +1 -0
  272. package/dist/deploy/functions/bundle.js +181 -0
  273. package/dist/deploy/functions/bundle.js.map +1 -0
  274. package/dist/deploy/functions/core.d.ts +18 -0
  275. package/dist/deploy/functions/core.d.ts.map +1 -0
  276. package/dist/deploy/functions/core.js +211 -0
  277. package/dist/deploy/functions/core.js.map +1 -0
  278. package/dist/deploy/functions/iam.d.ts +17 -0
  279. package/dist/deploy/functions/iam.d.ts.map +1 -0
  280. package/dist/deploy/functions/iam.js +40 -0
  281. package/dist/deploy/functions/iam.js.map +1 -0
  282. package/dist/deploy/functions/operation.d.ts +39 -0
  283. package/dist/deploy/functions/operation.d.ts.map +1 -0
  284. package/dist/deploy/functions/operation.js +37 -0
  285. package/dist/deploy/functions/operation.js.map +1 -0
  286. package/dist/deploy/functions/spec.d.ts +69 -0
  287. package/dist/deploy/functions/spec.d.ts.map +1 -0
  288. package/dist/deploy/functions/spec.js +7 -0
  289. package/dist/deploy/functions/spec.js.map +1 -0
  290. package/dist/deploy/functions/types.d.ts +50 -0
  291. package/dist/deploy/functions/types.d.ts.map +1 -0
  292. package/dist/deploy/functions/types.js +3 -0
  293. package/dist/deploy/functions/types.js.map +1 -0
  294. package/dist/deploy/hosting/channels.d.ts +93 -0
  295. package/dist/deploy/hosting/channels.d.ts.map +1 -0
  296. package/dist/deploy/hosting/channels.js +134 -0
  297. package/dist/deploy/hosting/channels.js.map +1 -0
  298. package/dist/deploy/hosting/config.d.ts +28 -0
  299. package/dist/deploy/hosting/config.d.ts.map +1 -0
  300. package/dist/deploy/hosting/config.js +261 -0
  301. package/dist/deploy/hosting/config.js.map +1 -0
  302. package/dist/deploy/hosting/core.d.ts +38 -0
  303. package/dist/deploy/hosting/core.d.ts.map +1 -0
  304. package/dist/deploy/hosting/core.js +311 -0
  305. package/dist/deploy/hosting/core.js.map +1 -0
  306. package/dist/deploy/hosting/gzip.d.ts +11 -0
  307. package/dist/deploy/hosting/gzip.d.ts.map +1 -0
  308. package/dist/deploy/hosting/gzip.js +20 -0
  309. package/dist/deploy/hosting/gzip.js.map +1 -0
  310. package/dist/deploy/hosting/hash.d.ts +6 -0
  311. package/dist/deploy/hosting/hash.d.ts.map +1 -0
  312. package/dist/deploy/hosting/hash.js +17 -0
  313. package/dist/deploy/hosting/hash.js.map +1 -0
  314. package/dist/deploy/hosting/sites.d.ts +77 -0
  315. package/dist/deploy/hosting/sites.d.ts.map +1 -0
  316. package/dist/deploy/hosting/sites.js +73 -0
  317. package/dist/deploy/hosting/sites.js.map +1 -0
  318. package/dist/deploy/hosting/spec.d.ts +140 -0
  319. package/dist/deploy/hosting/spec.d.ts.map +1 -0
  320. package/dist/deploy/hosting/spec.js +8 -0
  321. package/dist/deploy/hosting/spec.js.map +1 -0
  322. package/dist/deploy/hosting/types.d.ts +71 -0
  323. package/dist/deploy/hosting/types.d.ts.map +1 -0
  324. package/dist/deploy/hosting/types.js +3 -0
  325. package/dist/deploy/hosting/types.js.map +1 -0
  326. package/dist/deploy/hosting/walk.d.ts +31 -0
  327. package/dist/deploy/hosting/walk.d.ts.map +1 -0
  328. package/dist/deploy/hosting/walk.js +167 -0
  329. package/dist/deploy/hosting/walk.js.map +1 -0
  330. package/dist/deploy/index.d.ts +51 -0
  331. package/dist/deploy/index.d.ts.map +1 -0
  332. package/dist/deploy/index.js +50 -0
  333. package/dist/deploy/index.js.map +1 -0
  334. package/dist/deploy/memoize-ttl.d.ts +58 -0
  335. package/dist/deploy/memoize-ttl.d.ts.map +1 -0
  336. package/dist/deploy/memoize-ttl.js +88 -0
  337. package/dist/deploy/memoize-ttl.js.map +1 -0
  338. package/dist/deploy/namespaces.d.ts +119 -0
  339. package/dist/deploy/namespaces.d.ts.map +1 -0
  340. package/dist/deploy/namespaces.js +192 -0
  341. package/dist/deploy/namespaces.js.map +1 -0
  342. package/dist/deploy/preflight.d.ts +119 -0
  343. package/dist/deploy/preflight.d.ts.map +1 -0
  344. package/dist/deploy/preflight.js +440 -0
  345. package/dist/deploy/preflight.js.map +1 -0
  346. package/dist/deploy/provider.d.ts +130 -0
  347. package/dist/deploy/provider.d.ts.map +1 -0
  348. package/dist/deploy/provider.js +21 -0
  349. package/dist/deploy/provider.js.map +1 -0
  350. package/dist/deploy/providers/database.d.ts +8 -0
  351. package/dist/deploy/providers/database.d.ts.map +1 -0
  352. package/dist/deploy/providers/database.js +37 -0
  353. package/dist/deploy/providers/database.js.map +1 -0
  354. package/dist/deploy/providers/firestore.d.ts +11 -0
  355. package/dist/deploy/providers/firestore.d.ts.map +1 -0
  356. package/dist/deploy/providers/firestore.js +43 -0
  357. package/dist/deploy/providers/firestore.js.map +1 -0
  358. package/dist/deploy/providers/functions.d.ts +9 -0
  359. package/dist/deploy/providers/functions.d.ts.map +1 -0
  360. package/dist/deploy/providers/functions.js +49 -0
  361. package/dist/deploy/providers/functions.js.map +1 -0
  362. package/dist/deploy/providers/hosting.d.ts +13 -0
  363. package/dist/deploy/providers/hosting.d.ts.map +1 -0
  364. package/dist/deploy/providers/hosting.js +149 -0
  365. package/dist/deploy/providers/hosting.js.map +1 -0
  366. package/dist/deploy/providers/storage.d.ts +9 -0
  367. package/dist/deploy/providers/storage.d.ts.map +1 -0
  368. package/dist/deploy/providers/storage.js +46 -0
  369. package/dist/deploy/providers/storage.js.map +1 -0
  370. package/dist/deploy/registry.d.ts +17 -0
  371. package/dist/deploy/registry.d.ts.map +1 -0
  372. package/dist/deploy/registry.js +15 -0
  373. package/dist/deploy/registry.js.map +1 -0
  374. package/dist/deploy/rtdb/rules.d.ts +21 -0
  375. package/dist/deploy/rtdb/rules.d.ts.map +1 -0
  376. package/dist/deploy/rtdb/rules.js +104 -0
  377. package/dist/deploy/rtdb/rules.js.map +1 -0
  378. package/dist/deploy/scope.d.ts +81 -0
  379. package/dist/deploy/scope.d.ts.map +1 -0
  380. package/dist/deploy/scope.js +44 -0
  381. package/dist/deploy/scope.js.map +1 -0
  382. package/dist/deploy/tools.d.ts +55 -0
  383. package/dist/deploy/tools.d.ts.map +1 -0
  384. package/dist/deploy/tools.js +329 -0
  385. package/dist/deploy/tools.js.map +1 -0
  386. package/dist/deploy/with-resolved-scope.d.ts +31 -0
  387. package/dist/deploy/with-resolved-scope.d.ts.map +1 -0
  388. package/dist/deploy/with-resolved-scope.js +73 -0
  389. package/dist/deploy/with-resolved-scope.js.map +1 -0
  390. package/dist/discover/concurrency.d.ts +42 -0
  391. package/dist/discover/concurrency.d.ts.map +1 -0
  392. package/dist/discover/concurrency.js +113 -0
  393. package/dist/discover/concurrency.js.map +1 -0
  394. package/dist/discover/crawler-adapter.d.ts +49 -0
  395. package/dist/discover/crawler-adapter.d.ts.map +1 -0
  396. package/dist/discover/crawler-adapter.js +92 -0
  397. package/dist/discover/crawler-adapter.js.map +1 -0
  398. package/dist/discover/crawler.d.ts +333 -0
  399. package/dist/discover/crawler.d.ts.map +1 -0
  400. package/dist/discover/crawler.js +764 -0
  401. package/dist/discover/crawler.js.map +1 -0
  402. package/dist/discover/findCollectionGroup.d.ts +80 -0
  403. package/dist/discover/findCollectionGroup.d.ts.map +1 -0
  404. package/dist/discover/findCollectionGroup.js +81 -0
  405. package/dist/discover/findCollectionGroup.js.map +1 -0
  406. package/dist/discover/index.d.ts +15 -0
  407. package/dist/discover/index.d.ts.map +1 -0
  408. package/dist/discover/index.js +24 -0
  409. package/dist/discover/index.js.map +1 -0
  410. package/dist/discover/merge.d.ts +108 -0
  411. package/dist/discover/merge.d.ts.map +1 -0
  412. package/dist/discover/merge.js +394 -0
  413. package/dist/discover/merge.js.map +1 -0
  414. package/dist/discover/rest-crawler-firestore.d.ts +51 -0
  415. package/dist/discover/rest-crawler-firestore.d.ts.map +1 -0
  416. package/dist/discover/rest-crawler-firestore.js +154 -0
  417. package/dist/discover/rest-crawler-firestore.js.map +1 -0
  418. package/dist/discover/session.d.ts +116 -0
  419. package/dist/discover/session.d.ts.map +1 -0
  420. package/dist/discover/session.js +331 -0
  421. package/dist/discover/session.js.map +1 -0
  422. package/dist/discover/tools.d.ts +59 -0
  423. package/dist/discover/tools.d.ts.map +1 -0
  424. package/dist/discover/tools.js +115 -0
  425. package/dist/discover/tools.js.map +1 -0
  426. package/dist/discover/types.d.ts +191 -0
  427. package/dist/discover/types.d.ts.map +1 -0
  428. package/dist/discover/types.js +12 -0
  429. package/dist/discover/types.js.map +1 -0
  430. package/dist/discover/wire.d.ts +81 -0
  431. package/dist/discover/wire.d.ts.map +1 -0
  432. package/dist/discover/wire.js +308 -0
  433. package/dist/discover/wire.js.map +1 -0
  434. package/dist/pkg-version.d.ts +2 -0
  435. package/dist/pkg-version.d.ts.map +1 -0
  436. package/dist/pkg-version.js +47 -0
  437. package/dist/pkg-version.js.map +1 -0
  438. package/dist/register/esm-exports.d.ts +26 -0
  439. package/dist/register/esm-exports.d.ts.map +1 -0
  440. package/dist/register/esm-exports.js +61 -0
  441. package/dist/register/esm-exports.js.map +1 -0
  442. package/dist/register/exempt.d.ts +11 -0
  443. package/dist/register/exempt.d.ts.map +1 -0
  444. package/dist/register/exempt.js +74 -0
  445. package/dist/register/exempt.js.map +1 -0
  446. package/dist/register/hooks.d.ts +13 -0
  447. package/dist/register/hooks.d.ts.map +1 -0
  448. package/dist/register/hooks.js +15 -0
  449. package/dist/register/hooks.js.map +1 -0
  450. package/dist/register/index.d.ts +5 -0
  451. package/dist/register/index.d.ts.map +1 -0
  452. package/dist/register/index.js +126 -0
  453. package/dist/register/index.js.map +1 -0
  454. package/dist/register/mapping.d.ts +17 -0
  455. package/dist/register/mapping.d.ts.map +1 -0
  456. package/dist/register/mapping.js +31 -0
  457. package/dist/register/mapping.js.map +1 -0
  458. package/dist/registry/admin-deps.d.ts +17 -0
  459. package/dist/registry/admin-deps.d.ts.map +1 -0
  460. package/dist/registry/admin-deps.js +68 -0
  461. package/dist/registry/admin-deps.js.map +1 -0
  462. package/dist/registry/compose.d.ts +68 -0
  463. package/dist/registry/compose.d.ts.map +1 -0
  464. package/dist/registry/compose.js +113 -0
  465. package/dist/registry/compose.js.map +1 -0
  466. package/dist/registry/index.d.ts +11 -0
  467. package/dist/registry/index.d.ts.map +1 -0
  468. package/dist/registry/index.js +11 -0
  469. package/dist/registry/index.js.map +1 -0
  470. package/dist/remote/index.d.ts +232 -0
  471. package/dist/remote/index.d.ts.map +1 -0
  472. package/dist/remote/index.js +719 -0
  473. package/dist/remote/index.js.map +1 -0
  474. package/dist/rtdb/rules-json.d.ts +8 -0
  475. package/dist/rtdb/rules-json.d.ts.map +1 -0
  476. package/dist/rtdb/rules-json.js +17 -0
  477. package/dist/rtdb/rules-json.js.map +1 -0
  478. package/dist/serve/bridge-mount.d.ts +38 -0
  479. package/dist/serve/bridge-mount.d.ts.map +1 -0
  480. package/dist/serve/bridge-mount.js +162 -0
  481. package/dist/serve/bridge-mount.js.map +1 -0
  482. package/dist/serve/bundler.d.ts +134 -0
  483. package/dist/serve/bundler.d.ts.map +1 -0
  484. package/dist/serve/bundler.js +452 -0
  485. package/dist/serve/bundler.js.map +1 -0
  486. package/dist/serve/capture-store.d.ts +27 -0
  487. package/dist/serve/capture-store.d.ts.map +1 -0
  488. package/dist/serve/capture-store.js +47 -0
  489. package/dist/serve/capture-store.js.map +1 -0
  490. package/dist/serve/discovery.d.ts +71 -0
  491. package/dist/serve/discovery.d.ts.map +1 -0
  492. package/dist/serve/discovery.js +158 -0
  493. package/dist/serve/discovery.js.map +1 -0
  494. package/dist/serve/docs-ui/_astro/_slug_.BsN3bPok.css +1 -0
  495. package/dist/serve/docs-ui/docs/_rhythm/index.html +99 -0
  496. package/dist/serve/docs-ui/docs/_rhythm.md +101 -0
  497. package/dist/serve/docs-ui/docs/index.html +1 -0
  498. package/dist/serve/docs-ui/docs/index.json +9914 -0
  499. package/dist/serve/docs-ui/docs/pyric-admin-firestore/index.html +38 -0
  500. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-error-translation/index.html +57 -0
  501. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-error-translation.md +87 -0
  502. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-per-call-delegate/index.html +58 -0
  503. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-per-call-delegate.md +86 -0
  504. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-why-mirror-admin-shape/index.html +59 -0
  505. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-why-mirror-admin-shape.md +82 -0
  506. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-run-a-transaction/index.html +53 -0
  507. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-run-a-transaction.md +70 -0
  508. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-seed-and-set-rules/index.html +62 -0
  509. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-seed-and-set-rules.md +86 -0
  510. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-translate-denials/index.html +80 -0
  511. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-translate-denials.md +92 -0
  512. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-use-onsnapshot/index.html +57 -0
  513. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-use-onsnapshot.md +78 -0
  514. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-write-a-batch/index.html +50 -0
  515. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-write-a-batch.md +67 -0
  516. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-api/index.html +53 -0
  517. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-api.md +73 -0
  518. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-onsnapshot/index.html +68 -0
  519. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-onsnapshot.md +75 -0
  520. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-re-exported-types/index.html +76 -0
  521. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-re-exported-types.md +95 -0
  522. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-sandbox-firestore/index.html +40 -0
  523. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-sandbox-firestore.md +73 -0
  524. package/dist/serve/docs-ui/docs/pyric-admin-firestore-tutorials-01-first-admin-session/index.html +118 -0
  525. package/dist/serve/docs-ui/docs/pyric-admin-firestore-tutorials-01-first-admin-session.md +146 -0
  526. package/dist/serve/docs-ui/docs/pyric-admin-firestore.md +49 -0
  527. package/dist/serve/docs-ui/docs/pyric-auth/index.html +64 -0
  528. package/dist/serve/docs-ui/docs/pyric-auth-compat/index.html +874 -0
  529. package/dist/serve/docs-ui/docs/pyric-auth-compat.md +265 -0
  530. package/dist/serve/docs-ui/docs/pyric-auth-reference-api/index.html +112 -0
  531. package/dist/serve/docs-ui/docs/pyric-auth-reference-api.md +129 -0
  532. package/dist/serve/docs-ui/docs/pyric-auth-reference-feature-matrix/index.html +781 -0
  533. package/dist/serve/docs-ui/docs/pyric-auth-reference-feature-matrix.md +198 -0
  534. package/dist/serve/docs-ui/docs/pyric-auth-reference-sandbox-test-driver/index.html +80 -0
  535. package/dist/serve/docs-ui/docs/pyric-auth-reference-sandbox-test-driver.md +107 -0
  536. package/dist/serve/docs-ui/docs/pyric-auth.md +84 -0
  537. package/dist/serve/docs-ui/docs/pyric-database/index.html +36 -0
  538. package/dist/serve/docs-ui/docs/pyric-database-compat/index.html +2428 -0
  539. package/dist/serve/docs-ui/docs/pyric-database-compat.md +850 -0
  540. package/dist/serve/docs-ui/docs/pyric-database-explanation-rules-authoring-and-deploy-are-separate/index.html +23 -0
  541. package/dist/serve/docs-ui/docs/pyric-database-explanation-rules-authoring-and-deploy-are-separate.md +29 -0
  542. package/dist/serve/docs-ui/docs/pyric-database-reference-rules-tooling/index.html +263 -0
  543. package/dist/serve/docs-ui/docs/pyric-database-reference-rules-tooling.md +288 -0
  544. package/dist/serve/docs-ui/docs/pyric-database-tutorials-01-author-rtdb-rules-with-constraints/index.html +116 -0
  545. package/dist/serve/docs-ui/docs/pyric-database-tutorials-01-author-rtdb-rules-with-constraints.md +142 -0
  546. package/dist/serve/docs-ui/docs/pyric-database.md +18 -0
  547. package/dist/serve/docs-ui/docs/pyric-firestore/index.html +54 -0
  548. package/dist/serve/docs-ui/docs/pyric-firestore-compat/index.html +1345 -0
  549. package/dist/serve/docs-ui/docs/pyric-firestore-compat.md +366 -0
  550. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-rules-tooling-is-separate/index.html +79 -0
  551. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-rules-tooling-is-separate.md +62 -0
  552. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-target-symbol-opacity/index.html +59 -0
  553. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-target-symbol-opacity.md +85 -0
  554. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-two-backends-one-surface/index.html +61 -0
  555. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-two-backends-one-surface.md +87 -0
  556. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-build-queries/index.html +105 -0
  557. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-build-queries.md +138 -0
  558. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-migrate-from-firebase-firestore/index.html +65 -0
  559. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-migrate-from-firebase-firestore.md +93 -0
  560. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-pick-a-backend/index.html +112 -0
  561. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-pick-a-backend.md +100 -0
  562. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-run-a-transaction/index.html +42 -0
  563. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-run-a-transaction.md +55 -0
  564. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-use-onsnapshot/index.html +61 -0
  565. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-use-onsnapshot.md +83 -0
  566. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-use-sandbox-ops/index.html +52 -0
  567. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-use-sandbox-ops.md +73 -0
  568. package/dist/serve/docs-ui/docs/pyric-firestore-reference-api/index.html +132 -0
  569. package/dist/serve/docs-ui/docs/pyric-firestore-reference-api.md +160 -0
  570. package/dist/serve/docs-ui/docs/pyric-firestore-reference-feature-matrix/index.html +793 -0
  571. package/dist/serve/docs-ui/docs/pyric-firestore-reference-feature-matrix.md +239 -0
  572. package/dist/serve/docs-ui/docs/pyric-firestore-reference-getfirestore/index.html +55 -0
  573. package/dist/serve/docs-ui/docs/pyric-firestore-reference-getfirestore.md +76 -0
  574. package/dist/serve/docs-ui/docs/pyric-firestore-reference-query-constraints/index.html +78 -0
  575. package/dist/serve/docs-ui/docs/pyric-firestore-reference-query-constraints.md +115 -0
  576. package/dist/serve/docs-ui/docs/pyric-firestore-reference-sandbox-ops/index.html +53 -0
  577. package/dist/serve/docs-ui/docs/pyric-firestore-reference-sandbox-ops.md +76 -0
  578. package/dist/serve/docs-ui/docs/pyric-firestore-reference-tool-factories/index.html +51 -0
  579. package/dist/serve/docs-ui/docs/pyric-firestore-reference-tool-factories.md +65 -0
  580. package/dist/serve/docs-ui/docs/pyric-firestore-tutorials-01-write-a-sandbox-demo/index.html +127 -0
  581. package/dist/serve/docs-ui/docs/pyric-firestore-tutorials-01-write-a-sandbox-demo.md +157 -0
  582. package/dist/serve/docs-ui/docs/pyric-firestore-tutorials-02-swap-to-prod-backend/index.html +85 -0
  583. package/dist/serve/docs-ui/docs/pyric-firestore-tutorials-02-swap-to-prod-backend.md +122 -0
  584. package/dist/serve/docs-ui/docs/pyric-firestore.md +69 -0
  585. package/dist/serve/docs-ui/docs/pyric-rules/index.html +93 -0
  586. package/dist/serve/docs-ui/docs/pyric-rules-explanation-agent-failure-modes/index.html +50 -0
  587. package/dist/serve/docs-ui/docs/pyric-rules-explanation-agent-failure-modes.md +74 -0
  588. package/dist/serve/docs-ui/docs/pyric-rules-explanation-lint-vs-validate-vs-simulate-vs-test/index.html +79 -0
  589. package/dist/serve/docs-ui/docs/pyric-rules-explanation-lint-vs-validate-vs-simulate-vs-test.md +69 -0
  590. package/dist/serve/docs-ui/docs/pyric-rules-explanation-runtime-budget-and-shared-gates/index.html +67 -0
  591. package/dist/serve/docs-ui/docs/pyric-rules-explanation-runtime-budget-and-shared-gates.md +71 -0
  592. package/dist/serve/docs-ui/docs/pyric-rules-explanation-sentinel-expression-engine/index.html +49 -0
  593. package/dist/serve/docs-ui/docs/pyric-rules-explanation-sentinel-expression-engine.md +70 -0
  594. package/dist/serve/docs-ui/docs/pyric-rules-explanation-simulator-vs-rules-test-api/index.html +96 -0
  595. package/dist/serve/docs-ui/docs/pyric-rules-explanation-simulator-vs-rules-test-api.md +76 -0
  596. package/dist/serve/docs-ui/docs/pyric-rules-explanation-the-2-plus-modules-extension/index.html +58 -0
  597. package/dist/serve/docs-ui/docs/pyric-rules-explanation-the-2-plus-modules-extension.md +75 -0
  598. package/dist/serve/docs-ui/docs/pyric-rules-explanation-value-wrappers-design/index.html +62 -0
  599. package/dist/serve/docs-ui/docs/pyric-rules-explanation-value-wrappers-design.md +80 -0
  600. package/dist/serve/docs-ui/docs/pyric-rules-explanation-why-this-package-exists/index.html +34 -0
  601. package/dist/serve/docs-ui/docs/pyric-rules-explanation-why-this-package-exists.md +43 -0
  602. package/dist/serve/docs-ui/docs/pyric-rules-how-to-compare-rulesets-for-weakening/index.html +54 -0
  603. package/dist/serve/docs-ui/docs/pyric-rules-how-to-compare-rulesets-for-weakening.md +69 -0
  604. package/dist/serve/docs-ui/docs/pyric-rules-how-to-inspect-rules-via-the-ast/index.html +89 -0
  605. package/dist/serve/docs-ui/docs/pyric-rules-how-to-inspect-rules-via-the-ast.md +113 -0
  606. package/dist/serve/docs-ui/docs/pyric-rules-how-to-lint-rules-source/index.html +50 -0
  607. package/dist/serve/docs-ui/docs/pyric-rules-how-to-lint-rules-source.md +73 -0
  608. package/dist/serve/docs-ui/docs/pyric-rules-how-to-pin-request-time/index.html +47 -0
  609. package/dist/serve/docs-ui/docs/pyric-rules-how-to-pin-request-time.md +58 -0
  610. package/dist/serve/docs-ui/docs/pyric-rules-how-to-register-tools-with-an-agent/index.html +61 -0
  611. package/dist/serve/docs-ui/docs/pyric-rules-how-to-register-tools-with-an-agent.md +78 -0
  612. package/dist/serve/docs-ui/docs/pyric-rules-how-to-resolve-module-imports/index.html +92 -0
  613. package/dist/serve/docs-ui/docs/pyric-rules-how-to-resolve-module-imports.md +93 -0
  614. package/dist/serve/docs-ui/docs/pyric-rules-how-to-simulate-rules-locally/index.html +89 -0
  615. package/dist/serve/docs-ui/docs/pyric-rules-how-to-simulate-rules-locally.md +117 -0
  616. package/dist/serve/docs-ui/docs/pyric-rules-how-to-test-rules-against-firebase/index.html +70 -0
  617. package/dist/serve/docs-ui/docs/pyric-rules-how-to-test-rules-against-firebase.md +93 -0
  618. package/dist/serve/docs-ui/docs/pyric-rules-reference-api/index.html +129 -0
  619. package/dist/serve/docs-ui/docs/pyric-rules-reference-api.md +176 -0
  620. package/dist/serve/docs-ui/docs/pyric-rules-reference-ast/index.html +85 -0
  621. package/dist/serve/docs-ui/docs/pyric-rules-reference-ast.md +105 -0
  622. package/dist/serve/docs-ui/docs/pyric-rules-reference-errors/index.html +63 -0
  623. package/dist/serve/docs-ui/docs/pyric-rules-reference-errors.md +89 -0
  624. package/dist/serve/docs-ui/docs/pyric-rules-reference-lint-rules/index.html +148 -0
  625. package/dist/serve/docs-ui/docs/pyric-rules-reference-lint-rules.md +159 -0
  626. package/dist/serve/docs-ui/docs/pyric-rules-reference-simulator-context/index.html +66 -0
  627. package/dist/serve/docs-ui/docs/pyric-rules-reference-simulator-context.md +98 -0
  628. package/dist/serve/docs-ui/docs/pyric-rules-reference-stdlib-modules/index.html +239 -0
  629. package/dist/serve/docs-ui/docs/pyric-rules-reference-stdlib-modules.md +135 -0
  630. package/dist/serve/docs-ui/docs/pyric-rules-reference-test-case-schema/index.html +93 -0
  631. package/dist/serve/docs-ui/docs/pyric-rules-reference-test-case-schema.md +109 -0
  632. package/dist/serve/docs-ui/docs/pyric-rules-reference-validator-findings/index.html +86 -0
  633. package/dist/serve/docs-ui/docs/pyric-rules-reference-validator-findings.md +113 -0
  634. package/dist/serve/docs-ui/docs/pyric-rules-reference-value-wrappers/index.html +101 -0
  635. package/dist/serve/docs-ui/docs/pyric-rules-reference-value-wrappers.md +134 -0
  636. package/dist/serve/docs-ui/docs/pyric-rules-tutorials-01-lint-your-first-rules-file/index.html +107 -0
  637. package/dist/serve/docs-ui/docs/pyric-rules-tutorials-01-lint-your-first-rules-file.md +142 -0
  638. package/dist/serve/docs-ui/docs/pyric-rules-tutorials-02-write-a-test-suite-for-your-rules/index.html +151 -0
  639. package/dist/serve/docs-ui/docs/pyric-rules-tutorials-02-write-a-test-suite-for-your-rules.md +194 -0
  640. package/dist/serve/docs-ui/docs/pyric-rules.md +88 -0
  641. package/dist/serve/docs-ui/docs/pyric-sandbox/index.html +67 -0
  642. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-every-op-is-a-request/index.html +141 -0
  643. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-every-op-is-a-request.md +157 -0
  644. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-identity-is-a-context/index.html +66 -0
  645. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-identity-is-a-context.md +98 -0
  646. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-internal-adapter-protocol/index.html +71 -0
  647. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-internal-adapter-protocol.md +105 -0
  648. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-listener-re-evaluation/index.html +56 -0
  649. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-listener-re-evaluation.md +80 -0
  650. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-local-backend-vs-firestore-offline/index.html +64 -0
  651. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-local-backend-vs-firestore-offline.md +56 -0
  652. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-why-adapters-are-siblings/index.html +88 -0
  653. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-why-adapters-are-siblings.md +87 -0
  654. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-why-this-package-exists/index.html +69 -0
  655. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-why-this-package-exists.md +57 -0
  656. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-multiple-isolated-sandboxes/index.html +63 -0
  657. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-multiple-isolated-sandboxes.md +83 -0
  658. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-observe-events/index.html +159 -0
  659. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-observe-events.md +154 -0
  660. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-pick-an-adapter/index.html +79 -0
  661. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-pick-an-adapter.md +69 -0
  662. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-replay-events/index.html +89 -0
  663. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-replay-events.md +87 -0
  664. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-reset-between-tests/index.html +68 -0
  665. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-reset-between-tests.md +86 -0
  666. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-seed-data-and-rules/index.html +91 -0
  667. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-seed-data-and-rules.md +112 -0
  668. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-switch-users/index.html +50 -0
  669. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-switch-users.md +70 -0
  670. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-use-admin-reads/index.html +54 -0
  671. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-use-admin-reads.md +73 -0
  672. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-api/index.html +77 -0
  673. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-api.md +117 -0
  674. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-divergences/index.html +125 -0
  675. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-divergences.md +137 -0
  676. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-error-codes/index.html +110 -0
  677. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-error-codes.md +114 -0
  678. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-internal-protocol/index.html +72 -0
  679. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-internal-protocol.md +99 -0
  680. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-sandbox-and-context/index.html +90 -0
  681. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-sandbox-and-context.md +128 -0
  682. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-sandbox-event/index.html +146 -0
  683. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-sandbox-event.md +188 -0
  684. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-snapshot-and-admin/index.html +53 -0
  685. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-snapshot-and-admin.md +77 -0
  686. package/dist/serve/docs-ui/docs/pyric-sandbox-tutorials-01-your-first-sandbox-session/index.html +115 -0
  687. package/dist/serve/docs-ui/docs/pyric-sandbox-tutorials-01-your-first-sandbox-session.md +154 -0
  688. package/dist/serve/docs-ui/docs/pyric-sandbox-tutorials-02-use-the-sandbox-in-a-test-harness/index.html +191 -0
  689. package/dist/serve/docs-ui/docs/pyric-sandbox-tutorials-02-use-the-sandbox-in-a-test-harness.md +222 -0
  690. package/dist/serve/docs-ui/docs/pyric-sandbox-tutorials-03-build-a-traffic-monitor/index.html +163 -0
  691. package/dist/serve/docs-ui/docs/pyric-sandbox-tutorials-03-build-a-traffic-monitor.md +192 -0
  692. package/dist/serve/docs-ui/docs/pyric-sandbox.md +63 -0
  693. package/dist/serve/docs-ui/docs/pyric-storage/index.html +65 -0
  694. package/dist/serve/docs-ui/docs/pyric-storage-compat/index.html +1076 -0
  695. package/dist/serve/docs-ui/docs/pyric-storage-compat.md +337 -0
  696. package/dist/serve/docs-ui/docs/pyric-storage-explanation-implementation-scope/index.html +63 -0
  697. package/dist/serve/docs-ui/docs/pyric-storage-explanation-implementation-scope.md +104 -0
  698. package/dist/serve/docs-ui/docs/pyric-storage-explanation-session-archive-use-case/index.html +58 -0
  699. package/dist/serve/docs-ui/docs/pyric-storage-explanation-session-archive-use-case.md +80 -0
  700. package/dist/serve/docs-ui/docs/pyric-storage-explanation-why-indexeddb/index.html +50 -0
  701. package/dist/serve/docs-ui/docs/pyric-storage-explanation-why-indexeddb.md +82 -0
  702. package/dist/serve/docs-ui/docs/pyric-storage-how-to-enforce-rules/index.html +104 -0
  703. package/dist/serve/docs-ui/docs/pyric-storage-how-to-enforce-rules.md +111 -0
  704. package/dist/serve/docs-ui/docs/pyric-storage-how-to-list-and-delete/index.html +53 -0
  705. package/dist/serve/docs-ui/docs/pyric-storage-how-to-list-and-delete.md +76 -0
  706. package/dist/serve/docs-ui/docs/pyric-storage-how-to-round-trip-metadata/index.html +77 -0
  707. package/dist/serve/docs-ui/docs/pyric-storage-how-to-round-trip-metadata.md +100 -0
  708. package/dist/serve/docs-ui/docs/pyric-storage-how-to-switch-backends/index.html +65 -0
  709. package/dist/serve/docs-ui/docs/pyric-storage-how-to-switch-backends.md +82 -0
  710. package/dist/serve/docs-ui/docs/pyric-storage-how-to-test-rule-expressions/index.html +70 -0
  711. package/dist/serve/docs-ui/docs/pyric-storage-how-to-test-rule-expressions.md +82 -0
  712. package/dist/serve/docs-ui/docs/pyric-storage-reference-api/index.html +92 -0
  713. package/dist/serve/docs-ui/docs/pyric-storage-reference-api.md +152 -0
  714. package/dist/serve/docs-ui/docs/pyric-storage-reference-error-codes/index.html +46 -0
  715. package/dist/serve/docs-ui/docs/pyric-storage-reference-error-codes.md +66 -0
  716. package/dist/serve/docs-ui/docs/pyric-storage-reference-rules-subset/index.html +73 -0
  717. package/dist/serve/docs-ui/docs/pyric-storage-reference-rules-subset.md +90 -0
  718. package/dist/serve/docs-ui/docs/pyric-storage-reference-storage-options/index.html +45 -0
  719. package/dist/serve/docs-ui/docs/pyric-storage-reference-storage-options.md +65 -0
  720. package/dist/serve/docs-ui/docs/pyric-storage-tutorials-01-upload-and-download/index.html +114 -0
  721. package/dist/serve/docs-ui/docs/pyric-storage-tutorials-01-upload-and-download.md +141 -0
  722. package/dist/serve/docs-ui/docs/pyric-storage.md +63 -0
  723. package/dist/serve/docs-ui/docs/pyric-tools/index.html +45 -0
  724. package/dist/serve/docs-ui/docs/pyric-tools-bridge/index.html +71 -0
  725. package/dist/serve/docs-ui/docs/pyric-tools-bridge.md +90 -0
  726. package/dist/serve/docs-ui/docs/pyric-tools-deploy/index.html +59 -0
  727. package/dist/serve/docs-ui/docs/pyric-tools-deploy-explanation-primitives-vs-orchestrators/index.html +63 -0
  728. package/dist/serve/docs-ui/docs/pyric-tools-deploy-explanation-primitives-vs-orchestrators.md +83 -0
  729. package/dist/serve/docs-ui/docs/pyric-tools-deploy-explanation-token-caching/index.html +47 -0
  730. package/dist/serve/docs-ui/docs/pyric-tools-deploy-explanation-token-caching.md +70 -0
  731. package/dist/serve/docs-ui/docs/pyric-tools-deploy-explanation-why-no-firebase-cli/index.html +36 -0
  732. package/dist/serve/docs-ui/docs/pyric-tools-deploy-explanation-why-no-firebase-cli.md +50 -0
  733. package/dist/serve/docs-ui/docs/pyric-tools-deploy-explanation-why-this-package-exists/index.html +47 -0
  734. package/dist/serve/docs-ui/docs/pyric-tools-deploy-explanation-why-this-package-exists.md +60 -0
  735. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-build-projectscope-from-firebase-auth/index.html +55 -0
  736. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-build-projectscope-from-firebase-auth.md +68 -0
  737. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-build-projectscope-from-service-account/index.html +35 -0
  738. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-build-projectscope-from-service-account.md +52 -0
  739. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-bundle-and-deploy-a-function/index.html +81 -0
  740. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-bundle-and-deploy-a-function.md +98 -0
  741. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-deploy-firestore-indexes/index.html +71 -0
  742. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-deploy-firestore-indexes.md +91 -0
  743. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-deploy-firestore-rules/index.html +100 -0
  744. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-deploy-firestore-rules.md +105 -0
  745. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-deploy-hosting-rewrites/index.html +86 -0
  746. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-deploy-hosting-rewrites.md +92 -0
  747. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-deploy-realtime-database-rules/index.html +132 -0
  748. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-deploy-realtime-database-rules.md +165 -0
  749. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-deploy-to-a-preview-channel/index.html +46 -0
  750. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-deploy-to-a-preview-channel.md +62 -0
  751. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-handle-errors-and-outcomes/index.html +75 -0
  752. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-handle-errors-and-outcomes.md +94 -0
  753. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-provision-a-firestore-database/index.html +48 -0
  754. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-provision-a-firestore-database.md +65 -0
  755. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-register-tools-with-an-agent/index.html +65 -0
  756. package/dist/serve/docs-ui/docs/pyric-tools-deploy-how-to-register-tools-with-an-agent.md +82 -0
  757. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-api/index.html +155 -0
  758. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-api.md +190 -0
  759. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-cli-agent-io/index.html +84 -0
  760. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-cli-agent-io.md +66 -0
  761. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-error-codes/index.html +71 -0
  762. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-error-codes.md +102 -0
  763. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-firestore-namespace/index.html +138 -0
  764. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-firestore-namespace.md +175 -0
  765. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-functions-namespace/index.html +105 -0
  766. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-functions-namespace.md +133 -0
  767. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-hosting-config/index.html +194 -0
  768. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-hosting-config.md +95 -0
  769. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-hosting-namespace/index.html +99 -0
  770. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-hosting-namespace.md +126 -0
  771. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-rtdb-namespace/index.html +110 -0
  772. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-rtdb-namespace.md +133 -0
  773. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-scope-and-outcome/index.html +68 -0
  774. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-scope-and-outcome.md +88 -0
  775. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-tool-factories/index.html +160 -0
  776. package/dist/serve/docs-ui/docs/pyric-tools-deploy-reference-tool-factories.md +104 -0
  777. package/dist/serve/docs-ui/docs/pyric-tools-deploy-tutorials-01-deploy-a-cloud-function/index.html +88 -0
  778. package/dist/serve/docs-ui/docs/pyric-tools-deploy-tutorials-01-deploy-a-cloud-function.md +119 -0
  779. package/dist/serve/docs-ui/docs/pyric-tools-deploy.md +52 -0
  780. package/dist/serve/docs-ui/docs/pyric-tools-how-to-build-a-standalone-binary/index.html +92 -0
  781. package/dist/serve/docs-ui/docs/pyric-tools-how-to-build-a-standalone-binary.md +95 -0
  782. package/dist/serve/docs-ui/docs/pyric-tools-how-to-configure-auth-providers-and-domains/index.html +101 -0
  783. package/dist/serve/docs-ui/docs/pyric-tools-how-to-configure-auth-providers-and-domains.md +126 -0
  784. package/dist/serve/docs-ui/docs/pyric-tools-how-to-discover-a-schema-from-firestore/index.html +95 -0
  785. package/dist/serve/docs-ui/docs/pyric-tools-how-to-discover-a-schema-from-firestore.md +119 -0
  786. package/dist/serve/docs-ui/docs/pyric-tools-how-to-promote-sandbox-state-to-a-fixture/index.html +52 -0
  787. package/dist/serve/docs-ui/docs/pyric-tools-how-to-promote-sandbox-state-to-a-fixture.md +83 -0
  788. package/dist/serve/docs-ui/docs/pyric-tools-how-to-serve-persistence-and-multi-tab/index.html +232 -0
  789. package/dist/serve/docs-ui/docs/pyric-tools-how-to-serve-persistence-and-multi-tab.md +178 -0
  790. package/dist/serve/docs-ui/docs/pyric-tools-how-to-use-the-vite-plugin/index.html +340 -0
  791. package/dist/serve/docs-ui/docs/pyric-tools-how-to-use-the-vite-plugin.md +288 -0
  792. package/dist/serve/docs-ui/docs/pyric-tools-how-to-verify-against-a-captured-session/index.html +128 -0
  793. package/dist/serve/docs-ui/docs/pyric-tools-how-to-verify-against-a-captured-session.md +173 -0
  794. package/dist/serve/docs-ui/docs/pyric-tools-reference-cli/index.html +433 -0
  795. package/dist/serve/docs-ui/docs/pyric-tools-reference-cli.md +252 -0
  796. package/dist/serve/docs-ui/docs/pyric-tools-reference-verify/index.html +81 -0
  797. package/dist/serve/docs-ui/docs/pyric-tools-reference-verify.md +98 -0
  798. package/dist/serve/docs-ui/docs/pyric-tools-tutorials-getting-started/index.html +92 -0
  799. package/dist/serve/docs-ui/docs/pyric-tools-tutorials-getting-started.md +117 -0
  800. package/dist/serve/docs-ui/docs/pyric-tools-tutorials-server-adoption/index.html +221 -0
  801. package/dist/serve/docs-ui/docs/pyric-tools-tutorials-server-adoption.md +239 -0
  802. package/dist/serve/docs-ui/docs/pyric-tools-tutorials-wire-claude-code/index.html +205 -0
  803. package/dist/serve/docs-ui/docs/pyric-tools-tutorials-wire-claude-code.md +250 -0
  804. package/dist/serve/docs-ui/docs/pyric-tools.md +47 -0
  805. package/dist/serve/docs-ui/docs/ui/index.html +76 -0
  806. package/dist/serve/docs-ui/docs/ui-auth-authsigninhelper/index.html +194 -0
  807. package/dist/serve/docs-ui/docs/ui-auth-authsigninhelper.md +108 -0
  808. package/dist/serve/docs-ui/docs/ui-auth-authusers/index.html +258 -0
  809. package/dist/serve/docs-ui/docs/ui-auth-authusers.md +174 -0
  810. package/dist/serve/docs-ui/docs/ui-firestore-collectionlist/index.html +92 -0
  811. package/dist/serve/docs-ui/docs/ui-firestore-collectionlist.md +71 -0
  812. package/dist/serve/docs-ui/docs/ui-firestore-deletewithconfirm/index.html +128 -0
  813. package/dist/serve/docs-ui/docs/ui-firestore-deletewithconfirm.md +94 -0
  814. package/dist/serve/docs-ui/docs/ui-firestore-documenteditor/index.html +154 -0
  815. package/dist/serve/docs-ui/docs/ui-firestore-documenteditor.md +107 -0
  816. package/dist/serve/docs-ui/docs/ui-firestore-documentlist/index.html +132 -0
  817. package/dist/serve/docs-ui/docs/ui-firestore-documentlist.md +86 -0
  818. package/dist/serve/docs-ui/docs/ui-firestore-documentpreview/index.html +159 -0
  819. package/dist/serve/docs-ui/docs/ui-firestore-documentpreview.md +78 -0
  820. package/dist/serve/docs-ui/docs/ui-firestore-querybuilder/index.html +104 -0
  821. package/dist/serve/docs-ui/docs/ui-firestore-querybuilder.md +95 -0
  822. package/dist/serve/docs-ui/docs/ui-firestore-referencepicker/index.html +113 -0
  823. package/dist/serve/docs-ui/docs/ui-firestore-referencepicker.md +85 -0
  824. package/dist/serve/docs-ui/docs/ui-primitives-badge/index.html +56 -0
  825. package/dist/serve/docs-ui/docs/ui-primitives-badge.md +34 -0
  826. package/dist/serve/docs-ui/docs/ui-primitives-confirmdialog/index.html +140 -0
  827. package/dist/serve/docs-ui/docs/ui-primitives-confirmdialog.md +98 -0
  828. package/dist/serve/docs-ui/docs/ui-primitives-copybutton/index.html +58 -0
  829. package/dist/serve/docs-ui/docs/ui-primitives-copybutton.md +31 -0
  830. package/dist/serve/docs-ui/docs/ui-primitives-jsonview/index.html +58 -0
  831. package/dist/serve/docs-ui/docs/ui-primitives-jsonview.md +41 -0
  832. package/dist/serve/docs-ui/docs/ui-primitives-segmentedcontrol/index.html +70 -0
  833. package/dist/serve/docs-ui/docs/ui-primitives-segmentedcontrol.md +44 -0
  834. package/dist/serve/docs-ui/docs/ui-primitives-toast/index.html +87 -0
  835. package/dist/serve/docs-ui/docs/ui-primitives-toast.md +74 -0
  836. package/dist/serve/docs-ui/docs/ui-primitives-virtuallist/index.html +85 -0
  837. package/dist/serve/docs-ui/docs/ui-primitives-virtuallist.md +48 -0
  838. package/dist/serve/docs-ui/docs/ui-storage/index.html +154 -0
  839. package/dist/serve/docs-ui/docs/ui-storage-deleteselectionwithconfirm/index.html +127 -0
  840. package/dist/serve/docs-ui/docs/ui-storage-deleteselectionwithconfirm.md +83 -0
  841. package/dist/serve/docs-ui/docs/ui-storage-objectbrowser/index.html +137 -0
  842. package/dist/serve/docs-ui/docs/ui-storage-objectbrowser.md +84 -0
  843. package/dist/serve/docs-ui/docs/ui-storage-objectinspector/index.html +139 -0
  844. package/dist/serve/docs-ui/docs/ui-storage-objectinspector.md +87 -0
  845. package/dist/serve/docs-ui/docs/ui-storage-pathbreadcrumb/index.html +72 -0
  846. package/dist/serve/docs-ui/docs/ui-storage-pathbreadcrumb.md +51 -0
  847. package/dist/serve/docs-ui/docs/ui-storage-rules-aware-affordances/index.html +65 -0
  848. package/dist/serve/docs-ui/docs/ui-storage-rules-aware-affordances.md +53 -0
  849. package/dist/serve/docs-ui/docs/ui-storage-uploaddropzone/index.html +93 -0
  850. package/dist/serve/docs-ui/docs/ui-storage-uploaddropzone.md +72 -0
  851. package/dist/serve/docs-ui/docs/ui-storage-usestoragerulesgate/index.html +153 -0
  852. package/dist/serve/docs-ui/docs/ui-storage-usestoragerulesgate.md +105 -0
  853. package/dist/serve/docs-ui/docs/ui-storage.md +165 -0
  854. package/dist/serve/docs-ui/docs/ui-traffic/index.html +88 -0
  855. package/dist/serve/docs-ui/docs/ui-traffic-ruleheatmap/index.html +79 -0
  856. package/dist/serve/docs-ui/docs/ui-traffic-ruleheatmap.md +54 -0
  857. package/dist/serve/docs-ui/docs/ui-traffic-trafficdetail/index.html +78 -0
  858. package/dist/serve/docs-ui/docs/ui-traffic-trafficdetail.md +53 -0
  859. package/dist/serve/docs-ui/docs/ui-traffic-trafficlog/index.html +118 -0
  860. package/dist/serve/docs-ui/docs/ui-traffic-trafficlog.md +63 -0
  861. package/dist/serve/docs-ui/docs/ui-traffic-trafficstats/index.html +51 -0
  862. package/dist/serve/docs-ui/docs/ui-traffic-trafficstats.md +40 -0
  863. package/dist/serve/docs-ui/docs/ui-traffic.md +96 -0
  864. package/dist/serve/docs-ui/docs/ui.md +88 -0
  865. package/dist/serve/docs-ui/index.html +1 -0
  866. package/dist/serve/docs-ui/llms.txt +221 -0
  867. package/dist/serve/entries/app.d.ts +26 -0
  868. package/dist/serve/entries/app.d.ts.map +1 -0
  869. package/dist/serve/entries/app.js +51 -0
  870. package/dist/serve/entries/app.js.map +1 -0
  871. package/dist/serve/entries/auth-helper-core.d.ts +47 -0
  872. package/dist/serve/entries/auth-helper-core.d.ts.map +1 -0
  873. package/dist/serve/entries/auth-helper-core.js +121 -0
  874. package/dist/serve/entries/auth-helper-core.js.map +1 -0
  875. package/dist/serve/entries/auth-helper-dom.d.ts +14 -0
  876. package/dist/serve/entries/auth-helper-dom.d.ts.map +1 -0
  877. package/dist/serve/entries/auth-helper-dom.js +116 -0
  878. package/dist/serve/entries/auth-helper-dom.js.map +1 -0
  879. package/dist/serve/entries/auth.d.ts +62 -0
  880. package/dist/serve/entries/auth.d.ts.map +1 -0
  881. package/dist/serve/entries/auth.js +128 -0
  882. package/dist/serve/entries/auth.js.map +1 -0
  883. package/dist/serve/entries/bridge-url.d.ts +25 -0
  884. package/dist/serve/entries/bridge-url.d.ts.map +1 -0
  885. package/dist/serve/entries/bridge-url.js +30 -0
  886. package/dist/serve/entries/bridge-url.js.map +1 -0
  887. package/dist/serve/entries/database.d.ts +34 -0
  888. package/dist/serve/entries/database.d.ts.map +1 -0
  889. package/dist/serve/entries/database.js +42 -0
  890. package/dist/serve/entries/database.js.map +1 -0
  891. package/dist/serve/entries/firestore.d.ts +68 -0
  892. package/dist/serve/entries/firestore.d.ts.map +1 -0
  893. package/dist/serve/entries/firestore.js +115 -0
  894. package/dist/serve/entries/firestore.js.map +1 -0
  895. package/dist/serve/entries/init.d.ts +2 -0
  896. package/dist/serve/entries/init.d.ts.map +1 -0
  897. package/dist/serve/entries/init.js +14 -0
  898. package/dist/serve/entries/init.js.map +1 -0
  899. package/dist/serve/entries/keepalive.d.ts +20 -0
  900. package/dist/serve/entries/keepalive.d.ts.map +1 -0
  901. package/dist/serve/entries/keepalive.js +38 -0
  902. package/dist/serve/entries/keepalive.js.map +1 -0
  903. package/dist/serve/entries/runtime.d.ts +60 -0
  904. package/dist/serve/entries/runtime.d.ts.map +1 -0
  905. package/dist/serve/entries/runtime.js +555 -0
  906. package/dist/serve/entries/runtime.js.map +1 -0
  907. package/dist/serve/entries/session-store.d.ts +45 -0
  908. package/dist/serve/entries/session-store.d.ts.map +1 -0
  909. package/dist/serve/entries/session-store.js +71 -0
  910. package/dist/serve/entries/session-store.js.map +1 -0
  911. package/dist/serve/entries/storage.d.ts +23 -0
  912. package/dist/serve/entries/storage.d.ts.map +1 -0
  913. package/dist/serve/entries/storage.js +49 -0
  914. package/dist/serve/entries/storage.js.map +1 -0
  915. package/dist/serve/entries/tab-sync-wiring.d.ts +88 -0
  916. package/dist/serve/entries/tab-sync-wiring.d.ts.map +1 -0
  917. package/dist/serve/entries/tab-sync-wiring.js +217 -0
  918. package/dist/serve/entries/tab-sync-wiring.js.map +1 -0
  919. package/dist/serve/namespace.d.ts +93 -0
  920. package/dist/serve/namespace.d.ts.map +1 -0
  921. package/dist/serve/namespace.js +367 -0
  922. package/dist/serve/namespace.js.map +1 -0
  923. package/dist/serve/open-browser.d.ts +23 -0
  924. package/dist/serve/open-browser.d.ts.map +1 -0
  925. package/dist/serve/open-browser.js +58 -0
  926. package/dist/serve/open-browser.js.map +1 -0
  927. package/dist/serve/playground-ui/_astro/HomePage.BFOjZGZp.js +2 -0
  928. package/dist/serve/playground-ui/_astro/PlaygroundPage.3jki8il0.js +3300 -0
  929. package/dist/serve/playground-ui/_astro/PlaygroundPage.MhP_vFvK.css +32 -0
  930. package/dist/serve/playground-ui/_astro/TopBar.ChifCjLD.js +5025 -0
  931. package/dist/serve/playground-ui/_astro/client.D61DpmEZ.js +274 -0
  932. package/dist/serve/playground-ui/_astro/client.GCK88uRs.js +1 -0
  933. package/dist/serve/playground-ui/_astro/esbuild.BHljloGq.wasm +0 -0
  934. package/dist/serve/playground-ui/_astro/index.B9aLOeXL.js +29 -0
  935. package/dist/serve/playground-ui/_astro/index.BTKE7uRF.js +1227 -0
  936. package/dist/serve/playground-ui/_astro/index.BfCthstx.css +1 -0
  937. package/dist/serve/playground-ui/_astro/index.Mr0Dtjih.js +342 -0
  938. package/dist/serve/playground-ui/_astro/ort-wasm-simd-threaded.asyncify.DMmc6YqF.wasm +0 -0
  939. package/dist/serve/playground-ui/favicon.svg +4 -0
  940. package/dist/serve/playground-ui/index.html +2 -0
  941. package/dist/serve/playground-ui/playground/index.html +2 -0
  942. package/dist/serve/rules.d.ts +45 -0
  943. package/dist/serve/rules.d.ts.map +1 -0
  944. package/dist/serve/rules.js +139 -0
  945. package/dist/serve/rules.js.map +1 -0
  946. package/dist/serve/sandbox-marker.d.ts +9 -0
  947. package/dist/serve/sandbox-marker.d.ts.map +1 -0
  948. package/dist/serve/sandbox-marker.js +32 -0
  949. package/dist/serve/sandbox-marker.js.map +1 -0
  950. package/dist/serve/server.d.ts +135 -0
  951. package/dist/serve/server.d.ts.map +1 -0
  952. package/dist/serve/server.js +328 -0
  953. package/dist/serve/server.js.map +1 -0
  954. package/dist/serve/standalone-assets.d.ts +66 -0
  955. package/dist/serve/standalone-assets.d.ts.map +1 -0
  956. package/dist/serve/standalone-assets.js +144 -0
  957. package/dist/serve/standalone-assets.js.map +1 -0
  958. package/dist/serve/state-store.d.ts +45 -0
  959. package/dist/serve/state-store.d.ts.map +1 -0
  960. package/dist/serve/state-store.js +120 -0
  961. package/dist/serve/state-store.js.map +1 -0
  962. package/dist/serve/studio/disk-project-store.d.ts +9 -0
  963. package/dist/serve/studio/disk-project-store.d.ts.map +1 -0
  964. package/dist/serve/studio/disk-project-store.js +173 -0
  965. package/dist/serve/studio/disk-project-store.js.map +1 -0
  966. package/dist/serve/studio/disk-workspace.d.ts +14 -0
  967. package/dist/serve/studio/disk-workspace.d.ts.map +1 -0
  968. package/dist/serve/studio/disk-workspace.js +152 -0
  969. package/dist/serve/studio/disk-workspace.js.map +1 -0
  970. package/dist/serve/studio/index.d.ts +10 -0
  971. package/dist/serve/studio/index.d.ts.map +1 -0
  972. package/dist/serve/studio/index.js +9 -0
  973. package/dist/serve/studio/index.js.map +1 -0
  974. package/dist/serve/studio/routes.d.ts +40 -0
  975. package/dist/serve/studio/routes.d.ts.map +1 -0
  976. package/dist/serve/studio/routes.js +182 -0
  977. package/dist/serve/studio/routes.js.map +1 -0
  978. package/dist/serve/studio/store-types.d.ts +45 -0
  979. package/dist/serve/studio/store-types.d.ts.map +1 -0
  980. package/dist/serve/studio/store-types.js +11 -0
  981. package/dist/serve/studio/store-types.js.map +1 -0
  982. package/dist/serve/studio-ui/assets/RulesCodeEditor-Bncteb8z.js +23 -0
  983. package/dist/serve/studio-ui/assets/index-CmkJxFcG.js +4577 -0
  984. package/dist/serve/studio-ui/assets/index-DNK39P6C.css +1 -0
  985. package/dist/serve/studio-ui/assets/seed-Bab4ArXQ.js +2 -0
  986. package/dist/serve/studio-ui/index.html +32 -0
  987. package/dist/serve/studio-ui/pyric-logo.svg +76 -0
  988. package/dist/serve/vite-plugin.d.ts +57 -0
  989. package/dist/serve/vite-plugin.d.ts.map +1 -0
  990. package/dist/serve/vite-plugin.js +687 -0
  991. package/dist/serve/vite-plugin.js.map +1 -0
  992. package/dist/serve/worker/client.d.ts +668 -0
  993. package/dist/serve/worker/client.d.ts.map +1 -0
  994. package/dist/serve/worker/client.js +1635 -0
  995. package/dist/serve/worker/client.js.map +1 -0
  996. package/dist/serve/worker/entry.d.ts +40 -0
  997. package/dist/serve/worker/entry.d.ts.map +1 -0
  998. package/dist/serve/worker/entry.js +122 -0
  999. package/dist/serve/worker/entry.js.map +1 -0
  1000. package/dist/serve/worker/host-auth.d.ts +47 -0
  1001. package/dist/serve/worker/host-auth.d.ts.map +1 -0
  1002. package/dist/serve/worker/host-auth.js +434 -0
  1003. package/dist/serve/worker/host-auth.js.map +1 -0
  1004. package/dist/serve/worker/host-context.d.ts +180 -0
  1005. package/dist/serve/worker/host-context.d.ts.map +1 -0
  1006. package/dist/serve/worker/host-context.js +45 -0
  1007. package/dist/serve/worker/host-context.js.map +1 -0
  1008. package/dist/serve/worker/host-events.d.ts +21 -0
  1009. package/dist/serve/worker/host-events.d.ts.map +1 -0
  1010. package/dist/serve/worker/host-events.js +87 -0
  1011. package/dist/serve/worker/host-events.js.map +1 -0
  1012. package/dist/serve/worker/host.d.ts +81 -0
  1013. package/dist/serve/worker/host.d.ts.map +1 -0
  1014. package/dist/serve/worker/host.js +1605 -0
  1015. package/dist/serve/worker/host.js.map +1 -0
  1016. package/dist/serve/worker/index.d.ts +22 -0
  1017. package/dist/serve/worker/index.d.ts.map +1 -0
  1018. package/dist/serve/worker/index.js +61 -0
  1019. package/dist/serve/worker/index.js.map +1 -0
  1020. package/dist/serve/worker/protocol.d.ts +955 -0
  1021. package/dist/serve/worker/protocol.d.ts.map +1 -0
  1022. package/dist/serve/worker/protocol.js +197 -0
  1023. package/dist/serve/worker/protocol.js.map +1 -0
  1024. package/dist/serve/worker/serve-init.d.ts +192 -0
  1025. package/dist/serve/worker/serve-init.d.ts.map +1 -0
  1026. package/dist/serve/worker/serve-init.js +555 -0
  1027. package/dist/serve/worker/serve-init.js.map +1 -0
  1028. package/dist/serve/writer-lock.d.ts +32 -0
  1029. package/dist/serve/writer-lock.d.ts.map +1 -0
  1030. package/dist/serve/writer-lock.js +43 -0
  1031. package/dist/serve/writer-lock.js.map +1 -0
  1032. package/dist/verify/cases.d.ts +37 -0
  1033. package/dist/verify/cases.d.ts.map +1 -0
  1034. package/dist/verify/cases.js +173 -0
  1035. package/dist/verify/cases.js.map +1 -0
  1036. package/dist/verify/fixture.d.ts +79 -0
  1037. package/dist/verify/fixture.d.ts.map +1 -0
  1038. package/dist/verify/fixture.js +114 -0
  1039. package/dist/verify/fixture.js.map +1 -0
  1040. package/dist/verify/index.d.ts +102 -0
  1041. package/dist/verify/index.d.ts.map +1 -0
  1042. package/dist/verify/index.js +318 -0
  1043. package/dist/verify/index.js.map +1 -0
  1044. package/dist/verify/tools.d.ts +7 -0
  1045. package/dist/verify/tools.d.ts.map +1 -0
  1046. package/dist/verify/tools.js +83 -0
  1047. package/dist/verify/tools.js.map +1 -0
  1048. package/dist/vite.d.ts +12 -0
  1049. package/dist/vite.d.ts.map +1 -0
  1050. package/dist/vite.js +16 -0
  1051. package/dist/vite.js.map +1 -0
  1052. package/package.json +127 -0
@@ -0,0 +1 @@
1
+ [data-pyric-ui=fs-browser]{display:flex;flex-direction:column;min-height:0;border:1px solid var(--color-border);border-radius:8px;overflow:hidden;background:var(--color-content-bg)}[data-pyric-ui=fs-breadcrumb]{display:flex;align-items:center;gap:6px;padding:9px 14px;border-bottom:1px solid var(--color-border);font-family:var(--font-mono);font-size:var(--fs-data);overflow-x:auto;white-space:nowrap}[data-pyric-ui=fs-breadcrumb] .fs-crumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;padding:0;font:inherit;color:var(--color-primary);cursor:pointer}[data-pyric-ui=fs-breadcrumb] .fs-crumb:hover{text-decoration:underline}[data-pyric-ui=fs-breadcrumb] .fs-crumb--current{color:var(--color-soft-white);cursor:default;text-decoration:none}[data-pyric-ui=fs-breadcrumb] .fs-crumb-sep{color:var(--color-slate-gray)}[data-pyric-ui=fs-browser] .fs-columns{display:flex;flex:1 1 auto;min-height:0;overflow:hidden}[data-pyric-ui=fs-browser] .fs-col{flex:1 1 0;min-width:0;overflow-y:auto;border-right:1px solid var(--color-border);min-height:0;animation:fs-col-in .26s ease}[data-pyric-ui=fs-browser] .fs-col:last-child{flex:1.7 1 0;border-right:none}[data-pyric-ui=fs-browser] .fs-col--empty{animation:none;display:flex;align-items:center;justify-content:center}[data-pyric-ui=fs-browser] .fs-col--empty .fs-empty{text-align:center;max-width:80%}@keyframes fs-col-in{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){[data-pyric-ui=fs-browser] .fs-col{animation:none}}[data-pyric-ui=fs-browser] .fs-pane{overflow:auto;min-height:0}[data-pyric-ui=fs-browser] .fs-phead{position:sticky;top:0;z-index:1;background:var(--color-content-bg);display:flex;align-items:baseline;gap:8px;padding:12px 16px 9px;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--color-slate-gray);border-bottom:1px solid var(--color-border)}[data-pyric-ui=fs-browser] .fs-phead .fs-add{margin-left:auto;color:var(--color-primary);letter-spacing:0;text-transform:none;font-size:12px;background:none;border:none;font-family:inherit;cursor:pointer}[data-pyric-ui=fs-browser] .fs-phead-actions{display:flex;align-items:baseline;gap:14px;margin-left:auto}[data-pyric-ui=fs-browser] .fs-phead-actions .fs-add{margin-left:0}[data-pyric-ui=fs-browser] .fs-create{display:flex;flex-direction:column;gap:16px;padding:12px 18px 24px}[data-pyric-ui=fs-browser] .fs-create__group{display:flex;flex-direction:column;gap:6px}[data-pyric-ui=fs-browser] .fs-create__label{font-size:var(--fs-label);color:var(--color-slate-gray)}[data-pyric-ui=fs-browser] .fs-create input[type=text],[data-pyric-ui=fs-browser] .fs-create input[type=file]{font:inherit;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:6px;padding:6px 8px}[data-pyric-ui=fs-browser] .fs-create input[type=text]:focus{outline:none;border-color:var(--color-primary)}[data-pyric-ui=fs-browser] .fs-create__err{color:var(--color-danger);font-size:var(--fs-caption)}[data-pyric-ui=fs-browser] .fs-create__actions{display:flex;gap:10px}.fs-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:color-mix(in srgb,var(--color-content-bg) 55%,transparent);-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);display:flex;align-items:flex-start;justify-content:center;padding:9vh 16px 16px}.fs-modal{display:flex;flex-direction:column;gap:16px;width:min(560px,100%);max-height:82vh;overflow:auto;background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:10px;padding:18px 20px 20px;box-shadow:0 18px 48px color-mix(in srgb,#000 35%,transparent)}.fs-modal__title{margin:0;font-size:14px;font-weight:600;color:var(--color-soft-white)}.fs-modal__group{display:flex;flex-direction:column;gap:6px}.fs-modal__label{font-size:var(--fs-label);color:var(--color-slate-gray)}.fs-modal__path{font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-slate-gray);overflow-wrap:anywhere}.fs-modal__group input[type=text]{font:inherit;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:6px;padding:6px 8px}.fs-modal__group input[type=text]:focus{outline:none;border-color:var(--color-primary)}.fs-modal__err{margin:0;color:var(--color-danger);font-size:var(--fs-caption)}.fs-modal__hint{color:var(--color-slate-gray);font-size:var(--fs-caption)}.fs-modal__fields{border:1px solid var(--color-border);border-radius:8px;padding:4px 12px 10px}.fs-modal__actions{display:flex;justify-content:flex-end;gap:10px}[data-pyric-ui=fs-browser] .fs-import__textarea{width:100%;resize:vertical;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:6px;padding:8px}[data-pyric-ui=fs-browser] .fs-import__preview,[data-pyric-ui=fs-browser] .fs-import__result{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-label);color:var(--color-slate-gray)}[data-pyric-ui=fs-browser] .fs-import__count{margin:0;color:var(--color-soft-white)}[data-pyric-ui=fs-browser] .fs-import__errs{margin:0;padding-left:18px;color:var(--color-danger);font-size:var(--fs-caption)}[data-pyric-ui=fs-browser] .fs-import__collisions{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--color-warning) 40%,transparent);background:color-mix(in srgb,var(--color-warning) 10%,transparent);border-radius:7px}[data-pyric-ui=fs-browser] .fs-import__collisions label{display:flex;align-items:center;gap:8px;font-size:var(--fs-label)}[data-pyric-ui=fs-browser] [data-pyric-ui=collection-list],[data-pyric-ui=fs-browser] [data-pyric-ui=document-list],[data-pyric-ui=fs-browser] [data-pyric-document-list-items]{list-style:none;margin:0;padding:0}[data-pyric-ui=fs-browser] [data-pyric-collection-entry],[data-pyric-ui=fs-browser] [data-pyric-document-entry]{list-style:none}[data-pyric-ui=fs-browser] [data-pyric-collection-select],[data-pyric-ui=fs-browser] [data-pyric-document-select]{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;padding:8px 16px;border:none;border-left:2px solid transparent;background:transparent;color:var(--color-soft-white);cursor:pointer;font:inherit}[data-pyric-ui=fs-browser] [data-pyric-collection-select]{font-size:13px}[data-pyric-ui=fs-browser] [data-pyric-document-select]{font-family:var(--font-mono);font-size:12.5px}[data-pyric-ui=fs-browser] [data-pyric-collection-select]:hover,[data-pyric-ui=fs-browser] [data-pyric-document-select]:hover{background:var(--color-sidebar-bg)}[data-pyric-ui=fs-browser] [data-pyric-collection-entry][data-pyric-selected] [data-pyric-collection-select],[data-pyric-ui=fs-browser] [data-pyric-document-entry]:has([data-pyric-selected]) [data-pyric-document-select]{background:var(--color-sidebar-bg);border-left-color:var(--color-primary)}[data-pyric-ui=fs-browser] [data-pyric-document-entry]{display:flex;align-items:stretch}[data-pyric-ui=fs-browser] [data-pyric-document-entry] [data-pyric-document-select]{flex:1;min-width:0;width:auto}[data-pyric-ui=fs-browser] [data-pyric-document-action]{display:flex;align-items:center;padding-right:8px}[data-pyric-ui=fs-browser] .fs-doc-del{opacity:0;border:none;background:transparent;color:var(--color-soft-white);font:inherit;font-size:15px;line-height:1;padding:2px 7px;border-radius:4px;cursor:pointer;transition:opacity .12s ease,color .12s ease,background .12s ease}[data-pyric-ui=fs-browser] [data-pyric-document-entry]:hover .fs-doc-del,[data-pyric-ui=fs-browser] [data-pyric-document-entry]:focus-within .fs-doc-del{opacity:.55}[data-pyric-ui=fs-browser] .fs-doc-del:hover{opacity:1;color:var(--color-danger, #ff6b6b);background:var(--color-sidebar-bg)}[data-pyric-ui=fs-browser] .fs-doc-del-confirm{display:flex;align-items:center;gap:2px}[data-pyric-ui=fs-browser] .fs-doc-del-yes,[data-pyric-ui=fs-browser] .fs-doc-del-no{border:none;background:transparent;font:inherit;font-size:13px;line-height:1;padding:3px 7px;border-radius:4px;cursor:pointer}[data-pyric-ui=fs-browser] .fs-doc-del-yes{color:var(--color-danger, #ff6b6b)}[data-pyric-ui=fs-browser] .fs-doc-del-yes:hover{background:var(--color-danger, #ff6b6b);color:var(--color-soft-white)}[data-pyric-ui=fs-browser] .fs-doc-del-no{color:var(--color-muted, #8a8f98)}[data-pyric-ui=fs-browser] .fs-doc-del-no:hover{background:var(--color-sidebar-bg);color:var(--color-soft-white)}[data-pyric-ui=fs-browser] .fs-doc-del-err{color:var(--color-danger, #ff6b6b);padding:6px 16px}[data-pyric-ui=fs-browser] .fs-sub{font-size:11.5px;color:var(--color-slate-gray);margin-left:auto;white-space:nowrap;max-width:96px;overflow:hidden;text-overflow:ellipsis}[data-pyric-ui=fs-browser] .fs-empty{padding:18px 16px;font-size:12.5px;color:var(--color-slate-gray)}[data-pyric-ui=fs-browser] [data-pyric-load-more]{display:block;width:calc(100% - 24px);margin:8px 12px;padding:6px 0;border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-slate-gray);font:inherit;font-size:12px;cursor:pointer}[data-pyric-ui=fs-browser] [data-pyric-load-more]:hover{color:var(--color-soft-white)}[data-pyric-ui=fs-browser] .fs-docact{margin-left:auto;color:var(--color-primary);background:transparent;border:none;cursor:pointer;letter-spacing:0;text-transform:none;font:inherit;font-size:12px}[data-pyric-ui=fs-browser] .fs-docbody{padding:6px 0 30px}[data-pyric-ui=document-preview] [data-pyric-field-entry]{display:grid;grid-template-columns:132px minmax(0,1fr);gap:18px;align-items:baseline;padding:8px 18px;border-top:1px solid var(--color-border);font-family:var(--font-mono);font-size:var(--fs-data);line-height:1.5}[data-pyric-ui=document-preview] [data-pyric-field-entry]:first-child{border-top:none}[data-pyric-ui=document-preview] [data-pyric-field-key]{min-width:0;color:var(--color-slate-gray);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-pyric-ui=document-preview] [data-pyric-field-keycell]{display:inline-flex;align-items:baseline;gap:6px;min-width:0}[data-pyric-ui=document-preview] button[data-pyric-field-keycell]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}[data-pyric-ui=document-preview] [data-pyric-field-toggle][aria-expanded=true] [data-pyric-tree-chevron]{transform:rotate(90deg)}[data-pyric-ui=document-preview] [data-pyric-field-toggle]:hover [data-pyric-field-key]{color:var(--color-soft-white)}[data-pyric-ui=document-preview] [data-pyric-field-entry]>[data-pyric-field-type]{min-width:0;color:var(--color-soft-white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-pyric-ui=document-preview] [data-pyric-clickable]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;padding:0;font:inherit;color:var(--color-primary);cursor:pointer}[data-pyric-ui=document-preview] [data-pyric-field-entry]>[data-pyric-tree]{white-space:normal;overflow:visible;text-overflow:clip}[data-pyric-ui=document-preview] [data-pyric-tree]{min-width:0;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}[data-pyric-ui=document-preview] [data-pyric-tree-entry]{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;min-width:0}[data-pyric-ui=document-preview] [data-pyric-tree-key],[data-pyric-ui=document-preview] [data-pyric-tree-index]{flex:0 0 auto;color:var(--color-slate-gray)}[data-pyric-ui=document-preview] [data-pyric-tree-entry]:not(:has(>[data-pyric-tree]))>[data-pyric-tree-key]:after{content:":"}[data-pyric-ui=document-preview] [data-pyric-tree-entry]>[data-pyric-tree]{flex-basis:100%;padding-inline-start:14px}[data-pyric-ui=document-preview] [data-pyric-tree-chevron]{flex:0 0 auto;width:12px;display:inline-block;text-align:center;color:var(--color-slate-gray);transition:transform .15s ease}[data-pyric-ui=document-preview] [data-pyric-tree-toggle]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;display:inline-flex;align-items:baseline;gap:8px}[data-pyric-ui=document-preview] [data-pyric-tree-toggle][aria-expanded=true] [data-pyric-tree-chevron]{transform:rotate(90deg)}[data-pyric-ui=document-preview] [data-pyric-tree-toggle]:hover [data-pyric-tree-key],[data-pyric-ui=document-preview] [data-pyric-tree-toggle]:hover [data-pyric-tree-index]{color:var(--color-soft-white)}@media(prefers-reduced-motion:reduce){[data-pyric-ui=document-preview] [data-pyric-tree-chevron]{transition:none}}[data-pyric-ui=document-preview] [data-pyric-ui=subcollections]{margin-top:8px;border-top:1px solid var(--color-border)}[data-pyric-ui=document-preview] [data-pyric-subcollections-group]{font-size:var(--fs-micro);letter-spacing:var(--tracking-micro);text-transform:uppercase;color:var(--color-slate-gray);padding:14px 18px 6px}[data-pyric-ui=document-preview] [data-pyric-subcollections-list]{list-style:none;margin:0;padding:0}[data-pyric-ui=document-preview] [data-pyric-subcollection]{list-style:none}[data-pyric-ui=document-preview] [data-pyric-subcollection-row]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;width:100%;display:flex;align-items:center;gap:8px;padding:5px 18px;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);text-align:left;cursor:pointer}[data-pyric-ui=document-preview] [data-pyric-subcollection-row]:hover{background:var(--color-sidebar-bg)}[data-pyric-ui=document-preview] [data-pyric-subcollection-type]{color:var(--color-slate-gray);font-size:var(--fs-micro)}[data-pyric-ui=document-preview] [data-pyric-subcollection-drill]{margin-left:auto;color:var(--color-slate-gray)}.fs-editor{padding:12px 18px 24px}[data-pyric-ui=document-editor] [data-pyric-editor-fields]{display:flex;flex-direction:column}[data-pyric-ui=document-editor] [data-pyric-field-entry]{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:8px 0;border-top:1px solid var(--color-border)}[data-pyric-ui=document-editor] [data-pyric-field-entry]:first-child{border-top:none}[data-pyric-ui=document-editor] [data-pyric-map-children],[data-pyric-ui=document-editor] [data-pyric-array-children]{display:flex;flex-direction:column;gap:3px;margin:2px 0 0 8px;padding:0 0 0 10px;border-left:1px solid var(--color-border);width:100%}[data-pyric-ui=document-editor] [data-pyric-field-chrome]{display:flex;align-items:center;gap:6px;flex-shrink:0}[data-pyric-ui=document-editor] input,[data-pyric-ui=document-editor] select{font:inherit;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:6px;padding:5px 8px}[data-pyric-ui=document-editor] input[data-pyric-field-key-input]{width:128px}[data-pyric-ui=document-editor] input:focus,[data-pyric-ui=document-editor] select:focus{outline:none;border-color:var(--color-primary)}[data-pyric-ui=document-editor] [data-pyric-field-entry]>[data-pyric-field-type]{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}[data-pyric-ui=document-editor] [data-pyric-field-entry]>[data-pyric-field-type=boolean],[data-pyric-ui=document-editor] [data-pyric-field-entry]>[data-pyric-field-type=null]{flex-direction:row;align-items:center}[data-pyric-ui=document-editor] [data-pyric-field-type] input{width:100%;max-width:420px}[data-pyric-ui=document-editor] [data-pyric-field-type] input[type=number]{max-width:160px}[data-pyric-ui=document-editor] [data-pyric-field-type=vector]{flex-direction:column;align-items:stretch;gap:4px}[data-pyric-ui=document-editor] [data-pyric-vector-dims]{color:var(--color-slate-gray);font-size:var(--fs-micro)}[data-pyric-ui=document-editor] [data-pyric-vector-note]{color:var(--color-slate-gray);font-size:var(--fs-caption)}[data-pyric-ui=document-editor] [data-pyric-vector-raw]{width:100%;max-width:420px;min-height:52px;resize:vertical;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:6px;padding:6px 8px}[data-pyric-ui=document-editor] button[data-pyric-remove]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;color:var(--color-slate-gray);cursor:pointer;font-size:16px;line-height:1;padding:0 4px}[data-pyric-ui=document-editor] button[data-pyric-remove]:hover{color:var(--color-danger)}[data-pyric-ui=document-editor] [data-pyric-add-map-entry],[data-pyric-ui=document-editor] [data-pyric-add-array-entry]{align-self:flex-start;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;color:var(--color-primary);cursor:pointer;font:inherit;font-size:var(--fs-label);padding:10px 0 0}[data-pyric-ui=document-editor] [data-pyric-error-message]{color:var(--color-danger);font-size:var(--fs-caption)}.fs-editor__err{margin:10px 0 0;font-size:var(--fs-label);color:var(--color-danger)}.fs-editor__actions{display:flex;gap:10px;margin-top:16px}.fs-editor__save,.fs-editor__cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;font-size:var(--fs-label);font-weight:500;padding:7px 14px;border-radius:7px;cursor:pointer}.fs-editor__save{border:1px solid var(--color-primary);background:var(--color-primary);color:var(--accent-ink)}.fs-editor__save:disabled{opacity:.5;cursor:default}.fs-editor__cancel{border:1px solid var(--color-border-strong);background:var(--color-content-bg);color:var(--color-slate-gray)}.fs-overflow{position:relative;margin-left:auto}.fs-overflow__trigger{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;color:var(--color-slate-gray);cursor:pointer;font-size:15px;line-height:1;padding:3px 6px;border-radius:5px}.fs-overflow__trigger:hover,.fs-overflow__trigger[aria-expanded=true]{color:var(--color-soft-white);background:var(--color-sidebar-bg)}.fs-overflow__trigger:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.fs-overflow__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:39}.fs-overflow__menu{position:fixed;z-index:40;display:flex;flex-direction:column;gap:1px;min-width:190px;padding:4px;background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:8px;box-shadow:0 10px 28px color-mix(in srgb,#000 40%,transparent)}.fs-overflow__item{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;text-align:left;font:inherit;font-size:var(--fs-label);color:var(--color-soft-white);padding:7px 9px;border-radius:5px;cursor:pointer}.fs-overflow__item:hover,.fs-overflow__item:focus-visible{background:var(--color-sidebar-bg);outline:none}.fs-doctree{padding:4px 0 20px;font-family:var(--font-mono);font-size:var(--fs-data)}.fs-doctree__head{position:sticky;top:0;z-index:1;background:var(--color-content-bg);display:flex;align-items:center;gap:8px;padding:10px 18px;border-bottom:1px solid var(--color-border)}.fs-doctree__docid{font-weight:600;color:var(--color-soft-white);overflow-wrap:anywhere}.fs-doctree__err{margin:0;padding:8px 18px;color:var(--color-danger);font-size:var(--fs-caption)}.fs-doctree__rows{list-style:none;margin:0;padding:0}.fs-doctree__action-row+.fs-doctree__action-row{border-top:1px solid var(--color-border)}.fs-doctree__action{display:flex;align-items:center;gap:8px;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;text-align:left;font:inherit;font-size:var(--fs-data);color:var(--color-primary);padding:9px 18px;cursor:pointer}.fs-doctree__action:hover,.fs-doctree__action:focus-visible{background:var(--color-sidebar-bg);outline:none}.fs-doctree__action-row--nested .fs-doctree__action{padding:6px 0 6px calc(18px + (var(--fs-depth, 0) + 1) * 18px);font-size:var(--fs-caption)}.fs-doctree__line{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;min-height:36px;padding:8px 18px 8px calc(18px + var(--fs-depth, 0) * 18px)}.fs-doctree__row[data-pyric-doctree-nested]>.fs-doctree__line{align-items:center}.fs-doctree__caret{flex:0 0 auto;width:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;padding:0;color:var(--color-slate-gray);cursor:pointer;font-size:10px;line-height:1}.fs-doctree__caret:hover{color:var(--color-soft-white)}.fs-doctree__caret--empty{cursor:default}.fs-doctree__key{flex:0 0 auto;color:var(--color-slate-gray)}.fs-doctree__key:after{content:":"}.fs-doctree__chip{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:20px;padding:1px 7px;border-radius:999px;background:var(--color-sidebar-bg);border:1px solid var(--color-border-strong);color:var(--color-slate-gray);font-size:var(--fs-micro)}.fs-doctree__value{min-width:0;color:var(--color-soft-white);overflow-wrap:anywhere}.fs-doctree__value{flex:1 1 auto;padding-left:0;text-indent:0}.fs-doctree__preview{flex:1 1 auto;min-width:0;color:var(--color-slate-gray);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fs-doctree__hover{margin-left:auto;display:flex;align-items:center;gap:6px;opacity:0;transition:opacity .12s ease}.fs-doctree__row:hover .fs-doctree__hover,.fs-doctree__row:focus-within .fs-doctree__hover{opacity:1}.fs-doctree__typenote{color:var(--color-slate-gray);font-size:var(--fs-micro)}.fs-doctree__icon{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;color:var(--color-slate-gray);cursor:pointer;font-size:12px;line-height:1;padding:3px 5px;border-radius:4px}.fs-doctree__icon:hover,.fs-doctree__icon:focus-visible{color:var(--color-soft-white);background:var(--color-sidebar-bg);outline:none}.fs-doctree__icon--danger:hover{color:var(--color-danger)}.fs-doctree__children{list-style:none;margin:0;padding:0}.fs-doctree__editrow{display:flex;flex-direction:column;align-items:stretch;gap:6px;background:transparent;padding:7px 18px 7px calc(18px + var(--fs-depth, 0) * 18px)}.fs-doctree__editline{display:flex;align-items:center;gap:8px;min-width:0}.fs-doctree__editkey{flex:0 1 220px;min-width:0}.fs-doctree__editkey,.fs-doctree__edittype{font:inherit;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:6px;padding:5px 7px}.fs-doctree__editkey:focus,.fs-doctree__edittype:focus{outline:none;border-color:var(--color-primary)}.fs-doctree__editkey[aria-invalid=true]{border-color:var(--color-danger)}.fs-doctree__editline>[data-pyric-field-type]{flex:1 1 auto;min-width:0}.fs-doctree__editline [data-pyric-field-type] input{font:inherit;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);background:var(--color-content-bg);border:1px solid var(--color-border-strong);border-radius:6px;padding:5px 7px;width:100%;max-width:220px}.fs-doctree__editline [data-pyric-field-type] input:focus{outline:none;border-color:var(--color-primary)}.fs-doctree__editnote{color:var(--color-slate-gray);font-size:var(--fs-caption)}.fs-doctree__editerr{color:var(--color-danger);font-size:var(--fs-caption)}.fs-doctree__editactions{display:flex;gap:4px;margin-left:auto}.fs-doctree__editsave,.fs-doctree__editcancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;cursor:pointer;font-size:13px;line-height:1;padding:4px 7px;border-radius:5px}.fs-doctree__editsave{color:var(--color-primary)}.fs-doctree__editsave:hover{background:color-mix(in srgb,var(--color-primary) 18%,transparent)}.fs-doctree__editcancel{color:var(--color-slate-gray)}.fs-doctree__editcancel:hover{background:var(--color-sidebar-bg);color:var(--color-soft-white)}[data-pyric-ui=fs-doctree-subcollections]{margin-top:6px;border-top:1px solid var(--color-border)}.fs-doctree__subhead{font-size:var(--fs-micro);letter-spacing:var(--tracking-micro);text-transform:uppercase;color:var(--color-slate-gray);padding:14px 18px 6px}.fs-doctree__sublist{list-style:none;margin:0;padding:0}.fs-doctree__subrow{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;width:100%;display:flex;align-items:center;gap:8px;padding:6px 18px;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--color-soft-white);text-align:left;cursor:pointer}.fs-doctree__subrow:hover{background:var(--color-sidebar-bg)}.fs-doctree__subtype{margin-left:auto;color:var(--color-slate-gray);font-size:var(--fs-micro)}[data-pyric-ui=fs-browser] .fs-col:focus{outline:none}[data-pyric-ui=fs-browser][data-size=medium] .fs-col:last-child{flex:1.3 1 0}[data-pyric-ui=fs-browser][data-size=narrow] .fs-col{flex:1 1 auto;border-right:none;animation:none}.storage{--storage-gutter: 24px;--storage-cols: 1fr 150px 92px 84px;display:flex;flex-direction:column;min-height:0}.storage__sub{display:flex;align-items:center;gap:14px;padding:0 0 13px;border-bottom:1px solid var(--line)}.storage__sub .storage__actions{margin-left:auto;display:flex;gap:14px;align-items:center}.storage__action{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;font:inherit;font-size:12.5px;color:var(--faint);cursor:pointer;padding:0}.storage__action:hover{color:var(--ink)}.storage__action--upload{color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:7px;padding:6px 12px}.storage__action--upload:hover{color:var(--accent);background:var(--panel)}.storage__newfolder{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.storage__newfolder-input{flex:0 1 340px;min-width:120px;font-family:var(--font-mono);font-size:12.5px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:6px 10px}.storage__newfolder-input:focus-visible{outline:none;border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.storage__newfolder-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;font:inherit;font-size:12.5px;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:7px;padding:6px 12px;cursor:pointer}.storage__newfolder-btn:hover{background:var(--panel)}.storage__newfolder-note{font-size:11.5px;color:var(--faint);min-width:0}.storage__newfolder-err{font-size:11.5px;color:var(--deny)}.storage__upload-err{display:flex;align-items:baseline;gap:12px;margin:0;padding:8px 0;border-bottom:1px solid var(--line);font-size:11.5px;color:var(--deny)}.storage__upload-err-dismiss{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;font:inherit;font-size:11.5px;color:var(--accent);cursor:pointer;padding:0;flex-shrink:0}.storage [data-pyric-ui=path-breadcrumb] [data-pyric-breadcrumb-list]{list-style:none;margin:0;padding:0;display:flex;align-items:center;font-family:var(--font-mono);font-size:13px;color:var(--muted)}.storage [data-pyric-ui=path-breadcrumb] [data-pyric-breadcrumb-item]{display:inline-flex;align-items:center}.storage [data-pyric-breadcrumb-link]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;font:inherit;color:var(--muted);padding:0;cursor:pointer}.storage [data-pyric-breadcrumb-link]:hover{color:var(--ink)}.storage [data-pyric-breadcrumb-link][data-pyric-current]{color:var(--ink);font-weight:600;cursor:default}.storage [data-pyric-breadcrumb-separator]{color:var(--line-2);margin:0 4px}.storage__body{display:grid;grid-template-columns:1fr 360px;flex:1;min-height:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.storage__browser{overflow:auto;position:relative}.storage__dropcue{display:none}.storage__browser[data-dragging] .storage__dropcue{display:grid;place-items:center;position:absolute;top:0;right:0;bottom:0;left:0;font-size:13px;font-weight:500;color:var(--accent);background:color-mix(in srgb,var(--panel) 82%,transparent);outline:2px dashed color-mix(in srgb,var(--accent) 55%,var(--line));outline-offset:-6px;border-radius:8px;pointer-events:none;word-break:break-all;padding:0 var(--storage-gutter)}.storage__inspector{overflow:auto;border-left:1px solid var(--line)}.storage__lhead{display:grid;grid-template-columns:var(--storage-cols);gap:16px;align-items:baseline;padding:10px var(--storage-gutter);background:var(--panel);border-bottom:1px solid var(--line);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}.storage [data-pyric-ui=object-browser] [data-pyric-object-browser-items]{list-style:none;margin:0;padding:0}.storage [data-pyric-entry-select]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;display:grid;grid-template-columns:var(--storage-cols);gap:16px;align-items:baseline;background:none;border:none;border-bottom:1px solid var(--line);border-left:2px solid transparent;padding:10px var(--storage-gutter);font:inherit;text-align:left;cursor:pointer;color:var(--ink)}.storage [data-pyric-entry-select]:hover{background:var(--panel)}.storage [data-pyric-entry-select][data-pyric-selected]{background:var(--panel);border-left-color:var(--accent)}.storage__cell-name{font-size:13px;color:var(--ink);display:flex;align-items:center;gap:8px;min-width:0}.storage__cell-name .storage__nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage__ic{color:var(--faint);display:inline-flex;align-items:center;flex-shrink:0}.storage__chev{margin-left:auto;color:var(--faint);flex-shrink:0}.storage__cell-type,.storage__cell-size,.storage__cell-updated{font-family:var(--font-mono);font-size:12px;color:var(--muted)}.storage__cell-updated{color:var(--faint)}.storage [data-pyric-entry-kind=folder] .storage__cell-name{font-weight:500}.storage [data-pyric-denied] .storage__cell-name{color:var(--faint)}.storage [data-pyric-denied] .storage__cell-name:after{content:"read denied";font-family:var(--font-ui);font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--deny-ink);background:var(--deny);border-radius:4px;padding:1px 6px;flex-shrink:0}.storage [data-pyric-ui=object-browser][data-pyric-empty],.storage [data-pyric-ui=object-browser][data-pyric-loading],.storage [data-pyric-ui=object-browser][data-pyric-idle]{padding:8px var(--storage-gutter)}.storage__empty{color:var(--faint);font-size:13px;padding:28px 0;margin:0}.storage [data-pyric-ui=object-browser][data-pyric-error]{color:var(--deny);font-size:13px;padding:16px var(--storage-gutter)}.storage [data-pyric-ui=object-inspector]{padding-bottom:30px}.storage [data-pyric-ui=object-inspector][data-pyric-idle],.storage [data-pyric-ui=object-inspector][data-pyric-loading]{padding:0;min-height:120px}.storage__inspector-hint{padding:20px;color:var(--faint);font-size:13px}.storage [data-pyric-object-name]{padding:16px 16px 0;font-family:var(--font-mono);font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.storage [data-pyric-object-preview]{margin:14px 16px;min-height:168px;border:1px solid var(--line);border-radius:8px;background:repeating-conic-gradient(var(--panel) 0% 25%,var(--elevated) 0% 50%) 0 / 18px 18px;display:grid;place-items:center;overflow:hidden}.storage [data-pyric-object-preview] img[data-pyric-preview-image]{max-width:100%;max-height:168px;display:block}.storage [data-pyric-object-preview] pre[data-pyric-preview-text]{margin:0;padding:12px;width:100%;max-height:168px;overflow:auto;font-family:var(--font-mono);font-size:11.5px;color:var(--ink);white-space:pre-wrap;word-break:break-word;place-self:stretch;background:var(--bg)}.storage [data-pyric-object-preview][data-pyric-preview-none]:after,.storage [data-pyric-object-preview][data-pyric-preview-too-large]:after,.storage [data-pyric-object-preview][data-pyric-preview-loading]:after{font-family:var(--font-mono);font-size:11.5px;color:var(--faint);background:var(--elevated);border:1px solid var(--line);border-radius:6px;padding:5px 10px}.storage [data-pyric-object-preview][data-pyric-preview-none]:after{content:"no preview"}.storage [data-pyric-object-preview][data-pyric-preview-too-large]:after{content:"too large to preview"}.storage [data-pyric-object-preview][data-pyric-preview-loading]:after{content:"loading preview…"}.storage [data-pyric-object-preview][data-pyric-preview-error]{color:var(--deny);font-family:var(--font-mono);font-size:11.5px;padding:12px;place-items:start}.storage [data-pyric-object-metadata]{margin:0;padding:4px 16px 14px}.storage__meta-group{font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin:16px 0 6px}.storage [data-pyric-object-metadata]>div{display:grid;grid-template-columns:96px 1fr;gap:12px;padding:7px 0;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:12px}.storage [data-pyric-object-metadata] dt{color:var(--faint);margin:0}.storage [data-pyric-object-metadata] dd{color:var(--ink);margin:0;word-break:break-all}.storage [data-pyric-object-metadata] [data-storage-meta-group]{display:block;grid-template-columns:none;border-top:none;padding:16px 0 0;font-family:var(--font-ui);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint)}.storage [data-pyric-object-metadata] [data-storage-meta-group]:first-child{padding-top:4px}.storage__back{display:none}@media(max-width:760px){.storage{--storage-cols: 1fr auto}.storage__lhead span:nth-child(n+3),.storage__cell-size,.storage__cell-updated{display:none}.storage__body{grid-template-columns:1fr}.storage__body[data-storage-level=browser] .storage__inspector,.storage__body[data-storage-level=inspector] .storage__browser{display:none}.storage__inspector{border-left:none}.storage__back{display:inline-flex;align-items:center;gap:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;font:inherit;font-size:12px;color:var(--accent);cursor:pointer;padding:12px var(--storage-gutter) 0}}.auth-surface{--auth-gutter: 24px;display:flex;flex-direction:column;min-height:0}.auth-sub{display:flex;align-items:center;gap:16px;padding:11px 0;border-bottom:1px solid var(--line)}.auth-sub__h{font-family:var(--font-mono);font-size:12.5px;color:var(--ink)}.auth-sub__n{color:var(--faint)}.auth-sub__filter{width:220px;height:28px;border:1px solid var(--line);border-radius:7px;padding:0 10px;font:inherit;font-size:12.5px;color:var(--ink);background:var(--elevated)}.auth-sub__filter::placeholder{color:var(--faint)}.auth-sub__filter:focus{outline:none;border-color:var(--accent)}.auth-sub__right{margin-left:auto;display:flex;gap:14px;align-items:center}.auth-sub__add{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;font:inherit;color:var(--accent);font-size:12.5px;cursor:pointer;padding:0}.auth-sub__clear{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;font:inherit;color:var(--faint);font-size:12.5px;cursor:pointer;padding:0}.auth-sub__clear:hover:not(:disabled){color:var(--ink)}.auth-sub__clear:disabled{opacity:.45;cursor:default}.auth-providers-editor__list{display:flex;flex-direction:column}.auth-provider-row{display:flex;align-items:center;gap:10px;padding:8px var(--auth-gutter);border-top:1px solid var(--line);cursor:pointer}.auth-provider-row input[type=checkbox]{accent-color:var(--accent)}.auth-provider-row__label{font-size:13px;color:var(--ink)}.auth-provider-row__id{font-family:var(--font-mono);font-size:11px;color:var(--faint);margin-left:auto}.auth-providers-editor__derived{margin:6px 0 0;padding:0 var(--auth-gutter);font-size:11.5px;color:var(--muted)}.auth-provider-custom{padding:10px var(--auth-gutter) 0}.auth-provider-custom__field{display:flex;flex-direction:column;gap:6px}.auth-provider-custom__label{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}.auth-provider-custom__row{display:flex;gap:10px}.auth-provider-custom__row input{flex:1;min-width:0;height:28px;border:1px solid var(--line);border-radius:7px;padding:0 10px;font:inherit;font-size:12.5px;color:var(--ink);background:var(--elevated)}.auth-provider-custom__row input:focus{outline:none;border-color:var(--accent)}.auth-provider-custom__row button{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;font-size:12.5px;font-weight:500;padding:0 14px;height:28px;border-radius:7px;border:1px solid var(--line-2);background:var(--elevated);color:var(--ink);cursor:pointer}.auth-provider-custom__row button:disabled{opacity:.45;cursor:default}.auth-providers-editor .auth-save--error{padding:0 var(--auth-gutter)}.auth-body{display:grid;grid-template-columns:1fr 392px;flex:1;min-height:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.auth-list{overflow:auto}.auth-detail{overflow:auto;border-left:1px solid var(--line)}.auth-detail__empty{padding:28px var(--auth-gutter)}.auth-zero{margin:0;font-size:13px;color:var(--muted);line-height:1.55}[data-pyric-ui=auth-user-list]{display:block;font-size:13px}[data-pyric-ui=auth-user-list] [data-pyric-user-header],[data-pyric-ui=auth-user-list] [data-pyric-user-entry]{display:grid;grid-template-columns:1fr 200px 96px 100px;gap:16px;align-items:baseline;padding:10px var(--auth-gutter)}[data-pyric-ui=auth-user-list] [data-pyric-user-cell=uid]{display:none}[data-pyric-ui=auth-user-list] [data-pyric-user-header]{background:var(--panel);border-bottom:1px solid var(--line);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}[data-pyric-ui=auth-user-list] [data-pyric-user-entry]{border-bottom:1px solid var(--line);border-left:2px solid transparent;cursor:default}[data-pyric-ui=auth-user-list] [data-pyric-user-entry]:hover{background:var(--panel)}[data-pyric-ui=auth-user-list] [data-pyric-user-entry][data-pyric-user-disabled]{opacity:.6}[data-pyric-ui=auth-user-list] [data-pyric-user-select]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;text-align:left;cursor:pointer;color:inherit;width:100%}[data-pyric-ui=auth-user-list] [data-pyric-user-cell=identifier]{min-width:0}.auth-ident{display:block;min-width:0}.auth-ident__primary{display:block;font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auth-ident--anon .auth-ident__primary{color:var(--muted);font-style:italic}.auth-ident__uid{display:block;font-family:var(--font-mono);font-size:11px;color:var(--faint);margin-top:1px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-pyric-user-cell=providers]{display:flex;flex-wrap:wrap;gap:4px}[data-pyric-user-cell=providers] [data-pyric-provider-id]{font-family:var(--font-mono);font-size:11px;border:1px solid var(--line-2);border-radius:4px;padding:1px 6px;color:var(--muted)}[data-pyric-user-cell=created],[data-pyric-user-cell=signed-in]{font-family:var(--font-mono);font-size:11.5px;color:var(--faint)}[data-pyric-ui=auth-user-list][data-pyric-empty],[data-pyric-ui=auth-user-list][data-pyric-loading],[data-pyric-ui=auth-user-list][data-pyric-error]{padding:24px var(--auth-gutter)}[data-pyric-ui=auth-user-list][data-pyric-error]{color:var(--diff-remove)}.auth-editor{padding:0 0 40px}.auth-editor__head{padding:16px var(--auth-gutter) 0}.auth-editor__who{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--ink)}.auth-editor__uid{font-family:var(--font-mono);font-size:11.5px;color:var(--faint);margin-top:2px}.auth-editor__meta{font-family:var(--font-mono);font-size:11.5px;color:var(--faint);margin-top:6px}.auth-tag-off{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--deny-ink);background:var(--deny);border-radius:4px;padding:1px 6px}.auth-editor[data-pyric-user-disabled] .auth-editor__head{background:var(--deny-tint);padding-bottom:12px;border-bottom:1px solid var(--line)}.auth-group{font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin:18px 0 8px;padding:0 var(--auth-gutter)}[data-pyric-ui=auth-user-form]{padding:6px var(--auth-gutter) 0;display:flex;flex-direction:column}[data-pyric-ui=auth-user-form] [data-pyric-field-label]{display:flex;flex-direction:column;padding:9px 0;border-top:1px solid var(--line)}[data-pyric-ui=auth-user-form] [data-pyric-label-text]{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);margin-bottom:6px}[data-pyric-ui=auth-user-form] input[data-pyric-field]{width:100%;border:1px solid var(--line-2);border-radius:6px;padding:6px 10px;font:inherit;font-size:13px;background:var(--elevated);color:var(--ink)}[data-pyric-ui=auth-user-form] input[data-pyric-field]:focus{outline:none;border-color:var(--accent)}[data-pyric-ui=auth-user-form] [data-pyric-field-label=email-verified],[data-pyric-ui=auth-user-form] [data-pyric-field-label=disabled]{flex-direction:row;align-items:center;gap:9px}[data-pyric-ui=auth-user-form] [data-pyric-field-label=email-verified] [data-pyric-label-text],[data-pyric-ui=auth-user-form] [data-pyric-field-label=disabled] [data-pyric-label-text]{margin-bottom:0;text-transform:none;letter-spacing:0;font-size:12.5px;color:var(--ink)}[data-pyric-ui=auth-user-form] input[type=checkbox][data-pyric-field]{width:auto;accent-color:var(--accent)}[data-pyric-ui=auth-user-form] fieldset[data-pyric-field-label=providers]{display:block;border:0;margin:0;min-width:0}[data-pyric-ui=auth-user-form] fieldset[data-pyric-field-label=providers] legend{padding:0}[data-pyric-ui=auth-user-form] [data-pyric-provider-checklist]{display:flex;flex-direction:column;gap:7px}[data-pyric-ui=auth-user-form] [data-pyric-provider-option]{display:flex;align-items:center;gap:9px;cursor:pointer}[data-pyric-ui=auth-user-form] [data-pyric-provider-option] input[type=checkbox]{accent-color:var(--accent)}[data-pyric-ui=auth-user-form] [data-pyric-provider-option-label]{font-size:12.5px;color:var(--ink)}[data-pyric-ui=auth-user-form] [data-pyric-provider-option-id]{font-family:var(--font-mono);font-size:11px;color:var(--faint);margin-left:auto}[data-pyric-ui=auth-user-form] [data-pyric-field-error]{margin:6px 0 0;font-size:11.5px;color:var(--diff-remove)}[data-pyric-ui=claims-field]{padding:9px 0;border-top:1px solid var(--line)}[data-pyric-ui=claims-field] textarea[data-pyric-field=claims]{width:100%;min-height:64px;resize:vertical;font-family:var(--font-mono);font-size:12.5px;border:1px solid var(--line-2);border-radius:7px;padding:9px 11px;background:var(--panel);color:var(--ink);line-height:1.6}[data-pyric-ui=claims-field] textarea[data-pyric-field=claims]:focus{outline:none;border-color:var(--accent)}[data-pyric-ui=claims-field] textarea[data-pyric-claims-invalid]{border-color:var(--diff-remove)}[data-pyric-ui=claims-field] [data-pyric-claims-error]{margin:6px 0 0;font-size:11.5px;color:var(--diff-remove)}[data-pyric-ui=claims-field] [data-pyric-claims-hint]{margin:6px 0 0;font-size:11.5px;color:var(--faint)}[data-pyric-ui=auth-user-form] [data-pyric-form-actions]{display:flex;align-items:center;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}[data-pyric-ui=auth-user-form] [data-pyric-form-actions] button{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;font-size:13px;font-weight:500;padding:8px 15px;border-radius:7px;border:1px solid var(--line-2);background:var(--elevated);color:var(--ink);cursor:pointer}[data-pyric-ui=auth-user-form] [data-pyric-submit]{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}[data-pyric-ui=auth-user-form] [data-pyric-form-actions] button:disabled{opacity:.45;cursor:default}.auth-save{margin:12px 0 0;font-size:12px}.auth-save--error{color:var(--diff-remove)}.auth-save--ok{color:var(--accent)}.auth-editor__foot{display:flex;align-items:center;margin-top:18px;padding:0 var(--auth-gutter)}.auth-del{margin-left:auto;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;font:inherit;color:var(--faint);font-size:12.5px;cursor:pointer;padding:0}.auth-del:hover{color:var(--diff-remove)}.auth-back{display:none}@media(max-width:760px){.auth-sub{flex-wrap:wrap;gap:8px 12px}.auth-sub__filter{flex:1 1 100%;order:3}[data-pyric-ui=auth-user-list] [data-pyric-user-header],[data-pyric-ui=auth-user-list] [data-pyric-user-entry]{grid-template-columns:1fr auto;gap:10px}[data-pyric-ui=auth-user-list] [data-pyric-user-cell=providers],[data-pyric-ui=auth-user-list] [data-pyric-user-cell=signed-in]{display:none}.auth-body{grid-template-columns:1fr}.auth-body[data-auth-level=list] .auth-detail,.auth-body[data-auth-level=detail] .auth-list{display:none}.auth-detail{border-left:none}.auth-back{display:inline-flex;align-items:center;gap:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;font:inherit;font-size:12px;color:var(--accent);cursor:pointer;padding:12px var(--auth-gutter) 0}}.traffic{display:flex;flex-direction:column;gap:22px}.traffic__empty{color:var(--faint);font-size:13px;text-align:center;padding:28px 0;margin:0}.traffic__tabs{display:flex;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--line);padding-bottom:10px}.traffic__tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;color:var(--muted);font:inherit;font-size:var(--fs-label);padding:4px 2px;cursor:pointer;position:relative}.traffic__tab:hover{color:var(--ink)}.traffic__tab[aria-selected=true]{color:var(--ink);font-weight:600}.traffic__tab[aria-selected=true]:after{content:"";position:absolute;left:0;right:0;bottom:-11px;height:2px;background:var(--accent)}.traffic__metrics{display:flex;flex-direction:column;gap:var(--space-5)}.traffic__metric-panel{display:flex;flex-direction:column;gap:var(--space-3)}.traffic__metric-title{margin:0;font-size:var(--fs-label);font-weight:600;color:var(--ink)}.traffic__metric-note{margin:0;color:var(--faint);font-size:var(--fs-caption)}.traffic__metric-note code{font-family:var(--font-mono)}.traffic__metric-cards{display:flex;flex-wrap:wrap;gap:var(--space-3)}.traffic__metric-cards [data-pyric-metric-card]{display:flex;align-items:center;gap:var(--space-2);border:1px solid var(--line);border-radius:8px;padding:8px 12px;background:var(--panel);cursor:pointer;-webkit-user-select:none;user-select:none}.traffic__metric-cards [data-pyric-metric-hidden]{opacity:.45}.traffic__metric-cards [data-pyric-metric-checkbox]{accent-color:var(--accent)}.traffic__metric-cards [data-pyric-metric-swatch]{width:9px;height:9px;border-radius:50%;flex-shrink:0}.traffic__metric-cards [data-pyric-metric-label]{font-size:var(--fs-caption);color:var(--muted)}.traffic__metric-cards [data-pyric-metric-value]{font-family:var(--font-mono);font-size:var(--fs-data);font-weight:600;color:var(--ink)}.traffic__metric-cards [data-pyric-series-index="0"] [data-pyric-metric-swatch],.traffic__chart [data-pyric-series-index="0"]{--pyric-series-color: var(--accent)}.traffic__metric-cards [data-pyric-series-index="1"] [data-pyric-metric-swatch],.traffic__chart [data-pyric-series-index="1"]{--pyric-series-color: var(--diff-add)}.traffic__metric-cards [data-pyric-series-index="2"] [data-pyric-metric-swatch],.traffic__chart [data-pyric-series-index="2"]{--pyric-series-color: var(--diff-remove)}.traffic__metric-cards [data-pyric-metric-swatch]{background:var(--pyric-series-color, var(--muted))}.traffic__chart{border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--panel)}.traffic__chart [data-pyric-chart-svg]{position:relative;height:160px}.traffic__chart svg{width:100%;height:100%;overflow:visible}.traffic__chart [data-pyric-chart-line]{stroke:var(--pyric-series-color, var(--muted));stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.traffic__chart [data-pyric-chart-hits]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex}.traffic__chart [data-pyric-chart-hit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;padding:0;margin:0;flex:1;cursor:default}.traffic__chart [data-pyric-chart-tooltip]{position:absolute;top:0;left:calc(var(--pyric-hover-x, 0) * 1%);transform:translate(-50%);background:var(--elevated);border:1px solid var(--line-2);border-radius:6px;padding:6px 10px;font-size:var(--fs-caption);white-space:nowrap;pointer-events:none;z-index:1}.traffic__chart [data-pyric-tooltip-time]{color:var(--faint);margin-bottom:4px;font-family:var(--font-mono)}.traffic__chart [data-pyric-tooltip-row]{display:flex;align-items:center;gap:var(--space-2);justify-content:space-between}.traffic__chart [data-pyric-tooltip-row]:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--pyric-series-color, var(--muted));flex-shrink:0}.traffic__chart [data-pyric-tooltip-label]{color:var(--muted)}.traffic__chart [data-pyric-tooltip-value]{font-family:var(--font-mono);color:var(--ink)}.traffic__timeline{border:1px solid var(--line);border-radius:10px;padding:14px 16px 10px;background:var(--panel)}.traffic__tl-header{display:flex;align-items:baseline;gap:12px;margin-bottom:12px;font-size:12.5px}.traffic__tl-count{font-weight:600;color:var(--ink)}.traffic__tl-deny{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:0;font:inherit;color:var(--deny);font-weight:600;cursor:pointer}.traffic__tl-deny:hover,.traffic__tl-deny[aria-pressed=true]{text-decoration:underline}.traffic__tl-live{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--accent);display:inline-flex;align-items:center;gap:5px}.traffic__tl-live:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}.traffic__timeline [data-pyric-timeline-chart]{position:relative}.traffic__timeline [data-pyric-timeline-bars]{display:flex;align-items:flex-end;gap:2px;height:96px}.traffic__timeline [data-pyric-bucket]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;padding:0;margin:0;flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;cursor:default;min-width:2px}.traffic__timeline [data-pyric-bucket-allow]{display:block;width:100%;height:calc(max(0,(var(--pyric-bucket-h, 0) - var(--pyric-bucket-deny-h, 0)))*100%);background:var(--line-2);border-radius:2px 2px 0 0;min-height:0}.traffic__timeline [data-pyric-bucket-deny]{display:block;width:100%;height:calc(var(--pyric-bucket-deny-h, 0) * 100%);background:var(--deny)}.traffic__timeline [data-pyric-bucket]:not([data-pyric-has-denies]) [data-pyric-bucket-allow]{border-radius:2px}.traffic__timeline [data-pyric-live]{position:absolute;top:0;bottom:0;left:calc(var(--pyric-live-x, 1) * 100%);width:1px;background:color-mix(in srgb,var(--accent) 55%,transparent)}.traffic__tl-axis{display:flex;justify-content:space-between;margin-top:8px;font-family:var(--font-mono);font-size:10.5px;color:var(--faint)}.traffic__filters{display:flex;align-items:center;gap:var(--space-2)}.traffic__filters-label{color:var(--faint);font-size:var(--fs-micro);letter-spacing:var(--tracking-micro);text-transform:uppercase}.traffic__filter{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);border-radius:999px;background:none;color:var(--muted);font:inherit;font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.03em;padding:2px 10px;cursor:pointer}.traffic__filter:hover{border-color:var(--line-2);color:var(--ink)}.traffic__filter[aria-pressed=true]{border-color:var(--line-2);background:var(--elevated);color:var(--ink)}.traffic__verdict{display:inline-flex;align-items:center;justify-content:center;width:52px;height:18px;border-radius:5px;align-self:center;flex-shrink:0;font-family:var(--font-ui);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.traffic__verdict[data-verdict=allow]{background:var(--elevated);color:var(--muted)}.traffic__verdict[data-verdict=deny]{background:var(--deny);color:var(--deny-ink)}.traffic__verdict[data-verdict=admin]{background:var(--accent-tint);color:var(--accent)}[data-pyric-traffic-entry][data-verdict=deny]{background:var(--deny-tint)}.traffic__inspector{display:grid;gap:var(--space-2);border-bottom:1px solid var(--line);padding:10px 14px 12px;background:color-mix(in srgb,var(--deny-tint) 60%,var(--panel))}.traffic>.traffic__inspector{border:1px solid var(--line);border-radius:10px}.traffic__inspector-bar{display:flex;align-items:baseline;gap:var(--space-3)}.traffic__inspector-title{color:var(--faint);text-transform:uppercase;letter-spacing:.03em;font-size:10px;font-weight:600}.traffic__inspector-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin-left:auto;background:none;border:none;padding:0;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-caption);cursor:pointer}.traffic__inspector-close:hover{color:var(--ink)}.traffic__inspector-missing{margin:0;color:var(--muted);font-size:var(--fs-caption)}.traffic__log{border:1px solid var(--line);border-radius:10px;overflow:hidden}.traffic__log [data-pyric-traffic-row]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;display:flex;align-items:baseline;gap:12px;background:none;border:none;border-bottom:1px solid var(--line);padding:8px 14px;font:inherit;font-family:var(--font-mono);font-size:12px;color:var(--muted);text-align:left;cursor:pointer}.traffic__log [data-pyric-traffic-row]:hover{background:var(--panel)}.traffic__log [data-pyric-traffic-time]{color:var(--faint);flex-shrink:0;min-width:64px}.traffic__log [data-pyric-traffic-path]{color:var(--ink);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.traffic__log [data-pyric-traffic-row][data-pyric-result=deny]{background:var(--deny-tint)}.traffic__log [data-pyric-traffic-row][data-pyric-result=deny] [data-pyric-traffic-path]{color:var(--deny);font-weight:600}.traffic__log [data-pyric-traffic-service]{font-family:var(--font-ui);font-size:10px;text-transform:uppercase;letter-spacing:.05em;width:74px;padding:1px 0;border-radius:4px;background:var(--elevated);color:var(--faint);text-align:center;flex-shrink:0}.traffic__log [data-pyric-traffic-service=""]{background:none}.traffic__log [data-pyric-badge-kind]{font-family:var(--font-ui);font-size:10px;text-transform:uppercase;letter-spacing:.03em;width:58px;padding:1px 0;text-align:center;border-radius:4px;border:1px solid var(--line-2);color:var(--muted);flex-shrink:0}.traffic__log [data-pyric-traffic-group-row],.traffic__log [data-pyric-traffic-group]{display:flex;align-items:baseline;gap:10px;padding:8px 14px;border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:12px;color:var(--muted);background:var(--panel)}.traffic__show-more{display:block;width:100%;padding:8px 14px;border:none;border-top:1px solid var(--line);background:var(--panel);color:var(--muted);font-family:var(--font-mono);font-size:12px;cursor:pointer;text-align:center}.traffic__show-more:hover{color:var(--ink)}.traffic__hide-studio{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin-left:auto;border:1px solid var(--line);border-radius:999px;background:none;color:var(--muted);font:inherit;font-size:var(--fs-caption);padding:2px 10px;cursor:pointer}.traffic__hide-studio:hover{border-color:var(--line-2);color:var(--ink)}.traffic__hide-studio[aria-pressed=true]{border-color:var(--line-2);background:var(--elevated);color:var(--ink)}.studio-home{display:grid;grid-template-rows:auto auto auto 1fr;gap:var(--space-5);grid-template-columns:minmax(0,72rem);justify-content:center}.studio-home__hero{--hero-size: 2.75rem;margin:0;padding-block:var(--space-6);display:flex;align-items:center;gap:var(--space-5)}.studio-home__hero-logo{height:var(--hero-size);width:auto;flex-shrink:0}.studio-home__hero-title{margin:0;font-size:var(--hero-size);font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--text-1);text-wrap:balance}@media(max-width:760px){.studio-home__hero{flex-direction:column;align-items:flex-start}.studio-home__hero-logo{height:8rem;align-self:center}}.studio-home__body{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:var(--space-5)}.studio-home__feed{grid-column:1 / -1}.studio-home__tiles{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:var(--space-3)}.studio-home__command{display:grid;gap:var(--space-2)}.studio-home__command-row{display:grid;align-items:center;gap:var(--space-3);border:1px solid var(--line);border-radius:10px;background:var(--elevated);padding:var(--space-2) var(--space-3)}.studio-home__command-row:focus-within{border-color:var(--line-2)}.studio-home__command-input{border:none;outline:none;background:transparent;color:var(--ink);font:inherit;font-size:14px;min-width:0}.studio-home__command-input::placeholder{color:var(--faint)}.studio-home__command-results{margin:0;padding:var(--space-1);display:grid;gap:var(--space-1);border:1px solid var(--line);border-radius:10px;background:var(--panel)}.studio-home__command-group{display:grid;gap:2px}.studio-home__command-group-title{color:var(--faint);font-size:var(--fs-micro);letter-spacing:var(--tracking-micro);text-transform:uppercase;padding:4px 10px 0}.studio-home__command-group-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.studio-home__command-result{width:100%;display:grid;gap:2px;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;border-radius:8px;padding:8px 10px;font:inherit;cursor:pointer}.studio-home__command-result:hover,.studio-home__command-result[data-active=true]{background:var(--accent-tint)}.studio-home__command-label{color:var(--ink);font-size:var(--fs-body);font-weight:500}.studio-home__command-sub{color:var(--muted);font-size:var(--fs-label)}.studio-home__status{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.studio-home__feed-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.studio-home__feed-title{margin:0}.studio-home__feed-all{color:var(--muted);font-size:var(--fs-label);text-decoration:none;white-space:nowrap}.studio-home__feed-all:hover{color:var(--ink)}.studio-home__feed-scroll{max-height:320px;overflow-y:auto;min-height:0}.studio-home__feed-empty{margin:0;padding-top:var(--space-2);color:var(--faint);font-size:var(--fs-body)}.studio-home__feed-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.studio-home__feed-row{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:var(--space-3);padding:6px 8px;border-radius:7px;text-decoration:none;min-width:0}a.studio-home__feed-row:hover{background:var(--elevated)}.studio-home__feed-ident{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-caption);white-space:nowrap}.studio-home__feed-dot{width:6px;height:6px;border-radius:999px;background:var(--faint);flex:none}.studio-home__feed-ident[data-provenance=agent] .studio-home__feed-dot{background:var(--accent)}.studio-home__feed-ident[data-provenance=studio] .studio-home__feed-dot{background:var(--diff-add)}.studio-home__feed-ident[data-provenance=system] .studio-home__feed-dot{background:var(--line-2)}.studio-home__feed-summary{color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-data);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.studio-home__feed-summary[data-denied=true]{color:var(--diff-remove)}.studio-home__feed-time{color:var(--faint);font-family:var(--font-mono);font-size:var(--fs-caption);white-space:nowrap}a.studio-home__tile{text-decoration:none;cursor:pointer}a.studio-home__tile:hover{border-color:var(--line-2);background:color-mix(in srgb,var(--panel) 80%,var(--elevated))}.studio-home__onboard{min-height:0}.studio-home__snippet{display:block;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-caption);padding:8px 10px;overflow-x:auto;white-space:nowrap}.studio-home__onboard-link{color:var(--accent);font-size:var(--fs-label);text-decoration:none}.studio-home__onboard-link:hover{text-decoration:underline}.studio-home__skeleton-chip{min-width:96px;min-height:22px}.studio-home__skeleton{display:grid;gap:var(--space-2)}.studio-home__skeleton-row{height:16px;border-radius:6px;background:var(--elevated)}.rtdb{display:grid;grid-template-rows:auto 1fr;min-height:480px;border:1px solid var(--line);border-radius:8px;background:var(--panel);overflow:hidden}.rtdb__pathbar{display:flex;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-3);border-bottom:1px solid var(--line);background:var(--elevated);font-family:var(--font-mono);font-size:var(--fs-data)}.rtdb__pathbar [data-rtdb-crumb-list]{display:flex;align-items:center;flex-wrap:wrap;gap:2px;list-style:none;margin:0;padding:0;min-width:0}.rtdb__pathbar [data-rtdb-crumb-item]{display:inline-flex;align-items:center;gap:2px}.rtdb__pathbar [data-rtdb-crumb]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:2px 4px;border-radius:4px;font:inherit;color:var(--muted);cursor:pointer}.rtdb__pathbar [data-rtdb-crumb]:hover{color:var(--ink);background:var(--accent-tint)}.rtdb__pathbar [data-rtdb-crumb][data-pyric-current]{color:var(--ink)}.rtdb__pathbar [data-rtdb-crumb-root],.rtdb__pathbar [data-rtdb-crumb-separator]{color:var(--faint)}.rtdb__pathbar [data-rtdb-path-edit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:none;border:none;border-radius:4px;color:var(--faint);cursor:pointer}.rtdb__pathbar [data-rtdb-path-edit]:hover{color:var(--ink);background:var(--accent-tint)}.rtdb__pathbar [data-rtdb-path-form]{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0}.rtdb__pathbar [data-rtdb-path-prefix]{color:var(--faint);white-space:nowrap}.rtdb__pathbar [data-rtdb-path-input]{flex:1;min-width:0;background:var(--bg);border:1px solid var(--line-2);border-radius:6px;padding:4px 8px;font:inherit;color:var(--ink)}.rtdb__pathbar [data-rtdb-path-input]:focus{outline:none;border-color:var(--accent)}.rtdb__tree{overflow:auto;padding:var(--space-2) var(--space-3) var(--space-4);font-family:var(--font-mono);font-size:var(--fs-data);line-height:1.9}.rtdb__tree [data-rtdb-loading],.rtdb__tree [data-rtdb-empty] p{margin:var(--space-2) 0;color:var(--muted);font-family:var(--font-ui);font-size:var(--fs-body)}.rtdb__tree [data-rtdb-error]{margin:2px 0;padding:2px 8px;border-radius:4px;background:var(--deny-tint);color:var(--deny-ink);font-family:var(--font-ui);font-size:var(--fs-caption);width:fit-content}.rtdb__tree [data-rtdb-children]{list-style:none;padding:0 0 0 18px;border-left:1px solid var(--line);margin:0 0 0 3px}.rtdb__tree [data-rtdb-row]{display:flex;align-items:center;gap:6px;border-radius:4px;padding:0 4px}.rtdb__tree [data-rtdb-row]:hover{background:var(--elevated)}.rtdb__tree [data-rtdb-caret],.rtdb__tree [data-rtdb-caret-spacer]{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex:none}.rtdb__tree [data-rtdb-caret]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:0;color:var(--faint);cursor:pointer;transition:transform .12s ease}.rtdb__tree [data-rtdb-caret]:hover{color:var(--ink)}.rtdb__tree [data-rtdb-caret][aria-expanded=true]{transform:rotate(90deg)}.rtdb__tree [data-rtdb-key]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:0;font:inherit;color:var(--ink);font-weight:600;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:32ch}.rtdb__tree [data-rtdb-key]:hover{color:var(--accent);text-decoration:underline}.rtdb__tree [data-rtdb-view-root]>[data-rtdb-row]>[data-rtdb-key]{color:var(--muted);font-weight:600}.rtdb__tree [data-rtdb-sep]{color:var(--faint)}.rtdb__tree [data-rtdb-value]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;border-radius:4px;padding:0 3px;font:inherit;cursor:text;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:48ch;color:var(--ink)}.rtdb__tree [data-rtdb-value]:hover{background:var(--accent-tint)}.rtdb__tree [data-rtdb-value][data-rtdb-type=string]{color:var(--diff-add)}.rtdb__tree [data-rtdb-value][data-rtdb-type=number],.rtdb__tree [data-rtdb-value][data-rtdb-type=boolean]{color:var(--accent)}.rtdb__tree [data-rtdb-value][data-rtdb-type=null]{color:var(--faint);font-style:italic}.rtdb__tree [data-rtdb-actions]{display:inline-flex;align-items:center;gap:2px;opacity:0;transition:opacity .1s ease}.rtdb__tree [data-rtdb-row]:hover [data-rtdb-actions],.rtdb__tree [data-rtdb-row]:focus-within [data-rtdb-actions]{opacity:1}.rtdb__tree [data-rtdb-action-add],.rtdb__tree [data-rtdb-action-delete]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:none;border:none;border-radius:4px;font:inherit;font-size:13px;line-height:1;color:var(--faint);cursor:pointer}.rtdb__tree [data-rtdb-action-add]:hover{color:var(--accent);background:var(--accent-tint)}.rtdb__tree [data-rtdb-action-delete]:hover{color:var(--deny-ink);background:var(--deny-tint)}.rtdb__tree [data-rtdb-confirm]{display:inline-flex;align-items:center;gap:6px;padding:0 6px;border-radius:4px;background:var(--deny-tint);font-family:var(--font-ui);font-size:var(--fs-caption);color:var(--deny-ink)}.rtdb__tree [data-rtdb-confirm] button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:1px 4px;border-radius:3px;font:inherit;cursor:pointer}.rtdb__tree [data-rtdb-confirm-yes]{color:var(--deny-ink);font-weight:600}.rtdb__tree [data-rtdb-confirm-yes]:hover{background:var(--deny);color:var(--panel)}.rtdb__tree [data-rtdb-confirm-no]{color:var(--muted)}.rtdb__tree [data-rtdb-confirm-no]:hover{color:var(--ink)}.rtdb__tree [data-rtdb-editor]{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:2px 0 2px 20px;padding:6px 8px;border:1px solid var(--line-2);border-radius:6px;background:var(--elevated);width:fit-content;max-width:100%}.rtdb__tree [data-rtdb-editor] input,.rtdb__tree [data-rtdb-editor] select{background:var(--bg);border:1px solid var(--line-2);border-radius:5px;padding:3px 7px;font-family:var(--font-mono);font-size:var(--fs-data);color:var(--ink)}.rtdb__tree [data-rtdb-editor] input:focus,.rtdb__tree [data-rtdb-editor] select:focus{outline:none;border-color:var(--accent)}.rtdb__tree [data-rtdb-editor-key]{width:14ch}.rtdb__tree [data-rtdb-editor-value]{width:26ch}.rtdb__tree [data-rtdb-editor-save],.rtdb__tree [data-rtdb-editor-cancel]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:5px;padding:3px 10px;font-family:var(--font-ui);font-size:var(--fs-label);cursor:pointer}.rtdb__tree [data-rtdb-editor-save]{background:var(--accent);color:var(--accent-ink)}.rtdb__tree [data-rtdb-editor-cancel]{background:none;color:var(--muted)}.rtdb__tree [data-rtdb-editor-cancel]:hover{color:var(--ink)}.rtdb__tree [data-rtdb-editor-error]{flex-basis:100%;color:var(--deny-ink);font-family:var(--font-ui);font-size:var(--fs-caption)}.rtdb__tree [data-rtdb-show-more]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:2px 4px;border-radius:4px;font-family:var(--font-ui);font-size:var(--fs-caption);color:var(--accent);cursor:pointer}.rtdb__tree [data-rtdb-show-more]:hover{background:var(--accent-tint)}/*! tailwindcss v4.3.2 | 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)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}:root{--font-ui:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--font-display:var(--font-ui);--fs-title:17px;--fs-body:13px;--fs-label:12px;--fs-data:12.5px;--fs-caption:11.5px;--fs-micro:10.5px;--tracking-micro:.06em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--bg:#16161a;--panel:#1e1e24;--elevated:#24242c;--ink:#fbfbfe;--muted:#72728a;--faint:#72728a;--line:#2a2a35;--line-2:#3a3a48;--accent:#8f7fe8;--accent-tint:#1e1b2e;--accent-ink:#14102a;--deny:#ededee;--deny-ink:#0c0c0d;--deny-tint:#161618;--diff-add:#57b985;--diff-add-bg:#111d16;--diff-remove:#e2607a;--diff-remove-bg:#221318}@media(prefers-color-scheme:light){:root:not([data-theme]){--bg:#fff;--panel:#fafafa;--elevated:#fff;--ink:#16181d;--muted:#646b78;--faint:#9aa1ad;--line:#e7e8ec;--line-2:#d9dbe0;--accent:#6b57d6;--accent-tint:#f4f2fd;--accent-ink:#fff;--deny:#16181d;--deny-ink:#fff;--deny-tint:#f4f4f6;--diff-add:#1f8f4e;--diff-add-bg:#eef8f1;--diff-remove:#c2374b;--diff-remove-bg:#fceef0}}[data-theme=light]{--bg:#fff;--panel:#fafafa;--elevated:#fff;--ink:#16181d;--muted:#646b78;--faint:#9aa1ad;--line:#e7e8ec;--line-2:#d9dbe0;--accent:#6b57d6;--accent-tint:#f4f2fd;--accent-ink:#fff;--deny:#16181d;--deny-ink:#fff;--deny-tint:#f4f4f6;--diff-add:#1f8f4e;--diff-add-bg:#eef8f1;--diff-remove:#c2374b;--diff-remove-bg:#fceef0}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:var(--font-mono);--spacing:.25rem;--container-md:28rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-panel:var(--panel);--color-muted:var(--muted);--color-line:var(--line);--color-diff-add:var(--diff-add);--color-diff-remove:var(--diff-remove);--font-ui:var(--font-ui);--font-display:var(--font-display);--color-content-bg:var(--bg);--color-sidebar-bg:var(--panel);--color-border:var(--line);--color-border-strong:var(--line-2);--color-soft-white:var(--ink);--color-slate-gray:var(--muted);--color-primary:var(--accent);--color-danger:var(--diff-remove);--color-warning:#f5a623;--color-info:var(--accent);--color-severity-low:var(--muted);--color-severity-medium:#f5a623;--color-severity-high:var(--diff-remove)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.5}.mono{font-family:var(--font-mono)}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.top-full{top:100%}.right-0{right:0}.z-20{z-index:20}.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-auto{margin-inline:auto}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-2{margin-left:calc(var(--spacing) * 2)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-full{height:100%}.min-h-0{min-height:0}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-\[28rem\]{width:28rem}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-md{max-width:var(--container-md)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[1fr_320px\]{grid-template-columns:1fr 320px}.grid-cols-\[18rem_minmax\(0\,1fr\)\]{grid-template-columns:18rem minmax(0,1fr)}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.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-x-2{column-gap:calc(var(--spacing) * 2)}.gap-y-1{row-gap:var(--spacing)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.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-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-border{border-color:var(--color-border)}.border-danger\/40{border-color:var(--color-danger)}@supports (color:color-mix(in lab,red,red)){.border-danger\/40{border-color:color-mix(in oklab,var(--color-danger) 40%,transparent)}}.border-line{border-color:var(--color-line)}.border-primary,.border-primary\/40{border-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/40{border-color:color-mix(in oklab,var(--color-primary) 40%,transparent)}}.border-warning\/40{border-color:#f5a62366}@supports (color:color-mix(in lab,red,red)){.border-warning\/40{border-color:color-mix(in oklab,var(--color-warning) 40%,transparent)}}.bg-content-bg{background-color:var(--color-content-bg)}.bg-current{background-color:currentColor}.bg-danger\/10{background-color:var(--color-danger)}@supports (color:color-mix(in lab,red,red)){.bg-danger\/10{background-color:color-mix(in oklab,var(--color-danger) 10%,transparent)}}.bg-danger\/15{background-color:var(--color-danger)}@supports (color:color-mix(in lab,red,red)){.bg-danger\/15{background-color:color-mix(in oklab,var(--color-danger) 15%,transparent)}}.bg-panel{background-color:var(--color-panel)}.bg-primary,.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-primary\/15{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/15{background-color:color-mix(in oklab,var(--color-primary) 15%,transparent)}}.bg-severity-high{background-color:var(--color-severity-high)}.bg-severity-low{background-color:var(--color-severity-low)}.bg-severity-medium{background-color:var(--color-severity-medium)}.bg-sidebar-bg{background-color:var(--color-sidebar-bg)}.bg-warning\/15{background-color:#f5a62326}@supports (color:color-mix(in lab,red,red)){.bg-warning\/15{background-color:color-mix(in oklab,var(--color-warning) 15%,transparent)}}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-5{padding:calc(var(--spacing) * 5)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.6rem\]{font-size:.6rem}.text-\[0\.7em\]{font-size:.7em}.text-\[0\.7rem\]{font-size:.7rem}.text-\[0\.65rem\]{font-size:.65rem}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-danger,.text-danger\/70{color:var(--color-danger)}@supports (color:color-mix(in lab,red,red)){.text-danger\/70{color:color-mix(in oklab,var(--color-danger) 70%,transparent)}}.text-diff-add{color:var(--color-diff-add)}.text-diff-remove{color:var(--color-diff-remove)}.text-info{color:var(--color-info)}.text-muted{color:var(--color-muted)}.text-primary,.text-primary\/70{color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.text-primary\/70{color:color-mix(in oklab,var(--color-primary) 70%,transparent)}}.text-slate-gray,.text-slate-gray\/80{color:var(--color-slate-gray)}@supports (color:color-mix(in lab,red,red)){.text-slate-gray\/80{color:color-mix(in oklab,var(--color-slate-gray) 80%,transparent)}}.text-soft-white{color:var(--color-soft-white)}.text-warning{color:var(--color-warning)}.text-warning\/70{color:#f5a623b3}@supports (color:color-mix(in lab,red,red)){.text-warning\/70{color:color-mix(in oklab,var(--color-warning) 70%,transparent)}}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.decoration-primary\/40{-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.decoration-primary\/40{-webkit-text-decoration-color:color-mix(in oklab,var(--color-primary) 40%,transparent);text-decoration-color:color-mix(in oklab,var(--color-primary) 40%,transparent)}}.underline-offset-2{text-underline-offset:2px}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + 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)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,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-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))}.placeholder\:text-slate-gray::placeholder{color:var(--color-slate-gray)}@media(hover:hover){.hover\:border-border-strong:hover{border-color:var(--color-border-strong)}.hover\:bg-content-bg:hover{background-color:var(--color-content-bg)}.hover\:bg-primary\/10:hover{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab,var(--color-primary) 10%,transparent)}}.hover\:bg-primary\/25:hover{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/25:hover{background-color:color-mix(in oklab,var(--color-primary) 25%,transparent)}}.hover\:text-soft-white:hover{color:var(--color-soft-white)}.hover\:decoration-primary:hover{-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-border:disabled{border-color:var(--color-border)}.disabled\:text-slate-gray:disabled{color:var(--color-slate-gray)}.disabled\:opacity-40:disabled{opacity:.4}.\[\&_\[data-pyric-empty-body\]\]\:mt-2 [data-pyric-empty-body]{margin-top:calc(var(--spacing) * 2)}.\[\&_\[data-pyric-empty-body\]\]\:max-w-md [data-pyric-empty-body]{max-width:var(--container-md)}.\[\&_\[data-pyric-empty-body\]\]\:text-sm [data-pyric-empty-body]{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.\[\&_\[data-pyric-empty-body\]\]\:leading-relaxed [data-pyric-empty-body]{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_\[data-pyric-empty-body\]\]\:text-slate-gray [data-pyric-empty-body]{color:var(--color-slate-gray)}.\[\&_\[data-pyric-empty-title\]\]\:text-base [data-pyric-empty-title]{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.\[\&_\[data-pyric-empty-title\]\]\:font-semibold [data-pyric-empty-title]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_\[data-pyric-empty-title\]\]\:text-soft-white [data-pyric-empty-title]{color:var(--color-soft-white)}.\[\&_\[data-pyric-selected\]\]\:text-primary [data-pyric-selected]{color:var(--color-primary)}.\[\&_button\]\:text-left button{text-align:left}}.studio{--maxw:820px;--wide:1440px;--gutter:clamp(16px, 3vw, 32px);grid-template-rows:54px 1fr;min-width:0;height:100vh;display:grid;overflow-x:hidden}.studio__col{width:100%;max-width:var(--maxw);padding:0 var(--gutter);margin:0 auto}.studio__bar{border-bottom:1px solid var(--line);background:var(--panel);min-width:0}.studio__bar-inner{width:100%;max-width:var(--wide);align-items:center;gap:var(--space-4);height:54px;padding:0 var(--gutter);grid-template-columns:auto 1fr auto;min-width:0;margin:0 auto;display:grid}.studio__brand{color:var(--ink);font-weight:600}.studio__ctx{flex-shrink:0;align-items:center;gap:7px;display:inline-flex}.studio__ctx-project{color:var(--muted);font-size:12.5px}.studio__ctx-mode{letter-spacing:.05em;text-transform:uppercase;color:var(--accent);border:1px solid var(--line-2);border-radius:5px;padding:1px 6px;font-size:10px}.studio__nav{justify-content:flex-start;align-items:center;gap:var(--space-1);scrollbar-width:none;min-width:0;height:100%;display:flex;overflow-x:auto}.studio__nav::-webkit-scrollbar{display:none}.studio__nav-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;height:100%;padding:0 12px;font-size:13px;font-weight:500;transition:color .12s,border-color .12s}a.studio__nav-tab{align-items:center;text-decoration:none;display:inline-flex}.studio__nav-tab:hover{color:var(--ink)}@supports (color:color-mix(in lab,red,red)){.studio__nav-tab:hover{color:color-mix(in srgb,var(--ink) 80%,transparent)}}.studio__nav-tab[aria-current=page]{color:var(--ink);border-bottom-color:var(--ink)}.studio__status{justify-content:flex-end;align-items:center;gap:var(--space-2);min-width:0;display:flex}.studio-chip{border:1px solid var(--line);background:var(--elevated);color:var(--muted);font-size:var(--fs-caption);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;line-height:1.2;text-decoration:none;display:inline-flex}a.studio-chip:hover{border-color:var(--line-2);color:var(--ink)}.studio-chip__dot{background:var(--faint);border-radius:999px;flex:none;width:6px;height:6px}.studio-chip--live .studio-chip__dot{background:var(--accent)}.studio-chip--warn{color:var(--ink);border-color:var(--diff-remove)}@supports (color:color-mix(in lab,red,red)){.studio-chip--warn{border-color:color-mix(in srgb,var(--diff-remove) 45%,var(--line))}}.studio-chip--warn .studio-chip__dot{background:var(--diff-remove)}.studio-icon-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.studio-icon-button:hover{color:var(--ink);border-color:var(--line);background:var(--elevated)}.studio-playground-model{align-items:center;gap:5px;min-width:0;display:inline-flex}.studio-playground-model select{border:1px solid var(--line);background:var(--elevated);min-width:0;max-width:180px;height:30px;color:var(--ink);font:inherit;font-size:var(--fs-caption);border-radius:6px;outline:none;padding:0 7px}.studio-playground-model select:focus{border-color:var(--line-2)}.studio__bar-tools{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.studio__cmd{border:1px solid var(--line);color:var(--faint);font:inherit;background:var(--elevated);cursor:text;border-radius:8px;align-items:center;gap:8px;padding:6px 9px;display:inline-flex}.studio__cmd:hover{border-color:var(--line-2)}.studio__cmd-ico{font-size:13px;line-height:1}.studio__kbd{color:var(--faint);font-family:var(--font-mono);border:1px solid var(--line);border-radius:6px;padding:2px 6px;font-size:11px}.studio-theme-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--elevated);width:30px;height:30px;color:var(--muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:14px;line-height:1;display:inline-flex}.studio-theme-toggle:hover{border-color:var(--line-2);color:var(--ink)}.studio__menu,.studio__nav-backdrop{display:none}.studio__mode{border:1px solid var(--line);background:var(--elevated);border-radius:8px;align-items:center;padding:2px;display:inline-flex}.studio__mode-opt{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;color:var(--faint);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 9px;font-size:12px;transition:color .12s,background .12s}.studio__mode-opt:hover{color:var(--ink)}.studio__mode-opt[aria-pressed=true]{color:var(--ink);background:var(--panel);font-weight:500}.studio__content{min-width:0;min-height:0;position:relative;overflow:hidden auto}.studio__content[data-surface=home]>*,.studio__content[data-surface=rtdb]>*,.studio__content[data-surface=traffic]>*,.studio__content[data-surface=settings]>*{width:100%;max-width:var(--wide);padding:clamp(22px,4vw,40px) var(--gutter) 72px;margin:0 auto;display:block}.studio__content[data-surface=firestore],.studio__content[data-surface=auth],.studio__content[data-surface=storage],.studio__content[data-surface=prototype]{flex-direction:column;display:flex;overflow:hidden}.studio-surface{container-type:inline-size}.studio-surface__intro{gap:6px;max-width:680px;margin-bottom:22px;display:grid}.studio-surface__eyebrow{color:var(--accent);font-size:var(--fs-micro);letter-spacing:var(--tracking-micro);text-transform:uppercase;margin:0;font-weight:700}.studio-surface__title{color:var(--ink);margin:0;font-size:clamp(18px,2vw,24px);font-weight:650;line-height:1.2}.studio-surface__copy{color:var(--muted);font-size:var(--fs-body);margin:0;line-height:1.6}.studio-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px;display:grid}.studio-card,.studio-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px}.studio-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:132px;color:inherit;text-align:left;align-content:start;gap:10px;padding:16px;display:grid}button.studio-card{cursor:pointer}button.studio-card:hover{border-color:var(--line-2);background:var(--panel)}@supports (color:color-mix(in lab,red,red)){button.studio-card:hover{background:color-mix(in srgb,var(--panel) 80%,var(--elevated))}}.studio-badge{border:1px solid var(--line-2);color:var(--faint);font-size:var(--fs-caption);border-radius:999px;justify-content:center;align-items:center;padding:2px 7px;line-height:1.2;display:inline-flex}.studio-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--elevated);min-height:32px;color:var(--ink);font:inherit;font-size:var(--fs-label);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;padding:7px 11px;display:inline-flex}.studio-button:hover{border-color:var(--line-2)}.studio-button:disabled{cursor:default;opacity:.55}.studio-button--primary{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.studio-button--primary{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}}.studio-button--primary{color:var(--accent)}.studio-button--danger{color:var(--diff-remove)}.studio-panel{padding:16px}.studio-panel__title{color:var(--ink);margin:0 0 10px;font-size:14px;font-weight:650}.studio-home__tile-top{grid-template-columns:1fr auto;align-items:baseline;gap:10px;display:grid}.studio-home__tile-label{color:var(--ink);font-size:15px;font-weight:650}.studio-home__tile-desc{color:var(--muted);font-size:var(--fs-body);line-height:1.55}.studio-empty{place-items:center;min-height:min(560px,70vh);display:grid!important}.studio-empty__panel{border:1px dashed var(--line-2);background:var(--panel);text-align:center;border-radius:8px;width:min(100%,520px);padding:28px}.studio-settings__grid>*{min-width:0}.studio-playground{background:var(--bg);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.studio-playground__controls{justify-content:flex-start;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--gutter);border-bottom:1px solid var(--line);scrollbar-width:none;display:flex;overflow-x:auto}.studio-playground__controls-right{align-items:center;gap:var(--space-2);flex-shrink:0;margin-left:auto;display:flex}.studio-playground__crumbs{align-items:center;gap:var(--space-1);min-width:0;font-family:var(--font-mono);font-size:11px;display:flex}.studio-playground__crumb-root{color:var(--text-2);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;transition:color .15s}.studio-playground__crumb-root:hover{color:var(--text-1)}.studio-playground__crumb-sep{color:var(--text-3);flex-shrink:0}.studio-playground__crumb-current{color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;max-width:220px;overflow:hidden}.studio-playground__frame{background:var(--elevated);border:0;flex:1;width:100%;min-width:0}.studio__surface-slot{min-width:0}.studio__surface-slot--playground{min-height:0}.studio__content[data-surface=prototype]>.studio__surface-slot--playground{flex:1;min-height:0;display:flex}.studio__surface-slot--playground[data-active=false]{visibility:hidden;pointer-events:none;opacity:0;min-height:0;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;display:flex!important}.studio__surface-slot--playground>.studio-playground{flex:1}.studio-settings__actions,.studio-settings__branch-actions{flex-wrap:wrap;gap:8px;display:flex}.studio-settings__grid{grid-template-columns:minmax(min(100%,560px),1.1fr) minmax(min(100%,320px),.9fr);align-items:start;gap:14px;min-width:0;display:grid}.studio-settings__ai{max-width:none;max-height:none;box-shadow:none}.studio-settings__panel{gap:12px;display:grid}.studio-settings__choice-group{gap:8px;display:grid}.studio-settings__choice{border:1px solid var(--line);background:var(--elevated);cursor:pointer;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:12px;display:grid}.studio-settings__choice:has(input:checked){border-color:var(--accent)}.studio-settings__choice input{accent-color:var(--accent);margin-top:3px}.studio-settings__choice span{gap:4px;min-width:0;display:grid}.studio-settings__choice strong{color:var(--ink);font-size:var(--fs-body)}.studio-settings__choice small{color:var(--muted);font-size:var(--fs-label);line-height:1.45}.studio-settings__row,.studio-settings__branch{justify-content:space-between;align-items:center;gap:12px;display:flex}.studio-settings__label{color:var(--muted)}.studio-settings__muted{color:var(--muted);font-size:var(--fs-label);margin:0}.studio-settings__file{display:none}.studio-settings__branches{gap:8px;padding-top:4px;display:grid}.studio-sandbox__live{border:1px solid var(--line);background:var(--elevated);border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:10px 12px;display:flex}.studio-sandbox__instance{color:var(--ink);font-weight:600;font-size:var(--fs-body)}.studio-sandbox__inventory{color:var(--muted);font-size:var(--fs-label)}.studio-sandbox__persist{color:var(--faint);font-size:var(--fs-caption);white-space:nowrap;margin-left:auto}.studio-sandbox__actions{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:8px;display:grid}.studio-sandbox__action{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;border:1px solid var(--line);background:var(--elevated);font:inherit;cursor:pointer;border-radius:8px;align-content:start;gap:4px;padding:10px 12px;display:grid}.studio-sandbox__action:hover{border-color:var(--line-2)}.studio-sandbox__action:disabled{cursor:default;opacity:.55}.studio-sandbox__action-top{color:var(--ink);align-items:center;gap:7px;display:inline-flex}.studio-sandbox__action[data-danger=true] .studio-sandbox__action-top{color:var(--diff-remove)}.studio-sandbox__action-name{font-size:var(--fs-body);font-weight:600}.studio-sandbox__action-caption{color:var(--muted);font-size:var(--fs-caption);line-height:1.45}.studio-sandbox__name-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.studio-sandbox__name-input{border:1px solid var(--line);background:var(--elevated);min-width:140px;color:var(--ink);font:inherit;font-size:var(--fs-body);border-radius:7px;outline:none;flex:1;padding:6px 10px}.studio-sandbox__name-input:focus{border-color:var(--line-2)}.studio-sandbox__confirm{border:1px solid var(--diff-remove);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;display:flex}@supports (color:color-mix(in lab,red,red)){.studio-sandbox__confirm{border:1px solid color-mix(in srgb,var(--diff-remove) 45%,var(--line))}}.studio-sandbox__confirm{background:var(--deny-tint);border-radius:8px;padding:10px 12px}.studio-sandbox__confirm-copy{color:var(--ink);font-size:var(--fs-label)}.studio-sandbox__confirm-actions{gap:8px;display:inline-flex}.studio-sandbox__branches-empty{color:var(--faint);font-size:var(--fs-label);margin:0}.studio__content[data-surface=firestore]>*,.studio__content[data-surface=auth]>*,.studio__content[data-surface=storage]>*{width:100%;min-height:0;max-width:var(--wide);padding:18px var(--gutter);flex-direction:column;flex:1;margin:0 auto;display:flex}[data-pyric-ui=data-feature]{flex-direction:column;flex:1;min-height:0;display:flex}[data-pyric-ui=data-feature]>[data-pyric-ui=fs-browser],[data-pyric-ui=data-feature]>.storage{flex:1;min-height:0}.studio__placeholder{border:1px dashed var(--line-2);background:var(--panel);border-radius:10px;padding:32px 28px}.studio__placeholder-eyebrow{letter-spacing:.07em;text-transform:uppercase;color:var(--faint);margin:0 0 8px;font-size:11px;font-weight:600}.studio__placeholder-title{color:var(--ink);margin:0 0 6px;font-size:16px;font-weight:600}.studio__placeholder-blurb{color:var(--muted);max-width:560px;margin:0;font-size:13px;line-height:1.55}.studio__placeholder-meta{font-family:var(--font-mono);color:var(--faint);flex-wrap:wrap;gap:6px 14px;margin-top:18px;font-size:11.5px;display:flex}.studio__theme{border:1px solid var(--line);background:var(--elevated);border-radius:7px;align-items:center;gap:2px;padding:2px;display:inline-flex}.studio__theme button{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:3px 9px;font-size:11.5px;transition:color .12s,background .12s}.studio__theme button:hover{color:var(--ink)}.studio__theme button[aria-pressed=true]{color:var(--ink);background:var(--panel);font-weight:500}.studio__cmdk-backdrop{background:var(--bg);position:fixed;top:54px;right:0;bottom:0;left:0}@supports (color:color-mix(in lab,red,red)){.studio__cmdk-backdrop{background:color-mix(in srgb,var(--bg) 55%,transparent)}}.studio__cmdk-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:clamp(24px,8vh,72px) var(--gutter,16px) 0;z-index:40;justify-content:center;align-items:flex-start;display:flex}.studio__cmdk{border-radius:12px;width:100%;max-width:560px;box-shadow:0 18px 48px -12px #00000059}.studio__cmdk .studio-home__command-results{background:var(--elevated)}.studio__palette-backdrop{background:var(--bg);position:fixed;top:0;right:0;bottom:0;left:0}@supports (color:color-mix(in lab,red,red)){.studio__palette-backdrop{background:color-mix(in srgb,var(--bg) 55%,transparent)}}.studio__palette-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;justify-content:center;align-items:flex-start;padding-top:14vh;display:flex}.studio__palette{background:var(--elevated);border:1px solid var(--line-2);border-radius:12px;width:100%;max-width:560px;overflow:hidden;box-shadow:0 18px 48px -12px #00000059}.studio__palette-cmd{border-bottom:1px solid var(--line);align-items:center;gap:9px;padding:12px 14px;display:flex}.studio__palette-input{color:var(--ink);font:inherit;background:0 0;border:none;outline:none;flex:1;font-size:14px}.studio__palette-input::placeholder{color:var(--faint)}.studio__palette-list{max-height:52vh;margin:0;padding:6px;list-style:none;overflow:auto}.studio__palette-item{text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-direction:column;gap:2px;padding:9px 11px;display:flex}.studio__palette-item[data-active]{background:var(--accent-tint)}.studio__palette-label{color:var(--ink);font-size:13px;font-weight:500}.studio__palette-item[aria-current=page] .studio__palette-label:after{content:"current";text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin-left:8px;font-size:10px;font-weight:400}.studio__palette-blurb{color:var(--muted);font-size:12px;line-height:1.45}.studio__palette-empty{text-align:center;color:var(--faint);padding:16px;font-size:13px}.studio__palette-run .studio__palette-label{color:var(--accent)}.studio__palette-running{color:var(--muted);margin:0;padding:16px;font-size:13px}.studio__palette-error{color:var(--diff-remove);margin:0;padding:4px 16px 14px;font-size:12px;line-height:1.5}@media(max-width:760px){.studio{--gutter:16px;grid-template-rows:54px 1fr;height:100dvh}.studio__bar{z-index:10;position:relative}.studio__bar-inner{gap:8px;max-width:none;height:54px;padding-inline:10px}.studio__menu,.studio__bar-tools{display:none}.studio__status,.studio-playground__controls{gap:4px}.studio-playground-model select{max-width:112px}.studio-playground-model select:nth-of-type(2){display:none}.studio__nav{justify-content:flex-start;padding-inline:2px;overflow-x:auto}.studio__nav-tab{flex:none;padding:0 10px;font-size:13px}.studio__nav-backdrop{display:none}.studio__content[data-surface=home]>*,.studio__content[data-surface=rtdb]>*,.studio__content[data-surface=traffic]>*,.studio__content[data-surface=settings]>*,.studio__content[data-surface=storage]>*,.studio__content[data-surface=firestore]>*,.studio__content[data-surface=auth]>*{max-width:none;padding:18px 16px 56px}.studio__palette-backdrop{padding-top:8vh}.studio__palette{max-width:none;margin:0 12px}.studio-settings__grid{grid-template-columns:1fr}.ai-set__field,.studio-settings__row,.studio-settings__branch{flex-direction:column;align-items:stretch}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
@@ -0,0 +1,2 @@
1
+ import{s as o,a as p,d as i,G as u,b as r,u as d,r as A,T as f}from"./index-CmkJxFcG.js";function g(a){r.createUser(a,{uid:"alice",email:"alice@gmail.com",displayName:"Alice Nguyen",emailVerified:!0,photoUrl:"https://lh3.googleusercontent.com/a/alice",customClaims:{provider:"google.com",plan:"pro"}}),r.createUser(a,{uid:"bob",email:"bob@example.com",displayName:"Bob Carter",emailVerified:!0,customClaims:{role:"editor"}}),r.createUser(a,{uid:"carol",email:"carol@example.com",displayName:"Carol Diaz",emailVerified:!1}),r.createUser(a,{uid:"anon-7Hk2"})}const h=new u(37.7749,-122.4194);async function w(a){const s=Date.now(),n=e=>f.fromMillis(s-e*6e4),l=[{id:"alice",name:"Alice Nguyen",email:"alice@gmail.com",plan:"pro"},{id:"bob",name:"Bob Carter",email:"bob@example.com",plan:"free"},{id:"carol",name:"Carol Diaz",email:"carol@example.com",plan:"free"}];for(const e of l)await o(i(a,"users",e.id),{name:e.name,email:e.email,plan:e.plan,createdAt:p()});const t=["alice","bob","carol"],c=["Ship the redesign","Reply to carol","Buy milk","Draft the launch post","Review the rules","Plan offsite","Renew the domain","Read the spec","Fix the flaky test","Call the bank","Water the plants","Book the flights"];for(let e=0;e<c.length;e++){const m=t[e%t.length];await o(i(a,"notes",`note-${String(e+1).padStart(2,"0")}`),{title:c[e],done:e%3===0,pinned:e===0,priority:e%3+1,ownerId:m,ownerRef:`users/${m}`,tags:e%2===0?["work","urgent"]:["personal"],meta:{source:e%2===0?"app":"import",revision:e+1,flags:{starred:e%4===0,archived:!1}},location:e%3===0?h:null,createdAt:n(120-e*7),updatedAt:p()})}await o(i(a,"posts","post-hello"),{title:"Hello world",body:"First post from the seeded sandbox.",authorRef:"users/alice",published:!0,publishedAt:n(8)}),await o(i(a,"posts","post-draft"),{title:"Draft: roadmap",body:"Unpublished draft.",authorRef:"users/bob",published:!1})}async function b(a){const s=new TextEncoder,l=Uint8Array.from(atob("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg=="),t=>t.charCodeAt(0));await d(A(a,"avatars/alice.png"),l,{contentType:"image/png"}),await d(A(a,"notes/note-01/attachment.txt"),s.encode(`Attachment for the redesign note.
2
+ `),{contentType:"text/plain"})}async function C(a){await w(a.adminFirestore),g(a.auth),await b(a.storage)}export{C as applySeed};
@@ -0,0 +1,32 @@
1
+ <!doctype html>
2
+ <!--
3
+ Studio is dark-only for V1 so it stays aligned with the embedded playground.
4
+ Fonts are loaded here so the `--font-*` tokens resolve to webfonts; swap the
5
+ token + this <link> to re-type the whole app.
6
+ -->
7
+ <html lang="en">
8
+ <head>
9
+ <meta charset="UTF-8" />
10
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
11
+ <link rel="icon" type="image/svg+xml" href="/__pyric/ui/pyric-logo.svg" />
12
+ <title>Pyric Studio</title>
13
+ <script>
14
+ // Pre-paint theme: force the V1 dark palette and clear older overrides.
15
+ try {
16
+ localStorage.setItem('pyric-studio:theme', 'dark');
17
+ } catch (e) {}
18
+ document.documentElement.setAttribute('data-theme', 'dark');
19
+ </script>
20
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
21
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
22
+ <link
23
+ href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap"
24
+ rel="stylesheet"
25
+ />
26
+ <script type="module" crossorigin src="/__pyric/ui/assets/index-CmkJxFcG.js"></script>
27
+ <link rel="stylesheet" crossorigin href="/__pyric/ui/assets/index-DNK39P6C.css">
28
+ </head>
29
+ <body>
30
+ <div id="root"></div>
31
+ </body>
32
+ </html>
@@ -0,0 +1,76 @@
1
+ <svg viewBox="388 288 498 723" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M599.758 301.959C612.269 290.124 641.671 301.76 654.039 309.385C700.703 331.924 741.862 379.277 759.117 428.27C765.773 446.893 768.969 466.576 768.547 486.347C768.43 493.679 766.746 512.448 768.485 518.588C769.949 519.845 770.034 519.817 771.804 520.648C774.345 520.749 775.343 519.605 777.578 518.038C786.114 508.258 787.375 483.073 803.442 488.5C809.718 490.428 821.162 505.858 822.656 511.825C826.758 518.19 830.457 527.81 833.065 534.911C843.229 562.597 846.181 589.388 844.276 618.74C840.927 648.767 832.716 673.29 816.031 698.689C812.785 703.214 806.222 712.643 802.358 716.133C798.966 720.199 794.961 724.038 791.202 727.791C789.793 729.041 788.048 730.498 786.714 731.778L783.168 734.711C778.239 737.631 773.39 741.819 768.24 744.697C755.278 751.953 739.67 756.907 725.593 761.536C722.183 762.656 716.917 764.015 714.572 765.895C712.325 766.642 709.349 767.738 707.108 768.289C705.167 768.632 699.203 769.949 697.611 771.106C693.551 772.22 687.783 773.996 683.791 774.81C679.793 776.182 663.493 780.927 661.467 781.858C656.525 783.279 649.153 785.605 644.224 785.807C641.205 787.999 628.2 791.416 623.559 793.333C619.769 792.757 604.454 785.893 599.294 784.124C596.818 783.309 592.315 783.291 587.888 781.772C583.952 781.503 566.326 775.772 562.335 774.167C560.758 773.708 559.17 773.341 557.574 772.949C552.631 770.561 544.845 767.873 539.416 765.534C526.582 759.999 517.436 754.855 505.848 747.244C500.246 743.767 496.284 739.609 491.026 735.758C488.374 733.21 486.514 731.349 484.058 728.575C435.718 681.654 422.512 607.527 444.03 544.788C445.059 540.086 448.014 531.787 449.956 527.2C462.616 497.449 480.183 468.539 504.439 446.816C510.828 441.093 521.366 432.177 530.373 436.014C542.231 442.632 533.652 462.061 542.703 470.93C545.696 473.863 550.849 468.06 552.54 465.805C583.073 426.252 613.352 392.131 604.062 338.458C600.88 325.559 592.593 314.496 599.758 301.959Z" fill="#852ADE"/>
3
+ <path d="M587.888 781.772L588.018 781.129L588.819 780.866C590.341 781.436 591.334 781.987 592.944 781.833L592.442 780.823C586.794 778.031 589.605 772.502 582.893 769.692L581.892 770.053L580.72 768.265C579.553 768.938 580.186 768.657 578.809 769.079L578.296 768.167L579.436 767.683C572.313 762.926 566.83 756.735 561.037 750.514C546.989 735.427 537.604 722.826 528.59 704.163C526.717 700.287 524.279 696.123 522.94 692.051C521.761 688.463 521.294 684.655 520.143 681.06C518.569 676.144 516.676 671.735 515.616 666.622C509.393 636.57 518.55 607.823 535.048 582.721C552.334 556.42 578.384 536.669 602.53 517.134C609.995 511.094 616.83 504.672 625.23 499.87C630.3 496.97 636.068 494.098 641.714 492.516C643.569 491.997 645.565 492.034 647.39 491.433C649.71 490.669 652.178 488.758 654.59 488.524C659.385 488.059 669.047 487.889 673.064 490.605C679.848 495.195 685.818 499.865 690.257 506.898C693.374 511.837 694.984 517.827 696.968 523.303C700.954 534.315 704.585 545.417 709.986 555.839C713.378 562.385 717.364 569.153 721.76 575.075C725.177 579.682 729.261 583.785 732.721 588.356C739.033 596.696 746.504 608.862 749.247 618.973C751.573 627.582 753.429 636.54 753.667 645.479C753.759 648.718 752.853 651.504 752.62 654.658C752.051 662.367 751.702 669.941 750.086 677.546C749.265 681.403 747.459 685.408 746.13 689.143C739.946 706.538 732.812 721.185 721.13 735.66C713.335 745.316 700.673 755.529 694.905 765.956C694.782 766.183 694.66 766.41 694.543 766.636C691.231 767.138 686.59 772.288 683.791 774.81C679.793 776.182 663.493 780.927 661.467 781.858C656.525 783.279 649.153 785.605 644.224 785.807C641.205 787.999 628.2 791.416 623.559 793.333C619.769 792.757 604.454 785.893 599.294 784.124C596.818 783.309 592.315 783.291 587.888 781.772Z" fill="#D96AF6"/>
4
+ <path d="M599.294 784.123C615.697 786.34 627.814 786.952 644.224 785.807C641.205 787.999 628.2 791.416 623.559 793.333C619.769 792.757 604.454 785.893 599.294 784.123Z" fill="#531756"/>
5
+ <path d="M622.414 608.937C633.074 605.87 661.228 615.213 670.094 621.728C704.052 646.698 714.915 687.937 689.902 723.616C677.252 741.666 661.981 754.268 639.95 758.946C635.346 758.462 633.454 761.829 626.951 761.272L626.755 760.691L629.174 759.356C627.294 758.15 624.949 758.468 622.732 758.064C605.94 755.015 586.495 738.635 577.467 724.558C568.661 710.831 559.908 690.918 560.34 674.613C560.763 658.675 568.856 638.928 580.398 627.6C590.367 618.281 608.473 608.524 622.414 608.937Z" fill="#F6A0FA"/>
6
+ <path d="M620.228 623.271C626.798 622.616 650.225 626.161 655.68 629.315C668.569 636.772 684.991 650.133 689.81 664.84C695.211 681.348 694.929 699.16 687.851 714.847C680.417 731.3 662.434 746.136 645.59 751.757C607.813 759.986 580.053 727.951 571.464 694.672C566.674 676.113 569.658 666.42 578.873 649.961C587.136 635.205 604.863 627.49 620.228 623.271Z" fill="#FECCFD"/>
7
+ <path d="M822.656 511.825C826.758 518.19 830.457 527.81 833.065 534.911C843.229 562.597 846.181 589.388 844.276 618.74C841.252 622.426 843.768 623.902 840.578 627.459C839.807 628.188 838.974 627.698 837.259 629.425C837.216 630.851 837.302 630.882 837.725 632.247C836.476 632.749 837.07 632.45 835.949 633.129C836.904 634.911 836.665 635.144 836.378 637.146L835.784 637.562C834.81 635.548 834.792 634.684 834.461 632.517C834.62 635.952 835.331 641.573 833.537 644.279L832.3 643.208C832.049 647.653 830.408 648.669 830.126 652.57C825.638 650.813 831.406 630.698 833.034 626.841C834.014 628.739 834.547 630.092 836.078 631.598C833.359 622.689 834.449 625.671 835.245 616.995C837.363 593.831 837.014 567.782 829.11 545.707C828.546 544.137 827.181 532.916 827.205 531.746C828.387 530.045 827.609 530.711 829.838 529.976C829.048 524.213 822.344 517.181 822.656 511.825Z" fill="#7636DD"/>
8
+ <path d="M707.108 768.289C710.573 763.121 730.057 754.604 736.076 751.298C739.982 749.155 743.399 750.416 744.507 749.7C749.706 746.344 754.114 741.954 759.864 739.297C761.909 741.066 760.335 738.825 764.083 739.615C763.287 741.728 761.303 741.232 760.464 743.944C762.619 743.828 765.95 742.579 768.155 741.887L765.907 743.203C772.533 741.666 786.946 729.708 792.292 724.589C795.549 721.479 797.857 718.319 801.954 715.141L802.358 716.133C798.966 720.199 794.961 724.038 791.202 727.791C789.793 729.041 788.048 730.498 786.714 731.778L783.168 734.711C778.239 737.631 773.39 741.819 768.24 744.697C755.278 751.953 739.67 756.907 725.593 761.536C722.183 762.656 716.917 764.015 714.572 765.895C712.325 766.642 709.349 767.738 707.108 768.289Z" fill="#7636DD"/>
9
+ <path d="M444.03 544.788C445.059 540.086 448.014 531.787 449.956 527.2C462.616 497.449 480.183 468.539 504.439 446.816C510.828 441.093 521.366 432.177 530.373 436.014C529.918 439.171 529.959 441.216 529.939 444.375C526.956 448.421 523.197 453.009 521.141 457.472C520.583 458.684 520.342 458.973 519.437 459.917L519.92 454.075L519.926 454.647L519.286 454.064L517.033 456.956C515.92 454.947 518.091 454.514 516.676 453.147C509.69 446.398 518 444.364 520.229 438.858C516.126 437.507 509.289 444.478 506.066 447.308C481.562 468.82 464.45 497.295 451.479 526.914C450.617 528.881 445.028 544.618 444.03 544.788Z" fill="#A754F7"/>
10
+ <path d="M777.578 518.038C786.114 508.258 787.375 483.073 803.442 488.5C799.915 489.059 795.035 488.683 792.647 492.236C799.284 492.415 807.073 487.483 807.122 500.198C807.134 504.171 804.287 507.542 803.044 511.083C802.101 513.999 803.062 514.351 801.115 518.313C800.913 515.11 801.501 512.042 801.256 508.375L800.766 508.556C800.239 510.279 798.794 515.737 797.9 516.817L797.515 515.638L798.047 516.745L798.433 516.074C795.065 511.227 798.029 496.01 795.2 492.79C793.418 493.976 791.967 494.683 790.84 496.479C789.83 504.855 788.073 517.538 778.074 518.8L777.578 518.038Z" fill="#A754F7"/>
11
+ <path d="M840.578 627.459C843.768 623.902 841.252 622.426 844.276 618.74C840.927 648.767 832.716 673.29 816.031 698.689C815.149 696.558 814.451 695.186 815.229 693.245C817.078 692.817 817.084 692.872 818.707 691.935C821.499 686.816 823.397 684.061 823.783 678.152C822.784 677.331 823.17 677.546 822.576 676.052C822.178 677.84 822.16 678.991 820.825 680.197L820.023 679.891C820.458 676.499 826.477 663.334 828.773 661.044C829.312 661.969 829.244 667.877 829.391 669.622L829.918 669.604C833.506 662.789 841.717 636.276 841.252 629.241L840.584 628.494L840.578 627.459Z" fill="#A754F7"/>
12
+ <path d="M604.062 338.458C607.521 342.074 607.588 354.539 607.521 359.597C607.223 382.142 597.579 402.019 587.324 421.566C582.68 430.42 573.287 438.969 568.914 448.143C566.595 453.006 557.566 460.754 553.85 465.322C553.694 465.491 552.54 465.805 552.54 465.805C583.073 426.252 613.352 392.131 604.062 338.458Z" fill="#A754F7"/>
13
+ <path d="M599.758 301.959C612.269 290.124 641.671 301.76 654.039 309.385C649.214 308.779 640.765 303.604 639.258 303.635C631.758 303.792 624.055 302.864 616.236 299.506C613.921 298.512 603.746 303.36 599.758 301.959Z" fill="#A754F7"/>
14
+ <path d="M777.578 518.038L778.074 518.8C777.394 520.104 777.051 520.202 775.962 521.212C777.462 526.357 781.876 530.423 777.517 535.069C772.098 535.961 769.018 522.608 768.485 518.588C769.949 519.845 770.034 519.817 771.804 520.648C774.345 520.749 775.343 519.605 777.578 518.038Z" fill="#7636DD"/>
15
+ <path d="M620.344 302.172C624.226 300.959 648.125 316.542 651.143 320.139C649.465 319.724 642.846 314.943 640.942 313.648C640.814 315.657 641.248 314.966 640.171 316.14C639.056 316.345 638.591 316.41 637.513 316.743C639.013 318.315 639.509 318.485 641.358 319.506C641.193 319.139 649.637 327.35 650.525 328.287C638.787 321.502 620.393 312.903 611.866 302.826C614.344 302.468 617.779 302.343 620.344 302.172Z" fill="#A754F7"/>
16
+ <path d="M757.121 439.163C761.37 442.17 761.505 445.576 762.417 450.337C764.187 459.549 765.92 468.33 764.983 477.764C764.677 480.839 763.899 484.359 765.418 487.106C764.291 486.176 764.119 485.625 762.785 484.651C761.995 485.409 762.393 485.131 761.646 485.555L761.321 484.06C760.935 485.297 761.309 484.945 760.531 485.391C759.735 482.62 760.048 472.955 759.656 469.227C758.578 458.906 756.864 449.615 757.121 439.163Z" fill="#7636DD"/>
17
+ <path d="M791.202 727.791C792.886 727.791 799.229 725.728 801.005 725.122C815.614 720.119 825.711 719.311 840.517 724.724C850.05 729.849 858.261 735.941 864.47 744.997C880.721 767.126 884.45 801.58 864.458 822.644C859.106 827.487 856.094 830.138 849.279 832.783L836.861 837.259C838.392 839.849 837.59 838.41 839.647 839.904C842.127 841.717 844.883 845.679 846.775 848.073L845.825 847.864C846.775 849.352 847.644 849.524 849.273 850.24C860.784 852.64 872.963 866.864 874.445 877.328C879.27 894.516 857.827 910.124 855.083 921.837C852.506 932.828 871.622 951.142 856.878 967.264C850.565 974.164 840.419 986.178 830.138 988.303C829.808 991.499 830.334 990.458 828.491 992.821C826.03 992.938 826.109 992.821 824.113 991.554L822.858 991.921L822.429 992.76C823.587 993.617 823.709 993.483 824.395 994.72C822.491 994.971 822.589 994.891 820.739 994.285C820.237 995.075 819.876 995.681 819.429 996.507L818.768 996.477L819.092 994.42L818.29 993.973C816.19 994.94 815.823 995.705 814.396 997.506L813.826 997.677L813.404 996.661C810.293 996.422 806.73 996.379 804.274 998.681C805.885 999.245 807.005 998.473 809.05 997.867C807.446 998.993 807.385 999.085 805.579 999.796L804.813 999.575C803.864 999.318 803.356 999.22 802.413 999.042L801.629 998.883L803.827 998.559L803.821 997.444L802.774 997.23C801.243 998.259 800.895 998.822 799.241 998.944L799.848 997.616L798.488 998.057L798.213 999.269C799.523 1000.95 798.654 1000.28 801.36 1000.7C793.547 1001.82 792.72 1004.14 784.203 1002.62C783.413 1002.48 761.995 1003.89 762.246 1003.78C765.497 1004.43 769.783 1004.28 773.182 1004.32C762.13 1005.37 748.702 1001.52 741.642 1003.06C739.505 1002.02 739.358 1001.81 737.576 1000.36C730.675 997.512 667.118 983.214 662.563 983.484C658.54 983.716 654.615 983.043 650.592 983.043C642.632 983.043 634.342 983.894 626.424 984.764C606.285 986.968 586.604 992.754 566.793 996.759L565.888 997.028C563.656 997.714 560.618 999.11 558.451 1000.12C558.54 1001.57 558.38 1000.86 558.958 1002.25L558.002 1002.12L557.32 1001.14C552.386 1001.65 548.633 1002.84 543.5 1003.16C539.56 1003.41 534.174 1002.61 531.027 1003.82L530.365 1004.78L530.879 1005.38C532.368 1005.09 532.36 1004.94 533.622 1004.03C535.242 1004.41 534.584 1003.97 535.74 1005.15C539.392 1004.98 543.486 1004.13 546.658 1004.81C551.025 1008.79 552.892 1006.74 558.001 1007.44C552.254 1007.8 501.934 1008.97 499.965 1007.65C501.992 1007.27 508.332 1007.01 509.614 1005.87C505.478 1004.96 493.102 1004.27 490.334 1002.96C490.731 1001.92 490.839 1001.78 490.856 1000.66L489.997 1000.29L487.143 1003.35C487.407 1001.83 487.39 1001.83 488.04 1000.44C468.992 998.669 439.972 986.502 426.762 971.764C426.308 971.256 425.866 970.736 425.437 970.209C413.946 956.04 421.804 942.851 419.353 927.188C418.824 923.809 414.676 918.512 412.803 915.34C405.946 903.731 394.935 889.164 396.164 875.02C397.02 865.156 401.389 861.464 407.952 855.628C407.981 854.012 407.826 853.975 408.732 852.689L409.365 852.702L409.662 854.232L410.158 853.828C412.149 850.185 419.49 848.22 423.537 845.385C423.987 843.523 423.736 844.025 424.648 842.403C426.576 841.968 429.391 843.137 431.412 843.756C436.107 842.133 438.087 841.717 442.96 842.305L443.507 841.49C439.848 840.076 430.794 837.431 429.068 834.375C412.594 827.652 400.804 822.227 395.578 803.65C390.762 786.536 394.497 769.753 403.06 754.5C407.952 746.124 414.656 738.948 422.681 733.498C431.678 727.381 445.381 722.146 456.264 724.185L456.652 724.344C462.092 725.287 464.441 725.973 469.477 727.602C474.108 729.102 487.222 735.537 491.026 735.758C496.284 739.609 500.246 743.767 505.848 747.244C517.436 754.855 526.582 759.999 539.416 765.534C544.845 767.873 552.631 770.561 557.574 772.949C559.17 773.341 560.758 773.708 562.335 774.167C566.326 775.772 583.952 781.503 587.888 781.772C592.315 783.291 596.818 783.309 599.294 784.123C604.454 785.893 619.769 792.757 623.559 793.333C628.2 791.416 641.205 787.999 644.224 785.807C649.153 785.605 656.525 783.279 661.467 781.858C663.493 780.927 679.793 776.182 683.791 774.81C687.783 773.996 693.551 772.22 697.611 771.106C699.203 769.949 705.167 768.632 707.108 768.289C709.349 767.738 712.325 766.642 714.572 765.895C716.917 764.015 722.183 762.656 725.593 761.536C739.67 756.907 755.278 751.953 768.24 744.697C773.39 741.819 778.239 737.631 783.168 734.711L786.714 731.778C788.048 730.498 789.793 729.041 791.202 727.791Z" fill="#A3563E"/>
18
+ <path d="M429.068 834.375L435.534 836.794C441.33 839.843 448.094 842.06 454.187 845.091L451.502 846.609C449.316 848.379 447.191 850.056 445.105 851.948C430.065 866.185 428.543 881.627 430.174 901.417C432.362 914.122 434.375 920.098 440.449 931.26L442.85 935.834C449.269 945.221 453.202 949.966 461.782 957.791C480.111 976.173 510.509 980.471 531.991 964.992C533.853 963.682 555.821 953.23 558.467 952.299C563.95 948.815 574.41 943.543 580.325 940.329L617.736 919.547C623.204 916.461 630.931 912.444 635.793 909.015C639.038 905.978 666.555 890.046 671.312 888.068C669.935 889.63 668.52 890.26 666.953 891.687C668.686 892.11 675.305 887.609 676.903 886.433C703.116 867.176 725.306 843.872 760.311 842.458C764.469 842.917 769.44 842.501 773.035 843.572C774.663 842.439 784.326 845.495 786.463 846.389L785.52 846.695C789.402 848.446 792.188 849.285 796.247 850.552L797.729 850.265C802.217 848.507 808.708 846.217 813.269 845.152L818.094 843.835C822.448 841.95 828.718 840.162 833.567 838.294L836.861 837.259C838.392 839.849 837.59 838.41 839.647 839.904C842.127 841.717 844.883 845.679 846.775 848.073L845.825 847.864C846.775 849.352 847.644 849.524 849.273 850.24C860.784 852.64 872.963 866.864 874.445 877.328C879.27 894.516 857.827 910.124 855.083 921.837C852.506 932.828 871.622 951.142 856.878 967.264C850.565 974.164 840.419 986.178 830.138 988.303C829.808 991.499 830.334 990.458 828.491 992.821C826.03 992.938 826.109 992.821 824.113 991.554L822.858 991.921L822.429 992.76C823.587 993.617 823.709 993.483 824.395 994.72C822.491 994.971 822.589 994.891 820.739 994.285C820.237 995.075 819.876 995.681 819.429 996.507L818.768 996.477L819.092 994.42L818.29 993.973C816.19 994.94 815.823 995.705 814.396 997.506L813.826 997.677L813.404 996.661C810.293 996.422 806.73 996.379 804.274 998.681C805.885 999.245 807.005 998.473 809.05 997.867C807.446 998.993 807.385 999.085 805.579 999.796L804.813 999.575C803.864 999.318 803.356 999.22 802.413 999.042L801.629 998.883L803.827 998.559L803.821 997.444L802.774 997.23C801.243 998.259 800.895 998.822 799.241 998.944L799.848 997.616L798.488 998.057L798.213 999.269C799.523 1000.95 798.654 1000.28 801.36 1000.7C793.547 1001.82 792.72 1004.14 784.203 1002.62C783.413 1002.48 761.995 1003.89 762.246 1003.78C765.497 1004.43 769.783 1004.28 773.182 1004.32C762.13 1005.37 748.702 1001.52 741.642 1003.06C739.505 1002.02 739.358 1001.81 737.576 1000.36C730.675 997.512 667.118 983.214 662.563 983.484C658.54 983.716 654.615 983.043 650.592 983.043C642.632 983.043 634.342 983.894 626.424 984.764C606.285 986.968 586.604 992.754 566.793 996.759L565.888 997.028C563.656 997.714 560.618 999.11 558.451 1000.12C558.54 1001.57 558.38 1000.86 558.958 1002.25L558.002 1002.12L557.32 1001.14C552.386 1001.65 548.633 1002.84 543.5 1003.16C539.56 1003.41 534.174 1002.61 531.027 1003.82L530.365 1004.78L530.879 1005.38C532.368 1005.09 532.36 1004.94 533.622 1004.03C535.242 1004.41 534.584 1003.97 535.74 1005.15C539.392 1004.98 543.486 1004.13 546.658 1004.81C551.025 1008.79 552.892 1006.74 558.001 1007.44C552.254 1007.8 501.934 1008.97 499.965 1007.65C501.992 1007.27 508.332 1007.01 509.614 1005.87C505.478 1004.96 493.102 1004.27 490.334 1002.96C490.731 1001.92 490.839 1001.78 490.857 1000.66L489.997 1000.29L487.143 1003.35C487.407 1001.83 487.39 1001.83 488.04 1000.44C468.992 998.669 439.972 986.502 426.762 971.764C426.308 971.256 425.866 970.736 425.437 970.209C413.946 956.04 421.804 942.851 419.353 927.188C418.824 923.809 414.676 918.512 412.803 915.34C405.946 903.731 394.935 889.164 396.164 875.02C397.02 865.156 401.389 861.464 407.952 855.628C407.981 854.012 407.826 853.975 408.732 852.689L409.365 852.702L409.662 854.232L410.158 853.828C412.149 850.185 419.49 848.22 423.537 845.385C423.987 843.523 423.736 844.025 424.648 842.403C426.576 841.968 429.391 843.137 431.412 843.756C436.107 842.133 438.087 841.717 442.96 842.305L443.507 841.49C439.848 840.076 430.794 837.431 429.068 834.375Z" fill="#9F7AA0"/>
19
+ <path d="M833.567 838.294L836.861 837.259C838.392 839.849 837.59 838.41 839.647 839.904C842.127 841.717 844.883 845.679 846.775 848.073L845.825 847.864C846.775 849.352 847.644 849.524 849.273 850.24L846.67 852.457C845.323 852.181 845.268 852.04 843.927 852.285L843.909 853.253C844.876 854.067 845.832 854.888 846.787 855.714C846.75 858.09 847.056 857.012 845.807 859.051C843.45 859.694 839.623 857.074 836.794 856.155C839.366 863.846 852.377 865.033 852.181 878.835C852.151 881.027 852.071 883.39 851.208 885.435C851.104 885.68 850.975 885.907 850.852 886.14C849.971 883.709 849.995 883.635 848.538 881.56L847.038 882.656C848.532 885.589 848.758 902.892 849.61 908.783L849.928 907.754C850.063 910.399 850.54 914.6 848.489 916.614C844.919 916.112 847.142 912.903 843.952 914.287L843.303 913.259C842.819 914.685 842.329 917.177 841.362 917.698C841.184 917.386 840.498 916.247 840.419 915.959L840.033 916.859C838.361 920.839 838.539 921.445 836.267 925.854L835.159 925.052C831.467 926.111 829.863 933.152 828.76 935.92L828.987 936.202L829.354 935.675C830.499 934.065 830.23 934.022 831.828 933.201L832.428 933.716C831.895 935.951 831.271 936.6 829.997 938.467L831.314 939.263C831.081 942.288 817.653 956.322 814.641 959.12L817.457 959.635L817.69 960.333C814.616 963.229 812.222 964.215 811.169 967.815L809.461 968.611L809.779 970.001C791.11 977.183 783.052 977.079 764.095 968.831C752.388 963.737 740.913 958 729.341 952.599C723.377 950.254 715.251 945.919 709.251 943.041C699.221 938.314 689.149 933.673 679.04 929.117C665.789 923.6 649.178 915.212 635.793 909.015C639.038 905.978 666.555 890.046 671.312 888.068C669.935 889.63 668.52 890.26 666.953 891.687C668.686 892.11 675.305 887.609 676.903 886.433C703.116 867.177 725.305 843.872 760.311 842.458C764.468 842.917 769.44 842.501 773.035 843.572C774.663 842.439 784.326 845.495 786.463 846.389L785.52 846.695C789.402 848.446 792.188 849.285 796.247 850.552L797.729 850.265C802.217 848.507 808.707 846.217 813.269 845.152L818.094 843.835C822.448 841.95 828.718 840.162 833.567 838.294Z" fill="#5B2A1E"/>
20
+ <path d="M806.687 890.493C808.708 890.352 812.124 888.632 814.157 887.811C820.256 885.337 823.513 885.54 829.863 885.778C840.358 892.471 843.413 904.294 840.419 915.959L840.033 916.859C838.361 920.839 838.539 921.445 836.267 925.854L835.159 925.052C831.467 926.111 829.863 933.152 828.761 935.92L828.987 936.202L829.354 935.675C830.499 934.065 830.23 934.022 831.828 933.201L832.428 933.716C831.896 935.951 831.271 936.6 829.997 938.467C822.742 948.233 814.99 955.722 802.297 957.663C796.498 958.551 796.272 957.149 792.108 956.64C783.279 949.17 783.989 929.258 787.295 919.131C788.63 915.04 792.102 910.454 793.486 905.935C795.163 901.239 802.646 892.899 806.687 890.493Z" fill="#854E41"/>
21
+ <path d="M819.19 898.753C831.834 897.492 829.305 903.345 833.726 906.358C834.381 904.515 834.241 903.909 835.527 902.862L835.918 903.272C834.951 907.227 835.863 909.45 835.269 912.456C832.82 924.807 823.489 936.936 813.735 944.247C784.448 956.016 788.948 910.675 819.19 898.753Z" fill="#7D473B"/>
22
+ <path d="M818.088 902.506C819.178 902.678 818.951 902.672 819.98 903.137C819.417 907.191 810.918 912.42 807.109 912.928L806.779 912.438L805.701 912.659L805.413 911.979C807.324 907.405 813.686 904.288 818.088 902.506Z" fill="#9B5B4B"/>
23
+ <path d="M833.567 838.294L836.861 837.259C838.392 839.849 837.59 838.41 839.647 839.904C842.127 841.717 844.882 845.679 846.775 848.073L845.825 847.864C846.774 849.352 847.644 849.524 849.273 850.24L846.67 852.457C845.323 852.181 845.268 852.04 843.927 852.285L843.909 853.253C844.876 854.067 845.832 854.888 846.787 855.714C846.75 858.09 847.056 857.012 845.807 859.051C843.45 859.694 839.623 857.074 836.794 856.155C839.366 863.846 852.377 865.033 852.181 878.835C852.151 881.027 852.071 883.39 851.208 885.435C851.104 885.68 850.975 885.907 850.852 886.14C849.971 883.709 849.995 883.635 848.538 881.56L847.038 882.656L843.878 877.684C830.928 873.153 832.783 869.203 816.98 870.477C811.567 872.565 805.983 874.892 800.374 876.282C794.386 878.125 793.963 882.515 788.085 885.87C789.548 883.678 790.687 882.227 792.359 880.182C792.873 878.865 793.21 877.874 793.626 876.52C789.034 874.347 774.308 868.971 769.183 867.415C765.877 862.59 757.17 861.078 751.524 859.039C748.812 857.416 745.848 855.653 746.118 852.206C748.089 849.848 751.371 849.885 754.414 849.561C753.686 847.999 753.282 847.393 753.251 845.63C764.303 844.276 774.584 844.319 785.52 846.695C789.402 848.446 792.188 849.285 796.247 850.552L797.729 850.265C802.217 848.507 808.707 846.217 813.269 845.152L818.094 843.835C822.448 841.95 828.718 840.162 833.567 838.294Z" fill="#AE5F3E"/>
24
+ <path d="M833.567 838.294L836.861 837.259C838.392 839.849 837.59 838.41 839.647 839.904C842.127 841.717 844.883 845.679 846.775 848.073L845.825 847.864C846.775 849.352 847.644 849.524 849.273 850.24L846.67 852.457C845.323 852.181 845.268 852.04 843.927 852.285L843.909 853.253C844.876 854.067 845.832 854.888 846.787 855.714C846.75 858.09 847.056 857.012 845.807 859.051C843.45 859.694 839.623 857.074 836.794 856.155C833.941 855.279 834.792 854.183 832.465 853.914C826.562 854.141 820.145 850.326 815.767 846.591L815.541 845.93C814.604 845.532 814.243 845.44 813.269 845.152L818.094 843.835C822.448 841.95 828.718 840.162 833.567 838.294Z" fill="#CBB4D4"/>
25
+ <path d="M818.094 843.835C822.448 841.95 828.718 840.162 833.567 838.294C834.571 842.978 836.984 845.483 837.853 849.769L837.339 850.075C832.918 847.981 831.608 848.403 827.04 847.681C824.799 847.326 820.292 844.944 818.094 843.835Z" fill="#D4C1DD"/>
26
+ <path d="M752.388 855.947C756.986 850.932 765.534 853.706 771.749 854.753C770.359 854.839 767.701 854.832 766.624 855.377C778.454 859.804 797.417 863.337 807.183 867.979C807.801 869.613 807.722 868.995 807.471 870.722C806.105 871.248 801.966 873.514 801.348 873.422C791.177 871.916 759.344 860.753 752.388 855.947Z" fill="#D48257"/>
27
+ <path d="M753.251 845.63C764.303 844.276 774.584 844.319 785.52 846.695C789.402 848.446 792.188 849.285 796.247 850.552C791.808 850.461 783.523 848.024 779.543 848.458C770.794 849.42 768.706 850.871 759.558 850.503C757.292 850.405 755.094 850.05 753.11 851.018C751.659 853.198 752.412 853.216 752.388 855.947C759.344 860.753 791.177 871.916 801.348 873.422C801.966 873.514 806.105 871.248 807.471 870.722C804.728 874.72 801.36 874.053 797.19 876.171C795.898 876.826 793.498 879.129 792.359 880.182C792.873 878.865 793.21 877.873 793.626 876.52C789.034 874.347 774.308 868.971 769.183 867.415C765.877 862.59 757.17 861.078 751.524 859.039C748.812 857.416 745.848 855.653 746.118 852.206C748.089 849.848 751.371 849.885 754.414 849.56C753.686 847.999 753.282 847.393 753.251 845.63Z" fill="#C57047"/>
28
+ <path d="M832.465 853.914C834.792 854.183 833.941 855.279 836.794 856.155C839.366 863.846 852.377 865.033 852.181 878.835C852.151 881.027 852.071 883.39 851.208 885.435C851.104 885.68 850.975 885.907 850.852 886.14C849.971 883.709 849.995 883.635 848.538 881.56L847.038 882.656L843.878 877.684C840.002 871.163 833.812 872.032 828.748 867.128C827.628 866.044 828.295 864.06 828.54 862.511L823.617 860.172C825.289 859.155 824.897 859.847 825.283 858.317L822.76 855.763C825.644 856.865 827.456 857.753 830.132 857.006C830.916 855.72 831.51 855.065 832.465 853.914Z" fill="#A887B3"/>
29
+ <path d="M828.54 862.511C837.878 866.999 843.34 872.638 848.538 881.56L847.038 882.656L843.878 877.684C840.002 871.163 833.812 872.032 828.748 867.128C827.628 866.044 828.295 864.06 828.54 862.511Z" fill="#C37049"/>
30
+ <path d="M771.749 854.753C775.098 854.992 777.749 855.843 780.982 856.7C784.148 857.649 787.191 858.555 790.51 858.586C801.482 858.678 811.389 862.486 821.921 865.597L816.98 870.477C811.567 872.565 805.983 874.892 800.374 876.281C794.386 878.124 793.963 882.515 788.085 885.87C789.548 883.678 790.687 882.227 792.359 880.182C793.498 879.129 795.898 876.826 797.19 876.171C801.36 874.053 804.728 874.72 807.471 870.722C807.722 868.995 807.801 869.614 807.183 867.979C797.417 863.337 778.454 859.804 766.624 855.377C767.701 854.832 770.359 854.839 771.749 854.753Z" fill="#C37049"/>
31
+ <path d="M797.729 850.265C802.217 848.507 808.708 846.217 813.269 845.152C814.243 845.44 814.604 845.532 815.541 845.93L815.767 846.591C820.145 850.326 826.562 854.141 832.465 853.914C831.51 855.065 830.916 855.72 830.132 857.006C827.456 857.753 825.644 856.865 822.76 855.763L825.283 858.316C824.897 859.847 825.289 859.155 823.617 860.172C820.237 858.702 818.37 857.943 814.806 856.865C809.736 855.084 806.026 853.669 801.139 851.477C800.031 851.379 798.813 850.724 797.729 850.265Z" fill="#AE91BD"/>
32
+ <path d="M801.139 851.477C812.822 848.997 814.598 852.64 822.76 855.763L825.283 858.316C824.897 859.847 825.289 859.155 823.617 860.172C820.237 858.702 818.37 857.943 814.806 856.865C809.736 855.084 806.026 853.669 801.139 851.477Z" fill="#9F7AA0"/>
33
+ <path d="M759.558 850.503C768.706 850.871 770.794 849.42 779.543 848.458C783.523 848.024 791.808 850.461 796.247 850.552L797.729 850.265C798.813 850.724 800.031 851.379 801.139 851.477C806.026 853.669 809.736 855.084 814.806 856.865C812.412 857.906 812.651 856.841 810.287 857.765L811.047 857.863C808.261 858.365 808.095 858.237 805.285 857.484C801.519 855.096 781.834 851.085 776.745 851.14C769.979 851.22 767.285 852.989 759.558 850.503Z" fill="#9B5B4B"/>
34
+ <path d="M679.04 929.117C685.549 928.878 700.544 940.157 707.959 940.647L710.69 937.843C714.419 936.63 722.336 936.269 725.997 937.132C738.954 940.169 771.216 953.438 779.103 936.942C781.111 932.742 782.568 932.895 782.721 927.954C783.572 933.869 781.895 956.316 791.226 957.198L792.108 956.64C796.272 957.149 796.498 958.551 802.297 957.663C814.99 955.722 822.742 948.233 829.997 938.467L831.314 939.263C831.081 942.288 817.653 956.322 814.641 959.12L817.457 959.634L817.69 960.333C814.616 963.229 812.222 964.215 811.169 967.815L809.461 968.611L809.779 970.001C791.11 977.183 783.052 977.079 764.095 968.831C752.388 963.737 740.913 958 729.341 952.599C723.377 950.254 715.251 945.919 709.251 943.041C699.221 938.314 689.149 933.673 679.04 929.117Z" fill="#744545"/>
35
+ <path d="M744.691 858.696C754.959 861.574 756.539 861.304 766.777 866.246L765.571 866.221C766.912 867.281 767.34 867.091 769.183 867.415C774.308 868.971 789.034 874.347 793.626 876.52C793.21 877.873 792.873 878.865 792.359 880.182C790.687 882.227 789.548 883.678 788.085 885.87C786.665 887.193 785.22 888.283 784.393 890.003C783.058 892.961 782.342 894.265 779.672 896.255C770.555 891.118 756.215 887.891 746.852 880.8C743.381 879.429 735.629 877.935 733.498 875.51C734.582 875.185 737.784 877.212 740.331 877.58C740.546 875.559 734.557 871.665 735.458 867.134C736.266 863.025 741.097 861.078 744.691 858.696Z" fill="#CD7B51"/>
36
+ <path d="M746.853 880.8C753.496 881.406 770.322 892.746 779.139 893.328C779.672 893.365 783.285 890.652 784.393 890.003C783.058 892.961 782.342 894.265 779.672 896.255C770.555 891.118 756.215 887.891 746.853 880.8Z" fill="#AE5F3E"/>
37
+ <path d="M816.98 870.477C832.783 869.203 830.928 873.153 843.878 877.684L847.038 882.656C848.532 885.589 848.758 902.892 849.61 908.783L849.928 907.754C850.063 910.399 850.54 914.6 848.489 916.614C844.919 916.112 847.142 912.903 843.952 914.287L843.303 913.259C842.819 914.685 842.329 917.177 841.362 917.698C841.184 917.386 840.498 916.247 840.419 915.959C843.413 904.294 840.358 892.471 829.863 885.778C823.513 885.54 820.256 885.337 814.157 887.811C812.124 888.632 808.708 890.352 806.687 890.493C808.836 889.011 812.792 887.383 813.471 886.072C806.938 881.217 790.694 899.941 787.167 903.688C784.626 906.382 776.562 905.758 775.202 912.291C774.963 912.989 774.18 913.761 773.598 914.275C776.39 903.009 792.616 886.311 800.374 876.281C805.983 874.892 811.567 872.565 816.98 870.477Z" fill="#7D412E"/>
38
+ <path d="M718.301 870.385L718.613 870.391L718.889 872.234C720.04 873.649 719.354 873.036 721.515 873.593C725.661 867.397 730.767 859.29 738.09 856.718C740.705 855.8 748.426 858.304 751.524 859.039C757.17 861.078 765.877 862.59 769.183 867.415C767.34 867.091 766.912 867.281 765.571 866.221L766.777 866.246C756.539 861.304 754.959 861.574 744.691 858.696C741.097 861.078 736.266 863.025 735.458 867.134C734.557 871.665 740.546 875.559 740.331 877.58C737.784 877.212 734.582 875.185 733.498 875.51C735.629 877.935 743.381 879.429 746.853 880.8C756.215 887.891 770.555 891.118 779.672 896.255L772.973 904.821C765.785 895.789 750.22 894.32 739.627 891.779C732.978 890.181 726.144 887.321 719.385 886.299C712.184 886.74 717.211 874.059 718.301 870.385Z" fill="#9D5130"/>
39
+ <path d="M788.085 885.87C793.963 882.515 794.386 878.125 800.374 876.281C792.616 886.311 776.39 903.009 773.598 914.275C772.275 916.516 771.841 917.337 769.667 918.053C767.016 917.343 765.969 915.095 763.991 913.412C762.368 912.028 760.103 912.114 758.107 912.438C757.176 912.591 758.333 912.53 756.98 912.567C746.565 912.836 741.03 903.321 731.814 900.161C727.528 898.692 719.819 899.543 716.568 896.537C719.329 896.2 725.465 897.645 728.777 898.092C728.563 896.604 721.001 887.523 719.385 886.299C726.144 887.321 732.978 890.181 739.627 891.779C750.22 894.32 765.785 895.79 772.973 904.821L779.672 896.255C782.342 894.265 783.058 892.961 784.393 890.003C785.22 888.283 786.665 887.193 788.085 885.87Z" fill="#823F25"/>
40
+ <path d="M735.488 849.616C742.15 847.638 746.381 846.634 753.251 845.63C753.282 847.393 753.686 847.999 754.414 849.561C751.371 849.885 748.089 849.848 746.118 852.206C745.848 855.653 748.812 857.416 751.524 859.039C748.426 858.304 740.705 855.8 738.09 856.718C730.767 859.29 725.661 867.397 721.515 873.593C719.354 873.036 720.04 873.649 718.889 872.234L718.613 870.391L718.301 870.385L717.052 870.085C717.045 867.366 717.774 865.236 718.454 862.603L717.511 862.572C717.829 861.549 717.817 862.058 717.566 861.035C715.637 861.292 706.104 870.324 703.318 872.522C696.209 873.195 695.223 876.416 688.72 880.194C691.88 876.539 695.345 875.302 698.566 872.51C704.934 866.987 710.188 862.345 717.609 858.108C723.799 854.569 729.261 853.057 735.488 849.616Z" fill="#7D412E"/>
41
+ <path d="M773.035 843.572C774.663 842.439 784.326 845.495 786.463 846.389L785.52 846.695C774.584 844.319 764.303 844.276 753.251 845.63C746.381 846.634 742.15 847.638 735.488 849.616C740.601 843.891 765.607 843.75 773.035 843.572Z" fill="#511F10"/>
42
+ <path d="M429.068 834.375L435.534 836.794C441.33 839.843 448.094 842.06 454.187 845.091L451.502 846.609C449.316 848.379 447.191 850.056 445.105 851.948C430.065 866.185 428.543 881.627 430.174 901.417C432.362 914.122 434.375 920.098 440.449 931.26L442.85 935.834C449.269 945.221 453.202 949.966 461.782 957.791C460.41 960.547 460.565 959.39 460.727 962.365C464.626 968.856 466.386 967.368 465.895 975.75C483.822 982.29 501.918 986.784 521.221 986.784C522.789 986.784 528.303 986.656 529.432 987.213C525.313 990.28 521.218 992.038 516.839 994.487C512.101 997.144 480.256 991.431 479.524 991.713C484.018 995.332 489.017 995.356 490.007 998.142L490.333 997.132L490.804 997.91C489.241 999.042 489.025 998.706 488.04 1000.44C468.992 998.669 439.972 986.502 426.762 971.764C426.308 971.256 425.866 970.736 425.437 970.209C413.946 956.04 421.804 942.851 419.353 927.188C418.824 923.809 414.676 918.512 412.803 915.34C405.946 903.731 394.935 889.164 396.164 875.02C397.02 865.156 401.389 861.464 407.952 855.628C407.981 854.012 407.826 853.975 408.732 852.689L409.365 852.702L409.662 854.232L410.158 853.828C412.149 850.185 419.49 848.22 423.537 845.385C423.987 843.523 423.736 844.025 424.648 842.403C426.576 841.968 429.391 843.137 431.412 843.756C436.107 842.133 438.087 841.717 442.96 842.305L443.507 841.49C439.848 840.076 430.794 837.431 429.068 834.375Z" fill="#CAACD4"/>
43
+ <path d="M442.85 935.834C449.269 945.221 453.202 949.966 461.782 957.791C460.41 960.547 460.565 959.39 460.727 962.365C464.626 968.856 466.386 967.368 465.895 975.75C460.351 974.624 448.349 976.583 444.636 973.313C445.533 972.597 445.13 973.02 445.83 972.046C444.226 970.907 444.396 970.84 443.73 968.935L444.419 968.837C446.15 969.75 446.214 969.805 448.095 970.282C448.862 966.021 438.439 959.604 448.061 945.692L445.617 942.141C443.644 939.337 443.003 939.153 442.85 935.834Z" fill="#9F79A5"/>
44
+ <path d="M430.174 901.417C425.34 899.42 421.471 883.654 419.636 878.682C415.104 866.393 435.695 853.792 445.105 851.948C430.065 866.185 428.543 881.627 430.174 901.417Z" fill="#9F7AA0"/>
45
+ <path d="M429.068 834.375L435.534 836.794C441.33 839.843 448.094 842.06 454.187 845.091L451.502 846.609C444.299 847.375 436.471 849.322 429.287 851.465C424.752 852.812 417.609 855.843 412.916 857.655C412.448 857.478 411.982 857.3 411.515 857.116C409.948 855.053 410.276 856.149 410.158 853.828C412.149 850.185 419.49 848.22 423.537 845.385C423.987 843.523 423.736 844.025 424.648 842.403C426.576 841.968 429.391 843.137 431.412 843.756C436.107 842.133 438.087 841.717 442.96 842.305L443.507 841.49C439.848 840.076 430.794 837.431 429.068 834.375Z" fill="#D4C1DD"/>
46
+ <path d="M635.793 909.015C649.178 915.212 665.789 923.6 679.04 929.117C689.149 933.673 699.221 938.314 709.251 943.041C715.251 945.919 723.377 950.254 729.341 952.599C731.918 955.955 743.552 959.549 745.089 960.994L744.134 962.004C742.383 962.384 738.035 961.055 734.943 960.902L734.937 961.667C740.485 963.731 745.187 965.574 750.484 968.225C752.131 969.052 753.98 968.642 756.178 969.603C755.266 970.858 754.482 971.458 754.378 972.75C763.066 976.21 779.103 977.097 788.483 977.281C792.806 977.367 795.745 974.967 798.574 976.344C791.091 981.849 763.979 978.873 755.18 976.35C751.831 975.389 747.03 972.542 743.522 971.17C734.723 967.729 726.126 963.682 717.358 960.228C716.403 959.855 711.296 960.204 710.035 960.284L709.386 961.422C708.681 961.269 693.404 956.071 693.196 955.906C694.305 954.246 693.545 954.926 695.952 954.307C692.7 952.832 688.041 952.403 684.489 952.22L683.589 952.183L681.789 950.187C680.111 949.819 678.25 951.179 676.358 952.097C673.48 949.048 671.802 949.617 667.902 949.672C669.959 949.231 671.294 949.042 672.378 947.26L671.533 945.729C663.463 944.566 658.717 944.664 650.666 946.152C645.792 947.052 640.679 944.076 635.138 946.299L633.484 946.427L633.172 947.284C635.523 949.868 643.581 948.931 647.206 949.274C646.086 949.746 627.808 950.854 625.463 950.854L623.706 949.911C622.83 950.37 612.403 953.052 611.643 953.071C608.568 953.169 578.662 960.926 576.701 962.243L573.757 961.906C573.248 962.574 572.873 963.082 572.395 963.786L571.57 962.659C566.292 961.557 531.587 981.922 523.079 975.708C523.988 974.146 524.123 975.383 526.787 974.342L523.972 974.44L523.96 973.271C518.869 973.571 516.101 974.44 511.094 975.469L510.713 975.058C512.341 971.795 515.27 974.005 519.672 972.083C528.714 968.213 537.525 964.233 546.225 959.622C550.014 957.614 555.379 954.307 559.245 952.918L559.043 952.379L558.467 952.299C563.95 948.815 574.41 943.543 580.325 940.329L617.736 919.547C623.204 916.461 630.931 912.444 635.793 909.015Z" fill="#502F50"/>
47
+ <path d="M566.793 996.759C567.881 993.807 566.949 994.891 569.443 993.348C573.344 990.942 580.254 988.205 584.723 987.605C587.323 988.823 586.043 988.756 588.691 987.948C586.341 986.803 583.464 987.997 580.762 986.686C581.724 984.782 585.729 983.3 587.9 982.296L586.089 982.51C585.087 981.267 585.703 981.561 584.415 981.175L582.647 982.051C581.901 981.433 581.841 981.341 581.197 980.624C582.741 980.153 583.243 980.043 584.837 979.798L582.71 979.541C584.755 977.728 587.979 977.122 590.521 978.212L587.631 977.906C590.889 978.206 593.14 979.7 595.409 978.916L593.977 977.716L594.456 976.914C596.418 976.693 596.398 976.871 598.277 977.63C599.659 976.204 601.483 973.993 603.217 973.362C603.282 975.254 602.312 976.706 600.727 977.698L601.173 977.949C603.192 976.681 603.169 976.669 604.779 974.881C604.504 976.075 604.411 976.436 604.016 977.624C605.98 977.049 605.57 975.94 607.389 974.477L608.89 974.618L609.025 975.444L608.128 976.197C613.039 974.103 617.607 972.946 622.328 970.901L619.842 971.287C623.443 969.995 626.608 968.984 630.49 968.727L630.031 967.533L628.837 967.246C630.086 966.664 629.474 966.89 630.668 966.541L630.698 965.929C637.115 966.419 640.55 966.186 646.888 965.825C650.917 965.598 656.783 966.645 661.167 966.186C662.11 965.115 661.871 965.574 662.257 964.178L663.573 966.376L664.914 966.474C665.569 965.256 665.447 965.709 665.685 964.368C661.234 961.257 661.424 961.931 655.968 961.716C658.497 961.759 665.606 961.361 667.069 961.68L668.931 963.921L668.759 964.772L668.373 964.907L668.79 963.566C667.43 965.207 668.251 964.858 666.536 965.213L667.186 966.603C668.306 966.07 667.737 966.419 668.857 965.482C671.386 966.174 674.564 968.85 676.352 969.064C679.309 969.407 681.997 968.733 685.089 969.78L685.371 970.448L683.087 970.766C686.228 973.65 695.97 973.283 698.86 975.573L698.523 976.001L696.337 975.744C698.86 978.481 700.611 978.696 704.205 979.479C702.197 979.657 700.354 979.761 698.334 979.847L699.552 979.945C700.391 980.765 700.103 980.269 700.36 981.476C702.295 981.096 703.134 980.943 705.148 980.79L706.055 981.622L705.804 982.676C704.316 982.89 703.428 982.957 702.007 983.429C703.067 983.6 708.859 984.243 709.324 984.457C717.425 988.248 723.885 993.758 733.18 994.328C734.925 994.438 736.364 997.597 739.707 997.549L740.766 996.752C742.762 997.512 742.07 996.881 743.105 998.473C741.477 999.134 741.262 998.883 739.389 998.767C738.121 999.545 738.513 999.183 737.576 1000.36C730.675 997.512 667.118 983.214 662.563 983.484C658.54 983.716 654.615 983.043 650.592 983.043C642.632 983.043 634.342 983.894 626.424 984.764C606.285 986.968 586.604 992.754 566.793 996.759Z" fill="#CCAAD9"/>
48
+ <path d="M849.273 850.24C860.784 852.64 872.963 866.864 874.445 877.329C879.27 894.516 857.827 910.124 855.083 921.837C852.506 932.828 871.622 951.142 856.878 967.264C850.565 974.165 840.419 986.178 830.138 988.303C831.051 986.496 831.595 986.3 833.181 985.253C834.149 984.617 833.898 980.679 834.492 978.524L836.255 977.857L836.855 978.359L836.004 980.759L836.322 980.753C837.78 979.216 840.278 977.195 840.511 975.493C838.68 975.377 838.931 975.591 837.351 974.924C839.01 970.932 842.586 971.556 844.484 965.139L845.832 964.717L845.813 963.829L844.435 963.774C843.113 964.508 842.072 964.962 840.645 965.458C841.496 964.68 841.117 965.188 841.576 963.786L840.915 963.241C841.154 959.898 841.852 958.63 843.064 955.544C840.578 950.946 842.488 948.913 838.912 943.384C848.722 928.45 857.006 903.811 850.852 886.14C850.975 885.907 851.104 885.68 851.208 885.435C852.071 883.39 852.151 881.027 852.181 878.835C852.377 865.033 839.366 863.846 836.794 856.155C839.623 857.074 843.45 859.694 845.807 859.051C847.056 857.012 846.75 858.09 846.787 855.714C845.832 854.888 844.876 854.067 843.909 853.253L843.927 852.285C845.268 852.04 845.323 852.181 846.67 852.457L849.273 850.24Z" fill="#CCB0D7"/>
49
+ <path d="M611.643 953.071L611.92 953.977C611.829 953.977 615.452 954.252 614.423 954.35C620.308 953.793 627.367 952.109 633.331 951.822C652.533 950.885 669.635 950.211 687.937 957.106C690.827 958.196 694.556 958.024 697.14 959.824L697.048 960.749C694.366 959.72 683.222 957.265 679.854 956.414C659.373 951.246 634.538 951.736 614.154 956.702L612.562 957.1L612.415 959.114C611.382 958.6 611.615 958.624 610.776 957.7C609.322 957.712 600.27 961.625 598.425 962.494L598.241 961.594L599.97 960.596C595.711 959.622 554.954 973.393 548.277 974.912C544.726 975.72 540.815 978.236 536.801 978.714L536.028 978.389C537.604 976.736 570.203 967.888 572.52 965.849L572.067 965.292L571.435 964.221L572.395 963.786C572.874 963.082 573.248 962.574 573.757 961.906L576.701 962.243C578.662 960.927 608.568 953.169 611.643 953.071Z" fill="#784F7E"/>
50
+ <path d="M840.645 965.458C837.296 964.894 835.324 964.153 832.122 963.1L831.534 963.388L830.542 963.853C827.291 965.421 819.925 968.176 816.521 965.984L816.992 964.857C822.601 962.108 834.767 949.311 838.404 944.125L838.913 943.384C842.488 948.913 840.578 950.946 843.064 955.544C841.852 958.63 841.154 959.898 840.915 963.241L841.576 963.786C841.117 965.188 841.496 964.68 840.645 965.458Z" fill="#A680AE"/>
51
+ <path d="M647.206 949.274C643.581 948.931 635.523 949.868 633.172 947.284L633.484 946.427L635.138 946.299C640.605 946.96 645.981 948.264 651.67 948.968C649.704 949.685 649.398 949.403 647.206 949.274Z" fill="#784F7E"/>
52
+ <path d="M864.47 744.997C880.721 767.126 884.45 801.58 864.458 822.644C859.106 827.487 856.094 830.138 849.279 832.783L836.861 837.259L833.567 838.294C828.718 840.162 822.448 841.95 818.094 843.835L813.269 845.152C808.707 846.217 802.217 848.507 797.729 850.265L796.247 850.552C792.188 849.285 789.402 848.446 785.52 846.695L786.463 846.389C784.326 845.495 774.663 842.439 773.035 843.572C769.44 842.501 764.469 842.917 760.311 842.458C725.305 843.872 703.116 867.176 676.903 886.433C675.305 887.609 668.686 892.11 666.953 891.687C668.52 890.26 669.935 889.63 671.312 888.068C666.555 890.046 639.038 905.978 635.793 909.015C630.931 912.444 623.204 916.461 617.736 919.547L580.325 940.329C574.41 943.543 563.95 948.815 558.467 952.299C555.821 953.23 533.853 963.682 531.991 964.992C510.509 980.471 480.111 976.173 461.782 957.791C453.202 949.966 449.269 945.221 442.85 935.834L440.448 931.26C434.375 920.098 432.362 914.122 430.174 901.417C428.543 881.627 430.065 866.185 445.105 851.948C447.191 850.056 449.316 848.379 451.502 846.609L454.187 845.091C456.316 844.65 460.219 842.513 462.33 841.46C464.273 840.811 466.923 840.284 468.973 839.813C465.63 842.023 462.103 842.458 458.764 844.693C458.745 844.674 462.649 846.872 463.393 847.405C469.219 851.575 479.229 848.415 485.896 850.797C489.77 852.114 491.856 855.61 493.883 856.559C498.072 858.512 498.887 856.89 503.683 860.282C505.768 861.409 509.766 867.158 511.012 869.399C512.325 871.726 513.549 873.728 514.987 875.988C522.164 885.007 524.045 885.08 534.621 880.274C533.649 882.992 523.893 885.472 521.084 885.552C520.887 887.493 520.705 886.587 521.763 888.338C523.23 887.56 542.869 881.902 543.866 881.909C534.759 885.76 529.676 885.399 521.671 889.048C524.159 891.669 526.861 894.724 530.667 892.955C537.043 889.991 542.49 890.187 549.079 888.307C547.658 890.897 529.001 893.953 524.923 893.512C525.356 896.935 526.305 901.141 526.49 904.276L526.92 904.815C528.503 906.964 529.765 910.062 531.629 911.336C535.258 910.387 542.439 905.39 547.209 903.468C569.93 894.259 592.612 886.905 614.889 876.404C624.281 871.977 641.438 869.252 650.855 864.256C653.158 862.75 674.576 852.8 676.082 853.045C680.969 851.746 685.102 847.27 689.455 845.697C691.88 845.078 700.574 845.513 702.203 844.191C715.202 833.653 731.276 828.767 746.883 823.415C751.016 821.995 756.282 818.657 760.574 816.802C781.999 807.526 803.497 797.747 824.027 786.609C828.442 784.209 832.716 782.446 837.443 780.725C849.977 774.835 856.369 771.798 870.391 775.992L871.469 778.111C871.922 775.484 870.856 774.308 871.671 771.412C871.291 770.941 870.275 768.516 869.956 767.812L869.76 767.897L869.479 767.757C869.607 764.897 869.699 764.481 869.05 761.756C867.581 760.182 867.63 760.672 864.886 760.256C866.638 752.835 855.524 752.32 864.47 744.997Z" fill="#6E382A"/>
53
+ <path d="M462.33 841.46C464.273 840.811 466.923 840.284 468.973 839.813C465.63 842.023 462.103 842.458 458.764 844.693C458.745 844.674 462.649 846.872 463.393 847.405C469.219 851.575 479.229 848.416 485.896 850.797C489.77 852.114 491.856 855.61 493.883 856.559C498.072 858.512 498.887 856.89 503.683 860.282C505.768 861.409 509.766 867.158 511.012 869.399C512.325 871.726 513.549 873.728 514.987 875.988C522.164 885.007 524.045 885.08 534.621 880.274C533.649 882.992 523.893 885.472 521.084 885.552C520.887 887.493 520.705 886.587 521.763 888.338C523.23 887.56 542.869 881.903 543.866 881.909C534.759 885.76 529.676 885.399 521.671 889.048C524.159 891.669 526.861 894.724 530.667 892.955C537.043 889.991 542.49 890.187 549.079 888.307C547.658 890.897 529.001 893.953 524.923 893.512C525.356 896.935 526.305 901.141 526.49 904.276L526.92 904.815L526.337 904.368L526.196 903.505C524.188 891.834 520.214 894.13 516.134 887.774C508.649 875.583 501.8 866.276 489.818 857.925C482.577 852.334 475.647 851.453 467 849.848C458.186 848.22 460.953 850.246 453.285 852.971C442.397 856.847 438.55 862.113 434.499 872.657C429.076 886.77 430.556 888.081 435.455 901.38C435.856 899.776 435.708 900.584 435.9 898.949C436.768 900.137 437.645 901.319 438.533 902.494C439.25 902.353 439.872 902.255 440.605 902.28C444.988 922.59 449.962 931.199 464.69 945.637L463.368 945.98C461.901 945.037 459.125 942.839 457.748 942.894C461.973 951.95 476.321 957.504 484.092 962.745C487.715 965.182 491.558 964.325 494.063 966.664C493.243 967.49 493.177 967.546 491.809 967.429C486.812 966.982 482.391 964.196 477.969 961.912C470.333 957.957 463.255 952.728 456.963 946.868C455.722 945.717 456.706 944.456 456.748 943.035C452.966 939.055 446.446 932.381 442.98 928.578C442.282 931.156 442.221 929.944 442.955 932.35L441.857 931.175L440.448 931.26C434.375 920.098 432.362 914.122 430.174 901.417C428.543 881.627 430.065 866.185 445.105 851.949C447.191 850.057 449.316 848.379 451.502 846.609L454.187 845.091C456.316 844.65 460.219 842.513 462.33 841.46Z" fill="#9B5B4B"/>
54
+ <path d="M514.987 875.988C512.038 874.794 494.821 860.845 491.433 858.133C492.616 858.078 499.989 860.031 503.683 860.282C505.768 861.409 509.766 867.158 511.012 869.399C512.325 871.726 513.549 873.728 514.987 875.988Z" fill="#C37049"/>
55
+ <path d="M864.47 744.997C880.721 767.126 884.45 801.58 864.458 822.644C859.106 827.487 856.094 830.138 849.279 832.783L836.861 837.259L833.567 838.294C828.718 840.162 822.448 841.95 818.094 843.835L813.269 845.152C816.337 840.302 841.123 836.543 847.981 831.142L847.301 830.524C842.121 829.563 836.5 834.786 831.651 836.084C829.697 828.614 843.578 829.073 847.638 826.611C850.063 825.148 852.095 819.882 855.469 819.233C860.533 818.266 864.299 821.878 867.599 816.312C867.072 815.872 866.546 815.424 866.025 814.978C865.921 811.451 865.903 807.409 869.142 805.309C871.138 804.844 871.646 805.266 873.428 806.044C873.93 801.672 871.383 798.745 871.891 795.414C873.055 787.84 878.094 778.092 871.671 771.412C871.291 770.941 870.275 768.516 869.956 767.812L869.76 767.897L869.479 767.757C869.607 764.897 869.699 764.481 869.05 761.756C867.581 760.182 867.63 760.672 864.886 760.256C866.638 752.835 855.524 752.32 864.47 744.997Z" fill="#875352"/>
56
+ <path d="M849.279 832.783C849.922 824.474 857.141 822.509 864.458 822.644C859.106 827.487 856.094 830.138 849.279 832.783Z" fill="#92636B"/>
57
+ <path d="M671.312 888.068C673.296 884.793 702.595 866.999 706.636 860.919C707.39 859.792 708.706 859.07 709.826 858.212L709.943 856.731C706.104 856.112 704.597 858.874 700.826 857.827L700.519 857.282C711.063 848.654 713.757 856.082 717.86 853.81C725.967 849.322 738.354 843.511 747.74 841.95C752.278 841.196 774.247 835.055 777.162 835.637L778.374 837.523C778.423 838.208 778.135 838.472 777.774 839.274C772.649 842.629 767.708 840.18 760.311 842.458C725.306 843.872 703.116 867.176 676.903 886.433C675.305 887.609 668.686 892.11 666.953 891.687C668.52 890.26 669.935 889.63 671.312 888.068Z" fill="#511F10"/>
58
+ <path d="M440.449 931.26L441.857 931.175L442.955 932.35C445.979 939.208 447.72 939.643 452.545 944.762C463.23 956.108 468.7 964.802 483.837 970.411C497.828 975.597 508.34 975.058 522.102 968.813C523.727 968.097 530.632 965.231 531.991 964.992C510.509 980.471 480.111 976.173 461.782 957.791C453.202 949.966 449.269 945.221 442.85 935.834L440.449 931.26Z" fill="#92636B"/>
59
+ <path d="M650.855 864.256C653.158 862.75 674.576 852.8 676.082 853.045C667.137 860.968 657.548 862.113 648.131 867.483L647.628 867.054C648.951 865.487 649.729 865.419 650.855 864.256Z" fill="#7D412E"/>
60
+ <path d="M465.17 888.479C474.615 888.13 481.753 891.993 486.158 900.608C490.904 909.891 496.375 928.193 484.185 934.065C473.147 934.334 470.325 930.262 463.95 921.88C456.43 911.997 453.434 896.353 465.17 888.479Z" fill="#7D412E"/>
61
+ <path d="M403.06 754.5C407.952 746.124 414.656 738.948 422.681 733.498C431.678 727.381 445.381 722.146 456.264 724.185L456.652 724.344C462.092 725.287 464.441 725.973 469.477 727.602C474.108 729.102 487.222 735.537 491.026 735.758C496.284 739.609 500.246 743.767 505.848 747.244C517.436 754.855 526.582 759.999 539.416 765.534C544.845 767.873 552.631 770.561 557.574 772.949C559.17 773.341 560.758 773.708 562.335 774.167C566.326 775.772 583.952 781.503 587.888 781.772C592.315 783.291 596.818 783.309 599.294 784.123C604.454 785.893 619.769 792.757 623.559 793.333C614.258 795.935 597.823 801.005 589.011 804.287C577.43 807.526 566.678 810.367 555.217 814.175C549.904 815.945 529.808 822.889 524.91 823.311C506.369 829.446 487.577 833.91 468.973 839.813C466.923 840.284 464.273 840.811 462.33 841.46C460.219 842.513 456.316 844.65 454.187 845.091C448.094 842.06 441.33 839.843 435.534 836.794L429.068 834.375C412.594 827.652 400.804 822.227 395.578 803.65C390.762 786.536 394.497 769.753 403.06 754.5Z" fill="#7D373B"/>
62
+ <path d="M462.33 841.46L462.124 841.013C463.107 839.947 463.025 840.015 463.335 838.588C462.724 836.751 460.49 834.332 459.08 832.936C456.837 831.761 455.141 823.715 453.964 822.944C448.882 819.594 446.186 820.464 443.004 814.028C442.415 812.841 431.879 807.942 429.813 806.675C423.086 802.542 412.945 797.986 409.985 790.014C409.161 787.754 410.405 782.054 413.393 782.311C426.723 783.456 438.44 790.92 450.127 796.663C457.596 800.331 466.769 802.903 474.457 806.234C477.39 807.501 484.951 804.611 489.403 808.114C486.844 807.82 483.62 807.226 481.194 807.771C486.466 813.728 492.933 810.422 499.732 812.608C504.311 814.077 520.371 823.017 523.808 823.244L524.91 823.311C506.369 829.446 487.577 833.91 468.973 839.813C466.923 840.284 464.273 840.811 462.33 841.46Z" fill="#5B2A1E"/>
63
+ <path d="M403.06 754.5C407.952 746.124 414.656 738.948 422.681 733.498C431.678 727.381 445.381 722.146 456.264 724.185L456.652 724.344C460.767 729.512 456.472 737.466 465.639 738.072C463.605 738.85 462.096 738.715 459.924 738.77C462.326 740.944 463.061 741.201 466.032 742.579L467.228 744.33C460.265 749.724 461.512 748.892 460.049 757.507C459.118 762.981 448.43 763.875 444.357 763.005C432.698 761.033 425.748 756.735 413.444 757.121C411.141 756.502 411.092 756.864 409.617 755.431C410.682 753.735 411.561 753.796 413.728 752.761C408.773 751.182 407.746 753.68 403.06 754.5Z" fill="#AD6050"/>
64
+ <path d="M456.264 724.185L456.652 724.344C460.767 729.512 456.472 737.466 465.639 738.072C463.605 738.85 462.096 738.715 459.924 738.77C460.228 738.715 452.851 738.874 450.822 739.119L451.273 739.444C445.275 739.946 441.945 737.147 436.481 735.513C434.771 734.998 433.297 735.206 431.369 734.515L432.316 732.445L431.933 731.839L430.86 732.053L428.85 735.311C426.899 735.182 427.039 735.176 425.409 734.061L425.63 732.935C433.393 726.542 447.127 726.395 455.594 724.35L456.264 724.185Z" fill="#B56F82"/>
65
+ <path d="M456.652 724.344C462.092 725.287 464.441 725.973 469.477 727.602C474.108 729.102 487.223 735.537 491.026 735.758C496.284 739.609 500.246 743.766 505.848 747.244L505.148 747.949L504.636 747.734C501.924 748.714 498.699 748.953 497.461 750.379L498.677 751.353C496.447 752.553 494.099 749.681 492.298 749.136C484.934 746.908 478.776 753.214 473.361 745.04C469.845 744.918 470.444 746.093 467.228 744.33L466.032 742.579C463.061 741.201 462.326 740.944 459.924 738.77C462.096 738.715 463.605 738.85 465.639 738.072C456.472 737.466 460.767 729.512 456.652 724.344Z" fill="#B15D94"/>
66
+ <path d="M403.06 754.5C407.746 753.68 408.773 751.182 413.728 752.761C411.561 753.796 410.682 753.735 409.617 755.431C411.092 756.864 411.141 756.502 413.444 757.121L416.395 758.443C412.699 758.352 407.731 756.209 405.25 759.239C398.904 767.01 396.786 779.158 396.585 788.912C396.432 796.388 401.847 799.278 399.329 802.713C395.59 801.733 396.031 787.963 395.557 784.13C395.225 781.442 397.899 775.472 397.653 771.596C395.728 773.518 394.737 784.662 394.557 787.681C394.186 793.896 399.223 816.239 405.112 818.449L406.641 817.757C407.718 814.69 405.084 816.263 407.222 814.769C409.435 816.055 414.157 818.559 415.744 820.243C416.376 823.244 416.563 824.67 416.776 827.732C422.245 830.377 432.519 832.943 435.534 836.794L429.068 834.375C412.594 827.652 400.804 822.227 395.578 803.65C390.762 786.536 394.497 769.753 403.06 754.5Z" fill="#875352"/>
67
+ <path d="M505.148 747.949L505.848 747.244C517.436 754.855 526.582 759.999 539.416 765.534C544.845 767.873 552.631 770.561 557.574 772.949C552.274 773.708 540.054 775.049 536.626 770.365L539.624 769.489C536.22 766.458 536.47 766.832 531.518 766.85C532.239 767.371 532.8 767.824 533.49 768.381L533.213 769.006C527.819 768.675 520.226 767.469 515.797 764.303L517.163 763.746C514.354 761.125 513.073 758.903 517.01 755.951C514.235 753.802 508.311 750.122 505.148 747.949Z" fill="#531756"/>
68
+ <path d="M644.224 785.807C649.153 785.605 656.525 783.279 661.467 781.858C656.734 786.309 653.739 783.823 649.533 786.322L649.514 787.375C652.919 787.424 653.703 785.305 656.85 785.728C656.305 786.824 635.487 795.261 632.247 796.829C637.005 796.492 641.506 795.959 646.477 795.672C644.402 797.643 640.097 801.231 639.399 803.736C635.009 806.301 623.902 808.959 620.638 812.277L620.65 812.969C623.394 813.079 626.382 812.712 628.506 814.065C630.19 817.825 626.706 818.792 628.004 821.401C631.666 821.688 633.435 819.564 636.668 820.102L637.097 820.825C635.731 821.052 634.354 821.248 632.976 821.419C632.205 823.011 632.456 822.368 632.535 824.346C630.637 826.875 622.849 829.905 620.007 832.238L620.461 832.232C611.323 837.761 607.281 838.251 597.458 841.796L567.883 852.279C562.442 854.153 556.785 857.043 551.319 858.659C539.137 862.272 526.836 865.187 515.956 872.185C513.133 871.101 513.195 870.593 511.012 869.399C509.766 867.158 505.768 861.409 503.683 860.282C498.887 856.89 498.073 858.512 493.883 856.559C491.856 855.61 489.77 852.114 485.896 850.797C479.229 848.415 469.22 851.575 463.393 847.405C462.649 846.872 458.745 844.674 458.764 844.693C462.103 842.458 465.63 842.023 468.973 839.813C487.577 833.91 506.369 829.446 524.91 823.311C529.808 822.888 549.904 815.945 555.217 814.175C566.678 810.367 577.43 807.526 589.011 804.287C597.823 801.005 614.258 795.935 623.559 793.333C628.2 791.416 641.205 787.999 644.224 785.807Z" fill="#DF8869"/>
69
+ <path d="M644.224 785.807C649.153 785.605 656.525 783.279 661.467 781.858C656.734 786.309 653.739 783.823 649.533 786.322L649.514 787.375C652.919 787.424 653.703 785.305 656.85 785.728C656.305 786.824 635.486 795.261 632.247 796.829C630.472 797.006 627.031 797.343 625.457 797.9C621.097 799.456 596.613 808.573 593.917 806.969C595.892 804.74 619.971 796.743 624.814 795.225C618.33 794.239 595.355 805.334 589.011 804.287C597.823 801.005 614.258 795.935 623.559 793.333C628.2 791.416 641.205 787.999 644.224 785.807Z" fill="#EF89B9"/>
70
+ <path d="M791.202 727.791C792.886 727.791 799.229 725.728 801.005 725.122C815.614 720.119 825.711 719.311 840.517 724.724L838.857 725.465C843.015 727.583 842.323 726.616 844.344 730.798C844.282 732.029 844.472 732.659 843.199 733.455C815.192 751.041 781.833 757.5 750.979 768.265C740.68 771.859 732.959 775.521 722.703 778.472C717.156 780.046 711.302 780.86 705.651 782.342C688.267 787.032 671.08 792.426 654.131 798.513C649.606 800.129 643.581 801.911 639.399 803.736C640.097 801.231 644.402 797.643 646.477 795.672C641.506 795.959 637.005 796.492 632.247 796.829C635.487 795.261 656.305 786.824 656.85 785.728C653.703 785.305 652.919 787.424 649.514 787.375L649.533 786.322C653.739 783.823 656.734 786.309 661.467 781.858C663.493 780.927 679.793 776.182 683.791 774.81C687.784 773.996 693.551 772.22 697.611 771.106C699.203 769.949 705.167 768.632 707.108 768.289C709.349 767.738 712.325 766.642 714.572 765.895C716.917 764.015 722.183 762.656 725.593 761.536C739.67 756.907 755.278 751.953 768.24 744.697C773.39 741.819 778.239 737.631 783.168 734.711L786.714 731.778C788.048 730.498 789.793 729.041 791.202 727.791Z" fill="#8E3E5E"/>
71
+ <path d="M697.611 771.106L698.266 771.969L696.074 772.52C696.784 773.892 696.98 774.143 697.929 775.38L698.168 777.315C695.137 778.772 691.139 779.335 687.759 780.382C675.139 784.277 658.785 793.039 646.477 795.672C641.506 795.959 637.005 796.492 632.247 796.829C635.487 795.261 656.305 786.824 656.85 785.728C653.703 785.305 652.919 787.424 649.514 787.375L649.533 786.322C653.739 783.823 656.734 786.309 661.467 781.858C663.493 780.927 679.793 776.182 683.791 774.81C687.784 773.996 693.551 772.22 697.611 771.106Z" fill="#B15D94"/>
72
+ <path d="M791.202 727.791C792.886 727.791 799.229 725.728 801.005 725.122C815.614 720.119 825.711 719.311 840.517 724.724L838.857 725.465C835.98 727.877 837.48 728.049 836.635 728.967C833.745 732.108 828.895 731.018 824.193 730.89C820.372 730.792 811.047 729.132 806.938 727.565C806.675 727.749 806.411 727.932 806.148 728.116C801.746 731.9 794.104 732.084 788.514 732.359C788.25 732.371 786.787 731.802 786.714 731.778C788.048 730.498 789.794 729.041 791.202 727.791Z" fill="#B56F82"/>
73
+ <path d="M783.168 734.711C786.769 736.058 791.643 736.854 795.531 737.821C792.2 737.827 784.968 737.209 782.66 737.876L781.699 738.972C781.95 741.825 781.729 742.37 780.835 745.12L781.166 745.744C783.817 744.967 784.73 744.122 787.038 744.642L787.387 745.432C785.862 747.165 766.25 752.761 762.454 753.141C760.807 753.3 754.151 753.325 753.08 753.778C740.638 759.025 727.222 761.615 714.572 765.895C716.917 764.015 722.183 762.656 725.593 761.536C739.67 756.907 755.278 751.953 768.24 744.697C773.39 741.819 778.239 737.631 783.168 734.711Z" fill="#531756"/>
74
+ <path d="M572.72 863.313C574.704 863.576 574.062 863.233 575.569 864.28C573.919 865.517 567.9 866.785 565.283 867.525C563.343 868.064 563.917 868.321 562.629 867.752C565.823 865.903 569.282 864.678 572.72 863.313Z" fill="#C37049"/>
75
+ </svg>
76
+
@@ -0,0 +1,57 @@
1
+ import type { Plugin } from 'vite';
2
+ export interface PyricSandboxOptions {
3
+ /** firestore.rules path (relative to `root`). Default: `firebase.json`'s
4
+ * `firestore.rules`, else `firestore.rules` in the project root. */
5
+ rules?: string;
6
+ /** Project dir for `firebase.json` / rules discovery. Default: Vite's `root`. */
7
+ root?: string;
8
+ /** Persist sandbox state to `.pyric/state/state.json` so data + test users
9
+ * survive reloads/restarts. Off by default (ephemeral). */
10
+ persist?: boolean;
11
+ /** With `persist`: discard any existing state file and re-seed from scratch. */
12
+ fresh?: boolean;
13
+ /** Write the live session fixture to `.pyric/last-session.json` (for
14
+ * `pyric verify`). Default `true`; pass `false` to suppress. */
15
+ capture?: boolean;
16
+ /** Seed file: a `"collection/doc" → fields` JSON map, or a `pyric snapshot`
17
+ * state-file envelope. Applied at page init (state wins once it exists). */
18
+ seed?: string;
19
+ /** Mount the MCP **bridge** on Vite's dev origin so an external agent
20
+ * (Claude Code, Cursor) can drive this sandbox over MCP — `POST /__pyric/mcp`
21
+ * + `GET /__pyric/health` + `WS /__pyric/sandbox`, all on Vite's port.
22
+ * `true` is shorthand for `{}`. The agent and the page share ONE sandbox.
23
+ *
24
+ * ⚠ **Forces the in-page sandbox (single-tab).** The bridge peer is the
25
+ * in-page sandbox, never the SharedWorker, so enabling `bridge` disables the
26
+ * default multi-tab SharedWorker path — otherwise the agent would drive an
27
+ * empty in-page sandbox while the app's data lived in the worker. */
28
+ bridge?: boolean | {
29
+ project?: string;
30
+ disableAuditLog?: boolean;
31
+ };
32
+ /** Serve the **Pyric Studio** app at `/__pyric/ui/` on Vite's dev origin (the
33
+ * `pyric dev --ui` equivalent). Mounts the disk-backed workspace/project
34
+ * routes Studio's `local` mode talks to AND serves the built Studio assets
35
+ * (vendored in this package at `dist/serve/studio-ui`). **On by default**;
36
+ * pass `ui: false` to disable.
37
+ *
38
+ * Not compatible with `bridge`: bridge forces the app in-page, but Studio's
39
+ * live plane reads the SharedWorker, so Studio would observe nothing. Under
40
+ * `bridge` ui therefore defaults OFF (an explicit `ui: true` still works but
41
+ * warns). Use `ui` without `bridge`, or `pyric dev --ui`. */
42
+ ui?: boolean;
43
+ /** Force whether `vite build` runs the firebase→pyric swap, overriding the
44
+ * mode default. Unset (default): swap for any NON-production mode, keep real
45
+ * firebase for mode `production`. `true` = always produce a sandbox build;
46
+ * `false` = never swap in build (real firebase regardless of mode). `vite
47
+ * dev` is unaffected — the swap is always on there. */
48
+ swapInBuild?: boolean;
49
+ }
50
+ /**
51
+ * The dev-only Vite plugin. Add to `vite.config`:
52
+ *
53
+ * import { pyricSandbox } from 'pyric-tools/vite';
54
+ * export default defineConfig({ plugins: [pyricSandbox()] });
55
+ */
56
+ export declare function pyricSandbox(options?: PyricSandboxOptions): Plugin;
57
+ //# sourceMappingURL=vite-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../../src/serve/vite-plugin.ts"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EAAE,MAAM,EAAyB,MAAM,MAAM,CAAC;AA0E1D,MAAM,WAAW,mBAAmB;IAClC;yEACqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;gEAC4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;qEACiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;iFAC6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;0EAQsE;IACtE,MAAM,CAAC,EAAE,OAAO,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACnE;;;;;;;;;kEAS8D;IAC9D,EAAE,CAAC,EAAE,OAAO,CAAC;IACb;;;;4DAIwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,MAAM,CA+kBtE"}