@lukso/transaction-view-core 0.7.8 → 0.7.9-dev.1664335

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.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/shared/index.ts","../../src/shared/address-display.ts","../../src/shared/address-view.ts","../../src/shared/load-web-components.ts","../../src/styles/styles.css%3F__raw__","../../src/styles/index.ts","../../src/shared/custom-select.ts","../../src/shared/function-name-view.ts","../../src/shared/gas-provider-view.ts","../../src/shared/icon-view.ts","../../src/shared/image-loader-controller.ts","../../src/shared/notification-view.ts","../../src/shared/progress-view.ts","../../src/shared/scroll-to-bottom-button.ts","../../src/shared/signal-controller.ts","../../src/shared/transaction-view-controller.ts","../../src/shared/url-view.ts","../../src/shared/value-view.ts","../../src/utils.ts"],"sourcesContent":["// Shared atomic components\n\nexport { safeCustomElement } from '@lukso/core/utils'\n\nexport * from './address-display'\n// Export types\nexport type { AddressData } from './address-display.js'\nexport * from './address-view'\nexport * from './custom-select'\nexport * from './function-name-view'\nexport * from './gas-provider-view'\nexport * from './icon-view'\nexport {\n ImageLoaderController,\n type ImageLoadState,\n useImageLoader,\n} from './image-loader-controller.js'\nexport * from './notification-view'\nexport * from './progress-view'\nexport * from './scroll-to-bottom-button'\n// Export signal integration controllers and utilities\nexport {\n MultiSignalController,\n SignalController,\n useSignal,\n useSignals,\n} from './signal-controller.js'\nexport {\n TransactionSignalController,\n TransactionViewController,\n type TransactionViewState,\n useTransactionSignal,\n useTransactionView,\n} from './transaction-view-controller.js'\nexport * from './url-view'\nexport * from './value-view'\n","import { Task } from '@lit/task'\nimport { safeCustomElement } from '@lukso/core/utils'\nimport {\n useAddressResolver,\n useImageLoader,\n} from '@lukso/transaction-view-headless'\nimport { css, html, LitElement } from 'lit'\nimport { property } from 'lit/decorators.js'\n\n// LUKSO web components are loaded dynamically via plugin\n\n/**\n * Address data interface for display\n */\nexport interface AddressData {\n address: string\n name?: string\n lsp4TokenName?: string\n lsp4TokenSymbol?: string\n baseAsset?: {\n lsp4TokenName?: string\n lsp4TokenSymbol?: string\n }\n profileImages?: any[]\n avatar?: any[]\n icon?: any[]\n images?: any[]\n __gqltype?: string\n __identity?: string\n identity?: string\n}\n\n/**\n * Universal address display component with profile resolution\n *\n * Displays an address with profile image and name, supporting both\n * Universal Profiles and contract addresses with proper styling.\n *\n * @example\n * ```html\n * <address-display\n * address=\"0x1234...\"\n * .resolved=\"${resolvedData}\"\n * size=\"medium\"\n * show-copy-button\n * ></address-display>\n * ```\n */\n@safeCustomElement('address-display')\nexport class AddressDisplay extends LitElement {\n /**\n * The address to display (required)\n */\n @property() value!: string\n\n /**\n * @deprecated Use `value` instead\n */\n @property() address?: string\n\n /**\n * Resolved address data (profile, images, etc.)\n */\n @property({ type: Object }) resolved?: AddressData\n\n /**\n * Display size\n */\n @property() size: 'x-small' | 'small' | 'medium' | 'large' = 'small'\n\n /**\n * Optional label to display above the address\n */\n @property() label?: string\n\n /**\n * Whether to show the copy button\n */\n @property({ type: Boolean, attribute: 'show-copy-button' }) showCopyButton =\n false\n\n /**\n * Whether to show the full address or just the name\n */\n @property({ type: Boolean, attribute: 'name-only' }) nameOnly = false\n\n /**\n * Maximum width for the name display (in pixels)\n */\n @property({ type: Number, attribute: 'max-width' }) maxWidth = 200\n\n /**\n * Get the effective address value (supports both `value` and legacy `address` props)\n */\n private get effectiveAddress(): string {\n return this.value || this.address || ''\n }\n\n // Composables\n private imageLoader = useImageLoader()\n private addressResolver = useAddressResolver()\n isLoadingImage = false\n\n // Task for loading profile image\n private imageTask = new Task(this, {\n task: async ([resolved]) => {\n if (!resolved) return null\n\n this.isLoadingImage = true\n try {\n const image = await this.imageLoader.loadProfileImage(resolved, {\n width: this.getSizePixels(),\n height: this.getSizePixels(),\n dpr: window.devicePixelRatio || 1,\n })\n\n return image || this.imageLoader.getFallbackImage(resolved)\n } catch (error) {\n console.warn('Failed to load address image:', error)\n return this.imageLoader.getFallbackImage(resolved || {})\n } finally {\n this.isLoadingImage = false\n }\n },\n args: () => [this.resolved],\n })\n\n /**\n * Get pixel size for the current size setting\n */\n private getSizePixels(): number {\n switch (this.size) {\n case 'x-small':\n return 16\n case 'small':\n return 24\n case 'medium':\n return 32\n case 'large':\n return 48\n default:\n return 24\n }\n }\n\n /**\n * Get display name for the address\n */\n private getDisplayName(): string {\n if (!this.resolved) return 'Anonymous'\n\n const computedName = this.addressResolver.formatDisplayName(this.resolved)\n return computedName || 'Anonymous'\n }\n\n /**\n * Check if this is a contract address (shows square icon)\n */\n private get isContract(): boolean {\n return this.resolved\n ? this.imageLoader.isContractAddress(this.resolved)\n : false\n }\n\n /**\n * Get prefix for the address display\n */\n private get addressPrefix(): string {\n return this.resolved\n ? this.addressResolver.getAddressPrefix(this.resolved)\n : '@'\n }\n\n /**\n * Check if should show name colors\n */\n private get shouldShowNameColor(): boolean {\n return this.resolved\n ? this.addressResolver.shouldShowNameColor(this.resolved)\n : true\n }\n\n /**\n * Handle copy button click\n */\n private handleCopy() {\n if (navigator.clipboard) {\n navigator.clipboard.writeText(this.effectiveAddress)\n // Dispatch copy event for parent components\n this.dispatchEvent(\n new CustomEvent('address-copied', {\n detail: { address: this.effectiveAddress },\n bubbles: true,\n })\n )\n }\n }\n\n /**\n * Handle address click\n */\n private handleAddressClick() {\n this.dispatchEvent(\n new CustomEvent('address-click', {\n detail: {\n address: this.effectiveAddress,\n resolved: this.resolved,\n },\n bubbles: true,\n })\n )\n }\n\n override render() {\n const imageResult = this.imageTask.value\n\n return html`\n <div class=\"address-container\">\n ${this.label ? html`<div class=\"label\">${this.label}</div>` : ''}\n \n <div class=\"address-display\" @click=${this.handleAddressClick}>\n <!-- Identity prefix (if present) -->\n ${\n this.resolved?.__identity\n ? html`\n <span class=\"identity\">\n ${this.resolved.__identity}\n <lukso-username\n address=${this.resolved.identity}\n size=${this.size}\n max-width=\"200\"\n has-name-color=\"false\"\n has-address-color=\"false\"\n ></lukso-username>\n of\n </span>\n `\n : ''\n }\n\n <!-- Profile image and name -->\n <lukso-profile\n size=${this.size}\n profile-address=${this.effectiveAddress}\n profile-url=${imageResult?.src || ''}\n has-identicon\n ?is-square=${this.isContract}\n ></lukso-profile>\n\n <!-- Address/Name display -->\n ${\n this.nameOnly\n ? html`\n <lukso-username\n name=${this.getDisplayName()}\n size=${this.size}\n max-width=${this.maxWidth}\n prefix=${this.addressPrefix}\n ?has-name-color=${this.shouldShowNameColor}\n has-address-color=\"false\"\n ></lukso-username>\n `\n : html`\n <lukso-username\n name=${this.getDisplayName()}\n address=${!this.isContract ? this.effectiveAddress : undefined}\n size=${this.size}\n max-width=${this.maxWidth}\n prefix=${this.addressPrefix}\n ?has-name-color=${this.shouldShowNameColor}\n ?has-address-color=${this.shouldShowNameColor}\n ></lukso-username>\n `\n }\n\n\n <!-- Copy button -->\n ${\n this.showCopyButton\n ? html`\n <button \n class=\"copy-button\"\n @click=${this.handleCopy}\n title=\"Copy address\"\n >\n 📋\n </button>\n `\n : ''\n }\n </div>\n </div>\n `\n }\n\n static override styles = css`\n :host {\n display: inline-block;\n }\n\n .address-container {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n .label {\n font-size: 12px;\n color: var(--neutral-60, #666);\n font-weight: 500;\n }\n\n .address-display {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n transition: background-color 0.2s;\n min-width: 200px;\n }\n\n .address-display:hover {\n background-color: var(--neutral-95, #f5f5f5);\n }\n\n .identity {\n font-size: 12px;\n color: var(--neutral-60, #666);\n margin-right: 4px;\n }\n\n .copy-button {\n background: none;\n border: 1px solid var(--neutral-80, #ccc);\n border-radius: 4px;\n padding: 2px 4px;\n cursor: pointer;\n font-size: 12px;\n opacity: 0;\n transition: opacity 0.2s;\n }\n\n .copy-button:hover {\n background-color: var(--neutral-90, #eee);\n }\n\n .address-display:hover .copy-button {\n opacity: 1;\n }\n\n\n /* Ensure LUKSO web components are properly styled */\n lukso-profile,\n lukso-username {\n display: inline-flex;\n align-items: center;\n }\n `\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'address-display': AddressDisplay\n }\n}\n","import { Task } from '@lit/task'\nimport { safeCustomElement } from '@lukso/core/utils'\nimport { useAddressResolver } from '@lukso/transaction-view-headless'\nimport makeBlockie from 'ethereum-blockies-base64'\nimport { html } from 'lit'\nimport { property, state } from 'lit/decorators.js'\n\n// Import LUKSO web components\nimport './load-web-components'\nimport { CoreLitElement } from '../styles'\n\n/**\n * Address text view component (text only, no image)\n *\n * A text-only address display component that shows name and/or address.\n * Use alongside <icon-view> for complete address presentation.\n *\n * @example\n * ```html\n * <address-view\n * address=\"0x1234...\"\n * size=\"medium\"\n * ></address-view>\n * ```\n */\n@safeCustomElement('address-view')\nexport class AddressView extends CoreLitElement {\n /**\n * The address to display (required)\n */\n @property() address!: string\n\n /**\n * Display size\n */\n @property() size: 'x-small' | 'small' | 'medium' | 'large' = 'small'\n\n /**\n * Whether to show only the name (no address)\n */\n @property({ type: Boolean, attribute: 'name-only' }) nameOnly = false\n\n /**\n * Whether to show only the address (no name)\n */\n @property({ type: Boolean, attribute: 'address-only' }) addressOnly = false\n\n /**\n * Card view: render with bordered container, header label and copy button\n */\n @property({ type: Boolean, attribute: 'is-card-view' }) isCardView = false\n\n /**\n * Optional label to show in card header (only when isCardView)\n */\n @property() label?: string\n\n /**\n * Whether to show a copy button (only relevant for card view)\n */\n @property({ type: Boolean, attribute: 'show-copy-button' }) showCopyButton =\n false\n\n /**\n * Maximum width for the display (in pixels)\n */\n @property({ type: Number, attribute: 'max-width' }) maxWidth = 200\n\n /**\n * Whether to show the small identicon next to the name/address\n */\n @property({ type: Boolean, attribute: 'show-identicon' }) showIdenticon = true\n\n /**\n * Address text color token (e.g., \"red-55\")\n */\n @property({ type: String, attribute: 'address-color' }) addressColor?: string\n\n /**\n * Name text color token (e.g., \"blue-50\")\n */\n @property({ type: String, attribute: 'name-color' }) nameColor?: string\n\n // Internal state\n @state() private isLoadingAddress = false\n @state() private identicon?: string\n\n // Composables\n private addressResolver = useAddressResolver()\n\n // Task for resolving address data\n private addressTask = new Task(this, {\n task: async ([address]) => {\n if (!address) return null\n\n this.isLoadingAddress = true\n try {\n // Pass the full compound address to resolver (e.g., \"0x123...-0x456...\")\n const resolved = await this.addressResolver.resolveAddress(address)\n this.requestUpdate() // Force re-render after resolution\n return resolved\n } catch (_error) {\n return null\n } finally {\n this.isLoadingAddress = false\n }\n },\n args: () => [this.address] as const,\n })\n\n /**\n * Get the display address (first segment only for compound addresses)\n * e.g., \"0x123...-0x456...\" becomes \"0x123...\"\n */\n private get displayAddress(): string {\n return this.address.split('-')[0]\n }\n\n /**\n * Get display name for the address\n */\n private getDisplayName(): string {\n const resolved = this.addressTask.value\n\n if (!resolved) {\n return this.isLoadingAddress ? 'Loading...' : 'Anonymous'\n }\n const computedName = this.addressResolver.formatDisplayName(resolved)\n return this.label || computedName || 'Anonymous'\n }\n\n /**\n * Get prefix for the address display\n */\n private get addressPrefix(): string {\n const resolved = this.addressTask.value\n return resolved?.hasProfile ? '@' : ''\n }\n\n /**\n * Check if should show name colors\n */\n private get shouldShowNameColor(): boolean {\n const resolved = this.addressTask.value\n return resolved ? this.addressResolver.shouldShowNameColor(resolved) : true\n }\n\n /**\n * Handle address click\n */\n private handleClick() {\n this.dispatchEvent(\n new CustomEvent('address-click', {\n detail: {\n address: this.address,\n resolved: this.addressTask.value,\n },\n bubbles: true,\n })\n )\n }\n\n /** Generate identicon when address changes */\n protected willUpdate(changed: Map<string, unknown>) {\n if (changed.has('address') && this.address) {\n try {\n this.identicon = makeBlockie(this.displayAddress.toLowerCase())\n } catch {\n this.identicon = undefined\n }\n }\n }\n\n /** Copy the display address to clipboard (card view) */\n private handleCopy(event?: Event) {\n // Prevent triggering parent click handlers\n if (event) event.stopPropagation()\n if (navigator.clipboard) {\n navigator.clipboard.writeText(this.displayAddress)\n this.dispatchEvent(\n new CustomEvent('address-copied', {\n detail: { address: this.displayAddress },\n bubbles: true,\n })\n )\n }\n }\n\n /** ========== RENDER HELPERS (Use Cases) ========== */\n /** Pixel size mapping for identicon based on component size */\n private getIdenticonSizePx(): number {\n switch (this.size) {\n case 'x-small':\n return 10\n case 'small':\n return 12\n case 'medium':\n return 14\n case 'large':\n return 16\n default:\n return 14\n }\n }\n /**\n * Render only the name (and optionally the address hash when allowed for profiles)\n */\n private renderNameOnly(displayName: string) {\n return html`\n <!-- Name Only Use Case -->\n <lukso-username\n class=\"inline-block align-middle\"\n name=${displayName}\n address=${this.address}\n size=${this.size}\n max-width=${this.maxWidth}\n prefix=${this.addressPrefix}\n address-color=${this.addressColor}\n name-color=${this.nameColor}\n ></lukso-username>\n `\n }\n\n /**\n * Render only the raw address (no name)\n */\n private renderAddressOnly() {\n return html`\n <!-- Address Only Use Case -->\n <lukso-username\n class=\"inline-block align-middle\"\n address=${this.displayAddress}\n size=${this.size}\n max-width=${this.maxWidth}\n has-name-color=\"false\"\n ?has-address-color=${this.shouldShowNameColor}\n ></lukso-username>\n `\n }\n\n /**\n * Render both name and (conditionally) the address hash (profiles show hash, contracts may hide it)\n */\n private renderNameAndAddress(displayName: string) {\n return html`\n <!-- Name + Address Use Case -->\n <lukso-username\n class=\"inline-block align-middle\"\n name=${displayName}\n address=${this.address}\n size=${this.size}\n max-width=${this.maxWidth}\n prefix=${this.addressPrefix}\n address-color=${this.addressColor}\n name-color=${this.nameColor}\n ></lukso-username>\n `\n }\n\n private renderIdenticon() {\n if (!this.showIdenticon || !this.identicon) return ''\n const size = this.getIdenticonSizePx()\n return html`\n <div class=\"inline-flex items-center justify-center align-middle\">\n <img\n class=\"inline-block rounded-full ring-1 ring-neutral-90 shrink-0\"\n src=${this.identicon}\n alt=\"identicon\"\n style=\"width:${size}px;height:${size}px;image-rendering:pixelated;\"\n />\n </div>\n `\n }\n\n /** Map size to a typography class for the label */\n private getLabelClass(): string {\n switch (this.size) {\n case 'x-small':\n return 'paragraph-inter-12-semi-bold'\n case 'small':\n return 'heading-inter-14-bold'\n case 'medium':\n return 'heading-inter-17-semi-bold'\n case 'large':\n return 'heading-inter-21-semi-bold'\n default:\n return 'heading-inter-17-semi-bold'\n }\n }\n\n private renderDisplayName() {\n const displayName = this.getDisplayName()\n return this.label\n ? html`<div class=\"inline-flex items-center gap-2 font-semibold text-neutral-20 ${this.getLabelClass()}\">${\n this.label\n }</div>`\n : html`<lukso-username\n class=\"inline-block align-middle\"\n name=${displayName}\n size=${this.size}\n ?has-name-color=${this.shouldShowNameColor}\n ></lukso-username>`\n }\n\n /**\n * Decide which of the three core inline variants to render\n */\n private renderInlineVariant(displayName: string) {\n if (this.nameOnly) return this.renderNameOnly(displayName)\n if (this.addressOnly) return this.renderAddressOnly()\n return this.renderNameAndAddress(displayName)\n }\n\n override render() {\n const displayName = this.getDisplayName()\n // Card view layout\n if (this.isCardView) {\n return html`\n <div class=\"block border border-neutral-90 rounded-xl py-3 px-4 bg-neutral-100 min-w-[280px]\" @click=${\n this.handleClick\n }>\n <div class=\"flex items-center justify-between mb-2\">\n <div class=\"inline-flex items-center font-normal gap-1\">\n ${this.renderIdenticon()}\n ${this.renderDisplayName()}\n </div>\n ${\n this.showCopyButton\n ? html`<button\n class=\"bg-neutral-100 border-0 rounded-lg w-6 h-6 flex items-center justify-center cursor-pointer text-neutral-20 hover:bg-neutral-95\"\n @click=${(e: Event) => this.handleCopy(e)}\n title=\"Copy address\"\n >\n <lukso-icon name=\"copy\" size=\"small\"></lukso-icon>\n </button>`\n : html``\n }\n </div>\n <div class=\"font-semibold text-neutral-20 break-all flex items-center gap-2\">\n \n <lukso-username\n address=${this.displayAddress}\n size=${this.size}\n max-width=${this.maxWidth}\n has-name-color=\"false\"\n slice-by=\"24\"\n ?has-address-color=${this.shouldShowNameColor}\n ></lukso-username>\n </div>\n </div>\n `\n }\n\n // Inline/simple view (default)\n return html`\n <div class=\"inline-flex items-center cursor-pointer gap-1\" @click=${this.handleClick}>\n ${this.renderIdenticon()}\n <!-- Inline Variants -->\n ${this.renderInlineVariant(displayName)}\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'address-view': AddressView\n }\n}\n","/**\n * SSR-safe centralized import point for @lukso/web-components.\n *\n * ## Why this exists\n *\n * Web components crash during SSR, so apps use dynamic imports:\n * ```ts\n * // In an SSR app\n * const { TransactionPlayback } = await import('@lukso/transaction-view-core')\n * ```\n *\n * However, if the app ALSO needs to import @lukso/web-components directly:\n * ```ts\n * const webComponents = await import('@lukso/web-components')\n * ```\n *\n * This creates TWO dynamic import paths to the same components, causing\n * duplicate registration errors. This wrapper prevents that by making\n * registration idempotent.\n *\n * ## Usage\n *\n * Import this module instead of directly importing '@lukso/web-components':\n * ```ts\n * import './load-web-components'\n * ```\n */\n\n// Store the original customElements.define\nconst originalDefine =\n typeof customElements !== 'undefined'\n ? customElements.define.bind(customElements)\n : null\n\n// Wrap customElements.define to catch duplicate registration errors\nif (typeof customElements !== 'undefined' && originalDefine) {\n customElements.define = (\n name: string,\n // biome-ignore lint/suspicious/noShadowRestrictedNames: This is the web-components api.\n constructor: CustomElementConstructor,\n options?: ElementDefinitionOptions\n ) => {\n // Check if already defined\n if (!customElements.get(name)) {\n originalDefine(name, constructor, options)\n }\n // Silently ignore if already defined\n }\n}\n\n// Now import the web components (they'll use our wrapped define)\nimport './load-web-components'\n\n// Restore original define after import\nif (originalDefine && typeof customElements !== 'undefined') {\n customElements.define = originalDefine\n}\n","export default \"/**\\n * @file Main styles\\n *\\n * This file contain general styles that should be applied to host page.\\n */\\n:root {\\n --neutral-10: #121b21;\\n --neutral-15: #1b2832;\\n --neutral-20: #243542;\\n --neutral-25: #2d4253;\\n --neutral-30: #365063;\\n --neutral-35: #3e5d74;\\n --neutral-40: #476a85;\\n --neutral-45: #507795;\\n --neutral-50: #5985a6;\\n --neutral-55: #6a91af;\\n --neutral-60: #7a9db8;\\n --neutral-65: #8ba9c1;\\n --neutral-70: #9cb6c9;\\n --neutral-75: #acc2d2;\\n --neutral-80: #bdcedb;\\n --neutral-85: #cddae4;\\n --neutral-90: #dee7ed;\\n --neutral-95: #eef3f6;\\n --neutral-97: #f5f8fa;\\n --neutral-98: #f8fafb;\\n --neutral-100: #ffffff;\\n --honey-72: #fad275;\\n --honey-75: #fbd784;\\n --honey-82: #fce2a6;\\n --honey-85: #fce7b5;\\n --honey-92: #fef2d8;\\n --coral-65: #f37c58;\\n --coral-74: #f69e83;\\n --coral-75: #f7a288;\\n --coral-84: #fac3b3;\\n --coral-85: #fac7b7;\\n --coral-94: #fde9e2;\\n --warm-77: #ffbb8a;\\n --warm-87: #ffd8bd;\\n --warm-97: #fff6f0;\\n --sea-salt-57: #7fa4a4;\\n --sea-salt-67: #9db9b9;\\n --sea-salt-88: #dbe6e6;\\n --cloud-43: #447c97;\\n --cloud-75: #a7c7d7;\\n --cloud-88: #d5e4ec;\\n --ocean-38: #3c6286;\\n --ocean-75: #a7c0d7;\\n --ocean-88: #d5e1ec;\\n --sky-64: #68a5de;\\n --sky-75: #96c1e8;\\n --sky-85: #c0daf1;\\n --lukso-50: #aa5578;\\n --lukso-60: #bb7793;\\n --lukso-70: #cc99ae;\\n --lukso-80: #ddbbc9;\\n --lukso-90: #eedde4;\\n --yellow-25: #804d00;\\n --yellow-55: #ffa31a;\\n --yellow-65: #ffb84d;\\n --yellow-75: #ffcc80;\\n --yellow-85: #ffe0b3;\\n --yellow-95: #fff5e5;\\n --green-45: #31b452;\\n --green-54: #47cd68;\\n --green-63: #6bd686;\\n --green-75: #9be4ad;\\n --green-85: #c3efce;\\n --green-95: #ebfaef;\\n --blue-40: #0452c8;\\n --blue-50: #0567fa;\\n --blue-60: #3785fb;\\n --blue-75: #82b3fc;\\n --blue-85: #b4d1fd;\\n --blue-95: #e6f0fe;\\n --red-55: #e23636;\\n --red-65: #e96363;\\n --red-75: #ef8f8f;\\n --red-85: #f5bcbc;\\n --red-95: #fce9e9;\\n --purple-15: #1d202f;\\n --purple-18: #232739;\\n --purple-31: #3c4262;\\n --purple-41: #4f5882;\\n --purple-51: #646ea0;\\n --purple-58: #7a83ae;\\n --purple-63: #8a92b7;\\n --purple-82: #c6cadc;\\n --purple-94: #ecedf3;\\n --pink-90: #f8dad3;\\n --pink-91: #f9ddd7;\\n --pink-92: #f9e1dc;\\n --pink-93: #fae5e0;\\n --pink-94: #fbe9e5;\\n --pink-95: #fcece9;\\n --pink-96: #fcf0ed;\\n --pink-97: #fdf4f2;\\n --measure-50: #e8178a;\\n --measure-70: #f174b9;\\n --measure-80: #f6a2d0;\\n --measure-97: #fef1f8;\\n --grey-10: #1a1a1a;\\n --grey-15: #262626;\\n --grey-20: #333333;\\n --grey-25: #404040;\\n --grey-30: #4d4d4d;\\n --grey-35: #595959;\\n --grey-40: #666666;\\n --grey-45: #737373;\\n --grey-50: #808080;\\n --grey-55: #8c8c8c;\\n --grey-60: #999999;\\n --grey-65: #a6a6a6;\\n --grey-70: #b3b3b3;\\n --grey-75: #bfbfbf;\\n --grey-80: #cccccc;\\n --gradient-1-start: #D39B9D;\\n --gradient-1-end: #9071D1;\\n --gradient-2-start: #F8DAD3;\\n --gradient-2-end: #CC99AE;\\n --gradient-3-start: #393e56;\\n --gradient-3-end: #646ea0;\\n}\\n/**\\n * @file Fonts\\n *\\n * This file contains all fonts used in designs.\\n */\\n@font-face {\\n font-family: Inter;\\n src: url(\\\"/assets/fonts/Inter-Regular.woff2\\\") format(\\\"woff2\\\");\\n font-weight: normal;\\n font-style: normal;\\n font-display: swap;\\n}\\n@font-face {\\n font-family: Inter;\\n src: url(\\\"/assets/fonts/Inter-ExtraBold.woff2\\\") format(\\\"woff2\\\");\\n font-weight: 800;\\n font-style: normal;\\n font-display: swap;\\n}\\n@font-face {\\n font-family: Inter;\\n src: url(\\\"/assets/fonts/Inter-Bold.woff2\\\") format(\\\"woff2\\\");\\n font-weight: bold;\\n font-style: normal;\\n font-display: swap;\\n}\\n@font-face {\\n font-family: Inter;\\n src: url(\\\"/assets/fonts/Inter-SemiBold.woff2\\\") format(\\\"woff2\\\");\\n font-weight: 600;\\n font-style: normal;\\n font-display: swap;\\n}\\n@font-face {\\n font-family: Inter;\\n src: url(\\\"/assets/fonts/Inter-Medium.woff2\\\") format(\\\"woff2\\\");\\n font-weight: 500;\\n font-style: normal;\\n font-display: swap;\\n}\\n@font-face {\\n font-family: Inter;\\n src: url(\\\"/assets/fonts/Inter-Thin.woff2\\\") format(\\\"woff2\\\");\\n font-weight: 100;\\n font-style: normal;\\n font-display: swap;\\n}\\n@font-face {\\n font-family: \\\"PT Mono\\\";\\n src: url(\\\"/assets/fonts/PT-Mono-Regular.woff2\\\") format(\\\"woff2\\\");\\n font-weight: normal;\\n font-style: normal;\\n}\\n@font-face {\\n font-family: \\\"PT Mono\\\";\\n src: url(\\\"/assets/fonts/PT-Mono-Bold.woff2\\\") format(\\\"woff2\\\");\\n font-weight: bold;\\n font-style: normal;\\n}\\n/**\\n * @file Typography\\n *\\n * This file contains all typography classes used in designs.\\n * They should be used instead of individual font attributes.\\n *\\n * You can use them same as the normal Tailwind classes, e.g.: class=\\\"heading-inter-26-semi-bold\\\"\\n */\\n/**\\n * @file Variables\\n *\\n * This file contains all CSS variables used in designs.\\n */\\n/**\\n * Tailwind v4 shadow system variables\\n * Web components use Tailwind v4 internally, which requires these CSS variables\\n * to be initialized for box-shadow to render correctly in Tailwind v3 consumers.\\n */\\n*,\\n::after,\\n::before,\\n::backdrop,\\n::file-selector-button {\\n --tw-border-style: solid;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-inset-shadow: 0 0 #0000;\\n --tw-inset-shadow-colored: 0 0 #0000;\\n --tw-ring-color: initial;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-inset-ring-color: initial;\\n --tw-inset-ring-shadow: 0 0 #0000;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-offset-shadow: 0 0 #0000;\\n}\\n.tippy-box[data-animation=fade][data-state=hidden] {\\n opacity: 0;\\n}\\n.tippy-arrow::before {\\n content: \\\"\\\";\\n position: absolute;\\n border-color: transparent;\\n border-style: solid;\\n}\\n.tippy-box[data-placement^=top] > .tippy-arrow::before {\\n border-top-color: initial;\\n transform-origin: center top;\\n}\\n.tippy-box[data-placement^=bottom] > .tippy-arrow::before {\\n border-bottom-color: initial;\\n transform-origin: center bottom;\\n}\\n.tippy-box[data-placement^=left] > .tippy-arrow::before {\\n border-left-color: initial;\\n transform-origin: center left;\\n}\\n.tippy-box[data-placement^=right] > .tippy-arrow::before {\\n border-right-color: initial;\\n transform-origin: center right;\\n}\\n.tippy-box[data-inertia][data-state=visible] {\\n transition-timing-function: cubic-bezier(0.54, 1.5, 0.38, 1.11);\\n}\\n.tippy-arrow {\\n width: 16px;\\n height: 16px;\\n}\\n.tippy-size-medium {\\n border-radius: 4px;\\n padding-left: 0.5rem;\\n padding-right: 0.5rem;\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n font-family: Inter, sans-serif;\\n font-size: 10px;\\n font-weight: 600;\\n font-style: normal;\\n line-height: 12px;\\n --tw-shadow: 0px 27px 12px 0px rgba(63, 93, 116, 0.00), 0px 18px 7px 0px rgba(63, 93, 116, 0.02), 0px 10px 6px 0px rgba(63, 93, 116, 0.08), 0px 4px 4px 0px rgba(63, 93, 116, 0.13), 0px 1px 2px 0px rgba(63, 93, 116, 0.15), 0px 0px 14px 0px rgba(63, 93, 116, 0.16);\\n --tw-shadow-colored: 0px 27px 12px 0px var(--tw-shadow-color), 0px 18px 7px 0px var(--tw-shadow-color), 0px 10px 6px 0px var(--tw-shadow-color), 0px 4px 4px 0px var(--tw-shadow-color), 0px 1px 2px 0px var(--tw-shadow-color), 0px 0px 14px 0px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.tippy-size-medium[data-placement^=top] > .tippy-arrow {\\n bottom: 0;\\n}\\n.tippy-size-medium[data-placement^=top] > .tippy-arrow::before {\\n bottom: -6px;\\n left: 2px;\\n border-width: 6px 6px 0;\\n}\\n.tippy-size-medium[data-placement^=bottom] > .tippy-arrow {\\n top: 0;\\n}\\n.tippy-size-medium[data-placement^=bottom] > .tippy-arrow::before {\\n top: -6px;\\n left: 2px;\\n border-width: 0 6px 6px;\\n}\\n.tippy-size-medium[data-placement^=left] > .tippy-arrow {\\n right: 0;\\n}\\n.tippy-size-medium[data-placement^=left] > .tippy-arrow::before {\\n border-width: 6px 0 6px 6px;\\n right: -6px;\\n top: 2px;\\n}\\n.tippy-size-medium[data-placement^=right] > .tippy-arrow {\\n left: 0;\\n}\\n.tippy-size-medium[data-placement^=right] > .tippy-arrow::before {\\n left: -6px;\\n top: 2px;\\n border-width: 6px 6px 6px 0;\\n}\\n.tippy-size-large {\\n border-radius: 8px;\\n padding-left: 0.75rem;\\n padding-right: 0.75rem;\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n font-family: Inter, sans-serif;\\n font-size: 12px;\\n font-weight: 400;\\n font-style: normal;\\n line-height: 20px;\\n --tw-shadow: 0px 27px 12px 0px rgba(63, 93, 116, 0.00), 0px 18px 7px 0px rgba(63, 93, 116, 0.02), 0px 10px 6px 0px rgba(63, 93, 116, 0.08), 0px 4px 4px 0px rgba(63, 93, 116, 0.13), 0px 1px 2px 0px rgba(63, 93, 116, 0.15), 0px 0px 14px 0px rgba(63, 93, 116, 0.16);\\n --tw-shadow-colored: 0px 27px 12px 0px var(--tw-shadow-color), 0px 18px 7px 0px var(--tw-shadow-color), 0px 10px 6px 0px var(--tw-shadow-color), 0px 4px 4px 0px var(--tw-shadow-color), 0px 1px 2px 0px var(--tw-shadow-color), 0px 0px 14px 0px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.tippy-size-large[data-placement^=top] > .tippy-arrow {\\n bottom: 0;\\n}\\n.tippy-size-large[data-placement^=top] > .tippy-arrow::before {\\n bottom: -8px;\\n left: 0;\\n border-width: 8px 8px 0;\\n}\\n.tippy-size-large[data-placement^=bottom] > .tippy-arrow {\\n top: 0;\\n}\\n.tippy-size-large[data-placement^=bottom] > .tippy-arrow::before {\\n top: -8px;\\n left: 0;\\n border-width: 0 8px 8px;\\n}\\n.tippy-size-large[data-placement^=left] > .tippy-arrow {\\n right: 0;\\n}\\n.tippy-size-large[data-placement^=left] > .tippy-arrow::before {\\n border-width: 8px 0 8px 8px;\\n right: -8px;\\n}\\n.tippy-size-large[data-placement^=right] > .tippy-arrow {\\n left: 0;\\n}\\n.tippy-size-large[data-placement^=right] > .tippy-arrow::before {\\n left: -8px;\\n border-width: 8px 8px 8px 0;\\n}\\n.tippy-variant-dark {\\n --tw-bg-opacity: 1;\\n background-color: rgb(54 80 99 / var(--tw-bg-opacity, 1));\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\n.tippy-variant-dark[data-placement^=top] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-top-color: rgb(54 80 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-dark[data-placement^=bottom] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-bottom-color: rgb(54 80 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-dark[data-placement^=left] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-left-color: rgb(54 80 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-dark[data-placement^=right] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-right-color: rgb(54 80 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-dark > .tippy-backdrop {\\n --tw-bg-opacity: 1;\\n background-color: rgb(54 80 99 / var(--tw-bg-opacity, 1));\\n}\\n.tippy-variant-dark > .tippy-svg-arrow {\\n fill: #365063;\\n}\\n.tippy-variant-light {\\n --tw-bg-opacity: 1;\\n background-color: rgb(245 248 250 / var(--tw-bg-opacity, 1));\\n --tw-text-opacity: 1;\\n color: rgb(36 53 66 / var(--tw-text-opacity, 1));\\n}\\n.tippy-variant-light[data-placement^=top] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-top-color: rgb(245 248 250 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-light[data-placement^=bottom] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-bottom-color: rgb(245 248 250 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-light[data-placement^=left] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-left-color: rgb(245 248 250 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-light[data-placement^=right] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-right-color: rgb(245 248 250 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-light > .tippy-backdrop {\\n --tw-bg-opacity: 1;\\n background-color: rgb(245 248 250 / var(--tw-bg-opacity, 1));\\n}\\n.tippy-variant-light > .tippy-svg-arrow {\\n fill: #f5f8fa;\\n}\\n.tippy-variant-white {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n --tw-text-opacity: 1;\\n color: rgb(36 53 66 / var(--tw-text-opacity, 1));\\n}\\n.tippy-variant-white[data-placement^=top] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-top-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-white[data-placement^=bottom] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-bottom-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-white[data-placement^=left] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-left-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-white[data-placement^=right] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-right-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-white > .tippy-backdrop {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n}\\n.tippy-variant-white > .tippy-svg-arrow {\\n fill: #ffffff;\\n}\\n.tippy-variant-success {\\n --tw-bg-opacity: 1;\\n background-color: rgb(71 205 104 / var(--tw-bg-opacity, 1));\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\n.tippy-variant-success[data-placement^=top] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-top-color: rgb(71 205 104 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-success[data-placement^=bottom] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-bottom-color: rgb(71 205 104 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-success[data-placement^=left] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-left-color: rgb(71 205 104 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-success[data-placement^=right] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-right-color: rgb(71 205 104 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-success > .tippy-backdrop {\\n --tw-bg-opacity: 1;\\n background-color: rgb(71 205 104 / var(--tw-bg-opacity, 1));\\n}\\n.tippy-variant-success > .tippy-svg-arrow {\\n fill: #47cd68;\\n}\\n.tippy-variant-danger {\\n --tw-bg-opacity: 1;\\n background-color: rgb(233 99 99 / var(--tw-bg-opacity, 1));\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\n.tippy-variant-danger[data-placement^=top] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-top-color: rgb(233 99 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-danger[data-placement^=bottom] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-bottom-color: rgb(233 99 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-danger[data-placement^=left] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-left-color: rgb(233 99 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-danger[data-placement^=right] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-right-color: rgb(233 99 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-variant-danger > .tippy-backdrop {\\n --tw-bg-opacity: 1;\\n background-color: rgb(233 99 99 / var(--tw-bg-opacity, 1));\\n}\\n.tippy-variant-danger > .tippy-svg-arrow {\\n fill: #e96363;\\n}\\n.tippy-box[data-theme~=dark-medium] {\\n border-radius: 4px;\\n padding-left: 0.5rem;\\n padding-right: 0.5rem;\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n font-family: Inter, sans-serif;\\n font-size: 10px;\\n font-weight: 600;\\n font-style: normal;\\n line-height: 12px;\\n --tw-shadow: 0px 27px 12px 0px rgba(63, 93, 116, 0.00), 0px 18px 7px 0px rgba(63, 93, 116, 0.02), 0px 10px 6px 0px rgba(63, 93, 116, 0.08), 0px 4px 4px 0px rgba(63, 93, 116, 0.13), 0px 1px 2px 0px rgba(63, 93, 116, 0.15), 0px 0px 14px 0px rgba(63, 93, 116, 0.16);\\n --tw-shadow-colored: 0px 27px 12px 0px var(--tw-shadow-color), 0px 18px 7px 0px var(--tw-shadow-color), 0px 10px 6px 0px var(--tw-shadow-color), 0px 4px 4px 0px var(--tw-shadow-color), 0px 1px 2px 0px var(--tw-shadow-color), 0px 0px 14px 0px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.tippy-box[data-theme~=dark-medium][data-placement^=top] > .tippy-arrow {\\n bottom: 0;\\n}\\n.tippy-box[data-theme~=dark-medium][data-placement^=top] > .tippy-arrow::before {\\n bottom: -6px;\\n left: 2px;\\n border-width: 6px 6px 0;\\n}\\n.tippy-box[data-theme~=dark-medium][data-placement^=bottom] > .tippy-arrow {\\n top: 0;\\n}\\n.tippy-box[data-theme~=dark-medium][data-placement^=bottom] > .tippy-arrow::before {\\n top: -6px;\\n left: 2px;\\n border-width: 0 6px 6px;\\n}\\n.tippy-box[data-theme~=dark-medium][data-placement^=left] > .tippy-arrow {\\n right: 0;\\n}\\n.tippy-box[data-theme~=dark-medium][data-placement^=left] > .tippy-arrow::before {\\n border-width: 6px 0 6px 6px;\\n right: -6px;\\n top: 2px;\\n}\\n.tippy-box[data-theme~=dark-medium][data-placement^=right] > .tippy-arrow {\\n left: 0;\\n}\\n.tippy-box[data-theme~=dark-medium][data-placement^=right] > .tippy-arrow::before {\\n left: -6px;\\n top: 2px;\\n border-width: 6px 6px 6px 0;\\n}\\n.tippy-box[data-theme~=dark-medium] {\\n --tw-bg-opacity: 1;\\n background-color: rgb(54 80 99 / var(--tw-bg-opacity, 1));\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\n.tippy-box[data-theme~=dark-medium][data-placement^=top] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-top-color: rgb(54 80 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=dark-medium][data-placement^=bottom] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-bottom-color: rgb(54 80 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=dark-medium][data-placement^=left] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-left-color: rgb(54 80 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=dark-medium][data-placement^=right] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-right-color: rgb(54 80 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=dark-medium] > .tippy-backdrop {\\n --tw-bg-opacity: 1;\\n background-color: rgb(54 80 99 / var(--tw-bg-opacity, 1));\\n}\\n.tippy-box[data-theme~=dark-medium] > .tippy-svg-arrow {\\n fill: #365063;\\n}\\n.tippy-box[data-theme~=dark-large] {\\n border-radius: 8px;\\n padding-left: 0.75rem;\\n padding-right: 0.75rem;\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n font-family: Inter, sans-serif;\\n font-size: 12px;\\n font-weight: 400;\\n font-style: normal;\\n line-height: 20px;\\n --tw-shadow: 0px 27px 12px 0px rgba(63, 93, 116, 0.00), 0px 18px 7px 0px rgba(63, 93, 116, 0.02), 0px 10px 6px 0px rgba(63, 93, 116, 0.08), 0px 4px 4px 0px rgba(63, 93, 116, 0.13), 0px 1px 2px 0px rgba(63, 93, 116, 0.15), 0px 0px 14px 0px rgba(63, 93, 116, 0.16);\\n --tw-shadow-colored: 0px 27px 12px 0px var(--tw-shadow-color), 0px 18px 7px 0px var(--tw-shadow-color), 0px 10px 6px 0px var(--tw-shadow-color), 0px 4px 4px 0px var(--tw-shadow-color), 0px 1px 2px 0px var(--tw-shadow-color), 0px 0px 14px 0px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.tippy-box[data-theme~=dark-large][data-placement^=top] > .tippy-arrow {\\n bottom: 0;\\n}\\n.tippy-box[data-theme~=dark-large][data-placement^=top] > .tippy-arrow::before {\\n bottom: -8px;\\n left: 0;\\n border-width: 8px 8px 0;\\n}\\n.tippy-box[data-theme~=dark-large][data-placement^=bottom] > .tippy-arrow {\\n top: 0;\\n}\\n.tippy-box[data-theme~=dark-large][data-placement^=bottom] > .tippy-arrow::before {\\n top: -8px;\\n left: 0;\\n border-width: 0 8px 8px;\\n}\\n.tippy-box[data-theme~=dark-large][data-placement^=left] > .tippy-arrow {\\n right: 0;\\n}\\n.tippy-box[data-theme~=dark-large][data-placement^=left] > .tippy-arrow::before {\\n border-width: 8px 0 8px 8px;\\n right: -8px;\\n}\\n.tippy-box[data-theme~=dark-large][data-placement^=right] > .tippy-arrow {\\n left: 0;\\n}\\n.tippy-box[data-theme~=dark-large][data-placement^=right] > .tippy-arrow::before {\\n left: -8px;\\n border-width: 8px 8px 8px 0;\\n}\\n.tippy-box[data-theme~=dark-large] {\\n --tw-bg-opacity: 1;\\n background-color: rgb(54 80 99 / var(--tw-bg-opacity, 1));\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\n.tippy-box[data-theme~=dark-large][data-placement^=top] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-top-color: rgb(54 80 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=dark-large][data-placement^=bottom] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-bottom-color: rgb(54 80 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=dark-large][data-placement^=left] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-left-color: rgb(54 80 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=dark-large][data-placement^=right] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-right-color: rgb(54 80 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=dark-large] > .tippy-backdrop {\\n --tw-bg-opacity: 1;\\n background-color: rgb(54 80 99 / var(--tw-bg-opacity, 1));\\n}\\n.tippy-box[data-theme~=dark-large] > .tippy-svg-arrow {\\n fill: #365063;\\n}\\n.tippy-box[data-theme~=light-medium] {\\n border-radius: 4px;\\n padding-left: 0.5rem;\\n padding-right: 0.5rem;\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n font-family: Inter, sans-serif;\\n font-size: 10px;\\n font-weight: 600;\\n font-style: normal;\\n line-height: 12px;\\n --tw-shadow: 0px 27px 12px 0px rgba(63, 93, 116, 0.00), 0px 18px 7px 0px rgba(63, 93, 116, 0.02), 0px 10px 6px 0px rgba(63, 93, 116, 0.08), 0px 4px 4px 0px rgba(63, 93, 116, 0.13), 0px 1px 2px 0px rgba(63, 93, 116, 0.15), 0px 0px 14px 0px rgba(63, 93, 116, 0.16);\\n --tw-shadow-colored: 0px 27px 12px 0px var(--tw-shadow-color), 0px 18px 7px 0px var(--tw-shadow-color), 0px 10px 6px 0px var(--tw-shadow-color), 0px 4px 4px 0px var(--tw-shadow-color), 0px 1px 2px 0px var(--tw-shadow-color), 0px 0px 14px 0px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.tippy-box[data-theme~=light-medium][data-placement^=top] > .tippy-arrow {\\n bottom: 0;\\n}\\n.tippy-box[data-theme~=light-medium][data-placement^=top] > .tippy-arrow::before {\\n bottom: -6px;\\n left: 2px;\\n border-width: 6px 6px 0;\\n}\\n.tippy-box[data-theme~=light-medium][data-placement^=bottom] > .tippy-arrow {\\n top: 0;\\n}\\n.tippy-box[data-theme~=light-medium][data-placement^=bottom] > .tippy-arrow::before {\\n top: -6px;\\n left: 2px;\\n border-width: 0 6px 6px;\\n}\\n.tippy-box[data-theme~=light-medium][data-placement^=left] > .tippy-arrow {\\n right: 0;\\n}\\n.tippy-box[data-theme~=light-medium][data-placement^=left] > .tippy-arrow::before {\\n border-width: 6px 0 6px 6px;\\n right: -6px;\\n top: 2px;\\n}\\n.tippy-box[data-theme~=light-medium][data-placement^=right] > .tippy-arrow {\\n left: 0;\\n}\\n.tippy-box[data-theme~=light-medium][data-placement^=right] > .tippy-arrow::before {\\n left: -6px;\\n top: 2px;\\n border-width: 6px 6px 6px 0;\\n}\\n.tippy-box[data-theme~=light-medium] {\\n --tw-bg-opacity: 1;\\n background-color: rgb(245 248 250 / var(--tw-bg-opacity, 1));\\n --tw-text-opacity: 1;\\n color: rgb(36 53 66 / var(--tw-text-opacity, 1));\\n}\\n.tippy-box[data-theme~=light-medium][data-placement^=top] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-top-color: rgb(245 248 250 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=light-medium][data-placement^=bottom] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-bottom-color: rgb(245 248 250 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=light-medium][data-placement^=left] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-left-color: rgb(245 248 250 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=light-medium][data-placement^=right] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-right-color: rgb(245 248 250 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=light-medium] > .tippy-backdrop {\\n --tw-bg-opacity: 1;\\n background-color: rgb(245 248 250 / var(--tw-bg-opacity, 1));\\n}\\n.tippy-box[data-theme~=light-medium] > .tippy-svg-arrow {\\n fill: #f5f8fa;\\n}\\n.tippy-box[data-theme~=light-large] {\\n border-radius: 8px;\\n padding-left: 0.75rem;\\n padding-right: 0.75rem;\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n font-family: Inter, sans-serif;\\n font-size: 12px;\\n font-weight: 400;\\n font-style: normal;\\n line-height: 20px;\\n --tw-shadow: 0px 27px 12px 0px rgba(63, 93, 116, 0.00), 0px 18px 7px 0px rgba(63, 93, 116, 0.02), 0px 10px 6px 0px rgba(63, 93, 116, 0.08), 0px 4px 4px 0px rgba(63, 93, 116, 0.13), 0px 1px 2px 0px rgba(63, 93, 116, 0.15), 0px 0px 14px 0px rgba(63, 93, 116, 0.16);\\n --tw-shadow-colored: 0px 27px 12px 0px var(--tw-shadow-color), 0px 18px 7px 0px var(--tw-shadow-color), 0px 10px 6px 0px var(--tw-shadow-color), 0px 4px 4px 0px var(--tw-shadow-color), 0px 1px 2px 0px var(--tw-shadow-color), 0px 0px 14px 0px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.tippy-box[data-theme~=light-large][data-placement^=top] > .tippy-arrow {\\n bottom: 0;\\n}\\n.tippy-box[data-theme~=light-large][data-placement^=top] > .tippy-arrow::before {\\n bottom: -8px;\\n left: 0;\\n border-width: 8px 8px 0;\\n}\\n.tippy-box[data-theme~=light-large][data-placement^=bottom] > .tippy-arrow {\\n top: 0;\\n}\\n.tippy-box[data-theme~=light-large][data-placement^=bottom] > .tippy-arrow::before {\\n top: -8px;\\n left: 0;\\n border-width: 0 8px 8px;\\n}\\n.tippy-box[data-theme~=light-large][data-placement^=left] > .tippy-arrow {\\n right: 0;\\n}\\n.tippy-box[data-theme~=light-large][data-placement^=left] > .tippy-arrow::before {\\n border-width: 8px 0 8px 8px;\\n right: -8px;\\n}\\n.tippy-box[data-theme~=light-large][data-placement^=right] > .tippy-arrow {\\n left: 0;\\n}\\n.tippy-box[data-theme~=light-large][data-placement^=right] > .tippy-arrow::before {\\n left: -8px;\\n border-width: 8px 8px 8px 0;\\n}\\n.tippy-box[data-theme~=light-large] {\\n --tw-bg-opacity: 1;\\n background-color: rgb(245 248 250 / var(--tw-bg-opacity, 1));\\n --tw-text-opacity: 1;\\n color: rgb(36 53 66 / var(--tw-text-opacity, 1));\\n}\\n.tippy-box[data-theme~=light-large][data-placement^=top] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-top-color: rgb(245 248 250 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=light-large][data-placement^=bottom] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-bottom-color: rgb(245 248 250 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=light-large][data-placement^=left] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-left-color: rgb(245 248 250 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=light-large][data-placement^=right] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-right-color: rgb(245 248 250 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=light-large] > .tippy-backdrop {\\n --tw-bg-opacity: 1;\\n background-color: rgb(245 248 250 / var(--tw-bg-opacity, 1));\\n}\\n.tippy-box[data-theme~=light-large] > .tippy-svg-arrow {\\n fill: #f5f8fa;\\n}\\n.tippy-box[data-theme~=white-medium] {\\n border-radius: 4px;\\n padding-left: 0.5rem;\\n padding-right: 0.5rem;\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n font-family: Inter, sans-serif;\\n font-size: 10px;\\n font-weight: 600;\\n font-style: normal;\\n line-height: 12px;\\n --tw-shadow: 0px 27px 12px 0px rgba(63, 93, 116, 0.00), 0px 18px 7px 0px rgba(63, 93, 116, 0.02), 0px 10px 6px 0px rgba(63, 93, 116, 0.08), 0px 4px 4px 0px rgba(63, 93, 116, 0.13), 0px 1px 2px 0px rgba(63, 93, 116, 0.15), 0px 0px 14px 0px rgba(63, 93, 116, 0.16);\\n --tw-shadow-colored: 0px 27px 12px 0px var(--tw-shadow-color), 0px 18px 7px 0px var(--tw-shadow-color), 0px 10px 6px 0px var(--tw-shadow-color), 0px 4px 4px 0px var(--tw-shadow-color), 0px 1px 2px 0px var(--tw-shadow-color), 0px 0px 14px 0px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.tippy-box[data-theme~=white-medium][data-placement^=top] > .tippy-arrow {\\n bottom: 0;\\n}\\n.tippy-box[data-theme~=white-medium][data-placement^=top] > .tippy-arrow::before {\\n bottom: -6px;\\n left: 2px;\\n border-width: 6px 6px 0;\\n}\\n.tippy-box[data-theme~=white-medium][data-placement^=bottom] > .tippy-arrow {\\n top: 0;\\n}\\n.tippy-box[data-theme~=white-medium][data-placement^=bottom] > .tippy-arrow::before {\\n top: -6px;\\n left: 2px;\\n border-width: 0 6px 6px;\\n}\\n.tippy-box[data-theme~=white-medium][data-placement^=left] > .tippy-arrow {\\n right: 0;\\n}\\n.tippy-box[data-theme~=white-medium][data-placement^=left] > .tippy-arrow::before {\\n border-width: 6px 0 6px 6px;\\n right: -6px;\\n top: 2px;\\n}\\n.tippy-box[data-theme~=white-medium][data-placement^=right] > .tippy-arrow {\\n left: 0;\\n}\\n.tippy-box[data-theme~=white-medium][data-placement^=right] > .tippy-arrow::before {\\n left: -6px;\\n top: 2px;\\n border-width: 6px 6px 6px 0;\\n}\\n.tippy-box[data-theme~=white-medium] {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n --tw-text-opacity: 1;\\n color: rgb(36 53 66 / var(--tw-text-opacity, 1));\\n}\\n.tippy-box[data-theme~=white-medium][data-placement^=top] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-top-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=white-medium][data-placement^=bottom] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-bottom-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=white-medium][data-placement^=left] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-left-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=white-medium][data-placement^=right] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-right-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=white-medium] > .tippy-backdrop {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n}\\n.tippy-box[data-theme~=white-medium] > .tippy-svg-arrow {\\n fill: #ffffff;\\n}\\n.tippy-box[data-theme~=white-large] {\\n border-radius: 8px;\\n padding-left: 0.75rem;\\n padding-right: 0.75rem;\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n font-family: Inter, sans-serif;\\n font-size: 12px;\\n font-weight: 400;\\n font-style: normal;\\n line-height: 20px;\\n --tw-shadow: 0px 27px 12px 0px rgba(63, 93, 116, 0.00), 0px 18px 7px 0px rgba(63, 93, 116, 0.02), 0px 10px 6px 0px rgba(63, 93, 116, 0.08), 0px 4px 4px 0px rgba(63, 93, 116, 0.13), 0px 1px 2px 0px rgba(63, 93, 116, 0.15), 0px 0px 14px 0px rgba(63, 93, 116, 0.16);\\n --tw-shadow-colored: 0px 27px 12px 0px var(--tw-shadow-color), 0px 18px 7px 0px var(--tw-shadow-color), 0px 10px 6px 0px var(--tw-shadow-color), 0px 4px 4px 0px var(--tw-shadow-color), 0px 1px 2px 0px var(--tw-shadow-color), 0px 0px 14px 0px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.tippy-box[data-theme~=white-large][data-placement^=top] > .tippy-arrow {\\n bottom: 0;\\n}\\n.tippy-box[data-theme~=white-large][data-placement^=top] > .tippy-arrow::before {\\n bottom: -8px;\\n left: 0;\\n border-width: 8px 8px 0;\\n}\\n.tippy-box[data-theme~=white-large][data-placement^=bottom] > .tippy-arrow {\\n top: 0;\\n}\\n.tippy-box[data-theme~=white-large][data-placement^=bottom] > .tippy-arrow::before {\\n top: -8px;\\n left: 0;\\n border-width: 0 8px 8px;\\n}\\n.tippy-box[data-theme~=white-large][data-placement^=left] > .tippy-arrow {\\n right: 0;\\n}\\n.tippy-box[data-theme~=white-large][data-placement^=left] > .tippy-arrow::before {\\n border-width: 8px 0 8px 8px;\\n right: -8px;\\n}\\n.tippy-box[data-theme~=white-large][data-placement^=right] > .tippy-arrow {\\n left: 0;\\n}\\n.tippy-box[data-theme~=white-large][data-placement^=right] > .tippy-arrow::before {\\n left: -8px;\\n border-width: 8px 8px 8px 0;\\n}\\n.tippy-box[data-theme~=white-large] {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n --tw-text-opacity: 1;\\n color: rgb(36 53 66 / var(--tw-text-opacity, 1));\\n}\\n.tippy-box[data-theme~=white-large][data-placement^=top] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-top-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=white-large][data-placement^=bottom] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-bottom-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=white-large][data-placement^=left] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-left-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=white-large][data-placement^=right] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-right-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=white-large] > .tippy-backdrop {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n}\\n.tippy-box[data-theme~=white-large] > .tippy-svg-arrow {\\n fill: #ffffff;\\n}\\n.tippy-box[data-theme~=success-medium] {\\n border-radius: 4px;\\n padding-left: 0.5rem;\\n padding-right: 0.5rem;\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n font-family: Inter, sans-serif;\\n font-size: 10px;\\n font-weight: 600;\\n font-style: normal;\\n line-height: 12px;\\n --tw-shadow: 0px 27px 12px 0px rgba(63, 93, 116, 0.00), 0px 18px 7px 0px rgba(63, 93, 116, 0.02), 0px 10px 6px 0px rgba(63, 93, 116, 0.08), 0px 4px 4px 0px rgba(63, 93, 116, 0.13), 0px 1px 2px 0px rgba(63, 93, 116, 0.15), 0px 0px 14px 0px rgba(63, 93, 116, 0.16);\\n --tw-shadow-colored: 0px 27px 12px 0px var(--tw-shadow-color), 0px 18px 7px 0px var(--tw-shadow-color), 0px 10px 6px 0px var(--tw-shadow-color), 0px 4px 4px 0px var(--tw-shadow-color), 0px 1px 2px 0px var(--tw-shadow-color), 0px 0px 14px 0px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.tippy-box[data-theme~=success-medium][data-placement^=top] > .tippy-arrow {\\n bottom: 0;\\n}\\n.tippy-box[data-theme~=success-medium][data-placement^=top] > .tippy-arrow::before {\\n bottom: -6px;\\n left: 2px;\\n border-width: 6px 6px 0;\\n}\\n.tippy-box[data-theme~=success-medium][data-placement^=bottom] > .tippy-arrow {\\n top: 0;\\n}\\n.tippy-box[data-theme~=success-medium][data-placement^=bottom] > .tippy-arrow::before {\\n top: -6px;\\n left: 2px;\\n border-width: 0 6px 6px;\\n}\\n.tippy-box[data-theme~=success-medium][data-placement^=left] > .tippy-arrow {\\n right: 0;\\n}\\n.tippy-box[data-theme~=success-medium][data-placement^=left] > .tippy-arrow::before {\\n border-width: 6px 0 6px 6px;\\n right: -6px;\\n top: 2px;\\n}\\n.tippy-box[data-theme~=success-medium][data-placement^=right] > .tippy-arrow {\\n left: 0;\\n}\\n.tippy-box[data-theme~=success-medium][data-placement^=right] > .tippy-arrow::before {\\n left: -6px;\\n top: 2px;\\n border-width: 6px 6px 6px 0;\\n}\\n.tippy-box[data-theme~=success-medium] {\\n --tw-bg-opacity: 1;\\n background-color: rgb(71 205 104 / var(--tw-bg-opacity, 1));\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\n.tippy-box[data-theme~=success-medium][data-placement^=top] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-top-color: rgb(71 205 104 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=success-medium][data-placement^=bottom] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-bottom-color: rgb(71 205 104 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=success-medium][data-placement^=left] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-left-color: rgb(71 205 104 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=success-medium][data-placement^=right] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-right-color: rgb(71 205 104 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=success-medium] > .tippy-backdrop {\\n --tw-bg-opacity: 1;\\n background-color: rgb(71 205 104 / var(--tw-bg-opacity, 1));\\n}\\n.tippy-box[data-theme~=success-medium] > .tippy-svg-arrow {\\n fill: #47cd68;\\n}\\n.tippy-box[data-theme~=success-large] {\\n border-radius: 8px;\\n padding-left: 0.75rem;\\n padding-right: 0.75rem;\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n font-family: Inter, sans-serif;\\n font-size: 12px;\\n font-weight: 400;\\n font-style: normal;\\n line-height: 20px;\\n --tw-shadow: 0px 27px 12px 0px rgba(63, 93, 116, 0.00), 0px 18px 7px 0px rgba(63, 93, 116, 0.02), 0px 10px 6px 0px rgba(63, 93, 116, 0.08), 0px 4px 4px 0px rgba(63, 93, 116, 0.13), 0px 1px 2px 0px rgba(63, 93, 116, 0.15), 0px 0px 14px 0px rgba(63, 93, 116, 0.16);\\n --tw-shadow-colored: 0px 27px 12px 0px var(--tw-shadow-color), 0px 18px 7px 0px var(--tw-shadow-color), 0px 10px 6px 0px var(--tw-shadow-color), 0px 4px 4px 0px var(--tw-shadow-color), 0px 1px 2px 0px var(--tw-shadow-color), 0px 0px 14px 0px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.tippy-box[data-theme~=success-large][data-placement^=top] > .tippy-arrow {\\n bottom: 0;\\n}\\n.tippy-box[data-theme~=success-large][data-placement^=top] > .tippy-arrow::before {\\n bottom: -8px;\\n left: 0;\\n border-width: 8px 8px 0;\\n}\\n.tippy-box[data-theme~=success-large][data-placement^=bottom] > .tippy-arrow {\\n top: 0;\\n}\\n.tippy-box[data-theme~=success-large][data-placement^=bottom] > .tippy-arrow::before {\\n top: -8px;\\n left: 0;\\n border-width: 0 8px 8px;\\n}\\n.tippy-box[data-theme~=success-large][data-placement^=left] > .tippy-arrow {\\n right: 0;\\n}\\n.tippy-box[data-theme~=success-large][data-placement^=left] > .tippy-arrow::before {\\n border-width: 8px 0 8px 8px;\\n right: -8px;\\n}\\n.tippy-box[data-theme~=success-large][data-placement^=right] > .tippy-arrow {\\n left: 0;\\n}\\n.tippy-box[data-theme~=success-large][data-placement^=right] > .tippy-arrow::before {\\n left: -8px;\\n border-width: 8px 8px 8px 0;\\n}\\n.tippy-box[data-theme~=success-large] {\\n --tw-bg-opacity: 1;\\n background-color: rgb(71 205 104 / var(--tw-bg-opacity, 1));\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\n.tippy-box[data-theme~=success-large][data-placement^=top] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-top-color: rgb(71 205 104 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=success-large][data-placement^=bottom] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-bottom-color: rgb(71 205 104 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=success-large][data-placement^=left] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-left-color: rgb(71 205 104 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=success-large][data-placement^=right] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-right-color: rgb(71 205 104 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=success-large] > .tippy-backdrop {\\n --tw-bg-opacity: 1;\\n background-color: rgb(71 205 104 / var(--tw-bg-opacity, 1));\\n}\\n.tippy-box[data-theme~=success-large] > .tippy-svg-arrow {\\n fill: #47cd68;\\n}\\n.tippy-box[data-theme~=danger-medium] {\\n border-radius: 4px;\\n padding-left: 0.5rem;\\n padding-right: 0.5rem;\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n font-family: Inter, sans-serif;\\n font-size: 10px;\\n font-weight: 600;\\n font-style: normal;\\n line-height: 12px;\\n --tw-shadow: 0px 27px 12px 0px rgba(63, 93, 116, 0.00), 0px 18px 7px 0px rgba(63, 93, 116, 0.02), 0px 10px 6px 0px rgba(63, 93, 116, 0.08), 0px 4px 4px 0px rgba(63, 93, 116, 0.13), 0px 1px 2px 0px rgba(63, 93, 116, 0.15), 0px 0px 14px 0px rgba(63, 93, 116, 0.16);\\n --tw-shadow-colored: 0px 27px 12px 0px var(--tw-shadow-color), 0px 18px 7px 0px var(--tw-shadow-color), 0px 10px 6px 0px var(--tw-shadow-color), 0px 4px 4px 0px var(--tw-shadow-color), 0px 1px 2px 0px var(--tw-shadow-color), 0px 0px 14px 0px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.tippy-box[data-theme~=danger-medium][data-placement^=top] > .tippy-arrow {\\n bottom: 0;\\n}\\n.tippy-box[data-theme~=danger-medium][data-placement^=top] > .tippy-arrow::before {\\n bottom: -6px;\\n left: 2px;\\n border-width: 6px 6px 0;\\n}\\n.tippy-box[data-theme~=danger-medium][data-placement^=bottom] > .tippy-arrow {\\n top: 0;\\n}\\n.tippy-box[data-theme~=danger-medium][data-placement^=bottom] > .tippy-arrow::before {\\n top: -6px;\\n left: 2px;\\n border-width: 0 6px 6px;\\n}\\n.tippy-box[data-theme~=danger-medium][data-placement^=left] > .tippy-arrow {\\n right: 0;\\n}\\n.tippy-box[data-theme~=danger-medium][data-placement^=left] > .tippy-arrow::before {\\n border-width: 6px 0 6px 6px;\\n right: -6px;\\n top: 2px;\\n}\\n.tippy-box[data-theme~=danger-medium][data-placement^=right] > .tippy-arrow {\\n left: 0;\\n}\\n.tippy-box[data-theme~=danger-medium][data-placement^=right] > .tippy-arrow::before {\\n left: -6px;\\n top: 2px;\\n border-width: 6px 6px 6px 0;\\n}\\n.tippy-box[data-theme~=danger-medium] {\\n --tw-bg-opacity: 1;\\n background-color: rgb(233 99 99 / var(--tw-bg-opacity, 1));\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\n.tippy-box[data-theme~=danger-medium][data-placement^=top] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-top-color: rgb(233 99 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=danger-medium][data-placement^=bottom] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-bottom-color: rgb(233 99 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=danger-medium][data-placement^=left] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-left-color: rgb(233 99 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=danger-medium][data-placement^=right] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-right-color: rgb(233 99 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=danger-medium] > .tippy-backdrop {\\n --tw-bg-opacity: 1;\\n background-color: rgb(233 99 99 / var(--tw-bg-opacity, 1));\\n}\\n.tippy-box[data-theme~=danger-medium] > .tippy-svg-arrow {\\n fill: #e96363;\\n}\\n.tippy-box[data-theme~=danger-large] {\\n border-radius: 8px;\\n padding-left: 0.75rem;\\n padding-right: 0.75rem;\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n font-family: Inter, sans-serif;\\n font-size: 12px;\\n font-weight: 400;\\n font-style: normal;\\n line-height: 20px;\\n --tw-shadow: 0px 27px 12px 0px rgba(63, 93, 116, 0.00), 0px 18px 7px 0px rgba(63, 93, 116, 0.02), 0px 10px 6px 0px rgba(63, 93, 116, 0.08), 0px 4px 4px 0px rgba(63, 93, 116, 0.13), 0px 1px 2px 0px rgba(63, 93, 116, 0.15), 0px 0px 14px 0px rgba(63, 93, 116, 0.16);\\n --tw-shadow-colored: 0px 27px 12px 0px var(--tw-shadow-color), 0px 18px 7px 0px var(--tw-shadow-color), 0px 10px 6px 0px var(--tw-shadow-color), 0px 4px 4px 0px var(--tw-shadow-color), 0px 1px 2px 0px var(--tw-shadow-color), 0px 0px 14px 0px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.tippy-box[data-theme~=danger-large][data-placement^=top] > .tippy-arrow {\\n bottom: 0;\\n}\\n.tippy-box[data-theme~=danger-large][data-placement^=top] > .tippy-arrow::before {\\n bottom: -8px;\\n left: 0;\\n border-width: 8px 8px 0;\\n}\\n.tippy-box[data-theme~=danger-large][data-placement^=bottom] > .tippy-arrow {\\n top: 0;\\n}\\n.tippy-box[data-theme~=danger-large][data-placement^=bottom] > .tippy-arrow::before {\\n top: -8px;\\n left: 0;\\n border-width: 0 8px 8px;\\n}\\n.tippy-box[data-theme~=danger-large][data-placement^=left] > .tippy-arrow {\\n right: 0;\\n}\\n.tippy-box[data-theme~=danger-large][data-placement^=left] > .tippy-arrow::before {\\n border-width: 8px 0 8px 8px;\\n right: -8px;\\n}\\n.tippy-box[data-theme~=danger-large][data-placement^=right] > .tippy-arrow {\\n left: 0;\\n}\\n.tippy-box[data-theme~=danger-large][data-placement^=right] > .tippy-arrow::before {\\n left: -8px;\\n border-width: 8px 8px 8px 0;\\n}\\n.tippy-box[data-theme~=danger-large] {\\n --tw-bg-opacity: 1;\\n background-color: rgb(233 99 99 / var(--tw-bg-opacity, 1));\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\n.tippy-box[data-theme~=danger-large][data-placement^=top] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-top-color: rgb(233 99 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=danger-large][data-placement^=bottom] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-bottom-color: rgb(233 99 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=danger-large][data-placement^=left] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-left-color: rgb(233 99 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=danger-large][data-placement^=right] .tippy-arrow::before {\\n --tw-border-opacity: 1;\\n border-right-color: rgb(233 99 99 / var(--tw-border-opacity, 1));\\n}\\n.tippy-box[data-theme~=danger-large] > .tippy-backdrop {\\n --tw-bg-opacity: 1;\\n background-color: rgb(233 99 99 / var(--tw-bg-opacity, 1));\\n}\\n.tippy-box[data-theme~=danger-large] > .tippy-svg-arrow {\\n fill: #e96363;\\n}\\n*, ::before, ::after {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: ;\\n --tw-contain-size: ;\\n --tw-contain-layout: ;\\n --tw-contain-paint: ;\\n --tw-contain-style: ;\\n}\\n::backdrop {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: ;\\n --tw-contain-size: ;\\n --tw-contain-layout: ;\\n --tw-contain-paint: ;\\n --tw-contain-style: ;\\n}\\n/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com\\n */\\n/*\\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\\n*/\\n*,\\n::before,\\n::after {\\n box-sizing: border-box; /* 1 */\\n border-width: 0; /* 2 */\\n border-style: solid; /* 2 */\\n border-color: #e5e7eb; /* 2 */\\n}\\n::before,\\n::after {\\n --tw-content: '';\\n}\\n/*\\n1. Use a consistent sensible line-height in all browsers.\\n2. Prevent adjustments of font size after orientation changes in iOS.\\n3. Use a more readable tab size.\\n4. Use the user's configured `sans` font-family by default.\\n5. Use the user's configured `sans` font-feature-settings by default.\\n6. Use the user's configured `sans` font-variation-settings by default.\\n7. Disable tap highlights on iOS\\n*/\\nhtml,\\n:host {\\n line-height: 1.5; /* 1 */\\n -webkit-text-size-adjust: 100%; /* 2 */\\n -moz-tab-size: 4; /* 3 */\\n -o-tab-size: 4;\\n tab-size: 4; /* 3 */\\n font-family: ui-sans-serif, system-ui, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\"; /* 4 */\\n font-feature-settings: normal; /* 5 */\\n font-variation-settings: normal; /* 6 */\\n -webkit-tap-highlight-color: transparent; /* 7 */\\n}\\n/*\\n1. Remove the margin in all browsers.\\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\\n*/\\nbody {\\n margin: 0; /* 1 */\\n line-height: inherit; /* 2 */\\n}\\n/*\\n1. Add the correct height in Firefox.\\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\\n3. Ensure horizontal rules are visible by default.\\n*/\\nhr {\\n height: 0; /* 1 */\\n color: inherit; /* 2 */\\n border-top-width: 1px; /* 3 */\\n}\\n/*\\nAdd the correct text decoration in Chrome, Edge, and Safari.\\n*/\\nabbr:where([title]) {\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n}\\n/*\\nRemove the default font size and weight for headings.\\n*/\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n font-size: inherit;\\n font-weight: inherit;\\n}\\n/*\\nReset links to optimize for opt-in styling instead of opt-out.\\n*/\\na {\\n color: inherit;\\n text-decoration: inherit;\\n}\\n/*\\nAdd the correct font weight in Edge and Safari.\\n*/\\nb,\\nstrong {\\n font-weight: bolder;\\n}\\n/*\\n1. Use the user's configured `mono` font-family by default.\\n2. Use the user's configured `mono` font-feature-settings by default.\\n3. Use the user's configured `mono` font-variation-settings by default.\\n4. Correct the odd `em` font sizing in all browsers.\\n*/\\ncode,\\nkbd,\\nsamp,\\npre {\\n font-family: \\\"PT Mono\\\", sans-serif; /* 1 */\\n font-feature-settings: normal; /* 2 */\\n font-variation-settings: normal; /* 3 */\\n font-size: 1em; /* 4 */\\n}\\n/*\\nAdd the correct font size in all browsers.\\n*/\\nsmall {\\n font-size: 80%;\\n}\\n/*\\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\\n*/\\nsub,\\nsup {\\n font-size: 75%;\\n line-height: 0;\\n position: relative;\\n vertical-align: baseline;\\n}\\nsub {\\n bottom: -0.25em;\\n}\\nsup {\\n top: -0.5em;\\n}\\n/*\\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\\n3. Remove gaps between table borders by default.\\n*/\\ntable {\\n text-indent: 0; /* 1 */\\n border-color: inherit; /* 2 */\\n border-collapse: collapse; /* 3 */\\n}\\n/*\\n1. Change the font styles in all browsers.\\n2. Remove the margin in Firefox and Safari.\\n3. Remove default padding in all browsers.\\n*/\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n font-family: inherit; /* 1 */\\n font-feature-settings: inherit; /* 1 */\\n font-variation-settings: inherit; /* 1 */\\n font-size: 100%; /* 1 */\\n font-weight: inherit; /* 1 */\\n line-height: inherit; /* 1 */\\n letter-spacing: inherit; /* 1 */\\n color: inherit; /* 1 */\\n margin: 0; /* 2 */\\n padding: 0; /* 3 */\\n}\\n/*\\nRemove the inheritance of text transform in Edge and Firefox.\\n*/\\nbutton,\\nselect {\\n text-transform: none;\\n}\\n/*\\n1. Correct the inability to style clickable types in iOS and Safari.\\n2. Remove default button styles.\\n*/\\nbutton,\\ninput:where([type='button']),\\ninput:where([type='reset']),\\ninput:where([type='submit']) {\\n -webkit-appearance: button; /* 1 */\\n background-color: transparent; /* 2 */\\n background-image: none; /* 2 */\\n}\\n/*\\nUse the modern Firefox focus style for all focusable elements.\\n*/\\n:-moz-focusring {\\n outline: auto;\\n}\\n/*\\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\\n*/\\n:-moz-ui-invalid {\\n box-shadow: none;\\n}\\n/*\\nAdd the correct vertical alignment in Chrome and Firefox.\\n*/\\nprogress {\\n vertical-align: baseline;\\n}\\n/*\\nCorrect the cursor style of increment and decrement buttons in Safari.\\n*/\\n::-webkit-inner-spin-button,\\n::-webkit-outer-spin-button {\\n height: auto;\\n}\\n/*\\n1. Correct the odd appearance in Chrome and Safari.\\n2. Correct the outline style in Safari.\\n*/\\n[type='search'] {\\n -webkit-appearance: textfield; /* 1 */\\n outline-offset: -2px; /* 2 */\\n}\\n/*\\nRemove the inner padding in Chrome and Safari on macOS.\\n*/\\n::-webkit-search-decoration {\\n -webkit-appearance: none;\\n}\\n/*\\n1. Correct the inability to style clickable types in iOS and Safari.\\n2. Change font properties to `inherit` in Safari.\\n*/\\n::-webkit-file-upload-button {\\n -webkit-appearance: button; /* 1 */\\n font: inherit; /* 2 */\\n}\\n/*\\nAdd the correct display in Chrome and Safari.\\n*/\\nsummary {\\n display: list-item;\\n}\\n/*\\nRemoves the default spacing and border for appropriate elements.\\n*/\\nblockquote,\\ndl,\\ndd,\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6,\\nhr,\\nfigure,\\np,\\npre {\\n margin: 0;\\n}\\nfieldset {\\n margin: 0;\\n padding: 0;\\n}\\nlegend {\\n padding: 0;\\n}\\nol,\\nul,\\nmenu {\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n}\\n/*\\nReset default styling for dialogs.\\n*/\\ndialog {\\n padding: 0;\\n}\\n/*\\nPrevent resizing textareas horizontally by default.\\n*/\\ntextarea {\\n resize: vertical;\\n}\\n/*\\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\\n2. Set the default placeholder color to the user's configured gray 400 color.\\n*/\\ninput::-moz-placeholder, textarea::-moz-placeholder {\\n opacity: 1; /* 1 */\\n color: #9ca3af; /* 2 */\\n}\\ninput::placeholder,\\ntextarea::placeholder {\\n opacity: 1; /* 1 */\\n color: #9ca3af; /* 2 */\\n}\\n/*\\nSet the default cursor for buttons.\\n*/\\nbutton,\\n[role=\\\"button\\\"] {\\n cursor: pointer;\\n}\\n/*\\nMake sure disabled buttons don't get the pointer cursor.\\n*/\\n:disabled {\\n cursor: default;\\n}\\n/*\\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\\n This can trigger a poorly considered lint error in some tools but is included by design.\\n*/\\nimg,\\nsvg,\\nvideo,\\ncanvas,\\naudio,\\niframe,\\nembed,\\nobject {\\n display: block; /* 1 */\\n vertical-align: middle; /* 2 */\\n}\\n/*\\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\\n*/\\nimg,\\nvideo {\\n max-width: 100%;\\n height: auto;\\n}\\n/* Make elements with the HTML hidden attribute stay hidden by default */\\n[hidden]:where(:not([hidden=\\\"until-found\\\"])) {\\n display: none;\\n}\\n.heading-inter-21-semi-bold {\\n font-family: Inter, sans-serif;\\n font-size: 21px;\\n font-weight: 600;\\n font-style: normal;\\n line-height: 26px;\\n}\\n.heading-inter-17-semi-bold {\\n font-family: Inter, sans-serif;\\n font-size: 17px;\\n font-weight: 600;\\n font-style: normal;\\n line-height: 22px;\\n}\\n.heading-inter-14-bold {\\n font-family: Inter, sans-serif;\\n font-size: 14px;\\n font-weight: 700;\\n font-style: normal;\\n line-height: 17px;\\n}\\n.paragraph-inter-20-regular {\\n font-family: Inter, sans-serif;\\n font-size: 20px;\\n font-weight: 400;\\n font-style: normal;\\n line-height: 32px;\\n}\\n.paragraph-inter-16-regular {\\n font-family: Inter, sans-serif;\\n font-size: 16px;\\n font-weight: 400;\\n font-style: normal;\\n line-height: 24px;\\n}\\n.paragraph-inter-14-regular {\\n font-family: Inter, sans-serif;\\n font-size: 14px;\\n font-weight: 400;\\n font-style: normal;\\n line-height: 22px;\\n}\\n.paragraph-inter-14-semi-bold {\\n font-family: Inter, sans-serif;\\n font-size: 14px;\\n font-weight: 600;\\n font-style: normal;\\n line-height: 22px;\\n}\\n.paragraph-inter-12-regular {\\n font-family: Inter, sans-serif;\\n font-size: 12px;\\n font-weight: 400;\\n font-style: normal;\\n line-height: 20px;\\n}\\n.paragraph-inter-12-medium {\\n font-family: Inter, sans-serif;\\n font-size: 12px;\\n font-weight: 500;\\n font-style: normal;\\n line-height: 20px;\\n}\\n.paragraph-inter-12-semi-bold {\\n font-family: Inter, sans-serif;\\n font-size: 12px;\\n font-weight: 600;\\n font-style: normal;\\n line-height: 20px;\\n}\\n.paragraph-ptmono-24-bold {\\n font-family: \\\"PT Mono\\\", sans-serif;\\n font-size: 24px;\\n font-weight: 700;\\n font-style: normal;\\n line-height: 26px;\\n}\\n.paragraph-ptmono-16-bold {\\n font-family: \\\"PT Mono\\\", sans-serif;\\n font-size: 16px;\\n font-weight: 700;\\n font-style: normal;\\n line-height: 22px;\\n}\\n.paragraph-ptmono-14-bold {\\n font-family: \\\"PT Mono\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 700;\\n font-style: normal;\\n line-height: 20px;\\n}\\n.paragraph-ptmono-12-bold {\\n font-family: \\\"PT Mono\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 700;\\n font-style: normal;\\n line-height: 14px;\\n}\\n.container {\\n width: 100%;\\n}\\n@media (min-width: 640px) {\\n .container {\\n max-width: 640px;\\n }\\n}\\n@media (min-width: 768px) {\\n .container {\\n max-width: 768px;\\n }\\n}\\n@media (min-width: 1024px) {\\n .container {\\n max-width: 1024px;\\n }\\n}\\n@media (min-width: 1280px) {\\n .container {\\n max-width: 1280px;\\n }\\n}\\n@media (min-width: 1536px) {\\n .container {\\n max-width: 1536px;\\n }\\n}\\n.prose {\\n color: var(--tw-prose-body);\\n max-width: 65ch;\\n}\\n.prose :where(p):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.25em;\\n margin-bottom: 1.25em;\\n}\\n.prose :where([class~=\\\"lead\\\"]):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: var(--tw-prose-lead);\\n font-size: 1.25em;\\n line-height: 1.6;\\n margin-top: 1.2em;\\n margin-bottom: 1.2em;\\n}\\n.prose :where(a):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: var(--tw-prose-links);\\n text-decoration: underline;\\n font-weight: 500;\\n}\\n.prose :where(strong):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: var(--tw-prose-bold);\\n font-weight: 600;\\n}\\n.prose :where(a strong):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: inherit;\\n}\\n.prose :where(blockquote strong):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: inherit;\\n}\\n.prose :where(thead th strong):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: inherit;\\n}\\n.prose :where(ol):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n list-style-type: decimal;\\n margin-top: 1.25em;\\n margin-bottom: 1.25em;\\n padding-inline-start: 1.625em;\\n}\\n.prose :where(ol[type=\\\"A\\\"]):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n list-style-type: upper-alpha;\\n}\\n.prose :where(ol[type=\\\"a\\\"]):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n list-style-type: lower-alpha;\\n}\\n.prose :where(ol[type=\\\"A\\\" s]):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n list-style-type: upper-alpha;\\n}\\n.prose :where(ol[type=\\\"a\\\" s]):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n list-style-type: lower-alpha;\\n}\\n.prose :where(ol[type=\\\"I\\\"]):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n list-style-type: upper-roman;\\n}\\n.prose :where(ol[type=\\\"i\\\"]):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n list-style-type: lower-roman;\\n}\\n.prose :where(ol[type=\\\"I\\\" s]):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n list-style-type: upper-roman;\\n}\\n.prose :where(ol[type=\\\"i\\\" s]):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n list-style-type: lower-roman;\\n}\\n.prose :where(ol[type=\\\"1\\\"]):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n list-style-type: decimal;\\n}\\n.prose :where(ul):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n list-style-type: disc;\\n margin-top: 1.25em;\\n margin-bottom: 1.25em;\\n padding-inline-start: 1.625em;\\n}\\n.prose :where(ol > li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *))::marker {\\n font-weight: 400;\\n color: var(--tw-prose-counters);\\n}\\n.prose :where(ul > li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *))::marker {\\n color: var(--tw-prose-bullets);\\n}\\n.prose :where(dt):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: var(--tw-prose-headings);\\n font-weight: 600;\\n margin-top: 1.25em;\\n}\\n.prose :where(hr):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n border-color: var(--tw-prose-hr);\\n border-top-width: 1px;\\n margin-top: 3em;\\n margin-bottom: 3em;\\n}\\n.prose :where(blockquote):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-weight: 500;\\n font-style: italic;\\n color: var(--tw-prose-quotes);\\n border-inline-start-width: 0.25rem;\\n border-inline-start-color: var(--tw-prose-quote-borders);\\n quotes: \\\"\\\\201C\\\"\\\"\\\\201D\\\"\\\"\\\\2018\\\"\\\"\\\\2019\\\";\\n margin-top: 1.6em;\\n margin-bottom: 1.6em;\\n padding-inline-start: 1em;\\n}\\n.prose :where(blockquote p:first-of-type):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *))::before {\\n content: open-quote;\\n}\\n.prose :where(blockquote p:last-of-type):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *))::after {\\n content: close-quote;\\n}\\n.prose :where(h1):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: var(--tw-prose-headings);\\n font-weight: 800;\\n font-size: 2.25em;\\n margin-top: 0;\\n margin-bottom: 0.8888889em;\\n line-height: 1.1111111;\\n}\\n.prose :where(h1 strong):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-weight: 900;\\n color: inherit;\\n}\\n.prose :where(h2):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: var(--tw-prose-headings);\\n font-weight: 700;\\n font-size: 1.5em;\\n margin-top: 2em;\\n margin-bottom: 1em;\\n line-height: 1.3333333;\\n}\\n.prose :where(h2 strong):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-weight: 800;\\n color: inherit;\\n}\\n.prose :where(h3):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: var(--tw-prose-headings);\\n font-weight: 600;\\n font-size: 1.25em;\\n margin-top: 1.6em;\\n margin-bottom: 0.6em;\\n line-height: 1.6;\\n}\\n.prose :where(h3 strong):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-weight: 700;\\n color: inherit;\\n}\\n.prose :where(h4):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: var(--tw-prose-headings);\\n font-weight: 600;\\n margin-top: 1.5em;\\n margin-bottom: 0.5em;\\n line-height: 1.5;\\n}\\n.prose :where(h4 strong):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-weight: 700;\\n color: inherit;\\n}\\n.prose :where(img):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose :where(picture):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n display: block;\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose :where(video):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose :where(kbd):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-weight: 500;\\n font-family: inherit;\\n color: var(--tw-prose-kbd);\\n box-shadow: 0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows);\\n font-size: 0.875em;\\n border-radius: 0.3125rem;\\n padding-top: 0.1875em;\\n padding-inline-end: 0.375em;\\n padding-bottom: 0.1875em;\\n padding-inline-start: 0.375em;\\n}\\n.prose :where(code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: var(--tw-prose-code);\\n font-weight: 600;\\n font-size: 0.875em;\\n}\\n.prose :where(code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *))::before {\\n content: \\\"`\\\";\\n}\\n.prose :where(code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *))::after {\\n content: \\\"`\\\";\\n}\\n.prose :where(a code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: inherit;\\n}\\n.prose :where(h1 code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: inherit;\\n}\\n.prose :where(h2 code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: inherit;\\n font-size: 0.875em;\\n}\\n.prose :where(h3 code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: inherit;\\n font-size: 0.9em;\\n}\\n.prose :where(h4 code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: inherit;\\n}\\n.prose :where(blockquote code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: inherit;\\n}\\n.prose :where(thead th code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: inherit;\\n}\\n.prose :where(pre):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: var(--tw-prose-pre-code);\\n background-color: var(--tw-prose-pre-bg);\\n overflow-x: auto;\\n font-weight: 400;\\n font-size: 0.875em;\\n line-height: 1.7142857;\\n margin-top: 1.7142857em;\\n margin-bottom: 1.7142857em;\\n border-radius: 0.375rem;\\n padding-top: 0.8571429em;\\n padding-inline-end: 1.1428571em;\\n padding-bottom: 0.8571429em;\\n padding-inline-start: 1.1428571em;\\n}\\n.prose :where(pre code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n background-color: transparent;\\n border-width: 0;\\n border-radius: 0;\\n padding: 0;\\n font-weight: inherit;\\n color: inherit;\\n font-size: inherit;\\n font-family: inherit;\\n line-height: inherit;\\n}\\n.prose :where(pre code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *))::before {\\n content: none;\\n}\\n.prose :where(pre code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *))::after {\\n content: none;\\n}\\n.prose :where(table):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n width: 100%;\\n table-layout: auto;\\n margin-top: 2em;\\n margin-bottom: 2em;\\n font-size: 0.875em;\\n line-height: 1.7142857;\\n}\\n.prose :where(thead):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n border-bottom-width: 1px;\\n border-bottom-color: var(--tw-prose-th-borders);\\n}\\n.prose :where(thead th):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: var(--tw-prose-headings);\\n font-weight: 600;\\n vertical-align: bottom;\\n padding-inline-end: 0.5714286em;\\n padding-bottom: 0.5714286em;\\n padding-inline-start: 0.5714286em;\\n}\\n.prose :where(tbody tr):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n border-bottom-width: 1px;\\n border-bottom-color: var(--tw-prose-td-borders);\\n}\\n.prose :where(tbody tr:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n border-bottom-width: 0;\\n}\\n.prose :where(tbody td):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n vertical-align: baseline;\\n}\\n.prose :where(tfoot):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n border-top-width: 1px;\\n border-top-color: var(--tw-prose-th-borders);\\n}\\n.prose :where(tfoot td):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n vertical-align: top;\\n}\\n.prose :where(th, td):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n text-align: start;\\n}\\n.prose :where(figure > *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.prose :where(figcaption):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: var(--tw-prose-captions);\\n font-size: 0.875em;\\n line-height: 1.4285714;\\n margin-top: 0.8571429em;\\n}\\n.prose {\\n --tw-prose-body: oklch(37.3% 0.034 259.733);\\n --tw-prose-headings: oklch(21% 0.034 264.665);\\n --tw-prose-lead: oklch(44.6% 0.03 256.802);\\n --tw-prose-links: oklch(21% 0.034 264.665);\\n --tw-prose-bold: oklch(21% 0.034 264.665);\\n --tw-prose-counters: oklch(55.1% 0.027 264.364);\\n --tw-prose-bullets: oklch(87.2% 0.01 258.338);\\n --tw-prose-hr: oklch(92.8% 0.006 264.531);\\n --tw-prose-quotes: oklch(21% 0.034 264.665);\\n --tw-prose-quote-borders: oklch(92.8% 0.006 264.531);\\n --tw-prose-captions: oklch(55.1% 0.027 264.364);\\n --tw-prose-kbd: oklch(21% 0.034 264.665);\\n --tw-prose-kbd-shadows: color-mix(in oklab, oklch(21% 0.034 264.665) 10%, transparent);\\n --tw-prose-code: oklch(21% 0.034 264.665);\\n --tw-prose-pre-code: oklch(92.8% 0.006 264.531);\\n --tw-prose-pre-bg: oklch(27.8% 0.033 256.848);\\n --tw-prose-th-borders: oklch(87.2% 0.01 258.338);\\n --tw-prose-td-borders: oklch(92.8% 0.006 264.531);\\n --tw-prose-invert-body: oklch(87.2% 0.01 258.338);\\n --tw-prose-invert-headings: #fff;\\n --tw-prose-invert-lead: oklch(70.7% 0.022 261.325);\\n --tw-prose-invert-links: #fff;\\n --tw-prose-invert-bold: #fff;\\n --tw-prose-invert-counters: oklch(70.7% 0.022 261.325);\\n --tw-prose-invert-bullets: oklch(44.6% 0.03 256.802);\\n --tw-prose-invert-hr: oklch(37.3% 0.034 259.733);\\n --tw-prose-invert-quotes: oklch(96.7% 0.003 264.542);\\n --tw-prose-invert-quote-borders: oklch(37.3% 0.034 259.733);\\n --tw-prose-invert-captions: oklch(70.7% 0.022 261.325);\\n --tw-prose-invert-kbd: #fff;\\n --tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);\\n --tw-prose-invert-code: #fff;\\n --tw-prose-invert-pre-code: oklch(87.2% 0.01 258.338);\\n --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);\\n --tw-prose-invert-th-borders: oklch(44.6% 0.03 256.802);\\n --tw-prose-invert-td-borders: oklch(37.3% 0.034 259.733);\\n font-size: 1rem;\\n line-height: 1.75;\\n}\\n.prose :where(picture > img):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.prose :where(li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n}\\n.prose :where(ol > li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0.375em;\\n}\\n.prose :where(ul > li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0.375em;\\n}\\n.prose :where(.prose > ul > li p):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.75em;\\n margin-bottom: 0.75em;\\n}\\n.prose :where(.prose > ul > li > p:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.25em;\\n}\\n.prose :where(.prose > ul > li > p:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 1.25em;\\n}\\n.prose :where(.prose > ol > li > p:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.25em;\\n}\\n.prose :where(.prose > ol > li > p:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 1.25em;\\n}\\n.prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.75em;\\n margin-bottom: 0.75em;\\n}\\n.prose :where(dl):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.25em;\\n margin-bottom: 1.25em;\\n}\\n.prose :where(dd):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n padding-inline-start: 1.625em;\\n}\\n.prose :where(hr + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose :where(h2 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose :where(h3 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose :where(h4 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose :where(thead th:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0;\\n}\\n.prose :where(thead th:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-end: 0;\\n}\\n.prose :where(tbody td, tfoot td):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-top: 0.5714286em;\\n padding-inline-end: 0.5714286em;\\n padding-bottom: 0.5714286em;\\n padding-inline-start: 0.5714286em;\\n}\\n.prose :where(tbody td:first-child, tfoot td:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0;\\n}\\n.prose :where(tbody td:last-child, tfoot td:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-end: 0;\\n}\\n.prose :where(figure):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose :where(.prose > :first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose :where(.prose > :last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 0;\\n}\\n.prose-sm {\\n font-size: 0.875rem;\\n line-height: 1.6;\\n}\\n.prose-sm :where(p):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n line-height: 1.5;\\n}\\n.prose-sm :where([class~=\\\"lead\\\"]):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 1.2857143em;\\n line-height: 1.5555556;\\n margin-top: 0.8888889em;\\n margin-bottom: 0.8888889em;\\n}\\n.prose-sm :where(blockquote):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n padding-inline-start: 1.1111111em;\\n padding-left: 1em;\\n border-left-width: 0.25rem;\\n font-style: italic;\\n color: inherit;\\n}\\n.prose-sm :where(h1):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 2.1428571em;\\n margin-top: 0.75em;\\n margin-bottom: 0.5em;\\n line-height: 1.2;\\n}\\n.prose-sm :where(h2):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 1.4285714em;\\n margin-top: 0.65em;\\n margin-bottom: 0.45em;\\n line-height: 1.25;\\n}\\n.prose-sm :where(h3):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 1.2857143em;\\n margin-top: 0.6em;\\n margin-bottom: 0.4em;\\n line-height: 1.3;\\n}\\n.prose-sm :where(h4):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.35em;\\n line-height: 1.35;\\n}\\n.prose-sm :where(img):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.7142857em;\\n margin-bottom: 1.7142857em;\\n}\\n.prose-sm :where(picture):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.7142857em;\\n margin-bottom: 1.7142857em;\\n}\\n.prose-sm :where(picture > img):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.prose-sm :where(video):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.7142857em;\\n margin-bottom: 1.7142857em;\\n}\\n.prose-sm :where(kbd):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8571429em;\\n border-radius: 0.3125rem;\\n padding-top: 0.1428571em;\\n padding-inline-end: 0.3571429em;\\n padding-bottom: 0.1428571em;\\n padding-inline-start: 0.3571429em;\\n}\\n.prose-sm :where(code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8571429em;\\n}\\n.prose-sm :where(h2 code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.9em;\\n}\\n.prose-sm :where(h3 code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8888889em;\\n}\\n.prose-sm :where(pre):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8571429em;\\n line-height: 1.45;\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n border-radius: 0.25rem;\\n padding-top: 0.6666667em;\\n padding-inline-end: 1em;\\n padding-bottom: 0.6666667em;\\n padding-inline-start: 1em;\\n box-sizing: border-box;\\n max-width: 100%;\\n overflow-x: auto;\\n white-space: pre-wrap;\\n overflow-wrap: break-word;\\n}\\n.prose-sm :where(ol):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n padding-inline-start: 1.5714286em;\\n padding-left: 1.25em;\\n}\\n.prose-sm :where(ul):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n padding-inline-start: 1.5714286em;\\n padding-left: 1.25em;\\n}\\n.prose-sm :where(li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.25em;\\n margin-bottom: 0.25em;\\n}\\n.prose-sm :where(ol > li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0.4285714em;\\n}\\n.prose-sm :where(ul > li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0.4285714em;\\n}\\n.prose-sm :where(.prose-sm > ul > li p):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5714286em;\\n margin-bottom: 0.5714286em;\\n}\\n.prose-sm :where(.prose-sm > ul > li > p:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.1428571em;\\n}\\n.prose-sm :where(.prose-sm > ul > li > p:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 1.1428571em;\\n}\\n.prose-sm :where(.prose-sm > ol > li > p:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.1428571em;\\n}\\n.prose-sm :where(.prose-sm > ol > li > p:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 1.1428571em;\\n}\\n.prose-sm :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.25em;\\n margin-bottom: 0.25em;\\n}\\n.prose-sm :where(dl):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.1428571em;\\n margin-bottom: 1.1428571em;\\n}\\n.prose-sm :where(dt):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.1428571em;\\n}\\n.prose-sm :where(dd):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.2857143em;\\n padding-inline-start: 1.5714286em;\\n}\\n.prose-sm :where(hr):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose-sm :where(hr + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-sm :where(h2 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-sm :where(h3 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-sm :where(h4 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-sm :where(table):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8571429em;\\n line-height: 1.5;\\n}\\n.prose-sm :where(thead th):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-end: 1em;\\n padding-bottom: 0.6666667em;\\n padding-inline-start: 1em;\\n}\\n.prose-sm :where(thead th:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0;\\n}\\n.prose-sm :where(thead th:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-end: 0;\\n}\\n.prose-sm :where(tbody td, tfoot td):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-top: 0.6666667em;\\n padding-inline-end: 1em;\\n padding-bottom: 0.6666667em;\\n padding-inline-start: 1em;\\n}\\n.prose-sm :where(tbody td:first-child, tfoot td:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0;\\n}\\n.prose-sm :where(tbody td:last-child, tfoot td:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-end: 0;\\n}\\n.prose-sm :where(figure):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.7142857em;\\n margin-bottom: 1.7142857em;\\n}\\n.prose-sm :where(figure > *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.prose-sm :where(figcaption):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8571429em;\\n line-height: 1.3333333;\\n margin-top: 0.6666667em;\\n}\\n.prose-sm :where(.prose-sm > :first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-sm :where(.prose-sm > :last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 0;\\n}\\n.prose-sm {\\n max-width: none;\\n}\\n.prose-sm :where(h5):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.45em;\\n margin-bottom: 0.3em;\\n line-height: 1.4;\\n}\\n.prose-sm :where(h6):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.4em;\\n margin-bottom: 0.25em;\\n line-height: 1.45;\\n}\\n.prose-sm :where(a):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: var(--tw-prose-links);\\n text-decoration: underline;\\n font-weight: 500;\\n}\\n.prose-sm :where(a):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)):hover {\\n color: var(--tw-prose-links-hover, var(--tw-prose-links));\\n text-decoration: none;\\n}\\n.prose-base {\\n font-size: 1rem;\\n line-height: 1.6;\\n}\\n.prose-base :where(p):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n line-height: 1.5;\\n}\\n.prose-base :where([class~=\\\"lead\\\"]):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 1.25em;\\n line-height: 1.6;\\n margin-top: 1.2em;\\n margin-bottom: 1.2em;\\n}\\n.prose-base :where(blockquote):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n padding-inline-start: 1em;\\n padding-left: 1em;\\n border-left-width: 0.25rem;\\n font-style: italic;\\n color: inherit;\\n}\\n.prose-base :where(h1):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 2.25em;\\n margin-top: 0.75em;\\n margin-bottom: 0.5em;\\n line-height: 1.2;\\n}\\n.prose-base :where(h2):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 1.5em;\\n margin-top: 0.65em;\\n margin-bottom: 0.45em;\\n line-height: 1.25;\\n}\\n.prose-base :where(h3):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 1.25em;\\n margin-top: 0.6em;\\n margin-bottom: 0.4em;\\n line-height: 1.3;\\n}\\n.prose-base :where(h4):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.35em;\\n line-height: 1.35;\\n}\\n.prose-base :where(img):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose-base :where(picture):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose-base :where(picture > img):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.prose-base :where(video):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose-base :where(kbd):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.875em;\\n border-radius: 0.3125rem;\\n padding-top: 0.1875em;\\n padding-inline-end: 0.375em;\\n padding-bottom: 0.1875em;\\n padding-inline-start: 0.375em;\\n}\\n.prose-base :where(code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.875em;\\n}\\n.prose-base :where(h2 code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.875em;\\n}\\n.prose-base :where(h3 code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.9em;\\n}\\n.prose-base :where(pre):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.875em;\\n line-height: 1.45;\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n border-radius: 0.375rem;\\n padding-top: 0.8571429em;\\n padding-inline-end: 1.1428571em;\\n padding-bottom: 0.8571429em;\\n padding-inline-start: 1.1428571em;\\n box-sizing: border-box;\\n max-width: 100%;\\n overflow-x: auto;\\n white-space: pre-wrap;\\n overflow-wrap: break-word;\\n}\\n.prose-base :where(ol):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n padding-inline-start: 1.625em;\\n padding-left: 1.25em;\\n}\\n.prose-base :where(ul):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n padding-inline-start: 1.625em;\\n padding-left: 1.25em;\\n}\\n.prose-base :where(li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.25em;\\n margin-bottom: 0.25em;\\n}\\n.prose-base :where(ol > li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0.375em;\\n}\\n.prose-base :where(ul > li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0.375em;\\n}\\n.prose-base :where(.prose-base > ul > li p):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.75em;\\n margin-bottom: 0.75em;\\n}\\n.prose-base :where(.prose-base > ul > li > p:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.25em;\\n}\\n.prose-base :where(.prose-base > ul > li > p:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 1.25em;\\n}\\n.prose-base :where(.prose-base > ol > li > p:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.25em;\\n}\\n.prose-base :where(.prose-base > ol > li > p:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 1.25em;\\n}\\n.prose-base :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.25em;\\n margin-bottom: 0.25em;\\n}\\n.prose-base :where(dl):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.25em;\\n margin-bottom: 1.25em;\\n}\\n.prose-base :where(dt):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.25em;\\n}\\n.prose-base :where(dd):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n padding-inline-start: 1.625em;\\n}\\n.prose-base :where(hr):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose-base :where(hr + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-base :where(h2 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-base :where(h3 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-base :where(h4 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-base :where(table):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.875em;\\n line-height: 1.7142857;\\n}\\n.prose-base :where(thead th):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-end: 0.5714286em;\\n padding-bottom: 0.5714286em;\\n padding-inline-start: 0.5714286em;\\n}\\n.prose-base :where(thead th:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0;\\n}\\n.prose-base :where(thead th:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-end: 0;\\n}\\n.prose-base :where(tbody td, tfoot td):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-top: 0.5714286em;\\n padding-inline-end: 0.5714286em;\\n padding-bottom: 0.5714286em;\\n padding-inline-start: 0.5714286em;\\n}\\n.prose-base :where(tbody td:first-child, tfoot td:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0;\\n}\\n.prose-base :where(tbody td:last-child, tfoot td:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-end: 0;\\n}\\n.prose-base :where(figure):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose-base :where(figure > *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.prose-base :where(figcaption):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.875em;\\n line-height: 1.4285714;\\n margin-top: 0.8571429em;\\n}\\n.prose-base :where(.prose-base > :first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-base :where(.prose-base > :last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 0;\\n}\\n.prose-base {\\n max-width: none;\\n}\\n.prose-base :where(h5):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.45em;\\n margin-bottom: 0.3em;\\n line-height: 1.4;\\n}\\n.prose-base :where(h6):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.4em;\\n margin-bottom: 0.25em;\\n line-height: 1.45;\\n}\\n.prose-base :where(a):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: var(--tw-prose-links);\\n text-decoration: underline;\\n font-weight: 500;\\n}\\n.prose-base :where(a):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)):hover {\\n color: var(--tw-prose-links-hover, var(--tw-prose-links));\\n text-decoration: none;\\n}\\n.prose-lg {\\n font-size: 1.125rem;\\n line-height: 1.6;\\n}\\n.prose-lg :where(p):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n line-height: 1.5;\\n}\\n.prose-lg :where([class~=\\\"lead\\\"]):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 1.2222222em;\\n line-height: 1.4545455;\\n margin-top: 1.0909091em;\\n margin-bottom: 1.0909091em;\\n}\\n.prose-lg :where(blockquote):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n padding-inline-start: 1em;\\n padding-left: 1em;\\n border-left-width: 0.25rem;\\n font-style: italic;\\n color: inherit;\\n}\\n.prose-lg :where(h1):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 2.6666667em;\\n margin-top: 0.75em;\\n margin-bottom: 0.5em;\\n line-height: 1.2;\\n}\\n.prose-lg :where(h2):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 1.6666667em;\\n margin-top: 0.65em;\\n margin-bottom: 0.45em;\\n line-height: 1.25;\\n}\\n.prose-lg :where(h3):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 1.3333333em;\\n margin-top: 0.6em;\\n margin-bottom: 0.4em;\\n line-height: 1.3;\\n}\\n.prose-lg :where(h4):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.35em;\\n line-height: 1.35;\\n}\\n.prose-lg :where(img):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.7777778em;\\n margin-bottom: 1.7777778em;\\n}\\n.prose-lg :where(picture):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.7777778em;\\n margin-bottom: 1.7777778em;\\n}\\n.prose-lg :where(picture > img):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.prose-lg :where(video):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.7777778em;\\n margin-bottom: 1.7777778em;\\n}\\n.prose-lg :where(kbd):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8888889em;\\n border-radius: 0.3125rem;\\n padding-top: 0.2222222em;\\n padding-inline-end: 0.4444444em;\\n padding-bottom: 0.2222222em;\\n padding-inline-start: 0.4444444em;\\n}\\n.prose-lg :where(code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8888889em;\\n}\\n.prose-lg :where(h2 code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8666667em;\\n}\\n.prose-lg :where(h3 code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.875em;\\n}\\n.prose-lg :where(pre):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8888889em;\\n line-height: 1.45;\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n border-radius: 0.375rem;\\n padding-top: 1em;\\n padding-inline-end: 1.5em;\\n padding-bottom: 1em;\\n padding-inline-start: 1.5em;\\n box-sizing: border-box;\\n max-width: 100%;\\n overflow-x: auto;\\n white-space: pre-wrap;\\n overflow-wrap: break-word;\\n}\\n.prose-lg :where(ol):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n padding-inline-start: 1.5555556em;\\n padding-left: 1.25em;\\n}\\n.prose-lg :where(ul):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n padding-inline-start: 1.5555556em;\\n padding-left: 1.25em;\\n}\\n.prose-lg :where(li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.25em;\\n margin-bottom: 0.25em;\\n}\\n.prose-lg :where(ol > li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0.4444444em;\\n}\\n.prose-lg :where(ul > li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0.4444444em;\\n}\\n.prose-lg :where(.prose-lg > ul > li p):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.8888889em;\\n margin-bottom: 0.8888889em;\\n}\\n.prose-lg :where(.prose-lg > ul > li > p:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.3333333em;\\n}\\n.prose-lg :where(.prose-lg > ul > li > p:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 1.3333333em;\\n}\\n.prose-lg :where(.prose-lg > ol > li > p:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.3333333em;\\n}\\n.prose-lg :where(.prose-lg > ol > li > p:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 1.3333333em;\\n}\\n.prose-lg :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.25em;\\n margin-bottom: 0.25em;\\n}\\n.prose-lg :where(dl):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.3333333em;\\n margin-bottom: 1.3333333em;\\n}\\n.prose-lg :where(dt):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.3333333em;\\n}\\n.prose-lg :where(dd):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.6666667em;\\n padding-inline-start: 1.5555556em;\\n}\\n.prose-lg :where(hr):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose-lg :where(hr + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-lg :where(h2 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-lg :where(h3 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-lg :where(h4 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-lg :where(table):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8888889em;\\n line-height: 1.5;\\n}\\n.prose-lg :where(thead th):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-end: 0.75em;\\n padding-bottom: 0.75em;\\n padding-inline-start: 0.75em;\\n}\\n.prose-lg :where(thead th:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0;\\n}\\n.prose-lg :where(thead th:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-end: 0;\\n}\\n.prose-lg :where(tbody td, tfoot td):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-top: 0.75em;\\n padding-inline-end: 0.75em;\\n padding-bottom: 0.75em;\\n padding-inline-start: 0.75em;\\n}\\n.prose-lg :where(tbody td:first-child, tfoot td:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0;\\n}\\n.prose-lg :where(tbody td:last-child, tfoot td:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-end: 0;\\n}\\n.prose-lg :where(figure):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.7777778em;\\n margin-bottom: 1.7777778em;\\n}\\n.prose-lg :where(figure > *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.prose-lg :where(figcaption):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8888889em;\\n line-height: 1.5;\\n margin-top: 1em;\\n}\\n.prose-lg :where(.prose-lg > :first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-lg :where(.prose-lg > :last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 0;\\n}\\n.prose-lg {\\n max-width: none;\\n}\\n.prose-lg :where(h5):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.45em;\\n margin-bottom: 0.3em;\\n line-height: 1.4;\\n}\\n.prose-lg :where(h6):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.4em;\\n margin-bottom: 0.25em;\\n line-height: 1.45;\\n}\\n.prose-lg :where(a):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: var(--tw-prose-links);\\n text-decoration: underline;\\n font-weight: 500;\\n}\\n.prose-lg :where(a):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)):hover {\\n color: var(--tw-prose-links-hover, var(--tw-prose-links));\\n text-decoration: none;\\n}\\n.prose-xl {\\n font-size: 1.25rem;\\n line-height: 1.6;\\n}\\n.prose-xl :where(p):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n line-height: 1.5;\\n}\\n.prose-xl :where([class~=\\\"lead\\\"]):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 1.2em;\\n line-height: 1.5;\\n margin-top: 1em;\\n margin-bottom: 1em;\\n}\\n.prose-xl :where(blockquote):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n padding-inline-start: 1.0666667em;\\n padding-left: 1em;\\n border-left-width: 0.25rem;\\n font-style: italic;\\n color: inherit;\\n}\\n.prose-xl :where(h1):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 2.8em;\\n margin-top: 0.75em;\\n margin-bottom: 0.5em;\\n line-height: 1.2;\\n}\\n.prose-xl :where(h2):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 1.8em;\\n margin-top: 0.65em;\\n margin-bottom: 0.45em;\\n line-height: 1.25;\\n}\\n.prose-xl :where(h3):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 1.5em;\\n margin-top: 0.6em;\\n margin-bottom: 0.4em;\\n line-height: 1.3;\\n}\\n.prose-xl :where(h4):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.35em;\\n line-height: 1.35;\\n}\\n.prose-xl :where(img):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose-xl :where(picture):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose-xl :where(picture > img):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.prose-xl :where(video):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose-xl :where(kbd):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.9em;\\n border-radius: 0.3125rem;\\n padding-top: 0.25em;\\n padding-inline-end: 0.4em;\\n padding-bottom: 0.25em;\\n padding-inline-start: 0.4em;\\n}\\n.prose-xl :where(code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.9em;\\n}\\n.prose-xl :where(h2 code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8611111em;\\n}\\n.prose-xl :where(h3 code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.9em;\\n}\\n.prose-xl :where(pre):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.9em;\\n line-height: 1.45;\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n border-radius: 0.5rem;\\n padding-top: 1.1111111em;\\n padding-inline-end: 1.3333333em;\\n padding-bottom: 1.1111111em;\\n padding-inline-start: 1.3333333em;\\n box-sizing: border-box;\\n max-width: 100%;\\n overflow-x: auto;\\n white-space: pre-wrap;\\n overflow-wrap: break-word;\\n}\\n.prose-xl :where(ol):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n padding-inline-start: 1.6em;\\n padding-left: 1.25em;\\n}\\n.prose-xl :where(ul):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n padding-inline-start: 1.6em;\\n padding-left: 1.25em;\\n}\\n.prose-xl :where(li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.25em;\\n margin-bottom: 0.25em;\\n}\\n.prose-xl :where(ol > li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0.4em;\\n}\\n.prose-xl :where(ul > li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0.4em;\\n}\\n.prose-xl :where(.prose-xl > ul > li p):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.8em;\\n margin-bottom: 0.8em;\\n}\\n.prose-xl :where(.prose-xl > ul > li > p:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.2em;\\n}\\n.prose-xl :where(.prose-xl > ul > li > p:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 1.2em;\\n}\\n.prose-xl :where(.prose-xl > ol > li > p:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.2em;\\n}\\n.prose-xl :where(.prose-xl > ol > li > p:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 1.2em;\\n}\\n.prose-xl :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.25em;\\n margin-bottom: 0.25em;\\n}\\n.prose-xl :where(dl):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.2em;\\n margin-bottom: 1.2em;\\n}\\n.prose-xl :where(dt):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.2em;\\n}\\n.prose-xl :where(dd):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.6em;\\n padding-inline-start: 1.6em;\\n}\\n.prose-xl :where(hr):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose-xl :where(hr + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-xl :where(h2 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-xl :where(h3 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-xl :where(h4 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-xl :where(table):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.9em;\\n line-height: 1.5555556;\\n}\\n.prose-xl :where(thead th):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-end: 0.6666667em;\\n padding-bottom: 0.8888889em;\\n padding-inline-start: 0.6666667em;\\n}\\n.prose-xl :where(thead th:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0;\\n}\\n.prose-xl :where(thead th:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-end: 0;\\n}\\n.prose-xl :where(tbody td, tfoot td):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-top: 0.8888889em;\\n padding-inline-end: 0.6666667em;\\n padding-bottom: 0.8888889em;\\n padding-inline-start: 0.6666667em;\\n}\\n.prose-xl :where(tbody td:first-child, tfoot td:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0;\\n}\\n.prose-xl :where(tbody td:last-child, tfoot td:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-end: 0;\\n}\\n.prose-xl :where(figure):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose-xl :where(figure > *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.prose-xl :where(figcaption):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.9em;\\n line-height: 1.5555556;\\n margin-top: 1em;\\n}\\n.prose-xl :where(.prose-xl > :first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-xl :where(.prose-xl > :last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 0;\\n}\\n.prose-xl {\\n max-width: none;\\n}\\n.prose-xl :where(h5):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.45em;\\n margin-bottom: 0.3em;\\n line-height: 1.4;\\n}\\n.prose-xl :where(h6):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.4em;\\n margin-bottom: 0.25em;\\n line-height: 1.45;\\n}\\n.prose-xl :where(a):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n color: var(--tw-prose-links);\\n text-decoration: underline;\\n font-weight: 500;\\n}\\n.prose-xl :where(a):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)):hover {\\n color: var(--tw-prose-links-hover, var(--tw-prose-links));\\n text-decoration: none;\\n}\\n.prose-2xl {\\n font-size: 1.5rem;\\n line-height: 1.6666667;\\n}\\n.prose-2xl :where(p):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.3333333em;\\n margin-bottom: 1.3333333em;\\n}\\n.prose-2xl :where([class~=\\\"lead\\\"]):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 1.25em;\\n line-height: 1.4666667;\\n margin-top: 1.0666667em;\\n margin-bottom: 1.0666667em;\\n}\\n.prose-2xl :where(blockquote):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.7777778em;\\n margin-bottom: 1.7777778em;\\n padding-inline-start: 1.1111111em;\\n}\\n.prose-2xl :where(h1):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 2.6666667em;\\n margin-top: 0;\\n margin-bottom: 0.875em;\\n line-height: 1;\\n}\\n.prose-2xl :where(h2):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 2em;\\n margin-top: 1.5em;\\n margin-bottom: 0.8333333em;\\n line-height: 1.0833333;\\n}\\n.prose-2xl :where(h3):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 1.5em;\\n margin-top: 1.5555556em;\\n margin-bottom: 0.6666667em;\\n line-height: 1.2222222;\\n}\\n.prose-2xl :where(h4):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.6666667em;\\n margin-bottom: 0.6666667em;\\n line-height: 1.5;\\n}\\n.prose-2xl :where(img):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose-2xl :where(picture):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose-2xl :where(picture > img):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.prose-2xl :where(video):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose-2xl :where(kbd):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8333333em;\\n border-radius: 0.375rem;\\n padding-top: 0.25em;\\n padding-inline-end: 0.3333333em;\\n padding-bottom: 0.25em;\\n padding-inline-start: 0.3333333em;\\n}\\n.prose-2xl :where(code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8333333em;\\n}\\n.prose-2xl :where(h2 code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.875em;\\n}\\n.prose-2xl :where(h3 code):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8888889em;\\n}\\n.prose-2xl :where(pre):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8333333em;\\n line-height: 1.8;\\n margin-top: 2em;\\n margin-bottom: 2em;\\n border-radius: 0.5rem;\\n padding-top: 1.2em;\\n padding-inline-end: 1.6em;\\n padding-bottom: 1.2em;\\n padding-inline-start: 1.6em;\\n}\\n.prose-2xl :where(ol):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.3333333em;\\n margin-bottom: 1.3333333em;\\n padding-inline-start: 1.5833333em;\\n}\\n.prose-2xl :where(ul):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.3333333em;\\n margin-bottom: 1.3333333em;\\n padding-inline-start: 1.5833333em;\\n}\\n.prose-2xl :where(li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n margin-bottom: 0.5em;\\n}\\n.prose-2xl :where(ol > li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0.4166667em;\\n}\\n.prose-2xl :where(ul > li):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0.4166667em;\\n}\\n.prose-2xl :where(.prose-2xl > ul > li p):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.8333333em;\\n margin-bottom: 0.8333333em;\\n}\\n.prose-2xl :where(.prose-2xl > ul > li > p:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.3333333em;\\n}\\n.prose-2xl :where(.prose-2xl > ul > li > p:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 1.3333333em;\\n}\\n.prose-2xl :where(.prose-2xl > ol > li > p:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.3333333em;\\n}\\n.prose-2xl :where(.prose-2xl > ol > li > p:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 1.3333333em;\\n}\\n.prose-2xl :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.6666667em;\\n margin-bottom: 0.6666667em;\\n}\\n.prose-2xl :where(dl):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.3333333em;\\n margin-bottom: 1.3333333em;\\n}\\n.prose-2xl :where(dt):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 1.3333333em;\\n}\\n.prose-2xl :where(dd):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0.5em;\\n padding-inline-start: 1.5833333em;\\n}\\n.prose-2xl :where(hr):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 3em;\\n margin-bottom: 3em;\\n}\\n.prose-2xl :where(hr + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-2xl :where(h2 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-2xl :where(h3 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-2xl :where(h4 + *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-2xl :where(table):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8333333em;\\n line-height: 1.4;\\n}\\n.prose-2xl :where(thead th):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-end: 0.6em;\\n padding-bottom: 0.8em;\\n padding-inline-start: 0.6em;\\n}\\n.prose-2xl :where(thead th:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0;\\n}\\n.prose-2xl :where(thead th:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-end: 0;\\n}\\n.prose-2xl :where(tbody td, tfoot td):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-top: 0.8em;\\n padding-inline-end: 0.6em;\\n padding-bottom: 0.8em;\\n padding-inline-start: 0.6em;\\n}\\n.prose-2xl :where(tbody td:first-child, tfoot td:first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-start: 0;\\n}\\n.prose-2xl :where(tbody td:last-child, tfoot td:last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n padding-inline-end: 0;\\n}\\n.prose-2xl :where(figure):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 2em;\\n margin-bottom: 2em;\\n}\\n.prose-2xl :where(figure > *):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.prose-2xl :where(figcaption):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n font-size: 0.8333333em;\\n line-height: 1.6;\\n margin-top: 1em;\\n}\\n.prose-2xl :where(.prose-2xl > :first-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-top: 0;\\n}\\n.prose-2xl :where(.prose-2xl > :last-child):not(:where([class~=\\\"not-prose\\\"],[class~=\\\"not-prose\\\"] *)) {\\n margin-bottom: 0;\\n}\\n.prose-slate {\\n --tw-prose-body: oklch(37.2% 0.044 257.287);\\n --tw-prose-headings: oklch(20.8% 0.042 265.755);\\n --tw-prose-lead: oklch(44.6% 0.043 257.281);\\n --tw-prose-links: oklch(20.8% 0.042 265.755);\\n --tw-prose-bold: oklch(20.8% 0.042 265.755);\\n --tw-prose-counters: oklch(55.4% 0.046 257.417);\\n --tw-prose-bullets: oklch(86.9% 0.022 252.894);\\n --tw-prose-hr: oklch(92.9% 0.013 255.508);\\n --tw-prose-quotes: oklch(20.8% 0.042 265.755);\\n --tw-prose-quote-borders: oklch(92.9% 0.013 255.508);\\n --tw-prose-captions: oklch(55.4% 0.046 257.417);\\n --tw-prose-kbd: oklch(20.8% 0.042 265.755);\\n --tw-prose-kbd-shadows: color-mix(in oklab, oklch(20.8% 0.042 265.755) 10%, transparent);\\n --tw-prose-code: oklch(20.8% 0.042 265.755);\\n --tw-prose-pre-code: oklch(92.9% 0.013 255.508);\\n --tw-prose-pre-bg: oklch(27.9% 0.041 260.031);\\n --tw-prose-th-borders: oklch(86.9% 0.022 252.894);\\n --tw-prose-td-borders: oklch(92.9% 0.013 255.508);\\n --tw-prose-invert-body: oklch(86.9% 0.022 252.894);\\n --tw-prose-invert-headings: #fff;\\n --tw-prose-invert-lead: oklch(70.4% 0.04 256.788);\\n --tw-prose-invert-links: #fff;\\n --tw-prose-invert-bold: #fff;\\n --tw-prose-invert-counters: oklch(70.4% 0.04 256.788);\\n --tw-prose-invert-bullets: oklch(44.6% 0.043 257.281);\\n --tw-prose-invert-hr: oklch(37.2% 0.044 257.287);\\n --tw-prose-invert-quotes: oklch(96.8% 0.007 247.896);\\n --tw-prose-invert-quote-borders: oklch(37.2% 0.044 257.287);\\n --tw-prose-invert-captions: oklch(70.4% 0.04 256.788);\\n --tw-prose-invert-kbd: #fff;\\n --tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);\\n --tw-prose-invert-code: #fff;\\n --tw-prose-invert-pre-code: oklch(86.9% 0.022 252.894);\\n --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);\\n --tw-prose-invert-th-borders: oklch(44.6% 0.043 257.281);\\n --tw-prose-invert-td-borders: oklch(37.2% 0.044 257.287);\\n}\\n.prose-gray {\\n --tw-prose-body: oklch(37.3% 0.034 259.733);\\n --tw-prose-headings: oklch(21% 0.034 264.665);\\n --tw-prose-lead: oklch(44.6% 0.03 256.802);\\n --tw-prose-links: oklch(21% 0.034 264.665);\\n --tw-prose-bold: oklch(21% 0.034 264.665);\\n --tw-prose-counters: oklch(55.1% 0.027 264.364);\\n --tw-prose-bullets: oklch(87.2% 0.01 258.338);\\n --tw-prose-hr: oklch(92.8% 0.006 264.531);\\n --tw-prose-quotes: oklch(21% 0.034 264.665);\\n --tw-prose-quote-borders: oklch(92.8% 0.006 264.531);\\n --tw-prose-captions: oklch(55.1% 0.027 264.364);\\n --tw-prose-kbd: oklch(21% 0.034 264.665);\\n --tw-prose-kbd-shadows: color-mix(in oklab, oklch(21% 0.034 264.665) 10%, transparent);\\n --tw-prose-code: oklch(21% 0.034 264.665);\\n --tw-prose-pre-code: oklch(92.8% 0.006 264.531);\\n --tw-prose-pre-bg: oklch(27.8% 0.033 256.848);\\n --tw-prose-th-borders: oklch(87.2% 0.01 258.338);\\n --tw-prose-td-borders: oklch(92.8% 0.006 264.531);\\n --tw-prose-invert-body: oklch(87.2% 0.01 258.338);\\n --tw-prose-invert-headings: #fff;\\n --tw-prose-invert-lead: oklch(70.7% 0.022 261.325);\\n --tw-prose-invert-links: #fff;\\n --tw-prose-invert-bold: #fff;\\n --tw-prose-invert-counters: oklch(70.7% 0.022 261.325);\\n --tw-prose-invert-bullets: oklch(44.6% 0.03 256.802);\\n --tw-prose-invert-hr: oklch(37.3% 0.034 259.733);\\n --tw-prose-invert-quotes: oklch(96.7% 0.003 264.542);\\n --tw-prose-invert-quote-borders: oklch(37.3% 0.034 259.733);\\n --tw-prose-invert-captions: oklch(70.7% 0.022 261.325);\\n --tw-prose-invert-kbd: #fff;\\n --tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);\\n --tw-prose-invert-code: #fff;\\n --tw-prose-invert-pre-code: oklch(87.2% 0.01 258.338);\\n --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);\\n --tw-prose-invert-th-borders: oklch(44.6% 0.03 256.802);\\n --tw-prose-invert-td-borders: oklch(37.3% 0.034 259.733);\\n}\\n.prose-zinc {\\n --tw-prose-body: oklch(37% 0.013 285.805);\\n --tw-prose-headings: oklch(21% 0.006 285.885);\\n --tw-prose-lead: oklch(44.2% 0.017 285.786);\\n --tw-prose-links: oklch(21% 0.006 285.885);\\n --tw-prose-bold: oklch(21% 0.006 285.885);\\n --tw-prose-counters: oklch(55.2% 0.016 285.938);\\n --tw-prose-bullets: oklch(87.1% 0.006 286.286);\\n --tw-prose-hr: oklch(92% 0.004 286.32);\\n --tw-prose-quotes: oklch(21% 0.006 285.885);\\n --tw-prose-quote-borders: oklch(92% 0.004 286.32);\\n --tw-prose-captions: oklch(55.2% 0.016 285.938);\\n --tw-prose-kbd: oklch(21% 0.006 285.885);\\n --tw-prose-kbd-shadows: color-mix(in oklab, oklch(21% 0.006 285.885) 10%, transparent);\\n --tw-prose-code: oklch(21% 0.006 285.885);\\n --tw-prose-pre-code: oklch(92% 0.004 286.32);\\n --tw-prose-pre-bg: oklch(27.4% 0.006 286.033);\\n --tw-prose-th-borders: oklch(87.1% 0.006 286.286);\\n --tw-prose-td-borders: oklch(92% 0.004 286.32);\\n --tw-prose-invert-body: oklch(87.1% 0.006 286.286);\\n --tw-prose-invert-headings: #fff;\\n --tw-prose-invert-lead: oklch(70.5% 0.015 286.067);\\n --tw-prose-invert-links: #fff;\\n --tw-prose-invert-bold: #fff;\\n --tw-prose-invert-counters: oklch(70.5% 0.015 286.067);\\n --tw-prose-invert-bullets: oklch(44.2% 0.017 285.786);\\n --tw-prose-invert-hr: oklch(37% 0.013 285.805);\\n --tw-prose-invert-quotes: oklch(96.7% 0.001 286.375);\\n --tw-prose-invert-quote-borders: oklch(37% 0.013 285.805);\\n --tw-prose-invert-captions: oklch(70.5% 0.015 286.067);\\n --tw-prose-invert-kbd: #fff;\\n --tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);\\n --tw-prose-invert-code: #fff;\\n --tw-prose-invert-pre-code: oklch(87.1% 0.006 286.286);\\n --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);\\n --tw-prose-invert-th-borders: oklch(44.2% 0.017 285.786);\\n --tw-prose-invert-td-borders: oklch(37% 0.013 285.805);\\n}\\n.prose-neutral {\\n --tw-prose-body: oklch(37.1% 0 0);\\n --tw-prose-headings: oklch(20.5% 0 0);\\n --tw-prose-lead: oklch(43.9% 0 0);\\n --tw-prose-links: oklch(20.5% 0 0);\\n --tw-prose-bold: oklch(20.5% 0 0);\\n --tw-prose-counters: oklch(55.6% 0 0);\\n --tw-prose-bullets: oklch(87% 0 0);\\n --tw-prose-hr: oklch(92.2% 0 0);\\n --tw-prose-quotes: oklch(20.5% 0 0);\\n --tw-prose-quote-borders: oklch(92.2% 0 0);\\n --tw-prose-captions: oklch(55.6% 0 0);\\n --tw-prose-kbd: oklch(20.5% 0 0);\\n --tw-prose-kbd-shadows: color-mix(in oklab, oklch(20.5% 0 0) 10%, transparent);\\n --tw-prose-code: oklch(20.5% 0 0);\\n --tw-prose-pre-code: oklch(92.2% 0 0);\\n --tw-prose-pre-bg: oklch(26.9% 0 0);\\n --tw-prose-th-borders: oklch(87% 0 0);\\n --tw-prose-td-borders: oklch(92.2% 0 0);\\n --tw-prose-invert-body: oklch(87% 0 0);\\n --tw-prose-invert-headings: #fff;\\n --tw-prose-invert-lead: oklch(70.8% 0 0);\\n --tw-prose-invert-links: #fff;\\n --tw-prose-invert-bold: #fff;\\n --tw-prose-invert-counters: oklch(70.8% 0 0);\\n --tw-prose-invert-bullets: oklch(43.9% 0 0);\\n --tw-prose-invert-hr: oklch(37.1% 0 0);\\n --tw-prose-invert-quotes: oklch(97% 0 0);\\n --tw-prose-invert-quote-borders: oklch(37.1% 0 0);\\n --tw-prose-invert-captions: oklch(70.8% 0 0);\\n --tw-prose-invert-kbd: #fff;\\n --tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);\\n --tw-prose-invert-code: #fff;\\n --tw-prose-invert-pre-code: oklch(87% 0 0);\\n --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);\\n --tw-prose-invert-th-borders: oklch(43.9% 0 0);\\n --tw-prose-invert-td-borders: oklch(37.1% 0 0);\\n}\\n.prose-stone {\\n --tw-prose-body: oklch(37.4% 0.01 67.558);\\n --tw-prose-headings: oklch(21.6% 0.006 56.043);\\n --tw-prose-lead: oklch(44.4% 0.011 73.639);\\n --tw-prose-links: oklch(21.6% 0.006 56.043);\\n --tw-prose-bold: oklch(21.6% 0.006 56.043);\\n --tw-prose-counters: oklch(55.3% 0.013 58.071);\\n --tw-prose-bullets: oklch(86.9% 0.005 56.366);\\n --tw-prose-hr: oklch(92.3% 0.003 48.717);\\n --tw-prose-quotes: oklch(21.6% 0.006 56.043);\\n --tw-prose-quote-borders: oklch(92.3% 0.003 48.717);\\n --tw-prose-captions: oklch(55.3% 0.013 58.071);\\n --tw-prose-kbd: oklch(21.6% 0.006 56.043);\\n --tw-prose-kbd-shadows: color-mix(in oklab, oklch(21.6% 0.006 56.043) 10%, transparent);\\n --tw-prose-code: oklch(21.6% 0.006 56.043);\\n --tw-prose-pre-code: oklch(92.3% 0.003 48.717);\\n --tw-prose-pre-bg: oklch(26.8% 0.007 34.298);\\n --tw-prose-th-borders: oklch(86.9% 0.005 56.366);\\n --tw-prose-td-borders: oklch(92.3% 0.003 48.717);\\n --tw-prose-invert-body: oklch(86.9% 0.005 56.366);\\n --tw-prose-invert-headings: #fff;\\n --tw-prose-invert-lead: oklch(70.9% 0.01 56.259);\\n --tw-prose-invert-links: #fff;\\n --tw-prose-invert-bold: #fff;\\n --tw-prose-invert-counters: oklch(70.9% 0.01 56.259);\\n --tw-prose-invert-bullets: oklch(44.4% 0.011 73.639);\\n --tw-prose-invert-hr: oklch(37.4% 0.01 67.558);\\n --tw-prose-invert-quotes: oklch(97% 0.001 106.424);\\n --tw-prose-invert-quote-borders: oklch(37.4% 0.01 67.558);\\n --tw-prose-invert-captions: oklch(70.9% 0.01 56.259);\\n --tw-prose-invert-kbd: #fff;\\n --tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);\\n --tw-prose-invert-code: #fff;\\n --tw-prose-invert-pre-code: oklch(86.9% 0.005 56.366);\\n --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);\\n --tw-prose-invert-th-borders: oklch(44.4% 0.011 73.639);\\n --tw-prose-invert-td-borders: oklch(37.4% 0.01 67.558);\\n}\\n.prose-red {\\n --tw-prose-links: oklch(57.7% 0.245 27.325);\\n --tw-prose-invert-links: oklch(63.7% 0.237 25.331);\\n}\\n.prose-orange {\\n --tw-prose-links: oklch(64.6% 0.222 41.116);\\n --tw-prose-invert-links: oklch(70.5% 0.213 47.604);\\n}\\n.prose-amber {\\n --tw-prose-links: oklch(66.6% 0.179 58.318);\\n --tw-prose-invert-links: oklch(76.9% 0.188 70.08);\\n}\\n.prose-yellow {\\n --tw-prose-links: oklch(68.1% 0.162 75.834);\\n --tw-prose-invert-links: oklch(79.5% 0.184 86.047);\\n}\\n.prose-lime {\\n --tw-prose-links: oklch(64.8% 0.2 131.684);\\n --tw-prose-invert-links: oklch(76.8% 0.233 130.85);\\n}\\n.prose-green {\\n --tw-prose-links: oklch(62.7% 0.194 149.214);\\n --tw-prose-invert-links: oklch(72.3% 0.219 149.579);\\n}\\n.prose-emerald {\\n --tw-prose-links: oklch(59.6% 0.145 163.225);\\n --tw-prose-invert-links: oklch(69.6% 0.17 162.48);\\n}\\n.prose-teal {\\n --tw-prose-links: oklch(60% 0.118 184.704);\\n --tw-prose-invert-links: oklch(70.4% 0.14 182.503);\\n}\\n.prose-cyan {\\n --tw-prose-links: oklch(60.9% 0.126 221.723);\\n --tw-prose-invert-links: oklch(71.5% 0.143 215.221);\\n}\\n.prose-sky {\\n --tw-prose-links: oklch(58.8% 0.158 241.966);\\n --tw-prose-invert-links: oklch(68.5% 0.169 237.323);\\n}\\n.prose-blue {\\n --tw-prose-links: oklch(54.6% 0.245 262.881);\\n --tw-prose-invert-links: oklch(62.3% 0.214 259.815);\\n}\\n.prose-indigo {\\n --tw-prose-links: oklch(51.1% 0.262 276.966);\\n --tw-prose-invert-links: oklch(58.5% 0.233 277.117);\\n}\\n.prose-violet {\\n --tw-prose-links: oklch(54.1% 0.281 293.009);\\n --tw-prose-invert-links: oklch(60.6% 0.25 292.717);\\n}\\n.prose-purple {\\n --tw-prose-links: oklch(55.8% 0.288 302.321);\\n --tw-prose-invert-links: oklch(62.7% 0.265 303.9);\\n}\\n.prose-fuchsia {\\n --tw-prose-links: oklch(59.1% 0.293 322.896);\\n --tw-prose-invert-links: oklch(66.7% 0.295 322.15);\\n}\\n.prose-pink {\\n --tw-prose-links: oklch(59.2% 0.249 0.584);\\n --tw-prose-invert-links: oklch(65.6% 0.241 354.308);\\n}\\n.prose-rose {\\n --tw-prose-links: oklch(58.6% 0.253 17.585);\\n --tw-prose-invert-links: oklch(64.5% 0.246 16.439);\\n}\\n.prose-invert {\\n --tw-prose-body: var(--tw-prose-invert-body);\\n --tw-prose-headings: var(--tw-prose-invert-headings);\\n --tw-prose-lead: var(--tw-prose-invert-lead);\\n --tw-prose-links: var(--tw-prose-invert-links);\\n --tw-prose-bold: var(--tw-prose-invert-bold);\\n --tw-prose-counters: var(--tw-prose-invert-counters);\\n --tw-prose-bullets: var(--tw-prose-invert-bullets);\\n --tw-prose-hr: var(--tw-prose-invert-hr);\\n --tw-prose-quotes: var(--tw-prose-invert-quotes);\\n --tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);\\n --tw-prose-captions: var(--tw-prose-invert-captions);\\n --tw-prose-kbd: var(--tw-prose-invert-kbd);\\n --tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);\\n --tw-prose-code: var(--tw-prose-invert-code);\\n --tw-prose-pre-code: var(--tw-prose-invert-pre-code);\\n --tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);\\n --tw-prose-th-borders: var(--tw-prose-invert-th-borders);\\n --tw-prose-td-borders: var(--tw-prose-invert-td-borders);\\n}\\n.prose-inherit {\\n --tw-prose-body: inherit;\\n --tw-prose-headings: inherit;\\n --tw-prose-lead: inherit;\\n --tw-prose-links: inherit;\\n --tw-prose-bold: inherit;\\n --tw-prose-counters: inherit;\\n --tw-prose-bullets: inherit;\\n}\\n.visible {\\n visibility: visible;\\n}\\n.static {\\n position: static;\\n}\\n.fixed {\\n position: fixed;\\n}\\n.absolute {\\n position: absolute;\\n}\\n.relative {\\n position: relative;\\n}\\n.bottom-0 {\\n bottom: 0px;\\n}\\n.left-0 {\\n left: 0px;\\n}\\n.left-3 {\\n left: 0.75rem;\\n}\\n.right-4 {\\n right: 1rem;\\n}\\n.top-0 {\\n top: 0px;\\n}\\n.top-3 {\\n top: 0.75rem;\\n}\\n.top-\\\\[calc\\\\(100\\\\%\\\\+8px\\\\)\\\\] {\\n top: calc(100% + 8px);\\n}\\n.-z-10 {\\n z-index: -10;\\n}\\n.z-10 {\\n z-index: 10;\\n}\\n.z-\\\\[1000\\\\] {\\n z-index: 1000;\\n}\\n.z-\\\\[99\\\\] {\\n z-index: 99;\\n}\\n.col-\\\\[1\\\\] {\\n grid-column: 1;\\n}\\n.row-\\\\[1\\\\] {\\n grid-row: 1;\\n}\\n.m-5 {\\n margin: 1.25rem;\\n}\\n.my-3 {\\n margin-top: 0.75rem;\\n margin-bottom: 0.75rem;\\n}\\n.my-4 {\\n margin-top: 1rem;\\n margin-bottom: 1rem;\\n}\\n.mb-1 {\\n margin-bottom: 0.25rem;\\n}\\n.mb-2 {\\n margin-bottom: 0.5rem;\\n}\\n.mb-4 {\\n margin-bottom: 1rem;\\n}\\n.mb-6 {\\n margin-bottom: 1.5rem;\\n}\\n.ml-1 {\\n margin-left: 0.25rem;\\n}\\n.ml-2 {\\n margin-left: 0.5rem;\\n}\\n.mt-1 {\\n margin-top: 0.25rem;\\n}\\n.mt-2 {\\n margin-top: 0.5rem;\\n}\\n.mt-4 {\\n margin-top: 1rem;\\n}\\n.mt-6 {\\n margin-top: 1.5rem;\\n}\\n.box-border {\\n box-sizing: border-box;\\n}\\n.block {\\n display: block;\\n}\\n.inline-block {\\n display: inline-block;\\n}\\n.inline {\\n display: inline;\\n}\\n.flex {\\n display: flex;\\n}\\n.inline-flex {\\n display: inline-flex;\\n}\\n.grid {\\n display: grid;\\n}\\n.contents {\\n display: contents;\\n}\\n.hidden {\\n display: none;\\n}\\n.h-10 {\\n height: 2.5rem;\\n}\\n.h-12 {\\n height: 3rem;\\n}\\n.h-14 {\\n height: 3.5rem;\\n}\\n.h-6 {\\n height: 1.5rem;\\n}\\n.h-7 {\\n height: 1.75rem;\\n}\\n.h-8 {\\n height: 2rem;\\n}\\n.h-\\\\[29px\\\\] {\\n height: 29px;\\n}\\n.h-full {\\n height: 100%;\\n}\\n.h-px {\\n height: 1px;\\n}\\n.min-h-20 {\\n min-height: 5rem;\\n}\\n.w-10 {\\n width: 2.5rem;\\n}\\n.w-6 {\\n width: 1.5rem;\\n}\\n.w-\\\\[140px\\\\] {\\n width: 140px;\\n}\\n.w-\\\\[48\\\\%\\\\] {\\n width: 48%;\\n}\\n.w-\\\\[51\\\\%\\\\] {\\n width: 51%;\\n}\\n.w-full {\\n width: 100%;\\n}\\n.min-w-0 {\\n min-width: 0px;\\n}\\n.min-w-20 {\\n min-width: 5rem;\\n}\\n.min-w-\\\\[280px\\\\] {\\n min-width: 280px;\\n}\\n.min-w-\\\\[320px\\\\] {\\n min-width: 320px;\\n}\\n.min-w-\\\\[360px\\\\] {\\n min-width: 360px;\\n}\\n.max-w-\\\\[60px\\\\] {\\n max-width: 60px;\\n}\\n.max-w-none {\\n max-width: none;\\n}\\n.flex-1 {\\n flex: 1 1 0%;\\n}\\n.flex-none {\\n flex: none;\\n}\\n.flex-shrink {\\n flex-shrink: 1;\\n}\\n.flex-shrink-0 {\\n flex-shrink: 0;\\n}\\n.shrink-0 {\\n flex-shrink: 0;\\n}\\n.rotate-180 {\\n --tw-rotate: 180deg;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\n.transform {\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\n@keyframes bounce {\\n 0%, 100% {\\n transform: translateY(-25%);\\n animation-timing-function: cubic-bezier(0.8,0,1,1);\\n }\\n 50% {\\n transform: none;\\n animation-timing-function: cubic-bezier(0,0,0.2,1);\\n }\\n}\\n.animate-bounce {\\n animation: bounce 1s infinite;\\n}\\n@keyframes spin {\\n to {\\n transform: rotate(360deg);\\n }\\n}\\n.animate-spin {\\n animation: spin 1s linear infinite;\\n}\\n.cursor-not-allowed {\\n cursor: not-allowed;\\n}\\n.cursor-pointer {\\n cursor: pointer;\\n}\\n.select-none {\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none;\\n}\\n.grid-cols-\\\\[24px_1fr\\\\] {\\n grid-template-columns: 24px 1fr;\\n}\\n.grid-cols-\\\\[40px\\\\2c 1fr\\\\2c 20px\\\\] {\\n grid-template-columns: 40px 1fr 20px;\\n}\\n.grid-cols-\\\\[repeat\\\\(auto-fill\\\\2c minmax\\\\(\\\\$\\\\{this\\\\.getImageMinSizePx\\\\(\\\\)\\\\}px\\\\2c 300px\\\\)\\\\)\\\\] {\\n grid-template-columns: repeat(auto-fill,minmax(${this.getImageMinSizePx()}px,300px));\\n}\\n.flex-row {\\n flex-direction: row;\\n}\\n.flex-col {\\n flex-direction: column;\\n}\\n.flex-wrap {\\n flex-wrap: wrap;\\n}\\n.items-start {\\n align-items: flex-start;\\n}\\n.items-center {\\n align-items: center;\\n}\\n.justify-start {\\n justify-content: flex-start;\\n}\\n.justify-end {\\n justify-content: flex-end;\\n}\\n.justify-center {\\n justify-content: center;\\n}\\n.justify-between {\\n justify-content: space-between;\\n}\\n.gap-1 {\\n gap: 0.25rem;\\n}\\n.gap-1\\\\.5 {\\n gap: 0.375rem;\\n}\\n.gap-2 {\\n gap: 0.5rem;\\n}\\n.gap-3 {\\n gap: 0.75rem;\\n}\\n.gap-4 {\\n gap: 1rem;\\n}\\n.gap-x-2 {\\n -moz-column-gap: 0.5rem;\\n column-gap: 0.5rem;\\n}\\n.self-center {\\n align-self: center;\\n}\\n.overflow-hidden {\\n overflow: hidden;\\n}\\n.overflow-visible {\\n overflow: visible;\\n}\\n.text-ellipsis {\\n text-overflow: ellipsis;\\n}\\n.whitespace-nowrap {\\n white-space: nowrap;\\n}\\n.text-wrap {\\n text-wrap: wrap;\\n}\\n.break-words {\\n overflow-wrap: break-word;\\n}\\n.break-all {\\n word-break: break-all;\\n}\\n.rounded {\\n border-radius: 0.25rem;\\n}\\n.rounded-full {\\n border-radius: 9999px;\\n}\\n.rounded-lg {\\n border-radius: 0.5rem;\\n}\\n.rounded-md {\\n border-radius: 0.375rem;\\n}\\n.rounded-xl {\\n border-radius: 0.75rem;\\n}\\n.rounded-t-\\\\[120px\\\\] {\\n border-top-left-radius: 120px;\\n border-top-right-radius: 120px;\\n}\\n.border {\\n border-width: 1px;\\n}\\n.border-0 {\\n border-width: 0px;\\n}\\n.border-t {\\n border-top-width: 1px;\\n}\\n.border-\\\\[var\\\\(--neutral-90\\\\)\\\\] {\\n border-color: var(--neutral-90);\\n}\\n.border-neutral-20 {\\n --tw-border-opacity: 1;\\n border-color: rgb(36 53 66 / var(--tw-border-opacity, 1));\\n}\\n.border-neutral-90 {\\n --tw-border-opacity: 1;\\n border-color: rgb(222 231 237 / var(--tw-border-opacity, 1));\\n}\\n.border-red-200 {\\n --tw-border-opacity: 1;\\n border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));\\n}\\n.bg-\\\\[var\\\\(--neutral-100\\\\)\\\\] {\\n background-color: var(--neutral-100);\\n}\\n.bg-\\\\[var\\\\(--neutral-90\\\\)\\\\] {\\n background-color: var(--neutral-90);\\n}\\n.bg-blue-85 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(180 209 253 / var(--tw-bg-opacity, 1));\\n}\\n.bg-green-85 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(195 239 206 / var(--tw-bg-opacity, 1));\\n}\\n.bg-neutral-10 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(18 27 33 / var(--tw-bg-opacity, 1));\\n}\\n.bg-neutral-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n}\\n.bg-neutral-90 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(222 231 237 / var(--tw-bg-opacity, 1));\\n}\\n.bg-neutral-95 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(238 243 246 / var(--tw-bg-opacity, 1));\\n}\\n.bg-neutral-98 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(248 250 251 / var(--tw-bg-opacity, 1));\\n}\\n.bg-red-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));\\n}\\n.bg-red-85 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(245 188 188 / var(--tw-bg-opacity, 1));\\n}\\n.bg-transparent {\\n background-color: transparent;\\n}\\n.bg-white {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n}\\n.bg-yellow-85 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 224 179 / var(--tw-bg-opacity, 1));\\n}\\n.bg-\\\\[radial-gradient\\\\(ellipse_75px_52px_at_bottom_center\\\\2c rgba\\\\(255\\\\2c 255\\\\2c 255\\\\2c 0\\\\.78\\\\)_0\\\\%\\\\2c rgba\\\\(255\\\\2c 255\\\\2c 255\\\\2c 0\\\\)_112\\\\.5\\\\%\\\\)\\\\] {\\n background-image: radial-gradient(ellipse 75px 52px at bottom center,rgba(255,255,255,0.78) 0%,rgba(255,255,255,0) 112.5%);\\n}\\n.object-cover {\\n -o-object-fit: cover;\\n object-fit: cover;\\n}\\n.p-0 {\\n padding: 0px;\\n}\\n.p-0\\\\.5 {\\n padding: 0.125rem;\\n}\\n.p-1 {\\n padding: 0.25rem;\\n}\\n.p-2 {\\n padding: 0.5rem;\\n}\\n.p-2\\\\.5 {\\n padding: 0.625rem;\\n}\\n.p-3 {\\n padding: 0.75rem;\\n}\\n.p-4 {\\n padding: 1rem;\\n}\\n.px-1 {\\n padding-left: 0.25rem;\\n padding-right: 0.25rem;\\n}\\n.px-2 {\\n padding-left: 0.5rem;\\n padding-right: 0.5rem;\\n}\\n.px-2\\\\.5 {\\n padding-left: 0.625rem;\\n padding-right: 0.625rem;\\n}\\n.px-4 {\\n padding-left: 1rem;\\n padding-right: 1rem;\\n}\\n.px-5 {\\n padding-left: 1.25rem;\\n padding-right: 1.25rem;\\n}\\n.py-0\\\\.5 {\\n padding-top: 0.125rem;\\n padding-bottom: 0.125rem;\\n}\\n.py-1 {\\n padding-top: 0.25rem;\\n padding-bottom: 0.25rem;\\n}\\n.py-1\\\\.5 {\\n padding-top: 0.375rem;\\n padding-bottom: 0.375rem;\\n}\\n.py-10 {\\n padding-top: 2.5rem;\\n padding-bottom: 2.5rem;\\n}\\n.py-3 {\\n padding-top: 0.75rem;\\n padding-bottom: 0.75rem;\\n}\\n.pt-2 {\\n padding-top: 0.5rem;\\n}\\n.pt-4 {\\n padding-top: 1rem;\\n}\\n.text-center {\\n text-align: center;\\n}\\n.align-middle {\\n vertical-align: middle;\\n}\\n.font-mono {\\n font-family: \\\"PT Mono\\\", sans-serif;\\n}\\n.text-12 {\\n font-size: 12px;\\n}\\n.text-14 {\\n font-size: 14px;\\n}\\n.text-16 {\\n font-size: 16px;\\n}\\n.text-32 {\\n font-size: 32px;\\n}\\n.text-48 {\\n font-size: 48px;\\n}\\n.text-\\\\[10px\\\\] {\\n font-size: 10px;\\n}\\n.text-\\\\[12px\\\\] {\\n font-size: 12px;\\n}\\n.text-\\\\[13px\\\\] {\\n font-size: 13px;\\n}\\n.text-\\\\[14px\\\\] {\\n font-size: 14px;\\n}\\n.text-\\\\[16px\\\\] {\\n font-size: 16px;\\n}\\n.text-\\\\[17px\\\\] {\\n font-size: 17px;\\n}\\n.text-\\\\[18px\\\\] {\\n font-size: 18px;\\n}\\n.text-\\\\[24px\\\\] {\\n font-size: 24px;\\n}\\n.font-500 {\\n font-weight: 500;\\n}\\n.font-600 {\\n font-weight: 600;\\n}\\n.font-bold {\\n font-weight: 700;\\n}\\n.font-medium {\\n font-weight: 500;\\n}\\n.font-normal {\\n font-weight: 400;\\n}\\n.font-semibold {\\n font-weight: 600;\\n}\\n.uppercase {\\n text-transform: uppercase;\\n}\\n.italic {\\n font-style: italic;\\n}\\n.leading-none {\\n line-height: 1;\\n}\\n.leading-normal {\\n line-height: 1.5;\\n}\\n.leading-snug {\\n line-height: 1.375;\\n}\\n.leading-tight {\\n line-height: 1.25;\\n}\\n.text-\\\\[var\\\\(--neutral-40\\\\)\\\\] {\\n color: var(--neutral-40);\\n}\\n.text-green-600 {\\n --tw-text-opacity: 1;\\n color: rgb(22 163 74 / var(--tw-text-opacity, 1));\\n}\\n.text-neutral-10 {\\n --tw-text-opacity: 1;\\n color: rgb(18 27 33 / var(--tw-text-opacity, 1));\\n}\\n.text-neutral-100 {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\n.text-neutral-20 {\\n --tw-text-opacity: 1;\\n color: rgb(36 53 66 / var(--tw-text-opacity, 1));\\n}\\n.text-neutral-60 {\\n --tw-text-opacity: 1;\\n color: rgb(122 157 184 / var(--tw-text-opacity, 1));\\n}\\n.text-neutral-70 {\\n --tw-text-opacity: 1;\\n color: rgb(156 182 201 / var(--tw-text-opacity, 1));\\n}\\n.text-neutral-80 {\\n --tw-text-opacity: 1;\\n color: rgb(189 206 219 / var(--tw-text-opacity, 1));\\n}\\n.text-red-600 {\\n --tw-text-opacity: 1;\\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\\n}\\n.text-white {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\n.underline {\\n text-decoration-line: underline;\\n}\\n.opacity-0 {\\n opacity: 0;\\n}\\n.opacity-100 {\\n opacity: 1;\\n}\\n.mix-blend-difference {\\n mix-blend-mode: difference;\\n}\\n.shadow {\\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.shadow-\\\\[0_0_16px_rgba\\\\(189\\\\2c 206\\\\2c 219\\\\2c 0\\\\.4\\\\)\\\\] {\\n --tw-shadow: 0 0 16px rgba(189,206,219,0.4);\\n --tw-shadow-colored: 0 0 16px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.ring-1 {\\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\\n}\\n.ring-neutral-90 {\\n --tw-ring-opacity: 1;\\n --tw-ring-color: rgb(222 231 237 / var(--tw-ring-opacity, 1));\\n}\\n.filter {\\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\\n}\\n.transition {\\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\n.transition-all {\\n transition-property: all;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\n.transition-opacity {\\n transition-property: opacity;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\n.transition-transform {\\n transition-property: transform;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\n.duration-200 {\\n transition-duration: 200ms;\\n}\\n.duration-700 {\\n transition-duration: 700ms;\\n}\\n.ease-in-out {\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n}\\nstrong {\\n font-weight: 600;\\n}\\n.hover\\\\:scale-105:hover {\\n --tw-scale-x: 1.05;\\n --tw-scale-y: 1.05;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\n.hover\\\\:bg-neutral-90:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(222 231 237 / var(--tw-bg-opacity, 1));\\n}\\n.hover\\\\:bg-neutral-95:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(238 243 246 / var(--tw-bg-opacity, 1));\\n}\\n\";","// Export the built CSS as a string for components that need to inject styles\n// Tailwind + web-components CSS is compiled into this file by our PostCSS pipeline\n// esbuild-raw-plugin ensures importing CSS returns its raw contents as a string\n\nimport output from 'styles.css?raw'\nimport { css, LitElement, unsafeCSS } from 'lit'\n\nconst style = css`\n ${unsafeCSS(output)}\n\n :host([is-inline]) {\n display: inline-flex;\n align-items: center;\n }\n\n :host([is-full-width]) {\n width: 100%;\n flex: 1;\n display: flex;\n }\n\n`\n\nexport class CoreLitElement extends LitElement {\n static styles = [style]\n}\n\nexport default style\n","import { safeCustomElement } from '@lukso/core/utils'\nimport { html } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport './load-web-components'\nimport makeBlockie from 'ethereum-blockies-base64'\nimport { CoreLitElement } from '../styles'\n\nexport interface SelectOption {\n value: string\n label: string\n disabled: boolean\n}\n\n@safeCustomElement('custom-option')\nexport class CustomOption extends CoreLitElement {\n @property({ type: Boolean, reflect: true }) selected = false\n @property({ type: Boolean, reflect: true }) disabled = false\n @property({ type: Boolean, reflect: true }) hoverable = true\n\n override render() {\n const base =\n 'flex flex-row flex-1 items-center px-2 py-1 gap-2 h-7 rounded-md border-0 cursor-pointer text-[14px] text-neutral-20 w-full justify-between'\n const hover = this.hoverable ? ' hover:bg-neutral-95' : ''\n const selected = this.selected ? ' bg-neutral-90 rounded' : ''\n const disabled = this.disabled ? ' text-neutral-60 cursor-not-allowed' : ''\n return html`<button class=\"${base}${hover}${selected}${disabled}\" ?disabled=${this.disabled}><slot></slot></button>`\n }\n}\n\n@safeCustomElement('custom-select')\nexport class CustomSelect extends CoreLitElement {\n @property() value?: string\n @property({ type: Boolean }) open = false\n @property({ type: Array }) options: SelectOption[] = []\n @property({ type: String }) size: 'x-small' | 'small' | 'medium' | 'large' =\n 'small'\n\n private toggleOpen() {\n this.open = !this.open\n }\n\n private close() {\n this.open = false\n }\n\n private onOptionClick(opt: SelectOption) {\n if (opt.disabled) return\n this.value = opt.value\n this.dispatchEvent(new Event('change', { bubbles: true }))\n this.close()\n }\n\n private onKeyDown(e: KeyboardEvent) {\n if (e.key === 'Escape') this.close()\n }\n\n private onOutsideClick = (e: MouseEvent) => {\n if (!this.open) return\n const path = e.composedPath() as Array<EventTarget & Element>\n if (!path.includes(this)) this.close()\n }\n\n override connectedCallback(): void {\n super.connectedCallback()\n window.addEventListener('click', this.onOutsideClick, { capture: true })\n }\n\n override disconnectedCallback(): void {\n window.removeEventListener('click', this.onOutsideClick, { capture: true })\n super.disconnectedCallback()\n }\n\n override updated() {\n // reflect initial selected by value\n const selectedOption = this.getSelectedOption()\n if (selectedOption) {\n this.value = selectedOption.value\n }\n }\n\n private getSelectedOption() {\n return this.options.find((o) => o.value === this.value)\n }\n\n private getIdenticonSizePx(): number {\n switch (this.size) {\n case 'x-small':\n return 10\n case 'small':\n return 12\n case 'medium':\n return 14\n case 'large':\n return 16\n default:\n return 14\n }\n }\n\n private renderIdenticon(address: string) {\n const size = this.getIdenticonSizePx()\n const identicon = makeBlockie(address.toLowerCase())\n return html`\n <div class=\"inline-flex items-center p-1 justify-center rounded-lg bg-neutral-100 border border-neutral-90 overflow-hidden flex-none\">\n <img\n class=\"block\"\n src=${identicon}\n alt=\"identicon\"\n style=\"width:${size}px;height:${size}px;\"\n />\n </div>\n `\n }\n\n private renderOptionLabel(option: SelectOption) {\n return option.value.startsWith('0x')\n ? html`<div class=\"inline-flex items-center gap-2 px-2.5 py-1.5 text-neutral-20 leading-tight font-semibold\">${this.renderIdenticon(\n option.value\n )} <span class=\"whitespace-nowrap overflow-hidden text-ellipsis text-[14px]\">${\n option.label\n }</span></div>`\n : html`<url-view url=${option.value} label=${option.label} size=\"x-small\"></url-view>`\n }\n\n override render() {\n const selectedOption = this.getSelectedOption()\n return html`\n <div class=\"relative w-full min-w-[360px]\" @keydown=${this.onKeyDown}>\n <button class=\"box-border flex flex-row flex-1 w-full items-center h-[29px] bg-white border border-neutral-90 rounded-lg text-neutral-20 cursor-pointer justify-between\" @click=${\n this.toggleOpen\n } aria-haspopup=\"listbox\" aria-expanded=${this.open}>\n <custom-option is-full-width .hoverable=${false}>\n <div class=\"flex flex-row flex-1 items-center justify-between\">\n <span>${selectedOption ? this.renderOptionLabel(selectedOption) : 'Select option'}</span>\n <lukso-icon class=\"transition-transform ${this.open ? 'rotate-180' : ''}\" name=\"arrow-down-sm\" size=\"small\" color=\"neutral-20\" aria-hidden=\"true\">\n </lukso-icon>\n </div>\n </custom-option>\n </button>\n\n ${\n this.open && this.options.length > 0\n ? html`<div class=\"absolute left-0 top-[calc(100%+8px)] w-full bg-white border border-neutral-90 shadow-[0_0_16px_rgba(189,206,219,0.4)] rounded-xl p-2.5 flex flex-col gap-1 z-[1000] overflow-hidden box-border\" role=\"listbox\">\n ${this.options.map(\n (\n opt\n ) => html`<custom-option .selected=${opt.value === this.value} .disabled=${opt.disabled} @click=${() => this.onOptionClick(opt)}>\n ${this.renderOptionLabel(opt)}\n </custom-option>`\n )}\n </div>`\n : ''\n }\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'custom-select': CustomSelect\n 'custom-option': CustomOption\n }\n}\n","import { safeCustomElement } from '@lukso/core/utils'\nimport { html } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport './load-web-components'\nimport { CoreLitElement } from '../styles'\n\n/**\n * Compact function name badge with icon\n * Props:\n * - label (deprecated): text to display; use default slot instead\n * - icon: lukso-icon name\n * - size: x-small | small | medium | large (affects paddings and font)\n * - color: optional lukso-icon color token (e.g., \"blue-50\")\n */\n@safeCustomElement('function-name-view')\nexport class FunctionNameView extends CoreLitElement {\n /**\n * Deprecated: Prefer slot content for the label. Will be used as fallback\n * when no slot is provided to maintain backward compatibility.\n */\n @property() label = ''\n @property() icon: string = 'user'\n @property() size: 'x-small' | 'small' | 'medium' | 'large' = 'small'\n @property({ attribute: 'color' }) color?: string\n\n private getPadding(): string {\n switch (this.size) {\n case 'x-small':\n return '2px 8px'\n case 'small':\n return '4px 10px'\n case 'medium':\n return '6px 12px'\n case 'large':\n return '8px 14px'\n default:\n return '4px 10px'\n }\n }\n\n private getFontSize(): string {\n switch (this.size) {\n case 'x-small':\n return '12px'\n case 'small':\n return '14px'\n case 'medium':\n return '16px'\n case 'large':\n return '18px'\n default:\n return '14px'\n }\n }\n\n private getIconSize(): 'x-small' | 'small' | 'medium' | 'large' {\n return this.size\n }\n\n private getHeight(): string {\n switch (this.size) {\n case 'x-small':\n return 'h-6'\n case 'small':\n return 'h-8'\n case 'medium':\n return 'h-10'\n case 'large':\n return 'h-12'\n default:\n return 'h-8'\n }\n }\n\n override render() {\n return html`\n <div class=\"inline-flex ${this.getHeight()} items-center gap-2 bg-neutral-90 text-neutral-20 rounded-xl leading-none font-semibold\" style=\"padding:${this.getPadding()}; font-size:${this.getFontSize()};\">\n <lukso-icon name=${this.icon} size=${this.getIconSize()} color=${this.color || ''}></lukso-icon>\n <span class=\"whitespace-nowrap\"><slot>${this.label}</slot></span>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'function-name-view': FunctionNameView\n }\n}\n","import { safeCustomElement } from '@lukso/core/utils'\nimport { html } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport './load-web-components'\nimport { CoreLitElement } from '../styles'\n\ntype GasProvider = { type: 'relayer' | 'controller'; id: string }\ntype Relayer = {\n id: string\n name: string\n isCustom: boolean\n apiUrl: string\n chainIds: string[]\n createdAt: number\n website?: string\n}\n\n@safeCustomElement('gas-provider-view')\nexport class GasProviderView extends CoreLitElement {\n @property({ type: Array, reflect: true }) allRelayers: Relayer[] = []\n @property({ type: Number, reflect: true }) balance = 0\n @property({ type: Object, attribute: 'selected-gas-provider', reflect: true })\n selectedGasProvider?: GasProvider\n @property({ attribute: 'controller-address', reflect: true })\n controllerAddress?: string\n @property({ attribute: 'controller-name', reflect: true })\n controllerName?: string\n @property({ attribute: 'symbol', reflect: true }) symbol: string = 'LYX'\n @property({ type: Number, reflect: true }) decimals = 18\n @property({ type: Number, attribute: 'transaction-fee', reflect: true })\n transactionFee = 0\n @property({ type: Number, attribute: 'relayer-available', reflect: true })\n relayerAvailable = 0\n @property({ type: Number, attribute: 'relayer-used', reflect: true })\n relayerUsed = 0\n @property({ type: Number, attribute: 'relayer-to-be-used', reflect: true })\n relayerToBeUsed = 0\n @property({ attribute: 'relayer-reset-date', reflect: true })\n relayerResetDate: string = 'N/A'\n\n private formatToken(amount: number) {\n // naive formatting for display; consumers can override by slotting\n return (amount / 10 ** this.decimals).toLocaleString(undefined, {\n maximumFractionDigits: 6,\n })\n }\n\n private onSelectChanged(e: Event) {\n const value = (e.target as any).value as string | undefined\n if (!value) return\n if (this.controllerAddress && value === this.controllerAddress) {\n const next: GasProvider = {\n type: 'controller',\n id: this.controllerAddress,\n }\n if (\n !this.selectedGasProvider ||\n this.selectedGasProvider.id !== next.id ||\n this.selectedGasProvider.type !== next.type\n ) {\n this.selectedGasProvider = next\n this.dispatchEvent(\n new CustomEvent('on-gas-provider-change', {\n detail: next,\n bubbles: true,\n })\n )\n }\n return\n }\n // Map selection back to relayer by website/apiUrl fallback\n const match = this.allRelayers.find(\n (r) => r.website === value || r.apiUrl === value\n )\n if (match) {\n const next: GasProvider = { type: 'relayer', id: match.id }\n if (\n !this.selectedGasProvider ||\n this.selectedGasProvider.id !== next.id ||\n this.selectedGasProvider.type !== next.type\n ) {\n this.selectedGasProvider = next\n this.dispatchEvent(\n new CustomEvent('on-gas-provider-change', {\n detail: next,\n bubbles: true,\n })\n )\n }\n return\n }\n }\n\n private renderProgress(\n totalAvailable: number,\n used: number,\n toBeUsed: number,\n symbol: string,\n hasError: boolean\n ) {\n const usedPercent = totalAvailable ? (used / totalAvailable) * 100 : 0\n const toBeUsedPercent = totalAvailable\n ? (toBeUsed / totalAvailable) * 100\n : 0\n const barOverHalf = usedPercent > 50\n return html`<progress-view\n class=${hasError ? 'error' : ''}\n .data=${[\n {\n value: usedPercent,\n color: 'var(--green-54)',\n title: `${usedPercent}%`,\n },\n {\n value: toBeUsedPercent,\n color: 'var(--neutral-60)',\n title: `${toBeUsedPercent}%`,\n },\n ]}\n label-position=${barOverHalf ? 'left' : 'right'}\n .label=${`${toBeUsed} / ${String(totalAvailable)} ${symbol}`}\n >\n </progress-view>`\n }\n\n private renderControllerProgress() {\n return this.renderProgress(\n this.balance,\n 0,\n this.transactionFee,\n this.symbol,\n this.transactionFee > this.balance\n )\n }\n\n private renderRelayerProgress() {\n return this.renderProgress(\n this.relayerAvailable,\n this.relayerUsed,\n this.relayerToBeUsed,\n 'M GAS',\n this.relayerToBeUsed > this.relayerAvailable\n )\n }\n\n private displayRelayerResetDate() {\n const date = new Date(this.relayerResetDate)\n return Number.isNaN(date.getTime()) ? 'N/A' : date.toLocaleDateString()\n }\n\n override render() {\n const formatted = this.formatToken(this.balance)\n\n // Build select options: relayers first, then controller\n const relayerOptions = this.allRelayers.map((r) => ({\n value: r.website || r.apiUrl || `relayer:${r.id}`,\n label: r.name,\n disabled: false,\n }))\n const controllerOption = this.controllerAddress\n ? [\n {\n value: this.controllerAddress,\n label: this.controllerName\n ? `${this.controllerName} (${formatted} ${this.symbol})`\n : `UP Browser Extension (${formatted} ${this.symbol})`,\n disabled: false,\n },\n ]\n : []\n const options = [...relayerOptions, ...controllerOption]\n\n const selectedValue = this.selectedGasProvider\n ? this.selectedGasProvider.type === 'controller'\n ? this.controllerAddress\n : (() => {\n const r = this.allRelayers.find(\n (x) => x.id === this.selectedGasProvider?.id\n )\n return (\n r?.website ||\n r?.apiUrl ||\n `relayer:${this.selectedGasProvider?.id}`\n )\n })()\n : undefined\n\n return html`\n <div class=\"w-full\">\n <custom-select .value=${selectedValue} .options=${options} @change=${this.onSelectChanged}></custom-select>\n ${\n this.selectedGasProvider\n ? html`<div class=\"mt-2\">\n ${this.selectedGasProvider?.type === 'controller' ? this.renderControllerProgress() : this.renderRelayerProgress()}\n ${\n this.selectedGasProvider?.type === 'relayer'\n ? html`<span class=\"text-[12px] text-neutral-60 mt-2 block\">\n Your total of ${this.relayerAvailable}M resets on ${this.displayRelayerResetDate()}.\n </span>`\n : html``\n }\n </div>`\n : html``\n }\n \n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'gas-provider-view': GasProviderView\n }\n}\n","import { Task } from '@lit/task'\nimport { safeCustomElement } from '@lukso/core/utils'\nimport {\n type ImageResult,\n useAddressResolver,\n useImageLoader,\n} from '@lukso/transaction-view-headless'\nimport { html } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { CoreLitElement } from '../styles'\n\n// LUKSO web components are loaded dynamically via plugin\n\n/**\n * Address data interface for display\n */\nexport interface AddressData {\n address: string\n name?: string\n lsp4TokenName?: string\n lsp4TokenSymbol?: string\n baseAsset?: {\n lsp4TokenName?: string\n lsp4TokenSymbol?: string\n }\n profileImages?: any[]\n avatar?: any[]\n icon?: any[]\n images?: any[]\n __gqltype?: string\n __identity?: string\n identity?: string\n}\n\n/**\n * Icon/Avatar display component for addresses\n *\n * Displays just the profile image/avatar for an address with proper styling.\n * Supports both Universal Profiles and contract addresses.\n *\n * @example\n * ```html\n * <icon-view\n * address=\"0x1234...\"\n * .resolved=\"${resolvedData}\"\n * size=\"medium\"\n * ></icon-view>\n * ```\n */\n@safeCustomElement('icon-view')\nexport class IconView extends CoreLitElement {\n /**\n * The address to display (required)\n */\n @property() address!: string\n\n /**\n * Resolved address data (profile, images, etc.)\n */\n @property({ type: Object }) resolved?: AddressData\n\n /**\n * Display size\n */\n @property() size: 'x-small' | 'small' | 'medium' | 'large' | '2x-large' =\n 'small'\n\n /**\n * Optional label to display above the icon\n */\n @property() label?: string\n\n /**\n * Whether to show the resolved display name below/beside the icon\n */\n @property({ type: Boolean, attribute: 'show-name' }) showName = true\n\n /**\n * Name placement relative to the icon: 'below' (stacked) or 'beside' (inline)\n */\n @property({ attribute: 'name-position' }) namePosition: 'below' | 'beside' =\n 'below'\n\n /**\n * Maximum width for the name label (pixels)\n */\n @property({ type: Number, attribute: 'max-width' }) maxWidth = 200\n\n /**\n * Whether to show small identicon badge on the avatar\n */\n @property({ type: Boolean, attribute: 'show-icon-identicon' })\n showIconIdenticon = true\n\n /**\n * Whether to show small identicon badge on the label\n */\n @property({ type: Boolean, attribute: 'show-label-identicon' })\n showLabelIdenticon = false\n\n /**\n * Force unresolved display (for testing)\n */\n @property({ type: Boolean, attribute: 'force-unresolved' }) forceUnresolved =\n false\n\n /**\n * Property name to use for loading images (e.g., 'images', 'icons', 'profileImages')\n * If not set, uses default image loading logic\n */\n @property({ type: String, attribute: 'image-hint' }) imageHint?: string\n\n /**\n * Index to use when loading from an image array (e.g., images[0])\n * Only used when imageHint points to an array property\n */\n @property({ type: Number, attribute: 'image-index' }) imageIndex?: number\n\n // Composables\n private imageLoader = useImageLoader()\n private addressResolver = useAddressResolver()\n isLoadingAddress = false\n isLoadingImage = false\n\n // Task for resolving address data\n private addressTask = new Task(this, {\n task: async ([address]) => {\n if (!address) return null\n\n this.isLoadingAddress = true\n try {\n // Pass the full compound address to resolver (e.g., \"0x123...-0x456...\")\n const resolved = await this.addressResolver.resolveAddress(address)\n this.requestUpdate() // Force re-render after resolution\n return resolved\n } catch (error) {\n console.warn('❌ IconView: Failed to resolve address:', error)\n return null\n } finally {\n this.isLoadingAddress = false\n }\n },\n args: () => [this.address],\n })\n\n // Task for loading profile image\n private imageTask = new Task(this, {\n task: async ([resolved]) => {\n if (!resolved) return null\n\n this.isLoadingImage = true\n try {\n let image: ImageResult | null = null\n\n // If imageHint is specified, load directly from that property\n if (this.imageHint && (resolved as any)[this.imageHint]) {\n const imageArray = (resolved as any)[this.imageHint]\n if (Array.isArray(imageArray) && imageArray.length > 0) {\n image = await this.imageLoader.loadImage(imageArray, {\n width: this.getSizePixels(),\n height: this.getSizePixels(),\n dpr: window.devicePixelRatio || 1,\n index: this.imageIndex,\n })\n }\n } else {\n // Use default profile image loading logic\n image = await this.imageLoader.loadProfileImage(resolved, {\n width: this.getSizePixels(),\n height: this.getSizePixels(),\n dpr: window.devicePixelRatio || 1,\n index: this.imageIndex,\n })\n }\n\n return image || this.imageLoader.getFallbackImage(resolved)\n } catch (error) {\n console.warn('Failed to load address image:', error)\n return this.imageLoader.getFallbackImage(resolved || {})\n } finally {\n this.isLoadingImage = false\n }\n },\n args: () => [this.addressTask.value],\n })\n\n /**\n * Get pixel size for the current size setting\n */\n private getSizePixels(): number {\n switch (this.size) {\n case 'x-small':\n return 16\n case 'small':\n return 24\n case 'medium':\n return 32\n case 'large':\n return 48\n case '2x-large':\n return 124\n default:\n return 24\n }\n }\n\n /**\n * Check if this is a contract address (shows square icon)\n */\n private get isContract(): boolean {\n const resolved = this.addressTask.value\n return resolved ? this.imageLoader.isContractAddress(resolved) : false\n }\n\n /**\n * Handle icon click\n */\n private handleClick() {\n this.dispatchEvent(\n new CustomEvent('address-click', {\n detail: {\n address: this.address,\n resolved: this.addressTask.value,\n },\n bubbles: true,\n })\n )\n }\n\n override render() {\n const imageResult = this.imageTask.value\n\n const containerClass = this.namePosition === 'beside' ? 'row' : 'column'\n return html`\n <div class=\"${\n containerClass === 'row'\n ? 'flex items-start gap-1'\n : 'flex flex-col items-center gap-1'\n }\">\n ${\n this.label\n ? html`<div class=\"text-[12px] text-neutral-60 font-medium\">${\n this.label\n }</div>`\n : ''\n }\n\n <div class=\"${\n this.namePosition === 'beside'\n ? 'inline-flex flex-row items-center gap-2'\n : 'inline-flex flex-col items-center gap-1.5'\n }\">\n <lukso-profile\n size=${this.size}\n profile-address=${this.address}\n profile-url=${imageResult?.src || ''}\n ?has-identicon=${this.showIconIdenticon}\n ?is-square=${this.isContract}\n class=\"inline-flex items-center cursor-pointer transition-transform duration-200 hover:scale-105\"\n @click=${this.handleClick}\n ></lukso-profile>\n\n ${\n this.showName\n ? html`\n <address-view\n class=\"leading-none\"\n address=${this.address}\n .showIdenticon=${this.showLabelIdenticon}\n size=${this.size}\n max-width=${this.maxWidth}\n ></address-view>\n `\n : ''\n }\n </div>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'icon-view': IconView\n }\n}\n","import {\n type AddressImageData,\n type ImageLoadOptions,\n type ImageResult,\n useImageLoader as useImageLoaderHeadless,\n} from '@lukso/transaction-view-headless'\nimport type { Signal } from '@preact/signals-core'\nimport type { ReactiveController, ReactiveControllerHost } from 'lit'\n\n/**\n * Lit controller state for image loading\n */\nexport interface ImageLoadState {\n result: ImageResult | null\n loading: boolean\n error: string | null\n}\n\n/**\n * Lit Reactive Controller for image loading functionality\n * Integrates the headless image loader with Lit elements\n */\nexport class ImageLoaderController implements ReactiveController {\n private host: ReactiveControllerHost\n private headlessLoader = useImageLoaderHeadless()\n\n // Internal state\n private _state: ImageLoadState = {\n result: null,\n loading: false,\n error: null,\n }\n\n constructor(host: ReactiveControllerHost) {\n this.host = host\n host.addController(this)\n }\n\n hostConnected() {\n // Controller is ready\n }\n\n hostDisconnected() {\n // Cleanup if needed\n }\n\n get state(): ImageLoadState {\n return this._state\n }\n\n get isLoading(): boolean {\n return this._state.loading\n }\n\n get error(): string | null {\n return this._state.error\n }\n\n get result(): ImageResult | null {\n return this._state.result\n }\n\n /**\n * Load image from data array\n */\n async loadImage(\n imageData: any[],\n options: ImageLoadOptions = {}\n ): Promise<ImageResult | null> {\n this.updateState({ loading: true, error: null })\n\n try {\n const result = await this.headlessLoader.loadImage(imageData, options)\n this.updateState({ result, loading: false })\n return result\n } catch (err) {\n const error = err instanceof Error ? err.message : 'Failed to load image'\n this.updateState({ loading: false, error })\n return null\n }\n }\n\n /**\n * Load profile image from address data\n */\n async loadProfileImage(\n addressData: AddressImageData,\n options: ImageLoadOptions = {}\n ): Promise<ImageResult | null> {\n this.updateState({ loading: true, error: null })\n\n try {\n const result =\n (await this.headlessLoader.loadProfileImage(addressData, options)) ||\n this.headlessLoader.getFallbackImage(addressData)\n\n this.updateState({ result, loading: false })\n return result\n } catch (err) {\n const error =\n err instanceof Error ? err.message : 'Failed to load profile image'\n const fallback = this.headlessLoader.getFallbackImage(addressData)\n this.updateState({ result: fallback, loading: false, error })\n return fallback\n }\n }\n\n /**\n * Load image from address signal (reactive)\n */\n loadFromSignal(\n addressSignal: Signal<{ data?: AddressImageData }>,\n options: ImageLoadOptions = {}\n ): void {\n const addressData = addressSignal.value?.data\n\n if (!addressData) {\n const fallback = this.headlessLoader.getFallbackImage({})\n this.updateState({ result: fallback, loading: false, error: null })\n return\n }\n\n this.loadProfileImage(addressData, options)\n }\n\n /**\n * Get fallback image synchronously\n */\n getFallbackImage(addressData: AddressImageData): ImageResult {\n return this.headlessLoader.getFallbackImage(addressData)\n }\n\n /**\n * Check if address is a contract\n */\n isContractAddress(addressData: AddressImageData): boolean {\n return this.headlessLoader.isContractAddress(addressData)\n }\n\n /**\n * Clear current state\n */\n clear(): void {\n this.updateState({ result: null, loading: false, error: null })\n }\n\n private updateState(updates: Partial<ImageLoadState>): void {\n this._state = { ...this._state, ...updates }\n this.host.requestUpdate()\n }\n}\n\n/**\n * Utility function to create an image loader controller\n */\nexport function useImageLoader(\n host: ReactiveControllerHost\n): ImageLoaderController {\n return new ImageLoaderController(host)\n}\n","import { safeCustomElement } from '@lukso/core/utils'\nimport { html } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport './load-web-components'\nimport { CoreLitElement } from '../styles'\n\n@safeCustomElement('notification-view')\nexport class NotificationView extends CoreLitElement {\n /** Variant controls background/emphasis */\n @property() variant: 'success' | 'warning' | 'error' | 'info' = 'info'\n\n /** Notification message content */\n @property() message = ''\n\n /** Optional title shown above the description */\n @property() title = ''\n\n /** Whether the acknowledge button is shown */\n @property({ type: Boolean, attribute: 'acknowledgeable' }) acknowledgeable =\n false\n\n /** Text shown next to acknowledge checkbox */\n @property({ attribute: 'acknowledge-text' }) acknowledgeText =\n 'I understand and want to continue'\n\n /** Internal acknowledged state (for default behavior) */\n @state() private acknowledged = false\n\n /** External control for acknowledge checkbox */\n @property({ type: Boolean, reflect: true }) checked = false\n\n private handleAcknowledgeChange(e: Event) {\n e.stopPropagation()\n const target: any = e.target as any\n const checked = !!(target?.checked ?? (e as any).detail?.checked ?? false)\n if (checked !== this.checked) {\n this.checked = checked\n }\n if (this.checked) {\n this.acknowledged = true\n this.dispatchEvent(\n new CustomEvent('notification-acknowledged', {\n detail: {\n variant: this.variant,\n message: this.message,\n title: this.title,\n checked: this.checked,\n },\n bubbles: true,\n })\n )\n }\n }\n\n override render() {\n if (this.acknowledged) return html``\n\n return html`\n <div class=\"grid grid-cols-[24px_1fr] items-start gap-3 p-3 rounded-xl text-neutral-10 leading-snug ${this.getVariantBackgroundClass()}\">\n <div class=\"flex items-center justify-center text-[16px] text-neutral-20 self-center\" aria-hidden=\"true\">\n <lukso-icon name=\"${this.renderIcon()}\" size=\"small\" color=\"${this.getVariantColor()}\"></lukso-icon>\n </div>\n <div class=\"text-[14px] flex flex-col gap-1.5\">\n ${\n this.title\n ? html`<div class=\"font-semibold text-neutral-20 paragraph-inter-14-semi-bold\">${this.title}</div>`\n : ''\n }\n <div class=\"text-neutral-20\"><slot>${this.message}</slot></div>\n ${\n this.acknowledgeable\n ? html`\n <div class=\"inline-flex items-center gap-2 mt-1 text-[12px] text-neutral-20 select-none cursor-pointer paragraph-inter-12-medium\">\n <lukso-checkbox \n size=\"x-small\" \n ?checked=${this.checked}\n @change=${this.handleAcknowledgeChange}\n ><span class=\"paragraph-inter-14-semi-bold\">${this.acknowledgeText}</span></lukso-checkbox>\n </div>\n `\n : ''\n }\n </div>\n </div>\n `\n }\n\n private renderIcon() {\n switch (this.variant) {\n case 'success':\n return 'bulb-outline'\n case 'warning':\n return 'warning-round'\n case 'error':\n return 'warning-triangle'\n default:\n return 'bulb-outline'\n }\n }\n\n private getVariantColor() {\n switch (this.variant) {\n case 'success':\n return 'green-45'\n case 'warning':\n return 'yellow-55'\n case 'error':\n return 'red-55'\n default:\n return 'blue-50'\n }\n }\n\n private getVariantBackgroundClass() {\n switch (this.variant) {\n case 'success':\n return 'bg-green-85'\n case 'warning':\n return 'bg-yellow-85'\n case 'error':\n return 'bg-red-85'\n default:\n return 'bg-blue-85'\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'notification-view': NotificationView\n }\n}\n","import { safeCustomElement } from '@lukso/core/utils'\nimport { html } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { CoreLitElement } from '../styles'\n\nexport type ProgressSegment = {\n value: number\n color?: string\n title?: string\n}\n\n@safeCustomElement('progress-view')\nexport class ProgressView extends CoreLitElement {\n @property({ type: Array }) data: ProgressSegment[] = []\n @property() label?: string\n @property() unit?: string\n @property() address?: string\n @property({ attribute: 'label-position' }) labelPosition: 'left' | 'right' =\n 'right'\n\n private renderGasProviderLabel() {\n return html`\n ${\n this.label\n ? html`\n <span class=\"progress-label-value\">${this.label}</span>\n ${\n this.unit\n ? html`<span class=\"progress-label-unit\" data-testid=\"unit\">${this.unit}</span>`\n : ''\n }\n `\n : html`\n <slot></slot>\n ${\n this.unit\n ? html`<span class=\"progress-label-unit\" data-testid=\"unit\">${this.unit}</span>`\n : ''\n }\n `\n }\n `\n }\n\n override render() {\n const isError = (this.className || '').split(/\\s+/).includes('error')\n return html`\n <div class=\"relative grid w-full ${this.className || ''}\">\n <div class=\"flex bg-neutral-95 h-6 rounded-lg relative col-[1] row-[1] overflow-hidden\" style=${isError ? 'background-color: var(--red-65);' : ''} role=\"progressbar\">\n ${this.data.map((seg, index) => {\n const width = `${Math.max(0, Math.min(100, Number(seg.value || 0)))}%`\n const backgroundColor = seg.color || 'var(--neutral-90)'\n const title = seg.title || ''\n return html`<div\n class=\"h-full flex items-center justify-center text-[10px] font-semibold\"\n style=${`width:${width};background-color:${backgroundColor};`}\n data-testid=${`value-${index}`}\n >${title}</div>`\n })}\n </div>\n <div class=${`flex items-center absolute h-6 rounded-lg overflow-visible w-full col-[1] row-[1] top-0 left-0 ${\n this.labelPosition === 'left' ? 'justify-start' : 'justify-end'\n }`} data-testid=\"progress-labels\">\n <div class=\"text-[13px] font-semibold text-white mix-blend-difference h-inherit flex items-center p-0 right-4 absolute\" data-testid=\"label\">\n ${this.renderGasProviderLabel()}\n </div>\n </div>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'progress-view': ProgressView\n }\n}\n","import { safeCustomElement } from '@lukso/core/utils'\nimport { html } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { CoreLitElement } from '../styles'\n\n/**\n * ScrollToBottomButton (core) - reusable scroll helper.\n * Emits `scroll-to-bottom` when clicked.\n */\n@safeCustomElement('scroll-to-bottom-button')\nexport class ScrollToBottomButton extends CoreLitElement {\n /** Controls visibility */\n @property({ type: Boolean, attribute: 'show' }) show = false\n\n /** Icon color (CSS var or token) */\n @property() color: string = 'neutral-20'\n\n /** Icon size token */\n @property({ attribute: 'icon-size' }) iconSize:\n | 'x-small'\n | 'small'\n | 'medium'\n | 'large' = 'medium'\n\n /** Icon name (attribute: icon-name) */\n @property({ attribute: 'icon-name' }) iconName: string = 'arrow-down-lg'\n\n private handleClick() {\n this.dispatchEvent(new CustomEvent('scroll-to-bottom', { bubbles: true }))\n }\n\n override render() {\n return html`\n <div class=\"h-14 w-[140px] self-center rounded-t-[120px] bg-[radial-gradient(ellipse_75px_52px_at_bottom_center,rgba(255,255,255,0.78)_0%,rgba(255,255,255,0)_112.5%)] flex justify-center items-center transition-opacity duration-700 ease-in-out ${\n this.show ? 'opacity-100 z-10' : 'opacity-0 -z-10'\n }\">\n <div class=\"flex justify-center items-center w-10 h-10 rounded-full border border-neutral-90 shadow-[0_0_16px_rgba(189,206,219,0.4)] bg-neutral-100 cursor-pointer animate-bounce\" @click=${\n this.handleClick\n }>\n <lukso-icon\n name=${this.iconName}\n size=${this.iconSize}\n color=${this.color}\n ></lukso-icon>\n </div>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'scroll-to-bottom-button': ScrollToBottomButton\n }\n}\n","import type { Signal } from '@preact/signals-core'\nimport type { ReactiveController, ReactiveControllerHost } from 'lit'\n\n/**\n * Lit Reactive Controller for @preact/signals-core integration\n * This controller allows Lit elements to reactively update when signals change\n */\nexport class SignalController<T = any> implements ReactiveController {\n private host: ReactiveControllerHost\n private signal: Signal<T>\n private unsubscribe?: () => void\n\n constructor(host: ReactiveControllerHost, signal: Signal<T>) {\n this.host = host\n this.signal = signal\n host.addController(this)\n }\n\n hostConnected() {\n // In a real implementation, you would use signal.subscribe()\n // For now, we'll use a polling approach\n let lastValue = this.signal.value\n\n const check = () => {\n const currentValue = this.signal.value\n if (currentValue !== lastValue) {\n lastValue = currentValue\n this.host.requestUpdate()\n }\n }\n\n // Set up polling\n const interval = setInterval(check, 50) // 20fps updates\n\n this.unsubscribe = () => clearInterval(interval)\n }\n\n hostDisconnected() {\n if (this.unsubscribe) {\n this.unsubscribe()\n this.unsubscribe = undefined\n }\n }\n\n get value(): T {\n return this.signal.value\n }\n\n /**\n * Create a new SignalController for a different signal\n */\n static create<U>(\n host: ReactiveControllerHost,\n signal: Signal<U>\n ): SignalController<U> {\n return new SignalController(host, signal)\n }\n}\n\n/**\n * Lit Reactive Controller for multiple signals\n * Updates the host when any of the tracked signals change\n */\nexport class MultiSignalController implements ReactiveController {\n private host: ReactiveControllerHost\n private signals: Signal<any>[]\n private unsubscribes: (() => void)[] = []\n\n constructor(host: ReactiveControllerHost, signals: Signal<any>[]) {\n this.host = host\n this.signals = signals\n host.addController(this)\n }\n\n hostConnected() {\n this.signals.forEach((signal, index) => {\n let lastValue = signal.value\n\n const check = () => {\n const currentValue = signal.value\n if (currentValue !== lastValue) {\n lastValue = currentValue\n this.host.requestUpdate()\n }\n }\n\n const interval = setInterval(check, 50)\n this.unsubscribes[index] = () => clearInterval(interval)\n })\n }\n\n hostDisconnected() {\n this.unsubscribes.forEach((unsubscribe) => {\n unsubscribe()\n })\n this.unsubscribes = []\n }\n\n getValue(index: number): any {\n return this.signals[index]?.value\n }\n\n getValues(): any[] {\n return this.signals.map((signal) => signal.value)\n }\n}\n\n/**\n * Utility function to create a signal controller\n */\nexport function useSignal<T>(\n host: ReactiveControllerHost,\n signal: Signal<T>\n): SignalController<T> {\n return new SignalController(host, signal)\n}\n\n/**\n * Utility function to create a multi-signal controller\n */\nexport function useSignals(\n host: ReactiveControllerHost,\n signals: Signal<any>[]\n): MultiSignalController {\n return new MultiSignalController(host, signals)\n}\n","import type { DecoderResult } from '@lukso/transaction-decoder'\nimport {\n findAllTransactionViews,\n findBestTransactionView,\n type UseTransactionViewOptions,\n useTransactionView as useTransactionViewHeadless,\n type ViewMatch,\n} from '@lukso/transaction-view-headless'\nimport type { Signal } from '@preact/signals-core'\nimport type { ReactiveController, ReactiveControllerHost } from 'lit'\n\n/**\n * Lit controller state for transaction view\n */\nexport interface TransactionViewState {\n matches: ViewMatch[]\n bestMatch: ViewMatch | null\n component: any\n loading: boolean\n error: Error | null\n isResolvingAddresses: boolean\n resolvedAddresses: Record<string, any>\n}\n\n/**\n * Lit Reactive Controller for transaction view functionality\n * Integrates the headless transaction view system with Lit elements\n */\nexport class TransactionViewController implements ReactiveController {\n private host: ReactiveControllerHost\n private headlessInstance: any = null\n\n // Internal state\n private _state: TransactionViewState = {\n matches: [],\n bestMatch: null,\n component: null,\n loading: false,\n error: null,\n isResolvingAddresses: false,\n resolvedAddresses: {},\n }\n\n private syncInterval?: number\n\n constructor(\n host: ReactiveControllerHost,\n private transaction: DecoderResult,\n private options: UseTransactionViewOptions\n ) {\n this.host = host\n host.addController(this)\n this.initialize()\n }\n\n hostConnected() {\n // Set up periodic sync with headless instance\n this.setupSync()\n }\n\n hostDisconnected() {\n // Cleanup sync\n if (this.syncInterval) {\n clearInterval(this.syncInterval)\n this.syncInterval = undefined\n }\n }\n\n get state(): TransactionViewState {\n return this._state\n }\n\n get matches(): ViewMatch[] {\n return this._state.matches\n }\n\n get bestMatch(): ViewMatch | null {\n return this._state.bestMatch\n }\n\n get component(): any {\n return this._state.component\n }\n\n get isLoading(): boolean {\n return this._state.loading\n }\n\n get error(): Error | null {\n return this._state.error\n }\n\n get isResolvingAddresses(): boolean {\n return this._state.isResolvingAddresses\n }\n\n get resolvedAddresses(): Record<string, any> {\n return this._state.resolvedAddresses\n }\n\n /**\n * Load a specific match\n */\n async loadMatch(match: ViewMatch): Promise<any> {\n if (!this.headlessInstance) {\n throw new Error('Transaction view not initialized')\n }\n\n try {\n const result = await this.headlessInstance.loadMatch(match)\n this.syncState()\n return result\n } catch (err) {\n this.syncState()\n throw err\n }\n }\n\n /**\n * Load the best match\n */\n async loadBestMatch(): Promise<any> {\n if (!this.headlessInstance) {\n throw new Error('Transaction view not initialized')\n }\n\n try {\n const result = await this.headlessInstance.loadBestMatch()\n this.syncState()\n return result\n } catch (err) {\n this.syncState()\n throw err\n }\n }\n\n /**\n * Refresh matches\n */\n refreshMatches(): void {\n if (!this.headlessInstance) {\n console.warn('Transaction view not initialized, cannot refresh matches')\n return\n }\n\n this.headlessInstance.refreshMatches()\n this.syncState()\n }\n\n /**\n * Resolve addresses\n */\n async resolveAddresses(): Promise<void> {\n if (!this.headlessInstance) {\n throw new Error('Transaction view not initialized')\n }\n\n try {\n await this.headlessInstance.resolveAddresses()\n this.syncState()\n } catch (err) {\n this.syncState()\n throw err\n }\n }\n\n /**\n * Update transaction and options\n */\n update(transaction: DecoderResult, options: UseTransactionViewOptions): void {\n this.transaction = transaction\n this.options = options\n this.initialize()\n }\n\n /**\n * Get the best matching view without loading\n */\n static findBestMatch(\n transaction: DecoderResult,\n framework: 'lit' | 'rn' = 'lit'\n ): ViewMatch | null {\n return findBestTransactionView(transaction, framework)\n }\n\n /**\n * Get all matching views without loading\n */\n static findAllMatches(\n transaction: DecoderResult,\n framework: 'lit' | 'rn' = 'lit'\n ): ViewMatch[] {\n return findAllTransactionViews(transaction, framework)\n }\n\n private initialize(): void {\n try {\n this.headlessInstance = useTransactionViewHeadless(\n this.transaction,\n this.options\n )\n this.syncState()\n } catch (err) {\n this.updateState({\n error:\n err instanceof Error\n ? err\n : new Error('Failed to initialize transaction view'),\n })\n console.error('Failed to initialize transaction view:', err)\n }\n }\n\n private setupSync(): void {\n // Sync immediately\n this.syncState()\n\n // Set up periodic sync\n this.syncInterval = setInterval(() => {\n this.syncState()\n }, 100) as any // Type assertion for browser/node compatibility\n }\n\n private syncState(): void {\n if (!this.headlessInstance) return\n\n this.updateState({\n matches: this.headlessInstance.matches,\n bestMatch: this.headlessInstance.bestMatch,\n component: this.headlessInstance.component,\n loading: this.headlessInstance.isLoading,\n error: this.headlessInstance.error,\n isResolvingAddresses: this.headlessInstance.isResolvingAddresses,\n resolvedAddresses: this.headlessInstance.resolvedAddresses,\n })\n }\n\n private updateState(updates: Partial<TransactionViewState>): void {\n this._state = { ...this._state, ...updates }\n this.host.requestUpdate()\n }\n}\n\n/**\n * Utility function to create a transaction view controller\n */\nexport function useTransactionView(\n host: ReactiveControllerHost,\n transaction: DecoderResult,\n options: UseTransactionViewOptions\n): TransactionViewController {\n return new TransactionViewController(host, transaction, options)\n}\n\n/**\n * Controller for working with transaction signals from the decoder\n */\nexport class TransactionSignalController<_T = any>\n implements ReactiveController\n{\n private host: ReactiveControllerHost\n private signal: Signal<{\n data: DecoderResult\n loading: boolean\n error?: string\n }>\n private unsubscribe?: () => void\n\n private _data: DecoderResult | null = null\n private _loading = false\n private _error: string | null = null\n\n constructor(\n host: ReactiveControllerHost,\n signal: Signal<{ data: DecoderResult; loading: boolean; error?: string }>\n ) {\n this.host = host\n this.signal = signal\n host.addController(this)\n }\n\n hostConnected() {\n this.setupSignalSync()\n }\n\n hostDisconnected() {\n if (this.unsubscribe) {\n this.unsubscribe()\n this.unsubscribe = undefined\n }\n }\n\n get data(): DecoderResult | null {\n return this._data\n }\n\n get loading(): boolean {\n return this._loading\n }\n\n get error(): string | null {\n return this._error\n }\n\n get isReady(): boolean {\n return !this._loading && this._data !== null && !this._error\n }\n\n private setupSignalSync(): void {\n const sync = () => {\n const signalValue = this.signal.value\n const newData = signalValue?.data || null\n const newLoading = signalValue?.loading || false\n const newError = signalValue?.error || null\n\n if (\n newData !== this._data ||\n newLoading !== this._loading ||\n newError !== this._error\n ) {\n this._data = newData\n this._loading = newLoading\n this._error = newError\n this.host.requestUpdate()\n }\n }\n\n // Initial sync\n sync()\n\n // Set up periodic sync\n const interval = setInterval(sync, 50)\n this.unsubscribe = () => clearInterval(interval)\n }\n}\n\n/**\n * Utility function to create a transaction signal controller\n */\nexport function useTransactionSignal(\n host: ReactiveControllerHost,\n signal: Signal<{ data: DecoderResult; loading: boolean; error?: string }>\n): TransactionSignalController {\n return new TransactionSignalController(host, signal)\n}\n","import { safeCustomElement } from '@lukso/core/utils'\nimport { html } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport './load-web-components'\nimport { CoreLitElement } from '../styles'\n\n/**\n * UrlView - display a URL with favicon/logo and human-friendly name\n *\n * Props:\n * - url (required): full URL like https://example.com/path\n * - size: x-small | small | medium | large\n * - label?: optional label displayed above\n * - showLogo: whether to show favicon/logo (default true)\n * - logoUrl?: explicit logo URL to use instead of favicon\n * - maxWidth: name truncation width in px\n */\n@safeCustomElement('url-view')\nexport class UrlView extends CoreLitElement {\n @property() url!: string\n @property() size: 'x-small' | 'small' | 'medium' | 'large' = 'small'\n @property() label?: string\n @property({ type: Boolean, attribute: 'show-logo' }) showLogo = true\n @property({ attribute: 'logo-url' }) logoUrl?: string\n @property({ type: Number, attribute: 'max-width' }) maxWidth = 240\n\n @state() private favicon?: string\n @state() private displayName = ''\n private faviconCandidates: string[] = []\n private faviconIndex = 0\n\n protected willUpdate(changed: Map<string, unknown>) {\n if (changed.has('url') || changed.has('label') || changed.has('logoUrl')) {\n this.computeMeta()\n }\n }\n\n private computeMeta() {\n try {\n const u = new URL(this.url)\n const origin = u.origin\n this.faviconCandidates = []\n if (this.logoUrl) this.faviconCandidates.push(this.logoUrl)\n this.faviconCandidates.push(\n `${origin}/favicon.ico`,\n `${origin}/favicon.png`\n )\n this.faviconIndex = 0\n this.favicon = this.faviconCandidates[this.faviconIndex]\n const hostname = u.hostname.replace(/^www\\./, '')\n const hostnamePretty = hostname\n .split('.')\n .filter(Boolean)\n .slice(-2)\n .join(' ')\n .replace(/-/g, ' ')\n .replace(/\\b\\w/g, (c) => c.toUpperCase())\n\n if (this.label?.trim()) {\n this.displayName = this.label.trim()\n } else {\n this.displayName = hostnamePretty || this.url\n }\n } catch {\n this.favicon = undefined\n // Fallback to raw string if URL parse fails\n this.displayName = this.label?.trim() ? this.label : this.url\n }\n }\n\n private handleImageError() {\n this.faviconIndex += 1\n if (this.faviconIndex < this.faviconCandidates.length) {\n this.favicon = this.faviconCandidates[this.faviconIndex]\n } else {\n this.favicon = undefined\n }\n }\n\n private getSizePixels(): number {\n switch (this.size) {\n case 'x-small':\n return 14\n case 'small':\n return 16\n case 'medium':\n return 20\n case 'large':\n return 24\n default:\n return 16\n }\n }\n\n override render() {\n const sizePx = this.getSizePixels()\n return html`\n <div class=\"inline-flex flex-col gap-1\">\n <div class=\"inline-flex items-center gap-2 px-2.5 py-1.5 text-neutral-20 leading-tight font-semibold\">\n ${\n this.showLogo\n ? html`\n <div class=\"inline-flex items-center p-1 justify-center rounded-lg bg-neutral-100 border border-neutral-90 overflow-hidden flex-none\">\n ${\n this.favicon\n ? html`<img\n src=${this.favicon}\n style=\"width:${sizePx}px;height:${sizePx}px;\"\n alt=\"favicon\"\n @error=${this.handleImageError}\n />`\n : html`<lukso-icon name=\"globe\" size=${this.size} color=\"blue-85\"></lukso-icon>`\n }\n </div>\n `\n : ''\n }\n <span class=\"whitespace-nowrap overflow-hidden text-ellipsis leading-tight\" style=${`max-width:${this.maxWidth}px;font-size: ${sizePx}px;`}>${this.displayName}</span>\n </div>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'url-view': UrlView\n }\n}\n","import { Task } from '@lit/task'\nimport { safeCustomElement } from '@lukso/core/utils'\nimport { useAddressResolver } from '@lukso/transaction-view-headless'\nimport { html, type TemplateResult } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { when } from 'lit/directives/when.js'\n\n// Import LUKSO web components\nimport './load-web-components'\nimport { CoreLitElement } from '../styles'\nimport { formatUnits } from '../utils'\n\n/**\n * Value display component\n *\n * Displays various types of values with appropriate formatting and styling.\n * Supports numbers, strings, booleans, BigInt values, and special handling\n * for Ethereum values with currency symbols.\n *\n * @example\n * ```html\n * <value-view\n * value=\"1000000000000000000\"\n * type=\"currency\"\n * currency-symbol=\"LYX\"\n * decimals=\"18\"\n * ></value-view>\n * ```\n */\n@safeCustomElement('value-view')\nexport class ValueView extends CoreLitElement {\n /**\n * The value to display (required)\n * Can be string, number, boolean, or bigint\n */\n @property() value?: TemplateResult | string | number | boolean | bigint | null\n\n /**\n * The key name (used for special formatting logic)\n */\n @property({ attribute: 'key-name' }) keyName?: string\n\n @property({ type: String, attribute: 'container-class-names' })\n containerClassNames?: string\n\n /**\n * Value type for formatting\n */\n @property() type:\n | 'string'\n | 'number'\n | 'boolean'\n | 'currency'\n | 'bigint'\n | 'address'\n | 'auto' = 'auto'\n\n /**\n * Currency symbol for currency type\n */\n @property({ attribute: 'currency-symbol' }) currencySymbol = 'LYX'\n\n /**\n * Number of decimals for currency formatting\n */\n @property({ type: Number }) decimals = 18\n\n /**\n * Display size\n */\n @property() size: 'x-small' | 'small' | 'medium' | 'large' = 'medium'\n\n /**\n * Whether to show copy button\n */\n @property({ type: Boolean, attribute: 'show-copy-button' }) showCopyButton =\n false\n\n /**\n * Render as a card with bordered container and label\n */\n @property({ type: Boolean, attribute: 'is-card-view' }) isCardView = false\n\n /**\n * Optional label to show in card header\n */\n @property() label?: string | TemplateResult\n\n /**\n * Maximum width for truncation\n */\n @property({ type: Number, attribute: 'max-width' }) maxWidth?: number\n\n /**\n * Token/contract address for automatic metadata resolution\n * When provided, ValueView will automatically resolve token symbol and decimals\n */\n @property() address?: string\n\n // Tracks whether the component has any slotted content\n @state() private _hasSlotContent = false\n\n private _onSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement\n const assigned = slot?.assignedNodes({ flatten: true }) ?? []\n this._hasSlotContent = assigned.length > 0\n }\n\n protected override firstUpdated(): void {\n const slot = this.renderRoot.querySelector('slot') as HTMLSlotElement | null\n if (slot) {\n const assigned = slot.assignedNodes({ flatten: true })\n this._hasSlotContent = assigned.length > 0\n }\n }\n\n // Address resolution utilities (lazy initialization)\n private get addressResolver() {\n try {\n return useAddressResolver()\n } catch (error) {\n console.warn('ValueView: Address resolver not available:', error)\n return {\n resolveAddress: async () => null,\n }\n }\n }\n\n // Task for resolving address metadata\n private addressTask = new Task(this, {\n task: async ([address]) => {\n if (!address) return null\n try {\n return this.addressResolver.resolveAddress(address)\n } catch (error) {\n console.warn('ValueView: Failed to resolve address metadata:', error)\n return null\n }\n },\n args: () => [this.address] as const,\n })\n\n /**\n * Get the effective type for the value\n */\n private getEffectiveType(): string {\n if (this.type !== 'auto') return this.type\n\n const value = this.value\n\n if (value === null || value === undefined) return 'null'\n if (typeof value === 'string') return 'string'\n if (typeof value === 'number') return 'number'\n if (typeof value === 'boolean') return 'boolean'\n if (typeof value === 'bigint') {\n // Special handling for 'value' key - treat as currency\n if (this.keyName === 'value') return 'currency'\n return 'bigint'\n }\n\n return 'string'\n }\n\n /**\n * Get CSS class for the value type\n */\n private getValueClass(): string {\n const effectiveType = this.getEffectiveType()\n\n switch (effectiveType) {\n case 'string':\n return 'text-success-60'\n case 'number':\n return 'text-info-60'\n case 'boolean':\n return 'text-error-60'\n case 'currency':\n return 'text-warning-60 font-medium'\n case 'bigint':\n return 'text-secondary-60'\n case 'address':\n return 'text-info-60 font-mono'\n case 'null':\n return 'text-neutral-70 italic'\n default:\n return 'text-neutral-10'\n }\n }\n\n /**\n * Format the value for display\n */\n private getFormattedValue(): string {\n const value = this.value\n const effectiveType = this.getEffectiveType()\n\n if (value === null) return 'null'\n if (value === undefined) return 'undefined'\n\n switch (effectiveType) {\n case 'currency': {\n const { numeric, symbol } = this.getCurrencyParts()\n return `${numeric} ${symbol}`\n }\n\n case 'bigint':\n if (typeof value === 'bigint') {\n return `${value.toString()}n`\n }\n return `${String(value)}n`\n\n case 'boolean':\n return value ? 'true' : 'false'\n\n case 'number':\n if (typeof value === 'number') {\n // Format large numbers with commas\n return value.toLocaleString()\n }\n return String(value)\n\n case 'string':\n return String(value)\n\n case 'null':\n return 'null'\n\n default:\n return String(value)\n }\n }\n\n /**\n * Compute currency display parts: numeric portion and symbol\n */\n private getCurrencyParts(): { numeric: string; symbol: string } {\n const value = this.value\n const resolvedData: any = this.addressTask.value\n const effectiveDecimals = resolvedData?.lsp4TokenSymbol\n ? (resolvedData.baseAsset?.decimals ??\n resolvedData.decimals ??\n this.decimals)\n : this.decimals\n const effectiveSymbol =\n resolvedData?.lsp4TokenSymbol ||\n resolvedData?.baseAsset?.lsp4TokenSymbol ||\n this.currencySymbol\n\n let numeric = String(value ?? '')\n try {\n if (typeof value === 'bigint') {\n numeric = formatUnits(value, effectiveDecimals)\n } else if (typeof value === 'string' && !Number.isNaN(Number(value))) {\n const bigintValue = BigInt(value)\n numeric = formatUnits(bigintValue, effectiveDecimals)\n }\n } catch {\n // fallback to raw string\n numeric = String(value ?? '')\n }\n\n return { numeric, symbol: effectiveSymbol }\n }\n\n /** Typography class for numeric value based on size */\n private getNumericClass(): string {\n switch (this.size) {\n case 'x-small':\n return 'paragraph-ptmono-12-bold'\n case 'small':\n return 'paragraph-ptmono-14-bold'\n case 'medium':\n return 'paragraph-ptmono-16-bold'\n case 'large':\n return 'paragraph-ptmono-24-bold'\n default:\n return 'paragraph-ptmono-16-bold'\n }\n }\n\n /** Typography class for currency symbol based on size */\n private getCurrencyClass(): string {\n switch (this.size) {\n case 'x-small':\n return 'paragraph-inter-12-regular'\n case 'small':\n return 'paragraph-inter-14-regular'\n case 'medium':\n return 'paragraph-inter-16-regular'\n case 'large':\n return 'paragraph-inter-20-regular'\n default:\n return 'paragraph-inter-16-regular'\n }\n }\n\n /**\n * Get size-appropriate font size\n */\n private getContainerTextClass(): string {\n switch (this.size) {\n case 'x-small':\n return 'text-[12px]'\n case 'small':\n return 'text-[14px]'\n case 'medium':\n return 'text-[16px]'\n case 'large':\n return 'text-[18px]'\n default:\n return 'text-[16px]'\n }\n }\n\n /**\n * Handle copy to clipboard\n */\n private async handleCopy(e?: Event) {\n if (e) e.stopPropagation()\n const textToCopy = String(this.value)\n\n try {\n await navigator.clipboard.writeText(textToCopy)\n\n // Dispatch copy event\n this.dispatchEvent(\n new CustomEvent('value-copied', {\n detail: { value: textToCopy },\n bubbles: true,\n })\n )\n\n // Value copied successfully - UI feedback handled by event\n } catch (error) {\n console.error('Failed to copy value:', error)\n }\n }\n\n /**\n * Handle value click\n */\n private handleClick() {\n this.dispatchEvent(\n new CustomEvent('value-click', {\n detail: {\n value: this.value,\n formattedValue: this.getFormattedValue(),\n type: this.getEffectiveType(),\n },\n bubbles: true,\n })\n )\n }\n\n override render() {\n const formattedValue = this.getFormattedValue()\n const valueClass = this.getValueClass()\n\n // Card view\n if (this.isCardView) {\n const effectiveType = this.getEffectiveType()\n let headerText = this.label || ''\n let contentTemplate = html`\n <span class=\"inline-block text-wrap min-w-0 text-center\">${formattedValue}</span>\n `\n\n if (effectiveType === 'currency') {\n const { numeric, symbol } = this.getCurrencyParts()\n if (this.label) {\n headerText = this.label\n contentTemplate = html`\n <span class=\"inline-block overflow-hidden text-ellipsis whitespace-nowrap min-w-0 ${this.getNumericClass()}\">${numeric}</span>\n <span class=\"inline-block ${this.getCurrencyClass()}\"> ${symbol}</span>\n `\n } else {\n headerText = symbol\n contentTemplate = html`\n <span class=\"inline-block overflow-hidden text-ellipsis whitespace-nowrap min-w-0 ${this.getNumericClass()}\">${numeric}</span>\n `\n }\n }\n\n return html`\n <div\n class=\"block border border-neutral-90 rounded-xl bg-white py-3 px-4 min-w-[320px] ${this.containerClassNames || ''}\"\n @click=${this.handleClick}\n style=\"${this.maxWidth ? `max-width: ${this.maxWidth}px` : ''}\"\n >\n <div class=\"flex items-center justify-between mb-2\">\n ${\n headerText\n ? html`<div class=\"${this.getLabelClass()} text-neutral-20 overflow-hidden text-ellipsis whitespace-nowrap\">${headerText}</div>`\n : html``\n }\n ${\n this.showCopyButton\n ? html`\n <button\n class=\"bg-white rounded-lg w-6 h-6 flex items-center justify-center cursor-pointer text-neutral-20 hover:bg-neutral-95\"\n @click=${(e: Event) => this.handleCopy(e)}\n title=\"Copy value\"\n aria-label=\"Copy\"\n >\n <lukso-icon name=\"copy\" size=\"small\"></lukso-icon>\n </button>\n `\n : html``\n }\n </div>\n ${when(\n !this._hasSlotContent,\n () => html`\n <div class=\"font-semibold text-neutral-10 break-words flex items-center gap-2 text-wrap ${\n this.getUseMonospace() ? 'font-mono' : ''\n }\">\n ${contentTemplate}\n </div>\n `\n )}\n <slot @slotchange=${this._onSlotChange}></slot>\n </div>\n `\n }\n\n // Inline view (default)\n return html`\n <div\n class=\"inline-flex items-center gap-1.5 cursor-pointer transition-all duration-200 rounded px-1 py-0.5 hover:bg-neutral-95 min-w-[320px] ${this.getContainerTextClass()} ${this.containerClassNames || ''}\"\n @click=${this.handleClick}\n style=\"${this.maxWidth ? `max-width: ${this.maxWidth}px` : ''}\"\n >\n <span class=\"inline-block overflow-hidden text-ellipsis whitespace-nowrap min-w-0 ${valueClass}\">\n ${formattedValue}\n </span>\n ${\n this.showCopyButton\n ? html`\n <button\n class=\"inline-flex items-center justify-center bg-transparent border-0 cursor-pointer text-neutral-70 p-0.5 rounded transition-all duration-200 hover:text-primary-50 hover:bg-neutral-90 flex-shrink-0\"\n @click=${(e: Event) => this.handleCopy(e)}\n title=\"Copy value\"\n aria-label=\"Copy value to clipboard\"\n >\n <lukso-icon name=\"copy\" size=\"small\"></lukso-icon>\n </button>\n `\n : ''\n }\n </div>\n `\n }\n\n /** Whether to use monospace font for the value content */\n private getUseMonospace(): boolean {\n const t = this.getEffectiveType()\n if (\n t === 'address' ||\n t === 'bigint' ||\n this.value?.toString().startsWith('0x')\n )\n return true\n if (t === 'string') {\n const s = String(this.value ?? '')\n return /^0x[0-9a-fA-F]+$/.test(s) || s.length > 32\n }\n return false\n }\n\n /** Map size to a typography class for the label */\n private getLabelClass(): string {\n switch (this.size) {\n case 'x-small':\n return 'paragraph-inter-12-semi-bold'\n case 'small':\n return 'heading-inter-14-bold'\n case 'medium':\n return 'heading-inter-17-semi-bold'\n case 'large':\n return 'heading-inter-21-semi-bold'\n default:\n return 'heading-inter-17-semi-bold'\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'value-view': ValueView\n }\n}\n","// Value formatting utilities\n/**\n * Convert a token amount from base units (bigint) to a decimal string.\n *\n * - Handles arbitrary `decimals` without floating point precision loss.\n * - Trims trailing zeros in the fractional part.\n * - Returns only the integer part when remainder is zero.\n *\n * @param value - The amount in base units as a bigint (e.g., wei for ETH).\n * @param decimals - Number of decimal places the token uses (default 18).\n * @returns A human-readable decimal string.\n *\n * @example\n * // 1 ether in wei\n * formatUnits(1000000000000000000n) // '1'\n *\n * @example\n * // 1.23 tokens with 2 decimals\n * formatUnits(123n, 2) // '1.23'\n *\n * @example\n * // No remainder: return integer part only\n * formatUnits(2000000000000000000n) // '2'\n */\nexport function formatUnits(value: bigint, decimals = 18): string {\n const divisor = 10n ** BigInt(decimals)\n const quotient = value / divisor\n const remainder = value % divisor\n\n if (remainder === 0n) {\n return quotient.toString()\n }\n\n const remainderStr = remainder.toString().padStart(decimals, '0')\n const trimmed = remainderStr.replace(/0+$/, '')\n return `${quotient}.${trimmed}`\n}\n\nfunction isBigIntString(str: string): boolean {\n const trimmed = str.trim()\n if (trimmed.endsWith('n'))\n return /^[0-9]+n$/.test(trimmed) || /^0x[0-9a-fA-F]+n$/.test(trimmed)\n return /^[0-9]+$/.test(trimmed) || /^0x[0-9a-fA-F]+$/.test(trimmed)\n}\n\n/**\n * Parse loose bigint inputs coming from attributes, JSON, or user input.\n *\n * - Accepts bigint literals (`123n`), decimal/hex strings, and integers.\n * - Trims whitespace and optional trailing `n` suffix.\n * - Returns `undefined` for invalid formats (floats, empty strings, non-numeric text).\n *\n * @param value - Source value to parse (string | number | bigint | null | undefined).\n * @returns BigInt when parsing succeeds, otherwise `undefined`.\n *\n * @example\n * parseBigInt('42') // 42n\n * @example\n * parseBigInt('0x10n') // 16n\n * @example\n * parseBigInt(1000n) // 1000n (passthrough)\n * @example\n * parseBigInt('1.5') // undefined (decimals not allowed)\n */\nexport function parseBigInt(\n value: string | number | bigint | null | undefined\n): bigint | undefined {\n if (!value) return undefined\n if (typeof value === 'bigint') return value\n if (typeof value === 'number') {\n if (!Number.isInteger(value)) return undefined\n return BigInt(value)\n }\n const trimmed = value.trim()\n const cleaned = trimmed.endsWith('n') ? trimmed.slice(0, -1) : trimmed\n if (!isBigIntString(cleaned)) return undefined\n try {\n return BigInt(cleaned)\n } catch {\n return undefined\n }\n}\n"],"mappings":"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","names":["useImageLoader","import_utils","import_task","import_utils","import_transaction_view_headless","import_lit","import_decorators","import_lit","makeBlockie","import_utils","import_lit","import_decorators","import_ethereum_blockies_base64","makeBlockie","import_utils","import_lit","import_decorators","import_utils","import_lit","import_decorators","import_task","import_utils","import_transaction_view_headless","import_lit","import_decorators","import_transaction_view_headless","useImageLoaderHeadless","useImageLoader","import_utils","import_lit","import_decorators","import_utils","import_lit","import_decorators","import_utils","import_lit","import_decorators","import_transaction_view_headless","useTransactionViewHeadless","import_utils","import_lit","import_decorators","import_task","import_utils","import_transaction_view_headless","import_lit","import_decorators"]}