@nyris/nyris-webapp 0.3.99 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/build/asset-manifest.json +6 -6
  2. package/build/index.html +1 -1
  3. package/build/js/settings.example.js +3 -1
  4. package/build/static/css/main.a7ff7a7f.css +4 -0
  5. package/build/static/css/main.a7ff7a7f.css.map +1 -0
  6. package/build/static/js/main.916c157c.js +3 -0
  7. package/build/static/js/{main.2339271b.js.map → main.916c157c.js.map} +1 -1
  8. package/package.json +3 -3
  9. package/public/js/settings.example.js +3 -1
  10. package/src/components/ChatAssistant/ChatAssistant.test.tsx +213 -0
  11. package/src/components/ChatAssistant/ChatAssistant.tsx +18 -1
  12. package/src/components/ChatAssistant/MobileChatAssistant.tsx +18 -1
  13. package/src/components/ChatAssistant/OptionChip.tsx +23 -1
  14. package/src/components/ChatAssistant/useChatAssistantLogic.ts +35 -14
  15. package/src/components/Inquiry/InquiryModal.tsx +58 -26
  16. package/src/hooks/chatProductMetadata.test.ts +307 -0
  17. package/src/hooks/useBadResultsRecovery.ts +26 -49
  18. package/src/hooks/useGoodResultsChat.ts +20 -17
  19. package/src/hooks/useResultEvaluator.ts +21 -55
  20. package/src/services/Feedback.ts +5 -2
  21. package/src/stores/chat/conversationStore.test.ts +133 -0
  22. package/src/stores/chat/conversationStore.ts +55 -14
  23. package/src/types.ts +1 -0
  24. package/src/utils/chatProductMetadata.test.ts +130 -0
  25. package/src/utils/chatProductMetadata.ts +93 -0
  26. package/src/utils/compressImage.ts +3 -3
  27. package/build/static/css/main.5cb72c09.css +0 -4
  28. package/build/static/css/main.5cb72c09.css.map +0 -1
  29. package/build/static/js/main.2339271b.js +0 -3
  30. /package/build/static/js/{main.2339271b.js.LICENSE.txt → main.916c157c.js.LICENSE.txt} +0 -0
@@ -0,0 +1,133 @@
1
+ import useConversationStore from './conversationStore';
2
+
3
+ beforeEach(() => {
4
+ window.settings = {
5
+ vizo: { requestSupport: true },
6
+ support: { emailInquiry: true, emailTemplateId: 'support-template' },
7
+ } as typeof window.settings;
8
+ useConversationStore.getState().reset();
9
+ });
10
+
11
+ const sendUserMessages = (count: number) => {
12
+ for (let index = 0; index < count; index += 1) {
13
+ useConversationStore.getState().addMessage({
14
+ role: 'user',
15
+ content: `Still searching ${index}`,
16
+ });
17
+ }
18
+ };
19
+
20
+ const addApiResponse = () => {
21
+ useConversationStore.getState().addMessage(
22
+ {
23
+ role: 'assistant',
24
+ content: 'Let us keep looking.',
25
+ options: [{ label: 'Continue search', action_type: 'filter' }],
26
+ },
27
+ { isApiResponse: true },
28
+ );
29
+ };
30
+
31
+ test('offers support within the third API reply, once per session', () => {
32
+ sendUserMessages(2);
33
+ addApiResponse();
34
+ expect(useConversationStore.getState().supportPromptShown).toBe(false);
35
+
36
+ sendUserMessages(1);
37
+ expect(useConversationStore.getState().supportPromptShown).toBe(false);
38
+ addApiResponse();
39
+ const state = useConversationStore.getState();
40
+ expect(state.userMessageCount).toBe(3);
41
+ expect(state.messages).toHaveLength(5);
42
+ expect(state.messages[state.messages.length - 1]).toMatchObject({
43
+ role: 'assistant',
44
+ content: 'Let us keep looking.',
45
+ options: [
46
+ { label: 'Continue search', action_type: 'filter' },
47
+ { label: 'Request support', action_type: 'request_support' },
48
+ ],
49
+ });
50
+
51
+ sendUserMessages(2);
52
+ addApiResponse();
53
+ expect(
54
+ useConversationStore
55
+ .getState()
56
+ .messages.filter(message =>
57
+ message.options?.some(
58
+ option => option.action_type === 'request_support',
59
+ ),
60
+ ),
61
+ ).toHaveLength(1);
62
+ });
63
+
64
+ test('waits for a response and excludes assistant and empty user messages', () => {
65
+ const store = useConversationStore.getState();
66
+ store.addMessage({ role: 'assistant', content: 'How can I help?' });
67
+ store.addMessage({ role: 'user', content: ' ' });
68
+ expect(useConversationStore.getState().userMessageCount).toBe(0);
69
+ sendUserMessages(3);
70
+ store.setIsLoading(true);
71
+ expect(useConversationStore.getState().supportPromptShown).toBe(false);
72
+ store.setIsLoading(false);
73
+ expect(useConversationStore.getState().supportPromptShown).toBe(false);
74
+ store.addMessage({ role: 'assistant', content: 'Something went wrong.' });
75
+ expect(useConversationStore.getState().supportPromptShown).toBe(false);
76
+ addApiResponse();
77
+ expect(useConversationStore.getState().supportPromptShown).toBe(true);
78
+ });
79
+
80
+ test('does not offer support after a successful outcome', () => {
81
+ sendUserMessages(3);
82
+ useConversationStore.getState().setSearchResolved(true);
83
+ addApiResponse();
84
+ expect(useConversationStore.getState().supportPromptShown).toBe(false);
85
+ });
86
+
87
+ test('offers support on the third reply when recovery exits without another API call', () => {
88
+ sendUserMessages(3);
89
+ useConversationStore.getState().addMessage({
90
+ role: 'assistant',
91
+ content: 'I was not able to find a match.',
92
+ action: { type: 'exit' },
93
+ });
94
+ const state = useConversationStore.getState();
95
+ expect(state.supportPromptShown).toBe(true);
96
+ expect(state.messages[state.messages.length - 1].options).toContainEqual({
97
+ label: 'Request support',
98
+ action_type: 'request_support',
99
+ });
100
+ });
101
+
102
+ test('a new session resets message counting and allows another support prompt', () => {
103
+ sendUserMessages(3);
104
+ addApiResponse();
105
+ useConversationStore.getState().startNewSession();
106
+ expect(useConversationStore.getState()).toMatchObject({
107
+ userMessageCount: 0,
108
+ supportPromptShown: false,
109
+ searchResolved: false,
110
+ });
111
+ sendUserMessages(3);
112
+ addApiResponse();
113
+ expect(useConversationStore.getState().supportPromptShown).toBe(true);
114
+ });
115
+
116
+ test('does not offer support when vizo.requestSupport is disabled', () => {
117
+ window.settings.vizo!.requestSupport = false;
118
+ sendUserMessages(3);
119
+ addApiResponse();
120
+ const state = useConversationStore.getState();
121
+ expect(state.supportPromptShown).toBe(false);
122
+ expect(state.messages[state.messages.length - 1].options).not.toContainEqual(
123
+ expect.objectContaining({ action_type: 'request_support' }),
124
+ );
125
+ });
126
+
127
+ test('offers support even when the inquiry banner and email template are disabled', () => {
128
+ window.settings.support.emailInquiry = false;
129
+ window.settings.support.emailTemplateId = '';
130
+ sendUserMessages(3);
131
+ addApiResponse();
132
+ expect(useConversationStore.getState().supportPromptShown).toBe(true);
133
+ });
@@ -39,7 +39,8 @@ export interface QuickReplyOption {
39
39
  | 'restore_previous'
40
40
  | 'related_part'
41
41
  | 'find_related_parts'
42
- | 'restore_original';
42
+ | 'restore_original'
43
+ | 'request_support';
43
44
  value?: string;
44
45
  key?: string;
45
46
  }
@@ -72,7 +73,7 @@ export interface RelatedPartSuggestion {
72
73
  interface ConversationState {
73
74
  // Session state
74
75
  sessionId: string;
75
- isEvaluated: boolean; // P2 has fired
76
+ isEvaluated: boolean; // P2 has fired
76
77
  // Routing
77
78
  route: ConversationRoute;
78
79
  quality: ResultQuality;
@@ -84,6 +85,9 @@ interface ConversationState {
84
85
  // Conversation
85
86
  messages: ChatMessage[];
86
87
  activeFilters: ActiveFilter[];
88
+ userMessageCount: number;
89
+ supportPromptShown: boolean;
90
+ searchResolved: boolean;
87
91
 
88
92
  // UI state
89
93
  isOpen: boolean;
@@ -126,8 +130,12 @@ interface ConversationActions {
126
130
  ) => void;
127
131
 
128
132
  // Messages
129
- addMessage: (message: Omit<ChatMessage, 'id' | 'timestamp'>) => void;
133
+ addMessage: (
134
+ message: Omit<ChatMessage, 'id' | 'timestamp'>,
135
+ options?: { isApiResponse?: boolean },
136
+ ) => void;
130
137
  clearMessages: () => void;
138
+ setSearchResolved: (resolved: boolean) => void;
131
139
 
132
140
  // Filters (for P3)
133
141
  addFilter: (key: string, value: string) => void;
@@ -172,6 +180,9 @@ const initialState: ConversationState = {
172
180
  attemptCounter: 0,
173
181
  messages: [],
174
182
  activeFilters: [],
183
+ userMessageCount: 0,
184
+ supportPromptShown: false,
185
+ searchResolved: false,
175
186
  isOpen: false, // Start closed so left panel is open by default
176
187
  hasNotification: false,
177
188
  isLoading: false,
@@ -240,20 +251,50 @@ const useConversationStore = create<ConversationState & ConversationActions>()(
240
251
  }));
241
252
  },
242
253
 
243
- addMessage: message =>
244
- set(state => ({
245
- messages: [
246
- ...state.messages,
247
- {
248
- ...message,
249
- id: generateId(),
250
- timestamp: Date.now(),
251
- },
252
- ],
253
- })),
254
+ addMessage: (message, { isApiResponse = false } = {}) =>
255
+ set(state => {
256
+ const shouldOfferSupport =
257
+ window.settings?.vizo?.requestSupport &&
258
+ (isApiResponse || message.action?.type === 'exit') &&
259
+ message.role === 'assistant' &&
260
+ state.userMessageCount > 2 &&
261
+ !state.supportPromptShown &&
262
+ !state.searchResolved;
263
+
264
+ return {
265
+ userMessageCount:
266
+ state.userMessageCount +
267
+ (message.role === 'user' &&
268
+ (message.content.trim() || message.imageUrl)
269
+ ? 1
270
+ : 0),
271
+ supportPromptShown: state.supportPromptShown || shouldOfferSupport,
272
+ messages: [
273
+ ...state.messages,
274
+ {
275
+ ...message,
276
+ id: generateId(),
277
+ timestamp: Date.now(),
278
+ ...(shouldOfferSupport
279
+ ? {
280
+ options: [
281
+ ...(message.options || []),
282
+ {
283
+ label: 'Request support',
284
+ action_type: 'request_support' as const,
285
+ },
286
+ ],
287
+ }
288
+ : {}),
289
+ },
290
+ ],
291
+ };
292
+ }),
254
293
 
255
294
  clearMessages: () => set({ messages: [] }),
256
295
 
296
+ setSearchResolved: searchResolved => set({ searchResolved }),
297
+
257
298
  addFilter: (key, value) =>
258
299
  set(state => ({
259
300
  activeFilters: [
package/src/types.ts CHANGED
@@ -133,6 +133,7 @@ export interface AppSettings extends NyrisAPISettings {
133
133
  fallbackToElasticSearch?: boolean;
134
134
  chat?: boolean;
135
135
  findRelatedParts?: boolean;
136
+ requestSupport?: boolean;
136
137
  };
137
138
  headerText?: string;
138
139
  instantRedirectPatterns: string[];
@@ -0,0 +1,130 @@
1
+ import {
2
+ getChatAttributeFrequency,
3
+ getChatProductAttributes,
4
+ getChatProductMetadata,
5
+ } from './chatProductMetadata';
6
+
7
+ test('selects only curated primitive filter traits without mutating metadata', () => {
8
+ const metadata = {
9
+ brand: 'ACME',
10
+ voltage: '24V DC',
11
+ current: 0,
12
+ connector: false,
13
+ product_type: 'PUMP',
14
+ sku: 'pump-1',
15
+ title: 'Unique pump title',
16
+ description: 'Unique pump description',
17
+ customIds: { mpn: 'MPN-1' },
18
+ attributes: { pressure: 10 },
19
+ metadata: { customAttribute: 'value' },
20
+ _tags: { color: 'blue' },
21
+ material: { name: 'steel' },
22
+ category: ['Pumps'],
23
+ size: null,
24
+ dimensions: undefined,
25
+ color: ' ',
26
+ power: NaN,
27
+ model: Infinity,
28
+ };
29
+ const snapshot = { ...metadata };
30
+
31
+ expect(getChatProductAttributes(metadata)).toEqual({
32
+ brand: 'ACME',
33
+ voltage: '24V DC',
34
+ current: 0,
35
+ connector: false,
36
+ product_type: 'PUMP',
37
+ });
38
+ expect(metadata).toEqual(snapshot);
39
+ });
40
+
41
+ test('counts trait values, not full metadata or object stringifications', () => {
42
+ expect(
43
+ getChatAttributeFrequency([
44
+ {
45
+ metadata: {
46
+ brand: 'ACME',
47
+ voltage: '24V DC',
48
+ sku: 'pump-1',
49
+ attributes: { material: 'steel' },
50
+ },
51
+ },
52
+ {
53
+ metadata: {
54
+ brand: 'ACME',
55
+ voltage: '12V DC',
56
+ sku: 'pump-2',
57
+ material: { name: 'steel' },
58
+ },
59
+ },
60
+ { metadata: null },
61
+ ]),
62
+ ).toEqual({
63
+ brand: { ACME: 2 },
64
+ voltage: { '24V DC': 1, '12V DC': 1 },
65
+ });
66
+ expect(getChatAttributeFrequency([])).toEqual({});
67
+ });
68
+
69
+ test('counts trait values that match object prototype properties', () => {
70
+ const frequency = getChatAttributeFrequency([
71
+ { metadata: { model: '__proto__', series: 'constructor' } },
72
+ { metadata: { model: '__proto__', series: 'constructor' } },
73
+ ]);
74
+ expect(frequency.model['__proto__']).toBe(2);
75
+ expect(frequency.series.constructor).toBe(2);
76
+ });
77
+
78
+ test('preserves all non-URL metadata, including nested and falsy values', () => {
79
+ const metadata = {
80
+ sku: 'pump-1',
81
+ description: ' Complete description '.repeat(30),
82
+ customIds: { mpn: 'MPN-1', gtin: '123456' },
83
+ attributes: [
84
+ { label: 'pressure', value: 0, unit: 'bar' },
85
+ { label: 'available', value: false },
86
+ ],
87
+ metadata: { security: 'IP67', empty: '', spaces: ' ', unknown: null },
88
+ _tags: { productType: 'pump', material: 'steel' },
89
+ };
90
+
91
+ expect(getChatProductMetadata(metadata)).toEqual(metadata);
92
+ });
93
+
94
+ test('removes URL fields and URL values recursively without mutating products', () => {
95
+ const product = {
96
+ sku: 'pump-1',
97
+ url: '/products/pump-1',
98
+ productURL: '/products/pump-1',
99
+ image_url_original: '/images/pump.jpg',
100
+ imageurl: '/images/pump.jpg',
101
+ attributes: {
102
+ documentationUri: '/documents/manual.pdf',
103
+ href: '/products/pump-1',
104
+ links: ['https://example.com/manual.pdf'],
105
+ manual: 'https://example.com/manual.pdf',
106
+ material: 'steel',
107
+ },
108
+ images: [
109
+ 'https://example.com/pump.jpg',
110
+ { url: '/images/pump.jpg', width: 300 },
111
+ ],
112
+ references: [
113
+ 'MPN-1',
114
+ '//example.com/pump',
115
+ 'blob:https://example.com/image',
116
+ 'data:image/png;base64,aGVsbG8=',
117
+ ],
118
+ description: 'Pump details at https://example.com/pump with steel housing',
119
+ };
120
+ const snapshot = JSON.stringify(product);
121
+
122
+ expect(getChatProductMetadata(product)).toEqual({
123
+ sku: 'pump-1',
124
+ attributes: { material: 'steel' },
125
+ images: [{ width: 300 }],
126
+ references: ['MPN-1'],
127
+ description: 'Pump details at with steel housing',
128
+ });
129
+ expect(JSON.stringify(product)).toBe(snapshot);
130
+ });
@@ -0,0 +1,93 @@
1
+ const urlField = /(?:^|_)(?:urls?|uris?|hrefs?|links?)(?:_|$)/i;
2
+ const urlValue = /(?:https?:\/\/|ftp:\/\/|\/\/|blob:|data:)[^\s"'<>]+/gi;
3
+
4
+ const attributeFields = [
5
+ 'voltage',
6
+ 'size',
7
+ 'brand',
8
+ 'manufacturer',
9
+ 'material',
10
+ 'type',
11
+ 'category',
12
+ 'color',
13
+ 'dimensions',
14
+ 'power',
15
+ 'current',
16
+ 'connector',
17
+ 'model',
18
+ 'series',
19
+ 'product_line',
20
+ 'product_type',
21
+ ];
22
+
23
+ /** Keep filter traits separate from the complete product context sent to chat. */
24
+ export function getChatProductAttributes(
25
+ metadata: Record<string, unknown>,
26
+ ): Record<string, string | number | boolean> {
27
+ return Object.fromEntries(
28
+ Object.entries(metadata).filter(
29
+ (entry): entry is [string, string | number | boolean] => {
30
+ const [key, value] = entry;
31
+ return (
32
+ attributeFields.includes(key) &&
33
+ ((typeof value === 'string' && value.trim().length > 0) ||
34
+ (typeof value === 'number' && Number.isFinite(value)) ||
35
+ typeof value === 'boolean')
36
+ );
37
+ },
38
+ ),
39
+ );
40
+ }
41
+
42
+ export function getChatAttributeFrequency(
43
+ products: ReadonlyArray<{ metadata: Record<string, unknown> | null }>,
44
+ ): Record<string, Record<string, number>> {
45
+ const frequency = new Map<string, Map<string, number>>();
46
+ products.forEach(({ metadata }) => {
47
+ Object.entries(getChatProductAttributes(metadata || {})).forEach(
48
+ ([key, value]) => {
49
+ const counts = frequency.get(key) || new Map<string, number>();
50
+ const text = String(value);
51
+ counts.set(text, (counts.get(text) || 0) + 1);
52
+ frequency.set(key, counts);
53
+ },
54
+ );
55
+ });
56
+ return Object.fromEntries(
57
+ Array.from(frequency, ([key, counts]) => [key, Object.fromEntries(counts)]),
58
+ );
59
+ }
60
+
61
+ function withoutUrls(value: unknown): unknown {
62
+ if (typeof value === 'string') {
63
+ const text = value.replace(urlValue, '');
64
+ return text !== value && !text.trim() ? undefined : text;
65
+ }
66
+ if (Array.isArray(value)) {
67
+ return value.map(withoutUrls).filter(item => item !== undefined);
68
+ }
69
+ if (value !== null && typeof value === 'object') {
70
+ return getChatProductMetadata(value);
71
+ }
72
+ return value;
73
+ }
74
+
75
+ /** Preserve product metadata, including nested attributes, without URL fields or values. */
76
+ export function getChatProductMetadata(
77
+ product: object,
78
+ ): Record<string, unknown> {
79
+ return Object.fromEntries(
80
+ Object.entries(product)
81
+ .filter(([key]) => {
82
+ const normalizedKey = key
83
+ .replace(/([a-z0-9])([A-Z])/g, '$1_$2')
84
+ .replace(/[^a-z0-9]/gi, '_');
85
+ return (
86
+ !urlField.test(normalizedKey) &&
87
+ !/(?:urls?|uris?|hrefs?)$/i.test(normalizedKey)
88
+ );
89
+ })
90
+ .map(([key, value]) => [key, withoutUrls(value)])
91
+ .filter(([, value]) => value !== undefined),
92
+ );
93
+ }
@@ -28,9 +28,9 @@ export const compressImage = async (input: string | Blob): Promise<string> => {
28
28
 
29
29
  return new Promise<string>((resolve, reject) => {
30
30
  new Compressor(blob, {
31
- quality: 0.91,
32
- maxHeight: 1024,
33
- maxWidth: 1024,
31
+ quality: window.settings.jpegQuality,
32
+ maxHeight: window.settings.maxHeight,
33
+ maxWidth: window.settings.maxWidth,
34
34
  strict: true,
35
35
  success: compressedResult => {
36
36
  const reader = new FileReader();
@@ -1,4 +0,0 @@
1
- *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
2
- ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
3
- */*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width:400px){.\!container{max-width:400px!important}.container{max-width:400px}}@media (min-width:777px){.\!container{max-width:777px!important}.container{max-width:777px}}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.-right-1{right:-.25rem}.-right-2{right:-.5rem}.-top-0\.5{top:-.125rem}.-top-1{top:-.25rem}.-top-3\.5{top:-.875rem}.-top-4{top:-1rem}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-12{bottom:3rem}.bottom-2{bottom:.5rem}.bottom-24{bottom:6rem}.bottom-4{bottom:1rem}.bottom-6{bottom:1.5rem}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:.25rem}.left-2{left:.5rem}.left-4{left:1rem}.left-8{left:2rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.right-7{right:1.75rem}.top-0{top:0}.top-1{top:.25rem}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-4{top:1rem}.top-7{top:1.75rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-50{z-index:50}.z-\[-1\]{z-index:-1}.z-\[50\]{z-index:50}.z-\[51\]{z-index:51}.z-\[9999\]{z-index:9999}.col-span-full{grid-column:1/-1}.m-0{margin:0}.m-4{margin:1rem}.m-auto{margin:auto}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-2\.5{margin-left:.625rem;margin-right:.625rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-bottom:1rem;margin-top:1rem}.my-6{margin-bottom:1.5rem;margin-top:1.5rem}.my-8{margin-bottom:2rem;margin-top:2rem}.-ml-1{margin-left:-.25rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-\[25px\]{margin-bottom:25px}.mb-\[80px\]{margin-bottom:80px}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-\[30px\]{margin-left:30px}.ml-auto{margin-left:auto}.mr-16{margin-right:4rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-3\.5{margin-right:.875rem}.mr-4{margin-right:1rem}.mr-auto{margin-right:auto}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-3\.5{margin-top:.875rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-9{margin-top:2.25rem}.mt-\[180px\]{margin-top:180px}.mt-\[6px\]{margin-top:6px}.mt-\[calc\(50vh-110px\)\]{margin-top:calc(50vh - 110px)}.mt-\[calc\(50vh-156px\)\]{margin-top:calc(50vh - 156px)}.mt-auto{margin-top:auto}.box-border{box-sizing:border-box}.box-content{box-sizing:content-box}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-0{height:0}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-36{height:9rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[1\.5px\]{height:1.5px}.h-\[10px\]{height:10px}.h-\[12px\]{height:12px}.h-\[168px\]{height:168px}.h-\[18px\]{height:18px}.h-\[22px\]{height:22px}.h-\[350px\]{height:350px}.h-\[368px\]{height:368px}.h-\[48px\]{height:48px}.h-\[50px\]{height:50px}.h-\[52px\]{height:52px}.h-\[56px\]{height:56px}.h-\[60px\]{height:60px}.h-\[70px\]{height:70px}.h-\[72px\]{height:72px}.h-\[80\%\]{height:80%}.h-\[8px\]{height:8px}.h-auto{height:auto}.h-fit{height:-webkit-fit-content;height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[100px\]{max-height:100px}.max-h-\[368px\]{max-height:368px}.max-h-\[50vh\]{max-height:50vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90svh\]{max-height:90svh}.max-h-\[95vh\]{max-height:95vh}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-10{min-height:2.5rem}.min-h-5{min-height:1.25rem}.min-h-8{min-height:2rem}.min-h-\[106px\]{min-height:106px}.min-h-\[120px\]{min-height:120px}.min-h-\[268px\]{min-height:268px}.min-h-\[56px\]{min-height:56px}.min-h-\[60px\]{min-height:60px}.min-h-full{min-height:100%}.w-0{width:0}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-2\.5{width:.625rem}.w-2\/3{width:66.666667%}.w-20{width:5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-36{width:9rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-\[10px\]{width:10px}.w-\[110px\]{width:110px}.w-\[12px\]{width:12px}.w-\[180px\]{width:180px}.w-\[18px\]{width:18px}.w-\[215px\]{width:215px}.w-\[22px\]{width:22px}.w-\[295px\]{width:295px}.w-\[325px\]{width:325px}.w-\[334px\]{width:334px}.w-\[350px\]{width:350px}.w-\[360px\]{width:360px}.w-\[410px\]{width:410px}.w-\[48px\]{width:48px}.w-\[50px\]{width:50px}.w-\[60px\]{width:60px}.w-\[636px\]{width:636px}.w-\[70px\]{width:70px}.w-\[8px\]{width:8px}.w-\[90\%\]{width:90%}.w-fit{width:-webkit-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-webkit-max-content;width:max-content}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-10{min-width:2.5rem}.min-w-14{min-width:3.5rem}.min-w-4{min-width:1rem}.min-w-6{min-width:1.5rem}.min-w-\[150px\]{min-width:150px}.min-w-\[20px\]{min-width:20px}.min-w-\[268px\]{min-width:268px}.min-w-\[325px\]{min-width:325px}.min-w-\[334px\]{min-width:334px}.min-w-\[56px\]{min-width:56px}.min-w-\[90px\]{min-width:90px}.max-w-0{max-width:0}.max-w-\[100\%\]{max-width:100%}.max-w-\[1500px\]{max-width:1500px}.max-w-\[150px\]{max-width:150px}.max-w-\[175px\]{max-width:175px}.max-w-\[190px\]{max-width:190px}.max-w-\[200px\]{max-width:200px}.max-w-\[325px\]{max-width:325px}.max-w-\[350px\]{max-width:350px}.max-w-\[360px\]{max-width:360px}.max-w-\[531px\]{max-width:531px}.max-w-\[532px\]{max-width:532px}.max-w-\[60px\]{max-width:60px}.max-w-\[636px\]{max-width:636px}.max-w-\[640px\]{max-width:640px}.max-w-\[80vw\]{max-width:80vw}.max-w-\[840px\]{max-width:840px}.max-w-\[85\%\]{max-width:85%}.max-w-\[90vw\]{max-width:90vw}.max-w-\[min\(640px\2c 80vw\)\]{max-width:min(640px,80vw)}.max-w-fit{max-width:-webkit-fit-content;max-width:fit-content}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.flex-1{flex:1 1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.flex-grow-0{flex-grow:0}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-\[-50\%\],.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.rotate-180{--tw-rotate:180deg}.rotate-180,.transform{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))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.resize{resize:both}.scroll-pt-5{scroll-padding-top:1.25rem}.grid-cols-\[repeat\(auto-fit\2c _minmax\(180px\2c _0px\)\)\]{grid-template-columns:repeat(auto-fit,minmax(180px,0))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-items-center{justify-items:center}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-\[11px\]{gap:11px}.gap-x-1{column-gap:.25rem}.gap-x-2{column-gap:.5rem}.gap-x-5{column-gap:1.25rem}.gap-x-8{column-gap:2rem}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.625rem*var(--tw-space-y-reverse));margin-top:calc(.625rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.truncate{overflow:hidden;white-space:nowrap}.text-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-keep{word-break:keep-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[12px\]{border-radius:12px}.rounded-\[16px\]{border-radius:16px}.rounded-\[1px\]{border-radius:1px}.rounded-\[21px\]{border-radius:21px}.rounded-\[24px\]{border-radius:24px}.rounded-\[32px\]{border-radius:32px}.rounded-\[4px\]{border-radius:4px}.rounded-\[50\%\]{border-radius:50%}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-\[24px\]{border-top-left-radius:24px;border-top-right-radius:24px}.rounded-bl-\[16px\]{border-bottom-left-radius:16px}.rounded-bl-sm{border-bottom-left-radius:.125rem}.rounded-br-\[16px\]{border-bottom-right-radius:16px}.rounded-tl-\[16px\]{border-top-left-radius:16px}.rounded-tr-\[8px\]{border-top-right-radius:8px}.border{border-width:1px}.border-0{border-width:0}.border-2,.border-\[2px\]{border-width:2px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-\[\#2B2C46\]{--tw-border-opacity:1;border-color:#2b2c46;border-color:rgb(43 44 70/var(--tw-border-opacity,1))}.border-\[\#3E36DC\]{--tw-border-opacity:1;border-color:#3e36dc;border-color:rgb(62 54 220/var(--tw-border-opacity,1))}.border-\[\#545987\]{--tw-border-opacity:1;border-color:#545987;border-color:rgb(84 89 135/var(--tw-border-opacity,1))}.border-\[\#655EE3\]{--tw-border-opacity:1;border-color:#655ee3;border-color:rgb(101 94 227/var(--tw-border-opacity,1))}.border-\[\#AAABB5\]{--tw-border-opacity:1;border-color:#aaabb5;border-color:rgb(170 171 181/var(--tw-border-opacity,1))}.border-\[\#BBBDCF\]{--tw-border-opacity:1;border-color:#bbbdcf;border-color:rgb(187 189 207/var(--tw-border-opacity,1))}.border-\[\#C7D2FE\]{--tw-border-opacity:1;border-color:#c7d2fe;border-color:rgb(199 210 254/var(--tw-border-opacity,1))}.border-\[\#CACAD1\]{--tw-border-opacity:1;border-color:#cacad1;border-color:rgb(202 202 209/var(--tw-border-opacity,1))}.border-\[\#DDDEE7\]{--tw-border-opacity:1;border-color:#dddee7;border-color:rgb(221 222 231/var(--tw-border-opacity,1))}.border-\[\#E0E0E0\]{--tw-border-opacity:1;border-color:#e0e0e0;border-color:rgb(224 224 224/var(--tw-border-opacity,1))}.border-\[\#E31B5D\]{--tw-border-opacity:1;border-color:#e31b5d;border-color:rgb(227 27 93/var(--tw-border-opacity,1))}.border-\[\#E67E22\]{--tw-border-opacity:1;border-color:#e67e22;border-color:rgb(230 126 34/var(--tw-border-opacity,1))}.border-\[\#E7E8F1\]{--tw-border-opacity:1;border-color:#e7e8f1;border-color:rgb(231 232 241/var(--tw-border-opacity,1))}.border-\[\#e0e0e0\]{--tw-border-opacity:1;border-color:#e0e0e0;border-color:rgb(224 224 224/var(--tw-border-opacity,1))}.border-\[\#e4e3ff\]{--tw-border-opacity:1;border-color:#e4e3ff;border-color:rgb(228 227 255/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:#fecaca;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-theme-primary{border-color:var(--primary-color)}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity:1;border-color:#fff;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.\!bg-\[\#2B2C46\]{--tw-bg-opacity:1!important;background-color:#2b2c46!important;background-color:rgb(43 44 70/var(--tw-bg-opacity,1))!important}.\!bg-\[\#55566B\]{--tw-bg-opacity:1!important;background-color:#55566b!important;background-color:rgb(85 86 107/var(--tw-bg-opacity,1))!important}.bg-\[\#00000080\]{background-color:#00000080}.bg-\[\#10b981\]{--tw-bg-opacity:1;background-color:#10b981;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.bg-\[\#2B2C46\]{--tw-bg-opacity:1;background-color:#2b2c46;background-color:rgb(43 44 70/var(--tw-bg-opacity,1))}.bg-\[\#373b53\]{--tw-bg-opacity:1;background-color:#373b53;background-color:rgb(55 59 83/var(--tw-bg-opacity,1))}.bg-\[\#3B3E5F\]{--tw-bg-opacity:1;background-color:#3b3e5f;background-color:rgb(59 62 95/var(--tw-bg-opacity,1))}.bg-\[\#3E36DC\]{--tw-bg-opacity:1;background-color:#3e36dc;background-color:rgb(62 54 220/var(--tw-bg-opacity,1))}.bg-\[\#545987\]{--tw-bg-opacity:1;background-color:#545987;background-color:rgb(84 89 135/var(--tw-bg-opacity,1))}.bg-\[\#55566B\]{--tw-bg-opacity:1;background-color:#55566b;background-color:rgb(85 86 107/var(--tw-bg-opacity,1))}.bg-\[\#615e669f\]{background-color:#615e669f}.bg-\[\#E0E0E0\]{--tw-bg-opacity:1;background-color:#e0e0e0;background-color:rgb(224 224 224/var(--tw-bg-opacity,1))}.bg-\[\#E31B5D\]{--tw-bg-opacity:1;background-color:#e31b5d;background-color:rgb(227 27 93/var(--tw-bg-opacity,1))}.bg-\[\#E7E8F1\]{--tw-bg-opacity:1;background-color:#e7e8f1;background-color:rgb(231 232 241/var(--tw-bg-opacity,1))}.bg-\[\#E9E9EC\]{--tw-bg-opacity:1;background-color:#e9e9ec;background-color:rgb(233 233 236/var(--tw-bg-opacity,1))}.bg-\[\#EEF2FF\]{--tw-bg-opacity:1;background-color:#eef2ff;background-color:rgb(238 242 255/var(--tw-bg-opacity,1))}.bg-\[\#F0EFFF\]{--tw-bg-opacity:1;background-color:#f0efff;background-color:rgb(240 239 255/var(--tw-bg-opacity,1))}.bg-\[\#F2FBF3\]{--tw-bg-opacity:1;background-color:#f2fbf3;background-color:rgb(242 251 243/var(--tw-bg-opacity,1))}.bg-\[\#F3F3F5\]{--tw-bg-opacity:1;background-color:#f3f3f5;background-color:rgb(243 243 245/var(--tw-bg-opacity,1))}.bg-\[\#F3F4F8\]{--tw-bg-opacity:1;background-color:#f3f4f8;background-color:rgb(243 244 248/var(--tw-bg-opacity,1))}.bg-\[\#F8F8FF\]{--tw-bg-opacity:1;background-color:#f8f8ff;background-color:rgb(248 248 255/var(--tw-bg-opacity,1))}.bg-\[\#FAFAFA\]{--tw-bg-opacity:1;background-color:#fafafa;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.bg-\[\#FFE5EF4D\]{background-color:#ffe5ef4d}.bg-\[\#FFE5EF\]{--tw-bg-opacity:1;background-color:#ffe5ef;background-color:rgb(255 229 239/var(--tw-bg-opacity,1))}.bg-\[\#FFF8F0\]{--tw-bg-opacity:1;background-color:#fff8f0;background-color:rgb(255 248 240/var(--tw-bg-opacity,1))}.bg-\[\#FFF8FB\]{--tw-bg-opacity:1;background-color:#fff8fb;background-color:rgb(255 248 251/var(--tw-bg-opacity,1))}.bg-\[\#FFFFFF\]{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-\[\#e0e0e0\]{--tw-bg-opacity:1;background-color:#e0e0e0;background-color:rgb(224 224 224/var(--tw-bg-opacity,1))}.bg-\[\#e4e3ff\]{--tw-bg-opacity:1;background-color:#e4e3ff;background-color:rgb(228 227 255/var(--tw-bg-opacity,1))}.bg-\[\#e9e9ec\]{--tw-bg-opacity:1;background-color:#e9e9ec;background-color:rgb(233 233 236/var(--tw-bg-opacity,1))}.bg-\[\#e9e9ef\]{--tw-bg-opacity:1;background-color:#e9e9ef;background-color:rgb(233 233 239/var(--tw-bg-opacity,1))}.bg-\[\#f3f3f5\]{--tw-bg-opacity:1;background-color:#f3f3f5;background-color:rgb(243 243 245/var(--tw-bg-opacity,1))}.bg-\[\#fafafa\]{--tw-bg-opacity:1;background-color:#fafafa;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.bg-\[\#fff\]{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-\[rgba\(243\2c 243\2c 245\2c 0\.4\)\]{background-color:hsla(240,9%,96%,.4)}.bg-black\/20{background-color:rgba(0,0,0,.2)}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-black\/80{background-color:rgba(0,0,0,.8)}.bg-gray-100{--tw-bg-opacity:1;background-color:#f3f4f6;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:#e5e7eb;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:#22c55e;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-neutral-50{--tw-bg-opacity:1;background-color:#fafafa;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.bg-primary{--tw-bg-opacity:1;background-color:#3b3e5f;background-color:rgb(59 62 95/var(--tw-bg-opacity,1))}.bg-primary\/10{background-color:rgba(59,62,95,.1)}.bg-red-50{--tw-bg-opacity:1;background-color:#fef2f2;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:#ef4444;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-theme-primary{background-color:var(--primary-color)}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/40{background-color:hsla(0,0%,100%,.4)}.bg-white\/50{background-color:hsla(0,0%,100%,.5)}.bg-white\/60{background-color:hsla(0,0%,100%,.6)}.bg-white\/80{background-color:hsla(0,0%,100%,.8)}.bg-\[radial-gradient\(ellipse_at_70\%_7\%\2c _\#F3F4F8_50\%\2c _\#E4E3FF_100\%\)\]{background-image:radial-gradient(ellipse at 70% 7%,#f3f4f8 50%,#e4e3ff 100%)}.fill-\[\#2B2C46\]{fill:#2b2c46}.fill-\[\#3B3E5F\]{fill:#3b3e5f}.fill-\[\#55566B\]{fill:#55566b}.fill-\[\#989BB7\]{fill:#989bb7}.fill-\[\#BBBDCF\]{fill:#bbbdcf}.fill-theme-primary{fill:var(--primary-color)}.fill-white{fill:#fff}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-\[10px\]{padding-left:10px;padding-right:10px}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-\[\.8rem\]{padding-bottom:.8rem;padding-top:.8rem}.py-\[3px\]{padding-bottom:3px;padding-top:3px}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-1{padding-left:.25rem}.pl-1\.5{padding-left:.375rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pr-0\.5{padding-right:.125rem}.pr-1{padding-right:.25rem}.pr-1\.5{padding-right:.375rem}.pr-12{padding-right:3rem}.pr-14{padding-right:3.5rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.25rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-\[15px\]{padding-top:15px}.text-left{text-align:left}.text-center{text-align:center}.text-start{text-align:start}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[25px\]{font-size:25px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.normal-case{text-transform:none}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-\[18px\]{line-height:18px}.leading-\[22\.78px\]{line-height:22.78px}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.16px\]{letter-spacing:.16px}.tracking-tight{letter-spacing:-.025em}.text-\[\#22C55E\]{--tw-text-opacity:1;color:#22c55e;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-\[\#2B2C46\],.text-\[\#2b2c46\]{--tw-text-opacity:1;color:#2b2c46;color:rgb(43 44 70/var(--tw-text-opacity,1))}.text-\[\#3B3E5F\]{--tw-text-opacity:1;color:#3b3e5f;color:rgb(59 62 95/var(--tw-text-opacity,1))}.text-\[\#3E36DC\],.text-\[\#3e36dc\]{--tw-text-opacity:1;color:#3e36dc;color:rgb(62 54 220/var(--tw-text-opacity,1))}.text-\[\#4a5568\]{--tw-text-opacity:1;color:#4a5568;color:rgb(74 85 104/var(--tw-text-opacity,1))}.text-\[\#55566B\]{--tw-text-opacity:1;color:#55566b;color:rgb(85 86 107/var(--tw-text-opacity,1))}.text-\[\#655EE3\]{--tw-text-opacity:1;color:#655ee3;color:rgb(101 94 227/var(--tw-text-opacity,1))}.text-\[\#666\]{--tw-text-opacity:1;color:#666;color:rgb(102 102 102/var(--tw-text-opacity,1))}.text-\[\#767A9F\]{--tw-text-opacity:1;color:#767a9f;color:rgb(118 122 159/var(--tw-text-opacity,1))}.text-\[\#989BB7\]{--tw-text-opacity:1;color:#989bb7;color:rgb(152 155 183/var(--tw-text-opacity,1))}.text-\[\#999\]{--tw-text-opacity:1;color:#999;color:rgb(153 153 153/var(--tw-text-opacity,1))}.text-\[\#AAABB5\]{--tw-text-opacity:1;color:#aaabb5;color:rgb(170 171 181/var(--tw-text-opacity,1))}.text-\[\#BBBDCF\]{--tw-text-opacity:1;color:#bbbdcf;color:rgb(187 189 207/var(--tw-text-opacity,1))}.text-\[\#CACAD1\]{--tw-text-opacity:1;color:#cacad1;color:rgb(202 202 209/var(--tw-text-opacity,1))}.text-\[\#D14343\]{--tw-text-opacity:1;color:#d14343;color:rgb(209 67 67/var(--tw-text-opacity,1))}.text-\[\#E0E0E0\]{--tw-text-opacity:1;color:#e0e0e0;color:rgb(224 224 224/var(--tw-text-opacity,1))}.text-\[\#E31B5D\]{--tw-text-opacity:1;color:#e31b5d;color:rgb(227 27 93/var(--tw-text-opacity,1))}.text-\[\#E67E22\]{--tw-text-opacity:1;color:#e67e22;color:rgb(230 126 34/var(--tw-text-opacity,1))}.text-\[\#e31b5d\]{--tw-text-opacity:1;color:#e31b5d;color:rgb(227 27 93/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:#000;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:#3b82f6;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:#2563eb;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:#4b5563;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:#1f2937;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:#16a34a;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-indigo-600{--tw-text-opacity:1;color:#4f46e5;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-primary{--tw-text-opacity:1;color:#3b3e5f;color:rgb(59 62 95/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:#ef4444;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:#dc2626;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:#b91c1c;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-slate-900{--tw-text-opacity:1;color:#0f172a;color:rgb(15 23 42/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline-offset-2{text-underline-offset:2px}.placeholder-\[\#989BB7\]::placeholder{--tw-placeholder-opacity:1;color:#989bb7;color:rgb(152 155 183/var(--tw-placeholder-opacity,1))}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-\[0px_0px_32px_0px_rgba\(152\2c 155\2c 183\2c 1\)\]{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0px_0px_32px_0px_rgba\(152\2c 155\2c 183\2c 1\)\]{--tw-shadow:0px 0px 32px 0px #989bb7;--tw-shadow-colored:0px 0px 32px 0px var(--tw-shadow-color)}.shadow-ds-1{--tw-shadow:0 0 16px 0 rgba(221,222,231,.5);--tw-shadow-colored:0 0 16px 0 var(--tw-shadow-color)}.shadow-ds-1,.shadow-ds-2{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-ds-2{--tw-shadow:0 0 20px 0 rgba(221,222,231,.5);--tw-shadow-colored:0 0 20px 0 var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-outer{--tw-shadow:0 0 16px 0 hsla(240,7%,81%,.5);--tw-shadow-colored:0 0 16px 0 var(--tw-shadow-color)}.shadow-outer,.shadow-sm{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-\[8px\]{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.delay-150{transition-delay:.15s}.delay-300{transition-delay:.3s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#3b3e5f;font-family:-apple-system,BlinkMacSystemFont,Source Sans\ 3,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}@font-face{font-display:swap;font-family:Source Sans\ 3;font-style:normal;font-weight:300;src:url(/static/media/SourceSans3-Light.37264fa35ee0d5f209ea.ttf)}@font-face{font-display:swap;font-family:Source Sans\ 3;font-style:normal;font-weight:400;src:url(/static/media/SourceSans3-Regular.c69f9658f16351f79f33.ttf)}@font-face{font-display:swap;font-family:Source Sans\ 3;font-style:medium;font-weight:500;src:url(/static/media/SourceSans3-Medium.c82b4c53fc5d38ef5784.ttf)}@font-face{font-display:swap;font-family:Source Sans\ 3;font-style:medium;font-weight:600;src:url(/static/media/SourceSans3-SemiBold.5ad6683a8a06e3ccea94.ttf)}@font-face{font-display:swap;font-family:Source Sans\ 3;font-style:medium;font-weight:700;src:url(/static/media/SourceSans3-Bold.17e068739e42bdb30d1c.ttf)}*,body{margin:0}*{font-family:Source Sans\ 3,sans-serif!important;padding:0}.sidepanel-scroll{-webkit-clip-path:inset(0 round 1px);clip-path:inset(0 round 1px);position:relative;scrollbar-color:transparent transparent;scrollbar-gutter:stable;scrollbar-width:thin}.sidepanel-scroll:hover{scrollbar-color:#c3c6cf transparent}.sidepanel-scroll::-webkit-scrollbar,.sidepanel-scroll:hover::-webkit-scrollbar{width:8px}.sidepanel-scroll::-webkit-scrollbar-track{background:transparent;margin:16px 0}.sidepanel-scroll::-webkit-scrollbar-thumb{background:transparent;background-clip:padding-box;border:2px solid transparent;border-radius:999px}.sidepanel-scroll:hover::-webkit-scrollbar-thumb{background:#c3c6cf}.sidepanel-scroll:after,.sidepanel-scroll:before{background:#fff;content:"";height:16px;pointer-events:none;position:absolute;right:0;width:8px;z-index:1}.sidepanel-scroll:before{border-top-right-radius:32px;top:0}.sidepanel-scroll:after{border-bottom-right-radius:32px;bottom:0}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font:inherit;margin:0;padding:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body,button,input,select,textarea{-webkit-font-smoothing:antialiased;font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2b2c46;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:17px;font-weight:400;line-height:1.5;text-rendering:optimizeLegibility}a,b,h1,h2,h3,h4,h5,h6,strong{font-weight:700}body{background:#fafafa}h1,h2,h3,h4,h5,h6{line-height:1}h1,h2{color:#031f2b;line-height:1.618}h1{font-size:25px;margin:0 auto}h1.entry-title a{color:#031f2b;font-size:25px}h2{font-size:16px;margin:15px auto 25px}h2.entry-title a{color:#031f2b;font-size:25px}h1 p,h2 p{margin-bottom:0}@media only screen and (min-width:530px) and (max-width:750px){h1 br,h2 br{display:none}}h3{color:#031f2b;font-size:17px;line-height:1.5;margin:22px auto 16px}h4{font-size:15px;margin:22px auto 12px}h5{font-size:13px;margin:22px auto 10px}h6{font-size:11px;margin:22px auto 8px}p a{text-decoration:underline}em{font-style:italic}iframe,img{height:auto;max-width:100%}a{color:rgba(3,31,43,.54);text-decoration:none}a:hover{color:rgba(3,31,43,.7);cursor:pointer}ol,ul{list-style:none;padding-left:20px}ol li,ul li{list-style:disc;margin-bottom:10px;padding-left:10px}.d-flex{display:flex!important}.justify-center{justify-content:center}.flex-end{align-items:flex-end}.flex-center{align-items:center}.hover\:w-\[215px\]:hover{width:215px}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:gap-2:hover{gap:.5rem}.hover\:border-\[\#3E36DC\]:hover{--tw-border-opacity:1;border-color:#3e36dc;border-color:rgb(62 54 220/var(--tw-border-opacity,1))}.hover\:border-\[\#DDDEE7\]:hover{--tw-border-opacity:1;border-color:#dddee7;border-color:rgb(221 222 231/var(--tw-border-opacity,1))}.hover\:border-\[\#E7E8F1\]:hover{--tw-border-opacity:1;border-color:#e7e8f1;border-color:rgb(231 232 241/var(--tw-border-opacity,1))}.hover\:bg-\[\#2B2C46\]:hover{--tw-bg-opacity:1;background-color:#2b2c46;background-color:rgb(43 44 70/var(--tw-bg-opacity,1))}.hover\:bg-\[\#2d3145\]:hover{--tw-bg-opacity:1;background-color:#2d3145;background-color:rgb(45 49 69/var(--tw-bg-opacity,1))}.hover\:bg-\[\#333653\]:hover{--tw-bg-opacity:1;background-color:#333653;background-color:rgb(51 54 83/var(--tw-bg-opacity,1))}.hover\:bg-\[\#3B3E5F\]:hover{--tw-bg-opacity:1;background-color:#3b3e5f;background-color:rgb(59 62 95/var(--tw-bg-opacity,1))}.hover\:bg-\[\#545987\]:hover{--tw-bg-opacity:1;background-color:#545987;background-color:rgb(84 89 135/var(--tw-bg-opacity,1))}.hover\:bg-\[\#E0E7FF\]:hover{--tw-bg-opacity:1;background-color:#e0e7ff;background-color:rgb(224 231 255/var(--tw-bg-opacity,1))}.hover\:bg-\[\#E67E22\]:hover{--tw-bg-opacity:1;background-color:#e67e22;background-color:rgb(230 126 34/var(--tw-bg-opacity,1))}.hover\:bg-\[\#E9E9EC\]:hover{--tw-bg-opacity:1;background-color:#e9e9ec;background-color:rgb(233 233 236/var(--tw-bg-opacity,1))}.hover\:bg-\[\#F3F3F5\]:hover{--tw-bg-opacity:1;background-color:#f3f3f5;background-color:rgb(243 243 245/var(--tw-bg-opacity,1))}.hover\:bg-\[\#F3F4F8\]:hover{--tw-bg-opacity:1;background-color:#f3f4f8;background-color:rgb(243 244 248/var(--tw-bg-opacity,1))}.hover\:bg-blue-100\/40:hover{background-color:rgba(219,234,254,.4)}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:#f3f4f6;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\:bg-gradient-to-r:hover{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.hover\:from-white:hover{--tw-gradient-from:#fff var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.hover\:to-\[\#E4E3FF\]:hover{--tw-gradient-to:#e4e3ff var(--tw-gradient-to-position)}.hover\:fill-\[url\(\#powered_by_nyris_colored_svg__gradient\)\]:hover{fill:url(#powered_by_nyris_colored_svg__gradient)}.hover\:px-0:hover{padding-left:0;padding-right:0}.hover\:px-0\.5:hover{padding-left:.125rem;padding-right:.125rem}.hover\:font-bold:hover{font-weight:700}.hover\:font-semibold:hover{font-weight:600}.hover\:text-\[\#2B2C46\]:hover{--tw-text-opacity:1;color:#2b2c46;color:rgb(43 44 70/var(--tw-text-opacity,1))}.hover\:text-\[\#2F29B7\]:hover{--tw-text-opacity:1;color:#2f29b7;color:rgb(47 41 183/var(--tw-text-opacity,1))}.hover\:text-\[\#3B3E5F\]:hover{--tw-text-opacity:1;color:#3b3e5f;color:rgb(59 62 95/var(--tw-text-opacity,1))}.hover\:text-\[\#3E36DC\]:hover{--tw-text-opacity:1;color:#3e36dc;color:rgb(62 54 220/var(--tw-text-opacity,1))}.hover\:text-\[\#F3F4F8\]:hover{--tw-text-opacity:1;color:#f3f4f8;color:rgb(243 244 248/var(--tw-text-opacity,1))}.hover\:text-black:hover{--tw-text-opacity:1;color:#000;color:rgb(0 0 0/var(--tw-text-opacity,1))}.hover\:text-primary:hover{--tw-text-opacity:1;color:#3b3e5f;color:rgb(59 62 95/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{-webkit-text-decoration-line:underline;text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_6px_0_\#DDDEE7\]:hover{--tw-shadow:0 0 6px 0 #dddee7;--tw-shadow-colored:0 0 6px 0 var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:border-\[\#3e36dc\]:focus{--tw-border-opacity:1;border-color:#3e36dc;border-color:rgb(62 54 220/var(--tw-border-opacity,1))}.focus\:bg-\[\#FFFFFF\]:focus{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-\[\#F3F3F5\]:disabled{--tw-bg-opacity:1;background-color:#f3f3f5;background-color:rgb(243 243 245/var(--tw-bg-opacity,1))}.disabled\:text-\[\#BBBDCF\]:disabled{--tw-text-opacity:1;color:#bbbdcf;color:rgb(187 189 207/var(--tw-text-opacity,1))}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:hover\:bg-primary:hover:disabled{--tw-bg-opacity:1;background-color:#3b3e5f;background-color:rgb(59 62 95/var(--tw-bg-opacity,1))}.group:hover .group-hover\:max-w-fit{max-width:-webkit-fit-content;max-width:fit-content}.group:hover .group-hover\:flex-grow{flex-grow:1}.group:hover .group-hover\:fill-\[url\(\#powered_by_nyris_colored_svg__gradient\)\]{fill:url(#powered_by_nyris_colored_svg__gradient)}.group:hover .group-hover\:text-\[\#5a5b61\]{--tw-text-opacity:1;color:#5a5b61;color:rgb(90 91 97/var(--tw-text-opacity,1))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.group[data-state=closed] .group-data-\[state\=closed\]\:hidden,.group[data-state=open] .group-data-\[state\=open\]\:hidden{display:none}@media (min-width:400px){.mobile-md\:mx-2{margin-left:.5rem;margin-right:.5rem}}@media (min-width:640px){.min-\[640px\]\:flex-row{flex-direction:row}.min-\[640px\]\:items-center{align-items:center}}@media (min-width:777px){.desktop\:left-8{left:2rem}.desktop\:left-\[26px\]{left:26px}.desktop\:top-\[1px\]{top:1px}.desktop\:m-auto{margin:auto}.desktop\:mx-4{margin-left:1rem;margin-right:1rem}.desktop\:-mb-2{margin-bottom:-.5rem}.desktop\:mb-0{margin-bottom:0}.desktop\:mb-2{margin-bottom:.5rem}.desktop\:mb-8{margin-bottom:2rem}.desktop\:mt-0{margin-top:0}.desktop\:mt-4{margin-top:1rem}.desktop\:mt-6{margin-top:1.5rem}.desktop\:block{display:block}.desktop\:flex{display:flex}.desktop\:inline-flex{display:inline-flex}.desktop\:hidden{display:none}.desktop\:h-0{height:0}.desktop\:h-12{height:3rem}.desktop\:h-8{height:2rem}.desktop\:h-\[100\%\]{height:100%}.desktop\:h-\[18px\]{height:18px}.desktop\:h-\[456px\]{height:456px}.desktop\:h-\[52px\]{height:52px}.desktop\:h-\[68px\]{height:68px}.desktop\:h-\[8px\]{height:8px}.desktop\:h-full{height:100%}.desktop\:max-h-\[100\%\]{max-height:100%}.desktop\:max-h-\[456px\]{max-height:456px}.desktop\:min-h-0{min-height:0}.desktop\:min-h-10{min-height:2.5rem}.desktop\:min-h-\[468px\]{min-height:468px}.desktop\:min-h-\[68px\]{min-height:68px}.desktop\:w-0{width:0}.desktop\:w-8{width:2rem}.desktop\:w-\[18px\]{width:18px}.desktop\:w-\[190px\]{width:190px}.desktop\:w-\[378px\]{width:378px}.desktop\:w-\[500px\]{width:500px}.desktop\:w-\[600px\]{width:600px}.desktop\:w-\[8px\]{width:8px}.desktop\:w-fit{width:-webkit-fit-content;width:fit-content}.desktop\:min-w-10{min-width:2.5rem}.desktop\:min-w-\[18px\]{min-width:18px}.desktop\:min-w-\[68px\]{min-width:68px}.desktop\:max-w-\[600px\]{max-width:600px}.desktop\:grid-cols-\[repeat\(auto-fit\2c _minmax\(190px\2c _0px\)\)\]{grid-template-columns:repeat(auto-fit,minmax(190px,0))}.desktop\:flex-row{flex-direction:row}.desktop\:items-start{align-items:flex-start}.desktop\:gap-1\.5{gap:.375rem}.desktop\:gap-3{gap:.75rem}.desktop\:gap-6{gap:1.5rem}.desktop\:overflow-hidden{overflow:hidden}.desktop\:overflow-y-auto{overflow-y:auto}.desktop\:bg-\[\#E7E8F1\]{--tw-bg-opacity:1;background-color:#e7e8f1;background-color:rgb(231 232 241/var(--tw-bg-opacity,1))}.desktop\:bg-\[\#FAFAFA\]{--tw-bg-opacity:1;background-color:#fafafa;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.desktop\:bg-theme-primary{background-color:var(--primary-color)}.desktop\:bg-transparent{background-color:transparent}.desktop\:fill-\[\#2B2C46\]{fill:#2b2c46}.desktop\:fill-white{fill:#fff}.desktop\:p-3{padding:.75rem}.desktop\:p-6{padding:1.5rem}.desktop\:px-4{padding-left:1rem;padding-right:1rem}.desktop\:px-5{padding-left:1.25rem;padding-right:1.25rem}.desktop\:py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.desktop\:pb-0{padding-bottom:0}.desktop\:pl-1\.5{padding-left:.375rem}.desktop\:pl-16{padding-left:4rem}.desktop\:pt-0{padding-top:0}.desktop\:pt-4{padding-top:1rem}.desktop\:pt-8{padding-top:2rem}.desktop\:text-\[10px\]{font-size:10px}.desktop\:shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.desktop\:hover\:bg-\[\#FAFAFA\]:hover{--tw-bg-opacity:1;background-color:#fafafa;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.desktop\:has-\[input\:focus\]\:bg-\[\#FFFFFF\]:has(input:focus){--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.desktop\:has-\[input\:focus\]\:shadow-ds-2:has(input:focus){--tw-shadow:0 0 20px 0 rgba(221,222,231,.5);--tw-shadow-colored:0 0 20px 0 var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}}.take-photo{padding:3px}.take-photo,.take-photo .take-photo-wrapper{border-radius:100%}.take-photo .take-photo-wrapper .outer{border-radius:100%;box-shadow:0 0 40px 0 #dddee7;display:block}.take-photo .take-photo-wrapper .inner{align-items:center;background:linear-gradient(180deg,#fff 30.73%,#dddee7);border-radius:100%;display:flex;height:260px;justify-content:center;width:260px}body.overflow-hidden{overflow:hidden}.experience-visual-button{align-items:center;background-color:#3e36dc;border-radius:25px;cursor:pointer;display:flex;flex-direction:row;height:40px;justify-content:center;margin:32px auto 0;width:40px}.experience-visual-button.hover,.experience-visual-button:hover{border-radius:25px;transition:.5s;width:197px}.experience-visual-button.hover span,.experience-visual-button:hover span{display:inline;font-family:Source Sans\ 3,sans-serif;font-size:14px;font-weight:600;line-height:16px;margin-right:8px;overflow:hidden;text-align:center;white-space:nowrap;width:149px}.experience-visual-button.hover span:before,.experience-visual-button:hover span:before{color:#fff;content:"Experience Visual Search"}.custom-modal-body{background-color:#f3f3f5;height:100%;padding:32px 16px;position:relative;width:100%}.custom-modal-body .close-icon{position:absolute;right:8px;top:8px}.custom-modal-body-title{font-family:Source Sans\ 3,sans-serif;font-size:20px;font-weight:700;line-height:24px;text-align:left}.custom-modal-body-content.experience-visual-search-images{display:flex;flex-direction:row;flex-wrap:wrap;gap:16px;height:auto;justify-content:center;margin:32px auto;width:376px}.custom-modal-body-content.experience-visual-search-images .experience-visual-search-image-container{border-radius:4px;cursor:pointer;height:180px;overflow:hidden;position:relative;width:180px}.custom-modal-body-content.experience-visual-search-images .experience-visual-search-image-container .experience-visual-search-image{background-position:50%;background-size:cover;height:180px;transform:scale(1);width:180px}.custom-modal-body-content.experience-visual-search-images .experience-visual-search-image-container .experience-visual-search-image:hover{transform:scale(1.1);transition:all .3s}.custom-modal-body-content.experience-visual-search-images .experience-visual-search-image-container .box-icon-modal{align-items:center;background-color:#f3f3f5;border-radius:100%;bottom:6px;cursor:pointer;display:flex;height:32px;justify-content:center;overflow:hidden;position:absolute;right:6px;width:32px;z-index:11}@media only screen and (min-width:900px){.custom-modal-body{border-radius:4px;height:380px;max-width:900px;width:900px}.custom-modal-body-subtitle,.custom-modal-body-title{margin-left:24px}.custom-modal-body-content.experience-visual-search-images{width:770px}}@media only screen and (min-width:776px)and (max-width:899px){.custom-modal-body{border-radius:4px;height:600px;max-width:600px;padding:32px;width:600px}}@media only screen and (max-width:776px){.experience-visual-button{width:197px}.experience-visual-button span{display:inline;font-family:Source Sans\ 3,sans-serif;font-size:14px;font-weight:600;line-height:16px;margin-right:8px;overflow:hidden;text-align:center;white-space:nowrap;width:149px}.experience-visual-button span:before{color:#fff;content:"Experience Visual Search"}}@media only screen and (max-width:408px){.custom-modal-body{padding:32px 8px}.custom-modal-body-content.experience-visual-search-images{gap:8px;max-width:calc(100vw - 32px);width:300px}.custom-modal-body-content.experience-visual-search-images .experience-visual-search-image-container,.custom-modal-body-content.experience-visual-search-images .experience-visual-search-image-container .experience-visual-search-image{height:145px;width:145px}}.wrap-main-item-result{display:flex;flex-direction:column;overflow:hidden}@media screen and (max-width:776px){.wrap-main-item-result .wrap-main-item-result{max-width:180px!important;width:180px}.wrap-main-item-result .wrap-main-item-result:first-child{margin-top:0!important}}.box-icon-modal{right:6px}.box-icon-modal,.box-icon-modal-3d{align-items:center;background-color:#f3f3f5;border-radius:100%;bottom:6px;cursor:pointer;display:flex;height:32px;justify-content:center;overflow:hidden;position:absolute;width:32px;z-index:11}.box-icon-modal-3d{left:6px}.attribute-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;width:100%}.attribute-container .item-attribute{width:calc(50% - 4px)}.attribute-container .item-attribute:nth-child(odd):last-child{width:100%}.info-container{padding:16px 0 0}.info-container .info-sku{font-size:18px;font-weight:700;line-height:25.63px;padding-left:4px}.info-container .info-marking{background:#e0e0e0;border-radius:2px;font-size:16px;font-weight:400;letter-spacing:.2285714447px;line-height:12px;padding:4px;text-align:left;width:-webkit-max-content;width:max-content;word-break:break-all}.info-container .info-description{font-size:16px;font-weight:400;letter-spacing:.2285714447px;line-height:22.78px;padding:8px 0 0 4px}.info-container-card{background-color:#f3f3f5;display:flex;flex-direction:column;flex-grow:1;height:140px;padding:8px;z-index:40}.info-container-card.w-cta{height:168px}.info-container-card .info-sku{font-size:16px;font-weight:700;letter-spacing:.2285714447px;line-height:22.78px;padding-left:4px}.info-container-card .info-marking{-webkit-line-clamp:2;line-clamp:2;background:#e0e0e0;border-radius:2px;line-height:14px;max-width:-webkit-max-content;max-width:max-content;padding:2px 4px}.info-container-card .info-description,.info-container-card .info-marking{-webkit-box-orient:vertical;display:-webkit-box;font-size:14px;font-weight:400;letter-spacing:.2285714447px;overflow:hidden;word-break:break-all}.info-container-card .info-description{-webkit-line-clamp:3;line-clamp:2;line-height:19.94px;margin-top:8px;padding-left:4px}.splide__arrow{align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:flex;height:2em;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1}.splide__arrow svg{fill:#000;height:1.2em;width:1.2em}.splide__arrow:hover:not(:disabled){opacity:.9}.splide__arrow:disabled{opacity:.3}.splide__arrow:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide.is-focus-in .splide__arrow:focus{outline:3px solid #0bf;outline-offset:3px}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;position:relative;transition:transform .2s linear;width:8px}.splide__pagination__page.is-active{background:#fff;transform:scale(1.4);z-index:1}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__pagination__page:focus{outline:3px solid #0bf;outline-offset:3px}.splide__progress__bar{background:#ccc;height:3px}.splide__slide{-webkit-tap-highlight-color:rgba(0,0,0,0)}.splide__slide:focus{outline:0}@supports(outline-offset:-3px){.splide__slide:focus-visible{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide__slide:focus-visible{border:3px solid #0bf}}@supports(outline-offset:-3px){.splide.is-focus-in .splide__slide:focus{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide.is-focus-in .splide__slide:focus{border:3px solid #0bf}.splide.is-focus-in .splide__track>.splide__list>.splide__slide:focus{border-color:#0bf}}.splide__toggle{cursor:pointer}.splide__toggle:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__toggle:focus{outline:3px solid #0bf;outline-offset:3px}.splide__track--nav>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide__track--nav>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide__arrows--rtl .splide__arrow--prev{left:auto;right:1em}.splide__arrows--rtl .splide__arrow--prev svg{transform:scaleX(1)}.splide__arrows--rtl .splide__arrow--next{left:1em;right:auto}.splide__arrows--rtl .splide__arrow--next svg{transform:scaleX(-1)}.splide__arrows--ttb .splide__arrow{left:50%;transform:translate(-50%)}.splide__arrows--ttb .splide__arrow--prev{top:1em}.splide__arrows--ttb .splide__arrow--prev svg{transform:rotate(-90deg)}.splide__arrows--ttb .splide__arrow--next{bottom:1em;top:auto}.splide__arrows--ttb .splide__arrow--next svg{transform:rotate(90deg)}.splide__pagination--ttb{bottom:0;display:flex;flex-direction:column;left:auto;padding:1em 0;right:.5em;top:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}.splide__track.splide__track--slide{margin:0 46px}.splide__arrow{background:transparent}.splide__arrow svg{fill:#a3a3a3}.splide__track--nav>.splide__list>.splide__slide.is-active{border:2px solid #e0e0e0;border-radius:2px}.img-container,.thumbs-list{display:flex;justify-content:center}.img-container img{max-height:400px}.box-carosel .splide.splide--slide{align-items:center;display:flex;height:calc(100% - 48px);justify-content:center}.box-carosel .splide.splide--slide .splide__track{height:100%;padding-bottom:8px}.feedback-floating{display:flex;height:-webkit-fit-content;height:fit-content;justify-content:flex-end;position:absolute;right:0;z-index:42}.feedback-floating .feedback-section{border-radius:26px;bottom:40px;min-height:48px;min-width:332px;position:fixed}@media screen and (max-width:776px){.feedback-floating .feedback-section{bottom:80px;display:flex;height:-webkit-fit-content!important;height:fit-content!important;justify-content:center;left:50%;margin-left:0;min-height:40px;min-width:300px;transform:translateX(-50%)}.feedback-floating{left:0;margin-left:auto;margin-right:auto;right:0;width:77%}}.feedback-backdrop-blur{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.feedback-wrapper{align-items:center;border-radius:24px;color:#2b2c46;column-gap:22px;display:flex;flex-shrink:0;height:-webkit-fit-content;height:fit-content;justify-content:center;mix-blend-mode:multiply;padding:8px 8px 8px 24px;width:-webkit-fit-content;width:fit-content}@media screen and (max-width:776px){.feedback-wrapper{padding-left:16px;padding-right:6px;padding-top:6px}}.feedback-wrapper p{font-size:14px;font-weight:600}@media screen and (max-width:776px){.feedback-wrapper p{font-size:12px}}.feedback-wrapper .feedback-icon-wrapper{align-items:center;border-radius:100%;display:flex;justify-content:center;min-height:32px;min-width:32px}@media screen and (max-width:776px){.feedback-wrapper .feedback-icon-wrapper{min-height:28px;min-width:28px}}.feedback-wrapper .feedback-icon-wrapper-close{align-items:center;border-radius:100%;display:flex;justify-content:center;min-height:32px;min-width:32px}@media screen and (max-width:776px){.feedback-wrapper .feedback-icon-wrapper-close{min-height:28px;min-width:28px}}.feedback-wrapper .feedback-icon-wrapper-close:hover{background-color:#d3d1ff;cursor:pointer}.feedback-wrapper .feedback-icon-wrapper:hover{background-color:#fff;box-shadow:0 0 7.04px 0 rgba(0,0,0,.1);cursor:pointer}.feedback-wrapper .feedback-icon-wrapper svg{height:16px;width:16px}@media screen and (max-width:776px){.feedback-wrapper .feedback-icon-wrapper svg{height:14px;width:14px}.feedback-wrapper .feedback-icon-wrapper{height:25px;width:25px}}.feedback-success{align-items:center;background-color:#2b2c46;border-radius:26px;color:#fff;display:flex;font-size:14px;font-weight:600;justify-content:center;min-height:48px;text-align:center;width:100%}@media screen and (max-width:776px){.feedback-success{font-size:12px;min-height:42px}}.full-height{height:100dvh}.max-line-1{-webkit-line-clamp:1;max-height:33px}.max-line-1,.max-line-2{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;word-break:break-word}.max-line-2{-webkit-line-clamp:2;max-height:66px}.box-wrap-loading{background:rgba(0,0,0,.459);height:100%;left:0;position:fixed;top:0;width:100%;z-index:1000}.loadingSpinCT{border-radius:100%;height:104px;left:0;margin:auto;position:absolute;right:0;width:104px;z-index:111}.loading-spinner{animation:spin 3s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.rfq-box{padding:24px 40px}@media screen and (max-width:776px){.rfq-box{padding:16px}}@media screen and (max-width:820px){.rfq-box{padding:16px}}.rfq-box .support-button-wrapper{flex-wrap:nowrap}@media screen and (max-width:820px){.rfq-box .support-button-wrapper{gap:8px}}.psol-comp-webviewer3d-container{border-radius:12px!important}.psol-comp-viewbase-iconbutton-44{height:32px!important;width:32px!important}.psol-comp-viewbase-iconbutton-44 .psol-comp-viewbase-svgicon{height:16px!important;width:16px!important}.psol-comp-webviewer3d-copyright-container a{color:#55566b!important;font-size:10px!important}.psol-comp-webviewer3d-copyright-container{margin-bottom:-2px!important}.ComponentCustomizeWebViewer3DFavoriteButtonsBarContainer{padding-bottom:6px!important}.psol-comp-viewbase-svgcontainer{display:none!important}.drag-n-drop-label{background-color:transparent;padding:24px}.drag-n-drop-label:hover{background-color:#fff;border-radius:24px;box-shadow:0 4px 12px rgba(0,0,0,.2)}.drag-n-drop-label:hover .drag-n-drop-inner{background-color:#f0efff;border-color:#e0e0e0;color:#2b2c46}.custom-modal{align-items:center;background-color:hsla(0,0%,9%,.502);bottom:0;display:flex;height:100vh;justify-content:center;left:0;position:absolute;right:0;top:0;width:100vw;z-index:99999}.custom-modal-body{background:#f3f3f5;overflow-y:auto;padding:32px}.custom-modal-body.geolocation{align-items:flex-start;display:flex;flex-direction:column;font-size:14px;font-weight:400;height:200px;justify-content:space-between;letter-spacing:.16px;line-height:16px;width:400px}.custom-modal-body.geolocation .geolocation-title{font-size:20px;font-weight:700;letter-spacing:0;line-height:24px}.custom-modal-body.geolocation button{align-self:flex-end;border:2px solid #3e36dc;border-radius:4px;font-size:16px;font-weight:600;letter-spacing:.16px;line-height:18px;padding:8px 32px}
4
- /*# sourceMappingURL=main.5cb72c09.css.map*/