cici 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +28 -28
- package/.next/app-path-routes-manifest.json +3 -3
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/asset/[...path]/route.js +1 -1
- package/.next/server/app/api/asset/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/asset/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/[...nextauth]/route.js +1 -1
- package/.next/server/app/api/auth/[...nextauth]/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/[...nextauth]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/reactions/route.js +1 -1
- package/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/reactions/route.js.nft.json +1 -1
- package/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/reactions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/route.js +1 -1
- package/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/route.js.nft.json +1 -1
- package/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/blog/[id]/highlights/[hid]/replies/route.js +1 -1
- package/.next/server/app/api/blog/[id]/highlights/[hid]/replies/route.js.nft.json +1 -1
- package/.next/server/app/api/blog/[id]/highlights/[hid]/replies/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/blog/[id]/highlights/[hid]/resolve/route.js +1 -1
- package/.next/server/app/api/blog/[id]/highlights/[hid]/resolve/route.js.nft.json +1 -1
- package/.next/server/app/api/blog/[id]/highlights/[hid]/resolve/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/blog/[id]/highlights/[hid]/route.js +1 -1
- package/.next/server/app/api/blog/[id]/highlights/[hid]/route.js.nft.json +1 -1
- package/.next/server/app/api/blog/[id]/highlights/[hid]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/blog/[id]/highlights/route.js +1 -1
- package/.next/server/app/api/blog/[id]/highlights/route.js.nft.json +1 -1
- package/.next/server/app/api/blog/[id]/highlights/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/graphql/route.js +4 -4
- package/.next/server/app/api/graphql/route.js.nft.json +1 -1
- package/.next/server/app/api/graphql/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mile/prompts/route.js +2 -2
- package/.next/server/app/api/mile/prompts/route.js.nft.json +1 -1
- package/.next/server/app/api/mile/prompts/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/upload/route.js +1 -1
- package/.next/server/app/api/upload/route.js.nft.json +1 -1
- package/.next/server/app/api/upload/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/webhooks/notification/route.js +1 -1
- package/.next/server/app/api/webhooks/notification/route.js.nft.json +1 -1
- package/.next/server/app/api/webhooks/notification/route_client-reference-manifest.js +1 -1
- package/.next/server/app/atom.xml/route.js +2 -2
- package/.next/server/app/atom.xml/route.js.nft.json +1 -1
- package/.next/server/app/atom.xml/route_client-reference-manifest.js +1 -1
- package/.next/server/app/atom.xml.body +1 -1
- package/.next/server/app/blog/[id]/page.js +1 -1
- package/.next/server/app/blog/[id]/page.js.nft.json +1 -1
- package/.next/server/app/blog/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/blog/page.js +2 -2
- package/.next/server/app/blog/page.js.nft.json +1 -1
- package/.next/server/app/blog/page_client-reference-manifest.js +1 -1
- package/.next/server/app/editor/page.js +1 -1
- package/.next/server/app/editor/page.js.nft.json +1 -1
- package/.next/server/app/editor/page_client-reference-manifest.js +1 -1
- package/.next/server/app/favicon.ico/route.js +1 -1
- package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/.next/server/app/login/page.js +1 -1
- package/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/memos/page.js +1 -1
- package/.next/server/app/memos/page.js.nft.json +1 -1
- package/.next/server/app/memos/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/robots.txt/route.js +1 -1
- package/.next/server/app/robots.txt/route.js.nft.json +1 -1
- package/.next/server/app/robots.txt/route_client-reference-manifest.js +1 -1
- package/.next/server/app/rss.xml/route.js +1 -1
- package/.next/server/app/rss.xml/route.js.nft.json +1 -1
- package/.next/server/app/rss.xml/route_client-reference-manifest.js +1 -1
- package/.next/server/app/rss.xml.body +1 -1
- package/.next/server/app/sitemap.xml/route.js +2 -2
- package/.next/server/app/sitemap.xml/route.js.nft.json +1 -1
- package/.next/server/app/sitemap.xml/route_client-reference-manifest.js +1 -1
- package/.next/server/app/sitemap.xml.body +5 -5
- package/.next/server/app/unavailable/page.js +1 -1
- package/.next/server/app/unavailable/page.js.nft.json +1 -1
- package/.next/server/app/unavailable/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +3 -3
- package/.next/server/chunks/1733.js +1 -1
- package/.next/{standalone/.next/server/chunks/5873.js → server/chunks/4996.js} +2 -2
- package/.next/server/chunks/5815.js +5 -5
- package/.next/server/chunks/6802.js +1 -1
- package/.next/server/chunks/880.js +1 -1
- package/.next/server/chunks/9193.js +1 -0
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +28 -28
- package/.next/standalone/.next/app-path-routes-manifest.json +3 -3
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/asset/[...path]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/asset/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/asset/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/[...nextauth]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/[...nextauth]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/[...nextauth]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/reactions/route.js +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/reactions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/reactions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/comments/[cid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/replies/route.js +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/replies/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/replies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/resolve/route.js +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/resolve/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/resolve/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/[hid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/route.js +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/blog/[id]/highlights/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/graphql/route.js +4 -4
- package/.next/standalone/.next/server/app/api/graphql/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/graphql/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mile/prompts/route.js +2 -2
- package/.next/standalone/.next/server/app/api/mile/prompts/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/mile/prompts/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/upload/route.js +1 -1
- package/.next/standalone/.next/server/app/api/upload/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/upload/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/webhooks/notification/route.js +1 -1
- package/.next/standalone/.next/server/app/api/webhooks/notification/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/webhooks/notification/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/atom.xml/route.js +2 -2
- package/.next/standalone/.next/server/app/atom.xml/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/atom.xml/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/atom.xml.body +1 -1
- package/.next/standalone/.next/server/app/blog/[id]/page.js +1 -1
- package/.next/standalone/.next/server/app/blog/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/blog/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/blog/page.js +2 -2
- package/.next/standalone/.next/server/app/blog/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/blog/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/editor/page.js +1 -1
- package/.next/standalone/.next/server/app/editor/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/editor/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/favicon.ico/route.js +1 -1
- package/.next/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/login/page.js +1 -1
- package/.next/standalone/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/memos/page.js +1 -1
- package/.next/standalone/.next/server/app/memos/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/memos/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/page.js +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/robots.txt/route.js +1 -1
- package/.next/standalone/.next/server/app/robots.txt/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/robots.txt/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/rss.xml/route.js +1 -1
- package/.next/standalone/.next/server/app/rss.xml/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/rss.xml/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/rss.xml.body +1 -1
- package/.next/standalone/.next/server/app/sitemap.xml/route.js +2 -2
- package/.next/standalone/.next/server/app/sitemap.xml/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/sitemap.xml/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/sitemap.xml.body +5 -5
- package/.next/standalone/.next/server/app/unavailable/page.js +1 -1
- package/.next/standalone/.next/server/app/unavailable/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/unavailable/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +3 -3
- package/.next/standalone/.next/server/chunks/1733.js +1 -1
- package/.next/{server/chunks/5873.js → standalone/.next/server/chunks/4996.js} +2 -2
- package/.next/standalone/.next/server/chunks/5815.js +5 -5
- package/.next/standalone/.next/server/chunks/6802.js +1 -1
- package/.next/standalone/.next/server/chunks/880.js +1 -1
- package/.next/standalone/.next/server/chunks/9193.js +1 -0
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/css/{5eeaf06f880f84fb.css → dd6c59348b6c0424.css} +1 -1
- package/.next/standalone/package.json +1 -1
- package/.next/static/css/{5eeaf06f880f84fb.css → dd6c59348b6c0424.css} +1 -1
- package/.next/trace +44 -44
- package/bin/cici.js +3 -1
- package/package.json +1 -1
- package/.next/server/chunks/5662.js +0 -1
- package/.next/server/chunks/7025.js +0 -1
- package/.next/standalone/.next/server/chunks/5662.js +0 -1
- package/.next/standalone/.next/server/chunks/7025.js +0 -1
- /package/.next/standalone/.next/static/{HOWKSv4_ROOr3QF8RZorl → -AMzTDPSsnBej5CTn9eL0}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{HOWKSv4_ROOr3QF8RZorl → -AMzTDPSsnBej5CTn9eL0}/_ssgManifest.js +0 -0
- /package/.next/static/{HOWKSv4_ROOr3QF8RZorl → -AMzTDPSsnBej5CTn9eL0}/_buildManifest.js +0 -0
- /package/.next/static/{HOWKSv4_ROOr3QF8RZorl → -AMzTDPSsnBej5CTn9eL0}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=6802,exports.ids=[6802],exports.modules={14230:(a,b,c)=>{Object.defineProperty(b,"B",{value:!0}),Object.defineProperty(b,"U",{enumerable:!0,get:function(){return n}});let d=c(28706),e=c(33675),f=c(29294),g=c(63033),h=c(26906),i=c(11938),j=c(82831),k=c(30787),l=c(31716),m=c(49290);function n(){let a="cookies",b=f.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,l.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used "cookies" inside "after(...)". This is not supported. If you need this data inside an "after" callback, use "cookies" outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E88",enumerable:!1,configurable:!0});if(b.forceStatic)return p(d.RequestCookiesAdapter.seal(new e.RequestCookies(new Headers({}))));if(b.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E549",enumerable:!1,configurable:!0});if(c)switch(c.type){case"cache":let f=Object.defineProperty(Error(`Route ${b.route} used "cookies" inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use "cookies" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E398",enumerable:!1,configurable:!0});throw Error.captureStackTrace(f,n),b.invalidDynamicUsageError??=f,f;case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used "cookies" inside a function cached with "unstable_cache(...)". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use "cookies" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E157",enumerable:!1,configurable:!0});case"prerender":var k=b,q=c;let g=o.get(q);if(g)return g;let r=(0,j.makeHangingPromise)(q.renderSignal,k.route,"`cookies()`");return o.set(q,r),r;case"prerender-client":let s="`cookies`";throw Object.defineProperty(new m.InvariantError(`${s} must not be used within a client component. Next.js should be preventing ${s} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E693",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,h.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,h.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,h.delayUntilRuntimeStage)(c,function(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),c}(c.cookies));case"private-cache":return p(c.cookies);case"request":return(0,h.trackDynamicDataInDynamicRender)(c),p((0,d.areCookiesMutableInCurrentPhase)(c)?c.userspaceMutableCookies:c.cookies)}}(0,g.throwForMissingRequestStore)(a)}c(63036);let o=new WeakMap;function p(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),Object.defineProperties(c,{[Symbol.iterator]:{value:a[Symbol.iterator]?a[Symbol.iterator].bind(a):q.bind(a)},size:{get:()=>a.size},get:{value:a.get.bind(a)},getAll:{value:a.getAll.bind(a)},has:{value:a.has.bind(a)},set:{value:a.set.bind(a)},delete:{value:a.delete.bind(a)},clear:{value:"function"==typeof a.clear?a.clear.bind(a):r.bind(a,c)},toString:{value:a.toString.bind(a)}}),c}function q(){return this.getAll().map(a=>[a.name,a]).values()}function r(a){for(let a of this.getAll())this.delete(a.name);return a}(0,k.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`cookies()\` should be awaited before using its value. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E223",enumerable:!1,configurable:!0})})},28706:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{MutableRequestCookiesAdapter:function(){return l},ReadonlyRequestCookiesError:function(){return g},RequestCookiesAdapter:function(){return h},appendMutableCookies:function(){return k},areCookiesMutableInCurrentPhase:function(){return n},createCookiesWithMutableAccessCheck:function(){return m},getModifiedCookieValues:function(){return j},responseCookiesToRequestCookies:function(){return p}});let d=c(33675),e=c(63036),f=c(29294);class g extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new g}}class h{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return g.callable;default:return e.ReflectAdapter.get(a,b,c)}}})}}let i=Symbol.for("next.mutated.cookies");function j(a){let b=a[i];return b&&Array.isArray(b)&&0!==b.length?b:[]}function k(a,b){let c=j(b);if(0===c.length)return!1;let e=new d.ResponseCookies(a),f=e.getAll();for(let a of c)e.set(a);for(let a of f)e.set(a);return!0}class l{static wrap(a,b){let c=new d.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let g=[],h=new Set,j=()=>{let a=f.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=!0),g=c.getAll().filter(a=>h.has(a.name)),b){let a=[];for(let b of g){let c=new d.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case i:return g;case"delete":return function(...b){h.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){h.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return e.ReflectAdapter.get(a,b,c)}}});return k}}function m(a){let b=new Proxy(a.mutableCookies,{get(c,d,f){switch(d){case"delete":return function(...d){return o(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return o(a,"cookies().set"),c.set(...d),b};default:return e.ReflectAdapter.get(c,d,f)}}});return b}function n(a){return"action"===a.phase}function o(a,b){if(!n(a))throw new g}function p(a){let b=new d.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},30787:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a,b){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=e(b);if(c&&c.has(a))return c.get(a);var d={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(d,g,h):d[g]=a[g]}return d.default=a,c&&c.set(a,d),d}(c(74515));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},31716:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{isRequestAPICallableInsideAfter:function(){return i},throwForSearchParamsAccessInUseCache:function(){return h},throwWithStaticGenerationBailoutError:function(){return f},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return g}});let d=c(11938),e=c(3295);function f(a,b){throw Object.defineProperty(new d.StaticGenBailoutError(`Route ${a} couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E576",enumerable:!1,configurable:!0})}function g(a,b){throw Object.defineProperty(new d.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function h(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used "searchParams" inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await "searchParams" outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E779",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function i(){let a=e.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}},34603:(a,b,c)=>{Object.defineProperty(b,"b",{enumerable:!0,get:function(){return m}});let d=c(67675),e=c(29294),f=c(63033),g=c(26906),h=c(11938),i=c(82831),j=c(30787),k=c(31716),l=c(49290);function m(){let a="headers",b=e.workAsyncStorage.getStore(),c=f.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,k.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used "headers" inside "after(...)". This is not supported. If you need this data inside an "after" callback, use "headers" outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E367",enumerable:!1,configurable:!0});if(b.forceStatic)return o(d.HeadersAdapter.seal(new Headers({})));if(c)switch(c.type){case"cache":{let a=Object.defineProperty(Error(`Route ${b.route} used "headers" inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use "headers" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E304",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),b.invalidDynamicUsageError??=a,a}case"private-cache":{let a=Object.defineProperty(Error(`Route ${b.route} used "headers" inside "use cache: private". Accessing "headers" inside a private cache scope is not supported. If you need this data inside a cached function use "headers" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E742",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),b.invalidDynamicUsageError??=a,a}case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used "headers" inside a function cached with "unstable_cache(...)". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use "headers" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E127",enumerable:!1,configurable:!0})}if(b.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E525",enumerable:!1,configurable:!0});if(c)switch(c.type){case"prerender":case"prerender-runtime":var j=b,p=c;let e=n.get(p);if(e)return e;let f=(0,i.makeHangingPromise)(p.renderSignal,j.route,"`headers()`");return n.set(p,f),f;case"prerender-client":let q="`headers`";throw Object.defineProperty(new l.InvariantError(`${q} must not be used within a client component. Next.js should be preventing ${q} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E693",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,g.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,g.throwToInterruptStaticGeneration)(a,b,c);case"request":return(0,g.trackDynamicDataInDynamicRender)(c),o(c.headers)}}(0,f.throwForMissingRequestStore)(a)}c(63036);let n=new WeakMap;function o(a){let b=n.get(a);if(b)return b;let c=Promise.resolve(a);return n.set(a,c),Object.defineProperties(c,{append:{value:a.append.bind(a)},delete:{value:a.delete.bind(a)},get:{value:a.get.bind(a)},has:{value:a.has.bind(a)},set:{value:a.set.bind(a)},getSetCookie:{value:a.getSetCookie.bind(a)},forEach:{value:a.forEach.bind(a)},keys:{value:a.keys.bind(a)},values:{value:a.values.bind(a)},entries:{value:a.entries.bind(a)},[Symbol.iterator]:{value:a[Symbol.iterator].bind(a)}}),c}(0,j.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`headers()\` should be awaited before using its value. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E277",enumerable:!1,configurable:!0})})},35916:(a,b,c)=>{Object.defineProperty(b,"r",{enumerable:!0,get:function(){return k}});let d=c(63033),e=c(29294),f=c(26906),g=c(30787),h=c(11938),i=c(69168),j=c(49290);function k(){let a=e.workAsyncStorage.getStore(),b=d.workUnitAsyncStorage.getStore();switch((!a||!b)&&(0,d.throwForMissingRequestStore)("draftMode"),b.type){case"prerender-runtime":return(0,f.delayUntilRuntimeStage)(b,l(b.draftMode,a));case"request":return l(b.draftMode,a);case"cache":case"private-cache":case"unstable-cache":let c=(0,d.getDraftModeProviderForCacheScope)(a,b);if(c)return l(c,a);case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return l(null,a);default:return b}}function l(a,b){let c,d=a??m,e=n.get(d);return e||(c=function(a){let b=new o(a),c=Promise.resolve(b);return Object.defineProperty(c,"isEnabled",{get:()=>b.isEnabled,enumerable:!0,configurable:!0}),c.enable=b.enable.bind(b),c.disable=b.disable.bind(b),c}(a),n.set(d,c),c)}c(63036);let m={},n=new WeakMap;class o{constructor(a){this._provider=a}get isEnabled(){return null!==this._provider&&this._provider.isEnabled}enable(){p("draftMode().enable()",this.enable),null!==this._provider&&this._provider.enable()}disable(){p("draftMode().disable()",this.disable),null!==this._provider&&this._provider.disable()}}function p(a,b){let c=e.workAsyncStorage.getStore(),g=d.workUnitAsyncStorage.getStore();if(c){if((null==g?void 0:g.phase)==="after")throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside \`after\`. The enabled status of draftMode can be read inside \`after\` but you cannot enable or disable draftMode. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E348",enumerable:!1,configurable:!0});if(c.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${c.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(g)switch(g.type){case"cache":case"private-cache":{let d=Object.defineProperty(Error(`Route ${c.route} used "${a}" inside "use cache". The enabled status of draftMode can be read in caches but you must not enable or disable draftMode inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E246",enumerable:!1,configurable:!0});throw Error.captureStackTrace(d,b),c.invalidDynamicUsageError??=d,d}case"unstable-cache":throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside a function cached with "unstable_cache(...)". The enabled status of draftMode can be read in caches but you must not enable or disable draftMode inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E259",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":{let b=Object.defineProperty(Error(`Route ${c.route} used ${a} without first calling \`await connection()\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`),"__NEXT_ERROR_CODE",{value:"E126",enumerable:!1,configurable:!0});return(0,f.abortAndThrowOnSynchronousRequestDataAccess)(c.route,a,b,g)}case"prerender-client":let d="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${d} must not be used within a client component. Next.js should be preventing ${d} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E693",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,f.postponeWithTracking)(c.route,a,g.dynamicTracking);case"prerender-legacy":g.revalidate=0;let e=Object.defineProperty(new i.DynamicServerError(`Route ${c.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.dynamicUsageDescription=a,c.dynamicUsageStack=e.stack,e;case"request":(0,f.trackDynamicDataInDynamicRender)(g)}}}(0,g.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`draftMode()\` should be awaited before using its value. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E377",enumerable:!1,configurable:!0})})},86802:(a,b,c)=>{c.r(b),c.d(b,{__esModule:()=>d.B,cookies:()=>d.U,draftMode:()=>f.r,headers:()=>e.b});var d=c(14230),e=c(34603),f=c(35916)}};
|
|
1
|
+
"use strict";exports.id=6802,exports.ids=[6802],exports.modules={14230:(a,b,c)=>{Object.defineProperty(b,"B",{value:!0}),Object.defineProperty(b,"U",{enumerable:!0,get:function(){return n}});let d=c(28706),e=c(33675),f=c(29294),g=c(63033),h=c(26906),i=c(11938),j=c(82831),k=c(30787),l=c(31716),m=c(49290);function n(){let a="cookies",b=f.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,l.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used "cookies" inside "after(...)". This is not supported. If you need this data inside an "after" callback, use "cookies" outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E88",enumerable:!1,configurable:!0});if(b.forceStatic)return p(d.RequestCookiesAdapter.seal(new e.RequestCookies(new Headers({}))));if(b.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E549",enumerable:!1,configurable:!0});if(c)switch(c.type){case"cache":let f=Object.defineProperty(Error(`Route ${b.route} used "cookies" inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use "cookies" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E398",enumerable:!1,configurable:!0});throw Error.captureStackTrace(f,n),b.invalidDynamicUsageError??=f,f;case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used "cookies" inside a function cached with "unstable_cache(...)". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use "cookies" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E157",enumerable:!1,configurable:!0});case"prerender":var k=b,q=c;let g=o.get(q);if(g)return g;let r=(0,j.makeHangingPromise)(q.renderSignal,k.route,"`cookies()`");return o.set(q,r),r;case"prerender-client":let s="`cookies`";throw Object.defineProperty(new m.InvariantError(`${s} must not be used within a client component. Next.js should be preventing ${s} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E693",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,h.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,h.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,h.delayUntilRuntimeStage)(c,function(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),c}(c.cookies));case"private-cache":return p(c.cookies);case"request":return(0,h.trackDynamicDataInDynamicRender)(c),p((0,d.areCookiesMutableInCurrentPhase)(c)?c.userspaceMutableCookies:c.cookies)}}(0,g.throwForMissingRequestStore)(a)}c(63036);let o=new WeakMap;function p(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),Object.defineProperties(c,{[Symbol.iterator]:{value:a[Symbol.iterator]?a[Symbol.iterator].bind(a):q.bind(a)},size:{get:()=>a.size},get:{value:a.get.bind(a)},getAll:{value:a.getAll.bind(a)},has:{value:a.has.bind(a)},set:{value:a.set.bind(a)},delete:{value:a.delete.bind(a)},clear:{value:"function"==typeof a.clear?a.clear.bind(a):r.bind(a,c)},toString:{value:a.toString.bind(a)}}),c}function q(){return this.getAll().map(a=>[a.name,a]).values()}function r(a){for(let a of this.getAll())this.delete(a.name);return a}(0,k.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`cookies()\` should be awaited before using its value. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E223",enumerable:!1,configurable:!0})})},28706:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{MutableRequestCookiesAdapter:function(){return l},ReadonlyRequestCookiesError:function(){return g},RequestCookiesAdapter:function(){return h},appendMutableCookies:function(){return k},areCookiesMutableInCurrentPhase:function(){return n},createCookiesWithMutableAccessCheck:function(){return m},getModifiedCookieValues:function(){return j},responseCookiesToRequestCookies:function(){return p}});let d=c(33675),e=c(63036),f=c(29294);class g extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new g}}class h{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return g.callable;default:return e.ReflectAdapter.get(a,b,c)}}})}}let i=Symbol.for("next.mutated.cookies");function j(a){let b=a[i];return b&&Array.isArray(b)&&0!==b.length?b:[]}function k(a,b){let c=j(b);if(0===c.length)return!1;let e=new d.ResponseCookies(a),f=e.getAll();for(let a of c)e.set(a);for(let a of f)e.set(a);return!0}class l{static wrap(a,b){let c=new d.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let g=[],h=new Set,j=()=>{let a=f.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=!0),g=c.getAll().filter(a=>h.has(a.name)),b){let a=[];for(let b of g){let c=new d.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case i:return g;case"delete":return function(...b){h.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){h.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return e.ReflectAdapter.get(a,b,c)}}});return k}}function m(a){let b=new Proxy(a.mutableCookies,{get(c,d,f){switch(d){case"delete":return function(...d){return o(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return o(a,"cookies().set"),c.set(...d),b};default:return e.ReflectAdapter.get(c,d,f)}}});return b}function n(a){return"action"===a.phase}function o(a,b){if(!n(a))throw new g}function p(a){let b=new d.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},30787:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a,b){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=e(b);if(c&&c.has(a))return c.get(a);var d={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(d,g,h):d[g]=a[g]}return d.default=a,c&&c.set(a,d),d}(c(74515));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},34603:(a,b,c)=>{Object.defineProperty(b,"b",{enumerable:!0,get:function(){return m}});let d=c(67675),e=c(29294),f=c(63033),g=c(26906),h=c(11938),i=c(82831),j=c(30787),k=c(31716),l=c(49290);function m(){let a="headers",b=e.workAsyncStorage.getStore(),c=f.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,k.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used "headers" inside "after(...)". This is not supported. If you need this data inside an "after" callback, use "headers" outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E367",enumerable:!1,configurable:!0});if(b.forceStatic)return o(d.HeadersAdapter.seal(new Headers({})));if(c)switch(c.type){case"cache":{let a=Object.defineProperty(Error(`Route ${b.route} used "headers" inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use "headers" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E304",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),b.invalidDynamicUsageError??=a,a}case"private-cache":{let a=Object.defineProperty(Error(`Route ${b.route} used "headers" inside "use cache: private". Accessing "headers" inside a private cache scope is not supported. If you need this data inside a cached function use "headers" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E742",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),b.invalidDynamicUsageError??=a,a}case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used "headers" inside a function cached with "unstable_cache(...)". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use "headers" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E127",enumerable:!1,configurable:!0})}if(b.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E525",enumerable:!1,configurable:!0});if(c)switch(c.type){case"prerender":case"prerender-runtime":var j=b,p=c;let e=n.get(p);if(e)return e;let f=(0,i.makeHangingPromise)(p.renderSignal,j.route,"`headers()`");return n.set(p,f),f;case"prerender-client":let q="`headers`";throw Object.defineProperty(new l.InvariantError(`${q} must not be used within a client component. Next.js should be preventing ${q} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E693",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,g.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,g.throwToInterruptStaticGeneration)(a,b,c);case"request":return(0,g.trackDynamicDataInDynamicRender)(c),o(c.headers)}}(0,f.throwForMissingRequestStore)(a)}c(63036);let n=new WeakMap;function o(a){let b=n.get(a);if(b)return b;let c=Promise.resolve(a);return n.set(a,c),Object.defineProperties(c,{append:{value:a.append.bind(a)},delete:{value:a.delete.bind(a)},get:{value:a.get.bind(a)},has:{value:a.has.bind(a)},set:{value:a.set.bind(a)},getSetCookie:{value:a.getSetCookie.bind(a)},forEach:{value:a.forEach.bind(a)},keys:{value:a.keys.bind(a)},values:{value:a.values.bind(a)},entries:{value:a.entries.bind(a)},[Symbol.iterator]:{value:a[Symbol.iterator].bind(a)}}),c}(0,j.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`headers()\` should be awaited before using its value. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E277",enumerable:!1,configurable:!0})})},35916:(a,b,c)=>{Object.defineProperty(b,"r",{enumerable:!0,get:function(){return k}});let d=c(63033),e=c(29294),f=c(26906),g=c(30787),h=c(11938),i=c(69168),j=c(49290);function k(){let a=e.workAsyncStorage.getStore(),b=d.workUnitAsyncStorage.getStore();switch((!a||!b)&&(0,d.throwForMissingRequestStore)("draftMode"),b.type){case"prerender-runtime":return(0,f.delayUntilRuntimeStage)(b,l(b.draftMode,a));case"request":return l(b.draftMode,a);case"cache":case"private-cache":case"unstable-cache":let c=(0,d.getDraftModeProviderForCacheScope)(a,b);if(c)return l(c,a);case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return l(null,a);default:return b}}function l(a,b){let c,d=a??m,e=n.get(d);return e||(c=function(a){let b=new o(a),c=Promise.resolve(b);return Object.defineProperty(c,"isEnabled",{get:()=>b.isEnabled,enumerable:!0,configurable:!0}),c.enable=b.enable.bind(b),c.disable=b.disable.bind(b),c}(a),n.set(d,c),c)}c(63036);let m={},n=new WeakMap;class o{constructor(a){this._provider=a}get isEnabled(){return null!==this._provider&&this._provider.isEnabled}enable(){p("draftMode().enable()",this.enable),null!==this._provider&&this._provider.enable()}disable(){p("draftMode().disable()",this.disable),null!==this._provider&&this._provider.disable()}}function p(a,b){let c=e.workAsyncStorage.getStore(),g=d.workUnitAsyncStorage.getStore();if(c){if((null==g?void 0:g.phase)==="after")throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside \`after\`. The enabled status of draftMode can be read inside \`after\` but you cannot enable or disable draftMode. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E348",enumerable:!1,configurable:!0});if(c.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${c.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(g)switch(g.type){case"cache":case"private-cache":{let d=Object.defineProperty(Error(`Route ${c.route} used "${a}" inside "use cache". The enabled status of draftMode can be read in caches but you must not enable or disable draftMode inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E246",enumerable:!1,configurable:!0});throw Error.captureStackTrace(d,b),c.invalidDynamicUsageError??=d,d}case"unstable-cache":throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside a function cached with "unstable_cache(...)". The enabled status of draftMode can be read in caches but you must not enable or disable draftMode inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E259",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":{let b=Object.defineProperty(Error(`Route ${c.route} used ${a} without first calling \`await connection()\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`),"__NEXT_ERROR_CODE",{value:"E126",enumerable:!1,configurable:!0});return(0,f.abortAndThrowOnSynchronousRequestDataAccess)(c.route,a,b,g)}case"prerender-client":let d="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${d} must not be used within a client component. Next.js should be preventing ${d} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E693",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,f.postponeWithTracking)(c.route,a,g.dynamicTracking);case"prerender-legacy":g.revalidate=0;let e=Object.defineProperty(new i.DynamicServerError(`Route ${c.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.dynamicUsageDescription=a,c.dynamicUsageStack=e.stack,e;case"request":(0,f.trackDynamicDataInDynamicRender)(g)}}}(0,g.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`draftMode()\` should be awaited before using its value. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E377",enumerable:!1,configurable:!0})})},86802:(a,b,c)=>{c.r(b),c.d(b,{__esModule:()=>d.B,cookies:()=>d.U,draftMode:()=>f.r,headers:()=>e.b});var d=c(14230),e=c(34603),f=c(35916)}};
|
|
@@ -11,4 +11,4 @@ title: ${a}
|
|
|
11
11
|
date: ${b}
|
|
12
12
|
${i}${h}${g}---
|
|
13
13
|
|
|
14
|
-
${c}`}function f(a){let b=a.match(/date:\s*(.+)/);return b?b[1]:void 0}function g(a){let b=a.match(/status:\s*(.+)/);return b?b[1].trim():void 0}c.d(b,{GU:()=>d,KI:()=>g,_x:()=>f,wM:()=>e})},20751:(a,b,c)=>{c.d(b,{iV:()=>g,vH:()=>e});let d="data",e={rootKeep:()=>".gitkeep",blogDir:()=>"blog",blogDirKeep:()=>"blog/.gitkeep",blogPost:a=>`blog/${a}.md`,blogFile:a=>`blog/${a}`,blogManifest:()=>"blog-manifest.json",memos:()=>"memos.json",likes:()=>"likes.json",siteConfig:()=>"site-config.json",highlightsDir:()=>"highlights",highlightsFile:a=>`highlights/${a}.json`},f=a=>`${d}/${a}`,g={root:()=>d,rootKeep:()=>f(e.rootKeep()),blogDir:()=>f(e.blogDir()),blogDirKeep:()=>f(e.blogDirKeep()),blogPost:a=>f(e.blogPost(a)),blogFile:a=>f(e.blogFile(a)),blogManifest:()=>f(e.blogManifest()),memos:()=>f(e.memos()),likes:()=>f(e.likes()),siteConfig:()=>f(e.siteConfig()),highlightsDir:()=>f(e.highlightsDir()),highlightsFile:a=>f(e.highlightsFile(a))}},24516:(a,b,c)=>{c.d(b,{L7:()=>j,x_:()=>e,zl:()=>k});var d=c(657);let e=d.Ik({startOffset:d.ai().int().nonnegative(),endOffset:d.ai().int().nonnegative(),exact:d.Yj().min(1).max(1e3),prefix:d.Yj().max(64),suffix:d.Yj().max(64)}).refine(a=>a.endOffset>=a.startOffset,{message:"endOffset must be >= startOffset"}),f=d.g1(d.Yj(),d.YO(d.Yj())),g=d.k5(["ios","android","web"]),h=d.Ik({id:d.Yj().min(1).max(64),parentId:d.Yj().min(1).max(64).nullable(),body:d.Yj().min(1).max(2e3),authorName:d.Yj().max(40).nullable(),fingerprint:d.Yj().min(1).max(128),country:d.Yj().max(8),platform:g,reactions:f,resolved:d.zM(),createdAt:d.Yj().datetime(),hidden:d.zM(),hiddenReason:d.Yj().max(200).optional()}),i=d.Ik({id:d.Yj().min(1).max(64),anchor:e,thread:d.YO(h).min(1),resolved:d.zM(),createdAt:d.Yj().datetime()}),j=d.Ik({postId:d.Yj().min(1),highlights:d.YO(i),schemaVersion:d.eu(1)});function k(a){return{postId:a,highlights:[],schemaVersion:1}}},33577:(a,b,c)=>{c.d(b,{El:()=>k,Gl:()=>i,QB:()=>e,_P:()=>g,bB:()=>j,du:()=>l,pt:()=>f,sP:()=>h});var d=c(40076);function e(a){if(!a)throw Error("Access token is required");return new d.E({auth:a})}async function f(a){if(!a)throw Error("Access token is required");let b=e(a);try{let{data:a}=await b.users.getAuthenticated();return{owner:a.login,repo:"cici"}}catch(a){throw console.error("Error getting authenticated user:",a),Error("Failed to get authenticated user")}}async function g(a,b,c,d){let e=await a.repos.getContent({owner:b,repo:c,path:d});if(Array.isArray(e.data)||!("content"in e.data))throw Error("Unexpected response from GitHub API");return{content:Buffer.from(e.data.content,"base64").toString("utf-8"),sha:e.data.sha}}async function h(a,b,c,d,e,f,g){let h={owner:b,repo:c,path:d,message:e,content:Buffer.from(f).toString("base64")};g&&(h.sha=g),await a.repos.createOrUpdateFileContents(h)}async function i(a,b,c,d){try{await a.repos.getContent({owner:b,repo:c,path:d})}catch(e){if(e instanceof Error&&"status"in e&&404===e.status)await a.repos.createOrUpdateFileContents({owner:b,repo:c,path:`${d}/.gitkeep`,message:`Create directory: ${d}`,content:""});else throw e}}async function j(a){return new Promise((b,c)=>{let d=new FileReader;d.readAsDataURL(a),d.onload=()=>{"string"==typeof d.result?b(d.result.split(",")[1]):c(Error("Failed to convert file to base64"))},d.onerror=a=>c(a)})}function k(a){return a instanceof Error&&"status"in a&&404===a.status}async function l(a,b,c,d,e,f){try{await a.repos.getContent({owner:b,repo:c,path:d}),console.log(`File ${d} already exists.`)}catch(g){if(k(g)){console.log(`Creating file ${d}...`);try{await h(a,b,c,d,e,f),console.log(`File ${d} created successfully.`)}catch(a){throw console.error(`Error creating file ${d}:`,a),a}}else throw console.error(`Error checking file ${d}:`,g),g}}},39943:(a,b,c)=>{c.d(b,{i:()=>l,j:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(56995);let i={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".svg":"image/svg+xml",".avif":"image/avif"};function j(){return g().join((0,h.n)(),"assets")}async function k(a,b){let c=function(a,b){let c=g().extname(a||"").toLowerCase();if(c&&i[c])return c;if(b){let a=`.${b.split("/")[1]||""}`.toLowerCase();if(i[a])return a}return c||".png"}(a.name,a.type),d=g().posix.join("images",b.date),f=`${b.id}${c}`,h=g().join(j(),d);e().mkdirSync(h,{recursive:!0});let k=Buffer.from(await a.arrayBuffer());return e().writeFileSync(g().join(h,f),k),`/api/asset/${d}/${f}`}function l(a){if(a.some(a=>!a||".."===a||a.includes("\0")||a.includes("/")||a.includes("\\")))return null;let b=j(),c=g().resolve(b,...a);if(c!==b&&!c.startsWith(b+g().sep)||!e().existsSync(c)||!e().statSync(c).isFile())return null;let d=g().extname(c).toLowerCase();return{body:e().readFileSync(c),contentType:i[d]??"application/octet-stream"}}},46858:(a,b,c)=>{c.d(b,{Ik:()=>o,UU:()=>q,jE:()=>p});var d=c(29021),e=c(33873),f=c.n(e),g=c(40076),h=c(24516),i=c(20751),j=c(70806);let k=new Map;function l(a){return i.iV.highlightsFile(a)}function m(a){if(!a||0===a.length||a.length>200||a.includes("/")||a.includes("\\")||a.includes("\0")||a.includes("..")||a.startsWith("."))throw Error(`Invalid postId: ${a}`)}function n(a){if("object"==typeof a&&null!==a&&"status"in a){let b=a.status;return"number"==typeof b?b:void 0}}class o{constructor(a){this.rootDir=a}absPath(a){return f().join(this.rootDir,i.vH.highlightsFile(a))}async load(a){m(a);try{let b=await d.promises.readFile(this.absPath(a),"utf-8");return{data:h.L7.parse(JSON.parse(b)),sha:null}}catch(b){if("ENOENT"===b?.code)return{data:(0,h.zl)(a),sha:null};throw b}}async save(a,b,c,e){m(a);let g=h.L7.parse(b),i=this.absPath(a);return await d.promises.mkdir(f().dirname(i),{recursive:!0}),await d.promises.writeFile(i,JSON.stringify(g,null,2),"utf-8"),{sha:""}}}class p{constructor(a,b,c="cici",d=!1){this.octokit=a,this.owner=b,this.repo=c,this.readOnly=d}async load(a){m(a);let b=k.get(a);if(b&&b.expiresAt>Date.now())return{data:b.data,sha:b.sha};let c=await this.readFile(a);if(!c){let b=(0,h.zl)(a);return k.set(a,{data:b,sha:null,expiresAt:Date.now()+3e4}),{data:b,sha:null}}let d=h.L7.parse(JSON.parse(c.content));return k.set(a,{data:d,sha:c.sha,expiresAt:Date.now()+3e4}),{data:d,sha:c.sha}}async save(a,b,c,d){if(m(a),this.readOnly)throw Error("Highlights are read-only: no write token available. Sign in as the repo owner to add or moderate inline comments.");let e=h.L7.parse(b),f=Buffer.from(JSON.stringify(e,null,2)).toString("base64"),g=0,i=c;for(;g<3;)try{let b=await this.octokit.repos.createOrUpdateFileContents({owner:this.owner,repo:this.repo,path:l(a),message:d,content:f,...i?{sha:i}:{}}),c=b.data.content?.sha??"";return k.set(a,{data:e,sha:c,expiresAt:Date.now()+3e4}),{sha:c}}catch(c){let b=n(c);if(409===b||422===b){k.delete(a),g++;let b=await this.readFile(a);i=b?.sha??null;continue}throw c}throw Error("Save failed after 3 retries due to write contention")}async readFile(a){try{let b=(await this.octokit.repos.getContent({owner:this.owner,repo:this.repo,path:l(a)})).data;if(Array.isArray(b)||"file"!==b.type)return null;return{content:Buffer.from(b.content,"base64").toString("utf-8"),sha:b.sha}}catch(a){if(404===n(a))return null;throw a}}}function q(a={}){let b=(0,j.p)(a.ownerToken);if("local"===b.kind)return new o(b.dir);let c=a.ownerToken??b.token??process.env.HIGHLIGHTS_GH_TOKEN;return new p(c?new g.E({auth:c}):new g.E,b.owner,b.repo,!c)}},56995:(a,b,c)=>{c.d(b,{J:()=>g,n:()=>h});var d=c(33873),e=c.n(d),f=c(70806);function g(){return"local"===(0,f.p)().kind}function h(){let a=process.env.CICI_DIR;return a?e().resolve(a):e().join(process.cwd(),"sample-content")}},70806:(a,b,c)=>{c.d(b,{p:()=>g});var d=c(33873),e=c.n(d);let f="cici";function g(a){let b=process.env.CICI_DIR;if(b)return{kind:"local",dir:e().resolve(b)};let c=process.env.CICI_REPO;if(c){let[b,d]=c.split("/");if(!b)throw Error(`Invalid CICI_REPO "${c}" — expected "owner/name".`);return{kind:"github",owner:b,repo:d||f,token:process.env.CICI_TOKEN||a||void 0}}return{kind:"github",owner:process.env.GITHUB_USERNAME||"metrue",repo:f,token:a||void 0}}},90880:(a,b,c)=>{c.d(b,{sO:()=>x});var d=c(70806),e=c(39943),f=c(46858),g=c(29021),h=c.n(g),i=c(33873),j=c.n(i);function k(a){let{frontmatter:b}=function(a){let b=a.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);return b?{frontmatter:b[1],body:b[2].replace(/^\n/,"")}:{frontmatter:"",body:a}}(a),c=b.match(/title:[ \t]*(.+)/),d=b.match(/date:[ \t]*(.+)/),e=b.match(/latitude:[ \t]*(.+)/),f=b.match(/longitude:[ \t]*(.+)/),g=b.match(/city:[ \t]*(.+)/),h=b.match(/street:[ \t]*(.+)/),i=b.match(/status:[ \t]*(.+)/),j=b.match(/publishedAt:[ \t]*(.+)/),k=b.match(/lastModified:[ \t]*(.+)/),l=e?.[1]?.trim(),m=f?.[1]?.trim(),n=l?parseFloat(l):NaN,o=m?parseFloat(m):NaN;return{title:c?c[1].trim():"",date:d?d[1].trim():new Date().toISOString(),discussions:function(a){let b=[],c=a.match(/external_discussions:\s*\n([\s\S]*?)(?=\n\w|$)/);if(!c)return b;let d=c[1].split("\n").filter(a=>a.trim()),e={};for(let a of d)a.includes("platform:")?(e.platform&&e.url&&b.push(e),e={platform:a.split(":")[1].trim()}):a.includes("url:")&&e.platform&&(e.url=a.split("url:")[1].trim());return e.platform&&e.url&&b.push(e),b}(b),...l&&!isNaN(n)&&{latitude:n},...m&&!isNaN(o)&&{longitude:o},...g&&g[1].trim()&&{city:g[1].trim()},...h&&h[1].trim()&&{street:h[1].trim()},...i&&{status:i[1].trim()},...j&&{publishedAt:j[1].trim()},...k&&{lastModified:k[1].trim()}}}var l=c(20751),m=c(56995),n=c(8623);class o{abs(a){return j().join((0,m.n)(),a)}get dataDir(){return(0,m.n)()}get blogDir(){return this.abs(l.vH.blogDir())}async getBlogPosts(a=!1){try{if(!h().existsSync(this.blogDir))return console.log("Blog directory does not exist, returning empty array"),[];let b=h().readdirSync(this.blogDir).filter(a=>a.endsWith(".md")&&".gitkeep"!==a),c=[];for(let a of b){let b=await this.getBlogPost(a);b&&c.push(b)}let d=c.sort((a,b)=>new Date(b.date).getTime()-new Date(a.date).getTime());if(a)return d;return d.filter(a=>"published"===a.status)}catch(a){return console.error("Error reading local blog posts:",a),[]}}async getBlogPost(a){try{let b=j().join(this.blogDir,a);if(!h().existsSync(b))return null;let c=h().readFileSync(b,"utf-8"),d=k(c),e=this.getFirstImageURLFrom(c);return{id:a.replace(".md",""),title:d.title||a.replace(".md",""),content:c,imageUrl:e,date:d.date?new Date(d.date).toISOString():new Date().toISOString(),discussions:d.discussions.length>0?d.discussions:void 0,latitude:d.latitude,longitude:d.longitude,city:d.city,street:d.street,status:d.status||"published",publishedAt:d.publishedAt||d.date,lastModified:d.lastModified||d.date||new Date().toISOString()}}catch(b){return console.error(`Error reading blog post ${a}:`,b),null}}async getMemos(){try{let a=this.abs(l.vH.memos());if(!h().existsSync(a))return console.log("memos.json not found, returning empty array"),[];let b=h().readFileSync(a,"utf-8"),c=JSON.parse(b);return Array.isArray(c)?c:[]}catch(a){return console.error("Error reading local memos:",a),[]}}async getSiteConfig(){try{let a=h().readFileSync(this.abs(l.vH.siteConfig()),"utf-8");return JSON.parse(a)}catch{return null}}async getLinks(){try{let a=this.abs(l.vH.siteConfig());if(!h().existsSync(a))return{};let b=h().readFileSync(a,"utf-8");return JSON.parse(b).links||{}}catch(a){return console.warn("Error reading local site config:",a),{}}}async getLikes(){try{let a=this.abs(l.vH.likes());if(!h().existsSync(a))return console.log("likes.json not found, returning empty object"),{};let b=h().readFileSync(a,"utf-8"),c=JSON.parse(b);return"object"==typeof c&&null!==c?c:{}}catch(a){return console.error("Error reading local likes:",a),{}}}async updateLikes(a){try{let b=this.abs(l.vH.likes()),c=JSON.stringify(a,null,2);h().writeFileSync(b,c,"utf-8"),console.log("Updated local likes data")}catch(a){throw console.error("Error updating local likes:",a),Error("Failed to update local likes data")}}async createMemo(a){try{let b=await this.getMemos(),c=[a,...b],d=this.abs(l.vH.memos()),e=JSON.stringify(c,null,2);return h().writeFileSync(d,e,"utf-8"),console.log("Created new memo locally"),a}catch(a){throw console.error("Error creating local memo:",a),Error("Failed to create memo locally")}}async createBlogPost(a){let b=(0,n.GU)(a.title),c=this.abs(l.vH.blogFile(`${b}.md`)),d=(0,n.wM)({title:a.title,date:new Date().toISOString(),content:a.content,status:a.status,location:a.location,discussions:a.discussions});return h().mkdirSync(j().dirname(c),{recursive:!0}),h().writeFileSync(c,d,"utf-8"),b}async updateBlogPost(a,b){let c=this.abs(l.vH.blogPost(a)),d="";try{d=h().readFileSync(c,"utf-8")}catch{}let e=(0,n._x)(d)??new Date().toISOString(),f=void 0!==b.status?b.status:(0,n.KI)(d)??"published",g=(0,n.wM)({title:b.title,date:e,content:b.content,status:f,location:b.location,discussions:b.discussions});return h().mkdirSync(j().dirname(c),{recursive:!0}),h().writeFileSync(c,g,"utf-8"),a}async deleteBlogPost(a){let b=this.abs(l.vH.blogPost(a));try{h().unlinkSync(b)}catch(a){if(a?.code!=="ENOENT")throw a}}async updateMemo(a,b){let c=await this.getMemos(),d=c.findIndex(b=>b.id===a);if(-1===d)throw Error("Memo not found");let e={...c[d],content:b},f=c.map((a,b)=>b===d?e:a);return h().writeFileSync(this.abs(l.vH.memos()),JSON.stringify(f,null,2),"utf-8"),e}async deleteMemo(a){let b=(await this.getMemos()).filter(b=>b.id!==a);h().writeFileSync(this.abs(l.vH.memos()),JSON.stringify(b,null,2),"utf-8")}async getDrafts(){return(await this.getBlogPosts(!0)).filter(a=>"draft"===a.status)}async getAllBlogPosts(){return this.getBlogPosts(!0)}async checkRepositoryHealth(){return h().existsSync(this.dataDir)}getFirstImageURLFrom(a){let b=/(https?:\/\/[^\s]+?\.(?:png|jpg|jpeg|gif|webp))/i.exec(a);if(b){let a=b[1];return a.startsWith("https://github")?`${a}?raw=true`:a}return null}}class p{constructor(a){this.dir=a,this.client=new o}get label(){return`local: ${this.dir}`}canWrite(){return!0}getBlogPosts(a){return this.client.getBlogPosts(a?.includeDrafts??!1)}async getBlogPost(a){return await this.client.getBlogPost(`${a}.md`)??void 0}getMemos(){return this.client.getMemos()}getLinks(){return this.client.getLinks()}getLikes(){return this.client.getLikes()}getSiteConfig(){return this.client.getSiteConfig()}createBlogPost(a){return this.client.createBlogPost(a)}updateBlogPost(a,b){return this.client.updateBlogPost(a,b)}deleteBlogPost(a){return this.client.deleteBlogPost(a)}createMemo(a){return this.client.createMemo(a)}updateMemo(a,b){return this.client.updateMemo(a,b)}deleteMemo(a){return this.client.deleteMemo(a)}updateLikes(a){return this.client.updateLikes(a)}uploadAsset(a){return(0,e.j)(a,{date:new Date().toISOString().split("T")[0],id:Date.now().toString()})}highlights(){return new f.Ik(this.dir)}}var q=c(33577),r=c(94480),s=c(40076);class t{constructor(a,b="cici"){this.accessToken=a,this.repo=b}async getSafeOwner(a){if(a&&"true"!==a)return a;if(this.accessToken)try{let a=new s.E({auth:this.accessToken}),{data:b}=await a.users.getAuthenticated();if(b.login&&"true"!==b.login)return b.login}catch(a){console.warn("Failed to get authenticated user:",a)}return process.env.GITHUB_USERNAME||"metrue"}async getBlogPosts(a,b=!1){let c=this.accessToken?new s.E({auth:this.accessToken}):new s.E,d=await this.getSafeOwner(a);try{let a=await c.repos.getContent({owner:d,repo:this.repo,path:l.iV.blogDir()});if(!Array.isArray(a.data))return console.warn("Unexpected response from GitHub API: data is not an array"),[];let e=(await Promise.all(a.data.filter(a=>"file"===a.type&&".gitkeep"!==a.name&&a.name.endsWith(".md")).map(async a=>this.getBlogPost(a.name,d)))).filter(a=>void 0!==a);if(b&&this.accessToken)return e;return e.filter(a=>"published"===a.status)}catch(a){if(console.error("Error fetching blog posts:",a),a instanceof Error&&"status"in a&&404===a.status)return console.log("Blog directory does not exist, returning empty array"),[];throw a}}async getBlogPost(a,b){let c=this.accessToken?new s.E({auth:this.accessToken}):new s.E,d=await this.getSafeOwner(b),e=await c.repos.getContent({owner:d,repo:this.repo,path:l.iV.blogFile(a)});if("content"in e.data){let b=Buffer.from(e.data.content,"base64").toString("utf-8"),c=k(b);return{id:a.replace(".md",""),title:c.title?decodeURIComponent(c.title):decodeURIComponent(a.replace(".md","")),content:b,imageUrl:(a=>{let b=/(https?:\/\/[^\s]+?\.(?:png|jpg|jpeg|gif|webp))/i.exec(a);if(b){let a=b[1];return a.startsWith("https://github")?`${a}?raw=true`:a}return null})(b),date:c.date?new Date(c.date).toISOString():new Date().toISOString(),discussions:c.discussions.length>0?c.discussions:void 0,latitude:c.latitude,longitude:c.longitude,city:c.city,street:c.street,status:c.status||"published",publishedAt:c.publishedAt||c.date,lastModified:c.lastModified||c.date||new Date().toISOString()}}}async getMemos(a){let b=this.accessToken?new s.E({auth:this.accessToken}):new s.E,c=await this.getSafeOwner(a);try{let a=await b.repos.getContent({owner:c,repo:this.repo,path:l.iV.memos()});if(Array.isArray(a.data)||!("content"in a.data))return[];let d=Buffer.from(a.data.content,"base64").toString("utf-8");return JSON.parse(d)}catch(a){return console.error("Error fetching public memos:",a),[]}}async getLinks(a){let b=this.accessToken?new s.E({auth:this.accessToken}):new s.E,c=await this.getSafeOwner(a);try{let a=await b.repos.getContent({owner:c,repo:this.repo,path:l.iV.siteConfig()});if(Array.isArray(a.data)||!("content"in a.data))return{};let d=Buffer.from(a.data.content,"base64").toString("utf-8");return JSON.parse(d).links||{}}catch(a){return console.warn("Error fetching links:",a),{}}}async getLikes(a){let b=this.accessToken?new s.E({auth:this.accessToken}):new s.E,c=await this.getSafeOwner(a);try{let a=await b.repos.getContent({owner:c,repo:this.repo,path:l.iV.likes()});if(Array.isArray(a.data)||!("content"in a.data))return{};let d=Buffer.from(a.data.content,"base64").toString("utf-8");return JSON.parse(d)}catch(a){if(console.error("Error fetching likes:",a),a instanceof Error&&"status"in a&&404===a.status)return{};throw a}}async updateLikes(a,b){let c=new s.E({auth:this.accessToken}),d=await this.getSafeOwner(b);try{let b;try{let a=await c.repos.getContent({owner:d,repo:this.repo,path:l.iV.likes()});!Array.isArray(a.data)&&"sha"in a.data&&(b=a.data.sha)}catch(a){}await c.repos.createOrUpdateFileContents({owner:d,repo:this.repo,path:l.iV.likes(),message:`Update likes data - ${new Date().toISOString()}`,content:Buffer.from(JSON.stringify(a,null,2)).toString("base64"),...b&&{sha:b}})}catch(a){throw console.error("Error updating likes:",a),Error("Failed to update likes data")}}async getDrafts(a){return(await this.getBlogPosts(a,!0)).filter(a=>"draft"===a.status)}async getAllBlogPosts(a){return this.getBlogPosts(a,!0)}}class u{constructor(a,b="cici"){this.owner=a,this.baseUrl=`https://raw.githubusercontent.com/${a}/${b}/main`}async getBlogPosts(a=!1){try{try{let b=await fetch(`${this.baseUrl}/${l.iV.blogManifest()}`);if(b.ok){let c=await b.json(),d=c.files||[...c.published||[],...c.drafts||[]],e=(await Promise.all(d.map(a=>this.getBlogPost(a)))).filter(a=>null!==a);if(a)return e;return e.filter(a=>"published"===a.status)}}catch{}return console.warn("Blog manifest not found, returning empty array"),[]}catch(a){throw console.error("Error fetching blog posts via raw URLs:",a),a}}async getBlogPost(a){try{let b=await fetch(`${this.baseUrl}/${l.iV.blogFile(a)}`);if(!b.ok){if(404===b.status)return null;throw Error(`HTTP ${b.status}: ${b.statusText}`)}let c=await b.text(),d=k(c);return{id:a.replace(".md",""),title:d.title?decodeURIComponent(d.title.trim()):decodeURIComponent(a.replace(".md","")),content:c,imageUrl:(a=>{let b=/(https?:\/\/[^\s]+?\.(?:png|jpg|jpeg|gif|webp))/i.exec(a);if(b){let a=b[1];return a.startsWith("https://github")?`${a}?raw=true`:a}return null})(c),date:d.date?new Date(d.date.trim()).toISOString():new Date().toISOString(),discussions:d.discussions.length>0?d.discussions:void 0,latitude:d.latitude,longitude:d.longitude,city:d.city,street:d.street,status:d.status||"published",publishedAt:d.publishedAt||d.date,lastModified:d.lastModified||d.date||new Date().toISOString()}}catch(b){return console.error(`Error fetching blog post ${a}:`,b),null}}async getMemos(){try{let a=await fetch(`${this.baseUrl}/${l.iV.memos()}`);if(!a.ok){if(404===a.status)return console.log("memos.json not found, returning empty array"),[];throw Error(`HTTP ${a.status}: ${a.statusText}`)}let b=await a.json();return Array.isArray(b)?b:[]}catch(a){return console.error("Error fetching memos via raw URLs:",a),[]}}async getLinks(){try{let a=await fetch(`${this.baseUrl}/${l.iV.siteConfig()}`);if(!a.ok){if(404===a.status)return{};throw Error(`HTTP ${a.status}: ${a.statusText}`)}return(await a.json()).links||{}}catch(a){return console.warn("Error fetching links via raw URLs:",a),{}}}async getLikes(){try{let a=await fetch(`${this.baseUrl}/${l.iV.likes()}`);if(!a.ok){if(404===a.status)return console.log("likes.json not found, returning empty object"),{};throw Error(`HTTP ${a.status}: ${a.statusText}`)}let b=await a.json();return"object"==typeof b&&null!==b?b:{}}catch(a){return console.error("Error fetching likes via raw URLs:",a),{}}}async getDrafts(){return(await this.getBlogPosts(!0)).filter(a=>"draft"===a.status)}async getAllBlogPosts(){return this.getBlogPosts(!0)}async checkRepositoryHealth(){try{return(await fetch(`${this.baseUrl}/README.md`)).ok}catch{return!1}}}class v extends Error{constructor(a="This cici instance is read-only. Provide a token to enable editing."){super(a),this.name="ReadOnlyError"}}class w{constructor(a){this.owner=a.owner,this.repo=a.repo,this.token=a.token,this.reader=new u(a.owner,a.repo),this.apiReader=a.token?new t(a.token,a.repo):void 0,this.target={owner:a.owner,repo:a.repo}}async fresh(a,b){if(this.apiReader)try{return await a(this.apiReader)}catch(a){console.warn("GitHub API read failed, falling back to raw URL:",a)}return b()}get label(){return`github: ${this.owner}/${this.repo}${this.token?"":" (read-only)"}`}canWrite(){return!!this.token}requireToken(){if(!this.token)throw new v;return this.token}writeOctokit(){return(0,q.QB)(this.requireToken())}getBlogPosts(a){let b=a?.includeDrafts??!1;return this.fresh(a=>a.getBlogPosts(this.owner,b),()=>this.reader.getBlogPosts(b))}async getBlogPost(a){return await this.fresh(b=>b.getBlogPost(`${a}.md`,this.owner),()=>this.reader.getBlogPost(`${a}.md`))??void 0}getMemos(){return this.fresh(a=>a.getMemos(this.owner),()=>this.reader.getMemos())}getLinks(){return this.fresh(a=>a.getLinks(this.owner),()=>this.reader.getLinks())}getLikes(){return this.fresh(a=>a.getLikes(this.owner),()=>this.reader.getLikes())}async getSiteConfig(){if(this.token)try{let a=(0,q.QB)(this.token),b=await a.repos.getContent({owner:this.owner,repo:this.repo,path:l.iV.siteConfig()});if(!Array.isArray(b.data)&&"content"in b.data){let a=Buffer.from(b.data.content,"base64").toString("utf-8");return JSON.parse(a)}}catch(a){console.warn("GitHub API site-config read failed, falling back to raw URL:",a)}try{let a=`https://raw.githubusercontent.com/${this.owner}/${this.repo}/main/${l.iV.siteConfig()}`,b=await fetch(a);if(!b.ok)return null;return await b.json()}catch{return null}}async createBlogPost(a){let b=this.requireToken();return await (0,r.Fd)(a.title,a.content,b,a.discussions,a.location,a.status,this.target),(0,n.GU)(a.title)}async updateBlogPost(a,b){let c=this.requireToken();return await (0,r.s2)(a,b.title,b.content,c,b.discussions,b.location,b.status,this.target),a}async deleteBlogPost(a){await (0,r.m0)(a,this.requireToken(),this.target)}async uploadAsset(a){return(0,r.V6)(a,this.requireToken(),this.target)}async createMemo(a){let b=l.iV.memos(),{data:c,sha:d}=await this.getJsonFile(b),e=Array.isArray(c)?c:[];return await this.putFile(b,JSON.stringify([a,...e],null,2),`Add memo ${a.id}`,d),a}async updateMemo(a,b){let c=l.iV.memos(),{data:d,sha:e}=await this.getJsonFile(c),f=Array.isArray(d)?d:[],g=f.findIndex(b=>b.id===a);if(-1===g)throw Error("Memo not found");let h={...f[g],content:b},i=f.map((a,b)=>b===g?h:a);return await this.putFile(c,JSON.stringify(i,null,2),`Update memo ${a}`,e),h}async deleteMemo(a){let b=l.iV.memos(),{data:c,sha:d}=await this.getJsonFile(b),e=Array.isArray(c)?c:[];await this.putFile(b,JSON.stringify(e.filter(b=>b.id!==a),null,2),`Delete memo ${a}`,d)}async updateLikes(a){let b=l.iV.likes(),{sha:c}=await this.getJsonFile(b);await this.putFile(b,JSON.stringify(a,null,2),"Update likes",c)}highlights(){return new f.jE((0,q.QB)(this.token),this.owner,this.repo)}async getJsonFile(a){let b=this.writeOctokit();try{let c=await b.repos.getContent({owner:this.owner,repo:this.repo,path:a});if(Array.isArray(c.data)||!("content"in c.data))return{data:null};let d=Buffer.from(c.data.content,"base64").toString("utf-8");return{data:JSON.parse(d),sha:c.data.sha}}catch(a){if(a?.status===404)return{data:null};throw a}}putFile(a,b,c,d){return(0,q.sP)(this.writeOctokit(),this.owner,this.repo,a,c,b,d)}}function x(a){var b;return"local"===(b=(0,d.p)(a)).kind?new p(b.dir):new w({owner:b.owner,repo:b.repo,token:b.token})}},94480:(a,b,c)=>{c.d(b,{Fd:()=>o,m0:()=>p,KG:()=>s,s2:()=>q,V6:()=>r});var d=c(40076),e=c(20751);async function f(a,b,c){try{let f,g=new d.E({auth:a}),{data:h}=await g.repos.getContent({owner:b,repo:c,path:e.iV.blogDir()});if(!Array.isArray(h))return void console.error("Expected array of files but got:",typeof h);let i=h.filter(a=>"file"===a.type&&a.name.endsWith(".md")&&".gitkeep"!==a.name).map(a=>a.name).sort();try{let{data:a}=await g.repos.getContent({owner:b,repo:c,path:e.iV.blogManifest()});!Array.isArray(a)&&"sha"in a&&(f=a.sha)}catch(a){console.log("Blog manifest does not exist yet, will create it")}await g.repos.createOrUpdateFileContents({owner:b,repo:c,path:e.iV.blogManifest(),message:"Update blog manifest",content:Buffer.from(JSON.stringify({files:i},null,2)).toString("base64"),sha:f}),console.log("Blog manifest updated successfully with",i.length,"files")}catch(a){console.error("Failed to update blog manifest:",a)}}var g=c(8623),h=c(33873),i=c.n(h),j=c(33577);let k="cici";async function l(a,b,c){try{let{data:d}=await a.repos.get({owner:b,repo:c});if(!d.description){let{data:d}=await a.users.getAuthenticated(),e=d.login;await a.repos.update({owner:b,repo:c,description:`https://tinymind.me/${e}`}),console.log(`Updated repository description to https://tinymind.me/${e}`)}}catch(b){if((0,j.El)(b))await a.repos.createForAuthenticatedUser({name:c,auto_init:!0}),console.log(`Created new repository: ${c}`);else throw b}try{let{data:d}=await a.repos.getContent({owner:b,repo:c,path:"README.md"});if(console.log("README content:",d),"content"in d){let e=Buffer.from(d.content,"base64").toString("utf-8");console.log("README Decoded content:",e.trim()),(""===e.trim()||"# tinymind-blog"===e.trim())&&(await a.repos.createOrUpdateFileContents({owner:b,repo:c,path:"README.md",message:"Update README.md with default content",content:Buffer.from("# cici Blog\n\nWrite blog posts and memos at https://tinymind.me with data stored on GitHub.").toString("base64"),sha:d.sha}),console.log("README.md updated with default content"))}}catch(d){if(d instanceof Error&&"status"in d&&404===d.status){let d=Buffer.from("Write blog posts and memos at https://tinymind.me with data stored on GitHub.").toString("base64");await a.repos.createOrUpdateFileContents({owner:b,repo:c,path:"README.md",message:"Initial commit: Add README.md",content:d})}else throw d}}async function m(a,b,c){try{await (0,j.du)(a,b,c,e.iV.rootKeep(),"Initialize content directory",""),await (0,j.du)(a,b,c,e.iV.blogDirKeep(),"Initialize blog directory",""),await (0,j.du)(a,b,c,e.iV.memos(),"Initialize memos.json","[]")}catch(a){throw console.error("Error ensuring content structure:",a),a}}async function n(a,b,c){await l(a,b,c),await m(a,b,c)}async function o(a,b,c,d=[],h,i="published",k){let l=(0,j.QB)(c),{owner:m,repo:p}=k??await (0,j.pt)(c);await n(l,m,p);let q=`${(0,g.GU)(a)}.md`,r=e.iV.blogFile(q),s=(0,g.wM)({title:a,date:new Date().toISOString(),content:b,status:i,location:h,discussions:d});await l.repos.createOrUpdateFileContents({owner:m,repo:p,path:r,message:`Add blog post: ${a}`,content:Buffer.from(s).toString("base64")}),await f(c,m,p)}async function p(a,b,c){if(console.log("Deleting blog post..."),!b)throw Error("Access token is required");let d=(0,j.QB)(b);try{let{owner:g,repo:h}=c??await (0,j.pt)(b),i=decodeURIComponent(a),k=`${i}.md`,l=e.iV.blogFile(k);console.log(`Attempting to delete file: ${l}`);let m=await d.repos.getContent({owner:g,repo:h,path:l});if(Array.isArray(m.data)||!("sha"in m.data))throw Error("Unexpected response when fetching current blog post");await d.repos.deleteFile({owner:g,repo:h,path:l,message:"Delete blog post",sha:m.data.sha}),console.log("Blog post deleted successfully"),await f(b,g,h)}catch(a){throw console.error("Error deleting blog post:",a),a}}async function q(a,b,c,d,h=[],i,k,l){if(console.log("Updating blog post..."),!d)throw Error("Access token is required");let m=(0,j.QB)(d);try{let{owner:n,repo:o}=l??await (0,j.pt)(d),{content:p,sha:q}=await (0,j._P)(m,n,o,e.iV.blogPost(a)),r=(0,g._x)(p)??new Date().toISOString(),s=void 0!==k?k:(0,g.KI)(p)??"published",t=(0,g.wM)({title:b,date:r,content:c,status:s,location:i,discussions:h});await (0,j.sP)(m,n,o,e.iV.blogPost(a),"Update blog post",t,q),console.log("Blog post updated successfully"),await f(d,n,o)}catch(a){throw console.error("Error updating blog post:",a),a}}async function r(a,b,c){if(console.log("Uploading image..."),!b)throw Error("Access token is required");let d=(0,j.QB)(b);console.log("Octokit instance created");try{let{owner:e,repo:f}=c??await (0,j.pt)(b);console.log("Repo info:",{owner:e,repo:f});let{data:g}=await d.repos.get({owner:e,repo:f}),h=g.default_branch;console.log("Default branch:",h),await n(d,e,f),console.log("GitHub structure initialized");let k=new Date().toISOString().split("T")[0],l=Date.now().toString(),m=i().extname(a.name),o=`${l}${m}`,p=`assets/images/${k}/${o}`;await (0,j.Gl)(d,e,f,`assets/images/${k}`);let q=await (0,j.bB)(a),r=await d.repos.createOrUpdateFileContents({owner:e,repo:f,path:p,message:`Upload image: ${o}`,content:q});console.log(r),console.log("Image uploaded successfully");let s=r.data.content?.download_url;if(s){let a=s.split("/"),b=a[3],c=a[4],d=a.slice(6).join("/");return`https://github.com/${b}/${c}/blob/${h}/${d}?raw=true`}throw Error("Failed to get image URL")}catch(a){throw console.error("Error uploading image:",a),a}}async function s(a){let b,c,d=null;if(a.length>40)try{d=(0,j.QB)(a);let e=await (0,j.pt)(a);b=e.owner,c=e.repo}catch(d){console.error("Error getting authenticated user:",d),b=a,c=k}else b=a,c=k;let e=`https://github.com/${b}.png`,f=`https://github.com/${b}.png`,g=e,h=f;return d&&(g=await t(d,b,c,"assets/icon.jpg",e),h=await t(d,b,c,"assets/icon-144.jpg",f)),{iconPath:g,appleTouchIconPath:h}}async function t(a,b,c,d,e){try{return await a.repos.getContent({owner:b,repo:c,path:d}),`https://github.com/${b}/${c}/blob/main/${d}?raw=true`}catch(a){return console.warn(`No icon found in ${d}, using default:`,e),e}}}};
|
|
14
|
+
${c}`}function f(a){let b=a.match(/date:\s*(.+)/);return b?b[1]:void 0}function g(a){let b=a.match(/status:\s*(.+)/);return b?b[1].trim():void 0}c.d(b,{GU:()=>d,KI:()=>g,_x:()=>f,wM:()=>e})},33577:(a,b,c)=>{c.d(b,{El:()=>k,Gl:()=>i,QB:()=>e,_P:()=>g,bB:()=>j,du:()=>l,pt:()=>f,sP:()=>h});var d=c(40076);function e(a){if(!a)throw Error("Access token is required");return new d.E({auth:a})}async function f(a){if(!a)throw Error("Access token is required");let b=e(a);try{let{data:a}=await b.users.getAuthenticated();return{owner:a.login,repo:"cici"}}catch(a){throw console.error("Error getting authenticated user:",a),Error("Failed to get authenticated user")}}async function g(a,b,c,d){let e=await a.repos.getContent({owner:b,repo:c,path:d});if(Array.isArray(e.data)||!("content"in e.data))throw Error("Unexpected response from GitHub API");return{content:Buffer.from(e.data.content,"base64").toString("utf-8"),sha:e.data.sha}}async function h(a,b,c,d,e,f,g){let h={owner:b,repo:c,path:d,message:e,content:Buffer.from(f).toString("base64")};g&&(h.sha=g),await a.repos.createOrUpdateFileContents(h)}async function i(a,b,c,d){try{await a.repos.getContent({owner:b,repo:c,path:d})}catch(e){if(e instanceof Error&&"status"in e&&404===e.status)await a.repos.createOrUpdateFileContents({owner:b,repo:c,path:`${d}/.gitkeep`,message:`Create directory: ${d}`,content:""});else throw e}}async function j(a){return new Promise((b,c)=>{let d=new FileReader;d.readAsDataURL(a),d.onload=()=>{"string"==typeof d.result?b(d.result.split(",")[1]):c(Error("Failed to convert file to base64"))},d.onerror=a=>c(a)})}function k(a){return a instanceof Error&&"status"in a&&404===a.status}async function l(a,b,c,d,e,f){try{await a.repos.getContent({owner:b,repo:c,path:d}),console.log(`File ${d} already exists.`)}catch(g){if(k(g)){console.log(`Creating file ${d}...`);try{await h(a,b,c,d,e,f),console.log(`File ${d} created successfully.`)}catch(a){throw console.error(`Error creating file ${d}:`,a),a}}else throw console.error(`Error checking file ${d}:`,g),g}}},39943:(a,b,c)=>{c.d(b,{i:()=>l,j:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(56995);let i={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".svg":"image/svg+xml",".avif":"image/avif"};function j(){return g().join((0,h.n)(),"assets")}async function k(a,b){let c=function(a,b){let c=g().extname(a||"").toLowerCase();if(c&&i[c])return c;if(b){let a=`.${b.split("/")[1]||""}`.toLowerCase();if(i[a])return a}return c||".png"}(a.name,a.type),d=g().posix.join("images",b.date),f=`${b.id}${c}`,h=g().join(j(),d);e().mkdirSync(h,{recursive:!0});let k=Buffer.from(await a.arrayBuffer());return e().writeFileSync(g().join(h,f),k),`/api/asset/${d}/${f}`}function l(a){if(a.some(a=>!a||".."===a||a.includes("\0")||a.includes("/")||a.includes("\\")))return null;let b=j(),c=g().resolve(b,...a);if(c!==b&&!c.startsWith(b+g().sep)||!e().existsSync(c)||!e().statSync(c).isFile())return null;let d=g().extname(c).toLowerCase();return{body:e().readFileSync(c),contentType:i[d]??"application/octet-stream"}}},90880:(a,b,c)=>{c.d(b,{sO:()=>x});var d=c(70806),e=c(39943),f=c(46858),g=c(29021),h=c.n(g),i=c(33873),j=c.n(i);function k(a){let{frontmatter:b}=function(a){let b=a.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);return b?{frontmatter:b[1],body:b[2].replace(/^\n/,"")}:{frontmatter:"",body:a}}(a),c=b.match(/title:[ \t]*(.+)/),d=b.match(/date:[ \t]*(.+)/),e=b.match(/latitude:[ \t]*(.+)/),f=b.match(/longitude:[ \t]*(.+)/),g=b.match(/city:[ \t]*(.+)/),h=b.match(/street:[ \t]*(.+)/),i=b.match(/status:[ \t]*(.+)/),j=b.match(/publishedAt:[ \t]*(.+)/),k=b.match(/lastModified:[ \t]*(.+)/),l=e?.[1]?.trim(),m=f?.[1]?.trim(),n=l?parseFloat(l):NaN,o=m?parseFloat(m):NaN;return{title:c?c[1].trim():"",date:d?d[1].trim():new Date().toISOString(),discussions:function(a){let b=[],c=a.match(/external_discussions:\s*\n([\s\S]*?)(?=\n\w|$)/);if(!c)return b;let d=c[1].split("\n").filter(a=>a.trim()),e={};for(let a of d)a.includes("platform:")?(e.platform&&e.url&&b.push(e),e={platform:a.split(":")[1].trim()}):a.includes("url:")&&e.platform&&(e.url=a.split("url:")[1].trim());return e.platform&&e.url&&b.push(e),b}(b),...l&&!isNaN(n)&&{latitude:n},...m&&!isNaN(o)&&{longitude:o},...g&&g[1].trim()&&{city:g[1].trim()},...h&&h[1].trim()&&{street:h[1].trim()},...i&&{status:i[1].trim()},...j&&{publishedAt:j[1].trim()},...k&&{lastModified:k[1].trim()}}}var l=c(20751),m=c(56995),n=c(8623);class o{abs(a){return j().join((0,m.n)(),a)}get dataDir(){return(0,m.n)()}get blogDir(){return this.abs(l.vH.blogDir())}async getBlogPosts(a=!1){try{if(!h().existsSync(this.blogDir))return console.log("Blog directory does not exist, returning empty array"),[];let b=h().readdirSync(this.blogDir).filter(a=>a.endsWith(".md")&&".gitkeep"!==a),c=[];for(let a of b){let b=await this.getBlogPost(a);b&&c.push(b)}let d=c.sort((a,b)=>new Date(b.date).getTime()-new Date(a.date).getTime());if(a)return d;return d.filter(a=>"published"===a.status)}catch(a){return console.error("Error reading local blog posts:",a),[]}}async getBlogPost(a){try{let b=j().join(this.blogDir,a);if(!h().existsSync(b))return null;let c=h().readFileSync(b,"utf-8"),d=k(c),e=this.getFirstImageURLFrom(c);return{id:a.replace(".md",""),title:d.title||a.replace(".md",""),content:c,imageUrl:e,date:d.date?new Date(d.date).toISOString():new Date().toISOString(),discussions:d.discussions.length>0?d.discussions:void 0,latitude:d.latitude,longitude:d.longitude,city:d.city,street:d.street,status:d.status||"published",publishedAt:d.publishedAt||d.date,lastModified:d.lastModified||d.date||new Date().toISOString()}}catch(b){return console.error(`Error reading blog post ${a}:`,b),null}}async getMemos(){try{let a=this.abs(l.vH.memos());if(!h().existsSync(a))return console.log("memos.json not found, returning empty array"),[];let b=h().readFileSync(a,"utf-8"),c=JSON.parse(b);return Array.isArray(c)?c:[]}catch(a){return console.error("Error reading local memos:",a),[]}}async getSiteConfig(){try{let a=h().readFileSync(this.abs(l.vH.siteConfig()),"utf-8");return JSON.parse(a)}catch{return null}}async getLinks(){try{let a=this.abs(l.vH.siteConfig());if(!h().existsSync(a))return{};let b=h().readFileSync(a,"utf-8");return JSON.parse(b).links||{}}catch(a){return console.warn("Error reading local site config:",a),{}}}async getLikes(){try{let a=this.abs(l.vH.likes());if(!h().existsSync(a))return console.log("likes.json not found, returning empty object"),{};let b=h().readFileSync(a,"utf-8"),c=JSON.parse(b);return"object"==typeof c&&null!==c?c:{}}catch(a){return console.error("Error reading local likes:",a),{}}}async updateLikes(a){try{let b=this.abs(l.vH.likes()),c=JSON.stringify(a,null,2);h().writeFileSync(b,c,"utf-8"),console.log("Updated local likes data")}catch(a){throw console.error("Error updating local likes:",a),Error("Failed to update local likes data")}}async createMemo(a){try{let b=await this.getMemos(),c=[a,...b],d=this.abs(l.vH.memos()),e=JSON.stringify(c,null,2);return h().writeFileSync(d,e,"utf-8"),console.log("Created new memo locally"),a}catch(a){throw console.error("Error creating local memo:",a),Error("Failed to create memo locally")}}async createBlogPost(a){let b=(0,n.GU)(a.title),c=this.abs(l.vH.blogFile(`${b}.md`)),d=(0,n.wM)({title:a.title,date:new Date().toISOString(),content:a.content,status:a.status,location:a.location,discussions:a.discussions});return h().mkdirSync(j().dirname(c),{recursive:!0}),h().writeFileSync(c,d,"utf-8"),b}async updateBlogPost(a,b){let c=this.abs(l.vH.blogPost(a)),d="";try{d=h().readFileSync(c,"utf-8")}catch{}let e=(0,n._x)(d)??new Date().toISOString(),f=void 0!==b.status?b.status:(0,n.KI)(d)??"published",g=(0,n.wM)({title:b.title,date:e,content:b.content,status:f,location:b.location,discussions:b.discussions});return h().mkdirSync(j().dirname(c),{recursive:!0}),h().writeFileSync(c,g,"utf-8"),a}async deleteBlogPost(a){let b=this.abs(l.vH.blogPost(a));try{h().unlinkSync(b)}catch(a){if(a?.code!=="ENOENT")throw a}}async updateMemo(a,b){let c=await this.getMemos(),d=c.findIndex(b=>b.id===a);if(-1===d)throw Error("Memo not found");let e={...c[d],content:b},f=c.map((a,b)=>b===d?e:a);return h().writeFileSync(this.abs(l.vH.memos()),JSON.stringify(f,null,2),"utf-8"),e}async deleteMemo(a){let b=(await this.getMemos()).filter(b=>b.id!==a);h().writeFileSync(this.abs(l.vH.memos()),JSON.stringify(b,null,2),"utf-8")}async getDrafts(){return(await this.getBlogPosts(!0)).filter(a=>"draft"===a.status)}async getAllBlogPosts(){return this.getBlogPosts(!0)}async checkRepositoryHealth(){return h().existsSync(this.dataDir)}getFirstImageURLFrom(a){let b=/(https?:\/\/[^\s]+?\.(?:png|jpg|jpeg|gif|webp))/i.exec(a);if(b){let a=b[1];return a.startsWith("https://github")?`${a}?raw=true`:a}return null}}class p{constructor(a){this.dir=a,this.client=new o}get label(){return`local: ${this.dir}`}canWrite(){return!0}getBlogPosts(a){return this.client.getBlogPosts(a?.includeDrafts??!1)}async getBlogPost(a){return await this.client.getBlogPost(`${a}.md`)??void 0}getMemos(){return this.client.getMemos()}getLinks(){return this.client.getLinks()}getLikes(){return this.client.getLikes()}getSiteConfig(){return this.client.getSiteConfig()}createBlogPost(a){return this.client.createBlogPost(a)}updateBlogPost(a,b){return this.client.updateBlogPost(a,b)}deleteBlogPost(a){return this.client.deleteBlogPost(a)}createMemo(a){return this.client.createMemo(a)}updateMemo(a,b){return this.client.updateMemo(a,b)}deleteMemo(a){return this.client.deleteMemo(a)}updateLikes(a){return this.client.updateLikes(a)}uploadAsset(a){return(0,e.j)(a,{date:new Date().toISOString().split("T")[0],id:Date.now().toString()})}highlights(){return new f.Ik(this.dir)}}var q=c(33577),r=c(94480),s=c(40076);class t{constructor(a,b="cici"){this.accessToken=a,this.repo=b}async getSafeOwner(a){if(a&&"true"!==a)return a;if(this.accessToken)try{let a=new s.E({auth:this.accessToken}),{data:b}=await a.users.getAuthenticated();if(b.login&&"true"!==b.login)return b.login}catch(a){console.warn("Failed to get authenticated user:",a)}return process.env.GITHUB_USERNAME||"metrue"}async getBlogPosts(a,b=!1){let c=this.accessToken?new s.E({auth:this.accessToken}):new s.E,d=await this.getSafeOwner(a);try{let a=await c.repos.getContent({owner:d,repo:this.repo,path:l.iV.blogDir()});if(!Array.isArray(a.data))return console.warn("Unexpected response from GitHub API: data is not an array"),[];let e=(await Promise.all(a.data.filter(a=>"file"===a.type&&".gitkeep"!==a.name&&a.name.endsWith(".md")).map(async a=>this.getBlogPost(a.name,d)))).filter(a=>void 0!==a);if(b&&this.accessToken)return e;return e.filter(a=>"published"===a.status)}catch(a){if(console.error("Error fetching blog posts:",a),a instanceof Error&&"status"in a&&404===a.status)return console.log("Blog directory does not exist, returning empty array"),[];throw a}}async getBlogPost(a,b){let c=this.accessToken?new s.E({auth:this.accessToken}):new s.E,d=await this.getSafeOwner(b),e=await c.repos.getContent({owner:d,repo:this.repo,path:l.iV.blogFile(a)});if("content"in e.data){let b=Buffer.from(e.data.content,"base64").toString("utf-8"),c=k(b);return{id:a.replace(".md",""),title:c.title?decodeURIComponent(c.title):decodeURIComponent(a.replace(".md","")),content:b,imageUrl:(a=>{let b=/(https?:\/\/[^\s]+?\.(?:png|jpg|jpeg|gif|webp))/i.exec(a);if(b){let a=b[1];return a.startsWith("https://github")?`${a}?raw=true`:a}return null})(b),date:c.date?new Date(c.date).toISOString():new Date().toISOString(),discussions:c.discussions.length>0?c.discussions:void 0,latitude:c.latitude,longitude:c.longitude,city:c.city,street:c.street,status:c.status||"published",publishedAt:c.publishedAt||c.date,lastModified:c.lastModified||c.date||new Date().toISOString()}}}async getMemos(a){let b=this.accessToken?new s.E({auth:this.accessToken}):new s.E,c=await this.getSafeOwner(a);try{let a=await b.repos.getContent({owner:c,repo:this.repo,path:l.iV.memos()});if(Array.isArray(a.data)||!("content"in a.data))return[];let d=Buffer.from(a.data.content,"base64").toString("utf-8");return JSON.parse(d)}catch(a){return console.error("Error fetching public memos:",a),[]}}async getLinks(a){let b=this.accessToken?new s.E({auth:this.accessToken}):new s.E,c=await this.getSafeOwner(a);try{let a=await b.repos.getContent({owner:c,repo:this.repo,path:l.iV.siteConfig()});if(Array.isArray(a.data)||!("content"in a.data))return{};let d=Buffer.from(a.data.content,"base64").toString("utf-8");return JSON.parse(d).links||{}}catch(a){return console.warn("Error fetching links:",a),{}}}async getLikes(a){let b=this.accessToken?new s.E({auth:this.accessToken}):new s.E,c=await this.getSafeOwner(a);try{let a=await b.repos.getContent({owner:c,repo:this.repo,path:l.iV.likes()});if(Array.isArray(a.data)||!("content"in a.data))return{};let d=Buffer.from(a.data.content,"base64").toString("utf-8");return JSON.parse(d)}catch(a){if(console.error("Error fetching likes:",a),a instanceof Error&&"status"in a&&404===a.status)return{};throw a}}async updateLikes(a,b){let c=new s.E({auth:this.accessToken}),d=await this.getSafeOwner(b);try{let b;try{let a=await c.repos.getContent({owner:d,repo:this.repo,path:l.iV.likes()});!Array.isArray(a.data)&&"sha"in a.data&&(b=a.data.sha)}catch(a){}await c.repos.createOrUpdateFileContents({owner:d,repo:this.repo,path:l.iV.likes(),message:`Update likes data - ${new Date().toISOString()}`,content:Buffer.from(JSON.stringify(a,null,2)).toString("base64"),...b&&{sha:b}})}catch(a){throw console.error("Error updating likes:",a),Error("Failed to update likes data")}}async getDrafts(a){return(await this.getBlogPosts(a,!0)).filter(a=>"draft"===a.status)}async getAllBlogPosts(a){return this.getBlogPosts(a,!0)}}class u{constructor(a,b="cici"){this.owner=a,this.baseUrl=`https://raw.githubusercontent.com/${a}/${b}/main`}async getBlogPosts(a=!1){try{try{let b=await fetch(`${this.baseUrl}/${l.iV.blogManifest()}`);if(b.ok){let c=await b.json(),d=c.files||[...c.published||[],...c.drafts||[]],e=(await Promise.all(d.map(a=>this.getBlogPost(a)))).filter(a=>null!==a);if(a)return e;return e.filter(a=>"published"===a.status)}}catch{}return console.warn("Blog manifest not found, returning empty array"),[]}catch(a){throw console.error("Error fetching blog posts via raw URLs:",a),a}}async getBlogPost(a){try{let b=await fetch(`${this.baseUrl}/${l.iV.blogFile(a)}`);if(!b.ok){if(404===b.status)return null;throw Error(`HTTP ${b.status}: ${b.statusText}`)}let c=await b.text(),d=k(c);return{id:a.replace(".md",""),title:d.title?decodeURIComponent(d.title.trim()):decodeURIComponent(a.replace(".md","")),content:c,imageUrl:(a=>{let b=/(https?:\/\/[^\s]+?\.(?:png|jpg|jpeg|gif|webp))/i.exec(a);if(b){let a=b[1];return a.startsWith("https://github")?`${a}?raw=true`:a}return null})(c),date:d.date?new Date(d.date.trim()).toISOString():new Date().toISOString(),discussions:d.discussions.length>0?d.discussions:void 0,latitude:d.latitude,longitude:d.longitude,city:d.city,street:d.street,status:d.status||"published",publishedAt:d.publishedAt||d.date,lastModified:d.lastModified||d.date||new Date().toISOString()}}catch(b){return console.error(`Error fetching blog post ${a}:`,b),null}}async getMemos(){try{let a=await fetch(`${this.baseUrl}/${l.iV.memos()}`);if(!a.ok){if(404===a.status)return console.log("memos.json not found, returning empty array"),[];throw Error(`HTTP ${a.status}: ${a.statusText}`)}let b=await a.json();return Array.isArray(b)?b:[]}catch(a){return console.error("Error fetching memos via raw URLs:",a),[]}}async getLinks(){try{let a=await fetch(`${this.baseUrl}/${l.iV.siteConfig()}`);if(!a.ok){if(404===a.status)return{};throw Error(`HTTP ${a.status}: ${a.statusText}`)}return(await a.json()).links||{}}catch(a){return console.warn("Error fetching links via raw URLs:",a),{}}}async getLikes(){try{let a=await fetch(`${this.baseUrl}/${l.iV.likes()}`);if(!a.ok){if(404===a.status)return console.log("likes.json not found, returning empty object"),{};throw Error(`HTTP ${a.status}: ${a.statusText}`)}let b=await a.json();return"object"==typeof b&&null!==b?b:{}}catch(a){return console.error("Error fetching likes via raw URLs:",a),{}}}async getDrafts(){return(await this.getBlogPosts(!0)).filter(a=>"draft"===a.status)}async getAllBlogPosts(){return this.getBlogPosts(!0)}async checkRepositoryHealth(){try{return(await fetch(`${this.baseUrl}/README.md`)).ok}catch{return!1}}}class v extends Error{constructor(a="This cici instance is read-only. Provide a token to enable editing."){super(a),this.name="ReadOnlyError"}}class w{constructor(a){this.owner=a.owner,this.repo=a.repo,this.token=a.token,this.reader=new u(a.owner,a.repo),this.apiReader=a.token?new t(a.token,a.repo):void 0,this.target={owner:a.owner,repo:a.repo}}async fresh(a,b){if(this.apiReader)try{return await a(this.apiReader)}catch(a){console.warn("GitHub API read failed, falling back to raw URL:",a)}return b()}get label(){return`github: ${this.owner}/${this.repo}${this.token?"":" (read-only)"}`}canWrite(){return!!this.token}requireToken(){if(!this.token)throw new v;return this.token}writeOctokit(){return(0,q.QB)(this.requireToken())}getBlogPosts(a){let b=a?.includeDrafts??!1;return this.fresh(a=>a.getBlogPosts(this.owner,b),()=>this.reader.getBlogPosts(b))}async getBlogPost(a){return await this.fresh(b=>b.getBlogPost(`${a}.md`,this.owner),()=>this.reader.getBlogPost(`${a}.md`))??void 0}getMemos(){return this.fresh(a=>a.getMemos(this.owner),()=>this.reader.getMemos())}getLinks(){return this.fresh(a=>a.getLinks(this.owner),()=>this.reader.getLinks())}getLikes(){return this.fresh(a=>a.getLikes(this.owner),()=>this.reader.getLikes())}async getSiteConfig(){if(this.token)try{let a=(0,q.QB)(this.token),b=await a.repos.getContent({owner:this.owner,repo:this.repo,path:l.iV.siteConfig()});if(!Array.isArray(b.data)&&"content"in b.data){let a=Buffer.from(b.data.content,"base64").toString("utf-8");return JSON.parse(a)}}catch(a){console.warn("GitHub API site-config read failed, falling back to raw URL:",a)}try{let a=`https://raw.githubusercontent.com/${this.owner}/${this.repo}/main/${l.iV.siteConfig()}`,b=await fetch(a);if(!b.ok)return null;return await b.json()}catch{return null}}async createBlogPost(a){let b=this.requireToken();return await (0,r.Fd)(a.title,a.content,b,a.discussions,a.location,a.status,this.target),(0,n.GU)(a.title)}async updateBlogPost(a,b){let c=this.requireToken();return await (0,r.s2)(a,b.title,b.content,c,b.discussions,b.location,b.status,this.target),a}async deleteBlogPost(a){await (0,r.m0)(a,this.requireToken(),this.target)}async uploadAsset(a){return(0,r.V6)(a,this.requireToken(),this.target)}async createMemo(a){let b=l.iV.memos(),{data:c,sha:d}=await this.getJsonFile(b),e=Array.isArray(c)?c:[];return await this.putFile(b,JSON.stringify([a,...e],null,2),`Add memo ${a.id}`,d),a}async updateMemo(a,b){let c=l.iV.memos(),{data:d,sha:e}=await this.getJsonFile(c),f=Array.isArray(d)?d:[],g=f.findIndex(b=>b.id===a);if(-1===g)throw Error("Memo not found");let h={...f[g],content:b},i=f.map((a,b)=>b===g?h:a);return await this.putFile(c,JSON.stringify(i,null,2),`Update memo ${a}`,e),h}async deleteMemo(a){let b=l.iV.memos(),{data:c,sha:d}=await this.getJsonFile(b),e=Array.isArray(c)?c:[];await this.putFile(b,JSON.stringify(e.filter(b=>b.id!==a),null,2),`Delete memo ${a}`,d)}async updateLikes(a){let b=l.iV.likes(),{sha:c}=await this.getJsonFile(b);await this.putFile(b,JSON.stringify(a,null,2),"Update likes",c)}highlights(){return new f.jE((0,q.QB)(this.token),this.owner,this.repo)}async getJsonFile(a){let b=this.writeOctokit();try{let c=await b.repos.getContent({owner:this.owner,repo:this.repo,path:a});if(Array.isArray(c.data)||!("content"in c.data))return{data:null};let d=Buffer.from(c.data.content,"base64").toString("utf-8");return{data:JSON.parse(d),sha:c.data.sha}}catch(a){if(a?.status===404)return{data:null};throw a}}putFile(a,b,c,d){return(0,q.sP)(this.writeOctokit(),this.owner,this.repo,a,c,b,d)}}function x(a){var b;return"local"===(b=(0,d.p)(a)).kind?new p(b.dir):new w({owner:b.owner,repo:b.repo,token:b.token})}},94480:(a,b,c)=>{c.d(b,{Fd:()=>o,m0:()=>p,KG:()=>s,s2:()=>q,V6:()=>r});var d=c(40076),e=c(20751);async function f(a,b,c){try{let f,g=new d.E({auth:a}),{data:h}=await g.repos.getContent({owner:b,repo:c,path:e.iV.blogDir()});if(!Array.isArray(h))return void console.error("Expected array of files but got:",typeof h);let i=h.filter(a=>"file"===a.type&&a.name.endsWith(".md")&&".gitkeep"!==a.name).map(a=>a.name).sort();try{let{data:a}=await g.repos.getContent({owner:b,repo:c,path:e.iV.blogManifest()});!Array.isArray(a)&&"sha"in a&&(f=a.sha)}catch(a){console.log("Blog manifest does not exist yet, will create it")}await g.repos.createOrUpdateFileContents({owner:b,repo:c,path:e.iV.blogManifest(),message:"Update blog manifest",content:Buffer.from(JSON.stringify({files:i},null,2)).toString("base64"),sha:f}),console.log("Blog manifest updated successfully with",i.length,"files")}catch(a){console.error("Failed to update blog manifest:",a)}}var g=c(8623),h=c(33873),i=c.n(h),j=c(33577);let k="cici";async function l(a,b,c){try{let{data:d}=await a.repos.get({owner:b,repo:c});if(!d.description){let{data:d}=await a.users.getAuthenticated(),e=d.login;await a.repos.update({owner:b,repo:c,description:`https://tinymind.me/${e}`}),console.log(`Updated repository description to https://tinymind.me/${e}`)}}catch(b){if((0,j.El)(b))await a.repos.createForAuthenticatedUser({name:c,auto_init:!0}),console.log(`Created new repository: ${c}`);else throw b}try{let{data:d}=await a.repos.getContent({owner:b,repo:c,path:"README.md"});if(console.log("README content:",d),"content"in d){let e=Buffer.from(d.content,"base64").toString("utf-8");console.log("README Decoded content:",e.trim()),(""===e.trim()||"# tinymind-blog"===e.trim())&&(await a.repos.createOrUpdateFileContents({owner:b,repo:c,path:"README.md",message:"Update README.md with default content",content:Buffer.from("# cici Blog\n\nWrite blog posts and memos at https://tinymind.me with data stored on GitHub.").toString("base64"),sha:d.sha}),console.log("README.md updated with default content"))}}catch(d){if(d instanceof Error&&"status"in d&&404===d.status){let d=Buffer.from("Write blog posts and memos at https://tinymind.me with data stored on GitHub.").toString("base64");await a.repos.createOrUpdateFileContents({owner:b,repo:c,path:"README.md",message:"Initial commit: Add README.md",content:d})}else throw d}}async function m(a,b,c){try{await (0,j.du)(a,b,c,e.iV.rootKeep(),"Initialize content directory",""),await (0,j.du)(a,b,c,e.iV.blogDirKeep(),"Initialize blog directory",""),await (0,j.du)(a,b,c,e.iV.memos(),"Initialize memos.json","[]")}catch(a){throw console.error("Error ensuring content structure:",a),a}}async function n(a,b,c){await l(a,b,c),await m(a,b,c)}async function o(a,b,c,d=[],h,i="published",k){let l=(0,j.QB)(c),{owner:m,repo:p}=k??await (0,j.pt)(c);await n(l,m,p);let q=`${(0,g.GU)(a)}.md`,r=e.iV.blogFile(q),s=(0,g.wM)({title:a,date:new Date().toISOString(),content:b,status:i,location:h,discussions:d});await l.repos.createOrUpdateFileContents({owner:m,repo:p,path:r,message:`Add blog post: ${a}`,content:Buffer.from(s).toString("base64")}),await f(c,m,p)}async function p(a,b,c){if(console.log("Deleting blog post..."),!b)throw Error("Access token is required");let d=(0,j.QB)(b);try{let{owner:g,repo:h}=c??await (0,j.pt)(b),i=decodeURIComponent(a),k=`${i}.md`,l=e.iV.blogFile(k);console.log(`Attempting to delete file: ${l}`);let m=await d.repos.getContent({owner:g,repo:h,path:l});if(Array.isArray(m.data)||!("sha"in m.data))throw Error("Unexpected response when fetching current blog post");await d.repos.deleteFile({owner:g,repo:h,path:l,message:"Delete blog post",sha:m.data.sha}),console.log("Blog post deleted successfully"),await f(b,g,h)}catch(a){throw console.error("Error deleting blog post:",a),a}}async function q(a,b,c,d,h=[],i,k,l){if(console.log("Updating blog post..."),!d)throw Error("Access token is required");let m=(0,j.QB)(d);try{let{owner:n,repo:o}=l??await (0,j.pt)(d),{content:p,sha:q}=await (0,j._P)(m,n,o,e.iV.blogPost(a)),r=(0,g._x)(p)??new Date().toISOString(),s=void 0!==k?k:(0,g.KI)(p)??"published",t=(0,g.wM)({title:b,date:r,content:c,status:s,location:i,discussions:h});await (0,j.sP)(m,n,o,e.iV.blogPost(a),"Update blog post",t,q),console.log("Blog post updated successfully"),await f(d,n,o)}catch(a){throw console.error("Error updating blog post:",a),a}}async function r(a,b,c){if(console.log("Uploading image..."),!b)throw Error("Access token is required");let d=(0,j.QB)(b);console.log("Octokit instance created");try{let{owner:e,repo:f}=c??await (0,j.pt)(b);console.log("Repo info:",{owner:e,repo:f});let{data:g}=await d.repos.get({owner:e,repo:f}),h=g.default_branch;console.log("Default branch:",h),await n(d,e,f),console.log("GitHub structure initialized");let k=new Date().toISOString().split("T")[0],l=Date.now().toString(),m=i().extname(a.name),o=`${l}${m}`,p=`assets/images/${k}/${o}`;await (0,j.Gl)(d,e,f,`assets/images/${k}`);let q=await (0,j.bB)(a),r=await d.repos.createOrUpdateFileContents({owner:e,repo:f,path:p,message:`Upload image: ${o}`,content:q});console.log(r),console.log("Image uploaded successfully");let s=r.data.content?.download_url;if(s){let a=s.split("/"),b=a[3],c=a[4],d=a.slice(6).join("/");return`https://github.com/${b}/${c}/blob/${h}/${d}?raw=true`}throw Error("Failed to get image URL")}catch(a){throw console.error("Error uploading image:",a),a}}async function s(a){let b,c,d=null;if(a.length>40)try{d=(0,j.QB)(a);let e=await (0,j.pt)(a);b=e.owner,c=e.repo}catch(d){console.error("Error getting authenticated user:",d),b=a,c=k}else b=a,c=k;let e=`https://github.com/${b}.png`,f=`https://github.com/${b}.png`,g=e,h=f;return d&&(g=await t(d,b,c,"assets/icon.jpg",e),h=await t(d,b,c,"assets/icon-144.jpg",f)),{iconPath:g,appleTouchIconPath:h}}async function t(a,b,c,d,e){try{return await a.repos.getContent({owner:b,repo:c,path:d}),`https://github.com/${b}/${c}/blob/main/${d}?raw=true`}catch(a){return console.warn(`No icon found in ${d}, using default:`,e),e}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=9193,exports.ids=[9193],exports.modules={20751:(a,b,c)=>{c.d(b,{iV:()=>g,vH:()=>e});let d="data",e={rootKeep:()=>".gitkeep",blogDir:()=>"blog",blogDirKeep:()=>"blog/.gitkeep",blogPost:a=>`blog/${a}.md`,blogFile:a=>`blog/${a}`,blogManifest:()=>"blog-manifest.json",memos:()=>"memos.json",likes:()=>"likes.json",siteConfig:()=>"site-config.json",highlightsDir:()=>"highlights",highlightsFile:a=>`highlights/${a}.json`},f=a=>`${d}/${a}`,g={root:()=>d,rootKeep:()=>f(e.rootKeep()),blogDir:()=>f(e.blogDir()),blogDirKeep:()=>f(e.blogDirKeep()),blogPost:a=>f(e.blogPost(a)),blogFile:a=>f(e.blogFile(a)),blogManifest:()=>f(e.blogManifest()),memos:()=>f(e.memos()),likes:()=>f(e.likes()),siteConfig:()=>f(e.siteConfig()),highlightsDir:()=>f(e.highlightsDir()),highlightsFile:a=>f(e.highlightsFile(a))}},24516:(a,b,c)=>{c.d(b,{L7:()=>j,x_:()=>e,zl:()=>k});var d=c(657);let e=d.Ik({startOffset:d.ai().int().nonnegative(),endOffset:d.ai().int().nonnegative(),exact:d.Yj().min(1).max(1e3),prefix:d.Yj().max(64),suffix:d.Yj().max(64)}).refine(a=>a.endOffset>=a.startOffset,{message:"endOffset must be >= startOffset"}),f=d.g1(d.Yj(),d.YO(d.Yj())),g=d.k5(["ios","android","web"]),h=d.Ik({id:d.Yj().min(1).max(64),parentId:d.Yj().min(1).max(64).nullable(),body:d.Yj().min(1).max(2e3),authorName:d.Yj().max(40).nullable(),fingerprint:d.Yj().min(1).max(128),country:d.Yj().max(8),platform:g,reactions:f,resolved:d.zM(),createdAt:d.Yj().datetime(),hidden:d.zM(),hiddenReason:d.Yj().max(200).optional()}),i=d.Ik({id:d.Yj().min(1).max(64),anchor:e,thread:d.YO(h).min(1),resolved:d.zM(),createdAt:d.Yj().datetime()}),j=d.Ik({postId:d.Yj().min(1),highlights:d.YO(i),schemaVersion:d.eu(1)});function k(a){return{postId:a,highlights:[],schemaVersion:1}}},33910:(a,b,c)=>{c.d(b,{Qh:()=>h,lo:()=>j,u8:()=>g});var d=c(66147),e=c(70806),f=c(56995);async function g(a){let b=(0,e.p)();if("local"===b.kind)return!0;let c=b.owner;if(!c)return!1;let f=a??await (0,d.H)();if(f?.user?.username)return f.user.username===c;if(f?.accessToken){let a=await j(f.accessToken);if(a)return a===c}return!1}async function h(a){return!!(0,f.J)()||((0,e.O)()?g(a):!!process.env.CICI_TOKEN)}let i=new Map;async function j(a){let b=i.get(a);if(b&&b.expiresAt>Date.now())return b.login;try{let b=await fetch("https://api.github.com/user",{headers:{Authorization:`Bearer ${a}`,Accept:"application/vnd.github+json"}});if(!b.ok)return null;let c=await b.json(),d="string"==typeof c.login?c.login:null;return d&&i.set(a,{login:d,expiresAt:Date.now()+6e5}),d}catch(a){return console.error("[authz] fetchGithubLogin failed",a),null}}},46858:(a,b,c)=>{c.d(b,{Ik:()=>o,UU:()=>q,jE:()=>p});var d=c(29021),e=c(33873),f=c.n(e),g=c(40076),h=c(24516),i=c(20751),j=c(70806);let k=new Map;function l(a){return i.iV.highlightsFile(a)}function m(a){if(!a||0===a.length||a.length>200||a.includes("/")||a.includes("\\")||a.includes("\0")||a.includes("..")||a.startsWith("."))throw Error(`Invalid postId: ${a}`)}function n(a){if("object"==typeof a&&null!==a&&"status"in a){let b=a.status;return"number"==typeof b?b:void 0}}class o{constructor(a){this.rootDir=a}absPath(a){return f().join(this.rootDir,i.vH.highlightsFile(a))}async load(a){m(a);try{let b=await d.promises.readFile(this.absPath(a),"utf-8");return{data:h.L7.parse(JSON.parse(b)),sha:null}}catch(b){if("ENOENT"===b?.code)return{data:(0,h.zl)(a),sha:null};throw b}}async save(a,b,c,e){m(a);let g=h.L7.parse(b),i=this.absPath(a);return await d.promises.mkdir(f().dirname(i),{recursive:!0}),await d.promises.writeFile(i,JSON.stringify(g,null,2),"utf-8"),{sha:""}}}class p{constructor(a,b,c="cici",d=!1){this.octokit=a,this.owner=b,this.repo=c,this.readOnly=d}async load(a){m(a);let b=k.get(a);if(b&&b.expiresAt>Date.now())return{data:b.data,sha:b.sha};let c=await this.readFile(a);if(!c){let b=(0,h.zl)(a);return k.set(a,{data:b,sha:null,expiresAt:Date.now()+3e4}),{data:b,sha:null}}let d=h.L7.parse(JSON.parse(c.content));return k.set(a,{data:d,sha:c.sha,expiresAt:Date.now()+3e4}),{data:d,sha:c.sha}}async save(a,b,c,d){if(m(a),this.readOnly)throw Error("Highlights are read-only: no write token available. Sign in as the repo owner to add or moderate inline comments.");let e=h.L7.parse(b),f=Buffer.from(JSON.stringify(e,null,2)).toString("base64"),g=0,i=c;for(;g<3;)try{let b=await this.octokit.repos.createOrUpdateFileContents({owner:this.owner,repo:this.repo,path:l(a),message:d,content:f,...i?{sha:i}:{}}),c=b.data.content?.sha??"";return k.set(a,{data:e,sha:c,expiresAt:Date.now()+3e4}),{sha:c}}catch(c){let b=n(c);if(409===b||422===b){k.delete(a),g++;let b=await this.readFile(a);i=b?.sha??null;continue}throw c}throw Error("Save failed after 3 retries due to write contention")}async readFile(a){try{let b=(await this.octokit.repos.getContent({owner:this.owner,repo:this.repo,path:l(a)})).data;if(Array.isArray(b)||"file"!==b.type)return null;return{content:Buffer.from(b.content,"base64").toString("utf-8"),sha:b.sha}}catch(a){if(404===n(a))return null;throw a}}}function q(a={}){let b=(0,j.p)(a.ownerToken);if("local"===b.kind)return new o(b.dir);let c=a.ownerToken??b.token??process.env.HIGHLIGHTS_GH_TOKEN;return new p(c?new g.E({auth:c}):new g.E,b.owner,b.repo,!c)}},56995:(a,b,c)=>{c.d(b,{J:()=>g,n:()=>h});var d=c(33873),e=c.n(d),f=c(70806);function g(){return"local"===(0,f.p)().kind}function h(){let a=process.env.CICI_DIR;return a?e().resolve(a):e().join(process.cwd(),"sample-content")}},66147:(a,b,c)=>{c.d(b,{H:()=>e,N:()=>f});var d=c(1093);async function e(){let a=await (0,d.getServerSession)(f);return a?(a.accessToken?console.log("Session found with access token"):console.log("Session found, but no access token"),a):(console.log("No session found"),null)}let f={providers:[(0,c(53811).A)({clientId:process.env.GITHUB_ID,clientSecret:process.env.GITHUB_SECRET,authorization:{params:{scope:"public_repo workflow"}}})],callbacks:{async jwt({token:a,account:b,profile:c}){b&&b.access_token&&(a.accessToken=b.access_token);let d=c&&"object"==typeof c&&"login"in c?c.login:void 0,e=b&&"object"==typeof b&&"username"in b?b.username:void 0;return(d||e)&&(a.username=d??e),a},session:async({session:a,token:b})=>(a.accessToken=b.accessToken,a.user&&(a.user.username=b.username),a)},secret:process.env.NEXTAUTH_SECRET,debug:!1}},70806:(a,b,c)=>{c.d(b,{O:()=>g,p:()=>i});var d=c(33873),e=c.n(d);let f="cici";function g(){return!!process.env.GITHUB_ID}let h=!1;function i(a){let b=process.env.CICI_DIR;if(b)return{kind:"local",dir:e().resolve(b)};let c=process.env.CICI_REPO;if(c){let[b,d]=c.split("/");if(!b)throw Error(`Invalid CICI_REPO "${c}" — expected "owner/name".`);return{kind:"github",owner:b,repo:d||f,token:g()?(process.env.CICI_TOKEN&&!h&&(h=!0,console.warn("[cici] CICI_TOKEN is set but ignored in hosted (OAuth) mode — writes are authorized per-visitor via GitHub OAuth and restricted to the repo owner. Ensure your content repo is public so reads work without a token, and remove CICI_TOKEN.")),a||void 0):process.env.CICI_TOKEN||a||void 0}}return{kind:"github",owner:process.env.GITHUB_USERNAME||"metrue",repo:f,token:a||void 0}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-e8e1e36ebd8ab410.js" defer=""></script><script src="/_next/static/chunks/framework-b9fd9bcc3ecde907.js" defer=""></script><script src="/_next/static/chunks/main-9897d09f6acb6f4b.js" defer=""></script><script src="/_next/static/chunks/pages/_app-4b3fb5e477a0267f.js" defer=""></script><script src="/_next/static/chunks/pages/_error-c970d8b55ace1b48.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-e8e1e36ebd8ab410.js" defer=""></script><script src="/_next/static/chunks/framework-b9fd9bcc3ecde907.js" defer=""></script><script src="/_next/static/chunks/main-9897d09f6acb6f4b.js" defer=""></script><script src="/_next/static/chunks/pages/_app-4b3fb5e477a0267f.js" defer=""></script><script src="/_next/static/chunks/pages/_error-c970d8b55ace1b48.js" defer=""></script><script src="/_next/static/-AMzTDPSsnBej5CTn9eL0/_buildManifest.js" defer=""></script><script src="/_next/static/-AMzTDPSsnBej5CTn9eL0/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"-AMzTDPSsnBej5CTn9eL0","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"node":{},"edge":{},"encryptionKey":"
|
|
1
|
+
{"node":{},"edge":{},"encryptionKey":"wLmnQ6wyEeX2DEc1vm5rKtD0Ed5OxCizR4yPYCM+9Ts="}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*
|
|
2
2
|
! tailwindcss v3.4.11 | MIT License | https://tailwindcss.com
|
|
3
|
-
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--background:#fdfdfd;--foreground:#303030;--card:#fdfdfd;--card-foreground:#303030;--popover:#fdfdfd;--popover-foreground:#303030;--primary:#2357cd;--primary-foreground:#fdfdfd;--secondary:#f5f5f5;--secondary-foreground:#404040;--muted:#f5f5f5;--muted-foreground:#707070;--accent:#f5f5f5;--accent-foreground:#404040;--destructive:#652222;--destructive-foreground:#fdfdfd;--border:#ccc;--input:#ccc;--ring:#2357cd;--radius:0.4rem}*{border-color:hsl(var(--border));font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}body{background-color:hsl(var(--background));color:hsl(var(--foreground));line-height:1.62em;margin:0;font-size:18px;word-wrap:break-word}a{color:hsl(var(--primary));text-underline-offset:3px;text-decoration-thickness:.5px}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\201C""\201D""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows)/10%),0 3px 0 rgb(var(--tw-prose-kbd-shadows)/10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:17 24 39;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgb(0 0 0/50%);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-sm{font-size:.875rem;line-height:1.7142857}.prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em}.prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;line-height:1.5555556;margin-top:.8888889em;margin-bottom:.8888889em}.prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.1111111em}.prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.1428571em;margin-top:0;margin-bottom:.8em;line-height:1.2}.prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.4285714em;margin-top:1.6em;margin-bottom:.8em;line-height:1.4}.prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;margin-top:1.5555556em;margin-bottom:.4444444em;line-height:1.5555556}.prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.4285714em;margin-bottom:.5714286em;line-height:1.4285714}.prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;border-radius:.3125rem;padding-top:.1428571em;padding-inline-end:.3571429em;padding-bottom:.1428571em;padding-inline-start:.3571429em}.prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em}.prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.6666667;margin-top:1.6666667em;margin-bottom:1.6666667em;border-radius:.25rem;padding-top:.6666667em;padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-inline-start:1.5714286em}.prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-inline-start:1.5714286em}.prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;margin-bottom:.2857143em}.prose-sm :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4285714em}.prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4285714em}.prose-sm :where(.prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5714286em;margin-bottom:.5714286em}.prose-sm :where(.prose-sm>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(.prose-sm>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5714286em;margin-bottom:.5714286em}.prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em}.prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;padding-inline-start:1.5714286em}.prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2.8571429em;margin-bottom:2.8571429em}.prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.5}.prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.6666667em;padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}.prose-sm :where(.prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-lg{font-size:1.125rem;line-height:1.7777778}.prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6666667em;margin-bottom:1.6666667em;padding-inline-start:1em}.prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;border-radius:.3125rem;padding-top:.2222222em;padding-inline-end:.4444444em;padding-bottom:.2222222em;padding-inline-start:.4444444em}.prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8666667em}.prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding-top:1em;padding-inline-end:1.5em;padding-bottom:1em;padding-inline-start:1.5em}.prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;margin-bottom:.6666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(.prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;padding-inline-start:1.5555556em}.prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3.1111111em;margin-bottom:3.1111111em}.prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.75em;padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5;margin-top:1em}.prose-lg :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-gray{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:17 24 39;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgb(0 0 0/50%);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.-left-\[9999px\]{left:-9999px}.-top-\[9999px\]{top:-9999px}.bottom-0{bottom:0}.bottom-9{bottom:2.25rem}.left-0{left:0}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.right-1{right:.25rem}.right-3{right:.75rem}.right-4{right:1rem}.right-9{right:2.25rem}.top-0{top:0}.top-1{top:.25rem}.top-2\.5{top:.625rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[100\]{z-index:100}.m-auto{margin:auto}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.-ml-1{margin-left:-.25rem}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.\!inline{display:inline!important}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-0{height:0}.h-10{height:2.5rem}.h-12{height:3rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-screen{max-height:100vh}.min-h-\[400px\]{min-height:400px}.min-h-\[60px\]{min-height:60px}.min-h-screen{min-height:100vh}.w-0{width:0}.w-12{width:3rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[350px\]{width:350px}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[120px\]{min-width:120px}.min-w-\[8rem\]{min-width:8rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-\[-50\%\],.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-14>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(3.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3.5rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.75rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity))}.border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity))}.border-border{border-color:hsl(var(--border))}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/30{border-color:hsl(var(--destructive)/.3)}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-input{border-color:hsl(var(--input))}.border-muted-foreground{border-color:hsl(var(--muted-foreground))}.border-muted-foreground\/40{border-color:hsl(var(--muted-foreground)/.4)}.border-primary{border-color:hsl(var(--primary))}.border-primary\/60{border-color:hsl(var(--primary)/.6)}.border-transparent{border-color:transparent}.border-yellow-400\/60{border-color:rgb(250 204 21/.6)}.border-yellow-500{--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity))}.bg-\[\#f6f8fa\]{--tw-bg-opacity:1;background-color:rgb(246 248 250/var(--tw-bg-opacity))}.bg-background{background-color:hsl(var(--background))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.bg-black\/80{background-color:rgb(0 0 0/.8)}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive)/.1)}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/40{background-color:hsl(var(--muted)/.4)}.bg-muted\/70{background-color:hsl(var(--muted)/.7)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary)/.1)}.bg-primary\/15{background-color:hsl(var(--primary)/.15)}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-yellow-200\/40{background-color:rgb(254 240 138/.4)}.bg-yellow-300\/60{background-color:rgb(253 224 71/.6)}.bg-opacity-50{--tw-bg-opacity:0.5}.bg-opacity-90{--tw-bg-opacity:0.9}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-black\/30{--tw-gradient-from:rgb(0 0 0/0.3) var(--tw-gradient-from-position);--tw-gradient-to:rgb(0 0 0/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-emerald-500{fill:#10b981}.fill-primary{fill:hsl(var(--primary))}.fill-red-500{fill:#ef4444}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-20{padding-bottom:5rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-6{padding-right:1.5rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-10{padding-top:2.5rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[0\.9375rem\]{font-size:.9375rem}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.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)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-normal{letter-spacing:0}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground)/.5)}.text-foreground\/80{color:hsl(var(--foreground)/.8)}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.underline-offset-4{text-underline-offset:4px}.placeholder-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0/0.1),0 1px 2px -1px rgb(0 0 0/0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgb(0 0 0/0.1),0 2px 4px -2px rgb(0 0 0/0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgb(0 0 0/0.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgb(0 0 0/0.1),0 8px 10px -6px rgb(0 0 0/0.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-0,.ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-black\/\[0\.06\]{--tw-ring-color:rgb(0 0 0/0.06)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-200{animation-duration:.2s}.memos-masonry{display:flex;margin-left:-1rem;width:auto}.memos-masonry-col{flex:1 1 0;min-width:0;padding-left:1rem;background-clip:padding-box}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05}.hover\:scale-105:hover,.hover\:scale-110:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/60:hover{background-color:hsl(var(--muted)/.6)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:bg-yellow-200\/70:hover{background-color:rgb(254 240 138/.7)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.hover\:text-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.hover\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:underline-offset-4:hover{text-underline-offset:4px}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.hover\:shadow-lg:hover,.hover\:shadow-md:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgb(0 0 0/0.1),0 2px 4px -2px rgb(0 0 0/0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.focus\:border-blue-500:focus{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity))}.focus\:border-primary:focus{border-color:hsl(var(--primary))}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-gray-100:focus{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-1:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity))}.focus\:ring-primary\/40:focus{--tw-ring-color:hsl(var(--primary)/0.4)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:hsl(var(--background))}.active\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group[open] .group-open\:inline,.group\/replies[open] .group-open\/replies\:inline{display:inline}.group[open] .group-open\:hidden,.group\/replies[open] .group-open\/replies\:hidden{display:none}.group:hover .group-hover\:text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity))}.group:hover .group-hover\:text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted)/.4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity))}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive)/.3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity:1;color:rgb(254 242 242/var(--tw-text-opacity))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color:#dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x:var(--radix-toast-swipe-end-x)}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end],.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x:var(--radix-toast-swipe-move-x)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity:0.8}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y:-100%}.prose-p\:my-3 :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:.75rem;margin-bottom:.75rem}.prose-img\:my-0 :is(:where(img):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:0;margin-bottom:0}.dark\:border-gray-700\/70:is(.dark *){border-color:rgb(55 65 81/.7)}.dark\:border-gray-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity))}.dark\:ring-white\/10:is(.dark *){--tw-ring-color:rgb(255 255 255/0.1)}.dark\:hover\:text-gray-100:hover:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}.dark\:hover\:text-gray-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.group:hover .dark\:group-hover\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}@media (min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-left{text-align:left}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y:100%}}@media (min-width:768px){.md\:max-w-\[420px\]{max-width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-2xl{font-size:1.5rem;line-height:2rem}}@media (min-width:1024px){.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:max-w-3xl{max-width:48rem}.lg\:max-w-6xl{max-width:72rem}.lg\:flex-1{flex:1 1 0%}.lg\:items-start{align-items:flex-start}.lg\:gap-12{gap:3rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}}.\[\&\+div\]\:text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}
|
|
3
|
+
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--background:#fdfdfd;--foreground:#303030;--card:#fdfdfd;--card-foreground:#303030;--popover:#fdfdfd;--popover-foreground:#303030;--primary:#2357cd;--primary-foreground:#fdfdfd;--secondary:#f5f5f5;--secondary-foreground:#404040;--muted:#f5f5f5;--muted-foreground:#707070;--accent:#f5f5f5;--accent-foreground:#404040;--destructive:#652222;--destructive-foreground:#fdfdfd;--border:#ccc;--input:#ccc;--ring:#2357cd;--radius:0.4rem}*{border-color:hsl(var(--border));font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}body{background-color:hsl(var(--background));color:hsl(var(--foreground));line-height:1.62em;margin:0;font-size:18px;word-wrap:break-word}a{color:hsl(var(--primary));text-underline-offset:3px;text-decoration-thickness:.5px}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\201C""\201D""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows)/10%),0 3px 0 rgb(var(--tw-prose-kbd-shadows)/10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:17 24 39;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgb(0 0 0/50%);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-sm{font-size:.875rem;line-height:1.7142857}.prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em}.prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;line-height:1.5555556;margin-top:.8888889em;margin-bottom:.8888889em}.prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.1111111em}.prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.1428571em;margin-top:0;margin-bottom:.8em;line-height:1.2}.prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.4285714em;margin-top:1.6em;margin-bottom:.8em;line-height:1.4}.prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;margin-top:1.5555556em;margin-bottom:.4444444em;line-height:1.5555556}.prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.4285714em;margin-bottom:.5714286em;line-height:1.4285714}.prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;border-radius:.3125rem;padding-top:.1428571em;padding-inline-end:.3571429em;padding-bottom:.1428571em;padding-inline-start:.3571429em}.prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em}.prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.6666667;margin-top:1.6666667em;margin-bottom:1.6666667em;border-radius:.25rem;padding-top:.6666667em;padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-inline-start:1.5714286em}.prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-inline-start:1.5714286em}.prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;margin-bottom:.2857143em}.prose-sm :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4285714em}.prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4285714em}.prose-sm :where(.prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5714286em;margin-bottom:.5714286em}.prose-sm :where(.prose-sm>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(.prose-sm>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5714286em;margin-bottom:.5714286em}.prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em}.prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;padding-inline-start:1.5714286em}.prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2.8571429em;margin-bottom:2.8571429em}.prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.5}.prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.6666667em;padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}.prose-sm :where(.prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-lg{font-size:1.125rem;line-height:1.7777778}.prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6666667em;margin-bottom:1.6666667em;padding-inline-start:1em}.prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;border-radius:.3125rem;padding-top:.2222222em;padding-inline-end:.4444444em;padding-bottom:.2222222em;padding-inline-start:.4444444em}.prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8666667em}.prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding-top:1em;padding-inline-end:1.5em;padding-bottom:1em;padding-inline-start:1.5em}.prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;margin-bottom:.6666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(.prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;padding-inline-start:1.5555556em}.prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3.1111111em;margin-bottom:3.1111111em}.prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.75em;padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5;margin-top:1em}.prose-lg :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-gray{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:17 24 39;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgb(0 0 0/50%);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.-left-\[9999px\]{left:-9999px}.-top-\[9999px\]{top:-9999px}.bottom-0{bottom:0}.bottom-9{bottom:2.25rem}.left-0{left:0}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.right-1{right:.25rem}.right-3{right:.75rem}.right-4{right:1rem}.right-9{right:2.25rem}.top-0{top:0}.top-1{top:.25rem}.top-2\.5{top:.625rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[100\]{z-index:100}.m-auto{margin:auto}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.-ml-1{margin-left:-.25rem}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.\!inline{display:inline!important}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-0{height:0}.h-10{height:2.5rem}.h-12{height:3rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-screen{max-height:100vh}.min-h-\[400px\]{min-height:400px}.min-h-\[60px\]{min-height:60px}.min-h-screen{min-height:100vh}.w-0{width:0}.w-12{width:3rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[350px\]{width:350px}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[120px\]{min-width:120px}.min-w-\[8rem\]{min-width:8rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-\[-50\%\],.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-14>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(3.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3.5rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.75rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity))}.border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity))}.border-border{border-color:hsl(var(--border))}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/30{border-color:hsl(var(--destructive)/.3)}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-input{border-color:hsl(var(--input))}.border-muted-foreground{border-color:hsl(var(--muted-foreground))}.border-muted-foreground\/40{border-color:hsl(var(--muted-foreground)/.4)}.border-primary{border-color:hsl(var(--primary))}.border-primary\/60{border-color:hsl(var(--primary)/.6)}.border-transparent{border-color:transparent}.border-yellow-400\/60{border-color:rgb(250 204 21/.6)}.border-yellow-500{--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity))}.bg-\[\#f6f8fa\]{--tw-bg-opacity:1;background-color:rgb(246 248 250/var(--tw-bg-opacity))}.bg-background{background-color:hsl(var(--background))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.bg-black\/80{background-color:rgb(0 0 0/.8)}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive)/.1)}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/40{background-color:hsl(var(--muted)/.4)}.bg-muted\/70{background-color:hsl(var(--muted)/.7)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary)/.1)}.bg-primary\/15{background-color:hsl(var(--primary)/.15)}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-yellow-200\/40{background-color:rgb(254 240 138/.4)}.bg-yellow-300\/60{background-color:rgb(253 224 71/.6)}.bg-opacity-50{--tw-bg-opacity:0.5}.bg-opacity-90{--tw-bg-opacity:0.9}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-black\/30{--tw-gradient-from:rgb(0 0 0/0.3) var(--tw-gradient-from-position);--tw-gradient-to:rgb(0 0 0/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-emerald-500{fill:#10b981}.fill-primary{fill:hsl(var(--primary))}.fill-red-500{fill:#ef4444}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-20{padding-bottom:5rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-6{padding-right:1.5rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-10{padding-top:2.5rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[0\.9375rem\]{font-size:.9375rem}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.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)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-normal{letter-spacing:0}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground)/.5)}.text-foreground\/80{color:hsl(var(--foreground)/.8)}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.underline-offset-4{text-underline-offset:4px}.placeholder-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0/0.1),0 1px 2px -1px rgb(0 0 0/0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgb(0 0 0/0.1),0 2px 4px -2px rgb(0 0 0/0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgb(0 0 0/0.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgb(0 0 0/0.1),0 8px 10px -6px rgb(0 0 0/0.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-0,.ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-black\/\[0\.06\]{--tw-ring-color:rgb(0 0 0/0.06)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-200{animation-duration:.2s}.memos-masonry{display:flex;margin-left:-1rem;width:auto}.memos-masonry-col{flex:1 1 0;min-width:0;padding-left:1rem;background-clip:padding-box}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05}.hover\:scale-105:hover,.hover\:scale-110:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/60:hover{background-color:hsl(var(--muted)/.6)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:bg-yellow-200\/70:hover{background-color:rgb(254 240 138/.7)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.hover\:text-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.hover\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:underline-offset-4:hover{text-underline-offset:4px}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.hover\:shadow-lg:hover,.hover\:shadow-md:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgb(0 0 0/0.1),0 2px 4px -2px rgb(0 0 0/0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.focus\:border-blue-500:focus{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity))}.focus\:border-primary:focus{border-color:hsl(var(--primary))}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-gray-100:focus{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-1:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity))}.focus\:ring-primary\/40:focus{--tw-ring-color:hsl(var(--primary)/0.4)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:hsl(var(--background))}.active\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group[open] .group-open\:inline,.group\/replies[open] .group-open\/replies\:inline{display:inline}.group[open] .group-open\:hidden,.group\/replies[open] .group-open\/replies\:hidden{display:none}.group:hover .group-hover\:text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity))}.group:hover .group-hover\:text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted)/.4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity))}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive)/.3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity:1;color:rgb(254 242 242/var(--tw-text-opacity))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color:#dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x:var(--radix-toast-swipe-end-x)}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end],.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x:var(--radix-toast-swipe-move-x)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity:0.8}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y:-100%}.prose-p\:my-3 :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:.75rem;margin-bottom:.75rem}.prose-img\:my-0 :is(:where(img):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:0;margin-bottom:0}.dark\:border-gray-700\/70:is(.dark *){border-color:rgb(55 65 81/.7)}.dark\:border-gray-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity))}.dark\:ring-white\/10:is(.dark *){--tw-ring-color:rgb(255 255 255/0.1)}.dark\:hover\:text-gray-100:hover:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}.dark\:hover\:text-gray-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.group:hover .dark\:group-hover\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}@media (min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-left{text-align:left}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y:100%}}@media (min-width:768px){.md\:max-w-\[420px\]{max-width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-2xl{font-size:1.5rem;line-height:2rem}}@media (min-width:1024px){.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:max-w-3xl{max-width:48rem}.lg\:max-w-6xl{max-width:72rem}.lg\:flex-1{flex:1 1 0%}.lg\:items-start{align-items:flex-start}.lg\:gap-12{gap:3rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}}.\[\&\+div\]\:text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}
|