extension-develop 4.1.34 → 4.1.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/206~0.mjs +33 -0
  2. package/dist/363~0.mjs +1 -1
  3. package/dist/469~0.mjs +98 -16
  4. package/dist/519~0.mjs +12 -1
  5. package/dist/771~0.mjs +49 -8
  6. package/dist/832~0.mjs +127 -25
  7. package/dist/840~0.mjs +215 -54
  8. package/dist/846~0.mjs +16 -14
  9. package/dist/852~0.mjs +2 -0
  10. package/dist/88~0.mjs +10 -1
  11. package/dist/command-preview.d.ts +2 -0
  12. package/dist/contract/codes.json +9 -0
  13. package/dist/contracts-entry.d.ts +1 -1
  14. package/dist/contracts.mjs +109 -1
  15. package/dist/css-parse-guard-loader.mjs +7 -2
  16. package/dist/dev-server/control-bridge/log-rule.d.ts +38 -0
  17. package/dist/dev-server/control-bridge/logs-query.d.ts +2 -55
  18. package/dist/dev-server/control-bridge/producer-runtime.d.ts +1 -1
  19. package/dist/dev-server/html-refresh.d.ts +10 -0
  20. package/dist/dev-server/port-manager.d.ts +14 -0
  21. package/dist/dev-server/reserved-listen.d.ts +9 -0
  22. package/dist/dev-server/session-restart.d.ts +1 -1
  23. package/dist/dev-server~0.mjs +155 -30
  24. package/dist/extension-js-devtools/build-stamp.json +2 -2
  25. package/dist/extension-js-devtools/chrome/background/service_worker.js +2 -2
  26. package/dist/extension-js-devtools/chrome/pages/welcome.css +1 -1
  27. package/dist/extension-js-devtools/chromium/background/service_worker.js +2 -2
  28. package/dist/extension-js-devtools/chromium/pages/welcome.css +1 -1
  29. package/dist/extension-js-devtools/edge/background/service_worker.js +2 -2
  30. package/dist/extension-js-devtools/edge/pages/welcome.css +1 -1
  31. package/dist/extension-js-devtools/firefox/background/scripts.js +2 -2
  32. package/dist/extension-js-devtools/firefox/pages/welcome.css +1 -1
  33. package/dist/extension-js-theme/build-stamp.json +2 -2
  34. package/dist/feature-scripts-classic-concat-loader.js +45 -2
  35. package/dist/feature-scripts-classic-concat-loader.mjs +45 -2
  36. package/dist/feature-scripts-classic-traced-globals-loader.mjs +111 -0
  37. package/dist/feature-scripts-content-script-wrapper.js +10 -6
  38. package/dist/feature-scripts-content-script-wrapper.mjs +10 -6
  39. package/dist/lib/config-loader.d.ts +1 -0
  40. package/dist/lib/css-minimizer-options.d.ts +8 -0
  41. package/dist/lib/develop-context.d.ts +1 -1
  42. package/dist/lib/live-dev-session.d.ts +5 -0
  43. package/dist/lib/messages.d.ts +9 -1
  44. package/dist/lib/messaging.d.ts +2 -0
  45. package/dist/lib/package-manager.d.ts +7 -1
  46. package/dist/lib/paths.d.ts +1 -0
  47. package/dist/lib/project.d.ts +10 -2
  48. package/dist/lib/remote-archive.d.ts +11 -0
  49. package/dist/lib/rename-with-retry.d.ts +6 -0
  50. package/dist/lib/session-paths.d.ts +1 -0
  51. package/dist/lib/zip.d.ts +5 -1
  52. package/dist/plugin-browsers/index.d.ts +2 -0
  53. package/dist/plugin-css/css-in-content-script-loader.d.ts +1 -1
  54. package/dist/plugin-css/css-in-html-loader.d.ts +1 -1
  55. package/dist/plugin-css/css-lib/build-css-rules.d.ts +2 -1
  56. package/dist/plugin-css/css-lib/verbatim-css.d.ts +1 -0
  57. package/dist/plugin-js-frameworks/js-tools/typescript.d.ts +1 -0
  58. package/dist/plugin-playwright/index.d.ts +3 -0
  59. package/dist/plugin-special-folders/messages.d.ts +1 -0
  60. package/dist/plugin-special-folders/warn-upon-folder-changes.d.ts +1 -1
  61. package/dist/plugin-web-extension/feature-html/html-lib/options-dialog-floor.d.ts +7 -0
  62. package/dist/plugin-web-extension/feature-html/html-lib/patch-html.d.ts +3 -1
  63. package/dist/plugin-web-extension/feature-html/steps/update-html-file.d.ts +1 -0
  64. package/dist/plugin-web-extension/feature-manifest/steps/apply-dev-defaults-lib/dev-injected-hosts.d.ts +4 -1
  65. package/dist/plugin-web-extension/feature-scripts/messages.d.ts +1 -0
  66. package/dist/plugin-web-extension/feature-scripts/steps/add-content-script-wrapper/classic-concat-loader.d.ts +1 -0
  67. package/dist/plugin-web-extension/feature-scripts/steps/add-content-script-wrapper/content-script-wrapper.d.ts +1 -0
  68. package/dist/plugin-web-extension/feature-scripts/steps/add-content-script-wrapper/index.d.ts +1 -0
  69. package/dist/plugin-web-extension/feature-scripts/steps/classic-traced-globals-loader.d.ts +7 -0
  70. package/dist/plugin-web-extension/feature-scripts/steps/warn-unshipped-runtime-assets.d.ts +32 -0
  71. package/dist/plugin-web-extension/feature-web-resources/web-resources-lib/messages.d.ts +1 -0
  72. package/dist/plugin-web-extension/shared/discover-runtime-surfaces.d.ts +2 -0
  73. package/dist/plugin-web-extension/shared/script-graph.d.ts +4 -0
  74. package/dist/rspack-config~0.mjs +799 -196
  75. package/dist/types.d.ts +7 -1
  76. package/dist/zip~0.mjs +14 -7
  77. package/package.json +3 -3
  78. package/dist/plugin-css/css-lib/is-content-script.d.ts +0 -2
@@ -7,7 +7,6 @@ import { RspackDevServer } from "@rspack/dev-server";
7
7
  import { merge } from "webpack-merge";
8
8
  import { humanLine, isDebug, CODES } from "./852~0.mjs";
9
9
  import { runnerCleanupError, autoExitForceKill, sanitize, attachEmulatorFileIndex, extensionJsRunnerError, devServerStartTimeout, resolveEmulatorOrigin, autoExitTriggered, buildEmulatorViewerUrl, runnerUncaughtException, shouldWarnPortConflict, DEV_COMMAND_DEFAULTS, ActionsFileWriter, runnerUnhandledRejection, createPlaywrightMetadataWriter, normalizeWebOrigin, createEmulatorFileIndexHolder, LogRingBuffer, isSameWebOrigin, getSpecialFoldersDataForProjectRoot, createEmulatorFilesMiddlewareEntry, devServerHostRefused, startControlServer, portInUse, mergeOptionLayers, controlBridgeUnavailable, devServerRestarting, BridgeBroker, autoExitModeEnabled, emulatorViewerUrl, detectLiveDevSessionOwner, getSessionRunId, LogsFileWriter, resolveCompanionExtensionsConfig } from "./832~0.mjs";
10
- import { hasProjectDependency, findNearestProjectManifestDirSync } from "./731~0.mjs";
11
10
  import { getDistPath, codedError, anotherDevSessionRefused, asAbsolute } from "./469~0.mjs";
12
11
  import { publicFolderOrDefault } from "./105~0.mjs";
13
12
  import { loadCommandConfig, loadBrowserConfig, loadConfigResolvedHook, loadProjectConfigDefaults, loadCustomConfig } from "./846~0.mjs";
@@ -23,6 +22,7 @@ import * as __rspack_external_node_os_4f3c9d58 from "node:os";
23
22
  import * as __rspack_external_node_path_806ed179 from "node:path";
24
23
  import * as __rspack_external_node_crypto_2e7c4b46 from "node:crypto";
25
24
  import * as __rspack_external_node_net_5ed819e1 from "node:net";
25
+ import * as __rspack_external_node_http_e245b239 from "node:http";
26
26
  import * as __rspack_external_node_fs_1b05aee1 from "node:fs";
27
27
  const FORCE_KILL_DEFAULT_GRACE_MS = 4000;
28
28
  const FORCE_KILL_EXIT_CODE = 1;
@@ -245,21 +245,35 @@ function createResponseDataRepair(ref) {
245
245
  };
246
246
  };
247
247
  }
248
- function hasDependency(projectPath, dependency) {
249
- const manifestDirectory = findNearestProjectManifestDirSync(projectPath, 4);
250
- if (!manifestDirectory) return false;
251
- return hasProjectDependency(manifestDirectory, dependency);
248
+ function isUnder(file, dir) {
249
+ const rel = __rspack_external_node_path_806ed179.relative(dir, file);
250
+ return '' !== rel && !rel.startsWith('..') && !__rspack_external_node_path_806ed179.isAbsolute(rel);
252
251
  }
253
- function isUsingJSFramework(projectPath) {
254
- const frameworks = [
255
- 'react',
256
- 'vue',
257
- '@angular/core',
258
- 'svelte',
259
- 'solid-js',
260
- 'preact'
261
- ];
262
- return frameworks.some((fw)=>hasDependency(projectPath, fw));
252
+ function htmlSourcesToRefresh(modifiedFiles, fileDependencies, outputPath) {
253
+ if (!modifiedFiles) return [];
254
+ const known = new Set();
255
+ for (const file of fileDependencies)if (/\.html?$/i.test(file)) known.add(__rspack_external_node_path_806ed179.normalize(file));
256
+ const out = [];
257
+ for (const file of modifiedFiles){
258
+ const normalized = __rspack_external_node_path_806ed179.normalize(file);
259
+ if (known.has(normalized)) {
260
+ if (!(outputPath && isUnder(normalized, outputPath))) {
261
+ if (!out.includes(normalized)) out.push(normalized);
262
+ }
263
+ }
264
+ }
265
+ return out.sort();
266
+ }
267
+ function attachHtmlRefresh(compiler, server) {
268
+ compiler.hooks?.done?.tap?.('extjs-html-refresh', (stats)=>{
269
+ const compilation = stats.compilation;
270
+ if (compilation.errors && compilation.errors.length > 0) return;
271
+ const clients = server.webSocketServer?.clients;
272
+ if (!clients || 0 === clients.length) return;
273
+ const outputPath = String(compilation.options?.output?.path || '');
274
+ const changed = htmlSourcesToRefresh(compiler.modifiedFiles, compilation.fileDependencies, outputPath);
275
+ for (const file of changed)server.sendMessage(clients, 'static-changed', file);
276
+ });
263
277
  }
264
278
  function closeReservation(server) {
265
279
  return new Promise((resolve)=>{
@@ -289,6 +303,8 @@ async function reservePortNear(startPort, maxAttempts = 20, host = '127.0.0.1')
289
303
  server.unref();
290
304
  return {
291
305
  port: address?.port ?? candidate,
306
+ host,
307
+ server,
292
308
  release: ()=>closeReservation(server)
293
309
  };
294
310
  }
@@ -296,6 +312,21 @@ async function reservePortNear(startPort, maxAttempts = 20, host = '127.0.0.1')
296
312
  }
297
313
  throw codedError(CODES.E_PORT_UNAVAILABLE, `Could not find an available port near ${startPort} after ${attempts} attempts`);
298
314
  }
315
+ function holdPortNow(port, host, bindHost = host) {
316
+ const server = __rspack_external_node_net_5ed819e1.createServer();
317
+ server.on('error', ()=>{});
318
+ server.on('connection', (socket)=>socket.destroy());
319
+ server.unref();
320
+ try {
321
+ server.listen(port, bindHost);
322
+ } catch {}
323
+ return {
324
+ port,
325
+ host,
326
+ server,
327
+ release: ()=>closeReservation(server)
328
+ };
329
+ }
299
330
  function resolveInstanceIdOverride() {
300
331
  const raw = process.env.EXTENSION_INSTANCE_ID || process.env.EXTENSION_DEV_INSTANCE_ID || process.env.EXTJS_INSTANCE_ID || '';
301
332
  const value = String(raw).trim();
@@ -306,6 +337,7 @@ class PortManager {
306
337
  basePort;
307
338
  currentInstance = null;
308
339
  reservation = null;
340
+ holdOnClose = false;
309
341
  constructor(basePort = 8080){
310
342
  this.basePort = basePort;
311
343
  }
@@ -331,6 +363,26 @@ class PortManager {
331
363
  getCurrentInstance() {
332
364
  return this.currentInstance;
333
365
  }
366
+ takeReservation() {
367
+ const reservation = this.reservation;
368
+ this.reservation = null;
369
+ return reservation;
370
+ }
371
+ holdPortAcrossRestart() {
372
+ this.holdOnClose = true;
373
+ }
374
+ shouldHoldPortOnClose() {
375
+ return this.holdOnClose;
376
+ }
377
+ adoptHeldPort(reservation) {
378
+ const previous = this.reservation;
379
+ this.holdOnClose = false;
380
+ this.reservation = reservation;
381
+ if (previous) previous.release();
382
+ }
383
+ endRestartHold() {
384
+ this.holdOnClose = false;
385
+ }
334
386
  async releaseReservedPort() {
335
387
  const reservation = this.reservation;
336
388
  this.reservation = null;
@@ -341,6 +393,67 @@ class PortManager {
341
393
  await this.releaseReservedPort();
342
394
  }
343
395
  }
396
+ const BIND_ERROR_CODES = new Set([
397
+ 'EADDRINUSE',
398
+ 'EACCES',
399
+ 'EADDRNOTAVAIL'
400
+ ]);
401
+ function isBindError(error) {
402
+ const code = error?.code;
403
+ return 'string' == typeof code && BIND_ERROR_CODES.has(code);
404
+ }
405
+ function targetMatches(target, reservation) {
406
+ if (!target || 'object' != typeof target) return false;
407
+ const { host, port } = target;
408
+ return Number(port) === reservation.port && (!host || host === reservation.host);
409
+ }
410
+ function reservedHttpServer(options) {
411
+ return (serverOptions, app)=>{
412
+ const server = __rspack_external_node_http_e245b239.createServer(serverOptions ?? {}, app);
413
+ const listen = server.listen.bind(server);
414
+ const emit = server.emit.bind(server);
415
+ const close = server.close.bind(server);
416
+ let binding = false;
417
+ let listenHost;
418
+ server.emit = (event, ...args)=>{
419
+ if ('error' === event && binding && isBindError(args[0])) {
420
+ binding = false;
421
+ options.onBindError(args[0]);
422
+ return true;
423
+ }
424
+ return emit(event, ...args);
425
+ };
426
+ server.listen = (...args)=>{
427
+ const last = args[args.length - 1];
428
+ const callback = 'function' == typeof last ? last : null;
429
+ const target = args[0];
430
+ const reservation = options.takeReservation();
431
+ listenHost = target && 'object' == typeof target ? target.host : void 0;
432
+ const listening = ()=>{
433
+ binding = false;
434
+ server.ref();
435
+ callback?.();
436
+ };
437
+ binding = true;
438
+ if (reservation && targetMatches(target, reservation)) try {
439
+ return listen(reservation.server, listening);
440
+ } catch {}
441
+ if (reservation) {
442
+ reservation.release().then(()=>listen(target, listening));
443
+ return server;
444
+ }
445
+ return listen(target, listening);
446
+ };
447
+ server.close = (callback)=>{
448
+ const address = server.address();
449
+ const hold = options.holdOnClose?.() === true && null !== address && 'object' == typeof address;
450
+ const result = close(callback);
451
+ if (hold) options.onHeld?.(holdPortNow(address.port, listenHost || address.address, address.address));
452
+ return result;
453
+ };
454
+ return server;
455
+ };
456
+ }
344
457
  function removeLeftovers(folder, root, emitted) {
345
458
  for (const entry of __rspack_external_node_fs_1b05aee1.readdirSync(folder, {
346
459
  withFileTypes: true
@@ -660,6 +773,7 @@ async function dev_server_devServer(projectStructure, devOptions) {
660
773
  });
661
774
  const launchedPlugin = extendedOptions.browsersPlugin;
662
775
  if (launchedPlugin && 'function' == typeof launchedPlugin.setReloadBroker) launchedPlugin.setReloadBroker(bridgeBroker);
776
+ if (launchedPlugin && 'function' == typeof launchedPlugin.setInstanceId) launchedPlugin.setInstanceId(currentInstance.instanceId);
663
777
  if (launchedPlugin && 'function' == typeof launchedPlugin.setLogSink) launchedPlugin.setLogSink((event)=>{
664
778
  try {
665
779
  bridgeBroker.ingestLog({
@@ -828,14 +942,9 @@ async function dev_server_devServer(projectStructure, devOptions) {
828
942
  })
829
943
  },
830
944
  watchFiles: {
831
- paths: [
832
- ...publicFolder ? [
833
- __rspack_external_node_path_806ed179.join(publicFolder, '**/*')
834
- ] : [],
835
- ...isUsingJSFramework(packageJsonDir) ? [] : [
836
- __rspack_external_node_path_806ed179.join(packageJsonDir, '**/*.html')
837
- ]
838
- ],
945
+ paths: publicFolder ? [
946
+ __rspack_external_node_path_806ed179.join(publicFolder, '**/*')
947
+ ] : [],
839
948
  options: {
840
949
  ignored: [
841
950
  __rspack_external_node_path_806ed179.join(packageJsonDir, 'dist', '**/*')
@@ -860,7 +969,15 @@ async function dev_server_devServer(projectStructure, devOptions) {
860
969
  port,
861
970
  hot: true,
862
971
  liveReload: true,
863
- setupExitSignals: false
972
+ setupExitSignals: false,
973
+ server: {
974
+ type: reservedHttpServer({
975
+ takeReservation: ()=>portManager.takeReservation(),
976
+ onBindError: (error)=>failStart(error),
977
+ holdOnClose: ()=>portManager.shouldHoldPortOnClose(),
978
+ onHeld: (reservation)=>portManager.adoptHeldPort(reservation)
979
+ })
980
+ }
864
981
  };
865
982
  const START_TIMEOUT_MS = parseInt(String(process.env.EXTENSION_START_TIMEOUT_MS || '30000'), 10);
866
983
  async function createCompilerAndServer(opts) {
@@ -944,6 +1061,7 @@ async function dev_server_devServer(projectStructure, devOptions) {
944
1061
  });
945
1062
  });
946
1063
  const server = new RspackDevServer(serverConfig, compiler);
1064
+ attachHtmlRefresh(compiler, server);
947
1065
  if ('function' == typeof server.stop) {
948
1066
  const originalDevServerStop = server.stop.bind(server);
949
1067
  server.stop = async ()=>{
@@ -967,17 +1085,19 @@ async function dev_server_devServer(projectStructure, devOptions) {
967
1085
  startTimeout = setTimeout(()=>{
968
1086
  console.error(devServerStartTimeout(START_TIMEOUT_MS));
969
1087
  }, START_TIMEOUT_MS);
970
- await portManager.releaseReservedPort();
971
1088
  await server.start();
972
1089
  if (startTimeout) clearTimeout(startTimeout);
973
1090
  } catch (error) {
974
1091
  if (startTimeout) clearTimeout(startTimeout);
975
- metadata.writeError('dev_server_start_failed', error instanceof Error ? error.message : String(error));
976
- lifecycle.failed(error instanceof Error ? error.message : String(error));
977
- humanLine(extensionJsRunnerError(error));
978
- process.exit(1);
1092
+ failStart(error);
979
1093
  }
980
1094
  }
1095
+ function failStart(error) {
1096
+ metadata.writeError('dev_server_start_failed', error instanceof Error ? error.message : String(error));
1097
+ lifecycle.failed(error instanceof Error ? error.message : String(error));
1098
+ humanLine(extensionJsRunnerError(error));
1099
+ process.exit(1);
1100
+ }
981
1101
  const firstBundle = await createCompilerAndServer({
982
1102
  isRestart: false
983
1103
  });
@@ -998,9 +1118,14 @@ async function dev_server_devServer(projectStructure, devOptions) {
998
1118
  });
999
1119
  const previous = currentServer;
1000
1120
  currentServer = null;
1121
+ portManager.holdPortAcrossRestart();
1001
1122
  if (previous && 'function' == typeof previous.stop) await previous.stop();
1002
1123
  currentServer = nextBundle.server;
1003
- await startBundler(nextBundle.server);
1124
+ try {
1125
+ await startBundler(nextBundle.server);
1126
+ } finally{
1127
+ portManager.endRestartHold();
1128
+ }
1004
1129
  const stats = await nextBundle.firstCompile;
1005
1130
  if (stats && 'function' == typeof stats.hasErrors && stats.hasErrors()) return;
1006
1131
  await dispatchReload({
@@ -1,4 +1,4 @@
1
1
  {
2
- "pipeline": "873e637117e8b9e7a4b82b0d5ad51c3b8ba0ae121b5ad2c46e573a0548f17658",
3
- "builtAt": "2026-10-19T17:24:30.628Z"
2
+ "pipeline": "115c10317681998c74e9103e8f7497a421a3368514fca278595639a322666789",
3
+ "builtAt": "2026-10-22T18:54:49.935Z"
4
4
  }
@@ -1,4 +1,4 @@
1
- (()=>{"use strict";let t=[/^chrome:\/\/startpage(?:shared)?\/?/,/^https:\/\/(?:[a-z0-9-]+\.)*msn\.com\//i,/^https:\/\/(?:[a-z0-9-]+\.)*(?:ya\.ru|yandex\.[a-z.]+)\//i];async function e(){try{if(!chrome.management.getAll)return[];return(await new Promise(t=>{chrome.management.getAll(t)})||[]).filter(t=>{let e;return t.id!==chrome.runtime.id&&"igcijhgmihmjbbahdabahfbpffalcfnn"!==t.id&&"development"===t.installType&&"theme"!==t.type&&!0===t.enabled&&!((e=String(t.name||"").toLowerCase()).includes("extension.js built-in developer tools")||e.includes("extension.js theme"))})}catch{return[]}}async function r(){let t=await e();return t[t.length-1]}function a(t,e){let r="chrome://extensions/";chrome.tabs.query({url:r},e=>{e.length>0||chrome.tabs.create({url:r,active:!1},function(e){chrome.tabs.move(e.id,{index:0},()=>{setTimeout(()=>{chrome.tabs.update(t.id,{active:!0})},500)})})})}async function o(){let t,e,a="chrome://extensions/";try{chrome.tabs.query({active:!0,currentWindow:!0},e=>{let r=Array.isArray(e)?e[0]:void 0;r&&"number"==typeof r.id&&(t=r.id)})}catch{console.error("Error querying active tab")}e=await r();let o=String("chrome").toLowerCase(),n=e?.id||`__first_run__:${o}`;chrome.storage.local.get(n,async e=>{let r,o=e?.[n];if(o?.didRun)return;let i=t=>new Promise(e=>{try{let r=chrome.tabs.create(t,t=>{if(chrome.runtime.lastError){console.error("Error creating tab:",chrome.runtime.lastError.message),e(void 0);return}e(t)});r&&"function"==typeof r.then&&r.then(e,()=>e(void 0))}catch(t){console.error("Error creating tab:",t),e(void 0)}});try{let e=chrome.runtime.getURL("pages/welcome.html");1;if(r=await i({url:e,active:!0}),"number"==typeof t)try{var c;let e,r;c=t,e=0,r=(t,o,n)=>{var i;let s=(i={tabId:c,updatedTabId:t,status:o.status,url:n.url,targetUrl:a,attempts:e}).updatedTabId!==i.tabId||"complete"!==i.status||String(i.url||"").startsWith(i.targetUrl)?"wait":i.attempts>=3?"stop":"repoint";if("wait"!==s){if("stop"===s)return void chrome.tabs.onUpdated.removeListener(r);e+=1,chrome.tabs.update(c,{url:a})}},chrome.tabs.onUpdated.addListener(r),setTimeout(()=>chrome.tabs.onUpdated.removeListener(r),1e4),chrome.tabs.update(c,{url:a})}catch{console.error("Error updating original active tab")}}catch{r=await i({url:"pages/welcome.html",active:!0})}r&&chrome.storage.local.set({[n]:{didRun:!0}})})}function n(t){return{noOpen:!0===(t&&"object"==typeof t?t:{}).noOpen}}async function i(){try{let t=await fetch("/extension-js-session.json");if(!t.ok)return n(void 0);return n(await t.json())}catch{return n(void 0)}}async function c(){if(!(await i()).noOpen)try{chrome.tabs.query({active:!0,currentWindow:!0},async e=>{let r=Array.isArray(e)?e[0]:void 0,n="chrome://extensions/";if(console.log(`%c
1
+ (()=>{"use strict";let t=[/^chrome:\/\/startpage(?:shared)?\/?/,/^https:\/\/(?:[a-z0-9-]+\.)*msn\.com\//i,/^https:\/\/(?:[a-z0-9-]+\.)*(?:ya\.ru|yandex\.[a-z.]+)\//i];function e(e,r){if("firefox"===r)return e.startsWith("about:home")||e.startsWith("about:welcome")||e.startsWith("about:newtab")||"about:blank"===e;let o="edge"===r?"edge":"chrome";return e.startsWith(`${o}://newtab`)||e.startsWith(`${o}://welcome`)||t.some(t=>t.test(e))}async function r(){try{if(!chrome.management.getAll)return[];return(await new Promise(t=>{chrome.management.getAll(t)})||[]).filter(t=>{let e;return t.id!==chrome.runtime.id&&"igcijhgmihmjbbahdabahfbpffalcfnn"!==t.id&&"development"===t.installType&&"theme"!==t.type&&!0===t.enabled&&!((e=String(t.name||"").toLowerCase()).includes("extension.js built-in developer tools")||e.includes("extension.js theme"))})}catch{return[]}}async function o(){let t=await r();return t[t.length-1]}function a(t,e){let r="chrome://extensions/";chrome.tabs.query({url:r},e=>{e.length>0||chrome.tabs.create({url:r,active:!1},function(e){chrome.tabs.move(e.id,{index:0},()=>{setTimeout(()=>{chrome.tabs.update(t.id,{active:!0})},500)})})})}async function n(t){let r,a="chrome://extensions/",n="number"==typeof t?.id?t.id:void 0;r=await o();let i=String("chrome").toLowerCase(),s=r?.id||`__first_run__:${i}`;chrome.storage.local.get(s,async t=>{let r,o=t?.[s];if(o?.didRun)return;let i=t=>new Promise(e=>{try{let r=chrome.tabs.create(t,t=>{if(chrome.runtime.lastError){console.error("Error creating tab:",chrome.runtime.lastError.message),e(void 0);return}e(t)});r&&"function"==typeof r.then&&r.then(e,()=>e(void 0))}catch(t){console.error("Error creating tab:",t),e(void 0)}});try{let t=chrome.runtime.getURL("pages/welcome.html");1;if(r=await i({url:t,active:!0}),"number"==typeof n)try{let t,r;t=0,r=(o,i,s)=>{let c=function(t){if(t.updatedTabId!==t.tabId||"complete"!==t.status)return"wait";let r=String(t.url||"");return r.startsWith(t.targetUrl)?"wait":!e(r,t.browser)||t.attempts>=3?"stop":"repoint"}({tabId:n,updatedTabId:o,status:i.status,url:s.url,targetUrl:a,attempts:t,browser:"chrome"});if("wait"!==c){if("stop"===c)return void chrome.tabs.onUpdated.removeListener(r);t+=1,chrome.tabs.update(n,{url:a})}},chrome.tabs.onUpdated.addListener(r),setTimeout(()=>chrome.tabs.onUpdated.removeListener(r),1e4),chrome.tabs.update(n,{url:a})}catch{console.error("Error updating original active tab")}}catch{r=await i({url:"pages/welcome.html",active:!0})}r&&chrome.storage.local.set({[s]:{didRun:!0}})})}function i(t){return{noOpen:!0===(t&&"object"==typeof t?t:{}).noOpen}}async function s(){try{let t=await fetch("/extension-js-session.json");if(!t.ok)return i(void 0);return i(await t.json())}catch{return i(void 0)}}async function c(){if(!(await s()).noOpen)try{chrome.tabs.query({active:!0,currentWindow:!0},async t=>{let r=Array.isArray(t)?t[0]:void 0,o="chrome://extensions/";if(console.log(`%c
2
2
  ██████████████████████████████████████████████████████████
3
3
  ██████████████████████████████████████████████████████████
4
4
  ████████████████████████████ ██████████████████████████
@@ -23,4 +23,4 @@
23
23
  ██████████████████████████████████████████████████████████
24
24
  ██████████████████████████████████████████████████████████
25
25
  MIT (c) ${new Date().getFullYear()} - Cezar Augusto and the Extension.js authors.
26
- `,"background: transparent; color: #0971fe; "),!r){try{await o()}catch{try{chrome.tabs.create({url:n})}catch{}}return}let i=String(r.url||r.pendingUrl||""),c=function(e,r){if("firefox"===r)return e.startsWith("about:home")||e.startsWith("about:welcome")||e.startsWith("about:newtab")||"about:blank"===e;let a="edge"===r?"edge":"chrome";return e.startsWith(`${a}://newtab`)||e.startsWith(`${a}://welcome`)||t.some(t=>t.test(e))}(i,"chrome");0;c?await o():a(r,n)})}catch{}}async function s(t){if(t.startsWith("data:"))return t;let e=await fetch(t);if(!e.ok)throw Error(`Failed to fetch icon: ${e.status}`);let r=await e.blob();return await new Promise((t,e)=>{let a=new FileReader;a.onload=()=>t(String(a.result||"")),a.onerror=()=>e(Error("Failed to read icon blob")),a.readAsDataURL(r)})}chrome.runtime.onMessage.addListener((t,e,r)=>{if((!e?.id||e.id===chrome.runtime.id)&&t&&"resolve-icon-url"===t.type)return t.url&&function(t){if(t.startsWith("data:"))return!0;try{let e=new URL(t);return"moz-extension:"===e.protocol||"chrome-extension:"===e.protocol}catch{return!1}}(t.url)?(s(t.url).then(t=>r({ok:!0,dataUrl:t})).catch(t=>r({ok:!1,error:String(t)})),!0):void r({ok:!1,error:"Unsupported icon URL"})}),chrome.runtime.onStartup.addListener(async()=>{await c()}),chrome.runtime.onInstalled.addListener(async()=>{await c()})})();
26
+ `,"background: transparent; color: #0971fe; "),!r){try{await n()}catch{try{chrome.tabs.create({url:o})}catch{}}return}let i=String(r.url||r.pendingUrl||""),s=e(i,"chrome");0;s?await n(r):a(r,o)})}catch{}}async function u(t){if(t.startsWith("data:"))return t;let e=await fetch(t);if(!e.ok)throw Error(`Failed to fetch icon: ${e.status}`);let r=await e.blob();return await new Promise((t,e)=>{let o=new FileReader;o.onload=()=>t(String(o.result||"")),o.onerror=()=>e(Error("Failed to read icon blob")),o.readAsDataURL(r)})}chrome.runtime.onMessage.addListener((t,e,r)=>{if((!e?.id||e.id===chrome.runtime.id)&&t&&"resolve-icon-url"===t.type)return t.url&&function(t){if(t.startsWith("data:"))return!0;try{let e=new URL(t);return"moz-extension:"===e.protocol||"chrome-extension:"===e.protocol}catch{return!1}}(t.url)?(u(t.url).then(t=>r({ok:!0,dataUrl:t})).catch(t=>r({ok:!1,error:String(t)})),!0):void r({ok:!1,error:"Unsupported icon URL"})}),chrome.runtime.onStartup.addListener(async()=>{await c()}),chrome.runtime.onInstalled.addListener(async()=>{await c()})})();
@@ -1,2 +1,2 @@
1
1
  /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 transparent;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 transparent;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 transparent;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 transparent;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 transparent;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}::-ms-backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 transparent;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 transparent;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 transparent;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 transparent;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 transparent;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 transparent;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 transparent;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 transparent;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 transparent;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 transparent;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--container-xl:36rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-semibold:600;--tracking-tight:-.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-2xl:1rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--container-xl:36rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-semibold:600;--tracking-tight:-.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-2xl:1rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::-ms-backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::-webkit-file-upload-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}::-ms-browse{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:transparent;border-radius:0}::-webkit-file-upload-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:transparent;border-radius:0}::-ms-browse{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:transparent;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:transparent;border-radius:0}:where(select:-webkit-any([multiple],[size])) optgroup{font-weight:bolder}:where(select:-moz-any([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:-webkit-any([multiple],[size])) optgroup option:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:20px}:where(select:-moz-any([multiple],[size])) optgroup option:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:20px}:where(select:is([multiple],[size])) optgroup option:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:20px}:where(select:-webkit-any([multiple],[size])) optgroup option:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:20px}:where(select:-moz-any([multiple],[size])) optgroup option:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:20px}:where(select:is([multiple],[size])) optgroup option:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:20px}:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)))::-webkit-file-upload-button{margin-right:4px}:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)))::file-selector-button{margin-right:4px}:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)))::-ms-browse{margin-right:4px}:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)))::file-selector-button{margin-right:4px}:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::-webkit-file-upload-button{margin-left:4px}:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::file-selector-button{margin-left:4px}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::-ms-browse{margin-left:4px}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::file-selector-button{margin-left:4px}::-webkit-input-placeholder{opacity:1}::-ms-input-placeholder{opacity:1}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::-webkit-input-placeholder{color:currentColor}::-ms-input-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::-webkit-input-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::-ms-input-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button{-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button}input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button}::-webkit-file-upload-button{-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button}::-ms-browse{-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Helvetica Neue,Helvetica,Arial,system-ui,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,PingFang SC,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;line-height:1.5}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}}@layer components;@layer utilities{.sr-only{-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.relative{position:relative}.mx-auto{margin-left:auto;margin-right:auto}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-6{margin-top:calc(var(--spacing)*6)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.flex{display:flex}.inline-flex{display:inline-flex}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-16{width:calc(var(--spacing)*16);height:calc(var(--spacing)*16)}.h-screen{height:100vh}.w-full{width:100%}.max-w-xl{max-width:var(--container-xl)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.rounded-2xl{border-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.bg-\[\#1C1C1E\]{background-color:#1c1c1e}.object-contain{object-fit:contain}.px-4{padding-inline:calc(var(--spacing)*4)}.py-2{padding-block:calc(var(--spacing)*2)}.text-center{text-align:center}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,rgba(0,0,0,.1)),0 1px 2px -1px var(--tw-shadow-color,rgba(0,0,0,.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media (hover:hover){.hover\:opacity-90:hover{opacity:.9}}@media (min-width:40rem){.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}}:root{--radius:.5rem;--background:#fff;--foreground:#18181b;--card:#fff;--card-foreground:#18181b;--popover:#fff;--popover-foreground:#18181b;--primary:#2563eb;--primary-foreground:#fff;--secondary:#f4f4f5;--secondary-foreground:#18181b;--muted:#f4f4f5;--muted-foreground:#71717a;--accent:#f4f4f5;--accent-foreground:#18181b;--destructive:#ef4444;--border:#e4e4e7;--input:#e4e4e7;--ring:#2563eb;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#fff;--sidebar-foreground:#18181b;--sidebar-primary:#2563eb;--sidebar-primary-foreground:#fff;--sidebar-accent:#f4f4f5;--sidebar-accent-foreground:#18181b;--sidebar-border:#e4e4e7;--sidebar-ring:#2563eb}@supports (color:lab(0% 0 0)){:root{--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8672 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532)}}@media (prefers-color-scheme:dark){:root{--background:#1c1c1e;--foreground:#f2f2f7;--card:#1c1c1e;--card-foreground:#f2f2f7;--popover:#1c1c1e;--popover-foreground:#f2f2f7;--primary:#2563eb;--primary-foreground:#fff;--secondary:rgba(120,120,128,.16);--secondary-foreground:#f2f2f7;--muted:#2c2c2e;--muted-foreground:#98989f;--accent:rgba(10,132,255,.16);--accent-foreground:#f2f2f7;--destructive:#ff453a;--border:rgba(84,84,88,.36);--input:rgba(84,84,88,.32);--ring:#2563eb;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#1c1c1e;--sidebar-foreground:#f2f2f7;--sidebar-primary:#2563eb;--sidebar-primary-foreground:#fff;--sidebar-accent:rgba(10,132,255,.16);--sidebar-accent-foreground:#f2f2f7;--sidebar-border:rgba(84,84,88,.36);--sidebar-ring:#2563eb}@supports (color:lab(0% 0 0)){:root{--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8672 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532)}}}.dark{--background:#1c1c1e;--foreground:#f2f2f7;--card:#1c1c1e;--card-foreground:#f2f2f7;--popover:#1c1c1e;--popover-foreground:#f2f2f7;--primary:#2563eb;--primary-foreground:#fff;--secondary:rgba(120,120,128,.16);--secondary-foreground:#f2f2f7;--muted:#2c2c2e;--muted-foreground:#98989f;--accent:rgba(10,132,255,.16);--accent-foreground:#f2f2f7;--destructive:#ff453a;--border:rgba(84,84,88,.36);--input:rgba(84,84,88,.32);--ring:#2563eb;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#1c1c1e;--sidebar-foreground:#f2f2f7;--sidebar-primary:#2563eb;--sidebar-primary-foreground:#fff;--sidebar-accent:rgba(10,132,255,.16);--sidebar-accent-foreground:#f2f2f7;--sidebar-border:rgba(84,84,88,.36);--sidebar-ring:#2563eb}@supports (color:lab(0% 0 0)){.dark{--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8672 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@keyframes neonPulse{0%,to{text-shadow:0 0 6px rgba(25,245,167,.55),0 0 12px rgba(25,245,167,.45),0 0 24px rgba(25,245,167,.35)}50%{text-shadow:0 0 10px rgba(25,245,167,.9),0 0 20px rgba(25,245,167,.8),0 0 40px rgba(25,245,167,.7)}}.neon-text{animation:1.8s ease-in-out infinite neonPulse}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 transparent}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 transparent}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 transparent}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 transparent}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 transparent}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--container-xl:36rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-semibold:600;--tracking-tight:-.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-2xl:1rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Helvetica Neue,Helvetica,Arial,system-ui,Segoe UI,PingFang SC,Noto Sans,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;line-height:1.5}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.relative{position:relative}.mx-auto{margin-inline:auto}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-6{margin-top:calc(var(--spacing)*6)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.flex{display:flex}.inline-flex{display:inline-flex}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-16{width:calc(var(--spacing)*16);height:calc(var(--spacing)*16)}.h-screen{height:100vh}.w-full{width:100%}.max-w-xl{max-width:var(--container-xl)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.rounded-2xl{border-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.bg-\[\#1C1C1E\]{background-color:#1c1c1e}.object-contain{object-fit:contain}.px-4{padding-inline:calc(var(--spacing)*4)}.py-2{padding-block:calc(var(--spacing)*2)}.text-center{text-align:center}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.select-none{user-select:none}@media (hover:hover){.hover\:opacity-90:hover{opacity:.9}}@media (min-width:40rem){.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}}:root{--radius:.5rem;--background:#fff;--foreground:#18181b;--card:#fff;--card-foreground:#18181b;--popover:#fff;--popover-foreground:#18181b;--primary:#2563eb;--primary-foreground:#fff;--secondary:#f4f4f5;--secondary-foreground:#18181b;--muted:#f4f4f5;--muted-foreground:#71717a;--accent:#f4f4f5;--accent-foreground:#18181b;--destructive:#ef4444;--border:#e4e4e7;--input:#e4e4e7;--ring:#2563eb;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#fff;--sidebar-foreground:#18181b;--sidebar-primary:#2563eb;--sidebar-primary-foreground:#fff;--sidebar-accent:#f4f4f5;--sidebar-accent-foreground:#18181b;--sidebar-border:#e4e4e7;--sidebar-ring:#2563eb}@supports (color:lab(0% 0 0)){:root{--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8672 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532)}}@media (prefers-color-scheme:dark){:root{--background:#1c1c1e;--foreground:#f2f2f7;--card:#1c1c1e;--card-foreground:#f2f2f7;--popover:#1c1c1e;--popover-foreground:#f2f2f7;--primary:#2563eb;--primary-foreground:#fff;--secondary:#78788029;--secondary-foreground:#f2f2f7;--muted:#2c2c2e;--muted-foreground:#98989f;--accent:#0a84ff29;--accent-foreground:#f2f2f7;--destructive:#ff453a;--border:#5454585c;--input:#54545852;--ring:#2563eb;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#1c1c1e;--sidebar-foreground:#f2f2f7;--sidebar-primary:#2563eb;--sidebar-primary-foreground:#fff;--sidebar-accent:#0a84ff29;--sidebar-accent-foreground:#f2f2f7;--sidebar-border:#5454585c;--sidebar-ring:#2563eb}@supports (color:lab(0% 0 0)){:root{--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8672 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532)}}}.dark{--background:#1c1c1e;--foreground:#f2f2f7;--card:#1c1c1e;--card-foreground:#f2f2f7;--popover:#1c1c1e;--popover-foreground:#f2f2f7;--primary:#2563eb;--primary-foreground:#fff;--secondary:#78788029;--secondary-foreground:#f2f2f7;--muted:#2c2c2e;--muted-foreground:#98989f;--accent:#0a84ff29;--accent-foreground:#f2f2f7;--destructive:#ff453a;--border:#5454585c;--input:#54545852;--ring:#2563eb;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#1c1c1e;--sidebar-foreground:#f2f2f7;--sidebar-primary:#2563eb;--sidebar-primary-foreground:#fff;--sidebar-accent:#0a84ff29;--sidebar-accent-foreground:#f2f2f7;--sidebar-border:#5454585c;--sidebar-ring:#2563eb}@supports (color:lab(0% 0 0)){.dark{--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8672 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@keyframes neonPulse{0%,to{text-shadow:0 0 6px #19f5a78c,0 0 12px #19f5a773,0 0 24px #19f5a759}50%{text-shadow:0 0 10px #19f5a7e6,0 0 20px #19f5a7cc,0 0 40px #19f5a7b3}}.neon-text{animation:1.8s ease-in-out infinite neonPulse}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
@@ -1,4 +1,4 @@
1
- (()=>{"use strict";let t=[/^chrome:\/\/startpage(?:shared)?\/?/,/^https:\/\/(?:[a-z0-9-]+\.)*msn\.com\//i,/^https:\/\/(?:[a-z0-9-]+\.)*(?:ya\.ru|yandex\.[a-z.]+)\//i];async function e(){try{if(!chrome.management.getAll)return[];return(await new Promise(t=>{chrome.management.getAll(t)})||[]).filter(t=>{let e;return t.id!==chrome.runtime.id&&"igcijhgmihmjbbahdabahfbpffalcfnn"!==t.id&&"development"===t.installType&&"theme"!==t.type&&!0===t.enabled&&!((e=String(t.name||"").toLowerCase()).includes("extension.js built-in developer tools")||e.includes("extension.js theme"))})}catch{return[]}}async function r(){let t=await e();return t[t.length-1]}function a(t,e){let r="chrome://extensions/";chrome.tabs.query({url:r},e=>{e.length>0||chrome.tabs.create({url:r,active:!1},function(e){chrome.tabs.move(e.id,{index:0},()=>{setTimeout(()=>{chrome.tabs.update(t.id,{active:!0})},500)})})})}async function o(){let t,e,a="chrome://extensions/";try{chrome.tabs.query({active:!0,currentWindow:!0},e=>{let r=Array.isArray(e)?e[0]:void 0;r&&"number"==typeof r.id&&(t=r.id)})}catch{console.error("Error querying active tab")}e=await r();let o=String("chromium").toLowerCase(),n=e?.id||`__first_run__:${o}`;chrome.storage.local.get(n,async e=>{let r,o=e?.[n];if(o?.didRun)return;let i=t=>new Promise(e=>{try{let r=chrome.tabs.create(t,t=>{if(chrome.runtime.lastError){console.error("Error creating tab:",chrome.runtime.lastError.message),e(void 0);return}e(t)});r&&"function"==typeof r.then&&r.then(e,()=>e(void 0))}catch(t){console.error("Error creating tab:",t),e(void 0)}});try{let e=chrome.runtime.getURL("pages/welcome.html");1;if(r=await i({url:e,active:!0}),"number"==typeof t)try{var c;let e,r;c=t,e=0,r=(t,o,n)=>{var i;let s=(i={tabId:c,updatedTabId:t,status:o.status,url:n.url,targetUrl:a,attempts:e}).updatedTabId!==i.tabId||"complete"!==i.status||String(i.url||"").startsWith(i.targetUrl)?"wait":i.attempts>=3?"stop":"repoint";if("wait"!==s){if("stop"===s)return void chrome.tabs.onUpdated.removeListener(r);e+=1,chrome.tabs.update(c,{url:a})}},chrome.tabs.onUpdated.addListener(r),setTimeout(()=>chrome.tabs.onUpdated.removeListener(r),1e4),chrome.tabs.update(c,{url:a})}catch{console.error("Error updating original active tab")}}catch{r=await i({url:"pages/welcome.html",active:!0})}r&&chrome.storage.local.set({[n]:{didRun:!0}})})}function n(t){return{noOpen:!0===(t&&"object"==typeof t?t:{}).noOpen}}async function i(){try{let t=await fetch("/extension-js-session.json");if(!t.ok)return n(void 0);return n(await t.json())}catch{return n(void 0)}}async function c(){if(!(await i()).noOpen)try{chrome.tabs.query({active:!0,currentWindow:!0},async e=>{let r=Array.isArray(e)?e[0]:void 0,n="chrome://extensions/";if(console.log(`%c
1
+ (()=>{"use strict";let t=[/^chrome:\/\/startpage(?:shared)?\/?/,/^https:\/\/(?:[a-z0-9-]+\.)*msn\.com\//i,/^https:\/\/(?:[a-z0-9-]+\.)*(?:ya\.ru|yandex\.[a-z.]+)\//i];function e(e,r){if("firefox"===r)return e.startsWith("about:home")||e.startsWith("about:welcome")||e.startsWith("about:newtab")||"about:blank"===e;let o="edge"===r?"edge":"chrome";return e.startsWith(`${o}://newtab`)||e.startsWith(`${o}://welcome`)||t.some(t=>t.test(e))}async function r(){try{if(!chrome.management.getAll)return[];return(await new Promise(t=>{chrome.management.getAll(t)})||[]).filter(t=>{let e;return t.id!==chrome.runtime.id&&"igcijhgmihmjbbahdabahfbpffalcfnn"!==t.id&&"development"===t.installType&&"theme"!==t.type&&!0===t.enabled&&!((e=String(t.name||"").toLowerCase()).includes("extension.js built-in developer tools")||e.includes("extension.js theme"))})}catch{return[]}}async function o(){let t=await r();return t[t.length-1]}function a(t,e){let r="chrome://extensions/";chrome.tabs.query({url:r},e=>{e.length>0||chrome.tabs.create({url:r,active:!1},function(e){chrome.tabs.move(e.id,{index:0},()=>{setTimeout(()=>{chrome.tabs.update(t.id,{active:!0})},500)})})})}async function n(t){let r,a="chrome://extensions/",n="number"==typeof t?.id?t.id:void 0;r=await o();let i=String("chromium").toLowerCase(),s=r?.id||`__first_run__:${i}`;chrome.storage.local.get(s,async t=>{let r,o=t?.[s];if(o?.didRun)return;let i=t=>new Promise(e=>{try{let r=chrome.tabs.create(t,t=>{if(chrome.runtime.lastError){console.error("Error creating tab:",chrome.runtime.lastError.message),e(void 0);return}e(t)});r&&"function"==typeof r.then&&r.then(e,()=>e(void 0))}catch(t){console.error("Error creating tab:",t),e(void 0)}});try{let t=chrome.runtime.getURL("pages/welcome.html");1;if(r=await i({url:t,active:!0}),"number"==typeof n)try{let t,r;t=0,r=(o,i,s)=>{let c=function(t){if(t.updatedTabId!==t.tabId||"complete"!==t.status)return"wait";let r=String(t.url||"");return r.startsWith(t.targetUrl)?"wait":!e(r,t.browser)||t.attempts>=3?"stop":"repoint"}({tabId:n,updatedTabId:o,status:i.status,url:s.url,targetUrl:a,attempts:t,browser:"chromium"});if("wait"!==c){if("stop"===c)return void chrome.tabs.onUpdated.removeListener(r);t+=1,chrome.tabs.update(n,{url:a})}},chrome.tabs.onUpdated.addListener(r),setTimeout(()=>chrome.tabs.onUpdated.removeListener(r),1e4),chrome.tabs.update(n,{url:a})}catch{console.error("Error updating original active tab")}}catch{r=await i({url:"pages/welcome.html",active:!0})}r&&chrome.storage.local.set({[s]:{didRun:!0}})})}function i(t){return{noOpen:!0===(t&&"object"==typeof t?t:{}).noOpen}}async function s(){try{let t=await fetch("/extension-js-session.json");if(!t.ok)return i(void 0);return i(await t.json())}catch{return i(void 0)}}async function c(){if(!(await s()).noOpen)try{chrome.tabs.query({active:!0,currentWindow:!0},async t=>{let r=Array.isArray(t)?t[0]:void 0,o="chrome://extensions/";if(console.log(`%c
2
2
  ██████████████████████████████████████████████████████████
3
3
  ██████████████████████████████████████████████████████████
4
4
  ████████████████████████████ ██████████████████████████
@@ -23,4 +23,4 @@
23
23
  ██████████████████████████████████████████████████████████
24
24
  ██████████████████████████████████████████████████████████
25
25
  MIT (c) ${new Date().getFullYear()} - Cezar Augusto and the Extension.js authors.
26
- `,"background: transparent; color: #0971fe; "),!r){try{await o()}catch{try{chrome.tabs.create({url:n})}catch{}}return}let i=String(r.url||r.pendingUrl||""),c=function(e,r){if("firefox"===r)return e.startsWith("about:home")||e.startsWith("about:welcome")||e.startsWith("about:newtab")||"about:blank"===e;let a="edge"===r?"edge":"chrome";return e.startsWith(`${a}://newtab`)||e.startsWith(`${a}://welcome`)||t.some(t=>t.test(e))}(i,"chromium");0;c?await o():a(r,n)})}catch{}}async function s(t){if(t.startsWith("data:"))return t;let e=await fetch(t);if(!e.ok)throw Error(`Failed to fetch icon: ${e.status}`);let r=await e.blob();return await new Promise((t,e)=>{let a=new FileReader;a.onload=()=>t(String(a.result||"")),a.onerror=()=>e(Error("Failed to read icon blob")),a.readAsDataURL(r)})}chrome.runtime.onMessage.addListener((t,e,r)=>{if((!e?.id||e.id===chrome.runtime.id)&&t&&"resolve-icon-url"===t.type)return t.url&&function(t){if(t.startsWith("data:"))return!0;try{let e=new URL(t);return"moz-extension:"===e.protocol||"chrome-extension:"===e.protocol}catch{return!1}}(t.url)?(s(t.url).then(t=>r({ok:!0,dataUrl:t})).catch(t=>r({ok:!1,error:String(t)})),!0):void r({ok:!1,error:"Unsupported icon URL"})}),chrome.runtime.onStartup.addListener(async()=>{await c()}),chrome.runtime.onInstalled.addListener(async()=>{await c()})})();
26
+ `,"background: transparent; color: #0971fe; "),!r){try{await n()}catch{try{chrome.tabs.create({url:o})}catch{}}return}let i=String(r.url||r.pendingUrl||""),s=e(i,"chromium");0;s?await n(r):a(r,o)})}catch{}}async function u(t){if(t.startsWith("data:"))return t;let e=await fetch(t);if(!e.ok)throw Error(`Failed to fetch icon: ${e.status}`);let r=await e.blob();return await new Promise((t,e)=>{let o=new FileReader;o.onload=()=>t(String(o.result||"")),o.onerror=()=>e(Error("Failed to read icon blob")),o.readAsDataURL(r)})}chrome.runtime.onMessage.addListener((t,e,r)=>{if((!e?.id||e.id===chrome.runtime.id)&&t&&"resolve-icon-url"===t.type)return t.url&&function(t){if(t.startsWith("data:"))return!0;try{let e=new URL(t);return"moz-extension:"===e.protocol||"chrome-extension:"===e.protocol}catch{return!1}}(t.url)?(u(t.url).then(t=>r({ok:!0,dataUrl:t})).catch(t=>r({ok:!1,error:String(t)})),!0):void r({ok:!1,error:"Unsupported icon URL"})}),chrome.runtime.onStartup.addListener(async()=>{await c()}),chrome.runtime.onInstalled.addListener(async()=>{await c()})})();
@@ -1,2 +1,2 @@
1
1
  /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 transparent;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 transparent;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 transparent;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 transparent;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 transparent;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}::-ms-backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 transparent;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 transparent;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 transparent;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 transparent;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 transparent;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 transparent;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 transparent;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 transparent;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 transparent;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 transparent;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--container-xl:36rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-semibold:600;--tracking-tight:-.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-2xl:1rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--container-xl:36rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-semibold:600;--tracking-tight:-.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-2xl:1rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::-ms-backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::-webkit-file-upload-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}::-ms-browse{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:transparent;border-radius:0}::-webkit-file-upload-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:transparent;border-radius:0}::-ms-browse{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:transparent;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:transparent;border-radius:0}:where(select:-webkit-any([multiple],[size])) optgroup{font-weight:bolder}:where(select:-moz-any([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:-webkit-any([multiple],[size])) optgroup option:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:20px}:where(select:-moz-any([multiple],[size])) optgroup option:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:20px}:where(select:is([multiple],[size])) optgroup option:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:20px}:where(select:-webkit-any([multiple],[size])) optgroup option:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:20px}:where(select:-moz-any([multiple],[size])) optgroup option:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:20px}:where(select:is([multiple],[size])) optgroup option:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:20px}:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)))::-webkit-file-upload-button{margin-right:4px}:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)))::file-selector-button{margin-right:4px}:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)))::-ms-browse{margin-right:4px}:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)))::file-selector-button{margin-right:4px}:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::-webkit-file-upload-button{margin-left:4px}:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::file-selector-button{margin-left:4px}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::-ms-browse{margin-left:4px}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::file-selector-button{margin-left:4px}::-webkit-input-placeholder{opacity:1}::-ms-input-placeholder{opacity:1}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::-webkit-input-placeholder{color:currentColor}::-ms-input-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::-webkit-input-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::-ms-input-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button{-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button}input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button}::-webkit-file-upload-button{-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button}::-ms-browse{-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;-ms-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Helvetica Neue,Helvetica,Arial,system-ui,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,PingFang SC,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;line-height:1.5}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}}@layer components;@layer utilities{.sr-only{-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.relative{position:relative}.mx-auto{margin-left:auto;margin-right:auto}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-6{margin-top:calc(var(--spacing)*6)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.flex{display:flex}.inline-flex{display:inline-flex}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-16{width:calc(var(--spacing)*16);height:calc(var(--spacing)*16)}.h-screen{height:100vh}.w-full{width:100%}.max-w-xl{max-width:var(--container-xl)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.rounded-2xl{border-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.bg-\[\#1C1C1E\]{background-color:#1c1c1e}.object-contain{object-fit:contain}.px-4{padding-inline:calc(var(--spacing)*4)}.py-2{padding-block:calc(var(--spacing)*2)}.text-center{text-align:center}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,rgba(0,0,0,.1)),0 1px 2px -1px var(--tw-shadow-color,rgba(0,0,0,.1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media (hover:hover){.hover\:opacity-90:hover{opacity:.9}}@media (min-width:40rem){.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}}:root{--radius:.5rem;--background:#fff;--foreground:#18181b;--card:#fff;--card-foreground:#18181b;--popover:#fff;--popover-foreground:#18181b;--primary:#2563eb;--primary-foreground:#fff;--secondary:#f4f4f5;--secondary-foreground:#18181b;--muted:#f4f4f5;--muted-foreground:#71717a;--accent:#f4f4f5;--accent-foreground:#18181b;--destructive:#ef4444;--border:#e4e4e7;--input:#e4e4e7;--ring:#2563eb;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#fff;--sidebar-foreground:#18181b;--sidebar-primary:#2563eb;--sidebar-primary-foreground:#fff;--sidebar-accent:#f4f4f5;--sidebar-accent-foreground:#18181b;--sidebar-border:#e4e4e7;--sidebar-ring:#2563eb}@supports (color:lab(0% 0 0)){:root{--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8672 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532)}}@media (prefers-color-scheme:dark){:root{--background:#1c1c1e;--foreground:#f2f2f7;--card:#1c1c1e;--card-foreground:#f2f2f7;--popover:#1c1c1e;--popover-foreground:#f2f2f7;--primary:#2563eb;--primary-foreground:#fff;--secondary:rgba(120,120,128,.16);--secondary-foreground:#f2f2f7;--muted:#2c2c2e;--muted-foreground:#98989f;--accent:rgba(10,132,255,.16);--accent-foreground:#f2f2f7;--destructive:#ff453a;--border:rgba(84,84,88,.36);--input:rgba(84,84,88,.32);--ring:#2563eb;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#1c1c1e;--sidebar-foreground:#f2f2f7;--sidebar-primary:#2563eb;--sidebar-primary-foreground:#fff;--sidebar-accent:rgba(10,132,255,.16);--sidebar-accent-foreground:#f2f2f7;--sidebar-border:rgba(84,84,88,.36);--sidebar-ring:#2563eb}@supports (color:lab(0% 0 0)){:root{--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8672 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532)}}}.dark{--background:#1c1c1e;--foreground:#f2f2f7;--card:#1c1c1e;--card-foreground:#f2f2f7;--popover:#1c1c1e;--popover-foreground:#f2f2f7;--primary:#2563eb;--primary-foreground:#fff;--secondary:rgba(120,120,128,.16);--secondary-foreground:#f2f2f7;--muted:#2c2c2e;--muted-foreground:#98989f;--accent:rgba(10,132,255,.16);--accent-foreground:#f2f2f7;--destructive:#ff453a;--border:rgba(84,84,88,.36);--input:rgba(84,84,88,.32);--ring:#2563eb;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#1c1c1e;--sidebar-foreground:#f2f2f7;--sidebar-primary:#2563eb;--sidebar-primary-foreground:#fff;--sidebar-accent:rgba(10,132,255,.16);--sidebar-accent-foreground:#f2f2f7;--sidebar-border:rgba(84,84,88,.36);--sidebar-ring:#2563eb}@supports (color:lab(0% 0 0)){.dark{--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8672 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@keyframes neonPulse{0%,to{text-shadow:0 0 6px rgba(25,245,167,.55),0 0 12px rgba(25,245,167,.45),0 0 24px rgba(25,245,167,.35)}50%{text-shadow:0 0 10px rgba(25,245,167,.9),0 0 20px rgba(25,245,167,.8),0 0 40px rgba(25,245,167,.7)}}.neon-text{animation:1.8s ease-in-out infinite neonPulse}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 transparent}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 transparent}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 transparent}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 transparent}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 transparent}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--container-xl:36rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-semibold:600;--tracking-tight:-.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-2xl:1rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Helvetica Neue,Helvetica,Arial,system-ui,Segoe UI,PingFang SC,Noto Sans,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;line-height:1.5}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.relative{position:relative}.mx-auto{margin-inline:auto}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-6{margin-top:calc(var(--spacing)*6)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.flex{display:flex}.inline-flex{display:inline-flex}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-16{width:calc(var(--spacing)*16);height:calc(var(--spacing)*16)}.h-screen{height:100vh}.w-full{width:100%}.max-w-xl{max-width:var(--container-xl)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.rounded-2xl{border-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.bg-\[\#1C1C1E\]{background-color:#1c1c1e}.object-contain{object-fit:contain}.px-4{padding-inline:calc(var(--spacing)*4)}.py-2{padding-block:calc(var(--spacing)*2)}.text-center{text-align:center}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.select-none{user-select:none}@media (hover:hover){.hover\:opacity-90:hover{opacity:.9}}@media (min-width:40rem){.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}}:root{--radius:.5rem;--background:#fff;--foreground:#18181b;--card:#fff;--card-foreground:#18181b;--popover:#fff;--popover-foreground:#18181b;--primary:#2563eb;--primary-foreground:#fff;--secondary:#f4f4f5;--secondary-foreground:#18181b;--muted:#f4f4f5;--muted-foreground:#71717a;--accent:#f4f4f5;--accent-foreground:#18181b;--destructive:#ef4444;--border:#e4e4e7;--input:#e4e4e7;--ring:#2563eb;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#fff;--sidebar-foreground:#18181b;--sidebar-primary:#2563eb;--sidebar-primary-foreground:#fff;--sidebar-accent:#f4f4f5;--sidebar-accent-foreground:#18181b;--sidebar-border:#e4e4e7;--sidebar-ring:#2563eb}@supports (color:lab(0% 0 0)){:root{--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8672 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532)}}@media (prefers-color-scheme:dark){:root{--background:#1c1c1e;--foreground:#f2f2f7;--card:#1c1c1e;--card-foreground:#f2f2f7;--popover:#1c1c1e;--popover-foreground:#f2f2f7;--primary:#2563eb;--primary-foreground:#fff;--secondary:#78788029;--secondary-foreground:#f2f2f7;--muted:#2c2c2e;--muted-foreground:#98989f;--accent:#0a84ff29;--accent-foreground:#f2f2f7;--destructive:#ff453a;--border:#5454585c;--input:#54545852;--ring:#2563eb;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#1c1c1e;--sidebar-foreground:#f2f2f7;--sidebar-primary:#2563eb;--sidebar-primary-foreground:#fff;--sidebar-accent:#0a84ff29;--sidebar-accent-foreground:#f2f2f7;--sidebar-border:#5454585c;--sidebar-ring:#2563eb}@supports (color:lab(0% 0 0)){:root{--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8672 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532)}}}.dark{--background:#1c1c1e;--foreground:#f2f2f7;--card:#1c1c1e;--card-foreground:#f2f2f7;--popover:#1c1c1e;--popover-foreground:#f2f2f7;--primary:#2563eb;--primary-foreground:#fff;--secondary:#78788029;--secondary-foreground:#f2f2f7;--muted:#2c2c2e;--muted-foreground:#98989f;--accent:#0a84ff29;--accent-foreground:#f2f2f7;--destructive:#ff453a;--border:#5454585c;--input:#54545852;--ring:#2563eb;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#1c1c1e;--sidebar-foreground:#f2f2f7;--sidebar-primary:#2563eb;--sidebar-primary-foreground:#fff;--sidebar-accent:#0a84ff29;--sidebar-accent-foreground:#f2f2f7;--sidebar-border:#5454585c;--sidebar-ring:#2563eb}@supports (color:lab(0% 0 0)){.dark{--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8672 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@keyframes neonPulse{0%,to{text-shadow:0 0 6px #19f5a78c,0 0 12px #19f5a773,0 0 24px #19f5a759}50%{text-shadow:0 0 10px #19f5a7e6,0 0 20px #19f5a7cc,0 0 40px #19f5a7b3}}.neon-text{animation:1.8s ease-in-out infinite neonPulse}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
@@ -1,4 +1,4 @@
1
- (()=>{"use strict";let e=[/^chrome:\/\/startpage(?:shared)?\/?/,/^https:\/\/(?:[a-z0-9-]+\.)*msn\.com\//i,/^https:\/\/(?:[a-z0-9-]+\.)*(?:ya\.ru|yandex\.[a-z.]+)\//i];async function t(){try{if(!chrome.management.getAll)return[];return(await new Promise(e=>{chrome.management.getAll(e)})||[]).filter(e=>{let t;return e.id!==chrome.runtime.id&&"igcijhgmihmjbbahdabahfbpffalcfnn"!==e.id&&"development"===e.installType&&"theme"!==e.type&&!0===e.enabled&&!((t=String(e.name||"").toLowerCase()).includes("extension.js built-in developer tools")||t.includes("extension.js theme"))})}catch{return[]}}async function r(){let e=await t();return e[e.length-1]}function a(e,t){let r="edge://extensions/";chrome.tabs.query({url:r},t=>{t.length>0||chrome.tabs.create({url:r,active:!1},function(t){chrome.tabs.move(t.id,{index:0},()=>{setTimeout(()=>{chrome.tabs.update(e.id,{active:!0})},500)})})})}async function n(){let e,t,a="edge://extensions/";try{chrome.tabs.query({active:!0,currentWindow:!0},t=>{let r=Array.isArray(t)?t[0]:void 0;r&&"number"==typeof r.id&&(e=r.id)})}catch{console.error("Error querying active tab")}t=await r();let n=String("edge").toLowerCase(),o=t?.id||`__first_run__:${n}`;chrome.storage.local.get(o,async t=>{let r,n=t?.[o];if(n?.didRun)return;let i=e=>new Promise(t=>{try{let r=chrome.tabs.create(e,e=>{if(chrome.runtime.lastError){console.error("Error creating tab:",chrome.runtime.lastError.message),t(void 0);return}t(e)});r&&"function"==typeof r.then&&r.then(t,()=>t(void 0))}catch(e){console.error("Error creating tab:",e),t(void 0)}});try{let t=chrome.runtime.getURL("pages/welcome.html");1;if(r=await i({url:t,active:!0}),"number"==typeof e)try{var s;let t,r;s=e,t=0,r=(e,n,o)=>{var i;let c=(i={tabId:s,updatedTabId:e,status:n.status,url:o.url,targetUrl:a,attempts:t}).updatedTabId!==i.tabId||"complete"!==i.status||String(i.url||"").startsWith(i.targetUrl)?"wait":i.attempts>=3?"stop":"repoint";if("wait"!==c){if("stop"===c)return void chrome.tabs.onUpdated.removeListener(r);t+=1,chrome.tabs.update(s,{url:a})}},chrome.tabs.onUpdated.addListener(r),setTimeout(()=>chrome.tabs.onUpdated.removeListener(r),1e4),chrome.tabs.update(s,{url:a})}catch{console.error("Error updating original active tab")}}catch{r=await i({url:"pages/welcome.html",active:!0})}r&&chrome.storage.local.set({[o]:{didRun:!0}})})}function o(e){return{noOpen:!0===(e&&"object"==typeof e?e:{}).noOpen}}async function i(){try{let e=await fetch("/extension-js-session.json");if(!e.ok)return o(void 0);return o(await e.json())}catch{return o(void 0)}}async function s(){if(!(await i()).noOpen)try{chrome.tabs.query({active:!0,currentWindow:!0},async t=>{let r=Array.isArray(t)?t[0]:void 0,o="edge://extensions/";if(console.log(`%c
1
+ (()=>{"use strict";let e=[/^chrome:\/\/startpage(?:shared)?\/?/,/^https:\/\/(?:[a-z0-9-]+\.)*msn\.com\//i,/^https:\/\/(?:[a-z0-9-]+\.)*(?:ya\.ru|yandex\.[a-z.]+)\//i];function t(t,r){if("firefox"===r)return t.startsWith("about:home")||t.startsWith("about:welcome")||t.startsWith("about:newtab")||"about:blank"===t;let a="edge"===r?"edge":"chrome";return t.startsWith(`${a}://newtab`)||t.startsWith(`${a}://welcome`)||e.some(e=>e.test(t))}async function r(){try{if(!chrome.management.getAll)return[];return(await new Promise(e=>{chrome.management.getAll(e)})||[]).filter(e=>{let t;return e.id!==chrome.runtime.id&&"igcijhgmihmjbbahdabahfbpffalcfnn"!==e.id&&"development"===e.installType&&"theme"!==e.type&&!0===e.enabled&&!((t=String(e.name||"").toLowerCase()).includes("extension.js built-in developer tools")||t.includes("extension.js theme"))})}catch{return[]}}async function a(){let e=await r();return e[e.length-1]}function n(e,t){let r="edge://extensions/";chrome.tabs.query({url:r},t=>{t.length>0||chrome.tabs.create({url:r,active:!1},function(t){chrome.tabs.move(t.id,{index:0},()=>{setTimeout(()=>{chrome.tabs.update(e.id,{active:!0})},500)})})})}async function o(e){let r,n="edge://extensions/",o="number"==typeof e?.id?e.id:void 0;r=await a();let i=String("edge").toLowerCase(),s=r?.id||`__first_run__:${i}`;chrome.storage.local.get(s,async e=>{let r,a=e?.[s];if(a?.didRun)return;let i=e=>new Promise(t=>{try{let r=chrome.tabs.create(e,e=>{if(chrome.runtime.lastError){console.error("Error creating tab:",chrome.runtime.lastError.message),t(void 0);return}t(e)});r&&"function"==typeof r.then&&r.then(t,()=>t(void 0))}catch(e){console.error("Error creating tab:",e),t(void 0)}});try{let e=chrome.runtime.getURL("pages/welcome.html");1;if(r=await i({url:e,active:!0}),"number"==typeof o)try{let e,r;e=0,r=(a,i,s)=>{let c=function(e){if(e.updatedTabId!==e.tabId||"complete"!==e.status)return"wait";let r=String(e.url||"");return r.startsWith(e.targetUrl)?"wait":!t(r,e.browser)||e.attempts>=3?"stop":"repoint"}({tabId:o,updatedTabId:a,status:i.status,url:s.url,targetUrl:n,attempts:e,browser:"edge"});if("wait"!==c){if("stop"===c)return void chrome.tabs.onUpdated.removeListener(r);e+=1,chrome.tabs.update(o,{url:n})}},chrome.tabs.onUpdated.addListener(r),setTimeout(()=>chrome.tabs.onUpdated.removeListener(r),1e4),chrome.tabs.update(o,{url:n})}catch{console.error("Error updating original active tab")}}catch{r=await i({url:"pages/welcome.html",active:!0})}r&&chrome.storage.local.set({[s]:{didRun:!0}})})}function i(e){return{noOpen:!0===(e&&"object"==typeof e?e:{}).noOpen}}async function s(){try{let e=await fetch("/extension-js-session.json");if(!e.ok)return i(void 0);return i(await e.json())}catch{return i(void 0)}}async function c(){if(!(await s()).noOpen)try{chrome.tabs.query({active:!0,currentWindow:!0},async e=>{let r=Array.isArray(e)?e[0]:void 0,a="edge://extensions/";if(console.log(`%c
2
2
  ██████████████████████████████████████████████████████████
3
3
  ██████████████████████████████████████████████████████████
4
4
  ████████████████████████████ ██████████████████████████
@@ -23,4 +23,4 @@
23
23
  ██████████████████████████████████████████████████████████
24
24
  ██████████████████████████████████████████████████████████
25
25
  MIT (c) ${new Date().getFullYear()} - Cezar Augusto and the Extension.js authors.
26
- `,"background: transparent; color: #0971fe; "),!r){try{await n()}catch{try{chrome.tabs.create({url:o})}catch{}}return}let i=String(r.url||r.pendingUrl||""),s=function(t,r){if("firefox"===r)return t.startsWith("about:home")||t.startsWith("about:welcome")||t.startsWith("about:newtab")||"about:blank"===t;let a="edge"===r?"edge":"chrome";return t.startsWith(`${a}://newtab`)||t.startsWith(`${a}://welcome`)||e.some(e=>e.test(t))}(i,"edge");0;s?await n():a(r,o)})}catch{}}async function c(e){if(e.startsWith("data:"))return e;let t=await fetch(e);if(!t.ok)throw Error(`Failed to fetch icon: ${t.status}`);let r=await t.blob();return await new Promise((e,t)=>{let a=new FileReader;a.onload=()=>e(String(a.result||"")),a.onerror=()=>t(Error("Failed to read icon blob")),a.readAsDataURL(r)})}chrome.runtime.onMessage.addListener((e,t,r)=>{if((!t?.id||t.id===chrome.runtime.id)&&e&&"resolve-icon-url"===e.type)return e.url&&function(e){if(e.startsWith("data:"))return!0;try{let t=new URL(e);return"moz-extension:"===t.protocol||"chrome-extension:"===t.protocol}catch{return!1}}(e.url)?(c(e.url).then(e=>r({ok:!0,dataUrl:e})).catch(e=>r({ok:!1,error:String(e)})),!0):void r({ok:!1,error:"Unsupported icon URL"})}),chrome.runtime.onStartup.addListener(async()=>{await s()}),chrome.runtime.onInstalled.addListener(async()=>{await s()})})();
26
+ `,"background: transparent; color: #0971fe; "),!r){try{await o()}catch{try{chrome.tabs.create({url:a})}catch{}}return}let i=String(r.url||r.pendingUrl||""),s=t(i,"edge");0;s?await o(r):n(r,a)})}catch{}}async function u(e){if(e.startsWith("data:"))return e;let t=await fetch(e);if(!t.ok)throw Error(`Failed to fetch icon: ${t.status}`);let r=await t.blob();return await new Promise((e,t)=>{let a=new FileReader;a.onload=()=>e(String(a.result||"")),a.onerror=()=>t(Error("Failed to read icon blob")),a.readAsDataURL(r)})}chrome.runtime.onMessage.addListener((e,t,r)=>{if((!t?.id||t.id===chrome.runtime.id)&&e&&"resolve-icon-url"===e.type)return e.url&&function(e){if(e.startsWith("data:"))return!0;try{let t=new URL(e);return"moz-extension:"===t.protocol||"chrome-extension:"===t.protocol}catch{return!1}}(e.url)?(u(e.url).then(e=>r({ok:!0,dataUrl:e})).catch(e=>r({ok:!1,error:String(e)})),!0):void r({ok:!1,error:"Unsupported icon URL"})}),chrome.runtime.onStartup.addListener(async()=>{await c()}),chrome.runtime.onInstalled.addListener(async()=>{await c()})})();