@deriv-web-design/ui 0.1.20 → 0.1.21

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 +1 @@
1
- {"version":3,"sources":["../components/Button/Button.css","../components/Link/Link.css","../components/Chip/Chip.css","../components/Tag/Tag.css","../components/Accordion/Accordion.css","../components/TextField/TextField.css","../components/SearchField/SearchField.css","../components/BottomSheet/BottomSheet.css","../components/Breadcrumb/Breadcrumb.css","../components/ChipDropdown/ChipDropdown.css","../components/Card/CardPrimaryVariant.css","../components/Card/CardSecondaryVariant.css","../components/Card/CardThumbnailVariant.css","../components/Card/CardCategoryVariant.css","../components/Pagination/Pagination.css","../components/Tabs/Tabs.css","../templates/FaqAccordion/FaqAccordion.css","../templates/FeatureCards/FeatureCards.css","../templates/FeatureCardsIcon/FeatureCardsIcon.css","../templates/FeatureBullets/FeatureBullets.css","../components/Footer/Footer.css","../templates/Hero/Hero.css","../templates/Header/Header.css","../templates/Stats/StatsV2.css","../templates/Stats/StatsSimple.css","../templates/FeatureScroll/FeatureScroll.css","../templates/FeatureSplit/FeatureSplit.css","../templates/StickyStackedCards/StickyStackedCards.css","../templates/CTABanner/CTABanner.css","../components/Navbar/Navbar.css","../templates/DayNightTransition/DayNightTransition.css","../templates/LogoMarquee/LogoMarquee.css","../components/DownloadBadge/DownloadBadge.css","../templates/Steps/Steps.css","../templates/DownloadBanner/DownloadBanner.css","../templates/TextScroll/TextScroll.css","../templates/StickyMarketCards/StickyMarketCards.css","../templates/Table/Table.css","../templates/DynamicTable/DynamicTable.css","../templates/Leaders/Leaders.css","../templates/ImageBanner/ImageBanner.css","../templates/Testimonial/Testimonial.css","../templates/ArticleHero/ArticleHero.css","../templates/ArticleSection/ArticleSection.css","../templates/CoralBanner/CoralBanner.css","../templates/FeatureAwards/FeatureAwards.css","../templates/FeatureBlog/FeatureBlog.css","../templates/FeatureBlogCategories/FeatureBlogCategories.css","../templates/HelpCentreCategories/HelpCentreCategories.css","../templates/HelpCentreSubCategories/HelpCentreSubCategories.css","../templates/HelpCenterPage/HelpCenterPage.css","../templates/FeatureBlogPage/FeatureBlogPage.css","../templates/ParallaxBanner/ParallaxBanner.css","../templates/TradingCalculator/TradingCalculator.css","../templates/TradingCalculatorHowTo/TradingCalculatorHowTo.css","../templates/FeatureOffices/FeatureOffices.css","../templates/Tiers/Tiers.css","../templates/PartnersPayout/PartnersPayout.css","../templates/MasterPartner/MasterPartner.css","../templates/ResourceBanner/ResourceBanner.css"],"sourcesContent":["/* ── Base ─────────────────────────────────────────────────── */\n\n.button {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-8);\n padding: calc(var(--spacing-16) - 2px) calc(var(--spacing-24) - 2px);\n min-width: var(--spacing-96);\n border: 2px solid transparent;\n border-radius: var(--radius-full);\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-extra-bold);\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n text-decoration: none;\n cursor: pointer;\n outline: none;\n box-sizing: border-box;\n transition: background-color 100ms ease, border-color 100ms ease, opacity 100ms ease;\n}\n\n/* ── Full-width ───────────────────────────────────────────── */\n\n.button.fullWidth {\n width: 100%;\n}\n\n/* ── Icon-only — square pill, no label ───────────────────── */\n\n.button.iconOnly {\n padding: calc(var(--spacing-16) - 2px);\n min-width: unset;\n width: var(--spacing-48);\n height: var(--spacing-48);\n}\n\n/* ── Label slot ───────────────────────────────────────────── */\n\n.button .label {\n flex: 1 0 0;\n min-width: 1px;\n min-height: 1px;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.button .icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-16);\n height: var(--spacing-16);\n flex-shrink: 0;\n}\n\n/* ── Focus ring overlay ───────────────────────────────────── */\n\n.button .focusRing {\n position: absolute;\n inset: -2px;\n border-radius: var(--radius-full);\n border: 2px solid var(--color-blue-600);\n pointer-events: none;\n}\n\n.button:focus-visible::after {\n content: \"\";\n position: absolute;\n inset: -2px;\n border-radius: var(--radius-full);\n border: 2px solid var(--color-blue-600);\n pointer-events: none;\n}\n\n/* ============================================================\n CORAL color scheme\n ============================================================ */\n\n.coral_primary {\n background-color: var(--color-coral-700);\n color: var(--color-slate-50);\n}\n\n.coral_primary:hover:not(:disabled) {\n background-color: var(--color-coral-800);\n}\n\n.coral_primary:active:not(:disabled) {\n background-color: var(--color-coral-900);\n}\n\n.coral_primary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n\n.coral_secondary {\n background-color: transparent;\n color: var(--color-coral-700);\n border-color: var(--color-coral-700);\n}\n\n.coral_secondary:hover:not(:disabled) {\n background-color: rgba(255, 68, 79, 0.08);\n}\n\n.coral_secondary:active:not(:disabled) {\n background-color: rgba(255, 68, 79, 0.16);\n}\n\n.coral_secondary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n\n/* ============================================================\n BLACK color scheme\n ============================================================ */\n\n.black_primary {\n background-color: var(--color-slate-1300);\n color: var(--color-slate-50);\n}\n\n.black_primary:hover:not(:disabled) {\n background-color: rgba(24, 28, 37, 0.8);\n}\n\n.black_primary:active:not(:disabled) {\n background-color: var(--color-opacity-slate-88);\n}\n\n.black_primary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n\n.black_secondary {\n background-color: transparent;\n color: var(--color-slate-1300);\n border-color: var(--color-slate-1300);\n}\n\n.black_secondary:hover:not(:disabled) {\n background-color: var(--color-opacity-slate-4);\n}\n\n.black_secondary:active:not(:disabled) {\n background-color: var(--color-opacity-slate-8);\n}\n\n.black_secondary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n\n/* ============================================================\n WHITE color scheme — intended for use on dark backgrounds\n ============================================================ */\n\n.white_primary {\n background-color: var(--color-slate-50);\n color: var(--color-slate-1300);\n}\n\n.white_primary:hover:not(:disabled) {\n background-color: rgba(255, 255, 255, 0.8);\n}\n\n.white_primary:active:not(:disabled) {\n background-color: var(--color-opacity-white-88);\n}\n\n.white_primary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n\n.white_secondary {\n background-color: transparent;\n color: var(--color-slate-50);\n border-color: var(--color-slate-50);\n}\n\n.white_secondary:hover:not(:disabled) {\n background-color: var(--color-opacity-white-8);\n}\n\n.white_secondary:active:not(:disabled) {\n background-color: var(--color-opacity-white-16);\n}\n\n.white_secondary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}","/* ── Base ─────────────────────────────────────────────────── */\n\n.link {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n cursor: pointer;\n text-decoration: none;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-semi-bold);\n line-height: 1;\n white-space: nowrap;\n background: none;\n border: none;\n padding: 0;\n outline: none;\n transition: gap 150ms ease;\n}\n\n.link:focus-visible {\n outline: 2px solid var(--color-blue-600);\n outline-offset: 2px;\n border-radius: var(--radius-xs);\n}\n\n/* ── Disabled ─────────────────────────────────────────────── */\n\n.link.disabled {\n opacity: var(--link-disabled-opacity);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.link .icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-16);\n height: var(--spacing-16);\n flex-shrink: 0;\n}\n\n/* ── Chevron slot ─────────────────────────────────────────── */\n\n.link .chevron {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--spacing-16);\n height: var(--spacing-16);\n transition: transform 150ms ease;\n}\n\n/* ── Label slot ───────────────────────────────────────────── */\n\n.link .label {\n text-decoration-skip-ink: none;\n}\n\n/* ── Chevron mode: gap expands on hover/active ────────────── */\n\n.link.withChevron:hover,\n.link.withChevron:active {\n gap: var(--spacing-16);\n}\n\n/* ── Icon mode: label underlines on hover/active ──────────── */\n\n.link.withIcon:hover .label,\n.link.withIcon:active .label {\n text-decoration: underline;\n text-decoration-style: solid;\n}\n\n/* ── Color schemes ────────────────────────────────────────── */\n\n.link.coral {\n color: var(--link-coral-color);\n}\n\n.link.black {\n color: var(--link-black-color);\n}\n\n.link.white {\n color: var(--link-white-color);\n}\n","/* ── Base ─────────────────────────────────────────────────── */\n\n.chip {\n position: relative;\n display: inline-flex;\n align-items: center;\n border: var(--chip-border-width) solid var(--chip-border-color);\n border-radius: var(--radius-full);\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-regular);\n line-height: 1;\n color: var(--chip-text-color);\n white-space: nowrap;\n background: transparent;\n cursor: pointer;\n outline: none;\n box-sizing: border-box;\n transition: background-color 100ms ease, color 100ms ease, border-color 100ms ease;\n user-select: none;\n}\n\n/* ── Sizes ────────────────────────────────────────────────── */\n\n.chip.sm {\n height: var(--spacing-24);\n padding: 0 var(--spacing-12);\n gap: 6px;\n font-size: var(--font-size-xs);\n}\n\n.chip.md {\n height: var(--spacing-32);\n padding: 0 var(--spacing-16);\n gap: var(--spacing-8);\n font-size: var(--font-size-sm);\n}\n\n.chip.lg {\n height: var(--spacing-48);\n padding: 0 var(--spacing-24);\n gap: var(--spacing-12);\n font-size: var(--font-size-md);\n}\n\n/* ── Hover / Active (unselected only) ─────────────────────── */\n\n.chip:hover:not(:disabled):not(.selected) {\n background-color: var(--chip-hover-background);\n}\n\n.chip:active:not(:disabled):not(.selected) {\n background-color: var(--chip-active-background);\n}\n\n/* ── Selected ─────────────────────────────────────────────── */\n\n.chip.selected {\n background-color: var(--chip-selected-background);\n border-color: var(--chip-selected-border);\n border-width: var(--chip-selected-border-width);\n color: var(--chip-selected-text);\n}\n\n/* ── Disabled ─────────────────────────────────────────────── */\n\n.chip:disabled {\n border-color: var(--chip-disabled-border);\n color: var(--chip-disabled-text);\n cursor: not-allowed;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.chip .icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n}\n\n/* ── Label slot ───────────────────────────────────────────── */\n\n.chip .label {\n flex-shrink: 0;\n}\n\n/* ── Tag slot ─────────────────────────────────────────────── */\n\n.chip .tag {\n font-weight: var(--font-weight-extra-bold);\n flex-shrink: 0;\n}\n\n/* ── Focus ring overlay ───────────────────────────────────── */\n\n.chip .focusRing {\n position: absolute;\n inset: -3px;\n border-radius: var(--radius-full);\n border: 2px solid var(--chip-focus-ring-color);\n pointer-events: none;\n}\n\n/* Selected chip now has a visible border, ring stays at -3px */\n.chip.selected .focusRing {\n inset: -3px;\n}\n\n.chip:focus-visible::after {\n content: \"\";\n position: absolute;\n inset: -3px;\n border-radius: var(--radius-full);\n border: 2px solid var(--chip-focus-ring-color);\n pointer-events: none;\n}\n\n.chip.selected:focus-visible::after {\n inset: -3px;\n}\n","/* ── Base ─────────────────────────────────────────────────── */\n\n.tag {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n white-space: nowrap;\n font-family: var(--font-family-base);\n line-height: 1;\n color: var(--tag-text-color);\n border-radius: var(--radius-full);\n}\n\n/* ── Variants ─────────────────────────────────────────────── */\n\n.tag.fill {\n background-color: var(--tag-fill-background);\n}\n\n.tag.outline {\n border: 1px solid var(--tag-outline-border);\n}\n\n/* ── Sizes ────────────────────────────────────────────────── */\n\n.tag.xs {\n height: 18px;\n padding: 0 var(--spacing-4);\n gap: var(--spacing-4);\n font-size: 0.625rem;\n}\n\n.tag.sm {\n height: var(--spacing-24);\n padding: 0 var(--spacing-8);\n gap: var(--spacing-8);\n font-size: var(--font-size-xs);\n}\n\n.tag.md {\n height: var(--spacing-32);\n padding: 0 var(--spacing-12);\n gap: var(--spacing-12);\n font-size: var(--font-size-sm);\n}\n\n.tag.lg {\n height: var(--spacing-48);\n padding: 0 var(--spacing-16);\n gap: var(--spacing-16);\n font-size: var(--font-size-md);\n}\n\n.tag.custom {\n color: var(--text-disabled);\n padding: 0 !important;\n height: auto !important;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n}\n\n/* ── Font weights ─────────────────────────────────────────── */\n\n.tag.regular {\n font-weight: var(--font-weight-regular);\n}\n\n.tag.bold {\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.tag .icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n}\n\n/* ── Label slot ───────────────────────────────────────────── */\n\n.tag .label {\n flex-shrink: 0;\n}\n","/* ── Container ────────────────────────────────────────────── */\n\n.accordion {\n position: relative;\n width: 100%;\n max-width: 846px;\n box-sizing: border-box;\n}\n\n/* ── Header ───────────────────────────────────────────────── */\n\n.accordion__header {\n display: flex;\n align-items: center;\n gap: var(--spacing-24);\n padding: var(--spacing-24) 0;\n width: 100%;\n background: none;\n border: none;\n cursor: pointer;\n outline: none;\n position: relative;\n text-align: left;\n box-sizing: border-box;\n}\n\n.accordion__header:focus-visible::after {\n content: \"\";\n position: absolute;\n inset: -2px;\n border: 2px solid var(--accordion-focus-ring-color);\n pointer-events: none;\n}\n\n/* ── Focus ring overlay ───────────────────────────────────── */\n\n.accordion__focus-ring {\n position: absolute;\n inset: -2px;\n border: 2px solid var(--accordion-focus-ring-color);\n pointer-events: none;\n}\n\n/* ── Title slot ───────────────────────────────────────────── */\n\n.accordion__title-wrapper {\n flex: 1 0 0;\n min-width: 1px;\n}\n\n.accordion__title {\n font-family: var(--font-family-base);\n font-size: var(--font-size-lg); /* 18px */\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--line-height-normal);\n color: var(--accordion-title-color);\n}\n\n/* ── Chevron slot ─────────────────────────────────────────── */\n\n.accordion__chevron {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-24);\n height: var(--spacing-24);\n flex-shrink: 0;\n color: var(--accordion-chevron-color);\n transition: transform 200ms ease;\n}\n\n.accordion__chevron--rotated {\n transform: rotate(180deg);\n}\n\n/* ── Body — CSS Grid animated collapse ────────────────────── */\n\n.accordion__body-wrapper {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows 200ms ease;\n}\n\n.accordion__body-wrapper--open {\n grid-template-rows: 1fr;\n}\n\n.accordion__body-inner {\n overflow: hidden;\n}\n\n.accordion__body {\n padding-bottom: var(--spacing-24);\n font-family: var(--font-family-base);\n font-size: var(--font-size-md); /* 16px */\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-normal);\n color: var(--accordion-body-color);\n}\n","/* ── Field wrapper (visual input box) ─────────────────────── */\n\n.tf-wrapper {\n display: flex;\n align-items: center;\n height: var(--spacing-56);\n padding: 0 var(--spacing-16);\n gap: var(--spacing-8);\n border-radius: var(--radius-md);\n border: 1px solid transparent;\n box-sizing: border-box;\n cursor: text;\n transition: background-color 100ms ease, border-color 100ms ease;\n}\n\n/* ── Label variant — label stacked above the input, both inside\n * the same bordered box, rather than the default single-row field ── */\n\n.tf-wrapper.hasLabel {\n flex-direction: column;\n align-items: stretch;\n justify-content: center;\n height: auto;\n min-height: var(--spacing-56);\n padding: var(--spacing-8) var(--spacing-16);\n gap: var(--spacing-4);\n}\n\n.tf-label {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--font-weight-regular);\n color: var(--text-secondary);\n line-height: 1.2;\n}\n\n.tf-row {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n/* ── Variant: Outline ─────────────────────────────────────── */\n\n.tf-wrapper.outline {\n background: var(--field-surface-outline);\n border-color: var(--field-border-default);\n}\n\n/* ── Variant: Fill ────────────────────────────────────────── */\n\n.tf-wrapper.fill {\n background: var(--field-surface-fill);\n}\n\n/* ── Hover — neutral ──────────────────────────────────────── */\n\n.tf-wrapper.neutral.outline:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-hover);\n}\n\n.tf-wrapper.neutral.fill:hover:not([data-disabled]):not(:focus-within) {\n background: var(--field-surface-fill-hover);\n}\n\n/* ── Focus — neutral ──────────────────────────────────────── */\n\n.tf-wrapper.neutral.outline:focus-within:not([data-disabled]) {\n border-color: var(--field-border-focus);\n}\n\n.tf-wrapper.neutral.fill:focus-within:not([data-disabled]) {\n border-color: var(--field-border-focus);\n}\n\n/* ── Status: Fail — Outline ───────────────────────────────── */\n\n.tf-wrapper.fail.outline {\n border-color: var(--field-border-fail-default);\n}\n\n.tf-wrapper.fail.outline:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-fail-hover);\n}\n\n.tf-wrapper.fail.outline:focus-within:not([data-disabled]) {\n border-color: var(--field-border-fail-focus);\n}\n\n/* ── Status: Fail — Fill ──────────────────────────────────── */\n\n.tf-wrapper.fail.fill {\n background: var(--field-surface-fail);\n}\n\n.tf-wrapper.fail.fill:hover:not([data-disabled]):not(:focus-within) {\n background: var(--field-surface-fail-hover);\n}\n\n.tf-wrapper.fail.fill:focus-within:not([data-disabled]) {\n background: var(--field-surface-fail);\n border-color: var(--field-border-fail-focus);\n}\n\n/* ── Status: Success — Outline ────────────────────────────── */\n\n.tf-wrapper.success.outline {\n border-color: var(--field-border-success-default);\n}\n\n.tf-wrapper.success.outline:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-success-hover);\n}\n\n.tf-wrapper.success.outline:focus-within:not([data-disabled]) {\n border-color: var(--field-border-success-focus);\n}\n\n/* ── Status: Success — Fill ───────────────────────────────── */\n\n.tf-wrapper.success.fill {\n background: var(--field-surface-success);\n}\n\n.tf-wrapper.success.fill:hover:not([data-disabled]):not(:focus-within) {\n background: var(--field-surface-success-hover);\n}\n\n.tf-wrapper.success.fill:focus-within:not([data-disabled]) {\n background: var(--field-surface-success);\n border-color: var(--field-border-success-focus);\n}\n\n/* ── Disabled ─────────────────────────────────────────────── */\n\n.tf-wrapper[data-disabled] {\n cursor: not-allowed;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.tf-wrapper .iconSlot {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--spacing-24);\n height: var(--spacing-24);\n color: var(--field-icon-default);\n}\n\n.tf-wrapper[data-disabled] .iconSlot {\n color: var(--field-icon-disabled);\n}\n\n.tf-wrapper .iconSuccess {\n color: var(--field-text-success);\n}\n\n.tf-wrapper .iconFail {\n color: var(--field-text-fail);\n}\n\n/* ── Native input ─────────────────────────────────────────── */\n\n.tf-wrapper .tf-input {\n flex: 1 0 0;\n min-width: 1px;\n border: none;\n outline: none;\n background: transparent;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-normal);\n color: var(--field-text-default);\n caret-color: var(--field-border-focus);\n padding: 0;\n}\n\n.tf-wrapper .tf-input::placeholder {\n color: var(--field-text-placeholder);\n}\n\n.tf-wrapper .tf-input:focus {\n color: var(--field-text-focus);\n}\n\n.tf-wrapper .tf-input:disabled {\n cursor: not-allowed;\n color: var(--field-text-disabled);\n}\n\n.tf-wrapper .tf-input:disabled::placeholder {\n color: var(--field-text-disabled);\n}\n","/* ── Field wrapper (visual input box) ─────────────────────── */\n\n.sf-wrapper {\n display: flex;\n align-items: center;\n height: var(--spacing-56);\n padding: 0 var(--spacing-16);\n gap: var(--spacing-8);\n border-radius: var(--radius-md);\n border: 1px solid transparent;\n box-sizing: border-box;\n cursor: text;\n transition: background-color 100ms ease, border-color 100ms ease;\n}\n\n/* ── Label variant — label stacked above the input, both inside\n * the same bordered box, rather than the default single-row field ── */\n\n.sf-wrapper.hasLabel {\n flex-direction: column;\n align-items: stretch;\n justify-content: center;\n height: auto;\n min-height: var(--spacing-56);\n padding: var(--spacing-8) var(--spacing-16);\n gap: var(--spacing-4);\n}\n\n.sf-label {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--font-weight-regular);\n color: var(--text-secondary);\n line-height: 1.2;\n}\n\n.sf-row {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n/* ── Trailing slot — e.g. a combobox chevron ─────────────────── */\n\n.sf-trailing {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: var(--field-icon-default);\n}\n\n/* ── Variant: Outline ─────────────────────────────────────── */\n\n.sf-wrapper.outline {\n background: var(--field-surface-outline);\n border-color: var(--field-border-default);\n}\n\n/* ── Variant: Fill ────────────────────────────────────────── */\n\n.sf-wrapper.fill {\n background: var(--field-surface-fill);\n}\n\n/* ── Hover — neutral ──────────────────────────────────────── */\n\n.sf-wrapper.neutral.outline:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-hover);\n}\n\n.sf-wrapper.neutral.fill:hover:not([data-disabled]):not(:focus-within) {\n background: var(--field-surface-fill-hover);\n}\n\n/* ── Focus — neutral ──────────────────────────────────────── */\n\n.sf-wrapper.neutral.outline:focus-within:not([data-disabled]) {\n border-color: var(--field-border-focus);\n}\n\n.sf-wrapper.neutral.fill:focus-within:not([data-disabled]) {\n border-color: var(--field-border-focus);\n}\n\n/* ── Status: Fail — Outline ───────────────────────────────── */\n\n.sf-wrapper.fail.outline {\n border-color: var(--field-border-fail-default);\n}\n\n.sf-wrapper.fail.outline:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-fail-hover);\n}\n\n.sf-wrapper.fail.outline:focus-within:not([data-disabled]) {\n border-color: var(--field-border-fail-focus);\n}\n\n/* ── Status: Fail — Fill ──────────────────────────────────── */\n\n.sf-wrapper.fail.fill {\n background: var(--field-surface-fail);\n}\n\n.sf-wrapper.fail.fill:hover:not([data-disabled]):not(:focus-within) {\n background: var(--field-surface-fail-hover);\n}\n\n.sf-wrapper.fail.fill:focus-within:not([data-disabled]) {\n background: var(--field-surface-fail);\n border-color: var(--field-border-fail-focus);\n}\n\n/* ── Status: Success — Outline ────────────────────────────── */\n\n.sf-wrapper.success.outline {\n border-color: var(--field-border-success-default);\n}\n\n.sf-wrapper.success.outline:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-success-hover);\n}\n\n.sf-wrapper.success.outline:focus-within:not([data-disabled]) {\n border-color: var(--field-border-success-focus);\n}\n\n/* ── Status: Success — Fill ───────────────────────────────── */\n\n.sf-wrapper.success.fill {\n background: var(--field-surface-success);\n}\n\n.sf-wrapper.success.fill:hover:not([data-disabled]):not(:focus-within) {\n background: var(--field-surface-success-hover);\n}\n\n.sf-wrapper.success.fill:focus-within:not([data-disabled]) {\n background: var(--field-surface-success);\n border-color: var(--field-border-success-focus);\n}\n\n/* ── Disabled ─────────────────────────────────────────────── */\n\n.sf-wrapper[data-disabled] {\n cursor: not-allowed;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.sf-wrapper .iconSlot {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--spacing-24);\n height: var(--spacing-24);\n color: var(--field-icon-default);\n}\n\n.sf-wrapper[data-disabled] .iconSlot {\n color: var(--field-icon-disabled);\n}\n\n.sf-wrapper .iconSuccess {\n color: var(--field-text-success);\n}\n\n.sf-wrapper .iconFail {\n color: var(--field-text-fail);\n}\n\n/* ── Native input ─────────────────────────────────────────── */\n\n.sf-wrapper .sf-input {\n flex: 1 0 0;\n min-width: 1px;\n border: none;\n outline: none;\n background: transparent;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-normal);\n color: var(--field-text-default);\n caret-color: var(--field-border-focus);\n padding: 0;\n}\n\n.sf-wrapper .sf-input::placeholder {\n color: var(--field-text-placeholder);\n}\n\n.sf-wrapper .sf-input:focus {\n color: var(--field-text-focus);\n}\n\n.sf-wrapper .sf-input:disabled {\n cursor: not-allowed;\n color: var(--field-text-disabled);\n}\n\n.sf-wrapper .sf-input:disabled::placeholder {\n color: var(--field-text-disabled);\n}\n\n/* ── Clear button ─────────────────────────────────────────── */\n\n.sf-wrapper .clearButton {\n appearance: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--spacing-24);\n height: var(--spacing-24);\n padding: 0;\n border: none;\n background: none;\n cursor: pointer;\n color: var(--field-icon-subtle);\n border-radius: var(--radius-full);\n transition: color 100ms ease;\n}\n\n.sf-wrapper .clearButton:hover {\n color: var(--field-text-default);\n}\n\n.sf-wrapper .clearButton:focus-visible {\n outline: 2px solid var(--field-border-focus);\n outline-offset: 2px;\n}","/* ── Overlay backdrop ──────────────────────────────────────── */\n\n.bs-overlay {\n position: fixed;\n inset: 0;\n z-index: 9999;\n background: var(--bottom-sheet-overlay-bg);\n display: flex;\n align-items: flex-end;\n}\n\n/* ── Sheet panel ───────────────────────────────────────────── */\n\n.bs-sheet {\n width: 100%;\n background: var(--bottom-sheet-bg);\n border-radius: var(--radius-xl) var(--radius-xl) 0 0;\n box-shadow: var(--bottom-sheet-shadow);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n max-height: 90dvh;\n animation: bs-slide-up 280ms cubic-bezier(0.32, 0.72, 0, 1) forwards;\n}\n\n@keyframes bs-slide-up {\n from {\n transform: translateY(100%);\n }\n to {\n transform: translateY(0);\n }\n}\n\n/* ── Handle bar ────────────────────────────────────────────── */\n\n.bs-handle-container {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: var(--spacing-8) 0;\n flex-shrink: 0;\n}\n\n.bs-handle-bar {\n width: 48px;\n height: 4px;\n border-radius: var(--radius-full);\n background: var(--bottom-sheet-handle-color);\n}\n\n/* ── Header ────────────────────────────────────────────────── */\n\n.bs-header {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n height: 48px;\n padding: 0 var(--spacing-16);\n flex-shrink: 0;\n}\n\n.bs-header-spacer {\n width: 48px;\n height: 48px;\n flex-shrink: 0;\n}\n\n.bs-title {\n flex: 1;\n text-align: center;\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-extra-bold);\n font-size: var(--font-size-xl);\n line-height: var(--line-height-xl);\n color: var(--bottom-sheet-title-color);\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n}\n\n.bs-close-container {\n flex-shrink: 0;\n}\n\n.bs-close-btn {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n border-radius: var(--radius-full);\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--bottom-sheet-close-icon-color);\n transition: background-color 100ms ease;\n outline: none;\n box-sizing: border-box;\n}\n\n.bs-close-btn:hover {\n background: var(--bottom-sheet-close-hover-bg);\n}\n\n.bs-close-btn:active {\n background: var(--bottom-sheet-close-active-bg);\n}\n\n.bs-close-btn:focus-visible::after {\n content: \"\";\n position: absolute;\n inset: -3px;\n border-radius: var(--radius-full);\n border: 2px solid var(--bottom-sheet-focus-ring-color);\n pointer-events: none;\n}\n\n/* ── Body ──────────────────────────────────────────────────── */\n\n.bs-body {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n}\n\n/* ── Action buttons ────────────────────────────────────────── */\n\n.bs-actions {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n padding: var(--spacing-16);\n flex-shrink: 0;\n}\n\n.bs-action-primary {\n width: 100%;\n height: 48px;\n border-radius: var(--radius-full);\n border: none;\n background: var(--bottom-sheet-action-primary-bg);\n color: var(--bottom-sheet-action-primary-text);\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-extra-bold);\n font-size: var(--font-size-md);\n cursor: pointer;\n transition: background-color 100ms ease;\n box-sizing: border-box;\n}\n\n.bs-action-primary:hover {\n background: var(--bottom-sheet-action-primary-bg-hover);\n}\n\n.bs-action-primary:active {\n background: var(--bottom-sheet-action-primary-bg-active);\n}\n\n.bs-action-secondary {\n width: 100%;\n height: 48px;\n border-radius: var(--radius-full);\n border: 1px solid var(--bottom-sheet-action-secondary-border);\n background: transparent;\n color: var(--bottom-sheet-action-secondary-text);\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-extra-bold);\n font-size: var(--font-size-md);\n cursor: pointer;\n transition: background-color 100ms ease;\n box-sizing: border-box;\n}\n\n.bs-action-secondary:hover {\n background: var(--bottom-sheet-action-secondary-hover-bg);\n}\n\n.bs-action-secondary:active {\n background: var(--bottom-sheet-action-secondary-active-bg);\n}\n\n/* ── Mobile only — hidden on wider screens ─────────────────── */\n\n@media (min-width: 768px) {\n .bs-overlay {\n display: none;\n }\n}\n","/* ── List ─────────────────────────────────────────────────── */\n\n.bc-list {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n overflow: hidden;\n gap: var(--spacing-8);\n list-style: none;\n margin: 0;\n padding: 0;\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-regular);\n}\n\n/* ── Size variants ────────────────────────────────────────── */\n\n.bc-list.sm {\n font-size: var(--font-size-sm);\n line-height: var(--line-height-normal);\n}\n\n.bc-list.md {\n font-size: var(--font-size-md);\n line-height: var(--line-height-normal);\n}\n\n/* ── Item ─────────────────────────────────────────────────── */\n\n.bc-item,\n.bc-middleItem,\n.bc-ellipsisItem {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n/* ── Link (clickable crumb) ───────────────────────────────── */\n\n.bc-link {\n color: var(--breadcrumb-text-color);\n text-decoration: none;\n white-space: nowrap;\n cursor: pointer;\n border-radius: var(--radius-xs);\n}\n\n.bc-link:hover {\n text-decoration: underline;\n}\n\n.bc-link:active {\n color: var(--breadcrumb-text-current-color);\n text-decoration: underline;\n}\n\n.bc-link:focus-visible {\n outline: 2px solid var(--breadcrumb-focus-ring-color);\n outline-offset: 2px;\n text-decoration: none;\n}\n\n/* ── Current page (last crumb, non-interactive) ───────────── */\n\n.bc-current {\n color: var(--breadcrumb-text-current-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ── Last item shrinks to allow truncation ────────────────── */\n\n.bc-item:last-child {\n min-width: 0;\n flex-shrink: 1;\n overflow: hidden;\n}\n\n/* ── Separator (chevron icon) ─────────────────────────────── */\n\n.bc-separator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: var(--breadcrumb-separator-color);\n width: 1em;\n height: 1em;\n}\n\n/* ── Ellipsis button ──────────────────────────────────────── */\n\n.bc-ellipsisButton {\n appearance: none;\n background: none;\n border: none;\n padding: 0;\n margin: 0;\n font: inherit;\n color: var(--breadcrumb-text-color);\n cursor: pointer;\n border-radius: var(--radius-xs);\n}\n\n.bc-ellipsisButton:hover {\n text-decoration: underline;\n}\n\n.bc-ellipsisButton:focus-visible {\n outline: 2px solid var(--breadcrumb-focus-ring-color);\n outline-offset: 2px;\n text-decoration: none;\n}\n\n/* ── Collapse logic ───────────────────────────────────────── */\n\n.bc-ellipsisItem {\n display: none;\n}\n\n.bc-middleItem {\n display: flex;\n}\n\n@media (max-width: 639px) {\n .bc-list.collapsible {\n gap: var(--spacing-4);\n }\n\n .bc-list.collapsible .bc-item,\n .bc-list.collapsible .bc-middleItem,\n .bc-list.collapsible .bc-ellipsisItem {\n gap: var(--spacing-4);\n }\n\n .bc-list.collapsible .bc-ellipsisItem {\n display: flex;\n }\n\n .bc-list.collapsible .bc-middleItem {\n display: none;\n }\n\n}\n\n/* ── Bottom Sheet list (hidden middle items) ──────────────── */\n\n.bc-sheet-list {\n list-style: none;\n margin: 0;\n padding: 0;\n padding-bottom: var(--spacing-24);\n}\n\n.bc-sheet-item {\n border-bottom: 1px solid var(--bottom-sheet-list-item-border);\n}\n\n.bc-sheet-item:last-child {\n border-bottom: none;\n}\n\n.bc-sheet-link {\n display: flex;\n align-items: center;\n height: 72px;\n padding: 0 var(--spacing-24);\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n color: var(--breadcrumb-text-color);\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.bc-sheet-link:hover {\n text-decoration: underline;\n}\n\n.bc-sheet-link:focus-visible {\n outline: 2px solid var(--breadcrumb-focus-ring-color);\n outline-offset: -2px;\n}\n","/* ── Wrapper ───────────────────────────────────────────────── */\n\n.cd-wrapper {\n position: relative;\n display: inline-flex;\n}\n\n/* ── Trigger (chip button) ────────────────────────────────── */\n\n.cd-trigger {\n position: relative;\n display: inline-flex;\n align-items: center;\n border: 1px solid var(--chip-border-color);\n border-radius: var(--radius-full);\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-regular);\n color: var(--chip-text-color);\n white-space: nowrap;\n background: transparent;\n cursor: pointer;\n outline: none;\n box-sizing: border-box;\n transition: background-color 100ms ease, color 100ms ease, border-color 100ms ease;\n user-select: none;\n}\n\n/* ── Sizes ────────────────────────────────────────────────── */\n\n.cd-trigger.sm {\n height: var(--spacing-24);\n padding-left: var(--spacing-12);\n padding-right: 6px;\n gap: 6px;\n font-size: var(--font-size-xs);\n}\n\n.cd-trigger.md {\n height: var(--spacing-32);\n padding-left: var(--spacing-16);\n padding-right: var(--spacing-8);\n gap: var(--spacing-8);\n font-size: var(--font-size-sm);\n}\n\n/* ── Hover / Active (unselected, not disabled) ────────────── */\n\n.cd-trigger:hover:not(:disabled):not(.selected) {\n background-color: var(--chip-hover-background);\n}\n\n.cd-trigger:active:not(:disabled) {\n background-color: var(--chip-active-background);\n}\n\n/* ── Expand state (open but no selection) ─────────────────── */\n\n.cd-trigger.expand:not(.selected):not(:disabled) {\n background-color: var(--chip-hover-background);\n}\n\n/* ── Selected ─────────────────────────────────────────────── */\n\n.cd-trigger.selected {\n background-color: var(--chip-selected-background);\n border-color: var(--chip-selected-background);\n color: var(--chip-selected-text);\n}\n\n/* ── Disabled ─────────────────────────────────────────────── */\n\n.cd-trigger:disabled {\n color: var(--chip-disabled-text);\n cursor: not-allowed;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.cd-trigger .cd-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n}\n\n/* ── Label slot ───────────────────────────────────────────── */\n\n.cd-trigger .cd-label {\n flex-shrink: 0;\n}\n\n/* ── Tag slot ─────────────────────────────────────────────── */\n\n.cd-trigger .cd-tag {\n font-weight: var(--font-weight-extra-bold);\n flex-shrink: 0;\n}\n\n/* ── Chevron icon ─────────────────────────────────────────── */\n\n.cd-trigger .cd-chevron {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n transition: transform 200ms ease;\n}\n\n.cd-trigger .cd-chevron.chevronOpen {\n transform: rotate(180deg);\n}\n\n/* ── Focus ring (keyboard / programmatic) ─────────────────── */\n\n.cd-trigger:focus-visible::after {\n content: \"\";\n position: absolute;\n inset: -3px;\n border-radius: var(--radius-full);\n border: 2px solid var(--chip-focus-ring-color);\n pointer-events: none;\n}\n\n/* ── Dropdown list panel ──────────────────────────────────── */\n\n.cd-list {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n z-index: 10;\n min-width: 100%;\n list-style: none;\n margin: 0;\n padding: var(--spacing-4);\n background: var(--chip-dropdown-list-bg);\n border: 1px solid var(--chip-dropdown-list-border);\n border-radius: var(--radius-md);\n box-shadow: var(--chip-dropdown-list-shadow);\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n}\n\n/* ── Dropdown item ────────────────────────────────────────── */\n\n.cd-item {\n display: flex;\n align-items: center;\n gap: 6px;\n height: var(--spacing-32);\n padding: 0 var(--spacing-12);\n border-radius: var(--radius-xs);\n cursor: pointer;\n color: var(--chip-dropdown-item-text);\n font-size: var(--font-size-sm);\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-regular);\n white-space: nowrap;\n box-sizing: border-box;\n transition: background-color 100ms ease;\n list-style: none;\n}\n\n.cd-item:hover {\n background-color: var(--chip-dropdown-item-hover-bg);\n}\n\n.cd-item:active {\n background-color: var(--chip-dropdown-item-active-bg);\n}\n\n/* ── Item label ───────────────────────────────────────────── */\n\n.cd-itemLabel {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* ── Selected item ────────────────────────────────────────── */\n\n.cd-item.itemSelected .cd-itemLabel {\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* ── Selected checkmark ───────────────────────────────────── */\n\n.cd-itemCheck {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: var(--chip-dropdown-item-selected-check);\n}\n\n/* ── Sheet variant (inside BottomSheet on mobile) ─────────── */\n\n.cd-list--sheet {\n position: static;\n border: none;\n border-radius: 0;\n box-shadow: none;\n padding: 0;\n background: transparent;\n}\n\n.cd-list--sheet .cd-item {\n height: 72px;\n padding: 0 var(--spacing-24);\n border-radius: 0;\n border-bottom: 1px solid var(--bottom-sheet-list-item-border);\n font-size: var(--font-size-md);\n}\n\n.cd-list--sheet .cd-item:last-child {\n border-bottom: none;\n}\n\n.cd-list--sheet .cd-item.itemSelected .cd-itemLabel {\n font-weight: var(--font-weight-extra-bold);\n}\n","/* ── Card shell ───────────────────────────────────────────── */\n\n.card-primary {\n display: flex;\n flex-direction: column;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n height: 29.5rem;\n position: relative;\n width: 100%;\n}\n\n/* ── Variant backgrounds ──────────────────────────────────── */\n\n.card-primary.style--light { background-color: var(--color-slate-75); }\n.card-primary.style--dark { background-color: var(--color-slate-1200); }\n.card-primary.style--brand { background-color: var(--color-coral-700); }\n.card-primary.style--image { background-color: transparent; }\n\n/* ── Content area ─────────────────────────────────────────── */\n\n.card-primary .cp-content {\n flex: 1 0 0;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n padding: var(--spacing-32);\n position: relative;\n z-index: 1;\n min-height: 0;\n}\n\n/* ── Text colours ─────────────────────────────────────────── */\n\n.card-primary .textDefault { color: var(--color-slate-1200); }\n.card-primary .textInverse { color: var(--color-slate-50); }\n\n/* ── Title ────────────────────────────────────────────────── */\n\n.card-primary .cp-title {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n margin: 0;\n width: 100%;\n}\n\n/* ── Description ──────────────────────────────────────────── */\n\n.card-primary .cp-description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n margin: 0;\n width: 100%;\n}\n\n/* ── Image section (light / dark / brand) ─────────────────── */\n\n.card-primary .cp-imageSection {\n height: 17.5rem;\n flex-shrink: 0;\n position: relative;\n overflow: hidden;\n background-color: transparent;\n}\n\n.card-primary .cp-image {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n\n/* ── Full-bleed image overlay (image style) ───────────────── */\n\n.card-primary .cp-imageOverlay {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 0;\n}\n\n.card-primary .cp-overlayImg {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n\n.card-primary .cp-gradient {\n position: absolute;\n inset: 0;\n background: linear-gradient(\n to bottom,\n var(--color-opacity-slate-72) 28%,\n transparent 54%\n );\n}\n","/* ── Card shell ───────────────────────────────────────────── */\n\n.card-secondary {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n padding: var(--spacing-32);\n background-color: var(--color-slate-75);\n border-radius: var(--radius-2xl);\n overflow: hidden;\n width: 100%;\n box-sizing: border-box;\n}\n\n/* ── Icon ─────────────────────────────────────────────────── */\n\n.card-secondary .cs-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-32);\n height: var(--spacing-32);\n flex-shrink: 0;\n color: var(--color-slate-1200);\n}\n\n/* ── Title ────────────────────────────────────────────────── */\n\n.card-secondary .cs-title {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n width: 100%;\n}\n\n/* ── Description ──────────────────────────────────────────── */\n\n.card-secondary .cs-description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n width: 100%;\n}\n","/* ── Card shell ───────────────────────────────────────────── */\n\n.card-thumbnail {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n/* ── Horizontal layout ────────────────────────────────────── */\n\n.card-thumbnail.ct-horizontal {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--spacing-16);\n max-width: 846px;\n}\n\n.card-thumbnail.ct-horizontal .ct-thumbnailWrapper {\n width: 151px;\n height: 100px;\n aspect-ratio: auto;\n flex-shrink: 0;\n border-radius: var(--radius-xl);\n}\n\n.card-thumbnail.ct-horizontal .ct-title {\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-thumbnail.ct-horizontal .ct-summary {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-thumbnail.ct-reverse {\n flex-direction: row-reverse;\n}\n\n@media (max-width: 767px) {\n .card-thumbnail.ct-horizontal {\n padding-bottom: var(--spacing-16);\n border-bottom: 1px solid var(--color-opacity-slate-8);\n }\n\n .card-thumbnail.ct-horizontal .ct-thumbnailWrapper {\n width: 132px;\n height: 88px;\n border-radius: var(--radius-md);\n }\n\n .card-thumbnail.ct-horizontal .ct-title {\n font-size: 16px;\n }\n\n .card-thumbnail.ct-horizontal .ct-summary {\n display: none;\n }\n}\n\n/* ── Thumbnail wrapper ────────────────────────────────────── */\n\n.card-thumbnail .ct-thumbnailWrapper {\n position: relative;\n width: 100%;\n aspect-ratio: 4 / 3;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n flex-shrink: 0;\n outline: 1px solid var(--border-subtle);\n background-color: transparent;\n}\n\n.card-thumbnail .ct-thumbnailImage {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n border-radius: inherit;\n pointer-events: none;\n display: block;\n transition: transform 0.25s ease-in-out;\n}\n\n.card-thumbnail:hover .ct-thumbnailImage {\n transform: scale(1.1);\n}\n\n/* ── Play button (video only) ─────────────────────────────── */\n\n.card-thumbnail .ct-playButton {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-80);\n height: var(--spacing-80);\n pointer-events: none;\n}\n\n/* ── Author avatar (article only) ────────────────────────── */\n\n.card-thumbnail .ct-avatar {\n position: absolute;\n bottom: var(--spacing-24);\n right: var(--spacing-24);\n width: var(--spacing-72);\n height: var(--spacing-72);\n border-radius: var(--radius-full);\n object-fit: cover;\n display: block;\n}\n\n/* ── Content area ─────────────────────────────────────────── */\n\n.card-thumbnail .ct-content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n width: 100%;\n}\n\n.card-thumbnail:not(.ct-horizontal) .ct-content {\n gap: var(--spacing-12);\n}\n\n/* ── Tags row (vertical layout) ───────────────────────────── */\n/* Standalone chip pills rendered above the title, matching the\n * \"Deriv press releases\" card design (deriv.com/newsroom). */\n\n.card-thumbnail .ct-tagsRow {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--spacing-8);\n}\n\n/* ── Meta row ─────────────────────────────────────────────── */\n\n.card-thumbnail .ct-metaRow {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n flex-wrap: wrap;\n gap: var(--spacing-12);\n}\n\n.card-thumbnail .ct-metaRow--end {\n justify-content: flex-end;\n}\n\n.card-thumbnail .ct-tagsList {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n flex: 1 0 0;\n min-width: 0;\n}\n\n.card-thumbnail .ct-tagItem {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n.card-thumbnail .ct-tagDot {\n color: var(--tag-custom-text-color);\n font-size: var(--font-size-md);\n line-height: 1;\n}\n\n/* ── Copy-link button ─────────────────────────────────────── */\n\n.card-thumbnail .ct-copyLink {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--spacing-32);\n min-height: var(--spacing-32);\n max-height: var(--spacing-32);\n padding: 0 var(--spacing-12);\n border-radius: var(--radius-full);\n border: 1px solid var(--tag-outline-border);\n background: transparent;\n color: var(--tag-text-color);\n cursor: pointer;\n flex-shrink: 0;\n transition: background-color 100ms ease;\n}\n\n.card-thumbnail .ct-copyLink:hover {\n background-color: var(--tag-fill-background);\n}\n\n/* ── Title ────────────────────────────────────────────────── */\n\n.card-thumbnail .ct-title {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--color-slate-1200);\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n margin: 0;\n}\n\n/* ── Summary ──────────────────────────────────────────────── */\n\n.card-thumbnail .ct-summary {\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n color: var(--color-slate-1200);\n overflow: hidden;\n text-overflow: ellipsis;\n margin: 0;\n}","/* ── Card Category shell ──────────────────────────────────── */\n\n.card-category {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n/* ── Title ────────────────────────────────────────────────── */\n\n.card-category .cc-header {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n cursor: pointer;\n}\n\n.card-category .cc-header:hover .cc-title {\n text-decoration: underline;\n}\n\n.card-category .cc-header:hover .cc-thumbnailImage {\n transform: scale(1.05);\n}\n\n.card-category .cc-thumbnailImage {\n transition: transform 0.25s ease-in-out;\n}\n\n.card-category .cc-title {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n}\n\n/* ── Thumbnail ────────────────────────────────────────────── */\n\n.card-category .cc-thumbnailWrapper {\n width: 100%;\n aspect-ratio: 16 / 9;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n position: relative;\n}\n\n.card-category .cc-thumbnailImage {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n/* ── Article list ─────────────────────────────────────────── */\n\n.card-category .cc-articleList {\n display: flex;\n flex-direction: column;\n}\n\n.card-category .cc-articleItem {\n padding: var(--spacing-12) 0;\n border-bottom: 1px solid var(--color-opacity-slate-8);\n}\n\n.card-category .cc-articleItem:first-child {\n padding-top: 0;\n}\n\n.card-category .cc-articleItem:last-child {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n.card-category .cc-articleItem .card-thumbnail.ct-horizontal {\n border-bottom: none;\n padding-bottom: 0;\n}\n","/* ── Container ────────────────────────────────────────────── */\n\n.pagination {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n/* ── Page button ──────────────────────────────────────────── */\n\n.pagination .pageButton {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-32);\n height: var(--spacing-32);\n flex-shrink: 0;\n padding: 0;\n border: none;\n border-radius: var(--pagination-page-radius);\n background: transparent;\n color: var(--pagination-page-text);\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-sm);\n text-align: center;\n white-space: nowrap;\n cursor: pointer;\n outline: none;\n box-sizing: border-box;\n}\n\n.pagination .pageButton:focus-visible {\n outline: 2px solid var(--color-blue-600);\n outline-offset: 2px;\n}\n\n/* ── Active / selected page button ───────────────────────── */\n\n.pagination .pageButtonSelected {\n background: var(--pagination-page-selected-bg);\n color: var(--pagination-page-selected-text);\n border-radius: var(--pagination-page-radius);\n cursor: default;\n}\n\n/* ── Ellipsis ─────────────────────────────────────────────── */\n\n.pagination .ellipsis {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-32);\n height: var(--spacing-32);\n flex-shrink: 0;\n color: var(--pagination-page-ellipsis-text);\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-sm);\n user-select: none;\n}\n\n/* ── Nav button (prev / next) ─────────────────────────────── */\n\n.pagination .navButton {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-32);\n height: var(--spacing-32);\n flex-shrink: 0;\n padding: 0;\n border: none;\n border-radius: var(--radius-xs);\n background: transparent;\n color: var(--pagination-nav-icon);\n cursor: pointer;\n outline: none;\n box-sizing: border-box;\n}\n\n.pagination .navButton:focus-visible {\n outline: 2px solid var(--color-blue-600);\n outline-offset: 2px;\n border-radius: var(--radius-md);\n}\n\n/* ── Nav button disabled ──────────────────────────────────── */\n\n.pagination .navButtonDisabled {\n color: var(--pagination-nav-icon-disabled);\n cursor: not-allowed;\n}\n\n/* ── Nav icon slot ────────────────────────────────────────── */\n\n.pagination .navIcon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-16);\n height: var(--spacing-16);\n flex-shrink: 0;\n}","/* ============================================================\n TABS PRIMITIVE\n ============================================================ */\n\n:root {\n --tabs-gap: var(--spacing-8);\n}\n\n.tabs-menu {\n display: flex;\n align-items: center;\n gap: var(--tabs-gap);\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n /* Firefox */\n padding-bottom: var(--spacing-4);\n margin-bottom: calc(var(--spacing-4) * -1);\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.tabs-menu::-webkit-scrollbar {\n display: none;\n /* Chrome/Safari */\n}\n\n/* ── Override Chip styles for Tabs ────────────────────────── */\n\n/* Make sure the chip text doesn't wrap */\n.tabs-menu .chip {\n white-space: nowrap;\n}\n\n/* Override the default Chip selected state to use the solid dark background */\n.tabs-menu .chip.selected {\n background-color: var(--color-slate-1200);\n border-color: var(--color-slate-1200);\n color: var(--color-slate-50);\n}\n\n/* Ensure the label inherits the regular weight when selected to match Figma */\n.tabs-menu .chip.selected .label {\n font-weight: var(--font-weight-regular);\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.faq-accordion {\n width: 100%;\n}\n\n.faq-accordion--white {\n background-color: var(--color-slate-50);\n}\n\n.faq-accordion--slate {\n background-color: var(--color-slate-75);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.faq-accordion__container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .faq-accordion__container {\n gap: var(--spacing-48);\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Section header ────────────────────────────────────────── */\n\n.faq-accordion__header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 1.25rem;\n /* 20px mobile */\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .faq-accordion__header {\n align-items: center;\n gap: var(--spacing-24);\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.faq-accordion__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n margin: 0;\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .faq-accordion__title {\n text-align: center;\n }\n}\n\n/* ── Accordion list ────────────────────────────────────────── */\n\n.faq-accordion__list {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.faq-accordion__list > * {\n max-width: 100%;\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.fc-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.fc-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-48);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n /* mobile */\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .fc-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Header ────────────────────────────────────────────────── */\n\n.fc-header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n text-align: left;\n}\n\n@media (min-width: 768px) {\n .fc-header {\n align-items: center;\n text-align: center;\n }\n}\n\n/* ── Section title (H2) ────────────────────────────────────── */\n\n.fc-sectionTitle {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Section description ───────────────────────────────────── */\n\n.fc-sectionDescription {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n margin: 0;\n max-width: 640px;\n}\n\n/* ── Cards grid ────────────────────────────────────────────── */\n\n.fc-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n/* tablet: 2 columns */\n@media (min-width: 768px) {\n .fc-grid {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-24);\n }\n}\n\n/* desktop: 3 or 4 columns depending on card count */\n@media (min-width: 992px) {\n .fc-grid--3 {\n grid-template-columns: repeat(3, 1fr);\n }\n\n .fc-grid--4 {\n grid-template-columns: repeat(4, 1fr);\n }\n}\n\n/* ── Two Cards variant ─────────────────────────────────────── */\n\n.fc-grid--twoCards {\n grid-template-columns: 1fr;\n gap: var(--spacing-24);\n align-items: stretch;\n}\n\n@media (min-width: 768px) {\n .fc-grid--twoCards {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (min-width: 992px) {\n .fc-grid--twoCards {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n.fc-twoCardWrap {\n display: flex;\n flex-direction: column;\n align-self: stretch;\n min-width: 0;\n width: 100%;\n min-height: 0;\n}\n\n.fc-twoCard {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-height: min-content;\n min-width: 0;\n width: 100%;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n.fc-twoCard--light {\n background-color: var(--color-slate-75);\n}\n\n.fc-twoCard--dark {\n background-color: var(--color-slate-1200);\n}\n\n.fc-twoCard-body {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n gap: 0;\n padding: var(--spacing-32);\n}\n\n/* Equal-height row when a card has no image: grow body to fill the tile */\n.fc-twoCard:not(:has(.fc-twoCard-imageSection)) .fc-twoCard-body {\n flex: 1 1 auto;\n}\n\n.fc-twoCard-content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.fc-twoCard-title {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n.fc-twoCard--dark .fc-twoCard-title {\n color: var(--color-slate-50);\n}\n\n.fc-twoCard-description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n}\n\n.fc-twoCard--dark .fc-twoCard-description {\n color: var(--color-slate-50);\n}\n\n.fc-twoCard-linkWrap {\n margin-top: 0;\n}\n\n.fc-twoCard-platformsOuter {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n margin-top: var(--spacing-24);\n flex-shrink: 0;\n}\n\n.fc-twoCard-platformsHeading {\n margin: 0;\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-lg-line-height);\n color: var(--text-primary);\n}\n\n.fc-twoCard--dark .fc-twoCard-platformsHeading {\n color: var(--color-slate-50);\n}\n\n.fc-twoCard--light .fc-twoCard-platformsHeading {\n color: var(--text-primary);\n}\n\n.fc-twoCard-platformRow {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--spacing-16);\n}\n\n.fc-platformLink {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n text-decoration: none;\n color: var(--text-primary);\n}\n\n.fc-platformLink:hover {\n text-decoration: underline;\n}\n\n.fc-platformLink:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n border-radius: var(--radius-xs);\n}\n\n.fc-platformLink--dark {\n color: var(--color-slate-50);\n}\n\n.fc-platformLink-icon {\n display: block;\n width: 2rem;\n height: 2rem;\n flex-shrink: 0;\n object-fit: contain;\n}\n\n.fc-platformLink-label {\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n}\n\n.fc-twoCard-imageSection {\n margin-top: auto;\n flex: 0 0 auto;\n width: 100%;\n aspect-ratio: 592 / 363.51;\n position: relative;\n overflow: hidden;\n background-color: transparent;\n}\n\n.fc-twoCard-image {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n object-position: bottom center;\n display: block;\n}\n\n/* ── One Card variant ──────────────────────────────────────── */\n\n.fc-oneCardShell {\n width: 100%;\n box-sizing: border-box;\n}\n\n.fc-oneCardGrid {\n box-sizing: border-box;\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: auto;\n align-items: stretch;\n gap: var(--spacing-16);\n width: 100%;\n max-width: calc(64 * var(--spacing-16));\n margin-inline: auto;\n border-radius: var(--spacing-32);\n overflow: hidden;\n}\n\n@media (min-width: 768px) {\n .fc-oneCardGrid {\n grid-template-columns: 1fr 1fr;\n grid-template-rows: auto;\n max-height: calc(30 * var(--spacing-16));\n min-height: calc(30 * var(--spacing-16));\n }\n}\n\n.fc-oneCardLeft {\n display: flex;\n flex-direction: column;\n gap: 0;\n padding: var(--spacing-32);\n box-sizing: border-box;\n min-height: 0;\n min-width: 0;\n}\n\n.fc-oneCardContentBlock {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n min-width: 0;\n}\n\n.fc-oneCardRight {\n position: relative;\n min-width: 0;\n min-height: 0;\n background-color: var(--color-slate-1200);\n box-sizing: border-box;\n}\n\n@media (max-width: 767px) {\n .fc-oneCardRight {\n padding: 0 var(--spacing-16);\n }\n}\n\n.fc-oneCardImage {\n display: block;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n object-position: center bottom;\n}\n\n@media (min-width: 768px) {\n .fc-oneCardRight {\n padding: 0;\n }\n\n .fc-oneCardImage {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n }\n}","/* ── Section shell ─────────────────────────────────────────── */\n\n.fci-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.fci-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-48);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .fci-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Header ────────────────────────────────────────────────── */\n\n.fci-header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n text-align: left;\n}\n\n@media (min-width: 768px) {\n .fci-header {\n align-items: center;\n text-align: center;\n }\n}\n\n/* ── Section title (H2) ────────────────────────────────────── */\n\n.fci-sectionTitle {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Section description ───────────────────────────────────── */\n\n.fci-sectionDescription {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n margin: 0;\n max-width: 640px;\n}\n\n/* ── Cards grid ────────────────────────────────────────────── */\n\n.fci-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n/* tablet: always 2 columns */\n@media (min-width: 768px) {\n .fci-grid {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-24);\n }\n}\n\n/* desktop: 3 or 4 columns depending on card count */\n@media (min-width: 992px) {\n .fci-grid--3 {\n grid-template-columns: repeat(3, 1fr);\n }\n\n .fci-grid--4 {\n grid-template-columns: repeat(4, 1fr);\n }\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.feature-bullets {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.feature-bullets__container {\n display: flex;\n flex-direction: column;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .feature-bullets__container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Split layout ──────────────────────────────────────────── */\n\n.feature-bullets__split {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .feature-bullets__split {\n flex-direction: row;\n align-items: center;\n gap: 8rem;\n /* 128px — no token at this scale */\n }\n\n /* Reverse column order when image is on the left */\n .feature-bullets__split--image-left {\n flex-direction: row-reverse;\n }\n}\n\n/* ── Content column ────────────────────────────────────────── */\n\n.feature-bullets__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .feature-bullets__content {\n gap: var(--spacing-32);\n width: 540px;\n flex-shrink: 0;\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.feature-bullets__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Bullet List ───────────────────────────────────────────── */\n\n.feature-bullets__bullet-list {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.feature-bullets__bullet-item {\n display: flex;\n align-items: flex-start;\n gap: var(--spacing-16);\n padding: var(--spacing-16) 0;\n border-bottom: 1px solid var(--color-opacity-slate-8);\n}\n\n.feature-bullets__bullet-item:first-child {\n padding-top: 0;\n}\n\n.feature-bullets__bullet-item:last-child {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n/* ── Icon ──────────────────────────────────────────────────── */\n\n.feature-bullets__icon-wrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.5rem; /* 24px */\n height: 1.5rem; /* 24px */\n flex-shrink: 0;\n color: var(--color-slate-1200);\n margin-top: 2px; /* Slight optical adjustment to align with text */\n}\n\n.feature-bullets__icon {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n/* ── Bullet Text ───────────────────────────────────────────── */\n\n.feature-bullets__bullet-text {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Image column ──────────────────────────────────────────── */\n\n.feature-bullets__image-wrapper {\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: var(--radius-2xl);\n /* 24px mobile */\n overflow: hidden;\n flex-shrink: 0;\n position: relative;\n background-color: transparent;\n}\n\n@media (min-width: 992px) {\n .feature-bullets__image-wrapper {\n flex: 1 0 0;\n width: auto;\n border-radius: 2rem;\n /* 32px desktop — no exact token */\n }\n}\n\n.feature-bullets__image {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n","/* ============================================================\n FOOTER COMPONENT\n Dark-style footer — token inheritance:\n Primitive (core) → Semantic (--footer-*) → Component styles\n\n Semantic tokens used:\n --footer-background var(--color-slate-1200)\n --footer-surface var(--color-slate-1100)\n --footer-header-divider var(--color-opacity-white-16) mob/tab\n --footer-divider-desktop var(--color-opacity-white-16) desktop\n --footer-nav-title-color var(--color-opacity-white-88)\n --footer-nav-link-color var(--color-slate-200)\n --footer-social-icon-color var(--color-slate-200)\n --footer-legal-text-color var(--color-opacity-white-48)\n --footer-accordion-text-color var(--color-slate-50)\n --footer-accordion-chevron-color var(--color-slate-50)\n --footer-app-badge-border var(--color-opacity-white-8)\n ============================================================ */\n\n/* ── ROOT ─────────────────────────────────────────────────────── */\n\n.footer {\n background-color: var(--footer-background);\n width: 100%;\n font-family: var(--font-family-base);\n}\n\n.footer__inner {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-32);\n padding: var(--spacing-32) var(--spacing-16);\n width: 100%;\n max-width: 640px;\n min-width: 320px;\n margin: 0 auto;\n box-sizing: border-box;\n overflow: hidden;\n}\n\n/* ── HEADER ROW ───────────────────────────────────────────────── */\n\n.footer__header {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-24);\n border-bottom: 1px solid var(--footer-header-divider);\n padding-bottom: var(--spacing-32);\n width: 100%;\n}\n\n.footer__logo-wrapper {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.footer__logo {\n height: 32px;\n width: auto;\n min-width: 1px;\n display: block;\n}\n\n/* ── SOCIAL ICONS ─────────────────────────────────────────────── */\n\n.footer__social {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n flex-shrink: 0;\n}\n\n/* Hidden in header on mobile — shown as standalone section instead */\n.footer__social--in-header {\n display: none;\n}\n\n/* Standalone social section: visible on mobile, hidden on desktop */\n.footer__social--standalone {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-8);\n width: 100%;\n}\n\n/* Centers social icons between the logo and the header Investors badge */\n.footer__social--centered {\n flex: 1 1 auto;\n justify-content: center;\n}\n\n/* Investors in People badge shown in the header row (desktop only) */\n.footer__investors-header {\n display: none;\n flex-shrink: 0;\n}\n\n.footer__social-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n color: var(--footer-social-icon-color);\n text-decoration: none;\n flex-shrink: 0;\n overflow: hidden;\n}\n\n.footer__social-icon svg {\n width: 20px;\n height: 20px;\n display: block;\n}\n\n.footer__social-icon:hover {\n opacity: 0.8;\n}\n\n/* ── AI SUMMARY BAR ───────────────────────────────────────────── */\n\n/* Inline version: visible only on desktop inside the header row */\n.footer__ai-bar.footer__ai-bar--inline {\n display: none;\n}\n\n/* Block version: visible on mobile as a standalone card */\n.footer__ai-section {\n border-bottom: 1px solid var(--footer-header-divider);\n padding-bottom: var(--spacing-32);\n width: 100%;\n box-sizing: border-box;\n}\n\n.footer__ai-bar {\n background-color: var(--footer-surface);\n border-radius: var(--radius-xl);\n padding: var(--spacing-16);\n display: flex;\n align-items: center;\n gap: var(--spacing-16);\n}\n\n.footer__ai-bar--block {\n flex-direction: column;\n}\n\n.footer__ai-bar-label {\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-xs);\n color: var(--color-slate-50);\n text-align: center;\n white-space: nowrap;\n}\n\n.footer__ai-bar-icons {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n.footer__ai-icon {\n width: 32px;\n height: 32px;\n border-radius: var(--radius-md);\n display: block;\n object-fit: cover;\n}\n\n/* ── NAVIGATION — Desktop columns (hidden by default) ─────────── */\n\n.footer__nav--columns {\n display: none;\n}\n\n.footer__column {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-32);\n flex: 1 0 0;\n}\n\n.footer__nav-section {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.footer__nav-title {\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--line-height-md);\n color: var(--footer-nav-title-color);\n margin: 0;\n white-space: nowrap;\n}\n\n.footer__nav-links {\n list-style: none;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n/* ── NAVIGATION — Mobile/Tablet accordion ─────────────────────── */\n\n.footer__nav--accordion {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.footer__accordion-item {\n width: 100%;\n}\n\n.footer__accordion-toggle {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: var(--spacing-16) 0;\n background: none;\n border: none;\n cursor: pointer;\n text-align: left;\n font-family: var(--font-family-base);\n}\n\n.footer__accordion-label {\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--footer-accordion-text-color);\n}\n\n.footer__accordion-chevron {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: var(--footer-accordion-chevron-color);\n flex-shrink: 0;\n border-radius: var(--radius-md);\n transition: transform 150ms ease;\n}\n\n.footer__accordion-item--open .footer__accordion-chevron {\n transform: rotate(180deg);\n}\n\n.footer__accordion-links {\n list-style: none;\n padding: 0 0 var(--spacing-8) 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n/* ── SHARED NAV LINK ──────────────────────────────────────────── */\n\n.footer__nav-link {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--footer-nav-link-color);\n text-decoration: none;\n white-space: nowrap;\n cursor: pointer;\n}\n\n.footer__nav-link:hover {\n opacity: 0.8;\n}\n\n.footer__nav-link svg {\n width: 12px;\n height: 12px;\n flex-shrink: 0;\n}\n\n/* ── DESKTOP SIDEBAR (hidden by default) ──────────────────────── */\n\n.footer__sidebar {\n display: none;\n}\n\n/* ── DERIV GO — shared styles for both card and banner ─────────── */\n\n.footer__deriv-go-card,\n.footer__deriv-go-banner {\n background-color: var(--footer-surface);\n border-radius: var(--radius-xl);\n padding: var(--spacing-24);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n box-sizing: border-box;\n}\n\n/* Stacked banner: full width on mobile/tablet */\n.footer__deriv-go-banner {\n width: 100%;\n}\n\n/* Banner inner sections */\n.footer__deriv-go-banner-info {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n}\n\n.footer__deriv-go-banner-badges {\n width: 100%;\n}\n\n.footer__deriv-go-header {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n.footer__deriv-go-logo {\n width: 24px;\n height: 24px;\n display: block;\n flex-shrink: 0;\n overflow: hidden;\n}\n\n.footer__deriv-go-title {\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--line-height-md);\n color: var(--color-slate-50);\n white-space: nowrap;\n}\n\n.footer__deriv-go-desc {\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-50);\n margin: 0;\n}\n\n.footer__deriv-go-qr {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n/* Framed variant — opts into a pill background behind the QR + label,\n used when the QR is passed via `qrCodeIcon` (pixel-perfect assets that\n don't bake in their own card treatment, e.g. deriv.com's real QR). */\n.footer__deriv-go-qr--framed {\n background-color: var(--color-opacity-white-8);\n border-radius: var(--radius-xl);\n padding: var(--spacing-8);\n box-sizing: border-box;\n}\n\n.footer__deriv-go-qr-img {\n width: 64px;\n height: 64px;\n display: block;\n flex-shrink: 0;\n}\n\n/* SVG QR code variant */\n.footer__deriv-go-qr-icon {\n width: 64px;\n height: 64px;\n display: block;\n flex-shrink: 0;\n}\n\n.footer__deriv-go-qr-icon svg,\n.footer__deriv-go-qr-icon img {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.footer__deriv-go-qr-label {\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-50);\n}\n\n/* ── TRADE ON TRADINGVIEW BANNER ──────────────────────────────── */\n\n.footer__trade-on {\n display: block;\n width: 100%;\n text-decoration: none;\n}\n\n.footer__trade-on-img {\n display: block;\n width: 100%;\n height: auto;\n}\n\n/* ── APP STORE BADGES ─────────────────────────────────────────── */\n\n.footer__app-badges {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--spacing-8);\n}\n\n.footer__app-badge {\n display: block;\n width: 100%;\n text-decoration: none;\n padding: var(--spacing-4) 0;\n}\n\n.footer__app-badge img {\n display: block;\n width: 100%;\n height: auto;\n}\n\n/* SVG badge variant — a pill background behind the icon, for badge\n assets (e.g. deriv.com's real store badges) that don't bake in their\n own card/border treatment the way the default `imageSrc` badges do. */\n.footer__app-badge-svg {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n box-sizing: border-box;\n padding: var(--spacing-12) var(--spacing-16);\n background-color: var(--color-opacity-white-8);\n border-radius: var(--radius-full);\n text-decoration: none;\n}\n\n.footer__app-badge-svg svg,\n.footer__app-badge-svg img {\n display: block;\n height: 32px;\n width: auto;\n}\n\n.footer__app-note {\n font-family: var(--font-family-base);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-normal);\n color: var(--color-slate-50);\n margin: var(--spacing-8) 0 0 0;\n}\n\n/* ── INVESTORS IN PEOPLE ──────────────────────────────────────── */\n\n/* Plain badge, no card background — the SVG itself is a transparent\n white wordmark meant to sit directly on the footer's dark background,\n matching deriv.com (no dark surface/padding behind it). */\n.footer__investors-card {\n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n}\n\n/* Mobile/tablet: centred, full width */\n.footer__investors-stacked {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n}\n\n.footer__investors-img {\n height: 32px;\n width: 160px;\n display: block;\n object-fit: contain;\n}\n\n/* ── LEGAL & RISK WARNING ─────────────────────────────────────── */\n\n.footer__legal-block {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n.footer__license {\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--footer-legal-text-color);\n width: 100%;\n}\n\n.footer__license p {\n margin: 0 0 var(--spacing-16) 0;\n}\n\n.footer__license p:last-child {\n margin-bottom: 0;\n}\n\n.footer__license a {\n color: var(--footer-legal-text-color);\n text-decoration: underline;\n}\n\n.footer__risk-warning {\n background-color: var(--footer-surface);\n border-radius: var(--radius-md);\n padding: var(--spacing-16);\n box-sizing: border-box;\n width: 100%;\n}\n\n.footer__risk-warning-text {\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--footer-legal-text-color);\n margin: 0;\n}\n\n/* ============================================================\n TABLET ≥768px\n - Wider inner container + padding\n - Still accordion nav\n - AI section hidden (only mobile shows it)\n ============================================================ */\n\n@media (min-width: 768px) {\n .footer__inner {\n max-width: 1280px;\n min-width: 641px;\n padding: var(--spacing-32) var(--spacing-24);\n }\n\n /* Header: restore space-between and show social icons */\n .footer__header {\n justify-content: space-between;\n }\n\n .footer__social--in-header {\n display: flex;\n }\n\n /* Hide standalone social section */\n .footer__social--standalone {\n display: none;\n }\n\n /* Hide mobile AI card on tablet+ */\n .footer__ai-section {\n display: none;\n }\n\n /* Deriv GO banner: two-column layout on tablet */\n .footer__deriv-go-banner {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--spacing-24);\n }\n\n .footer__deriv-go-banner-info {\n flex: 1 1 auto;\n }\n\n .footer__deriv-go-banner-badges {\n flex: 0 0 280px;\n width: 280px;\n }\n}\n\n/* ============================================================\n DESKTOP ≥992px\n - Multi-column nav + sidebar\n - Inline AI bar inside header row\n - Accordion hidden\n ============================================================ */\n\n@media (min-width: 992px) {\n .footer__inner {\n max-width: 1280px;\n padding: var(--spacing-48) var(--spacing-32);\n gap: var(--spacing-40);\n }\n\n /* Header: switch to desktop divider colour */\n .footer__header {\n border-bottom-color: var(--footer-divider-desktop);\n }\n\n /* Show inline AI bar, hide block version */\n .footer__ai-bar.footer__ai-bar--inline {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding-top: var(--spacing-16);\n padding-bottom: var(--spacing-16);\n gap: var(--spacing-16);\n }\n\n .footer__ai-section {\n display: none;\n }\n\n /* Investors in People badge in the header row */\n .footer__investors-header {\n display: flex;\n align-items: center;\n }\n\n /* Show desktop columns, hide accordion */\n .footer__nav--columns {\n display: flex;\n gap: var(--spacing-24);\n align-items: flex-start;\n width: 100%;\n }\n\n .footer__nav--accordion {\n display: none;\n }\n\n /* Show desktop sidebar */\n .footer__sidebar {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n align-items: flex-start;\n flex-shrink: 0;\n width: 192px;\n }\n\n /* Desktop sidebar Deriv GO card: fixed 192px width */\n .footer__deriv-go-card {\n width: 192px;\n }\n\n /* Desktop sidebar trade-on banner: fixed 192px width */\n .footer__trade-on {\n width: 192px;\n }\n\n /* Badges: single column inside narrow sidebar card */\n .footer__deriv-go-card .footer__app-badges {\n grid-template-columns: 1fr;\n }\n\n /* Hide mobile/tablet stacked versions */\n .footer__deriv-go-banner {\n display: none;\n }\n\n .footer__investors-stacked {\n display: none;\n }\n\n .footer__trade-on-stacked {\n display: none;\n }\n\n /* Legal block: left-aligned on desktop */\n .footer__legal-block {\n align-items: flex-start;\n }\n\n /* Restore icon sizes to 24px on desktop */\n .footer__social-icon {\n width: 24px;\n height: 24px;\n }\n\n .footer__social-icon svg {\n width: 16px;\n height: 16px;\n }\n\n .footer__ai-icon {\n width: 24px;\n height: 24px;\n }\n}\n","/* ============================================================\n HERO COMPONENT\n Variants: split | centered | showcase\n Dark, full-bleed, immersive — 100vh with scroll-driven shrink\n\n Token inheritance:\n Core (--color-*, --spacing-*, --font-*) →\n Semantic (--typography-*) →\n Component (--hero-*) →\n Styles\n ============================================================ */\n\n/* ── COMPONENT TOKENS ─────────────────────────────────────── */\n:root {\n --hero-dark-bg: var(--color-slate-1200);\n --hero-text-light: var(--color-slate-50);\n\n --hero-subtitle-size: var(--typography-body-md-font-size);\n --hero-subtitle-lh: var(--typography-body-md-line-height);\n --hero-subtitle-weight: var(--font-weight-semi-bold);\n\n --hero-title-size: var(--typography-h1-font-size);\n --hero-title-lh: var(--typography-h1-line-height);\n\n --hero-body-size: var(--typography-body-md-font-size);\n --hero-body-lh: var(--typography-body-md-line-height);\n\n /* Split variant padding */\n --hero-split-padding-top-mobile: var(--spacing-80);\n --hero-split-padding-top-tablet: var(--spacing-96);\n /* No desktop top padding — the split text block is optically centred */\n\n /* Split variant — desktop content floor, keeps the centred text block\n from colliding with the fixed navbar on short viewports */\n --hero-split-min-height: 35.25rem;\n\n /* Split variant — secondary foreground (floatingImage) placement at desktop.\n Percentages of the hero section, so the layer tracks the hero at any\n width and stays tucked behind the subject. */\n --hero-split-floating-width: 16%;\n --hero-split-floating-inset-inline-end: 28%;\n --hero-split-floating-inset-bottom: 17%;\n\n /* Centered / Showcase variant padding */\n --hero-shrink-radius: 3.5rem;\n --hero-padding-top-mobile: var(--spacing-80);\n --hero-padding-top-tablet: var(--spacing-96);\n --hero-padding-top-desktop: var(--spacing-112);\n}\n\n/* ── ROOT ─────────────────────────────────────────────────── */\n\n.hero {\n position: relative;\n width: 100%;\n font-family: var(--font-family-base);\n box-sizing: border-box;\n overflow: hidden;\n background-color: var(--hero-dark-bg);\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n height: 100vh;\n display: flex;\n align-items: flex-start;\n}\n\n/* ── OVERLAY ──────────────────────────────────────────────── */\n\n.hero__overlay {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 2;\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.hero__inner {\n position: relative;\n z-index: 3;\n width: 100%;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n box-sizing: border-box;\n padding: var(--spacing-24) var(--spacing-16);\n}\n\n/* ── TEXT BLOCK ───────────────────────────────────────────── */\n\n.hero__text {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.hero__subtitle {\n font-size: var(--hero-subtitle-size);\n font-weight: var(--hero-subtitle-weight);\n line-height: var(--hero-subtitle-lh);\n color: var(--hero-text-light);\n margin: 0;\n}\n\n.hero__title {\n font-size: var(--hero-title-size);\n font-weight: var(--typography-h1-font-weight);\n line-height: var(--hero-title-lh);\n color: var(--hero-text-light);\n margin: 0;\n}\n\n.hero__description {\n font-size: var(--hero-body-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--hero-body-lh);\n color: var(--hero-text-light);\n margin: 0;\n}\n\n/* ── CTA BUTTONS ──────────────────────────────────────────── */\n\n.hero__buttons {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n width: 100%;\n align-items: stretch;\n}\n\n/* Buttons are wrapped in an <a> when a href is supplied, so align-items:\n stretch alone only stretches the anchor — the inline-flex <button> inside\n it still shrinks to its content. Target both so the CTA is visually\n full-width on mobile, not just its tap target. */\n.hero__buttons a,\n.hero__buttons .button {\n width: 100%;\n}\n\n/* ── CONTENT BODY (text + buttons) ───────────────────────── */\n\n.hero__body {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n}\n\n/* ============================================================\n VARIANT: SPLIT\n Dark full-bleed bg image, gradient overlay, left text + right image\n Scroll-driven shrink animation\n ============================================================ */\n\n.hero--split {\n /* Background photo is anchored left so the subject side stays uncropped */\n background-position: left center;\n animation: hero-split-shrink linear both;\n animation-timeline: view();\n animation-range: exit 0% exit 40%;\n}\n\n/* Square at rest, rounding only as the hero scrolls out — matches the\n `centered` and `showcase` variants. deriv.com's own hero carries a static\n 64px rounding instead, but that only reads correctly there because their\n Trustpilot bar covers the hero's bottom edge. */\n@keyframes hero-split-shrink {\n 0% {\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n scale: 1;\n }\n 100% {\n border-bottom-left-radius: var(--hero-shrink-radius);\n border-bottom-right-radius: var(--hero-shrink-radius);\n scale: 0.94;\n }\n}\n\n/* Mobile/tablet: transparent top → dark bottom */\n.hero--split .hero__overlay {\n background: linear-gradient(\n 180deg,\n transparent 0%,\n transparent 30%,\n var(--color-opacity-slate-48) 55%,\n var(--color-opacity-slate-88) 75%,\n var(--hero-dark-bg) 100%\n );\n}\n\n.hero--split .hero__inner {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n width: 100%;\n height: 100vh;\n padding-top: 0;\n padding-bottom: var(--spacing-40);\n padding-left: var(--spacing-16);\n padding-right: var(--spacing-16);\n}\n\n.hero--split .hero__content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n/* Mobile/tablet: hero image — vertically centred in viewport, 80vh band */\n.hero--split .hero__image-slot {\n position: absolute;\n top: 10vh;\n bottom: auto;\n left: 0;\n right: 0;\n height: 80vh;\n z-index: 1;\n overflow: visible;\n pointer-events: none;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.hero--split .hero__image-slot img {\n width: 100%;\n max-height: 100%;\n object-fit: contain;\n object-position: center;\n display: block;\n}\n\n.hero--split .hero__image-slot > *:not(img) {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n/* Secondary foreground layer (e.g. a device mockup tucked behind the subject).\n Hidden below the desktop breakpoint — at those sizes the hero image already\n fills the frame and there is no room to place it legibly. */\n.hero--split .hero__floating-image {\n display: none;\n pointer-events: none;\n}\n\n/* Eyebrow sits tight against the title (no gap), so spacing inside the text\n block is driven by an explicit margin on the description instead of `gap`. */\n.hero--split .hero__text {\n gap: 0;\n}\n\n.hero--split .hero__subtitle {\n font-size: var(--typography-h5-font-size);\n line-height: var(--typography-h5-line-height);\n font-weight: var(--typography-h5-font-weight);\n}\n\n.hero--split .hero__description {\n margin-top: var(--spacing-16);\n}\n\n.hero--split .hero__buttons {\n align-items: stretch;\n}\n\n/* ============================================================\n VARIANT: CENTERED\n Full bg image, centered text, top gradient overlay, 100vh\n ============================================================ */\n\n.hero--centered {\n animation: hero-centered-shrink linear both;\n animation-timeline: view();\n animation-range: exit 0% exit 40%;\n}\n\n@keyframes hero-centered-shrink {\n 0% {\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n scale: 1;\n }\n 100% {\n border-bottom-left-radius: var(--hero-shrink-radius);\n border-bottom-right-radius: var(--hero-shrink-radius);\n scale: 0.94;\n }\n}\n\n/* Dark top → transparent bottom overlay */\n.hero--centered .hero__overlay {\n background: linear-gradient(\n 180deg,\n var(--hero-dark-bg) 0%,\n var(--color-opacity-slate-88) 20%,\n var(--color-opacity-slate-48) 45%,\n transparent 70%\n );\n}\n\n.hero--centered .hero__inner {\n display: flex;\n align-items: flex-start;\n justify-content: center;\n width: 100%;\n height: calc(100vh - 16px);\n padding-top: var(--hero-padding-top-mobile);\n padding-bottom: 0;\n}\n\n.hero--centered .hero__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-24);\n width: 100%;\n height: 100vh;\n padding-bottom: var(--spacing-48);\n text-align: left;\n justify-content: flex-start;\n}\n\n.hero--centered .hero__text {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n max-width: 640px;\n width: 100%;\n}\n\n.hero--centered .hero__buttons {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-12);\n align-items: stretch;\n width: 100%;\n justify-content: center;\n}\n\n/* ============================================================\n VARIANT: SHOWCASE\n Dark bg + full-bleed bg image, center-aligned text,\n large product image below buttons\n ============================================================ */\n\n.hero--showcase {\n animation: hero-showcase-shrink linear both;\n animation-timeline: view();\n animation-range: exit 0% exit 40%;\n}\n\n@keyframes hero-showcase-shrink {\n 0% {\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n scale: 1;\n }\n 100% {\n border-bottom-left-radius: var(--hero-shrink-radius);\n border-bottom-right-radius: var(--hero-shrink-radius);\n scale: 0.94;\n }\n}\n\n/* Dark top → transparent bottom overlay */\n.hero--showcase .hero__overlay {\n background: linear-gradient(\n 180deg,\n var(--hero-dark-bg) 0%,\n var(--color-opacity-slate-88) 20%,\n var(--color-opacity-slate-48) 45%,\n transparent 70%\n );\n}\n\n.hero--showcase .hero__inner {\n display: flex;\n align-items: flex-start;\n justify-content: center;\n width: 100%;\n height: calc(100vh - 16px);\n padding-top: var(--hero-padding-top-mobile);\n padding-bottom: 0;\n}\n\n.hero--showcase .hero__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-24);\n width: 100%;\n height: 100vh;\n padding-bottom: var(--spacing-48);\n text-align: left;\n}\n\n.hero--showcase .hero__text {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n max-width: 640px;\n width: 100%;\n}\n\n.hero--showcase .hero__buttons {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-12);\n align-items: stretch;\n width: 100%;\n}\n\n/* Large product image — centered below buttons */\n.hero--showcase .hero__product-image {\n position: relative;\n width: 100%;\n max-width: 100%;\n height: 100%;\n min-height: 17.5rem;\n max-height: 50vh;\n overflow: clip;\n margin-top: auto;\n margin-bottom: 8px;\n}\n\n.hero--showcase .hero__product-image img,\n.hero--showcase .hero__product-image > * {\n width: 100%;\n height: 100%;\n display: block;\n object-fit: contain;\n object-position: center;\n}\n\n/* Smaller floating image — below product image */\n.hero--showcase .hero__floating-image {\n width: 100%;\n max-width: 160px;\n margin-top: auto;\n margin-bottom: var(--spacing-40);\n aspect-ratio: 1 / 1;\n}\n\n.hero--showcase .hero__floating-image img,\n.hero--showcase .hero__floating-image > * {\n width: 100%;\n height: 100%;\n display: block;\n object-fit: cover;\n object-position: center;\n}\n\n/* ============================================================\n TABLET ≥768px\n ============================================================ */\n\n@media (min-width: 768px) {\n .hero__inner {\n padding: var(--spacing-40) var(--spacing-24);\n }\n\n /* Buttons revert to natural content width once they sit in a row */\n .hero__buttons a,\n .hero__buttons .button {\n width: auto;\n }\n\n .hero--split .hero__inner {\n padding-top: var(--hero-split-padding-top-tablet);\n padding-bottom: var(--spacing-40);\n padding-left: var(--spacing-24);\n padding-right: var(--spacing-24);\n justify-content: flex-end;\n }\n\n .hero--split .hero__buttons {\n flex-direction: row;\n align-items: center;\n width: auto;\n }\n\n .hero--centered .hero__inner {\n padding-top: var(--hero-padding-top-tablet);\n padding-bottom: 0;\n }\n\n .hero--centered .hero__content {\n align-items: center;\n text-align: center;\n }\n\n .hero--centered .hero__text {\n align-items: center;\n }\n\n .hero--centered .hero__buttons {\n flex-direction: row;\n align-items: center;\n justify-content: center;\n max-width: none;\n width: auto;\n }\n\n .hero--showcase .hero__inner {\n padding-top: var(--hero-padding-top-tablet);\n padding-bottom: 0;\n }\n\n .hero--showcase .hero__content {\n align-items: center;\n text-align: center;\n }\n\n .hero--showcase .hero__text {\n align-items: center;\n }\n\n .hero--showcase .hero__buttons {\n flex-direction: row;\n align-items: center;\n justify-content: center;\n max-width: none;\n width: auto;\n }\n\n .hero--showcase .hero__product-image {\n max-width: 640px;\n }\n\n .hero--showcase .hero__floating-image {\n max-width: 180px;\n }\n}\n\n/* ============================================================\n DESKTOP ≥992px\n ============================================================ */\n\n@media (min-width: 992px) {\n .hero__inner {\n padding: var(--spacing-48) var(--spacing-32);\n }\n\n /* ── Split desktop: text constrained to left half ── */\n /* Text block is optically centred in the viewport — no vertical padding,\n with a min-height floor so short viewports don't crowd the navbar. */\n .hero--split .hero__inner {\n max-width: var(--content-width-1280);\n padding-top: 0;\n padding-bottom: 0;\n padding-left: var(--spacing-32);\n padding-right: var(--spacing-32);\n height: 100vh;\n min-height: var(--hero-split-min-height);\n justify-content: center;\n align-items: flex-start;\n }\n\n .hero--split .hero__content {\n flex-direction: column;\n gap: var(--spacing-24);\n max-width: 600px;\n }\n\n .hero--split .hero__left {\n width: 100%;\n }\n\n .hero--split .hero__body {\n gap: var(--spacing-24);\n }\n\n /* Desktop: image anchored to the bottom-right, bleeding past both edges\n so the subject is cropped by the frame rather than floating in it. */\n .hero--split .hero__image-slot {\n position: absolute;\n inset: auto -4% -14% auto;\n transform: none;\n z-index: 1;\n width: 50%;\n height: 100%;\n display: block;\n overflow: visible;\n pointer-events: none;\n max-width: none;\n }\n\n .hero--split .hero__image-slot img {\n height: 100%;\n width: 100%;\n max-height: none;\n max-width: none;\n object-fit: contain;\n object-position: 40% 100%;\n }\n\n /* Desktop: secondary foreground anchored to the section's lower-inline-end,\n sized and offset as a share of the section so it tracks the hero at any\n width. Same z-index as the image slot — DOM order (this element first)\n keeps it behind the subject. */\n .hero--split .hero__floating-image {\n display: block;\n position: absolute;\n width: var(--hero-split-floating-width);\n inset-inline-end: var(--hero-split-floating-inset-inline-end);\n bottom: var(--hero-split-floating-inset-bottom);\n z-index: 1;\n }\n\n /* Natural aspect ratio — never cropped to a square, so portrait device\n mockups keep their proportions. */\n .hero--split .hero__floating-image img,\n .hero--split .hero__floating-image > *:not(img) {\n display: block;\n width: 100%;\n height: auto;\n }\n\n .hero--split .hero__buttons {\n flex-direction: row;\n align-items: center;\n width: auto;\n gap: var(--spacing-16);\n }\n\n /* Desktop split overlay: a light top vignette plus a very subtle diagonal\n wash — just enough to seat the text without flattening the photo. */\n .hero--split .hero__overlay {\n background:\n linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0.4) 0%,\n rgba(255, 255, 255, 0) 12%\n ),\n linear-gradient(\n 84.29deg,\n rgba(0, 0, 0, 0.2) 22%,\n rgba(143, 143, 143, 0.04) 84%,\n rgba(0, 0, 0, 0) 100%\n );\n }\n\n /* ── Centered desktop ── */\n .hero--centered .hero__inner {\n padding-top: var(--hero-padding-top-desktop);\n padding-bottom: 0;\n }\n\n .hero--centered .hero__text {\n max-width: 760px;\n }\n\n .hero--centered .hero__buttons {\n flex-direction: row;\n align-items: center;\n justify-content: center;\n width: auto;\n }\n\n /* ── Showcase desktop ── */\n .hero--showcase .hero__inner {\n padding-top: var(--hero-padding-top-desktop);\n padding-bottom: 0;\n }\n\n .hero--showcase .hero__text {\n max-width: 760px;\n }\n\n .hero--showcase .hero__product-image {\n width: auto;\n max-width: none;\n height: 50vh;\n max-height: none;\n aspect-ratio: 1 / 1;\n }\n\n .hero--showcase .hero__floating-image {\n max-width: 200px;\n }\n}\n\n/* ============================================================\n WIDE ≥1280px\n ============================================================ */\n\n@media (min-width: 1280px) {\n .hero--showcase .hero__product-image {\n width: auto;\n max-width: none;\n height: 50vh;\n max-height: none;\n aspect-ratio: 1 / 1;\n }\n\n .hero--showcase .hero__floating-image {\n max-width: 220px;\n }\n}\n","/* ============================================================\n HEADER COMPONENT\n Variants: visuals | minimal | dark | dark-search\n Light grey bg (visuals/minimal) or dark navy bg (dark/dark-search),\n content-first, lower visual weight\n\n Token inheritance:\n Core (--color-*, --spacing-*, --font-*) →\n Semantic (--typography-*) →\n Component (--header-*) →\n Styles\n ============================================================ */\n\n/* ── COMPONENT TOKENS ─────────────────────────────────────── */\n:root {\n --header-light-bg: var(--color-slate-75);\n --header-text-dark: var(--text-primary);\n\n --header-dark-bg: var(--color-slate-1200);\n --header-text-light: var(--color-slate-50);\n --header-dark-min-height: 420px;\n --header-dark-min-height-desktop: 460px;\n\n /* Top clearance for a fixed Navbar rendered above the header.\n 0 by default (header is not always paired with the navbar); the\n `underNavbar` prop / `.header--under-navbar` modifier sets it to the\n navbar's footprint so the title never slides under the fixed pill. */\n --header-navbar-clearance: 0px;\n\n --header-light-min-height: 540px;\n\n --header-subtitle-size: var(--typography-body-md-font-size);\n --header-subtitle-lh: var(--typography-body-md-line-height);\n --header-subtitle-weight: var(--font-weight-semi-bold);\n\n --header-title-size: var(--typography-h1-font-size);\n --header-title-lh: var(--typography-h1-line-height);\n\n --header-body-size: var(--typography-body-md-font-size);\n --header-body-lh: var(--typography-body-md-line-height);\n}\n\n/* ── ROOT ─────────────────────────────────────────────────── */\n\n.header {\n position: relative;\n width: 100%;\n font-family: var(--font-family-base);\n box-sizing: border-box;\n overflow: hidden;\n background-color: var(--header-light-bg);\n min-height: calc(var(--header-light-min-height) + var(--header-navbar-clearance));\n display: flex;\n align-items: center;\n}\n\n/* ── NAVBAR CLEARANCE ─────────────────────────────────────────\n Opt-in modifier for pages that render the fixed `Navbar` above the\n header. Reserves the navbar's footprint as top clearance so the\n vertically-centred content clears the fixed pill. The navbar footprint\n is its bar height (mobile/tablet, where the bar has no vertical padding)\n and bar height + 2× spacing-16 at ≥992px (where the bar is padded). */\n.header--under-navbar {\n --header-navbar-clearance: var(--navbar-height, 4rem);\n}\n\n/* ── SVG GRID PATTERN ─────────────────────────────────────── */\n\n.header__grid {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 0;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64'%3E%3Cpath d='M 64 0 L 0 0 0 64' fill='none' stroke='%23cfd4d8' stroke-width='0.5' opacity='0.5'/%3E%3C/svg%3E\");\n background-repeat: repeat;\n background-size: 64px 64px;\n}\n\n/* ── OVERLAY — fades visuals at all edges ─────────────────── */\n\n.header__overlay {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 2;\n background:\n linear-gradient(to right, var(--header-light-bg) 0%, rgba(246, 247, 248, 0) 18%, rgba(246, 247, 248, 0) 82%, var(--header-light-bg) 100%),\n linear-gradient(to bottom, var(--header-light-bg) 0%, rgba(246, 247, 248, 0) 30%, rgba(246, 247, 248, 0) 70%, var(--header-light-bg) 100%);\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.header__inner {\n position: relative;\n z-index: 3;\n width: 100%;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n box-sizing: border-box;\n padding: calc(var(--spacing-24) + var(--header-navbar-clearance)) var(--spacing-16) var(--spacing-24);\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n min-height: calc(var(--header-light-min-height) + var(--header-navbar-clearance));\n}\n\n/* ── CONTENT ──────────────────────────────────────────────── */\n\n.header__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-32);\n width: 100%;\n text-align: left;\n}\n\n/* ── BODY (text + buttons) ────────────────────────────────── */\n\n.header__body {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n}\n\n/* ── TEXT BLOCK ───────────────────────────────────────────── */\n\n.header__text {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n align-items: flex-start;\n max-width: var(--content-width-846);\n}\n\n.header__subtitle {\n font-size: var(--header-subtitle-size);\n font-weight: var(--header-subtitle-weight);\n line-height: var(--header-subtitle-lh);\n color: var(--header-text-dark);\n margin: 0;\n}\n\n.header__title {\n font-size: var(--header-title-size);\n font-weight: var(--typography-h1-font-weight);\n line-height: var(--header-title-lh);\n color: var(--header-text-dark);\n margin: 0;\n}\n\n.header__description {\n font-size: var(--header-body-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--header-body-lh);\n color: var(--header-text-dark);\n margin: 0;\n}\n\n/* ── CTA BUTTONS ──────────────────────────────────────────── */\n\n.header__buttons {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n width: 100%;\n align-items: stretch;\n justify-content: flex-start;\n}\n\n/* ── FLOATING VISUALS (visuals variant only) ──────────────── */\n\n.header__visual {\n position: absolute;\n z-index: 1;\n overflow: hidden;\n pointer-events: none;\n}\n\n.header__visual img,\n.header__visual > * {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n object-position: center;\n}\n\n/* Left visual: top-left corner; right visual: bottom-right corner */\n.header__visual--left {\n width: 160px;\n height: 160px;\n top: -20px;\n left: -20px;\n bottom: auto;\n right: auto;\n will-change: transform;\n}\n\n.header__visual--right {\n width: 160px;\n height: 160px;\n bottom: -20px;\n right: -20px;\n top: auto;\n left: auto;\n will-change: transform;\n}\n\n/* ============================================================\n VARIANT: DARK / DARK-SEARCH\n Dark navy bg, same centered layout as visuals/minimal, shorter\n min-height (420px mobile/tablet, 460px desktop — see the\n ≥992px media query below), light SVG grid, light text\n ============================================================ */\n\n.header--dark,\n.header--dark-search {\n background-color: var(--header-dark-bg);\n min-height: calc(var(--header-dark-min-height) + var(--header-navbar-clearance));\n}\n\n.header--dark .header__inner,\n.header--dark-search .header__inner {\n min-height: calc(var(--header-dark-min-height) + var(--header-navbar-clearance));\n}\n\n.header--dark .header__grid,\n.header--dark-search .header__grid {\n background-image: url(\"data:image/svg+xml,%3Csvg width='1440' height='540' viewBox='0 0 1440 540' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg opacity='0.5' clip-path='url%28%23clip0_3324_31317%29'%3E%3Cg opacity='0.4' clip-path='url%28%23clip1_3324_31317%29'%3E%3Cpath d='M671.699 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M767.633 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M863.535 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M959.473 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M1055.38 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M1151.31 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M1247.22 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M1343.15 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M1439.05 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M96.2773 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M0.996094 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M192.184 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M288.117 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M384.023 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M479.957 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M575.863 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M0.996094 537.896H2109.75' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M0.996094 448.315H2109.75' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M0.996094 358.751H2109.75' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M0.996094 269.188H2109.75' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M0.996094 179.608H2109.75' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M0.996094 90.022H2109.75' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M0.996094 0.462891H2109.75' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3C/g%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_3324_31317'%3E%3Crect width='1440' height='540' fill='white'/%3E%3C/clipPath%3E%3CclipPath id='clip1_3324_31317'%3E%3Crect width='1440' height='628' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: top center;\n background-size: cover;\n}\n\n.header--dark .header__overlay,\n.header--dark-search .header__overlay {\n background:\n radial-gradient(ellipse at center, var(--header-dark-bg) 0%, rgba(24, 28, 37, 0) 70%),\n linear-gradient(to right, var(--header-dark-bg) 0%, rgba(24, 28, 37, 0) 18%, rgba(24, 28, 37, 0) 82%, var(--header-dark-bg) 100%),\n linear-gradient(to bottom, var(--header-dark-bg) 0%, rgba(24, 28, 37, 0) 30%, rgba(24, 28, 37, 0) 70%, var(--header-dark-bg) 100%);\n}\n\n.header--dark .header__subtitle,\n.header--dark-search .header__subtitle,\n.header--dark .header__title,\n.header--dark-search .header__title,\n.header--dark .header__description,\n.header--dark-search .header__description {\n color: var(--header-text-light);\n}\n\n/* ── Search field (dark-search variant only) ──────────────── */\n\n.header__search {\n width: 100%;\n max-width: var(--content-width-1064);\n}\n\n.header__search .sf-wrapper {\n --field-surface-outline: var(--color-opacity-white-8);\n --field-border-default: var(--color-opacity-white-16);\n --field-border-hover: var(--color-opacity-white-24);\n --field-border-focus: var(--color-slate-50);\n --field-text-default: var(--color-slate-50);\n --field-text-focus: var(--color-slate-50);\n --field-text-placeholder: var(--color-opacity-white-48);\n --field-icon-default: var(--color-opacity-white-48);\n --field-icon-subtle: var(--color-opacity-white-48);\n}\n\n/* ============================================================\n TABLET ≥768px\n ============================================================ */\n\n@media (min-width: 768px) {\n .header__inner {\n padding: calc(var(--spacing-40) + var(--header-navbar-clearance)) var(--spacing-24) var(--spacing-40);\n align-items: center;\n }\n\n .header__content {\n align-items: center;\n text-align: center;\n }\n\n .header__text {\n align-items: center;\n }\n\n .header__buttons {\n flex-direction: row;\n align-items: center;\n justify-content: center;\n width: auto;\n }\n}\n\n/* ============================================================\n DESKTOP ≥992px\n ============================================================ */\n\n@media (min-width: 992px) {\n /* At ≥992px the navbar bar gains 2× spacing-16 of vertical padding, so its\n footprint grows beyond the bare bar height — widen the clearance to match. */\n .header--under-navbar {\n --header-navbar-clearance: calc(var(--navbar-height, 4rem) + var(--spacing-16) * 2);\n }\n\n .header__inner {\n padding: calc(var(--spacing-48) + var(--header-navbar-clearance)) var(--spacing-32) var(--spacing-48);\n position: relative;\n }\n\n .header__content {\n max-width: var(--content-width-846);\n width: 100%;\n }\n\n .header--dark,\n .header--dark-search,\n .header--dark .header__inner,\n .header--dark-search .header__inner {\n min-height: calc(var(--header-dark-min-height-desktop) + var(--header-navbar-clearance));\n }\n\n .header__buttons {\n flex-direction: row;\n width: auto;\n }\n\n /* Desktop visuals: larger, left visual top-left, right visual bottom-right */\n .header--visuals .header__visual--left {\n width: 241px;\n height: 241px;\n top: 48px;\n left: 48px;\n bottom: auto;\n right: auto;\n }\n\n .header--visuals .header__visual--right {\n width: 241px;\n height: 241px;\n bottom: 48px;\n right: 48px;\n top: auto;\n left: auto;\n }\n}\n","/* ============================================================\n STATS V2 — laurel-wrapped award badges + auto-cycling carousel\n Mirrors the Webflow `stats-carousel` reference layout while\n reusing the same animation primitives as the Default Stats.\n\n Token inheritance:\n Primitive (core) → Semantic (--stats-v2-*) → Component\n ============================================================ */\n\n:root {\n /* Section bg is transparent in the Webflow reference — only the\n carousel card has a background, so it visibly \"pops\" against\n the page. The card uses `--color-slate-75` (#f6f7f8), the\n exact value referenced in the Webflow `stats-carousel` CSS\n (`.achievements_slider-component { background-color: #f6f7f8 }`).\n `--color-slate-50` would render pure white and disappear\n against a white page, which is what we want to avoid. */\n --stats-v2-bg: transparent;\n --stats-v2-card-bg: var(--color-slate-75);\n --stats-v2-text-primary: var(--text-primary);\n\n --stats-v2-title-size: var(--typography-h2-font-size);\n --stats-v2-title-lh: var(--typography-h2-line-height);\n\n --stats-v2-desc-size: var(--typography-body-md-font-size);\n --stats-v2-desc-lh: var(--typography-body-md-line-height);\n\n /* Carousel value — SAME size for every item (active + above + below).\n The visual hierarchy in the Webflow reference comes purely from\n `scale3d(0.7)` (above/below) vs `scale3d(1)` (active), NOT from\n a font-size change. Animating font-size mid-transition produces a\n visible \"text pop\" that the live site doesn't have, so we keep\n the typography stable and let the transform do all the work.\n\n Default value (mobile): Webflow's 4rem / 4.5rem at ≤479px.\n Tablet (≥768px) and desktop (≥992px) bump it to 5xl. */\n --stats-v2-value-size: 4rem;\n --stats-v2-value-lh: 4.5rem;\n\n --stats-v2-label-size: var(--typography-body-md-font-size);\n --stats-v2-label-lh: var(--typography-body-md-line-height);\n\n --stats-v2-award-heading-size: var(--font-size-xs);\n --stats-v2-award-heading-lh: var(--line-height-xs);\n --stats-v2-award-subheading-size: 0.625rem;\n --stats-v2-award-subheading-lh: var(--line-height-xs);\n\n /* ── Carousel slot spacing ────────────────────────────────\n Vertical distance between the active stat and the\n above/below neighbours, expressed as a percentage of each\n stat's own height. This is the SAME unit Webflow ships in\n its IX2 `TRANSFORM_MOVE` `yValue` and the SAME default\n (110%) — kept as a CSS variable so designers can override\n it without touching the React file. */\n --stats-v2-slot-offset: 110%;\n}\n\n/* ── ROOT ─────────────────────────────────────────────────── */\n\n.stats-v2 {\n width: 100%;\n background-color: var(--stats-v2-bg);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n}\n\n.stats-v2__inner {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n box-sizing: border-box;\n}\n\n/* ── HEADER ───────────────────────────────────────────────── */\n\n.stats-v2__header {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n text-align: left;\n}\n\n.stats-v2__title {\n font-size: var(--stats-v2-title-size);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--stats-v2-title-lh);\n color: var(--stats-v2-text-primary);\n margin: 0;\n}\n\n.stats-v2__description {\n font-size: var(--stats-v2-desc-size);\n font-weight: var(--font-weight-regular);\n line-height: var(--stats-v2-desc-lh);\n color: var(--stats-v2-text-primary);\n margin: 0;\n}\n\n/* ── CONTENT ROW ──────────────────────────────────────────── */\n\n.stats-v2__content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-32);\n width: 100%;\n}\n\n/* ── CAROUSEL CARD ────────────────────────────────────────── */\n\n.stats-v2__card {\n background-color: var(--stats-v2-card-bg);\n /* Webflow `.achievements_slider-component` uses border-radius: 3rem\n (48px). The design system tops out at --radius-2xl (1.5rem / 24px),\n so we hardcode the reference value here to keep the card visually\n identical to the live site. */\n border-radius: 3rem;\n padding: var(--spacing-24);\n width: 100%;\n max-width: 414px;\n overflow: hidden;\n position: relative;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.stats-v2__card-track {\n position: relative;\n width: 100%;\n /* Mobile carousel area — Webflow's mobile `.achievements_slider-component`\n is 320px tall (max-width 22rem; height 20rem) with 0 vertical padding,\n so the inner track gets the full 320px. */\n height: 320px;\n overflow: visible;\n}\n\n/* ── STAT ITEM (carousel slot) ────────────────────────────── */\n\n/* Webflow positions items with `position: absolute` (no top/left)\n and lets the parent flex container's `justify-content: center;\n align-items: center` place each item's STATIC position at the\n centre of the track. The IX2 transforms then operate on that\n centred origin — so the active item is `translateY(0%)` and\n above/below are `translateY(±110%)` relative to the centre.\n\n We replicate that by parking each item at `left: 50%; top: 50%`\n and using `transform: translate(-50%, -50%)` to centre it via\n its OWN box. The slot transforms in `getSlotStyle()` then add\n on top of that base — they ONLY change the Y component and\n the scale, never touching the X centring. The base translate\n keeps a constant horizontal centring no matter what slot the\n item is in. */\n.stats-v2__stat {\n position: absolute;\n top: 50%;\n left: 50%;\n text-align: center;\n will-change: transform, opacity;\n /* Default state matches the Webflow `is-2` (active) inline\n style: `translate3d(0, 0%, 0) scale3d(1, 1, 1)` once the\n `-50%, -50%` centring is factored in. */\n transform: translate(-50%, -50%);\n opacity: 1;\n}\n\n.stats-v2__stat-value {\n display: block;\n font-family: var(--font-family-base);\n /* Same size for every item — see the comment on\n `--stats-v2-value-size` above. */\n font-size: var(--stats-v2-value-size);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--stats-v2-value-lh);\n color: var(--stats-v2-text-primary);\n /* Mirrors Webflow's `.achievements_slider-heading\n { margin-bottom: -.5rem }` — pulls the subheading up\n so the two lines sit visually closer together. */\n margin-bottom: calc(var(--spacing-8) * -1);\n}\n\n.stats-v2__stat-label {\n display: block;\n font-family: var(--font-family-base);\n font-size: var(--stats-v2-label-size);\n font-weight: var(--font-weight-regular);\n line-height: var(--stats-v2-label-lh);\n color: var(--stats-v2-text-primary);\n}\n\n/* ── FADE OVERLAYS ────────────────────────────────────────── */\n\n.stats-v2__fade {\n position: absolute;\n left: 0;\n right: 0;\n /* 8rem (128px) at every breakpoint — taller than Webflow's\n reference (5–6.75rem) so the above/below stats blend\n further into the card background before the active stat\n takes the eye. Same height for both --top and --bottom. */\n height: 8rem;\n pointer-events: none;\n z-index: 3;\n}\n\n/* Fade-out gradients use the card colour at full opacity at the\n edge and fade to a transparent version of the same colour. */\n.stats-v2__fade--top {\n top: 0;\n background: linear-gradient(180deg,\n var(--stats-v2-card-bg) 0%,\n transparent 100%);\n}\n\n.stats-v2__fade--bottom {\n bottom: 0;\n background: linear-gradient(0deg,\n var(--stats-v2-card-bg) 0%,\n transparent 100%);\n}\n\n/* ── AWARD BADGE (laurel + text) ──────────────────────────── */\n\n.stats-v2__award {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-8);\n width: 100%;\n max-width: 196px;\n color: var(--stats-v2-text-primary);\n box-sizing: border-box;\n}\n\n.stats-v2__award-text {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n gap: var(--spacing-4);\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.stats-v2__award-heading {\n font-size: var(--stats-v2-award-heading-size);\n line-height: var(--stats-v2-award-heading-lh);\n font-weight: var(--font-weight-semi-bold);\n color: var(--stats-v2-text-primary);\n}\n\n.stats-v2__award-subheading {\n font-size: var(--stats-v2-award-subheading-size);\n line-height: var(--stats-v2-award-subheading-lh);\n font-weight: var(--font-weight-regular);\n color: var(--stats-v2-text-primary);\n}\n\n.stats-v2__laurel {\n flex-shrink: 0;\n width: 32px;\n height: 84px;\n display: block;\n}\n\n.stats-v2__laurel--flip {\n transform: scaleX(-1);\n}\n\n/* ── AWARD COLUMNS (desktop only) ─────────────────────────── */\n\n.stats-v2__awards-col {\n display: none;\n}\n\n/* ── MOBILE / TABLET AWARDS GRID ──────────────────────────── */\n\n.stats-v2__awards-mobile {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--spacing-16);\n width: 100%;\n max-width: 414px;\n justify-items: center;\n}\n\n/* On very small screens (< 360px) collapse to a single column\n so each badge has the full width and doesn't overflow. */\n@media (max-width: 359px) {\n .stats-v2__awards-mobile {\n grid-template-columns: 1fr;\n }\n}\n\n/* ============================================================\n TABLET ≥768px\n ============================================================ */\n\n@media (min-width: 768px) {\n .stats-v2__header {\n align-items: center;\n text-align: center;\n max-width: var(--content-width-846);\n margin-left: auto;\n margin-right: auto;\n }\n\n .stats-v2__inner {\n gap: var(--spacing-48);\n }\n\n .stats-v2__card {\n /* Webflow `.achievements_slider-component` uses 2.5rem 2.75rem\n padding (40px / 44px). We approximate the horizontal value\n with the same 40px vertical token since the 4px difference\n is imperceptible at this scale. */\n padding: var(--spacing-40);\n /* Tablet bumps the slider heading up to ~76px to match\n Webflow's desktop `.achievements_slider-heading`\n (4.75rem font-size / 5.5rem line-height). The 5xl\n token is the closest design-system match (5rem / 5.5rem). */\n --stats-v2-value-size: var(--font-size-5xl);\n --stats-v2-value-lh: var(--line-height-5xl);\n }\n\n .stats-v2__card-track {\n /* Webflow's wrapper fills card_height - 2*40px padding =\n ~334px (when the card itself is 414×414). The track\n needs to be tall enough that translateY(±110%) of a\n ~104px tall stat doesn't poke past the edges into the\n non-faded zone. 320px gives us comfortable headroom. */\n height: 320px;\n }\n}\n\n/* ============================================================\n DESKTOP ≥992px\n Switches to the 3-column [left | card | right] layout with\n top-aligned left awards and bottom-aligned right awards.\n ============================================================ */\n\n@media (min-width: 992px) {\n .stats-v2__inner {\n padding: var(--spacing-112) var(--spacing-24);\n gap: var(--spacing-48);\n }\n\n .stats-v2__content {\n flex-direction: row;\n align-items: stretch;\n justify-content: center;\n gap: var(--spacing-24);\n }\n\n /* Square 414×414 card — same dimensions as the reference. */\n .stats-v2__card {\n width: 414px;\n max-width: none;\n height: 414px;\n padding: var(--spacing-40);\n flex-shrink: 0;\n }\n\n .stats-v2__card-track {\n height: 334px;\n }\n\n /* Award columns appear; mobile grid hides. Each column matches the\n carousel card height (414px) and stacks its 2 awards with the\n 1.75rem (28px) gap from the Webflow `.achievements_side-block`\n reference. The runtime scroll-driven parallax (see StatsV2.tsx)\n then pushes each column into its final spread position:\n - left column: justify-content: flex-start → drifts down\n - right column: justify-content: flex-end → drifts up */\n .stats-v2__awards-col {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-32);\n width: 196px;\n height: 414px;\n flex-shrink: 0;\n align-items: center;\n /* Both columns centre their badges in the resting layout, so\n that `translateY(0%)` always puts the two stacks at exactly\n the same vertical position — i.e. perfectly parallel. The\n stagger we show at rest is produced by CSS initial\n transforms below (not by flex alignment), and the parallax\n animation interpolates those initial transforms back to\n `translateY(0%)` between PARALLAX_START and PARALLAX_END.\n This makes \"parallax ends\" ≡ \"columns are parallel\",\n independent of badge content height. */\n justify-content: center;\n will-change: transform;\n }\n\n /* Initial (pre-animation) stagger. Kept in sync with\n `PARALLAX_MAX_PERCENT` in StatsV2.tsx — if you change one,\n change the other. */\n .stats-v2__awards-col--left {\n transform: translateY(-26.3%);\n }\n\n .stats-v2__awards-col--right {\n transform: translateY(26.3%);\n }\n\n .stats-v2__awards-mobile {\n display: none;\n }\n}\n","/* ============================================================\n STATS SIMPLE — horizontal grid of value + label pairs\n No carousel, no awards. Matches the reference layout:\n 4 stats in a single row, large bold value, regular label.\n ============================================================ */\n\n:root {\n --stats-simple-bg: transparent;\n --stats-simple-text-primary: var(--text-primary);\n --stats-simple-text-secondary: var(--text-secondary);\n\n --stats-simple-value-size: var(--font-size-4xl);\n --stats-simple-value-lh: var(--line-height-4xl);\n\n --stats-simple-label-size: var(--typography-body-md-font-size);\n --stats-simple-label-lh: var(--typography-body-md-line-height);\n}\n\n/* ── ROOT ─────────────────────────────────────────────────── */\n\n.stats-simple {\n width: 100%;\n background-color: var(--stats-simple-bg);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n}\n\n.stats-simple__inner {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-40) var(--spacing-24);\n box-sizing: border-box;\n}\n\n/* ── STAT ITEM ────────────────────────────────────────────── */\n\n.stats-simple__item {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n}\n\n.stats-simple__value {\n font-size: var(--stats-simple-value-size);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--stats-simple-value-lh);\n color: var(--stats-simple-text-primary);\n}\n\n.stats-simple__label {\n font-size: var(--stats-simple-label-size);\n font-weight: var(--font-weight-regular);\n line-height: var(--stats-simple-label-lh);\n color: var(--stats-simple-text-secondary);\n}\n\n/* ============================================================\n TABLET ≥768px — 4-column single row\n ============================================================ */\n\n@media (min-width: 768px) {\n .stats-simple__inner {\n grid-template-columns: repeat(4, 1fr);\n gap: var(--spacing-24);\n padding: var(--spacing-64) var(--spacing-24);\n }\n}\n\n/* ============================================================\n DESKTOP ≥992px\n ============================================================ */\n\n@media (min-width: 992px) {\n .stats-simple__inner {\n padding: var(--spacing-80) var(--spacing-24);\n }\n\n :root {\n --stats-simple-value-size: var(--font-size-4xl);\n --stats-simple-value-lh: var(--line-height-4xl);\n }\n}\n","/* ============================================================\n FEATURE SCROLL COMPONENT\n Token inheritance:\n Primitive (core) → Semantic (--fs-*) → Component styles\n\n Component tokens (--fs-*) defined in :root below:\n\n Colors\n --fs-bg var(--color-slate-50)\n --fs-text-primary var(--color-slate-1200)\n --fs-text-muted var(--color-slate-1200)\n --fs-link-color var(--color-coral-700)\n --fs-link-hover var(--color-coral-800)\n --fs-media-bg transparent\n\n Typography — font family\n --fs-font-family var(--font-family-base)\n\n Typography — section header (H2)\n --fs-header-family var(--typography-h2-font-family)\n --fs-header-size var(--typography-h2-font-size) [mobile 2.5rem → desktop 3.5rem]\n --fs-header-weight var(--typography-h2-font-weight) [800]\n --fs-header-lh var(--typography-h2-line-height) [mobile 3rem → desktop 4rem]\n\n Typography — item title (H3)\n --fs-title-family var(--typography-h3-font-family)\n --fs-title-size var(--typography-h3-font-size) [mobile 2rem → desktop 3rem]\n --fs-title-weight var(--typography-h3-font-weight) [800]\n --fs-title-lh var(--typography-h3-line-height) [mobile 2.5rem → desktop 3.5rem]\n\n Typography — body (body-md)\n --fs-body-family var(--typography-body-md-font-family)\n --fs-body-size var(--typography-body-md-font-size) [1rem]\n --fs-body-weight var(--typography-body-md-font-weight) [400]\n --fs-body-lh var(--typography-body-md-line-height) [1.5rem]\n\n Typography — link (link-md)\n --fs-link-family var(--typography-link-md-font-family)\n --fs-link-size var(--typography-link-md-font-size) [1rem]\n --fs-link-weight var(--typography-link-md-font-weight) [600]\n --fs-link-lh var(--typography-link-md-line-height) [1.5rem]\n\n Layout\n --fs-col-gap var(--spacing-112) [7rem = 112px]\n --fs-media-radius var(--radius-2xl) [1.5rem = 24px]\n --fs-mobile-radius var(--radius-2xl) [24px mobile]\n --fs-sticky-top var(--spacing-80) [80px — clears a typical nav]\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n /* Colors */\n --fs-bg: var(--color-slate-50);\n --fs-text-primary: var(--text-primary);\n --fs-text-muted: var(--text-primary);\n --fs-link-color: var(--color-coral-700);\n --fs-link-hover: var(--color-coral-800);\n --fs-media-bg: transparent;\n\n /* Typography — font family */\n --fs-font-family: var(--font-family-base);\n\n /* Typography — section header (H2) */\n --fs-header-family: var(--typography-h2-font-family);\n --fs-header-size: var(--typography-h2-font-size);\n --fs-header-weight: var(--typography-h2-font-weight);\n --fs-header-lh: var(--typography-h2-line-height);\n\n /* Typography — item title (H3) */\n --fs-title-family: var(--typography-h3-font-family);\n --fs-title-size: var(--typography-h3-font-size);\n --fs-title-weight: var(--typography-h3-font-weight);\n --fs-title-lh: var(--typography-h3-line-height);\n\n /* Typography — body */\n --fs-body-family: var(--typography-body-md-font-family);\n --fs-body-size: var(--typography-body-md-font-size);\n --fs-body-weight: var(--typography-body-md-font-weight);\n --fs-body-lh: var(--typography-body-md-line-height);\n\n /* Typography — link */\n --fs-link-family: var(--typography-link-md-font-family);\n --fs-link-size: var(--typography-link-md-font-size);\n --fs-link-weight: var(--typography-link-md-font-weight);\n --fs-link-lh: var(--typography-link-md-line-height);\n\n /* Layout */\n --fs-col-gap: var(--spacing-112);\n /* 7rem = 112px */\n --fs-media-radius: var(--radius-2xl);\n /* 1.5rem = 24px */\n --fs-mobile-radius: var(--radius-2xl);\n /* 24px on mobile */\n --fs-sticky-top: var(--spacing-80);\n /* 80px — clears a typical nav */\n}\n\n/* ── ROOT ─────────────────────────────────────────────────── */\n\n.fs {\n width: 100%;\n background-color: var(--fs-bg);\n font-family: var(--fs-font-family);\n box-sizing: border-box;\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.fs__inner {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-32);\n box-sizing: border-box;\n}\n\n/* ── SECTION HEADER ───────────────────────────────────────── */\n\n.fs__header {\n font-family: var(--fs-header-family);\n font-size: var(--fs-header-size);\n font-weight: var(--fs-header-weight);\n line-height: var(--fs-header-lh);\n color: var(--fs-text-primary);\n margin: 0;\n}\n\n/* ── DESKTOP TWO-COLUMN LAYOUT — hidden on mobile ─────────── */\n\n.fs__layout {\n display: none;\n}\n\n/* ── MOBILE STACKED LIST — visible on mobile only ─────────── */\n\n.fs__mobile-list {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-48);\n}\n\n.fs__mobile-item {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n/* ── MOBILE MEDIA ─────────────────────────────────────────── */\n\n.fs__mobile-media {\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: var(--fs-mobile-radius);\n background-color: var(--fs-media-bg);\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.fs__mobile-media img,\n.fs__mobile-media > * {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n\n/* ── SHARED ITEM TEXT ELEMENTS ────────────────────────────── */\n\n.fs__item-title {\n font-family: var(--fs-title-family);\n font-size: var(--fs-title-size);\n font-weight: var(--fs-title-weight);\n line-height: var(--fs-title-lh);\n color: var(--fs-text-primary);\n margin: 0;\n}\n\n.fs__item-desc {\n font-family: var(--fs-body-family);\n font-size: var(--fs-body-size);\n font-weight: var(--fs-body-weight);\n line-height: var(--fs-body-lh);\n color: var(--fs-text-muted);\n margin: 0;\n}\n\n.fs__item-link {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n font-family: var(--fs-link-family);\n font-size: var(--fs-link-size);\n font-weight: var(--fs-link-weight);\n line-height: var(--fs-link-lh);\n color: var(--fs-link-color);\n text-decoration: none;\n transition: color 0.2s ease;\n cursor: pointer;\n}\n\n.fs__item-link:hover {\n color: var(--fs-link-hover);\n}\n\n/* Inline SVG chevron icon */\n.fs__item-link-icon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n transition: transform 0.2s ease;\n}\n\n.fs__item-link:hover .fs__item-link-icon {\n transform: translateX(var(--spacing-4));\n}\n\n/* ============================================================\n TABLET ≥768px\n ============================================================ */\n\n@media (min-width: 768px) {\n .fs__inner {\n padding: var(--spacing-56) var(--spacing-24);\n gap: var(--spacing-40);\n }\n}\n\n/* ============================================================\n DESKTOP ≥992px\n ============================================================ */\n\n@media (min-width: 992px) {\n .fs__header {\n text-align: center;\n }\n\n .fs__inner {\n padding: var(--spacing-112) var(--spacing-24);\n gap: var(--spacing-56);\n }\n\n /* ── SHOW DESKTOP LAYOUT, HIDE MOBILE LIST ─────────────── */\n\n .fs__layout {\n display: flex;\n flex-direction: row;\n gap: var(--fs-col-gap);\n align-items: flex-start;\n width: 100%;\n /* Shared with media col + each text step — one viewport band below nav */\n --fs-step-band: calc(100svh - var(--fs-sticky-top));\n }\n\n .fs__mobile-list {\n display: none;\n }\n\n /* ── VARIANT: media-left — reverse column order ─────────── */\n\n .fs--media-left .fs__layout {\n flex-direction: row-reverse;\n }\n\n /* ── MEDIA COLUMN (outer) ─────────────────────────────────\n * Stretches to the full text column height. Sticky lives on\n * .fs__media-sticky so the sticky constraint rectangle's bottom\n * is the section end — not the outer top + one viewport band.\n */\n .fs__media-col {\n flex: 1 0 0;\n min-width: 0;\n align-self: stretch;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n }\n\n /* Sticky viewport band under nav; same vertical rhythm as text steps */\n .fs__media-sticky {\n flex: 0 0 auto;\n width: 100%;\n position: sticky;\n top: var(--fs-sticky-top);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: stretch;\n min-height: var(--fs-step-band);\n box-sizing: border-box;\n }\n\n /* Square media wrapper — crossfade container */\n .fs__media-wrap {\n width: 100%;\n aspect-ratio: 1 / 1;\n position: relative;\n border-radius: var(--fs-media-radius);\n background-color: var(--fs-media-bg);\n overflow: hidden;\n }\n\n /* Each media item stacked absolutely — crossfade via opacity */\n .fs__media-item {\n position: absolute;\n inset: 0;\n opacity: 0;\n transition: opacity 0.55s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: opacity;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .fs__media-item--active {\n opacity: 1;\n }\n\n /* Image fills the container */\n .fs__media-item img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n }\n\n /* Lottie player fills the container */\n .fs__media-item > * {\n width: 100% !important;\n height: 100% !important;\n }\n\n /* ── CONTENT COLUMN ───────────────────────────────────────\n * All steps in normal document flow — continuous scroll, every block\n * fully visible. Min-height ≈ one viewport band below nav so scroll\n * rhythm + media line up; steps can grow if copy is long.\n */\n .fs__content-col {\n flex: 1 0 0;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 0;\n }\n\n .fs__item {\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex-shrink: 0;\n margin: 0;\n min-height: var(--fs-step-band);\n gap: var(--spacing-24);\n padding-left: var(--spacing-32);\n box-sizing: border-box;\n }\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.feature-split {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.feature-split__container {\n display: flex;\n flex-direction: column;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .feature-split__container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Split layout ──────────────────────────────────────────── */\n\n.feature-split__split {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .feature-split__split {\n flex-direction: row;\n align-items: center;\n gap: 8rem;\n /* 128px — no token at this scale */\n }\n\n /* Reverse column order when image is on the left */\n .feature-split__split--image-left {\n flex-direction: row-reverse;\n }\n}\n\n/* ── Content column ────────────────────────────────────────── */\n\n.feature-split__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .feature-split__content {\n gap: 1.25rem;\n /* 20px — no token at this scale */\n width: 540px;\n flex-shrink: 0;\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.feature-split__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Description ───────────────────────────────────────────── */\n\n.feature-split__description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Image column ──────────────────────────────────────────── */\n\n.feature-split__image-wrapper {\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: var(--radius-2xl);\n /* 24px mobile */\n overflow: hidden;\n flex-shrink: 0;\n position: relative;\n background-color: transparent;\n}\n\n@media (min-width: 992px) {\n .feature-split__image-wrapper {\n flex: 1 0 0;\n width: auto;\n border-radius: 2rem;\n /* 32px desktop — no exact token */\n }\n}\n\n.feature-split__image {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n","/* ============================================================\n STICKY STACKED CARDS COMPONENT\n Token inheritance:\n Primitive (core) → Semantic (--ssc-*) → Component styles\n\n Semantic tokens used:\n --ssc-bg var(--color-slate-50) [white — card-1 gray is visible against it]\n --ssc-font-family var(--font-family-base) [Inter, sans-serif]\n\n Section header:\n --ssc-header-color var(--color-slate-1200) [dark text on white bg]\n --ssc-header-size var(--typography-h2-font-size) [mobile 2.5rem → desktop 3.5rem]\n --ssc-header-lh var(--typography-h2-line-height) [mobile 3rem → desktop 4rem]\n --ssc-header-weight var(--typography-h2-font-weight) [800]\n\n Card themes:\n --ssc-card-light-bg var(--color-slate-75) [#f6f7f8 — matches Figma card 1]\n --ssc-card-light-text var(--color-slate-1200)\n --ssc-card-coral-bg var(--color-coral-700) [#ff444f — matches Figma card 2]\n --ssc-card-coral-text var(--color-slate-50)\n --ssc-card-dark-bg var(--color-slate-1200) [#181c25 — matches Figma card 3]\n --ssc-card-dark-text var(--color-slate-50)\n\n Typography — card title (H3):\n --ssc-title-size var(--typography-h3-font-size) [mobile 2rem → desktop 3rem]\n --ssc-title-lh var(--typography-h3-line-height) [mobile 2.5rem → desktop 3.5rem]\n --ssc-title-weight var(--typography-h3-font-weight) [800]\n\n Typography — body copy:\n --ssc-body-size var(--typography-body-md-font-size) [1rem]\n --ssc-body-lh var(--typography-body-md-line-height) [1.5rem]\n --ssc-body-weight var(--typography-body-md-font-weight) [400]\n\n Layout:\n --ssc-card-radius var(--radius-2xl) [1.5rem = 24px]\n --ssc-content-gap var(--spacing-24) [24px]\n --ssc-sticky-top var(--spacing-80) [80px — clears a typical fixed nav]\n --ssc-peek-offset var(--spacing-16) [16px gap so previous cards peek out]\n --ssc-card-min-height 31.25rem [500px fixed card height]\n --ssc-img-height-mobile 21rem [~336px, matches Figma mobile]\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n /* Section background — white so card-1's gray is visible */\n --ssc-bg: var(--color-slate-50);\n\n /* Font family */\n --ssc-font-family: var(--font-family-base);\n\n /* Section header color */\n --ssc-header-color: var(--text-primary);\n\n /* Card theme — light (card 1) */\n --ssc-card-light-bg: var(--color-slate-75);\n --ssc-card-light-text: var(--color-slate-1200);\n\n /* Card theme — coral (card 2) */\n --ssc-card-coral-bg: var(--color-coral-700);\n --ssc-card-coral-text: var(--color-slate-50);\n\n /* Card theme — dark (card 3) */\n --ssc-card-dark-bg: var(--color-slate-1200);\n --ssc-card-dark-text: var(--color-slate-50);\n\n /* Typography — section header (H2) */\n --ssc-header-size: var(--typography-h2-font-size);\n --ssc-header-lh: var(--typography-h2-line-height);\n --ssc-header-weight: var(--typography-h2-font-weight);\n\n /* Typography — card title (H3) */\n --ssc-title-size: var(--typography-h3-font-size);\n --ssc-title-lh: var(--typography-h3-line-height);\n --ssc-title-weight: var(--typography-h3-font-weight);\n\n /* Typography — body copy */\n --ssc-body-size: var(--typography-body-md-font-size);\n --ssc-body-lh: var(--typography-body-md-line-height);\n --ssc-body-weight: var(--typography-body-md-font-weight);\n\n /* Layout */\n --ssc-card-radius: var(--radius-2xl);\n /* 24px */\n --ssc-content-gap: var(--spacing-24);\n --ssc-sticky-top: var(--spacing-80);\n /* 80px */\n --ssc-peek-offset: var(--spacing-16);\n /* 16px per card peek */\n --ssc-card-min-height: 31.25rem;\n /* 500px fixed card height — desktop */\n --ssc-img-height-mobile: 21rem;\n /* ~336px mobile */\n}\n\n/* ── ROOT ─────────────────────────────────────────────────── */\n\n.ssc {\n width: 100%;\n background-color: var(--ssc-bg);\n font-family: var(--ssc-font-family);\n box-sizing: border-box;\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.ssc__inner {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-48);\n box-sizing: border-box;\n}\n\n/* ── SECTION HEADER ───────────────────────────────────────── */\n\n.ssc__header {\n font-size: var(--ssc-header-size);\n font-weight: var(--ssc-header-weight);\n line-height: var(--ssc-header-lh);\n color: var(--ssc-header-color);\n margin: 0;\n}\n\n/* ── CARD TRACK — all breakpoints ────────────────────────────\n *\n * display:block at every size so position:sticky on the cards\n * anchors to the page scroll container, not a flex/grid context.\n * NEVER add overflow:hidden/auto — it breaks sticky everywhere.\n *\n * padding-bottom — serves two purposes:\n * 1. Guarantees enough scroll distance for the full stacking\n * sequence to complete (all 3 cards reach their sticky tops).\n * 2. Once the user scrolls past the track's bottom edge, CSS\n * sticky mechanics release all cards simultaneously so they\n * exit the viewport together as a single block.\n */\n\n.ssc__track {\n display: block;\n padding-bottom: var(--ssc-img-height-mobile);\n /* 21rem ≈ 336px — mobile dwell + exit room */\n}\n\n/* ── CARD — sticky stacking active at all breakpoints ────────\n *\n * position:sticky + scale transform apply on mobile, tablet,\n * and desktop alike. The two-column grid layout is added only\n * at ≥992px (see desktop media query).\n *\n * top and z-index are set via inline style in the TSX so the\n * peek-offset maths scales with any number of cards.\n * --card-scale is updated by the passive scroll handler.\n */\n\n.ssc__card {\n border-radius: var(--ssc-card-radius);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n /* mobile: text on top, image below */\n box-sizing: border-box;\n width: 100%;\n\n /* 16px gap between cards */\n margin-bottom: var(--ssc-peek-offset);\n\n /* Sticky stacking — all sizes */\n position: sticky;\n transform: scale(var(--card-scale, 1));\n transform-origin: top center;\n will-change: transform;\n transition: transform 0.12s ease-out;\n}\n\n.ssc__card:last-child {\n margin-bottom: 0;\n}\n\n/* ── CARD THEMES ──────────────────────────────────────────── */\n\n.ssc__card--light {\n background-color: var(--ssc-card-light-bg);\n color: var(--ssc-card-light-text);\n}\n\n.ssc__card--coral {\n background-color: var(--ssc-card-coral-bg);\n color: var(--ssc-card-coral-text);\n}\n\n.ssc__card--dark {\n background-color: var(--ssc-card-dark-bg);\n color: var(--ssc-card-dark-text);\n}\n\n/* ── CARD CONTENT (text block) ────────────────────────────── */\n\n.ssc__card-content {\n display: flex;\n flex-direction: column;\n gap: var(--ssc-content-gap);\n padding: var(--spacing-32);\n}\n\n/* ── CARD TITLE ───────────────────────────────────────────── */\n\n.ssc__card-title {\n font-size: var(--ssc-title-size);\n font-weight: var(--ssc-title-weight);\n line-height: var(--ssc-title-lh);\n color: inherit;\n margin: 0;\n}\n\n/* ── CARD DESCRIPTION ─────────────────────────────────────── */\n\n.ssc__card-desc {\n font-size: var(--ssc-body-size);\n font-weight: var(--ssc-body-weight);\n line-height: var(--ssc-body-lh);\n color: inherit;\n margin: 0;\n}\n\n/* ── CARD IMAGE (mobile) ──────────────────────────────────── */\n\n.ssc__card-image {\n position: relative;\n height: var(--ssc-img-height-mobile);\n flex-shrink: 0;\n overflow: hidden;\n background-color: transparent;\n}\n\n.ssc__card-image img {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n\n/* ============================================================\n TABLET ≥768px\n ============================================================ */\n\n@media (min-width: 768px) {\n .ssc__inner {\n padding: var(--spacing-56) var(--spacing-24);\n gap: var(--spacing-64);\n }\n\n .ssc__header {\n text-align: center;\n }\n}\n\n/* ============================================================\n DESKTOP ≥992px — sticky stacking mechanic\n ============================================================ */\n\n@media (min-width: 992px) {\n .ssc__inner {\n padding: var(--spacing-112) var(--spacing-24);\n gap: var(--spacing-80);\n }\n\n /* Desktop needs more dwell room — one full card height */\n .ssc__track {\n padding-bottom: var(--ssc-card-min-height);\n /* 40rem = 640px */\n }\n\n /* ── Card: switch to 50/50 grid on desktop ─────────────────\n * Sticky positioning and scale transform are already set in\n * the base styles (all breakpoints). Here we only add the\n * two-column layout and the desktop minimum card height.\n */\n .ssc__card {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: 1fr;\n min-height: var(--ssc-card-min-height);\n }\n\n /* ── Content: left cell, text top-left ─────────────────── */\n .ssc__card-content {\n padding: var(--spacing-32);\n justify-content: flex-start;\n align-self: stretch;\n }\n\n /* ── Image: right cell, fills full cell height ──────────── */\n .ssc__card-image {\n height: auto;\n min-height: 100%;\n align-self: stretch;\n }\n}","/* ── Layout — Figma-specific dimensions (local to this template) ── */\n\n/*\n * Grid-cell sizing strategy\n * ─────────────────────────\n * --ctab-grid-cell drives both the background grid repeat AND the avatar size.\n * Because --ctab-avatar-size = --ctab-grid-cell, every avatar occupies exactly\n * one grid cell — left and right edges always land on grid lines.\n *\n * Mobile / tablet: fluid calc so the stage width is always an exact integer\n * multiple of the cell. ODD column counts guarantee that the centred avatars\n * (left: calc(50% - avatar/2)) collapse to an integer column (e.g. col 2 of 5),\n * putting both their edges on grid lines too.\n *\n * < 480px → 5 cols → centre col 2\n * 480-767px → 7 cols → centre col 3\n * 768-991px → 11 cols → centre col 5\n *\n * Desktop: fixed 96 px — the stage is max-width 1280 px and background-position\n * is shifted dynamically so grid lines coincide with stage x = 0.\n */\n\n:root {\n --ctab-max-width: var(--content-width-1280);\n /* 11 rows: 1 cell top + 9 cell avatar span + 1 cell bottom = equal spacing */\n --ctab-stage-height: calc(11 * var(--ctab-grid-cell));\n --ctab-hero-max-width: 90%;\n --ctab-avatar-radius: var(--radius-xl);\n /* 5 odd columns, fluid — stage always = 5 × grid-cell */\n --ctab-grid-cell: calc(100vw / 5);\n --ctab-avatar-size: var(--ctab-grid-cell);\n /* Section = stage — breathing room comes from avatar row offsets inside the stage */\n --ctab-section-min-height: var(--ctab-stage-height);\n}\n\n/* ── Mobile Large (480px – 767px) ───────────────────────────── */\n@media (min-width: 480px) and (max-width: 767px) {\n :root {\n --ctab-hero-max-width: 80%;\n /* 7 odd columns — stage always = 7 × grid-cell */\n --ctab-grid-cell: calc(100vw / 7);\n }\n}\n\n/* ── Tablet (768px – 991px) ─────────────────────────────────── */\n@media (min-width: 768px) and (max-width: 991px) {\n :root {\n --ctab-stage-height: 48rem;\n /* 768px */\n --ctab-hero-max-width: 70%;\n --ctab-avatar-radius: var(--radius-2xl);\n /* 11 odd columns — stage always = 11 × grid-cell */\n --ctab-grid-cell: calc(100vw / 11);\n /* section = stage; breathing room comes from avatar row offsets inside the stage */\n --ctab-section-min-height: var(--ctab-stage-height);\n }\n}\n\n/* ── Desktop (992px+) ───────────────────────────────────────── */\n@media (min-width: 992px) {\n :root {\n --ctab-stage-height: 42.5rem;\n /* 680px — compact desktop stage */\n --ctab-hero-max-width: var(--content-width-846);\n --ctab-avatar-radius: var(--radius-2xl);\n --ctab-grid-cell: 6rem;\n /* 96px fixed, no token lookup */\n --ctab-avatar-size: 6rem;\n --ctab-section-min-height: 42.5rem;\n }\n\n /* Default variant — 9-row stage (9 × 96px = 864px).\n * Stage centre = 432px = row 4 centre → hero aligns with mid-left/right avatars.\n * 1-cell breathing room at top (row 1) and bottom (864 − 768 = 96px). */\n .ctab:not(.ctab--compact) {\n --ctab-stage-height: 54rem;\n /* 9 × 96px = 864px */\n --ctab-section-min-height: 54rem;\n }\n}\n\n/* ── SECTION ─────────────────────────────────────────────────── */\n\n.ctab {\n position: relative;\n width: 100%;\n min-height: var(--ctab-section-min-height);\n background-color: var(--color-coral-700);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n overflow: hidden;\n}\n\n/* ── BACKGROUND GRID ─────────────────────────────────────────── */\n\n.ctab__grid {\n position: absolute;\n inset: 0;\n pointer-events: none;\n /* Fade the grid out on all four edges */\n -webkit-mask-image:\n linear-gradient(to right, transparent 0%, black 20%, black 80%, transparent 100%),\n linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%);\n -webkit-mask-composite: destination-in;\n mask-image:\n linear-gradient(to right, transparent 0%, black 20%, black 80%, transparent 100%),\n linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%);\n mask-composite: intersect;\n background-image:\n repeating-linear-gradient(to right,\n transparent 0,\n transparent calc(var(--ctab-grid-cell) - 1px),\n var(--color-opacity-white-16) calc(var(--ctab-grid-cell) - 1px),\n var(--color-opacity-white-16) var(--ctab-grid-cell)),\n repeating-linear-gradient(to bottom,\n transparent 0,\n transparent calc(var(--ctab-grid-cell) - 1px),\n var(--color-opacity-white-16) calc(var(--ctab-grid-cell) - 1px),\n var(--color-opacity-white-16) var(--ctab-grid-cell));\n /*\n * Shift the grid so its origin aligns with the stage's top-left corner.\n * Mobile/tablet: inner has 24px horizontal padding, no vertical offset.\n * Desktop: inner is horizontally centred (max-width 80rem) and the\n * stage is vertically centred inside the taller section.\n */\n /*\n * Y is shifted back by (cell − 1px) so the repeating-gradient's first\n * white band lands exactly at y = 0 (top edge of the section).\n * Without this, the first horizontal line appears at y = cell − 1,\n * leaving the topmost row with no top border.\n */\n background-position: 0px calc(1px - var(--ctab-grid-cell));\n}\n\n@media (min-width: 992px) {\n .ctab__grid {\n /*\n * X: clamp at 0 — below max-width the inner fills the viewport (no\n * margin), so the grid origin stays at section x = 0. Above max-width\n * the inner is centred so we shift by the margin amount.\n * Y: same (cell − 1px) shift so a line appears at the top edge.\n */\n background-position:\n max(0px, calc((100vw - var(--ctab-max-width)) / 2)) calc(1px - var(--ctab-grid-cell));\n }\n}\n\n/* ── INNER WRAPPER ───────────────────────────────────────────── */\n\n.ctab__inner {\n position: relative;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: var(--ctab-section-min-height);\n max-width: var(--ctab-max-width);\n margin: 0 auto;\n padding: 0 var(--spacing-24);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .ctab__inner {\n padding: 0;\n }\n}\n\n/* ── STAGE — avatar coordinate space ─────────────────────────── */\n\n.ctab__stage {\n position: relative;\n width: 100%;\n height: var(--ctab-stage-height);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* ── HERO — headline + CTA ───────────────────────────────────── */\n\n.ctab__hero {\n position: relative;\n z-index: 2;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-16);\n width: var(--ctab-hero-max-width);\n max-width: 100%;\n text-align: center;\n padding: var(--spacing-48) 0;\n}\n\n/* CTA fills the hero stage below desktop only. The anchor wrapper (present\n when a href is supplied) needs the same treatment as the button itself,\n since align-items: center never stretches auto-sized flex items. */\n@media (max-width: 991px) {\n .ctab__hero a,\n .ctab__hero .button {\n width: 100%;\n }\n}\n\n/* ── HEADLINE ────────────────────────────────────────────────── */\n\n.ctab__headline {\n margin: 0;\n font-family: var(--typography-h1-font-family);\n font-size: var(--typography-h1-font-size);\n font-weight: var(--typography-h1-font-weight);\n line-height: var(--typography-h1-line-height);\n color: var(--color-slate-50);\n}\n\n\n/* ── AVATAR ──────────────────────────────────────────────────── */\n\n.ctab__avatar {\n position: absolute;\n width: var(--ctab-avatar-size);\n height: var(--ctab-avatar-size);\n border-radius: var(--ctab-avatar-radius);\n overflow: hidden;\n box-shadow: var(--shadow-md);\n flex-shrink: 0;\n left: var(--av-d-left, auto);\n right: var(--av-d-right, auto);\n top: var(--av-d-top, auto);\n}\n\n.ctab__avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n border-radius: var(--ctab-avatar-radius);\n}\n\n/* ── Below desktop — use mobile avatar positions ─────────────── */\n\n@media (max-width: 991px) {\n .ctab__avatar {\n left: var(--av-m-left, auto);\n right: var(--av-m-right, auto);\n top: var(--av-m-top, auto);\n }\n\n .ctab__avatar--desktop-only {\n display: none;\n }\n}","/* ── Layout tokens (local to this template) ─────────────────── */\n\n:root {\n --navbar-height: 4rem;\n /* 64px */\n --navbar-max-width: 84rem;\n /* 1344px */\n --navbar-pill-radius: 80px;\n --navbar-dropdown-w: 60rem;\n /* 960px */\n --navbar-dropdown-radius: var(--spacing-32);\n --navbar-z-base: 100;\n --navbar-z-dropdown: 101;\n --navbar-z-drawer: 200;\n --navbar-z-backdrop: 199;\n}\n\n/* ── SECTION ─────────────────────────────────────────────────── */\n\n.navbar {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n z-index: var(--navbar-z-base);\n padding: var(--spacing-16) 0;\n font-family: var(--font-family-base);\n box-sizing: border-box;\n transition: background-color 200ms ease, backdrop-filter 200ms ease, box-shadow 200ms ease;\n}\n\n/* On scroll — pill becomes white, text becomes dark */\n.navbar--dark.navbar--scrolled .navbar__pill,\n.navbar--light.navbar--scrolled .navbar__pill {\n background-color: rgba(255, 255, 255, 0.96);\n backdrop-filter: blur(16px);\n -webkit-backdrop-filter: blur(16px);\n}\n\n.navbar--dark.navbar--scrolled .navbar__nav-item,\n.navbar--light.navbar--scrolled .navbar__nav-item {\n color: var(--color-slate-1200);\n}\n\n.navbar--dark.navbar--scrolled .navbar__nav-item:hover,\n.navbar--light.navbar--scrolled .navbar__nav-item:hover {\n background-color: var(--color-opacity-slate-8);\n}\n\n/* Globe icon: reset to dark since pill is now white */\n.navbar--dark.navbar--scrolled .navbar__pill .navbar__lang-globe {\n filter: none;\n}\n\n/* Language label: match nav item dark text */\n.navbar--dark.navbar--scrolled .navbar__pill .navbar__nav-item {\n color: var(--color-slate-1200);\n}\n\n/* ── BAR — logo | pill | actions ─────────────────────────────── */\n\n.navbar__bar {\n position: relative;\n z-index: 201;\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n align-items: center;\n height: var(--navbar-height);\n padding: 0 var(--spacing-24);\n box-sizing: border-box;\n}\n\n/* ── LOGO ────────────────────────────────────────────────────── */\n\n.navbar__logo {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n text-decoration: none;\n padding-bottom: var(--spacing-4);\n /* optical baseline alignment */\n}\n\n.navbar__logo img {\n height: 1.5rem;\n /* 24px */\n width: auto;\n display: block;\n}\n\n/* ── NAV CENTER — full-width layer that centres the pill and\n anchors the dropdown relative to the full bar width ────────── */\n\n.navbar__nav-center {\n position: absolute;\n left: var(--spacing-24);\n right: var(--spacing-24);\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n}\n\n.navbar__nav-center>* {\n pointer-events: auto;\n}\n\n/* ── PILL ────────────────────────────────────────────────────── */\n\n.navbar__pill {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n padding: var(--spacing-8);\n border-radius: var(--navbar-pill-radius);\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n box-shadow: var(--shadow-sm);\n transition: background-color 400ms cubic-bezier(.65, 0, .35, 1),\n backdrop-filter 400ms cubic-bezier(.65, 0, .35, 1),\n box-shadow 400ms cubic-bezier(.65, 0, .35, 1);\n}\n\n.navbar--dark .navbar__pill {\n background-color: var(--color-opacity-white-24);\n}\n\n.navbar--light .navbar__pill {\n background-color: var(--color-opacity-white-88);\n}\n\n/* ── NAV GROUP — items inside the pill ───────────────────────── */\n\n.navbar__nav-group {\n display: flex;\n align-items: center;\n padding: 0;\n}\n\n/* ── NAV ITEM — each pill button ─────────────────────────────── */\n\n.navbar__nav-item {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n padding: var(--spacing-8) var(--spacing-12);\n height: 2.5rem;\n /* 40px */\n border: none;\n border-radius: var(--radius-full);\n background: transparent;\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n white-space: nowrap;\n text-decoration: none;\n cursor: pointer;\n transition: background-color 140ms ease;\n box-sizing: border-box;\n}\n\n.navbar--dark .navbar__nav-item {\n color: var(--color-slate-50);\n}\n\n.navbar--light .navbar__nav-item {\n color: var(--color-slate-1200);\n}\n\n.navbar--dark .navbar__nav-item:hover,\n.navbar--dark .navbar__nav-item--open {\n background-color: var(--color-opacity-white-8);\n}\n\n.navbar--light .navbar__nav-item:hover,\n.navbar--light .navbar__nav-item--open {\n background-color: var(--color-opacity-slate-8);\n}\n\n/* ── NAV ITEM CHEVRON ────────────────────────────────────────── */\n\n.navbar__nav-item__chevron {\n flex-shrink: 0;\n transition: transform 200ms ease;\n}\n\n.navbar__nav-item--open .navbar__nav-item__chevron {\n transform: rotate(180deg);\n}\n\n/* ── LANGUAGE BUTTON ─────────────────────────────────────────── */\n\n/* Shares all styles with .navbar__nav-item — only globe icon filter needed here */\n.navbar--dark .navbar__pill .navbar__lang-globe {\n filter: brightness(0) invert(1);\n}\n\n/* ── LANGUAGE DROPDOWN WRAPPER ───────────────────────────────── */\n\n.navbar__lang-wrapper {\n position: relative;\n}\n\n/* ── LANGUAGE DROPDOWN (desktop) ─────────────────────────────── */\n\n.navbar__lang-dropdown {\n position: absolute;\n top: calc(100% + var(--spacing-8));\n left: calc(50% - 352px);\n width: 704px;\n background-color: var(--color-slate-50);\n border: 1px solid var(--color-slate-100);\n border-radius: var(--navbar-dropdown-radius);\n box-shadow:\n 0px 8px 16px 2px rgba(0, 0, 0, 0.04),\n 0px -14px 16px 2px rgba(0, 0, 0, 0.02);\n padding: var(--spacing-24) var(--spacing-32);\n z-index: var(--navbar-z-dropdown);\n box-sizing: border-box;\n overflow: hidden;\n}\n\n.navbar__lang-dropdown-grid {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n grid-auto-flow: column;\n grid-template-rows: repeat(var(--lang-rows, 7), auto);\n gap: 0;\n}\n\n.navbar__lang-dropdown-item {\n display: block;\n width: 100%;\n padding: var(--spacing-8) 0;\n border: none;\n background: transparent;\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-1200);\n text-align: left;\n cursor: pointer;\n transition: color 120ms ease;\n box-sizing: border-box;\n white-space: nowrap;\n}\n\n.navbar__lang-dropdown-item:hover {\n color: #ff444f;\n}\n\n.navbar__lang-dropdown-item--active {\n color: #ff444f;\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* ── MOBILE DRAWER LANGUAGE PANEL (full-screen slide-in) ─────── */\n\n.navbar__drawer-lang-panel {\n position: absolute;\n inset: 0;\n background-color: var(--color-slate-50);\n display: flex;\n flex-direction: column;\n padding: 0 var(--spacing-24);\n overflow-y: auto;\n z-index: 1;\n}\n\n.navbar__drawer-lang-back {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n width: 2.5rem;\n height: 2.5rem;\n border: none;\n background: transparent;\n color: var(--color-slate-1200);\n cursor: pointer;\n padding: 0;\n margin: var(--spacing-8) 0;\n flex-shrink: 0;\n}\n\n.navbar__drawer-lang-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 0;\n padding: var(--spacing-8) 0 var(--spacing-16);\n}\n\n.navbar__drawer-lang-item {\n display: block;\n width: 100%;\n padding: var(--spacing-12) 0;\n border: none;\n background: transparent;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-1200);\n text-align: left;\n cursor: pointer;\n transition: color 120ms ease;\n}\n\n.navbar__drawer-lang-item:hover {\n color: #ff444f;\n}\n\n.navbar__drawer-lang-item--active {\n color: #ff444f;\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* ── ACTIONS — right-side CTA buttons ───────────────────────── */\n\n.navbar__actions {\n grid-column: 3;\n grid-row: 1;\n justify-self: end;\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n/* ── PILL LOGO (inside pill) ─────────────────────────────────── */\n\n.navbar__pill-logo {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n text-decoration: none;\n overflow: hidden;\n max-width: 0;\n opacity: 0;\n transition: max-width 400ms cubic-bezier(.65, 0, .35, 1), opacity 300ms cubic-bezier(.65, 0, .35, 1);\n}\n\n.navbar__pill-logo img {\n padding-left: var(--spacing-8);\n padding-bottom: var(--spacing-4);\n}\n\n.navbar__pill-logo img {\n height: 1.5rem;\n width: auto;\n display: block;\n flex-shrink: 0;\n}\n\n/* ── PILL ACTIONS (inside pill) ──────────────────────────────── */\n\n.navbar__pill-actions {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n flex-shrink: 0;\n overflow: hidden;\n white-space: nowrap;\n max-width: 0;\n opacity: 0;\n transition: max-width 400ms cubic-bezier(.65, 0, .35, 1), opacity 300ms cubic-bezier(.65, 0, .35, 1);\n}\n\n/* ── MOBILE ACTIONS — login + hamburger ─────────────────────── */\n\n.navbar__mobile-actions {\n grid-column: 3;\n grid-row: 1;\n justify-self: end;\n display: none;\n /* shown only below 992px */\n align-items: center;\n gap: var(--spacing-8);\n}\n\n.navbar__mobile-trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n border: none;\n background: transparent;\n cursor: pointer;\n padding: 0;\n}\n\n.navbar--dark .navbar__mobile-trigger {\n color: var(--color-slate-50);\n}\n\n.navbar--light .navbar__mobile-trigger {\n color: var(--color-slate-1200);\n}\n\n/* ── DESKTOP DROPDOWN ────────────────────────────────────────── */\n\n.navbar__dropdown {\n position: absolute;\n top: calc(100% + var(--spacing-8));\n left: calc(50% - var(--navbar-dropdown-w) / 2);\n width: var(--navbar-dropdown-w);\n background-color: var(--color-slate-50);\n border: 1px solid var(--color-slate-100);\n border-radius: var(--navbar-dropdown-radius);\n box-shadow:\n 0px 8px 16px 2px rgba(0, 0, 0, 0.04),\n 0px -14px 16px 2px rgba(0, 0, 0, 0.02);\n display: flex;\n overflow: hidden;\n z-index: var(--navbar-z-dropdown);\n}\n\n.navbar__dropdown-inner {\n display: flex;\n flex: 1;\n min-width: 0;\n min-height: 22.8rem;\n overflow: hidden;\n}\n\n.navbar__dropdown-left {\n display: grid;\n grid-template-columns: repeat(2, 12.375rem);\n /* 2 × 198px columns */\n gap: var(--spacing-16) 1.25rem;\n /* 16px row gap, 20px col gap */\n padding: var(--spacing-24) var(--spacing-32);\n flex-shrink: 0;\n align-content: start;\n}\n\n.navbar__dropdown-right {\n flex: 1 0 0;\n /* fills remaining space */\n min-width: 0;\n padding: var(--spacing-8);\n}\n\n/* ── DROPDOWN COLUMN ─────────────────────────────────────────── */\n\n.navbar__dropdown-col {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n flex-shrink: 0;\n width: 12.375rem;\n /* 198px — Figma */\n align-self: start;\n /* don't stretch to column height — hug content */\n}\n\n.navbar__dropdown-col-list {\n display: flex;\n flex-direction: column;\n gap: 0;\n}\n\n.navbar__dropdown-col-title {\n display: block;\n padding: var(--spacing-8) 0;\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--line-height-md);\n color: var(--color-opacity-slate-48);\n margin: 0;\n}\n\n/* ── DROPDOWN LINK ───────────────────────────────────────────── */\n\n.navbar__dropdown-link {\n display: flex;\n align-items: center;\n gap: var(--spacing-4);\n height: 2rem;\n padding: var(--spacing-4) 0;\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-1200);\n text-decoration: none;\n white-space: nowrap;\n transition: color 120ms ease;\n}\n\n.navbar__dropdown-link:hover {\n color: var(--link-coral-color);\n}\n\n.navbar__dropdown-link svg {\n flex-shrink: 0;\n opacity: 0;\n transition: opacity 120ms ease, transform 120ms ease;\n transform: translateX(-4px);\n}\n\n.navbar__dropdown-link:hover svg {\n opacity: 1;\n transform: translateX(0);\n}\n\n/* ── DROPDOWN FEATURE CARD ───────────────────────────────────── */\n\n.navbar__dropdown-feature {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n gap: var(--spacing-16);\n width: 100%;\n height: 100%;\n border-radius: var(--radius-2xl);\n background-color: var(--color-slate-700);\n background-size: cover;\n background-position: center;\n padding: var(--spacing-24);\n color: var(--color-slate-50);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n.navbar__dropdown-feature-overlay {\n position: absolute;\n inset: 0;\n background: linear-gradient(to bottom, rgba(24, 28, 37, 0) 0%, rgba(24, 28, 37, 0.92) 100%);\n border-radius: var(--radius-2xl);\n pointer-events: none;\n}\n\n.navbar__dropdown-feature-img {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: var(--radius-2xl);\n pointer-events: none;\n}\n\n.navbar__dropdown-feature-content {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.navbar__dropdown-feature-title {\n margin: 0;\n font-size: var(--font-size-xl);\n /* 28px at desktop */\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--line-height-xl);\n /* 36px at desktop */\n color: var(--color-slate-50);\n}\n\n.navbar__dropdown-feature-desc {\n margin: 0;\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-50);\n}\n\n.navbar__dropdown-feature-cta {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-semi-bold);\n line-height: 1;\n color: var(--color-slate-50);\n text-decoration: none;\n cursor: pointer;\n transition: gap 120ms ease;\n}\n\n.navbar__dropdown-feature-cta:hover {\n gap: var(--spacing-12);\n}\n\n/* ── MOBILE DRAWER ───────────────────────────────────────────── */\n\n/* Clipping wrapper: prevents the drawer from showing above the bar\n during open/close animation */\n.navbar__drawer-clip {\n position: fixed;\n top: var(--navbar-height);\n left: 0;\n right: 0;\n bottom: 0;\n overflow: hidden;\n z-index: var(--navbar-z-drawer);\n pointer-events: none;\n}\n\n.navbar__drawer {\n position: absolute;\n inset: 0;\n background-color: var(--color-slate-50);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n font-family: var(--font-family-base);\n box-sizing: border-box;\n pointer-events: all;\n}\n\n/* ── DRAWER HEADER ───────────────────────────────────────────── */\n\n.navbar__drawer-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 4rem;\n padding: 0 var(--spacing-16);\n flex-shrink: 0;\n border-bottom: 1px solid var(--color-slate-100);\n}\n\n.navbar__drawer-logo img {\n height: 1.5rem;\n width: auto;\n display: block;\n}\n\n.navbar__drawer-close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n border: none;\n background: transparent;\n color: var(--color-slate-1200);\n cursor: pointer;\n padding: 0;\n}\n\n/* ── DRAWER NAV LIST ─────────────────────────────────────────── */\n\n.navbar__drawer-nav {\n display: flex;\n flex-direction: column;\n padding: 0 var(--spacing-24);\n flex: 1;\n}\n\n/* ── DRAWER ACCORDION ITEM ───────────────────────────────────── */\n\n.navbar__drawer-item {\n display: flex;\n flex-direction: column;\n}\n\n.navbar__drawer-trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: 3.5rem;\n /* 56px */\n padding: 0;\n border: none;\n border-radius: 0;\n background: transparent;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-1200);\n text-align: left;\n cursor: pointer;\n}\n\n.navbar__drawer-trigger--open {\n background: transparent;\n}\n\n.navbar__drawer-trigger__chevron {\n flex-shrink: 0;\n color: var(--color-slate-1200);\n transition: transform 200ms ease;\n}\n\n.navbar__drawer-trigger--open .navbar__drawer-trigger__chevron {\n transform: rotate(180deg);\n}\n\n/* ── DRAWER ACCORDION PANEL ──────────────────────────────────── */\n\n.navbar__drawer-panel {\n overflow: hidden;\n}\n\n.navbar__drawer-panel-inner {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n padding: var(--spacing-8) 0 var(--spacing-16);\n background-color: var(--color-slate-50);\n}\n\n.navbar__drawer-panel-cols {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-16);\n}\n\n.navbar__drawer-panel-col {\n display: flex;\n flex-direction: column;\n}\n\n.navbar__drawer-col-section {\n display: flex;\n flex-direction: column;\n}\n\n.navbar__drawer-col-title {\n display: block;\n padding: var(--spacing-8) 0;\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--line-height-md);\n color: var(--color-opacity-slate-48);\n margin: 0;\n}\n\n.navbar__drawer-col-links {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-4);\n}\n\n.navbar__drawer-link {\n display: block;\n padding: var(--spacing-4) 0;\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-1200);\n text-decoration: none;\n}\n\n/* ── DRAWER FEATURE CARD (mobile) ────────────────────────────── */\n\n.navbar__drawer-feature {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n gap: var(--spacing-16);\n border-radius: var(--radius-2xl);\n background-color: var(--color-slate-700);\n background-size: cover;\n background-position: center;\n padding: var(--spacing-24);\n color: var(--color-slate-50);\n overflow: hidden;\n min-height: 14.5rem;\n /* 232px — matches Figma mobile feature slot */\n box-sizing: border-box;\n}\n\n.navbar__drawer-feature-overlay {\n position: absolute;\n inset: 0;\n background: linear-gradient(to bottom, rgba(24, 28, 37, 0) 0%, rgba(24, 28, 37, 0.92) 100%);\n pointer-events: none;\n border-radius: var(--radius-2xl);\n}\n\n.navbar__drawer-feature-img {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n pointer-events: none;\n border-radius: var(--radius-2xl);\n}\n\n.navbar__drawer-feature-content {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.navbar__drawer-feature-title {\n margin: 0;\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--line-height-md);\n color: var(--color-slate-50);\n}\n\n.navbar__drawer-feature-desc {\n margin: 0;\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-50);\n}\n\n.navbar__drawer-feature-cta {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-semi-bold);\n line-height: 1;\n color: var(--color-slate-50);\n text-decoration: none;\n cursor: pointer;\n transition: gap 120ms ease;\n}\n\n.navbar__drawer-feature-cta:hover {\n gap: var(--spacing-12);\n}\n\n/* ── DRAWER SINGLE LINK (external, no dropdown) ──────────────── */\n\n.navbar__drawer-single {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n height: 3.5rem;\n padding: 0;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-1200);\n text-decoration: none;\n}\n\n/* ── DRAWER LANGUAGE BUTTON ──────────────────────────────────── */\n\n.navbar__drawer-lang {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n height: 3.5rem;\n padding: 0;\n border: none;\n background: transparent;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-1200);\n cursor: pointer;\n text-align: left;\n}\n\n/* ── DRAWER FOOTER BUTTONS ───────────────────────────────────── */\n\n.navbar__drawer-footer {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n padding: var(--spacing-24);\n flex-shrink: 0;\n}\n\n/* ── RESPONSIVE ─────────────────────────────────────────────── */\n\n/* Desktop — hide outer logo and actions only when scrolled (inner pill versions take over) */\n@media (min-width: 992px) {\n\n .navbar__logo,\n .navbar__actions {\n transition: opacity 400ms cubic-bezier(.65, 0, .35, 1), transform 400ms cubic-bezier(.65, 0, .35, 1);\n }\n\n .navbar--scrolled .navbar__logo,\n .navbar--scrolled .navbar__actions {\n opacity: 0;\n pointer-events: none;\n transform: translateY(-12px);\n }\n\n /* Fade in logo */\n .navbar--scrolled .navbar__pill-logo {\n max-width: 200px;\n opacity: 1;\n }\n\n /* Fade in actions */\n .navbar--scrolled .navbar__pill-actions {\n max-width: 400px;\n opacity: 1;\n }\n}\n\n/* Desktop only */\n@media (min-width: 992px) {\n .navbar__mobile-actions {\n display: none;\n }\n\n .navbar__drawer-clip,\n .navbar__drawer {\n display: none !important;\n }\n}\n\n/* Hide login button before it overlaps with the pill */\n@media (max-width: 1200px) {\n .navbar__actions-login {\n display: none;\n }\n}\n\n/* Mobile / tablet */\n@media (max-width: 991px) {\n .navbar {\n padding-top: 0;\n padding-bottom: 0;\n }\n\n /* Scrolled appearance lives on .navbar__bar, not .navbar itself: a\n backdrop-filter (like transform) makes its element the containing\n block for position:fixed descendants. .navbar__drawer-clip is a fixed\n child of .navbar sized top:var(--navbar-height); bottom:0 — if the\n blur sat on .navbar, that would resolve against the ~64px bar instead\n of the viewport and collapse the drawer to 0 height once scrolled.\n Keeping it on .navbar__bar (which has no fixed descendants) mirrors\n the desktop pattern, where the blur sits on .navbar__pill rather than\n .navbar. */\n .navbar__bar {\n transition: background-color 400ms cubic-bezier(.65, 0, .35, 1),\n backdrop-filter 400ms cubic-bezier(.65, 0, .35, 1),\n box-shadow 400ms cubic-bezier(.65, 0, .35, 1);\n }\n\n .navbar--scrolled .navbar__bar {\n background-color: rgba(255, 255, 255, 0.96);\n backdrop-filter: blur(16px);\n -webkit-backdrop-filter: blur(16px);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.08);\n }\n\n .navbar--scrolled .navbar__mobile-trigger {\n color: var(--color-slate-1200);\n }\n\n .navbar--menu-open,\n .navbar--menu-open .navbar__bar {\n background-color: var(--color-slate-50);\n }\n\n .navbar--menu-open .navbar__mobile-trigger {\n color: var(--color-slate-1200);\n }\n\n .navbar__nav-center,\n .navbar__actions {\n display: none;\n }\n\n .navbar__mobile-actions {\n display: flex;\n }\n}","/* ============================================================\n DAY/NIGHT TRANSITION COMPONENT\n Token inheritance:\n Primitive (core) → Semantic (--dnt-*) → Component styles\n\n Semantic tokens used:\n\n Typography — headline:\n Default: --typography-h2-* (H2 scale).\n `.dnt--headline-h1`: --typography-h1-* for home-style heroes (same token set as other H1s).\n\n Text color (interpolated in JS, tokens for reference):\n --dnt-text-day var(--color-slate-1400) [#000000]\n --dnt-text-night var(--color-slate-50) [#ffffff]\n\n Button (coral pill):\n --dnt-btn-bg var(--color-coral-700) [#ff444f]\n --dnt-btn-bg-hover var(--color-coral-800) [#e12e3a]\n --dnt-btn-text var(--color-slate-50) [white]\n --dnt-btn-radius var(--radius-full) [9999px]\n --dnt-btn-px var(--spacing-24) [1.5rem]\n --dnt-btn-py var(--spacing-16) [1rem]\n --dnt-btn-size var(--font-size-md) [1rem]\n --dnt-btn-lh var(--line-height-xs) [1.25rem]\n --dnt-btn-weight var(--font-weight-extra-bold) [800]\n\n Layout:\n --dnt-wrapper-height 250vh\n --dnt-content-max-width 37.5rem [600px — mobile / tablet text cap]\n --dnt-content-py var(--spacing-56) [3.5rem = 56px mobile]\n --dnt-content-px var(--spacing-16) [1rem = 16px mobile]\n Desktop overrides at 992px:\n --dnt-content-max-width calc(80rem - 2 * var(--spacing-24)) [1232px @ 16px — 1280 inner − gutters]\n --dnt-content-py var(--spacing-112) [7rem = 112px]\n --dnt-content-px var(--spacing-24) [1.5rem = 24px]\n\n Gap:\n --dnt-gap var(--spacing-16) [1rem]\n\n Description:\n Default: --dnt-desc-* → `--typography-body-md-*`.\n `.dnt--desc-body-lg`: `--typography-body-lg-*`.\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────────── */\n\n:root {\n /* Text color reference (interpolated as rgb() in JS) */\n --dnt-text-day: var(--color-slate-1400);\n --dnt-text-night: var(--color-slate-50);\n\n /* Button */\n --dnt-btn-bg: var(--color-coral-700);\n --dnt-btn-bg-hover: var(--color-coral-800);\n --dnt-btn-text: var(--color-slate-50);\n --dnt-btn-radius: var(--radius-full);\n --dnt-btn-px: var(--spacing-24);\n --dnt-btn-py: var(--spacing-16);\n --dnt-btn-size: var(--font-size-md);\n --dnt-btn-lh: var(--line-height-xs);\n --dnt-btn-weight: var(--font-weight-extra-bold);\n\n /* Layout — mobile default */\n --dnt-wrapper-height: 250vh;\n --dnt-text-max-width: 37.5rem;\n /* 600px — left-column cap from Figma (not a content-width token — component-specific) */\n --dnt-content-py: var(--spacing-56);\n /* 3.5rem = 56px */\n --dnt-content-px: var(--spacing-16);\n /* 1rem = 16px */\n\n /* Description */\n --dnt-desc-size: var(--typography-body-md-font-size);\n --dnt-desc-lh: var(--typography-body-md-line-height);\n --dnt-desc-weight: var(--typography-body-md-font-weight);\n\n /* Gap between headline and button */\n --dnt-gap: var(--spacing-16);\n}\n\n/* Desktop — match standard section inner width (80rem max − spacing-24 gutters) */\n@media (min-width: 992px) {\n :root {\n --dnt-content-py: var(--spacing-112);\n /* 7rem = 112px */\n --dnt-content-px: var(--spacing-24);\n /* 1.5rem = 24px */\n }\n}\n\n/* ── WRAPPER — scroll track ───────────────────────────────────── */\n/*\n * The wrapper defines the total scrollable distance.\n * 250vh gives 150vh of scroll range while the sticky container\n * (100vh) remains locked — enough for a smooth day→night transition.\n */\n\n.dnt {\n position: relative;\n height: var(--dnt-wrapper-height);\n width: 100%;\n font-family: var(--font-family-base);\n}\n\n/* Webflow `.trade-day-night_content { height: 200vh }` scroll driver. */\n.dnt--webflow-v2 {\n --dnt-wrapper-height: 200vh;\n}\n\n/* ── STICKY CONTAINER — viewport-locked canvas ────────────────── */\n\n.dnt__sticky {\n position: sticky;\n top: 0;\n height: 100vh;\n width: 100%;\n overflow: hidden;\n}\n\n/* ── BACKGROUND IMAGES ────────────────────────────────────────── */\n\n.dnt__bg {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: bottom;\n display: block;\n pointer-events: none;\n}\n\n.dnt__bg--day {\n z-index: 0;\n}\n\n.dnt__bg--night {\n z-index: 1;\n /* opacity animated by Framer Motion */\n}\n\n/* ── Webflow V2: `.trade-day-night_background-wrapper` + day + night layers ─ */\n\n.dnt__v2-background-wrapper {\n z-index: -1;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n pointer-events: none;\n}\n\n/*\n * Mirrors `webflow-components-cf572b.webflow.css`:\n * `.trade-day-night_background-day` then `.trade-day-night_background-night`\n * (two backgrounds — `trade_day` / `trade_night` URLs in React `backgroundImage`).\n */\n.dnt__v2-bg-day {\n z-index: 1;\n opacity: 1;\n width: 100%;\n box-sizing: border-box;\n position: relative;\n top: 0;\n left: 0;\n right: 0;\n background-repeat: no-repeat;\n background-size: cover;\n background-position: 100% 100%;\n overflow: hidden;\n}\n\n.dnt__v2-bg-night {\n z-index: 0;\n width: 100%;\n height: 100vh;\n margin-top: -100vh;\n position: sticky;\n top: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background-repeat: no-repeat;\n background-size: cover;\n background-position: 100% 100%;\n}\n\n.dnt--webflow-v2 .dnt__v2-bg-day,\n.dnt--webflow-v2 .dnt__v2-bg-night {\n background-attachment: fixed;\n}\n\n/* Sticky copy sits above the z-index:-1 background wrapper (Webflow `.trade-day-night_content-wrapper`). */\n.dnt__sticky--webflow-v2 {\n z-index: 0;\n}\n\n/* Webflow `.trade-day-night_content-wrapper`: column + viewport height */\n.dnt--webflow-v2 .dnt__sticky--webflow-v2 {\n height: 100dvh;\n min-height: 100vh;\n}\n\n/* ── Webflow V2 mobile / small breakpoints (`webflow-components-cf572b.webflow.css`) ─ */\n\n@media screen and (max-width: 991px) {\n .dnt--webflow-v2 .dnt__v2-bg-day {\n position: sticky;\n top: 0;\n background-position: 30% 0;\n background-repeat: repeat;\n background-size: auto 100vh;\n }\n\n .dnt--webflow-v2 .dnt__v2-bg-night {\n background-position: 30% 0;\n background-repeat: repeat;\n background-size: auto 100vh;\n }\n\n .dnt--webflow-v2 .dnt__sticky--webflow-v2 .dnt__content {\n flex-flow: column nowrap;\n justify-content: flex-start;\n align-items: flex-start;\n padding: var(--spacing-112) var(--dnt-content-px) var(--dnt-content-py) var(--dnt-content-px);\n }\n\n .dnt--webflow-v2 .dnt__text-wrap {\n max-width: 100%;\n width: 100%;\n }\n\n .dnt--webflow-v2 .dnt__headline--inline-day-night {\n width: 60%;\n }\n}\n\n@media screen and (max-width: 767px) {\n .dnt--webflow-v2 .dnt__headline--inline-day-night {\n width: 80%;\n }\n}\n\n@media screen and (max-width: 479px) {\n .dnt--webflow-v2 .dnt__v2-bg-day {\n background-position: 40% 0;\n }\n\n .dnt--webflow-v2 .dnt__v2-bg-night {\n background-position: 40% 0;\n }\n\n .dnt--webflow-v2 .dnt__sticky--webflow-v2 .dnt__content {\n padding: var(--spacing-80) var(--dnt-content-px) var(--dnt-content-py) var(--dnt-content-px);\n }\n\n .dnt--layout-v2 .dnt__inner {\n padding-left: var(--spacing-16);\n padding-right: var(--spacing-16);\n }\n\n /* `.trade-day-night_title.new-heading-style-h1` */\n .dnt--webflow-v2.dnt--headline-h1 .dnt__headline {\n font-size: 3.5rem;\n line-height: 4rem;\n }\n\n /* `.trade-day-night_description.margin-small.margin-top` → margin-top: 0 */\n .dnt--webflow-v2 .dnt__description {\n margin-top: 0;\n }\n}\n\n/* ── CONTENT ──────────────────────────────────────────────────── */\n\n.dnt__content {\n position: relative;\n z-index: 2;\n display: flex;\n align-items: flex-start;\n height: 100%;\n padding: var(--dnt-content-py) var(--dnt-content-px);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .dnt__content {\n align-items: center;\n }\n}\n\n/* ── INNER CONTAINER — 1280px centred ────────────────────────── */\n\n.dnt__inner {\n width: 100%;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n box-sizing: border-box;\n}\n\n/* Webflow DayNightTransitionV2 `.container` max-width (not a global token). */\n.dnt--layout-v2 .dnt__inner {\n max-width: 83rem;\n}\n\n/* ── TEXT WRAP ────────────────────────────────────────────────── */\n\n.dnt__text-wrap {\n display: flex;\n flex-direction: column;\n gap: var(--dnt-gap);\n max-width: var(--dnt-text-max-width);\n /* color is driven by Framer Motion as an inline rgb() MotionValue */\n}\n\n/* ── CROSSFADE WRAP ───────────────────────────────────────────── */\n/*\n * Stacks both children (day + night) in the same grid cell.\n * The taller child sets the container height; both crossfade\n * via Framer Motion opacity without causing layout shift.\n */\n\n.dnt__crossfade-wrap {\n display: grid;\n grid-template-areas: \"stack\";\n}\n\n.dnt__crossfade-wrap>* {\n grid-area: stack;\n}\n\n/* ── HEADLINE ─────────────────────────────────────────────────── */\n\n.dnt__headline {\n margin: 0;\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n /* color inherited from .dnt__text-wrap (Framer Motion inline style) */\n}\n\n/* “Trade all ” + day / night (Webflow headline DOM pattern; margins mirror embed script). */\n.dnt__headline--inline-day-night {\n display: block;\n}\n\n.dnt__headline-prefix {\n white-space: pre;\n}\n\n.dnt__headline-pair {\n display: inline-block;\n position: relative;\n vertical-align: bottom;\n}\n\n.dnt__headline-wday,\n.dnt__headline-wnight {\n display: inline-block;\n}\n\n.dnt__headline-wnight {\n vertical-align: bottom;\n}\n\n/* Home hero scale — uses global H1 typography tokens (no new font tokens). */\n.dnt--headline-h1 .dnt__headline {\n font-family: var(--typography-h1-font-family);\n font-size: var(--typography-h1-font-size);\n font-weight: var(--typography-h1-font-weight);\n line-height: var(--typography-h1-line-height);\n}\n\n/* ── DESCRIPTION ──────────────────────────────────────────────── */\n\n.dnt__description {\n margin: 0;\n font-family: var(--font-family-base);\n font-size: var(--dnt-desc-size);\n font-weight: var(--dnt-desc-weight);\n line-height: var(--dnt-desc-lh);\n /* color inherited from .dnt__text-wrap (Framer Motion inline style) */\n}\n\n/* Marketing body — uses global body-lg typography tokens. */\n.dnt--desc-body-lg .dnt__description {\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--typography-body-lg-font-weight);\n line-height: var(--typography-body-lg-line-height);\n}\n\n/* ── CTA BUTTON ───────────────────────────────────────────────── */\n\n.dnt__btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n align-self: flex-start;\n width: auto;\n padding: var(--dnt-btn-py) var(--dnt-btn-px);\n background-color: var(--dnt-btn-bg);\n color: var(--dnt-btn-text);\n border-radius: var(--dnt-btn-radius);\n font-family: var(--font-family-base);\n font-size: var(--dnt-btn-size);\n font-weight: var(--dnt-btn-weight);\n line-height: var(--dnt-btn-lh);\n text-decoration: none;\n cursor: pointer;\n border: none;\n transition: background-color 0.3s ease;\n white-space: nowrap;\n box-sizing: border-box;\n}\n\n.dnt__btn:hover {\n background-color: var(--dnt-btn-bg-hover);\n}\n\n/* Mobile: button fills the full width of the text column */\n@media screen and (max-width: 991px) {\n .dnt__btn {\n width: 100%;\n align-self: stretch;\n }\n}","/* ============================================================\n LOGO MARQUEE COMPONENT\n Token inheritance:\n Primitive (core) → Semantic (--lm-*) → Component styles\n\n Semantic tokens used:\n\n Section:\n --lm-bg var(--color-slate-1200) [#181c25]\n --lm-section-py var(--spacing-112) [7rem = 112px]\n --lm-section-px var(--spacing-24) [1.5rem = 24px]\n --lm-section-height 50rem [800px desktop]\n --lm-max-width 80rem [1280px]\n\n Content gap (media ↔ text):\n --lm-layout-gap 8rem [128px — Figma exact]\n\n Card:\n --lm-card-bg var(--color-slate-1000) [dark card bg behind logo images]\n --lm-card-radius var(--radius-xl) [1rem = 16px desktop]\n --lm-card-radius-mobile var(--radius-2xl) [1.5rem ≈ 24px mobile]\n --lm-card-px var(--spacing-16) [~15px desktop]\n --lm-card-py var(--spacing-24) [~20px desktop]\n --lm-card-px-mobile var(--spacing-12) [12px mobile]\n --lm-card-py-mobile var(--spacing-12) [12px mobile]\n --lm-card-img-h var(--spacing-112) [7rem = 112px — logo area]\n --lm-card-img-h-mobile 5.375rem [86px — no exact token]\n Logo images: max 90% of card W/H, object-fit contain, centred in .lm__card-img-wrap\n\n Column gap (between cards vertically):\n --lm-card-gap var(--spacing-16) [1rem = 16px]\n\n Columns gap (between col1 and col2 horizontally):\n --lm-col-gap var(--spacing-16) [1rem = 16px]\n\n Carousel:\n --lm-carousel-height 39.375rem [630px desktop]\n --lm-carousel-height-mob 20.5rem [328px mobile]\n --lm-fade-height var(--spacing-64) [4rem = 64px]\n\n Typography — headline:\n --lm-headline-size var(--typography-h2-font-size)\n mobile 2.5rem → tablet 3rem → desktop 3.5rem (56px)\n --lm-headline-lh var(--typography-h2-line-height)\n mobile 3rem → tablet 3.5rem → desktop 4rem (64px)\n --lm-headline-color var(--color-slate-50) [white]\n --lm-headline-weight var(--typography-h2-font-weight) [800]\n\n Typography — body:\n --lm-body-size var(--typography-body-md-font-size) [1rem = 16px]\n --lm-body-lh var(--typography-body-md-line-height) [1.5rem = 24px]\n --lm-body-color var(--color-slate-50)\n --lm-body-weight var(--typography-body-md-font-weight)\n\n Typography — disclaimer:\n --lm-disc-size var(--typography-body-sm-font-size) [0.875rem = 14px]\n --lm-disc-lh var(--typography-body-sm-line-height) [1.5rem]\n --lm-disc-color var(--color-slate-400) [#bfc6cc ≈ #b1b4bc]\n --lm-disc-weight var(--typography-body-sm-font-weight)\n\n CTA link:\n --lm-link-color var(--color-coral-700) [#ff444f]\n --lm-link-size var(--typography-link-md-font-size) [1rem]\n --lm-link-weight var(--typography-link-md-font-weight) [600]\n\n Text-area width (desktop):\n --lm-text-width 32.625rem [522px]\n\n Animation — scroll-driven opposing columns:\n --lm-col-travel 7.5rem [120px up/down]\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────────── */\n\n:root {\n /* Section */\n --lm-bg: var(--color-slate-1200);\n --lm-section-py: var(--spacing-112);\n --lm-section-px: var(--spacing-24);\n --lm-section-height: 50rem;\n --lm-max-width: var(--content-width-1280);\n --lm-layout-gap: var(--spacing-112);\n /* 7rem = 112px — closest to Figma 128px */\n\n /* Card */\n --lm-card-bg: var(--color-slate-1000);\n --lm-card-radius: var(--radius-xl);\n --lm-card-radius-mobile: var(--radius-2xl);\n --lm-card-px: var(--spacing-16);\n --lm-card-py: var(--spacing-24);\n --lm-card-px-mobile: var(--spacing-12);\n --lm-card-py-mobile: var(--spacing-12);\n --lm-card-img-h: var(--spacing-112);\n /* 7rem = 112px — closest to 128px */\n --lm-card-img-h-mobile: 5.375rem;\n\n /* Column */\n --lm-card-gap: var(--spacing-16);\n --lm-col-gap: var(--spacing-16);\n\n /* Carousel */\n --lm-carousel-height: 39.375rem;\n --lm-carousel-height-mob: 20.5rem;\n --lm-fade-height: var(--spacing-64);\n\n /* Headline */\n --lm-headline-size: var(--typography-h2-font-size);\n --lm-headline-lh: var(--typography-h2-line-height);\n --lm-headline-color: var(--color-slate-50);\n --lm-headline-weight: var(--typography-h2-font-weight);\n\n /* Body */\n --lm-body-size: var(--typography-body-md-font-size);\n --lm-body-lh: var(--typography-body-md-line-height);\n --lm-body-color: var(--color-slate-50);\n --lm-body-weight: var(--typography-body-md-font-weight);\n\n /* Disclaimer */\n --lm-disc-size: var(--typography-body-sm-font-size);\n --lm-disc-lh: var(--typography-body-sm-line-height);\n --lm-disc-color: var(--color-slate-400);\n --lm-disc-weight: var(--typography-body-sm-font-weight);\n\n /* CTA link */\n --lm-link-color: var(--color-coral-700);\n --lm-link-size: var(--typography-link-md-font-size);\n --lm-link-weight: var(--typography-link-md-font-weight);\n\n /* Text-area */\n --lm-text-width: 32.625rem;\n\n /* Mobile overrides */\n --lm-section-py-mobile: var(--spacing-56);\n --lm-section-px-mobile: var(--spacing-16);\n}\n\n/* ── SECTION ─────────────────────────────────────────────────── */\n\n.lm {\n position: relative;\n width: 100%;\n background-color: var(--lm-bg);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n /* No overflow:hidden here — the carousel handles its own clipping.\n * overflow:hidden on the tracked element confuses Framer Motion's\n * useScroll into treating it as a scroll container instead of\n * listening to the window, making scrollYProgress always 0. */\n}\n\n/* ── INNER WRAPPER ───────────────────────────────────────────── */\n\n.lm__inner {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n align-items: flex-start;\n max-width: var(--lm-max-width);\n margin: 0 auto;\n padding: var(--lm-section-py-mobile) var(--lm-section-px-mobile);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .lm__inner {\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: var(--lm-layout-gap);\n padding: var(--lm-section-py) var(--lm-section-px);\n min-height: var(--lm-section-height);\n }\n}\n\n/* ── TEXT CONTENT ────────────────────────────────────────────── */\n\n.lm__content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n align-items: flex-start;\n width: 100%;\n order: 1;\n /* text first on mobile */\n}\n\n@media (min-width: 992px) {\n .lm__content {\n flex-shrink: 0;\n width: var(--lm-text-width);\n order: 2;\n /* text second (right) on desktop */\n }\n}\n\n/* ── HEADLINE ────────────────────────────────────────────────── */\n\n.lm__headline {\n margin: 0;\n font-family: var(--font-family-base);\n font-size: var(--lm-headline-size);\n font-weight: var(--lm-headline-weight);\n line-height: var(--lm-headline-lh);\n color: var(--lm-headline-color);\n}\n\n/* ── BODY + DISCLAIMER wrapper ───────────────────────────────── */\n\n.lm__text-group {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n/* ── BODY ────────────────────────────────────────────────────── */\n\n.lm__body {\n margin: 0;\n font-family: var(--font-family-base);\n font-size: var(--lm-body-size);\n font-weight: var(--lm-body-weight);\n line-height: var(--lm-body-lh);\n color: var(--lm-body-color);\n}\n\n/* ── DISCLAIMER ──────────────────────────────────────────────── */\n\n.lm__disclaimer {\n margin: 0;\n font-family: var(--font-family-base);\n font-size: var(--lm-disc-size);\n font-weight: var(--lm-disc-weight);\n line-height: var(--lm-disc-lh);\n color: var(--lm-disc-color);\n}\n\n/* ── CTA LINK ────────────────────────────────────────────────── */\n\n.lm__link {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n font-family: var(--typography-link-md-font-family);\n font-size: var(--lm-link-size);\n font-weight: var(--lm-link-weight);\n line-height: var(--typography-link-md-line-height);\n color: var(--lm-link-color);\n text-decoration: none;\n cursor: pointer;\n white-space: nowrap;\n transition: color 0.2s ease;\n}\n\n.lm__link:hover {\n color: var(--color-coral-800);\n}\n\n.lm__link-icon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n transition: transform 0.2s ease;\n}\n\n.lm__link:hover .lm__link-icon {\n transform: translateX(var(--spacing-4));\n}\n\n/* ── MEDIA ───────────────────────────────────────────────────── */\n/*\n * The media wrapper is flex-1 on desktop. overflow-hidden clips\n * the infinite column track. The fade divs produce top/bottom\n * gradient masks that blend cards into the dark background.\n */\n\n.lm__media {\n position: relative;\n width: 100%;\n order: 2;\n /* media second on mobile */\n flex-shrink: 0;\n}\n\n@media (min-width: 992px) {\n .lm__media {\n flex: 1 0 0;\n min-width: 0;\n order: 1;\n /* media first (left) on desktop */\n align-self: stretch;\n }\n}\n\n/* ── CAROUSEL — clipping container ───────────────────────────── */\n/*\n * align-items: flex-start is CRITICAL.\n * Default (stretch) would clamp column height to the carousel\n * height, leaving nothing to translate through. flex-start lets\n * each column grow to its natural content height (3× logo track),\n * which is far taller than the carousel. overflow: hidden then\n * clips that tall track, and Framer Motion slides it vertically\n * within the visible window.\n */\n\n.lm__carousel {\n position: relative;\n display: flex;\n align-items: flex-start;\n gap: var(--lm-col-gap);\n height: var(--lm-carousel-height-mob);\n overflow: hidden;\n}\n\n@media (min-width: 992px) {\n .lm__carousel {\n height: var(--lm-carousel-height);\n }\n}\n\n/* ── TOP / BOTTOM GRADIENT FADES ─────────────────────────────── */\n/*\n * Absolutely positioned inside the overflow-hidden carousel so\n * they always sit flush at the top and bottom edges regardless of\n * how much the columns have translated.\n *\n * The gradient uses var(--lm-bg) = var(--color-slate-1200) as the\n * opaque end, fading to rgba(0,0,0,0) so cards dissolve cleanly\n * into the dark section background rather than hard-clipping.\n * rgba(0,0,0,0) is used as the transparent stop (not \"transparent\")\n * to prevent Safari's mid-gradient grey artifact.\n */\n\n.lm__fade {\n position: absolute;\n left: 0;\n right: 0;\n height: var(--lm-fade-height);\n pointer-events: none;\n z-index: 2;\n}\n\n.lm__fade--top {\n top: 0;\n background: linear-gradient(to bottom,\n var(--lm-bg) 0%,\n rgba(0, 0, 0, 0) 100%);\n}\n\n.lm__fade--bottom {\n bottom: 0;\n background: linear-gradient(to top,\n var(--lm-bg) 0%,\n rgba(0, 0, 0, 0) 100%);\n}\n\n/* ── COLUMNS ─────────────────────────────────────────────────── */\n/*\n * flex: 1 0 0 → equal width from carousel, NO height constraint.\n * align-self: flex-start ensures the column height is content-driven\n * (3× logo track >> carousel height), giving Framer Motion room to\n * translate up / down within the overflow-hidden parent.\n */\n\n.lm__col {\n flex: 1 0 0;\n align-self: flex-start;\n /* MUST stay flex-start — prevents stretching to carousel height */\n display: flex;\n flex-direction: column;\n gap: var(--lm-card-gap);\n min-width: 0;\n will-change: transform;\n /* promote to compositor layer for smooth GPU translation */\n}\n\n/* ── CARD ────────────────────────────────────────────────────── */\n\n.lm__card {\n flex-shrink: 0;\n background-color: var(--lm-card-bg);\n border-radius: var(--lm-card-radius-mobile);\n aspect-ratio: 4 / 3;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 100%;\n overflow: hidden;\n}\n\n@media (min-width: 992px) {\n .lm__card {\n border-radius: var(--lm-card-radius);\n }\n}\n\n/* ── CARD IMAGE ──────────────────────────────────────────────── */\n\n.lm__card-img-wrap {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n}\n\n.lm__card-img-wrap img {\n max-width: 90%;\n max-height: 90%;\n width: auto;\n height: auto;\n object-fit: contain;\n object-position: center;\n display: block;\n}","/* ============================================================\n DOWNLOAD BADGE PRIMITIVE\n Token inheritance:\n Primitive (core) → Semantic (--download-badge-*) → Component styles\n\n A clickable platform download badge — pill-shaped container\n (white + border for light, slate-1200 fill for dark) with the\n platform SVG artwork centred inside.\n\n Follows the same sizing conventions as the Button primitive:\n height → var(--spacing-48)\n radius → var(--radius-full)\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n --download-badge-height: var(--spacing-48);\n --download-badge-radius: var(--radius-full);\n --download-badge-padding-x: var(--spacing-16);\n --download-badge-transition: opacity 100ms ease, box-shadow 100ms ease;\n --download-badge-focus-color: var(--color-blue-600);\n\n /* Light variant — slate-50 = #ffffff */\n --download-badge-light-bg: var(--color-slate-50);\n --download-badge-light-border: 1px solid var(--color-slate-1200);\n\n /* Dark variant — slate-800 sits one layer above slate-1200 on dark backgrounds */\n --download-badge-dark-bg: var(--color-slate-800);\n --download-badge-dark-border: 1px solid transparent;\n\n /* Inner artwork height */\n --download-badge-img-height: var(--spacing-32);\n}\n\n/* ── BADGE LINK (pill container) ──────────────────────────── */\n\n.download-badge {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--download-badge-height);\n padding: 0 var(--download-badge-padding-x);\n border-radius: var(--download-badge-radius);\n box-sizing: border-box;\n text-decoration: none;\n cursor: pointer;\n outline: none;\n flex-shrink: 0;\n transition: var(--download-badge-transition);\n}\n\n/* Light (default) — white pill with dark border */\n.download-badge--light {\n background: var(--download-badge-light-bg);\n border: var(--download-badge-light-border);\n}\n\n/* Dark — slate-1200 filled pill */\n.download-badge--dark {\n background: var(--download-badge-dark-bg);\n border: var(--download-badge-dark-border);\n}\n\n/* ── STATES ───────────────────────────────────────────────── */\n\n.download-badge:hover {\n opacity: 0.85;\n}\n\n.download-badge:focus-visible::after {\n content: \"\";\n position: absolute;\n inset: calc(-1 * var(--spacing-2));\n border-radius: var(--download-badge-radius);\n border: var(--spacing-2) solid var(--download-badge-focus-color);\n pointer-events: none;\n}\n\n/* ── BADGE IMAGE (artwork only, no pill) ──────────────────── */\n\n.download-badge__img {\n height: var(--download-badge-img-height);\n width: auto;\n display: block;\n pointer-events: none;\n}","/* ============================================================\n STEPS TEMPLATE\n Token inheritance:\n Primitive (core) → Semantic (--steps-*) → Component styles\n\n Layout: two-column split — image (left or right) + numbered\n steps list. On mobile the image stacks above the content.\n\n Semantic tokens:\n --steps-bg var(--color-slate-50)\n --steps-title-color var(--color-slate-1200)\n --steps-number-color var(--color-coral-700)\n --steps-number-size var(--spacing-40)\n --steps-item-title-color var(--color-slate-1200)\n --steps-item-desc-color var(--color-slate-1200)\n --steps-divider-color var(--color-opacity-slate-8)\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n --steps-bg: var(--color-slate-50);\n --steps-title-color: var(--text-primary);\n --steps-number-color: var(--color-coral-700);\n --steps-number-size: var(--spacing-40);\n --steps-item-title-color: var(--text-primary);\n --steps-item-desc-color: var(--text-primary);\n --steps-divider-color: var(--color-opacity-slate-8);\n}\n\n/* ── SECTION SHELL ────────────────────────────────────────── */\n\n.steps {\n width: 100%;\n background-color: var(--steps-bg);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n}\n\n/* Embedded usage (e.g. inside FeatureBlogPage's article body): no\n standalone-section background or block padding, since the embedding\n parent already provides its own content rhythm/padding. The title keeps\n the same scroll offset as a level-2 heading so hash/TOC navigation does\n not place it beneath a sticky header. */\n.steps--embedded {\n background-color: transparent;\n}\n\n.steps--embedded .steps__title {\n scroll-margin-top: var(--spacing-96);\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.steps__container {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-40);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .steps__container {\n flex-direction: row;\n align-items: center;\n gap: var(--spacing-96);\n padding: var(--spacing-112) var(--spacing-24);\n }\n\n .steps__container--image-right {\n flex-direction: row-reverse;\n }\n}\n\n.steps--embedded .steps__container {\n padding: 0;\n}\n\n/* ── IMAGE COLUMN ─────────────────────────────────────────── */\n\n.steps__image-wrapper {\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n flex-shrink: 0;\n background-color: transparent;\n}\n\n@media (min-width: 992px) {\n .steps__image-wrapper {\n flex: 1 0 0;\n width: auto;\n }\n}\n\n.steps__image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n\n/* ── CONTENT COLUMN ───────────────────────────────────────── */\n\n.steps__content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .steps__content {\n flex: 1 0 0;\n width: auto;\n }\n}\n\n/* ── SECTION TITLE ────────────────────────────────────────── */\n\n.steps__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--steps-title-color);\n margin: 0;\n}\n\n/* ── STEPS LIST ───────────────────────────────────────────── */\n\n.steps__list {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n/* ── STEP ITEM ────────────────────────────────────────────── */\n\n.steps__item {\n border-bottom: 1px solid var(--steps-divider-color);\n}\n\n.steps__item:last-child {\n border-bottom: none;\n}\n\n/* ── STEP ITEM INNER ──────────────────────────────────────── */\n\n.steps__item-inner {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n gap: var(--spacing-16);\n padding: var(--spacing-16) 0;\n}\n\n/* ── STEP NUMBER ──────────────────────────────────────────── */\n\n.steps__number {\n font-family: var(--font-family-base);\n font-size: var(--steps-number-size);\n font-weight: var(--font-weight-extra-bold);\n /* Unitless 1 keeps the glyph's cap aligned with the step title's first\n line — any extra leading pushes a number this large visibly lower. */\n line-height: 1;\n color: var(--steps-number-color);\n flex-shrink: 0;\n min-width: var(--steps-number-size);\n}\n\n/* ── STEP BODY ────────────────────────────────────────────── */\n\n.steps__item-body {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-4);\n}\n\n/* ── STEP ITEM TITLE ──────────────────────────────────────── */\n\n.steps__item-title {\n font-family: var(--typography-h6-font-family);\n font-size: var(--typography-h6-font-size);\n font-weight: var(--typography-h6-font-weight);\n line-height: var(--typography-h6-line-height);\n color: var(--steps-item-title-color);\n margin: 0;\n}\n\n/* ── STEP ITEM DESCRIPTION ────────────────────────────────── */\n\n.steps__item-description {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--steps-item-desc-color);\n margin: 0;\n}","/* ============================================================\n DOWNLOAD BANNER TEMPLATE\n Token inheritance:\n Primitive (core) → Semantic (--db-*) → Component styles\n\n Layout:\n Mobile — vertical stack: heading → badge grid (2-col, full-width)\n Desktop — horizontal split: QR block (left) | badge grid (right)\n\n Style variants:\n light → slate-100 outer, white card\n light-2 → slate-50 outer, slate-75 card (default)\n dark → white outer, slate-1200 card\n\n Semantic tokens:\n --db-section-bg-light var(--color-slate-100)\n --db-section-bg-light-2 var(--background-surface) [slate-50 #FFFFFF]\n --db-section-bg-dark var(--color-slate-50)\n --db-card-bg-light var(--color-slate-50)\n --db-card-bg-light-2 var(--background-surface-secondary) [slate-75 #F6F7F8]\n --db-card-bg-dark var(--color-slate-1200)\n --db-title-color-light var(--color-slate-1200)\n --db-title-color-dark var(--color-slate-50)\n --db-subtitle-color-light var(--color-slate-1200)\n --db-subtitle-color-dark var(--color-slate-50)\n --db-disclaimer-color-light var(--color-slate-500)\n --db-disclaimer-color-dark var(--color-slate-500)\n --db-card-radius var(--radius-2xl)\n\n Badge pill styles are owned by the DownloadBadge primitive.\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n --db-section-bg-light: var(--color-slate-100);\n --db-section-bg-light-2: var(--background-surface); /* slate-50 #FFFFFF */\n --db-section-bg-dark: var(--color-slate-50);\n\n --db-card-bg-light: var(--color-slate-50);\n --db-card-bg-light-2: var(--background-surface-secondary); /* slate-75 #F6F7F8 */\n --db-card-bg-dark: var(--color-slate-1200);\n\n --db-title-color-light: var(--text-primary);\n --db-title-color-dark: var(--color-slate-50);\n\n --db-subtitle-color-light: var(--text-primary);\n --db-subtitle-color-dark: var(--color-slate-50);\n\n --db-disclaimer-color-light: var(--color-slate-500);\n --db-disclaimer-color-dark: var(--color-slate-500);\n\n --db-card-radius: var(--radius-2xl);\n}\n\n/* ── SECTION SHELL ────────────────────────────────────────── */\n\n.db-section {\n width: 100%;\n box-sizing: border-box;\n}\n\n.db-section--light {\n background-color: var(--db-section-bg-light);\n}\n\n.db-section--light-2 {\n background-color: var(--db-section-bg-light-2);\n}\n\n.db-section--dark {\n background-color: var(--db-section-bg-dark);\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.db-container {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .db-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .db-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── CARD ─────────────────────────────────────────────────── */\n\n.db-card {\n border-radius: var(--db-card-radius);\n padding: var(--spacing-24);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-32);\n box-sizing: border-box;\n}\n\n.db-section--light .db-card {\n background-color: var(--db-card-bg-light);\n}\n\n.db-section--light-2 .db-card {\n background-color: var(--db-card-bg-light-2);\n}\n\n.db-section--dark .db-card {\n background-color: var(--db-card-bg-dark);\n}\n\n@media (min-width: 992px) {\n .db-card {\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-80);\n padding: var(--spacing-48);\n }\n}\n\n/* ── QR BLOCK ─────────────────────────────────────────────── */\n\n.db-qr-block {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n@media (min-width: 992px) {\n .db-qr-block {\n flex-direction: row;\n align-items: center;\n gap: var(--spacing-32);\n flex-shrink: 0;\n }\n}\n\n/* ── QR IMAGE ─────────────────────────────────────────────── */\n\n.db-qr-image {\n width: 128px;\n height: 128px;\n object-fit: contain;\n object-position: center;\n display: none;\n /* hidden on mobile */\n flex-shrink: 0;\n}\n\n@media (min-width: 992px) {\n .db-qr-image {\n display: block;\n }\n}\n\n/* ── QR TEXT ──────────────────────────────────────────────── */\n\n.db-qr-text {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n}\n\n/* Desktop-only lines */\n.db-qr-text__title--desktop,\n.db-qr-text__subtitle--desktop {\n display: none;\n}\n\n/* Mobile-only heading */\n.db-qr-text__title--mobile {\n display: block;\n}\n\n@media (min-width: 992px) {\n\n .db-qr-text__title--desktop,\n .db-qr-text__subtitle--desktop {\n display: block;\n }\n\n .db-qr-text__title--mobile {\n display: none;\n }\n}\n\n.db-qr-text__title--desktop {\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--typography-body-lg-font-weight);\n line-height: var(--typography-body-lg-line-height);\n}\n\n.db-qr-text__subtitle--desktop {\n /* Semantic tag: <h2> — visual style: h5 (was h3) */\n margin: 0;\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n}\n\n.db-qr-text__title--mobile {\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--typography-body-lg-font-weight);\n line-height: var(--typography-body-lg-line-height);\n}\n\n/* Text colours per style variant */\n.db-section--light .db-qr-text__title--desktop,\n.db-section--light .db-qr-text__title--mobile,\n.db-section--light-2 .db-qr-text__title--desktop,\n.db-section--light-2 .db-qr-text__title--mobile {\n color: var(--db-title-color-light);\n}\n\n.db-section--dark .db-qr-text__title--desktop,\n.db-section--dark .db-qr-text__title--mobile {\n color: var(--db-title-color-dark);\n}\n\n.db-section--light .db-qr-text__subtitle--desktop,\n.db-section--light-2 .db-qr-text__subtitle--desktop {\n color: var(--db-subtitle-color-light);\n}\n\n.db-section--dark .db-qr-text__subtitle--desktop {\n color: var(--db-subtitle-color-dark);\n}\n\n/* ── DISCLAIMER ───────────────────────────────────────────── */\n\n.db-disclaimer {\n display: block;\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n margin-top: var(--spacing-4);\n}\n\n.db-section--light .db-disclaimer,\n.db-section--light-2 .db-disclaimer {\n color: var(--db-disclaimer-color-light);\n}\n\n.db-section--dark .db-disclaimer {\n color: var(--db-disclaimer-color-dark);\n}\n\n/* ── BADGE GRID ───────────────────────────────────────────── */\n\n.db-badges {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--spacing-8);\n}\n\n.db-badges .download-badge {\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .db-badges {\n flex: unset;\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n align-content: center;\n align-items: center;\n }\n\n .db-badges .download-badge {\n width: auto;\n }\n}","/* ── TextScroll ──────────────────────────────────────────── */\n\n.ts {\n font-family: var(--font-family-base);\n box-sizing: border-box;\n}\n\n/* ── Inner container ─────────────────────────────────────── */\n\n.ts__inner {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .ts__inner {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 1280px) {\n .ts__inner {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Text block ──────────────────────────────────────────── */\n\n.ts__text {\n margin: 0;\n font-family: var(--typography-h4-font-family);\n font-size: var(--typography-h4-font-size);\n font-weight: var(--typography-h4-font-weight);\n line-height: var(--typography-h4-line-height);\n color: var(--text-primary);\n}\n\n@media (min-width: 768px) {\n .ts__text {\n text-align: center;\n }\n}\n\n/* ── Individual word ─────────────────────────────────────── */\n\n.ts__word {\n display: inline;\n white-space: pre-wrap;\n /* GSAP tweens opacity 0.2 → 1 via inline style after first paint */\n will-change: opacity;\n}\n","/* ============================================================\n STICKY MARKET CARDS COMPONENT\n Token inheritance:\n Primitive (core) → Semantic (--smc-*) → Component styles\n\n STRUCTURE per card:\n .smc__card ← sticky wrapper (position:sticky)\n .smc__card-inner ← visual card (gets scale + filter)\n .smc__card-bg ← optional: full-bleed bg image\n img\n .smc__card-overlay ← semi-transparent theme colour\n .smc__card-content ← flex row: title | description\n .smc__card-title-wrap\n h3.smc__card-title\n .smc__card-desc-wrap\n p.smc__card-desc\n\n SCROLL MECHANIC:\n Each wrapper is position:sticky. The flex gap between wrappers\n creates scroll distance so cards don't all stack at once.\n JS measures overlap of the NEXT wrapper over the current one and\n applies scale/brightness to the INNER card only — the sticky\n position of the wrapper is never disturbed.\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n /* Section background */\n --smc-bg: var(--color-slate-75);\n\n /* Font family */\n --smc-font-family: var(--font-family-base);\n\n /* Section header color */\n --smc-header-color: var(--text-primary);\n\n /* Card theme — light */\n --smc-card-light-bg: var(--color-slate-75);\n --smc-card-light-text: var(--color-slate-1200);\n\n /* Card theme — coral */\n --smc-card-coral-bg: var(--color-coral-700);\n --smc-card-coral-text: var(--color-slate-50);\n\n /* Card theme — dark */\n --smc-card-dark-bg: var(--color-slate-1200);\n --smc-card-dark-text: var(--color-slate-50);\n\n /* Typography — section header (H2) */\n --smc-header-size: var(--typography-h2-font-size);\n --smc-header-lh: var(--typography-h2-line-height);\n --smc-header-weight: var(--typography-h2-font-weight);\n\n /* Sticky scroll \"What we offer\" stack */\n --smc-sticky-top: var(--spacing-96);\n /* 96px base — clears typical nav */\n --smc-peek: var(--spacing-16);\n /* 16px per-card offset: card N sticks 16px lower than card N-1 */\n --smc-padding-v: var(--spacing-32);\n /* 32px vertical padding inside card */\n --smc-padding-h: var(--spacing-64);\n /* 64px horizontal padding inside card */\n --smc-min-height: 15.625rem;\n /* 250px — minimum card height matches 846×250 ratio */\n --smc-gap: var(--spacing-64);\n /* 64px gap between sticky wrappers = main scroll distance */\n --smc-content-gap: var(--spacing-24);\n /* 24px gap between title and description columns */\n /* RGB values for overlay colours (image + theme blend) */\n --smc-card-dark-rgb: 24, 28, 37;\n --smc-card-coral-rgb: 255, 68, 79;\n --smc-card-light-rgb: 246, 247, 248;\n}\n\n/* ── ROOT ─────────────────────────────────────────────────── */\n\n.smc {\n width: 100%;\n background-color: var(--smc-bg);\n font-family: var(--smc-font-family);\n box-sizing: border-box;\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.smc__inner {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-48);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .smc__inner {\n padding: var(--spacing-56) var(--spacing-24);\n gap: var(--spacing-64);\n }\n}\n\n@media (min-width: 992px) {\n .smc__inner {\n padding: var(--spacing-112) var(--spacing-24);\n gap: var(--spacing-80);\n }\n}\n\n/* ── SECTION HEADER ───────────────────────────────────────── */\n\n.smc__header-wrap {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n text-align: left;\n}\n\n@media (min-width: 768px) {\n .smc__header-wrap {\n align-items: center;\n text-align: center;\n }\n}\n\n.smc__header {\n font-size: var(--smc-header-size);\n font-weight: var(--smc-header-weight);\n line-height: var(--smc-header-lh);\n color: var(--smc-header-color);\n margin: 0;\n}\n\n.smc__description {\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--typography-body-lg-font-weight);\n line-height: var(--typography-body-lg-line-height);\n color: var(--smc-header-color);\n margin: 0;\n max-width: 640px;\n}\n\n/* ── Track ────────────────────────────────────────────────── */\n\n.smc__track {\n display: flex;\n flex-direction: column;\n /* Gap between sticky wrappers: this IS the scroll distance */\n gap: var(--smc-gap);\n /* Extra room so the last card can fully scroll into view */\n padding-bottom: var(--spacing-96);\n /* Constrain cards to ~846px on desktop */\n width: 100%;\n max-width: var(--content-width-846);\n margin: 0 auto;\n}\n\n/* ── Sticky wrapper ───────────────────────────────────────── */\n/*\n * top is calculated using the inline --smc-card-index\n * z-index is set inline as i+1.\n * NO transform here — wrapper must stay fixed for sticky to work.\n */\n\n.smc__card {\n position: sticky;\n top: calc(var(--smc-sticky-top) + var(--smc-card-index) * var(--smc-peek));\n}\n\n/* ── Inner card — the visual element ─────────────────────── */\n\n.smc__card-inner {\n position: relative;\n border-radius: var(--spacing-32);\n padding: var(--smc-padding-v) var(--smc-padding-h);\n min-height: var(--smc-min-height);\n display: flex;\n align-items: center;\n overflow: hidden;\n box-sizing: border-box;\n\n /* JS-driven depth cues — identity transforms on first paint */\n transform-origin: top center;\n transition: transform 0.1s ease-out, filter 0.1s ease-out;\n will-change: transform, filter;\n}\n\n/* ── Inner card themes ────────────────────────────────────── */\n\n.smc__card-inner--light {\n background-color: var(--smc-card-light-bg);\n color: var(--smc-card-light-text);\n}\n\n.smc__card-inner--coral {\n background-color: var(--smc-card-coral-bg);\n color: var(--smc-card-coral-text);\n}\n\n.smc__card-inner--dark {\n background-color: var(--smc-card-dark-bg);\n color: var(--smc-card-dark-text);\n}\n\n/* ── Background image (optional) ─────────────────────────── */\n\n.smc__card-bg {\n position: absolute;\n inset: 0;\n z-index: 0;\n}\n\n.smc__card-bg img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n/* Semi-transparent overlay sits on top of the image */\n.smc__card-overlay {\n position: absolute;\n inset: 0;\n}\n\n.smc__card-overlay--dark {\n background-color: rgba(var(--smc-card-dark-rgb), 0.85);\n}\n\n.smc__card-overlay--coral {\n background-color: rgba(var(--smc-card-coral-rgb), 0.85);\n}\n\n.smc__card-overlay--light {\n background-color: rgba(var(--smc-card-light-rgb), 0.85);\n}\n\n/* ── Card content row ─────────────────────────────────────── */\n\n.smc__card-content {\n position: relative;\n z-index: 1;\n display: grid;\n grid-template-columns: 1fr 1.25fr;\n width: 100%;\n align-items: center;\n gap: var(--smc-content-gap);\n}\n\n.smc__card-title-wrap {\n flex: 1;\n}\n\n.smc__card-desc-wrap {\n flex: 1;\n}\n\n/* ── Card title ───────────────────────────────────────────── */\n\n.smc__card-title {\n margin: 0;\n font-family: var(--font-family-base);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: inherit;\n}\n\n/* ── Card description ─────────────────────────────────────── */\n\n.smc__card-desc {\n margin: 0;\n font-family: var(--font-family-base);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: inherit;\n opacity: 0.95;\n}\n\n/* ── Mobile ───────────────────────────────────────────────── */\n\n@media (max-width: 767px) {\n .smc__card-inner {\n padding: var(--spacing-24) var(--spacing-32);\n }\n\n .smc__card-content {\n grid-template-columns: 1fr;\n align-items: flex-start;\n gap: var(--spacing-24);\n }\n}\n","/* ============================================================\n TABLE COMPONENT\n Token inheritance:\n Primitive (core) → Semantic (--tbl-*) → Component styles\n\n Uses design-system primitives:\n SearchField — search input\n Pagination — page navigation\n\n STRUCTURE:\n .tbl ← root container\n .tbl__topbar ← search + showing summary\n .tbl__search-wrap ← SearchField wrapper\n .tbl__summary ← \"Showing X–Y of Z\"\n .tbl__scroll-wrapper ← horizontal scroll container\n .tbl__table ← native table\n thead\n .tbl__tr\n .tbl__th ← header cell\n .tbl__th-inner ← wrapper for tooltip positioning\n .tbl__hint ← hover tooltip\n .tbl__col-label ← header text (dashed if tooltip)\n .tbl__tbody\n .tbl__tr ← data row\n .tbl__td ← data cell\n .tbl__cell-inner ← icon + text\n .tbl__footer ← bottom bar\n .tbl__info-block ← info icon + text\n .tbl__pagination-wrap ← Pagination primitive wrapper\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n --tbl-bg: var(--color-slate-50);\n --tbl-border: var(--color-opacity-slate-8);\n --tbl-header-bg: var(--color-slate-75);\n --tbl-row-hover-bg: var(--color-slate-75);\n --tbl-text: var(--text-primary);\n --tbl-text-muted: var(--text-secondary);\n --tbl-font-family: var(--font-family-base);\n\n /* Column widths */\n --tbl-col-main-width: 11rem; /* 176px — instrument + icon */\n --tbl-col-normal-width: 6rem; /* 96px — numeric columns */\n --tbl-col-big-width: 14rem; /* 224px — trading hours */\n\n /* Row */\n --tbl-row-height: var(--spacing-56);\n --tbl-cell-px: var(--spacing-16);\n\n /* Tooltip */\n --tbl-hint-bg: var(--color-slate-1200);\n --tbl-hint-border: var(--color-slate-1200);\n --tbl-hint-radius: var(--radius-md);\n --tbl-hint-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n --tbl-hint-width: 13rem;\n --tbl-hint-text: var(--color-slate-50);\n --tbl-hint-text-muted: var(--color-slate-300);\n}\n\n/* ── ROOT ─────────────────────────────────────────────────── */\n\n.tbl-section {\n width: 100%;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-48);\n font-family: var(--tbl-font-family);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .tbl-section {\n padding: var(--spacing-56) var(--spacing-24);\n gap: var(--spacing-64);\n }\n}\n\n@media (min-width: 992px) {\n .tbl-section {\n padding: var(--spacing-112) var(--spacing-24);\n gap: var(--spacing-80);\n }\n}\n\n.tbl-section__header {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n}\n\n.tbl-section__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--tbl-text);\n margin: 0;\n}\n\n.tbl {\n width: 100%;\n background-color: var(--tbl-bg);\n font-family: var(--tbl-font-family);\n font-size: var(--typography-body-xs-font-size);\n color: var(--tbl-text);\n box-sizing: border-box;\n border-radius: var(--radius-xl);\n border: 1px solid var(--tbl-border);\n overflow: hidden;\n}\n\n/* ── TOP BAR ──────────────────────────────────────────────── */\n\n.tbl__topbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-16);\n padding: var(--spacing-16) var(--spacing-24);\n border-bottom: 1px solid var(--tbl-border);\n background-color: var(--tbl-bg);\n flex-wrap: wrap;\n}\n\n.tbl__search-wrap {\n flex: 1;\n min-width: 160px;\n max-width: 320px;\n}\n\n/* Adjust SearchField primitive to fit table context */\n.tbl__search-wrap .sf-wrapper {\n height: var(--spacing-40);\n}\n\n.tbl__search-wrap .sf-input {\n font-size: var(--typography-body-sm-font-size);\n}\n\n.tbl__summary {\n font-size: var(--typography-body-xs-font-size);\n color: var(--tbl-text-muted);\n white-space: nowrap;\n flex-shrink: 0;\n}\n\n/* ── SCROLL WRAPPER ───────────────────────────────────────── */\n/*\n * overflow-x: auto enables horizontal scrolling.\n * overflow-y must be visible so tooltips can escape top/bottom.\n */\n\n.tbl__scroll-wrapper {\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n}\n\n/* ── NATIVE TABLE ─────────────────────────────────────────── */\n\n.tbl__table {\n width: 100%;\n min-width: max-content;\n border-collapse: separate;\n border-spacing: 0;\n text-align: left;\n}\n\n/* ── TABLE ROWS ───────────────────────────────────────────── */\n\n.tbl__tr {\n background-color: var(--tbl-bg);\n transition: background-color 0.1s;\n height: var(--tbl-row-height);\n}\n\n.tbl__tbody .tbl__tr:hover {\n background-color: var(--tbl-row-hover-bg);\n}\n\n/* ── TABLE CELLS (TH / TD) ────────────────────────────────── */\n\n.tbl__th,\n.tbl__td {\n padding: var(--spacing-12) var(--tbl-cell-px);\n box-sizing: border-box;\n vertical-align: middle;\n position: relative;\n width: var(--tbl-col-normal-width);\n min-width: var(--tbl-col-normal-width);\n border-bottom: 1px solid var(--tbl-border);\n}\n\n.tbl__tbody .tbl__tr:last-child .tbl__td {\n border-bottom: none;\n}\n\n.tbl__th--big,\n.tbl__td--big {\n width: var(--tbl-col-big-width);\n min-width: var(--tbl-col-big-width);\n}\n\n/* ── STICKY MAIN COLUMN ───────────────────────────────────── */\n/*\n * Native table cells support position: sticky perfectly.\n * We apply it to both TH and TD for the main column.\n */\n\n.tbl__th--main,\n.tbl__td--main {\n width: var(--tbl-col-main-width);\n min-width: var(--tbl-col-main-width);\n position: sticky;\n left: 0;\n z-index: 2;\n background-color: var(--tbl-bg);\n box-shadow: 4px 0 12px rgba(0, 0, 0, 0.03);\n}\n\n/* Keep sticky cell background in sync with row hover */\n.tbl__tbody .tbl__tr:hover .tbl__td--main {\n background-color: var(--tbl-row-hover-bg);\n}\n\n/* ── HEADER SPECIFICS ─────────────────────────────────────── */\n\n.tbl__th {\n background-color: var(--tbl-header-bg);\n font-weight: normal;\n vertical-align: top;\n padding-bottom: var(--spacing-12);\n padding-top: var(--spacing-12);\n position: sticky;\n top: 0;\n z-index: 4;\n}\n\n/* Header needs higher z-index so it stays above scrolling body cells AND scrolling headers */\n.tbl__th--main {\n background-color: var(--tbl-header-bg);\n z-index: 5;\n}\n\n.tbl__th-inner {\n position: relative;\n display: inline-flex;\n align-items: flex-start;\n}\n\n.tbl__col-label {\n font-size: var(--typography-body-xs-font-size);\n font-weight: var(--font-weight-semi-bold);\n color: var(--tbl-text);\n line-height: 1.4;\n}\n\n.tbl__col-label--dashed {\n border-bottom: 1px dashed var(--color-slate-400);\n cursor: help;\n}\n\n/* ── GLOBAL TOOLTIP ───────────────────────────────────────── */\n\n.tbl__global-hint {\n position: fixed;\n z-index: 9999;\n transform: translate(-50%, -100%);\n width: var(--tbl-hint-width);\n background-color: var(--tbl-hint-bg);\n border: 1px solid var(--tbl-hint-border);\n border-radius: var(--tbl-hint-radius);\n box-shadow: var(--tbl-hint-shadow);\n padding: var(--spacing-12);\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n transition: opacity 0.15s, visibility 0.15s;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-4);\n text-transform: none;\n letter-spacing: normal;\n white-space: normal;\n}\n\n.tbl__global-hint--visible {\n opacity: 1;\n visibility: visible;\n}\n\n.tbl__global-hint-desc {\n font-size: var(--typography-body-xs-font-size);\n color: var(--tbl-hint-text);\n line-height: 1.5;\n}\n\n.tbl__global-hint-arrow {\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border: 6px solid transparent;\n border-top-color: var(--tbl-hint-bg);\n}\n\n/* ── CELL CONTENT ─────────────────────────────────────────── */\n\n.tbl__cell-inner {\n display: flex;\n align-items: center;\n gap: var(--spacing-12);\n min-width: 0;\n overflow: hidden;\n}\n\n.tbl__cell-icon {\n width: 1.5rem;\n height: 1.5rem;\n object-fit: contain;\n flex-shrink: 0;\n display: block;\n}\n\n.tbl__cell-text {\n font-size: var(--typography-body-xs-font-size);\n color: var(--tbl-text);\n line-height: 1.4;\n white-space: normal;\n word-break: break-word;\n}\n\n.tbl__cell-text--bold {\n font-weight: var(--font-weight-semi-bold);\n}\n\n\n/* ── EMPTY STATE ──────────────────────────────────────────── */\n\n.tbl__empty-cell {\n padding: var(--spacing-48) var(--spacing-24);\n text-align: center;\n font-size: var(--typography-body-md-font-size);\n color: var(--tbl-text-muted);\n}\n\n/* ── FOOTER (PAGINATION) ──────────────────────────────────── */\n\n.tbl__footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: var(--spacing-16) var(--spacing-24);\n border-top: 1px solid var(--tbl-border);\n background-color: var(--tbl-bg);\n}\n\n/* ── INFO BLOCK ───────────────────────────────────────────── */\n\n.tbl-section__info-box {\n margin-top: var(--spacing-40);\n display: flex;\n align-items: flex-start;\n justify-content: center;\n gap: var(--spacing-8);\n}\n\n.tbl-section__info-icon {\n color: var(--color-slate-400);\n flex-shrink: 0;\n margin-top: 0.125rem;\n width: 1rem;\n height: 1rem;\n}\n\n.tbl-section__info-text {\n font-size: var(--typography-body-xs-font-size);\n color: var(--tbl-text-muted);\n line-height: 1.5;\n margin: 0;\n text-align: left;\n}\n\n.tbl__pagination-wrap {\n display: flex;\n justify-content: flex-end;\n flex-shrink: 0;\n width: auto;\n}\n\n/* ── MOBILE ───────────────────────────────────────────────── */\n\n@media (max-width: 767px) {\n .tbl__topbar {\n flex-direction: column;\n align-items: center;\n padding: var(--spacing-16);\n gap: var(--spacing-16);\n }\n\n .tbl__search-wrap {\n max-width: 100%;\n width: 100%;\n }\n\n .tbl__summary {\n text-align: center;\n }\n\n .tbl__th--main,\n .tbl__td--main {\n width: calc(var(--tbl-col-main-width) * 0.7 + var(--spacing-16));\n min-width: calc(var(--tbl-col-main-width) * 0.7 + var(--spacing-16));\n }\n\n .tbl__footer {\n flex-direction: column;\n align-items: stretch;\n padding: var(--spacing-16);\n }\n\n .tbl__pagination-wrap {\n justify-content: center;\n }\n}\n","/* ============================================================\n DYNAMIC TABLE\n Token inheritance:\n Primitive (core) → Semantic (--dtbl-*) → Component styles\n\n STRUCTURE:\n .dtbl-section\n .dtbl-section__header\n .dtbl-section__title\n .dtbl-section__content\n .dtbl / .dtbl--three-columns / .dtbl--four-columns\n .dtbl__scroll-wrapper\n .dtbl__table\n thead .dtbl__tr .dtbl__th\n tbody .dtbl__tr\n .dtbl__th-row ← first-column label\n .dtbl__td ← comparison values\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n --dtbl-section-bg: var(--color-slate-75);\n --dtbl-bg: var(--color-slate-50);\n --dtbl-header-bg: var(--color-slate-75);\n --dtbl-border: var(--color-opacity-slate-8);\n --dtbl-text: var(--text-primary);\n --dtbl-font-family: var(--font-family-base);\n --dtbl-radius: var(--radius-2xl);\n --dtbl-cell-py: var(--spacing-24);\n --dtbl-cell-px: var(--spacing-24);\n}\n\n/* ── SECTION ──────────────────────────────────────────────── */\n\n.dtbl-section {\n width: 100%;\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-48);\n background-color: var(--dtbl-section-bg);\n font-family: var(--dtbl-font-family);\n box-sizing: border-box;\n}\n\n.dtbl-section__header,\n.dtbl-section__content {\n width: 100%;\n max-width: var(--content-width-1280);\n}\n\n@media (min-width: 768px) {\n .dtbl-section {\n padding: var(--spacing-56) var(--spacing-24);\n gap: var(--spacing-64);\n }\n}\n\n@media (min-width: 992px) {\n .dtbl-section {\n padding: var(--spacing-112) var(--spacing-24);\n gap: var(--spacing-80);\n }\n}\n\n.dtbl-section__header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n text-align: left;\n}\n\n@media (min-width: 768px) {\n .dtbl-section__header {\n align-items: center;\n text-align: center;\n }\n}\n\n.dtbl-section__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n letter-spacing: var(--typography-h2-letter-spacing);\n color: var(--dtbl-text);\n margin: 0;\n}\n\n/* ── CARD ─────────────────────────────────────────────────── */\n\n.dtbl {\n width: 100%;\n background-color: var(--dtbl-bg);\n border: 1px solid var(--dtbl-border);\n border-radius: var(--dtbl-radius);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n.dtbl__scroll-wrapper {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.dtbl__table {\n width: 100%;\n min-width: 40rem;\n border-collapse: separate;\n border-spacing: 0;\n table-layout: fixed;\n text-align: left;\n}\n\n.dtbl--three-columns .dtbl__table {\n min-width: 36rem;\n}\n\n.dtbl--four-columns .dtbl__table {\n min-width: 48rem;\n}\n\n/* ── CELLS ────────────────────────────────────────────────── */\n\n.dtbl__th,\n.dtbl__th-row,\n.dtbl__td {\n padding: var(--dtbl-cell-py) var(--dtbl-cell-px);\n border-bottom: 1px solid var(--dtbl-border);\n vertical-align: top;\n box-sizing: border-box;\n}\n\n.dtbl__table tbody .dtbl__tr:last-child .dtbl__th-row,\n.dtbl__table tbody .dtbl__tr:last-child .dtbl__td {\n border-bottom: none;\n}\n\n.dtbl__th {\n background-color: var(--dtbl-header-bg);\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-md-line-height);\n color: var(--dtbl-text);\n}\n\n.dtbl__th-row {\n background-color: var(--dtbl-bg);\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-md-line-height);\n color: var(--dtbl-text);\n text-align: left;\n}\n\n.dtbl__td {\n background-color: var(--dtbl-bg);\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--dtbl-text);\n}\n\n.dtbl__cell {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-4);\n}\n\n.dtbl__cell-line {\n display: block;\n}\n\n@media (max-width: 767px) {\n .dtbl-section {\n --dtbl-cell-py: var(--spacing-16);\n --dtbl-cell-px: var(--spacing-16);\n }\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.avatar-grid {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.avatar-grid__container {\n display: flex;\n flex-direction: column;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n width: 100%;\n align-items: center;\n gap: var(--spacing-48);\n}\n\n@media (min-width: 992px) {\n .avatar-grid__container {\n padding: var(--spacing-112) var(--spacing-24);\n gap: var(--spacing-80);\n }\n}\n\n/* ── Header ────────────────────────────────────────────────── */\n\n.avatar-grid__header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n text-align: left;\n width: 100%;\n max-width: var(--content-width-846);\n gap: var(--spacing-16);\n}\n\n@media (min-width: 992px) {\n .avatar-grid__header {\n align-items: center;\n text-align: center;\n }\n}\n\n.avatar-grid__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n.avatar-grid__description {\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--typography-body-lg-font-weight);\n line-height: var(--typography-body-lg-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Grid wrapper ──────────────────────────────────────────── */\n\n.avatar-grid__grid-wrapper {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n/* ── Grid ──────────────────────────────────────────────────── */\n\n.avatar-grid__grid {\n display: grid;\n grid-template-columns: 1fr;\n row-gap: var(--spacing-32);\n column-gap: var(--spacing-16);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .avatar-grid__grid {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (min-width: 992px) {\n .avatar-grid__grid {\n grid-template-columns: repeat(4, 1fr);\n }\n}\n\n/* ── Extra cards — animated expand/collapse container ──────── */\n\n/*\n * Uses grid-template-rows: 0fr → 1fr for a height animation that\n * respects the actual content size (unlike max-height hacks).\n * The inner .avatar-grid__extra-grid needs min-height: 0 for 0fr to fully collapse.\n */\n.avatar-grid__extra-cards {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows 0.8s cubic-bezier(0.16, 1, 0.3, 1);\n width: 100%;\n}\n\n.avatar-grid__extra-cards--open {\n grid-template-rows: 1fr;\n}\n\n.avatar-grid__extra-grid {\n min-height: 0;\n overflow: hidden;\n display: grid;\n grid-template-columns: 1fr;\n row-gap: var(--spacing-32);\n column-gap: var(--spacing-16);\n padding-top: var(--spacing-24);\n}\n\n@media (min-width: 768px) {\n .avatar-grid__extra-grid {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (min-width: 992px) {\n .avatar-grid__extra-grid {\n grid-template-columns: repeat(4, 1fr);\n padding-top: var(--spacing-32);\n }\n}\n\n/* ── Extra card — individual fade + rise animation ─────────── */\n\n.avatar-grid__extra-card {\n opacity: 0;\n transform: translateY(16px);\n transition:\n opacity 0.6s ease,\n transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.avatar-grid__extra-card--visible {\n opacity: 1;\n transform: translateY(0);\n}\n\n/* ── Card ──────────────────────────────────────────────────── */\n\n.avatar-grid__card {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-24);\n background-color: var(--color-slate-50);\n border-radius: var(--radius-2xl);\n width: 100%;\n}\n\n/* ── Image ─────────────────────────────────────────────────── */\n\n.avatar-grid__image-wrapper {\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n position: relative;\n background-color: var(--color-slate-100);\n}\n\n.avatar-grid__image {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n\n/* ── Content ───────────────────────────────────────────────── */\n\n.avatar-grid__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-8);\n width: 100%;\n}\n\n.avatar-grid__name {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n}\n\n.avatar-grid__role {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n}\n\n/* ── Link ──────────────────────────────────────────────────── */\n\n.avatar-grid__link {\n margin-top: calc(var(--spacing-8) * -1); /* Pull up slightly to reduce gap */\n}\n\n.avatar-grid__link .icon {\n color: #0072B1 !important; /* Official LinkedIn Blue */\n}\n\n.avatar-grid__link:hover .icon {\n color: #005582 !important; /* Darker LinkedIn Blue for hover */\n}\n\n/* ── Actions ───────────────────────────────────────────────── */\n\n.avatar-grid__actions {\n display: flex;\n justify-content: center;\n width: 100%;\n padding-top: var(--spacing-16);\n}\n\n@media (min-width: 992px) {\n .avatar-grid__actions {\n padding-top: 0;\n margin-top: calc(var(--spacing-48) - var(--spacing-80));\n width: auto;\n }\n\n .avatar-grid__actions .button {\n width: auto;\n }\n}\n","/* ============================================================\n IMAGE BANNER\n Variants:\n split-left → text left, photo right panel (default)\n split-right → photo left panel, text right\n full-bg-left → photo covers entire card, text overlaid on left\n full-bg-right → photo covers entire card, text overlaid on right\n chips-left → text + checkmark chips left, collage right\n (deriv.com/partners \"grow your network\" block)\n chips-right → collage left, text + chips right\n\n Spacing follows the system convention:\n mobile → padding: var(--spacing-56) 0 (edge-to-edge card)\n desktop → padding: var(--spacing-112) var(--spacing-24)\n\n Chips variants keep inline page padding + rounded corners at every\n breakpoint (like ParallaxBanner), matching partners.deriv.com.\n ============================================================ */\n\n.image-banner {\n --image-banner-chip-bg: rgba(255, 255, 255, 0.16);\n --image-banner-chip-border: rgba(0, 0, 0, 0.08);\n\n width: 100%;\n font-family: var(--font-family-base);\n box-sizing: border-box;\n /* No horizontal padding on mobile — card is edge-to-edge */\n padding: var(--spacing-56) 0;\n}\n\n@media (min-width: 992px) {\n .image-banner {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/*\n * Chips: page padding at every breakpoint so the card stays inset + rounded.\n * Values match the `.section-container-2` inset on deriv.com/partners:\n * mobile (<768px) → 16px, tablet/desktop (≥768px) → 24px.\n */\n.image-banner--chips {\n padding: var(--spacing-56) var(--spacing-16);\n}\n\n@media (min-width: 768px) {\n .image-banner--chips {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .image-banner--chips {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Card (inner container) ────────────────────────────────── */\n\n.image-banner__inner {\n position: relative;\n display: flex;\n flex-direction: column;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n /* Square corners on mobile (edge-to-edge), rounded on desktop */\n border-radius: 0;\n overflow: hidden;\n background-color: var(--color-slate-1200);\n min-height: 480px;\n}\n\n@media (min-width: 992px) {\n .image-banner__inner {\n border-radius: var(--radius-2xl);\n }\n}\n\n/* Chips card: always rounded (partners uses 2rem / radius-3xl) */\n.image-banner__inner--chips-left,\n.image-banner__inner--chips-right {\n border-radius: var(--radius-3xl);\n min-height: 0;\n display: grid;\n grid-template-columns: 1fr;\n align-items: stretch;\n}\n\n/* ── Split variants: side-by-side on desktop ───────────────── */\n\n.image-banner__inner--split-left .image-banner__content {\n order: 1;\n}\n\n.image-banner__inner--split-left .image-banner__image-wrapper {\n order: 2;\n}\n\n.image-banner__inner--split-right .image-banner__content {\n order: 2;\n}\n\n.image-banner__inner--split-right .image-banner__image-wrapper {\n order: 1;\n}\n\n/*\n * Chips mobile: both left and right variants share the same stacked look —\n * text + chips first, collage below, left-aligned. Desktop (≥992px) is where\n * chips-right mirrors the columns and right-aligns content.\n */\n.image-banner__inner--chips-left .image-banner__content,\n.image-banner__inner--chips-right .image-banner__content {\n order: 1;\n}\n\n.image-banner__inner--chips-left .image-banner__image-wrapper,\n.image-banner__inner--chips-right .image-banner__image-wrapper {\n order: 2;\n}\n\n@media (min-width: 992px) {\n .image-banner__inner--split-left,\n .image-banner__inner--split-right {\n flex-direction: row;\n align-items: stretch;\n }\n\n .image-banner__inner--split-right {\n justify-content: flex-end;\n }\n\n .image-banner__inner--chips-left,\n .image-banner__inner--chips-right {\n grid-template-columns: 1fr 1fr;\n }\n\n .image-banner__inner--chips-left .image-banner__content,\n .image-banner__inner--chips-left .image-banner__image-wrapper,\n .image-banner__inner--chips-right .image-banner__content,\n .image-banner__inner--chips-right .image-banner__image-wrapper {\n order: unset;\n }\n\n .image-banner__inner--chips-left .image-banner__content {\n grid-column: 1;\n grid-row: 1;\n }\n\n .image-banner__inner--chips-left .image-banner__image-wrapper {\n grid-column: 2;\n grid-row: 1;\n }\n\n .image-banner__inner--chips-right .image-banner__image-wrapper {\n grid-column: 1;\n grid-row: 1;\n }\n\n .image-banner__inner--chips-right .image-banner__content {\n grid-column: 2;\n grid-row: 1;\n }\n}\n\n/* ── Full-bg variants: taller card on mobile ───────────────── */\n\n.image-banner__inner--full-bg-left,\n.image-banner__inner--full-bg-right {\n min-height: 740px;\n}\n\n@media (min-width: 992px) {\n .image-banner__inner--full-bg-left,\n .image-banner__inner--full-bg-right {\n min-height: 480px;\n max-height: 480px;\n }\n\n .image-banner__inner--full-bg-right {\n align-items: flex-end;\n }\n}\n\n/* ── Content (text + CTA / chips panel) ────────────────────── */\n\n.image-banner__content {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n text-align: left;\n gap: var(--spacing-16);\n padding: var(--spacing-48) var(--spacing-24);\n flex: 0 0 auto;\n width: 100%;\n box-sizing: border-box;\n position: relative;\n z-index: 1;\n}\n\n/*\n * Chips content padding matches `.content-tier_wrapper` on deriv.com/partners:\n * 56px at desktop (≥992px), 32px below that (mobile + tablet).\n */\n.image-banner__inner--chips-left .image-banner__content,\n.image-banner__inner--chips-right .image-banner__content {\n gap: var(--spacing-24);\n padding: var(--spacing-32);\n justify-content: center;\n /* Stacked layout always left-aligned — even for chips-right */\n align-items: flex-start;\n text-align: left;\n}\n\n@media (min-width: 992px) {\n .image-banner__inner--chips-left .image-banner__content,\n .image-banner__inner--chips-right .image-banner__content {\n padding: var(--spacing-56);\n }\n}\n\n.image-banner__inner--chips-left .image-banner__chips,\n.image-banner__inner--chips-right .image-banner__chips {\n justify-content: flex-start;\n}\n\n/* Right-hand variants: text, title, and CTA align to the right */\n.image-banner__inner--split-right .image-banner__content,\n.image-banner__inner--full-bg-right .image-banner__content {\n align-items: flex-end;\n text-align: right;\n}\n\n.image-banner__inner--split-right .image-banner__actions,\n.image-banner__inner--full-bg-right .image-banner__actions {\n justify-content: flex-end;\n}\n\n@media (min-width: 992px) {\n .image-banner__content {\n gap: var(--spacing-24);\n }\n\n .image-banner__inner--split-left .image-banner__content,\n .image-banner__inner--split-right .image-banner__content {\n width: 50%;\n padding: var(--spacing-64) var(--spacing-56);\n justify-content: center;\n }\n\n .image-banner__inner--full-bg-left .image-banner__content,\n .image-banner__inner--full-bg-right .image-banner__content {\n width: 60%;\n padding: var(--spacing-64) var(--spacing-56);\n justify-content: center;\n flex: 1 1 auto;\n }\n\n .image-banner__inner--full-bg-left .image-banner__content {\n align-self: stretch;\n }\n\n .image-banner__inner--full-bg-right .image-banner__content {\n align-self: flex-end;\n }\n\n .image-banner__inner--chips-left .image-banner__content,\n .image-banner__inner--chips-right .image-banner__content {\n width: auto;\n }\n\n /* chips-right only mirrors alignment on desktop */\n .image-banner__inner--chips-right .image-banner__content {\n align-items: flex-end;\n text-align: right;\n }\n\n .image-banner__inner--chips-right .image-banner__chips {\n justify-content: flex-end;\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.image-banner__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--color-slate-50);\n margin: 0;\n}\n\n/*\n * Partners block uses an H5-scale headline, not full H2. `--typography-h4-*`\n * tokens already resolve responsively (1.5rem/2rem mobile, 2rem/2.5rem\n * tablet, 2.5rem/3rem desktop) which matches the reference at every size —\n * no extra breakpoint overrides needed here.\n */\n.image-banner__inner--chips-left .image-banner__title,\n.image-banner__inner--chips-right .image-banner__title {\n font-family: var(--typography-h4-font-family);\n font-size: var(--typography-h4-font-size);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--typography-h4-line-height);\n letter-spacing: -0.015rem;\n}\n\n/* ── Description ───────────────────────────────────────────── */\n\n.image-banner__description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--color-slate-50);\n margin: 0;\n max-width: 42ch;\n}\n\n.image-banner__inner--chips-left .image-banner__description,\n.image-banner__inner--chips-right .image-banner__description {\n max-width: 36ch;\n}\n\n/* ── Actions ───────────────────────────────────────────────── */\n\n.image-banner__actions {\n display: flex;\n align-items: center;\n padding-top: var(--spacing-8);\n}\n\n/* ── Chips (partners_tag pills) ────────────────────────────── */\n\n.image-banner__chips {\n display: flex;\n flex-wrap: wrap;\n gap: var(--spacing-8);\n list-style: none;\n margin: 0;\n padding: 0;\n width: 100%;\n}\n\n.image-banner__chip {\n display: inline-flex;\n align-items: center;\n justify-content: flex-start;\n gap: var(--spacing-8);\n margin: 0;\n /* 6px vertical / 12px horizontal — matches .partners_tag (.375rem .75rem) */\n padding: calc(var(--spacing-4) + var(--spacing-2)) var(--spacing-12);\n border-radius: var(--radius-full);\n background-color: var(--image-banner-chip-bg);\n border: 1px solid var(--image-banner-chip-border);\n box-sizing: border-box;\n color: var(--color-slate-50);\n}\n\n.image-banner__chip-icon {\n display: block;\n flex-shrink: 0;\n width: 11px;\n height: 12px;\n}\n\n.image-banner__chip-label {\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n white-space: nowrap;\n}\n\n/* ── Split / chips: side-panel image ───────────────────────── */\n\n.image-banner__image-wrapper {\n position: relative;\n width: 100%;\n aspect-ratio: 4 / 3;\n overflow: hidden;\n flex-shrink: 0;\n}\n\n/*\n * Chips collage: banner height is driven by the image’s intrinsic\n * aspect ratio (tier-cover.webp = 1920×1440 / 4:3 is the reference).\n * No fixed aspect-ratio / object-fit:cover — the full asset is visible.\n */\n.image-banner__inner--chips-left .image-banner__image-wrapper,\n.image-banner__inner--chips-right .image-banner__image-wrapper {\n aspect-ratio: unset;\n min-height: 0;\n overflow: hidden;\n height: auto;\n}\n\n@media (min-width: 992px) {\n .image-banner__image-wrapper {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 55%;\n aspect-ratio: unset;\n }\n\n .image-banner__inner--split-left .image-banner__image-wrapper {\n right: 0;\n }\n\n .image-banner__inner--split-right .image-banner__image-wrapper {\n left: 0;\n }\n\n .image-banner__inner--chips-left,\n .image-banner__inner--chips-right {\n /* Image column sets row height; content column stretches to match */\n align-items: stretch;\n }\n\n .image-banner__inner--chips-left .image-banner__image-wrapper,\n .image-banner__inner--chips-right .image-banner__image-wrapper {\n position: relative;\n width: 100%;\n height: auto;\n min-height: 0;\n aspect-ratio: unset;\n align-self: start;\n }\n}\n\n.image-banner__image {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center top;\n display: block;\n}\n\n/* Chips: in-flow image so intrinsic height sizes the banner */\n.image-banner__inner--chips-left .image-banner__image,\n.image-banner__inner--chips-right .image-banner__image {\n position: static;\n inset: unset;\n width: 100%;\n height: auto;\n object-fit: unset;\n object-position: unset;\n display: block;\n}\n\n/*\n * Mobile-only fade at the top of the collage (image always stacks below\n * text on mobile for both chips-left and chips-right).\n */\n.image-banner__image-fade {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: var(--spacing-32);\n pointer-events: none;\n z-index: 1;\n background: linear-gradient(\n to bottom,\n var(--color-slate-1200) 0%,\n transparent 100%\n );\n}\n\n@media (min-width: 992px) {\n .image-banner__image-fade {\n display: none;\n }\n}\n\n/* ── Full-bg: background image + overlay ──────────────────── */\n\n.image-banner__bg-image-wrapper {\n position: absolute;\n inset: 0;\n z-index: 0;\n}\n\n.image-banner__bg-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n\n/*\n * Dark gradient overlay so white text stays legible over any photo.\n * `full-bg-left` fades from opaque on the left (text side) to transparent on\n * the right; `full-bg-right` mirrors it — opaque on the right, transparent\n * on the left.\n */\n.image-banner__bg-overlay {\n position: absolute;\n inset: 0;\n background: linear-gradient(\n to right,\n rgba(0, 0, 0, 0.72) 0%,\n rgba(0, 0, 0, 0.48) 50%,\n rgba(0, 0, 0, 0.10) 100%\n );\n}\n\n.image-banner__inner--full-bg-right .image-banner__bg-overlay {\n background: linear-gradient(\n to left,\n rgba(0, 0, 0, 0.72) 0%,\n rgba(0, 0, 0, 0.48) 50%,\n rgba(0, 0, 0, 0.10) 100%\n );\n}\n","/* ── Semantic tokens ────────────────────────────────────────── */\n\n:root {\n --testimonial-bg: var(--color-slate-75);\n --testimonial-card-bg: var(--color-slate-50);\n --testimonial-card-radius: 2rem; /* 32px — no matching radius token */\n --testimonial-card-shadow: none;\n --testimonial-card-min-height: 416px;\n --testimonial-title-color: var(--text-primary);\n --testimonial-quote-color: var(--text-primary);\n --testimonial-author-name-color: var(--text-primary);\n --testimonial-author-location-color: var(--text-primary);\n --testimonial-dot-color: var(--color-slate-300);\n --testimonial-dot-active-color: var(--color-slate-1200);\n --testimonial-quotemark-color: var(--color-slate-200);\n\n /* ── Trustpilot variant ──\n * `--testimonial-trustpilot-brand` is Trustpilot's official mark color\n * (#00b67a). It is intentionally fixed rather than mapped from the core\n * palette — like the bundled app-store badge logos, this is a\n * third-party trademark and must not shift with the app's theme.\n */\n --testimonial-trustpilot-brand: #00b67a;\n --testimonial-trustpilot-card-bg: var(--color-slate-50);\n --testimonial-trustpilot-card-radius: var(--radius-xl);\n --testimonial-trustpilot-card-shadow: var(--shadow-sm);\n --testimonial-trustpilot-card-shadow-hover: var(--shadow-md);\n --testimonial-trustpilot-quote-color: var(--text-primary);\n --testimonial-trustpilot-author-color: var(--text-primary);\n /* Star-cell colors, matching Trustpilot's own rating-widget SVGs\n * exactly (cdn.trustpilot.net/brand-assets/.../stars/stars-N.svg):\n * flush square cells (no corner radius), a fixed light \"unfilled\"\n * shade, and a white glyph. Fixed rather than mapped to the core\n * palette for the same trademark-fidelity reason as the brand color\n * above — `--color-slate-200` is close but not an exact match. */\n --testimonial-trustpilot-star-empty: #dcdce6;\n --testimonial-trustpilot-star-glyph: #ffffff;\n --testimonial-trustpilot-nav-border: var(--color-slate-300);\n --testimonial-trustpilot-nav-border-hover: var(--color-slate-500);\n --testimonial-trustpilot-nav-icon: var(--color-slate-1200);\n --testimonial-trustpilot-focus-ring: var(--border-focus);\n}\n\n/* ── Section shell ─────────────────────────────────────────── */\n\n.testimonial {\n width: 100%;\n background-color: var(--testimonial-bg);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.testimonial__container {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n width: 100%;\n gap: var(--spacing-48);\n}\n\n@media (min-width: 768px) {\n .testimonial__container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .testimonial__container {\n padding: var(--spacing-112) var(--spacing-24);\n gap: var(--spacing-64);\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.testimonial__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--testimonial-title-color);\n margin: 0;\n text-align: left;\n width: 100%;\n}\n\n/* ── Carousel wrapper ──────────────────────────────────────── */\n\n.testimonial__carousel {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-32);\n}\n\n/* ── Card ──────────────────────────────────────────────────── */\n\n.testimonial__card {\n position: relative;\n width: 100%;\n height: 100%; /* fill the slide wrapper so all cards match the tallest */\n max-width: var(--content-width-1280);\n min-height: var(--testimonial-card-min-height);\n background-color: var(--testimonial-card-bg);\n border-radius: var(--testimonial-card-radius);\n box-shadow: var(--testimonial-card-shadow);\n /* Extra top padding reserves space for the absolute quote mark (100px img + 24px offset + gap) */\n padding: 148px var(--spacing-32) var(--spacing-48);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n text-align: left;\n gap: var(--spacing-24);\n overflow: hidden;\n}\n\n@media (min-width: 992px) {\n .testimonial__card {\n padding: var(--spacing-56) var(--spacing-80);\n align-items: center;\n text-align: center;\n }\n}\n\n/* ── Decorative quote marks ────────────────────────────────── */\n\n.testimonial__quotemark {\n position: absolute;\n user-select: none;\n line-height: 0;\n}\n\n.testimonial__quotemark-img {\n width: 100px;\n height: auto;\n display: block;\n}\n\n.testimonial__quotemark--open {\n top: var(--spacing-24);\n left: var(--spacing-24);\n}\n\n.testimonial__quotemark--close {\n bottom: var(--spacing-24);\n right: var(--spacing-24);\n display: none;\n}\n\n@media (min-width: 992px) {\n .testimonial__quotemark-img {\n width: 130px;\n }\n\n .testimonial__quotemark--open {\n top: var(--spacing-32);\n left: var(--spacing-40);\n }\n\n .testimonial__quotemark--close {\n display: block;\n bottom: var(--spacing-32);\n right: var(--spacing-40);\n }\n}\n\n/* ── Quote text ────────────────────────────────────────────── */\n\n.testimonial__quote {\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--typography-body-lg-font-weight);\n line-height: var(--typography-body-lg-line-height);\n color: var(--testimonial-quote-color);\n text-align: left;\n margin: 0;\n max-width: 680px;\n position: relative;\n z-index: 1;\n}\n\n@media (min-width: 992px) {\n .testimonial__quote {\n text-align: center;\n }\n}\n\n/* ── Author ────────────────────────────────────────────────── */\n\n.testimonial__author {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-4);\n position: relative;\n z-index: 1;\n}\n\n@media (min-width: 992px) {\n .testimonial__author {\n align-items: center;\n }\n}\n\n.testimonial__author-avatar {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n object-fit: cover;\n margin-bottom: var(--spacing-8);\n}\n\n.testimonial__author-name {\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-lg-line-height);\n color: var(--testimonial-author-name-color);\n margin: 0;\n}\n\n.testimonial__author-location {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--testimonial-author-location-color);\n margin: 0;\n}\n\n/* ── Dot pagination ────────────────────────────────────────── */\n\n.testimonial__dots {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n.testimonial__dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: var(--testimonial-dot-color);\n border: none;\n padding: 0;\n cursor: pointer;\n transition: background-color 0.2s ease, transform 0.2s ease;\n flex-shrink: 0;\n}\n\n.testimonial__dot:hover {\n background-color: var(--testimonial-dot-active-color);\n}\n\n.testimonial__dot--active {\n background-color: var(--testimonial-dot-active-color);\n transform: scale(1.25);\n}\n\n/* ── Slides stack — all slides rendered, stacked so container\n always takes the height of the tallest card ──────────────── */\n\n.testimonial__slides {\n position: relative;\n display: grid;\n width: 100%;\n}\n\n/*\n * All slides occupy the same grid cell (row 1 / col 1).\n * They are all rendered in the DOM so the grid row stretches\n * to the tallest card. Inactive slides are invisible + non-interactive.\n */\n.testimonial__slide {\n grid-area: 1 / 1;\n width: 100%;\n align-self: stretch; /* stretch to tallest sibling's height */\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1),\n transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),\n visibility 0s linear 0.35s;\n transform: translateY(6px);\n}\n\n.testimonial__slide--active {\n opacity: 1;\n visibility: visible;\n pointer-events: auto;\n transform: translateY(0);\n transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1),\n transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),\n visibility 0s linear 0s;\n}\n\n.testimonial__slide--exiting {\n opacity: 0;\n visibility: visible; /* keep visible during exit */\n transform: translateY(-6px);\n transition: opacity 0.2s cubic-bezier(0.4, 0, 1, 1),\n transform 0.2s cubic-bezier(0.4, 0, 1, 1),\n visibility 0s linear 0.2s;\n}\n\n/* ══════════════════════════════════════════════════════════════════\n Trustpilot variant\n Horizontally-scrollable review cards + rating badge + nav arrows.\n ══════════════════════════════════════════════════════════════════ */\n\n.testimonial--trustpilot {\n background-color: var(--testimonial-bg);\n /* Head/bleed/foot each manage their own horizontal inset (see below),\n * so the section itself must not clip or pad horizontally — that's\n * what lets the middle carousel bleed to the true viewport edge. */\n overflow-x: hidden;\n}\n\n.testimonial__title--trustpilot {\n text-align: center;\n}\n\n/* ── Head / foot — normal padded, centered content column ─────────\n * Same total top/bottom padding as the global section-padding spec\n * (mobile 56/16, tablet 56/24, desktop 112/24), just split across the\n * two blocks that sandwich the full-bleed carousel, with a smaller\n * gap (32/48) on the inner edge for breathing room around the cards.\n */\n\n.testimonial__tp-head,\n.testimonial__tp-foot {\n width: 100%;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n box-sizing: border-box;\n padding-left: var(--spacing-16);\n padding-right: var(--spacing-16);\n}\n\n.testimonial__tp-head {\n padding-top: var(--spacing-56);\n padding-bottom: var(--spacing-32);\n}\n\n.testimonial__tp-foot {\n padding-top: var(--spacing-32);\n padding-bottom: var(--spacing-56);\n}\n\n@media (min-width: 768px) {\n\n .testimonial__tp-head,\n .testimonial__tp-foot {\n padding-left: var(--spacing-24);\n padding-right: var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .testimonial__tp-head {\n padding-top: var(--spacing-112);\n padding-bottom: var(--spacing-48);\n }\n\n .testimonial__tp-foot {\n padding-top: var(--spacing-48);\n padding-bottom: var(--spacing-112);\n }\n}\n\n/* ── Full-bleed carousel row ───────────────────────────────────── */\n\n.testimonial__tp-bleed {\n width: 100%;\n box-sizing: border-box;\n}\n\n.testimonial__tp-carousel {\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n overflow-x: auto;\n overflow-y: visible;\n overscroll-behavior-x: contain;\n scroll-snap-type: x proximity;\n scroll-behavior: smooth;\n -webkit-overflow-scrolling: touch;\n /* Nav arrows + swipe/drag already cover scrolling — a visible scrollbar\n * track is just chrome deriv.com's own carousel doesn't have (it's a\n * transform-based slider, not a native overflow scroller). */\n scrollbar-width: none;\n /* room for card hover shadow so it isn't clipped by the scrollport;\n * vertical only — horizontal stays full-bleed (no inline inset). */\n margin-block: calc(var(--spacing-8) * -1);\n padding-block: var(--spacing-8);\n /* Without this, the browser treats `scrollLeft: 0` as *misaligned*\n * with card 1's `scroll-snap-align: start` (because of the track's\n * matching padding-inline below) and silently auto-scrolls forward\n * to \"fix\" it on first load — eating the entire breakout gutter.\n * `scroll-padding-inline` redefines the snap port's start/end edges\n * to already account for that gutter, so `scrollLeft: 0` *is* the\n * correctly-snapped resting position and no auto-correction fires.\n * Must always match `.testimonial__tp-track`'s padding-inline. */\n scroll-padding-inline: max(\n var(--spacing-16),\n calc((100vw - var(--content-width-1280)) / 2 + var(--spacing-16))\n );\n}\n\n@media (min-width: 768px) {\n .testimonial__tp-carousel {\n scroll-padding-inline: max(\n var(--spacing-24),\n calc((100vw - var(--content-width-1280)) / 2 + var(--spacing-24))\n );\n }\n}\n\n.testimonial__tp-carousel::-webkit-scrollbar {\n display: none;\n}\n\n.testimonial__tp-carousel:focus-visible {\n outline: 2px solid var(--testimonial-trustpilot-focus-ring);\n outline-offset: -2px;\n}\n\n.testimonial__tp-track {\n display: flex;\n gap: var(--spacing-24);\n width: 100%;\n box-sizing: border-box;\n /* Breakout-carousel gutter: the head/foot column is `max-width:\n * content-width-1280` centered with `margin: 0 auto`, so once the\n * viewport is wider than that, its true inset from the viewport edge\n * is `(100vw - 1280px) / 2 + the column's own side padding` — not\n * just the side padding alone. Reproducing that same sum here (via\n * `max()`, so it collapses back down to plain `spacing-16` below\n * 1280px, exactly like the column itself) keeps the first/last card\n * aligned with the title and footer above/below at every viewport\n * width, not just under 1280px. Because this gutter lives on the\n * *scrollable* track rather than the full-bleed wrapper, it scrolls\n * away with the rest of the content — letting cards bleed edge to\n * edge past it once scrolled, like deriv.com's homepage carousel.\n *\n * Only the leading (left) side is set here as `padding-left`. A\n * trailing `padding-right`/`padding-inline` doesn't work for the\n * matching right-hand gutter: this track is a `width: 100%` flex\n * box, so once its cards overflow that box, the browser doesn't\n * extend the box's own scrollable area to reserve space *after* the\n * overflow for the container's own end-side padding — the last card\n * ends up flush against the scrollport's edge with no resting gutter.\n * The trailing gutter is applied instead via a `::after` spacer (see\n * below): a *padding or margin* on the end side is excluded from a\n * scroll container's scrollable-overflow region once its box is\n * width-constrained and its content overflows it — that's true even\n * of a margin on the actual last flex item, not just container\n * padding. A generated `::after` box, though, is a real anonymous\n * flex item like any card, so its reserved width *does* count. */\n padding-left: max(\n var(--spacing-16),\n calc((100vw - var(--content-width-1280)) / 2 + var(--spacing-16))\n );\n}\n\n@media (min-width: 768px) {\n .testimonial__tp-track {\n padding-left: max(\n var(--spacing-24),\n calc((100vw - var(--content-width-1280)) / 2 + var(--spacing-24))\n );\n }\n}\n\n/* Trailing-gutter spacer — an empty flex item mirroring the track's\n * leading `padding-left`, so the last card comes to rest with the same\n * breathing room as the first instead of stopping flush against the\n * viewport/container edge. Not `aria-hidden`-able since it's generated\n * content (already outside the accessibility tree).\n *\n * The track's `gap` (below) inserts its own `--spacing-24` between every\n * pair of flex items, including the last card and this spacer, so a\n * negative leading margin cancels that automatic gap out — leaving the\n * spacer's own `flex-basis` (set to the full target gutter, matching the\n * leading padding-left exactly) as the only reserved trailing space.\n * (Shrinking flex-basis by the gap instead — e.g. `gutter - 24px` — hits\n * a zero-width edge case right at the 1280px breakpoint, where the two\n * exactly cancel: some browsers then drop the preceding gap from the\n * scrollable-overflow calculation entirely instead of reserving it,\n * collapsing the trailing gutter back to 0.) */\n.testimonial__tp-track::after {\n content: \"\";\n display: block;\n margin-left: calc(-1 * var(--spacing-24));\n flex: 0 0 max(\n var(--spacing-16),\n calc((100vw - var(--content-width-1280)) / 2 + var(--spacing-16))\n );\n}\n\n@media (min-width: 768px) {\n .testimonial__tp-track::after {\n flex-basis: max(\n var(--spacing-24),\n calc((100vw - var(--content-width-1280)) / 2 + var(--spacing-24))\n );\n }\n}\n\n.testimonial__tp-card-wrap {\n flex: 0 0 min(100%, 320px);\n scroll-snap-align: start;\n scroll-snap-stop: normal;\n}\n\n@media (min-width: 768px) {\n .testimonial__tp-card-wrap {\n flex: 0 0 calc((100% - 2 * var(--spacing-24)) / 2.5);\n }\n}\n\n@media (min-width: 992px) {\n .testimonial__tp-card-wrap {\n flex: 0 0 calc((100% - 3 * var(--spacing-24)) / 3.5);\n }\n}\n\n.testimonial__tp-card {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 100%;\n padding: var(--spacing-24);\n background-color: var(--testimonial-trustpilot-card-bg);\n border-radius: var(--testimonial-trustpilot-card-radius);\n box-shadow: var(--testimonial-trustpilot-card-shadow);\n text-decoration: none;\n color: inherit;\n box-sizing: border-box;\n transition: box-shadow 0.2s ease;\n}\n\n.testimonial__tp-card:hover,\n.testimonial__tp-card:focus-visible {\n box-shadow: var(--testimonial-trustpilot-card-shadow-hover);\n}\n\n.testimonial__tp-card:focus-visible {\n outline: 2px solid var(--testimonial-trustpilot-focus-ring);\n outline-offset: var(--spacing-2);\n}\n\n.testimonial__tp-quote {\n margin: var(--spacing-16) 0 0;\n flex: 1 1 auto;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--testimonial-trustpilot-quote-color);\n}\n\n.testimonial__tp-author {\n margin: var(--spacing-24) 0 0;\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n /* Regular weight (not semi-bold) — matches deriv.com's own reviewer-name\n * treatment, which is a light, muted caption rather than a bolded name. */\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n color: var(--testimonial-trustpilot-author-color);\n}\n\n/* ── Star rating cells ────────────────────────────────────────── */\n\n.testimonial__tp-stars {\n display: inline-flex;\n /* Matches the tight ~8% cell-to-gap ratio in Trustpilot's own\n * rating-widget SVGs (e.g. an 8px gap between 96px cells) — the\n * previous spacing-4 (4px) gap looked noticeably wider than the\n * reference at these cell sizes (20–32px). */\n gap: var(--spacing-2);\n}\n\n.testimonial__tp-stars--md .testimonial__tp-star {\n width: 24px;\n height: 24px;\n}\n\n.testimonial__tp-stars--lg .testimonial__tp-star {\n width: 28px;\n height: 28px;\n}\n\n@media (min-width: 768px) {\n .testimonial__tp-stars--lg .testimonial__tp-star {\n width: 32px;\n height: 32px;\n }\n}\n\n.testimonial__tp-star-bg {\n fill: var(--testimonial-trustpilot-star-empty);\n}\n\n.testimonial__tp-star-fill {\n fill: var(--testimonial-trustpilot-brand);\n}\n\n.testimonial__tp-star-glyph {\n fill: var(--testimonial-trustpilot-star-glyph);\n}\n\n/* ── Footer: badge + nav ──────────────────────────────────────── */\n\n.testimonial__tp-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--spacing-24);\n}\n\n@media (max-width: 767px) {\n .testimonial__tp-footer {\n flex-direction: column;\n }\n\n .testimonial__tp-nav {\n margin-inline: auto;\n }\n}\n\n/* Grows to fill the space beside the nav buttons and centers the badge\n * within it — the badge reads as \"centered in the row\", not flush-left. */\n.testimonial__tp-trust {\n flex: 1 1 12rem;\n display: flex;\n justify-content: center;\n}\n\n/* `flex: 1 1 12rem` above is meant to grow the badge horizontally to fill\n * the row beside the nav buttons. Below 768px the footer switches to a\n * column direction (see `.testimonial__tp-footer` above), which flips the\n * main axis to vertical — so that same flex-basis instead stretches the\n * badge wrapper to a 12rem *height*, shoving the nav arrows far down the\n * column, off the initial viewport. Reset it to a content-sized block\n * here so only `justify-content: center` (horizontal centering of the\n * badge) applies on mobile. Declared after the base rule (same\n * specificity) so it wins the cascade at this breakpoint. */\n@media (max-width: 767px) {\n .testimonial__tp-trust {\n flex: 0 0 auto;\n width: 100%;\n }\n}\n\n.testimonial__tp-badge {\n display: inline-flex;\n align-items: center;\n text-decoration: none;\n}\n\n/* Official Trustpilot \"stars + wordmark\" widget graphic — used as a single\n * flush asset (rather than composed from our own star/divider/wordmark\n * primitives) so the rating badge is pixel-identical to Trustpilot's own\n * TrustBox export, exactly as it appears on deriv.com. Height is fixed\n * (not the source's intrinsic 33px) so it matches the card-star sizing\n * scale at each breakpoint; width follows automatically from its ratio. */\n.testimonial__tp-badge-img {\n display: block;\n height: 28px;\n width: auto;\n}\n\n@media (min-width: 768px) {\n .testimonial__tp-badge-img {\n height: 32px;\n }\n}\n\n.testimonial__tp-badge:focus-visible {\n outline: 2px solid var(--testimonial-trustpilot-focus-ring);\n outline-offset: var(--spacing-4);\n border-radius: var(--radius-xs);\n}\n\n.testimonial__tp-nav {\n display: flex;\n flex-shrink: 0;\n gap: var(--spacing-16);\n}\n\n@media (min-width: 768px) {\n .testimonial__tp-nav {\n margin-left: auto;\n }\n}\n\n.testimonial__tp-nav-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-48);\n height: var(--spacing-48);\n padding: 0;\n border: 1px solid var(--testimonial-trustpilot-nav-border);\n border-radius: var(--radius-full);\n background-color: transparent;\n color: var(--testimonial-trustpilot-nav-icon);\n cursor: pointer;\n transition: border-color 0.15s ease;\n}\n\n.testimonial__tp-nav-btn:hover:not(:disabled) {\n border-color: var(--testimonial-trustpilot-nav-border-hover);\n}\n\n.testimonial__tp-nav-btn:focus-visible {\n outline: 2px solid var(--testimonial-trustpilot-focus-ring);\n outline-offset: var(--spacing-2);\n}\n\n/* Inactive prev/next button: muted rather than hidden, so both directions\n * are visible from the first render — showing the user this is a carousel\n * up front, instead of the \"next\" arrow appearing to come from nowhere\n * once the other end is scrolled away. Matches the disabled-state opacity\n * used by the core Button component. Still occupies its normal slot (no\n * `display`/unmounting change), so the nav's total width — and therefore\n * the centered badge next to it — stays stable while scrolling. */\n.testimonial__tp-nav-btn:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n","/* ── Root ─────────────────────────────────────────────────── */\n\n.bh-root {\n width: 100%;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .bh-root {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Desktop layout ───────────────────────────────────────── */\n\n.bh-desktop {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n}\n\n.bh-desktopHeader {\n display: flex;\n align-items: center;\n gap: var(--spacing-24);\n}\n\n.bh-headerLeft {\n flex: 1 0 0;\n min-width: 0;\n}\n\n.bh-headerRight {\n flex: 0 0 auto;\n width: 295px;\n}\n\n.bh-desktopBody {\n display: flex;\n align-items: flex-start;\n gap: var(--spacing-24);\n}\n\n.bh-mobile {\n display: none;\n}\n\n/* ── Sidebar columns ──────────────────────────────────────── */\n\n.bh-sidebar {\n flex: 1 0 0;\n min-width: 0;\n display: flex;\n align-items: flex-end;\n}\n\n.bh-column {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n width: 100%;\n}\n\n.bh-columnHeader {\n display: flex;\n align-items: center;\n gap: 0;\n width: 100%;\n}\n\n.bh-columnLabel {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n padding: 0 var(--spacing-8);\n border-radius: var(--radius-full);\n background-color: var(--tag-fill-background);\n font-family: var(--font-family-base);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-regular);\n line-height: 20px;\n color: var(--tag-text-color);\n white-space: nowrap;\n flex-shrink: 0;\n}\n\n.bh-columnLine {\n flex: 1 0 0;\n min-width: 0;\n height: 1px;\n background-color: var(--color-opacity-slate-8);\n}\n\n/* ── Column list items ────────────────────────────────────── */\n\n.bh-columnList {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.bh-listItem {\n padding-bottom: var(--spacing-16);\n border-bottom: 1px solid var(--color-opacity-slate-8);\n}\n\n.bh-listItem .ct-title {\n font-size: 16px;\n line-height: 24px;\n}\n\n.bh-listItem .ct-thumbnailWrapper {\n width: 80px !important;\n height: 53px !important;\n}\n\n.bh-listItem .card-thumbnail.ct-horizontal {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n.bh-listItem:last-child {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n/* ── Vertical divider ─────────────────────────────────────── */\n\n.bh-divider {\n width: 1px;\n align-self: stretch;\n background-color: var(--color-opacity-slate-8);\n flex-shrink: 0;\n}\n\n/* ── Center / Featured ────────────────────────────────────── */\n\n.bh-center {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n flex: 2 1 0;\n min-width: 0;\n justify-content: flex-start;\n align-self: stretch;\n}\n\n.bh-featured {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.bh-featuredInfo {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n}\n\n.bh-featuredTitle {\n font-family: var(--typography-h4-font-family);\n font-size: var(--typography-h4-font-size);\n font-weight: var(--typography-h4-font-weight);\n line-height: var(--typography-h4-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n}\n\n.bh-featuredSummary {\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: 24px;\n color: var(--color-slate-1200);\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.bh-featuredTags {\n display: flex;\n align-items: center;\n gap: var(--spacing-4);\n}\n\n.bh-featuredImage {\n width: 100%;\n border-radius: var(--radius-xl);\n overflow: hidden;\n position: relative;\n aspect-ratio: 594 / 381;\n}\n\n.bh-featuredImg {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n border-radius: inherit;\n}\n\n/* ── Featured footer (2 small cards below featured) ───────── */\n\n.bh-featuredFooter {\n display: flex;\n align-items: flex-start;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n.bh-footerItem {\n display: flex;\n align-items: flex-start;\n gap: var(--spacing-16);\n flex: 1 0 0;\n min-width: 0;\n}\n\n.bh-footerDivider {\n width: 1px;\n align-self: stretch;\n background-color: var(--color-opacity-slate-8);\n flex-shrink: 0;\n}\n\n.bh-footerContent {\n flex: 1 0 0;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n}\n\n.bh-footerTitle {\n font-family: var(--font-family-base);\n font-size: 16px;\n font-weight: var(--font-weight-semi-bold);\n line-height: 24px;\n color: var(--color-slate-1200);\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n}\n\n/* ── Tag items ────────────────────────────────────────────── */\n\n.bh-tagItem {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-4);\n}\n\n.bh-tagDot {\n color: var(--tag-custom-text-color);\n font-size: var(--font-size-sm);\n line-height: 1;\n}\n\n/* ── Mobile layout ────────────────────────────────────────── */\n\n.bh-mobileFeatured {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n padding: var(--spacing-24) var(--spacing-16) 0;\n}\n\n.bh-mobileLabel {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n padding: 0 var(--spacing-8);\n border-radius: var(--radius-full);\n background-color: var(--tag-fill-background);\n font-family: var(--font-family-base);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-regular);\n line-height: 20px;\n color: var(--tag-text-color);\n white-space: nowrap;\n align-self: flex-start;\n}\n\n.bh-mobileFeaturedImage {\n width: 100%;\n aspect-ratio: 594 / 369;\n border-radius: var(--radius-md);\n overflow: hidden;\n position: relative;\n}\n\n.bh-mobileSection {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n padding: 0 var(--spacing-16);\n padding-bottom: var(--spacing-24);\n border-bottom: 1px solid var(--color-opacity-slate-8);\n}\n\n.bh-mobileSection:last-child {\n border-bottom: none;\n}\n\n@media (max-width: 991px) {\n .bh-desktop {\n display: none;\n }\n\n .bh-mobile {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n }\n}\n\n@media (min-width: 768px) and (max-width: 991px) {\n .bh-columnList {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--spacing-16);\n }\n\n .bh-columnList .bh-listItem:nth-last-child(-n+2) {\n border-bottom: none;\n padding-bottom: 0;\n }\n\n .bh-mobileSection {\n border-bottom: none !important;\n padding-bottom: 0;\n }\n\n .bh-mobileFeatured {\n border-bottom: none !important;\n padding-bottom: 0;\n }\n}\n\n@media (max-width: 767px) {\n .bh-listItemThumb {\n width: 80px;\n height: 53px;\n }\n\n .bh-featuredFooter {\n gap: var(--spacing-8);\n }\n}\n","/* ── Root ─────────────────────────────────────────────────── */\n\n.as-root {\n width: 100%;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .as-root {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Header ───────────────────────────────────────────────── */\n\n.as-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: var(--spacing-24);\n}\n\n.as-title {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n}\n\n/* ── Desktop layout ───────────────────────────────────────── */\n\n.as-desktop {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n}\n\n.as-mobile {\n display: none;\n}\n\n/* ── Featured row (desktop) ───────────────────────────────── */\n\n.as-featuredRow {\n width: 100%;\n}\n\n.as-featuredRow .card-thumbnail.ct-horizontal {\n align-items: center;\n border-bottom: none;\n padding-bottom: 0;\n max-width: none !important;\n gap: var(--spacing-24);\n}\n\n.as-featuredRow .ct-thumbnailWrapper {\n width: auto !important;\n height: auto !important;\n flex: 1 1 50% !important;\n aspect-ratio: 16 / 9 !important;\n}\n\n.as-featuredRow .ct-content {\n flex: 1 1 50% !important;\n}\n\n.as-featuredRow .ct-title {\n font-size: var(--typography-h4-font-size);\n font-weight: var(--typography-h4-font-weight);\n line-height: var(--typography-h4-line-height);\n}\n\n/* ── Grid (desktop) ───────────────────────────────────────── */\n\n.as-grid {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: var(--spacing-24);\n}\n\n/* ── Mobile layout ────────────────────────────────────────── */\n\n.as-mobileFeatured {\n padding-bottom: var(--spacing-16);\n border-bottom: 1px solid var(--color-opacity-slate-8);\n}\n\n.as-mobileList {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n margin-top: var(--spacing-16);\n}\n\n.as-mobileListItem {\n padding-bottom: var(--spacing-16);\n border-bottom: 1px solid var(--color-opacity-slate-8);\n}\n\n.as-mobileListItem:last-child {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n.as-mobileListItem .card-thumbnail.ct-horizontal {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n@media (max-width: 991px) {\n .as-desktop {\n display: none;\n }\n\n .as-mobile {\n display: flex;\n flex-direction: column;\n }\n}\n\n/* ── Showcase variant (desktop) ───────────────────────────── */\n\n.as-showcaseGrid {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n gap: var(--spacing-24);\n}\n\n.as-showcaseFeatured {\n display: flex;\n}\n\n.as-showcaseCol {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.as-showcaseItem {\n padding-bottom: var(--spacing-16);\n border-bottom: 1px solid var(--color-opacity-slate-8);\n}\n\n.as-showcaseItem:last-child {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n.as-showcaseItem .card-thumbnail.ct-horizontal {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n/* ── Grid variant — mobile horizontal scroll ──────────────── */\n\n.as-mobile-grid {\n display: none;\n}\n\n.as-mobileScroll {\n display: flex;\n gap: var(--spacing-16);\n overflow-x: auto;\n scroll-snap-type: x mandatory;\n -webkit-overflow-scrolling: touch;\n padding: 0 var(--spacing-16);\n padding-bottom: var(--spacing-8);\n margin: 0 calc(var(--spacing-16) * -1);\n}\n\n.as-mobileScroll::-webkit-scrollbar {\n display: none;\n}\n\n.as-mobileScrollItem {\n flex: 0 0 280px;\n scroll-snap-align: start;\n}\n\n@media (max-width: 991px) {\n .as-mobile-grid {\n display: block;\n }\n}\n","/* ============================================================\n CORAL BANNER\n Variants: static | carousel\n Full-bleed coral promo banner — matches the \"Join 3M+ global\n traders\" banner on deriv.com and deriv.com/markets/forex.\n\n Token inheritance:\n Core (--color-*, --spacing-*, --font-*) →\n Semantic (--crb-*) →\n Styles\n\n NOTE — deliberate deviations from the global template padding\n spec (Rule 4) and max-width, to reproduce the reference banner\n exactly:\n - Vertical padding steps 80 / 112 / 96 / 72px (not 56 / 112px)\n - Container max-width 78rem / 1248px (not 1280px)\n Values are still 1:1 with the live site's compiled CSS.\n ============================================================ */\n\n/* ── COMPONENT TOKENS ─────────────────────────────────────── */\n:root {\n --crb-bg: var(--color-coral-700);\n --crb-text: var(--color-slate-50);\n\n --crb-max-width: 78rem;\n /* 1248px — matches reference `.section-container` */\n --crb-padding-inline: var(--spacing-16);\n --crb-padding-block: var(--spacing-72);\n /* < 480px */\n\n --crb-grid-gap: 1.75rem;\n /* 28px — reference `.newbanner-grid` column gap */\n --crb-content-gap: var(--spacing-24);\n\n --crb-title-size: 3rem;\n --crb-title-lh: 3.5rem;\n --crb-title-weight: var(--font-weight-extra-bold);\n\n --crb-body-size: var(--typography-body-lg-font-size);\n --crb-body-lh: var(--typography-body-lg-line-height);\n\n --crb-transition-easing: ease-in-out;\n\n --crb-control-size: 2.5rem;\n /* 40px arrow buttons */\n --crb-control-border: var(--color-opacity-white-48);\n --crb-control-hover-bg: var(--color-opacity-white-24);\n --crb-control-inset: var(--spacing-24);\n\n --crb-dot-inactive: var(--color-opacity-white-48);\n --crb-dot-active: var(--color-slate-50);\n --crb-dot-size: 0.5rem;\n --crb-dot-active-width: 1.5rem;\n}\n\n@media (min-width: 480px) {\n :root {\n --crb-title-size: 4.5rem;\n /* 72px — reference `.newbanner-header` (≥ 480px) */\n --crb-title-lh: 5rem;\n /* 80px */\n --crb-padding-block: var(--spacing-96);\n /* 480–767px */\n }\n}\n\n/* 768–991px (tablet): reference padding is taller than desktop (112px) —\n the grid has already collapsed to one column here, needing more\n vertical breathing room. */\n@media (min-width: 768px) {\n :root {\n --crb-padding-inline: var(--spacing-24);\n --crb-padding-block: var(--spacing-112);\n }\n}\n\n@media (min-width: 992px) {\n :root {\n --crb-padding-block: var(--spacing-80);\n /* ≥ 992px — desktop is more compact than tablet */\n }\n}\n\n/* ── SECTION (full-bleed) ─────────────────────────────────── */\n\n.crb {\n position: relative;\n width: 100%;\n background-color: var(--crb-bg);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n overflow: hidden;\n}\n\n/* ── INNER — horizontal centring / padding only ──────────── */\n\n.crb__inner {\n width: 100%;\n max-width: var(--crb-max-width);\n margin: 0 auto;\n padding-inline: var(--crb-padding-inline);\n box-sizing: border-box;\n}\n\n/* ── STAGE — vertical padding + positioning context for\n dots/arrows (zero horizontal padding of its own, so\n `left: 0` / `right: 0` align exactly with the text column) ── */\n\n.crb__stage {\n position: relative;\n width: 100%;\n padding-block: var(--crb-padding-block);\n box-sizing: border-box;\n}\n\n/* ── VIEWPORT / TRACK (carousel only) ─────────────────────── */\n\n.crb__viewport {\n position: relative;\n width: 100%;\n overflow: hidden;\n touch-action: pan-y;\n}\n\n.crb__track {\n display: flex;\n width: 100%;\n transition-property: transform;\n transition-timing-function: var(--crb-transition-easing);\n will-change: transform;\n}\n\n.crb__slide {\n flex: 0 0 100%;\n min-width: 100%;\n box-sizing: border-box;\n}\n\n/* ── GRID — text column + reserved spacer column ─────────── */\n\n.crb__grid {\n display: grid;\n grid-template-columns: 1fr;\n align-items: center;\n gap: var(--crb-grid-gap);\n}\n\n@media (min-width: 992px) {\n .crb__grid {\n grid-template-columns: 2.15fr 1fr;\n }\n}\n\n.crb__spacer {\n display: none;\n}\n\n@media (min-width: 992px) {\n .crb__spacer {\n display: block;\n }\n}\n\n/* ── CONTENT ──────────────────────────────────────────────── */\n\n.crb__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--crb-content-gap);\n text-align: left;\n}\n\n.crb__title {\n margin: 0;\n font-family: var(--font-family-base);\n font-size: var(--crb-title-size);\n font-weight: var(--crb-title-weight);\n line-height: var(--crb-title-lh);\n color: var(--crb-text);\n}\n\n.crb__description {\n margin: 0;\n font-size: var(--crb-body-size);\n font-weight: var(--typography-body-lg-font-weight);\n line-height: var(--crb-body-lh);\n color: var(--crb-text);\n}\n\n.crb__buttons {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--spacing-16);\n}\n\n/* ── DOTS ─────────────────────────────────────────────────── */\n\n.crb__dots {\n position: absolute;\n left: 0;\n bottom: var(--crb-control-inset);\n display: flex;\n align-items: center;\n gap: 0.375rem;\n}\n\n.crb__dot {\n appearance: none;\n padding: 0;\n border: none;\n cursor: pointer;\n width: var(--crb-dot-size);\n height: var(--crb-dot-size);\n border-radius: var(--radius-full);\n background-color: var(--crb-dot-inactive);\n transition: width 0.3s ease, background-color 0.3s ease;\n}\n\n.crb__dot--active {\n width: var(--crb-dot-active-width);\n background-color: var(--crb-dot-active);\n}\n\n.crb__dot:focus-visible {\n outline: 2px solid var(--crb-text);\n outline-offset: 2px;\n}\n\n/* ── ARROWS ───────────────────────────────────────────────── */\n\n.crb__arrows {\n position: absolute;\n right: 0;\n bottom: var(--crb-control-inset);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.crb__arrow {\n appearance: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--crb-control-size);\n height: var(--crb-control-size);\n border-radius: var(--radius-full);\n border: 1px solid var(--crb-control-border);\n background-color: transparent;\n color: var(--crb-text);\n cursor: pointer;\n transition: background-color 0.3s ease-out;\n}\n\n.crb__arrow:hover {\n background-color: var(--crb-control-hover-bg);\n}\n\n.crb__arrow svg {\n width: 1rem;\n height: 1rem;\n}\n\n/* ── Small mobile — dots/arrows hidden below the section on very\n narrow screens if content wraps tall; kept visible by default,\n consumers can hide via showDots/showArrows if needed. ── */\n@media (max-width: 359px) {\n .crb__arrows {\n display: none;\n }\n}\n","/* ============================================================\n FEATURE AWARDS COMPONENT\n Token inheritance:\n Primitive (core) → Semantic (--fa-*) → Component styles\n\n Section:\n --fa-bg var(--color-slate-50) [white]\n --fa-max-width var(--content-width-1280) [1280px]\n\n Section padding (global spec — mobile/tablet/desktop):\n mobile spacing-56 / spacing-16\n tablet spacing-56 / spacing-24\n desktop spacing-112 / spacing-24\n\n Title:\n --fa-title-color var(--text-primary)\n Typography: --typography-h2-*\n\n Item:\n --fa-item-title-color var(--color-slate-1200)\n --fa-item-subtitle-color var(--color-slate-1200)\n\n Grid columns (desktop/tablet):\n Item flex-basis/max-width are tuned so exactly 5 items fit per\n row at the 1280px max-width container (1232px content width):\n 5 × 227px + 4 × 24px gap ≈ 1232px. A 6th item never fits inside\n that width, so 5 is the hard ceiling regardless of screen size;\n narrower viewports naturally wrap to 4, 3, 2 … per row.\n\n Mobile marquee:\n --fa-duration 32s (default, overridable per-instance via inline style)\n ============================================================ */\n\n:root {\n --fa-bg: var(--color-slate-50);\n --fa-max-width: var(--content-width-1280);\n\n --fa-title-color: var(--text-primary);\n\n --fa-item-title-color: var(--text-primary);\n --fa-item-subtitle-color: var(--text-primary);\n\n --fa-item-basis: 12.5rem;\n /* 200px — grid item's preferred/minimum width before wrapping */\n --fa-item-max: 16rem;\n /* 256px — caps growth so a short row doesn't stretch too wide */\n --fa-item-gap-x: var(--spacing-24);\n --fa-item-gap-y: var(--spacing-40);\n}\n\n/* ── SECTION ─────────────────────────────────────────────────── */\n\n.fa {\n width: 100%;\n background-color: var(--fa-bg);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n}\n\n/* ── INNER WRAPPER — global section padding spec ────────────── */\n\n.fa__inner {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-40);\n max-width: var(--fa-max-width);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .fa__inner {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .fa__inner {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── TITLE ───────────────────────────────────────────────────── */\n\n.fa__title {\n margin: 0;\n width: 100%;\n text-align: left;\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--fa-title-color);\n}\n\n@media (min-width: 768px) {\n .fa__title {\n text-align: center;\n }\n}\n\n/* ── DESKTOP / TABLET GRID — centered, wraps, last row centers ── */\n\n.fa__grid {\n display: none;\n width: 100%;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: center;\n row-gap: var(--fa-item-gap-y);\n column-gap: var(--fa-item-gap-x);\n}\n\n@media (min-width: 768px) {\n .fa__grid {\n display: flex;\n }\n}\n\n/* ── MOBILE SCROLLER — hidden below 768px only ──────────────── */\n\n.fa__scroller {\n display: block;\n width: 100%;\n overflow-x: hidden;\n}\n\n@media (min-width: 768px) {\n .fa__scroller {\n display: none;\n }\n}\n\n/* ── MARQUEE TRACK ───────────────────────────────────────────── */\n\n.fa__track {\n display: flex;\n width: max-content;\n}\n\n.fa__track-group {\n display: flex;\n flex-shrink: 0;\n gap: var(--fa-item-gap-x);\n padding-right: var(--fa-item-gap-x);\n}\n\n/* Continuous seamless loop: the track renders two identical\n groups back to back, so translating by exactly -50% of the\n full (2×) track width shifts by one group's width — the next\n frame is pixel-identical to frame 0. */\n.fa__track--auto {\n animation: fa-marquee var(--fa-duration, 32s) linear infinite;\n}\n\n.fa__track--auto:hover,\n.fa__track--auto:focus-within {\n animation-play-state: paused;\n}\n\n@keyframes fa-marquee {\n from {\n transform: translateX(0);\n }\n\n to {\n transform: translateX(-50%);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa__scroller {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n\n .fa__track--auto {\n animation: none;\n }\n}\n\n/* ── AWARD ITEM — leaf / text / leaf ─────────────────────────── */\n\n.fa__item {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-8);\n min-width: 0;\n}\n\n/* Grid (desktop/tablet): grow/shrink around a shared basis so each\n wrapped row naturally holds as many items as fit — capped at 5\n per row by the container math above — and a partial final row\n stays centered (via .fa__grid's justify-content) instead of\n stretching edge-to-edge. */\n.fa__grid .fa__item {\n flex: 1 1 var(--fa-item-basis);\n max-width: var(--fa-item-max);\n}\n\n/* Mobile marquee: fixed width per item so the ticker reads at a\n consistent, predictable pace. */\n.fa__track-group .fa__item {\n flex: 0 0 var(--fa-item-basis);\n}\n\n.fa__item-text {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-4);\n text-align: center;\n min-width: 0;\n}\n\n.fa__item-title {\n margin: 0;\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-sm-line-height);\n color: var(--fa-item-title-color);\n}\n\n.fa__item-subtitle {\n margin: 0;\n font-family: var(--typography-body-xs-font-family);\n font-size: var(--typography-body-xs-font-size);\n font-weight: var(--typography-body-xs-font-weight);\n line-height: var(--typography-body-xs-line-height);\n color: var(--fa-item-subtitle-color);\n}\n\n/* ── LAUREL LEAF ICON ────────────────────────────────────────── */\n\n.fa__leaf {\n flex-shrink: 0;\n width: 1.5rem;\n height: auto;\n display: block;\n user-select: none;\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.fb-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.fb-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-48);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .fb-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .fb-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.fb-title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n text-align: center;\n margin: 0;\n}\n\n/* ── Posts grid ────────────────────────────────────────────── */\n\n.fb-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .fb-grid {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (min-width: 992px) {\n .fb-grid {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n/* ── Clickable card wrapper ────────────────────────────────── */\n\n.fb-cardLink {\n display: block;\n color: inherit;\n text-decoration: none;\n border-radius: var(--radius-2xl);\n}\n\n.fb-cardButton {\n width: 100%;\n padding: 0;\n background: none;\n border: none;\n text-align: left;\n cursor: pointer;\n font: inherit;\n}\n\n.fb-cardLink:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n}\n\n/* ── \"See all\" link ────────────────────────────────────────── */\n\n.fb-linkWrap {\n display: flex;\n justify-content: center;\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.fbc-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.fbc-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-32);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .fbc-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .fbc-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.fbc-title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n text-align: center;\n margin: 0;\n}\n\n/* ── Search field ──────────────────────────────────────────── */\n\n.fbc-searchWrap {\n width: 100%;\n max-width: 100%;\n}\n\n@media (min-width: 992px) {\n .fbc-searchWrap {\n /* 39.5rem / 632px — matches the search field width on\n * deriv.com/newsroom/deriv-in-the-news at desktop widths */\n max-width: 39.5rem;\n }\n}\n\n/* ── Tabs row ──────────────────────────────────────────────── */\n\n.fbc-tabsWrap {\n display: flex;\n justify-content: center;\n width: 100%;\n max-width: 100%;\n}\n\n.fbc-tabsWrap .tabs-menu {\n justify-content: center;\n padding-left: var(--spacing-16);\n padding-right: var(--spacing-16);\n margin-left: calc(var(--spacing-16) * -1);\n margin-right: calc(var(--spacing-16) * -1);\n width: calc(100% + var(--spacing-32));\n}\n\n@media (min-width: 768px) {\n .fbc-tabsWrap .tabs-menu {\n flex-wrap: wrap;\n padding-left: 0;\n padding-right: 0;\n margin-left: 0;\n margin-right: 0;\n width: auto;\n }\n}\n\n/* ── Posts grid ────────────────────────────────────────────── */\n\n.fbc-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .fbc-grid {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (min-width: 992px) {\n .fbc-grid {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n/* ── Clickable card wrapper ────────────────────────────────── */\n\n.fbc-cardLink {\n display: block;\n color: inherit;\n text-decoration: none;\n border-radius: var(--radius-2xl);\n}\n\n.fbc-cardButton {\n width: 100%;\n padding: 0;\n background: none;\n border: none;\n text-align: left;\n cursor: pointer;\n font: inherit;\n}\n\n.fbc-cardLink:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n}\n\n/* ── Empty state ───────────────────────────────────────────── */\n\n.fbc-emptyState {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--color-slate-1200);\n text-align: center;\n margin: 0;\n padding: var(--spacing-32) 0;\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.hcc-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.hcc-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-48);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .hcc-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .hcc-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Header ────────────────────────────────────────────────── */\n\n.hcc-header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n text-align: left;\n}\n\n@media (min-width: 768px) {\n .hcc-header {\n align-items: center;\n text-align: center;\n }\n}\n\n.hcc-sectionTitle {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n.hcc-sectionDescription {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n margin: 0;\n max-width: 640px;\n}\n\n/* ── Categories grid ──────────────────────────────────────────\n Column count is capped at 3 and driven by category count (see\n getColumnCount in HelpCentreCategories.tsx): 1 or 2 categories render in\n that many columns instead of stretching or leaving a sparse row; 3+\n categories always wrap to the standard 1 → 2 → 3 responsive grid, adding\n more rows as needed. ─────────────────────────────────────────────── */\n\n.hcc-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-16);\n width: 100%;\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n@media (min-width: 768px) {\n .hcc-grid--2,\n .hcc-grid--3 {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .hcc-grid--3 {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n.hcc-gridItem {\n display: flex;\n min-width: 0;\n}\n\n/* ── Category tile ─────────────────────────────────────────── */\n\n.hcc-tile {\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: flex-start;\n /* Icon pinned to the top, title pinned to the bottom — the gap between them\n grows to fill the tile's min-height rather than being a fixed value. */\n justify-content: space-between;\n gap: var(--spacing-32);\n width: 100%;\n min-width: 0;\n min-height: calc(11.5 * var(--spacing-16));\n box-sizing: border-box;\n padding: var(--spacing-24);\n background-color: var(--color-slate-75);\n border: none;\n border-radius: var(--radius-2xl);\n text-align: left;\n text-decoration: none;\n cursor: pointer;\n font: inherit;\n color: inherit;\n transition: transform 0.2s ease;\n}\n\n@media (min-width: 768px) {\n .hcc-tile {\n gap: var(--spacing-48);\n padding: var(--spacing-32);\n min-height: calc(14.5 * var(--spacing-16));\n }\n}\n\n@media (min-width: 992px) {\n .hcc-tile {\n min-height: calc(15 * var(--spacing-16));\n }\n}\n\n.hcc-tile:hover {\n transform: scale(0.98);\n}\n\n.hcc-tile:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n}\n\n.hcc-tile-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-48);\n height: var(--spacing-48);\n flex-shrink: 0;\n}\n\n.hcc-tile-iconImage {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.hcc-tile-title {\n min-width: 0;\n width: 100%;\n font-family: var(--typography-h6-font-family);\n font-size: var(--typography-h6-font-size);\n font-weight: var(--typography-h6-font-weight);\n line-height: var(--typography-h6-line-height);\n color: var(--text-primary);\n overflow-wrap: break-word;\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.hcsc-section {\n width: 100%;\n background-color: var(--color-white);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.hcsc-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-32);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .hcsc-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .hcsc-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.hcsc-title {\n font-family: var(--typography-h1-font-family);\n font-size: var(--typography-h1-font-size);\n font-weight: var(--typography-h1-font-weight);\n line-height: var(--typography-h1-line-height);\n color: var(--text-primary);\n text-align: center;\n margin: 0;\n width: 100%;\n}\n\n/* ── Search field wrapper ──────────────────────────────────── */\n\n.hcsc-searchWrap {\n width: 100%;\n max-width: var(--content-width-846);\n}\n\n.hcsc-searchWrap > * {\n width: 100%;\n}\n\n/* ── Question cards grid ───────────────────────────────────── */\n\n.hcsc-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-16);\n width: 100%;\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n@media (min-width: 768px) {\n .hcsc-grid {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .hcsc-grid {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n.hcsc-gridItem {\n display: flex;\n min-width: 0;\n}\n\n/* ── Question card ─────────────────────────────────────────── */\n\n.hcsc-card {\n display: flex;\n flex: 1;\n align-items: center;\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n padding: var(--spacing-24);\n background-color: var(--color-slate-75);\n border: none;\n border-radius: var(--radius-2xl);\n text-align: left;\n text-decoration: none;\n cursor: pointer;\n font: inherit;\n color: inherit;\n transition: transform 0.2s ease;\n}\n\n.hcsc-card:hover {\n transform: scale(0.98);\n}\n\n.hcsc-card:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n}\n\n.hcsc-card-text {\n min-width: 0;\n width: 100%;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n overflow-wrap: break-word;\n}\n\n/* ── No results state ──────────────────────────────────────── */\n\n.hcsc-noResults {\n width: 100%;\n padding: var(--spacing-32) 0;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--color-slate-1200);\n text-align: center;\n margin: 0;\n}\n","/* ============================================================\n HELP CENTER PAGE TEMPLATE\n Token inheritance:\n Primitive (core) → Semantic (--hcp-*) → Component styles\n\n Layout:\n Mobile (<768px) search bar → pill dropdown trigger → content\n (tapping the trigger opens the \"Articles in this\n section\" bottom sheet with the full question list)\n Tablet/Desktop (≥768px) search bar → [sidebar question table | content]\n\n Section padding follows the global three-step spec:\n mobile spacing-56 / spacing-16\n tablet spacing-56 / spacing-24\n desktop spacing-112 / spacing-24\n ============================================================ */\n\n:root {\n --hcp-max-width: var(--content-width-1280);\n\n --hcp-sidebar-width: 15.5rem; /* 248px */\n --hcp-sidebar-width-lg: 18.5rem; /* 296px */\n\n --hcp-card-bg: var(--color-slate-50);\n --hcp-card-border: var(--color-slate-100);\n --hcp-row-active-bg: var(--color-slate-75);\n --hcp-text-color: var(--text-primary);\n --hcp-muted-color: var(--color-slate-600);\n}\n\n/* ── Section shell ─────────────────────────────────────────── */\n\n.hcp-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.hcp-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-40);\n max-width: var(--hcp-max-width);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .hcp-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .hcp-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Search field ─────────────────────────────────────────────\n Spans the full width of the container — matching the sidebar +\n content row below it, not a narrower centered box. */\n\n.hcp-searchWrap {\n width: 100%;\n}\n\n.hcp-searchWrap > * {\n width: 100%;\n}\n\n/* ── Body: sidebar + content ──────────────────────────────── */\n\n.hcp-body {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .hcp-body {\n flex-direction: row;\n gap: var(--spacing-40);\n }\n}\n\n/* ── Sidebar question table (tablet/desktop only) ────────────── */\n\n.hcp-sidebar {\n display: none;\n width: 100%;\n flex-shrink: 0;\n}\n\n@media (min-width: 768px) {\n .hcp-sidebar {\n display: block;\n width: var(--hcp-sidebar-width);\n }\n}\n\n@media (min-width: 992px) {\n .hcp-sidebar {\n width: var(--hcp-sidebar-width-lg);\n }\n}\n\n.hcp-sidebarCard {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n width: 100%;\n box-sizing: border-box;\n padding: var(--spacing-32);\n background-color: var(--hcp-card-bg);\n border: 1px solid var(--hcp-card-border);\n border-radius: var(--radius-2xl);\n /* Sticks alongside the (typically longer) content column while scrolling. */\n position: sticky;\n top: var(--spacing-24);\n}\n\n.hcp-sidebarTitle {\n margin: 0;\n font-family: var(--typography-h6-font-family);\n font-size: var(--typography-h6-font-size);\n font-weight: var(--typography-h6-font-weight);\n line-height: var(--typography-h6-line-height);\n color: var(--hcp-text-color);\n}\n\n.hcp-list {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-4);\n width: 100%;\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.hcp-listItem {\n display: flex;\n min-width: 0;\n}\n\n/* ── Question row (shared by sidebar table + mobile sheet) ───── */\n\n.hcp-row {\n display: flex;\n align-items: center;\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n padding: var(--spacing-12) var(--spacing-16);\n background-color: transparent;\n border: none;\n border-radius: var(--radius-md);\n text-align: left;\n text-decoration: none;\n cursor: pointer;\n font: inherit;\n color: inherit;\n transition: background-color 0.15s ease;\n}\n\n.hcp-sidebarCard .hcp-row:hover {\n background-color: var(--color-slate-75);\n}\n\n.hcp-row--active {\n background-color: var(--hcp-row-active-bg);\n}\n\n.hcp-row:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n}\n\n.hcp-rowText {\n min-width: 0;\n width: 100%;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--hcp-text-color);\n overflow-wrap: break-word;\n}\n\n.hcp-row--active .hcp-rowText {\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* ── Mobile category dropdown trigger ─────────────────────────\n Pill-shaped button that opens the \"Articles in this section\"\n bottom sheet — visually replaces the sidebar table on mobile. */\n\n.hcp-mobileToggle {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-8);\n width: 100%;\n box-sizing: border-box;\n padding: var(--spacing-16) var(--spacing-24);\n background-color: var(--color-slate-75);\n border: none;\n border-radius: var(--radius-full);\n cursor: pointer;\n font: inherit;\n color: var(--hcp-text-color);\n transition: background-color 0.15s ease;\n}\n\n.hcp-mobileToggle:hover {\n background-color: var(--color-slate-100);\n}\n\n.hcp-mobileToggle:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n}\n\n@media (min-width: 768px) {\n .hcp-mobileToggle {\n display: none;\n }\n}\n\n.hcp-mobileToggleLabel {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-md-line-height);\n}\n\n.hcp-mobileToggleChevron {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n color: var(--hcp-text-color);\n}\n\n/* ── Main content column ──────────────────────────────────── */\n\n.hcp-content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-32);\n flex: 1 1 0%;\n min-width: 0;\n}\n\n.hcp-contentTitle {\n margin: 0;\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--hcp-text-color);\n}\n\n.hcp-contentBody {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n min-width: 0;\n}\n\n.hcp-blockHeading {\n margin: 0;\n font-family: var(--typography-h6-font-family);\n font-size: var(--typography-h6-font-size);\n font-weight: var(--typography-h6-font-weight);\n line-height: var(--typography-h6-line-height);\n color: var(--hcp-text-color);\n}\n\n.hcp-blockParagraph {\n margin: 0;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--hcp-text-color);\n overflow-wrap: break-word;\n}\n\n/* No extra gap between entries — list items sit at their natural\n line-height spacing, matching the reference's tightly-packed bullets. */\n.hcp-blockList {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding-left: var(--spacing-24);\n}\n\n.hcp-blockListItem {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--hcp-text-color);\n overflow-wrap: break-word;\n}\n\n/* ── Mobile \"Articles in this section\" sheet list ────────────── */\n\n.hcp-sheetList {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-4);\n list-style: none;\n margin: 0;\n padding: var(--spacing-8) var(--spacing-16) var(--spacing-16);\n}\n\n.hcp-sheetItem {\n display: flex;\n min-width: 0;\n}\n\n.hcp-sheetItem .hcp-row {\n padding: var(--spacing-16) var(--spacing-8);\n border-radius: var(--radius-md);\n}\n\n.hcp-sheetItem .hcp-row:hover {\n background-color: var(--color-slate-75);\n}\n\n/* ── Empty search state ───────────────────────────────────── */\n\n.hcp-noResults {\n width: 100%;\n padding: var(--spacing-16) var(--spacing-8);\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--hcp-muted-color);\n text-align: center;\n margin: 0;\n}\n","/* ============================================================\n FEATURE BLOG PAGE TEMPLATE\n Token inheritance:\n Primitive (core) → Semantic (--fbp-*) → Component styles\n\n Layout:\n Mobile/Tablet (<1024px) collapsible \"Contents\" card →\n title/meta → hero image →\n share icon row → body content\n Desktop (≥1024px) [title/meta + hero image + body content\n | sticky \"Contents\" + \"Share article\"\n sidebar]. The sidebar starts level with\n the title, not the body, matching the\n reference site.\n\n Breadcrumb navigation is intentionally not part of this template —\n it is composed separately above it by the consuming page.\n\n Section padding follows the global three-step spec:\n mobile spacing-56 / spacing-16\n tablet spacing-56 / spacing-24\n desktop spacing-112 / spacing-24\n ============================================================ */\n\n:root {\n --fbp-max-width: var(--content-width-1280);\n --fbp-sidebar-width: 25.5rem; /* 408px — matches reference sidebar column */\n --fbp-body-gap: var(--spacing-112); /* 112px — matches reference gap between main column and sidebar */\n\n --fbp-card-border: var(--color-opacity-slate-8);\n --fbp-share-card-bg: var(--color-slate-75);\n --fbp-text-color: var(--text-primary);\n --fbp-muted-color: var(--color-slate-600);\n}\n\n/* ── Section shell ─────────────────────────────────────────── */\n\n.fbp-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.fbp-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n max-width: var(--fbp-max-width);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .fbp-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .fbp-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Body: main column + sidebar ──────────────────────────────\n The sidebar sits beside the title/hero/content column (starting\n level with the title), not just beside the body copy. */\n\n.fbp-body {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n@media (min-width: 1024px) {\n .fbp-body {\n flex-direction: row;\n /* stretch (not flex-start): the sidebar's own box must span the\n full height of the (much taller) main column so its sticky\n child has room to travel the whole scroll range instead of\n running out of its container after ~1 card-height of scroll. */\n align-items: stretch;\n gap: var(--fbp-body-gap);\n }\n}\n\n.fbp-main {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-32);\n width: 100%;\n min-width: 0;\n}\n\n@media (min-width: 1024px) {\n .fbp-main {\n flex: 1 1 auto;\n }\n}\n\n/* ── Header: category tag + title + meta ─────────────────────── */\n\n.fbp-header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n.fbp-title {\n margin: 0;\n /* Rendered as a real <h1> for document structure/accessibility, but\n sized like this design system's h3 scale — measured directly against\n the reference article's headline (48px/56px line-height/-0.4px\n letter-spacing at desktop), which reads noticeably smaller than a\n hero-level h1. */\n font-family: var(--typography-h3-font-family);\n font-size: var(--typography-h3-font-size);\n font-weight: var(--typography-h3-font-weight);\n line-height: var(--typography-h3-line-height);\n letter-spacing: var(--typography-h3-letter-spacing);\n color: var(--fbp-text-color);\n overflow-wrap: break-word;\n}\n\n.fbp-meta {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--spacing-12);\n}\n\n.fbp-metaAuthor {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n.fbp-avatar {\n width: 2rem;\n height: 2rem;\n border-radius: var(--radius-full);\n object-fit: cover;\n flex-shrink: 0;\n}\n\n.fbp-authorName {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-md-line-height);\n color: var(--fbp-text-color);\n}\n\n/* Pill-shaped date chip, e.g. \"July 24, 2026\" */\n.fbp-dateChip {\n display: inline-flex;\n align-items: center;\n box-sizing: border-box;\n padding: var(--spacing-8) var(--spacing-16);\n background-color: var(--color-slate-75);\n border-radius: var(--radius-full);\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-sm-line-height);\n color: var(--fbp-text-color);\n white-space: nowrap;\n}\n\n/* ── Hero image ────────────────────────────────────────────── */\n\n.fbp-heroImageWrap {\n width: 100%;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n}\n\n.fbp-heroImage {\n display: block;\n width: 100%;\n height: auto;\n object-fit: cover;\n}\n\n/* ── Mobile/tablet \"Contents\" placement ───────────────────────\n Rendered above the title. Hidden ≥1024px, where the sidebar\n takes over. */\n\n.fbp-tocMobileWrap {\n display: block;\n width: 100%;\n}\n\n@media (min-width: 1024px) {\n .fbp-tocMobileWrap {\n display: none;\n }\n}\n\n/* ── Mobile/tablet share row placement ─────────────────────────\n Rendered below the hero image, above the body copy. Hidden\n ≥1024px, where the sidebar takes over. */\n\n.fbp-shareMobileWrap {\n display: block;\n width: 100%;\n}\n\n@media (min-width: 1024px) {\n .fbp-shareMobileWrap {\n display: none;\n }\n}\n\n/* ── Main content column ──────────────────────────────────── */\n\n.fbp-content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n width: 100%;\n min-width: 0;\n}\n\n.fbp-blockHeading {\n margin: var(--spacing-8) 0 0;\n scroll-margin-top: var(--spacing-96);\n /* h5 scale — measured directly against the reference article's\n in-body section headings (28px/35px line-height at desktop). */\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--fbp-text-color);\n}\n\n/* Level-3 blocks share the exact same size as level-2 blocks — both are\n just \"subtitles\" within the article at the same visual hierarchy; only\n level-2 headings are additionally collected into the table of contents. */\n.fbp-blockHeading--h3 {\n margin-top: 0;\n}\n\n.fbp-blockParagraph {\n margin: 0;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--fbp-text-color);\n overflow-wrap: break-word;\n}\n\n.fbp-blockList {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n margin: 0;\n padding-left: var(--spacing-24);\n}\n\n.fbp-blockListItem {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--fbp-text-color);\n overflow-wrap: break-word;\n}\n\n/* Minimal by design — matches the reference article, where an emphasised\n line (e.g. a spokesperson quote) is just bold body text sitting directly\n in the content flow. No border, fill, radius, or padding: only color and\n type follow the design system here, exactly like the rest of the page. */\n.fbp-blockQuote {\n margin: 0;\n}\n\n.fbp-blockQuoteText {\n margin: 0;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-md-line-height);\n color: var(--fbp-text-color);\n}\n\n.fbp-blockQuoteCite {\n display: block;\n margin-top: var(--spacing-8);\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-sm-line-height);\n font-style: normal;\n color: var(--fbp-text-color);\n}\n\n.fbp-blockImageWrap {\n margin: 0;\n width: 100%;\n}\n\n/* Steps content blocks render via the Steps template in \"embedded\" mode\n (see FeatureBlogPage.tsx), which already drops the standalone\n section shell (background/padding/landmark) — this wrapper only needs\n to participate in the article's normal block spacing (`.fbp-content`'s\n gap), same as every other block type. */\n.fbp-blockSteps {\n width: 100%;\n}\n\n.fbp-blockImage {\n display: block;\n width: 100%;\n height: auto;\n border-radius: var(--radius-xl);\n object-fit: cover;\n}\n\n.fbp-blockCaption {\n margin-top: var(--spacing-8);\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n color: var(--fbp-muted-color);\n text-align: center;\n}\n\n/* ── Sidebar (desktop/tablet ≥1024px) ─────────────────────────\n Hidden below 1024px — the mobile \"Contents\" card and share row\n cover the same functionality above. Starts level with the title\n and sticks while scrolling past the (typically much longer)\n title/hero/content column beside it. */\n\n.fbp-sidebar {\n display: none;\n width: 100%;\n flex-shrink: 0;\n}\n\n@media (min-width: 1024px) {\n .fbp-sidebar {\n display: block;\n width: var(--fbp-sidebar-width);\n }\n}\n\n.fbp-sidebarSticky {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n position: sticky;\n top: var(--spacing-32);\n}\n\n/* ── \"Contents\" (table of contents) card ─────────────────────\n Shared markup for both the mobile placement (a collapsible card\n above the title) and the desktop sidebar placement (sticky, beside\n the title/hero/content column, always expanded). */\n\n.fbp-tocCard {\n display: flex;\n flex-direction: column;\n width: 100%;\n box-sizing: border-box;\n /* Mobile/tablet default — a plain accordion row with a bottom divider,\n matching the reference's minimal \"Contents\" toggle (no card chrome:\n only color and type, same as the rest of the page). The bordered,\n padded card treatment below is reserved for the desktop sidebar,\n where the reference does render it as a distinct outlined card. */\n padding-bottom: var(--spacing-16);\n border-bottom: 1px solid var(--fbp-card-border);\n}\n\n@media (min-width: 1024px) {\n .fbp-sidebar .fbp-tocCard {\n padding: var(--spacing-32);\n border: 1px solid var(--fbp-card-border);\n border-radius: var(--radius-2xl);\n border-bottom: 1px solid var(--fbp-card-border);\n }\n}\n\n.fbp-tocHeader {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-8);\n width: 100%;\n box-sizing: border-box;\n color: var(--fbp-text-color);\n}\n\n.fbp-tocHeader--button {\n appearance: none;\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n font: inherit;\n text-align: left;\n}\n\n.fbp-tocHeader--button:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n}\n\n.fbp-tocTitle {\n /* h5 scale — measured directly against the reference \"Contents\"\n heading (28px/36px line-height at desktop). */\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--fbp-text-color);\n}\n\n.fbp-tocChevron {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: 1rem;\n height: 1rem;\n color: var(--fbp-text-color);\n transition: transform 0.2s ease;\n}\n\n.fbp-tocChevron--open {\n transform: rotate(180deg);\n}\n\n.fbp-tocList {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n margin: var(--spacing-24) 0 0;\n padding: 0;\n list-style: none;\n}\n\n.fbp-tocItem {\n display: flex;\n min-width: 0;\n}\n\n.fbp-tocLink {\n display: block;\n width: 100%;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--fbp-text-color);\n text-decoration: none;\n overflow-wrap: break-word;\n transition: color 0.15s ease;\n}\n\n.fbp-tocLink:hover {\n color: var(--color-coral-700);\n}\n\n.fbp-tocLink:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n border-radius: var(--radius-xs);\n}\n\n.fbp-tocLink--active {\n color: var(--color-coral-700);\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* ── \"Share article\" card / row ───────────────────────────────\n Same markup for the mobile placement (below the hero image) and\n the desktop sidebar placement (sticky, stacked under the Contents\n card) — a light-grey card with the label above a flat icon row. */\n\n.fbp-shareCard {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n width: 100%;\n box-sizing: border-box;\n padding: var(--spacing-32);\n background-color: var(--fbp-share-card-bg);\n border-radius: var(--radius-2xl);\n}\n\n.fbp-shareTitle {\n /* Body-md scale + semi-bold — measured directly against the reference\n \"Share article\" label, which reads as small semi-bold text (16px/24px\n line-height), not a heading, unlike the \"Contents\" title beside it. */\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-md-line-height);\n color: var(--fbp-text-color);\n}\n\n.fbp-shareIcons {\n display: flex;\n align-items: center;\n gap: var(--spacing-24);\n}\n\n.fbp-shareIcon {\n display: flex;\n align-items: center;\n justify-content: center;\n /* 32px — matches the reference share-icon row exactly. */\n width: 2rem;\n height: 2rem;\n flex-shrink: 0;\n padding: 0;\n background: none;\n border: none;\n color: var(--fbp-text-color);\n text-decoration: none;\n cursor: pointer;\n opacity: 1;\n transition: opacity 0.15s ease;\n}\n\n.fbp-shareIcon:hover {\n opacity: 0.65;\n}\n\n.fbp-shareIcon:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n border-radius: var(--radius-xs);\n}\n\n.fbp-shareIconImg {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n","/* ============================================================\n PARALLAX BANNER\n Modeled after the \"Our culture\" section on careers.deriv.com:\n a dark rounded banner card (headline + copy + link left, photo\n right) with a subtle scroll-linked parallax on the photo, and\n (variant \"default\" only) four value/culture cards in a grid\n below it.\n\n Variants:\n default → banner card + culture cards grid beneath it\n banner-only → just the banner card, no cards grid\n\n Layout:\n Mobile / tablet (<992px) — stacked: text block, then photo,\n both inside one rounded card; cards grid stacks to 1 column.\n Desktop (≥992px) — side-by-side card (text left, photo right);\n cards grid becomes 4 columns.\n\n The card keeps rounded corners and inline page padding at every\n breakpoint (unlike ImageBanner's edge-to-edge mobile treatment),\n matching the reference layout.\n\n Section padding follows the global spec:\n mobile → spacing-56 / spacing-16\n tablet → spacing-56 / spacing-24\n desktop → spacing-112 / spacing-24\n ============================================================ */\n\n/* ── Section shell ─────────────────────────────────────────── */\n\n.parallax-banner {\n width: 100%;\n font-family: var(--font-family-base);\n box-sizing: border-box;\n padding: var(--spacing-56) var(--spacing-16);\n}\n\n@media (min-width: 768px) {\n .parallax-banner {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .parallax-banner {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Inner wrapper ──────────────────────────────────────────── */\n\n.parallax-banner__inner {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n}\n\n/* ── Banner card ────────────────────────────────────────────── */\n\n.parallax-banner__card {\n position: relative;\n display: flex;\n flex-direction: column;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n background-color: var(--color-slate-1200);\n min-height: 480px;\n}\n\n@media (min-width: 992px) {\n .parallax-banner__card {\n flex-direction: row;\n align-items: stretch;\n }\n}\n\n/* ── Content (text + CTA panel) ────────────────────────────── */\n\n.parallax-banner__content {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n text-align: left;\n gap: var(--spacing-16);\n padding: var(--spacing-32) var(--spacing-24);\n width: 100%;\n box-sizing: border-box;\n position: relative;\n z-index: 1;\n}\n\n@media (min-width: 768px) {\n .parallax-banner__content {\n padding: var(--spacing-48) var(--spacing-40);\n }\n}\n\n@media (min-width: 992px) {\n .parallax-banner__content {\n width: 45%;\n flex: 0 0 45%;\n gap: var(--spacing-24);\n padding: var(--spacing-64) var(--spacing-56);\n justify-content: center;\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.parallax-banner__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--color-slate-50);\n margin: 0;\n}\n\n/* ── Description ───────────────────────────────────────────── */\n\n.parallax-banner__description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--color-slate-50);\n margin: 0;\n max-width: 42ch;\n}\n\n/* ── Actions ───────────────────────────────────────────────── */\n\n.parallax-banner__actions {\n display: flex;\n align-items: center;\n padding-top: var(--spacing-8);\n}\n\n/* ── Photo panel ────────────────────────────────────────────── */\n\n.parallax-banner__image-wrapper {\n position: relative;\n width: 100%;\n aspect-ratio: 4 / 3;\n overflow: hidden;\n flex-shrink: 0;\n}\n\n@media (min-width: 992px) {\n .parallax-banner__image-wrapper {\n width: 55%;\n flex: 0 0 55%;\n aspect-ratio: unset;\n }\n}\n\n/*\n * The photo is rendered taller than its wrapper (with a matching negative\n * offset) so the scroll-linked parallax translate never reveals empty\n * space at the top/bottom edge of the panel — the overscan (60px each\n * side) comfortably exceeds the ±36px travel distance plus spring overshoot.\n */\n.parallax-banner__image {\n position: absolute;\n left: 0;\n top: -60px;\n width: 100%;\n height: calc(100% + 120px);\n object-fit: cover;\n object-position: center top;\n display: block;\n will-change: transform;\n}\n\n/* ── Culture cards grid (variant \"default\" only) ───────────── */\n\n.parallax-banner__cards {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .parallax-banner__cards {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-16);\n }\n}\n\n@media (min-width: 992px) {\n .parallax-banner__cards {\n grid-template-columns: repeat(4, 1fr);\n gap: var(--spacing-16);\n }\n}\n\n.parallax-banner__card-item {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-12);\n background-color: var(--color-slate-75);\n border-radius: var(--radius-xl);\n padding: var(--spacing-24);\n box-sizing: border-box;\n}\n\n.parallax-banner__card-title {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n.parallax-banner__card-description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Reduced motion ─────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .parallax-banner__image {\n transform: none !important;\n }\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.tcalc-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n.tcalc-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-32);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .tcalc-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .tcalc-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Single card, two columns ─────────────────────────────────── */\n\n.tcalc-card {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-32);\n width: 100%;\n align-items: start;\n background: var(--color-slate-75);\n border-radius: var(--radius-2xl);\n padding: var(--spacing-24);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .tcalc-card {\n grid-template-columns: 1fr 1fr;\n padding: var(--spacing-32);\n }\n}\n\n.tcalc-column {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n min-width: 0;\n}\n\n/* \"Results\" is a white card nested inside the shared grey card — the\n * white/grey contrast itself is the boundary between \"Calculator\" and\n * \"Results\", so no border or shadow/outline is needed on top of it, just\n * a flat white fill. */\n.tcalc-column--results {\n background: var(--color-slate-50);\n border-radius: var(--radius-xl);\n padding: var(--spacing-24);\n}\n\n.tcalc-panelTitle {\n font-family: var(--font-family-base);\n font-size: var(--font-size-xl);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--line-height-xl);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Fields ───────────────────────────────────────────────────── */\n\n.tcalc-field {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n}\n\n/* \"Symbols\" (SearchField), \"Volume in Lots\" and \"Asset price\" (TextField)\n * are the shared field components — see imports in TradingCalculator.tsx.\n * Both support an in-box `label` (stacked above the value, inside the same\n * bordered box) as a generic addition to those components, so no bespoke\n * input/label/box markup lives here anymore; only cosmetic overrides that\n * are specific to this component's look. */\n.tcalc-required {\n color: var(--color-coral-700);\n}\n\n/* Bump the value text to match the reference page's bolder field values,\n * without changing TextField/SearchField's own default input styling. */\n.tcalc-numberField .tf-input,\n.tcalc-field .sf-input {\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* Hide native number-input spin buttons on the numeric fields — keypad/\n * manual entry only. */\n.tcalc-numberField .tf-input[type=\"number\"]::-webkit-outer-spin-button,\n.tcalc-numberField .tf-input[type=\"number\"]::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n.tcalc-numberField .tf-input[type=\"number\"] {\n appearance: textfield;\n}\n\n.tcalc-fieldError {\n display: flex;\n align-items: center;\n gap: var(--spacing-4);\n font-family: var(--font-family-base);\n font-size: var(--typography-body-xs-font-size);\n color: var(--field-text-fail);\n margin: 0;\n}\n\n.tcalc-retryLink {\n background: none;\n border: none;\n padding: 0;\n font: inherit;\n color: inherit;\n text-decoration: underline;\n cursor: pointer;\n}\n\n.tcalc-calcError {\n background: var(--field-surface-fail);\n border-radius: var(--radius-md);\n padding: var(--spacing-8) var(--spacing-12);\n}\n\n/* ── Symbol dropdown ──────────────────────────────────────────── */\n\n/* Positioning/shadow/scroll mechanics match this package's conventions\n * (rounded on every corner, floating card, design-token shadow); the type\n * scale, spacing, dividers, and hover/active colors below intentionally\n * match deriv.com/trading-calculators' own symbol dropdown pixel-for-pixel. */\n.tcalc-dropdown {\n position: absolute;\n top: calc(100% + var(--spacing-4));\n left: 0;\n right: 0;\n z-index: 20;\n max-height: 320px;\n overflow-y: auto;\n background: var(--color-slate-50);\n border-radius: var(--radius-md);\n box-shadow: var(--shadow-lg);\n}\n\n.tcalc-dropdownEmpty {\n padding: var(--spacing-16);\n font-family: var(--font-family-base);\n font-size: 15px;\n color: var(--text-secondary);\n margin: 0;\n}\n\n.tcalc-dropdownGroupTitle {\n padding: var(--spacing-16);\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-extra-bold);\n color: var(--text-primary);\n margin: 0;\n}\n\n.tcalc-dropdownOption {\n display: flex;\n flex-direction: column;\n padding: var(--spacing-12) var(--spacing-16) var(--spacing-8);\n border-bottom: 1px solid var(--color-opacity-slate-8);\n cursor: pointer;\n}\n\n.tcalc-dropdownGroup:last-child .tcalc-dropdownOption:last-child {\n border-bottom: none;\n}\n\n.tcalc-dropdownOption:hover {\n background: var(--color-slate-75);\n}\n\n.tcalc-dropdownOption--active {\n background: var(--color-coral-100);\n}\n\n.tcalc-dropdownSymbol,\n.tcalc-dropdownDesc {\n font-family: var(--font-family-base);\n font-size: 15px;\n line-height: 1.3;\n margin: 0 0 3px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.tcalc-dropdownSymbol {\n font-weight: var(--font-weight-semi-bold);\n color: var(--text-primary);\n}\n\n.tcalc-dropdownDesc {\n color: var(--text-secondary);\n}\n\n/* ── Info rows (contract size, leverage, swap details...) ─────── */\n\n.tcalc-infoGrid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--spacing-4) var(--spacing-16);\n}\n\n@media (max-width: 380px) {\n .tcalc-infoGrid {\n grid-template-columns: 1fr;\n }\n}\n\n.tcalc-infoRow {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-xs-font-size);\n color: var(--text-secondary);\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.tcalc-infoLabel {\n color: var(--text-secondary);\n}\n\n.tcalc-infoValue {\n color: var(--text-primary);\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* ── Buttons ──────────────────────────────────────────────────── */\n/* \"Calculate\" and \"Reset\" are the shared `Button` component (see import in\n * TradingCalculator.tsx) — no custom button styling lives here, just the\n * layout for the pair of full-width buttons sitting side by side. */\n\n.tcalc-actions {\n display: flex;\n gap: var(--spacing-12);\n margin-top: var(--spacing-8);\n}\n\n.tcalc-actions > * {\n flex: 1 1 0;\n min-width: 0;\n}\n\n/* ── Results ──────────────────────────────────────────────────── */\n\n.tcalc-resultRow {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--spacing-16);\n}\n\n@media (max-width: 380px) {\n .tcalc-resultRow {\n grid-template-columns: 1fr;\n }\n}\n\n.tcalc-resultBox {\n background: var(--field-surface-outline);\n border: 1px solid var(--field-border-default);\n border-radius: var(--radius-md);\n box-shadow: var(--shadow-xs);\n padding: var(--spacing-12) var(--spacing-16);\n min-width: 0;\n}\n\n.tcalc-resultLabel {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-sm-font-size);\n color: var(--text-secondary);\n margin: 0 0 var(--spacing-4);\n}\n\n.tcalc-resultValue {\n font-family: var(--font-family-base);\n font-size: var(--font-size-lg);\n font-weight: var(--font-weight-extra-bold);\n color: var(--text-primary);\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.tchow-section {\n width: 100%;\n background-color: var(--color-slate-75);\n}\n\n.tchow-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-32);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .tchow-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .tchow-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Intro (title + description) ──────────────────────────────── */\n\n.tchow-intro {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-16);\n max-width: 720px;\n text-align: center;\n}\n\n.tchow-title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n.tchow-description {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-lg-font-size);\n line-height: var(--typography-body-lg-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Swap \"In points\" / \"In percentage\" tabs ──────────────────── */\n/* Reuses the shared Tabs primitive (dark selected pill), matching the\n * reference page's segmented control look with no bespoke tab styling. */\n.tchow-tabs {\n justify-content: center;\n}\n\n/* ── Card, two columns ─────────────────────────────────────────── */\n\n.tchow-card {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-32);\n width: 100%;\n align-items: start;\n background: var(--color-slate-50);\n border-radius: var(--radius-2xl);\n box-shadow: var(--shadow-sm);\n padding: var(--spacing-24);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .tchow-card {\n grid-template-columns: 1fr 1fr;\n padding: var(--spacing-32);\n }\n}\n\n.tchow-column {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n min-width: 0;\n}\n\n.tchow-columnTitle {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n.tchow-text {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-md-font-size);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n.tchow-footnote {\n font-family: var(--font-family-base);\n font-style: italic;\n font-size: var(--typography-body-sm-font-size);\n line-height: var(--typography-body-sm-line-height);\n color: var(--text-secondary);\n margin: 0;\n}\n\n.tchow-bullets {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-4);\n margin: 0;\n padding: 0 0 0 var(--spacing-24);\n}\n\n.tchow-bulletItem {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-md-font-size);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n}\n\n.tchow-note {\n font-family: var(--font-family-base);\n font-style: italic;\n font-size: var(--typography-body-sm-font-size);\n line-height: var(--typography-body-sm-line-height);\n color: var(--text-secondary);\n margin: var(--spacing-8) 0 0;\n}\n\n/* ── Calculation strip ─────────────────────────────────────────── */\n/* `.tchow-stripWrap` is the layout box: always full column width, height\n * pinned once its content shrinks, and `overflow: hidden` as a hard\n * guarantee against any horizontal scrollbar ever appearing — even before\n * JS has measured anything on first paint.\n *\n * `.tchow-strip` is the visible grey pill: sized to its own natural content\n * (`display: inline-grid`, not stretched) so `CalculationStrip` can read an\n * accurate unscaled width/height off it, then uniformly scaled down (see\n * the component) so every side of its padding shrinks together and stays\n * visually equal, rather than the content reflowing or wrapping. */\n\n.tchow-stripWrap {\n width: 100%;\n overflow: hidden;\n}\n\n.tchow-strip {\n display: inline-grid;\n grid-auto-flow: column;\n grid-template-rows: auto auto;\n column-gap: var(--spacing-8);\n row-gap: var(--spacing-8);\n background: var(--color-slate-75);\n border-radius: var(--radius-md);\n padding: var(--spacing-16);\n box-sizing: border-box;\n transform-origin: left top;\n}\n\n.tchow-stripValue {\n /* `justify-self: center` (rather than the grid default `stretch`) keeps\n * this item sized to its own content instead of being forced to fill\n * whatever width the column ends up with. */\n justify-self: center;\n align-self: end;\n font-family: var(--font-family-base);\n font-size: var(--typography-body-sm-font-size);\n color: var(--text-secondary);\n white-space: nowrap;\n}\n\n.tchow-stripValue--labeled {\n font-weight: var(--font-weight-extra-bold);\n color: var(--text-primary);\n}\n\n.tchow-stripValueText {\n /* `min-width` lives on this *nested* element rather than directly on the\n * `.tchow-stripValue` grid item on purpose: Chrome's grid auto-column\n * sizing has a quirk where a `min-width` set directly on a grid item can\n * cap that column's track at exactly `min-width`, even when the item's\n * own text needs more room (it then silently overflows into neighboring\n * columns instead of the column growing). Putting `min-width` on an\n * ordinary (non-grid-item) inline-block child sidesteps that — the\n * column correctly sizes to whichever is larger. */\n display: inline-block;\n text-align: center;\n}\n\n.tchow-stripValueText--labeled {\n /* A floor, not a target: keeps a very short labeled value (e.g. \"1\")\n * from collapsing its column so tight that a long caption underneath\n * (e.g. \"Contract size\") has nowhere to go and collides with its\n * neighbors — see `.tchow-stripLabel`'s `width: 0`, which otherwise lets\n * captions stop influencing column width entirely. */\n min-width: 4rem;\n}\n\n.tchow-stripCaption {\n align-self: start;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-4);\n min-height: 1px;\n}\n\n.tchow-stripArrow {\n color: var(--color-slate-500);\n flex-shrink: 0;\n}\n\n.tchow-stripLabel {\n /* `width: 0` (with `overflow: visible`) keeps a long caption — e.g.\n * \"Contract size\" under a one-digit value like \"1\" — from widening its\n * grid column and pushing the *numbers* row apart with uneven gaps. It\n * just no longer contributes to how much horizontal space the column\n * reserves — the numbers/operators row spacing is driven only by the\n * numbers/operators themselves, so it stays evenly spaced regardless of\n * caption length.\n *\n * Centering the caption text under the arrow can't use `text-align:\n * center` here though: on a zero-width box with `overflow: visible`,\n * Chrome renders overflowing text starting from the box's edge rather\n * than centered on it. `.tchow-stripLabelText` is absolutely positioned\n * and shifted back by half its own width instead, which centers\n * correctly regardless of the box's (zero) width. */\n position: relative;\n width: 0;\n overflow: visible;\n font-family: var(--font-family-base);\n font-size: var(--typography-body-xs-font-size);\n color: var(--text-secondary);\n white-space: nowrap;\n}\n\n.tchow-stripLabelText {\n position: absolute;\n left: 0;\n transform: translateX(-50%);\n}\n\n.tchow-stripLabel--edge {\n /* The first and last columns have no neighboring column to spill their\n * overflow into — a long caption here (e.g. \"Required margin\" under a\n * short \"27.66\") would render past the strip's own left/right edge,\n * outside the grey background. So for edge columns only, fall back to\n * letting the caption size its column normally (undoing `width: 0`\n * above): the extra width just reads as a bit of natural end padding\n * instead of an uneven gap in the middle of the row. Normal flow\n * already centers it (via the flex parent), so undo the absolute\n * centering trick too. */\n width: auto;\n text-align: center;\n}\n\n.tchow-stripLabel--edge .tchow-stripLabelText {\n position: static;\n transform: none;\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.fo-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.fo-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-32);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .fo-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .fo-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.fo-title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n text-align: center;\n margin: 0;\n}\n\n/* ── Tabs row ──────────────────────────────────────────────── */\n\n.fo-tabsWrap {\n display: flex;\n justify-content: center;\n width: 100%;\n max-width: 100%;\n}\n\n.fo-tabsWrap .tabs-menu {\n justify-content: center;\n flex-wrap: wrap;\n overflow-x: visible;\n}\n\n/* ── Offices grid ──────────────────────────────────────────── */\n\n.fo-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .fo-grid {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (min-width: 992px) {\n .fo-grid {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n/* ── Office card ───────────────────────────────────────────── */\n\n.fo-card {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n background-color: var(--color-slate-75);\n border-radius: var(--radius-2xl);\n padding: var(--spacing-24);\n box-sizing: border-box;\n height: 100%;\n}\n\n.fo-flag {\n display: block;\n width: 2rem;\n height: 1.5rem;\n object-fit: cover;\n border-radius: var(--radius-xs);\n box-shadow: 0 0 0 1px var(--color-opacity-slate-8);\n margin-bottom: var(--spacing-24);\n}\n\n.fo-cardTitle {\n font-family: var(--font-family-base);\n font-size: var(--font-size-lg);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--line-height-lg);\n color: var(--text-primary);\n margin: 0 0 var(--spacing-8) 0;\n}\n\n.fo-address {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n.fo-linkWrap {\n margin-top: var(--spacing-24);\n}\n","/* ============================================================\n TIERS TEMPLATE\n Token inheritance:\n Primitive (core) → Semantic (--tiers-*) → Component styles\n\n Layout mirrors https://deriv.com/partners \"Growing rewards as you scale\":\n Mobile (<768px): 1 column, white outer shell, name+status row,\n slate benefit panel, no connector lines\n Tablet (≥768px): 2 columns, stacked name/status, white benefit\n cards, no connector lines\n Desktop (≥992px): 4 columns, metallic connector lines through medals\n\n Semantic tokens:\n --tiers-bg var(--color-slate-75)\n --tiers-title-color var(--text-primary)\n --tiers-desc-color var(--text-secondary)\n --tiers-shell-bg var(--color-slate-50) [mobile]\n --tiers-name-color var(--text-primary)\n --tiers-status-color var(--text-secondary)\n --tiers-card-bg var(--color-slate-75) [mobile] /\n var(--color-slate-50) [≥768]\n --tiers-card-title-color var(--text-primary)\n --tiers-card-desc-color var(--text-secondary)\n --tiers-requirement-color var(--text-primary)\n --tiers-icon-size var(--spacing-48) [mobile] /\n var(--spacing-64) [≥768]\n --tiers-line-bronze var(--color-yellow-600)\n --tiers-line-silver var(--color-slate-200)\n --tiers-line-gold var(--color-yellow-500)\n --tiers-line-platinum var(--color-slate-300)\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n --tiers-bg: var(--color-slate-75);\n --tiers-title-color: var(--text-primary);\n --tiers-desc-color: var(--text-secondary);\n --tiers-shell-bg: var(--color-slate-50);\n --tiers-shell-radius: var(--radius-2xl);\n --tiers-name-color: var(--text-primary);\n --tiers-status-color: var(--text-secondary);\n --tiers-card-bg: var(--color-slate-75);\n --tiers-card-radius: var(--radius-xl);\n --tiers-card-title-color: var(--text-primary);\n --tiers-card-desc-color: var(--text-secondary);\n --tiers-requirement-color: var(--text-primary);\n --tiers-icon-size: var(--spacing-48);\n /* Connector accents — closest core primitives to the medal metals\n on deriv.com/partners (bronze / silver / gold / platinum). */\n --tiers-line-bronze: var(--color-yellow-600);\n --tiers-line-silver: var(--color-slate-200);\n --tiers-line-gold: var(--color-yellow-500);\n --tiers-line-platinum: var(--color-slate-300);\n --tiers-line-fade: var(--tiers-bg);\n}\n\n/* ── SECTION SHELL ────────────────────────────────────────── */\n\n.tiers {\n width: 100%;\n background-color: var(--tiers-bg);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.tiers__container {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--spacing-32);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .tiers__container {\n align-items: center;\n gap: var(--spacing-48);\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .tiers__container {\n gap: var(--spacing-64);\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── HEADER ───────────────────────────────────────────────── */\n\n.tiers__header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n text-align: left;\n max-width: 48rem;\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .tiers__header {\n align-items: center;\n text-align: center;\n }\n}\n\n.tiers__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--tiers-title-color);\n margin: 0;\n}\n\n.tiers__description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--tiers-desc-color);\n margin: 0;\n}\n\n/* ── TIER LIST ────────────────────────────────────────────── */\n\n.tiers__list {\n list-style: none;\n margin: 0;\n padding: 0;\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .tiers__list {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-32);\n }\n}\n\n@media (min-width: 992px) {\n .tiers__list {\n grid-template-columns: repeat(4, 1fr);\n gap: var(--spacing-24);\n }\n}\n\n/* ── TIER ITEM ────────────────────────────────────────────── */\n\n.tiers__item {\n display: flex;\n flex-direction: column;\n min-width: 0;\n height: 100%;\n}\n\n/* Outer shell — white card on mobile; transparent on ≥768 so only\n the benefit panel reads as a card (matching the reference page). */\n.tiers__shell {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n width: 100%;\n height: 100%;\n padding: var(--spacing-24);\n background-color: var(--tiers-shell-bg);\n border-radius: var(--tiers-shell-radius);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .tiers__shell {\n align-items: center;\n gap: var(--spacing-24);\n padding: 0 0 var(--spacing-32) 0;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n/* ── ICON + CONNECTOR ROW ─────────────────────────────────── */\n\n.tiers__icon-row {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n width: auto;\n flex-shrink: 0;\n}\n\n@media (min-width: 768px) {\n .tiers__icon-row {\n justify-content: center;\n width: 100%;\n }\n}\n\n@media (min-width: 992px) {\n /* Bridges the grid's column gap so each tier's connector line still\n reads as one continuous track across the row, even though the\n cards below now have real breathing room between them. */\n .tiers__icon-row {\n width: calc(100% + var(--spacing-24));\n margin-left: calc(var(--spacing-24) / -2);\n margin-right: calc(var(--spacing-24) / -2);\n }\n}\n\n.tiers__icon-wrap {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--tiers-icon-size);\n height: var(--tiers-icon-size);\n flex-shrink: 0;\n position: relative;\n z-index: 1;\n}\n\n@media (min-width: 768px) {\n .tiers__icon-wrap {\n --tiers-icon-size: var(--spacing-64);\n width: var(--tiers-icon-size);\n height: var(--tiers-icon-size);\n /* Masks the connector behind the medal */\n background-color: var(--tiers-bg);\n border-radius: var(--radius-full);\n }\n}\n\n.tiers__icon {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n/* Connector lines — desktop only. Hidden below 992px to match the\n reference (tier-line { display:none } at max-width:991px). */\n.tiers__line {\n display: none;\n flex: 1 1 0;\n height: 2px;\n min-width: 0;\n pointer-events: none;\n}\n\n@media (min-width: 992px) {\n .tiers__line {\n display: block;\n }\n}\n\n/* Per-accent gradients — left segment leads into the medal, right\n segment leads out. First tier's left fades from section bg; last\n tier's right fades back to section bg. */\n.tiers__item--bronze .tiers__line--left {\n background-image: linear-gradient(\n 270deg,\n var(--tiers-line-bronze),\n var(--tiers-line-fade)\n );\n}\n\n.tiers__item--bronze .tiers__line--right {\n background-color: var(--tiers-line-bronze);\n}\n\n.tiers__item--silver .tiers__line--left {\n background-image: linear-gradient(\n 90deg,\n var(--tiers-line-bronze),\n var(--tiers-line-silver) 39%\n );\n}\n\n.tiers__item--silver .tiers__line--right {\n background-color: var(--tiers-line-silver);\n}\n\n.tiers__item--gold .tiers__line--left {\n background-image: linear-gradient(\n 90deg,\n var(--tiers-line-silver),\n var(--tiers-line-gold)\n );\n}\n\n.tiers__item--gold .tiers__line--right {\n background-color: var(--tiers-line-gold);\n}\n\n.tiers__item--platinum .tiers__line--left {\n background-image: linear-gradient(\n 90deg,\n var(--tiers-line-gold),\n var(--tiers-line-platinum) 39%\n );\n}\n\n.tiers__item--platinum .tiers__line--right {\n background-image: linear-gradient(\n 90deg,\n var(--tiers-line-platinum),\n var(--tiers-line-fade)\n );\n}\n\n/* ── NAME + STATUS ────────────────────────────────────────── */\n\n.tiers__heading {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--spacing-8);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .tiers__heading {\n flex-direction: column;\n align-items: center;\n text-align: center;\n gap: var(--spacing-4);\n }\n}\n\n.tiers__name {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--tiers-name-color);\n margin: 0;\n}\n\n.tiers__status {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--tiers-status-color);\n margin: 0;\n}\n\n/* ── BENEFIT CARD ─────────────────────────────────────────── */\n\n.tiers__card {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-8);\n width: 100%;\n min-height: 0;\n padding: var(--spacing-24);\n background-color: var(--tiers-card-bg);\n border-radius: var(--tiers-card-radius);\n box-sizing: border-box;\n text-align: left;\n flex: 1 1 auto;\n}\n\n@media (min-width: 768px) {\n .tiers__card {\n --tiers-card-bg: var(--color-slate-50);\n align-items: center;\n text-align: center;\n min-height: 11.5rem; /* ~184px — matches reference equal-height cards */\n gap: var(--spacing-16);\n }\n}\n\n/* One step below h6's size (fixed body-lg, not the h6 token's responsive\n 1rem→1.5rem scale) while keeping the same extra-bold weight as headings. */\n.tiers__card-title {\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--typography-body-lg-line-height);\n color: var(--tiers-card-title-color);\n margin: 0;\n width: 100%;\n}\n\n.tiers__card-description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--tiers-card-desc-color);\n margin: 0;\n width: 100%;\n}\n\n.tiers__card-description strong {\n font-weight: var(--font-weight-semi-bold);\n color: var(--tiers-card-title-color);\n}\n\n/* ── REQUIREMENT ──────────────────────────────────────────── */\n\n.tiers__requirement {\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n color: var(--tiers-requirement-color);\n margin: 0;\n width: 100%;\n text-align: left;\n white-space: pre-line;\n}\n\n@media (min-width: 768px) {\n .tiers__requirement {\n text-align: center;\n padding: 0 var(--spacing-16);\n }\n}\n\n/* ── FOOTER LINK ──────────────────────────────────────────── */\n\n.tiers__footer {\n display: flex;\n justify-content: flex-start;\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .tiers__footer {\n justify-content: center;\n }\n}\n","/* ============================================================\n PARTNERS PAYOUT TEMPLATE\n Modeled after deriv.com/partners \"Top partner payouts\".\n\n Mobile (<768px): left-aligned heading and a one-column metric list.\n Desktop (≥768px): centred heading and a compact two-column grid.\n Section padding follows the global mobile/tablet/desktop spec.\n ============================================================ */\n\n:root {\n --partners-payout-bg: var(--color-slate-1200);\n --partners-payout-text: var(--color-slate-50);\n --partners-payout-border: var(--color-opacity-white-16);\n --partners-payout-card-radius: var(--radius-xl);\n}\n\n.partners-payout {\n width: 100%;\n background-color: var(--partners-payout-bg);\n color: var(--partners-payout-text);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n}\n\n.partners-payout__container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-32);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n overflow: hidden;\n}\n\n.partners-payout__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n.partners-payout__header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-8);\n width: 100%;\n text-align: left;\n}\n\n.partners-payout__title {\n margin: 0;\n color: var(--partners-payout-text);\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n}\n\n.partners-payout__period,\n.partners-payout__region,\n.partners-payout__amount {\n margin: 0;\n color: var(--partners-payout-text);\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n}\n\n.partners-payout__grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-8);\n width: 100%;\n margin: 0;\n padding: var(--spacing-24) 0 0;\n list-style: none;\n box-sizing: border-box;\n}\n\n.partners-payout__item {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-16);\n padding: var(--spacing-16);\n border: 1px solid var(--partners-payout-border);\n border-radius: var(--partners-payout-card-radius);\n box-sizing: border-box;\n}\n\n/* Region and amount always share a single line, so neither may wrap or\n shrink below its text width. */\n.partners-payout__region,\n.partners-payout__amount {\n flex-shrink: 0;\n white-space: nowrap;\n}\n\n.partners-payout__image {\n display: block;\n width: 100%;\n max-width: 80%;\n height: auto;\n object-fit: contain;\n}\n\n@media (min-width: 768px) {\n .partners-payout__container {\n gap: var(--spacing-48);\n padding: var(--spacing-56) var(--spacing-24);\n }\n\n .partners-payout__content {\n align-items: center;\n gap: var(--spacing-48);\n }\n\n .partners-payout__header {\n align-items: center;\n text-align: center;\n }\n\n /* Sized to its own content rather than a fixed cap: equal columns wide\n enough for the longest region/amount pair to stay on one line. */\n .partners-payout__grid {\n grid-template-columns: repeat(2, 1fr);\n width: fit-content;\n max-width: 100%;\n padding-top: 0;\n }\n\n .partners-payout__item {\n padding: var(--spacing-16) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .partners-payout__container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n","/* ============================================================\n MASTER PARTNER TEMPLATE\n Token inheritance:\n Primitive (core) → Semantic (--master-partner-*) → Component styles\n\n Layout mirrors https://deriv.com/partners \"Master Partner programme\":\n Row 1 (content + image): single column below 992px (content, then\n image); two even columns at ≥992px.\n Row 2 (steps): full-width row underneath both columns — 1 column\n mobile, 2 columns tablet, 4 columns desktop.\n The CTA button is intentionally placed after the copy and before the\n steps row, and is desktop-only (hidden below 992px).\n\n Semantic tokens:\n --master-partner-bg var(--color-slate-50)\n --master-partner-title-color var(--text-primary)\n --master-partner-text-color var(--text-primary)\n --master-partner-step-desc-color var(--text-primary)\n --master-partner-image-radius var(--radius-2xl)\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n --master-partner-bg: var(--color-slate-50);\n --master-partner-title-color: var(--text-primary);\n --master-partner-text-color: var(--text-primary);\n --master-partner-step-desc-color: var(--text-primary);\n --master-partner-image-radius: var(--radius-2xl);\n}\n\n/* ── SECTION SHELL ────────────────────────────────────────── */\n\n.master-partner {\n width: 100%;\n background-color: var(--master-partner-bg);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.master-partner__container {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-40);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .master-partner__container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .master-partner__container {\n gap: var(--spacing-64);\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── ROW 1: CONTENT + IMAGE ───────────────────────────────── */\n\n.master-partner__top {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-32);\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .master-partner__top {\n flex-direction: row;\n align-items: center;\n gap: var(--spacing-64);\n }\n}\n\n/* ── CONTENT COLUMN ───────────────────────────────────────── */\n\n.master-partner__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .master-partner__content {\n flex: 1 1 0;\n width: auto;\n }\n}\n\n.master-partner__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--master-partner-title-color);\n margin: 0;\n}\n\n.master-partner__copy {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n.master-partner__paragraph {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--master-partner-text-color);\n margin: 0;\n}\n\n.master-partner__paragraph strong {\n font-weight: var(--font-weight-extra-bold);\n}\n\n/* CTA sits right after the copy and before the steps row. Desktop only —\n hidden on mobile and tablet per the reference layout. */\n.master-partner__cta {\n display: none;\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .master-partner__cta {\n display: block;\n }\n}\n\n/* ── IMAGE COLUMN ─────────────────────────────────────────── */\n\n.master-partner__image-wrapper {\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: var(--master-partner-image-radius);\n overflow: hidden;\n flex-shrink: 0;\n}\n\n@media (min-width: 992px) {\n .master-partner__image-wrapper {\n flex: 1 1 0;\n width: auto;\n }\n}\n\n.master-partner__image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n\n/* ── ROW 2: STEPS ─────────────────────────────────────────── */\n\n.master-partner__steps {\n list-style: none;\n margin: 0;\n padding: 0;\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-32);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .master-partner__steps {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-32) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .master-partner__steps {\n grid-template-columns: repeat(4, 1fr);\n gap: var(--spacing-24);\n }\n}\n\n.master-partner__step {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-12);\n min-width: 0;\n}\n\n.master-partner__step-icon {\n display: block;\n width: var(--spacing-32);\n height: var(--spacing-32);\n flex-shrink: 0;\n}\n\n.master-partner__step-description {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--master-partner-step-desc-color);\n margin: 0;\n}\n","/* ============================================================\n RESOURCE BANNER\n Rounded dark card with a heading + paragraph on the left and a\n vertically-stacked list of resource links on the right.\n Reproduces `.section_fraud_resources` on deriv.com/fraud-prevention\n (live classes: .download_component.is-dark >\n .download_content_wrapper.is-grid > .download_left-block.is-text\n + .download_right-block.is-flex-vertical).\n\n Token inheritance (Rule 5):\n Core (--color-*, --spacing-*, --typography-*) →\n Semantic (--rsb-*) →\n Styles\n\n NOTE — deliberate deviations from the live CSS:\n - Left-block gap is 32px (--spacing-32); the live value is 34px,\n which has no token. Nearest step, 2px difference.\n - Container max-width is 1280px per the global padding spec\n (Rule 4); the live `.section-container` is 1248px.\n Every other value below is 1:1 with the live compiled CSS.\n ============================================================ */\n\n/* ── COMPONENT TOKENS ─────────────────────────────────────── */\n:root {\n /* Card surface — live `--background--slate--layer-14` */\n --rsb-card-bg: var(--color-slate-1200);\n\n /* Section surface behind the card — live `--background--slate--layer-2` */\n --rsb-section-bg: var(--color-slate-75);\n\n --rsb-title-color: var(--color-slate-50);\n --rsb-body-color: var(--color-slate-50);\n\n --rsb-max-width: 1280px;\n --rsb-card-radius: var(--radius-2xl);\n /* 24px */\n\n /* Outer section padding — global template padding spec (Rule 4) */\n --rsb-section-padding-block: var(--spacing-56);\n --rsb-section-padding-inline: var(--spacing-16);\n\n /* Card padding — live: 24px < 480px, 48px above */\n --rsb-card-padding: var(--spacing-24);\n\n /* Grid gap — live: 24px mobile, 32px tablet, 80px desktop */\n --rsb-grid-gap: var(--spacing-24);\n\n /* Left column gap — live: 16px mobile, 24px tablet, 34px desktop */\n --rsb-content-gap: var(--spacing-16);\n\n /* Link stack gap — live 16px at every breakpoint */\n --rsb-links-gap: var(--spacing-16);\n}\n\n/* ── SECTION SHELL ────────────────────────────────────────── */\n\n.rsb {\n display: block;\n width: 100%;\n background-color: var(--rsb-section-bg);\n}\n\n.rsb__inner {\n max-width: var(--rsb-max-width);\n margin: 0 auto;\n padding: var(--rsb-section-padding-block) var(--rsb-section-padding-inline);\n box-sizing: border-box;\n}\n\n/* ── CARD ─────────────────────────────────────────────────── */\n\n.rsb__card {\n border-radius: var(--rsb-card-radius);\n padding: var(--rsb-card-padding);\n background-color: var(--rsb-card-bg);\n box-sizing: border-box;\n}\n\n/* ── GRID ─────────────────────────────────────────────────────\n Live: single column < 768px, `1fr 1fr` 768–991px, `2fr 1fr`\n at 992px and up. */\n\n.rsb__grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--rsb-grid-gap);\n align-items: center;\n}\n\n/* ── LEFT: COPY ───────────────────────────────────────────── */\n\n.rsb__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n gap: var(--rsb-content-gap);\n}\n\n.rsb__title {\n margin: 0;\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n letter-spacing: var(--typography-h2-letter-spacing);\n color: var(--rsb-title-color);\n}\n\n/* body-md (16px) — matches the live paragraph, which is 16px at every\n breakpoint. body-lg would render 18px. */\n.rsb__description {\n margin: 0;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--rsb-body-color);\n}\n\n/* ── RIGHT: LINK STACK ────────────────────────────────────────\n Always a vertical stack (live `.is-flex-vertical`), so any\n number of links reads as a list rather than a wrapping row. */\n\n.rsb__links {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: var(--rsb-links-gap);\n /* Live: flex-start < 768px, centered above */\n align-items: flex-start;\n justify-content: flex-start;\n}\n\n.rsb__links-item {\n display: flex;\n max-width: 100%;\n}\n\n/* `Link` sets `white-space: nowrap`, which would overflow the narrow\n mobile column on a long resource title. Allow wrapping here and keep\n the trailing icon on the last line rather than letting it shrink. */\n.rsb__link {\n white-space: normal;\n align-items: flex-start;\n text-align: left;\n}\n\n/* ── MOBILE ≥ 480px ───────────────────────────────────────────\n Live drops card padding to 24px below 480px; the base block\n above encodes that, and this restores the 48px used from here up. */\n\n@media (min-width: 480px) {\n :root {\n --rsb-card-padding: var(--spacing-48);\n }\n}\n\n/* ── TABLET ≥ 768px ───────────────────────────────────────── */\n\n@media (min-width: 768px) {\n :root {\n --rsb-section-padding-inline: var(--spacing-24);\n --rsb-grid-gap: var(--spacing-32);\n --rsb-content-gap: var(--spacing-24);\n }\n\n .rsb__grid {\n grid-template-columns: 1fr 1fr;\n }\n\n .rsb__links {\n align-items: center;\n justify-content: center;\n }\n}\n\n/* ── DESKTOP ≥ 992px ──────────────────────────────────────── */\n\n@media (min-width: 992px) {\n :root {\n --rsb-section-padding-block: var(--spacing-112);\n --rsb-grid-gap: var(--spacing-80);\n --rsb-content-gap: var(--spacing-32);\n }\n\n .rsb__grid {\n grid-template-columns: 2fr 1fr;\n }\n}\n"],"mappings":";AAEA,CAAC;AACG,YAAU;AACV,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,OAAK,IAAI;AACT,WAAS,KAAK,IAAI,cAAc,EAAE,KAAK,KAAK,IAAI,cAAc,EAAE;AAChE,aAAW,IAAI;AACf,UAAQ,IAAI,MAAM;AAClB,iBAAe,IAAI;AACnB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa;AACb,cAAY;AACZ,eAAa;AACb,mBAAiB;AACjB,UAAQ;AACR,WAAS;AACT,cAAY;AACZ;AAAA,IAAY,iBAAiB,MAAM,IAAI;AAAA,IAAE,aAAa,MAAM,IAAI;AAAA,IAAE,QAAQ,MAAM;AACpF;AAIA,CAzBC,MAyBM,CAAC;AACJ,SAAO;AACX;AAIA,CA/BC,MA+BM,CAAC;AACJ,WAAS,KAAK,IAAI,cAAc,EAAE;AAClC,aAAW;AACX,SAAO,IAAI;AACX,UAAQ,IAAI;AAChB;AAIA,CAxCC,OAwCO,CAAC;AACL,QAAM,EAAE,EAAE;AACV,aAAW;AACX,cAAY;AAChB;AAIA,CAhDC,OAgDO,CAAC;AACL,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,eAAa;AACjB;AAIA,CA3DC,OA2DO,CAAC;AACL,YAAU;AACV,SAAO;AACP,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,kBAAgB;AACpB;AAEA,CAnEC,MAmEM,cAAc;AACjB,WAAS;AACT,YAAU;AACV,SAAO;AACP,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,kBAAgB;AACpB;AAMA,CAAC;AACG,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACf;AAEA,CALC,aAKa,MAAM,KAAK;AACrB,oBAAkB,IAAI;AAC1B;AAEA,CATC,aASa,OAAO,KAAK;AACtB,oBAAkB,IAAI;AAC1B;AAEA,CAbC,aAaa;AACV,WAAS;AACT,UAAQ;AACZ;AAEA,CAAC;AACG,oBAAkB;AAClB,SAAO,IAAI;AACX,gBAAc,IAAI;AACtB;AAEA,CANC,eAMe,MAAM,KAAK;AACvB,oBAAkB,KAAK,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;AACxC;AAEA,CAVC,eAUe,OAAO,KAAK;AACxB,oBAAkB,KAAK,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;AACxC;AAEA,CAdC,eAce;AACZ,WAAS;AACT,UAAQ;AACZ;AAMA,CAAC;AACG,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACf;AAEA,CALC,aAKa,MAAM,KAAK;AACrB,oBAAkB,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACvC;AAEA,CATC,aASa,OAAO,KAAK;AACtB,oBAAkB,IAAI;AAC1B;AAEA,CAbC,aAaa;AACV,WAAS;AACT,UAAQ;AACZ;AAEA,CAAC;AACG,oBAAkB;AAClB,SAAO,IAAI;AACX,gBAAc,IAAI;AACtB;AAEA,CANC,eAMe,MAAM,KAAK;AACvB,oBAAkB,IAAI;AAC1B;AAEA,CAVC,eAUe,OAAO,KAAK;AACxB,oBAAkB,IAAI;AAC1B;AAEA,CAdC,eAce;AACZ,WAAS;AACT,UAAQ;AACZ;AAMA,CAAC;AACG,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACf;AAEA,CALC,aAKa,MAAM,KAAK;AACrB,oBAAkB,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC1C;AAEA,CATC,aASa,OAAO,KAAK;AACtB,oBAAkB,IAAI;AAC1B;AAEA,CAbC,aAaa;AACV,WAAS;AACT,UAAQ;AACZ;AAEA,CAAC;AACG,oBAAkB;AAClB,SAAO,IAAI;AACX,gBAAc,IAAI;AACtB;AAEA,CANC,eAMe,MAAM,KAAK;AACvB,oBAAkB,IAAI;AAC1B;AAEA,CAVC,eAUe,OAAO,KAAK;AACxB,oBAAkB,IAAI;AAC1B;AAEA,CAdC,eAce;AACZ,WAAS;AACT,UAAQ;AACZ;;;ACrMA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,UAAQ;AACR,mBAAiB;AACjB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa;AACb,eAAa;AACb,cAAY;AACZ,UAAQ;AACR,WAAS;AACT,WAAS;AACT,cAAY,IAAI,MAAM;AAC1B;AAEA,CAlBC,IAkBI;AACD,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AAChB,iBAAe,IAAI;AACvB;AAIA,CA1BC,IA0BI,CAAC;AACF,WAAS,IAAI;AACb,UAAQ;AACR,kBAAgB;AACpB;AAIA,CAlCC,KAkCK,CAAC;AACH,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,eAAa;AACjB;AAIA,CA7CC,KA6CK,CAAC;AACH,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,eAAa;AACb,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,cAAY,UAAU,MAAM;AAChC;AAIA,CAzDC,KAyDK,CAAC;AACH,4BAA0B;AAC9B;AAIA,CA/DC,IA+DI,CAAC,WAAW;AACjB,CAhEC,IAgEI,CADC,WACW;AACb,OAAK,IAAI;AACb;AAIA,CAtEC,IAsEI,CAAC,QAAQ,OAAO,CAbd;AAcP,CAvEC,IAuEI,CADC,QACQ,QAAQ,CAdf;AAeH,mBAAiB;AACjB,yBAAuB;AAC3B;AAIA,CA9EC,IA8EI,CAAC;AACF,SAAO,IAAI;AACf;AAEA,CAlFC,IAkFI,CAAC;AACF,SAAO,IAAI;AACf;AAEA,CAtFC,IAsFI,CAAC;AACF,SAAO,IAAI;AACf;;;ACxFA,CAAC;AACG,YAAU;AACV,WAAS;AACT,eAAa;AACb,UAAQ,IAAI,qBAAqB,MAAM,IAAI;AAC3C,iBAAe,IAAI;AACnB,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,eAAa;AACb,SAAO,IAAI;AACX,eAAa;AACb,cAAY;AACZ,UAAQ;AACR,WAAS;AACT,cAAY;AACZ;AAAA,IAAY,iBAAiB,MAAM,IAAI;AAAA,IAAE,MAAM,MAAM,IAAI;AAAA,IAAE,aAAa,MAAM;AAC9E,eAAa;AACjB;AAIA,CArBC,IAqBI,CAAC;AACF,UAAQ,IAAI;AACZ,WAAS,EAAE,IAAI;AACf,OAAK;AACL,aAAW,IAAI;AACnB;AAEA,CA5BC,IA4BI,CAAC;AACF,UAAQ,IAAI;AACZ,WAAS,EAAE,IAAI;AACf,OAAK,IAAI;AACT,aAAW,IAAI;AACnB;AAEA,CAnCC,IAmCI,CAAC;AACF,UAAQ,IAAI;AACZ,WAAS,EAAE,IAAI;AACf,OAAK,IAAI;AACT,aAAW,IAAI;AACnB;AAIA,CA5CC,IA4CI,MAAM,KAAK,UAAU,KAAK,CAAC;AAC5B,oBAAkB,IAAI;AAC1B;AAEA,CAhDC,IAgDI,OAAO,KAAK,UAAU,KAAK,CAJA;AAK5B,oBAAkB,IAAI;AAC1B;AAIA,CAtDC,IAsDI,CAV2B;AAW5B,oBAAkB,IAAI;AACtB,gBAAc,IAAI;AAClB,gBAAc,IAAI;AAClB,SAAO,IAAI;AACf;AAIA,CA/DC,IA+DI;AACD,gBAAc,IAAI;AAClB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAvEC,KAuEK,CAAC;AACH,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,eAAa;AACb,SAAO;AACP,UAAQ;AACZ;AAIA,CAlFC,KAkFK,CAAC;AACH,eAAa;AACjB;AAIA,CAxFC,KAwFK,CAAC;AACH,eAAa,IAAI;AACjB,eAAa;AACjB;AAIA,CA/FC,KA+FK,CAAC;AACH,YAAU;AACV,SAAO;AACP,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,kBAAgB;AACpB;AAGA,CAxGC,IAwGI,CA5D2B,SA4DjB,CATR;AAUH,SAAO;AACX;AAEA,CA5GC,IA4GI,cAAc;AACf,WAAS;AACT,YAAU;AACV,SAAO;AACP,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,kBAAgB;AACpB;AAEA,CArHC,IAqHI,CAzE2B,QAyElB,cAAc;AACxB,SAAO;AACX;;;ACvHA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,cAAY;AACZ,eAAa;AACb,eAAa,IAAI;AACjB,eAAa;AACb,SAAO,IAAI;AACX,iBAAe,IAAI;AACvB;AAIA,CAdC,GAcG,CAAC;AACD,oBAAkB,IAAI;AAC1B;AAEA,CAlBC,GAkBG,CAAC;AACD,UAAQ,IAAI,MAAM,IAAI;AAC1B;AAIA,CAxBC,GAwBG,CAAC;AACD,UAAQ;AACR,WAAS,EAAE,IAAI;AACf,OAAK,IAAI;AACT,aAAW;AACf;AAEA,CA/BC,GA+BG,CAAC;AACD,UAAQ,IAAI;AACZ,WAAS,EAAE,IAAI;AACf,OAAK,IAAI;AACT,aAAW,IAAI;AACnB;AAEA,CAtCC,GAsCG,CAAC;AACD,UAAQ,IAAI;AACZ,WAAS,EAAE,IAAI;AACf,OAAK,IAAI;AACT,aAAW,IAAI;AACnB;AAEA,CA7CC,GA6CG,CAAC;AACD,UAAQ,IAAI;AACZ,WAAS,EAAE,IAAI;AACf,OAAK,IAAI;AACT,aAAW,IAAI;AACnB;AAEA,CApDC,GAoDG,CAAC;AACD,SAAO,IAAI;AACX,WAAS;AACT,UAAQ;AACR,kBAAgB;AAChB,kBAAgB;AACpB;AAIA,CA9DC,GA8DG,CAAC;AACD,eAAa,IAAI;AACrB;AAEA,CAlEC,GAkEG,CAAC;AACD,eAAa,IAAI;AACrB;AAIA,CAxEC,IAwEI,CAAC;AACF,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,eAAa;AACb,SAAO;AACP,UAAQ;AACZ;AAIA,CAnFC,IAmFI,CAAC;AACF,eAAa;AACjB;;;ACrFA,CAAC;AACG,YAAU;AACV,SAAO;AACP,aAAW;AACX,cAAY;AAChB;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,WAAS,IAAI,cAAc;AAC3B,SAAO;AACP,cAAY;AACZ,UAAQ;AACR,UAAQ;AACR,WAAS;AACT,YAAU;AACV,cAAY;AACZ,cAAY;AAChB;AAEA,CAfC,iBAeiB,cAAc;AAC5B,WAAS;AACT,YAAU;AACV,SAAO;AACP,UAAQ,IAAI,MAAM,IAAI;AACtB,kBAAgB;AACpB;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,UAAQ,IAAI,MAAM,IAAI;AACtB,kBAAgB;AACpB;AAIA,CAAC;AACG,QAAM,EAAE,EAAE;AACV,aAAW;AACf;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,eAAa;AACb,SAAO,IAAI;AACX,cAAY,UAAU,MAAM;AAChC;AAEA,CAAC;AACG,aAAW,OAAO;AACtB;AAIA,CAAC;AACG,WAAS;AACT,sBAAoB;AACpB,cAAY,mBAAmB,MAAM;AACzC;AAEA,CAAC;AACG,sBAAoB;AACxB;AAEA,CAAC;AACG,YAAU;AACd;AAEA,CAAC;AACG,kBAAgB,IAAI;AACpB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;;;AChGA,CAAC;AACG,WAAS;AACT,eAAa;AACb,UAAQ,IAAI;AACZ,WAAS,EAAE,IAAI;AACf,OAAK,IAAI;AACT,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM;AAClB,cAAY;AACZ,UAAQ;AACR,cAAY,iBAAiB,MAAM,IAAI,EAAE,aAAa,MAAM;AAChE;AAKA,CAhBC,UAgBU,CAAC;AACR,kBAAgB;AAChB,eAAa;AACb,mBAAiB;AACjB,UAAQ;AACR,cAAY,IAAI;AAChB,WAAS,IAAI,aAAa,IAAI;AAC9B,OAAK,IAAI;AACb;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,eAAa;AACjB;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAIA,CA1CC,UA0CU,CAAC;AACR,cAAY,IAAI;AAChB,gBAAc,IAAI;AACtB;AAIA,CAjDC,UAiDU,CAAC;AACR,cAAY,IAAI;AACpB;AAIA,CAvDC,UAuDU,CAAC,OAAO,CAbP,OAae,MAAM,KAAK,CAAC,eAAe,KAAK;AACvD,gBAAc,IAAI;AACtB;AAEA,CA3DC,UA2DU,CAJC,OAIO,CAVP,IAUY,MAAM,KAAK,CAAC,eAAe,KAAK;AACpD,cAAY,IAAI;AACpB;AAIA,CAjEC,UAiEU,CAVC,OAUO,CAvBP,OAuBe,aAAa,KAAK,CAAC;AAC1C,gBAAc,IAAI;AACtB;AAEA,CArEC,UAqEU,CAdC,OAcO,CApBP,IAoBY,aAAa,KAAK,CAAC;AACvC,gBAAc,IAAI;AACtB;AAIA,CA3EC,UA2EU,CAAC,IAAI,CAjCJ;AAkCR,gBAAc,IAAI;AACtB;AAEA,CA/EC,UA+EU,CAJC,IAII,CArCJ,OAqCY,MAAM,KAAK,CAAC,eAAe,KAAK;AACpD,gBAAc,IAAI;AACtB;AAEA,CAnFC,UAmFU,CARC,IAQI,CAzCJ,OAyCY,aAAa,KAAK,CAAC;AACvC,gBAAc,IAAI;AACtB;AAIA,CAzFC,UAyFU,CAdC,IAcI,CAxCJ;AAyCR,cAAY,IAAI;AACpB;AAEA,CA7FC,UA6FU,CAlBC,IAkBI,CA5CJ,IA4CS,MAAM,KAAK,CAAC,eAAe,KAAK;AACjD,cAAY,IAAI;AACpB;AAEA,CAjGC,UAiGU,CAtBC,IAsBI,CAhDJ,IAgDS,aAAa,KAAK,CAAC;AACpC,cAAY,IAAI;AAChB,gBAAc,IAAI;AACtB;AAIA,CAxGC,UAwGU,CAAC,OAAO,CA9DP;AA+DR,gBAAc,IAAI;AACtB;AAEA,CA5GC,UA4GU,CAJC,OAIO,CAlEP,OAkEe,MAAM,KAAK,CAAC,eAAe,KAAK;AACvD,gBAAc,IAAI;AACtB;AAEA,CAhHC,UAgHU,CARC,OAQO,CAtEP,OAsEe,aAAa,KAAK,CAAC;AAC1C,gBAAc,IAAI;AACtB;AAIA,CAtHC,UAsHU,CAdC,OAcO,CArEP;AAsER,cAAY,IAAI;AACpB;AAEA,CA1HC,UA0HU,CAlBC,OAkBO,CAzEP,IAyEY,MAAM,KAAK,CAAC,eAAe,KAAK;AACpD,cAAY,IAAI;AACpB;AAEA,CA9HC,UA8HU,CAtBC,OAsBO,CA7EP,IA6EY,aAAa,KAAK,CAAC;AACvC,cAAY,IAAI;AAChB,gBAAc,IAAI;AACtB;AAIA,CArIC,UAqIU,CAAC;AACR,UAAQ;AACZ;AAIA,CA3IC,WA2IW,CAAC;AACT,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,eAAa;AACb,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,SAAO,IAAI;AACf;AAEA,CArJC,UAqJU,CAAC,eAAe,CAVd;AAWT,SAAO,IAAI;AACf;AAEA,CAzJC,WAyJW,CAAC;AACT,SAAO,IAAI;AACf;AAEA,CA7JC,WA6JW,CAAC;AACT,SAAO,IAAI;AACf;AAIA,CAnKC,WAmKW,CAAC;AACT,QAAM,EAAE,EAAE;AACV,aAAW;AACX,UAAQ;AACR,WAAS;AACT,cAAY;AACZ,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,eAAa,IAAI;AACjB,WAAS;AACb;AAEA,CAlLC,WAkLW,CAfC,QAeQ;AACjB,SAAO,IAAI;AACf;AAEA,CAtLC,WAsLW,CAnBC,QAmBQ;AACjB,SAAO,IAAI;AACf;AAEA,CA1LC,WA0LW,CAvBC,QAuBQ;AACjB,UAAQ;AACR,SAAO,IAAI;AACf;AAEA,CA/LC,WA+LW,CA5BC,QA4BQ,SAAS;AAC1B,SAAO,IAAI;AACf;;;ACjMA,CAAC;AACG,WAAS;AACT,eAAa;AACb,UAAQ,IAAI;AACZ,WAAS,EAAE,IAAI;AACf,OAAK,IAAI;AACT,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM;AAClB,cAAY;AACZ,UAAQ;AACR,cAAY,iBAAiB,MAAM,IAAI,EAAE,aAAa,MAAM;AAChE;AAKA,CAhBC,UAgBU,CAAC;AACR,kBAAgB;AAChB,eAAa;AACb,mBAAiB;AACjB,UAAQ;AACR,cAAY,IAAI;AAChB,WAAS,IAAI,aAAa,IAAI;AAC9B,OAAK,IAAI;AACb;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,eAAa;AACjB;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,eAAa;AACb,SAAO,IAAI;AACf;AAIA,CApDC,UAoDU,CAAC;AACR,cAAY,IAAI;AAChB,gBAAc,IAAI;AACtB;AAIA,CA3DC,UA2DU,CAAC;AACR,cAAY,IAAI;AACpB;AAIA,CAjEC,UAiEU,CAAC,OAAO,CAbP,OAae,MAAM,KAAK,CAAC,eAAe,KAAK;AACvD,gBAAc,IAAI;AACtB;AAEA,CArEC,UAqEU,CAJC,OAIO,CAVP,IAUY,MAAM,KAAK,CAAC,eAAe,KAAK;AACpD,cAAY,IAAI;AACpB;AAIA,CA3EC,UA2EU,CAVC,OAUO,CAvBP,OAuBe,aAAa,KAAK,CAAC;AAC1C,gBAAc,IAAI;AACtB;AAEA,CA/EC,UA+EU,CAdC,OAcO,CApBP,IAoBY,aAAa,KAAK,CAAC;AACvC,gBAAc,IAAI;AACtB;AAIA,CArFC,UAqFU,CAAC,IAAI,CAjCJ;AAkCR,gBAAc,IAAI;AACtB;AAEA,CAzFC,UAyFU,CAJC,IAII,CArCJ,OAqCY,MAAM,KAAK,CAAC,eAAe,KAAK;AACpD,gBAAc,IAAI;AACtB;AAEA,CA7FC,UA6FU,CARC,IAQI,CAzCJ,OAyCY,aAAa,KAAK,CAAC;AACvC,gBAAc,IAAI;AACtB;AAIA,CAnGC,UAmGU,CAdC,IAcI,CAxCJ;AAyCR,cAAY,IAAI;AACpB;AAEA,CAvGC,UAuGU,CAlBC,IAkBI,CA5CJ,IA4CS,MAAM,KAAK,CAAC,eAAe,KAAK;AACjD,cAAY,IAAI;AACpB;AAEA,CA3GC,UA2GU,CAtBC,IAsBI,CAhDJ,IAgDS,aAAa,KAAK,CAAC;AACpC,cAAY,IAAI;AAChB,gBAAc,IAAI;AACtB;AAIA,CAlHC,UAkHU,CAAC,OAAO,CA9DP;AA+DR,gBAAc,IAAI;AACtB;AAEA,CAtHC,UAsHU,CAJC,OAIO,CAlEP,OAkEe,MAAM,KAAK,CAAC,eAAe,KAAK;AACvD,gBAAc,IAAI;AACtB;AAEA,CA1HC,UA0HU,CARC,OAQO,CAtEP,OAsEe,aAAa,KAAK,CAAC;AAC1C,gBAAc,IAAI;AACtB;AAIA,CAhIC,UAgIU,CAdC,OAcO,CArEP;AAsER,cAAY,IAAI;AACpB;AAEA,CApIC,UAoIU,CAlBC,OAkBO,CAzEP,IAyEY,MAAM,KAAK,CAAC,eAAe,KAAK;AACpD,cAAY,IAAI;AACpB;AAEA,CAxIC,UAwIU,CAtBC,OAsBO,CA7EP,IA6EY,aAAa,KAAK,CAAC;AACvC,cAAY,IAAI;AAChB,gBAAc,IAAI;AACtB;AAIA,CA/IC,UA+IU,CAAC;AACR,UAAQ;AACZ;AAIA,CArJC,WAqJW,CAAC;AACT,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,eAAa;AACb,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,SAAO,IAAI;AACf;AAEA,CA/JC,UA+JU,CAAC,eAAe,CAVd;AAWT,SAAO,IAAI;AACf;AAEA,CAnKC,WAmKW,CAAC;AACT,SAAO,IAAI;AACf;AAEA,CAvKC,WAuKW,CAAC;AACT,SAAO,IAAI;AACf;AAIA,CA7KC,WA6KW,CAAC;AACT,QAAM,EAAE,EAAE;AACV,aAAW;AACX,UAAQ;AACR,WAAS;AACT,cAAY;AACZ,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,eAAa,IAAI;AACjB,WAAS;AACb;AAEA,CA5LC,WA4LW,CAfC,QAeQ;AACjB,SAAO,IAAI;AACf;AAEA,CAhMC,WAgMW,CAnBC,QAmBQ;AACjB,SAAO,IAAI;AACf;AAEA,CApMC,WAoMW,CAvBC,QAuBQ;AACjB,UAAQ;AACR,SAAO,IAAI;AACf;AAEA,CAzMC,WAyMW,CA5BC,QA4BQ,SAAS;AAC1B,SAAO,IAAI;AACf;AAIA,CA/MC,WA+MW,CAAC;AACT,cAAY;AACZ,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,eAAa;AACb,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,WAAS;AACT,UAAQ;AACR,cAAY;AACZ,UAAQ;AACR,SAAO,IAAI;AACX,iBAAe,IAAI;AACnB,cAAY,MAAM,MAAM;AAC5B;AAEA,CAhOC,WAgOW,CAjBC,WAiBW;AACpB,SAAO,IAAI;AACf;AAEA,CApOC,WAoOW,CArBC,WAqBW;AACpB,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AACpB;;;ACvOA,CAAC;AACG,YAAU;AACV,SAAO;AACP,WAAS;AACT,cAAY,IAAI;AAChB,WAAS;AACT,eAAa;AACjB;AAIA,CAAC;AACG,SAAO;AACP,cAAY,IAAI;AAChB,iBAAe,IAAI,aAAa,IAAI,aAAa,EAAE;AACnD,cAAY,IAAI;AAChB,YAAU;AACV,WAAS;AACT,kBAAgB;AAChB,cAAY;AACZ,aAAW,YAAY,MAAM,aAAa,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG;AAChE;AAEA,WAHe;AAIX;AACI,eAAW,WAAW;AAC1B;AACA;AACI,eAAW,WAAW;AAC1B;AACJ;AAIA,CAAC;AACG,WAAS;AACT,mBAAiB;AACjB,eAAa;AACb,WAAS,IAAI,aAAa;AAC1B,eAAa;AACjB;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,iBAAe,IAAI;AACnB,cAAY,IAAI;AACpB;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,UAAQ;AACR,WAAS,EAAE,IAAI;AACf,eAAa;AACjB;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,eAAa;AACjB;AAEA,CAAC;AACG,QAAM;AACN,cAAY;AACZ,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,YAAU;AACV,iBAAe;AACf,eAAa;AACb,aAAW;AACf;AAEA,CAAC;AACG,eAAa;AACjB;AAEA,CAAC;AACG,YAAU;AACV,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO;AACP,UAAQ;AACR,iBAAe,IAAI;AACnB,UAAQ;AACR,cAAY;AACZ,UAAQ;AACR,SAAO,IAAI;AACX,cAAY,iBAAiB,MAAM;AACnC,WAAS;AACT,cAAY;AAChB;AAEA,CAjBC,YAiBY;AACT,cAAY,IAAI;AACpB;AAEA,CArBC,YAqBY;AACT,cAAY,IAAI;AACpB;AAEA,CAzBC,YAyBY,cAAc;AACvB,WAAS;AACT,YAAU;AACV,SAAO;AACP,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,kBAAgB;AACpB;AAIA,CAAC;AACG,QAAM;AACN,cAAY;AACZ,cAAY;AAChB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,WAAS,IAAI;AACb,eAAa;AACjB;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,iBAAe,IAAI;AACnB,UAAQ;AACR,cAAY,IAAI;AAChB,SAAO,IAAI;AACX,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,UAAQ;AACR,cAAY,iBAAiB,MAAM;AACnC,cAAY;AAChB;AAEA,CAfC,iBAeiB;AACd,cAAY,IAAI;AACpB;AAEA,CAnBC,iBAmBiB;AACd,cAAY,IAAI;AACpB;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,cAAY;AACZ,SAAO,IAAI;AACX,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,UAAQ;AACR,cAAY,iBAAiB,MAAM;AACnC,cAAY;AAChB;AAEA,CAfC,mBAemB;AAChB,cAAY,IAAI;AACpB;AAEA,CAnBC,mBAmBmB;AAChB,cAAY,IAAI;AACpB;AAIA,QAAO,WAAY;AACf,GA1LH;AA2LO,aAAS;AACb;AACJ;;;AC7LA,CAAC;AACG,WAAS;AACT,aAAW;AACX,eAAa;AACb,YAAU;AACV,OAAK,IAAI;AACT,cAAY;AACZ,UAAQ;AACR,WAAS;AACT,eAAa,IAAI;AACjB,eAAa,IAAI;AACrB;AAIA,CAfC,OAeO,CAAC;AACL,aAAW,IAAI;AACf,eAAa,IAAI;AACrB;AAEA,CApBC,OAoBO,CAAC;AACL,aAAW,IAAI;AACf,eAAa,IAAI;AACrB;AAIA,CAAC;AACD,CAAC;AACD,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAIA,CAAC;AACG,SAAO,IAAI;AACX,mBAAiB;AACjB,eAAa;AACb,UAAQ;AACR,iBAAe,IAAI;AACvB;AAEA,CARC,OAQO;AACJ,mBAAiB;AACrB;AAEA,CAZC,OAYO;AACJ,SAAO,IAAI;AACX,mBAAiB;AACrB;AAEA,CAjBC,OAiBO;AACJ,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AAChB,mBAAiB;AACrB;AAIA,CAAC;AACG,SAAO,IAAI;AACX,eAAa;AACb,YAAU;AACV,iBAAe;AACnB;AAIA,CA5CC,OA4CO;AACJ,aAAW;AACX,eAAa;AACb,YAAU;AACd;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,eAAa;AACb,SAAO,IAAI;AACX,SAAO;AACP,UAAQ;AACZ;AAIA,CAAC;AACG,cAAY;AACZ,cAAY;AACZ,UAAQ;AACR,WAAS;AACT,UAAQ;AACR,QAAM;AACN,SAAO,IAAI;AACX,UAAQ;AACR,iBAAe,IAAI;AACvB;AAEA,CAZC,iBAYiB;AACd,mBAAiB;AACrB;AAEA,CAhBC,iBAgBiB;AACd,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AAChB,mBAAiB;AACrB;AAIA,CAtFC;AAuFG,WAAS;AACb;AAEA,CA3FC;AA4FG,WAAS;AACb;AAEA,QAAO,WAAY;AACf,GA5HH,OA4HW,CAAC;AACL,SAAK,IAAI;AACb;AAEA,GAhIH,OAgIW,CAJC,YAIY,CArGxB;AAAA,EAsGG,CAjIH,OAiIW,CALC,YAKY,CArGxB;AAAA,EAsGG,CAlIH,OAkIW,CANC,YAMY,CArGxB;AAsGO,SAAK,IAAI;AACb;AAEA,GAtIH,OAsIW,CAVC,YAUY,CAzGxB;AA0GO,aAAS;AACb;AAEA,GA1IH,OA0IW,CAdC,YAcY,CA9GxB;AA+GO,aAAS;AACb;AAEJ;AAIA,CAAC;AACG,cAAY;AACZ,UAAQ;AACR,WAAS;AACT,kBAAgB,IAAI;AACxB;AAEA,CAAC;AACG,iBAAe,IAAI,MAAM,IAAI;AACjC;AAEA,CAJC,aAIa;AACV,iBAAe;AACnB;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,UAAQ;AACR,WAAS,EAAE,IAAI;AACf,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,mBAAiB;AACjB,eAAa;AACb,YAAU;AACV,iBAAe;AACnB;AAEA,CAfC,aAea;AACV,mBAAiB;AACrB;AAEA,CAnBC,aAmBa;AACV,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AACpB;;;ACvLA,CAAC;AACG,YAAU;AACV,WAAS;AACb;AAIA,CAAC;AACG,YAAU;AACV,WAAS;AACT,eAAa;AACb,UAAQ,IAAI,MAAM,IAAI;AACtB,iBAAe,IAAI;AACnB,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,eAAa;AACb,cAAY;AACZ,UAAQ;AACR,WAAS;AACT,cAAY;AACZ;AAAA,IAAY,iBAAiB,MAAM,IAAI;AAAA,IAAE,MAAM,MAAM,IAAI;AAAA,IAAE,aAAa,MAAM;AAC9E,eAAa;AACjB;AAIA,CApBC,UAoBU,CAAC;AACR,UAAQ,IAAI;AACZ,gBAAc,IAAI;AAClB,iBAAe;AACf,OAAK;AACL,aAAW,IAAI;AACnB;AAEA,CA5BC,UA4BU,CAAC;AACR,UAAQ,IAAI;AACZ,gBAAc,IAAI;AAClB,iBAAe,IAAI;AACnB,OAAK,IAAI;AACT,aAAW,IAAI;AACnB;AAIA,CAtCC,UAsCU,MAAM,KAAK,UAAU,KAAK,CAAC;AAClC,oBAAkB,IAAI;AAC1B;AAEA,CA1CC,UA0CU,OAAO,KAAK;AACnB,oBAAkB,IAAI;AAC1B;AAIA,CAhDC,UAgDU,CAAC,MAAM,KAAK,CAVe,SAUL,KAAK;AAClC,oBAAkB,IAAI;AAC1B;AAIA,CAtDC,UAsDU,CAhB2B;AAiBlC,oBAAkB,IAAI;AACtB,gBAAc,IAAI;AAClB,SAAO,IAAI;AACf;AAIA,CA9DC,UA8DU;AACP,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CArEC,WAqEW,CAAC;AACT,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,eAAa;AACb,SAAO;AACP,UAAQ;AACZ;AAIA,CAhFC,WAgFW,CAAC;AACT,eAAa;AACjB;AAIA,CAtFC,WAsFW,CAAC;AACT,eAAa,IAAI;AACjB,eAAa;AACjB;AAIA,CA7FC,WA6FW,CAAC;AACT,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,eAAa;AACb,SAAO;AACP,UAAQ;AACR,cAAY,UAAU,MAAM;AAChC;AAEA,CAvGC,WAuGW,CAVC,UAUU,CAAC;AACpB,aAAW,OAAO;AACtB;AAIA,CA7GC,UA6GU,cAAc;AACrB,WAAS;AACT,YAAU;AACV,SAAO;AACP,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,kBAAgB;AACpB;AAIA,CAAC;AACG,YAAU;AACV,OAAK,KAAK,KAAK,EAAE;AACjB,QAAM;AACN,WAAS;AACT,aAAW;AACX,cAAY;AACZ,UAAQ;AACR,WAAS,IAAI;AACb,cAAY,IAAI;AAChB,UAAQ,IAAI,MAAM,IAAI;AACtB,iBAAe,IAAI;AACnB,cAAY,IAAI;AAChB,WAAS;AACT,kBAAgB;AAChB,cAAY;AAChB;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK;AACL,UAAQ,IAAI;AACZ,WAAS,EAAE,IAAI;AACf,iBAAe,IAAI;AACnB,UAAQ;AACR,SAAO,IAAI;AACX,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,eAAa;AACb,cAAY;AACZ,cAAY,iBAAiB,MAAM;AACnC,cAAY;AAChB;AAEA,CAlBC,OAkBO;AACJ,oBAAkB,IAAI;AAC1B;AAEA,CAtBC,OAsBO;AACJ,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,QAAM;AACN,aAAW;AACX,YAAU;AACV,iBAAe;AACf,eAAa;AACjB;AAIA,CAtCC,OAsCO,CAAC,aAAa,CAVrB;AAWG,eAAa,IAAI;AACrB;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,eAAa;AACb,SAAO,IAAI;AACf;AAIA,CAAC;AACG,YAAU;AACV,UAAQ;AACR,iBAAe;AACf,cAAY;AACZ,WAAS;AACT,cAAY;AAChB;AAEA,CATC,eASe,CA/Df;AAgEG,UAAQ;AACR,WAAS,EAAE,IAAI;AACf,iBAAe;AACf,iBAAe,IAAI,MAAM,IAAI;AAC7B,aAAW,IAAI;AACnB;AAEA,CAjBC,eAiBe,CAvEf,OAuEuB;AACpB,iBAAe;AACnB;AAEA,CArBC,eAqBe,CA3Ef,OA2EuB,CArCf,aAqC6B,CA/CrC;AAgDG,eAAa,IAAI;AACrB;;;AChOA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,iBAAe,IAAI;AACnB,YAAU;AACV,UAAQ;AACR,YAAU;AACV,SAAO;AACX;AAIA,CAZC,YAYY,CAAC;AAAe,oBAAkB,IAAI;AAAmB;AACtE,CAbC,YAaY,CAAC;AAAe,oBAAkB,IAAI;AAAqB;AACxE,CAdC,YAcY,CAAC;AAAe,oBAAkB,IAAI;AAAoB;AACvE,CAfC,YAeY,CAAC;AAAe,oBAAkB;AAAa;AAI5D,CAnBC,aAmBa,CAAC;AACX,QAAM,EAAE,EAAE;AACV,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,WAAS,IAAI;AACb,YAAU;AACV,WAAS;AACT,cAAY;AAChB;AAIA,CAhCC,aAgCa,CAAC;AAAc,SAAO,IAAI;AAAqB;AAC7D,CAjCC,aAiCa,CAAC;AAAc,SAAO,IAAI;AAAmB;AAI3D,CArCC,aAqCa,CAAC;AACX,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,UAAQ;AACR,SAAO;AACX;AAIA,CAhDC,aAgDa,CAAC;AACX,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,UAAQ;AACR,SAAO;AACX;AAIA,CA3DC,aA2Da,CAAC;AACX,UAAQ;AACR,eAAa;AACb,YAAU;AACV,YAAU;AACV,oBAAkB;AACtB;AAEA,CAnEC,aAmEa,CAAC;AACX,YAAU;AACV,SAAO;AACP,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB;AACjB,WAAS;AACb;AAIA,CA/EC,aA+Ea,CAAC;AACX,YAAU;AACV,SAAO;AACP,kBAAgB;AAChB,WAAS;AACb;AAEA,CAtFC,aAsFa,CAAC;AACX,YAAU;AACV,SAAO;AACP,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB;AACjB,WAAS;AACb;AAEA,CAhGC,aAgGa,CAAC;AACX,YAAU;AACV,SAAO;AACP;AAAA,IAAY;AAAA,MACR,GAAG,MAAM;AAAA,MACT,IAAI,0BAA0B,GAAG;AAAA,MACjC,YAAY;AAEpB;;;ACxGA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,WAAS,IAAI;AACb,oBAAkB,IAAI;AACtB,iBAAe,IAAI;AACnB,YAAU;AACV,SAAO;AACP,cAAY;AAChB;AAIA,CAdC,eAce,CAAC;AACb,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,eAAa;AACb,SAAO,IAAI;AACf;AAIA,CA1BC,eA0Be,CAAC;AACb,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,SAAO;AACX;AAIA,CAtCC,eAsCe,CAAC;AACb,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,SAAO;AACX;;;AC9CA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,SAAO;AACX;AAIA,CATC,cASc,CAAC;AACZ,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,aAAW;AACf;AAEA,CAhBC,cAgBc,CAPC,cAOc,CAAC;AAC3B,SAAO;AACP,UAAQ;AACR,gBAAc;AACd,eAAa;AACb,iBAAe,IAAI;AACvB;AAEA,CAxBC,cAwBc,CAfC,cAec,CAAC;AAC3B,WAAS;AACT,sBAAoB;AACpB,sBAAoB;AACpB,YAAU;AACd;AAEA,CA/BC,cA+Bc,CAtBC,cAsBc,CAAC;AAC3B,WAAS;AACT,sBAAoB;AACpB,sBAAoB;AACpB,YAAU;AACd;AAEA,CAtCC,cAsCc,CAAC;AACZ,kBAAgB;AACpB;AAEA,QAAO,WAAY;AACf,GA3CH,cA2CkB,CAlCH;AAmCR,oBAAgB,IAAI;AACpB,mBAAe,IAAI,MAAM,IAAI;AACjC;AAEA,GAhDH,cAgDkB,CAvCH,cAuCkB,CAhCH;AAiCvB,WAAO;AACP,YAAQ;AACR,mBAAe,IAAI;AACvB;AAEA,GAtDH,cAsDkB,CA7CH,cA6CkB,CA9BH;AA+BvB,eAAW;AACf;AAEA,GA1DH,cA0DkB,CAjDH,cAiDkB,CA3BH;AA4BvB,aAAS;AACb;AACJ;AAIA,CAjEC,eAiEe,CAjDe;AAkD3B,YAAU;AACV,SAAO;AACP,gBAAc,EAAE,EAAE;AAClB,iBAAe,IAAI;AACnB,YAAU;AACV,eAAa;AACb,WAAS,IAAI,MAAM,IAAI;AACvB,oBAAkB;AACtB;AAEA,CA5EC,eA4Ee,CAAC;AACb,YAAU;AACV,SAAO;AACP,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB;AACjB,iBAAe;AACf,kBAAgB;AAChB,WAAS;AACT,cAAY,UAAU,MAAM;AAChC;AAEA,CAzFC,cAyFc,OAAO,CAbL;AAcb,aAAW,MAAM;AACrB;AAIA,CA/FC,eA+Fe,CAAC;AACb,YAAU;AACV,OAAK;AACL,QAAM;AACN,aAAW,UAAU,IAAI,EAAE;AAC3B,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,kBAAgB;AACpB;AAIA,CA9GC,eA8Ge,CAAC;AACb,YAAU;AACV,UAAQ,IAAI;AACZ,SAAO,IAAI;AACX,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,iBAAe,IAAI;AACnB,cAAY;AACZ,WAAS;AACb;AAIA,CA3HC,eA2He,CAAC;AACb,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,SAAO;AACX;AAEA,CAlIC,cAkIc,KAAK,CAzHJ,eAyHoB,CAPnB;AAQb,OAAK,IAAI;AACb;AAMA,CA1IC,eA0Ie,CAAC;AACb,WAAS;AACT,eAAa;AACb,aAAW;AACX,OAAK,IAAI;AACb;AAIA,CAnJC,eAmJe,CAAC;AACb,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO;AACP,aAAW;AACX,OAAK,IAAI;AACb;AAEA,CA5JC,eA4Je,CAAC;AACb,mBAAiB;AACrB;AAEA,CAhKC,eAgKe,CAAC;AACb,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,QAAM,EAAE,EAAE;AACV,aAAW;AACf;AAEA,CAxKC,eAwKe,CAAC;AACb,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAEA,CA9KC,eA8Ke,CAAC;AACb,SAAO,IAAI;AACX,aAAW,IAAI;AACf,eAAa;AACjB;AAIA,CAtLC,eAsLe,CAAC;AACb,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,UAAQ,IAAI;AACZ,cAAY,IAAI;AAChB,cAAY,IAAI;AAChB,WAAS,EAAE,IAAI;AACf,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,cAAY;AACZ,SAAO,IAAI;AACX,UAAQ;AACR,eAAa;AACb,cAAY,iBAAiB,MAAM;AACvC;AAEA,CAvMC,eAuMe,CAjBC,WAiBW;AACxB,oBAAkB,IAAI;AAC1B;AAIA,CA7MC,eA6Me,CArLe;AAsL3B,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,WAAS;AACT,sBAAoB;AACpB,sBAAoB;AACpB,YAAU;AACV,iBAAe;AACf,UAAQ;AACZ;AAIA,CA7NC,eA6Ne,CA9Le;AA+L3B,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,YAAU;AACV,iBAAe;AACf,UAAQ;AACZ;;;ACtOA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,SAAO;AACX;AAIA,CATC,cASc,CAAC;AACZ,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,UAAQ;AACZ;AAEA,CAhBC,cAgBc,CAPC,SAOS,OAAO,CAAC;AAC7B,mBAAiB;AACrB;AAEA,CApBC,cAoBc,CAXC,SAWS,OAAO,CAAC;AAC7B,aAAW,MAAM;AACrB;AAEA,CAxBC,cAwBc,CAJkB;AAK7B,cAAY,UAAU,MAAM;AAChC;AAEA,CA5BC,cA4Bc,CAZkB;AAa7B,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAvCC,cAuCc,CAAC;AACZ,SAAO;AACP,gBAAc,GAAG,EAAE;AACnB,iBAAe,IAAI;AACnB,YAAU;AACV,YAAU;AACd;AAEA,CA/CC,cA+Cc,CA3BkB;AA4B7B,YAAU;AACV,SAAO;AACP,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,WAAS;AACb;AAIA,CA1DC,cA0Dc,CAAC;AACZ,WAAS;AACT,kBAAgB;AACpB;AAEA,CA/DC,cA+Dc,CAAC;AACZ,WAAS,IAAI,cAAc;AAC3B,iBAAe,IAAI,MAAM,IAAI;AACjC;AAEA,CApEC,cAoEc,CALC,cAKc;AAC1B,eAAa;AACjB;AAEA,CAxEC,cAwEc,CATC,cASc;AAC1B,iBAAe;AACf,kBAAgB;AACpB;AAEA,CA7EC,cA6Ec,CAdC,eAce,CAAC,cAAc,CAAC;AAC3C,iBAAe;AACf,kBAAgB;AACpB;;;AChFA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAIA,CARC,WAQW,CAAC;AACT,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,eAAa;AACb,WAAS;AACT,UAAQ;AACR,iBAAe,IAAI;AACnB,cAAY;AACZ,SAAO,IAAI;AACX,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,cAAY;AACZ,eAAa;AACb,UAAQ;AACR,WAAS;AACT,cAAY;AAChB;AAEA,CA/BC,WA+BW,CAvBC,UAuBU;AACnB,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AACpB;AAIA,CAtCC,WAsCW,CAAC;AACT,cAAY,IAAI;AAChB,SAAO,IAAI;AACX,iBAAe,IAAI;AACnB,UAAQ;AACZ;AAIA,CA/CC,WA+CW,CAAC;AACT,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,eAAa;AACb,SAAO,IAAI;AACX,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,eAAa;AACjB;AAIA,CAhEC,WAgEW,CAAC;AACT,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,eAAa;AACb,WAAS;AACT,UAAQ;AACR,iBAAe,IAAI;AACnB,cAAY;AACZ,SAAO,IAAI;AACX,UAAQ;AACR,WAAS;AACT,cAAY;AAChB;AAEA,CAjFC,WAiFW,CAjBC,SAiBS;AAClB,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AAChB,iBAAe,IAAI;AACvB;AAIA,CAzFC,WAyFW,CAAC;AACT,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAhGC,WAgGW,CAAC;AACT,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,eAAa;AACjB;;;ACrGA;AACI,cAAY,IAAI;AACpB;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,cAAY;AACZ,8BAA4B;AAC5B,mBAAiB;AAEjB,kBAAgB,IAAI;AACpB,iBAAe,KAAK,IAAI,aAAa,EAAE;AACvC,aAAW;AACX,mBAAiB;AACrB;AAEA,CAdC,SAcS;AACN,WAAS;AAEb;AAKA,CAtBC,UAsBU,CAAC;AACR,eAAa;AACjB;AAGA,CA3BC,UA2BU,CALC,IAKI,CAAC;AACb,oBAAkB,IAAI;AACtB,gBAAc,IAAI;AAClB,SAAO,IAAI;AACf;AAGA,CAlCC,UAkCU,CAZC,IAYI,CAPC,SAOS,CAAC;AACvB,eAAa,IAAI;AACrB;;;AC1CA,CAAC;AACG,SAAO;AACX;AAEA,CAAC;AACG,oBAAkB,IAAI;AAC1B;AAEA,CAAC;AACG,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AACZ,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GAZH;AAaO,SAAK,IAAI;AACT,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK;AAEL,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GAVH;AAWO,iBAAa;AACb,SAAK,IAAI;AACb;AACJ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,gBAAY;AAChB;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,SAAO;AACX;AAEA,CANC,oBAMoB,EAAE;AACnB,aAAW;AACf;;;AC9EA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAE/B,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAZH;AAaO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GATH;AAUO,iBAAa;AACb,gBAAY;AAChB;AACJ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,aAAW;AACf;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB;AACvB,OAAK,IAAI;AACT,SAAO;AACX;AAGA,QAAO,WAAY;AACf,GATH;AAUO,2BAAuB,OAAO,CAAC,EAAE;AACjC,SAAK,IAAI;AACb;AACJ;AAGA,QAAO,WAAY;AACf,GAAC;AACG,2BAAuB,OAAO,CAAC,EAAE;AACrC;AAEA,GAAC;AACG,2BAAuB,OAAO,CAAC,EAAE;AACrC;AACJ;AAIA,CAAC;AACG,yBAAuB;AACvB,OAAK,IAAI;AACT,eAAa;AACjB;AAEA,QAAO,WAAY;AACf,GAPH;AAQO,2BAAuB,OAAO,CAAC,EAAE;AACrC;AACJ;AAEA,QAAO,WAAY;AACf,GAbH;AAcO,2BAAuB,OAAO,CAAC,EAAE;AACrC;AACJ;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,cAAY;AACZ,aAAW;AACX,SAAO;AACP,cAAY;AAChB;AAEA,CAAC;AACG,WAAS;AACT,QAAM;AACN,kBAAgB;AAChB,cAAY;AACZ,aAAW;AACX,SAAO;AACP,iBAAe,IAAI;AACnB,YAAU;AACV,cAAY;AAChB;AAEA,CAAC;AACG,oBAAkB,IAAI;AAC1B;AAEA,CAAC;AACG,oBAAkB,IAAI;AAC1B;AAEA,CAAC;AACG,QAAM,EAAE,EAAE;AACV,WAAS;AACT,kBAAgB;AAChB,OAAK;AACL,WAAS,IAAI;AACjB;AAGA,CA7BC,UA6BU,KAAK,KAAK,CAAC,0BAA0B,CAT/C;AAUG,QAAM,EAAE,EAAE;AACd;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAhCC,iBAgCiB,CATjB;AAUG,SAAO,IAAI;AACf;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CA7CC,iBA6CiB,CATjB;AAUG,SAAO,IAAI;AACf;AAEA,CAAC;AACG,cAAY;AAChB;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,cAAY,IAAI;AAChB,eAAa;AACjB;AAEA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAtEC,iBAsEiB,CATjB;AAUG,SAAO,IAAI;AACf;AAEA,CA9EC,kBA8EkB,CAblB;AAcG,SAAO,IAAI;AACf;AAEA,CAAC;AACG,WAAS;AACT,aAAW;AACX,eAAa;AACb,OAAK,IAAI;AACb;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,mBAAiB;AACjB,SAAO,IAAI;AACf;AAEA,CARC,eAQe;AACZ,mBAAiB;AACrB;AAEA,CAZC,eAYe;AACZ,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AAChB,iBAAe,IAAI;AACvB;AAEA,CAAC;AACG,SAAO,IAAI;AACf;AAEA,CAAC;AACG,WAAS;AACT,SAAO;AACP,UAAQ;AACR,eAAa;AACb,cAAY;AAChB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACrB;AAEA,CA7GsB;AA8GlB,cAAY;AACZ,QAAM,EAAE,EAAE;AACV,SAAO;AACP,gBAAc,IAAI,EAAE;AACpB,YAAU;AACV,YAAU;AACV,oBAAkB;AACtB;AAEA,CAAC;AACG,YAAU;AACV,SAAO;AACP,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB,OAAO;AACxB,WAAS;AACb;AAIA,CAAC;AACG,SAAO;AACP,cAAY;AAChB;AAEA,CAAC;AACG,cAAY;AACZ,WAAS;AACT,yBAAuB;AACvB,sBAAoB;AACpB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACP,aAAW,KAAK,GAAG,EAAE,IAAI;AACzB,iBAAe;AACf,iBAAe,IAAI;AACnB,YAAU;AACd;AAEA,QAAO,WAAY;AACf,GAfH;AAgBO,2BAAuB,IAAI;AAC3B,wBAAoB;AACpB,gBAAY,KAAK,GAAG,EAAE,IAAI;AAC1B,gBAAY,KAAK,GAAG,EAAE,IAAI;AAC9B;AACJ;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK;AACL,WAAS,IAAI;AACb,cAAY;AACZ,cAAY;AACZ,aAAW;AACf;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,aAAW;AACf;AAEA,CAAC;AACG,YAAU;AACV,aAAW;AACX,cAAY;AACZ,oBAAkB,IAAI;AACtB,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GATH;AAUO,aAAS,EAAE,IAAI;AACnB;AACJ;AAEA,CAAC;AACG,WAAS;AACT,SAAO;AACP,UAAQ;AACR,UAAQ;AACR,cAAY;AACZ,mBAAiB,OAAO;AAC5B;AAEA,QAAO,WAAY;AACf,GAxBH;AAyBO,aAAS;AACb;AAEA,GAdH;AAeO,cAAU;AACV,WAAO;AACP,WAAO;AACP,YAAQ;AACR,gBAAY;AACZ,qBAAiB;AACrB;AACJ;;;AC1WA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GATH;AAUO,iBAAa;AACb,gBAAY;AAChB;AACJ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,aAAW;AACf;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB;AACvB,OAAK,IAAI;AACT,SAAO;AACX;AAGA,QAAO,WAAY;AACf,GATH;AAUO,2BAAuB,OAAO,CAAC,EAAE;AACjC,SAAK,IAAI;AACb;AACJ;AAGA,QAAO,WAAY;AACf,GAAC;AACG,2BAAuB,OAAO,CAAC,EAAE;AACrC;AAEA,GAAC;AACG,2BAAuB,OAAO,CAAC,EAAE;AACrC;AACJ;;;ACzFA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AACZ,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GATH;AAUO,oBAAgB;AAChB,iBAAa;AACb,SAAK;AAET;AAGA,GAAC;AACG,oBAAgB;AACpB;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GATH;AAUO,SAAK,IAAI;AACT,WAAO;AACP,iBAAa;AACjB;AACJ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,SAAO;AACX;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,WAAS,IAAI,cAAc;AAC3B,iBAAe,IAAI,MAAM,IAAI;AACjC;AAEA,CARC,4BAQ4B;AACzB,eAAa;AACjB;AAEA,CAZC,4BAY4B;AACzB,iBAAe;AACf,kBAAgB;AACpB;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO;AACP,UAAQ;AACR,eAAa;AACb,SAAO,IAAI;AACX,cAAY;AAChB;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,WAAS;AACb;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,SAAO;AACP,gBAAc,EAAE,EAAE;AAClB,iBAAe,IAAI;AAEnB,YAAU;AACV,eAAa;AACb,YAAU;AACV,oBAAkB;AACtB;AAEA,QAAO,WAAY;AACf,GAZH;AAaO,UAAM,EAAE,EAAE;AACV,WAAO;AACP,mBAAe;AAEnB;AACJ;AAEA,CAAC;AACG,YAAU;AACV,SAAO;AACP,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB;AACjB,WAAS;AACb;;;AC9IA,CAAC;AACG,oBAAkB,IAAI;AACtB,SAAO;AACP,eAAa,IAAI;AACrB;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,WAAS,IAAI,cAAc,IAAI;AAC/B,SAAO;AACP,aAAW;AACX,aAAW;AACX,UAAQ,EAAE;AACV,cAAY;AACZ,YAAU;AACd;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,OAAK,IAAI;AACT,iBAAe,IAAI,MAAM,IAAI;AAC7B,kBAAgB,IAAI;AACpB,SAAO;AACX;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,eAAa;AACjB;AAEA,CAAC;AACG,UAAQ;AACR,SAAO;AACP,aAAW;AACX,WAAS;AACb;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,eAAa;AACjB;AAGA,CAAC;AACG,WAAS;AACb;AAGA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,OAAK,IAAI;AACT,SAAO;AACX;AAGA,CAAC;AACG,QAAM,EAAE,EAAE;AACV,mBAAiB;AACrB;AAGA,CAAC;AACG,WAAS;AACT,eAAa;AACjB;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO;AACP,UAAQ;AACR,SAAO,IAAI;AACX,mBAAiB;AACjB,eAAa;AACb,YAAU;AACd;AAEA,CAZC,oBAYoB;AACjB,SAAO;AACP,UAAQ;AACR,WAAS;AACb;AAEA,CAlBC,mBAkBmB;AAChB,WAAS;AACb;AAKA,CAAC,cAAc,CAAC;AACZ,WAAS;AACb;AAGA,CAAC;AACG,iBAAe,IAAI,MAAM,IAAI;AAC7B,kBAAgB,IAAI;AACpB,SAAO;AACP,cAAY;AAChB;AAEA,CAZC;AAaG,oBAAkB,IAAI;AACtB,iBAAe,IAAI;AACnB,WAAS,IAAI;AACb,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAEA,CAAC;AACG,kBAAgB;AACpB;AAEA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,cAAY;AACZ,eAAa;AACjB;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,iBAAe,IAAI;AACnB,WAAS;AACT,cAAY;AAChB;AAIA,CAAC;AACG,WAAS;AACb;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,QAAM,EAAE,EAAE;AACd;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,eAAa;AACjB;AAEA,CAAC;AACG,cAAY;AACZ,WAAS;AACT,UAAQ;AACR,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,SAAO;AACX;AAEA,CAAC;AACG,SAAO;AACX;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO;AACP,WAAS,IAAI,cAAc;AAC3B,cAAY;AACZ,UAAQ;AACR,UAAQ;AACR,cAAY;AACZ,eAAa,IAAI;AACrB;AAEA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO;AACP,UAAQ;AACR,SAAO,IAAI;AACX,eAAa;AACb,iBAAe,IAAI;AACnB,cAAY,UAAU,MAAM;AAChC;AAEA,CAAC,6BAA6B,CAZ7B;AAaG,aAAW,OAAO;AACtB;AAEA,CAAC;AACG,cAAY;AACZ,WAAS,EAAE,EAAE,IAAI,aAAa;AAC9B,UAAQ;AACR,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,mBAAiB;AACjB,eAAa;AACb,UAAQ;AACZ;AAEA,CAdC,gBAcgB;AACb,WAAS;AACb;AAEA,CAlBC,iBAkBiB;AACd,SAAO;AACP,UAAQ;AACR,eAAa;AACjB;AAIA,CAAC;AACG,WAAS;AACb;AAIA,CAAC;AACD,CAAC;AACG,oBAAkB,IAAI;AACtB,iBAAe,IAAI;AACnB,WAAS,IAAI;AACb,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,cAAY;AAChB;AAGA,CAXC;AAYG,SAAO;AACX;AAGA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,SAAO;AACX;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,WAAS;AACT,eAAa;AACb,YAAU;AACd;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,eAAa;AACjB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAKA,CAAC;AACG,oBAAkB,IAAI;AACtB,iBAAe,IAAI;AACnB,WAAS,IAAI;AACb,cAAY;AAChB;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,WAAS;AACT,eAAa;AACjB;AAGA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,WAAS;AACT,eAAa;AACjB;AAEA,CAPC,yBAOyB;AAC1B,CARC,yBAQyB;AACtB,WAAS;AACT,SAAO;AACP,UAAQ;AACR,cAAY;AAChB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAIA,CAAC;AACG,WAAS;AACT,SAAO;AACP,mBAAiB;AACrB;AAEA,CAAC;AACG,WAAS;AACT,SAAO;AACP,UAAQ;AACZ;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB,IAAI;AAC3B,OAAK,IAAI;AACb;AAEA,CAAC;AACG,WAAS;AACT,SAAO;AACP,mBAAiB;AACjB,WAAS,IAAI,aAAa;AAC9B;AAEA,CAPC,kBAOkB;AACf,WAAS;AACT,SAAO;AACP,UAAQ;AACZ;AAKA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO;AACP,cAAY;AACZ,WAAS,IAAI,cAAc,IAAI;AAC/B,oBAAkB,IAAI;AACtB,iBAAe,IAAI;AACnB,mBAAiB;AACrB;AAEA,CAZC,sBAYsB;AACvB,CAbC,sBAasB;AACnB,WAAS;AACT,UAAQ;AACR,SAAO;AACX;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ,IAAI,aAAa,EAAE,EAAE;AACjC;AAOA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACrB;AAGA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO;AACX;AAEA,CAAC;AACG,UAAQ;AACR,SAAO;AACP,WAAS;AACT,cAAY;AAChB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,SAAO;AACX;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,SAAO;AACX;AAEA,CATC,gBASgB;AACb,UAAQ,EAAE,EAAE,IAAI,cAAc;AAClC;AAEA,CAbC,gBAagB,CAAC;AACd,iBAAe;AACnB;AAEA,CAjBC,gBAiBgB;AACb,SAAO,IAAI;AACX,mBAAiB;AACrB;AAEA,CAAC;AACG,oBAAkB,IAAI;AACtB,iBAAe,IAAI;AACnB,WAAS,IAAI;AACb,cAAY;AACZ,SAAO;AACX;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AASA,QAAO,WAAY;AACf,GAlhBH;AAmhBO,eAAW;AACX,eAAW;AACX,aAAS,IAAI,cAAc,IAAI;AACnC;AAGA,GAzgBH;AA0gBO,qBAAiB;AACrB;AAEA,GA5eH;AA6eO,aAAS;AACb;AAGA,GA5eH;AA6eO,aAAS;AACb;AAGA,GA/bH;AAgcO,aAAS;AACb;AAGA,GAvRH;AAwRO,oBAAgB;AAChB,iBAAa;AACb,SAAK,IAAI;AACb;AAEA,GA7QH;AA8QO,UAAM,EAAE,EAAE;AACd;AAEA,GA3QH;AA4QO,UAAM,EAAE,EAAE;AACV,WAAO;AACX;AACJ;AASA,QAAO,WAAY;AACf,GApkBH;AAqkBO,eAAW;AACX,aAAS,IAAI,cAAc,IAAI;AAC/B,SAAK,IAAI;AACb;AAGA,GA3jBH;AA4jBO,yBAAqB,IAAI;AAC7B;AAGA,GA7eH,cA6ekB,CA7eH;AA8eR,aAAS;AACT,oBAAgB;AAChB,iBAAa;AACb,iBAAa,IAAI;AACjB,oBAAgB,IAAI;AACpB,SAAK,IAAI;AACb;AAEA,GAjfH;AAkfO,aAAS;AACb;AAGA,GAzhBH;AA0hBO,aAAS;AACT,iBAAa;AACjB;AAGA,GA/cH;AAgdO,aAAS;AACT,SAAK,IAAI;AACT,iBAAa;AACb,WAAO;AACX;AAEA,GAhbH;AAibO,aAAS;AACb;AAGA,GAlWH;AAmWO,aAAS;AACT,oBAAgB;AAChB,SAAK,IAAI;AACT,iBAAa;AACb,iBAAa;AACb,WAAO;AACX;AAGA,GAtWH;AAuWO,WAAO;AACX;AAGA,GA/PH;AAgQO,WAAO;AACX;AAGA,GAhXH,sBAgX0B,CAtP1B;AAuPO,2BAAuB;AAC3B;AAGA,GApXH;AAqXO,aAAS;AACb;AAEA,GAjMH;AAkMO,aAAS;AACb;AAEA,GAAC;AACG,aAAS;AACb;AAGA,GA1LH;AA2LO,iBAAa;AACjB;AAGA,GAjlBH;AAklBO,WAAO;AACP,YAAQ;AACZ;AAEA,GAtlBH,oBAslBwB;AACjB,WAAO;AACP,YAAQ;AACZ;AAEA,GA1hBH;AA2hBO,WAAO;AACP,YAAQ;AACZ;AACJ;;;ACvrBA;AACI,kBAAgB,IAAI;AACpB,qBAAmB,IAAI;AAEvB,wBAAsB,IAAI;AAC1B,sBAAoB,IAAI;AACxB,0BAAwB,IAAI;AAE5B,qBAAmB,IAAI;AACvB,mBAAiB,IAAI;AAErB,oBAAkB,IAAI;AACtB,kBAAgB,IAAI;AAGpB,mCAAiC,IAAI;AACrC,mCAAiC,IAAI;AAKrC,2BAAyB;AAKzB,+BAA6B;AAC7B,0CAAwC;AACxC,sCAAoC;AAGpC,wBAAsB;AACtB,6BAA2B,IAAI;AAC/B,6BAA2B,IAAI;AAC/B,8BAA4B,IAAI;AACpC;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,eAAa,IAAI;AACjB,cAAY;AACZ,YAAU;AACV,oBAAkB,IAAI;AACtB,mBAAiB;AACjB,uBAAqB;AACrB,qBAAmB;AACnB,UAAQ;AACR,WAAS;AACT,eAAa;AACjB;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,kBAAgB;AAChB,WAAS;AACb;AAIA,CAAC;AACG,YAAU;AACV,WAAS;AACT,SAAO;AACP,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,cAAY;AACZ,WAAS,IAAI,cAAc,IAAI;AACnC;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,SAAO;AACP,eAAa;AACjB;AAMA,CAZC,cAYc;AACf,CAbC,cAac,CAAC;AACZ,SAAO;AACX;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAQA,CAAC;AAEG,uBAAqB,KAAK;AAC1B,aAAW,kBAAkB,OAAO;AACpC,sBAAoB;AACpB,mBAAiB,KAAK,GAAG,KAAK;AAClC;AAMA,WATe;AAUX;AACI,+BAA2B;AAC3B,gCAA4B;AAC5B,WAAO;AACX;AACA;AACI,+BAA2B,IAAI;AAC/B,gCAA4B,IAAI;AAChC,WAAO;AACX;AACJ;AAGA,CA1BC,YA0BY,CA9GZ;AA+GG;AAAA,IAAY;AAAA,MACR,MAAM;AAAA,MACN,YAAY,EAAE;AAAA,MACd,YAAY,GAAG;AAAA,MACf,IAAI,0BAA0B,GAAG;AAAA,MACjC,IAAI,0BAA0B,GAAG;AAAA,MACjC,IAAI,gBAAgB;AAE5B;AAEA,CArCC,YAqCY,CAhHZ;AAiHG,WAAS;AACT,kBAAgB;AAChB,mBAAiB;AACjB,SAAO;AACP,UAAQ;AACR,eAAa;AACb,kBAAgB,IAAI;AACpB,gBAAc,IAAI;AAClB,iBAAe,IAAI;AACvB;AAEA,CAjDC,YAiDY,CAAC;AACV,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,SAAO;AACX;AAGA,CAzDC,YAyDY,CAAC;AACV,YAAU;AACV,OAAK;AACL,UAAQ;AACR,QAAM;AACN,SAAO;AACP,UAAQ;AACR,WAAS;AACT,YAAU;AACV,kBAAgB;AAChB,WAAS;AACT,eAAa;AACb,mBAAiB;AACrB;AAEA,CAxEC,YAwEY,CAfC,iBAeiB;AAC3B,SAAO;AACP,cAAY;AACZ,cAAY;AACZ,mBAAiB;AACjB,WAAS;AACb;AAEA,CAhFC,YAgFY,CAvBC,iBAuBiB,EAAE,CAAC,KAAK;AACnC,SAAO;AACP,UAAQ;AACR,WAAS;AACb;AAKA,CAzFC,YAyFY,CAAC;AACV,WAAS;AACT,kBAAgB;AACpB;AAIA,CAhGC,YAgGY,CA/JZ;AAgKG,OAAK;AACT;AAEA,CApGC,YAoGY,CA7JZ;AA8JG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACrB;AAEA,CA1GC,YA0GY,CAnJZ;AAoJG,cAAY,IAAI;AACpB;AAEA,CA9GC,YA8GY,CA7IZ;AA8IG,eAAa;AACjB;AAOA,CAAC;AACG,aAAW,qBAAqB,OAAO;AACvC,sBAAoB;AACpB,mBAAiB,KAAK,GAAG,KAAK;AAClC;AAEA,WALe;AAMX;AACI,+BAA2B;AAC3B,gCAA4B;AAC5B,WAAO;AACX;AACA;AACI,+BAA2B,IAAI;AAC/B,gCAA4B,IAAI;AAChC,WAAO;AACX;AACJ;AAGA,CApBC,eAoBe,CA/Nf;AAgOG;AAAA,IAAY;AAAA,MACR,MAAM;AAAA,MACN,IAAI,gBAAgB,EAAE;AAAA,MACtB,IAAI,0BAA0B,GAAG;AAAA,MACjC,IAAI,0BAA0B,GAAG;AAAA,MACjC,YAAY;AAEpB;AAEA,CA9BC,eA8Be,CAhOf;AAiOG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO;AACP,UAAQ,KAAK,MAAM,EAAE;AACrB,eAAa,IAAI;AACjB,kBAAgB;AACpB;AAEA,CAxCC,eAwCe,CA9GF;AA+GV,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACP,UAAQ;AACR,kBAAgB,IAAI;AACpB,cAAY;AACZ,mBAAiB;AACrB;AAEA,CApDC,eAoDe,CA1Of;AA2OG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,aAAW;AACX,SAAO;AACX;AAEA,CA7DC,eA6De,CAnNf;AAoNG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,eAAa;AACb,SAAO;AACP,mBAAiB;AACrB;AAQA,CAAC;AACG,aAAW,qBAAqB,OAAO;AACvC,sBAAoB;AACpB,mBAAiB,KAAK,GAAG,KAAK;AAClC;AAEA,WALe;AAMX;AACI,+BAA2B;AAC3B,gCAA4B;AAC5B,WAAO;AACX;AACA;AACI,+BAA2B,IAAI;AAC/B,gCAA4B,IAAI;AAChC,WAAO;AACX;AACJ;AAGA,CApBC,eAoBe,CA3Sf;AA4SG;AAAA,IAAY;AAAA,MACR,MAAM;AAAA,MACN,IAAI,gBAAgB,EAAE;AAAA,MACtB,IAAI,0BAA0B,GAAG;AAAA,MACjC,IAAI,0BAA0B,GAAG;AAAA,MACjC,YAAY;AAEpB;AAEA,CA9BC,eA8Be,CA5Sf;AA6SG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO;AACP,UAAQ,KAAK,MAAM,EAAE;AACrB,eAAa,IAAI;AACjB,kBAAgB;AACpB;AAEA,CAxCC,eAwCe,CA1LF;AA2LV,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACP,UAAQ;AACR,kBAAgB,IAAI;AACpB,cAAY;AAChB;AAEA,CAnDC,eAmDe,CArTf;AAsTG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,aAAW;AACX,SAAO;AACX;AAEA,CA5DC,eA4De,CA9Rf;AA+RG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,eAAa;AACb,SAAO;AACX;AAGA,CArEC,eAqEe,CAAC;AACb,YAAU;AACV,SAAO;AACP,aAAW;AACX,UAAQ;AACR,cAAY;AACZ,cAAY;AACZ,YAAU;AACV,cAAY;AACZ,iBAAe;AACnB;AAEA,CAjFC,eAiFe,CAZC,oBAYoB;AACrC,CAlFC,eAkFe,CAbC,oBAaoB,EAAE;AACnC,SAAO;AACP,UAAQ;AACR,WAAS;AACT,cAAY;AACZ,mBAAiB;AACrB;AAGA,CA3FC,eA2Fe,CArMF;AAsMV,SAAO;AACP,aAAW;AACX,cAAY;AACZ,iBAAe,IAAI;AACnB,gBAAc,EAAE,EAAE;AACtB;AAEA,CAnGC,eAmGe,CA7MF,qBA6MwB;AACtC,CApGC,eAoGe,CA9MF,qBA8MwB,EAAE;AACpC,SAAO;AACP,UAAQ;AACR,WAAS;AACT,cAAY;AACZ,mBAAiB;AACrB;AAMA,QAAO,WAAY;AACf,GA/XH;AAgYO,aAAS,IAAI,cAAc,IAAI;AACnC;AAGA,GAxVH,cAwVkB;AAAA,EACf,CAzVH,cAyVkB,CA5UH;AA6UR,WAAO;AACX;AAEA,GA9TH,YA8TgB,CAzYhB;AA0YO,iBAAa,IAAI;AACjB,oBAAgB,IAAI;AACpB,kBAAc,IAAI;AAClB,mBAAe,IAAI;AACnB,qBAAiB;AACrB;AAEA,GAtUH,YAsUgB,CArWhB;AAsWO,oBAAgB;AAChB,iBAAa;AACb,WAAO;AACX;AAEA,GArNH,eAqNmB,CAvZnB;AAwZO,iBAAa,IAAI;AACjB,oBAAgB;AACpB;AAEA,GA1NH,eA0NmB,CAhSN;AAiSN,iBAAa;AACb,gBAAY;AAChB;AAEA,GA/NH,eA+NmB,CArZnB;AAsZO,iBAAa;AACjB;AAEA,GAnOH,eAmOmB,CAzXnB;AA0XO,oBAAgB;AAChB,iBAAa;AACb,qBAAiB;AACjB,eAAW;AACX,WAAO;AACX;AAEA,GA/JH,eA+JmB,CA7anB;AA8aO,iBAAa,IAAI;AACjB,oBAAgB;AACpB;AAEA,GApKH,eAoKmB,CAtTN;AAuTN,iBAAa;AACb,gBAAY;AAChB;AAEA,GAzKH,eAyKmB,CA3anB;AA4aO,iBAAa;AACjB;AAEA,GA7KH,eA6KmB,CA/YnB;AAgZO,oBAAgB;AAChB,iBAAa;AACb,qBAAiB;AACjB,eAAW;AACX,WAAO;AACX;AAEA,GArLH,eAqLmB,CAhHH;AAiHT,eAAW;AACf;AAEA,GAzLH,eAyLmB,CAnSN;AAoSN,eAAW;AACf;AACJ;AAMA,QAAO,WAAY;AACf,GAjdH;AAkdO,aAAS,IAAI,cAAc,IAAI;AACnC;AAKA,GA7YH,YA6YgB,CAxdhB;AAydO,eAAW,IAAI;AACf,iBAAa;AACb,oBAAgB;AAChB,kBAAc,IAAI;AAClB,mBAAe,IAAI;AACnB,YAAQ;AACR,gBAAY,IAAI;AAChB,qBAAiB;AACjB,iBAAa;AACjB;AAEA,GAzZH,YAyZgB,CAxWH;AAyWN,oBAAgB;AAChB,SAAK,IAAI;AACT,eAAW;AACf;AAEA,GA/ZH,YA+ZgB,CAAC;AACV,WAAO;AACX;AAEA,GAnaH,YAmagB,CA/ahB;AAgbO,SAAK,IAAI;AACb;AAIA,GAzaH,YAyagB,CAhXH;AAiXN,cAAU;AACV,WAAO,KAAK,IAAI,KAAK;AACrB,eAAW;AACX,aAAS;AACT,WAAO;AACP,YAAQ;AACR,aAAS;AACT,cAAU;AACV,oBAAgB;AAChB,eAAW;AACf;AAEA,GAtbH,YAsbgB,CA7XH,iBA6XqB;AAC3B,YAAQ;AACR,WAAO;AACP,gBAAY;AACZ,eAAW;AACX,gBAAY;AACZ,qBAAiB,IAAI;AACzB;AAMA,GAncH,YAmcgB,CA1WH;AA2WN,aAAS;AACT,cAAU;AACV,WAAO,IAAI;AACX,sBAAkB,IAAI;AACtB,YAAQ,IAAI;AACZ,aAAS;AACb;AAIA,GA9cH,YA8cgB,CArXH,qBAqXyB;AAAA,EACnC,CA/cH,YA+cgB,CAtXH,qBAsXyB,EAAE,CAAC,KAAK;AACvC,aAAS;AACT,WAAO;AACP,YAAQ;AACZ;AAEA,GArdH,YAqdgB,CApfhB;AAqfO,oBAAgB;AAChB,iBAAa;AACb,WAAO;AACP,SAAK,IAAI;AACb;AAIA,GA9dH,YA8dgB,CAljBhB;AAmjBO;AAAA,MACI;AAAA,QACI,MADJ;AAAA,QAEI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAFvB;AAAA,QAGI,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAC1B;AAAA,MACD;AAAA,QACI,QADJ;AAAA,QAEI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,GAFvB;AAAA,QAGI,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAH9B;AAAA,QAII,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG;AAE7B;AAGA,GAvXH,eAuXmB,CAzjBnB;AA0jBO,iBAAa,IAAI;AACjB,oBAAgB;AACpB;AAEA,GA5XH,eA4XmB,CAljBnB;AAmjBO,eAAW;AACf;AAEA,GAhYH,eAgYmB,CAthBnB;AAuhBO,oBAAgB;AAChB,iBAAa;AACb,qBAAiB;AACjB,WAAO;AACX;AAGA,GA5TH,eA4TmB,CA1kBnB;AA2kBO,iBAAa,IAAI;AACjB,oBAAgB;AACpB;AAEA,GAjUH,eAiUmB,CAnkBnB;AAokBO,eAAW;AACf;AAEA,GArUH,eAqUmB,CAhQH;AAiQT,WAAO;AACP,eAAW;AACX,YAAQ;AACR,gBAAY;AACZ,kBAAc,EAAE,EAAE;AACtB;AAEA,GA7UH,eA6UmB,CAvbN;AAwbN,eAAW;AACf;AACJ;AAMA,QAAO,WAAY;AACf,GAvVH,eAuVmB,CAlRH;AAmRT,WAAO;AACP,eAAW;AACX,YAAQ;AACR,gBAAY;AACZ,kBAAc,EAAE,EAAE;AACtB;AAEA,GA/VH,eA+VmB,CAzcN;AA0cN,eAAW;AACf;AACJ;;;AChrBA;AACI,qBAAmB,IAAI;AACvB,sBAAoB,IAAI;AAExB,oBAAkB,IAAI;AACtB,uBAAqB,IAAI;AACzB,4BAA0B;AAC1B,oCAAkC;AAMlC,6BAA2B;AAE3B,6BAA2B;AAE3B,0BAAwB,IAAI;AAC5B,wBAAsB,IAAI;AAC1B,4BAA0B,IAAI;AAE9B,uBAAqB,IAAI;AACzB,qBAAmB,IAAI;AAEvB,sBAAoB,IAAI;AACxB,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,eAAa,IAAI;AACjB,cAAY;AACZ,YAAU;AACV,oBAAkB,IAAI;AACtB,cAAY,KAAK,IAAI,2BAA2B,EAAE,IAAI;AACtD,WAAS;AACT,eAAa;AACjB;AAQA,CAAC;AACG,6BAA2B,IAAI,eAAe,EAAE;AACpD;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,kBAAgB;AAChB,WAAS;AACT,oBAAkB;AAClB,qBAAmB;AACnB,mBAAiB,KAAK;AAC1B;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,kBAAgB;AAChB,WAAS;AACT;AAAA,IACI;AAAA,MAAgB,GAAG,KAAK;AAAA,MAAE,IAAI,mBAAmB,EAAE;AAAA,MAAE,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG;AAAA,MAAE,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG;AAAA,MAAE,IAAI,mBAAmB,KAAK;AAAA,IACzI;AAAA,MAAgB,GAAG,MAAM;AAAA,MAAE,IAAI,mBAAmB,EAAE;AAAA,MAAE,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG;AAAA,MAAE,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG;AAAA,MAAE,IAAI,mBAAmB;AAC7I;AAIA,CAAC;AACG,YAAU;AACV,WAAS;AACT,SAAO;AACP,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,cAAY;AACZ,WAAS,KAAK,IAAI,cAAc,EAAE,IAAI,4BAA4B,IAAI,cAAc,IAAI;AACxF,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,mBAAiB;AACjB,cAAY,KAAK,IAAI,2BAA2B,EAAE,IAAI;AAC1D;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACP,cAAY;AAChB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,eAAa;AACb,aAAW,IAAI;AACnB;AAEA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,SAAO;AACP,eAAa;AACb,mBAAiB;AACrB;AAIA,CAAC;AACG,YAAU;AACV,WAAS;AACT,YAAU;AACV,kBAAgB;AACpB;AAEA,CAPC,eAOe;AAChB,CARC,eAQe,EAAE;AACd,WAAS;AACT,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB;AACrB;AAGA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,OAAK;AACL,QAAM;AACN,UAAQ;AACR,SAAO;AACP,eAAa;AACjB;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,UAAQ;AACR,SAAO;AACP,OAAK;AACL,QAAM;AACN,eAAa;AACjB;AASA,CAAC;AACD,CAAC;AACG,oBAAkB,IAAI;AACtB,cAAY,KAAK,IAAI,0BAA0B,EAAE,IAAI;AACzD;AAEA,CANC,aAMa,CAnIb;AAoID,CANC,oBAMoB,CApIpB;AAqIG,cAAY,KAAK,IAAI,0BAA0B,EAAE,IAAI;AACzD;AAEA,CAXC,aAWa,CAhKb;AAiKD,CAXC,oBAWoB,CAjKpB;AAkKG,oBAAkB;AAClB,qBAAmB;AACnB,uBAAqB,IAAI;AACzB,mBAAiB;AACrB;AAEA,CAnBC,aAmBa,CA5Jb;AA6JD,CAnBC,oBAmBoB,CA7JpB;AA8JG;AAAA,IACI;AAAA,MAAgB,QAAQ,GAAG,MAAM;AAAA,MAAE,IAAI,kBAAkB,EAAE;AAAA,MAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI;AAAA,IACrF;AAAA,MAAgB,GAAG,KAAK;AAAA,MAAE,IAAI,kBAAkB,EAAE;AAAA,MAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG;AAAA,MAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG;AAAA,MAAE,IAAI,kBAAkB,KAAK;AAAA,IACjI;AAAA,MAAgB,GAAG,MAAM;AAAA,MAAE,IAAI,kBAAkB,EAAE;AAAA,MAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG;AAAA,MAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG;AAAA,MAAE,IAAI,kBAAkB;AACrI;AAEA,CA3BC,aA2Ba,CA5Gb;AA6GD,CA3BC,oBA2BoB,CA7GpB;AA8GD,CA7BC,aA6Ba,CAtGb;AAuGD,CA7BC,oBA6BoB,CAvGpB;AAwGD,CA/BC,aA+Ba,CAhGb;AAiGD,CA/BC,oBA+BoB,CAjGpB;AAkGG,SAAO,IAAI;AACf;AAIA,CAAC;AACG,SAAO;AACP,aAAW,IAAI;AACnB;AAEA,CALC,eAKe,CAAC;AACb,2BAAyB,IAAI;AAC7B,0BAAwB,IAAI;AAC5B,wBAAsB,IAAI;AAC1B,wBAAsB,IAAI;AAC1B,wBAAsB,IAAI;AAC1B,sBAAoB,IAAI;AACxB,4BAA0B,IAAI;AAC9B,wBAAsB,IAAI;AAC1B,uBAAqB,IAAI;AAC7B;AAMA,QAAO,WAAY;AACf,GAzLH;AA0LO,aAAS,KAAK,IAAI,cAAc,EAAE,IAAI,4BAA4B,IAAI,cAAc,IAAI;AACxF,iBAAa;AACjB;AAEA,GA7KH;AA8KO,iBAAa;AACb,gBAAY;AAChB;AAEA,GA/JH;AAgKO,iBAAa;AACjB;AAEA,GAjIH;AAkIO,oBAAgB;AAChB,iBAAa;AACb,qBAAiB;AACjB,WAAO;AACX;AACJ;AAMA,QAAO,WAAY;AAGf,GApPH;AAqPO,+BAA2B,KAAK,IAAI,eAAe,EAAE,MAAM,EAAE,IAAI,cAAc,EAAE;AACrF;AAEA,GA1NH;AA2NO,aAAS,KAAK,IAAI,cAAc,EAAE,IAAI,4BAA4B,IAAI,cAAc,IAAI;AACxF,cAAU;AACd;AAEA,GA9MH;AA+MO,eAAW,IAAI;AACf,WAAO;AACX;AAEA,GAvGH;AAAA,EAwGG,CAvGH;AAAA,EAwGG,CAzGH,aAyGiB,CAtOjB;AAAA,EAuOG,CAzGH,oBAyGwB,CAvOxB;AAwOO,gBAAY,KAAK,IAAI,kCAAkC,EAAE,IAAI;AACjE;AAEA,GArKH;AAsKO,oBAAgB;AAChB,WAAO;AACX;AAGA,GAAC,gBAAgB,CA/IpB;AAgJO,WAAO;AACP,YAAQ;AACR,SAAK;AACL,UAAM;AACN,YAAQ;AACR,WAAO;AACX;AAEA,GATC,gBASgB,CA9IpB;AA+IO,WAAO;AACP,YAAQ;AACR,YAAQ;AACR,WAAO;AACP,SAAK;AACL,UAAM;AACV;AACJ;;;ACrVA;AAQI,iBAAe;AACf,sBAAoB,IAAI;AACxB,2BAAyB,IAAI;AAE7B,yBAAuB,IAAI;AAC3B,uBAAqB,IAAI;AAEzB,wBAAsB,IAAI;AAC1B,sBAAoB,IAAI;AAWxB,yBAAuB;AACvB,uBAAqB;AAErB,yBAAuB,IAAI;AAC3B,uBAAqB,IAAI;AAEzB,iCAA+B,IAAI;AACnC,+BAA6B,IAAI;AACjC,oCAAkC;AAClC,kCAAgC,IAAI;AASpC,0BAAwB;AAC5B;AAIA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,cAAY;AAChB;AAEA,CAAC;AACG,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,cAAY;AAChB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,cAAY;AAChB;AAEA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACX;AAIA,CAAC;AACG,oBAAkB,IAAI;AAKtB,iBAAe;AACf,WAAS,IAAI;AACb,SAAO;AACP,aAAW;AACX,YAAU;AACV,YAAU;AACV,cAAY;AACZ,WAAS;AACT,eAAa;AACb,mBAAiB;AACrB;AAEA,CAAC;AACG,YAAU;AACV,SAAO;AAIP,UAAQ;AACR,YAAU;AACd;AAkBA,CAAC;AACG,YAAU;AACV,OAAK;AACL,QAAM;AACN,cAAY;AACZ,eAAa,SAAS,EAAE;AAIxB,aAAW,UAAU,IAAI,EAAE;AAC3B,WAAS;AACb;AAEA,CAAC;AACG,WAAS;AACT,eAAa,IAAI;AAGjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AAIX,iBAAe,KAAK,IAAI,aAAa,EAAE;AAC3C;AAEA,CAAC;AACG,WAAS;AACT,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAIA,CAAC;AACG,YAAU;AACV,QAAM;AACN,SAAO;AAKP,UAAQ;AACR,kBAAgB;AAChB,WAAS;AACb;AAIA,CAAC;AACG,OAAK;AACL;AAAA,IAAY;AAAA,MAAgB,MAAM;AAAA,MAC1B,IAAI,oBAAoB,EAAE;AAAA,MAC1B,YAAY;AACxB;AAEA,CAAC;AACG,UAAQ;AACR;AAAA,IAAY;AAAA,MAAgB,IAAI;AAAA,MACxB,IAAI,oBAAoB,EAAE;AAAA,MAC1B,YAAY;AACxB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,mBAAiB;AACjB,OAAK,IAAI;AACT,SAAO;AACP,aAAW;AACX,SAAO,IAAI;AACX,cAAY;AAChB;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,cAAY;AACZ,OAAK,IAAI;AACT,QAAM,EAAE,EAAE;AACV,aAAW;AACf;AAEA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,eAAa;AACb,SAAO;AACP,UAAQ;AACR,WAAS;AACb;AAEA,CAAC;AACG,aAAW,OAAO;AACtB;AAIA,CAAC;AACG,WAAS;AACb;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB,IAAI;AAC3B,OAAK,IAAI;AACT,SAAO;AACP,aAAW;AACX,iBAAe;AACnB;AAIA,QAAO,WAAY;AACf,GAZH;AAaO,2BAAuB;AAC3B;AACJ;AAMA,QAAO,WAAY;AACf,GAlOH;AAmOO,iBAAa;AACb,gBAAY;AACZ,eAAW,IAAI;AACf,iBAAa;AACb,kBAAc;AAClB;AAEA,GAtPH;AAuPO,SAAK,IAAI;AACb;AAEA,GA3MH;AAgNO,aAAS,IAAI;AAKb,2BAAuB,IAAI;AAC3B,yBAAqB,IAAI;AAC7B;AAEA,GAvMH;AA6MO,YAAQ;AACZ;AACJ;AAQA,QAAO,WAAY;AACf,GAzRH;AA0RO,aAAS,IAAI,eAAe,IAAI;AAChC,SAAK,IAAI;AACb;AAEA,GAzPH;AA0PO,oBAAgB;AAChB,iBAAa;AACb,qBAAiB;AACjB,SAAK,IAAI;AACb;AAGA,GAvPH;AAwPO,WAAO;AACP,eAAW;AACX,YAAQ;AACR,aAAS,IAAI;AACb,iBAAa;AACjB;AAEA,GA7OH;AA8OO,YAAQ;AACZ;AASA,GAvGH;AAwGO,aAAS;AACT,oBAAgB;AAChB,SAAK,IAAI;AACT,WAAO;AACP,YAAQ;AACR,iBAAa;AACb,iBAAa;AAUb,qBAAiB;AACjB,iBAAa;AACjB;AAKA,GAAC;AACG,eAAW,WAAW;AAC1B;AAEA,GAAC;AACG,eAAW,WAAW;AAC1B;AAEA,GAjIH;AAkIO,aAAS;AACb;AACJ;;;ACxZA;AACI,qBAAmB;AACnB,+BAA6B,IAAI;AACjC,iCAA+B,IAAI;AAEnC,6BAA2B,IAAI;AAC/B,2BAAyB,IAAI;AAE7B,6BAA2B,IAAI;AAC/B,2BAAyB,IAAI;AACjC;AAIA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,cAAY;AAChB;AAEA,CAAC;AACG,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,WAAS;AACT,yBAAuB,OAAO,CAAC,EAAE;AACjC,OAAK,IAAI,cAAc,IAAI;AAC3B,cAAY;AAChB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAMA,QAAO,WAAY;AACf,GArCH;AAsCO,2BAAuB,OAAO,CAAC,EAAE;AACjC,SAAK,IAAI;AACT,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAMA,QAAO,WAAY;AACf,GAjDH;AAkDO,aAAS,IAAI,cAAc,IAAI;AACnC;AAEA;AACI,+BAA2B,IAAI;AAC/B,6BAAyB,IAAI;AACjC;AACJ;;;ACjCA;AAEI,WAAS,IAAI;AACb,qBAAmB,IAAI;AACvB,mBAAiB,IAAI;AACrB,mBAAiB,IAAI;AACrB,mBAAiB,IAAI;AACrB,iBAAe;AAGf,oBAAkB,IAAI;AAGtB,sBAAoB,IAAI;AACxB,oBAAkB,IAAI;AACtB,sBAAoB,IAAI;AACxB,kBAAgB,IAAI;AAGpB,qBAAmB,IAAI;AACvB,mBAAiB,IAAI;AACrB,qBAAmB,IAAI;AACvB,iBAAe,IAAI;AAGnB,oBAAkB,IAAI;AACtB,kBAAgB,IAAI;AACpB,oBAAkB,IAAI;AACtB,gBAAc,IAAI;AAGlB,oBAAkB,IAAI;AACtB,kBAAgB,IAAI;AACpB,oBAAkB,IAAI;AACtB,gBAAc,IAAI;AAGlB,gBAAc,IAAI;AAElB,qBAAmB,IAAI;AAEvB,sBAAoB,IAAI;AAExB,mBAAiB,IAAI;AAEzB;AAIA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,cAAY;AAChB;AAIA,CAAC;AACG,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,cAAY;AAChB;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,WAAS;AACb;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAIA,CAAC;AACG,SAAO;AACP,gBAAc,EAAE,EAAE;AAClB,iBAAe,IAAI;AACnB,oBAAkB,IAAI;AACtB,YAAU;AACV,WAAS;AACT,eAAa;AACb,mBAAiB;AACrB;AAEA,CAXC,iBAWiB;AAClB,CAZC,iBAYiB,EAAE;AAChB,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB;AACjB,WAAS;AACb;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,mBAAiB;AACjB,cAAY,MAAM,KAAK;AACvB,UAAQ;AACZ;AAEA,CAdC,aAca;AACV,SAAO,IAAI;AACf;AAGA,CAAC;AACG,WAAS;AACT,eAAa;AACb,eAAa;AACb,cAAY,UAAU,KAAK;AAC/B;AAEA,CA1BC,aA0Ba,OAAO,CAPpB;AAQG,aAAW,WAAW,IAAI;AAC9B;AAMA,QAAO,WAAY;AACf,GAtHH;AAuHO,aAAS,IAAI,cAAc,IAAI;AAC/B,SAAK,IAAI;AACb;AACJ;AAMA,QAAO,WAAY;AACf,GArHH;AAsHO,gBAAY;AAChB;AAEA,GArIH;AAsIO,aAAS,IAAI,eAAe,IAAI;AAChC,SAAK,IAAI;AACb;AAIA,GArHH;AAsHO,aAAS;AACT,oBAAgB;AAChB,SAAK,IAAI;AACT,iBAAa;AACb,WAAO;AAEP,oBAAgB,KAAK,OAAO,EAAE,IAAI;AACtC;AAEA,GAzHH;AA0HO,aAAS;AACb;AAIA,GAAC,eAAe,CArInB;AAsIO,oBAAgB;AACpB;AAOA,GAAC;AACG,UAAM,EAAE,EAAE;AACV,eAAW;AACX,gBAAY;AACZ,aAAS;AACT,oBAAgB;AAChB,gBAAY;AAChB;AAGA,GAAC;AACG,UAAM,EAAE,EAAE;AACV,WAAO;AACP,cAAU;AACV,SAAK,IAAI;AACT,aAAS;AACT,oBAAgB;AAChB,qBAAiB;AACjB,iBAAa;AACb,gBAAY,IAAI;AAChB,gBAAY;AAChB;AAGA,GAAC;AACG,WAAO;AACP,kBAAc,EAAE,EAAE;AAClB,cAAU;AACV,mBAAe,IAAI;AACnB,sBAAkB,IAAI;AACtB,cAAU;AACd;AAGA,GAAC;AACG,cAAU;AACV,WAAO;AACP,aAAS;AACT,gBAAY,QAAQ,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AACpD,iBAAa;AACb,aAAS;AACT,iBAAa;AACb,qBAAiB;AACrB;AAEA,GAAC;AACG,aAAS;AACb;AAGA,GAhBC,eAgBe;AACZ,WAAO;AACP,YAAQ;AACR,gBAAY;AACZ,qBAAiB;AACjB,aAAS;AACb;AAGA,GAzBC,eAyBe,EAAE;AACd,WAAO;AACP,YAAQ;AACZ;AAOA,GAAC;AACG,UAAM,EAAE,EAAE;AACV,eAAW;AACX,aAAS;AACT,oBAAgB;AAChB,SAAK;AACT;AAEA,GAAC;AACG,aAAS;AACT,oBAAgB;AAChB,qBAAiB;AACjB,iBAAa;AACb,YAAQ;AACR,gBAAY,IAAI;AAChB,SAAK,IAAI;AACT,kBAAc,IAAI;AAClB,gBAAY;AAChB;AACJ;;;ACxWA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AACZ,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GATH;AAUO,oBAAgB;AAChB,iBAAa;AACb,SAAK;AAET;AAGA,GAAC;AACG,oBAAgB;AACpB;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GATH;AAUO,SAAK;AAEL,WAAO;AACP,iBAAa;AACjB;AACJ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,SAAO;AACP,gBAAc,EAAE,EAAE;AAClB,iBAAe,IAAI;AAEnB,YAAU;AACV,eAAa;AACb,YAAU;AACV,oBAAkB;AACtB;AAEA,QAAO,WAAY;AACf,GAZH;AAaO,UAAM,EAAE,EAAE;AACV,WAAO;AACP,mBAAe;AAEnB;AACJ;AAEA,CAAC;AACG,YAAU;AACV,SAAO;AACP,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB;AACjB,WAAS;AACb;;;AC5EA;AAEI,YAAU,IAAI;AAGd,qBAAmB,IAAI;AAGvB,sBAAoB,IAAI;AAGxB,uBAAqB,IAAI;AACzB,yBAAuB,IAAI;AAG3B,uBAAqB,IAAI;AACzB,yBAAuB,IAAI;AAG3B,sBAAoB,IAAI;AACxB,wBAAsB,IAAI;AAG1B,qBAAmB,IAAI;AACvB,mBAAiB,IAAI;AACrB,uBAAqB,IAAI;AAGzB,oBAAkB,IAAI;AACtB,kBAAgB,IAAI;AACpB,sBAAoB,IAAI;AAGxB,mBAAiB,IAAI;AACrB,iBAAe,IAAI;AACnB,qBAAmB,IAAI;AAGvB,qBAAmB,IAAI;AAEvB,qBAAmB,IAAI;AACvB,oBAAkB,IAAI;AAEtB,qBAAmB,IAAI;AAEvB,yBAAuB;AAEvB,2BAAyB;AAE7B;AAIA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,cAAY;AAChB;AAIA,CAAC;AACG,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,cAAY;AAChB;AAIA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAgBA,CAAC;AACG,WAAS;AACT,kBAAgB,IAAI;AAExB;AAaA,CAAC;AACG,iBAAe,IAAI;AACnB,YAAU;AACV,WAAS;AACT,kBAAgB;AAEhB,cAAY;AACZ,SAAO;AAGP,iBAAe,IAAI;AAGnB,YAAU;AACV,aAAW,MAAM,IAAI,YAAY,EAAE;AACnC,oBAAkB,IAAI;AACtB,eAAa;AACb,cAAY,UAAU,MAAM;AAChC;AAEA,CApBC,SAoBS;AACN,iBAAe;AACnB;AAIA,CAAC;AACG,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACf;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,WAAS,IAAI;AACjB;AAIA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO;AACP,UAAQ;AACZ;AAIA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO;AACP,UAAQ;AACZ;AAIA,CAAC;AACG,YAAU;AACV,UAAQ,IAAI;AACZ,eAAa;AACb,YAAU;AACV,oBAAkB;AACtB;AAEA,CARC,gBAQgB;AACb,YAAU;AACV,SAAO;AACP,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB;AACjB,WAAS;AACb;AAMA,QAAO,WAAY;AACf,GAlJH;AAmJO,aAAS,IAAI,cAAc,IAAI;AAC/B,SAAK,IAAI;AACb;AAEA,GA3IH;AA4IO,gBAAY;AAChB;AACJ;AAMA,QAAO,WAAY;AACf,GAjKH;AAkKO,aAAS,IAAI,eAAe,IAAI;AAChC,SAAK,IAAI;AACb;AAGA,GArIH;AAsIO,oBAAgB,IAAI;AAExB;AAOA,GA9HH;AA+HO,aAAS;AACT,2BAAuB,IAAI;AAC3B,wBAAoB;AACpB,gBAAY,IAAI;AACpB;AAGA,GA3FH;AA4FO,aAAS,IAAI;AACb,qBAAiB;AACjB,gBAAY;AAChB;AAGA,GArEH;AAsEO,YAAQ;AACR,gBAAY;AACZ,gBAAY;AAChB;AACJ;;;ACzRA;AACI,oBAAkB,IAAI;AAEtB,uBAAqB,KAAK,GAAG,EAAE,IAAI;AACnC,yBAAuB;AACvB,wBAAsB,IAAI;AAE1B,oBAAkB,KAAK,MAAM,EAAE;AAC/B,sBAAoB,IAAI;AAExB,6BAA2B,IAAI;AACnC;AAGA,QAAO,WAAY,YAAW,WAAY;AACtC;AACI,2BAAuB;AAEvB,sBAAkB,KAAK,MAAM,EAAE;AACnC;AACJ;AAGA,QAAO,WAAY,YAAW,WAAY;AACtC;AACI,yBAAqB;AAErB,2BAAuB;AACvB,0BAAsB,IAAI;AAE1B,sBAAkB,KAAK,MAAM,EAAE;AAE/B,+BAA2B,IAAI;AACnC;AACJ;AAGA,QAAO,WAAY;AACf;AACI,yBAAqB;AAErB,2BAAuB,IAAI;AAC3B,0BAAsB,IAAI;AAC1B,sBAAkB;AAElB,wBAAoB;AACpB,+BAA2B;AAC/B;AAKA,GAAC,IAAI,KAAK,CAAC;AACP,yBAAqB;AAErB,+BAA2B;AAC/B;AACJ;AAIA,CATK;AAUD,YAAU;AACV,SAAO;AACP,cAAY,IAAI;AAChB,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,cAAY;AACZ,YAAU;AACd;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,kBAAgB;AAEhB;AAAA,IACI;AAAA,MAAgB,GAAG,KAAK;AAAA,MAAE,YAAY,EAAE;AAAA,MAAE,MAAM,GAAG;AAAA,MAAE,MAAM,GAAG;AAAA,MAAE,YAAY,KAAK;AAAA,IACjF;AAAA,MAAgB,GAAG,MAAM;AAAA,MAAE,YAAY,EAAE;AAAA,MAAE,MAAM,GAAG;AAAA,MAAE,MAAM,GAAG;AAAA,MAAE,YAAY;AACjF,0BAAwB;AACxB;AAAA,IACI;AAAA,MAAgB,GAAG,KAAK;AAAA,MAAE,YAAY,EAAE;AAAA,MAAE,MAAM,GAAG;AAAA,MAAE,MAAM,GAAG;AAAA,MAAE,YAAY,KAAK;AAAA,IACjF;AAAA,MAAgB,GAAG,MAAM;AAAA,MAAE,YAAY,EAAE;AAAA,MAAE,MAAM,GAAG;AAAA,MAAE,MAAM,GAAG;AAAA,MAAE,YAAY;AACjF,kBAAgB;AAChB;AAAA,IACI;AAAA,MAA0B,GAAG,KAAK;AAAA,MAC9B,YAAY,CAAC;AAAA,MACb,YAAY,KAAK,IAAI,kBAAkB,EAAE,IAAI;AAAA,MAC7C,IAAI,0BAA0B,KAAK,IAAI,kBAAkB,EAAE,IAAI;AAAA,MAC/D,IAAI,0BAA0B,IAAI,kBAAkB;AAAA,IACxD;AAAA,MAA0B,GAAG,MAAM;AAAA,MAC/B,YAAY,CAAC;AAAA,MACb,YAAY,KAAK,IAAI,kBAAkB,EAAE,IAAI;AAAA,MAC7C,IAAI,0BAA0B,KAAK,IAAI,kBAAkB,EAAE,IAAI;AAAA,MAC/D,IAAI,0BAA0B,IAAI;AAa1C,uBAAqB,IAAI,KAAK,IAAI,EAAE,IAAI;AAC5C;AAEA,QAAO,WAAY;AACf,GAxCH;AA+CO,yBACI,IAAI,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,mBAAmB,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI;AAC3E;AACJ;AAIA,CAAC;AACG,YAAU;AACV,WAAS;AACT,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,cAAY,IAAI;AAChB,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,EAAE,IAAI;AACf,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAdH;AAeO,aAAS;AACb;AACJ;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,UAAQ,IAAI;AACZ,WAAS;AACT,eAAa;AACb,mBAAiB;AACrB;AAIA,CAAC;AACG,YAAU;AACV,WAAS;AACT,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO,IAAI;AACX,aAAW;AACX,cAAY;AACZ,WAAS,IAAI,cAAc;AAC/B;AAKA,QAAO,WAAY;AACf,GAjBH,WAiBe;AAAA,EACZ,CAlBH,WAkBe,CAAC;AACT,WAAO;AACX;AACJ;AAIA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAKA,CAAC;AACG,YAAU;AACV,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,iBAAe,IAAI;AACnB,YAAU;AACV,cAAY,IAAI;AAChB,eAAa;AACb,QAAM,IAAI,WAAW,EAAE;AACvB,SAAO,IAAI,YAAY,EAAE;AACzB,OAAK,IAAI,UAAU,EAAE;AACzB;AAEA,CAbC,aAaa;AACV,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB;AACjB,WAAS;AACT,iBAAe,IAAI;AACvB;AAIA,QAAO,WAAY;AACf,GAzBH;AA0BO,UAAM,IAAI,WAAW,EAAE;AACvB,WAAO,IAAI,YAAY,EAAE;AACzB,SAAK,IAAI,UAAU,EAAE;AACzB;AAEA,GAAC;AACG,aAAS;AACb;AACJ;;;AC1PA;AACI,mBAAiB;AAEjB,sBAAoB;AAEpB,wBAAsB;AACtB,uBAAqB;AAErB,4BAA0B,IAAI;AAC9B,mBAAiB;AACjB,uBAAqB;AACrB,qBAAmB;AACnB,uBAAqB;AACzB;AAIA,CAAC;AACG,YAAU;AACV,OAAK;AACL,QAAM;AACN,SAAO;AACP,WAAS,IAAI;AACb,WAAS,IAAI,cAAc;AAC3B,eAAa,IAAI;AACjB,cAAY;AACZ;AAAA,IAAY,iBAAiB,MAAM,IAAI;AAAA,IAAE,gBAAgB,MAAM,IAAI;AAAA,IAAE,WAAW,MAAM;AAC1F;AAGA,CAAC,YAAY,CAAC,iBAAiB,CAAC;AAChC,CAAC,aAAa,CADA,iBACkB,CADA;AAE5B,oBAAkB,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACtC,mBAAiB,KAAK;AACtB,2BAAyB,KAAK;AAClC;AAEA,CAPC,YAOY,CAPC,iBAOiB,CAAC;AAChC,CAPC,aAOa,CARA,iBAQkB,CADA;AAE5B,SAAO,IAAI;AACf;AAEA,CAZC,YAYY,CAZC,iBAYiB,CALC,gBAKgB;AAChD,CAZC,aAYa,CAbA,iBAakB,CANA,gBAMiB;AAC7C,oBAAkB,IAAI;AAC1B;AAGA,CAlBC,YAkBY,CAlBC,iBAkBiB,CAlBC,aAkBa,CAAC;AAC1C,UAAQ;AACZ;AAGA,CAvBC,YAuBY,CAvBC,iBAuBiB,CAvBC,aAuBa,CAhBb;AAiB5B,SAAO,IAAI;AACf;AAIA,CAAC;AACG,YAAU;AACV,WAAS;AACT,WAAS;AACT,yBAAuB,IAAI,KAAK;AAChC,eAAa;AACb,UAAQ,IAAI;AACZ,WAAS,EAAE,IAAI;AACf,cAAY;AAChB;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,eAAa;AACb,mBAAiB;AACjB,kBAAgB,IAAI;AAExB;AAEA,CATC,aASa;AACV,UAAQ;AAER,SAAO;AACP,WAAS;AACb;AAKA,CAAC;AACG,YAAU;AACV,QAAM,IAAI;AACV,SAAO,IAAI;AACX,OAAK;AACL,aAAW,WAAW;AACtB,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,kBAAgB;AACpB;AAEA,CAZC,mBAYkB,EAAC;AAChB,kBAAgB;AACpB;AAIA,CA/EgC;AAgF5B,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,WAAS,IAAI;AACb,iBAAe,IAAI;AACnB,mBAAiB,KAAK;AACtB,2BAAyB,KAAK;AAC9B,cAAY,IAAI;AAChB;AAAA,IAAY,iBAAiB,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;AAAA,IAC3D,gBAAgB,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;AAAA,IAClD,WAAW,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AACnD;AAEA,CA7FC,aA6Fa,CA7FkB;AA8F5B,oBAAkB,IAAI;AAC1B;AAEA,CAhGC,cAgGc,CAjGiB;AAkG5B,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,WAAS;AACb;AAIA,CAxGgC;AAyG5B,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,WAAS,IAAI,aAAa,IAAI;AAC9B,UAAQ;AAER,UAAQ;AACR,iBAAe,IAAI;AACnB,cAAY;AACZ,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,eAAa;AACb,mBAAiB;AACjB,UAAQ;AACR,cAAY,iBAAiB,MAAM;AACnC,cAAY;AAChB;AAEA,CApIC,aAoIa,CA7HkB;AA8H5B,SAAO,IAAI;AACf;AAEA,CAvIC,cAuIc,CAjIiB;AAkI5B,SAAO,IAAI;AACf;AAEA,CA5IC,aA4Ia,CArIkB,gBAqID;AAC/B,CA7IC,aA6Ia,CAAC;AACX,oBAAkB,IAAI;AAC1B;AAEA,CAhJC,cAgJc,CA1IiB,gBA0IA;AAChC,CAjJC,cAiJc,CALA;AAMX,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,eAAa;AACb,cAAY,UAAU,MAAM;AAChC;AAEA,CAhBe,uBAgBS,CALvB;AAMG,aAAW,OAAO;AACtB;AAKA,CApKC,aAoKa,CApKkB,aAoKJ,CAlJkB;AAmJ1C,UAAQ,WAAW,GAAG,OAAO;AACjC;AAIA,CAAC;AACG,YAAU;AACd;AAIA,CAAC;AACG,YAAU;AACV,OAAK,KAAK,KAAK,EAAE,IAAI;AACrB,QAAM,KAAK,IAAI,EAAE;AACjB,SAAO;AACP,oBAAkB,IAAI;AACtB,UAAQ,IAAI,MAAM,IAAI;AACtB,iBAAe,IAAI;AACnB,cACI,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EACpC,IAAI,MAAM,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACrC,WAAS,IAAI,cAAc,IAAI;AAC/B,WAAS,IAAI;AACb,cAAY;AACZ,YAAU;AACd;AAEA,CAAC;AACG,WAAS;AACT,yBAAuB,OAAO,CAAC,EAAE;AACjC,kBAAgB;AAChB,sBAAoB,OAAO,IAAI,WAAW,EAAE,EAAE,EAAE;AAChD,OAAK;AACT;AAEA,CAAC;AACG,WAAS;AACT,SAAO;AACP,WAAS,IAAI,aAAa;AAC1B,UAAQ;AACR,cAAY;AACZ,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,cAAY;AACZ,UAAQ;AACR,cAAY,MAAM,MAAM;AACxB,cAAY;AACZ,eAAa;AACjB;AAEA,CAlBC,0BAkB0B;AACvB,SAAO;AACX;AAEA,CAAC;AACG,SAAO;AACP,eAAa,IAAI;AACrB;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,oBAAkB,IAAI;AACtB,WAAS;AACT,kBAAgB;AAChB,WAAS,EAAE,IAAI;AACf,cAAY;AACZ,WAAS;AACb;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO;AACP,UAAQ;AACR,UAAQ;AACR,cAAY;AACZ,SAAO,IAAI;AACX,UAAQ;AACR,WAAS;AACT,UAAQ,IAAI,aAAa;AACzB,eAAa;AACjB;AAEA,CAAC;AACG,WAAS;AACT,yBAAuB,OAAO,CAAC,EAAE;AACjC,OAAK;AACL,WAAS,IAAI,aAAa,EAAE,IAAI;AACpC;AAEA,CAAC;AACG,WAAS;AACT,SAAO;AACP,WAAS,IAAI,cAAc;AAC3B,UAAQ;AACR,cAAY;AACZ,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,cAAY;AACZ,UAAQ;AACR,cAAY,MAAM,MAAM;AAC5B;AAEA,CAhBC,wBAgBwB;AACrB,SAAO;AACX;AAEA,CAAC;AACG,SAAO;AACP,eAAa,IAAI;AACrB;AAIA,CAAC;AACG,eAAa;AACb,YAAU;AACV,gBAAc;AACd,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,eAAa;AACb,mBAAiB;AACjB,YAAU;AACV,aAAW;AACX,WAAS;AACT,cAAY,UAAU,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AACtG;AAEA,CAXC,kBAWkB;AACf,gBAAc,IAAI;AAClB,kBAAgB,IAAI;AACxB;AAEA,CAhBC,kBAgBkB;AACf,UAAQ;AACR,SAAO;AACP,WAAS;AACT,eAAa;AACjB;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,eAAa;AACb,YAAU;AACV,eAAa;AACb,aAAW;AACX,WAAS;AACT,cAAY,UAAU,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AACtG;AAIA,CAAC;AACG,eAAa;AACb,YAAU;AACV,gBAAc;AACd,WAAS;AAET,eAAa;AACb,OAAK,IAAI;AACb;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO;AACP,UAAQ;AACR,UAAQ;AACR,cAAY;AACZ,UAAQ;AACR,WAAS;AACb;AAEA,CA1WC,aA0Wa,CAZb;AAaG,SAAO,IAAI;AACf;AAEA,CA7WC,cA6Wc,CAhBd;AAiBG,SAAO,IAAI;AACf;AAIA,CAAC;AACG,YAAU;AACV,OAAK,KAAK,KAAK,EAAE,IAAI;AACrB,QAAM,KAAK,IAAI,EAAE,IAAI,qBAAqB,EAAE;AAC5C,SAAO,IAAI;AACX,oBAAkB,IAAI;AACtB,UAAQ,IAAI,MAAM,IAAI;AACtB,iBAAe,IAAI;AACnB,cACI,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EACpC,IAAI,MAAM,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACrC,WAAS;AACT,YAAU;AACV,WAAS,IAAI;AACjB;AAEA,CAAC;AACG,WAAS;AACT,QAAM;AACN,aAAW;AACX,cAAY;AACZ,YAAU;AACd;AAEA,CAAC;AACG,WAAS;AACT,yBAAuB,OAAO,CAAC,EAAE;AAEjC,OAAK,IAAI,cAAc;AAEvB,WAAS,IAAI,cAAc,IAAI;AAC/B,eAAa;AACb,iBAAe;AACnB;AAEA,CAAC;AACG,QAAM,EAAE,EAAE;AAEV,aAAW;AACX,WAAS,IAAI;AACjB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,eAAa;AACb,SAAO;AAEP,cAAY;AAEhB;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK;AACT;AAEA,CAAC;AACG,WAAS;AACT,WAAS,IAAI,aAAa;AAC1B,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,UAAQ;AACR,WAAS,IAAI,aAAa;AAC1B,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,mBAAiB;AACjB,eAAa;AACb,cAAY,MAAM,MAAM;AAC5B;AAEA,CAhBC,qBAgBqB;AAClB,SAAO,IAAI;AACf;AAEA,CApBC,sBAoBsB;AACnB,eAAa;AACb,WAAS;AACT,cAAY,QAAQ,MAAM,IAAI,EAAE,UAAU,MAAM;AAChD,aAAW,WAAW;AAC1B;AAEA,CA3BC,qBA2BqB,OAAO;AACzB,WAAS;AACT,aAAW,WAAW;AAC1B;AAIA,CAAC;AACG,YAAU;AACV,WAAS;AACT,kBAAgB;AAChB,mBAAiB;AACjB,OAAK,IAAI;AACT,SAAO;AACP,UAAQ;AACR,iBAAe,IAAI;AACnB,oBAAkB,IAAI;AACtB,mBAAiB;AACjB,uBAAqB;AACrB,WAAS,IAAI;AACb,SAAO,IAAI;AACX,YAAU;AACV,cAAY;AAChB;AAEA,CAAC;AACG,YAAU;AACV,SAAO;AACP;AAAA,IAAY;AAAA,MAAgB,GAAG,MAAnB;AAAA,MAA2B,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAA/C;AAAA,MAAmD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM;AACtF,iBAAe,IAAI;AACnB,kBAAgB;AACpB;AAEA,CAAC;AACG,YAAU;AACV,SAAO;AACP,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,iBAAe,IAAI;AACnB,kBAAgB;AACpB;AAEA,CAAC;AACG,YAAU;AACV,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,UAAQ;AACR,aAAW,IAAI;AAEf,eAAa,IAAI;AACjB,eAAa,IAAI;AAEjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,UAAQ;AACR,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa;AACb,SAAO,IAAI;AACX,mBAAiB;AACjB,UAAQ;AACR,cAAY,IAAI,MAAM;AAC1B;AAEA,CAbC,4BAa4B;AACzB,OAAK,IAAI;AACb;AAMA,CAAC;AACG,YAAU;AACV,OAAK,IAAI;AACT,QAAM;AACN,SAAO;AACP,UAAQ;AACR,YAAU;AACV,WAAS,IAAI;AACb,kBAAgB;AACpB;AAEA,CAAC;AACG,YAAU;AACV,SAAO;AACP,oBAAkB,IAAI;AACtB,cAAY;AACZ,WAAS;AACT,kBAAgB;AAChB,eAAa,IAAI;AACjB,cAAY;AACZ,kBAAgB;AACpB;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,UAAQ;AACR,WAAS,EAAE,IAAI;AACf,eAAa;AACb,iBAAe,IAAI,MAAM,IAAI;AACjC;AAEA,CAAC,oBAAoB;AACjB,UAAQ;AACR,SAAO;AACP,WAAS;AACb;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO;AACP,UAAQ;AACR,UAAQ;AACR,cAAY;AACZ,SAAO,IAAI;AACX,UAAQ;AACR,WAAS;AACb;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,WAAS,EAAE,IAAI;AACf,QAAM;AACV;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AACpB;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO;AACP,UAAQ;AAER,WAAS;AACT,UAAQ;AACR,iBAAe;AACf,cAAY;AACZ,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,cAAY;AACZ,UAAQ;AACZ;AAEA,CAAC;AACG,cAAY;AAChB;AAEA,CAAC;AACG,eAAa;AACb,SAAO,IAAI;AACX,cAAY,UAAU,MAAM;AAChC;AAEA,CAVC,6BAU6B,CAN7B;AAOG,aAAW,OAAO;AACtB;AAIA,CAAC;AACG,YAAU;AACd;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,WAAS,IAAI,aAAa,EAAE,IAAI;AAChC,oBAAkB,IAAI;AAC1B;AAEA,CAAC;AACG,WAAS;AACT,yBAAuB,OAAO,CAAC,EAAE;AACjC,OAAK,IAAI;AACb;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AACpB;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AACpB;AAEA,CAAC;AACG,WAAS;AACT,WAAS,IAAI,aAAa;AAC1B,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,WAAS;AACT,WAAS,IAAI,aAAa;AAC1B,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,mBAAiB;AACrB;AAIA,CAAC;AACG,YAAU;AACV,WAAS;AACT,kBAAgB;AAChB,mBAAiB;AACjB,OAAK,IAAI;AACT,iBAAe,IAAI;AACnB,oBAAkB,IAAI;AACtB,mBAAiB;AACjB,uBAAqB;AACrB,WAAS,IAAI;AACb,SAAO,IAAI;AACX,YAAU;AACV,cAAY;AAEZ,cAAY;AAChB;AAEA,CAAC;AACG,YAAU;AACV,SAAO;AACP;AAAA,IAAY;AAAA,MAAgB,GAAG,MAAnB;AAAA,MAA2B,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAA/C;AAAA,MAAmD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM;AACtF,kBAAgB;AAChB,iBAAe,IAAI;AACvB;AAEA,CAAC;AACG,YAAU;AACV,SAAO;AACP,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,kBAAgB;AAChB,iBAAe,IAAI;AACvB;AAEA,CAAC;AACG,YAAU;AACV,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,UAAQ;AACR,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,UAAQ;AACR,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa;AACb,SAAO,IAAI;AACX,mBAAiB;AACjB,UAAQ;AACR,cAAY,IAAI,MAAM;AAC1B;AAEA,CAbC,0BAa0B;AACvB,OAAK,IAAI;AACb;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,UAAQ;AACR,WAAS;AACT,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,mBAAiB;AACrB;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,UAAQ;AACR,WAAS;AACT,UAAQ;AACR,cAAY;AACZ,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,cAAY;AAChB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,WAAS,IAAI;AACb,eAAa;AACjB;AAKA,QAAO,WAAY;AAEf,GAxyBH;AAAA,EAyyBG,CAjjBH;AAkjBO,gBAAY,QAAQ,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AACtG;AAEA,GAv1BU,iBAu1BQ,CA7yBrB;AAAA,EA8yBG,CAx1BU,iBAw1BQ,CAtjBrB;AAujBO,aAAS;AACT,oBAAgB;AAChB,eAAW,WAAW;AAC1B;AAGA,GA/1BU,iBA+1BQ,CAljBrB;AAmjBO,eAAW;AACX,aAAS;AACb;AAGA,GAr2BU,iBAq2BQ,CA/hBrB;AAgiBO,eAAW;AACX,aAAS;AACb;AACJ;AAGA,QAAO,WAAY;AACf,GAzhBH;AA0hBO,aAAS;AACb;AAEA,GAhUH;AAAA,EAiUG,CAtTH;AAuTO,aAAS;AACb;AACJ;AAGA,QAAO,WAAY;AACf,GAAC;AACG,aAAS;AACb;AACJ;AAGA,QAAO,WAAY;AACf,GA74BH;AA84BO,iBAAa;AACb,oBAAgB;AACpB;AAWA,GAj3BH;AAk3BO;AAAA,MAAY,iBAAiB,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;AAAA,MAC3D,gBAAgB,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;AAAA,MAClD,WAAW,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AACnD;AAEA,GAp5BU,iBAo5BQ,CAv3BrB;AAw3BO,sBAAkB,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACtC,qBAAiB,KAAK;AACtB,6BAAyB,KAAK;AAC9B,gBAAY,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC9C;AAEA,GA35BU,iBA25BQ,CA7jBrB;AA8jBO,WAAO,IAAI;AACf;AAEA,GAAC;AAAA,EACD,CADC,kBACkB,CAn4BtB;AAo4BO,sBAAkB,IAAI;AAC1B;AAEA,GALC,kBAKkB,CAtkBtB;AAukBO,WAAO,IAAI;AACf;AAEA,GA32BH;AAAA,EA42BG,CAvoBH;AAwoBO,aAAS;AACb;AAEA,GAzlBH;AA0lBO,aAAS;AACb;AACJ;;;ACl6BA;AAEI,kBAAgB,IAAI;AACpB,oBAAkB,IAAI;AAGtB,gBAAc,IAAI;AAClB,sBAAoB,IAAI;AACxB,kBAAgB,IAAI;AACpB,oBAAkB,IAAI;AACtB,gBAAc,IAAI;AAClB,gBAAc,IAAI;AAClB,kBAAgB,IAAI;AACpB,gBAAc,IAAI;AAClB,oBAAkB,IAAI;AAGtB,wBAAsB;AACtB,wBAAsB;AAEtB,oBAAkB,IAAI;AAEtB,oBAAkB,IAAI;AAItB,mBAAiB,IAAI;AACrB,iBAAe,IAAI;AACnB,qBAAmB,IAAI;AAGvB,aAAW,IAAI;AACnB;AAGA,QAAO,WAAY;AACf;AACI,sBAAkB,IAAI;AAEtB,sBAAkB,IAAI;AAE1B;AACJ;AASA,CAAC;AACG,YAAU;AACV,UAAQ,IAAI;AACZ,SAAO;AACP,eAAa,IAAI;AACrB;AAGA,CAAC;AACG,wBAAsB;AAC1B;AAIA,CAAC;AACG,YAAU;AACV,OAAK;AACL,UAAQ;AACR,SAAO;AACP,YAAU;AACd;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB;AACjB,WAAS;AACT,kBAAgB;AACpB;AAEA,CAAC;AACG,WAAS;AACb;AAEA,CAAC;AACG,WAAS;AAEb;AAIA,CAAC;AACG,WAAS;AACT,SAAO;AACP,UAAQ;AACR,YAAU;AACV,SAAO;AACP,kBAAgB;AACpB;AAOA,CAAC;AACG,WAAS;AACT,WAAS;AACT,SAAO;AACP,cAAY;AACZ,YAAU;AACV,OAAK;AACL,QAAM;AACN,SAAO;AACP,qBAAmB;AACnB,mBAAiB;AACjB,uBAAqB,KAAK;AAC1B,YAAU;AACd;AAEA,CAAC;AACG,WAAS;AACT,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,YAAU;AACV,OAAK;AACL,QAAM;AACN,SAAO;AACP,cAAY;AACZ,qBAAmB;AACnB,mBAAiB;AACjB,uBAAqB,KAAK;AAC9B;AAEA,CAlFC,gBAkFgB,CA9BhB;AA+BD,CAnFC,gBAmFgB,CAhBhB;AAiBG,yBAAuB;AAC3B;AAGA,CAAC;AACG,WAAS;AACb;AAGA,CA7FC,gBA6FgB,CALhB;AAMG,UAAQ;AACR,cAAY;AAChB;AAIA,OAAO,YAAW,WAAY;AAC1B,GArGH,gBAqGoB,CAjDpB;AAkDO,cAAU;AACV,SAAK;AACL,yBAAqB,IAAI;AACzB,uBAAmB;AACnB,qBAAiB,KAAK;AAC1B;AAEA,GA7GH,gBA6GoB,CA1CpB;AA2CO,yBAAqB,IAAI;AACzB,uBAAmB;AACnB,qBAAiB,KAAK;AAC1B;AAEA,GAnHH,gBAmHoB,CA3BpB,wBA2B6C,CAAC;AACvC,eAAW,OAAO;AAClB,qBAAiB;AACjB,iBAAa;AACb,aAAS,IAAI,eAAe,IAAI,kBAAkB,IAAI,kBAAkB,IAAI;AAChF;AAEA,GA1HH,gBA0HoB,CAAC;AACd,eAAW;AACX,WAAO;AACX;AAEA,GA/HH,gBA+HoB,CAAC;AACd,WAAO;AACX;AACJ;AAEA,OAAO,YAAW,WAAY;AAC1B,GArIH,gBAqIoB,CANC;AAOd,WAAO;AACX;AACJ;AAEA,OAAO,YAAW,WAAY;AAC1B,GA3IH,gBA2IoB,CAvFpB;AAwFO,yBAAqB,IAAI;AAC7B;AAEA,GA/IH,gBA+IoB,CA5EpB;AA6EO,yBAAqB,IAAI;AAC7B;AAEA,GAnJH,gBAmJoB,CA3DpB,wBA2D6C,CAhCC;AAiCvC,aAAS,IAAI,cAAc,IAAI,kBAAkB,IAAI,kBAAkB,IAAI;AAC/E;AAEA,GAAC,eAAe,CAAC;AACb,kBAAc,IAAI;AAClB,mBAAe,IAAI;AACvB;AAGA,GA7JH,eA6JmB,CAAC,iBAAiB,CAAC;AAC/B,eAAW;AACX,iBAAa;AACjB;AAGA,GAnKH,gBAmKoB,CAAC;AACd,gBAAY;AAChB;AACJ;AAIA,CAvD+C;AAwD3C,YAAU;AACV,WAAS;AACT,WAAS;AACT,eAAa;AACb,UAAQ;AACR,WAAS,IAAI,kBAAkB,IAAI;AACnC,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAlE2C;AAmEvC,iBAAa;AACjB;AACJ;AAIA,CArCqB;AAsCjB,SAAO;AACP,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,cAAY;AAChB;AAGA,CA7CK,eA6CW,CA7CK;AA8CjB,aAAW;AACf;AAIA,CAhFsB;AAiFlB,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,aAAW,IAAI;AAEnB;AASA,CAAC;AACG,WAAS;AACT,uBAAqB;AACzB;AAEA,CALC,oBAKmB,EAAC;AACjB,aAAW;AACf;AAIA,CAvEuC;AAwEnC,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AAErB;AAGA,CA/GsB;AAgHlB,WAAS;AACb;AAEA,CAAC;AACG,eAAa;AACjB;AAEA,CAAC;AACG,WAAS;AACT,YAAU;AACV,kBAAgB;AACpB;AAEA,CAAC;AACD,CAAC;AACG,WAAS;AACb;AAEA,CAJC;AAKG,kBAAgB;AACpB;AAGA,CAzGqB,iBAyGH,CAzGqB;AA0GnC,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACrB;AAIA,CA5GsB;AA6GlB,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AAErB;AAGA,CAAC,kBAAkB,CAtHG;AAuHlB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACrB;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,cAAY;AACZ,SAAO;AACP,WAAS,IAAI,cAAc,IAAI;AAC/B,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACX,iBAAe,IAAI;AACnB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,mBAAiB;AACjB,UAAQ;AACR,UAAQ;AACR,cAAY,iBAAiB,KAAK;AAClC,eAAa;AACb,cAAY;AAChB;AAEA,CAtBC,QAsBQ;AACL,oBAAkB,IAAI;AAC1B;AAGA,OAAO,YAAW,WAAY;AAC1B,GA5BH;AA6BO,WAAO;AACP,gBAAY;AAChB;AACJ;;;ACjWA;AAEI,WAAS,IAAI;AACb,mBAAiB,IAAI;AACrB,mBAAiB,IAAI;AACrB,uBAAqB;AACrB,kBAAgB,IAAI;AACpB,mBAAiB,IAAI;AAIrB,gBAAc,IAAI;AAClB,oBAAkB,IAAI;AACtB,2BAAyB,IAAI;AAC7B,gBAAc,IAAI;AAClB,gBAAc,IAAI;AAClB,uBAAqB,IAAI;AACzB,uBAAqB,IAAI;AACzB,mBAAiB,IAAI;AAErB,0BAAwB;AAGxB,iBAAe,IAAI;AACnB,gBAAc,IAAI;AAGlB,wBAAsB;AACtB,4BAA0B;AAC1B,oBAAkB,IAAI;AAGtB,sBAAoB,IAAI;AACxB,oBAAkB,IAAI;AACtB,uBAAqB,IAAI;AACzB,wBAAsB,IAAI;AAG1B,kBAAgB,IAAI;AACpB,gBAAc,IAAI;AAClB,mBAAiB,IAAI;AACrB,oBAAkB,IAAI;AAGtB,kBAAgB,IAAI;AACpB,gBAAc,IAAI;AAClB,mBAAiB,IAAI;AACrB,oBAAkB,IAAI;AAGtB,mBAAiB,IAAI;AACrB,kBAAgB,IAAI;AACpB,oBAAkB,IAAI;AAGtB,mBAAiB;AAGjB,0BAAwB,IAAI;AAC5B,0BAAwB,IAAI;AAChC;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,cAAY;AAKhB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,eAAa;AACb,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,wBAAwB,IAAI;AACzC,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAZH;AAaO,oBAAgB;AAChB,iBAAa;AACb,qBAAiB;AACjB,SAAK,IAAI;AACT,aAAS,IAAI,iBAAiB,IAAI;AAClC,gBAAY,IAAI;AACpB;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,eAAa;AACb,SAAO;AACP,SAAO;AAEX;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,iBAAa;AACb,WAAO,IAAI;AACX,WAAO;AAEX;AACJ;AAIA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAIA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAIA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,mBAAiB;AACjB,UAAQ;AACR,eAAa;AACb,cAAY,MAAM,KAAK;AAC3B;AAEA,CAfC,QAeQ;AACL,SAAO,IAAI;AACf;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,eAAa;AACb,cAAY,UAAU,KAAK;AAC/B;AAEA,CA1BC,QA0BQ,OAAO,CAPf;AAQG,aAAW,WAAW,IAAI;AAC9B;AASA,CAAC;AACG,YAAU;AACV,SAAO;AACP,SAAO;AAEP,eAAa;AACjB;AAEA,QAAO,WAAY;AACf,GATH;AAUO,UAAM,EAAE,EAAE;AACV,eAAW;AACX,WAAO;AAEP,gBAAY;AAChB;AACJ;AAaA,CAAC;AACG,YAAU;AACV,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,UAAQ,IAAI;AACZ,YAAU;AACd;AAEA,QAAO,WAAY;AACf,GAVH;AAWO,YAAQ,IAAI;AAChB;AACJ;AAeA,CAAC;AACG,YAAU;AACV,QAAM;AACN,SAAO;AACP,UAAQ,IAAI;AACZ,kBAAgB;AAChB,WAAS;AACb;AAEA,CAAC;AACG,OAAK;AACL;AAAA,IAAY;AAAA,MAAgB,GAAG,MAAM;AAAA,MAC7B,IAAI,SAAS,EAAE;AAAA,MACf,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG;AAC7B;AAEA,CAAC;AACG,UAAQ;AACR;AAAA,IAAY;AAAA,MAAgB,GAAG,GAAG;AAAA,MAC1B,IAAI,SAAS,EAAE;AAAA,MACf,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG;AAC7B;AAUA,CAAC;AACG,QAAM,EAAE,EAAE;AACV,cAAY;AAEZ,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,aAAW;AACX,eAAa;AAEjB;AAIA,CAAC;AACG,eAAa;AACb,oBAAkB,IAAI;AACtB,iBAAe,IAAI;AACnB,gBAAc,EAAE,EAAE;AAClB,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,cAAY;AACZ,SAAO;AACP,YAAU;AACd;AAEA,QAAO,WAAY;AACf,GAdH;AAeO,mBAAe,IAAI;AACvB;AACJ;AAIA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,YAAU;AACd;AAEA,CATC,kBASkB;AACf,aAAW;AACX,cAAY;AACZ,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB;AACjB,WAAS;AACb;;;AC/YA;AACI,2BAAyB,IAAI;AAC7B,2BAAyB,IAAI;AAC7B,8BAA4B,IAAI;AAChC,+BAA6B,QAAQ,MAAM,IAAI,EAAE,WAAW,MAAM;AAClE,gCAA8B,IAAI;AAGlC,6BAA2B,IAAI;AAC/B,iCAA+B,IAAI,MAAM,IAAI;AAG7C,4BAA0B,IAAI;AAC9B,gCAA8B,IAAI,MAAM;AAGxC,+BAA6B,IAAI;AACrC;AAIA,CAAC;AACG,YAAU;AACV,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,UAAQ,IAAI;AACZ,WAAS,EAAE,IAAI;AACf,iBAAe,IAAI;AACnB,cAAY;AACZ,mBAAiB;AACjB,UAAQ;AACR,WAAS;AACT,eAAa;AACb,cAAY,IAAI;AACpB;AAGA,CAAC;AACG,cAAY,IAAI;AAChB,UAAQ,IAAI;AAChB;AAGA,CAAC;AACG,cAAY,IAAI;AAChB,UAAQ,IAAI;AAChB;AAIA,CA9BC,cA8Bc;AACX,WAAS;AACb;AAEA,CAlCC,cAkCc,cAAc;AACzB,WAAS;AACT,YAAU;AACV,SAAO,KAAK,GAAG,EAAE,IAAI;AACrB,iBAAe,IAAI;AACnB,UAAQ,IAAI,aAAa,MAAM,IAAI;AACnC,kBAAgB;AACpB;AAIA,CAAC;AACG,UAAQ,IAAI;AACZ,SAAO;AACP,WAAS;AACT,kBAAgB;AACpB;;;ACnEA;AACI,cAAY,IAAI;AAChB,uBAAqB,IAAI;AACzB,wBAAsB,IAAI;AAC1B,uBAAqB,IAAI;AACzB,4BAA0B,IAAI;AAC9B,2BAAyB,IAAI;AAC7B,yBAAuB,IAAI;AAC/B;AAIA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,cAAY;AAChB;AAOA,CAAC;AACG,oBAAkB;AACtB;AAEA,CAJC,gBAIgB,CAAC;AACd,qBAAmB,IAAI;AAC3B;AAIA,CAAC;AACG,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,oBAAgB;AAChB,iBAAa;AACb,SAAK,IAAI;AACT,aAAS,IAAI,eAAe,IAAI;AACpC;AAEA,GAAC;AACG,oBAAgB;AACpB;AACJ;AAEA,CAjCC,gBAiCgB,CAvBhB;AAwBG,WAAS;AACb;AAIA,CAAC;AACG,SAAO;AACP,gBAAc,EAAE,EAAE;AAClB,iBAAe,IAAI;AACnB,YAAU;AACV,eAAa;AACb,oBAAkB;AACtB;AAEA,QAAO,WAAY;AACf,GAVH;AAWO,UAAM,EAAE,EAAE;AACV,WAAO;AACX;AACJ;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB;AACjB,WAAS;AACb;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GARH;AASO,UAAM,EAAE,EAAE;AACV,WAAO;AACX;AACJ;AAIA,CA7EkB;AA8Ed,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,cAAY;AACZ,UAAQ;AACR,WAAS;AACT,WAAS;AACT,kBAAgB;AACpB;AAIA,CAAC;AACG,iBAAe,IAAI,MAAM,IAAI;AACjC;AAEA,CAJC,WAIW;AACR,iBAAe;AACnB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,WAAS,IAAI,cAAc;AAC/B;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AAGjB,eAAa;AACb,SAAO,IAAI;AACX,eAAa;AACb,aAAW,IAAI;AACnB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;;;AC5KA;AACI,yBAAuB,IAAI;AAC3B,2BAAyB,IAAI;AAC7B,wBAAsB,IAAI;AAE1B,sBAAoB,IAAI;AACxB,wBAAsB,IAAI;AAC1B,qBAAmB,IAAI;AAEvB,0BAAwB,IAAI;AAC5B,yBAAuB,IAAI;AAE3B,6BAA2B,IAAI;AAC/B,4BAA0B,IAAI;AAE9B,+BAA6B,IAAI;AACjC,8BAA4B,IAAI;AAEhC,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,SAAO;AACP,cAAY;AAChB;AAEA,CAAC;AACG,oBAAkB,IAAI;AAC1B;AAEA,CAAC;AACG,oBAAkB,IAAI;AAC1B;AAEA,CAAC;AACG,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GARH;AASO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GAdH;AAeO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,iBAAe,IAAI;AACnB,WAAS,IAAI;AACb,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,cAAY;AAChB;AAEA,CA5CC,kBA4CkB,CATlB;AAUG,oBAAkB,IAAI;AAC1B;AAEA,CA5CC,oBA4CoB,CAbpB;AAcG,oBAAkB,IAAI;AAC1B;AAEA,CA5CC,iBA4CiB,CAjBjB;AAkBG,oBAAkB,IAAI;AAC1B;AAEA,QAAO,WAAY;AACf,GAtBH;AAuBO,oBAAgB;AAChB,iBAAa;AACb,qBAAiB;AACjB,SAAK,IAAI;AACT,aAAS,IAAI;AACjB;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,QAAO,WAAY;AACf,GAPH;AAQO,oBAAgB;AAChB,iBAAa;AACb,SAAK,IAAI;AACT,iBAAa;AACjB;AACJ;AAIA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB;AACjB,WAAS;AAET,eAAa;AACjB;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,aAAS;AACb;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAGA,CAAC;AACD,CAAC;AACG,WAAS;AACb;AAGA,CAAC;AACG,WAAS;AACb;AAEA,QAAO,WAAY;AAEf,GAZH;AAAA,EAaG,CAZH;AAaO,aAAS;AACb;AAEA,GAXH;AAYO,aAAS;AACb;AACJ;AAEA,CAtBC;AAuBG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACrB;AAEA,CA5BC;AA8BG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACrB;AAEA,CAhCC;AAiCG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACrB;AAGA,CA5JC,kBA4JkB,CA9ClB;AA+CD,CA7JC,kBA6JkB,CAzClB;AA0CD,CA1JC,oBA0JoB,CAhDpB;AAiDD,CA3JC,oBA2JoB,CA3CpB;AA4CG,SAAO,IAAI;AACf;AAEA,CA3JC,iBA2JiB,CArDjB;AAsDD,CA5JC,iBA4JiB,CAhDjB;AAiDG,SAAO,IAAI;AACf;AAEA,CAxKC,kBAwKkB,CAzDlB;AA0DD,CArKC,oBAqKoB,CA1DpB;AA2DG,SAAO,IAAI;AACf;AAEA,CArKC,iBAqKiB,CA9DjB;AA+DG,SAAO,IAAI;AACf;AAIA,CAAC;AACG,WAAS;AACT,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,cAAY,IAAI;AACpB;AAEA,CA5LC,kBA4LkB,CATlB;AAUD,CAzLC,oBAyLoB,CAVpB;AAWG,SAAO,IAAI;AACf;AAEA,CAzLC,iBAyLiB,CAdjB;AAeG,SAAO,IAAI;AACf;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB,IAAI;AAC3B,OAAK,IAAI;AACb;AAEA,CANC,UAMU,CAAC;AACR,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,UAAM;AACN,aAAS;AACT,eAAW;AACX,qBAAiB;AACjB,mBAAe;AACf,iBAAa;AACjB;AAEA,GApBH,UAoBc,CAdH;AAeJ,WAAO;AACX;AACJ;;;AC1RA,CAAC;AACG,eAAa,IAAI;AACjB,cAAY;AAChB;AAIA,CAAC;AACG,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GARH;AASO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GAdH;AAeO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,QAAO,WAAY;AACf,GAVH;AAWO,gBAAY;AAChB;AACJ;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AAEb,eAAa;AACjB;;;ACzBA;AAEI,YAAU,IAAI;AAGd,qBAAmB,IAAI;AAGvB,sBAAoB,IAAI;AAGxB,uBAAqB,IAAI;AACzB,yBAAuB,IAAI;AAG3B,uBAAqB,IAAI;AACzB,yBAAuB,IAAI;AAG3B,sBAAoB,IAAI;AACxB,wBAAsB,IAAI;AAG1B,qBAAmB,IAAI;AACvB,mBAAiB,IAAI;AACrB,uBAAqB,IAAI;AAGzB,oBAAkB,IAAI;AAEtB,cAAY,IAAI;AAEhB,mBAAiB,IAAI;AAErB,mBAAiB,IAAI;AAErB,oBAAkB;AAElB,aAAW,IAAI;AAEf,qBAAmB,IAAI;AAGvB;AAAA,IAAqB,EAAE;AAAA,IAAE,EAAE;AAAA,IAAE;AAC7B;AAAA,IAAsB,GAAG;AAAA,IAAE,EAAE;AAAA,IAAE;AAC/B;AAAA,IAAsB,GAAG;AAAA,IAAE,GAAG;AAAA,IAAE;AACpC;AAIA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,cAAY;AAChB;AAIA,CAAC;AACG,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,aAAS,IAAI,cAAc,IAAI;AAC/B,SAAK,IAAI;AACb;AACJ;AAEA,QAAO,WAAY;AACf,GAlBH;AAmBO,aAAS,IAAI,eAAe,IAAI;AAChC,SAAK,IAAI;AACb;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GATH;AAUO,iBAAa;AACb,gBAAY;AAChB;AACJ;AAEA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,aAAW;AACf;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAEhB,OAAK,IAAI;AAET,kBAAgB,IAAI;AAEpB,SAAO;AACP,aAAW,IAAI;AACf,UAAQ,EAAE;AACd;AASA,CAAC;AACG,YAAU;AACV,OAAK,KAAK,IAAI,kBAAkB,EAAE,IAAI,kBAAkB,EAAE,IAAI;AAClE;AAIA,CAAC;AACG,YAAU;AACV,iBAAe,IAAI;AACnB,WAAS,IAAI,iBAAiB,IAAI;AAClC,cAAY,IAAI;AAChB,WAAS;AACT,eAAa;AACb,YAAU;AACV,cAAY;AAGZ,oBAAkB,IAAI;AACtB,cAAY,UAAU,KAAK,QAAQ,EAAE,OAAO,KAAK;AACjD,eAAa,SAAS,EAAE;AAC5B;AAIA,CAAC;AACG,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACf;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,WAAS;AACb;AAEA,CANC,aAMa;AACV,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,WAAS;AACb;AAGA,CAAC;AACG,YAAU;AACV,SAAO;AACX;AAEA,CAAC;AACG,oBAAkB,KAAK,IAAI,oBAAoB,EAAE;AACrD;AAEA,CAAC;AACG,oBAAkB,KAAK,IAAI,qBAAqB,EAAE;AACtD;AAEA,CAAC;AACG,oBAAkB,KAAK,IAAI,qBAAqB,EAAE;AACtD;AAIA,CAAC;AACG,YAAU;AACV,WAAS;AACT,WAAS;AACT,yBAAuB,IAAI;AAC3B,SAAO;AACP,eAAa;AACb,OAAK,IAAI;AACb;AAEA,CAAC;AACG,QAAM;AACV;AAEA,CAAC;AACG,QAAM;AACV;AAIA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO;AACX;AAIA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO;AACP,WAAS;AACb;AAIA,QAAO,WAAY;AACf,GAhHH;AAiHO,aAAS,IAAI,cAAc,IAAI;AACnC;AAEA,GAhDH;AAiDO,2BAAuB;AACvB,iBAAa;AACb,SAAK,IAAI;AACb;AACJ;;;ACtQA;AACI,YAAwB,IAAI;AAC5B,gBAAwB,IAAI;AAC5B,mBAAwB,IAAI;AAC5B,sBAAwB,IAAI;AAC5B,cAAwB,IAAI;AAC5B,oBAAwB,IAAI;AAC5B,qBAAwB,IAAI;AAG5B,wBAAwB;AACxB,0BAAwB;AACxB,uBAAwB;AAGxB,oBAAwB,IAAI;AAC5B,iBAAwB,IAAI;AAG5B,iBAAwB,IAAI;AAC5B,qBAAwB,IAAI;AAC5B,qBAAwB,IAAI;AAC5B,qBAAwB,EAAE,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACjD,oBAAwB;AACxB,mBAAwB,IAAI;AAC5B,yBAAwB,IAAI;AAChC;AAIA,CAAC;AACG,SAAO;AACP,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,eAAa,IAAI;AACjB,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAbH;AAcO,aAAS,IAAI,cAAc,IAAI;AAC/B,SAAK,IAAI;AACb;AACJ;AAEA,QAAO,WAAY;AACf,GApBH;AAqBO,aAAS,IAAI,eAAe,IAAI;AAChC,SAAK,IAAI;AACb;AACJ;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,cAAY;AAChB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,SAAO,IAAI;AACX,cAAY;AACZ,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,YAAU;AACd;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,OAAK,IAAI;AACT,WAAS,IAAI,cAAc,IAAI;AAC/B,iBAAe,IAAI,MAAM,IAAI;AAC7B,oBAAkB,IAAI;AACtB,aAAW;AACf;AAEA,CAAC;AACG,QAAM;AACN,aAAW;AACX,aAAW;AACf;AAGA,CAPC,iBAOiB,CAAC;AACf,UAAQ,IAAI;AAChB;AAEA,CAXC,iBAWiB,CAAC;AACf,aAAW,IAAI;AACnB;AAEA,CAAC;AACG,aAAW,IAAI;AACf,SAAO,IAAI;AACX,eAAa;AACb,eAAa;AACjB;AAQA,CAAC;AACG,cAAY;AACZ,cAAY;AACZ,8BAA4B;AAChC;AAIA,CAAC;AACG,SAAO;AACP,aAAW;AACX,mBAAiB;AACjB,kBAAgB;AAChB,cAAY;AAChB;AAIA,CAAC;AACG,oBAAkB,IAAI;AACtB,cAAY,iBAAiB;AAC7B,UAAQ,IAAI;AAChB;AAEA,CAAC,WAAW,CANX,OAMmB;AAChB,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACD,CAAC;AACG,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AACZ,kBAAgB;AAChB,YAAU;AACV,SAAO,IAAI;AACX,aAAW,IAAI;AACf,iBAAe,IAAI,MAAM,IAAI;AACjC;AAEA,CAjBC,WAiBW,CAvBX,OAuBmB,YAAY,CAV/B;AAWG,iBAAe;AACnB;AAEA,CAAC;AACD,CAAC;AACG,SAAO,IAAI;AACX,aAAW,IAAI;AACnB;AAQA,CAAC;AACD,CAAC;AACG,SAAO,IAAI;AACX,aAAW,IAAI;AACf,YAAU;AACV,QAAM;AACN,WAAS;AACT,oBAAkB,IAAI;AACtB,cAAY,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACzC;AAGA,CA7CC,WA6CW,CAnDX,OAmDmB,OAAO,CAX1B;AAYG,oBAAkB,IAAI;AAC1B;AAIA,CA7CC;AA8CG,oBAAkB,IAAI;AACtB,eAAa;AACb,kBAAgB;AAChB,kBAAgB,IAAI;AACpB,eAAa,IAAI;AACjB,YAAU;AACV,OAAK;AACL,WAAS;AACb;AAGA,CA9BC;AA+BG,oBAAkB,IAAI;AACtB,WAAS;AACb;AAEA,CAAC;AACG,YAAU;AACV,WAAS;AACT,eAAa;AACjB;AAEA,CAAC;AACG,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,eAAa;AACjB;AAEA,CAAC;AACG,iBAAe,IAAI,OAAO,IAAI;AAC9B,UAAQ;AACZ;AAIA,CAAC;AACG,YAAU;AACV,WAAS;AACT,aAAW,UAAU,IAAI,EAAE;AAC3B,SAAO,IAAI;AACX,oBAAkB,IAAI;AACtB,UAAQ,IAAI,MAAM,IAAI;AACtB,iBAAe,IAAI;AACnB,cAAY,IAAI;AAChB,WAAS,IAAI;AACb,WAAS;AACT,cAAY;AACZ,kBAAgB;AAChB,cAAY,QAAQ,KAAK,EAAE,WAAW;AACtC,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,kBAAgB;AAChB,kBAAgB;AAChB,eAAa;AACjB;AAEA,CAAC;AACG,WAAS;AACT,cAAY;AAChB;AAEA,CAAC;AACG,aAAW,IAAI;AACf,SAAO,IAAI;AACX,eAAa;AACjB;AAEA,CAAC;AACG,YAAU;AACV,OAAK;AACL,QAAM;AACN,aAAW,WAAW;AACtB,UAAQ,IAAI,MAAM;AAClB,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,aAAW;AACX,YAAU;AACd;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,eAAa;AACb,WAAS;AACb;AAEA,CAAC;AACG,aAAW,IAAI;AACf,SAAO,IAAI;AACX,eAAa;AACb,eAAa;AACb,cAAY;AAChB;AAEA,CAAC;AACG,eAAa,IAAI;AACrB;AAKA,CAAC;AACG,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AACZ,aAAW,IAAI;AACf,SAAO,IAAI;AACf;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY,IAAI,MAAM,IAAI;AAC1B,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,cAAY,IAAI;AAChB,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,SAAO,IAAI;AACX,eAAa;AACb,cAAY;AACZ,SAAO;AACP,UAAQ;AACZ;AAEA,CAAC;AACG,aAAW,IAAI;AACf,SAAO,IAAI;AACX,eAAa;AACb,UAAQ;AACR,cAAY;AAChB;AAEA,CAAC;AACG,WAAS;AACT,mBAAiB;AACjB,eAAa;AACb,SAAO;AACX;AAIA,QAAO,WAAY;AACf,GAxRH;AAyRO,oBAAgB;AAChB,iBAAa;AACb,aAAS,IAAI;AACb,SAAK,IAAI;AACb;AAEA,GApRH;AAqRO,eAAW;AACX,WAAO;AACX;AAEA,GA1QH;AA2QO,gBAAY;AAChB;AAEA,GAxMH;AAAA,EAyMG,CAxMH;AAyMO,WAAO,KAAK,IAAI,sBAAsB,EAAE,IAAI,EAAE,IAAI;AAClD,eAAW,KAAK,IAAI,sBAAsB,EAAE,IAAI,EAAE,IAAI;AAC1D;AAEA,GAnEH;AAoEO,oBAAgB;AAChB,iBAAa;AACb,aAAS,IAAI;AACjB;AAEA,GAtCH;AAuCO,qBAAiB;AACrB;AACJ;;;ACzZA;AACI,qBAAwB,IAAI;AAC5B,aAAwB,IAAI;AAC5B,oBAAwB,IAAI;AAC5B,iBAAwB,IAAI;AAC5B,eAAwB,IAAI;AAC5B,sBAAwB,IAAI;AAC5B,iBAAwB,IAAI;AAC5B,kBAAwB,IAAI;AAC5B,kBAAwB,IAAI;AAChC;AAIA,CAAC;AACG,SAAO;AACP,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,cAAY;AAChB;AAEA,CAAC;AACD,CAAC;AACG,SAAO;AACP,aAAW,IAAI;AACnB;AAEA,QAAO,WAAY;AACf,GApBH;AAqBO,aAAS,IAAI,cAAc,IAAI;AAC/B,SAAK,IAAI;AACb;AACJ;AAEA,QAAO,WAAY;AACf,GA3BH;AA4BO,aAAS,IAAI,eAAe,IAAI;AAChC,SAAK,IAAI;AACb;AACJ;AAEA,CApBC;AAqBG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GA5BH;AA6BO,iBAAa;AACb,gBAAY;AAChB;AACJ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACpB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AACtB,UAAQ,IAAI,MAAM,IAAI;AACtB,iBAAe,IAAI;AACnB,YAAU;AACV,cAAY;AAChB;AAEA,CAAC;AACG,cAAY;AACZ,8BAA4B;AAChC;AAEA,CAAC;AACG,SAAO;AACP,aAAW;AACX,mBAAiB;AACjB,kBAAgB;AAChB,gBAAc;AACd,cAAY;AAChB;AAEA,CAAC,oBAAoB,CATpB;AAUG,aAAW;AACf;AAEA,CAAC,mBAAmB,CAbnB;AAcG,aAAW;AACf;AAIA,CAAC;AACD,CAAC;AACD,CAAC;AACG,WAAS,IAAI,gBAAgB,IAAI;AACjC,iBAAe,IAAI,MAAM,IAAI;AAC7B,kBAAgB;AAChB,cAAY;AAChB;AAEA,CA5BC,YA4BY,MAAM,CAAC,QAAQ,YAAY,CARvC;AASD,CA7BC,YA6BY,MAAM,CADC,QACQ,YAAY,CARvC;AASG,iBAAe;AACnB;AAEA,CAdC;AAeG,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAtBC;AAuBG,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,cAAY;AAChB;AAEA,CA/BC;AAgCG,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,WAAS;AACb;AAEA,QAAO,WAAY;AACf,GAjJH;AAkJO,oBAAgB,IAAI;AACpB,oBAAgB,IAAI;AACxB;AACJ;;;ACtLA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AACZ,SAAO;AACP,eAAa;AACb,OAAK,IAAI;AACb;AAEA,QAAO,WAAY;AACf,GAbH;AAcO,aAAS,IAAI,eAAe,IAAI;AAChC,SAAK,IAAI;AACb;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,cAAY;AACZ,SAAO;AACP,aAAW,IAAI;AACf,OAAK,IAAI;AACb;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,iBAAa;AACb,gBAAY;AAChB;AACJ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,SAAO;AACX;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB;AACvB,WAAS,IAAI;AACb,cAAY,IAAI;AAChB,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GATH;AAUO,2BAAuB,OAAO,CAAC,EAAE;AACrC;AACJ;AAEA,QAAO,WAAY;AACf,GAfH;AAgBO,2BAAuB,OAAO,CAAC,EAAE;AACrC;AACJ;AASA,CAAC;AACG,WAAS;AACT,sBAAoB;AACpB,cAAY,mBAAmB,KAAK,aAAa,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE;AAC/D,SAAO;AACX;AAEA,CAAC;AACG,sBAAoB;AACxB;AAEA,CAAC;AACG,cAAY;AACZ,YAAU;AACV,WAAS;AACT,yBAAuB;AACvB,WAAS,IAAI;AACb,cAAY,IAAI;AAChB,eAAa,IAAI;AACrB;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,2BAAuB,OAAO,CAAC,EAAE;AACrC;AACJ;AAEA,QAAO,WAAY;AACf,GAjBH;AAkBO,2BAAuB,OAAO,CAAC,EAAE;AACjC,iBAAa,IAAI;AACrB;AACJ;AAIA,CAAC;AACG,WAAS;AACT,aAAW,WAAW;AACtB,cACI,QAAU,KAAK,IAAI,EACnB,UAAU,KAAK,aAAa,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE;AAClD;AAEA,CAAC;AACG,WAAS;AACT,aAAW,WAAW;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,oBAAkB,IAAI;AACtB,iBAAe,IAAI;AACnB,SAAO;AACX;AAIA,CAAC;AACG,SAAO;AACP,gBAAc,EAAE,EAAE;AAClB,iBAAe,IAAI;AACnB,YAAU;AACV,YAAU;AACV,oBAAkB,IAAI;AAC1B;AAEA,CAAC;AACG,YAAU;AACV,SAAO;AACP,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB;AACjB,WAAS;AACb;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACX;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,cAAY,KAAK,IAAI,aAAa,EAAE;AACxC;AAEA,CAJC,kBAIkB,CAAC;AAChB,SAAO;AACX;AAEA,CARC,iBAQiB,OAAO,CAJL;AAKhB,SAAO;AACX;AAIA,CAAC;AACG,WAAS;AACT,mBAAiB;AACjB,SAAO;AACP,eAAa,IAAI;AACrB;AAEA,QAAO,WAAY;AACf,GARH;AASO,iBAAa;AACb,gBAAY,KAAK,IAAI,cAAc,EAAE,IAAI;AACzC,WAAO;AACX;AAEA,GAdH,qBAcyB,CAAC;AACnB,WAAO;AACX;AACJ;;;AClOA,CAAC;AACG,0BAAwB,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC5C,8BAA4B,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAE1C,SAAO;AACP,eAAa,IAAI;AACjB,cAAY;AAEZ,WAAS,IAAI,cAAc;AAC/B;AAEA,QAAO,WAAY;AACf,GAZH;AAaO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAOA,CAAC;AACG,WAAS,IAAI,cAAc,IAAI;AACnC;AAEA,QAAO,WAAY;AACf,GALH;AAMO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,YAAU;AACV,WAAS;AACT,kBAAgB;AAChB,aAAW,IAAI;AACf,UAAQ,EAAE;AAEV,iBAAe;AACf,YAAU;AACV,oBAAkB,IAAI;AACtB,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAdH;AAeO,mBAAe,IAAI;AACvB;AACJ;AAGA,CAAC;AACD,CAAC;AACG,iBAAe,IAAI;AACnB,cAAY;AACZ,WAAS;AACT,yBAAuB;AACvB,eAAa;AACjB;AAIA,CAAC,gCAAgC,CAAC;AAC9B,SAAO;AACX;AAEA,CAJC,gCAIgC,CAAC;AAC9B,SAAO;AACX;AAEA,CAAC,iCAAiC,CARA;AAS9B,SAAO;AACX;AAEA,CAJC,iCAIiC,CARA;AAS9B,SAAO;AACX;AAOA,CAhCC,gCAgCgC,CArBC;AAsBlC,CAhCC,iCAgCiC,CAtBA;AAuB9B,SAAO;AACX;AAEA,CArCC,gCAqCgC,CAtBC;AAuBlC,CArCC,iCAqCiC,CAvBA;AAwB9B,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GAhCH;AAAA,EAiCG,CAzBH;AA0BO,oBAAgB;AAChB,iBAAa;AACjB;AAEA,GA9BH;AA+BO,qBAAiB;AACrB;AAEA,GArDH;AAAA,EAsDG,CArDH;AAsDO,2BAAuB,IAAI;AAC/B;AAEA,GA1DH,gCA0DoC,CA/CH;AAAA,EAgD9B,CA3DH,gCA2DoC,CA5CH;AAAA,EA6C9B,CA3DH,iCA2DqC,CAjDJ;AAAA,EAkD9B,CA5DH,iCA4DqC,CA9CJ;AA+C1B,WAAO;AACX;AAEA,GAjEH,gCAiEoC,CAtDH;AAuD1B,iBAAa;AACb,cAAU;AACd;AAEA,GAtEH,gCAsEoC,CAvDH;AAwD1B,iBAAa;AACb,cAAU;AACd;AAEA,GA1EH,iCA0EqC,CA5DJ;AA6D1B,iBAAa;AACb,cAAU;AACd;AAEA,GA/EH,iCA+EqC,CArEJ;AAsE1B,iBAAa;AACb,cAAU;AACd;AACJ;AAIA,CAAC;AACD,CAAC;AACG,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GANH;AAAA,EAOG,CANH;AAOO,gBAAY;AACZ,gBAAY;AAChB;AAEA,GAXH;AAYO,iBAAa;AACjB;AACJ;AAIA,CAhGkC;AAiG9B,WAAS;AACT,kBAAgB;AAChB,mBAAiB;AACjB,eAAa;AACb,cAAY;AACZ,OAAK,IAAI;AACT,WAAS,IAAI,cAAc,IAAI;AAC/B,QAAM,EAAE,EAAE;AACV,SAAO;AACP,cAAY;AACZ,YAAU;AACV,WAAS;AACb;AAMA,CA9HC,gCA8HgC,CAnHC;AAoHlC,CA9HC,iCA8HiC,CApHA;AAqH9B,OAAK,IAAI;AACT,WAAS,IAAI;AACb,mBAAiB;AAEjB,eAAa;AACb,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAzIH,gCAyIoC,CA9HH;AAAA,EA+H9B,CAzIH,iCAyIqC,CA/HJ;AAgI1B,aAAS,IAAI;AACjB;AACJ;AAEA,CA/IC,gCA+IgC,CAAC;AAClC,CA/IC,iCA+IiC,CADA;AAE9B,mBAAiB;AACrB;AAGA,CAlIC,iCAkIiC,CA1IA;AA2IlC,CA7DC,mCA6DmC,CA3IF;AA4I9B,eAAa;AACb,cAAY;AAChB;AAEA,CAxIC,iCAwIiC,CAAC;AACnC,CAnEC,mCAmEmC,CADD;AAE/B,mBAAiB;AACrB;AAEA,QAAO,WAAY;AACf,GAtJ8B;AAuJ1B,SAAK,IAAI;AACb;AAEA,GA1JH,gCA0JoC,CA1JH;AAAA,EA2J9B,CAnJH,iCAmJqC,CA3JJ;AA4J1B,WAAO;AACP,aAAS,IAAI,cAAc,IAAI;AAC/B,qBAAiB;AACrB;AAEA,GApFH,kCAoFsC,CAjKL;AAAA,EAkK9B,CApFH,mCAoFuC,CAlKN;AAmK1B,WAAO;AACP,aAAS,IAAI,cAAc,IAAI;AAC/B,qBAAiB;AACjB,UAAM,EAAE,EAAE;AACd;AAEA,GA5FH,kCA4FsC,CAzKL;AA0K1B,gBAAY;AAChB;AAEA,GA/FH,mCA+FuC,CA7KN;AA8K1B,gBAAY;AAChB;AAEA,GA5LH,gCA4LoC,CAjLH;AAAA,EAkL9B,CA5LH,iCA4LqC,CAlLJ;AAmL1B,WAAO;AACX;AAGA,GAjMH,iCAiMqC,CAvLJ;AAwL1B,iBAAa;AACb,gBAAY;AAChB;AAEA,GAtMH,iCAsMqC,CAxDJ;AAyD1B,qBAAiB;AACrB;AACJ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAQA,CA7NC,gCA6NgC,CAfhC;AAgBD,CA7NC,iCA6NiC,CAhBjC;AAiBG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,kBAAgB;AACpB;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,aAAW;AACf;AAEA,CAlPC,gCAkPgC,CAVhC;AAWD,CAlPC,iCAkPiC,CAXjC;AAYG,aAAW;AACf;AAIA,CA9FmC;AA+F/B,WAAS;AACT,eAAa;AACb,eAAa,IAAI;AACrB;AAIA,CAlHkC;AAmH9B,WAAS;AACT,aAAW;AACX,OAAK,IAAI;AACT,cAAY;AACZ,UAAQ;AACR,WAAS;AACT,SAAO;AACX;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,OAAK,IAAI;AACT,UAAQ;AAER,WAAS,KAAK,IAAI,aAAa,EAAE,IAAI,cAAc,IAAI;AACvD,iBAAe,IAAI;AACnB,oBAAkB,IAAI;AACtB,UAAQ,IAAI,MAAM,IAAI;AACtB,cAAY;AACZ,SAAO,IAAI;AACf;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,SAAO;AACP,UAAQ;AACZ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,eAAa;AACjB;AAIA,CA5RkC;AA6R9B,YAAU;AACV,SAAO;AACP,gBAAc,EAAE,EAAE;AAClB,YAAU;AACV,eAAa;AACjB;AAOA,CAxTC,gCAwTgC,CAzSC;AA0SlC,CAxTC,iCAwTiC,CA1SA;AA2S9B,gBAAc;AACd,cAAY;AACZ,YAAU;AACV,UAAQ;AACZ;AAEA,QAAO,WAAY;AACf,GAlT8B;AAmT1B,cAAU;AACV,SAAK;AACL,YAAQ;AACR,WAAO;AACP,kBAAc;AAClB;AAEA,GA9TH,gCA8ToC,CA1TH;AA2T1B,WAAO;AACX;AAEA,GA1TH,iCA0TqC,CA9TJ;AA+T1B,UAAM;AACV;AAEA,GAjVH;AAAA,EAkVG,CAjVH;AAmVO,iBAAa;AACjB;AAEA,GAvVH,gCAuVoC,CAxUH;AAAA,EAyU9B,CAvVH,iCAuVqC,CAzUJ;AA0U1B,cAAU;AACV,WAAO;AACP,YAAQ;AACR,gBAAY;AACZ,kBAAc;AACd,gBAAY;AAChB;AACJ;AAEA,CAAC;AACG,YAAU;AACV,SAAO;AACP,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB,OAAO;AACxB,WAAS;AACb;AAGA,CA7WC,gCA6WgC,CAXhC;AAYD,CA7WC,iCA6WiC,CAZjC;AAaG,YAAU;AACV,SAAO;AACP,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB;AACjB,WAAS;AACb;AAMA,CAAC;AACG,WAAS;AACT,YAAU;AACV,OAAK;AACL,QAAM;AACN,SAAO;AACP,UAAQ,IAAI;AACZ,kBAAgB;AAChB,WAAS;AACT;AAAA,IAAY;AAAA,MACR,GAAG,MAAM;AAAA,MACT,IAAI,oBAAoB,EAAE;AAAA,MAC1B,YAAY;AAEpB;AAEA,QAAO,WAAY;AACf,GAjBH;AAkBO,aAAS;AACb;AACJ;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,WAAS;AACb;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB;AACjB,WAAS;AACb;AAQA,CAAC;AACG,YAAU;AACV,SAAO;AACP;AAAA,IAAY;AAAA,MACR,GAAG,KADK;AAAA,MAER,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAFZ;AAAA,MAGR,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,GAHZ;AAAA,MAIR,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM;AAE5B;AAEA,CA1VC,mCA0VmC,CAXnC;AAYG;AAAA,IAAY;AAAA,MACR,GAAG,IADK;AAAA,MAER,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAFZ;AAAA,MAGR,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,GAHZ;AAAA,MAIR,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM;AAE5B;;;ACvgBA;AACI,oBAAkB,IAAI;AACtB,yBAAuB,IAAI;AAC3B,6BAA2B;AAC3B,6BAA2B;AAC3B,iCAA+B;AAC/B,6BAA2B,IAAI;AAC/B,6BAA2B,IAAI;AAC/B,mCAAiC,IAAI;AACrC,uCAAqC,IAAI;AACzC,2BAAyB,IAAI;AAC7B,kCAAgC,IAAI;AACpC,iCAA+B,IAAI;AAQnC,kCAAgC;AAChC,oCAAkC,IAAI;AACtC,wCAAsC,IAAI;AAC1C,wCAAsC,IAAI;AAC1C,8CAA4C,IAAI;AAChD,wCAAsC,IAAI;AAC1C,yCAAuC,IAAI;AAO3C,uCAAqC;AACrC,uCAAqC;AACrC,uCAAqC,IAAI;AACzC,6CAA2C,IAAI;AAC/C,qCAAmC,IAAI;AACvC,uCAAqC,IAAI;AAC7C;AAIA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AACZ,SAAO;AACP,OAAK,IAAI;AACb;AAEA,QAAO,WAAY;AACf,GAbH;AAcO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GAnBH;AAoBO,aAAS,IAAI,eAAe,IAAI;AAChC,SAAK,IAAI;AACb;AACJ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,cAAY;AACZ,SAAO;AACX;AAIA,CAAC;AACG,SAAO;AACP,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACb;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,UAAQ;AACR,aAAW,IAAI;AACf,cAAY,IAAI;AAChB,oBAAkB,IAAI;AACtB,iBAAe,IAAI;AACnB,cAAY,IAAI;AAEhB,WAAS,MAAM,IAAI,cAAc,IAAI;AACrC,cAAY;AACZ,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,mBAAiB;AACjB,cAAY;AACZ,OAAK,IAAI;AACT,YAAU;AACd;AAEA,QAAO,WAAY;AACf,GAtBH;AAuBO,aAAS,IAAI,cAAc,IAAI;AAC/B,iBAAa;AACb,gBAAY;AAChB;AACJ;AAIA,CAAC;AACG,YAAU;AACV,eAAa;AACb,eAAa;AACjB;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,WAAS;AACb;AAEA,CAAC;AACG,OAAK,IAAI;AACT,QAAM,IAAI;AACd;AAEA,CAAC;AACG,UAAQ,IAAI;AACZ,SAAO,IAAI;AACX,WAAS;AACb;AAEA,QAAO,WAAY;AACf,GAlBH;AAmBO,WAAO;AACX;AAEA,GAhBH;AAiBO,SAAK,IAAI;AACT,UAAM,IAAI;AACd;AAEA,GAhBH;AAiBO,aAAS;AACT,YAAQ,IAAI;AACZ,WAAO,IAAI;AACf;AACJ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,cAAY;AACZ,UAAQ;AACR,aAAW;AACX,YAAU;AACV,WAAS;AACb;AAEA,QAAO,WAAY;AACf,GAdH;AAeO,gBAAY;AAChB;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,YAAU;AACV,WAAS;AACb;AAEA,QAAO,WAAY;AACf,GAVH;AAWO,iBAAa;AACjB;AACJ;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,iBAAe;AACf,cAAY;AACZ,iBAAe,IAAI;AACvB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,iBAAe;AACf,oBAAkB,IAAI;AACtB,UAAQ;AACR,WAAS;AACT,UAAQ;AACR,cAAY,iBAAiB,KAAK,IAAI,EAAE,UAAU,KAAK;AACvD,eAAa;AACjB;AAEA,CAZC,gBAYgB;AACb,oBAAkB,IAAI;AAC1B;AAEA,CAAC;AACG,oBAAkB,IAAI;AACtB,aAAW,MAAM;AACrB;AAKA,CAAC;AACG,YAAU;AACV,WAAS;AACT,SAAO;AACX;AAOA,CAAC;AACG,aAAW,EAAE,EAAE;AACf,SAAO;AACP,cAAY;AACZ,WAAS;AACT,cAAY;AACZ,kBAAgB;AAChB;AAAA,IAAY,QAAQ,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;AAAA,IAC1C,UAAU,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;AAAA,IAC5C,WAAW,GAAG,OAAO;AACjC,aAAW,WAAW;AAC1B;AAEA,CAAC;AACG,WAAS;AACT,cAAY;AACZ,kBAAgB;AAChB,aAAW,WAAW;AACtB;AAAA,IAAY,QAAQ,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;AAAA,IAC1C,UAAU,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;AAAA,IAC5C,WAAW,GAAG,OAAO;AACrC;AAEA,CAAC;AACG,WAAS;AACT,cAAY;AACZ,aAAW,WAAW;AACtB;AAAA,IAAY,QAAQ,KAAK,aAAa,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;AAAA,IACvC,UAAU,KAAK,aAAa,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;AAAA,IACzC,WAAW,GAAG,OAAO;AACrC;AAOA,CAAC;AACG,oBAAkB,IAAI;AAItB,cAAY;AAChB;AAEA,CAAC;AACG,cAAY;AAChB;AASA,CAAC;AACD,CAAC;AACG,SAAO;AACP,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,cAAY;AACZ,gBAAc,IAAI;AAClB,iBAAe,IAAI;AACvB;AAEA,CAVC;AAWG,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACxB;AAEA,CAdC;AAeG,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACxB;AAEA,QAAO,WAAY;AAEf,GAtBH;AAAA,EAuBG,CAtBH;AAuBO,kBAAc,IAAI;AAClB,mBAAe,IAAI;AACvB;AACJ;AAEA,QAAO,WAAY;AACf,GA9BH;AA+BO,iBAAa,IAAI;AACjB,oBAAgB,IAAI;AACxB;AAEA,GAlCH;AAmCO,iBAAa,IAAI;AACjB,oBAAgB,IAAI;AACxB;AACJ;AAIA,CAAC;AACG,SAAO;AACP,cAAY;AAChB;AAEA,CAAC;AACG,SAAO;AACP,aAAW;AACX,cAAY;AACZ,cAAY;AACZ,cAAY;AACZ,yBAAuB;AACvB,oBAAkB,EAAE;AACpB,mBAAiB;AACjB,8BAA4B;AAI5B,mBAAiB;AAGjB,gBAAc,KAAK,IAAI,aAAa,EAAE;AACtC,iBAAe,IAAI;AASnB,yBAAuB,IACnB,IAAI,aAAa,EACjB,KAAK,CAAC,MAAM,EAAE,IAAI,uBAAuB,EAAE,EAAE,EAAE,IAAI;AAE3D;AAEA,QAAO,WAAY;AACf,GAjCH;AAkCO,2BAAuB,IACnB,IAAI,aAAa,EACjB,KAAK,CAAC,MAAM,EAAE,IAAI,uBAAuB,EAAE,EAAE,EAAE,IAAI;AAE3D;AACJ;AAEA,CAzCC,wBAyCwB;AACrB,WAAS;AACb;AAEA,CA7CC,wBA6CwB;AACrB,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AACpB;AAEA,CAAC;AACG,WAAS;AACT,OAAK,IAAI;AACT,SAAO;AACP,cAAY;AA4BZ,gBAAc,IACV,IAAI,aAAa,EACjB,KAAK,CAAC,MAAM,EAAE,IAAI,uBAAuB,EAAE,EAAE,EAAE,IAAI;AAE3D;AAEA,QAAO,WAAY;AACf,GAvCH;AAwCO,kBAAc,IACV,IAAI,aAAa,EACjB,KAAK,CAAC,MAAM,EAAE,IAAI,uBAAuB,EAAE,EAAE,EAAE,IAAI;AAE3D;AACJ;AAkBA,CA/DC,qBA+DqB;AAClB,WAAS;AACT,WAAS;AACT,eAAa,KAAK,GAAG,EAAE,IAAI;AAC3B,QAAM,EAAE,EAAE,IACN,IAAI,aAAa,EACjB,KAAK,CAAC,MAAM,EAAE,IAAI,uBAAuB,EAAE,EAAE,EAAE,IAAI;AAE3D;AAEA,QAAO,WAAY;AACf,GA1EH,qBA0EyB;AAClB,gBAAY,IACR,IAAI,aAAa,EACjB,KAAK,CAAC,MAAM,EAAE,IAAI,uBAAuB,EAAE,EAAE,EAAE,IAAI;AAE3D;AACJ;AAEA,CAAC;AACG,QAAM,EAAE,EAAE,IAAI,IAAI,EAAE;AACpB,qBAAmB;AACnB,oBAAkB;AACtB;AAEA,QAAO,WAAY;AACf,GAPH;AAQO,UAAM,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,eAAe,EAAE;AACpD;AACJ;AAEA,QAAO,WAAY;AACf,GAbH;AAcO,UAAM,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,eAAe,EAAE;AACpD;AACJ;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,UAAQ;AACR,cAAY;AACZ,WAAS,IAAI;AACb,oBAAkB,IAAI;AACtB,iBAAe,IAAI;AACnB,cAAY,IAAI;AAChB,mBAAiB;AACjB,SAAO;AACP,cAAY;AACZ,cAAY,WAAW,KAAK;AAChC;AAEA,CAfC,oBAeoB;AACrB,CAhBC,oBAgBoB;AACjB,cAAY,IAAI;AACpB;AAEA,CApBC,oBAoBoB;AACjB,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB,IAAI;AACxB;AAEA,CAAC;AACG,UAAQ,IAAI,cAAc,EAAE;AAC5B,QAAM,EAAE,EAAE;AACV,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,UAAQ,IAAI,cAAc,EAAE;AAC5B,eAAa,IAAI;AACjB,aAAW,IAAI;AAGf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAIA,CAAC;AACG,WAAS;AAKT,OAAK,IAAI;AACb;AAEA,CAAC,0BAA0B,CAAC;AACxB,SAAO;AACP,UAAQ;AACZ;AAEA,CAAC,0BAA0B,CALC;AAMxB,SAAO;AACP,UAAQ;AACZ;AAEA,QAAO,WAAY;AACf,GANH,0BAM8B,CAXH;AAYpB,WAAO;AACP,YAAQ;AACZ;AACJ;AAEA,CAAC;AACG,QAAM,IAAI;AACd;AAEA,CAAC;AACG,QAAM,IAAI;AACd;AAEA,CAAC;AACG,QAAM,IAAI;AACd;AAIA,CAAC;AACG,WAAS;AACT,aAAW;AACX,eAAa;AACb,OAAK,IAAI;AACb;AAEA,QAAO,WAAY;AACf,GARH;AASO,oBAAgB;AACpB;AAEA,GAAC;AACG,mBAAe;AACnB;AACJ;AAIA,CAAC;AACG,QAAM,EAAE,EAAE;AACV,WAAS;AACT,mBAAiB;AACrB;AAWA,QAAO,WAAY;AACf,GAhBH;AAiBO,UAAM,EAAE,EAAE;AACV,WAAO;AACX;AACJ;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACrB;AAQA,CAAC;AACG,WAAS;AACT,UAAQ;AACR,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GAPH;AAQO,YAAQ;AACZ;AACJ;AAEA,CAxBC,qBAwBqB;AAClB,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB,IAAI;AACpB,iBAAe,IAAI;AACvB;AAEA,CA3DK;AA4DD,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAEA,QAAO,WAAY;AACf,GAlEC;AAmEG,iBAAa;AACjB;AACJ;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,WAAS;AACT,UAAQ,IAAI,MAAM,IAAI;AACtB,iBAAe,IAAI;AACnB,oBAAkB;AAClB,SAAO,IAAI;AACX,UAAQ;AACR,cAAY,aAAa,MAAM;AACnC;AAEA,CAfC,uBAeuB,MAAM,KAAK;AAC/B,gBAAc,IAAI;AACtB;AAEA,CAnBC,uBAmBuB;AACpB,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB,IAAI;AACxB;AASA,CA/BC,uBA+BuB;AACpB,WAAS;AACT,UAAQ;AACZ;;;ACjuBA,CAAC;AACG,SAAO;AACP,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GATH;AAUO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAEA,CAAC;AACG,QAAM,EAAE,EAAE;AACV,aAAW;AACf;AAEA,CAAC;AACG,QAAM,EAAE,EAAE;AACV,SAAO;AACX;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAEA,CAAC;AACG,WAAS;AACb;AAIA,CAAC;AACG,QAAM,EAAE,EAAE;AACV,aAAW;AACX,WAAS;AACT,eAAa;AACjB;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,SAAO;AACX;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK;AACL,SAAO;AACX;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,UAAQ;AACR,WAAS,EAAE,IAAI;AACf,iBAAe,IAAI;AACnB,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa;AACb,SAAO,IAAI;AACX,eAAa;AACb,eAAa;AACjB;AAEA,CAAC;AACG,QAAM,EAAE,EAAE;AACV,aAAW;AACX,UAAQ;AACR,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,kBAAgB,IAAI;AACpB,iBAAe,IAAI,MAAM,IAAI;AACjC;AAEA,CALC,YAKY,CAAC;AACV,aAAW;AACX,eAAa;AACjB;AAEA,CAVC,YAUY,CAAC;AACV,SAAO;AACP,UAAQ;AACZ;AAEA,CAfC,YAeY,CAAC,cAAc,CAAC;AACzB,iBAAe;AACf,kBAAgB;AACpB;AAEA,CApBC,WAoBW;AACR,iBAAe;AACf,kBAAgB;AACpB;AAIA,CAAC;AACG,SAAO;AACP,cAAY;AACZ,oBAAkB,IAAI;AACtB,eAAa;AACjB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,QAAM,EAAE,EAAE;AACV,aAAW;AACX,mBAAiB;AACjB,cAAY;AAChB;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,YAAU;AACV,iBAAe;AACf,WAAS;AACT,sBAAoB;AACpB,sBAAoB;AACxB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa;AACb,SAAO,IAAI;AACX,UAAQ;AACR,YAAU;AACV,iBAAe;AACf,WAAS;AACT,sBAAoB;AACpB,sBAAoB;AACxB;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAEA,CAAC;AACG,SAAO;AACP,iBAAe,IAAI;AACnB,YAAU;AACV,YAAU;AACV,gBAAc,IAAI,EAAE;AACxB;AAEA,CAAC;AACG,YAAU;AACV,SAAO;AACP,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,WAAS;AACT,iBAAe;AACnB;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACX;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,QAAM,EAAE,EAAE;AACV,aAAW;AACf;AAEA,CAAC;AACG,SAAO;AACP,cAAY;AACZ,oBAAkB,IAAI;AACtB,eAAa;AACjB;AAEA,CAAC;AACG,QAAM,EAAE,EAAE;AACV,aAAW;AACX,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW;AACX,eAAa,IAAI;AACjB,eAAa;AACb,SAAO,IAAI;AACX,UAAQ;AACR,YAAU;AACV,iBAAe;AACf,WAAS;AACT,sBAAoB;AACpB,sBAAoB;AACxB;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAEA,CAAC;AACG,SAAO,IAAI;AACX,aAAW,IAAI;AACf,eAAa;AACjB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,WAAS,IAAI,cAAc,IAAI,cAAc;AACjD;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,UAAQ;AACR,WAAS,EAAE,IAAI;AACf,iBAAe,IAAI;AACnB,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa;AACb,SAAO,IAAI;AACX,eAAa;AACb,cAAY;AAChB;AAEA,CAAC;AACG,SAAO;AACP,gBAAc,IAAI,EAAE;AACpB,iBAAe,IAAI;AACnB,YAAU;AACV,YAAU;AACd;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,WAAS,EAAE,IAAI;AACf,kBAAgB,IAAI;AACpB,iBAAe,IAAI,MAAM,IAAI;AACjC;AAEA,CATC,gBASgB;AACb,iBAAe;AACnB;AAEA,QAAO,WAAY;AACf,GAjTH;AAkTO,aAAS;AACb;AAEA,GAzRH;AA0RO,aAAS;AACT,oBAAgB;AAChB,SAAK,IAAI;AACb;AACJ;AAEA,QAAO,WAAY,YAAW,WAAY;AACtC,GA5OH;AA6OO,aAAS;AACT,2BAAuB,IAAI;AAC3B,SAAK,IAAI;AACb;AAEA,GAlPH,cAkPkB,CA5OlB,WA4O8B;AACvB,mBAAe;AACf,oBAAgB;AACpB;AAEA,GArCH;AAsCO,mBAAe;AACf,oBAAgB;AACpB;AAEA,GA1EH;AA2EO,mBAAe;AACf,oBAAgB;AACpB;AACJ;AAEA,QAAO,WAAY;AACf,GAAC;AACG,WAAO;AACP,YAAQ;AACZ;AAEA,GAlJH;AAmJO,SAAK,IAAI;AACb;AACJ;;;AC5WA,CAAC;AACG,SAAO;AACP,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GATH;AAUO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,iBAAe,IAAI;AACvB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,WAAS;AACb;AAIA,CAAC;AACG,SAAO;AACX;AAEA,CAJC,eAIe,CAAC,cAAc,CAAC;AAC5B,eAAa;AACb,iBAAe;AACf,kBAAgB;AAChB,aAAW;AACX,OAAK,IAAI;AACb;AAEA,CAZC,eAYe,CAAC;AACb,SAAO;AACP,UAAQ;AACR,QAAM,EAAE,EAAE;AACV,gBAAc,GAAG,EAAE;AACvB;AAEA,CAnBC,eAmBe,CAAC;AACb,QAAM,EAAE,EAAE;AACd;AAEA,CAvBC,eAuBe,CAAC;AACb,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACrB;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB,OAAO,CAAC,EAAE;AACjC,OAAK,IAAI;AACb;AAIA,CAAC;AACG,kBAAgB,IAAI;AACpB,iBAAe,IAAI,MAAM,IAAI;AACjC;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,cAAY,IAAI;AACpB;AAEA,CAAC;AACG,kBAAgB,IAAI;AACpB,iBAAe,IAAI,MAAM,IAAI;AACjC;AAEA,CALC,iBAKiB;AACd,iBAAe;AACf,kBAAgB;AACpB;AAEA,CAVC,kBAUkB,CAzDF,cAyDiB,CAzDF;AA0D5B,iBAAe;AACf,kBAAgB;AACpB;AAEA,QAAO,WAAY;AACf,GA/EH;AAgFO,aAAS;AACb;AAEA,GA7EH;AA8EO,aAAS;AACT,oBAAgB;AACpB;AACJ;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB,IAAI,IAAI;AAC/B,OAAK,IAAI;AACb;AAEA,CAAC;AACG,WAAS;AACb;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,kBAAgB,IAAI;AACpB,iBAAe,IAAI,MAAM,IAAI;AACjC;AAEA,CALC,eAKe;AACZ,iBAAe;AACf,kBAAgB;AACpB;AAEA,CAVC,gBAUgB,CArGA,cAqGe,CArGA;AAsG5B,iBAAe;AACf,kBAAgB;AACpB;AAIA,CAAC;AACG,WAAS;AACb;AAEA,CAAC;AACG,WAAS;AACT,OAAK,IAAI;AACT,cAAY;AACZ,oBAAkB,EAAE;AACpB,8BAA4B;AAC5B,WAAS,EAAE,IAAI;AACf,kBAAgB,IAAI;AACpB,UAAQ,EAAE,KAAK,IAAI,cAAc,EAAE;AACvC;AAEA,CAXC,eAWe;AACZ,WAAS;AACb;AAEA,CAAC;AACG,QAAM,EAAE,EAAE;AACV,qBAAmB;AACvB;AAEA,QAAO,WAAY;AACf,GAzBH;AA0BO,aAAS;AACb;AACJ;;;ACxKA;AACI,YAAU,IAAI;AACd,cAAY,IAAI;AAEhB,mBAAiB;AAEjB,wBAAsB,IAAI;AAC1B,uBAAqB,IAAI;AAGzB,kBAAgB;AAEhB,qBAAmB,IAAI;AAEvB,oBAAkB;AAClB,kBAAgB;AAChB,sBAAoB,IAAI;AAExB,mBAAiB,IAAI;AACrB,iBAAe,IAAI;AAEnB,2BAAyB;AAEzB,sBAAoB;AAEpB,wBAAsB,IAAI;AAC1B,0BAAwB,IAAI;AAC5B,uBAAqB,IAAI;AAEzB,sBAAoB,IAAI;AACxB,oBAAkB,IAAI;AACtB,kBAAgB;AAChB,0BAAwB;AAC5B;AAEA,QAAO,WAAY;AACf;AACI,sBAAkB;AAElB,oBAAgB;AAEhB,yBAAqB,IAAI;AAE7B;AACJ;AAKA,QAAO,WAAY;AACf;AACI,0BAAsB,IAAI;AAC1B,yBAAqB,IAAI;AAC7B;AACJ;AAEA,QAAO,WAAY;AACf;AACI,yBAAqB,IAAI;AAE7B;AACJ;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,cAAY;AACZ,YAAU;AACd;AAIA,CAAC;AACG,SAAO;AACP,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,kBAAgB,IAAI;AACpB,cAAY;AAChB;AAMA,CAAC;AACG,YAAU;AACV,SAAO;AACP,iBAAe,IAAI;AACnB,cAAY;AAChB;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,YAAU;AACV,gBAAc;AAClB;AAEA,CAAC;AACG,WAAS;AACT,SAAO;AACP,uBAAqB;AACrB,8BAA4B,IAAI;AAChC,eAAa;AACjB;AAEA,CAAC;AACG,QAAM,EAAE,EAAE;AACV,aAAW;AACX,cAAY;AAChB;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB;AACvB,eAAa;AACb,OAAK,IAAI;AACb;AAEA,QAAO,WAAY;AACf,GARH;AASO,2BAAuB,OAAO;AAClC;AACJ;AAEA,CAAC;AACG,WAAS;AACb;AAEA,QAAO,WAAY;AACf,GALH;AAMO,aAAS;AACb;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,cAAY;AAChB;AAEA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,UAAQ;AACR,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,WAAS;AACT,aAAW;AACX,eAAa;AACb,OAAK,IAAI;AACb;AAIA,CAAC;AACG,YAAU;AACV,QAAM;AACN,UAAQ,IAAI;AACZ,WAAS;AACT,eAAa;AACb,OAAK;AACT;AAEA,CAAC;AACG,cAAY;AACZ,WAAS;AACT,UAAQ;AACR,UAAQ;AACR,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,iBAAe,IAAI;AACnB,oBAAkB,IAAI;AACtB,cAAY,MAAM,KAAK,IAAI,EAAE,iBAAiB,KAAK;AACvD;AAEA,CAAC;AACG,SAAO,IAAI;AACX,oBAAkB,IAAI;AAC1B;AAEA,CAjBC,QAiBQ;AACL,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AACpB;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,UAAQ,IAAI;AACZ,WAAS;AACT,eAAa;AACb,OAAK;AACT;AAEA,CAAC;AACG,cAAY;AACZ,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,iBAAe,IAAI;AACnB,UAAQ,IAAI,MAAM,IAAI;AACtB,oBAAkB;AAClB,SAAO,IAAI;AACX,UAAQ;AACR,cAAY,iBAAiB,KAAK;AACtC;AAEA,CAfC,UAeU;AACP,oBAAkB,IAAI;AAC1B;AAEA,CAnBC,WAmBW;AACR,SAAO;AACP,UAAQ;AACZ;AAKA,QAAO,WAAY;AACf,GArCH;AAsCO,aAAS;AACb;AACJ;;;AC/OA;AACI,WAAS,IAAI;AACb,kBAAgB,IAAI;AAEpB,oBAAkB,IAAI;AAEtB,yBAAuB,IAAI;AAC3B,4BAA0B,IAAI;AAE9B,mBAAiB;AAEjB,iBAAe;AAEf,mBAAiB,IAAI;AACrB,mBAAiB,IAAI;AACzB;AAIA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,cAAY;AAChB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAZH;AAaO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GAlBH;AAmBO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,UAAQ;AACR,SAAO;AACP,cAAY;AACZ,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,QAAO,WAAY;AACf,GAZH;AAaO,gBAAY;AAChB;AACJ;AAIA,CAAC;AACG,WAAS;AACT,SAAO;AACP,aAAW;AACX,eAAa;AACb,mBAAiB;AACjB,WAAS,IAAI;AACb,cAAY,IAAI;AACpB;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,aAAS;AACb;AACJ;AAIA,CAAC;AACG,WAAS;AACT,SAAO;AACP,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAPH;AAQO,aAAS;AACb;AACJ;AAIA,CAAC;AACG,WAAS;AACT,SAAO;AACX;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,iBAAe,IAAI;AACvB;AAMA,CAAC;AACG,aAAW,WAAW,IAAI,aAAa,EAAE,KAAK,OAAO;AACzD;AAEA,CAJC,eAIe;AAChB,CALC,eAKe;AACZ,wBAAsB;AAC1B;AAEA,WARe;AASX;AACI,eAAW,WAAW;AAC1B;AAEA;AACI,eAAW,WAAW;AAC1B;AACJ;AAEA,QAAO,wBAAyB;AAC5B,GAlDH;AAmDO,gBAAY;AACZ,gCAA4B;AAChC;AAEA,GAzBH;AA0BO,eAAW;AACf;AACJ;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,OAAK,IAAI;AACT,aAAW;AACf;AAOA,CA7FC,SA6FS,CAbT;AAcG,QAAM,EAAE,EAAE,IAAI;AACd,aAAW,IAAI;AACnB;AAIA,CA/DC,gBA+DgB,CApBhB;AAqBG,QAAM,EAAE,EAAE,IAAI;AAClB;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,cAAY;AACZ,aAAW;AACf;AAEA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAIA,CAAC;AACG,eAAa;AACb,SAAO;AACP,UAAQ;AACR,WAAS;AACT,eAAa;AACjB;;;AClPA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAZH;AAaO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GAlBH;AAmBO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,cAAY;AACZ,UAAQ;AACZ;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB;AACvB,OAAK,IAAI;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GARH;AASO,2BAAuB,OAAO,CAAC,EAAE;AACrC;AACJ;AAEA,QAAO,WAAY;AACf,GAdH;AAeO,2BAAuB,OAAO,CAAC,EAAE;AACrC;AACJ;AAIA,CAAC;AACG,WAAS;AACT,SAAO;AACP,mBAAiB;AACjB,iBAAe,IAAI;AACvB;AAEA,CAAC;AACG,SAAO;AACP,WAAS;AACT,cAAY;AACZ,UAAQ;AACR,cAAY;AACZ,UAAQ;AACR,QAAM;AACV;AAEA,CAjBC,WAiBW;AACR,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AACpB;AAIA,CAAC;AACG,WAAS;AACT,mBAAiB;AACrB;;;AC5FA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAZH;AAaO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GAlBH;AAmBO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,cAAY;AACZ,UAAQ;AACZ;AAIA,CAAC;AACG,SAAO;AACP,aAAW;AACf;AAEA,QAAO,WAAY;AACf,GANH;AASO,eAAW;AACf;AACJ;AAIA,CAAC;AACG,WAAS;AACT,mBAAiB;AACjB,SAAO;AACP,aAAW;AACf;AAEA,CAPC,aAOa,CAAC;AACX,mBAAiB;AACjB,gBAAc,IAAI;AAClB,iBAAe,IAAI;AACnB,eAAa,KAAK,IAAI,cAAc,EAAE;AACtC,gBAAc,KAAK,IAAI,cAAc,EAAE;AACvC,SAAO,KAAK,KAAK,EAAE,IAAI;AAC3B;AAEA,QAAO,WAAY;AACf,GAjBH,aAiBiB,CAVH;AAWP,eAAW;AACX,kBAAc;AACd,mBAAe;AACf,iBAAa;AACb,kBAAc;AACd,WAAO;AACX;AACJ;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB;AACvB,OAAK,IAAI;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GARH;AASO,2BAAuB,OAAO,CAAC,EAAE;AACrC;AACJ;AAEA,QAAO,WAAY;AACf,GAdH;AAeO,2BAAuB,OAAO,CAAC,EAAE;AACrC;AACJ;AAIA,CAAC;AACG,WAAS;AACT,SAAO;AACP,mBAAiB;AACjB,iBAAe,IAAI;AACvB;AAEA,CAAC;AACG,SAAO;AACP,WAAS;AACT,cAAY;AACZ,UAAQ;AACR,cAAY;AACZ,UAAQ;AACR,QAAM;AACV;AAEA,CAjBC,YAiBY;AACT,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AACpB;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,cAAY;AACZ,UAAQ;AACR,WAAS,IAAI,cAAc;AAC/B;;;AC9IA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GAjBH;AAkBO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GATH;AAUO,iBAAa;AACb,gBAAY;AAChB;AACJ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,aAAW;AACf;AASA,CAAC;AACG,WAAS;AACT,yBAAuB;AACvB,OAAK,IAAI;AACT,SAAO;AACP,cAAY;AACZ,UAAQ;AACR,WAAS;AACb;AAEA,QAAO,WAAY;AACf,GAAC;AAAA,EACD,CAAC;AACG,2BAAuB,OAAO,CAAC,EAAE;AACjC,SAAK,IAAI;AACb;AACJ;AAEA,QAAO,WAAY;AACf,GAPC;AAQG,2BAAuB,OAAO,CAAC,EAAE;AACrC;AACJ;AAEA,CAAC;AACG,WAAS;AACT,aAAW;AACf;AAIA,CAAC;AACG,WAAS;AACT,QAAM;AACN,kBAAgB;AAChB,eAAa;AAGb,mBAAiB;AACjB,OAAK,IAAI;AACT,SAAO;AACP,aAAW;AACX,cAAY,KAAK,KAAK,EAAE,IAAI;AAC5B,cAAY;AACZ,WAAS,IAAI;AACb,oBAAkB,IAAI;AACtB,UAAQ;AACR,iBAAe,IAAI;AACnB,cAAY;AACZ,mBAAiB;AACjB,UAAQ;AACR,QAAM;AACN,SAAO;AACP,cAAY,UAAU,KAAK;AAC/B;AAEA,QAAO,WAAY;AACf,GA1BH;AA2BO,SAAK,IAAI;AACT,aAAS,IAAI;AACb,gBAAY,KAAK,KAAK,EAAE,IAAI;AAChC;AACJ;AAEA,QAAO,WAAY;AACf,GAlCH;AAmCO,gBAAY,KAAK,GAAG,EAAE,IAAI;AAC9B;AACJ;AAEA,CAvCC,QAuCQ;AACL,aAAW,MAAM;AACrB;AAEA,CA3CC,QA2CQ;AACL,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AACpB;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,eAAa;AACjB;AAEA,CAAC;AACG,WAAS;AACT,SAAO;AACP,UAAQ;AACR,cAAY;AAChB;AAEA,CAAC;AACG,aAAW;AACX,SAAO;AACP,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,iBAAe;AACnB;;;AChLA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAZH;AAaO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GAlBH;AAmBO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,cAAY;AACZ,UAAQ;AACR,SAAO;AACX;AAIA,CAAC;AACG,SAAO;AACP,aAAW,IAAI;AACnB;AAEA,CALC,gBAKgB,EAAE;AACf,SAAO;AACX;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB;AACvB,OAAK,IAAI;AACT,SAAO;AACP,cAAY;AACZ,UAAQ;AACR,WAAS;AACb;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,2BAAuB,OAAO,CAAC,EAAE;AACjC,SAAK,IAAI;AACb;AACJ;AAEA,QAAO,WAAY;AACf,GAlBH;AAmBO,2BAAuB,OAAO,CAAC,EAAE;AACrC;AACJ;AAEA,CAAC;AACG,WAAS;AACT,aAAW;AACf;AAIA,CAAC;AACG,WAAS;AACT,QAAM;AACN,eAAa;AACb,SAAO;AACP,aAAW;AACX,cAAY;AACZ,WAAS,IAAI;AACb,oBAAkB,IAAI;AACtB,UAAQ;AACR,iBAAe,IAAI;AACnB,cAAY;AACZ,mBAAiB;AACjB,UAAQ;AACR,QAAM;AACN,SAAO;AACP,cAAY,UAAU,KAAK;AAC/B;AAEA,CAnBC,SAmBS;AACN,aAAW,MAAM;AACrB;AAEA,CAvBC,SAuBS;AACN,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AACpB;AAEA,CAAC;AACG,aAAW;AACX,SAAO;AACP,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,iBAAe;AACnB;AAIA,CAAC;AACG,SAAO;AACP,WAAS,IAAI,cAAc;AAC3B,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,cAAY;AACZ,UAAQ;AACZ;;;AC1HA;AACI,mBAAiB,IAAI;AAErB,uBAAqB;AACrB,0BAAwB;AAExB,iBAAe,IAAI;AACnB,qBAAmB,IAAI;AACvB,uBAAqB,IAAI;AACzB,oBAAkB,IAAI;AACtB,qBAAmB,IAAI;AAC3B;AAIA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GAjBH;AAkBO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAMA,CAAC;AACG,SAAO;AACX;AAEA,CAJC,eAIe,EAAE;AACd,SAAO;AACX;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GATH;AAUO,oBAAgB;AAChB,SAAK,IAAI;AACb;AACJ;AAIA,CAAC;AACG,WAAS;AACT,SAAO;AACP,eAAa;AACjB;AAEA,QAAO,WAAY;AACf,GAPH;AAQO,aAAS;AACT,WAAO,IAAI;AACf;AACJ;AAEA,QAAO,WAAY;AACf,GAdH;AAeO,WAAO,IAAI;AACf;AACJ;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,SAAO;AACP,cAAY;AACZ,WAAS,IAAI;AACb,oBAAkB,IAAI;AACtB,UAAQ,IAAI,MAAM,IAAI;AACtB,iBAAe,IAAI;AAEnB,YAAU;AACV,OAAK,IAAI;AACb;AAEA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,SAAO;AACP,cAAY;AACZ,UAAQ;AACR,WAAS;AACb;AAEA,CAAC;AACG,WAAS;AACT,aAAW;AACf;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,SAAO;AACP,aAAW;AACX,cAAY;AACZ,WAAS,IAAI,cAAc,IAAI;AAC/B,oBAAkB;AAClB,UAAQ;AACR,iBAAe,IAAI;AACnB,cAAY;AACZ,mBAAiB;AACjB,UAAQ;AACR,QAAM;AACN,SAAO;AACP,cAAY,iBAAiB,MAAM;AACvC;AAEA,CA3DC,gBA2DgB,CAlBhB,OAkBwB;AACrB,oBAAkB,IAAI;AAC1B;AAEA,CAAC;AACG,oBAAkB,IAAI;AAC1B;AAEA,CA1BC,OA0BO;AACJ,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AACpB;AAEA,CAAC;AACG,aAAW;AACX,SAAO;AACP,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,iBAAe;AACnB;AAEA,CApBC,gBAoBgB,CAXhB;AAYG,eAAa,IAAI;AACrB;AAMA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,OAAK,IAAI;AACT,SAAO;AACP,cAAY;AACZ,WAAS,IAAI,cAAc,IAAI;AAC/B,oBAAkB,IAAI;AACtB,UAAQ;AACR,iBAAe,IAAI;AACnB,UAAQ;AACR,QAAM;AACN,SAAO,IAAI;AACX,cAAY,iBAAiB,MAAM;AACvC;AAEA,CAjBC,gBAiBgB;AACb,oBAAkB,IAAI;AAC1B;AAEA,CArBC,gBAqBgB;AACb,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AACpB;AAEA,QAAO,WAAY;AACf,GA3BH;AA4BO,aAAS;AACb;AACJ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACrB;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,eAAa;AACb,mBAAiB;AACjB,SAAO,IAAI;AACf;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,QAAM,EAAE,EAAE;AACV,aAAW;AACf;AAEA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,aAAW;AACf;AAEA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,iBAAe;AACnB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,UAAQ;AACR,gBAAc,IAAI;AACtB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,iBAAe;AACnB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,cAAY;AACZ,UAAQ;AACR,WAAS,IAAI,aAAa,IAAI,cAAc,IAAI;AACpD;AAEA,CAAC;AACG,WAAS;AACT,aAAW;AACf;AAEA,CALC,cAKc,CAhLd;AAiLG,WAAS,IAAI,cAAc,IAAI;AAC/B,iBAAe,IAAI;AACvB;AAEA,CAVC,cAUc,CArLd,OAqLsB;AACnB,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,SAAO;AACP,WAAS,IAAI,cAAc,IAAI;AAC/B,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,cAAY;AACZ,UAAQ;AACZ;;;ACrUA;AACI,mBAAiB,IAAI;AACrB,uBAAqB;AACrB,kBAAgB,IAAI;AAEpB,qBAAmB,IAAI;AACvB,uBAAqB,IAAI;AACzB,oBAAkB,IAAI;AACtB,qBAAmB,IAAI;AAC3B;AAIA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GAjBH;AAkBO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAMA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GAPH;AAQO,oBAAgB;AAKhB,iBAAa;AACb,SAAK,IAAI;AACb;AACJ;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,SAAO;AACP,aAAW;AACf;AAEA,QAAO,WAAY;AACf,GATH;AAUO,UAAM,EAAE,EAAE;AACd;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACX;AAEA,CAAC;AACG,UAAQ;AAMR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACpB,SAAO,IAAI;AACX,iBAAe;AACnB;AAEA,CAAC;AACG,WAAS;AACT,aAAW;AACX,eAAa;AACb,OAAK,IAAI;AACb;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,iBAAe,IAAI;AACnB,cAAY;AACZ,eAAa;AACjB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAGA,CAAC;AACG,WAAS;AACT,eAAa;AACb,cAAY;AACZ,WAAS,IAAI,aAAa,IAAI;AAC9B,oBAAkB,IAAI;AACtB,iBAAe,IAAI;AACnB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,eAAa;AACjB;AAIA,CAAC;AACG,SAAO;AACP,iBAAe,IAAI;AACnB,YAAU;AACd;AAEA,CAAC;AACG,WAAS;AACT,SAAO;AACP,UAAQ;AACR,cAAY;AAChB;AAMA,CAAC;AACG,WAAS;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GANH;AAOO,aAAS;AACb;AACJ;AAMA,CAAC;AACG,WAAS;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GANH;AAOO,aAAS;AACb;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,SAAO;AACP,aAAW;AACf;AAEA,CAAC;AACG,UAAQ,IAAI,aAAa,EAAE;AAC3B,qBAAmB,IAAI;AAGvB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAKA,CAAC;AACG,cAAY;AAChB;AAEA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,iBAAe;AACnB;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,UAAQ;AACR,gBAAc,IAAI;AACtB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,iBAAe;AACnB;AAMA,CAAC;AACG,UAAQ;AACZ;AAEA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,WAAS;AACT,cAAY,IAAI;AAChB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,cAAY;AACZ,SAAO,IAAI;AACf;AAEA,CAAC;AACG,UAAQ;AACR,SAAO;AACX;AAOA,CAAC;AACG,SAAO;AACX;AAEA,CAAC;AACG,WAAS;AACT,SAAO;AACP,UAAQ;AACR,iBAAe,IAAI;AACnB,cAAY;AAChB;AAEA,CAAC;AACG,cAAY,IAAI;AAChB,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,cAAY;AAChB;AAQA,CAAC;AACG,WAAS;AACT,SAAO;AACP,eAAa;AACjB;AAEA,QAAO,WAAY;AACf,GAPH;AAQO,aAAS;AACT,WAAO,IAAI;AACf;AACJ;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,YAAU;AACV,OAAK,IAAI;AACb;AAOA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,SAAO;AACP,cAAY;AAMZ,kBAAgB,IAAI;AACpB,iBAAe,IAAI,MAAM,IAAI;AACjC;AAEA,QAAO,WAAY;AACf,GAzCH,YAyCgB,CAfhB;AAgBO,aAAS,IAAI;AACb,YAAQ,IAAI,MAAM,IAAI;AACtB,mBAAe,IAAI;AACnB,mBAAe,IAAI,MAAM,IAAI;AACjC;AACJ;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,OAAK,IAAI;AACT,SAAO;AACP,cAAY;AACZ,SAAO,IAAI;AACf;AAEA,CAAC;AACG,cAAY;AACZ,cAAY;AACZ,UAAQ;AACR,WAAS;AACT,UAAQ;AACR,QAAM;AACN,cAAY;AAChB;AAEA,CAVC,qBAUqB;AAClB,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AACpB;AAEA,CAAC;AAGG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,eAAa;AACb,mBAAiB;AACjB,SAAO;AACP,UAAQ;AACR,SAAO,IAAI;AACX,cAAY,UAAU,KAAK;AAC/B;AAEA,CAAC;AACG,aAAW,OAAO;AACtB;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,UAAQ,IAAI,cAAc,EAAE;AAC5B,WAAS;AACT,cAAY;AAChB;AAEA,CAAC;AACG,WAAS;AACT,aAAW;AACf;AAEA,CAAC;AACG,WAAS;AACT,SAAO;AACP,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,mBAAiB;AACjB,iBAAe;AACf,cAAY,MAAM,MAAM;AAC5B;AAEA,CAbC,WAaW;AACR,SAAO,IAAI;AACf;AAEA,CAjBC,WAiBW;AACR,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AAChB,iBAAe,IAAI;AACvB;AAEA,CAAC;AACG,SAAO,IAAI;AACX,eAAa,IAAI;AACrB;AAOA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,SAAO;AACP,cAAY;AACZ,WAAS,IAAI;AACb,oBAAkB,IAAI;AACtB,iBAAe,IAAI;AACvB;AAEA,CAAC;AAIG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACb;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AAEjB,SAAO;AACP,UAAQ;AACR,eAAa;AACb,WAAS;AACT,cAAY;AACZ,UAAQ;AACR,SAAO,IAAI;AACX,mBAAiB;AACjB,UAAQ;AACR,WAAS;AACT,cAAY,QAAQ,MAAM;AAC9B;AAEA,CAlBC,aAkBa;AACV,WAAS;AACb;AAEA,CAtBC,aAsBa;AACV,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AAChB,iBAAe,IAAI;AACvB;AAEA,CAAC;AACG,WAAS;AACT,SAAO;AACP,UAAQ;AACR,cAAY;AAChB;;;ACrgBA,CAAC;AACG,SAAO;AACP,eAAa,IAAI;AACjB,cAAY;AACZ,WAAS,IAAI,cAAc,IAAI;AACnC;AAEA,QAAO,WAAY;AACf,GARH;AASO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GAdH;AAeO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,aAAW,IAAI;AACf,UAAQ,EAAE;AACd;AAIA,CAAC;AACG,YAAU;AACV,WAAS;AACT,kBAAgB;AAChB,iBAAe,IAAI;AACnB,YAAU;AACV,oBAAkB,IAAI;AACtB,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,oBAAgB;AAChB,iBAAa;AACjB;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,mBAAiB;AACjB,eAAa;AACb,cAAY;AACZ,OAAK,IAAI;AACT,WAAS,IAAI,cAAc,IAAI;AAC/B,SAAO;AACP,cAAY;AACZ,YAAU;AACV,WAAS;AACb;AAEA,QAAO,WAAY;AACf,GAfH;AAgBO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GArBH;AAsBO,WAAO;AACP,UAAM,EAAE,EAAE;AACV,SAAK,IAAI;AACT,aAAS,IAAI,cAAc,IAAI;AAC/B,qBAAiB;AACrB;AACJ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,aAAW;AACf;AAIA,CAAC;AACG,WAAS;AACT,eAAa;AACb,eAAa,IAAI;AACrB;AAIA,CAAC;AACG,YAAU;AACV,SAAO;AACP,gBAAc,EAAE,EAAE;AAClB,YAAU;AACV,eAAa;AACjB;AAEA,QAAO,WAAY;AACf,GATH;AAUO,WAAO;AACP,UAAM,EAAE,EAAE;AACV,kBAAc;AAClB;AACJ;AAQA,CAAC;AACG,YAAU;AACV,QAAM;AACN,OAAK;AACL,SAAO;AACP,UAAQ,KAAK,KAAK,EAAE;AACpB,cAAY;AACZ,mBAAiB,OAAO;AACxB,WAAS;AACT,eAAa;AACjB;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB;AACvB,OAAK,IAAI;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GARH;AASO,2BAAuB,OAAO,CAAC,EAAE;AACjC,SAAK,IAAI;AACb;AACJ;AAEA,QAAO,WAAY;AACf,GAfH;AAgBO,2BAAuB,OAAO,CAAC,EAAE;AACjC,SAAK,IAAI;AACb;AACJ;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,oBAAkB,IAAI;AACtB,iBAAe,IAAI;AACnB,WAAS,IAAI;AACb,cAAY;AAChB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,QAAO,wBAAyB;AAC5B,GAlEH;AAmEO,eAAW;AACf;AACJ;;;ACxOA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AAC1B;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GAjBH;AAkBO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB;AACvB,OAAK,IAAI;AACT,SAAO;AACP,eAAa;AACb,cAAY,IAAI;AAChB,iBAAe,IAAI;AACnB,WAAS,IAAI;AACb,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAbH;AAcO,2BAAuB,IAAI;AAC3B,aAAS,IAAI;AACjB;AACJ;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,aAAW;AACf;AAMA,CAAC;AACG,cAAY,IAAI;AAChB,iBAAe,IAAI;AACnB,WAAS,IAAI;AACjB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,YAAU;AACV,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACb;AAQA,CAAC;AACG,SAAO,IAAI;AACf;AAIA,CAAC,kBAAkB,CAAC;AACpB,CApBC,YAoBY,CAAC;AACV,aAAW,IAAI;AACf,eAAa,IAAI;AACrB;AAIA,CARC,kBAQkB,CARC,QAQQ,CAAC,YAAc;AAC3C,CATC,kBASkB,CATC,QASQ,CAAC,YAAc;AACvC,sBAAoB;AACpB,UAAQ;AACZ;AACA,CAbC,kBAakB,CAbC,QAaQ,CAAC;AACzB,cAAY;AAChB;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,cAAY;AACZ,UAAQ;AACR,WAAS;AACT,QAAM;AACN,SAAO;AACP,mBAAiB;AACjB,UAAQ;AACZ;AAEA,CAAC;AACG,cAAY,IAAI;AAChB,iBAAe,IAAI;AACnB,WAAS,IAAI,aAAa,IAAI;AAClC;AAQA,CAAC;AACG,YAAU;AACV,OAAK,KAAK,KAAK,EAAE,IAAI;AACrB,QAAM;AACN,SAAO;AACP,WAAS;AACT,cAAY;AACZ,cAAY;AACZ,cAAY,IAAI;AAChB,iBAAe,IAAI;AACnB,cAAY,IAAI;AACpB;AAEA,CAAC;AACG,WAAS,IAAI;AACb,eAAa,IAAI;AACjB,aAAW;AACX,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,WAAS,IAAI;AACb,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,WAAS,IAAI,cAAc,IAAI,cAAc,IAAI;AACjD,iBAAe,IAAI,MAAM,IAAI;AAC7B,UAAQ;AACZ;AAEA,CAAC,mBAAmB,YAAY,CAR/B,oBAQoD;AACjD,iBAAe;AACnB;AAEA,CAZC,oBAYoB;AACjB,cAAY,IAAI;AACpB;AAEA,CAAC;AACG,cAAY,IAAI;AACpB;AAEA,CAAC;AACD,CAAC;AACG,eAAa,IAAI;AACjB,aAAW;AACX,eAAa;AACb,UAAQ,EAAE,EAAE;AACZ,YAAU;AACV,iBAAe;AACf,eAAa;AACjB;AAEA,CAXC;AAYG,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAfC;AAgBG,SAAO,IAAI;AACf;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB,IAAI;AAC3B,OAAK,IAAI,aAAa,IAAI;AAC9B;AAEA,QAAO,WAAY;AACf,GAPH;AAQO,2BAAuB;AAC3B;AACJ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,SAAO,IAAI;AACX,UAAQ;AACR,YAAU;AACV,iBAAe;AACf,eAAa;AACjB;AAEA,CAAC;AACG,SAAO,IAAI;AACf;AAEA,CAAC;AACG,SAAO,IAAI;AACX,eAAa,IAAI;AACrB;AAOA,CAAC;AACG,WAAS;AACT,OAAK,IAAI;AACT,cAAY,IAAI;AACpB;AAEA,CANC,cAMc,EAAE;AACb,QAAM,EAAE,EAAE;AACV,aAAW;AACf;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB,IAAI;AAC3B,OAAK,IAAI;AACb;AAEA,QAAO,WAAY;AACf,GAPH;AAQO,2BAAuB;AAC3B;AACJ;AAEA,CAAC;AACG,cAAY,IAAI;AAChB,UAAQ,IAAI,MAAM,IAAI;AACtB,iBAAe,IAAI;AACnB,cAAY,IAAI;AAChB,WAAS,IAAI,cAAc,IAAI;AAC/B,aAAW;AACf;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,SAAO,IAAI;AACX,UAAQ,EAAE,EAAE,IAAI;AACpB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,YAAU;AACV,iBAAe;AACf,eAAa;AACjB;;;AC9SA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AAC1B;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAZH;AAaO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GAlBH;AAmBO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,aAAW;AACX,cAAY;AAChB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAKA,CAAC;AACG,mBAAiB;AACrB;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB;AACvB,OAAK,IAAI;AACT,SAAO;AACP,eAAa;AACb,cAAY,IAAI;AAChB,iBAAe,IAAI;AACnB,cAAY,IAAI;AAChB,WAAS,IAAI;AACb,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAdH;AAeO,2BAAuB,IAAI;AAC3B,aAAS,IAAI;AACjB;AACJ;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,aAAW;AACf;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,cAAY;AACZ,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,UAAQ;AACR,WAAS,EAAE,EAAE,EAAE,IAAI;AACvB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,cAAY;AACZ,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ,IAAI,aAAa,EAAE;AAC/B;AAcA,CAAC;AACG,SAAO;AACP,YAAU;AACd;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,sBAAoB,KAAK;AACzB,cAAY,IAAI;AAChB,WAAS,IAAI;AACb,cAAY,IAAI;AAChB,iBAAe,IAAI;AACnB,WAAS,IAAI;AACb,cAAY;AACZ,oBAAkB,KAAK;AAC3B;AAEA,CAAC;AAIG,gBAAc;AACd,cAAY;AACZ,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,SAAO,IAAI;AACX,eAAa;AACjB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAEA,CAAC;AASG,WAAS;AACT,cAAY;AAChB;AAEA,CAAC;AAMG,aAAW;AACf;AAEA,CAAC;AACG,cAAY;AACZ,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,cAAY;AAChB;AAEA,CAAC;AACG,SAAO,IAAI;AACX,eAAa;AACjB;AAEA,CAAC;AAeG,YAAU;AACV,SAAO;AACP,YAAU;AACV,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,SAAO,IAAI;AACX,eAAa;AACjB;AAEA,CAAC;AACG,YAAU;AACV,QAAM;AACN,aAAW,WAAW;AAC1B;AAEA,CAAC;AAUG,SAAO;AACP,cAAY;AAChB;AAEA,CAdC,uBAcuB,CApBvB;AAqBG,YAAU;AACV,aAAW;AACf;;;AChRA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AAC1B;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAZH;AAaO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GAlBH;AAmBO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,cAAY;AACZ,UAAQ;AACZ;AAIA,CAAC;AACG,WAAS;AACT,mBAAiB;AACjB,SAAO;AACP,aAAW;AACf;AAEA,CAPC,YAOY,CAAC;AACV,mBAAiB;AACjB,aAAW;AACX,cAAY;AAChB;AAIA,CAAC;AACG,WAAS;AACT,yBAAuB;AACvB,OAAK,IAAI;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GARH;AASO,2BAAuB,OAAO,CAAC,EAAE;AACrC;AACJ;AAEA,QAAO,WAAY;AACf,GAdH;AAeO,2BAAuB,OAAO,CAAC,EAAE;AACrC;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,oBAAkB,IAAI;AACtB,iBAAe,IAAI;AACnB,WAAS,IAAI;AACb,cAAY;AACZ,UAAQ;AACZ;AAEA,CAAC;AACG,WAAS;AACT,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,iBAAe,IAAI;AACnB,cAAY,EAAE,EAAE,EAAE,IAAI,IAAI;AAC1B,iBAAe,IAAI;AACvB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ,EAAE,EAAE,IAAI,aAAa;AACjC;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,cAAY,IAAI;AACpB;;;ACzFA;AACI,cAAY,IAAI;AAChB,uBAAqB,IAAI;AACzB,sBAAoB,IAAI;AACxB,oBAAkB,IAAI;AACtB,wBAAsB,IAAI;AAC1B,sBAAoB,IAAI;AACxB,wBAAsB,IAAI;AAC1B,mBAAiB,IAAI;AACrB,uBAAqB,IAAI;AACzB,4BAA0B,IAAI;AAC9B,2BAAyB,IAAI;AAC7B,6BAA2B,IAAI;AAC/B,qBAAmB,IAAI;AAGvB,uBAAqB,IAAI;AACzB,uBAAqB,IAAI;AACzB,qBAAmB,IAAI;AACvB,yBAAuB,IAAI;AAC3B,qBAAmB,IAAI;AAC3B;AAIA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,cAAY;AAChB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAZH;AAaO,iBAAa;AACb,SAAK,IAAI;AACT,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GApBH;AAqBO,SAAK,IAAI;AACT,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,cAAY;AACZ,aAAW;AACX,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,iBAAa;AACb,gBAAY;AAChB;AACJ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,cAAY;AACZ,UAAQ;AACR,WAAS;AACT,WAAS;AACT,yBAAuB;AACvB,OAAK,IAAI;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,2BAAuB,OAAO,CAAC,EAAE;AACjC,SAAK,IAAI;AACb;AACJ;AAEA,QAAO,WAAY;AACf,GAlBH;AAmBO,2BAAuB,OAAO,CAAC,EAAE;AACjC,SAAK,IAAI;AACb;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,aAAW;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACP,UAAQ;AACR,WAAS,IAAI;AACb,oBAAkB,IAAI;AACtB,iBAAe,IAAI;AACnB,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAdH;AAeO,iBAAa;AACb,SAAK,IAAI;AACT,aAAS,EAAE,EAAE,IAAI,cAAc;AAC/B,sBAAkB;AAClB,mBAAe;AACnB;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,mBAAiB;AACjB,SAAO;AACP,eAAa;AACjB;AAEA,QAAO,WAAY;AACf,GAVH;AAWO,qBAAiB;AACjB,WAAO;AACX;AACJ;AAEA,QAAO,WAAY;AAIf,GApBH;AAqBO,WAAO,KAAK,KAAK,EAAE,IAAI;AACvB,iBAAa,KAAK,IAAI,cAAc,EAAE;AACtC,kBAAc,KAAK,IAAI,cAAc,EAAE;AAC3C;AACJ;AAEA,CAAC;AACG,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,eAAa;AACb,YAAU;AACV,WAAS;AACb;AAEA,QAAO,WAAY;AACf,GAZH;AAaO,uBAAmB,IAAI;AACvB,WAAO,IAAI;AACX,YAAQ,IAAI;AAEZ,sBAAkB,IAAI;AACtB,mBAAe,IAAI;AACvB;AACJ;AAEA,CAAC;AACG,WAAS;AACT,SAAO;AACP,UAAQ;AACR,cAAY;AAChB;AAIA,CAAC;AACG,WAAS;AACT,QAAM,EAAE,EAAE;AACV,UAAQ;AACR,aAAW;AACX,kBAAgB;AACpB;AAEA,QAAO,WAAY;AACf,GATH;AAUO,aAAS;AACb;AACJ;AAKA,CAAC,oBAAoB,CAAC;AAClB;AAAA,IAAkB;AAAA,MACd,MAAM;AAAA,MACN,IAAI,oBAAoB;AAAA,MACxB,IAAI;AAEZ;AAEA,CARC,oBAQoB,CAAC;AAClB,oBAAkB,IAAI;AAC1B;AAEA,CAAC,oBAAoB,CAZC;AAalB;AAAA,IAAkB;AAAA,MACd,KAAK;AAAA,MACL,IAAI,oBAAoB;AAAA,MACxB,IAAI,qBAAqB;AAEjC;AAEA,CARC,oBAQoB,CAZC;AAalB,oBAAkB,IAAI;AAC1B;AAEA,CAAC,kBAAkB,CAxBG;AAyBlB;AAAA,IAAkB;AAAA,MACd,KAAK;AAAA,MACL,IAAI,oBAAoB;AAAA,MACxB,IAAI;AAEZ;AAEA,CARC,kBAQkB,CAxBG;AAyBlB,oBAAkB,IAAI;AAC1B;AAEA,CAAC,sBAAsB,CApCD;AAqClB;AAAA,IAAkB;AAAA,MACd,KAAK;AAAA,MACL,IAAI,kBAAkB;AAAA,MACtB,IAAI,uBAAuB;AAEnC;AAEA,CARC,sBAQsB,CApCD;AAqClB;AAAA,IAAkB;AAAA,MACd,KAAK;AAAA,MACL,IAAI,sBAAsB;AAAA,MAC1B,IAAI;AAEZ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GATH;AAUO,oBAAgB;AAChB,iBAAa;AACb,gBAAY;AACZ,SAAK,IAAI;AACb;AACJ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACP,cAAY;AACZ,WAAS,IAAI;AACb,oBAAkB,IAAI;AACtB,iBAAe,IAAI;AACnB,cAAY;AACZ,cAAY;AACZ,QAAM,EAAE,EAAE;AACd;AAEA,QAAO,WAAY;AACf,GAhBH;AAiBO,qBAAiB,IAAI;AACrB,iBAAa;AACb,gBAAY;AACZ,gBAAY;AACZ,SAAK,IAAI;AACb;AACJ;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,SAAO;AACX;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,SAAO;AACX;AAEA,CAVC,wBAUwB;AACrB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAIA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACR,SAAO;AACP,cAAY;AACZ,eAAa;AACjB;AAEA,QAAO,WAAY;AACf,GAbH;AAcO,gBAAY;AACZ,aAAS,EAAE,IAAI;AACnB;AACJ;AAIA,CAAC;AACG,WAAS;AACT,mBAAiB;AACjB,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GAPH;AAQO,qBAAiB;AACrB;AACJ;;;ACnbA;AACI,wBAAsB,IAAI;AAC1B,0BAAwB,IAAI;AAC5B,4BAA0B,IAAI;AAC9B,iCAA+B,IAAI;AACvC;AAEA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AACtB,SAAO,IAAI;AACX,eAAa,IAAI;AACjB,cAAY;AAChB;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,cAAY;AACZ,YAAU;AACd;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACX;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACP,cAAY;AAChB;AAEA,CAAC;AACG,UAAQ;AACR,SAAO,IAAI;AACX,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACrB;AAEA,CAAC;AACD,CAAC;AACD,CAAC;AACG,UAAQ;AACR,SAAO,IAAI;AACX,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACrB;AAEA,CAAC;AACG,WAAS;AACT,yBAAuB;AACvB,OAAK,IAAI;AACT,SAAO;AACP,UAAQ;AACR,WAAS,IAAI,cAAc,EAAE;AAC7B,cAAY;AACZ,cAAY;AAChB;AAEA,CAAC;AACG,WAAS;AACT,aAAW;AACX,eAAa;AACb,mBAAiB;AACjB,OAAK,IAAI;AACT,WAAS,IAAI;AACb,UAAQ,IAAI,MAAM,IAAI;AACtB,iBAAe,IAAI;AACnB,cAAY;AAChB;AAIA,CAnCC;AAoCD,CAnCC;AAoCG,eAAa;AACb,eAAa;AACjB;AAEA,CAAC;AACG,WAAS;AACT,SAAO;AACP,aAAW;AACX,UAAQ;AACR,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAzFH;AA0FO,SAAK,IAAI;AACT,aAAS,IAAI,cAAc,IAAI;AACnC;AAEA,GAlFH;AAmFO,iBAAa;AACb,SAAK,IAAI;AACb;AAEA,GA/EH;AAgFO,iBAAa;AACb,gBAAY;AAChB;AAIA,GAzDH;AA0DO,2BAAuB,OAAO,CAAC,EAAE;AACjC,WAAO;AACP,eAAW;AACX,iBAAa;AACjB;AAEA,GArDH;AAsDO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GAvHH;AAwHO,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;;;AC3HA;AACI,uBAAqB,IAAI;AACzB,gCAA8B,IAAI;AAClC,+BAA6B,IAAI;AACjC,oCAAkC,IAAI;AACtC,iCAA+B,IAAI;AACvC;AAIA,CAAC;AACG,SAAO;AACP,oBAAkB,IAAI;AACtB,eAAa,IAAI;AACjB,cAAY;AAChB;AAIA,CAAC;AACG,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,cAAY;AAChB;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,aAAS,IAAI,cAAc,IAAI;AACnC;AACJ;AAEA,QAAO,WAAY;AACf,GAjBH;AAkBO,SAAK,IAAI;AACT,aAAS,IAAI,eAAe,IAAI;AACpC;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GARH;AASO,oBAAgB;AAChB,iBAAa;AACb,SAAK,IAAI;AACb;AACJ;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GATH;AAUO,UAAM,EAAE,EAAE;AACV,WAAO;AACX;AACJ;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,SAAO;AACX;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;AAEA,CATC,0BAS0B;AACvB,eAAa,IAAI;AACrB;AAIA,CAAC;AACG,WAAS;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GANH;AAOO,aAAS;AACb;AACJ;AAIA,CAAC;AACG,SAAO;AACP,gBAAc,EAAE,EAAE;AAClB,iBAAe,IAAI;AACnB,YAAU;AACV,eAAa;AACjB;AAEA,QAAO,WAAY;AACf,GATH;AAUO,UAAM,EAAE,EAAE;AACV,WAAO;AACX;AACJ;AAEA,CAAC;AACG,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,mBAAiB;AACjB,WAAS;AACb;AAIA,CAAC;AACG,cAAY;AACZ,UAAQ;AACR,WAAS;AACT,WAAS;AACT,yBAAuB;AACvB,OAAK,IAAI;AACT,SAAO;AACX;AAEA,QAAO,WAAY;AACf,GAXH;AAYO,2BAAuB,OAAO,CAAC,EAAE;AACjC,SAAK,IAAI,cAAc,IAAI;AAC/B;AACJ;AAEA,QAAO,WAAY;AACf,GAlBH;AAmBO,2BAAuB,OAAO,CAAC,EAAE;AACjC,SAAK,IAAI;AACb;AACJ;AAEA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,OAAK,IAAI;AACT,aAAW;AACf;AAEA,CAAC;AACG,WAAS;AACT,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,eAAa;AACjB;AAEA,CAAC;AACG,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,UAAQ;AACZ;;;AC/LA;AAEI,iBAAe,IAAI;AAGnB,oBAAkB,IAAI;AAEtB,qBAAmB,IAAI;AACvB,oBAAkB,IAAI;AAEtB,mBAAiB;AACjB,qBAAmB,IAAI;AAIvB,+BAA6B,IAAI;AACjC,gCAA8B,IAAI;AAGlC,sBAAoB,IAAI;AAGxB,kBAAgB,IAAI;AAGpB,qBAAmB,IAAI;AAGvB,mBAAiB,IAAI;AACzB;AAIA,CAAC;AACG,WAAS;AACT,SAAO;AACP,oBAAkB,IAAI;AAC1B;AAEA,CAAC;AACG,aAAW,IAAI;AACf,UAAQ,EAAE;AACV,WAAS,IAAI,6BAA6B,IAAI;AAC9C,cAAY;AAChB;AAIA,CAAC;AACG,iBAAe,IAAI;AACnB,WAAS,IAAI;AACb,oBAAkB,IAAI;AACtB,cAAY;AAChB;AAMA,CAAC;AACG,WAAS;AACT,yBAAuB;AACvB,OAAK,IAAI;AACT,eAAa;AACjB;AAIA,CAAC;AACG,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,mBAAiB;AACjB,OAAK,IAAI;AACb;AAEA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACpB,SAAO,IAAI;AACf;AAIA,CAAC;AACG,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACf;AAMA,CAAC;AACG,cAAY;AACZ,UAAQ;AACR,WAAS;AACT,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AAET,eAAa;AACb,mBAAiB;AACrB;AAEA,CAAC;AACG,WAAS;AACT,aAAW;AACf;AAKA,CAAC;AACG,eAAa;AACb,eAAa;AACb,cAAY;AAChB;AAMA,QAAO,WAAY;AACf;AACI,wBAAoB,IAAI;AAC5B;AACJ;AAIA,QAAO,WAAY;AACf;AACI,kCAA8B,IAAI;AAClC,oBAAgB,IAAI;AACpB,uBAAmB,IAAI;AAC3B;AAEA,GAvFH;AAwFO,2BAAuB,IAAI;AAC/B;AAEA,GAjDH;AAkDO,iBAAa;AACb,qBAAiB;AACrB;AACJ;AAIA,QAAO,WAAY;AACf;AACI,iCAA6B,IAAI;AACjC,oBAAgB,IAAI;AACpB,uBAAmB,IAAI;AAC3B;AAEA,GA1GH;AA2GO,2BAAuB,IAAI;AAC/B;AACJ;","names":[]}
1
+ {"version":3,"sources":["../components/Button/Button.css","../components/Link/Link.css","../components/Chip/Chip.css","../components/Tag/Tag.css","../components/Accordion/Accordion.css","../components/TextField/TextField.css","../components/SearchField/SearchField.css","../components/BottomSheet/BottomSheet.css","../components/Breadcrumb/Breadcrumb.css","../components/ChipDropdown/ChipDropdown.css","../components/Card/CardPrimaryVariant.css","../components/Card/CardSecondaryVariant.css","../components/Card/CardThumbnailVariant.css","../components/Card/CardCategoryVariant.css","../components/Pagination/Pagination.css","../components/Tabs/Tabs.css","../templates/FaqAccordion/FaqAccordion.css","../templates/FeatureCards/FeatureCards.css","../templates/FeatureCardsIcon/FeatureCardsIcon.css","../templates/FeatureBullets/FeatureBullets.css","../components/Footer/Footer.css","../templates/Hero/Hero.css","../templates/Header/Header.css","../templates/Stats/StatsV2.css","../templates/Stats/StatsSimple.css","../templates/FeatureScroll/FeatureScroll.css","../templates/FeatureSplit/FeatureSplit.css","../templates/StickyStackedCards/StickyStackedCards.css","../templates/CTABanner/CTABanner.css","../components/Navbar/Navbar.css","../templates/DayNightTransition/DayNightTransition.css","../templates/LogoMarquee/LogoMarquee.css","../components/DownloadBadge/DownloadBadge.css","../templates/Steps/Steps.css","../templates/DownloadBanner/DownloadBanner.css","../templates/TextScroll/TextScroll.css","../templates/StickyMarketCards/StickyMarketCards.css","../templates/Table/Table.css","../templates/DynamicTable/DynamicTable.css","../templates/Leaders/Leaders.css","../templates/ImageBanner/ImageBanner.css","../templates/Testimonial/Testimonial.css","../templates/ArticleHero/ArticleHero.css","../templates/ArticleSection/ArticleSection.css","../templates/CoralBanner/CoralBanner.css","../templates/FeatureAwards/FeatureAwards.css","../templates/FeatureBlog/FeatureBlog.css","../templates/FeatureBlogCategories/FeatureBlogCategories.css","../templates/HelpCentreCategories/HelpCentreCategories.css","../templates/HelpCentreSubCategories/HelpCentreSubCategories.css","../templates/HelpCenterPage/HelpCenterPage.css","../templates/FeatureBlogPage/FeatureBlogPage.css","../templates/ParallaxBanner/ParallaxBanner.css","../templates/TradingCalculator/TradingCalculator.css","../templates/TradingCalculatorHowTo/TradingCalculatorHowTo.css","../templates/FeatureOffices/FeatureOffices.css","../templates/Tiers/Tiers.css","../templates/PartnersPayout/PartnersPayout.css","../templates/MasterPartner/MasterPartner.css","../templates/ResourceBanner/ResourceBanner.css","../templates/OptionsTypes/OptionsTypes.css","../templates/EntityInfoSection/EntityInfoSection.css","../templates/CountryLinkGrid/CountryLinkGrid.css","../templates/DocumentChips/DocumentChips.css","../components/LinkModal/LinkModal.css","../templates/LanguageSelectModal/LanguageSelectModal.css","../templates/AffiliatesSlider/AffiliatesSlider.css"],"sourcesContent":["/* ── Base ─────────────────────────────────────────────────── */\n\n.button {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-8);\n padding: calc(var(--spacing-16) - 2px) calc(var(--spacing-24) - 2px);\n min-width: var(--spacing-96);\n border: 2px solid transparent;\n border-radius: var(--radius-full);\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-extra-bold);\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n text-decoration: none;\n cursor: pointer;\n outline: none;\n box-sizing: border-box;\n transition: background-color 100ms ease, border-color 100ms ease, opacity 100ms ease;\n}\n\n/* ── Full-width ───────────────────────────────────────────── */\n\n.button.fullWidth {\n width: 100%;\n}\n\n/* ── Icon-only — square pill, no label ───────────────────── */\n\n.button.iconOnly {\n padding: calc(var(--spacing-16) - 2px);\n min-width: unset;\n width: var(--spacing-48);\n height: var(--spacing-48);\n}\n\n/* ── Label slot ───────────────────────────────────────────── */\n\n.button .label {\n flex: 1 0 0;\n min-width: 1px;\n min-height: 1px;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.button .icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-16);\n height: var(--spacing-16);\n flex-shrink: 0;\n}\n\n/* ── Focus ring overlay ───────────────────────────────────── */\n\n.button .focusRing {\n position: absolute;\n inset: -2px;\n border-radius: var(--radius-full);\n border: 2px solid var(--color-blue-600);\n pointer-events: none;\n}\n\n.button:focus-visible::after {\n content: \"\";\n position: absolute;\n inset: -2px;\n border-radius: var(--radius-full);\n border: 2px solid var(--color-blue-600);\n pointer-events: none;\n}\n\n/* ============================================================\n CORAL color scheme\n ============================================================ */\n\n.coral_primary {\n background-color: var(--color-coral-700);\n color: var(--color-slate-50);\n}\n\n.coral_primary:hover:not(:disabled) {\n background-color: var(--color-coral-800);\n}\n\n.coral_primary:active:not(:disabled) {\n background-color: var(--color-coral-900);\n}\n\n.coral_primary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n\n.coral_secondary {\n background-color: transparent;\n color: var(--color-coral-700);\n border-color: var(--color-coral-700);\n}\n\n.coral_secondary:hover:not(:disabled) {\n background-color: rgba(255, 68, 79, 0.08);\n}\n\n.coral_secondary:active:not(:disabled) {\n background-color: rgba(255, 68, 79, 0.16);\n}\n\n.coral_secondary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n\n/* ============================================================\n BLACK color scheme\n ============================================================ */\n\n.black_primary {\n background-color: var(--color-slate-1300);\n color: var(--color-slate-50);\n}\n\n.black_primary:hover:not(:disabled) {\n background-color: rgba(24, 28, 37, 0.8);\n}\n\n.black_primary:active:not(:disabled) {\n background-color: var(--color-opacity-slate-88);\n}\n\n.black_primary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n\n.black_secondary {\n background-color: transparent;\n color: var(--color-slate-1300);\n border-color: var(--color-slate-1300);\n}\n\n.black_secondary:hover:not(:disabled) {\n background-color: var(--color-opacity-slate-4);\n}\n\n.black_secondary:active:not(:disabled) {\n background-color: var(--color-opacity-slate-8);\n}\n\n.black_secondary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n\n/* ============================================================\n WHITE color scheme — intended for use on dark backgrounds\n ============================================================ */\n\n.white_primary {\n background-color: var(--color-slate-50);\n color: var(--color-slate-1300);\n}\n\n.white_primary:hover:not(:disabled) {\n background-color: rgba(255, 255, 255, 0.8);\n}\n\n.white_primary:active:not(:disabled) {\n background-color: var(--color-opacity-white-88);\n}\n\n.white_primary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n\n.white_secondary {\n background-color: transparent;\n color: var(--color-slate-50);\n border-color: var(--color-slate-50);\n}\n\n.white_secondary:hover:not(:disabled) {\n background-color: var(--color-opacity-white-8);\n}\n\n.white_secondary:active:not(:disabled) {\n background-color: var(--color-opacity-white-16);\n}\n\n.white_secondary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}","/* ── Base ─────────────────────────────────────────────────── */\n\n.link {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n cursor: pointer;\n text-decoration: none;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-semi-bold);\n line-height: 1;\n white-space: nowrap;\n background: none;\n border: none;\n padding: 0;\n outline: none;\n transition: gap 150ms ease;\n}\n\n.link:focus-visible {\n outline: 2px solid var(--color-blue-600);\n outline-offset: 2px;\n border-radius: var(--radius-xs);\n}\n\n/* ── Disabled ─────────────────────────────────────────────── */\n\n.link.disabled {\n opacity: var(--link-disabled-opacity);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.link .icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-16);\n height: var(--spacing-16);\n flex-shrink: 0;\n}\n\n/* ── Chevron slot ─────────────────────────────────────────── */\n\n.link .chevron {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--spacing-16);\n height: var(--spacing-16);\n transition: transform 150ms ease;\n}\n\n/* ── Label slot ───────────────────────────────────────────── */\n\n.link .label {\n text-decoration-skip-ink: none;\n}\n\n/* ── Chevron mode: gap expands on hover/active ────────────── */\n\n.link.withChevron:hover,\n.link.withChevron:active {\n gap: var(--spacing-16);\n}\n\n/* ── Icon mode: label underlines on hover/active ──────────── */\n\n.link.withIcon:hover .label,\n.link.withIcon:active .label {\n text-decoration: underline;\n text-decoration-style: solid;\n}\n\n/* ── Color schemes ────────────────────────────────────────── */\n\n.link.coral {\n color: var(--link-coral-color);\n}\n\n.link.black {\n color: var(--link-black-color);\n}\n\n.link.white {\n color: var(--link-white-color);\n}\n","/* ── Base ─────────────────────────────────────────────────── */\n\n.chip {\n position: relative;\n display: inline-flex;\n align-items: center;\n border: var(--chip-border-width) solid var(--chip-border-color);\n border-radius: var(--radius-full);\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-regular);\n line-height: 1;\n color: var(--chip-text-color);\n white-space: nowrap;\n background: transparent;\n cursor: pointer;\n outline: none;\n box-sizing: border-box;\n transition: background-color 100ms ease, color 100ms ease, border-color 100ms ease;\n user-select: none;\n}\n\n/* ── Sizes ────────────────────────────────────────────────── */\n\n.chip.sm {\n height: var(--spacing-24);\n padding: 0 var(--spacing-12);\n gap: 6px;\n font-size: var(--font-size-xs);\n}\n\n.chip.md {\n height: var(--spacing-32);\n padding: 0 var(--spacing-16);\n gap: var(--spacing-8);\n font-size: var(--font-size-sm);\n}\n\n.chip.lg {\n height: var(--spacing-48);\n padding: 0 var(--spacing-24);\n gap: var(--spacing-12);\n font-size: var(--font-size-md);\n}\n\n/* ── Hover / Active (unselected only) ─────────────────────── */\n\n.chip:hover:not(:disabled):not(.selected) {\n background-color: var(--chip-hover-background);\n}\n\n.chip:active:not(:disabled):not(.selected) {\n background-color: var(--chip-active-background);\n}\n\n/* ── Selected ─────────────────────────────────────────────── */\n\n.chip.selected {\n background-color: var(--chip-selected-background);\n border-color: var(--chip-selected-border);\n border-width: var(--chip-selected-border-width);\n color: var(--chip-selected-text);\n}\n\n/* ── Disabled ─────────────────────────────────────────────── */\n\n.chip:disabled {\n border-color: var(--chip-disabled-border);\n color: var(--chip-disabled-text);\n cursor: not-allowed;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.chip .icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n}\n\n/* ── Label slot ───────────────────────────────────────────── */\n\n.chip .label {\n flex-shrink: 0;\n}\n\n/* ── Tag slot ─────────────────────────────────────────────── */\n\n.chip .tag {\n font-weight: var(--font-weight-extra-bold);\n flex-shrink: 0;\n}\n\n/* ── Focus ring overlay ───────────────────────────────────── */\n\n.chip .focusRing {\n position: absolute;\n inset: -3px;\n border-radius: var(--radius-full);\n border: 2px solid var(--chip-focus-ring-color);\n pointer-events: none;\n}\n\n/* Selected chip now has a visible border, ring stays at -3px */\n.chip.selected .focusRing {\n inset: -3px;\n}\n\n.chip:focus-visible::after {\n content: \"\";\n position: absolute;\n inset: -3px;\n border-radius: var(--radius-full);\n border: 2px solid var(--chip-focus-ring-color);\n pointer-events: none;\n}\n\n.chip.selected:focus-visible::after {\n inset: -3px;\n}\n","/* ── Base ─────────────────────────────────────────────────── */\n\n.tag {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n white-space: nowrap;\n font-family: var(--font-family-base);\n line-height: 1;\n color: var(--tag-text-color);\n border-radius: var(--radius-full);\n}\n\n/* ── Variants ─────────────────────────────────────────────── */\n\n.tag.fill {\n background-color: var(--tag-fill-background);\n}\n\n.tag.outline {\n border: 1px solid var(--tag-outline-border);\n}\n\n/* ── Sizes ────────────────────────────────────────────────── */\n\n.tag.xs {\n height: 18px;\n padding: 0 var(--spacing-4);\n gap: var(--spacing-4);\n font-size: 0.625rem;\n}\n\n.tag.sm {\n height: var(--spacing-24);\n padding: 0 var(--spacing-8);\n gap: var(--spacing-8);\n font-size: var(--font-size-xs);\n}\n\n.tag.md {\n height: var(--spacing-32);\n padding: 0 var(--spacing-12);\n gap: var(--spacing-12);\n font-size: var(--font-size-sm);\n}\n\n.tag.lg {\n height: var(--spacing-48);\n padding: 0 var(--spacing-16);\n gap: var(--spacing-16);\n font-size: var(--font-size-md);\n}\n\n.tag.custom {\n color: var(--text-disabled);\n padding: 0 !important;\n height: auto !important;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n}\n\n/* ── Font weights ─────────────────────────────────────────── */\n\n.tag.regular {\n font-weight: var(--font-weight-regular);\n}\n\n.tag.bold {\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.tag .icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n}\n\n/* ── Label slot ───────────────────────────────────────────── */\n\n.tag .label {\n flex-shrink: 0;\n}\n","/* ── Container ────────────────────────────────────────────── */\n\n.accordion {\n position: relative;\n width: 100%;\n max-width: 846px;\n box-sizing: border-box;\n}\n\n/* ── Header ───────────────────────────────────────────────── */\n\n.accordion__header {\n display: flex;\n align-items: center;\n gap: var(--spacing-24);\n padding: var(--spacing-24) 0;\n width: 100%;\n background: none;\n border: none;\n cursor: pointer;\n outline: none;\n position: relative;\n text-align: left;\n box-sizing: border-box;\n}\n\n.accordion__header:focus-visible::after {\n content: \"\";\n position: absolute;\n inset: -2px;\n border: 2px solid var(--accordion-focus-ring-color);\n pointer-events: none;\n}\n\n/* ── Focus ring overlay ───────────────────────────────────── */\n\n.accordion__focus-ring {\n position: absolute;\n inset: -2px;\n border: 2px solid var(--accordion-focus-ring-color);\n pointer-events: none;\n}\n\n/* ── Title slot ───────────────────────────────────────────── */\n\n.accordion__title-wrapper {\n flex: 1 0 0;\n min-width: 1px;\n}\n\n.accordion__title {\n font-family: var(--font-family-base);\n font-size: var(--font-size-lg); /* 18px */\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--line-height-normal);\n color: var(--accordion-title-color);\n}\n\n/* ── Chevron slot ─────────────────────────────────────────── */\n\n.accordion__chevron {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-24);\n height: var(--spacing-24);\n flex-shrink: 0;\n color: var(--accordion-chevron-color);\n transition: transform 200ms ease;\n}\n\n.accordion__chevron--rotated {\n transform: rotate(180deg);\n}\n\n/* ── Body — CSS Grid animated collapse ────────────────────── */\n\n.accordion__body-wrapper {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows 200ms ease;\n}\n\n.accordion__body-wrapper--open {\n grid-template-rows: 1fr;\n}\n\n.accordion__body-inner {\n overflow: hidden;\n}\n\n.accordion__body {\n padding-bottom: var(--spacing-24);\n font-family: var(--font-family-base);\n font-size: var(--font-size-md); /* 16px */\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-normal);\n color: var(--accordion-body-color);\n}\n","/* ── Field wrapper (visual input box) ─────────────────────── */\n\n.tf-wrapper {\n display: flex;\n align-items: center;\n height: var(--spacing-56);\n padding: 0 var(--spacing-16);\n gap: var(--spacing-8);\n border-radius: var(--radius-md);\n border: 1px solid transparent;\n box-sizing: border-box;\n cursor: text;\n transition: background-color 100ms ease, border-color 100ms ease;\n}\n\n/* ── Label variant — label stacked above the input, both inside\n * the same bordered box, rather than the default single-row field ── */\n\n.tf-wrapper.hasLabel {\n flex-direction: column;\n align-items: stretch;\n justify-content: center;\n height: auto;\n min-height: var(--spacing-56);\n padding: var(--spacing-8) var(--spacing-16);\n gap: var(--spacing-4);\n}\n\n.tf-label {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--font-weight-regular);\n color: var(--text-secondary);\n line-height: 1.2;\n}\n\n.tf-row {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n/* ── Variant: Outline ─────────────────────────────────────── */\n\n.tf-wrapper.outline {\n background: var(--field-surface-outline);\n border-color: var(--field-border-default);\n}\n\n/* ── Variant: Fill ────────────────────────────────────────── */\n\n.tf-wrapper.fill {\n background: var(--field-surface-fill);\n}\n\n/* ── Hover — neutral ──────────────────────────────────────── */\n\n.tf-wrapper.neutral.outline:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-hover);\n}\n\n.tf-wrapper.neutral.fill:hover:not([data-disabled]):not(:focus-within) {\n background: var(--field-surface-fill-hover);\n}\n\n/* ── Focus — neutral ──────────────────────────────────────── */\n\n.tf-wrapper.neutral.outline:focus-within:not([data-disabled]) {\n border-color: var(--field-border-focus);\n}\n\n.tf-wrapper.neutral.fill:focus-within:not([data-disabled]) {\n border-color: var(--field-border-focus);\n}\n\n/* ── Status: Fail — Outline ───────────────────────────────── */\n\n.tf-wrapper.fail.outline {\n border-color: var(--field-border-fail-default);\n}\n\n.tf-wrapper.fail.outline:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-fail-hover);\n}\n\n.tf-wrapper.fail.outline:focus-within:not([data-disabled]) {\n border-color: var(--field-border-fail-focus);\n}\n\n/* ── Status: Fail — Fill ──────────────────────────────────── */\n\n.tf-wrapper.fail.fill {\n background: var(--field-surface-fail);\n}\n\n.tf-wrapper.fail.fill:hover:not([data-disabled]):not(:focus-within) {\n background: var(--field-surface-fail-hover);\n}\n\n.tf-wrapper.fail.fill:focus-within:not([data-disabled]) {\n background: var(--field-surface-fail);\n border-color: var(--field-border-fail-focus);\n}\n\n/* ── Status: Success — Outline ────────────────────────────── */\n\n.tf-wrapper.success.outline {\n border-color: var(--field-border-success-default);\n}\n\n.tf-wrapper.success.outline:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-success-hover);\n}\n\n.tf-wrapper.success.outline:focus-within:not([data-disabled]) {\n border-color: var(--field-border-success-focus);\n}\n\n/* ── Status: Success — Fill ───────────────────────────────── */\n\n.tf-wrapper.success.fill {\n background: var(--field-surface-success);\n}\n\n.tf-wrapper.success.fill:hover:not([data-disabled]):not(:focus-within) {\n background: var(--field-surface-success-hover);\n}\n\n.tf-wrapper.success.fill:focus-within:not([data-disabled]) {\n background: var(--field-surface-success);\n border-color: var(--field-border-success-focus);\n}\n\n/* ── Disabled ─────────────────────────────────────────────── */\n\n.tf-wrapper[data-disabled] {\n cursor: not-allowed;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.tf-wrapper .iconSlot {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--spacing-24);\n height: var(--spacing-24);\n color: var(--field-icon-default);\n}\n\n.tf-wrapper[data-disabled] .iconSlot {\n color: var(--field-icon-disabled);\n}\n\n.tf-wrapper .iconSuccess {\n color: var(--field-text-success);\n}\n\n.tf-wrapper .iconFail {\n color: var(--field-text-fail);\n}\n\n/* ── Native input ─────────────────────────────────────────── */\n\n.tf-wrapper .tf-input {\n flex: 1 0 0;\n min-width: 1px;\n border: none;\n outline: none;\n background: transparent;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-normal);\n color: var(--field-text-default);\n caret-color: var(--field-border-focus);\n padding: 0;\n}\n\n.tf-wrapper .tf-input::placeholder {\n color: var(--field-text-placeholder);\n}\n\n.tf-wrapper .tf-input:focus {\n color: var(--field-text-focus);\n}\n\n.tf-wrapper .tf-input:disabled {\n cursor: not-allowed;\n color: var(--field-text-disabled);\n}\n\n.tf-wrapper .tf-input:disabled::placeholder {\n color: var(--field-text-disabled);\n}\n","/* ── Field wrapper (visual input box) ─────────────────────── */\n\n.sf-wrapper {\n display: flex;\n align-items: center;\n height: var(--spacing-56);\n padding: 0 var(--spacing-16);\n gap: var(--spacing-8);\n border-radius: var(--radius-md);\n border: 1px solid transparent;\n box-sizing: border-box;\n cursor: text;\n transition: background-color 100ms ease, border-color 100ms ease;\n}\n\n/* ── Label variant — label stacked above the input, both inside\n * the same bordered box, rather than the default single-row field ── */\n\n.sf-wrapper.hasLabel {\n flex-direction: column;\n align-items: stretch;\n justify-content: center;\n height: auto;\n min-height: var(--spacing-56);\n padding: var(--spacing-8) var(--spacing-16);\n gap: var(--spacing-4);\n}\n\n.sf-label {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--font-weight-regular);\n color: var(--text-secondary);\n line-height: 1.2;\n}\n\n.sf-row {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n/* ── Trailing slot — e.g. a combobox chevron ─────────────────── */\n\n.sf-trailing {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: var(--field-icon-default);\n}\n\n/* ── Variant: Outline ─────────────────────────────────────── */\n\n.sf-wrapper.outline {\n background: var(--field-surface-outline);\n border-color: var(--field-border-default);\n}\n\n/* ── Variant: Fill ────────────────────────────────────────── */\n\n.sf-wrapper.fill {\n background: var(--field-surface-fill);\n}\n\n/* ── Hover — neutral ──────────────────────────────────────── */\n\n.sf-wrapper.neutral.outline:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-hover);\n}\n\n.sf-wrapper.neutral.fill:hover:not([data-disabled]):not(:focus-within) {\n background: var(--field-surface-fill-hover);\n}\n\n/* ── Focus — neutral ──────────────────────────────────────── */\n\n.sf-wrapper.neutral.outline:focus-within:not([data-disabled]) {\n border-color: var(--field-border-focus);\n}\n\n.sf-wrapper.neutral.fill:focus-within:not([data-disabled]) {\n border-color: var(--field-border-focus);\n}\n\n/* ── Status: Fail — Outline ───────────────────────────────── */\n\n.sf-wrapper.fail.outline {\n border-color: var(--field-border-fail-default);\n}\n\n.sf-wrapper.fail.outline:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-fail-hover);\n}\n\n.sf-wrapper.fail.outline:focus-within:not([data-disabled]) {\n border-color: var(--field-border-fail-focus);\n}\n\n/* ── Status: Fail — Fill ──────────────────────────────────── */\n\n.sf-wrapper.fail.fill {\n background: var(--field-surface-fail);\n}\n\n.sf-wrapper.fail.fill:hover:not([data-disabled]):not(:focus-within) {\n background: var(--field-surface-fail-hover);\n}\n\n.sf-wrapper.fail.fill:focus-within:not([data-disabled]) {\n background: var(--field-surface-fail);\n border-color: var(--field-border-fail-focus);\n}\n\n/* ── Status: Success — Outline ────────────────────────────── */\n\n.sf-wrapper.success.outline {\n border-color: var(--field-border-success-default);\n}\n\n.sf-wrapper.success.outline:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-success-hover);\n}\n\n.sf-wrapper.success.outline:focus-within:not([data-disabled]) {\n border-color: var(--field-border-success-focus);\n}\n\n/* ── Status: Success — Fill ───────────────────────────────── */\n\n.sf-wrapper.success.fill {\n background: var(--field-surface-success);\n}\n\n.sf-wrapper.success.fill:hover:not([data-disabled]):not(:focus-within) {\n background: var(--field-surface-success-hover);\n}\n\n.sf-wrapper.success.fill:focus-within:not([data-disabled]) {\n background: var(--field-surface-success);\n border-color: var(--field-border-success-focus);\n}\n\n/* ── Disabled ─────────────────────────────────────────────── */\n\n.sf-wrapper[data-disabled] {\n cursor: not-allowed;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.sf-wrapper .iconSlot {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--spacing-24);\n height: var(--spacing-24);\n color: var(--field-icon-default);\n}\n\n.sf-wrapper[data-disabled] .iconSlot {\n color: var(--field-icon-disabled);\n}\n\n.sf-wrapper .iconSuccess {\n color: var(--field-text-success);\n}\n\n.sf-wrapper .iconFail {\n color: var(--field-text-fail);\n}\n\n/* ── Native input ─────────────────────────────────────────── */\n\n.sf-wrapper .sf-input {\n flex: 1 0 0;\n min-width: 1px;\n border: none;\n outline: none;\n background: transparent;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-normal);\n color: var(--field-text-default);\n caret-color: var(--field-border-focus);\n padding: 0;\n}\n\n.sf-wrapper .sf-input::placeholder {\n color: var(--field-text-placeholder);\n}\n\n.sf-wrapper .sf-input:focus {\n color: var(--field-text-focus);\n}\n\n.sf-wrapper .sf-input:disabled {\n cursor: not-allowed;\n color: var(--field-text-disabled);\n}\n\n.sf-wrapper .sf-input:disabled::placeholder {\n color: var(--field-text-disabled);\n}\n\n/* ── Clear button ─────────────────────────────────────────── */\n\n.sf-wrapper .clearButton {\n appearance: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--spacing-24);\n height: var(--spacing-24);\n padding: 0;\n border: none;\n background: none;\n cursor: pointer;\n color: var(--field-icon-subtle);\n border-radius: var(--radius-full);\n transition: color 100ms ease;\n}\n\n.sf-wrapper .clearButton:hover {\n color: var(--field-text-default);\n}\n\n.sf-wrapper .clearButton:focus-visible {\n outline: 2px solid var(--field-border-focus);\n outline-offset: 2px;\n}","/* ── Overlay backdrop ──────────────────────────────────────── */\n\n.bs-overlay {\n position: fixed;\n inset: 0;\n z-index: 9999;\n background: var(--bottom-sheet-overlay-bg);\n display: flex;\n align-items: flex-end;\n}\n\n/* ── Sheet panel ───────────────────────────────────────────── */\n\n.bs-sheet {\n width: 100%;\n background: var(--bottom-sheet-bg);\n border-radius: var(--radius-xl) var(--radius-xl) 0 0;\n box-shadow: var(--bottom-sheet-shadow);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n max-height: 90dvh;\n animation: bs-slide-up 280ms cubic-bezier(0.32, 0.72, 0, 1) forwards;\n}\n\n@keyframes bs-slide-up {\n from {\n transform: translateY(100%);\n }\n to {\n transform: translateY(0);\n }\n}\n\n/* ── Handle bar ────────────────────────────────────────────── */\n\n.bs-handle-container {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: var(--spacing-8) 0;\n flex-shrink: 0;\n}\n\n.bs-handle-bar {\n width: 48px;\n height: 4px;\n border-radius: var(--radius-full);\n background: var(--bottom-sheet-handle-color);\n}\n\n/* ── Header ────────────────────────────────────────────────── */\n\n.bs-header {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n height: 48px;\n padding: 0 var(--spacing-16);\n flex-shrink: 0;\n}\n\n.bs-header-spacer {\n width: 48px;\n height: 48px;\n flex-shrink: 0;\n}\n\n.bs-title {\n flex: 1;\n text-align: center;\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-extra-bold);\n font-size: var(--font-size-xl);\n line-height: var(--line-height-xl);\n color: var(--bottom-sheet-title-color);\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n}\n\n.bs-close-container {\n flex-shrink: 0;\n}\n\n.bs-close-btn {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n border-radius: var(--radius-full);\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--bottom-sheet-close-icon-color);\n transition: background-color 100ms ease;\n outline: none;\n box-sizing: border-box;\n}\n\n.bs-close-btn:hover {\n background: var(--bottom-sheet-close-hover-bg);\n}\n\n.bs-close-btn:active {\n background: var(--bottom-sheet-close-active-bg);\n}\n\n.bs-close-btn:focus-visible::after {\n content: \"\";\n position: absolute;\n inset: -3px;\n border-radius: var(--radius-full);\n border: 2px solid var(--bottom-sheet-focus-ring-color);\n pointer-events: none;\n}\n\n/* ── Body ──────────────────────────────────────────────────── */\n\n.bs-body {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n}\n\n/* ── Action buttons ────────────────────────────────────────── */\n\n.bs-actions {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n padding: var(--spacing-16);\n flex-shrink: 0;\n}\n\n.bs-action-primary {\n width: 100%;\n height: 48px;\n border-radius: var(--radius-full);\n border: none;\n background: var(--bottom-sheet-action-primary-bg);\n color: var(--bottom-sheet-action-primary-text);\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-extra-bold);\n font-size: var(--font-size-md);\n cursor: pointer;\n transition: background-color 100ms ease;\n box-sizing: border-box;\n}\n\n.bs-action-primary:hover {\n background: var(--bottom-sheet-action-primary-bg-hover);\n}\n\n.bs-action-primary:active {\n background: var(--bottom-sheet-action-primary-bg-active);\n}\n\n.bs-action-secondary {\n width: 100%;\n height: 48px;\n border-radius: var(--radius-full);\n border: 1px solid var(--bottom-sheet-action-secondary-border);\n background: transparent;\n color: var(--bottom-sheet-action-secondary-text);\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-extra-bold);\n font-size: var(--font-size-md);\n cursor: pointer;\n transition: background-color 100ms ease;\n box-sizing: border-box;\n}\n\n.bs-action-secondary:hover {\n background: var(--bottom-sheet-action-secondary-hover-bg);\n}\n\n.bs-action-secondary:active {\n background: var(--bottom-sheet-action-secondary-active-bg);\n}\n\n/* ── Mobile only — hidden on wider screens ─────────────────── */\n\n@media (min-width: 768px) {\n .bs-overlay {\n display: none;\n }\n}\n","/* ── List ─────────────────────────────────────────────────── */\n\n.bc-list {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n overflow: hidden;\n gap: var(--spacing-8);\n list-style: none;\n margin: 0;\n padding: 0;\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-regular);\n}\n\n/* ── Size variants ────────────────────────────────────────── */\n\n.bc-list.sm {\n font-size: var(--font-size-sm);\n line-height: var(--line-height-normal);\n}\n\n.bc-list.md {\n font-size: var(--font-size-md);\n line-height: var(--line-height-normal);\n}\n\n/* ── Item ─────────────────────────────────────────────────── */\n\n.bc-item,\n.bc-middleItem,\n.bc-ellipsisItem {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n/* ── Link (clickable crumb) ───────────────────────────────── */\n\n.bc-link {\n color: var(--breadcrumb-text-color);\n text-decoration: none;\n white-space: nowrap;\n cursor: pointer;\n border-radius: var(--radius-xs);\n}\n\n.bc-link:hover {\n text-decoration: underline;\n}\n\n.bc-link:active {\n color: var(--breadcrumb-text-current-color);\n text-decoration: underline;\n}\n\n.bc-link:focus-visible {\n outline: 2px solid var(--breadcrumb-focus-ring-color);\n outline-offset: 2px;\n text-decoration: none;\n}\n\n/* ── Current page (last crumb, non-interactive) ───────────── */\n\n.bc-current {\n color: var(--breadcrumb-text-current-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ── Last item shrinks to allow truncation ────────────────── */\n\n.bc-item:last-child {\n min-width: 0;\n flex-shrink: 1;\n overflow: hidden;\n}\n\n/* ── Separator (chevron icon) ─────────────────────────────── */\n\n.bc-separator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: var(--breadcrumb-separator-color);\n width: 1em;\n height: 1em;\n}\n\n/* ── Ellipsis button ──────────────────────────────────────── */\n\n.bc-ellipsisButton {\n appearance: none;\n background: none;\n border: none;\n padding: 0;\n margin: 0;\n font: inherit;\n color: var(--breadcrumb-text-color);\n cursor: pointer;\n border-radius: var(--radius-xs);\n}\n\n.bc-ellipsisButton:hover {\n text-decoration: underline;\n}\n\n.bc-ellipsisButton:focus-visible {\n outline: 2px solid var(--breadcrumb-focus-ring-color);\n outline-offset: 2px;\n text-decoration: none;\n}\n\n/* ── Collapse logic ───────────────────────────────────────── */\n\n.bc-ellipsisItem {\n display: none;\n}\n\n.bc-middleItem {\n display: flex;\n}\n\n@media (max-width: 639px) {\n .bc-list.collapsible {\n gap: var(--spacing-4);\n }\n\n .bc-list.collapsible .bc-item,\n .bc-list.collapsible .bc-middleItem,\n .bc-list.collapsible .bc-ellipsisItem {\n gap: var(--spacing-4);\n }\n\n .bc-list.collapsible .bc-ellipsisItem {\n display: flex;\n }\n\n .bc-list.collapsible .bc-middleItem {\n display: none;\n }\n\n}\n\n/* ── Bottom Sheet list (hidden middle items) ──────────────── */\n\n.bc-sheet-list {\n list-style: none;\n margin: 0;\n padding: 0;\n padding-bottom: var(--spacing-24);\n}\n\n.bc-sheet-item {\n border-bottom: 1px solid var(--bottom-sheet-list-item-border);\n}\n\n.bc-sheet-item:last-child {\n border-bottom: none;\n}\n\n.bc-sheet-link {\n display: flex;\n align-items: center;\n height: 72px;\n padding: 0 var(--spacing-24);\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n color: var(--breadcrumb-text-color);\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.bc-sheet-link:hover {\n text-decoration: underline;\n}\n\n.bc-sheet-link:focus-visible {\n outline: 2px solid var(--breadcrumb-focus-ring-color);\n outline-offset: -2px;\n}\n","/* ── Wrapper ───────────────────────────────────────────────── */\n\n.cd-wrapper {\n position: relative;\n display: inline-flex;\n}\n\n/* ── Trigger (chip button) ────────────────────────────────── */\n\n.cd-trigger {\n position: relative;\n display: inline-flex;\n align-items: center;\n border: 1px solid var(--chip-border-color);\n border-radius: var(--radius-full);\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-regular);\n color: var(--chip-text-color);\n white-space: nowrap;\n background: transparent;\n cursor: pointer;\n outline: none;\n box-sizing: border-box;\n transition: background-color 100ms ease, color 100ms ease, border-color 100ms ease;\n user-select: none;\n}\n\n/* ── Sizes ────────────────────────────────────────────────── */\n\n.cd-trigger.sm {\n height: var(--spacing-24);\n padding-left: var(--spacing-12);\n padding-right: 6px;\n gap: 6px;\n font-size: var(--font-size-xs);\n}\n\n.cd-trigger.md {\n height: var(--spacing-32);\n padding-left: var(--spacing-16);\n padding-right: var(--spacing-8);\n gap: var(--spacing-8);\n font-size: var(--font-size-sm);\n}\n\n/* ── Hover / Active (unselected, not disabled) ────────────── */\n\n.cd-trigger:hover:not(:disabled):not(.selected) {\n background-color: var(--chip-hover-background);\n}\n\n.cd-trigger:active:not(:disabled) {\n background-color: var(--chip-active-background);\n}\n\n/* ── Expand state (open but no selection) ─────────────────── */\n\n.cd-trigger.expand:not(.selected):not(:disabled) {\n background-color: var(--chip-hover-background);\n}\n\n/* ── Selected ─────────────────────────────────────────────── */\n\n.cd-trigger.selected {\n background-color: var(--chip-selected-background);\n border-color: var(--chip-selected-background);\n color: var(--chip-selected-text);\n}\n\n/* ── Disabled ─────────────────────────────────────────────── */\n\n.cd-trigger:disabled {\n color: var(--chip-disabled-text);\n cursor: not-allowed;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.cd-trigger .cd-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n}\n\n/* ── Label slot ───────────────────────────────────────────── */\n\n.cd-trigger .cd-label {\n flex-shrink: 0;\n}\n\n/* ── Tag slot ─────────────────────────────────────────────── */\n\n.cd-trigger .cd-tag {\n font-weight: var(--font-weight-extra-bold);\n flex-shrink: 0;\n}\n\n/* ── Chevron icon ─────────────────────────────────────────── */\n\n.cd-trigger .cd-chevron {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n transition: transform 200ms ease;\n}\n\n.cd-trigger .cd-chevron.chevronOpen {\n transform: rotate(180deg);\n}\n\n/* ── Focus ring (keyboard / programmatic) ─────────────────── */\n\n.cd-trigger:focus-visible::after {\n content: \"\";\n position: absolute;\n inset: -3px;\n border-radius: var(--radius-full);\n border: 2px solid var(--chip-focus-ring-color);\n pointer-events: none;\n}\n\n/* ── Dropdown list panel ──────────────────────────────────── */\n\n.cd-list {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n z-index: 10;\n min-width: 100%;\n list-style: none;\n margin: 0;\n padding: var(--spacing-4);\n background: var(--chip-dropdown-list-bg);\n border: 1px solid var(--chip-dropdown-list-border);\n border-radius: var(--radius-md);\n box-shadow: var(--chip-dropdown-list-shadow);\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n}\n\n/* ── Dropdown item ────────────────────────────────────────── */\n\n.cd-item {\n display: flex;\n align-items: center;\n gap: 6px;\n height: var(--spacing-32);\n padding: 0 var(--spacing-12);\n border-radius: var(--radius-xs);\n cursor: pointer;\n color: var(--chip-dropdown-item-text);\n font-size: var(--font-size-sm);\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-regular);\n white-space: nowrap;\n box-sizing: border-box;\n transition: background-color 100ms ease;\n list-style: none;\n}\n\n.cd-item:hover {\n background-color: var(--chip-dropdown-item-hover-bg);\n}\n\n.cd-item:active {\n background-color: var(--chip-dropdown-item-active-bg);\n}\n\n/* ── Item label ───────────────────────────────────────────── */\n\n.cd-itemLabel {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* ── Selected item ────────────────────────────────────────── */\n\n.cd-item.itemSelected .cd-itemLabel {\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* ── Selected checkmark ───────────────────────────────────── */\n\n.cd-itemCheck {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: var(--chip-dropdown-item-selected-check);\n}\n\n/* ── Sheet variant (inside BottomSheet on mobile) ─────────── */\n\n.cd-list--sheet {\n position: static;\n border: none;\n border-radius: 0;\n box-shadow: none;\n padding: 0;\n background: transparent;\n}\n\n.cd-list--sheet .cd-item {\n height: 72px;\n padding: 0 var(--spacing-24);\n border-radius: 0;\n border-bottom: 1px solid var(--bottom-sheet-list-item-border);\n font-size: var(--font-size-md);\n}\n\n.cd-list--sheet .cd-item:last-child {\n border-bottom: none;\n}\n\n.cd-list--sheet .cd-item.itemSelected .cd-itemLabel {\n font-weight: var(--font-weight-extra-bold);\n}\n","/* ── Card shell ───────────────────────────────────────────── */\n\n.card-primary {\n display: flex;\n flex-direction: column;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n height: 29.5rem;\n position: relative;\n width: 100%;\n}\n\n/* ── Variant backgrounds ──────────────────────────────────── */\n\n.card-primary.style--light { background-color: var(--color-slate-75); }\n.card-primary.style--dark { background-color: var(--color-slate-1200); }\n.card-primary.style--brand { background-color: var(--color-coral-700); }\n.card-primary.style--image { background-color: transparent; }\n\n/* ── Content area ─────────────────────────────────────────── */\n\n.card-primary .cp-content {\n flex: 1 0 0;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n padding: var(--spacing-32);\n position: relative;\n z-index: 1;\n min-height: 0;\n}\n\n/* ── Text colours ─────────────────────────────────────────── */\n\n.card-primary .textDefault { color: var(--color-slate-1200); }\n.card-primary .textInverse { color: var(--color-slate-50); }\n\n/* ── Title ────────────────────────────────────────────────── */\n\n.card-primary .cp-title {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n margin: 0;\n width: 100%;\n}\n\n/* ── Description ──────────────────────────────────────────── */\n\n.card-primary .cp-description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n margin: 0;\n width: 100%;\n}\n\n/* ── Image section (light / dark / brand) ─────────────────── */\n\n.card-primary .cp-imageSection {\n height: 17.5rem;\n flex-shrink: 0;\n position: relative;\n overflow: hidden;\n background-color: transparent;\n}\n\n.card-primary .cp-image {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n\n/* ── Full-bleed image overlay (image style) ───────────────── */\n\n.card-primary .cp-imageOverlay {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 0;\n}\n\n.card-primary .cp-overlayImg {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n\n.card-primary .cp-gradient {\n position: absolute;\n inset: 0;\n background: linear-gradient(\n to bottom,\n var(--color-opacity-slate-72) 28%,\n transparent 54%\n );\n}\n","/* ── Card shell ───────────────────────────────────────────── */\n\n.card-secondary {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n padding: var(--spacing-32);\n background-color: var(--color-slate-75);\n border-radius: var(--radius-2xl);\n overflow: hidden;\n width: 100%;\n box-sizing: border-box;\n}\n\n/* ── Icon ─────────────────────────────────────────────────── */\n\n.card-secondary .cs-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-32);\n height: var(--spacing-32);\n flex-shrink: 0;\n color: var(--color-slate-1200);\n}\n\n/* ── Title ────────────────────────────────────────────────── */\n\n.card-secondary .cs-title {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n width: 100%;\n}\n\n/* ── Description ──────────────────────────────────────────── */\n\n.card-secondary .cs-description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n width: 100%;\n}\n","/* ── Card shell ───────────────────────────────────────────── */\n\n.card-thumbnail {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n/* ── Horizontal layout ────────────────────────────────────── */\n\n.card-thumbnail.ct-horizontal {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--spacing-16);\n max-width: 846px;\n}\n\n.card-thumbnail.ct-horizontal .ct-thumbnailWrapper {\n width: 151px;\n height: 100px;\n aspect-ratio: auto;\n flex-shrink: 0;\n border-radius: var(--radius-xl);\n}\n\n.card-thumbnail.ct-horizontal .ct-title {\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-thumbnail.ct-horizontal .ct-summary {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.card-thumbnail.ct-reverse {\n flex-direction: row-reverse;\n}\n\n@media (max-width: 767px) {\n .card-thumbnail.ct-horizontal {\n padding-bottom: var(--spacing-16);\n border-bottom: 1px solid var(--color-opacity-slate-8);\n }\n\n .card-thumbnail.ct-horizontal .ct-thumbnailWrapper {\n width: 132px;\n height: 88px;\n border-radius: var(--radius-md);\n }\n\n .card-thumbnail.ct-horizontal .ct-title {\n font-size: 16px;\n }\n\n .card-thumbnail.ct-horizontal .ct-summary {\n display: none;\n }\n}\n\n/* ── Thumbnail wrapper ────────────────────────────────────── */\n\n.card-thumbnail .ct-thumbnailWrapper {\n position: relative;\n width: 100%;\n aspect-ratio: 4 / 3;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n flex-shrink: 0;\n outline: 1px solid var(--border-subtle);\n background-color: transparent;\n}\n\n.card-thumbnail .ct-thumbnailImage {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n border-radius: inherit;\n pointer-events: none;\n display: block;\n transition: transform 0.25s ease-in-out;\n}\n\n.card-thumbnail:hover .ct-thumbnailImage {\n transform: scale(1.1);\n}\n\n/* ── Play button (video only) ─────────────────────────────── */\n\n.card-thumbnail .ct-playButton {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-80);\n height: var(--spacing-80);\n pointer-events: none;\n}\n\n/* ── Author avatar (article only) ────────────────────────── */\n\n.card-thumbnail .ct-avatar {\n position: absolute;\n bottom: var(--spacing-24);\n right: var(--spacing-24);\n width: var(--spacing-72);\n height: var(--spacing-72);\n border-radius: var(--radius-full);\n object-fit: cover;\n display: block;\n}\n\n/* ── Content area ─────────────────────────────────────────── */\n\n.card-thumbnail .ct-content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n width: 100%;\n}\n\n.card-thumbnail:not(.ct-horizontal) .ct-content {\n gap: var(--spacing-12);\n}\n\n/* ── Tags row (vertical layout) ───────────────────────────── */\n/* Standalone chip pills rendered above the title, matching the\n * \"Deriv press releases\" card design (deriv.com/newsroom). */\n\n.card-thumbnail .ct-tagsRow {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--spacing-8);\n}\n\n/* ── Meta row ─────────────────────────────────────────────── */\n\n.card-thumbnail .ct-metaRow {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n flex-wrap: wrap;\n gap: var(--spacing-12);\n}\n\n.card-thumbnail .ct-metaRow--end {\n justify-content: flex-end;\n}\n\n.card-thumbnail .ct-tagsList {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n flex: 1 0 0;\n min-width: 0;\n}\n\n.card-thumbnail .ct-tagItem {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n.card-thumbnail .ct-tagDot {\n color: var(--tag-custom-text-color);\n font-size: var(--font-size-md);\n line-height: 1;\n}\n\n/* ── Copy-link button ─────────────────────────────────────── */\n\n.card-thumbnail .ct-copyLink {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--spacing-32);\n min-height: var(--spacing-32);\n max-height: var(--spacing-32);\n padding: 0 var(--spacing-12);\n border-radius: var(--radius-full);\n border: 1px solid var(--tag-outline-border);\n background: transparent;\n color: var(--tag-text-color);\n cursor: pointer;\n flex-shrink: 0;\n transition: background-color 100ms ease;\n}\n\n.card-thumbnail .ct-copyLink:hover {\n background-color: var(--tag-fill-background);\n}\n\n/* ── Title ────────────────────────────────────────────────── */\n\n.card-thumbnail .ct-title {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--color-slate-1200);\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n margin: 0;\n}\n\n/* ── Summary ──────────────────────────────────────────────── */\n\n.card-thumbnail .ct-summary {\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n color: var(--color-slate-1200);\n overflow: hidden;\n text-overflow: ellipsis;\n margin: 0;\n}","/* ── Card Category shell ──────────────────────────────────── */\n\n.card-category {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n/* ── Title ────────────────────────────────────────────────── */\n\n.card-category .cc-header {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n cursor: pointer;\n}\n\n.card-category .cc-header:hover .cc-title {\n text-decoration: underline;\n}\n\n.card-category .cc-header:hover .cc-thumbnailImage {\n transform: scale(1.05);\n}\n\n.card-category .cc-thumbnailImage {\n transition: transform 0.25s ease-in-out;\n}\n\n.card-category .cc-title {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n}\n\n/* ── Thumbnail ────────────────────────────────────────────── */\n\n.card-category .cc-thumbnailWrapper {\n width: 100%;\n aspect-ratio: 16 / 9;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n position: relative;\n}\n\n.card-category .cc-thumbnailImage {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n/* ── Article list ─────────────────────────────────────────── */\n\n.card-category .cc-articleList {\n display: flex;\n flex-direction: column;\n}\n\n.card-category .cc-articleItem {\n padding: var(--spacing-12) 0;\n border-bottom: 1px solid var(--color-opacity-slate-8);\n}\n\n.card-category .cc-articleItem:first-child {\n padding-top: 0;\n}\n\n.card-category .cc-articleItem:last-child {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n.card-category .cc-articleItem .card-thumbnail.ct-horizontal {\n border-bottom: none;\n padding-bottom: 0;\n}\n","/* ── Container ────────────────────────────────────────────── */\n\n.pagination {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n/* ── Page button ──────────────────────────────────────────── */\n\n.pagination .pageButton {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-32);\n height: var(--spacing-32);\n flex-shrink: 0;\n padding: 0;\n border: none;\n border-radius: var(--pagination-page-radius);\n background: transparent;\n color: var(--pagination-page-text);\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-sm);\n text-align: center;\n white-space: nowrap;\n cursor: pointer;\n outline: none;\n box-sizing: border-box;\n}\n\n.pagination .pageButton:focus-visible {\n outline: 2px solid var(--color-blue-600);\n outline-offset: 2px;\n}\n\n/* ── Active / selected page button ───────────────────────── */\n\n.pagination .pageButtonSelected {\n background: var(--pagination-page-selected-bg);\n color: var(--pagination-page-selected-text);\n border-radius: var(--pagination-page-radius);\n cursor: default;\n}\n\n/* ── Ellipsis ─────────────────────────────────────────────── */\n\n.pagination .ellipsis {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-32);\n height: var(--spacing-32);\n flex-shrink: 0;\n color: var(--pagination-page-ellipsis-text);\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-sm);\n user-select: none;\n}\n\n/* ── Nav button (prev / next) ─────────────────────────────── */\n\n.pagination .navButton {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-32);\n height: var(--spacing-32);\n flex-shrink: 0;\n padding: 0;\n border: none;\n border-radius: var(--radius-xs);\n background: transparent;\n color: var(--pagination-nav-icon);\n cursor: pointer;\n outline: none;\n box-sizing: border-box;\n}\n\n.pagination .navButton:focus-visible {\n outline: 2px solid var(--color-blue-600);\n outline-offset: 2px;\n border-radius: var(--radius-md);\n}\n\n/* ── Nav button disabled ──────────────────────────────────── */\n\n.pagination .navButtonDisabled {\n color: var(--pagination-nav-icon-disabled);\n cursor: not-allowed;\n}\n\n/* ── Nav icon slot ────────────────────────────────────────── */\n\n.pagination .navIcon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-16);\n height: var(--spacing-16);\n flex-shrink: 0;\n}","/* ============================================================\n TABS PRIMITIVE\n ============================================================ */\n\n:root {\n --tabs-gap: var(--spacing-8);\n}\n\n.tabs-menu {\n display: flex;\n align-items: center;\n gap: var(--tabs-gap);\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n /* Firefox */\n padding-bottom: var(--spacing-4);\n margin-bottom: calc(var(--spacing-4) * -1);\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.tabs-menu::-webkit-scrollbar {\n display: none;\n /* Chrome/Safari */\n}\n\n/* ── Override Chip styles for Tabs ────────────────────────── */\n\n/* Make sure the chip text doesn't wrap */\n.tabs-menu .chip {\n white-space: nowrap;\n}\n\n/* Override the default Chip selected state to use the solid dark background */\n.tabs-menu .chip.selected {\n background-color: var(--color-slate-1200);\n border-color: var(--color-slate-1200);\n color: var(--color-slate-50);\n}\n\n/* Ensure the label inherits the regular weight when selected to match Figma */\n.tabs-menu .chip.selected .label {\n font-weight: var(--font-weight-regular);\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.faq-accordion {\n width: 100%;\n}\n\n.faq-accordion--white {\n background-color: var(--color-slate-50);\n}\n\n.faq-accordion--slate {\n background-color: var(--color-slate-75);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.faq-accordion__container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .faq-accordion__container {\n gap: var(--spacing-48);\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Section header ────────────────────────────────────────── */\n\n.faq-accordion__header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 1.25rem;\n /* 20px mobile */\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .faq-accordion__header {\n align-items: center;\n gap: var(--spacing-24);\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.faq-accordion__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n margin: 0;\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .faq-accordion__title {\n text-align: center;\n }\n}\n\n/* ── Accordion list ────────────────────────────────────────── */\n\n.faq-accordion__list {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.faq-accordion__list > * {\n max-width: 100%;\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.fc-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.fc-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-48);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n /* mobile */\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .fc-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Header ────────────────────────────────────────────────── */\n\n.fc-header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n text-align: left;\n}\n\n@media (min-width: 768px) {\n .fc-header {\n align-items: center;\n text-align: center;\n }\n}\n\n/* ── Section title (H2) ────────────────────────────────────── */\n\n.fc-sectionTitle {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Section description ───────────────────────────────────── */\n\n.fc-sectionDescription {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n margin: 0;\n max-width: 640px;\n}\n\n/* ── Cards grid ────────────────────────────────────────────── */\n\n.fc-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n/* tablet: 2 columns */\n@media (min-width: 768px) {\n .fc-grid {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-24);\n }\n}\n\n/* desktop: 3 or 4 columns depending on card count */\n@media (min-width: 992px) {\n .fc-grid--3 {\n grid-template-columns: repeat(3, 1fr);\n }\n\n .fc-grid--4 {\n grid-template-columns: repeat(4, 1fr);\n }\n}\n\n/* ── Two Cards variant ─────────────────────────────────────── */\n\n.fc-grid--twoCards {\n grid-template-columns: 1fr;\n gap: var(--spacing-24);\n align-items: stretch;\n}\n\n@media (min-width: 768px) {\n .fc-grid--twoCards {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (min-width: 992px) {\n .fc-grid--twoCards {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n.fc-twoCardWrap {\n display: flex;\n flex-direction: column;\n align-self: stretch;\n min-width: 0;\n width: 100%;\n min-height: 0;\n}\n\n.fc-twoCard {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-height: min-content;\n min-width: 0;\n width: 100%;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n.fc-twoCard--light {\n background-color: var(--color-slate-75);\n}\n\n.fc-twoCard--dark {\n background-color: var(--color-slate-1200);\n}\n\n.fc-twoCard-body {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n gap: 0;\n padding: var(--spacing-32);\n}\n\n/* Equal-height row when a card has no image: grow body to fill the tile */\n.fc-twoCard:not(:has(.fc-twoCard-imageSection)) .fc-twoCard-body {\n flex: 1 1 auto;\n}\n\n.fc-twoCard-content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.fc-twoCard-title {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n.fc-twoCard--dark .fc-twoCard-title {\n color: var(--color-slate-50);\n}\n\n.fc-twoCard-description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n}\n\n.fc-twoCard--dark .fc-twoCard-description {\n color: var(--color-slate-50);\n}\n\n.fc-twoCard-linkWrap {\n margin-top: 0;\n}\n\n.fc-twoCard-platformsOuter {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n margin-top: var(--spacing-24);\n flex-shrink: 0;\n}\n\n.fc-twoCard-platformsHeading {\n margin: 0;\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-lg-line-height);\n color: var(--text-primary);\n}\n\n.fc-twoCard--dark .fc-twoCard-platformsHeading {\n color: var(--color-slate-50);\n}\n\n.fc-twoCard--light .fc-twoCard-platformsHeading {\n color: var(--text-primary);\n}\n\n.fc-twoCard-platformRow {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--spacing-16);\n}\n\n.fc-platformLink {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n text-decoration: none;\n color: var(--text-primary);\n}\n\n.fc-platformLink:hover {\n text-decoration: underline;\n}\n\n.fc-platformLink:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n border-radius: var(--radius-xs);\n}\n\n.fc-platformLink--dark {\n color: var(--color-slate-50);\n}\n\n/* Shared icon box — applies to both the <img> (iconSrc) and the\n <span> wrapper around an inline `icon` node. */\n.fc-platformLink-icon {\n display: block;\n width: 2rem;\n height: 2rem;\n flex-shrink: 0;\n object-fit: contain;\n}\n\n/* An inline SVG fills the box and paints with `currentColor`, so it\n inherits the link colour — including the slate-50 that\n `.fc-platformLink--dark` sets on a dark card shell. An <img> cannot\n do this, which is why a dark-filled asset disappears on a dark card. */\n.fc-platformLink-icon > svg {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.fc-platformLink-label {\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n}\n\n.fc-twoCard-imageSection {\n margin-top: auto;\n flex: 0 0 auto;\n width: 100%;\n aspect-ratio: 592 / 363.51;\n position: relative;\n overflow: hidden;\n background-color: transparent;\n}\n\n.fc-twoCard-image {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n object-position: bottom center;\n display: block;\n}\n\n/* ── One Card variant ──────────────────────────────────────── */\n\n.fc-oneCardShell {\n width: 100%;\n box-sizing: border-box;\n}\n\n.fc-oneCardGrid {\n box-sizing: border-box;\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: auto;\n align-items: stretch;\n gap: var(--spacing-16);\n width: 100%;\n max-width: calc(64 * var(--spacing-16));\n margin-inline: auto;\n border-radius: var(--spacing-32);\n overflow: hidden;\n}\n\n@media (min-width: 768px) {\n .fc-oneCardGrid {\n grid-template-columns: 1fr 1fr;\n grid-template-rows: auto;\n max-height: calc(30 * var(--spacing-16));\n min-height: calc(30 * var(--spacing-16));\n }\n}\n\n.fc-oneCardLeft {\n display: flex;\n flex-direction: column;\n gap: 0;\n padding: var(--spacing-32);\n box-sizing: border-box;\n min-height: 0;\n min-width: 0;\n}\n\n.fc-oneCardContentBlock {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n min-width: 0;\n}\n\n.fc-oneCardRight {\n position: relative;\n min-width: 0;\n min-height: 0;\n background-color: var(--color-slate-1200);\n box-sizing: border-box;\n}\n\n@media (max-width: 767px) {\n .fc-oneCardRight {\n padding: 0 var(--spacing-16);\n }\n}\n\n.fc-oneCardImage {\n display: block;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n object-position: center bottom;\n}\n\n@media (min-width: 768px) {\n .fc-oneCardRight {\n padding: 0;\n }\n\n .fc-oneCardImage {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n }\n}","/* ── Section shell ─────────────────────────────────────────── */\n\n.fci-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.fci-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-48);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .fci-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Header ────────────────────────────────────────────────── */\n\n.fci-header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n text-align: left;\n}\n\n@media (min-width: 768px) {\n .fci-header {\n align-items: center;\n text-align: center;\n }\n}\n\n/* ── Section title (H2) ────────────────────────────────────── */\n\n.fci-sectionTitle {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Section description ───────────────────────────────────── */\n\n.fci-sectionDescription {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n margin: 0;\n max-width: 640px;\n}\n\n/* ── Cards grid ────────────────────────────────────────────── */\n\n.fci-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n/* tablet: always 2 columns */\n@media (min-width: 768px) {\n .fci-grid {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-24);\n }\n}\n\n/* desktop: 3 or 4 columns depending on card count */\n@media (min-width: 992px) {\n .fci-grid--3 {\n grid-template-columns: repeat(3, 1fr);\n }\n\n .fci-grid--4 {\n grid-template-columns: repeat(4, 1fr);\n }\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.feature-bullets {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.feature-bullets__container {\n display: flex;\n flex-direction: column;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .feature-bullets__container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Split layout ──────────────────────────────────────────── */\n\n.feature-bullets__split {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .feature-bullets__split {\n flex-direction: row;\n align-items: center;\n gap: 8rem;\n /* 128px — no token at this scale */\n }\n\n /* Reverse column order when image is on the left */\n .feature-bullets__split--image-left {\n flex-direction: row-reverse;\n }\n}\n\n/* ── Content column ────────────────────────────────────────── */\n\n.feature-bullets__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .feature-bullets__content {\n gap: var(--spacing-32);\n width: 540px;\n flex-shrink: 0;\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.feature-bullets__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Bullet List ───────────────────────────────────────────── */\n\n.feature-bullets__bullet-list {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.feature-bullets__bullet-item {\n display: flex;\n align-items: flex-start;\n gap: var(--spacing-16);\n padding: var(--spacing-16) 0;\n border-bottom: 1px solid var(--color-opacity-slate-8);\n}\n\n.feature-bullets__bullet-item:first-child {\n padding-top: 0;\n}\n\n.feature-bullets__bullet-item:last-child {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n/* ── Icon ──────────────────────────────────────────────────── */\n\n.feature-bullets__icon-wrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.5rem; /* 24px */\n height: 1.5rem; /* 24px */\n flex-shrink: 0;\n color: var(--color-slate-1200);\n margin-top: 2px; /* Slight optical adjustment to align with text */\n}\n\n.feature-bullets__icon {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n/* ── Bullet Text ───────────────────────────────────────────── */\n\n.feature-bullets__bullet-text {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Image column ──────────────────────────────────────────── */\n\n.feature-bullets__image-wrapper {\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: var(--radius-2xl);\n /* 24px mobile */\n overflow: hidden;\n flex-shrink: 0;\n position: relative;\n background-color: transparent;\n}\n\n@media (min-width: 992px) {\n .feature-bullets__image-wrapper {\n flex: 1 0 0;\n width: auto;\n border-radius: 2rem;\n /* 32px desktop — no exact token */\n }\n}\n\n.feature-bullets__image {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n","/* ============================================================\n FOOTER COMPONENT\n Dark-style footer — token inheritance:\n Primitive (core) → Semantic (--footer-*) → Component styles\n\n Semantic tokens used:\n --footer-background var(--color-slate-1200)\n --footer-surface var(--color-slate-1100)\n --footer-header-divider var(--color-opacity-white-16) mob/tab\n --footer-divider-desktop var(--color-opacity-white-16) desktop\n --footer-nav-title-color var(--color-opacity-white-88)\n --footer-nav-link-color var(--color-slate-200)\n --footer-social-icon-color var(--color-slate-200)\n --footer-legal-text-color var(--color-opacity-white-48)\n --footer-accordion-text-color var(--color-slate-50)\n --footer-accordion-chevron-color var(--color-slate-50)\n --footer-app-badge-border var(--color-opacity-white-8)\n ============================================================ */\n\n/* ── ROOT ─────────────────────────────────────────────────────── */\n\n.footer {\n background-color: var(--footer-background);\n width: 100%;\n font-family: var(--font-family-base);\n}\n\n.footer__inner {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-32);\n padding: var(--spacing-32) var(--spacing-16);\n width: 100%;\n max-width: 640px;\n min-width: 320px;\n margin: 0 auto;\n box-sizing: border-box;\n overflow: hidden;\n}\n\n/* ── HEADER ROW ───────────────────────────────────────────────── */\n\n.footer__header {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-24);\n border-bottom: 1px solid var(--footer-header-divider);\n padding-bottom: var(--spacing-32);\n width: 100%;\n}\n\n.footer__logo-wrapper {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.footer__logo {\n height: 32px;\n width: auto;\n min-width: 1px;\n display: block;\n}\n\n/* ── SOCIAL ICONS ─────────────────────────────────────────────── */\n\n.footer__social {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n flex-shrink: 0;\n}\n\n/* Hidden in header on mobile — shown as standalone section instead */\n.footer__social--in-header {\n display: none;\n}\n\n/* Standalone social section: visible on mobile, hidden on desktop */\n.footer__social--standalone {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-8);\n width: 100%;\n}\n\n/* Centers social icons between the logo and the header Investors badge */\n.footer__social--centered {\n flex: 1 1 auto;\n justify-content: center;\n}\n\n/* Investors in People badge shown in the header row (desktop only) */\n.footer__investors-header {\n display: none;\n flex-shrink: 0;\n}\n\n.footer__social-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n color: var(--footer-social-icon-color);\n text-decoration: none;\n flex-shrink: 0;\n overflow: hidden;\n}\n\n.footer__social-icon svg {\n width: 20px;\n height: 20px;\n display: block;\n}\n\n.footer__social-icon:hover {\n opacity: 0.8;\n}\n\n/* ── AI SUMMARY BAR ───────────────────────────────────────────── */\n\n/* Inline version: visible only on desktop inside the header row */\n.footer__ai-bar.footer__ai-bar--inline {\n display: none;\n}\n\n/* Block version: visible on mobile as a standalone card */\n.footer__ai-section {\n border-bottom: 1px solid var(--footer-header-divider);\n padding-bottom: var(--spacing-32);\n width: 100%;\n box-sizing: border-box;\n}\n\n.footer__ai-bar {\n background-color: var(--footer-surface);\n border-radius: var(--radius-xl);\n padding: var(--spacing-16);\n display: flex;\n align-items: center;\n gap: var(--spacing-16);\n}\n\n.footer__ai-bar--block {\n flex-direction: column;\n}\n\n.footer__ai-bar-label {\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-xs);\n color: var(--color-slate-50);\n text-align: center;\n white-space: nowrap;\n}\n\n.footer__ai-bar-icons {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n.footer__ai-icon {\n width: 32px;\n height: 32px;\n border-radius: var(--radius-md);\n display: block;\n object-fit: cover;\n}\n\n/* ── NAVIGATION — Desktop columns (hidden by default) ─────────── */\n\n.footer__nav--columns {\n display: none;\n}\n\n.footer__column {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-32);\n flex: 1 0 0;\n}\n\n.footer__nav-section {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.footer__nav-title {\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--line-height-md);\n color: var(--footer-nav-title-color);\n margin: 0;\n white-space: nowrap;\n}\n\n.footer__nav-links {\n list-style: none;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n/* ── NAVIGATION — Mobile/Tablet accordion ─────────────────────── */\n\n.footer__nav--accordion {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.footer__accordion-item {\n width: 100%;\n}\n\n.footer__accordion-toggle {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: var(--spacing-16) 0;\n background: none;\n border: none;\n cursor: pointer;\n text-align: left;\n font-family: var(--font-family-base);\n}\n\n.footer__accordion-label {\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--footer-accordion-text-color);\n}\n\n.footer__accordion-chevron {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: var(--footer-accordion-chevron-color);\n flex-shrink: 0;\n border-radius: var(--radius-md);\n transition: transform 150ms ease;\n}\n\n.footer__accordion-item--open .footer__accordion-chevron {\n transform: rotate(180deg);\n}\n\n.footer__accordion-links {\n list-style: none;\n padding: 0 0 var(--spacing-8) 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n/* ── SHARED NAV LINK ──────────────────────────────────────────── */\n\n.footer__nav-link {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--footer-nav-link-color);\n text-decoration: none;\n white-space: nowrap;\n cursor: pointer;\n}\n\n.footer__nav-link:hover {\n opacity: 0.8;\n}\n\n.footer__nav-link svg {\n width: 12px;\n height: 12px;\n flex-shrink: 0;\n}\n\n/* ── DESKTOP SIDEBAR (hidden by default) ──────────────────────── */\n\n.footer__sidebar {\n display: none;\n}\n\n/* ── DERIV GO — shared styles for both card and banner ─────────── */\n\n.footer__deriv-go-card,\n.footer__deriv-go-banner {\n background-color: var(--footer-surface);\n border-radius: var(--radius-xl);\n padding: var(--spacing-24);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n box-sizing: border-box;\n}\n\n/* Stacked banner: full width on mobile/tablet */\n.footer__deriv-go-banner {\n width: 100%;\n}\n\n/* Banner inner sections */\n.footer__deriv-go-banner-info {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n}\n\n.footer__deriv-go-banner-badges {\n width: 100%;\n}\n\n.footer__deriv-go-header {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n.footer__deriv-go-logo {\n width: 24px;\n height: 24px;\n display: block;\n flex-shrink: 0;\n overflow: hidden;\n}\n\n.footer__deriv-go-title {\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--line-height-md);\n color: var(--color-slate-50);\n white-space: nowrap;\n}\n\n.footer__deriv-go-desc {\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-50);\n margin: 0;\n}\n\n.footer__deriv-go-qr {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n/* Framed variant — opts into a pill background behind the QR + label,\n used when the QR is passed via `qrCodeIcon` (pixel-perfect assets that\n don't bake in their own card treatment, e.g. deriv.com's real QR). */\n.footer__deriv-go-qr--framed {\n background-color: var(--color-opacity-white-8);\n border-radius: var(--radius-xl);\n padding: var(--spacing-8);\n box-sizing: border-box;\n}\n\n.footer__deriv-go-qr-img {\n width: 64px;\n height: 64px;\n display: block;\n flex-shrink: 0;\n}\n\n/* SVG QR code variant */\n.footer__deriv-go-qr-icon {\n width: 64px;\n height: 64px;\n display: block;\n flex-shrink: 0;\n}\n\n.footer__deriv-go-qr-icon svg,\n.footer__deriv-go-qr-icon img {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.footer__deriv-go-qr-label {\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-50);\n}\n\n/* ── TRADE ON TRADINGVIEW BANNER ──────────────────────────────── */\n\n.footer__trade-on {\n display: block;\n width: 100%;\n text-decoration: none;\n}\n\n.footer__trade-on-img {\n display: block;\n width: 100%;\n height: auto;\n}\n\n/* ── APP STORE BADGES ─────────────────────────────────────────── */\n\n.footer__app-badges {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--spacing-8);\n}\n\n.footer__app-badge {\n display: block;\n width: 100%;\n text-decoration: none;\n padding: var(--spacing-4) 0;\n}\n\n.footer__app-badge img {\n display: block;\n width: 100%;\n height: auto;\n}\n\n/* SVG badge variant — a pill background behind the icon, for badge\n assets (e.g. deriv.com's real store badges) that don't bake in their\n own card/border treatment the way the default `imageSrc` badges do. */\n.footer__app-badge-svg {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n box-sizing: border-box;\n padding: var(--spacing-12) var(--spacing-16);\n background-color: var(--color-opacity-white-8);\n border-radius: var(--radius-full);\n text-decoration: none;\n}\n\n.footer__app-badge-svg svg,\n.footer__app-badge-svg img {\n display: block;\n height: 32px;\n width: auto;\n}\n\n.footer__app-note {\n font-family: var(--font-family-base);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-normal);\n color: var(--color-slate-50);\n margin: var(--spacing-8) 0 0 0;\n}\n\n/* ── INVESTORS IN PEOPLE ──────────────────────────────────────── */\n\n/* Plain badge, no card background — the SVG itself is a transparent\n white wordmark meant to sit directly on the footer's dark background,\n matching deriv.com (no dark surface/padding behind it). */\n.footer__investors-card {\n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n}\n\n/* Mobile/tablet: centred, full width */\n.footer__investors-stacked {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n}\n\n.footer__investors-img {\n height: 32px;\n width: 160px;\n display: block;\n object-fit: contain;\n}\n\n/* ── LEGAL & RISK WARNING ─────────────────────────────────────── */\n\n.footer__legal-block {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n.footer__license {\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--footer-legal-text-color);\n width: 100%;\n}\n\n.footer__license p {\n margin: 0 0 var(--spacing-16) 0;\n}\n\n.footer__license p:last-child {\n margin-bottom: 0;\n}\n\n.footer__license a {\n color: var(--footer-legal-text-color);\n text-decoration: underline;\n}\n\n.footer__risk-warning {\n background-color: var(--footer-surface);\n border-radius: var(--radius-md);\n padding: var(--spacing-16);\n box-sizing: border-box;\n width: 100%;\n}\n\n.footer__risk-warning-text {\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--footer-legal-text-color);\n margin: 0;\n}\n\n/* ============================================================\n TABLET ≥768px\n - Wider inner container + padding\n - Still accordion nav\n - AI section hidden (only mobile shows it)\n ============================================================ */\n\n@media (min-width: 768px) {\n .footer__inner {\n max-width: 1280px;\n min-width: 641px;\n padding: var(--spacing-32) var(--spacing-24);\n }\n\n /* Header: restore space-between and show social icons */\n .footer__header {\n justify-content: space-between;\n }\n\n .footer__social--in-header {\n display: flex;\n }\n\n /* Hide standalone social section */\n .footer__social--standalone {\n display: none;\n }\n\n /* Hide mobile AI card on tablet+ */\n .footer__ai-section {\n display: none;\n }\n\n /* Deriv GO banner: two-column layout on tablet */\n .footer__deriv-go-banner {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--spacing-24);\n }\n\n .footer__deriv-go-banner-info {\n flex: 1 1 auto;\n }\n\n .footer__deriv-go-banner-badges {\n flex: 0 0 280px;\n width: 280px;\n }\n}\n\n/* ============================================================\n DESKTOP ≥992px\n - Multi-column nav + sidebar\n - Inline AI bar inside header row\n - Accordion hidden\n ============================================================ */\n\n@media (min-width: 992px) {\n .footer__inner {\n max-width: 1280px;\n padding: var(--spacing-48) var(--spacing-32);\n gap: var(--spacing-40);\n }\n\n /* Header: switch to desktop divider colour */\n .footer__header {\n border-bottom-color: var(--footer-divider-desktop);\n }\n\n /* Show inline AI bar, hide block version */\n .footer__ai-bar.footer__ai-bar--inline {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding-top: var(--spacing-16);\n padding-bottom: var(--spacing-16);\n gap: var(--spacing-16);\n }\n\n .footer__ai-section {\n display: none;\n }\n\n /* Investors in People badge in the header row */\n .footer__investors-header {\n display: flex;\n align-items: center;\n }\n\n /* Show desktop columns, hide accordion */\n .footer__nav--columns {\n display: flex;\n gap: var(--spacing-24);\n align-items: flex-start;\n width: 100%;\n }\n\n .footer__nav--accordion {\n display: none;\n }\n\n /* Show desktop sidebar */\n .footer__sidebar {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n align-items: flex-start;\n flex-shrink: 0;\n width: 192px;\n }\n\n /* Desktop sidebar Deriv GO card: fixed 192px width */\n .footer__deriv-go-card {\n width: 192px;\n }\n\n /* Desktop sidebar trade-on banner: fixed 192px width */\n .footer__trade-on {\n width: 192px;\n }\n\n /* Badges: single column inside narrow sidebar card */\n .footer__deriv-go-card .footer__app-badges {\n grid-template-columns: 1fr;\n }\n\n /* Hide mobile/tablet stacked versions */\n .footer__deriv-go-banner {\n display: none;\n }\n\n .footer__investors-stacked {\n display: none;\n }\n\n .footer__trade-on-stacked {\n display: none;\n }\n\n /* Legal block: left-aligned on desktop */\n .footer__legal-block {\n align-items: flex-start;\n }\n\n /* Restore icon sizes to 24px on desktop */\n .footer__social-icon {\n width: 24px;\n height: 24px;\n }\n\n .footer__social-icon svg {\n width: 16px;\n height: 16px;\n }\n\n .footer__ai-icon {\n width: 24px;\n height: 24px;\n }\n}\n","/* ============================================================\n HERO COMPONENT\n Variants: split | centered | showcase\n Dark, full-bleed, immersive — 100vh with scroll-driven shrink\n\n Token inheritance:\n Core (--color-*, --spacing-*, --font-*) →\n Semantic (--typography-*) →\n Component (--hero-*) →\n Styles\n ============================================================ */\n\n/* ── COMPONENT TOKENS ─────────────────────────────────────── */\n:root {\n --hero-dark-bg: var(--color-slate-1200);\n --hero-text-light: var(--color-slate-50);\n\n --hero-subtitle-size: var(--typography-body-md-font-size);\n --hero-subtitle-lh: var(--typography-body-md-line-height);\n --hero-subtitle-weight: var(--font-weight-semi-bold);\n\n --hero-title-size: var(--typography-h1-font-size);\n --hero-title-lh: var(--typography-h1-line-height);\n\n --hero-body-size: var(--typography-body-md-font-size);\n --hero-body-lh: var(--typography-body-md-line-height);\n\n /* Split variant padding */\n --hero-split-padding-top-mobile: var(--spacing-80);\n --hero-split-padding-top-tablet: var(--spacing-96);\n /* No desktop top padding — the split text block is optically centred */\n\n /* Split variant — desktop content floor, keeps the centred text block\n from colliding with the fixed navbar on short viewports */\n --hero-split-min-height: 35.25rem;\n\n /* Split variant — secondary foreground (floatingImage) placement at desktop.\n Percentages of the hero section, so the layer tracks the hero at any\n width and stays tucked behind the subject. */\n --hero-split-floating-width: 16%;\n --hero-split-floating-inset-inline-end: 28%;\n --hero-split-floating-inset-bottom: 17%;\n\n /* Centered / Showcase variant padding */\n --hero-shrink-radius: 3.5rem;\n --hero-padding-top-mobile: var(--spacing-80);\n --hero-padding-top-tablet: var(--spacing-96);\n --hero-padding-top-desktop: var(--spacing-112);\n}\n\n/* ── ROOT ─────────────────────────────────────────────────── */\n\n.hero {\n position: relative;\n width: 100%;\n font-family: var(--font-family-base);\n box-sizing: border-box;\n overflow: hidden;\n background-color: var(--hero-dark-bg);\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n height: 100vh;\n display: flex;\n align-items: flex-start;\n}\n\n/* ── OVERLAY ──────────────────────────────────────────────── */\n\n.hero__overlay {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 2;\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.hero__inner {\n position: relative;\n z-index: 3;\n width: 100%;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n box-sizing: border-box;\n padding: var(--spacing-24) var(--spacing-16);\n}\n\n/* ── TEXT BLOCK ───────────────────────────────────────────── */\n\n.hero__text {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.hero__subtitle {\n font-size: var(--hero-subtitle-size);\n font-weight: var(--hero-subtitle-weight);\n line-height: var(--hero-subtitle-lh);\n color: var(--hero-text-light);\n margin: 0;\n}\n\n.hero__title {\n font-size: var(--hero-title-size);\n font-weight: var(--typography-h1-font-weight);\n line-height: var(--hero-title-lh);\n color: var(--hero-text-light);\n margin: 0;\n}\n\n.hero__description {\n font-size: var(--hero-body-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--hero-body-lh);\n color: var(--hero-text-light);\n margin: 0;\n}\n\n/* ── CTA BUTTONS ──────────────────────────────────────────── */\n\n.hero__buttons {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n width: 100%;\n align-items: stretch;\n}\n\n/* Buttons are wrapped in an <a> when a href is supplied, so align-items:\n stretch alone only stretches the anchor — the inline-flex <button> inside\n it still shrinks to its content. Target both so the CTA is visually\n full-width on mobile, not just its tap target. */\n.hero__buttons a,\n.hero__buttons .button {\n width: 100%;\n}\n\n/* ── CONTENT BODY (text + buttons) ───────────────────────── */\n\n.hero__body {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n}\n\n/* ============================================================\n VARIANT: SPLIT\n Dark full-bleed bg image, gradient overlay, left text + right image\n Scroll-driven shrink animation\n ============================================================ */\n\n.hero--split {\n /* Background photo is anchored left so the subject side stays uncropped */\n background-position: left center;\n animation: hero-split-shrink linear both;\n animation-timeline: view();\n animation-range: exit 0% exit 40%;\n}\n\n/* Square at rest, rounding only as the hero scrolls out — matches the\n `centered` and `showcase` variants. deriv.com's own hero carries a static\n 64px rounding instead, but that only reads correctly there because their\n Trustpilot bar covers the hero's bottom edge. */\n@keyframes hero-split-shrink {\n 0% {\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n scale: 1;\n }\n 100% {\n border-bottom-left-radius: var(--hero-shrink-radius);\n border-bottom-right-radius: var(--hero-shrink-radius);\n scale: 0.94;\n }\n}\n\n/* Mobile/tablet: transparent top → dark bottom */\n.hero--split .hero__overlay {\n background: linear-gradient(\n 180deg,\n transparent 0%,\n transparent 30%,\n var(--color-opacity-slate-48) 55%,\n var(--color-opacity-slate-88) 75%,\n var(--hero-dark-bg) 100%\n );\n}\n\n.hero--split .hero__inner {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n width: 100%;\n height: 100vh;\n padding-top: 0;\n padding-bottom: var(--spacing-40);\n padding-left: var(--spacing-16);\n padding-right: var(--spacing-16);\n}\n\n.hero--split .hero__content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n/* Mobile/tablet: hero image — vertically centred in viewport, 80vh band */\n.hero--split .hero__image-slot {\n position: absolute;\n top: 10vh;\n bottom: auto;\n left: 0;\n right: 0;\n height: 80vh;\n z-index: 1;\n overflow: visible;\n pointer-events: none;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.hero--split .hero__image-slot img {\n width: 100%;\n max-height: 100%;\n object-fit: contain;\n object-position: center;\n display: block;\n}\n\n.hero--split .hero__image-slot > *:not(img) {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n/* Secondary foreground layer (e.g. a device mockup tucked behind the subject).\n Hidden below the desktop breakpoint — at those sizes the hero image already\n fills the frame and there is no room to place it legibly. */\n.hero--split .hero__floating-image {\n display: none;\n pointer-events: none;\n}\n\n/* Eyebrow sits tight against the title (no gap), so spacing inside the text\n block is driven by an explicit margin on the description instead of `gap`. */\n.hero--split .hero__text {\n gap: 0;\n}\n\n.hero--split .hero__subtitle {\n font-size: var(--typography-h5-font-size);\n line-height: var(--typography-h5-line-height);\n font-weight: var(--typography-h5-font-weight);\n}\n\n.hero--split .hero__description {\n margin-top: var(--spacing-16);\n}\n\n.hero--split .hero__buttons {\n align-items: stretch;\n}\n\n/* ============================================================\n VARIANT: CENTERED\n Full bg image, centered text, top gradient overlay, 100vh\n ============================================================ */\n\n.hero--centered {\n animation: hero-centered-shrink linear both;\n animation-timeline: view();\n animation-range: exit 0% exit 40%;\n}\n\n@keyframes hero-centered-shrink {\n 0% {\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n scale: 1;\n }\n 100% {\n border-bottom-left-radius: var(--hero-shrink-radius);\n border-bottom-right-radius: var(--hero-shrink-radius);\n scale: 0.94;\n }\n}\n\n/* Dark top → transparent bottom overlay */\n.hero--centered .hero__overlay {\n background: linear-gradient(\n 180deg,\n var(--hero-dark-bg) 0%,\n var(--color-opacity-slate-88) 20%,\n var(--color-opacity-slate-48) 45%,\n transparent 70%\n );\n}\n\n.hero--centered .hero__inner {\n display: flex;\n align-items: flex-start;\n justify-content: center;\n width: 100%;\n height: calc(100vh - 16px);\n padding-top: var(--hero-padding-top-mobile);\n padding-bottom: 0;\n}\n\n.hero--centered .hero__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-24);\n width: 100%;\n height: 100vh;\n padding-bottom: var(--spacing-48);\n text-align: left;\n justify-content: flex-start;\n}\n\n.hero--centered .hero__text {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n max-width: 640px;\n width: 100%;\n}\n\n.hero--centered .hero__buttons {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-12);\n align-items: stretch;\n width: 100%;\n justify-content: center;\n}\n\n/* ============================================================\n VARIANT: SHOWCASE\n Dark bg + full-bleed bg image, center-aligned text,\n large product image below buttons\n ============================================================ */\n\n.hero--showcase {\n animation: hero-showcase-shrink linear both;\n animation-timeline: view();\n animation-range: exit 0% exit 40%;\n}\n\n@keyframes hero-showcase-shrink {\n 0% {\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n scale: 1;\n }\n 100% {\n border-bottom-left-radius: var(--hero-shrink-radius);\n border-bottom-right-radius: var(--hero-shrink-radius);\n scale: 0.94;\n }\n}\n\n/* Dark top → transparent bottom overlay */\n.hero--showcase .hero__overlay {\n background: linear-gradient(\n 180deg,\n var(--hero-dark-bg) 0%,\n var(--color-opacity-slate-88) 20%,\n var(--color-opacity-slate-48) 45%,\n transparent 70%\n );\n}\n\n.hero--showcase .hero__inner {\n display: flex;\n align-items: flex-start;\n justify-content: center;\n width: 100%;\n height: calc(100vh - 16px);\n padding-top: var(--hero-padding-top-mobile);\n padding-bottom: 0;\n}\n\n.hero--showcase .hero__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-24);\n width: 100%;\n height: 100vh;\n padding-bottom: var(--spacing-48);\n text-align: left;\n}\n\n.hero--showcase .hero__text {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n max-width: 640px;\n width: 100%;\n}\n\n.hero--showcase .hero__buttons {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-12);\n align-items: stretch;\n width: 100%;\n}\n\n/* Large product image — centered below buttons */\n.hero--showcase .hero__product-image {\n position: relative;\n width: 100%;\n max-width: 100%;\n height: 100%;\n min-height: 17.5rem;\n max-height: 50vh;\n overflow: clip;\n margin-top: auto;\n margin-bottom: 8px;\n}\n\n.hero--showcase .hero__product-image img,\n.hero--showcase .hero__product-image > * {\n width: 100%;\n height: 100%;\n display: block;\n object-fit: contain;\n object-position: center;\n}\n\n/* Smaller floating image — below product image */\n.hero--showcase .hero__floating-image {\n width: 100%;\n max-width: 160px;\n margin-top: auto;\n margin-bottom: var(--spacing-40);\n aspect-ratio: 1 / 1;\n}\n\n.hero--showcase .hero__floating-image img,\n.hero--showcase .hero__floating-image > * {\n width: 100%;\n height: 100%;\n display: block;\n object-fit: cover;\n object-position: center;\n}\n\n/* ============================================================\n TABLET ≥768px\n ============================================================ */\n\n@media (min-width: 768px) {\n .hero__inner {\n padding: var(--spacing-40) var(--spacing-24);\n }\n\n /* Buttons revert to natural content width once they sit in a row */\n .hero__buttons a,\n .hero__buttons .button {\n width: auto;\n }\n\n .hero--split .hero__inner {\n padding-top: var(--hero-split-padding-top-tablet);\n padding-bottom: var(--spacing-40);\n padding-left: var(--spacing-24);\n padding-right: var(--spacing-24);\n justify-content: flex-end;\n }\n\n .hero--split .hero__buttons {\n flex-direction: row;\n align-items: center;\n width: auto;\n }\n\n .hero--centered .hero__inner {\n padding-top: var(--hero-padding-top-tablet);\n padding-bottom: 0;\n }\n\n .hero--centered .hero__content {\n align-items: center;\n text-align: center;\n }\n\n .hero--centered .hero__text {\n align-items: center;\n }\n\n .hero--centered .hero__buttons {\n flex-direction: row;\n align-items: center;\n justify-content: center;\n max-width: none;\n width: auto;\n }\n\n .hero--showcase .hero__inner {\n padding-top: var(--hero-padding-top-tablet);\n padding-bottom: 0;\n }\n\n .hero--showcase .hero__content {\n align-items: center;\n text-align: center;\n }\n\n .hero--showcase .hero__text {\n align-items: center;\n }\n\n .hero--showcase .hero__buttons {\n flex-direction: row;\n align-items: center;\n justify-content: center;\n max-width: none;\n width: auto;\n }\n\n .hero--showcase .hero__product-image {\n max-width: 640px;\n }\n\n .hero--showcase .hero__floating-image {\n max-width: 180px;\n }\n}\n\n/* ============================================================\n DESKTOP ≥992px\n ============================================================ */\n\n@media (min-width: 992px) {\n .hero__inner {\n padding: var(--spacing-48) var(--spacing-32);\n }\n\n /* ── Split desktop: text constrained to left half ── */\n /* Text block is optically centred in the viewport — no vertical padding,\n with a min-height floor so short viewports don't crowd the navbar. */\n .hero--split .hero__inner {\n max-width: var(--content-width-1280);\n padding-top: 0;\n padding-bottom: 0;\n padding-left: var(--spacing-32);\n padding-right: var(--spacing-32);\n height: 100vh;\n min-height: var(--hero-split-min-height);\n justify-content: center;\n align-items: flex-start;\n }\n\n .hero--split .hero__content {\n flex-direction: column;\n gap: var(--spacing-24);\n max-width: 600px;\n }\n\n .hero--split .hero__left {\n width: 100%;\n }\n\n .hero--split .hero__body {\n gap: var(--spacing-24);\n }\n\n /* Desktop: image anchored to the bottom-right, bleeding past both edges\n so the subject is cropped by the frame rather than floating in it. */\n .hero--split .hero__image-slot {\n position: absolute;\n inset: auto -4% -14% auto;\n transform: none;\n z-index: 1;\n width: 50%;\n height: 100%;\n display: block;\n overflow: visible;\n pointer-events: none;\n max-width: none;\n }\n\n .hero--split .hero__image-slot img {\n height: 100%;\n width: 100%;\n max-height: none;\n max-width: none;\n object-fit: contain;\n object-position: 40% 100%;\n }\n\n /* Desktop: secondary foreground anchored to the section's lower-inline-end,\n sized and offset as a share of the section so it tracks the hero at any\n width. Same z-index as the image slot — DOM order (this element first)\n keeps it behind the subject. */\n .hero--split .hero__floating-image {\n display: block;\n position: absolute;\n width: var(--hero-split-floating-width);\n inset-inline-end: var(--hero-split-floating-inset-inline-end);\n bottom: var(--hero-split-floating-inset-bottom);\n z-index: 1;\n }\n\n /* Natural aspect ratio — never cropped to a square, so portrait device\n mockups keep their proportions. */\n .hero--split .hero__floating-image img,\n .hero--split .hero__floating-image > *:not(img) {\n display: block;\n width: 100%;\n height: auto;\n }\n\n .hero--split .hero__buttons {\n flex-direction: row;\n align-items: center;\n width: auto;\n gap: var(--spacing-16);\n }\n\n /* Desktop split overlay: a light top vignette plus a very subtle diagonal\n wash — just enough to seat the text without flattening the photo. */\n .hero--split .hero__overlay {\n background:\n linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0.4) 0%,\n rgba(255, 255, 255, 0) 12%\n ),\n linear-gradient(\n 84.29deg,\n rgba(0, 0, 0, 0.2) 22%,\n rgba(143, 143, 143, 0.04) 84%,\n rgba(0, 0, 0, 0) 100%\n );\n }\n\n /* ── Centered desktop ── */\n .hero--centered .hero__inner {\n padding-top: var(--hero-padding-top-desktop);\n padding-bottom: 0;\n }\n\n .hero--centered .hero__text {\n max-width: 760px;\n }\n\n .hero--centered .hero__buttons {\n flex-direction: row;\n align-items: center;\n justify-content: center;\n width: auto;\n }\n\n /* ── Showcase desktop ── */\n .hero--showcase .hero__inner {\n padding-top: var(--hero-padding-top-desktop);\n padding-bottom: 0;\n }\n\n .hero--showcase .hero__text {\n max-width: 760px;\n }\n\n .hero--showcase .hero__product-image {\n width: auto;\n max-width: none;\n height: 50vh;\n max-height: none;\n aspect-ratio: 1 / 1;\n }\n\n .hero--showcase .hero__floating-image {\n max-width: 200px;\n }\n}\n\n/* ============================================================\n WIDE ≥1280px\n ============================================================ */\n\n@media (min-width: 1280px) {\n .hero--showcase .hero__product-image {\n width: auto;\n max-width: none;\n height: 50vh;\n max-height: none;\n aspect-ratio: 1 / 1;\n }\n\n .hero--showcase .hero__floating-image {\n max-width: 220px;\n }\n}\n","/* ============================================================\n HEADER COMPONENT\n Variants: visuals | minimal | dark | dark-search\n Light grey bg (visuals/minimal) or dark navy bg (dark/dark-search),\n content-first, lower visual weight\n\n Token inheritance:\n Core (--color-*, --spacing-*, --font-*) →\n Semantic (--typography-*) →\n Component (--header-*) →\n Styles\n ============================================================ */\n\n/* ── COMPONENT TOKENS ─────────────────────────────────────── */\n:root {\n --header-light-bg: var(--color-slate-75);\n --header-text-dark: var(--text-primary);\n\n --header-dark-bg: var(--color-slate-1200);\n --header-text-light: var(--color-slate-50);\n --header-dark-min-height: 420px;\n --header-dark-min-height-desktop: 460px;\n\n /* Top clearance for a fixed Navbar rendered above the header.\n 0 by default (header is not always paired with the navbar); the\n `underNavbar` prop / `.header--under-navbar` modifier sets it to the\n navbar's footprint so the title never slides under the fixed pill. */\n --header-navbar-clearance: 0px;\n\n --header-light-min-height: 540px;\n\n --header-subtitle-size: var(--typography-body-md-font-size);\n --header-subtitle-lh: var(--typography-body-md-line-height);\n --header-subtitle-weight: var(--font-weight-semi-bold);\n\n --header-title-size: var(--typography-h1-font-size);\n --header-title-lh: var(--typography-h1-line-height);\n\n --header-body-size: var(--typography-body-md-font-size);\n --header-body-lh: var(--typography-body-md-line-height);\n}\n\n/* ── ROOT ─────────────────────────────────────────────────── */\n\n.header {\n position: relative;\n width: 100%;\n font-family: var(--font-family-base);\n box-sizing: border-box;\n overflow: hidden;\n background-color: var(--header-light-bg);\n min-height: calc(var(--header-light-min-height) + var(--header-navbar-clearance));\n display: flex;\n align-items: center;\n}\n\n/* ── NAVBAR CLEARANCE ─────────────────────────────────────────\n Opt-in modifier for pages that render the fixed `Navbar` above the\n header. Reserves the navbar's footprint as top clearance so the\n vertically-centred content clears the fixed pill. The navbar footprint\n is its bar height (mobile/tablet, where the bar has no vertical padding)\n and bar height + 2× spacing-16 at ≥992px (where the bar is padded). */\n.header--under-navbar {\n --header-navbar-clearance: var(--navbar-height, 4rem);\n}\n\n/* ── SVG GRID PATTERN ─────────────────────────────────────── */\n\n.header__grid {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 0;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64'%3E%3Cpath d='M 64 0 L 0 0 0 64' fill='none' stroke='%23cfd4d8' stroke-width='0.5' opacity='0.5'/%3E%3C/svg%3E\");\n background-repeat: repeat;\n background-size: 64px 64px;\n}\n\n/* ── OVERLAY — fades visuals at all edges ─────────────────── */\n\n.header__overlay {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 2;\n background:\n linear-gradient(to right, var(--header-light-bg) 0%, rgba(246, 247, 248, 0) 18%, rgba(246, 247, 248, 0) 82%, var(--header-light-bg) 100%),\n linear-gradient(to bottom, var(--header-light-bg) 0%, rgba(246, 247, 248, 0) 30%, rgba(246, 247, 248, 0) 70%, var(--header-light-bg) 100%);\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.header__inner {\n position: relative;\n z-index: 3;\n width: 100%;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n box-sizing: border-box;\n padding: calc(var(--spacing-24) + var(--header-navbar-clearance)) var(--spacing-16) var(--spacing-24);\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n min-height: calc(var(--header-light-min-height) + var(--header-navbar-clearance));\n}\n\n/* ── CONTENT ──────────────────────────────────────────────── */\n\n.header__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-32);\n width: 100%;\n text-align: left;\n}\n\n/* ── BODY (text + buttons) ────────────────────────────────── */\n\n.header__body {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n}\n\n/* ── TEXT BLOCK ───────────────────────────────────────────── */\n\n.header__text {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n align-items: flex-start;\n max-width: var(--content-width-846);\n}\n\n.header__subtitle {\n font-size: var(--header-subtitle-size);\n font-weight: var(--header-subtitle-weight);\n line-height: var(--header-subtitle-lh);\n color: var(--header-text-dark);\n margin: 0;\n}\n\n.header__title {\n font-size: var(--header-title-size);\n font-weight: var(--typography-h1-font-weight);\n line-height: var(--header-title-lh);\n color: var(--header-text-dark);\n margin: 0;\n}\n\n.header__description {\n font-size: var(--header-body-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--header-body-lh);\n color: var(--header-text-dark);\n margin: 0;\n}\n\n/* ── CTA BUTTONS ──────────────────────────────────────────── */\n\n.header__buttons {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n width: 100%;\n align-items: stretch;\n justify-content: flex-start;\n}\n\n/* ── FLOATING VISUALS (visuals variant only) ──────────────── */\n\n.header__visual {\n position: absolute;\n z-index: 1;\n overflow: hidden;\n pointer-events: none;\n}\n\n.header__visual img,\n.header__visual > * {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n object-position: center;\n}\n\n/* Left visual: top-left corner; right visual: bottom-right corner */\n.header__visual--left {\n width: 160px;\n height: 160px;\n top: -20px;\n left: -20px;\n bottom: auto;\n right: auto;\n will-change: transform;\n}\n\n.header__visual--right {\n width: 160px;\n height: 160px;\n bottom: -20px;\n right: -20px;\n top: auto;\n left: auto;\n will-change: transform;\n}\n\n/* ============================================================\n VARIANT: DARK / DARK-SEARCH\n Dark navy bg, same centered layout as visuals/minimal, shorter\n min-height (420px mobile/tablet, 460px desktop — see the\n ≥992px media query below), light SVG grid, light text\n ============================================================ */\n\n.header--dark,\n.header--dark-search {\n background-color: var(--header-dark-bg);\n min-height: calc(var(--header-dark-min-height) + var(--header-navbar-clearance));\n}\n\n.header--dark .header__inner,\n.header--dark-search .header__inner {\n min-height: calc(var(--header-dark-min-height) + var(--header-navbar-clearance));\n}\n\n.header--dark .header__grid,\n.header--dark-search .header__grid {\n background-image: url(\"data:image/svg+xml,%3Csvg width='1440' height='540' viewBox='0 0 1440 540' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg opacity='0.5' clip-path='url%28%23clip0_3324_31317%29'%3E%3Cg opacity='0.4' clip-path='url%28%23clip1_3324_31317%29'%3E%3Cpath d='M671.699 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M767.633 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M863.535 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M959.473 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M1055.38 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M1151.31 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M1247.22 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M1343.15 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M1439.05 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M96.2773 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M0.996094 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M192.184 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M288.117 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M384.023 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M479.957 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M575.863 0.000488281V985.531' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M0.996094 537.896H2109.75' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M0.996094 448.315H2109.75' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M0.996094 358.751H2109.75' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M0.996094 269.188H2109.75' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M0.996094 179.608H2109.75' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M0.996094 90.022H2109.75' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3Cpath d='M0.996094 0.462891H2109.75' stroke='%23FF7E88' stroke-miterlimit='10'/%3E%3C/g%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_3324_31317'%3E%3Crect width='1440' height='540' fill='white'/%3E%3C/clipPath%3E%3CclipPath id='clip1_3324_31317'%3E%3Crect width='1440' height='628' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: top center;\n background-size: cover;\n}\n\n.header--dark .header__overlay,\n.header--dark-search .header__overlay {\n background:\n radial-gradient(ellipse at center, var(--header-dark-bg) 0%, rgba(24, 28, 37, 0) 70%),\n linear-gradient(to right, var(--header-dark-bg) 0%, rgba(24, 28, 37, 0) 18%, rgba(24, 28, 37, 0) 82%, var(--header-dark-bg) 100%),\n linear-gradient(to bottom, var(--header-dark-bg) 0%, rgba(24, 28, 37, 0) 30%, rgba(24, 28, 37, 0) 70%, var(--header-dark-bg) 100%);\n}\n\n.header--dark .header__subtitle,\n.header--dark-search .header__subtitle,\n.header--dark .header__title,\n.header--dark-search .header__title,\n.header--dark .header__description,\n.header--dark-search .header__description {\n color: var(--header-text-light);\n}\n\n/* ── Search field (dark-search variant only) ──────────────── */\n\n.header__search {\n width: 100%;\n max-width: var(--content-width-1064);\n}\n\n.header__search .sf-wrapper {\n --field-surface-outline: var(--color-opacity-white-8);\n --field-border-default: var(--color-opacity-white-16);\n --field-border-hover: var(--color-opacity-white-24);\n --field-border-focus: var(--color-slate-50);\n --field-text-default: var(--color-slate-50);\n --field-text-focus: var(--color-slate-50);\n --field-text-placeholder: var(--color-opacity-white-48);\n --field-icon-default: var(--color-opacity-white-48);\n --field-icon-subtle: var(--color-opacity-white-48);\n}\n\n/* ============================================================\n TABLET ≥768px\n ============================================================ */\n\n@media (min-width: 768px) {\n .header__inner {\n padding: calc(var(--spacing-40) + var(--header-navbar-clearance)) var(--spacing-24) var(--spacing-40);\n align-items: center;\n }\n\n .header__content {\n align-items: center;\n text-align: center;\n }\n\n .header__text {\n align-items: center;\n }\n\n .header__buttons {\n flex-direction: row;\n align-items: center;\n justify-content: center;\n width: auto;\n }\n}\n\n/* ============================================================\n DESKTOP ≥992px\n ============================================================ */\n\n@media (min-width: 992px) {\n /* At ≥992px the navbar bar gains 2× spacing-16 of vertical padding, so its\n footprint grows beyond the bare bar height — widen the clearance to match. */\n .header--under-navbar {\n --header-navbar-clearance: calc(var(--navbar-height, 4rem) + var(--spacing-16) * 2);\n }\n\n .header__inner {\n padding: calc(var(--spacing-48) + var(--header-navbar-clearance)) var(--spacing-32) var(--spacing-48);\n position: relative;\n }\n\n .header__content {\n max-width: var(--content-width-846);\n width: 100%;\n }\n\n .header--dark,\n .header--dark-search,\n .header--dark .header__inner,\n .header--dark-search .header__inner {\n min-height: calc(var(--header-dark-min-height-desktop) + var(--header-navbar-clearance));\n }\n\n .header__buttons {\n flex-direction: row;\n width: auto;\n }\n\n /* Desktop visuals: larger, left visual top-left, right visual bottom-right */\n .header--visuals .header__visual--left {\n width: 241px;\n height: 241px;\n top: 48px;\n left: 48px;\n bottom: auto;\n right: auto;\n }\n\n .header--visuals .header__visual--right {\n width: 241px;\n height: 241px;\n bottom: 48px;\n right: 48px;\n top: auto;\n left: auto;\n }\n}\n","/* ============================================================\n STATS V2 — laurel-wrapped award badges + auto-cycling carousel\n Mirrors the Webflow `stats-carousel` reference layout while\n reusing the same animation primitives as the Default Stats.\n\n Token inheritance:\n Primitive (core) → Semantic (--stats-v2-*) → Component\n ============================================================ */\n\n:root {\n /* Section bg is transparent in the Webflow reference — only the\n carousel card has a background, so it visibly \"pops\" against\n the page. The card uses `--color-slate-75` (#f6f7f8), the\n exact value referenced in the Webflow `stats-carousel` CSS\n (`.achievements_slider-component { background-color: #f6f7f8 }`).\n `--color-slate-50` would render pure white and disappear\n against a white page, which is what we want to avoid. */\n --stats-v2-bg: transparent;\n --stats-v2-card-bg: var(--color-slate-75);\n --stats-v2-text-primary: var(--text-primary);\n\n --stats-v2-title-size: var(--typography-h2-font-size);\n --stats-v2-title-lh: var(--typography-h2-line-height);\n\n --stats-v2-desc-size: var(--typography-body-md-font-size);\n --stats-v2-desc-lh: var(--typography-body-md-line-height);\n\n /* Carousel value — SAME size for every item (active + above + below).\n The visual hierarchy in the Webflow reference comes purely from\n `scale3d(0.7)` (above/below) vs `scale3d(1)` (active), NOT from\n a font-size change. Animating font-size mid-transition produces a\n visible \"text pop\" that the live site doesn't have, so we keep\n the typography stable and let the transform do all the work.\n\n Default value (mobile): Webflow's 4rem / 4.5rem at ≤479px.\n Tablet (≥768px) and desktop (≥992px) bump it to 5xl. */\n --stats-v2-value-size: 4rem;\n --stats-v2-value-lh: 4.5rem;\n\n --stats-v2-label-size: var(--typography-body-md-font-size);\n --stats-v2-label-lh: var(--typography-body-md-line-height);\n\n --stats-v2-award-heading-size: var(--font-size-xs);\n --stats-v2-award-heading-lh: var(--line-height-xs);\n --stats-v2-award-subheading-size: 0.625rem;\n --stats-v2-award-subheading-lh: var(--line-height-xs);\n\n /* ── Carousel slot spacing ────────────────────────────────\n Vertical distance between the active stat and the\n above/below neighbours, expressed as a percentage of each\n stat's own height. This is the SAME unit Webflow ships in\n its IX2 `TRANSFORM_MOVE` `yValue` and the SAME default\n (110%) — kept as a CSS variable so designers can override\n it without touching the React file. */\n --stats-v2-slot-offset: 110%;\n}\n\n/* ── ROOT ─────────────────────────────────────────────────── */\n\n.stats-v2 {\n width: 100%;\n background-color: var(--stats-v2-bg);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n}\n\n.stats-v2__inner {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n box-sizing: border-box;\n}\n\n/* ── HEADER ───────────────────────────────────────────────── */\n\n.stats-v2__header {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n text-align: left;\n}\n\n.stats-v2__title {\n font-size: var(--stats-v2-title-size);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--stats-v2-title-lh);\n color: var(--stats-v2-text-primary);\n margin: 0;\n}\n\n.stats-v2__description {\n font-size: var(--stats-v2-desc-size);\n font-weight: var(--font-weight-regular);\n line-height: var(--stats-v2-desc-lh);\n color: var(--stats-v2-text-primary);\n margin: 0;\n}\n\n/* ── CONTENT ROW ──────────────────────────────────────────── */\n\n.stats-v2__content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-32);\n width: 100%;\n}\n\n/* ── CAROUSEL CARD ────────────────────────────────────────── */\n\n.stats-v2__card {\n background-color: var(--stats-v2-card-bg);\n /* Webflow `.achievements_slider-component` uses border-radius: 3rem\n (48px). The design system tops out at --radius-2xl (1.5rem / 24px),\n so we hardcode the reference value here to keep the card visually\n identical to the live site. */\n border-radius: 3rem;\n padding: var(--spacing-24);\n width: 100%;\n max-width: 414px;\n overflow: hidden;\n position: relative;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.stats-v2__card-track {\n position: relative;\n width: 100%;\n /* Mobile carousel area — Webflow's mobile `.achievements_slider-component`\n is 320px tall (max-width 22rem; height 20rem) with 0 vertical padding,\n so the inner track gets the full 320px. */\n height: 320px;\n overflow: visible;\n}\n\n/* ── STAT ITEM (carousel slot) ────────────────────────────── */\n\n/* Webflow positions items with `position: absolute` (no top/left)\n and lets the parent flex container's `justify-content: center;\n align-items: center` place each item's STATIC position at the\n centre of the track. The IX2 transforms then operate on that\n centred origin — so the active item is `translateY(0%)` and\n above/below are `translateY(±110%)` relative to the centre.\n\n We replicate that by parking each item at `left: 50%; top: 50%`\n and using `transform: translate(-50%, -50%)` to centre it via\n its OWN box. The slot transforms in `getSlotStyle()` then add\n on top of that base — they ONLY change the Y component and\n the scale, never touching the X centring. The base translate\n keeps a constant horizontal centring no matter what slot the\n item is in. */\n.stats-v2__stat {\n position: absolute;\n top: 50%;\n left: 50%;\n text-align: center;\n will-change: transform, opacity;\n /* Default state matches the Webflow `is-2` (active) inline\n style: `translate3d(0, 0%, 0) scale3d(1, 1, 1)` once the\n `-50%, -50%` centring is factored in. */\n transform: translate(-50%, -50%);\n opacity: 1;\n}\n\n.stats-v2__stat-value {\n display: block;\n font-family: var(--font-family-base);\n /* Same size for every item — see the comment on\n `--stats-v2-value-size` above. */\n font-size: var(--stats-v2-value-size);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--stats-v2-value-lh);\n color: var(--stats-v2-text-primary);\n /* Mirrors Webflow's `.achievements_slider-heading\n { margin-bottom: -.5rem }` — pulls the subheading up\n so the two lines sit visually closer together. */\n margin-bottom: calc(var(--spacing-8) * -1);\n}\n\n.stats-v2__stat-label {\n display: block;\n font-family: var(--font-family-base);\n font-size: var(--stats-v2-label-size);\n font-weight: var(--font-weight-regular);\n line-height: var(--stats-v2-label-lh);\n color: var(--stats-v2-text-primary);\n}\n\n/* ── FADE OVERLAYS ────────────────────────────────────────── */\n\n.stats-v2__fade {\n position: absolute;\n left: 0;\n right: 0;\n /* 8rem (128px) at every breakpoint — taller than Webflow's\n reference (5–6.75rem) so the above/below stats blend\n further into the card background before the active stat\n takes the eye. Same height for both --top and --bottom. */\n height: 8rem;\n pointer-events: none;\n z-index: 3;\n}\n\n/* Fade-out gradients use the card colour at full opacity at the\n edge and fade to a transparent version of the same colour. */\n.stats-v2__fade--top {\n top: 0;\n background: linear-gradient(180deg,\n var(--stats-v2-card-bg) 0%,\n transparent 100%);\n}\n\n.stats-v2__fade--bottom {\n bottom: 0;\n background: linear-gradient(0deg,\n var(--stats-v2-card-bg) 0%,\n transparent 100%);\n}\n\n/* ── AWARD BADGE (laurel + text) ──────────────────────────── */\n\n.stats-v2__award {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-8);\n width: 100%;\n max-width: 196px;\n color: var(--stats-v2-text-primary);\n box-sizing: border-box;\n}\n\n.stats-v2__award-text {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n gap: var(--spacing-4);\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.stats-v2__award-heading {\n font-size: var(--stats-v2-award-heading-size);\n line-height: var(--stats-v2-award-heading-lh);\n font-weight: var(--font-weight-semi-bold);\n color: var(--stats-v2-text-primary);\n}\n\n.stats-v2__award-subheading {\n font-size: var(--stats-v2-award-subheading-size);\n line-height: var(--stats-v2-award-subheading-lh);\n font-weight: var(--font-weight-regular);\n color: var(--stats-v2-text-primary);\n}\n\n.stats-v2__laurel {\n flex-shrink: 0;\n width: 32px;\n height: 84px;\n display: block;\n}\n\n.stats-v2__laurel--flip {\n transform: scaleX(-1);\n}\n\n/* ── AWARD COLUMNS (desktop only) ─────────────────────────── */\n\n.stats-v2__awards-col {\n display: none;\n}\n\n/* ── MOBILE / TABLET AWARDS GRID ──────────────────────────── */\n\n.stats-v2__awards-mobile {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--spacing-16);\n width: 100%;\n max-width: 414px;\n justify-items: center;\n}\n\n/* On very small screens (< 360px) collapse to a single column\n so each badge has the full width and doesn't overflow. */\n@media (max-width: 359px) {\n .stats-v2__awards-mobile {\n grid-template-columns: 1fr;\n }\n}\n\n/* ============================================================\n TABLET ≥768px\n ============================================================ */\n\n@media (min-width: 768px) {\n .stats-v2__header {\n align-items: center;\n text-align: center;\n max-width: var(--content-width-846);\n margin-left: auto;\n margin-right: auto;\n }\n\n .stats-v2__inner {\n gap: var(--spacing-48);\n }\n\n .stats-v2__card {\n /* Webflow `.achievements_slider-component` uses 2.5rem 2.75rem\n padding (40px / 44px). We approximate the horizontal value\n with the same 40px vertical token since the 4px difference\n is imperceptible at this scale. */\n padding: var(--spacing-40);\n /* Tablet bumps the slider heading up to ~76px to match\n Webflow's desktop `.achievements_slider-heading`\n (4.75rem font-size / 5.5rem line-height). The 5xl\n token is the closest design-system match (5rem / 5.5rem). */\n --stats-v2-value-size: var(--font-size-5xl);\n --stats-v2-value-lh: var(--line-height-5xl);\n }\n\n .stats-v2__card-track {\n /* Webflow's wrapper fills card_height - 2*40px padding =\n ~334px (when the card itself is 414×414). The track\n needs to be tall enough that translateY(±110%) of a\n ~104px tall stat doesn't poke past the edges into the\n non-faded zone. 320px gives us comfortable headroom. */\n height: 320px;\n }\n}\n\n/* ============================================================\n DESKTOP ≥992px\n Switches to the 3-column [left | card | right] layout with\n top-aligned left awards and bottom-aligned right awards.\n ============================================================ */\n\n@media (min-width: 992px) {\n .stats-v2__inner {\n padding: var(--spacing-112) var(--spacing-24);\n gap: var(--spacing-48);\n }\n\n .stats-v2__content {\n flex-direction: row;\n align-items: stretch;\n justify-content: center;\n gap: var(--spacing-24);\n }\n\n /* Square 414×414 card — same dimensions as the reference. */\n .stats-v2__card {\n width: 414px;\n max-width: none;\n height: 414px;\n padding: var(--spacing-40);\n flex-shrink: 0;\n }\n\n .stats-v2__card-track {\n height: 334px;\n }\n\n /* Award columns appear; mobile grid hides. Each column matches the\n carousel card height (414px) and stacks its 2 awards with the\n 1.75rem (28px) gap from the Webflow `.achievements_side-block`\n reference. The runtime scroll-driven parallax (see StatsV2.tsx)\n then pushes each column into its final spread position:\n - left column: justify-content: flex-start → drifts down\n - right column: justify-content: flex-end → drifts up */\n .stats-v2__awards-col {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-32);\n width: 196px;\n height: 414px;\n flex-shrink: 0;\n align-items: center;\n /* Both columns centre their badges in the resting layout, so\n that `translateY(0%)` always puts the two stacks at exactly\n the same vertical position — i.e. perfectly parallel. The\n stagger we show at rest is produced by CSS initial\n transforms below (not by flex alignment), and the parallax\n animation interpolates those initial transforms back to\n `translateY(0%)` between PARALLAX_START and PARALLAX_END.\n This makes \"parallax ends\" ≡ \"columns are parallel\",\n independent of badge content height. */\n justify-content: center;\n will-change: transform;\n }\n\n /* Initial (pre-animation) stagger. Kept in sync with\n `PARALLAX_MAX_PERCENT` in StatsV2.tsx — if you change one,\n change the other. */\n .stats-v2__awards-col--left {\n transform: translateY(-26.3%);\n }\n\n .stats-v2__awards-col--right {\n transform: translateY(26.3%);\n }\n\n .stats-v2__awards-mobile {\n display: none;\n }\n}\n","/* ============================================================\n STATS SIMPLE — horizontal grid of value + label pairs\n No carousel, no awards. Matches the reference layout:\n 4 stats in a single row, large bold value, regular label.\n ============================================================ */\n\n:root {\n --stats-simple-bg: transparent;\n --stats-simple-text-primary: var(--text-primary);\n --stats-simple-text-secondary: var(--text-secondary);\n\n --stats-simple-value-size: var(--font-size-4xl);\n --stats-simple-value-lh: var(--line-height-4xl);\n\n --stats-simple-label-size: var(--typography-body-md-font-size);\n --stats-simple-label-lh: var(--typography-body-md-line-height);\n}\n\n/* ── ROOT ─────────────────────────────────────────────────── */\n\n.stats-simple {\n width: 100%;\n background-color: var(--stats-simple-bg);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n}\n\n.stats-simple__inner {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-40) var(--spacing-24);\n box-sizing: border-box;\n}\n\n/* ── STAT ITEM ────────────────────────────────────────────── */\n\n.stats-simple__item {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n}\n\n.stats-simple__value {\n font-size: var(--stats-simple-value-size);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--stats-simple-value-lh);\n color: var(--stats-simple-text-primary);\n}\n\n.stats-simple__label {\n font-size: var(--stats-simple-label-size);\n font-weight: var(--font-weight-regular);\n line-height: var(--stats-simple-label-lh);\n color: var(--stats-simple-text-secondary);\n}\n\n/* ============================================================\n TABLET ≥768px — 4-column single row\n ============================================================ */\n\n@media (min-width: 768px) {\n .stats-simple__inner {\n grid-template-columns: repeat(4, 1fr);\n gap: var(--spacing-24);\n padding: var(--spacing-64) var(--spacing-24);\n }\n}\n\n/* ============================================================\n DESKTOP ≥992px\n ============================================================ */\n\n@media (min-width: 992px) {\n .stats-simple__inner {\n padding: var(--spacing-80) var(--spacing-24);\n }\n\n :root {\n --stats-simple-value-size: var(--font-size-4xl);\n --stats-simple-value-lh: var(--line-height-4xl);\n }\n}\n","/* ============================================================\n FEATURE SCROLL COMPONENT\n Token inheritance:\n Primitive (core) → Semantic (--fs-*) → Component styles\n\n Component tokens (--fs-*) defined in :root below:\n\n Colors\n --fs-bg var(--color-slate-50)\n --fs-text-primary var(--color-slate-1200)\n --fs-text-muted var(--color-slate-1200)\n --fs-link-color var(--color-coral-700)\n --fs-link-hover var(--color-coral-800)\n --fs-media-bg transparent\n\n Typography — font family\n --fs-font-family var(--font-family-base)\n\n Typography — section header (H2)\n --fs-header-family var(--typography-h2-font-family)\n --fs-header-size var(--typography-h2-font-size) [mobile 2.5rem → desktop 3.5rem]\n --fs-header-weight var(--typography-h2-font-weight) [800]\n --fs-header-lh var(--typography-h2-line-height) [mobile 3rem → desktop 4rem]\n\n Typography — item title (H3)\n --fs-title-family var(--typography-h3-font-family)\n --fs-title-size var(--typography-h3-font-size) [mobile 2rem → desktop 3rem]\n --fs-title-weight var(--typography-h3-font-weight) [800]\n --fs-title-lh var(--typography-h3-line-height) [mobile 2.5rem → desktop 3.5rem]\n\n Typography — body (body-md)\n --fs-body-family var(--typography-body-md-font-family)\n --fs-body-size var(--typography-body-md-font-size) [1rem]\n --fs-body-weight var(--typography-body-md-font-weight) [400]\n --fs-body-lh var(--typography-body-md-line-height) [1.5rem]\n\n Typography — link (link-md)\n --fs-link-family var(--typography-link-md-font-family)\n --fs-link-size var(--typography-link-md-font-size) [1rem]\n --fs-link-weight var(--typography-link-md-font-weight) [600]\n --fs-link-lh var(--typography-link-md-line-height) [1.5rem]\n\n Layout\n --fs-col-gap var(--spacing-112) [7rem = 112px]\n --fs-media-radius var(--radius-2xl) [1.5rem = 24px]\n --fs-mobile-radius var(--radius-2xl) [24px mobile]\n --fs-sticky-top var(--spacing-80) [80px — clears a typical nav]\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n /* Colors */\n --fs-bg: var(--color-slate-50);\n --fs-text-primary: var(--text-primary);\n --fs-text-muted: var(--text-primary);\n --fs-link-color: var(--color-coral-700);\n --fs-link-hover: var(--color-coral-800);\n --fs-media-bg: transparent;\n\n /* Typography — font family */\n --fs-font-family: var(--font-family-base);\n\n /* Typography — section header (H2) */\n --fs-header-family: var(--typography-h2-font-family);\n --fs-header-size: var(--typography-h2-font-size);\n --fs-header-weight: var(--typography-h2-font-weight);\n --fs-header-lh: var(--typography-h2-line-height);\n\n /* Typography — item title (H3) */\n --fs-title-family: var(--typography-h3-font-family);\n --fs-title-size: var(--typography-h3-font-size);\n --fs-title-weight: var(--typography-h3-font-weight);\n --fs-title-lh: var(--typography-h3-line-height);\n\n /* Typography — body */\n --fs-body-family: var(--typography-body-md-font-family);\n --fs-body-size: var(--typography-body-md-font-size);\n --fs-body-weight: var(--typography-body-md-font-weight);\n --fs-body-lh: var(--typography-body-md-line-height);\n\n /* Typography — link */\n --fs-link-family: var(--typography-link-md-font-family);\n --fs-link-size: var(--typography-link-md-font-size);\n --fs-link-weight: var(--typography-link-md-font-weight);\n --fs-link-lh: var(--typography-link-md-line-height);\n\n /* Layout */\n --fs-col-gap: var(--spacing-112);\n /* 7rem = 112px */\n --fs-media-radius: var(--radius-2xl);\n /* 1.5rem = 24px */\n --fs-mobile-radius: var(--radius-2xl);\n /* 24px on mobile */\n --fs-sticky-top: var(--spacing-80);\n /* 80px — clears a typical nav */\n}\n\n/* ── ROOT ─────────────────────────────────────────────────── */\n\n.fs {\n width: 100%;\n background-color: var(--fs-bg);\n font-family: var(--fs-font-family);\n box-sizing: border-box;\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.fs__inner {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-32);\n box-sizing: border-box;\n}\n\n/* ── SECTION HEADER ───────────────────────────────────────── */\n\n.fs__header {\n font-family: var(--fs-header-family);\n font-size: var(--fs-header-size);\n font-weight: var(--fs-header-weight);\n line-height: var(--fs-header-lh);\n color: var(--fs-text-primary);\n margin: 0;\n}\n\n/* ── DESKTOP TWO-COLUMN LAYOUT — hidden on mobile ─────────── */\n\n.fs__layout {\n display: none;\n}\n\n/* ── MOBILE STACKED LIST — visible on mobile only ─────────── */\n\n.fs__mobile-list {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-48);\n}\n\n.fs__mobile-item {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n/* ── MOBILE MEDIA ─────────────────────────────────────────── */\n\n.fs__mobile-media {\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: var(--fs-mobile-radius);\n background-color: var(--fs-media-bg);\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.fs__mobile-media img,\n.fs__mobile-media > * {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n\n/* ── SHARED ITEM TEXT ELEMENTS ────────────────────────────── */\n\n.fs__item-title {\n font-family: var(--fs-title-family);\n font-size: var(--fs-title-size);\n font-weight: var(--fs-title-weight);\n line-height: var(--fs-title-lh);\n color: var(--fs-text-primary);\n margin: 0;\n}\n\n.fs__item-desc {\n font-family: var(--fs-body-family);\n font-size: var(--fs-body-size);\n font-weight: var(--fs-body-weight);\n line-height: var(--fs-body-lh);\n color: var(--fs-text-muted);\n margin: 0;\n}\n\n.fs__item-link {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n font-family: var(--fs-link-family);\n font-size: var(--fs-link-size);\n font-weight: var(--fs-link-weight);\n line-height: var(--fs-link-lh);\n color: var(--fs-link-color);\n text-decoration: none;\n transition: color 0.2s ease;\n cursor: pointer;\n}\n\n.fs__item-link:hover {\n color: var(--fs-link-hover);\n}\n\n/* Inline SVG chevron icon */\n.fs__item-link-icon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n transition: transform 0.2s ease;\n}\n\n.fs__item-link:hover .fs__item-link-icon {\n transform: translateX(var(--spacing-4));\n}\n\n/* ============================================================\n TABLET ≥768px\n ============================================================ */\n\n@media (min-width: 768px) {\n .fs__inner {\n padding: var(--spacing-56) var(--spacing-24);\n gap: var(--spacing-40);\n }\n}\n\n/* ============================================================\n DESKTOP ≥992px\n ============================================================ */\n\n@media (min-width: 992px) {\n .fs__header {\n text-align: center;\n }\n\n .fs__inner {\n padding: var(--spacing-112) var(--spacing-24);\n gap: var(--spacing-56);\n }\n\n /* ── SHOW DESKTOP LAYOUT, HIDE MOBILE LIST ─────────────── */\n\n .fs__layout {\n display: flex;\n flex-direction: row;\n gap: var(--fs-col-gap);\n align-items: flex-start;\n width: 100%;\n /* Shared with media col + each text step — one viewport band below nav */\n --fs-step-band: calc(100svh - var(--fs-sticky-top));\n }\n\n .fs__mobile-list {\n display: none;\n }\n\n /* ── VARIANT: media-left — reverse column order ─────────── */\n\n .fs--media-left .fs__layout {\n flex-direction: row-reverse;\n }\n\n /* ── MEDIA COLUMN (outer) ─────────────────────────────────\n * Stretches to the full text column height. Sticky lives on\n * .fs__media-sticky so the sticky constraint rectangle's bottom\n * is the section end — not the outer top + one viewport band.\n */\n .fs__media-col {\n flex: 1 0 0;\n min-width: 0;\n align-self: stretch;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n }\n\n /* Sticky viewport band under nav; same vertical rhythm as text steps */\n .fs__media-sticky {\n flex: 0 0 auto;\n width: 100%;\n position: sticky;\n top: var(--fs-sticky-top);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: stretch;\n min-height: var(--fs-step-band);\n box-sizing: border-box;\n }\n\n /* Square media wrapper — crossfade container */\n .fs__media-wrap {\n width: 100%;\n aspect-ratio: 1 / 1;\n position: relative;\n border-radius: var(--fs-media-radius);\n background-color: var(--fs-media-bg);\n overflow: hidden;\n }\n\n /* Each media item stacked absolutely — crossfade via opacity */\n .fs__media-item {\n position: absolute;\n inset: 0;\n opacity: 0;\n transition: opacity 0.55s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: opacity;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .fs__media-item--active {\n opacity: 1;\n }\n\n /* Image fills the container */\n .fs__media-item img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n }\n\n /* Lottie player fills the container */\n .fs__media-item > * {\n width: 100% !important;\n height: 100% !important;\n }\n\n /* ── CONTENT COLUMN ───────────────────────────────────────\n * All steps in normal document flow — continuous scroll, every block\n * fully visible. Min-height ≈ one viewport band below nav so scroll\n * rhythm + media line up; steps can grow if copy is long.\n */\n .fs__content-col {\n flex: 1 0 0;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 0;\n }\n\n .fs__item {\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex-shrink: 0;\n margin: 0;\n min-height: var(--fs-step-band);\n gap: var(--spacing-24);\n padding-left: var(--spacing-32);\n box-sizing: border-box;\n }\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.feature-split {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.feature-split__container {\n display: flex;\n flex-direction: column;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .feature-split__container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Split layout ──────────────────────────────────────────── */\n\n.feature-split__split {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .feature-split__split {\n flex-direction: row;\n align-items: center;\n gap: 8rem;\n /* 128px — no token at this scale */\n }\n\n /* Reverse column order when image is on the left */\n .feature-split__split--image-left {\n flex-direction: row-reverse;\n }\n}\n\n/* ── Content column ────────────────────────────────────────── */\n\n.feature-split__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .feature-split__content {\n gap: 1.25rem;\n /* 20px — no token at this scale */\n width: 540px;\n flex-shrink: 0;\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.feature-split__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Description ───────────────────────────────────────────── */\n\n.feature-split__description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Image column ──────────────────────────────────────────── */\n\n.feature-split__image-wrapper {\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: var(--radius-2xl);\n /* 24px mobile */\n overflow: hidden;\n flex-shrink: 0;\n position: relative;\n background-color: transparent;\n}\n\n@media (min-width: 992px) {\n .feature-split__image-wrapper {\n flex: 1 0 0;\n width: auto;\n border-radius: 2rem;\n /* 32px desktop — no exact token */\n }\n}\n\n.feature-split__image {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n","/* ============================================================\n STICKY STACKED CARDS COMPONENT\n Token inheritance:\n Primitive (core) → Semantic (--ssc-*) → Component styles\n\n Semantic tokens used:\n --ssc-bg var(--color-slate-50) [white — card-1 gray is visible against it]\n --ssc-font-family var(--font-family-base) [Inter, sans-serif]\n\n Section header:\n --ssc-header-color var(--color-slate-1200) [dark text on white bg]\n --ssc-header-size var(--typography-h2-font-size) [mobile 2.5rem → desktop 3.5rem]\n --ssc-header-lh var(--typography-h2-line-height) [mobile 3rem → desktop 4rem]\n --ssc-header-weight var(--typography-h2-font-weight) [800]\n\n Card themes:\n --ssc-card-light-bg var(--color-slate-75) [#f6f7f8 — matches Figma card 1]\n --ssc-card-light-text var(--color-slate-1200)\n --ssc-card-coral-bg var(--color-coral-700) [#ff444f — matches Figma card 2]\n --ssc-card-coral-text var(--color-slate-50)\n --ssc-card-dark-bg var(--color-slate-1200) [#181c25 — matches Figma card 3]\n --ssc-card-dark-text var(--color-slate-50)\n\n Typography — card title (H3):\n --ssc-title-size var(--typography-h3-font-size) [mobile 2rem → desktop 3rem]\n --ssc-title-lh var(--typography-h3-line-height) [mobile 2.5rem → desktop 3.5rem]\n --ssc-title-weight var(--typography-h3-font-weight) [800]\n\n Typography — body copy:\n --ssc-body-size var(--typography-body-md-font-size) [1rem]\n --ssc-body-lh var(--typography-body-md-line-height) [1.5rem]\n --ssc-body-weight var(--typography-body-md-font-weight) [400]\n\n Layout:\n --ssc-card-radius var(--radius-2xl) [1.5rem = 24px]\n --ssc-content-gap var(--spacing-24) [24px]\n --ssc-sticky-top var(--spacing-80) [80px — clears a typical fixed nav]\n --ssc-peek-offset var(--spacing-16) [16px gap so previous cards peek out]\n --ssc-card-min-height 31.25rem [500px fixed card height]\n --ssc-img-height-mobile 21rem [~336px, matches Figma mobile]\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n /* Section background — white so card-1's gray is visible */\n --ssc-bg: var(--color-slate-50);\n\n /* Font family */\n --ssc-font-family: var(--font-family-base);\n\n /* Section header color */\n --ssc-header-color: var(--text-primary);\n\n /* Card theme — light (card 1) */\n --ssc-card-light-bg: var(--color-slate-75);\n --ssc-card-light-text: var(--color-slate-1200);\n\n /* Card theme — coral (card 2) */\n --ssc-card-coral-bg: var(--color-coral-700);\n --ssc-card-coral-text: var(--color-slate-50);\n\n /* Card theme — dark (card 3) */\n --ssc-card-dark-bg: var(--color-slate-1200);\n --ssc-card-dark-text: var(--color-slate-50);\n\n /* Typography — section header (H2) */\n --ssc-header-size: var(--typography-h2-font-size);\n --ssc-header-lh: var(--typography-h2-line-height);\n --ssc-header-weight: var(--typography-h2-font-weight);\n\n /* Typography — card title (H3) */\n --ssc-title-size: var(--typography-h3-font-size);\n --ssc-title-lh: var(--typography-h3-line-height);\n --ssc-title-weight: var(--typography-h3-font-weight);\n\n /* Typography — body copy */\n --ssc-body-size: var(--typography-body-md-font-size);\n --ssc-body-lh: var(--typography-body-md-line-height);\n --ssc-body-weight: var(--typography-body-md-font-weight);\n\n /* Layout */\n --ssc-card-radius: var(--radius-2xl);\n /* 24px */\n --ssc-content-gap: var(--spacing-24);\n --ssc-sticky-top: var(--spacing-80);\n /* 80px */\n --ssc-peek-offset: var(--spacing-16);\n /* 16px per card peek */\n --ssc-card-min-height: 31.25rem;\n /* 500px fixed card height — desktop */\n --ssc-img-height-mobile: 21rem;\n /* ~336px mobile */\n}\n\n/* ── ROOT ─────────────────────────────────────────────────── */\n\n.ssc {\n width: 100%;\n background-color: var(--ssc-bg);\n font-family: var(--ssc-font-family);\n box-sizing: border-box;\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.ssc__inner {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-48);\n box-sizing: border-box;\n}\n\n/* ── SECTION HEADER ───────────────────────────────────────── */\n\n.ssc__header {\n font-size: var(--ssc-header-size);\n font-weight: var(--ssc-header-weight);\n line-height: var(--ssc-header-lh);\n color: var(--ssc-header-color);\n margin: 0;\n}\n\n/* ── CARD TRACK — all breakpoints ────────────────────────────\n *\n * display:block at every size so position:sticky on the cards\n * anchors to the page scroll container, not a flex/grid context.\n * NEVER add overflow:hidden/auto — it breaks sticky everywhere.\n *\n * padding-bottom — serves two purposes:\n * 1. Guarantees enough scroll distance for the full stacking\n * sequence to complete (all 3 cards reach their sticky tops).\n * 2. Once the user scrolls past the track's bottom edge, CSS\n * sticky mechanics release all cards simultaneously so they\n * exit the viewport together as a single block.\n */\n\n.ssc__track {\n display: block;\n padding-bottom: var(--ssc-img-height-mobile);\n /* 21rem ≈ 336px — mobile dwell + exit room */\n}\n\n/* ── CARD — sticky stacking active at all breakpoints ────────\n *\n * position:sticky + scale transform apply on mobile, tablet,\n * and desktop alike. The two-column grid layout is added only\n * at ≥992px (see desktop media query).\n *\n * top and z-index are set via inline style in the TSX so the\n * peek-offset maths scales with any number of cards.\n * --card-scale is updated by the passive scroll handler.\n */\n\n.ssc__card {\n border-radius: var(--ssc-card-radius);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n /* mobile: text on top, image below */\n box-sizing: border-box;\n width: 100%;\n\n /* 16px gap between cards */\n margin-bottom: var(--ssc-peek-offset);\n\n /* Sticky stacking — all sizes */\n position: sticky;\n transform: scale(var(--card-scale, 1));\n transform-origin: top center;\n will-change: transform;\n transition: transform 0.12s ease-out;\n}\n\n.ssc__card:last-child {\n margin-bottom: 0;\n}\n\n/* ── CARD THEMES ──────────────────────────────────────────── */\n\n.ssc__card--light {\n background-color: var(--ssc-card-light-bg);\n color: var(--ssc-card-light-text);\n}\n\n.ssc__card--coral {\n background-color: var(--ssc-card-coral-bg);\n color: var(--ssc-card-coral-text);\n}\n\n.ssc__card--dark {\n background-color: var(--ssc-card-dark-bg);\n color: var(--ssc-card-dark-text);\n}\n\n/* ── CARD CONTENT (text block) ────────────────────────────── */\n\n.ssc__card-content {\n display: flex;\n flex-direction: column;\n gap: var(--ssc-content-gap);\n padding: var(--spacing-32);\n}\n\n/* ── CARD TITLE ───────────────────────────────────────────── */\n\n.ssc__card-title {\n font-size: var(--ssc-title-size);\n font-weight: var(--ssc-title-weight);\n line-height: var(--ssc-title-lh);\n color: inherit;\n margin: 0;\n}\n\n/* ── CARD DESCRIPTION ─────────────────────────────────────── */\n\n.ssc__card-desc {\n font-size: var(--ssc-body-size);\n font-weight: var(--ssc-body-weight);\n line-height: var(--ssc-body-lh);\n color: inherit;\n margin: 0;\n}\n\n/* ── CARD IMAGE (mobile) ──────────────────────────────────── */\n\n.ssc__card-image {\n position: relative;\n height: var(--ssc-img-height-mobile);\n flex-shrink: 0;\n overflow: hidden;\n background-color: transparent;\n}\n\n.ssc__card-image img {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n\n/* ============================================================\n TABLET ≥768px\n ============================================================ */\n\n@media (min-width: 768px) {\n .ssc__inner {\n padding: var(--spacing-56) var(--spacing-24);\n gap: var(--spacing-64);\n }\n\n .ssc__header {\n text-align: center;\n }\n}\n\n/* ============================================================\n DESKTOP ≥992px — sticky stacking mechanic\n ============================================================ */\n\n@media (min-width: 992px) {\n .ssc__inner {\n padding: var(--spacing-112) var(--spacing-24);\n gap: var(--spacing-80);\n }\n\n /* Desktop needs more dwell room — one full card height */\n .ssc__track {\n padding-bottom: var(--ssc-card-min-height);\n /* 40rem = 640px */\n }\n\n /* ── Card: switch to 50/50 grid on desktop ─────────────────\n * Sticky positioning and scale transform are already set in\n * the base styles (all breakpoints). Here we only add the\n * two-column layout and the desktop minimum card height.\n */\n .ssc__card {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: 1fr;\n min-height: var(--ssc-card-min-height);\n }\n\n /* ── Content: left cell, text top-left ─────────────────── */\n .ssc__card-content {\n padding: var(--spacing-32);\n justify-content: flex-start;\n align-self: stretch;\n }\n\n /* ── Image: right cell, fills full cell height ──────────── */\n .ssc__card-image {\n height: auto;\n min-height: 100%;\n align-self: stretch;\n }\n}","/* ── Layout — Figma-specific dimensions (local to this template) ── */\n\n/*\n * Grid-cell sizing strategy\n * ─────────────────────────\n * --ctab-grid-cell drives both the background grid repeat AND the avatar size.\n * Because --ctab-avatar-size = --ctab-grid-cell, every avatar occupies exactly\n * one grid cell — left and right edges always land on grid lines.\n *\n * Mobile / tablet: fluid calc so the stage width is always an exact integer\n * multiple of the cell. ODD column counts guarantee that the centred avatars\n * (left: calc(50% - avatar/2)) collapse to an integer column (e.g. col 2 of 5),\n * putting both their edges on grid lines too.\n *\n * < 480px → 5 cols → centre col 2\n * 480-767px → 7 cols → centre col 3\n * 768-991px → 11 cols → centre col 5\n *\n * Desktop: fixed 96 px — the stage is max-width 1280 px and background-position\n * is shifted dynamically so grid lines coincide with stage x = 0.\n */\n\n:root {\n --ctab-max-width: var(--content-width-1280);\n /* 11 rows: 1 cell top + 9 cell avatar span + 1 cell bottom = equal spacing */\n --ctab-stage-height: calc(11 * var(--ctab-grid-cell));\n --ctab-hero-max-width: 90%;\n --ctab-avatar-radius: var(--radius-xl);\n /* 5 odd columns, fluid — stage always = 5 × grid-cell */\n --ctab-grid-cell: calc(100vw / 5);\n --ctab-avatar-size: var(--ctab-grid-cell);\n /* Section = stage — breathing room comes from avatar row offsets inside the stage */\n --ctab-section-min-height: var(--ctab-stage-height);\n}\n\n/* ── Mobile Large (480px – 767px) ───────────────────────────── */\n@media (min-width: 480px) and (max-width: 767px) {\n :root {\n --ctab-hero-max-width: 80%;\n /* 7 odd columns — stage always = 7 × grid-cell */\n --ctab-grid-cell: calc(100vw / 7);\n }\n}\n\n/* ── Tablet (768px – 991px) ─────────────────────────────────── */\n@media (min-width: 768px) and (max-width: 991px) {\n :root {\n --ctab-stage-height: 48rem;\n /* 768px */\n --ctab-hero-max-width: 70%;\n --ctab-avatar-radius: var(--radius-2xl);\n /* 11 odd columns — stage always = 11 × grid-cell */\n --ctab-grid-cell: calc(100vw / 11);\n /* section = stage; breathing room comes from avatar row offsets inside the stage */\n --ctab-section-min-height: var(--ctab-stage-height);\n }\n}\n\n/* ── Desktop (992px+) ───────────────────────────────────────── */\n@media (min-width: 992px) {\n :root {\n --ctab-stage-height: 42.5rem;\n /* 680px — compact desktop stage */\n --ctab-hero-max-width: var(--content-width-846);\n --ctab-avatar-radius: var(--radius-2xl);\n --ctab-grid-cell: 6rem;\n /* 96px fixed, no token lookup */\n --ctab-avatar-size: 6rem;\n --ctab-section-min-height: 42.5rem;\n }\n\n /* Default variant — 9-row stage (9 × 96px = 864px).\n * Stage centre = 432px = row 4 centre → hero aligns with mid-left/right avatars.\n * 1-cell breathing room at top (row 1) and bottom (864 − 768 = 96px). */\n .ctab:not(.ctab--compact) {\n --ctab-stage-height: 54rem;\n /* 9 × 96px = 864px */\n --ctab-section-min-height: 54rem;\n }\n}\n\n/* ── SECTION ─────────────────────────────────────────────────── */\n\n.ctab {\n position: relative;\n width: 100%;\n min-height: var(--ctab-section-min-height);\n background-color: var(--color-coral-700);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n overflow: hidden;\n}\n\n/* ── BACKGROUND GRID ─────────────────────────────────────────── */\n\n.ctab__grid {\n position: absolute;\n inset: 0;\n pointer-events: none;\n /* Fade the grid out on all four edges */\n -webkit-mask-image:\n linear-gradient(to right, transparent 0%, black 20%, black 80%, transparent 100%),\n linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%);\n -webkit-mask-composite: destination-in;\n mask-image:\n linear-gradient(to right, transparent 0%, black 20%, black 80%, transparent 100%),\n linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%);\n mask-composite: intersect;\n background-image:\n repeating-linear-gradient(to right,\n transparent 0,\n transparent calc(var(--ctab-grid-cell) - 1px),\n var(--color-opacity-white-16) calc(var(--ctab-grid-cell) - 1px),\n var(--color-opacity-white-16) var(--ctab-grid-cell)),\n repeating-linear-gradient(to bottom,\n transparent 0,\n transparent calc(var(--ctab-grid-cell) - 1px),\n var(--color-opacity-white-16) calc(var(--ctab-grid-cell) - 1px),\n var(--color-opacity-white-16) var(--ctab-grid-cell));\n /*\n * Shift the grid so its origin aligns with the stage's top-left corner.\n * Mobile/tablet: inner has 24px horizontal padding, no vertical offset.\n * Desktop: inner is horizontally centred (max-width 80rem) and the\n * stage is vertically centred inside the taller section.\n */\n /*\n * Y is shifted back by (cell − 1px) so the repeating-gradient's first\n * white band lands exactly at y = 0 (top edge of the section).\n * Without this, the first horizontal line appears at y = cell − 1,\n * leaving the topmost row with no top border.\n */\n background-position: 0px calc(1px - var(--ctab-grid-cell));\n}\n\n@media (min-width: 992px) {\n .ctab__grid {\n /*\n * X: clamp at 0 — below max-width the inner fills the viewport (no\n * margin), so the grid origin stays at section x = 0. Above max-width\n * the inner is centred so we shift by the margin amount.\n * Y: same (cell − 1px) shift so a line appears at the top edge.\n */\n background-position:\n max(0px, calc((100vw - var(--ctab-max-width)) / 2)) calc(1px - var(--ctab-grid-cell));\n }\n}\n\n/* ── INNER WRAPPER ───────────────────────────────────────────── */\n\n.ctab__inner {\n position: relative;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: var(--ctab-section-min-height);\n max-width: var(--ctab-max-width);\n margin: 0 auto;\n padding: 0 var(--spacing-24);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .ctab__inner {\n padding: 0;\n }\n}\n\n/* ── STAGE — avatar coordinate space ─────────────────────────── */\n\n.ctab__stage {\n position: relative;\n width: 100%;\n height: var(--ctab-stage-height);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* ── HERO — headline + CTA ───────────────────────────────────── */\n\n.ctab__hero {\n position: relative;\n z-index: 2;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-16);\n width: var(--ctab-hero-max-width);\n max-width: 100%;\n text-align: center;\n padding: var(--spacing-48) 0;\n}\n\n/* CTA fills the hero stage below desktop only. The anchor wrapper (present\n when a href is supplied) needs the same treatment as the button itself,\n since align-items: center never stretches auto-sized flex items. */\n@media (max-width: 991px) {\n .ctab__hero a,\n .ctab__hero .button {\n width: 100%;\n }\n}\n\n/* ── HEADLINE ────────────────────────────────────────────────── */\n\n.ctab__headline {\n margin: 0;\n font-family: var(--typography-h1-font-family);\n font-size: var(--typography-h1-font-size);\n font-weight: var(--typography-h1-font-weight);\n line-height: var(--typography-h1-line-height);\n color: var(--color-slate-50);\n}\n\n\n/* ── AVATAR ──────────────────────────────────────────────────── */\n\n.ctab__avatar {\n position: absolute;\n width: var(--ctab-avatar-size);\n height: var(--ctab-avatar-size);\n border-radius: var(--ctab-avatar-radius);\n overflow: hidden;\n box-shadow: var(--shadow-md);\n flex-shrink: 0;\n left: var(--av-d-left, auto);\n right: var(--av-d-right, auto);\n top: var(--av-d-top, auto);\n}\n\n.ctab__avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n border-radius: var(--ctab-avatar-radius);\n}\n\n/* ── Below desktop — use mobile avatar positions ─────────────── */\n\n@media (max-width: 991px) {\n .ctab__avatar {\n left: var(--av-m-left, auto);\n right: var(--av-m-right, auto);\n top: var(--av-m-top, auto);\n }\n\n .ctab__avatar--desktop-only {\n display: none;\n }\n}","/* ── Layout tokens (local to this template) ─────────────────── */\n\n:root {\n --navbar-height: 4rem;\n /* 64px */\n --navbar-max-width: 84rem;\n /* 1344px */\n --navbar-pill-radius: 80px;\n --navbar-dropdown-w: 60rem;\n /* 960px */\n --navbar-dropdown-radius: var(--spacing-32);\n --navbar-z-base: 100;\n --navbar-z-dropdown: 101;\n --navbar-z-drawer: 200;\n --navbar-z-backdrop: 199;\n}\n\n/* ── SECTION ─────────────────────────────────────────────────── */\n\n.navbar {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n z-index: var(--navbar-z-base);\n padding: var(--spacing-16) 0;\n font-family: var(--font-family-base);\n box-sizing: border-box;\n transition: background-color 200ms ease, backdrop-filter 200ms ease, box-shadow 200ms ease;\n}\n\n/* On scroll — pill becomes white, text becomes dark */\n.navbar--dark.navbar--scrolled .navbar__pill,\n.navbar--light.navbar--scrolled .navbar__pill {\n background-color: rgba(255, 255, 255, 0.96);\n backdrop-filter: blur(16px);\n -webkit-backdrop-filter: blur(16px);\n}\n\n.navbar--dark.navbar--scrolled .navbar__nav-item,\n.navbar--light.navbar--scrolled .navbar__nav-item {\n color: var(--color-slate-1200);\n}\n\n.navbar--dark.navbar--scrolled .navbar__nav-item:hover,\n.navbar--light.navbar--scrolled .navbar__nav-item:hover {\n background-color: var(--color-opacity-slate-8);\n}\n\n/* Globe icon: reset to dark since pill is now white */\n.navbar--dark.navbar--scrolled .navbar__pill .navbar__lang-globe {\n filter: none;\n}\n\n/* Language label: match nav item dark text */\n.navbar--dark.navbar--scrolled .navbar__pill .navbar__nav-item {\n color: var(--color-slate-1200);\n}\n\n/* ── BAR — logo | pill | actions ─────────────────────────────── */\n\n.navbar__bar {\n position: relative;\n z-index: 201;\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n align-items: center;\n height: var(--navbar-height);\n padding: 0 var(--spacing-24);\n box-sizing: border-box;\n}\n\n/* ── LOGO ────────────────────────────────────────────────────── */\n\n.navbar__logo {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n text-decoration: none;\n padding-bottom: var(--spacing-4);\n /* optical baseline alignment */\n}\n\n.navbar__logo img {\n height: 1.5rem;\n /* 24px */\n width: auto;\n display: block;\n}\n\n/* ── NAV CENTER — full-width layer that centres the pill and\n anchors the dropdown relative to the full bar width ────────── */\n\n.navbar__nav-center {\n position: absolute;\n left: var(--spacing-24);\n right: var(--spacing-24);\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n}\n\n.navbar__nav-center>* {\n pointer-events: auto;\n}\n\n/* ── PILL ────────────────────────────────────────────────────── */\n\n.navbar__pill {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n padding: var(--spacing-8);\n border-radius: var(--navbar-pill-radius);\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n box-shadow: var(--shadow-sm);\n transition: background-color 400ms cubic-bezier(.65, 0, .35, 1),\n backdrop-filter 400ms cubic-bezier(.65, 0, .35, 1),\n box-shadow 400ms cubic-bezier(.65, 0, .35, 1);\n}\n\n.navbar--dark .navbar__pill {\n background-color: var(--color-opacity-white-24);\n}\n\n.navbar--light .navbar__pill {\n background-color: var(--color-opacity-white-88);\n}\n\n/* ── NAV GROUP — items inside the pill ───────────────────────── */\n\n.navbar__nav-group {\n display: flex;\n align-items: center;\n padding: 0;\n}\n\n/* ── NAV ITEM — each pill button ─────────────────────────────── */\n\n.navbar__nav-item {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n padding: var(--spacing-8) var(--spacing-12);\n height: 2.5rem;\n /* 40px */\n border: none;\n border-radius: var(--radius-full);\n background: transparent;\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n white-space: nowrap;\n text-decoration: none;\n cursor: pointer;\n transition: background-color 140ms ease;\n box-sizing: border-box;\n}\n\n.navbar--dark .navbar__nav-item {\n color: var(--color-slate-50);\n}\n\n.navbar--light .navbar__nav-item {\n color: var(--color-slate-1200);\n}\n\n.navbar--dark .navbar__nav-item:hover,\n.navbar--dark .navbar__nav-item--open {\n background-color: var(--color-opacity-white-8);\n}\n\n.navbar--light .navbar__nav-item:hover,\n.navbar--light .navbar__nav-item--open {\n background-color: var(--color-opacity-slate-8);\n}\n\n/* ── NAV ITEM CHEVRON ────────────────────────────────────────── */\n\n.navbar__nav-item__chevron {\n flex-shrink: 0;\n transition: transform 200ms ease;\n}\n\n.navbar__nav-item--open .navbar__nav-item__chevron {\n transform: rotate(180deg);\n}\n\n/* ── LANGUAGE BUTTON ─────────────────────────────────────────── */\n\n/* Shares all styles with .navbar__nav-item — only globe icon filter needed here */\n.navbar--dark .navbar__pill .navbar__lang-globe {\n filter: brightness(0) invert(1);\n}\n\n/* ── LANGUAGE DROPDOWN WRAPPER ───────────────────────────────── */\n\n.navbar__lang-wrapper {\n position: relative;\n}\n\n/* ── LANGUAGE DROPDOWN (desktop) ─────────────────────────────── */\n\n.navbar__lang-dropdown {\n position: absolute;\n top: calc(100% + var(--spacing-8));\n left: calc(50% - 352px);\n width: 704px;\n background-color: var(--color-slate-50);\n border: 1px solid var(--color-slate-100);\n border-radius: var(--navbar-dropdown-radius);\n box-shadow:\n 0px 8px 16px 2px rgba(0, 0, 0, 0.04),\n 0px -14px 16px 2px rgba(0, 0, 0, 0.02);\n padding: var(--spacing-24) var(--spacing-32);\n z-index: var(--navbar-z-dropdown);\n box-sizing: border-box;\n overflow: hidden;\n}\n\n.navbar__lang-dropdown-grid {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n grid-auto-flow: column;\n grid-template-rows: repeat(var(--lang-rows, 7), auto);\n gap: 0;\n}\n\n.navbar__lang-dropdown-item {\n display: block;\n width: 100%;\n padding: var(--spacing-8) 0;\n border: none;\n background: transparent;\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-1200);\n text-align: left;\n cursor: pointer;\n transition: color 120ms ease;\n box-sizing: border-box;\n white-space: nowrap;\n}\n\n.navbar__lang-dropdown-item:hover {\n color: #ff444f;\n}\n\n.navbar__lang-dropdown-item--active {\n color: #ff444f;\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* ── MOBILE DRAWER LANGUAGE PANEL (full-screen slide-in) ─────── */\n\n.navbar__drawer-lang-panel {\n position: absolute;\n inset: 0;\n background-color: var(--color-slate-50);\n display: flex;\n flex-direction: column;\n padding: 0 var(--spacing-24);\n overflow-y: auto;\n z-index: 1;\n}\n\n.navbar__drawer-lang-back {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n width: 2.5rem;\n height: 2.5rem;\n border: none;\n background: transparent;\n color: var(--color-slate-1200);\n cursor: pointer;\n padding: 0;\n margin: var(--spacing-8) 0;\n flex-shrink: 0;\n}\n\n.navbar__drawer-lang-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 0;\n padding: var(--spacing-8) 0 var(--spacing-16);\n}\n\n.navbar__drawer-lang-item {\n display: block;\n width: 100%;\n padding: var(--spacing-12) 0;\n border: none;\n background: transparent;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-1200);\n text-align: left;\n cursor: pointer;\n transition: color 120ms ease;\n}\n\n.navbar__drawer-lang-item:hover {\n color: #ff444f;\n}\n\n.navbar__drawer-lang-item--active {\n color: #ff444f;\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* ── ACTIONS — right-side CTA buttons ───────────────────────── */\n\n.navbar__actions {\n grid-column: 3;\n grid-row: 1;\n justify-self: end;\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n/* ── PILL LOGO (inside pill) ─────────────────────────────────── */\n\n.navbar__pill-logo {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n text-decoration: none;\n overflow: hidden;\n max-width: 0;\n opacity: 0;\n transition: max-width 400ms cubic-bezier(.65, 0, .35, 1), opacity 300ms cubic-bezier(.65, 0, .35, 1);\n}\n\n.navbar__pill-logo img {\n padding-left: var(--spacing-8);\n padding-bottom: var(--spacing-4);\n}\n\n.navbar__pill-logo img {\n height: 1.5rem;\n width: auto;\n display: block;\n flex-shrink: 0;\n}\n\n/* ── PILL ACTIONS (inside pill) ──────────────────────────────── */\n\n.navbar__pill-actions {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n flex-shrink: 0;\n overflow: hidden;\n white-space: nowrap;\n max-width: 0;\n opacity: 0;\n transition: max-width 400ms cubic-bezier(.65, 0, .35, 1), opacity 300ms cubic-bezier(.65, 0, .35, 1);\n}\n\n/* ── MOBILE ACTIONS — login + hamburger ─────────────────────── */\n\n.navbar__mobile-actions {\n grid-column: 3;\n grid-row: 1;\n justify-self: end;\n display: none;\n /* shown only below 992px */\n align-items: center;\n gap: var(--spacing-8);\n}\n\n.navbar__mobile-trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n border: none;\n background: transparent;\n cursor: pointer;\n padding: 0;\n}\n\n.navbar--dark .navbar__mobile-trigger {\n color: var(--color-slate-50);\n}\n\n.navbar--light .navbar__mobile-trigger {\n color: var(--color-slate-1200);\n}\n\n/* ── DESKTOP DROPDOWN ────────────────────────────────────────── */\n\n.navbar__dropdown {\n position: absolute;\n top: calc(100% + var(--spacing-8));\n left: calc(50% - var(--navbar-dropdown-w) / 2);\n width: var(--navbar-dropdown-w);\n background-color: var(--color-slate-50);\n border: 1px solid var(--color-slate-100);\n border-radius: var(--navbar-dropdown-radius);\n box-shadow:\n 0px 8px 16px 2px rgba(0, 0, 0, 0.04),\n 0px -14px 16px 2px rgba(0, 0, 0, 0.02);\n display: flex;\n overflow: hidden;\n z-index: var(--navbar-z-dropdown);\n}\n\n.navbar__dropdown-inner {\n display: flex;\n flex: 1;\n min-width: 0;\n min-height: 22.8rem;\n overflow: hidden;\n}\n\n.navbar__dropdown-left {\n display: grid;\n grid-template-columns: repeat(2, 12.375rem);\n /* 2 × 198px columns */\n gap: var(--spacing-16) 1.25rem;\n /* 16px row gap, 20px col gap */\n padding: var(--spacing-24) var(--spacing-32);\n flex-shrink: 0;\n align-content: start;\n}\n\n.navbar__dropdown-right {\n flex: 1 0 0;\n /* fills remaining space */\n min-width: 0;\n padding: var(--spacing-8);\n}\n\n/* ── DROPDOWN COLUMN ─────────────────────────────────────────── */\n\n.navbar__dropdown-col {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n flex-shrink: 0;\n width: 12.375rem;\n /* 198px — Figma */\n align-self: start;\n /* don't stretch to column height — hug content */\n}\n\n.navbar__dropdown-col-list {\n display: flex;\n flex-direction: column;\n gap: 0;\n}\n\n.navbar__dropdown-col-title {\n display: block;\n padding: var(--spacing-8) 0;\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--line-height-md);\n color: var(--color-opacity-slate-48);\n margin: 0;\n}\n\n/* ── DROPDOWN LINK ───────────────────────────────────────────── */\n\n.navbar__dropdown-link {\n display: flex;\n align-items: center;\n gap: var(--spacing-4);\n height: 2rem;\n padding: var(--spacing-4) 0;\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-1200);\n text-decoration: none;\n white-space: nowrap;\n transition: color 120ms ease;\n}\n\n.navbar__dropdown-link:hover {\n color: var(--link-coral-color);\n}\n\n.navbar__dropdown-link svg {\n flex-shrink: 0;\n opacity: 0;\n transition: opacity 120ms ease, transform 120ms ease;\n transform: translateX(-4px);\n}\n\n.navbar__dropdown-link:hover svg {\n opacity: 1;\n transform: translateX(0);\n}\n\n/* ── DROPDOWN FEATURE CARD ───────────────────────────────────── */\n\n.navbar__dropdown-feature {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n gap: var(--spacing-16);\n width: 100%;\n height: 100%;\n border-radius: var(--radius-2xl);\n background-color: var(--color-slate-700);\n background-size: cover;\n background-position: center;\n padding: var(--spacing-24);\n color: var(--color-slate-50);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n.navbar__dropdown-feature-overlay {\n position: absolute;\n inset: 0;\n background: linear-gradient(to bottom, rgba(24, 28, 37, 0) 0%, rgba(24, 28, 37, 0.92) 100%);\n border-radius: var(--radius-2xl);\n pointer-events: none;\n}\n\n.navbar__dropdown-feature-img {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: var(--radius-2xl);\n pointer-events: none;\n}\n\n.navbar__dropdown-feature-content {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.navbar__dropdown-feature-title {\n margin: 0;\n font-size: var(--font-size-xl);\n /* 28px at desktop */\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--line-height-xl);\n /* 36px at desktop */\n color: var(--color-slate-50);\n}\n\n.navbar__dropdown-feature-desc {\n margin: 0;\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-50);\n}\n\n.navbar__dropdown-feature-cta {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-semi-bold);\n line-height: 1;\n color: var(--color-slate-50);\n text-decoration: none;\n cursor: pointer;\n transition: gap 120ms ease;\n}\n\n.navbar__dropdown-feature-cta:hover {\n gap: var(--spacing-12);\n}\n\n/* ── MOBILE DRAWER ───────────────────────────────────────────── */\n\n/* Clipping wrapper: prevents the drawer from showing above the bar\n during open/close animation */\n.navbar__drawer-clip {\n position: fixed;\n top: var(--navbar-height);\n left: 0;\n right: 0;\n bottom: 0;\n overflow: hidden;\n z-index: var(--navbar-z-drawer);\n pointer-events: none;\n}\n\n.navbar__drawer {\n position: absolute;\n inset: 0;\n background-color: var(--color-slate-50);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n font-family: var(--font-family-base);\n box-sizing: border-box;\n pointer-events: all;\n}\n\n/* ── DRAWER HEADER ───────────────────────────────────────────── */\n\n.navbar__drawer-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 4rem;\n padding: 0 var(--spacing-16);\n flex-shrink: 0;\n border-bottom: 1px solid var(--color-slate-100);\n}\n\n.navbar__drawer-logo img {\n height: 1.5rem;\n width: auto;\n display: block;\n}\n\n.navbar__drawer-close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n border: none;\n background: transparent;\n color: var(--color-slate-1200);\n cursor: pointer;\n padding: 0;\n}\n\n/* ── DRAWER NAV LIST ─────────────────────────────────────────── */\n\n.navbar__drawer-nav {\n display: flex;\n flex-direction: column;\n padding: 0 var(--spacing-24);\n flex: 1;\n}\n\n/* ── DRAWER ACCORDION ITEM ───────────────────────────────────── */\n\n.navbar__drawer-item {\n display: flex;\n flex-direction: column;\n}\n\n.navbar__drawer-trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: 3.5rem;\n /* 56px */\n padding: 0;\n border: none;\n border-radius: 0;\n background: transparent;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-1200);\n text-align: left;\n cursor: pointer;\n}\n\n.navbar__drawer-trigger--open {\n background: transparent;\n}\n\n.navbar__drawer-trigger__chevron {\n flex-shrink: 0;\n color: var(--color-slate-1200);\n transition: transform 200ms ease;\n}\n\n.navbar__drawer-trigger--open .navbar__drawer-trigger__chevron {\n transform: rotate(180deg);\n}\n\n/* ── DRAWER ACCORDION PANEL ──────────────────────────────────── */\n\n.navbar__drawer-panel {\n overflow: hidden;\n}\n\n.navbar__drawer-panel-inner {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n padding: var(--spacing-8) 0 var(--spacing-16);\n background-color: var(--color-slate-50);\n}\n\n.navbar__drawer-panel-cols {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-16);\n}\n\n.navbar__drawer-panel-col {\n display: flex;\n flex-direction: column;\n}\n\n.navbar__drawer-col-section {\n display: flex;\n flex-direction: column;\n}\n\n.navbar__drawer-col-title {\n display: block;\n padding: var(--spacing-8) 0;\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--line-height-md);\n color: var(--color-opacity-slate-48);\n margin: 0;\n}\n\n.navbar__drawer-col-links {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-4);\n}\n\n.navbar__drawer-link {\n display: block;\n padding: var(--spacing-4) 0;\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-1200);\n text-decoration: none;\n}\n\n/* ── DRAWER FEATURE CARD (mobile) ────────────────────────────── */\n\n.navbar__drawer-feature {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n gap: var(--spacing-16);\n border-radius: var(--radius-2xl);\n background-color: var(--color-slate-700);\n background-size: cover;\n background-position: center;\n padding: var(--spacing-24);\n color: var(--color-slate-50);\n overflow: hidden;\n min-height: 14.5rem;\n /* 232px — matches Figma mobile feature slot */\n box-sizing: border-box;\n}\n\n.navbar__drawer-feature-overlay {\n position: absolute;\n inset: 0;\n background: linear-gradient(to bottom, rgba(24, 28, 37, 0) 0%, rgba(24, 28, 37, 0.92) 100%);\n pointer-events: none;\n border-radius: var(--radius-2xl);\n}\n\n.navbar__drawer-feature-img {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n pointer-events: none;\n border-radius: var(--radius-2xl);\n}\n\n.navbar__drawer-feature-content {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.navbar__drawer-feature-title {\n margin: 0;\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--line-height-md);\n color: var(--color-slate-50);\n}\n\n.navbar__drawer-feature-desc {\n margin: 0;\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-50);\n}\n\n.navbar__drawer-feature-cta {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-semi-bold);\n line-height: 1;\n color: var(--color-slate-50);\n text-decoration: none;\n cursor: pointer;\n transition: gap 120ms ease;\n}\n\n.navbar__drawer-feature-cta:hover {\n gap: var(--spacing-12);\n}\n\n/* ── DRAWER SINGLE LINK (external, no dropdown) ──────────────── */\n\n.navbar__drawer-single {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n height: 3.5rem;\n padding: 0;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-1200);\n text-decoration: none;\n}\n\n/* ── DRAWER LANGUAGE BUTTON ──────────────────────────────────── */\n\n.navbar__drawer-lang {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n height: 3.5rem;\n padding: 0;\n border: none;\n background: transparent;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-md);\n color: var(--color-slate-1200);\n cursor: pointer;\n text-align: left;\n}\n\n/* ── DRAWER FOOTER BUTTONS ───────────────────────────────────── */\n\n.navbar__drawer-footer {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n padding: var(--spacing-24);\n flex-shrink: 0;\n}\n\n/* ── RESPONSIVE ─────────────────────────────────────────────── */\n\n/* Desktop — hide outer logo and actions only when scrolled (inner pill versions take over) */\n@media (min-width: 992px) {\n\n .navbar__logo,\n .navbar__actions {\n transition: opacity 400ms cubic-bezier(.65, 0, .35, 1), transform 400ms cubic-bezier(.65, 0, .35, 1);\n }\n\n .navbar--scrolled .navbar__logo,\n .navbar--scrolled .navbar__actions {\n opacity: 0;\n pointer-events: none;\n transform: translateY(-12px);\n }\n\n /* Fade in logo */\n .navbar--scrolled .navbar__pill-logo {\n max-width: 200px;\n opacity: 1;\n }\n\n /* Fade in actions */\n .navbar--scrolled .navbar__pill-actions {\n max-width: 400px;\n opacity: 1;\n }\n}\n\n/* Desktop only */\n@media (min-width: 992px) {\n .navbar__mobile-actions {\n display: none;\n }\n\n .navbar__drawer-clip,\n .navbar__drawer {\n display: none !important;\n }\n}\n\n/* Hide login button before it overlaps with the pill */\n@media (max-width: 1200px) {\n .navbar__actions-login {\n display: none;\n }\n}\n\n/* Mobile / tablet */\n@media (max-width: 991px) {\n .navbar {\n padding-top: 0;\n padding-bottom: 0;\n }\n\n /* Scrolled appearance lives on .navbar__bar, not .navbar itself: a\n backdrop-filter (like transform) makes its element the containing\n block for position:fixed descendants. .navbar__drawer-clip is a fixed\n child of .navbar sized top:var(--navbar-height); bottom:0 — if the\n blur sat on .navbar, that would resolve against the ~64px bar instead\n of the viewport and collapse the drawer to 0 height once scrolled.\n Keeping it on .navbar__bar (which has no fixed descendants) mirrors\n the desktop pattern, where the blur sits on .navbar__pill rather than\n .navbar. */\n .navbar__bar {\n transition: background-color 400ms cubic-bezier(.65, 0, .35, 1),\n backdrop-filter 400ms cubic-bezier(.65, 0, .35, 1),\n box-shadow 400ms cubic-bezier(.65, 0, .35, 1);\n }\n\n .navbar--scrolled .navbar__bar {\n background-color: rgba(255, 255, 255, 0.96);\n backdrop-filter: blur(16px);\n -webkit-backdrop-filter: blur(16px);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.08);\n }\n\n .navbar--scrolled .navbar__mobile-trigger {\n color: var(--color-slate-1200);\n }\n\n .navbar--menu-open,\n .navbar--menu-open .navbar__bar {\n background-color: var(--color-slate-50);\n }\n\n .navbar--menu-open .navbar__mobile-trigger {\n color: var(--color-slate-1200);\n }\n\n .navbar__nav-center,\n .navbar__actions {\n display: none;\n }\n\n .navbar__mobile-actions {\n display: flex;\n }\n}","/* ============================================================\n DAY/NIGHT TRANSITION COMPONENT\n Token inheritance:\n Primitive (core) → Semantic (--dnt-*) → Component styles\n\n Semantic tokens used:\n\n Typography — headline:\n Default: --typography-h2-* (H2 scale).\n `.dnt--headline-h1`: --typography-h1-* for home-style heroes (same token set as other H1s).\n\n Text color (interpolated in JS, tokens for reference):\n --dnt-text-day var(--color-slate-1400) [#000000]\n --dnt-text-night var(--color-slate-50) [#ffffff]\n\n Button (coral pill):\n --dnt-btn-bg var(--color-coral-700) [#ff444f]\n --dnt-btn-bg-hover var(--color-coral-800) [#e12e3a]\n --dnt-btn-text var(--color-slate-50) [white]\n --dnt-btn-radius var(--radius-full) [9999px]\n --dnt-btn-px var(--spacing-24) [1.5rem]\n --dnt-btn-py var(--spacing-16) [1rem]\n --dnt-btn-size var(--font-size-md) [1rem]\n --dnt-btn-lh var(--line-height-xs) [1.25rem]\n --dnt-btn-weight var(--font-weight-extra-bold) [800]\n\n Layout:\n --dnt-wrapper-height 250vh\n --dnt-content-max-width 37.5rem [600px — mobile / tablet text cap]\n --dnt-content-py var(--spacing-56) [3.5rem = 56px mobile]\n --dnt-content-px var(--spacing-16) [1rem = 16px mobile]\n Desktop overrides at 992px:\n --dnt-content-max-width calc(80rem - 2 * var(--spacing-24)) [1232px @ 16px — 1280 inner − gutters]\n --dnt-content-py var(--spacing-112) [7rem = 112px]\n --dnt-content-px var(--spacing-24) [1.5rem = 24px]\n\n Gap:\n --dnt-gap var(--spacing-16) [1rem]\n\n Description:\n Default: --dnt-desc-* → `--typography-body-md-*`.\n `.dnt--desc-body-lg`: `--typography-body-lg-*`.\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────────── */\n\n:root {\n /* Text color reference (interpolated as rgb() in JS) */\n --dnt-text-day: var(--color-slate-1400);\n --dnt-text-night: var(--color-slate-50);\n\n /* Button */\n --dnt-btn-bg: var(--color-coral-700);\n --dnt-btn-bg-hover: var(--color-coral-800);\n --dnt-btn-text: var(--color-slate-50);\n --dnt-btn-radius: var(--radius-full);\n --dnt-btn-px: var(--spacing-24);\n --dnt-btn-py: var(--spacing-16);\n --dnt-btn-size: var(--font-size-md);\n --dnt-btn-lh: var(--line-height-xs);\n --dnt-btn-weight: var(--font-weight-extra-bold);\n\n /* Layout — mobile default */\n --dnt-wrapper-height: 250vh;\n --dnt-text-max-width: 37.5rem;\n /* 600px — left-column cap from Figma (not a content-width token — component-specific) */\n --dnt-content-py: var(--spacing-56);\n /* 3.5rem = 56px */\n --dnt-content-px: var(--spacing-16);\n /* 1rem = 16px */\n\n /* Description */\n --dnt-desc-size: var(--typography-body-md-font-size);\n --dnt-desc-lh: var(--typography-body-md-line-height);\n --dnt-desc-weight: var(--typography-body-md-font-weight);\n\n /* Gap between headline and button */\n --dnt-gap: var(--spacing-16);\n}\n\n/* Desktop — match standard section inner width (80rem max − spacing-24 gutters) */\n@media (min-width: 992px) {\n :root {\n --dnt-content-py: var(--spacing-112);\n /* 7rem = 112px */\n --dnt-content-px: var(--spacing-24);\n /* 1.5rem = 24px */\n }\n}\n\n/* ── WRAPPER — scroll track ───────────────────────────────────── */\n/*\n * The wrapper defines the total scrollable distance.\n * 250vh gives 150vh of scroll range while the sticky container\n * (100vh) remains locked — enough for a smooth day→night transition.\n */\n\n.dnt {\n position: relative;\n height: var(--dnt-wrapper-height);\n width: 100%;\n font-family: var(--font-family-base);\n}\n\n/* Webflow `.trade-day-night_content { height: 200vh }` scroll driver. */\n.dnt--webflow-v2 {\n --dnt-wrapper-height: 200vh;\n}\n\n/* ── STICKY CONTAINER — viewport-locked canvas ────────────────── */\n\n.dnt__sticky {\n position: sticky;\n top: 0;\n height: 100vh;\n width: 100%;\n overflow: hidden;\n}\n\n/* ── BACKGROUND IMAGES ────────────────────────────────────────── */\n\n.dnt__bg {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: bottom;\n display: block;\n pointer-events: none;\n}\n\n.dnt__bg--day {\n z-index: 0;\n}\n\n.dnt__bg--night {\n z-index: 1;\n /* opacity animated by Framer Motion */\n}\n\n/* ── Webflow V2: `.trade-day-night_background-wrapper` + day + night layers ─ */\n\n.dnt__v2-background-wrapper {\n z-index: -1;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n pointer-events: none;\n}\n\n/*\n * Mirrors `webflow-components-cf572b.webflow.css`:\n * `.trade-day-night_background-day` then `.trade-day-night_background-night`\n * (two backgrounds — `trade_day` / `trade_night` URLs in React `backgroundImage`).\n */\n.dnt__v2-bg-day {\n z-index: 1;\n opacity: 1;\n width: 100%;\n box-sizing: border-box;\n position: relative;\n top: 0;\n left: 0;\n right: 0;\n background-repeat: no-repeat;\n background-size: cover;\n background-position: 100% 100%;\n overflow: hidden;\n}\n\n.dnt__v2-bg-night {\n z-index: 0;\n width: 100%;\n height: 100vh;\n margin-top: -100vh;\n position: sticky;\n top: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background-repeat: no-repeat;\n background-size: cover;\n background-position: 100% 100%;\n}\n\n.dnt--webflow-v2 .dnt__v2-bg-day,\n.dnt--webflow-v2 .dnt__v2-bg-night {\n background-attachment: fixed;\n}\n\n/* Sticky copy sits above the z-index:-1 background wrapper (Webflow `.trade-day-night_content-wrapper`). */\n.dnt__sticky--webflow-v2 {\n z-index: 0;\n}\n\n/* Webflow `.trade-day-night_content-wrapper`: column + viewport height */\n.dnt--webflow-v2 .dnt__sticky--webflow-v2 {\n height: 100dvh;\n min-height: 100vh;\n}\n\n/* ── Webflow V2 mobile / small breakpoints (`webflow-components-cf572b.webflow.css`) ─ */\n\n@media screen and (max-width: 991px) {\n .dnt--webflow-v2 .dnt__v2-bg-day {\n position: sticky;\n top: 0;\n background-position: 30% 0;\n background-repeat: repeat;\n background-size: auto 100vh;\n }\n\n .dnt--webflow-v2 .dnt__v2-bg-night {\n background-position: 30% 0;\n background-repeat: repeat;\n background-size: auto 100vh;\n }\n\n .dnt--webflow-v2 .dnt__sticky--webflow-v2 .dnt__content {\n flex-flow: column nowrap;\n justify-content: flex-start;\n align-items: flex-start;\n padding: var(--spacing-112) var(--dnt-content-px) var(--dnt-content-py) var(--dnt-content-px);\n }\n\n .dnt--webflow-v2 .dnt__text-wrap {\n max-width: 100%;\n width: 100%;\n }\n\n .dnt--webflow-v2 .dnt__headline--inline-day-night {\n width: 60%;\n }\n}\n\n@media screen and (max-width: 767px) {\n .dnt--webflow-v2 .dnt__headline--inline-day-night {\n width: 80%;\n }\n}\n\n@media screen and (max-width: 479px) {\n .dnt--webflow-v2 .dnt__v2-bg-day {\n background-position: 40% 0;\n }\n\n .dnt--webflow-v2 .dnt__v2-bg-night {\n background-position: 40% 0;\n }\n\n .dnt--webflow-v2 .dnt__sticky--webflow-v2 .dnt__content {\n padding: var(--spacing-80) var(--dnt-content-px) var(--dnt-content-py) var(--dnt-content-px);\n }\n\n .dnt--layout-v2 .dnt__inner {\n padding-left: var(--spacing-16);\n padding-right: var(--spacing-16);\n }\n\n /* `.trade-day-night_title.new-heading-style-h1` */\n .dnt--webflow-v2.dnt--headline-h1 .dnt__headline {\n font-size: 3.5rem;\n line-height: 4rem;\n }\n\n /* `.trade-day-night_description.margin-small.margin-top` → margin-top: 0 */\n .dnt--webflow-v2 .dnt__description {\n margin-top: 0;\n }\n}\n\n/* ── CONTENT ──────────────────────────────────────────────────── */\n\n.dnt__content {\n position: relative;\n z-index: 2;\n display: flex;\n align-items: flex-start;\n height: 100%;\n padding: var(--dnt-content-py) var(--dnt-content-px);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .dnt__content {\n align-items: center;\n }\n}\n\n/* ── INNER CONTAINER — 1280px centred ────────────────────────── */\n\n.dnt__inner {\n width: 100%;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n box-sizing: border-box;\n}\n\n/* Webflow DayNightTransitionV2 `.container` max-width (not a global token). */\n.dnt--layout-v2 .dnt__inner {\n max-width: 83rem;\n}\n\n/* ── TEXT WRAP ────────────────────────────────────────────────── */\n\n.dnt__text-wrap {\n display: flex;\n flex-direction: column;\n gap: var(--dnt-gap);\n max-width: var(--dnt-text-max-width);\n /* color is driven by Framer Motion as an inline rgb() MotionValue */\n}\n\n/* ── CROSSFADE WRAP ───────────────────────────────────────────── */\n/*\n * Stacks both children (day + night) in the same grid cell.\n * The taller child sets the container height; both crossfade\n * via Framer Motion opacity without causing layout shift.\n */\n\n.dnt__crossfade-wrap {\n display: grid;\n grid-template-areas: \"stack\";\n}\n\n.dnt__crossfade-wrap>* {\n grid-area: stack;\n}\n\n/* ── HEADLINE ─────────────────────────────────────────────────── */\n\n.dnt__headline {\n margin: 0;\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n /* color inherited from .dnt__text-wrap (Framer Motion inline style) */\n}\n\n/* “Trade all ” + day / night (Webflow headline DOM pattern; margins mirror embed script). */\n.dnt__headline--inline-day-night {\n display: block;\n}\n\n.dnt__headline-prefix {\n white-space: pre;\n}\n\n.dnt__headline-pair {\n display: inline-block;\n position: relative;\n vertical-align: bottom;\n}\n\n.dnt__headline-wday,\n.dnt__headline-wnight {\n display: inline-block;\n}\n\n.dnt__headline-wnight {\n vertical-align: bottom;\n}\n\n/* Home hero scale — uses global H1 typography tokens (no new font tokens). */\n.dnt--headline-h1 .dnt__headline {\n font-family: var(--typography-h1-font-family);\n font-size: var(--typography-h1-font-size);\n font-weight: var(--typography-h1-font-weight);\n line-height: var(--typography-h1-line-height);\n}\n\n/* ── DESCRIPTION ──────────────────────────────────────────────── */\n\n.dnt__description {\n margin: 0;\n font-family: var(--font-family-base);\n font-size: var(--dnt-desc-size);\n font-weight: var(--dnt-desc-weight);\n line-height: var(--dnt-desc-lh);\n /* color inherited from .dnt__text-wrap (Framer Motion inline style) */\n}\n\n/* Marketing body — uses global body-lg typography tokens. */\n.dnt--desc-body-lg .dnt__description {\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--typography-body-lg-font-weight);\n line-height: var(--typography-body-lg-line-height);\n}\n\n/* ── CTA BUTTON ───────────────────────────────────────────────── */\n\n.dnt__btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n align-self: flex-start;\n width: auto;\n padding: var(--dnt-btn-py) var(--dnt-btn-px);\n background-color: var(--dnt-btn-bg);\n color: var(--dnt-btn-text);\n border-radius: var(--dnt-btn-radius);\n font-family: var(--font-family-base);\n font-size: var(--dnt-btn-size);\n font-weight: var(--dnt-btn-weight);\n line-height: var(--dnt-btn-lh);\n text-decoration: none;\n cursor: pointer;\n border: none;\n transition: background-color 0.3s ease;\n white-space: nowrap;\n box-sizing: border-box;\n}\n\n.dnt__btn:hover {\n background-color: var(--dnt-btn-bg-hover);\n}\n\n/* Mobile: button fills the full width of the text column */\n@media screen and (max-width: 991px) {\n .dnt__btn {\n width: 100%;\n align-self: stretch;\n }\n}","/* ============================================================\n LOGO MARQUEE COMPONENT\n Token inheritance:\n Primitive (core) → Semantic (--lm-*) → Component styles\n\n Semantic tokens used:\n\n Section:\n --lm-bg var(--color-slate-1200) [#181c25]\n --lm-section-py var(--spacing-112) [7rem = 112px]\n --lm-section-px var(--spacing-24) [1.5rem = 24px]\n --lm-section-height 50rem [800px desktop]\n --lm-max-width 80rem [1280px]\n\n Content gap (media ↔ text):\n --lm-layout-gap 8rem [128px — Figma exact]\n\n Card:\n --lm-card-bg var(--color-slate-1000) [dark card bg behind logo images]\n --lm-card-radius var(--radius-xl) [1rem = 16px desktop]\n --lm-card-radius-mobile var(--radius-2xl) [1.5rem ≈ 24px mobile]\n --lm-card-px var(--spacing-16) [~15px desktop]\n --lm-card-py var(--spacing-24) [~20px desktop]\n --lm-card-px-mobile var(--spacing-12) [12px mobile]\n --lm-card-py-mobile var(--spacing-12) [12px mobile]\n --lm-card-img-h var(--spacing-112) [7rem = 112px — logo area]\n --lm-card-img-h-mobile 5.375rem [86px — no exact token]\n Logo images: max 90% of card W/H, object-fit contain, centred in .lm__card-img-wrap\n\n Column gap (between cards vertically):\n --lm-card-gap var(--spacing-16) [1rem = 16px]\n\n Columns gap (between col1 and col2 horizontally):\n --lm-col-gap var(--spacing-16) [1rem = 16px]\n\n Carousel:\n --lm-carousel-height 39.375rem [630px desktop]\n --lm-carousel-height-mob 20.5rem [328px mobile]\n --lm-fade-height var(--spacing-64) [4rem = 64px]\n\n Typography — headline:\n --lm-headline-size var(--typography-h2-font-size)\n mobile 2.5rem → tablet 3rem → desktop 3.5rem (56px)\n --lm-headline-lh var(--typography-h2-line-height)\n mobile 3rem → tablet 3.5rem → desktop 4rem (64px)\n --lm-headline-color var(--color-slate-50) [white]\n --lm-headline-weight var(--typography-h2-font-weight) [800]\n\n Typography — body:\n --lm-body-size var(--typography-body-md-font-size) [1rem = 16px]\n --lm-body-lh var(--typography-body-md-line-height) [1.5rem = 24px]\n --lm-body-color var(--color-slate-50)\n --lm-body-weight var(--typography-body-md-font-weight)\n\n Typography — disclaimer:\n --lm-disc-size var(--typography-body-sm-font-size) [0.875rem = 14px]\n --lm-disc-lh var(--typography-body-sm-line-height) [1.5rem]\n --lm-disc-color var(--color-slate-400) [#bfc6cc ≈ #b1b4bc]\n --lm-disc-weight var(--typography-body-sm-font-weight)\n\n CTA link:\n --lm-link-color var(--color-coral-700) [#ff444f]\n --lm-link-size var(--typography-link-md-font-size) [1rem]\n --lm-link-weight var(--typography-link-md-font-weight) [600]\n\n Text-area width (desktop):\n --lm-text-width 32.625rem [522px]\n\n Animation — scroll-driven opposing columns:\n --lm-col-travel 7.5rem [120px up/down]\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────────── */\n\n:root {\n /* Section */\n --lm-bg: var(--color-slate-1200);\n --lm-section-py: var(--spacing-112);\n --lm-section-px: var(--spacing-24);\n --lm-section-height: 50rem;\n --lm-max-width: var(--content-width-1280);\n --lm-layout-gap: var(--spacing-112);\n /* 7rem = 112px — closest to Figma 128px */\n\n /* Card */\n --lm-card-bg: var(--color-slate-1000);\n --lm-card-radius: var(--radius-xl);\n --lm-card-radius-mobile: var(--radius-2xl);\n --lm-card-px: var(--spacing-16);\n --lm-card-py: var(--spacing-24);\n --lm-card-px-mobile: var(--spacing-12);\n --lm-card-py-mobile: var(--spacing-12);\n --lm-card-img-h: var(--spacing-112);\n /* 7rem = 112px — closest to 128px */\n --lm-card-img-h-mobile: 5.375rem;\n\n /* Column */\n --lm-card-gap: var(--spacing-16);\n --lm-col-gap: var(--spacing-16);\n\n /* Carousel */\n --lm-carousel-height: 39.375rem;\n --lm-carousel-height-mob: 20.5rem;\n --lm-fade-height: var(--spacing-64);\n\n /* Headline */\n --lm-headline-size: var(--typography-h2-font-size);\n --lm-headline-lh: var(--typography-h2-line-height);\n --lm-headline-color: var(--color-slate-50);\n --lm-headline-weight: var(--typography-h2-font-weight);\n\n /* Body */\n --lm-body-size: var(--typography-body-md-font-size);\n --lm-body-lh: var(--typography-body-md-line-height);\n --lm-body-color: var(--color-slate-50);\n --lm-body-weight: var(--typography-body-md-font-weight);\n\n /* Disclaimer */\n --lm-disc-size: var(--typography-body-sm-font-size);\n --lm-disc-lh: var(--typography-body-sm-line-height);\n --lm-disc-color: var(--color-slate-400);\n --lm-disc-weight: var(--typography-body-sm-font-weight);\n\n /* CTA link */\n --lm-link-color: var(--color-coral-700);\n --lm-link-size: var(--typography-link-md-font-size);\n --lm-link-weight: var(--typography-link-md-font-weight);\n\n /* Text-area */\n --lm-text-width: 32.625rem;\n\n /* Mobile overrides */\n --lm-section-py-mobile: var(--spacing-56);\n --lm-section-px-mobile: var(--spacing-16);\n}\n\n/* ── SECTION ─────────────────────────────────────────────────── */\n\n.lm {\n position: relative;\n width: 100%;\n background-color: var(--lm-bg);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n /* No overflow:hidden here — the carousel handles its own clipping.\n * overflow:hidden on the tracked element confuses Framer Motion's\n * useScroll into treating it as a scroll container instead of\n * listening to the window, making scrollYProgress always 0. */\n}\n\n/* ── INNER WRAPPER ───────────────────────────────────────────── */\n\n.lm__inner {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n align-items: flex-start;\n max-width: var(--lm-max-width);\n margin: 0 auto;\n padding: var(--lm-section-py-mobile) var(--lm-section-px-mobile);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .lm__inner {\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: var(--lm-layout-gap);\n padding: var(--lm-section-py) var(--lm-section-px);\n min-height: var(--lm-section-height);\n }\n}\n\n/* ── TEXT CONTENT ────────────────────────────────────────────── */\n\n.lm__content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n align-items: flex-start;\n width: 100%;\n order: 1;\n /* text first on mobile */\n}\n\n@media (min-width: 992px) {\n .lm__content {\n flex-shrink: 0;\n width: var(--lm-text-width);\n order: 2;\n /* text second (right) on desktop */\n }\n}\n\n/* ── HEADLINE ────────────────────────────────────────────────── */\n\n.lm__headline {\n margin: 0;\n font-family: var(--font-family-base);\n font-size: var(--lm-headline-size);\n font-weight: var(--lm-headline-weight);\n line-height: var(--lm-headline-lh);\n color: var(--lm-headline-color);\n}\n\n/* ── BODY + DISCLAIMER wrapper ───────────────────────────────── */\n\n.lm__text-group {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n/* ── BODY ────────────────────────────────────────────────────── */\n\n.lm__body {\n margin: 0;\n font-family: var(--font-family-base);\n font-size: var(--lm-body-size);\n font-weight: var(--lm-body-weight);\n line-height: var(--lm-body-lh);\n color: var(--lm-body-color);\n}\n\n/* ── DISCLAIMER ──────────────────────────────────────────────── */\n\n.lm__disclaimer {\n margin: 0;\n font-family: var(--font-family-base);\n font-size: var(--lm-disc-size);\n font-weight: var(--lm-disc-weight);\n line-height: var(--lm-disc-lh);\n color: var(--lm-disc-color);\n}\n\n/* ── CTA LINK ────────────────────────────────────────────────── */\n\n.lm__link {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n font-family: var(--typography-link-md-font-family);\n font-size: var(--lm-link-size);\n font-weight: var(--lm-link-weight);\n line-height: var(--typography-link-md-line-height);\n color: var(--lm-link-color);\n text-decoration: none;\n cursor: pointer;\n white-space: nowrap;\n transition: color 0.2s ease;\n}\n\n.lm__link:hover {\n color: var(--color-coral-800);\n}\n\n.lm__link-icon {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n transition: transform 0.2s ease;\n}\n\n.lm__link:hover .lm__link-icon {\n transform: translateX(var(--spacing-4));\n}\n\n/* ── MEDIA ───────────────────────────────────────────────────── */\n/*\n * The media wrapper is flex-1 on desktop. overflow-hidden clips\n * the infinite column track. The fade divs produce top/bottom\n * gradient masks that blend cards into the dark background.\n */\n\n.lm__media {\n position: relative;\n width: 100%;\n order: 2;\n /* media second on mobile */\n flex-shrink: 0;\n}\n\n@media (min-width: 992px) {\n .lm__media {\n flex: 1 0 0;\n min-width: 0;\n order: 1;\n /* media first (left) on desktop */\n align-self: stretch;\n }\n}\n\n/* ── CAROUSEL — clipping container ───────────────────────────── */\n/*\n * align-items: flex-start is CRITICAL.\n * Default (stretch) would clamp column height to the carousel\n * height, leaving nothing to translate through. flex-start lets\n * each column grow to its natural content height (3× logo track),\n * which is far taller than the carousel. overflow: hidden then\n * clips that tall track, and Framer Motion slides it vertically\n * within the visible window.\n */\n\n.lm__carousel {\n position: relative;\n display: flex;\n align-items: flex-start;\n gap: var(--lm-col-gap);\n height: var(--lm-carousel-height-mob);\n overflow: hidden;\n}\n\n@media (min-width: 992px) {\n .lm__carousel {\n height: var(--lm-carousel-height);\n }\n}\n\n/* ── TOP / BOTTOM GRADIENT FADES ─────────────────────────────── */\n/*\n * Absolutely positioned inside the overflow-hidden carousel so\n * they always sit flush at the top and bottom edges regardless of\n * how much the columns have translated.\n *\n * The gradient uses var(--lm-bg) = var(--color-slate-1200) as the\n * opaque end, fading to rgba(0,0,0,0) so cards dissolve cleanly\n * into the dark section background rather than hard-clipping.\n * rgba(0,0,0,0) is used as the transparent stop (not \"transparent\")\n * to prevent Safari's mid-gradient grey artifact.\n */\n\n.lm__fade {\n position: absolute;\n left: 0;\n right: 0;\n height: var(--lm-fade-height);\n pointer-events: none;\n z-index: 2;\n}\n\n.lm__fade--top {\n top: 0;\n background: linear-gradient(to bottom,\n var(--lm-bg) 0%,\n rgba(0, 0, 0, 0) 100%);\n}\n\n.lm__fade--bottom {\n bottom: 0;\n background: linear-gradient(to top,\n var(--lm-bg) 0%,\n rgba(0, 0, 0, 0) 100%);\n}\n\n/* ── COLUMNS ─────────────────────────────────────────────────── */\n/*\n * flex: 1 0 0 → equal width from carousel, NO height constraint.\n * align-self: flex-start ensures the column height is content-driven\n * (3× logo track >> carousel height), giving Framer Motion room to\n * translate up / down within the overflow-hidden parent.\n */\n\n.lm__col {\n flex: 1 0 0;\n align-self: flex-start;\n /* MUST stay flex-start — prevents stretching to carousel height */\n display: flex;\n flex-direction: column;\n gap: var(--lm-card-gap);\n min-width: 0;\n will-change: transform;\n /* promote to compositor layer for smooth GPU translation */\n}\n\n/* ── CARD ────────────────────────────────────────────────────── */\n\n.lm__card {\n flex-shrink: 0;\n background-color: var(--lm-card-bg);\n border-radius: var(--lm-card-radius-mobile);\n aspect-ratio: 4 / 3;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 100%;\n overflow: hidden;\n}\n\n@media (min-width: 992px) {\n .lm__card {\n border-radius: var(--lm-card-radius);\n }\n}\n\n/* ── CARD IMAGE ──────────────────────────────────────────────── */\n\n.lm__card-img-wrap {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n}\n\n.lm__card-img-wrap img {\n max-width: 90%;\n max-height: 90%;\n width: auto;\n height: auto;\n object-fit: contain;\n object-position: center;\n display: block;\n}","/* ============================================================\n DOWNLOAD BADGE PRIMITIVE\n Token inheritance:\n Primitive (core) → Semantic (--download-badge-*) → Component styles\n\n A clickable platform download badge — pill-shaped container\n (white + border for light, slate-1200 fill for dark) with the\n platform SVG artwork centred inside.\n\n Follows the same sizing conventions as the Button primitive:\n height → var(--spacing-48)\n radius → var(--radius-full)\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n --download-badge-height: var(--spacing-48);\n --download-badge-radius: var(--radius-full);\n --download-badge-padding-x: var(--spacing-16);\n --download-badge-transition: opacity 100ms ease, box-shadow 100ms ease;\n --download-badge-focus-color: var(--color-blue-600);\n\n /* Light variant — slate-50 = #ffffff */\n --download-badge-light-bg: var(--color-slate-50);\n --download-badge-light-border: 1px solid var(--color-slate-1200);\n\n /* Dark variant — slate-800 sits one layer above slate-1200 on dark backgrounds */\n --download-badge-dark-bg: var(--color-slate-800);\n --download-badge-dark-border: 1px solid transparent;\n\n /* Inner artwork height */\n --download-badge-img-height: var(--spacing-32);\n}\n\n/* ── BADGE LINK (pill container) ──────────────────────────── */\n\n.download-badge {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--download-badge-height);\n padding: 0 var(--download-badge-padding-x);\n border-radius: var(--download-badge-radius);\n box-sizing: border-box;\n text-decoration: none;\n cursor: pointer;\n outline: none;\n flex-shrink: 0;\n transition: var(--download-badge-transition);\n}\n\n/* Light (default) — white pill with dark border */\n.download-badge--light {\n background: var(--download-badge-light-bg);\n border: var(--download-badge-light-border);\n}\n\n/* Dark — slate-1200 filled pill */\n.download-badge--dark {\n background: var(--download-badge-dark-bg);\n border: var(--download-badge-dark-border);\n}\n\n/* ── STATES ───────────────────────────────────────────────── */\n\n.download-badge:hover {\n opacity: 0.85;\n}\n\n.download-badge:focus-visible::after {\n content: \"\";\n position: absolute;\n inset: calc(-1 * var(--spacing-2));\n border-radius: var(--download-badge-radius);\n border: var(--spacing-2) solid var(--download-badge-focus-color);\n pointer-events: none;\n}\n\n/* ── BADGE IMAGE (artwork only, no pill) ──────────────────── */\n\n.download-badge__img {\n height: var(--download-badge-img-height);\n width: auto;\n display: block;\n pointer-events: none;\n}","/* ============================================================\n STEPS TEMPLATE\n Token inheritance:\n Primitive (core) → Semantic (--steps-*) → Component styles\n\n Layout: two-column split — image (left or right) + numbered\n steps list. On mobile the image stacks above the content.\n\n Semantic tokens:\n --steps-bg var(--color-slate-50)\n --steps-title-color var(--color-slate-1200)\n --steps-number-color var(--color-coral-700)\n --steps-number-size var(--spacing-40)\n --steps-item-title-color var(--color-slate-1200)\n --steps-item-desc-color var(--color-slate-1200)\n --steps-divider-color var(--color-opacity-slate-8)\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n --steps-bg: var(--color-slate-50);\n --steps-title-color: var(--text-primary);\n --steps-number-color: var(--color-coral-700);\n --steps-number-size: var(--spacing-40);\n --steps-item-title-color: var(--text-primary);\n --steps-item-desc-color: var(--text-primary);\n --steps-divider-color: var(--color-opacity-slate-8);\n}\n\n/* ── SECTION SHELL ────────────────────────────────────────── */\n\n.steps {\n width: 100%;\n background-color: var(--steps-bg);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n}\n\n/* Embedded usage (e.g. inside FeatureBlogPage's article body): no\n standalone-section background or block padding, since the embedding\n parent already provides its own content rhythm/padding. The title keeps\n the same scroll offset as a level-2 heading so hash/TOC navigation does\n not place it beneath a sticky header. */\n.steps--embedded {\n background-color: transparent;\n}\n\n.steps--embedded .steps__title {\n scroll-margin-top: var(--spacing-96);\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.steps__container {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-40);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .steps__container {\n flex-direction: row;\n align-items: center;\n gap: var(--spacing-96);\n padding: var(--spacing-112) var(--spacing-24);\n }\n\n .steps__container--image-right {\n flex-direction: row-reverse;\n }\n}\n\n.steps--embedded .steps__container {\n padding: 0;\n}\n\n/* ── IMAGE COLUMN ─────────────────────────────────────────── */\n\n.steps__image-wrapper {\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n flex-shrink: 0;\n background-color: transparent;\n}\n\n@media (min-width: 992px) {\n .steps__image-wrapper {\n flex: 1 0 0;\n width: auto;\n }\n}\n\n.steps__image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n\n/* ── CONTENT COLUMN ───────────────────────────────────────── */\n\n.steps__content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .steps__content {\n flex: 1 0 0;\n width: auto;\n }\n}\n\n/* ── SECTION TITLE ────────────────────────────────────────── */\n\n.steps__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--steps-title-color);\n margin: 0;\n}\n\n/* ── STEPS LIST ───────────────────────────────────────────── */\n\n.steps__list {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n/* ── STEP ITEM ────────────────────────────────────────────── */\n\n.steps__item {\n border-bottom: 1px solid var(--steps-divider-color);\n}\n\n.steps__item:last-child {\n border-bottom: none;\n}\n\n/* ── STEP ITEM INNER ──────────────────────────────────────── */\n\n.steps__item-inner {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n gap: var(--spacing-16);\n padding: var(--spacing-16) 0;\n}\n\n/* ── STEP NUMBER ──────────────────────────────────────────── */\n\n.steps__number {\n font-family: var(--font-family-base);\n font-size: var(--steps-number-size);\n font-weight: var(--font-weight-extra-bold);\n /* Unitless 1 keeps the glyph's cap aligned with the step title's first\n line — any extra leading pushes a number this large visibly lower. */\n line-height: 1;\n color: var(--steps-number-color);\n flex-shrink: 0;\n min-width: var(--steps-number-size);\n}\n\n/* ── STEP BODY ────────────────────────────────────────────── */\n\n.steps__item-body {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-4);\n}\n\n/* ── STEP ITEM TITLE ──────────────────────────────────────── */\n\n.steps__item-title {\n font-family: var(--typography-h6-font-family);\n font-size: var(--typography-h6-font-size);\n font-weight: var(--typography-h6-font-weight);\n line-height: var(--typography-h6-line-height);\n color: var(--steps-item-title-color);\n margin: 0;\n}\n\n/* ── STEP ITEM DESCRIPTION ────────────────────────────────── */\n\n.steps__item-description {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--steps-item-desc-color);\n margin: 0;\n}","/* ============================================================\n DOWNLOAD BANNER TEMPLATE\n Token inheritance:\n Primitive (core) → Semantic (--db-*) → Component styles\n\n Layout:\n Mobile — vertical stack: heading → badge grid (2-col, full-width)\n Desktop — horizontal split: QR block (left) | badge grid (right)\n\n Style variants:\n light → slate-100 outer, white card\n light-2 → slate-50 outer, slate-75 card (default)\n dark → white outer, slate-1200 card\n\n Semantic tokens:\n --db-section-bg-light var(--color-slate-100)\n --db-section-bg-light-2 var(--background-surface) [slate-50 #FFFFFF]\n --db-section-bg-dark var(--color-slate-50)\n --db-card-bg-light var(--color-slate-50)\n --db-card-bg-light-2 var(--background-surface-secondary) [slate-75 #F6F7F8]\n --db-card-bg-dark var(--color-slate-1200)\n --db-title-color-light var(--color-slate-1200)\n --db-title-color-dark var(--color-slate-50)\n --db-subtitle-color-light var(--color-slate-1200)\n --db-subtitle-color-dark var(--color-slate-50)\n --db-disclaimer-color-light var(--color-slate-500)\n --db-disclaimer-color-dark var(--color-slate-500)\n --db-card-radius var(--radius-2xl)\n\n Badge pill styles are owned by the DownloadBadge primitive.\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n --db-section-bg-light: var(--color-slate-100);\n --db-section-bg-light-2: var(--background-surface); /* slate-50 #FFFFFF */\n --db-section-bg-dark: var(--color-slate-50);\n\n --db-card-bg-light: var(--color-slate-50);\n --db-card-bg-light-2: var(--background-surface-secondary); /* slate-75 #F6F7F8 */\n --db-card-bg-dark: var(--color-slate-1200);\n\n --db-title-color-light: var(--text-primary);\n --db-title-color-dark: var(--color-slate-50);\n\n --db-subtitle-color-light: var(--text-primary);\n --db-subtitle-color-dark: var(--color-slate-50);\n\n --db-disclaimer-color-light: var(--color-slate-500);\n --db-disclaimer-color-dark: var(--color-slate-500);\n\n --db-card-radius: var(--radius-2xl);\n}\n\n/* ── SECTION SHELL ────────────────────────────────────────── */\n\n.db-section {\n width: 100%;\n box-sizing: border-box;\n}\n\n.db-section--light {\n background-color: var(--db-section-bg-light);\n}\n\n.db-section--light-2 {\n background-color: var(--db-section-bg-light-2);\n}\n\n.db-section--dark {\n background-color: var(--db-section-bg-dark);\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.db-container {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .db-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .db-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── CARD ─────────────────────────────────────────────────── */\n\n.db-card {\n border-radius: var(--db-card-radius);\n padding: var(--spacing-24);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-32);\n box-sizing: border-box;\n}\n\n.db-section--light .db-card {\n background-color: var(--db-card-bg-light);\n}\n\n.db-section--light-2 .db-card {\n background-color: var(--db-card-bg-light-2);\n}\n\n.db-section--dark .db-card {\n background-color: var(--db-card-bg-dark);\n}\n\n@media (min-width: 992px) {\n .db-card {\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-80);\n padding: var(--spacing-48);\n }\n}\n\n/* ── QR BLOCK ─────────────────────────────────────────────── */\n\n.db-qr-block {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n@media (min-width: 992px) {\n .db-qr-block {\n flex-direction: row;\n align-items: center;\n gap: var(--spacing-32);\n flex-shrink: 0;\n }\n}\n\n/* ── QR IMAGE ─────────────────────────────────────────────── */\n\n.db-qr-image {\n width: 128px;\n height: 128px;\n object-fit: contain;\n object-position: center;\n display: none;\n /* hidden on mobile */\n flex-shrink: 0;\n}\n\n@media (min-width: 992px) {\n .db-qr-image {\n display: block;\n }\n}\n\n/* ── QR TEXT ──────────────────────────────────────────────── */\n\n.db-qr-text {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n}\n\n/* Desktop-only lines */\n.db-qr-text__title--desktop,\n.db-qr-text__subtitle--desktop {\n display: none;\n}\n\n/* Mobile-only heading */\n.db-qr-text__title--mobile {\n display: block;\n}\n\n@media (min-width: 992px) {\n\n .db-qr-text__title--desktop,\n .db-qr-text__subtitle--desktop {\n display: block;\n }\n\n .db-qr-text__title--mobile {\n display: none;\n }\n}\n\n.db-qr-text__title--desktop {\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--typography-body-lg-font-weight);\n line-height: var(--typography-body-lg-line-height);\n}\n\n.db-qr-text__subtitle--desktop {\n /* Semantic tag: <h2> — visual style: h5 (was h3) */\n margin: 0;\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n}\n\n.db-qr-text__title--mobile {\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--typography-body-lg-font-weight);\n line-height: var(--typography-body-lg-line-height);\n}\n\n/* Text colours per style variant */\n.db-section--light .db-qr-text__title--desktop,\n.db-section--light .db-qr-text__title--mobile,\n.db-section--light-2 .db-qr-text__title--desktop,\n.db-section--light-2 .db-qr-text__title--mobile {\n color: var(--db-title-color-light);\n}\n\n.db-section--dark .db-qr-text__title--desktop,\n.db-section--dark .db-qr-text__title--mobile {\n color: var(--db-title-color-dark);\n}\n\n.db-section--light .db-qr-text__subtitle--desktop,\n.db-section--light-2 .db-qr-text__subtitle--desktop {\n color: var(--db-subtitle-color-light);\n}\n\n.db-section--dark .db-qr-text__subtitle--desktop {\n color: var(--db-subtitle-color-dark);\n}\n\n/* ── DISCLAIMER ───────────────────────────────────────────── */\n\n.db-disclaimer {\n display: block;\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n margin-top: var(--spacing-4);\n}\n\n.db-section--light .db-disclaimer,\n.db-section--light-2 .db-disclaimer {\n color: var(--db-disclaimer-color-light);\n}\n\n.db-section--dark .db-disclaimer {\n color: var(--db-disclaimer-color-dark);\n}\n\n/* ── BADGE GRID ───────────────────────────────────────────── */\n\n.db-badges {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--spacing-8);\n}\n\n.db-badges .download-badge {\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .db-badges {\n flex: unset;\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n align-content: center;\n align-items: center;\n }\n\n .db-badges .download-badge {\n width: auto;\n }\n}","/* ── TextScroll ──────────────────────────────────────────── */\n\n.ts {\n font-family: var(--font-family-base);\n box-sizing: border-box;\n}\n\n/* ── Inner container ─────────────────────────────────────── */\n\n.ts__inner {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .ts__inner {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 1280px) {\n .ts__inner {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Text block ──────────────────────────────────────────── */\n\n.ts__text {\n margin: 0;\n font-family: var(--typography-h4-font-family);\n font-size: var(--typography-h4-font-size);\n font-weight: var(--typography-h4-font-weight);\n line-height: var(--typography-h4-line-height);\n color: var(--text-primary);\n}\n\n@media (min-width: 768px) {\n .ts__text {\n text-align: center;\n }\n}\n\n/* ── Individual word ─────────────────────────────────────── */\n\n.ts__word {\n display: inline;\n white-space: pre-wrap;\n /* GSAP tweens opacity 0.2 → 1 via inline style after first paint */\n will-change: opacity;\n}\n","/* ============================================================\n STICKY MARKET CARDS COMPONENT\n Token inheritance:\n Primitive (core) → Semantic (--smc-*) → Component styles\n\n STRUCTURE per card:\n .smc__card ← sticky wrapper (position:sticky)\n .smc__card-inner ← visual card (gets scale + filter)\n .smc__card-bg ← optional: full-bleed bg image\n img\n .smc__card-overlay ← semi-transparent theme colour\n .smc__card-content ← flex row: title | description\n .smc__card-title-wrap\n h3.smc__card-title\n .smc__card-desc-wrap\n p.smc__card-desc\n\n SCROLL MECHANIC:\n Each wrapper is position:sticky. The flex gap between wrappers\n creates scroll distance so cards don't all stack at once.\n JS measures overlap of the NEXT wrapper over the current one and\n applies scale/brightness to the INNER card only — the sticky\n position of the wrapper is never disturbed.\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n /* Section background */\n --smc-bg: var(--color-slate-75);\n\n /* Font family */\n --smc-font-family: var(--font-family-base);\n\n /* Section header color */\n --smc-header-color: var(--text-primary);\n\n /* Card theme — light */\n --smc-card-light-bg: var(--color-slate-75);\n --smc-card-light-text: var(--color-slate-1200);\n\n /* Card theme — coral */\n --smc-card-coral-bg: var(--color-coral-700);\n --smc-card-coral-text: var(--color-slate-50);\n\n /* Card theme — dark */\n --smc-card-dark-bg: var(--color-slate-1200);\n --smc-card-dark-text: var(--color-slate-50);\n\n /* Typography — section header (H2) */\n --smc-header-size: var(--typography-h2-font-size);\n --smc-header-lh: var(--typography-h2-line-height);\n --smc-header-weight: var(--typography-h2-font-weight);\n\n /* Sticky scroll \"What we offer\" stack */\n --smc-sticky-top: var(--spacing-96);\n /* 96px base — clears typical nav */\n --smc-peek: var(--spacing-16);\n /* 16px per-card offset: card N sticks 16px lower than card N-1 */\n --smc-padding-v: var(--spacing-32);\n /* 32px vertical padding inside card */\n --smc-padding-h: var(--spacing-64);\n /* 64px horizontal padding inside card */\n --smc-min-height: 15.625rem;\n /* 250px — minimum card height matches 846×250 ratio */\n --smc-gap: var(--spacing-64);\n /* 64px gap between sticky wrappers = main scroll distance */\n --smc-content-gap: var(--spacing-24);\n /* 24px gap between title and description columns */\n /* RGB values for overlay colours (image + theme blend) */\n --smc-card-dark-rgb: 24, 28, 37;\n --smc-card-coral-rgb: 255, 68, 79;\n --smc-card-light-rgb: 246, 247, 248;\n}\n\n/* ── ROOT ─────────────────────────────────────────────────── */\n\n.smc {\n width: 100%;\n background-color: var(--smc-bg);\n font-family: var(--smc-font-family);\n box-sizing: border-box;\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.smc__inner {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-48);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .smc__inner {\n padding: var(--spacing-56) var(--spacing-24);\n gap: var(--spacing-64);\n }\n}\n\n@media (min-width: 992px) {\n .smc__inner {\n padding: var(--spacing-112) var(--spacing-24);\n gap: var(--spacing-80);\n }\n}\n\n/* ── SECTION HEADER ───────────────────────────────────────── */\n\n.smc__header-wrap {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n text-align: left;\n}\n\n@media (min-width: 768px) {\n .smc__header-wrap {\n align-items: center;\n text-align: center;\n }\n}\n\n.smc__header {\n font-size: var(--smc-header-size);\n font-weight: var(--smc-header-weight);\n line-height: var(--smc-header-lh);\n color: var(--smc-header-color);\n margin: 0;\n}\n\n.smc__description {\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--typography-body-lg-font-weight);\n line-height: var(--typography-body-lg-line-height);\n color: var(--smc-header-color);\n margin: 0;\n max-width: 640px;\n}\n\n/* ── Track ────────────────────────────────────────────────── */\n\n.smc__track {\n display: flex;\n flex-direction: column;\n /* Gap between sticky wrappers: this IS the scroll distance */\n gap: var(--smc-gap);\n /* Extra room so the last card can fully scroll into view */\n padding-bottom: var(--spacing-96);\n /* Constrain cards to ~846px on desktop */\n width: 100%;\n max-width: var(--content-width-846);\n margin: 0 auto;\n}\n\n/* ── Sticky wrapper ───────────────────────────────────────── */\n/*\n * top is calculated using the inline --smc-card-index\n * z-index is set inline as i+1.\n * NO transform here — wrapper must stay fixed for sticky to work.\n */\n\n.smc__card {\n position: sticky;\n top: calc(var(--smc-sticky-top) + var(--smc-card-index) * var(--smc-peek));\n}\n\n/* ── Inner card — the visual element ─────────────────────── */\n\n.smc__card-inner {\n position: relative;\n border-radius: var(--spacing-32);\n padding: var(--smc-padding-v) var(--smc-padding-h);\n min-height: var(--smc-min-height);\n display: flex;\n align-items: center;\n overflow: hidden;\n box-sizing: border-box;\n\n /* JS-driven depth cues — identity transforms on first paint */\n transform-origin: top center;\n transition: transform 0.1s ease-out, filter 0.1s ease-out;\n will-change: transform, filter;\n}\n\n/* ── Inner card themes ────────────────────────────────────── */\n\n.smc__card-inner--light {\n background-color: var(--smc-card-light-bg);\n color: var(--smc-card-light-text);\n}\n\n.smc__card-inner--coral {\n background-color: var(--smc-card-coral-bg);\n color: var(--smc-card-coral-text);\n}\n\n.smc__card-inner--dark {\n background-color: var(--smc-card-dark-bg);\n color: var(--smc-card-dark-text);\n}\n\n/* ── Background image (optional) ─────────────────────────── */\n\n.smc__card-bg {\n position: absolute;\n inset: 0;\n z-index: 0;\n}\n\n.smc__card-bg img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n/* Semi-transparent overlay sits on top of the image */\n.smc__card-overlay {\n position: absolute;\n inset: 0;\n}\n\n.smc__card-overlay--dark {\n background-color: rgba(var(--smc-card-dark-rgb), 0.85);\n}\n\n.smc__card-overlay--coral {\n background-color: rgba(var(--smc-card-coral-rgb), 0.85);\n}\n\n.smc__card-overlay--light {\n background-color: rgba(var(--smc-card-light-rgb), 0.85);\n}\n\n/* ── Card content row ─────────────────────────────────────── */\n\n.smc__card-content {\n position: relative;\n z-index: 1;\n display: grid;\n grid-template-columns: 1fr 1.25fr;\n width: 100%;\n align-items: center;\n gap: var(--smc-content-gap);\n}\n\n.smc__card-title-wrap {\n flex: 1;\n}\n\n.smc__card-desc-wrap {\n flex: 1;\n}\n\n/* ── Card title ───────────────────────────────────────────── */\n\n.smc__card-title {\n margin: 0;\n font-family: var(--font-family-base);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: inherit;\n}\n\n/* ── Card description ─────────────────────────────────────── */\n\n.smc__card-desc {\n margin: 0;\n font-family: var(--font-family-base);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: inherit;\n opacity: 0.95;\n}\n\n/* ── Mobile ───────────────────────────────────────────────── */\n\n@media (max-width: 767px) {\n .smc__card-inner {\n padding: var(--spacing-24) var(--spacing-32);\n }\n\n .smc__card-content {\n grid-template-columns: 1fr;\n align-items: flex-start;\n gap: var(--spacing-24);\n }\n}\n","/* ============================================================\n TABLE COMPONENT\n Token inheritance:\n Primitive (core) → Semantic (--tbl-*) → Component styles\n\n Uses design-system primitives:\n SearchField — search input\n Pagination — page navigation\n\n STRUCTURE:\n .tbl ← root container\n .tbl__topbar ← search + showing summary\n .tbl__search-wrap ← SearchField wrapper\n .tbl__summary ← \"Showing X–Y of Z\"\n .tbl__scroll-wrapper ← horizontal scroll container\n .tbl__table ← native table\n thead\n .tbl__tr\n .tbl__th ← header cell\n .tbl__th-inner ← wrapper for tooltip positioning\n .tbl__hint ← hover tooltip\n .tbl__col-label ← header text (dashed if tooltip)\n .tbl__tbody\n .tbl__tr ← data row\n .tbl__td ← data cell\n .tbl__cell-inner ← icon + text\n .tbl__footer ← bottom bar\n .tbl__info-block ← info icon + text\n .tbl__pagination-wrap ← Pagination primitive wrapper\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n --tbl-bg: var(--color-slate-50);\n --tbl-border: var(--color-opacity-slate-8);\n --tbl-header-bg: var(--color-slate-75);\n --tbl-row-hover-bg: var(--color-slate-75);\n --tbl-text: var(--text-primary);\n --tbl-text-muted: var(--text-secondary);\n --tbl-font-family: var(--font-family-base);\n\n /* Column widths */\n --tbl-col-main-width: 11rem; /* 176px — instrument + icon */\n --tbl-col-normal-width: 6rem; /* 96px — numeric columns */\n --tbl-col-big-width: 14rem; /* 224px — trading hours */\n\n /* Row */\n --tbl-row-height: var(--spacing-56);\n --tbl-cell-px: var(--spacing-16);\n\n /* Tooltip */\n --tbl-hint-bg: var(--color-slate-1200);\n --tbl-hint-border: var(--color-slate-1200);\n --tbl-hint-radius: var(--radius-md);\n --tbl-hint-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n --tbl-hint-width: 13rem;\n --tbl-hint-text: var(--color-slate-50);\n --tbl-hint-text-muted: var(--color-slate-300);\n}\n\n/* ── ROOT ─────────────────────────────────────────────────── */\n\n.tbl-section {\n width: 100%;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-48);\n font-family: var(--tbl-font-family);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .tbl-section {\n padding: var(--spacing-56) var(--spacing-24);\n gap: var(--spacing-64);\n }\n}\n\n@media (min-width: 992px) {\n .tbl-section {\n padding: var(--spacing-112) var(--spacing-24);\n gap: var(--spacing-80);\n }\n}\n\n.tbl-section__header {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n}\n\n.tbl-section__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--tbl-text);\n margin: 0;\n}\n\n.tbl {\n width: 100%;\n background-color: var(--tbl-bg);\n font-family: var(--tbl-font-family);\n font-size: var(--typography-body-xs-font-size);\n color: var(--tbl-text);\n box-sizing: border-box;\n border-radius: var(--radius-xl);\n border: 1px solid var(--tbl-border);\n overflow: hidden;\n}\n\n/* ── TOP BAR ──────────────────────────────────────────────── */\n\n.tbl__topbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-16);\n padding: var(--spacing-16) var(--spacing-24);\n border-bottom: 1px solid var(--tbl-border);\n background-color: var(--tbl-bg);\n flex-wrap: wrap;\n}\n\n.tbl__search-wrap {\n flex: 1;\n min-width: 160px;\n max-width: 320px;\n}\n\n/* Adjust SearchField primitive to fit table context */\n.tbl__search-wrap .sf-wrapper {\n height: var(--spacing-40);\n}\n\n.tbl__search-wrap .sf-input {\n font-size: var(--typography-body-sm-font-size);\n}\n\n.tbl__summary {\n font-size: var(--typography-body-xs-font-size);\n color: var(--tbl-text-muted);\n white-space: nowrap;\n flex-shrink: 0;\n}\n\n/* ── SCROLL WRAPPER ───────────────────────────────────────── */\n/*\n * overflow-x: auto enables horizontal scrolling.\n * overflow-y must be visible so tooltips can escape top/bottom.\n */\n\n.tbl__scroll-wrapper {\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n}\n\n/* ── NATIVE TABLE ─────────────────────────────────────────── */\n\n.tbl__table {\n width: 100%;\n min-width: max-content;\n border-collapse: separate;\n border-spacing: 0;\n text-align: left;\n}\n\n/* ── TABLE ROWS ───────────────────────────────────────────── */\n\n.tbl__tr {\n background-color: var(--tbl-bg);\n transition: background-color 0.1s;\n height: var(--tbl-row-height);\n}\n\n.tbl__tbody .tbl__tr:hover {\n background-color: var(--tbl-row-hover-bg);\n}\n\n/* ── TABLE CELLS (TH / TD) ────────────────────────────────── */\n\n.tbl__th,\n.tbl__td {\n padding: var(--spacing-12) var(--tbl-cell-px);\n box-sizing: border-box;\n vertical-align: middle;\n position: relative;\n width: var(--tbl-col-normal-width);\n min-width: var(--tbl-col-normal-width);\n border-bottom: 1px solid var(--tbl-border);\n}\n\n.tbl__tbody .tbl__tr:last-child .tbl__td {\n border-bottom: none;\n}\n\n.tbl__th--big,\n.tbl__td--big {\n width: var(--tbl-col-big-width);\n min-width: var(--tbl-col-big-width);\n}\n\n/* ── STICKY MAIN COLUMN ───────────────────────────────────── */\n/*\n * Native table cells support position: sticky perfectly.\n * We apply it to both TH and TD for the main column.\n */\n\n.tbl__th--main,\n.tbl__td--main {\n width: var(--tbl-col-main-width);\n min-width: var(--tbl-col-main-width);\n position: sticky;\n left: 0;\n z-index: 2;\n background-color: var(--tbl-bg);\n box-shadow: 4px 0 12px rgba(0, 0, 0, 0.03);\n}\n\n/* Keep sticky cell background in sync with row hover */\n.tbl__tbody .tbl__tr:hover .tbl__td--main {\n background-color: var(--tbl-row-hover-bg);\n}\n\n/* ── HEADER SPECIFICS ─────────────────────────────────────── */\n\n.tbl__th {\n background-color: var(--tbl-header-bg);\n font-weight: normal;\n vertical-align: top;\n padding-bottom: var(--spacing-12);\n padding-top: var(--spacing-12);\n position: sticky;\n top: 0;\n z-index: 4;\n}\n\n/* Header needs higher z-index so it stays above scrolling body cells AND scrolling headers */\n.tbl__th--main {\n background-color: var(--tbl-header-bg);\n z-index: 5;\n}\n\n.tbl__th-inner {\n position: relative;\n display: inline-flex;\n align-items: flex-start;\n}\n\n.tbl__col-label {\n font-size: var(--typography-body-xs-font-size);\n font-weight: var(--font-weight-semi-bold);\n color: var(--tbl-text);\n line-height: 1.4;\n}\n\n.tbl__col-label--dashed {\n border-bottom: 1px dashed var(--color-slate-400);\n cursor: help;\n}\n\n/* ── GLOBAL TOOLTIP ───────────────────────────────────────── */\n\n.tbl__global-hint {\n position: fixed;\n z-index: 9999;\n transform: translate(-50%, -100%);\n width: var(--tbl-hint-width);\n background-color: var(--tbl-hint-bg);\n border: 1px solid var(--tbl-hint-border);\n border-radius: var(--tbl-hint-radius);\n box-shadow: var(--tbl-hint-shadow);\n padding: var(--spacing-12);\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n transition: opacity 0.15s, visibility 0.15s;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-4);\n text-transform: none;\n letter-spacing: normal;\n white-space: normal;\n}\n\n.tbl__global-hint--visible {\n opacity: 1;\n visibility: visible;\n}\n\n.tbl__global-hint-desc {\n font-size: var(--typography-body-xs-font-size);\n color: var(--tbl-hint-text);\n line-height: 1.5;\n}\n\n.tbl__global-hint-arrow {\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border: 6px solid transparent;\n border-top-color: var(--tbl-hint-bg);\n}\n\n/* ── CELL CONTENT ─────────────────────────────────────────── */\n\n.tbl__cell-inner {\n display: flex;\n align-items: center;\n gap: var(--spacing-12);\n min-width: 0;\n overflow: hidden;\n}\n\n.tbl__cell-icon {\n width: 1.5rem;\n height: 1.5rem;\n object-fit: contain;\n flex-shrink: 0;\n display: block;\n}\n\n.tbl__cell-text {\n font-size: var(--typography-body-xs-font-size);\n color: var(--tbl-text);\n line-height: 1.4;\n white-space: normal;\n word-break: break-word;\n}\n\n.tbl__cell-text--bold {\n font-weight: var(--font-weight-semi-bold);\n}\n\n\n/* ── EMPTY STATE ──────────────────────────────────────────── */\n\n.tbl__empty-cell {\n padding: var(--spacing-48) var(--spacing-24);\n text-align: center;\n font-size: var(--typography-body-md-font-size);\n color: var(--tbl-text-muted);\n}\n\n/* ── FOOTER (PAGINATION) ──────────────────────────────────── */\n\n.tbl__footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: var(--spacing-16) var(--spacing-24);\n border-top: 1px solid var(--tbl-border);\n background-color: var(--tbl-bg);\n}\n\n/* ── INFO BLOCK ───────────────────────────────────────────── */\n\n.tbl-section__info-box {\n margin-top: var(--spacing-40);\n display: flex;\n align-items: flex-start;\n justify-content: center;\n gap: var(--spacing-8);\n}\n\n.tbl-section__info-icon {\n color: var(--color-slate-400);\n flex-shrink: 0;\n margin-top: 0.125rem;\n width: 1rem;\n height: 1rem;\n}\n\n.tbl-section__info-text {\n font-size: var(--typography-body-xs-font-size);\n color: var(--tbl-text-muted);\n line-height: 1.5;\n margin: 0;\n text-align: left;\n}\n\n.tbl__pagination-wrap {\n display: flex;\n justify-content: flex-end;\n flex-shrink: 0;\n width: auto;\n}\n\n/* ── MOBILE ───────────────────────────────────────────────── */\n\n@media (max-width: 767px) {\n .tbl__topbar {\n flex-direction: column;\n align-items: center;\n padding: var(--spacing-16);\n gap: var(--spacing-16);\n }\n\n .tbl__search-wrap {\n max-width: 100%;\n width: 100%;\n }\n\n .tbl__summary {\n text-align: center;\n }\n\n .tbl__th--main,\n .tbl__td--main {\n width: calc(var(--tbl-col-main-width) * 0.7 + var(--spacing-16));\n min-width: calc(var(--tbl-col-main-width) * 0.7 + var(--spacing-16));\n }\n\n .tbl__footer {\n flex-direction: column;\n align-items: stretch;\n padding: var(--spacing-16);\n }\n\n .tbl__pagination-wrap {\n justify-content: center;\n }\n}\n","/* ============================================================\n DYNAMIC TABLE\n Token inheritance:\n Primitive (core) → Semantic (--dtbl-*) → Component styles\n\n STRUCTURE:\n .dtbl-section\n .dtbl-section__header\n .dtbl-section__title\n .dtbl-section__content\n .dtbl / .dtbl--three-columns / .dtbl--four-columns\n .dtbl__scroll-wrapper\n .dtbl__table\n thead .dtbl__tr .dtbl__th\n tbody .dtbl__tr\n .dtbl__th-row ← first-column label\n .dtbl__td ← comparison values\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n --dtbl-section-bg: var(--color-slate-75);\n --dtbl-bg: var(--color-slate-50);\n --dtbl-header-bg: var(--color-slate-75);\n --dtbl-border: var(--color-opacity-slate-8);\n --dtbl-text: var(--text-primary);\n --dtbl-font-family: var(--font-family-base);\n --dtbl-radius: var(--radius-2xl);\n --dtbl-cell-py: var(--spacing-24);\n --dtbl-cell-px: var(--spacing-24);\n}\n\n/* ── SECTION ──────────────────────────────────────────────── */\n\n.dtbl-section {\n width: 100%;\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-48);\n background-color: var(--dtbl-section-bg);\n font-family: var(--dtbl-font-family);\n box-sizing: border-box;\n}\n\n.dtbl-section__header,\n.dtbl-section__content {\n width: 100%;\n max-width: var(--content-width-1280);\n}\n\n@media (min-width: 768px) {\n .dtbl-section {\n padding: var(--spacing-56) var(--spacing-24);\n gap: var(--spacing-64);\n }\n}\n\n@media (min-width: 992px) {\n .dtbl-section {\n padding: var(--spacing-112) var(--spacing-24);\n gap: var(--spacing-80);\n }\n}\n\n.dtbl-section__header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n text-align: left;\n}\n\n@media (min-width: 768px) {\n .dtbl-section__header {\n align-items: center;\n text-align: center;\n }\n}\n\n.dtbl-section__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n letter-spacing: var(--typography-h2-letter-spacing);\n color: var(--dtbl-text);\n margin: 0;\n}\n\n/* ── CARD ─────────────────────────────────────────────────── */\n\n.dtbl {\n width: 100%;\n background-color: var(--dtbl-bg);\n border: 1px solid var(--dtbl-border);\n border-radius: var(--dtbl-radius);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n.dtbl__scroll-wrapper {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.dtbl__table {\n width: 100%;\n min-width: 40rem;\n border-collapse: separate;\n border-spacing: 0;\n table-layout: fixed;\n text-align: left;\n}\n\n.dtbl--three-columns .dtbl__table {\n min-width: 36rem;\n}\n\n.dtbl--four-columns .dtbl__table {\n min-width: 48rem;\n}\n\n/* ── CELLS ────────────────────────────────────────────────── */\n\n.dtbl__th,\n.dtbl__th-row,\n.dtbl__td {\n padding: var(--dtbl-cell-py) var(--dtbl-cell-px);\n border-bottom: 1px solid var(--dtbl-border);\n vertical-align: top;\n box-sizing: border-box;\n}\n\n.dtbl__table tbody .dtbl__tr:last-child .dtbl__th-row,\n.dtbl__table tbody .dtbl__tr:last-child .dtbl__td {\n border-bottom: none;\n}\n\n.dtbl__th {\n background-color: var(--dtbl-header-bg);\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-md-line-height);\n color: var(--dtbl-text);\n}\n\n.dtbl__th-row {\n background-color: var(--dtbl-bg);\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-md-line-height);\n color: var(--dtbl-text);\n text-align: left;\n}\n\n.dtbl__td {\n background-color: var(--dtbl-bg);\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--dtbl-text);\n}\n\n.dtbl__cell {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-4);\n}\n\n.dtbl__cell-line {\n display: block;\n}\n\n@media (max-width: 767px) {\n .dtbl-section {\n --dtbl-cell-py: var(--spacing-16);\n --dtbl-cell-px: var(--spacing-16);\n }\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.avatar-grid {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.avatar-grid__container {\n display: flex;\n flex-direction: column;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n width: 100%;\n align-items: center;\n gap: var(--spacing-48);\n}\n\n@media (min-width: 992px) {\n .avatar-grid__container {\n padding: var(--spacing-112) var(--spacing-24);\n gap: var(--spacing-80);\n }\n}\n\n/* ── Header ────────────────────────────────────────────────── */\n\n.avatar-grid__header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n text-align: left;\n width: 100%;\n max-width: var(--content-width-846);\n gap: var(--spacing-16);\n}\n\n@media (min-width: 992px) {\n .avatar-grid__header {\n align-items: center;\n text-align: center;\n }\n}\n\n.avatar-grid__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n.avatar-grid__description {\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--typography-body-lg-font-weight);\n line-height: var(--typography-body-lg-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Grid wrapper ──────────────────────────────────────────── */\n\n.avatar-grid__grid-wrapper {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n/* ── Grid ──────────────────────────────────────────────────── */\n\n.avatar-grid__grid {\n display: grid;\n grid-template-columns: 1fr;\n row-gap: var(--spacing-32);\n column-gap: var(--spacing-16);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .avatar-grid__grid {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (min-width: 992px) {\n .avatar-grid__grid {\n grid-template-columns: repeat(4, 1fr);\n }\n}\n\n/* ── Extra cards — animated expand/collapse container ──────── */\n\n/*\n * Uses grid-template-rows: 0fr → 1fr for a height animation that\n * respects the actual content size (unlike max-height hacks).\n * The inner .avatar-grid__extra-grid needs min-height: 0 for 0fr to fully collapse.\n */\n.avatar-grid__extra-cards {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows 0.8s cubic-bezier(0.16, 1, 0.3, 1);\n width: 100%;\n}\n\n.avatar-grid__extra-cards--open {\n grid-template-rows: 1fr;\n}\n\n.avatar-grid__extra-grid {\n min-height: 0;\n overflow: hidden;\n display: grid;\n grid-template-columns: 1fr;\n row-gap: var(--spacing-32);\n column-gap: var(--spacing-16);\n padding-top: var(--spacing-24);\n}\n\n@media (min-width: 768px) {\n .avatar-grid__extra-grid {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (min-width: 992px) {\n .avatar-grid__extra-grid {\n grid-template-columns: repeat(4, 1fr);\n padding-top: var(--spacing-32);\n }\n}\n\n/* ── Extra card — individual fade + rise animation ─────────── */\n\n.avatar-grid__extra-card {\n opacity: 0;\n transform: translateY(16px);\n transition:\n opacity 0.6s ease,\n transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.avatar-grid__extra-card--visible {\n opacity: 1;\n transform: translateY(0);\n}\n\n/* ── Card ──────────────────────────────────────────────────── */\n\n.avatar-grid__card {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-24);\n background-color: var(--color-slate-50);\n border-radius: var(--radius-2xl);\n width: 100%;\n}\n\n/* ── Image ─────────────────────────────────────────────────── */\n\n.avatar-grid__image-wrapper {\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n position: relative;\n background-color: var(--color-slate-100);\n}\n\n.avatar-grid__image {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n\n/* ── Content ───────────────────────────────────────────────── */\n\n.avatar-grid__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-8);\n width: 100%;\n}\n\n.avatar-grid__name {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n}\n\n.avatar-grid__role {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n}\n\n/* ── Link ──────────────────────────────────────────────────── */\n\n.avatar-grid__link {\n margin-top: calc(var(--spacing-8) * -1); /* Pull up slightly to reduce gap */\n}\n\n.avatar-grid__link .icon {\n color: #0072B1 !important; /* Official LinkedIn Blue */\n}\n\n.avatar-grid__link:hover .icon {\n color: #005582 !important; /* Darker LinkedIn Blue for hover */\n}\n\n/* ── Actions ───────────────────────────────────────────────── */\n\n.avatar-grid__actions {\n display: flex;\n justify-content: center;\n width: 100%;\n padding-top: var(--spacing-16);\n}\n\n@media (min-width: 992px) {\n .avatar-grid__actions {\n padding-top: 0;\n margin-top: calc(var(--spacing-48) - var(--spacing-80));\n width: auto;\n }\n\n .avatar-grid__actions .button {\n width: auto;\n }\n}\n","/* ============================================================\n IMAGE BANNER\n Variants:\n split-left → text left, photo right panel (default)\n split-right → photo left panel, text right\n full-bg-left → photo covers entire card, text overlaid on left\n full-bg-right → photo covers entire card, text overlaid on right\n chips-left → text + checkmark chips left, collage right\n (deriv.com/partners \"grow your network\" block)\n chips-right → collage left, text + chips right\n\n Spacing follows the system convention:\n mobile → padding: var(--spacing-56) 0 (edge-to-edge card)\n desktop → padding: var(--spacing-112) var(--spacing-24)\n\n Chips variants keep inline page padding + rounded corners at every\n breakpoint (like ParallaxBanner), matching partners.deriv.com.\n ============================================================ */\n\n.image-banner {\n --image-banner-chip-bg: rgba(255, 255, 255, 0.16);\n --image-banner-chip-border: rgba(0, 0, 0, 0.08);\n\n width: 100%;\n font-family: var(--font-family-base);\n box-sizing: border-box;\n /* No horizontal padding on mobile — card is edge-to-edge */\n padding: var(--spacing-56) 0;\n}\n\n@media (min-width: 992px) {\n .image-banner {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/*\n * Chips: page padding at every breakpoint so the card stays inset + rounded.\n * Values match the `.section-container-2` inset on deriv.com/partners:\n * mobile (<768px) → 16px, tablet/desktop (≥768px) → 24px.\n */\n.image-banner--chips {\n padding: var(--spacing-56) var(--spacing-16);\n}\n\n@media (min-width: 768px) {\n .image-banner--chips {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .image-banner--chips {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Card (inner container) ────────────────────────────────── */\n\n.image-banner__inner {\n position: relative;\n display: flex;\n flex-direction: column;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n /* Square corners on mobile (edge-to-edge), rounded on desktop */\n border-radius: 0;\n overflow: hidden;\n background-color: var(--color-slate-1200);\n min-height: 480px;\n}\n\n@media (min-width: 992px) {\n .image-banner__inner {\n border-radius: var(--radius-2xl);\n }\n}\n\n/* Chips card: always rounded (partners uses 2rem / radius-3xl) */\n.image-banner__inner--chips-left,\n.image-banner__inner--chips-right {\n border-radius: var(--radius-3xl);\n min-height: 0;\n display: grid;\n grid-template-columns: 1fr;\n align-items: stretch;\n}\n\n/* ── Split variants: side-by-side on desktop ───────────────── */\n\n.image-banner__inner--split-left .image-banner__content {\n order: 1;\n}\n\n.image-banner__inner--split-left .image-banner__image-wrapper {\n order: 2;\n}\n\n.image-banner__inner--split-right .image-banner__content {\n order: 2;\n}\n\n.image-banner__inner--split-right .image-banner__image-wrapper {\n order: 1;\n}\n\n/*\n * Chips mobile: both left and right variants share the same stacked look —\n * text + chips first, collage below, left-aligned. Desktop (≥992px) is where\n * chips-right mirrors the columns and right-aligns content.\n */\n.image-banner__inner--chips-left .image-banner__content,\n.image-banner__inner--chips-right .image-banner__content {\n order: 1;\n}\n\n.image-banner__inner--chips-left .image-banner__image-wrapper,\n.image-banner__inner--chips-right .image-banner__image-wrapper {\n order: 2;\n}\n\n@media (min-width: 992px) {\n .image-banner__inner--split-left,\n .image-banner__inner--split-right {\n flex-direction: row;\n align-items: stretch;\n }\n\n .image-banner__inner--split-right {\n justify-content: flex-end;\n }\n\n .image-banner__inner--chips-left,\n .image-banner__inner--chips-right {\n grid-template-columns: 1fr 1fr;\n }\n\n .image-banner__inner--chips-left .image-banner__content,\n .image-banner__inner--chips-left .image-banner__image-wrapper,\n .image-banner__inner--chips-right .image-banner__content,\n .image-banner__inner--chips-right .image-banner__image-wrapper {\n order: unset;\n }\n\n .image-banner__inner--chips-left .image-banner__content {\n grid-column: 1;\n grid-row: 1;\n }\n\n .image-banner__inner--chips-left .image-banner__image-wrapper {\n grid-column: 2;\n grid-row: 1;\n }\n\n .image-banner__inner--chips-right .image-banner__image-wrapper {\n grid-column: 1;\n grid-row: 1;\n }\n\n .image-banner__inner--chips-right .image-banner__content {\n grid-column: 2;\n grid-row: 1;\n }\n}\n\n/* ── Full-bg variants: taller card on mobile ───────────────── */\n\n.image-banner__inner--full-bg-left,\n.image-banner__inner--full-bg-right {\n min-height: 740px;\n}\n\n@media (min-width: 992px) {\n .image-banner__inner--full-bg-left,\n .image-banner__inner--full-bg-right {\n min-height: 480px;\n max-height: 480px;\n }\n\n .image-banner__inner--full-bg-right {\n align-items: flex-end;\n }\n}\n\n/* ── Content (text + CTA / chips panel) ────────────────────── */\n\n.image-banner__content {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n text-align: left;\n gap: var(--spacing-16);\n padding: var(--spacing-48) var(--spacing-24);\n flex: 0 0 auto;\n width: 100%;\n box-sizing: border-box;\n position: relative;\n z-index: 1;\n}\n\n/*\n * Chips content padding matches `.content-tier_wrapper` on deriv.com/partners:\n * 56px at desktop (≥992px), 32px below that (mobile + tablet).\n */\n.image-banner__inner--chips-left .image-banner__content,\n.image-banner__inner--chips-right .image-banner__content {\n gap: var(--spacing-24);\n padding: var(--spacing-32);\n justify-content: center;\n /* Stacked layout always left-aligned — even for chips-right */\n align-items: flex-start;\n text-align: left;\n}\n\n@media (min-width: 992px) {\n .image-banner__inner--chips-left .image-banner__content,\n .image-banner__inner--chips-right .image-banner__content {\n padding: var(--spacing-56);\n }\n}\n\n.image-banner__inner--chips-left .image-banner__chips,\n.image-banner__inner--chips-right .image-banner__chips {\n justify-content: flex-start;\n}\n\n/* Right-hand variants: text, title, and CTA align to the right */\n.image-banner__inner--split-right .image-banner__content,\n.image-banner__inner--full-bg-right .image-banner__content {\n align-items: flex-end;\n text-align: right;\n}\n\n.image-banner__inner--split-right .image-banner__actions,\n.image-banner__inner--full-bg-right .image-banner__actions {\n justify-content: flex-end;\n}\n\n@media (min-width: 992px) {\n .image-banner__content {\n gap: var(--spacing-24);\n }\n\n .image-banner__inner--split-left .image-banner__content,\n .image-banner__inner--split-right .image-banner__content {\n width: 50%;\n padding: var(--spacing-64) var(--spacing-56);\n justify-content: center;\n }\n\n .image-banner__inner--full-bg-left .image-banner__content,\n .image-banner__inner--full-bg-right .image-banner__content {\n width: 60%;\n padding: var(--spacing-64) var(--spacing-56);\n justify-content: center;\n flex: 1 1 auto;\n }\n\n .image-banner__inner--full-bg-left .image-banner__content {\n align-self: stretch;\n }\n\n .image-banner__inner--full-bg-right .image-banner__content {\n align-self: flex-end;\n }\n\n .image-banner__inner--chips-left .image-banner__content,\n .image-banner__inner--chips-right .image-banner__content {\n width: auto;\n }\n\n /* chips-right only mirrors alignment on desktop */\n .image-banner__inner--chips-right .image-banner__content {\n align-items: flex-end;\n text-align: right;\n }\n\n .image-banner__inner--chips-right .image-banner__chips {\n justify-content: flex-end;\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.image-banner__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--color-slate-50);\n margin: 0;\n}\n\n/*\n * Partners block uses an H5-scale headline, not full H2. `--typography-h4-*`\n * tokens already resolve responsively (1.5rem/2rem mobile, 2rem/2.5rem\n * tablet, 2.5rem/3rem desktop) which matches the reference at every size —\n * no extra breakpoint overrides needed here.\n */\n.image-banner__inner--chips-left .image-banner__title,\n.image-banner__inner--chips-right .image-banner__title {\n font-family: var(--typography-h4-font-family);\n font-size: var(--typography-h4-font-size);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--typography-h4-line-height);\n letter-spacing: -0.015rem;\n}\n\n/* ── Description ───────────────────────────────────────────── */\n\n.image-banner__description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--color-slate-50);\n margin: 0;\n max-width: 42ch;\n}\n\n.image-banner__inner--chips-left .image-banner__description,\n.image-banner__inner--chips-right .image-banner__description {\n max-width: 36ch;\n}\n\n/* ── Actions ───────────────────────────────────────────────── */\n\n.image-banner__actions {\n display: flex;\n align-items: center;\n padding-top: var(--spacing-8);\n}\n\n/* ── Chips (partners_tag pills) ────────────────────────────── */\n\n.image-banner__chips {\n display: flex;\n flex-wrap: wrap;\n gap: var(--spacing-8);\n list-style: none;\n margin: 0;\n padding: 0;\n width: 100%;\n}\n\n.image-banner__chip {\n display: inline-flex;\n align-items: center;\n justify-content: flex-start;\n gap: var(--spacing-8);\n margin: 0;\n /* 6px vertical / 12px horizontal — matches .partners_tag (.375rem .75rem) */\n padding: calc(var(--spacing-4) + var(--spacing-2)) var(--spacing-12);\n border-radius: var(--radius-full);\n background-color: var(--image-banner-chip-bg);\n border: 1px solid var(--image-banner-chip-border);\n box-sizing: border-box;\n color: var(--color-slate-50);\n}\n\n.image-banner__chip-icon {\n display: block;\n flex-shrink: 0;\n width: 11px;\n height: 12px;\n}\n\n.image-banner__chip-label {\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n white-space: nowrap;\n}\n\n/* ── Split / chips: side-panel image ───────────────────────── */\n\n.image-banner__image-wrapper {\n position: relative;\n width: 100%;\n aspect-ratio: 4 / 3;\n overflow: hidden;\n flex-shrink: 0;\n}\n\n/*\n * Chips collage: banner height is driven by the image’s intrinsic\n * aspect ratio (tier-cover.webp = 1920×1440 / 4:3 is the reference).\n * No fixed aspect-ratio / object-fit:cover — the full asset is visible.\n */\n.image-banner__inner--chips-left .image-banner__image-wrapper,\n.image-banner__inner--chips-right .image-banner__image-wrapper {\n aspect-ratio: unset;\n min-height: 0;\n overflow: hidden;\n height: auto;\n}\n\n@media (min-width: 992px) {\n .image-banner__image-wrapper {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 55%;\n aspect-ratio: unset;\n }\n\n .image-banner__inner--split-left .image-banner__image-wrapper {\n right: 0;\n }\n\n .image-banner__inner--split-right .image-banner__image-wrapper {\n left: 0;\n }\n\n .image-banner__inner--chips-left,\n .image-banner__inner--chips-right {\n /* Image column sets row height; content column stretches to match */\n align-items: stretch;\n }\n\n .image-banner__inner--chips-left .image-banner__image-wrapper,\n .image-banner__inner--chips-right .image-banner__image-wrapper {\n position: relative;\n width: 100%;\n height: auto;\n min-height: 0;\n aspect-ratio: unset;\n align-self: start;\n }\n}\n\n.image-banner__image {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center top;\n display: block;\n}\n\n/* Chips: in-flow image so intrinsic height sizes the banner */\n.image-banner__inner--chips-left .image-banner__image,\n.image-banner__inner--chips-right .image-banner__image {\n position: static;\n inset: unset;\n width: 100%;\n height: auto;\n object-fit: unset;\n object-position: unset;\n display: block;\n}\n\n/*\n * Mobile-only fade at the top of the collage (image always stacks below\n * text on mobile for both chips-left and chips-right).\n */\n.image-banner__image-fade {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: var(--spacing-32);\n pointer-events: none;\n z-index: 1;\n background: linear-gradient(\n to bottom,\n var(--color-slate-1200) 0%,\n transparent 100%\n );\n}\n\n@media (min-width: 992px) {\n .image-banner__image-fade {\n display: none;\n }\n}\n\n/* ── Full-bg: background image + overlay ──────────────────── */\n\n.image-banner__bg-image-wrapper {\n position: absolute;\n inset: 0;\n z-index: 0;\n}\n\n.image-banner__bg-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n\n/*\n * Dark gradient overlay so white text stays legible over any photo.\n * `full-bg-left` fades from opaque on the left (text side) to transparent on\n * the right; `full-bg-right` mirrors it — opaque on the right, transparent\n * on the left.\n */\n.image-banner__bg-overlay {\n position: absolute;\n inset: 0;\n background: linear-gradient(\n to right,\n rgba(0, 0, 0, 0.72) 0%,\n rgba(0, 0, 0, 0.48) 50%,\n rgba(0, 0, 0, 0.10) 100%\n );\n}\n\n.image-banner__inner--full-bg-right .image-banner__bg-overlay {\n background: linear-gradient(\n to left,\n rgba(0, 0, 0, 0.72) 0%,\n rgba(0, 0, 0, 0.48) 50%,\n rgba(0, 0, 0, 0.10) 100%\n );\n}\n","/* ── Semantic tokens ────────────────────────────────────────── */\n\n:root {\n --testimonial-bg: var(--color-slate-75);\n --testimonial-card-bg: var(--color-slate-50);\n --testimonial-card-radius: 2rem; /* 32px — no matching radius token */\n --testimonial-card-shadow: none;\n --testimonial-card-min-height: 416px;\n --testimonial-title-color: var(--text-primary);\n --testimonial-quote-color: var(--text-primary);\n --testimonial-author-name-color: var(--text-primary);\n --testimonial-author-location-color: var(--text-primary);\n --testimonial-dot-color: var(--color-slate-300);\n --testimonial-dot-active-color: var(--color-slate-1200);\n --testimonial-quotemark-color: var(--color-slate-200);\n\n /* ── Trustpilot variant ──\n * `--testimonial-trustpilot-brand` is Trustpilot's official mark color\n * (#00b67a). It is intentionally fixed rather than mapped from the core\n * palette — like the bundled app-store badge logos, this is a\n * third-party trademark and must not shift with the app's theme.\n */\n --testimonial-trustpilot-brand: #00b67a;\n --testimonial-trustpilot-card-bg: var(--color-slate-50);\n --testimonial-trustpilot-card-radius: var(--radius-xl);\n --testimonial-trustpilot-card-shadow: var(--shadow-sm);\n --testimonial-trustpilot-card-shadow-hover: var(--shadow-md);\n --testimonial-trustpilot-quote-color: var(--text-primary);\n --testimonial-trustpilot-author-color: var(--text-primary);\n /* Star-cell colors, matching Trustpilot's own rating-widget SVGs\n * exactly (cdn.trustpilot.net/brand-assets/.../stars/stars-N.svg):\n * flush square cells (no corner radius), a fixed light \"unfilled\"\n * shade, and a white glyph. Fixed rather than mapped to the core\n * palette for the same trademark-fidelity reason as the brand color\n * above — `--color-slate-200` is close but not an exact match. */\n --testimonial-trustpilot-star-empty: #dcdce6;\n --testimonial-trustpilot-star-glyph: #ffffff;\n --testimonial-trustpilot-nav-border: var(--color-slate-300);\n --testimonial-trustpilot-nav-border-hover: var(--color-slate-500);\n --testimonial-trustpilot-nav-icon: var(--color-slate-1200);\n --testimonial-trustpilot-focus-ring: var(--border-focus);\n}\n\n/* ── Section shell ─────────────────────────────────────────── */\n\n.testimonial {\n width: 100%;\n background-color: var(--testimonial-bg);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.testimonial__container {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n width: 100%;\n gap: var(--spacing-48);\n}\n\n@media (min-width: 768px) {\n .testimonial__container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .testimonial__container {\n padding: var(--spacing-112) var(--spacing-24);\n gap: var(--spacing-64);\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.testimonial__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--testimonial-title-color);\n margin: 0;\n text-align: left;\n width: 100%;\n}\n\n/* ── Carousel wrapper ──────────────────────────────────────── */\n\n.testimonial__carousel {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-32);\n}\n\n/* ── Card ──────────────────────────────────────────────────── */\n\n.testimonial__card {\n position: relative;\n width: 100%;\n height: 100%; /* fill the slide wrapper so all cards match the tallest */\n max-width: var(--content-width-1280);\n min-height: var(--testimonial-card-min-height);\n background-color: var(--testimonial-card-bg);\n border-radius: var(--testimonial-card-radius);\n box-shadow: var(--testimonial-card-shadow);\n /* Extra top padding reserves space for the absolute quote mark (100px img + 24px offset + gap) */\n padding: 148px var(--spacing-32) var(--spacing-48);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n text-align: left;\n gap: var(--spacing-24);\n overflow: hidden;\n}\n\n@media (min-width: 992px) {\n .testimonial__card {\n padding: var(--spacing-56) var(--spacing-80);\n align-items: center;\n text-align: center;\n }\n}\n\n/* ── Decorative quote marks ────────────────────────────────── */\n\n.testimonial__quotemark {\n position: absolute;\n user-select: none;\n line-height: 0;\n}\n\n.testimonial__quotemark-img {\n width: 100px;\n height: auto;\n display: block;\n}\n\n.testimonial__quotemark--open {\n top: var(--spacing-24);\n left: var(--spacing-24);\n}\n\n.testimonial__quotemark--close {\n bottom: var(--spacing-24);\n right: var(--spacing-24);\n display: none;\n}\n\n@media (min-width: 992px) {\n .testimonial__quotemark-img {\n width: 130px;\n }\n\n .testimonial__quotemark--open {\n top: var(--spacing-32);\n left: var(--spacing-40);\n }\n\n .testimonial__quotemark--close {\n display: block;\n bottom: var(--spacing-32);\n right: var(--spacing-40);\n }\n}\n\n/* ── Quote text ────────────────────────────────────────────── */\n\n.testimonial__quote {\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--typography-body-lg-font-weight);\n line-height: var(--typography-body-lg-line-height);\n color: var(--testimonial-quote-color);\n text-align: left;\n margin: 0;\n max-width: 680px;\n position: relative;\n z-index: 1;\n}\n\n@media (min-width: 992px) {\n .testimonial__quote {\n text-align: center;\n }\n}\n\n/* ── Author ────────────────────────────────────────────────── */\n\n.testimonial__author {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-4);\n position: relative;\n z-index: 1;\n}\n\n@media (min-width: 992px) {\n .testimonial__author {\n align-items: center;\n }\n}\n\n.testimonial__author-avatar {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n object-fit: cover;\n margin-bottom: var(--spacing-8);\n}\n\n.testimonial__author-name {\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-lg-line-height);\n color: var(--testimonial-author-name-color);\n margin: 0;\n}\n\n.testimonial__author-location {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--testimonial-author-location-color);\n margin: 0;\n}\n\n/* ── Dot pagination ────────────────────────────────────────── */\n\n.testimonial__dots {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n.testimonial__dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: var(--testimonial-dot-color);\n border: none;\n padding: 0;\n cursor: pointer;\n transition: background-color 0.2s ease, transform 0.2s ease;\n flex-shrink: 0;\n}\n\n.testimonial__dot:hover {\n background-color: var(--testimonial-dot-active-color);\n}\n\n.testimonial__dot--active {\n background-color: var(--testimonial-dot-active-color);\n transform: scale(1.25);\n}\n\n/* ── Slides stack — all slides rendered, stacked so container\n always takes the height of the tallest card ──────────────── */\n\n.testimonial__slides {\n position: relative;\n display: grid;\n width: 100%;\n}\n\n/*\n * All slides occupy the same grid cell (row 1 / col 1).\n * They are all rendered in the DOM so the grid row stretches\n * to the tallest card. Inactive slides are invisible + non-interactive.\n */\n.testimonial__slide {\n grid-area: 1 / 1;\n width: 100%;\n align-self: stretch; /* stretch to tallest sibling's height */\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1),\n transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),\n visibility 0s linear 0.35s;\n transform: translateY(6px);\n}\n\n.testimonial__slide--active {\n opacity: 1;\n visibility: visible;\n pointer-events: auto;\n transform: translateY(0);\n transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1),\n transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),\n visibility 0s linear 0s;\n}\n\n.testimonial__slide--exiting {\n opacity: 0;\n visibility: visible; /* keep visible during exit */\n transform: translateY(-6px);\n transition: opacity 0.2s cubic-bezier(0.4, 0, 1, 1),\n transform 0.2s cubic-bezier(0.4, 0, 1, 1),\n visibility 0s linear 0.2s;\n}\n\n/* ══════════════════════════════════════════════════════════════════\n Trustpilot variant\n Horizontally-scrollable review cards + rating badge + nav arrows.\n ══════════════════════════════════════════════════════════════════ */\n\n.testimonial--trustpilot {\n background-color: var(--testimonial-bg);\n /* Head/bleed/foot each manage their own horizontal inset (see below),\n * so the section itself must not clip or pad horizontally — that's\n * what lets the middle carousel bleed to the true viewport edge. */\n overflow-x: hidden;\n}\n\n.testimonial__title--trustpilot {\n text-align: center;\n}\n\n/* ── Head / foot — normal padded, centered content column ─────────\n * Same total top/bottom padding as the global section-padding spec\n * (mobile 56/16, tablet 56/24, desktop 112/24), just split across the\n * two blocks that sandwich the full-bleed carousel, with a smaller\n * gap (32/48) on the inner edge for breathing room around the cards.\n */\n\n.testimonial__tp-head,\n.testimonial__tp-foot {\n width: 100%;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n box-sizing: border-box;\n padding-left: var(--spacing-16);\n padding-right: var(--spacing-16);\n}\n\n.testimonial__tp-head {\n padding-top: var(--spacing-56);\n padding-bottom: var(--spacing-32);\n}\n\n.testimonial__tp-foot {\n padding-top: var(--spacing-32);\n padding-bottom: var(--spacing-56);\n}\n\n@media (min-width: 768px) {\n\n .testimonial__tp-head,\n .testimonial__tp-foot {\n padding-left: var(--spacing-24);\n padding-right: var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .testimonial__tp-head {\n padding-top: var(--spacing-112);\n padding-bottom: var(--spacing-48);\n }\n\n .testimonial__tp-foot {\n padding-top: var(--spacing-48);\n padding-bottom: var(--spacing-112);\n }\n}\n\n/* ── Full-bleed carousel row ───────────────────────────────────── */\n\n.testimonial__tp-bleed {\n width: 100%;\n box-sizing: border-box;\n}\n\n.testimonial__tp-carousel {\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n overflow-x: auto;\n overflow-y: visible;\n overscroll-behavior-x: contain;\n scroll-snap-type: x proximity;\n scroll-behavior: smooth;\n -webkit-overflow-scrolling: touch;\n /* Nav arrows + swipe/drag already cover scrolling — a visible scrollbar\n * track is just chrome deriv.com's own carousel doesn't have (it's a\n * transform-based slider, not a native overflow scroller). */\n scrollbar-width: none;\n /* room for card hover shadow so it isn't clipped by the scrollport;\n * vertical only — horizontal stays full-bleed (no inline inset). */\n margin-block: calc(var(--spacing-8) * -1);\n padding-block: var(--spacing-8);\n /* Without this, the browser treats `scrollLeft: 0` as *misaligned*\n * with card 1's `scroll-snap-align: start` (because of the track's\n * matching padding-inline below) and silently auto-scrolls forward\n * to \"fix\" it on first load — eating the entire breakout gutter.\n * `scroll-padding-inline` redefines the snap port's start/end edges\n * to already account for that gutter, so `scrollLeft: 0` *is* the\n * correctly-snapped resting position and no auto-correction fires.\n * Must always match `.testimonial__tp-track`'s padding-inline. */\n scroll-padding-inline: max(\n var(--spacing-16),\n calc((100vw - var(--content-width-1280)) / 2 + var(--spacing-16))\n );\n}\n\n@media (min-width: 768px) {\n .testimonial__tp-carousel {\n scroll-padding-inline: max(\n var(--spacing-24),\n calc((100vw - var(--content-width-1280)) / 2 + var(--spacing-24))\n );\n }\n}\n\n.testimonial__tp-carousel::-webkit-scrollbar {\n display: none;\n}\n\n.testimonial__tp-carousel:focus-visible {\n outline: 2px solid var(--testimonial-trustpilot-focus-ring);\n outline-offset: -2px;\n}\n\n.testimonial__tp-track {\n display: flex;\n gap: var(--spacing-24);\n width: 100%;\n box-sizing: border-box;\n /* Breakout-carousel gutter: the head/foot column is `max-width:\n * content-width-1280` centered with `margin: 0 auto`, so once the\n * viewport is wider than that, its true inset from the viewport edge\n * is `(100vw - 1280px) / 2 + the column's own side padding` — not\n * just the side padding alone. Reproducing that same sum here (via\n * `max()`, so it collapses back down to plain `spacing-16` below\n * 1280px, exactly like the column itself) keeps the first/last card\n * aligned with the title and footer above/below at every viewport\n * width, not just under 1280px. Because this gutter lives on the\n * *scrollable* track rather than the full-bleed wrapper, it scrolls\n * away with the rest of the content — letting cards bleed edge to\n * edge past it once scrolled, like deriv.com's homepage carousel.\n *\n * Only the leading (left) side is set here as `padding-left`. A\n * trailing `padding-right`/`padding-inline` doesn't work for the\n * matching right-hand gutter: this track is a `width: 100%` flex\n * box, so once its cards overflow that box, the browser doesn't\n * extend the box's own scrollable area to reserve space *after* the\n * overflow for the container's own end-side padding — the last card\n * ends up flush against the scrollport's edge with no resting gutter.\n * The trailing gutter is applied instead via a `::after` spacer (see\n * below): a *padding or margin* on the end side is excluded from a\n * scroll container's scrollable-overflow region once its box is\n * width-constrained and its content overflows it — that's true even\n * of a margin on the actual last flex item, not just container\n * padding. A generated `::after` box, though, is a real anonymous\n * flex item like any card, so its reserved width *does* count. */\n padding-left: max(\n var(--spacing-16),\n calc((100vw - var(--content-width-1280)) / 2 + var(--spacing-16))\n );\n}\n\n@media (min-width: 768px) {\n .testimonial__tp-track {\n padding-left: max(\n var(--spacing-24),\n calc((100vw - var(--content-width-1280)) / 2 + var(--spacing-24))\n );\n }\n}\n\n/* Trailing-gutter spacer — an empty flex item mirroring the track's\n * leading `padding-left`, so the last card comes to rest with the same\n * breathing room as the first instead of stopping flush against the\n * viewport/container edge. Not `aria-hidden`-able since it's generated\n * content (already outside the accessibility tree).\n *\n * The track's `gap` (below) inserts its own `--spacing-24` between every\n * pair of flex items, including the last card and this spacer, so a\n * negative leading margin cancels that automatic gap out — leaving the\n * spacer's own `flex-basis` (set to the full target gutter, matching the\n * leading padding-left exactly) as the only reserved trailing space.\n * (Shrinking flex-basis by the gap instead — e.g. `gutter - 24px` — hits\n * a zero-width edge case right at the 1280px breakpoint, where the two\n * exactly cancel: some browsers then drop the preceding gap from the\n * scrollable-overflow calculation entirely instead of reserving it,\n * collapsing the trailing gutter back to 0.) */\n.testimonial__tp-track::after {\n content: \"\";\n display: block;\n margin-left: calc(-1 * var(--spacing-24));\n flex: 0 0 max(\n var(--spacing-16),\n calc((100vw - var(--content-width-1280)) / 2 + var(--spacing-16))\n );\n}\n\n@media (min-width: 768px) {\n .testimonial__tp-track::after {\n flex-basis: max(\n var(--spacing-24),\n calc((100vw - var(--content-width-1280)) / 2 + var(--spacing-24))\n );\n }\n}\n\n.testimonial__tp-card-wrap {\n flex: 0 0 min(100%, 320px);\n scroll-snap-align: start;\n scroll-snap-stop: normal;\n}\n\n@media (min-width: 768px) {\n .testimonial__tp-card-wrap {\n flex: 0 0 calc((100% - 2 * var(--spacing-24)) / 2.5);\n }\n}\n\n@media (min-width: 992px) {\n .testimonial__tp-card-wrap {\n flex: 0 0 calc((100% - 3 * var(--spacing-24)) / 3.5);\n }\n}\n\n.testimonial__tp-card {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 100%;\n padding: var(--spacing-24);\n background-color: var(--testimonial-trustpilot-card-bg);\n border-radius: var(--testimonial-trustpilot-card-radius);\n box-shadow: var(--testimonial-trustpilot-card-shadow);\n text-decoration: none;\n color: inherit;\n box-sizing: border-box;\n transition: box-shadow 0.2s ease;\n}\n\n.testimonial__tp-card:hover,\n.testimonial__tp-card:focus-visible {\n box-shadow: var(--testimonial-trustpilot-card-shadow-hover);\n}\n\n.testimonial__tp-card:focus-visible {\n outline: 2px solid var(--testimonial-trustpilot-focus-ring);\n outline-offset: var(--spacing-2);\n}\n\n.testimonial__tp-quote {\n margin: var(--spacing-16) 0 0;\n flex: 1 1 auto;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--testimonial-trustpilot-quote-color);\n}\n\n.testimonial__tp-author {\n margin: var(--spacing-24) 0 0;\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n /* Regular weight (not semi-bold) — matches deriv.com's own reviewer-name\n * treatment, which is a light, muted caption rather than a bolded name. */\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n color: var(--testimonial-trustpilot-author-color);\n}\n\n/* ── Star rating cells ────────────────────────────────────────── */\n\n.testimonial__tp-stars {\n display: inline-flex;\n /* Matches the tight ~8% cell-to-gap ratio in Trustpilot's own\n * rating-widget SVGs (e.g. an 8px gap between 96px cells) — the\n * previous spacing-4 (4px) gap looked noticeably wider than the\n * reference at these cell sizes (20–32px). */\n gap: var(--spacing-2);\n}\n\n.testimonial__tp-stars--md .testimonial__tp-star {\n width: 24px;\n height: 24px;\n}\n\n.testimonial__tp-stars--lg .testimonial__tp-star {\n width: 28px;\n height: 28px;\n}\n\n@media (min-width: 768px) {\n .testimonial__tp-stars--lg .testimonial__tp-star {\n width: 32px;\n height: 32px;\n }\n}\n\n.testimonial__tp-star-bg {\n fill: var(--testimonial-trustpilot-star-empty);\n}\n\n.testimonial__tp-star-fill {\n fill: var(--testimonial-trustpilot-brand);\n}\n\n.testimonial__tp-star-glyph {\n fill: var(--testimonial-trustpilot-star-glyph);\n}\n\n/* ── Footer: badge + nav ──────────────────────────────────────── */\n\n.testimonial__tp-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--spacing-24);\n}\n\n@media (max-width: 767px) {\n .testimonial__tp-footer {\n flex-direction: column;\n }\n\n .testimonial__tp-nav {\n margin-inline: auto;\n }\n}\n\n/* Grows to fill the space beside the nav buttons and centers the badge\n * within it — the badge reads as \"centered in the row\", not flush-left. */\n.testimonial__tp-trust {\n flex: 1 1 12rem;\n display: flex;\n justify-content: center;\n}\n\n/* `flex: 1 1 12rem` above is meant to grow the badge horizontally to fill\n * the row beside the nav buttons. Below 768px the footer switches to a\n * column direction (see `.testimonial__tp-footer` above), which flips the\n * main axis to vertical — so that same flex-basis instead stretches the\n * badge wrapper to a 12rem *height*, shoving the nav arrows far down the\n * column, off the initial viewport. Reset it to a content-sized block\n * here so only `justify-content: center` (horizontal centering of the\n * badge) applies on mobile. Declared after the base rule (same\n * specificity) so it wins the cascade at this breakpoint. */\n@media (max-width: 767px) {\n .testimonial__tp-trust {\n flex: 0 0 auto;\n width: 100%;\n }\n}\n\n.testimonial__tp-badge {\n display: inline-flex;\n align-items: center;\n text-decoration: none;\n}\n\n/* Official Trustpilot \"stars + wordmark\" widget graphic — used as a single\n * flush asset (rather than composed from our own star/divider/wordmark\n * primitives) so the rating badge is pixel-identical to Trustpilot's own\n * TrustBox export, exactly as it appears on deriv.com. Height is fixed\n * (not the source's intrinsic 33px) so it matches the card-star sizing\n * scale at each breakpoint; width follows automatically from its ratio. */\n.testimonial__tp-badge-img {\n display: block;\n height: 28px;\n width: auto;\n}\n\n@media (min-width: 768px) {\n .testimonial__tp-badge-img {\n height: 32px;\n }\n}\n\n.testimonial__tp-badge:focus-visible {\n outline: 2px solid var(--testimonial-trustpilot-focus-ring);\n outline-offset: var(--spacing-4);\n border-radius: var(--radius-xs);\n}\n\n.testimonial__tp-nav {\n display: flex;\n flex-shrink: 0;\n gap: var(--spacing-16);\n}\n\n@media (min-width: 768px) {\n .testimonial__tp-nav {\n margin-left: auto;\n }\n}\n\n.testimonial__tp-nav-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-48);\n height: var(--spacing-48);\n padding: 0;\n border: 1px solid var(--testimonial-trustpilot-nav-border);\n border-radius: var(--radius-full);\n background-color: transparent;\n color: var(--testimonial-trustpilot-nav-icon);\n cursor: pointer;\n transition: border-color 0.15s ease;\n}\n\n.testimonial__tp-nav-btn:hover:not(:disabled) {\n border-color: var(--testimonial-trustpilot-nav-border-hover);\n}\n\n.testimonial__tp-nav-btn:focus-visible {\n outline: 2px solid var(--testimonial-trustpilot-focus-ring);\n outline-offset: var(--spacing-2);\n}\n\n/* Inactive prev/next button: muted rather than hidden, so both directions\n * are visible from the first render — showing the user this is a carousel\n * up front, instead of the \"next\" arrow appearing to come from nowhere\n * once the other end is scrolled away. Matches the disabled-state opacity\n * used by the core Button component. Still occupies its normal slot (no\n * `display`/unmounting change), so the nav's total width — and therefore\n * the centered badge next to it — stays stable while scrolling. */\n.testimonial__tp-nav-btn:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n","/* ── Root ─────────────────────────────────────────────────── */\n\n.bh-root {\n width: 100%;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .bh-root {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Desktop layout ───────────────────────────────────────── */\n\n.bh-desktop {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n}\n\n.bh-desktopHeader {\n display: flex;\n align-items: center;\n gap: var(--spacing-24);\n}\n\n.bh-headerLeft {\n flex: 1 0 0;\n min-width: 0;\n}\n\n.bh-headerRight {\n flex: 0 0 auto;\n width: 295px;\n}\n\n.bh-desktopBody {\n display: flex;\n align-items: flex-start;\n gap: var(--spacing-24);\n}\n\n.bh-mobile {\n display: none;\n}\n\n/* ── Sidebar columns ──────────────────────────────────────── */\n\n.bh-sidebar {\n flex: 1 0 0;\n min-width: 0;\n display: flex;\n align-items: flex-end;\n}\n\n.bh-column {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n width: 100%;\n}\n\n.bh-columnHeader {\n display: flex;\n align-items: center;\n gap: 0;\n width: 100%;\n}\n\n.bh-columnLabel {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n padding: 0 var(--spacing-8);\n border-radius: var(--radius-full);\n background-color: var(--tag-fill-background);\n font-family: var(--font-family-base);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-regular);\n line-height: 20px;\n color: var(--tag-text-color);\n white-space: nowrap;\n flex-shrink: 0;\n}\n\n.bh-columnLine {\n flex: 1 0 0;\n min-width: 0;\n height: 1px;\n background-color: var(--color-opacity-slate-8);\n}\n\n/* ── Column list items ────────────────────────────────────── */\n\n.bh-columnList {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.bh-listItem {\n padding-bottom: var(--spacing-16);\n border-bottom: 1px solid var(--color-opacity-slate-8);\n}\n\n.bh-listItem .ct-title {\n font-size: 16px;\n line-height: 24px;\n}\n\n.bh-listItem .ct-thumbnailWrapper {\n width: 80px !important;\n height: 53px !important;\n}\n\n.bh-listItem .card-thumbnail.ct-horizontal {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n.bh-listItem:last-child {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n/* ── Vertical divider ─────────────────────────────────────── */\n\n.bh-divider {\n width: 1px;\n align-self: stretch;\n background-color: var(--color-opacity-slate-8);\n flex-shrink: 0;\n}\n\n/* ── Center / Featured ────────────────────────────────────── */\n\n.bh-center {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n flex: 2 1 0;\n min-width: 0;\n justify-content: flex-start;\n align-self: stretch;\n}\n\n.bh-featured {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.bh-featuredInfo {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n}\n\n.bh-featuredTitle {\n font-family: var(--typography-h4-font-family);\n font-size: var(--typography-h4-font-size);\n font-weight: var(--typography-h4-font-weight);\n line-height: var(--typography-h4-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n}\n\n.bh-featuredSummary {\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: 24px;\n color: var(--color-slate-1200);\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.bh-featuredTags {\n display: flex;\n align-items: center;\n gap: var(--spacing-4);\n}\n\n.bh-featuredImage {\n width: 100%;\n border-radius: var(--radius-xl);\n overflow: hidden;\n position: relative;\n aspect-ratio: 594 / 381;\n}\n\n.bh-featuredImg {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n border-radius: inherit;\n}\n\n/* ── Featured footer (2 small cards below featured) ───────── */\n\n.bh-featuredFooter {\n display: flex;\n align-items: flex-start;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n.bh-footerItem {\n display: flex;\n align-items: flex-start;\n gap: var(--spacing-16);\n flex: 1 0 0;\n min-width: 0;\n}\n\n.bh-footerDivider {\n width: 1px;\n align-self: stretch;\n background-color: var(--color-opacity-slate-8);\n flex-shrink: 0;\n}\n\n.bh-footerContent {\n flex: 1 0 0;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n}\n\n.bh-footerTitle {\n font-family: var(--font-family-base);\n font-size: 16px;\n font-weight: var(--font-weight-semi-bold);\n line-height: 24px;\n color: var(--color-slate-1200);\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n}\n\n/* ── Tag items ────────────────────────────────────────────── */\n\n.bh-tagItem {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-4);\n}\n\n.bh-tagDot {\n color: var(--tag-custom-text-color);\n font-size: var(--font-size-sm);\n line-height: 1;\n}\n\n/* ── Mobile layout ────────────────────────────────────────── */\n\n.bh-mobileFeatured {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n padding: var(--spacing-24) var(--spacing-16) 0;\n}\n\n.bh-mobileLabel {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n padding: 0 var(--spacing-8);\n border-radius: var(--radius-full);\n background-color: var(--tag-fill-background);\n font-family: var(--font-family-base);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-regular);\n line-height: 20px;\n color: var(--tag-text-color);\n white-space: nowrap;\n align-self: flex-start;\n}\n\n.bh-mobileFeaturedImage {\n width: 100%;\n aspect-ratio: 594 / 369;\n border-radius: var(--radius-md);\n overflow: hidden;\n position: relative;\n}\n\n.bh-mobileSection {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n padding: 0 var(--spacing-16);\n padding-bottom: var(--spacing-24);\n border-bottom: 1px solid var(--color-opacity-slate-8);\n}\n\n.bh-mobileSection:last-child {\n border-bottom: none;\n}\n\n@media (max-width: 991px) {\n .bh-desktop {\n display: none;\n }\n\n .bh-mobile {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n }\n}\n\n@media (min-width: 768px) and (max-width: 991px) {\n .bh-columnList {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--spacing-16);\n }\n\n .bh-columnList .bh-listItem:nth-last-child(-n+2) {\n border-bottom: none;\n padding-bottom: 0;\n }\n\n .bh-mobileSection {\n border-bottom: none !important;\n padding-bottom: 0;\n }\n\n .bh-mobileFeatured {\n border-bottom: none !important;\n padding-bottom: 0;\n }\n}\n\n@media (max-width: 767px) {\n .bh-listItemThumb {\n width: 80px;\n height: 53px;\n }\n\n .bh-featuredFooter {\n gap: var(--spacing-8);\n }\n}\n","/* ── Root ─────────────────────────────────────────────────── */\n\n.as-root {\n width: 100%;\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .as-root {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Header ───────────────────────────────────────────────── */\n\n.as-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: var(--spacing-24);\n}\n\n.as-title {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n}\n\n/* ── Desktop layout ───────────────────────────────────────── */\n\n.as-desktop {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n}\n\n.as-mobile {\n display: none;\n}\n\n/* ── Featured row (desktop) ───────────────────────────────── */\n\n.as-featuredRow {\n width: 100%;\n}\n\n.as-featuredRow .card-thumbnail.ct-horizontal {\n align-items: center;\n border-bottom: none;\n padding-bottom: 0;\n max-width: none !important;\n gap: var(--spacing-24);\n}\n\n.as-featuredRow .ct-thumbnailWrapper {\n width: auto !important;\n height: auto !important;\n flex: 1 1 50% !important;\n aspect-ratio: 16 / 9 !important;\n}\n\n.as-featuredRow .ct-content {\n flex: 1 1 50% !important;\n}\n\n.as-featuredRow .ct-title {\n font-size: var(--typography-h4-font-size);\n font-weight: var(--typography-h4-font-weight);\n line-height: var(--typography-h4-line-height);\n}\n\n/* ── Grid (desktop) ───────────────────────────────────────── */\n\n.as-grid {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: var(--spacing-24);\n}\n\n/* ── Mobile layout ────────────────────────────────────────── */\n\n.as-mobileFeatured {\n padding-bottom: var(--spacing-16);\n border-bottom: 1px solid var(--color-opacity-slate-8);\n}\n\n.as-mobileList {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n margin-top: var(--spacing-16);\n}\n\n.as-mobileListItem {\n padding-bottom: var(--spacing-16);\n border-bottom: 1px solid var(--color-opacity-slate-8);\n}\n\n.as-mobileListItem:last-child {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n.as-mobileListItem .card-thumbnail.ct-horizontal {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n@media (max-width: 991px) {\n .as-desktop {\n display: none;\n }\n\n .as-mobile {\n display: flex;\n flex-direction: column;\n }\n}\n\n/* ── Showcase variant (desktop) ───────────────────────────── */\n\n.as-showcaseGrid {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n gap: var(--spacing-24);\n}\n\n.as-showcaseFeatured {\n display: flex;\n}\n\n.as-showcaseCol {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.as-showcaseItem {\n padding-bottom: var(--spacing-16);\n border-bottom: 1px solid var(--color-opacity-slate-8);\n}\n\n.as-showcaseItem:last-child {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n.as-showcaseItem .card-thumbnail.ct-horizontal {\n border-bottom: none;\n padding-bottom: 0;\n}\n\n/* ── Grid variant — mobile horizontal scroll ──────────────── */\n\n.as-mobile-grid {\n display: none;\n}\n\n.as-mobileScroll {\n display: flex;\n gap: var(--spacing-16);\n overflow-x: auto;\n scroll-snap-type: x mandatory;\n -webkit-overflow-scrolling: touch;\n padding: 0 var(--spacing-16);\n padding-bottom: var(--spacing-8);\n margin: 0 calc(var(--spacing-16) * -1);\n}\n\n.as-mobileScroll::-webkit-scrollbar {\n display: none;\n}\n\n.as-mobileScrollItem {\n flex: 0 0 280px;\n scroll-snap-align: start;\n}\n\n@media (max-width: 991px) {\n .as-mobile-grid {\n display: block;\n }\n}\n","/* ============================================================\n CORAL BANNER\n Variants: static | carousel\n Full-bleed coral promo banner — matches the \"Join 3M+ global\n traders\" banner on deriv.com and deriv.com/markets/forex.\n\n Token inheritance:\n Core (--color-*, --spacing-*, --font-*) →\n Semantic (--crb-*) →\n Styles\n\n NOTE — deliberate deviations from the global template padding\n spec (Rule 4) and max-width, to reproduce the reference banner\n exactly:\n - Vertical padding steps 80 / 112 / 96 / 72px (not 56 / 112px)\n - Container max-width 78rem / 1248px (not 1280px)\n Values are still 1:1 with the live site's compiled CSS.\n ============================================================ */\n\n/* ── COMPONENT TOKENS ─────────────────────────────────────── */\n:root {\n --crb-bg: var(--color-coral-700);\n --crb-text: var(--color-slate-50);\n\n --crb-max-width: 78rem;\n /* 1248px — matches reference `.section-container` */\n --crb-padding-inline: var(--spacing-16);\n --crb-padding-block: var(--spacing-72);\n /* < 480px */\n\n --crb-grid-gap: 1.75rem;\n /* 28px — reference `.newbanner-grid` column gap */\n --crb-content-gap: var(--spacing-24);\n\n --crb-title-size: 3rem;\n --crb-title-lh: 3.5rem;\n --crb-title-weight: var(--font-weight-extra-bold);\n\n --crb-body-size: var(--typography-body-lg-font-size);\n --crb-body-lh: var(--typography-body-lg-line-height);\n\n --crb-transition-easing: ease-in-out;\n\n --crb-control-size: 2.5rem;\n /* 40px arrow buttons */\n --crb-control-border: var(--color-opacity-white-48);\n --crb-control-hover-bg: var(--color-opacity-white-24);\n --crb-control-inset: var(--spacing-24);\n\n --crb-dot-inactive: var(--color-opacity-white-48);\n --crb-dot-active: var(--color-slate-50);\n --crb-dot-size: 0.5rem;\n --crb-dot-active-width: 1.5rem;\n}\n\n@media (min-width: 480px) {\n :root {\n --crb-title-size: 4.5rem;\n /* 72px — reference `.newbanner-header` (≥ 480px) */\n --crb-title-lh: 5rem;\n /* 80px */\n --crb-padding-block: var(--spacing-96);\n /* 480–767px */\n }\n}\n\n/* 768–991px (tablet): reference padding is taller than desktop (112px) —\n the grid has already collapsed to one column here, needing more\n vertical breathing room. */\n@media (min-width: 768px) {\n :root {\n --crb-padding-inline: var(--spacing-24);\n --crb-padding-block: var(--spacing-112);\n }\n}\n\n@media (min-width: 992px) {\n :root {\n --crb-padding-block: var(--spacing-80);\n /* ≥ 992px — desktop is more compact than tablet */\n }\n}\n\n/* ── SECTION (full-bleed) ─────────────────────────────────── */\n\n.crb {\n position: relative;\n width: 100%;\n background-color: var(--crb-bg);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n overflow: hidden;\n}\n\n/* ── INNER — horizontal centring / padding only ──────────── */\n\n.crb__inner {\n width: 100%;\n max-width: var(--crb-max-width);\n margin: 0 auto;\n padding-inline: var(--crb-padding-inline);\n box-sizing: border-box;\n}\n\n/* ── STAGE — vertical padding + positioning context for\n dots/arrows (zero horizontal padding of its own, so\n `left: 0` / `right: 0` align exactly with the text column) ── */\n\n.crb__stage {\n position: relative;\n width: 100%;\n padding-block: var(--crb-padding-block);\n box-sizing: border-box;\n}\n\n/* ── VIEWPORT / TRACK (carousel only) ─────────────────────── */\n\n.crb__viewport {\n position: relative;\n width: 100%;\n overflow: hidden;\n touch-action: pan-y;\n}\n\n.crb__track {\n display: flex;\n width: 100%;\n transition-property: transform;\n transition-timing-function: var(--crb-transition-easing);\n will-change: transform;\n}\n\n.crb__slide {\n flex: 0 0 100%;\n min-width: 100%;\n box-sizing: border-box;\n}\n\n/* ── GRID — text column + reserved spacer column ─────────── */\n\n.crb__grid {\n display: grid;\n grid-template-columns: 1fr;\n align-items: center;\n gap: var(--crb-grid-gap);\n}\n\n@media (min-width: 992px) {\n .crb__grid {\n grid-template-columns: 2.15fr 1fr;\n }\n}\n\n.crb__spacer {\n display: none;\n}\n\n@media (min-width: 992px) {\n .crb__spacer {\n display: block;\n }\n}\n\n/* ── CONTENT ──────────────────────────────────────────────── */\n\n.crb__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--crb-content-gap);\n text-align: left;\n}\n\n.crb__title {\n margin: 0;\n font-family: var(--font-family-base);\n font-size: var(--crb-title-size);\n font-weight: var(--crb-title-weight);\n line-height: var(--crb-title-lh);\n color: var(--crb-text);\n}\n\n.crb__description {\n margin: 0;\n font-size: var(--crb-body-size);\n font-weight: var(--typography-body-lg-font-weight);\n line-height: var(--crb-body-lh);\n color: var(--crb-text);\n}\n\n.crb__buttons {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--spacing-16);\n}\n\n/* ── DOTS ─────────────────────────────────────────────────── */\n\n.crb__dots {\n position: absolute;\n left: 0;\n bottom: var(--crb-control-inset);\n display: flex;\n align-items: center;\n gap: 0.375rem;\n}\n\n.crb__dot {\n appearance: none;\n padding: 0;\n border: none;\n cursor: pointer;\n width: var(--crb-dot-size);\n height: var(--crb-dot-size);\n border-radius: var(--radius-full);\n background-color: var(--crb-dot-inactive);\n transition: width 0.3s ease, background-color 0.3s ease;\n}\n\n.crb__dot--active {\n width: var(--crb-dot-active-width);\n background-color: var(--crb-dot-active);\n}\n\n.crb__dot:focus-visible {\n outline: 2px solid var(--crb-text);\n outline-offset: 2px;\n}\n\n/* ── ARROWS ───────────────────────────────────────────────── */\n\n.crb__arrows {\n position: absolute;\n right: 0;\n bottom: var(--crb-control-inset);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.crb__arrow {\n appearance: none;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--crb-control-size);\n height: var(--crb-control-size);\n border-radius: var(--radius-full);\n border: 1px solid var(--crb-control-border);\n background-color: transparent;\n color: var(--crb-text);\n cursor: pointer;\n transition: background-color 0.3s ease-out;\n}\n\n.crb__arrow:hover {\n background-color: var(--crb-control-hover-bg);\n}\n\n.crb__arrow svg {\n width: 1rem;\n height: 1rem;\n}\n\n/* ── Small mobile — dots/arrows hidden below the section on very\n narrow screens if content wraps tall; kept visible by default,\n consumers can hide via showDots/showArrows if needed. ── */\n@media (max-width: 359px) {\n .crb__arrows {\n display: none;\n }\n}\n","/* ============================================================\n FEATURE AWARDS COMPONENT\n Token inheritance:\n Primitive (core) → Semantic (--fa-*) → Component styles\n\n Section:\n --fa-bg var(--color-slate-50) [white]\n --fa-max-width var(--content-width-1280) [1280px]\n\n Section padding (global spec — mobile/tablet/desktop):\n mobile spacing-56 / spacing-16\n tablet spacing-56 / spacing-24\n desktop spacing-112 / spacing-24\n\n Title:\n --fa-title-color var(--text-primary)\n Typography: --typography-h2-*\n\n Item:\n --fa-item-title-color var(--color-slate-1200)\n --fa-item-subtitle-color var(--color-slate-1200)\n\n Grid columns (desktop/tablet):\n Item flex-basis/max-width are tuned so exactly 5 items fit per\n row at the 1280px max-width container (1232px content width):\n 5 × 227px + 4 × 24px gap ≈ 1232px. A 6th item never fits inside\n that width, so 5 is the hard ceiling regardless of screen size;\n narrower viewports naturally wrap to 4, 3, 2 … per row.\n\n Mobile marquee:\n --fa-duration 32s (default, overridable per-instance via inline style)\n ============================================================ */\n\n:root {\n --fa-bg: var(--color-slate-50);\n --fa-max-width: var(--content-width-1280);\n\n --fa-title-color: var(--text-primary);\n\n --fa-item-title-color: var(--text-primary);\n --fa-item-subtitle-color: var(--text-primary);\n\n --fa-item-basis: 12.5rem;\n /* 200px — grid item's preferred/minimum width before wrapping */\n --fa-item-max: 16rem;\n /* 256px — caps growth so a short row doesn't stretch too wide */\n --fa-item-gap-x: var(--spacing-24);\n --fa-item-gap-y: var(--spacing-40);\n}\n\n/* ── SECTION ─────────────────────────────────────────────────── */\n\n.fa {\n width: 100%;\n background-color: var(--fa-bg);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n}\n\n/* ── INNER WRAPPER — global section padding spec ────────────── */\n\n.fa__inner {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-40);\n max-width: var(--fa-max-width);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .fa__inner {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .fa__inner {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── TITLE ───────────────────────────────────────────────────── */\n\n.fa__title {\n margin: 0;\n width: 100%;\n text-align: left;\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--fa-title-color);\n}\n\n@media (min-width: 768px) {\n .fa__title {\n text-align: center;\n }\n}\n\n/* ── DESKTOP / TABLET GRID — centered, wraps, last row centers ── */\n\n.fa__grid {\n display: none;\n width: 100%;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: center;\n row-gap: var(--fa-item-gap-y);\n column-gap: var(--fa-item-gap-x);\n}\n\n@media (min-width: 768px) {\n .fa__grid {\n display: flex;\n }\n}\n\n/* ── MOBILE SCROLLER — hidden below 768px only ──────────────── */\n\n.fa__scroller {\n display: block;\n width: 100%;\n overflow-x: hidden;\n}\n\n@media (min-width: 768px) {\n .fa__scroller {\n display: none;\n }\n}\n\n/* ── MARQUEE TRACK ───────────────────────────────────────────── */\n\n.fa__track {\n display: flex;\n width: max-content;\n}\n\n.fa__track-group {\n display: flex;\n flex-shrink: 0;\n gap: var(--fa-item-gap-x);\n padding-right: var(--fa-item-gap-x);\n}\n\n/* Continuous seamless loop: the track renders two identical\n groups back to back, so translating by exactly -50% of the\n full (2×) track width shifts by one group's width — the next\n frame is pixel-identical to frame 0. */\n.fa__track--auto {\n animation: fa-marquee var(--fa-duration, 32s) linear infinite;\n}\n\n.fa__track--auto:hover,\n.fa__track--auto:focus-within {\n animation-play-state: paused;\n}\n\n@keyframes fa-marquee {\n from {\n transform: translateX(0);\n }\n\n to {\n transform: translateX(-50%);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa__scroller {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n\n .fa__track--auto {\n animation: none;\n }\n}\n\n/* ── AWARD ITEM — leaf / text / leaf ─────────────────────────── */\n\n.fa__item {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-8);\n min-width: 0;\n}\n\n/* Grid (desktop/tablet): grow/shrink around a shared basis so each\n wrapped row naturally holds as many items as fit — capped at 5\n per row by the container math above — and a partial final row\n stays centered (via .fa__grid's justify-content) instead of\n stretching edge-to-edge. */\n.fa__grid .fa__item {\n flex: 1 1 var(--fa-item-basis);\n max-width: var(--fa-item-max);\n}\n\n/* Mobile marquee: fixed width per item so the ticker reads at a\n consistent, predictable pace. */\n.fa__track-group .fa__item {\n flex: 0 0 var(--fa-item-basis);\n}\n\n.fa__item-text {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-4);\n text-align: center;\n min-width: 0;\n}\n\n.fa__item-title {\n margin: 0;\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-sm-line-height);\n color: var(--fa-item-title-color);\n}\n\n.fa__item-subtitle {\n margin: 0;\n font-family: var(--typography-body-xs-font-family);\n font-size: var(--typography-body-xs-font-size);\n font-weight: var(--typography-body-xs-font-weight);\n line-height: var(--typography-body-xs-line-height);\n color: var(--fa-item-subtitle-color);\n}\n\n/* ── LAUREL LEAF ICON ────────────────────────────────────────── */\n\n.fa__leaf {\n flex-shrink: 0;\n width: 1.5rem;\n height: auto;\n display: block;\n user-select: none;\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.fb-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.fb-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-48);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .fb-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .fb-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.fb-title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n text-align: center;\n margin: 0;\n}\n\n/* ── Posts grid ────────────────────────────────────────────── */\n\n.fb-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .fb-grid {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (min-width: 992px) {\n .fb-grid {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n/* ── Clickable card wrapper ────────────────────────────────── */\n\n.fb-cardLink {\n display: block;\n color: inherit;\n text-decoration: none;\n border-radius: var(--radius-2xl);\n}\n\n.fb-cardButton {\n width: 100%;\n padding: 0;\n background: none;\n border: none;\n text-align: left;\n cursor: pointer;\n font: inherit;\n}\n\n.fb-cardLink:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n}\n\n/* ── \"See all\" link ────────────────────────────────────────── */\n\n.fb-linkWrap {\n display: flex;\n justify-content: center;\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.fbc-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.fbc-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-32);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .fbc-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .fbc-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.fbc-title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n text-align: center;\n margin: 0;\n}\n\n/* ── Search field ──────────────────────────────────────────── */\n\n.fbc-searchWrap {\n width: 100%;\n max-width: 100%;\n}\n\n@media (min-width: 992px) {\n .fbc-searchWrap {\n /* 39.5rem / 632px — matches the search field width on\n * deriv.com/newsroom/deriv-in-the-news at desktop widths */\n max-width: 39.5rem;\n }\n}\n\n/* ── Tabs row ──────────────────────────────────────────────── */\n\n.fbc-tabsWrap {\n display: flex;\n justify-content: center;\n width: 100%;\n max-width: 100%;\n}\n\n.fbc-tabsWrap .tabs-menu {\n justify-content: center;\n padding-left: var(--spacing-16);\n padding-right: var(--spacing-16);\n margin-left: calc(var(--spacing-16) * -1);\n margin-right: calc(var(--spacing-16) * -1);\n width: calc(100% + var(--spacing-32));\n}\n\n@media (min-width: 768px) {\n .fbc-tabsWrap .tabs-menu {\n flex-wrap: wrap;\n padding-left: 0;\n padding-right: 0;\n margin-left: 0;\n margin-right: 0;\n width: auto;\n }\n}\n\n/* ── Posts grid ────────────────────────────────────────────── */\n\n.fbc-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .fbc-grid {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (min-width: 992px) {\n .fbc-grid {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n/* ── Clickable card wrapper ────────────────────────────────── */\n\n.fbc-cardLink {\n display: block;\n color: inherit;\n text-decoration: none;\n border-radius: var(--radius-2xl);\n}\n\n.fbc-cardButton {\n width: 100%;\n padding: 0;\n background: none;\n border: none;\n text-align: left;\n cursor: pointer;\n font: inherit;\n}\n\n.fbc-cardLink:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n}\n\n/* ── Empty state ───────────────────────────────────────────── */\n\n.fbc-emptyState {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--color-slate-1200);\n text-align: center;\n margin: 0;\n padding: var(--spacing-32) 0;\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.hcc-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.hcc-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-48);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .hcc-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .hcc-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Header ────────────────────────────────────────────────── */\n\n.hcc-header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n text-align: left;\n}\n\n@media (min-width: 768px) {\n .hcc-header {\n align-items: center;\n text-align: center;\n }\n}\n\n.hcc-sectionTitle {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n.hcc-sectionDescription {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n margin: 0;\n max-width: 640px;\n}\n\n/* ── Categories grid ──────────────────────────────────────────\n Column count is capped at 3 and driven by category count (see\n getColumnCount in HelpCentreCategories.tsx): 1 or 2 categories render in\n that many columns instead of stretching or leaving a sparse row; 3+\n categories always wrap to the standard 1 → 2 → 3 responsive grid, adding\n more rows as needed. ─────────────────────────────────────────────── */\n\n.hcc-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-16);\n width: 100%;\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n@media (min-width: 768px) {\n .hcc-grid--2,\n .hcc-grid--3 {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .hcc-grid--3 {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n.hcc-gridItem {\n display: flex;\n min-width: 0;\n}\n\n/* ── Category tile ─────────────────────────────────────────── */\n\n.hcc-tile {\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: flex-start;\n /* Icon pinned to the top, title pinned to the bottom — the gap between them\n grows to fill the tile's min-height rather than being a fixed value. */\n justify-content: space-between;\n gap: var(--spacing-32);\n width: 100%;\n min-width: 0;\n min-height: calc(11.5 * var(--spacing-16));\n box-sizing: border-box;\n padding: var(--spacing-24);\n background-color: var(--color-slate-75);\n border: none;\n border-radius: var(--radius-2xl);\n text-align: left;\n text-decoration: none;\n cursor: pointer;\n font: inherit;\n color: inherit;\n transition: transform 0.2s ease;\n}\n\n@media (min-width: 768px) {\n .hcc-tile {\n gap: var(--spacing-48);\n padding: var(--spacing-32);\n min-height: calc(14.5 * var(--spacing-16));\n }\n}\n\n@media (min-width: 992px) {\n .hcc-tile {\n min-height: calc(15 * var(--spacing-16));\n }\n}\n\n.hcc-tile:hover {\n transform: scale(0.98);\n}\n\n.hcc-tile:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n}\n\n.hcc-tile-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-48);\n height: var(--spacing-48);\n flex-shrink: 0;\n}\n\n.hcc-tile-iconImage {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.hcc-tile-title {\n min-width: 0;\n width: 100%;\n font-family: var(--typography-h6-font-family);\n font-size: var(--typography-h6-font-size);\n font-weight: var(--typography-h6-font-weight);\n line-height: var(--typography-h6-line-height);\n color: var(--text-primary);\n overflow-wrap: break-word;\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.hcsc-section {\n width: 100%;\n background-color: var(--color-white);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.hcsc-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-32);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .hcsc-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .hcsc-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.hcsc-title {\n font-family: var(--typography-h1-font-family);\n font-size: var(--typography-h1-font-size);\n font-weight: var(--typography-h1-font-weight);\n line-height: var(--typography-h1-line-height);\n color: var(--text-primary);\n text-align: center;\n margin: 0;\n width: 100%;\n}\n\n/* ── Search field wrapper ──────────────────────────────────── */\n\n.hcsc-searchWrap {\n width: 100%;\n max-width: var(--content-width-846);\n}\n\n.hcsc-searchWrap > * {\n width: 100%;\n}\n\n/* ── Question cards grid ───────────────────────────────────── */\n\n.hcsc-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-16);\n width: 100%;\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n@media (min-width: 768px) {\n .hcsc-grid {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .hcsc-grid {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n.hcsc-gridItem {\n display: flex;\n min-width: 0;\n}\n\n/* ── Question card ─────────────────────────────────────────── */\n\n.hcsc-card {\n display: flex;\n flex: 1;\n align-items: center;\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n padding: var(--spacing-24);\n background-color: var(--color-slate-75);\n border: none;\n border-radius: var(--radius-2xl);\n text-align: left;\n text-decoration: none;\n cursor: pointer;\n font: inherit;\n color: inherit;\n transition: transform 0.2s ease;\n}\n\n.hcsc-card:hover {\n transform: scale(0.98);\n}\n\n.hcsc-card:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n}\n\n.hcsc-card-text {\n min-width: 0;\n width: 100%;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n overflow-wrap: break-word;\n}\n\n/* ── No results state ──────────────────────────────────────── */\n\n.hcsc-noResults {\n width: 100%;\n padding: var(--spacing-32) 0;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--color-slate-1200);\n text-align: center;\n margin: 0;\n}\n","/* ============================================================\n HELP CENTER PAGE TEMPLATE\n Token inheritance:\n Primitive (core) → Semantic (--hcp-*) → Component styles\n\n Layout:\n Mobile (<768px) search bar → pill dropdown trigger → content\n (tapping the trigger opens the \"Articles in this\n section\" bottom sheet with the full question list)\n Tablet/Desktop (≥768px) search bar → [sidebar question table | content]\n\n Section padding follows the global three-step spec:\n mobile spacing-56 / spacing-16\n tablet spacing-56 / spacing-24\n desktop spacing-112 / spacing-24\n ============================================================ */\n\n:root {\n --hcp-max-width: var(--content-width-1280);\n\n --hcp-sidebar-width: 15.5rem; /* 248px */\n --hcp-sidebar-width-lg: 18.5rem; /* 296px */\n\n --hcp-card-bg: var(--color-slate-50);\n --hcp-card-border: var(--color-slate-100);\n --hcp-row-active-bg: var(--color-slate-75);\n --hcp-text-color: var(--text-primary);\n --hcp-muted-color: var(--color-slate-600);\n}\n\n/* ── Section shell ─────────────────────────────────────────── */\n\n.hcp-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.hcp-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-40);\n max-width: var(--hcp-max-width);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .hcp-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .hcp-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Search field ─────────────────────────────────────────────\n Spans the full width of the container — matching the sidebar +\n content row below it, not a narrower centered box. */\n\n.hcp-searchWrap {\n width: 100%;\n}\n\n.hcp-searchWrap > * {\n width: 100%;\n}\n\n/* ── Body: sidebar + content ──────────────────────────────── */\n\n.hcp-body {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .hcp-body {\n flex-direction: row;\n gap: var(--spacing-40);\n }\n}\n\n/* ── Sidebar question table (tablet/desktop only) ────────────── */\n\n.hcp-sidebar {\n display: none;\n width: 100%;\n flex-shrink: 0;\n}\n\n@media (min-width: 768px) {\n .hcp-sidebar {\n display: block;\n width: var(--hcp-sidebar-width);\n }\n}\n\n@media (min-width: 992px) {\n .hcp-sidebar {\n width: var(--hcp-sidebar-width-lg);\n }\n}\n\n.hcp-sidebarCard {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n width: 100%;\n box-sizing: border-box;\n padding: var(--spacing-32);\n background-color: var(--hcp-card-bg);\n border: 1px solid var(--hcp-card-border);\n border-radius: var(--radius-2xl);\n /* Sticks alongside the (typically longer) content column while scrolling. */\n position: sticky;\n top: var(--spacing-24);\n}\n\n.hcp-sidebarTitle {\n margin: 0;\n font-family: var(--typography-h6-font-family);\n font-size: var(--typography-h6-font-size);\n font-weight: var(--typography-h6-font-weight);\n line-height: var(--typography-h6-line-height);\n color: var(--hcp-text-color);\n}\n\n.hcp-list {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-4);\n width: 100%;\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.hcp-listItem {\n display: flex;\n min-width: 0;\n}\n\n/* ── Question row (shared by sidebar table + mobile sheet) ───── */\n\n.hcp-row {\n display: flex;\n align-items: center;\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n padding: var(--spacing-12) var(--spacing-16);\n background-color: transparent;\n border: none;\n border-radius: var(--radius-md);\n text-align: left;\n text-decoration: none;\n cursor: pointer;\n font: inherit;\n color: inherit;\n transition: background-color 0.15s ease;\n}\n\n.hcp-sidebarCard .hcp-row:hover {\n background-color: var(--color-slate-75);\n}\n\n.hcp-row--active {\n background-color: var(--hcp-row-active-bg);\n}\n\n.hcp-row:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n}\n\n.hcp-rowText {\n min-width: 0;\n width: 100%;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--hcp-text-color);\n overflow-wrap: break-word;\n}\n\n.hcp-row--active .hcp-rowText {\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* ── Mobile category dropdown trigger ─────────────────────────\n Pill-shaped button that opens the \"Articles in this section\"\n bottom sheet — visually replaces the sidebar table on mobile. */\n\n.hcp-mobileToggle {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-8);\n width: 100%;\n box-sizing: border-box;\n padding: var(--spacing-16) var(--spacing-24);\n background-color: var(--color-slate-75);\n border: none;\n border-radius: var(--radius-full);\n cursor: pointer;\n font: inherit;\n color: var(--hcp-text-color);\n transition: background-color 0.15s ease;\n}\n\n.hcp-mobileToggle:hover {\n background-color: var(--color-slate-100);\n}\n\n.hcp-mobileToggle:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n}\n\n@media (min-width: 768px) {\n .hcp-mobileToggle {\n display: none;\n }\n}\n\n.hcp-mobileToggleLabel {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-md-line-height);\n}\n\n.hcp-mobileToggleChevron {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n color: var(--hcp-text-color);\n}\n\n/* ── Main content column ──────────────────────────────────── */\n\n.hcp-content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-32);\n flex: 1 1 0%;\n min-width: 0;\n}\n\n.hcp-contentTitle {\n margin: 0;\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--hcp-text-color);\n}\n\n.hcp-contentBody {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n min-width: 0;\n}\n\n.hcp-blockHeading {\n margin: 0;\n font-family: var(--typography-h6-font-family);\n font-size: var(--typography-h6-font-size);\n font-weight: var(--typography-h6-font-weight);\n line-height: var(--typography-h6-line-height);\n color: var(--hcp-text-color);\n}\n\n.hcp-blockParagraph {\n margin: 0;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--hcp-text-color);\n overflow-wrap: break-word;\n}\n\n/* No extra gap between entries — list items sit at their natural\n line-height spacing, matching the reference's tightly-packed bullets. */\n.hcp-blockList {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding-left: var(--spacing-24);\n}\n\n.hcp-blockListItem {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--hcp-text-color);\n overflow-wrap: break-word;\n}\n\n/* ── Mobile \"Articles in this section\" sheet list ────────────── */\n\n.hcp-sheetList {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-4);\n list-style: none;\n margin: 0;\n padding: var(--spacing-8) var(--spacing-16) var(--spacing-16);\n}\n\n.hcp-sheetItem {\n display: flex;\n min-width: 0;\n}\n\n.hcp-sheetItem .hcp-row {\n padding: var(--spacing-16) var(--spacing-8);\n border-radius: var(--radius-md);\n}\n\n.hcp-sheetItem .hcp-row:hover {\n background-color: var(--color-slate-75);\n}\n\n/* ── Empty search state ───────────────────────────────────── */\n\n.hcp-noResults {\n width: 100%;\n padding: var(--spacing-16) var(--spacing-8);\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--hcp-muted-color);\n text-align: center;\n margin: 0;\n}\n","/* ============================================================\n FEATURE BLOG PAGE TEMPLATE\n Token inheritance:\n Primitive (core) → Semantic (--fbp-*) → Component styles\n\n Layout:\n Mobile/Tablet (<1024px) collapsible \"Contents\" card →\n title/meta → hero image →\n share icon row → body content\n Desktop (≥1024px) [title/meta + hero image + body content\n | sticky \"Contents\" + \"Share article\"\n sidebar]. The sidebar starts level with\n the title, not the body, matching the\n reference site.\n\n Breadcrumb navigation is intentionally not part of this template —\n it is composed separately above it by the consuming page.\n\n Section padding follows the global three-step spec:\n mobile spacing-56 / spacing-16\n tablet spacing-56 / spacing-24\n desktop spacing-112 / spacing-24\n ============================================================ */\n\n:root {\n --fbp-max-width: var(--content-width-1280);\n --fbp-sidebar-width: 25.5rem; /* 408px — matches reference sidebar column */\n --fbp-body-gap: var(--spacing-112); /* 112px — matches reference gap between main column and sidebar */\n\n --fbp-card-border: var(--color-opacity-slate-8);\n --fbp-share-card-bg: var(--color-slate-75);\n --fbp-text-color: var(--text-primary);\n --fbp-muted-color: var(--color-slate-600);\n}\n\n/* ── Section shell ─────────────────────────────────────────── */\n\n.fbp-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.fbp-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n max-width: var(--fbp-max-width);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .fbp-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .fbp-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Body: main column + sidebar ──────────────────────────────\n The sidebar sits beside the title/hero/content column (starting\n level with the title), not just beside the body copy. */\n\n.fbp-body {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n@media (min-width: 1024px) {\n .fbp-body {\n flex-direction: row;\n /* stretch (not flex-start): the sidebar's own box must span the\n full height of the (much taller) main column so its sticky\n child has room to travel the whole scroll range instead of\n running out of its container after ~1 card-height of scroll. */\n align-items: stretch;\n gap: var(--fbp-body-gap);\n }\n}\n\n.fbp-main {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-32);\n width: 100%;\n min-width: 0;\n}\n\n@media (min-width: 1024px) {\n .fbp-main {\n flex: 1 1 auto;\n }\n}\n\n/* ── Header: category tag + title + meta ─────────────────────── */\n\n.fbp-header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n.fbp-title {\n margin: 0;\n /* Rendered as a real <h1> for document structure/accessibility, but\n sized like this design system's h3 scale — measured directly against\n the reference article's headline (48px/56px line-height/-0.4px\n letter-spacing at desktop), which reads noticeably smaller than a\n hero-level h1. */\n font-family: var(--typography-h3-font-family);\n font-size: var(--typography-h3-font-size);\n font-weight: var(--typography-h3-font-weight);\n line-height: var(--typography-h3-line-height);\n letter-spacing: var(--typography-h3-letter-spacing);\n color: var(--fbp-text-color);\n overflow-wrap: break-word;\n}\n\n.fbp-meta {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--spacing-12);\n}\n\n.fbp-metaAuthor {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n.fbp-avatar {\n width: 2rem;\n height: 2rem;\n border-radius: var(--radius-full);\n object-fit: cover;\n flex-shrink: 0;\n}\n\n.fbp-authorName {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-md-line-height);\n color: var(--fbp-text-color);\n}\n\n/* Pill-shaped date chip, e.g. \"July 24, 2026\" */\n.fbp-dateChip {\n display: inline-flex;\n align-items: center;\n box-sizing: border-box;\n padding: var(--spacing-8) var(--spacing-16);\n background-color: var(--color-slate-75);\n border-radius: var(--radius-full);\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-sm-line-height);\n color: var(--fbp-text-color);\n white-space: nowrap;\n}\n\n/* ── Hero image ────────────────────────────────────────────── */\n\n.fbp-heroImageWrap {\n width: 100%;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n}\n\n.fbp-heroImage {\n display: block;\n width: 100%;\n height: auto;\n object-fit: cover;\n}\n\n/* ── Mobile/tablet \"Contents\" placement ───────────────────────\n Rendered above the title. Hidden ≥1024px, where the sidebar\n takes over. */\n\n.fbp-tocMobileWrap {\n display: block;\n width: 100%;\n}\n\n@media (min-width: 1024px) {\n .fbp-tocMobileWrap {\n display: none;\n }\n}\n\n/* ── Mobile/tablet share row placement ─────────────────────────\n Rendered below the hero image, above the body copy. Hidden\n ≥1024px, where the sidebar takes over. */\n\n.fbp-shareMobileWrap {\n display: block;\n width: 100%;\n}\n\n@media (min-width: 1024px) {\n .fbp-shareMobileWrap {\n display: none;\n }\n}\n\n/* ── Main content column ──────────────────────────────────── */\n\n.fbp-content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n width: 100%;\n min-width: 0;\n}\n\n.fbp-blockHeading {\n margin: var(--spacing-8) 0 0;\n scroll-margin-top: var(--spacing-96);\n /* h5 scale — measured directly against the reference article's\n in-body section headings (28px/35px line-height at desktop). */\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--fbp-text-color);\n}\n\n/* Level-3 blocks share the exact same size as level-2 blocks — both are\n just \"subtitles\" within the article at the same visual hierarchy; only\n level-2 headings are additionally collected into the table of contents. */\n.fbp-blockHeading--h3 {\n margin-top: 0;\n}\n\n.fbp-blockParagraph {\n margin: 0;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--fbp-text-color);\n overflow-wrap: break-word;\n}\n\n.fbp-blockList {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n margin: 0;\n padding-left: var(--spacing-24);\n}\n\n.fbp-blockListItem {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--fbp-text-color);\n overflow-wrap: break-word;\n}\n\n/* Minimal by design — matches the reference article, where an emphasised\n line (e.g. a spokesperson quote) is just bold body text sitting directly\n in the content flow. No border, fill, radius, or padding: only color and\n type follow the design system here, exactly like the rest of the page. */\n.fbp-blockQuote {\n margin: 0;\n}\n\n.fbp-blockQuoteText {\n margin: 0;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-md-line-height);\n color: var(--fbp-text-color);\n}\n\n.fbp-blockQuoteCite {\n display: block;\n margin-top: var(--spacing-8);\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-sm-line-height);\n font-style: normal;\n color: var(--fbp-text-color);\n}\n\n.fbp-blockImageWrap {\n margin: 0;\n width: 100%;\n}\n\n/* Steps content blocks render via the Steps template in \"embedded\" mode\n (see FeatureBlogPage.tsx), which already drops the standalone\n section shell (background/padding/landmark) — this wrapper only needs\n to participate in the article's normal block spacing (`.fbp-content`'s\n gap), same as every other block type. */\n.fbp-blockSteps {\n width: 100%;\n}\n\n.fbp-blockImage {\n display: block;\n width: 100%;\n height: auto;\n border-radius: var(--radius-xl);\n object-fit: cover;\n}\n\n.fbp-blockCaption {\n margin-top: var(--spacing-8);\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n color: var(--fbp-muted-color);\n text-align: center;\n}\n\n/* ── Sidebar (desktop/tablet ≥1024px) ─────────────────────────\n Hidden below 1024px — the mobile \"Contents\" card and share row\n cover the same functionality above. Starts level with the title\n and sticks while scrolling past the (typically much longer)\n title/hero/content column beside it. */\n\n.fbp-sidebar {\n display: none;\n width: 100%;\n flex-shrink: 0;\n}\n\n@media (min-width: 1024px) {\n .fbp-sidebar {\n display: block;\n width: var(--fbp-sidebar-width);\n }\n}\n\n.fbp-sidebarSticky {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n position: sticky;\n top: var(--spacing-32);\n}\n\n/* ── \"Contents\" (table of contents) card ─────────────────────\n Shared markup for both the mobile placement (a collapsible card\n above the title) and the desktop sidebar placement (sticky, beside\n the title/hero/content column, always expanded). */\n\n.fbp-tocCard {\n display: flex;\n flex-direction: column;\n width: 100%;\n box-sizing: border-box;\n /* Mobile/tablet default — a plain accordion row with a bottom divider,\n matching the reference's minimal \"Contents\" toggle (no card chrome:\n only color and type, same as the rest of the page). The bordered,\n padded card treatment below is reserved for the desktop sidebar,\n where the reference does render it as a distinct outlined card. */\n padding-bottom: var(--spacing-16);\n border-bottom: 1px solid var(--fbp-card-border);\n}\n\n@media (min-width: 1024px) {\n .fbp-sidebar .fbp-tocCard {\n padding: var(--spacing-32);\n border: 1px solid var(--fbp-card-border);\n border-radius: var(--radius-2xl);\n border-bottom: 1px solid var(--fbp-card-border);\n }\n}\n\n.fbp-tocHeader {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-8);\n width: 100%;\n box-sizing: border-box;\n color: var(--fbp-text-color);\n}\n\n.fbp-tocHeader--button {\n appearance: none;\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n font: inherit;\n text-align: left;\n}\n\n.fbp-tocHeader--button:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n}\n\n.fbp-tocTitle {\n /* h5 scale — measured directly against the reference \"Contents\"\n heading (28px/36px line-height at desktop). */\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--fbp-text-color);\n}\n\n.fbp-tocChevron {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: 1rem;\n height: 1rem;\n color: var(--fbp-text-color);\n transition: transform 0.2s ease;\n}\n\n.fbp-tocChevron--open {\n transform: rotate(180deg);\n}\n\n.fbp-tocList {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n margin: var(--spacing-24) 0 0;\n padding: 0;\n list-style: none;\n}\n\n.fbp-tocItem {\n display: flex;\n min-width: 0;\n}\n\n.fbp-tocLink {\n display: block;\n width: 100%;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--fbp-text-color);\n text-decoration: none;\n overflow-wrap: break-word;\n transition: color 0.15s ease;\n}\n\n.fbp-tocLink:hover {\n color: var(--color-coral-700);\n}\n\n.fbp-tocLink:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n border-radius: var(--radius-xs);\n}\n\n.fbp-tocLink--active {\n color: var(--color-coral-700);\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* ── \"Share article\" card / row ───────────────────────────────\n Same markup for the mobile placement (below the hero image) and\n the desktop sidebar placement (sticky, stacked under the Contents\n card) — a light-grey card with the label above a flat icon row. */\n\n.fbp-shareCard {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n width: 100%;\n box-sizing: border-box;\n padding: var(--spacing-32);\n background-color: var(--fbp-share-card-bg);\n border-radius: var(--radius-2xl);\n}\n\n.fbp-shareTitle {\n /* Body-md scale + semi-bold — measured directly against the reference\n \"Share article\" label, which reads as small semi-bold text (16px/24px\n line-height), not a heading, unlike the \"Contents\" title beside it. */\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-md-line-height);\n color: var(--fbp-text-color);\n}\n\n.fbp-shareIcons {\n display: flex;\n align-items: center;\n gap: var(--spacing-24);\n}\n\n.fbp-shareIcon {\n display: flex;\n align-items: center;\n justify-content: center;\n /* 32px — matches the reference share-icon row exactly. */\n width: 2rem;\n height: 2rem;\n flex-shrink: 0;\n padding: 0;\n background: none;\n border: none;\n color: var(--fbp-text-color);\n text-decoration: none;\n cursor: pointer;\n opacity: 1;\n transition: opacity 0.15s ease;\n}\n\n.fbp-shareIcon:hover {\n opacity: 0.65;\n}\n\n.fbp-shareIcon:focus-visible {\n outline: 2px solid var(--color-coral-700);\n outline-offset: 2px;\n border-radius: var(--radius-xs);\n}\n\n.fbp-shareIconImg {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n","/* ============================================================\n PARALLAX BANNER\n Modeled after the \"Our culture\" section on careers.deriv.com:\n a dark rounded banner card (headline + copy + link left, photo\n right) with a subtle scroll-linked parallax on the photo, and\n (variant \"default\" only) four value/culture cards in a grid\n below it.\n\n Variants:\n default → banner card + culture cards grid beneath it\n banner-only → just the banner card, no cards grid\n\n Layout:\n Mobile / tablet (<992px) — stacked: text block, then photo,\n both inside one rounded card; cards grid stacks to 1 column.\n Desktop (≥992px) — side-by-side card (text left, photo right);\n cards grid becomes 4 columns.\n\n The card keeps rounded corners and inline page padding at every\n breakpoint (unlike ImageBanner's edge-to-edge mobile treatment),\n matching the reference layout.\n\n Section padding follows the global spec:\n mobile → spacing-56 / spacing-16\n tablet → spacing-56 / spacing-24\n desktop → spacing-112 / spacing-24\n ============================================================ */\n\n/* ── Section shell ─────────────────────────────────────────── */\n\n.parallax-banner {\n width: 100%;\n font-family: var(--font-family-base);\n box-sizing: border-box;\n padding: var(--spacing-56) var(--spacing-16);\n}\n\n@media (min-width: 768px) {\n .parallax-banner {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .parallax-banner {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Inner wrapper ──────────────────────────────────────────── */\n\n.parallax-banner__inner {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n}\n\n/* ── Banner card ────────────────────────────────────────────── */\n\n.parallax-banner__card {\n position: relative;\n display: flex;\n flex-direction: column;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n background-color: var(--color-slate-1200);\n min-height: 480px;\n}\n\n@media (min-width: 992px) {\n .parallax-banner__card {\n flex-direction: row;\n align-items: stretch;\n }\n}\n\n/* ── Content (text + CTA panel) ────────────────────────────── */\n\n.parallax-banner__content {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n text-align: left;\n gap: var(--spacing-16);\n padding: var(--spacing-32) var(--spacing-24);\n width: 100%;\n box-sizing: border-box;\n position: relative;\n z-index: 1;\n}\n\n@media (min-width: 768px) {\n .parallax-banner__content {\n padding: var(--spacing-48) var(--spacing-40);\n }\n}\n\n@media (min-width: 992px) {\n .parallax-banner__content {\n width: 45%;\n flex: 0 0 45%;\n gap: var(--spacing-24);\n padding: var(--spacing-64) var(--spacing-56);\n justify-content: center;\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.parallax-banner__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--color-slate-50);\n margin: 0;\n}\n\n/* ── Description ───────────────────────────────────────────── */\n\n.parallax-banner__description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--color-slate-50);\n margin: 0;\n max-width: 42ch;\n}\n\n/* ── Actions ───────────────────────────────────────────────── */\n\n.parallax-banner__actions {\n display: flex;\n align-items: center;\n padding-top: var(--spacing-8);\n}\n\n/* ── Photo panel ────────────────────────────────────────────── */\n\n.parallax-banner__image-wrapper {\n position: relative;\n width: 100%;\n aspect-ratio: 4 / 3;\n overflow: hidden;\n flex-shrink: 0;\n}\n\n@media (min-width: 992px) {\n .parallax-banner__image-wrapper {\n width: 55%;\n flex: 0 0 55%;\n aspect-ratio: unset;\n }\n}\n\n/*\n * The photo is rendered taller than its wrapper (with a matching negative\n * offset) so the scroll-linked parallax translate never reveals empty\n * space at the top/bottom edge of the panel — the overscan (60px each\n * side) comfortably exceeds the ±36px travel distance plus spring overshoot.\n */\n.parallax-banner__image {\n position: absolute;\n left: 0;\n top: -60px;\n width: 100%;\n height: calc(100% + 120px);\n object-fit: cover;\n object-position: center top;\n display: block;\n will-change: transform;\n}\n\n/* ── Culture cards grid (variant \"default\" only) ───────────── */\n\n.parallax-banner__cards {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .parallax-banner__cards {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-16);\n }\n}\n\n@media (min-width: 992px) {\n .parallax-banner__cards {\n grid-template-columns: repeat(4, 1fr);\n gap: var(--spacing-16);\n }\n}\n\n.parallax-banner__card-item {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-12);\n background-color: var(--color-slate-75);\n border-radius: var(--radius-xl);\n padding: var(--spacing-24);\n box-sizing: border-box;\n}\n\n.parallax-banner__card-title {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n.parallax-banner__card-description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Reduced motion ─────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .parallax-banner__image {\n transform: none !important;\n }\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.tcalc-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n.tcalc-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-32);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .tcalc-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .tcalc-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Single card, two columns ─────────────────────────────────── */\n\n.tcalc-card {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-32);\n width: 100%;\n align-items: start;\n background: var(--color-slate-75);\n border-radius: var(--radius-2xl);\n padding: var(--spacing-24);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .tcalc-card {\n grid-template-columns: 1fr 1fr;\n padding: var(--spacing-32);\n }\n}\n\n.tcalc-column {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n min-width: 0;\n}\n\n/* \"Results\" is a white card nested inside the shared grey card — the\n * white/grey contrast itself is the boundary between \"Calculator\" and\n * \"Results\", so no border or shadow/outline is needed on top of it, just\n * a flat white fill. */\n.tcalc-column--results {\n background: var(--color-slate-50);\n border-radius: var(--radius-xl);\n padding: var(--spacing-24);\n}\n\n.tcalc-panelTitle {\n font-family: var(--font-family-base);\n font-size: var(--font-size-xl);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--line-height-xl);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Fields ───────────────────────────────────────────────────── */\n\n.tcalc-field {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n}\n\n/* \"Symbols\" (SearchField), \"Volume in Lots\" and \"Asset price\" (TextField)\n * are the shared field components — see imports in TradingCalculator.tsx.\n * Both support an in-box `label` (stacked above the value, inside the same\n * bordered box) as a generic addition to those components, so no bespoke\n * input/label/box markup lives here anymore; only cosmetic overrides that\n * are specific to this component's look. */\n.tcalc-required {\n color: var(--color-coral-700);\n}\n\n/* Bump the value text to match the reference page's bolder field values,\n * without changing TextField/SearchField's own default input styling. */\n.tcalc-numberField .tf-input,\n.tcalc-field .sf-input {\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* Hide native number-input spin buttons on the numeric fields — keypad/\n * manual entry only. */\n.tcalc-numberField .tf-input[type=\"number\"]::-webkit-outer-spin-button,\n.tcalc-numberField .tf-input[type=\"number\"]::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n.tcalc-numberField .tf-input[type=\"number\"] {\n appearance: textfield;\n}\n\n.tcalc-fieldError {\n display: flex;\n align-items: center;\n gap: var(--spacing-4);\n font-family: var(--font-family-base);\n font-size: var(--typography-body-xs-font-size);\n color: var(--field-text-fail);\n margin: 0;\n}\n\n.tcalc-retryLink {\n background: none;\n border: none;\n padding: 0;\n font: inherit;\n color: inherit;\n text-decoration: underline;\n cursor: pointer;\n}\n\n.tcalc-calcError {\n background: var(--field-surface-fail);\n border-radius: var(--radius-md);\n padding: var(--spacing-8) var(--spacing-12);\n}\n\n/* ── Symbol dropdown ──────────────────────────────────────────── */\n\n/* Positioning/shadow/scroll mechanics match this package's conventions\n * (rounded on every corner, floating card, design-token shadow); the type\n * scale, spacing, dividers, and hover/active colors below intentionally\n * match deriv.com/trading-calculators' own symbol dropdown pixel-for-pixel. */\n.tcalc-dropdown {\n position: absolute;\n top: calc(100% + var(--spacing-4));\n left: 0;\n right: 0;\n z-index: 20;\n max-height: 320px;\n overflow-y: auto;\n background: var(--color-slate-50);\n border-radius: var(--radius-md);\n box-shadow: var(--shadow-lg);\n}\n\n.tcalc-dropdownEmpty {\n padding: var(--spacing-16);\n font-family: var(--font-family-base);\n font-size: 15px;\n color: var(--text-secondary);\n margin: 0;\n}\n\n.tcalc-dropdownGroupTitle {\n padding: var(--spacing-16);\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-extra-bold);\n color: var(--text-primary);\n margin: 0;\n}\n\n.tcalc-dropdownOption {\n display: flex;\n flex-direction: column;\n padding: var(--spacing-12) var(--spacing-16) var(--spacing-8);\n border-bottom: 1px solid var(--color-opacity-slate-8);\n cursor: pointer;\n}\n\n.tcalc-dropdownGroup:last-child .tcalc-dropdownOption:last-child {\n border-bottom: none;\n}\n\n.tcalc-dropdownOption:hover {\n background: var(--color-slate-75);\n}\n\n.tcalc-dropdownOption--active {\n background: var(--color-coral-100);\n}\n\n.tcalc-dropdownSymbol,\n.tcalc-dropdownDesc {\n font-family: var(--font-family-base);\n font-size: 15px;\n line-height: 1.3;\n margin: 0 0 3px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.tcalc-dropdownSymbol {\n font-weight: var(--font-weight-semi-bold);\n color: var(--text-primary);\n}\n\n.tcalc-dropdownDesc {\n color: var(--text-secondary);\n}\n\n/* ── Info rows (contract size, leverage, swap details...) ─────── */\n\n.tcalc-infoGrid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--spacing-4) var(--spacing-16);\n}\n\n@media (max-width: 380px) {\n .tcalc-infoGrid {\n grid-template-columns: 1fr;\n }\n}\n\n.tcalc-infoRow {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-xs-font-size);\n color: var(--text-secondary);\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.tcalc-infoLabel {\n color: var(--text-secondary);\n}\n\n.tcalc-infoValue {\n color: var(--text-primary);\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* ── Buttons ──────────────────────────────────────────────────── */\n/* \"Calculate\" and \"Reset\" are the shared `Button` component (see import in\n * TradingCalculator.tsx) — no custom button styling lives here, just the\n * layout for the pair of full-width buttons sitting side by side. */\n\n.tcalc-actions {\n display: flex;\n gap: var(--spacing-12);\n margin-top: var(--spacing-8);\n}\n\n.tcalc-actions > * {\n flex: 1 1 0;\n min-width: 0;\n}\n\n/* ── Results ──────────────────────────────────────────────────── */\n\n.tcalc-resultRow {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--spacing-16);\n}\n\n@media (max-width: 380px) {\n .tcalc-resultRow {\n grid-template-columns: 1fr;\n }\n}\n\n.tcalc-resultBox {\n background: var(--field-surface-outline);\n border: 1px solid var(--field-border-default);\n border-radius: var(--radius-md);\n box-shadow: var(--shadow-xs);\n padding: var(--spacing-12) var(--spacing-16);\n min-width: 0;\n}\n\n.tcalc-resultLabel {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-sm-font-size);\n color: var(--text-secondary);\n margin: 0 0 var(--spacing-4);\n}\n\n.tcalc-resultValue {\n font-family: var(--font-family-base);\n font-size: var(--font-size-lg);\n font-weight: var(--font-weight-extra-bold);\n color: var(--text-primary);\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.tchow-section {\n width: 100%;\n background-color: var(--color-slate-75);\n}\n\n.tchow-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-32);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .tchow-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .tchow-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Intro (title + description) ──────────────────────────────── */\n\n.tchow-intro {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-16);\n max-width: 720px;\n text-align: center;\n}\n\n.tchow-title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n.tchow-description {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-lg-font-size);\n line-height: var(--typography-body-lg-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n/* ── Swap \"In points\" / \"In percentage\" tabs ──────────────────── */\n/* Reuses the shared Tabs primitive (dark selected pill), matching the\n * reference page's segmented control look with no bespoke tab styling. */\n.tchow-tabs {\n justify-content: center;\n}\n\n/* ── Card, two columns ─────────────────────────────────────────── */\n\n.tchow-card {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-32);\n width: 100%;\n align-items: start;\n background: var(--color-slate-50);\n border-radius: var(--radius-2xl);\n box-shadow: var(--shadow-sm);\n padding: var(--spacing-24);\n box-sizing: border-box;\n}\n\n@media (min-width: 992px) {\n .tchow-card {\n grid-template-columns: 1fr 1fr;\n padding: var(--spacing-32);\n }\n}\n\n.tchow-column {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n min-width: 0;\n}\n\n.tchow-columnTitle {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n.tchow-text {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-md-font-size);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n.tchow-footnote {\n font-family: var(--font-family-base);\n font-style: italic;\n font-size: var(--typography-body-sm-font-size);\n line-height: var(--typography-body-sm-line-height);\n color: var(--text-secondary);\n margin: 0;\n}\n\n.tchow-bullets {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-4);\n margin: 0;\n padding: 0 0 0 var(--spacing-24);\n}\n\n.tchow-bulletItem {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-md-font-size);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n}\n\n.tchow-note {\n font-family: var(--font-family-base);\n font-style: italic;\n font-size: var(--typography-body-sm-font-size);\n line-height: var(--typography-body-sm-line-height);\n color: var(--text-secondary);\n margin: var(--spacing-8) 0 0;\n}\n\n/* ── Calculation strip ─────────────────────────────────────────── */\n/* `.tchow-stripWrap` is the layout box: always full column width, height\n * pinned once its content shrinks, and `overflow: hidden` as a hard\n * guarantee against any horizontal scrollbar ever appearing — even before\n * JS has measured anything on first paint.\n *\n * `.tchow-strip` is the visible grey pill: sized to its own natural content\n * (`display: inline-grid`, not stretched) so `CalculationStrip` can read an\n * accurate unscaled width/height off it, then uniformly scaled down (see\n * the component) so every side of its padding shrinks together and stays\n * visually equal, rather than the content reflowing or wrapping. */\n\n.tchow-stripWrap {\n width: 100%;\n overflow: hidden;\n}\n\n.tchow-strip {\n display: inline-grid;\n grid-auto-flow: column;\n grid-template-rows: auto auto;\n column-gap: var(--spacing-8);\n row-gap: var(--spacing-8);\n background: var(--color-slate-75);\n border-radius: var(--radius-md);\n padding: var(--spacing-16);\n box-sizing: border-box;\n transform-origin: left top;\n}\n\n.tchow-stripValue {\n /* `justify-self: center` (rather than the grid default `stretch`) keeps\n * this item sized to its own content instead of being forced to fill\n * whatever width the column ends up with. */\n justify-self: center;\n align-self: end;\n font-family: var(--font-family-base);\n font-size: var(--typography-body-sm-font-size);\n color: var(--text-secondary);\n white-space: nowrap;\n}\n\n.tchow-stripValue--labeled {\n font-weight: var(--font-weight-extra-bold);\n color: var(--text-primary);\n}\n\n.tchow-stripValueText {\n /* `min-width` lives on this *nested* element rather than directly on the\n * `.tchow-stripValue` grid item on purpose: Chrome's grid auto-column\n * sizing has a quirk where a `min-width` set directly on a grid item can\n * cap that column's track at exactly `min-width`, even when the item's\n * own text needs more room (it then silently overflows into neighboring\n * columns instead of the column growing). Putting `min-width` on an\n * ordinary (non-grid-item) inline-block child sidesteps that — the\n * column correctly sizes to whichever is larger. */\n display: inline-block;\n text-align: center;\n}\n\n.tchow-stripValueText--labeled {\n /* A floor, not a target: keeps a very short labeled value (e.g. \"1\")\n * from collapsing its column so tight that a long caption underneath\n * (e.g. \"Contract size\") has nowhere to go and collides with its\n * neighbors — see `.tchow-stripLabel`'s `width: 0`, which otherwise lets\n * captions stop influencing column width entirely. */\n min-width: 4rem;\n}\n\n.tchow-stripCaption {\n align-self: start;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-4);\n min-height: 1px;\n}\n\n.tchow-stripArrow {\n color: var(--color-slate-500);\n flex-shrink: 0;\n}\n\n.tchow-stripLabel {\n /* `width: 0` (with `overflow: visible`) keeps a long caption — e.g.\n * \"Contract size\" under a one-digit value like \"1\" — from widening its\n * grid column and pushing the *numbers* row apart with uneven gaps. It\n * just no longer contributes to how much horizontal space the column\n * reserves — the numbers/operators row spacing is driven only by the\n * numbers/operators themselves, so it stays evenly spaced regardless of\n * caption length.\n *\n * Centering the caption text under the arrow can't use `text-align:\n * center` here though: on a zero-width box with `overflow: visible`,\n * Chrome renders overflowing text starting from the box's edge rather\n * than centered on it. `.tchow-stripLabelText` is absolutely positioned\n * and shifted back by half its own width instead, which centers\n * correctly regardless of the box's (zero) width. */\n position: relative;\n width: 0;\n overflow: visible;\n font-family: var(--font-family-base);\n font-size: var(--typography-body-xs-font-size);\n color: var(--text-secondary);\n white-space: nowrap;\n}\n\n.tchow-stripLabelText {\n position: absolute;\n left: 0;\n transform: translateX(-50%);\n}\n\n.tchow-stripLabel--edge {\n /* The first and last columns have no neighboring column to spill their\n * overflow into — a long caption here (e.g. \"Required margin\" under a\n * short \"27.66\") would render past the strip's own left/right edge,\n * outside the grey background. So for edge columns only, fall back to\n * letting the caption size its column normally (undoing `width: 0`\n * above): the extra width just reads as a bit of natural end padding\n * instead of an uneven gap in the middle of the row. Normal flow\n * already centers it (via the flex parent), so undo the absolute\n * centering trick too. */\n width: auto;\n text-align: center;\n}\n\n.tchow-stripLabel--edge .tchow-stripLabelText {\n position: static;\n transform: none;\n}\n","/* ── Section shell ─────────────────────────────────────────── */\n\n.fo-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.fo-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-32);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .fo-container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .fo-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Title ─────────────────────────────────────────────────── */\n\n.fo-title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--text-primary);\n text-align: center;\n margin: 0;\n}\n\n/* ── Tabs row ──────────────────────────────────────────────── */\n\n.fo-tabsWrap {\n display: flex;\n justify-content: center;\n width: 100%;\n max-width: 100%;\n}\n\n.fo-tabsWrap .tabs-menu {\n justify-content: center;\n flex-wrap: wrap;\n overflow-x: visible;\n}\n\n/* ── Offices grid ──────────────────────────────────────────── */\n\n.fo-grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .fo-grid {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (min-width: 992px) {\n .fo-grid {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n/* ── Office card ───────────────────────────────────────────── */\n\n.fo-card {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n background-color: var(--color-slate-75);\n border-radius: var(--radius-2xl);\n padding: var(--spacing-24);\n box-sizing: border-box;\n height: 100%;\n}\n\n.fo-flag {\n display: block;\n width: 2rem;\n height: 1.5rem;\n object-fit: cover;\n border-radius: var(--radius-xs);\n box-shadow: 0 0 0 1px var(--color-opacity-slate-8);\n margin-bottom: var(--spacing-24);\n}\n\n.fo-cardTitle {\n font-family: var(--font-family-base);\n font-size: var(--font-size-lg);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--line-height-lg);\n color: var(--text-primary);\n margin: 0 0 var(--spacing-8) 0;\n}\n\n.fo-address {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--text-primary);\n margin: 0;\n}\n\n.fo-linkWrap {\n margin-top: var(--spacing-24);\n}\n","/* ============================================================\n TIERS TEMPLATE\n Token inheritance:\n Primitive (core) → Semantic (--tiers-*) → Component styles\n\n Layout mirrors https://deriv.com/partners \"Growing rewards as you scale\":\n Mobile (<768px): 1 column, white outer shell, name+status row,\n slate benefit panel, no connector lines\n Tablet (≥768px): 2 columns, stacked name/status, white benefit\n cards, no connector lines\n Desktop (≥992px): 4 columns, metallic connector lines through medals\n\n Semantic tokens:\n --tiers-bg var(--color-slate-75)\n --tiers-title-color var(--text-primary)\n --tiers-desc-color var(--text-secondary)\n --tiers-shell-bg var(--color-slate-50) [mobile]\n --tiers-name-color var(--text-primary)\n --tiers-status-color var(--text-secondary)\n --tiers-card-bg var(--color-slate-75) [mobile] /\n var(--color-slate-50) [≥768]\n --tiers-card-title-color var(--text-primary)\n --tiers-card-desc-color var(--text-secondary)\n --tiers-requirement-color var(--text-primary)\n --tiers-icon-size var(--spacing-48) [mobile] /\n var(--spacing-64) [≥768]\n --tiers-line-bronze var(--color-yellow-600)\n --tiers-line-silver var(--color-slate-200)\n --tiers-line-gold var(--color-yellow-500)\n --tiers-line-platinum var(--color-slate-300)\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n --tiers-bg: var(--color-slate-75);\n --tiers-title-color: var(--text-primary);\n --tiers-desc-color: var(--text-secondary);\n --tiers-shell-bg: var(--color-slate-50);\n --tiers-shell-radius: var(--radius-2xl);\n --tiers-name-color: var(--text-primary);\n --tiers-status-color: var(--text-secondary);\n --tiers-card-bg: var(--color-slate-75);\n --tiers-card-radius: var(--radius-xl);\n --tiers-card-title-color: var(--text-primary);\n --tiers-card-desc-color: var(--text-secondary);\n --tiers-requirement-color: var(--text-primary);\n --tiers-icon-size: var(--spacing-48);\n /* Connector accents — closest core primitives to the medal metals\n on deriv.com/partners (bronze / silver / gold / platinum). */\n --tiers-line-bronze: var(--color-yellow-600);\n --tiers-line-silver: var(--color-slate-200);\n --tiers-line-gold: var(--color-yellow-500);\n --tiers-line-platinum: var(--color-slate-300);\n --tiers-line-fade: var(--tiers-bg);\n}\n\n/* ── SECTION SHELL ────────────────────────────────────────── */\n\n.tiers {\n width: 100%;\n background-color: var(--tiers-bg);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.tiers__container {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: var(--spacing-32);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .tiers__container {\n align-items: center;\n gap: var(--spacing-48);\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .tiers__container {\n gap: var(--spacing-64);\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── HEADER ───────────────────────────────────────────────── */\n\n.tiers__header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n text-align: left;\n max-width: 48rem;\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .tiers__header {\n align-items: center;\n text-align: center;\n }\n}\n\n.tiers__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--tiers-title-color);\n margin: 0;\n}\n\n.tiers__description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--tiers-desc-color);\n margin: 0;\n}\n\n/* ── TIER LIST ────────────────────────────────────────────── */\n\n.tiers__list {\n list-style: none;\n margin: 0;\n padding: 0;\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .tiers__list {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-32);\n }\n}\n\n@media (min-width: 992px) {\n .tiers__list {\n grid-template-columns: repeat(4, 1fr);\n gap: var(--spacing-24);\n }\n}\n\n/* ── TIER ITEM ────────────────────────────────────────────── */\n\n.tiers__item {\n display: flex;\n flex-direction: column;\n min-width: 0;\n height: 100%;\n}\n\n/* Outer shell — white card on mobile; transparent on ≥768 so only\n the benefit panel reads as a card (matching the reference page). */\n.tiers__shell {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n width: 100%;\n height: 100%;\n padding: var(--spacing-24);\n background-color: var(--tiers-shell-bg);\n border-radius: var(--tiers-shell-radius);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .tiers__shell {\n align-items: center;\n gap: var(--spacing-24);\n padding: 0 0 var(--spacing-32) 0;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n/* ── ICON + CONNECTOR ROW ─────────────────────────────────── */\n\n.tiers__icon-row {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n width: auto;\n flex-shrink: 0;\n}\n\n@media (min-width: 768px) {\n .tiers__icon-row {\n justify-content: center;\n width: 100%;\n }\n}\n\n@media (min-width: 992px) {\n /* Bridges the grid's column gap so each tier's connector line still\n reads as one continuous track across the row, even though the\n cards below now have real breathing room between them. */\n .tiers__icon-row {\n width: calc(100% + var(--spacing-24));\n margin-left: calc(var(--spacing-24) / -2);\n margin-right: calc(var(--spacing-24) / -2);\n }\n}\n\n.tiers__icon-wrap {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--tiers-icon-size);\n height: var(--tiers-icon-size);\n flex-shrink: 0;\n position: relative;\n z-index: 1;\n}\n\n@media (min-width: 768px) {\n .tiers__icon-wrap {\n --tiers-icon-size: var(--spacing-64);\n width: var(--tiers-icon-size);\n height: var(--tiers-icon-size);\n /* Masks the connector behind the medal */\n background-color: var(--tiers-bg);\n border-radius: var(--radius-full);\n }\n}\n\n.tiers__icon {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n/* Connector lines — desktop only. Hidden below 992px to match the\n reference (tier-line { display:none } at max-width:991px). */\n.tiers__line {\n display: none;\n flex: 1 1 0;\n height: 2px;\n min-width: 0;\n pointer-events: none;\n}\n\n@media (min-width: 992px) {\n .tiers__line {\n display: block;\n }\n}\n\n/* Per-accent gradients — left segment leads into the medal, right\n segment leads out. First tier's left fades from section bg; last\n tier's right fades back to section bg. */\n.tiers__item--bronze .tiers__line--left {\n background-image: linear-gradient(\n 270deg,\n var(--tiers-line-bronze),\n var(--tiers-line-fade)\n );\n}\n\n.tiers__item--bronze .tiers__line--right {\n background-color: var(--tiers-line-bronze);\n}\n\n.tiers__item--silver .tiers__line--left {\n background-image: linear-gradient(\n 90deg,\n var(--tiers-line-bronze),\n var(--tiers-line-silver) 39%\n );\n}\n\n.tiers__item--silver .tiers__line--right {\n background-color: var(--tiers-line-silver);\n}\n\n.tiers__item--gold .tiers__line--left {\n background-image: linear-gradient(\n 90deg,\n var(--tiers-line-silver),\n var(--tiers-line-gold)\n );\n}\n\n.tiers__item--gold .tiers__line--right {\n background-color: var(--tiers-line-gold);\n}\n\n.tiers__item--platinum .tiers__line--left {\n background-image: linear-gradient(\n 90deg,\n var(--tiers-line-gold),\n var(--tiers-line-platinum) 39%\n );\n}\n\n.tiers__item--platinum .tiers__line--right {\n background-image: linear-gradient(\n 90deg,\n var(--tiers-line-platinum),\n var(--tiers-line-fade)\n );\n}\n\n/* ── NAME + STATUS ────────────────────────────────────────── */\n\n.tiers__heading {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--spacing-8);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .tiers__heading {\n flex-direction: column;\n align-items: center;\n text-align: center;\n gap: var(--spacing-4);\n }\n}\n\n.tiers__name {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--tiers-name-color);\n margin: 0;\n}\n\n.tiers__status {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--tiers-status-color);\n margin: 0;\n}\n\n/* ── BENEFIT CARD ─────────────────────────────────────────── */\n\n.tiers__card {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-8);\n width: 100%;\n min-height: 0;\n padding: var(--spacing-24);\n background-color: var(--tiers-card-bg);\n border-radius: var(--tiers-card-radius);\n box-sizing: border-box;\n text-align: left;\n flex: 1 1 auto;\n}\n\n@media (min-width: 768px) {\n .tiers__card {\n --tiers-card-bg: var(--color-slate-50);\n align-items: center;\n text-align: center;\n min-height: 11.5rem; /* ~184px — matches reference equal-height cards */\n gap: var(--spacing-16);\n }\n}\n\n/* One step below h6's size (fixed body-lg, not the h6 token's responsive\n 1rem→1.5rem scale) while keeping the same extra-bold weight as headings. */\n.tiers__card-title {\n font-family: var(--typography-body-lg-font-family);\n font-size: var(--typography-body-lg-font-size);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--typography-body-lg-line-height);\n color: var(--tiers-card-title-color);\n margin: 0;\n width: 100%;\n}\n\n.tiers__card-description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--tiers-card-desc-color);\n margin: 0;\n width: 100%;\n}\n\n.tiers__card-description strong {\n font-weight: var(--font-weight-semi-bold);\n color: var(--tiers-card-title-color);\n}\n\n/* ── REQUIREMENT ──────────────────────────────────────────── */\n\n.tiers__requirement {\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n color: var(--tiers-requirement-color);\n margin: 0;\n width: 100%;\n text-align: left;\n white-space: pre-line;\n}\n\n@media (min-width: 768px) {\n .tiers__requirement {\n text-align: center;\n padding: 0 var(--spacing-16);\n }\n}\n\n/* ── FOOTER LINK ──────────────────────────────────────────── */\n\n.tiers__footer {\n display: flex;\n justify-content: flex-start;\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .tiers__footer {\n justify-content: center;\n }\n}\n","/* ============================================================\n PARTNERS PAYOUT TEMPLATE\n Modeled after deriv.com/partners \"Top partner payouts\".\n\n Mobile (<768px): left-aligned heading and a one-column metric list.\n Desktop (≥768px): centred heading and a compact two-column grid.\n Section padding follows the global mobile/tablet/desktop spec.\n ============================================================ */\n\n:root {\n --partners-payout-bg: var(--color-slate-1200);\n --partners-payout-text: var(--color-slate-50);\n --partners-payout-border: var(--color-opacity-white-16);\n --partners-payout-card-radius: var(--radius-xl);\n}\n\n.partners-payout {\n width: 100%;\n background-color: var(--partners-payout-bg);\n color: var(--partners-payout-text);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n}\n\n.partners-payout__container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-32);\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n box-sizing: border-box;\n overflow: hidden;\n}\n\n.partners-payout__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n.partners-payout__header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-8);\n width: 100%;\n text-align: left;\n}\n\n.partners-payout__title {\n margin: 0;\n color: var(--partners-payout-text);\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n}\n\n.partners-payout__period,\n.partners-payout__region,\n.partners-payout__amount {\n margin: 0;\n color: var(--partners-payout-text);\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n}\n\n.partners-payout__grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-8);\n width: 100%;\n margin: 0;\n padding: var(--spacing-24) 0 0;\n list-style: none;\n box-sizing: border-box;\n}\n\n.partners-payout__item {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-16);\n padding: var(--spacing-16);\n border: 1px solid var(--partners-payout-border);\n border-radius: var(--partners-payout-card-radius);\n box-sizing: border-box;\n}\n\n/* Region and amount always share a single line, so neither may wrap or\n shrink below its text width. */\n.partners-payout__region,\n.partners-payout__amount {\n flex-shrink: 0;\n white-space: nowrap;\n}\n\n.partners-payout__image {\n display: block;\n width: 100%;\n max-width: 80%;\n height: auto;\n object-fit: contain;\n}\n\n@media (min-width: 768px) {\n .partners-payout__container {\n gap: var(--spacing-48);\n padding: var(--spacing-56) var(--spacing-24);\n }\n\n .partners-payout__content {\n align-items: center;\n gap: var(--spacing-48);\n }\n\n .partners-payout__header {\n align-items: center;\n text-align: center;\n }\n\n /* Sized to its own content rather than a fixed cap: equal columns wide\n enough for the longest region/amount pair to stay on one line. */\n .partners-payout__grid {\n grid-template-columns: repeat(2, 1fr);\n width: fit-content;\n max-width: 100%;\n padding-top: 0;\n }\n\n .partners-payout__item {\n padding: var(--spacing-16) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .partners-payout__container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n","/* ============================================================\n MASTER PARTNER TEMPLATE\n Token inheritance:\n Primitive (core) → Semantic (--master-partner-*) → Component styles\n\n Layout mirrors https://deriv.com/partners \"Master Partner programme\":\n Row 1 (content + image): single column below 992px (content, then\n image); two even columns at ≥992px.\n Row 2 (steps): full-width row underneath both columns — 1 column\n mobile, 2 columns tablet, 4 columns desktop.\n The CTA button is intentionally placed after the copy and before the\n steps row, and is desktop-only (hidden below 992px).\n\n Semantic tokens:\n --master-partner-bg var(--color-slate-50)\n --master-partner-title-color var(--text-primary)\n --master-partner-text-color var(--text-primary)\n --master-partner-step-desc-color var(--text-primary)\n --master-partner-image-radius var(--radius-2xl)\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n --master-partner-bg: var(--color-slate-50);\n --master-partner-title-color: var(--text-primary);\n --master-partner-text-color: var(--text-primary);\n --master-partner-step-desc-color: var(--text-primary);\n --master-partner-image-radius: var(--radius-2xl);\n}\n\n/* ── SECTION SHELL ────────────────────────────────────────── */\n\n.master-partner {\n width: 100%;\n background-color: var(--master-partner-bg);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.master-partner__container {\n max-width: var(--content-width-1280);\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-40);\n box-sizing: border-box;\n}\n\n@media (min-width: 768px) {\n .master-partner__container {\n padding: var(--spacing-56) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .master-partner__container {\n gap: var(--spacing-64);\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── ROW 1: CONTENT + IMAGE ───────────────────────────────── */\n\n.master-partner__top {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-32);\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .master-partner__top {\n flex-direction: row;\n align-items: center;\n gap: var(--spacing-64);\n }\n}\n\n/* ── CONTENT COLUMN ───────────────────────────────────────── */\n\n.master-partner__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .master-partner__content {\n flex: 1 1 0;\n width: auto;\n }\n}\n\n.master-partner__title {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--master-partner-title-color);\n margin: 0;\n}\n\n.master-partner__copy {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n.master-partner__paragraph {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--master-partner-text-color);\n margin: 0;\n}\n\n.master-partner__paragraph strong {\n font-weight: var(--font-weight-extra-bold);\n}\n\n/* CTA sits right after the copy and before the steps row. Desktop only —\n hidden on mobile and tablet per the reference layout. */\n.master-partner__cta {\n display: none;\n width: 100%;\n}\n\n@media (min-width: 992px) {\n .master-partner__cta {\n display: block;\n }\n}\n\n/* ── IMAGE COLUMN ─────────────────────────────────────────── */\n\n.master-partner__image-wrapper {\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: var(--master-partner-image-radius);\n overflow: hidden;\n flex-shrink: 0;\n}\n\n@media (min-width: 992px) {\n .master-partner__image-wrapper {\n flex: 1 1 0;\n width: auto;\n }\n}\n\n.master-partner__image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n}\n\n/* ── ROW 2: STEPS ─────────────────────────────────────────── */\n\n.master-partner__steps {\n list-style: none;\n margin: 0;\n padding: 0;\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-32);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .master-partner__steps {\n grid-template-columns: repeat(2, 1fr);\n gap: var(--spacing-32) var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n .master-partner__steps {\n grid-template-columns: repeat(4, 1fr);\n gap: var(--spacing-24);\n }\n}\n\n.master-partner__step {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-12);\n min-width: 0;\n}\n\n.master-partner__step-icon {\n display: block;\n width: var(--spacing-32);\n height: var(--spacing-32);\n flex-shrink: 0;\n}\n\n.master-partner__step-description {\n font-family: var(--font-family-base);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--master-partner-step-desc-color);\n margin: 0;\n}\n","/* ============================================================\n RESOURCE BANNER\n Rounded dark card with a heading + paragraph on the left and a\n vertically-stacked list of resource links on the right.\n Reproduces `.section_fraud_resources` on deriv.com/fraud-prevention\n (live classes: .download_component.is-dark >\n .download_content_wrapper.is-grid > .download_left-block.is-text\n + .download_right-block.is-flex-vertical).\n\n Token inheritance (Rule 5):\n Core (--color-*, --spacing-*, --typography-*) →\n Semantic (--rsb-*) →\n Styles\n\n NOTE — deliberate deviations from the live CSS:\n - Left-block gap is 32px (--spacing-32); the live value is 34px,\n which has no token. Nearest step, 2px difference.\n - Container max-width is 1280px per the global padding spec\n (Rule 4); the live `.section-container` is 1248px.\n Every other value below is 1:1 with the live compiled CSS.\n ============================================================ */\n\n/* ── COMPONENT TOKENS ─────────────────────────────────────── */\n:root {\n /* Card surface — live `--background--slate--layer-14` */\n --rsb-card-bg: var(--color-slate-1200);\n\n /* Section surface behind the card — live `--background--slate--layer-2` */\n --rsb-section-bg: var(--color-slate-75);\n\n --rsb-title-color: var(--color-slate-50);\n --rsb-body-color: var(--color-slate-50);\n\n --rsb-max-width: 1280px;\n --rsb-card-radius: var(--radius-2xl);\n /* 24px */\n\n /* Outer section padding — global template padding spec (Rule 4) */\n --rsb-section-padding-block: var(--spacing-56);\n --rsb-section-padding-inline: var(--spacing-16);\n\n /* Card padding — live: 24px < 480px, 48px above */\n --rsb-card-padding: var(--spacing-24);\n\n /* Grid gap — live: 24px mobile, 32px tablet, 80px desktop */\n --rsb-grid-gap: var(--spacing-24);\n\n /* Left column gap — live: 16px mobile, 24px tablet, 34px desktop */\n --rsb-content-gap: var(--spacing-16);\n\n /* Link stack gap — live 16px at every breakpoint */\n --rsb-links-gap: var(--spacing-16);\n}\n\n/* ── SECTION SHELL ────────────────────────────────────────── */\n\n.rsb {\n display: block;\n width: 100%;\n background-color: var(--rsb-section-bg);\n}\n\n.rsb__inner {\n max-width: var(--rsb-max-width);\n margin: 0 auto;\n padding: var(--rsb-section-padding-block) var(--rsb-section-padding-inline);\n box-sizing: border-box;\n}\n\n/* ── CARD ─────────────────────────────────────────────────── */\n\n.rsb__card {\n border-radius: var(--rsb-card-radius);\n padding: var(--rsb-card-padding);\n background-color: var(--rsb-card-bg);\n box-sizing: border-box;\n}\n\n/* ── GRID ─────────────────────────────────────────────────────\n Live: single column < 768px, `1fr 1fr` 768–991px, `2fr 1fr`\n at 992px and up. */\n\n.rsb__grid {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--rsb-grid-gap);\n align-items: center;\n}\n\n/* ── LEFT: COPY ───────────────────────────────────────────── */\n\n.rsb__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n gap: var(--rsb-content-gap);\n}\n\n.rsb__title {\n margin: 0;\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n letter-spacing: var(--typography-h2-letter-spacing);\n color: var(--rsb-title-color);\n}\n\n/* body-md (16px) — matches the live paragraph, which is 16px at every\n breakpoint. body-lg would render 18px. */\n.rsb__description {\n margin: 0;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--rsb-body-color);\n}\n\n/* ── RIGHT: LINK STACK ────────────────────────────────────────\n Always a vertical stack (live `.is-flex-vertical`), so any\n number of links reads as a list rather than a wrapping row. */\n\n.rsb__links {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: var(--rsb-links-gap);\n /* Live: flex-start < 768px, centered above */\n align-items: flex-start;\n justify-content: flex-start;\n}\n\n.rsb__links-item {\n display: flex;\n max-width: 100%;\n}\n\n/* `Link` sets `white-space: nowrap`, which would overflow the narrow\n mobile column on a long resource title. Allow wrapping here and keep\n the trailing icon on the last line rather than letting it shrink. */\n.rsb__link {\n white-space: normal;\n align-items: flex-start;\n text-align: left;\n}\n\n/* ── MOBILE ≥ 480px ───────────────────────────────────────────\n Live drops card padding to 24px below 480px; the base block\n above encodes that, and this restores the 48px used from here up. */\n\n@media (min-width: 480px) {\n :root {\n --rsb-card-padding: var(--spacing-48);\n }\n}\n\n/* ── TABLET ≥ 768px ───────────────────────────────────────── */\n\n@media (min-width: 768px) {\n :root {\n --rsb-section-padding-inline: var(--spacing-24);\n --rsb-grid-gap: var(--spacing-32);\n --rsb-content-gap: var(--spacing-24);\n }\n\n .rsb__grid {\n grid-template-columns: 1fr 1fr;\n }\n\n .rsb__links {\n align-items: center;\n justify-content: center;\n }\n}\n\n/* ── DESKTOP ≥ 992px ──────────────────────────────────────── */\n\n@media (min-width: 992px) {\n :root {\n --rsb-section-padding-block: var(--spacing-112);\n --rsb-grid-gap: var(--spacing-80);\n --rsb-content-gap: var(--spacing-32);\n }\n\n .rsb__grid {\n grid-template-columns: 2fr 1fr;\n }\n}\n",":root {\n --ot-section-bg: var(--color-slate-75);\n --ot-card-bg: var(--color-slate-75);\n --ot-text: var(--text-primary);\n --ot-muted-text: var(--text-secondary);\n --ot-control-bg: var(--color-slate-50);\n --ot-control-color: var(--color-slate-1200);\n --ot-platform-bg: var(--color-coral-700);\n --ot-platform-color: var(--color-slate-50);\n --ot-focus: var(--border-focus);\n --ot-card-radius: var(--radius-2xl);\n /* Reference artwork is 1312x854. Matching that ratio lets the animation\n fill the card edge to edge instead of sitting in a letterbox. */\n --ot-card-aspect: 1312 / 854;\n /* Tints the paused artwork so the play control reads against it. */\n --ot-scrim: rgb(0 0 0 / 10%);\n}\n\n.ot {\n --ot-stack-gap: var(--spacing-24);\n width: 100%;\n background: var(--ot-section-bg);\n color: var(--ot-text);\n}\n\n.ot__inner {\n box-sizing: border-box;\n display: flex;\n width: 100%;\n max-width: var(--content-width-1280);\n flex-direction: column;\n margin: 0 auto;\n padding: var(--spacing-56) var(--spacing-16);\n gap: var(--ot-stack-gap);\n}\n\n.ot__header {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--ot-stack-gap);\n text-align: center;\n}\n\n.ot__heading {\n max-width: var(--content-width-846);\n margin: 0;\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--ot-text);\n}\n\n.ot__tabs {\n justify-content: center;\n}\n\n.ot__panels > [role=\"tabpanel\"]:focus-visible {\n outline: 2px solid var(--ot-focus);\n outline-offset: var(--spacing-4);\n}\n\n.ot__option {\n display: flex;\n min-width: 0;\n flex-direction: column;\n gap: var(--ot-stack-gap);\n}\n\n.ot__description {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n color: var(--ot-text);\n}\n\n.ot__description h3 {\n margin: 0;\n font-family: var(--typography-h4-font-family);\n font-size: var(--typography-h4-font-size);\n font-weight: var(--typography-h4-font-weight);\n line-height: var(--typography-h4-line-height);\n}\n\n.ot__description p {\n margin: 0;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n}\n\n.ot__option--stacked .ot__description {\n max-width: var(--content-width-846);\n margin-inline: auto;\n text-align: center;\n}\n\n/*\n * Until the split kicks in, the side column is not a column at all: it hands its\n * children back to the option so copy, media, and availability stack in that\n * order, matching how the reference page swaps in a mobile-only description.\n */\n.ot__option--split .ot__option-side {\n display: contents;\n}\n\n.ot__option--split .ot__description {\n order: 1;\n}\n\n.ot__option--split .ot__animations {\n order: 2;\n}\n\n.ot__option--split .ot__metadata {\n order: 3;\n}\n\n.ot__animations {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-24);\n min-width: 0;\n}\n\n.ot__animation-card {\n position: relative;\n isolation: isolate;\n min-width: 0;\n aspect-ratio: var(--ot-card-aspect);\n overflow: hidden;\n border-radius: var(--ot-card-radius);\n background: var(--ot-card-bg);\n}\n\n/* The animation fills the card: its artwork supplies the background, the\n outcome label, and the graphic, exactly as on the reference page. */\n.ot__animation-media {\n position: absolute;\n z-index: 1;\n inset: 0;\n}\n\n.ot__animation-media canvas {\n width: 100%;\n height: 100%;\n}\n\n.ot__animation-media img,\n.ot__animation-poster {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n/* Covers the paused animation until the visitor presses play. */\n.ot__animation-poster {\n position: absolute;\n z-index: 2;\n inset: 0;\n}\n\n/* Spans the card so a press anywhere toggles playback, and tints the paused\n artwork behind the play disc. */\n.ot__playback-toggle {\n position: absolute;\n z-index: 3;\n display: grid;\n inset: 0;\n padding: 0;\n place-items: center;\n border: 0;\n background: var(--ot-scrim);\n cursor: pointer;\n}\n\n.ot__playback-toggle--playing {\n background: transparent;\n}\n\n.ot__playback-toggle:focus-visible {\n outline: 2px solid var(--ot-focus);\n outline-offset: -4px;\n}\n\n.ot__control-icon {\n width: 64px;\n height: 64px;\n transition: opacity 150ms ease;\n}\n\n/* While playing, the artwork is the point, so the pause disc only appears on\n hover or keyboard focus. */\n.ot__playback-toggle--playing .ot__control-icon {\n opacity: 0;\n}\n\n.ot__playback-toggle--playing:hover .ot__control-icon,\n.ot__playback-toggle--playing:focus-visible .ot__control-icon {\n opacity: 1;\n}\n\n.ot__control-disc {\n fill: var(--ot-control-bg);\n fill-opacity: 0.88;\n}\n\n.ot__control-glyph {\n fill: var(--ot-control-color);\n}\n\n.ot__metadata {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--spacing-24);\n}\n\n.ot__meta-group {\n display: flex;\n min-width: 0;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.ot__meta-group h4 {\n margin: 0;\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n}\n\n.ot__meta-list {\n display: flex;\n flex-wrap: wrap;\n gap: var(--spacing-16);\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.ot__meta-list li > span,\n.ot__meta-list a {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n color: var(--ot-text);\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n text-decoration: none;\n}\n\n.ot__meta-list a:hover {\n text-decoration: underline;\n}\n\n.ot__meta-list a:focus-visible {\n border-radius: var(--radius-sm);\n outline: 2px solid var(--ot-focus);\n outline-offset: 2px;\n}\n\n.ot__meta-icon,\n.ot__meta-image {\n width: 24px;\n height: 24px;\n flex: 0 0 auto;\n}\n\n.ot__platform-icon {\n display: inline-grid;\n width: 24px;\n height: 24px;\n flex: 0 0 auto;\n place-items: center;\n border-radius: var(--radius-sm);\n background: var(--ot-platform-bg);\n color: var(--ot-platform-color);\n font-size: 9px;\n font-weight: var(--font-weight-bold);\n line-height: 1;\n}\n\n.ot__disclaimer {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-8);\n margin: 0;\n color: var(--ot-muted-text);\n font-family: var(--typography-body-xs-font-family);\n font-size: var(--typography-body-xs-font-size);\n font-weight: var(--typography-body-xs-font-weight);\n line-height: var(--typography-body-xs-line-height);\n text-align: center;\n}\n\n.ot__disclaimer-icon {\n width: 16px;\n height: 16px;\n flex: 0 0 auto;\n}\n\n@media (min-width: 480px) {\n .ot {\n --ot-stack-gap: var(--spacing-32);\n }\n\n .ot__metadata {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: var(--spacing-24) var(--spacing-48);\n }\n}\n\n@media (min-width: 768px) {\n .ot__inner {\n padding: var(--spacing-56) var(--spacing-24);\n }\n\n .ot__animations--2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: var(--spacing-16);\n }\n}\n\n@media (min-width: 992px) {\n .ot {\n --ot-stack-gap: var(--spacing-48);\n }\n\n .ot__inner {\n padding: var(--spacing-112) var(--spacing-24);\n }\n\n .ot__option--split {\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n gap: var(--spacing-72);\n }\n\n /*\n * Once the side column is a real flex item again the mobile stacking order\n * would push the media past it, so hand the row back to document order:\n * media first, copy and availability second.\n */\n .ot__option--split .ot__description,\n .ot__option--split .ot__animations,\n .ot__option--split .ot__metadata {\n order: 0;\n }\n\n .ot__option--split .ot__animations {\n width: 100%;\n max-width: 504px;\n }\n\n .ot__option--split .ot__option-side {\n display: flex;\n flex: 1;\n min-width: 0;\n flex-direction: column;\n align-items: flex-start;\n /* Centred against the card rather than pinned to its top edge. */\n justify-content: center;\n gap: var(--spacing-24);\n }\n\n /* The side column is too narrow for two lists, so they stack instead. */\n .ot__option--split .ot__metadata {\n width: 100%;\n grid-template-columns: 1fr;\n gap: var(--spacing-48);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ot__control-icon {\n transition: none;\n }\n}\n","/* ============================================================\n ENTITY INFO SECTION\n Legal-entity block: name, registration paragraph, an optional\n list of regulated activities, and coral arrow links to the\n entity's regulatory documents.\n\n Reproduces `.section_regulatory-licences > .features_content-wrapper`\n on deriv.com/eu/regulatory. `Deriv (FX) Ltd` is the reference for\n the link variant; `Deriv Capital Contracts & Currencies L.L.C` is\n the reference for the bulleted variant.\n\n Token inheritance (Rule 5):\n Core (--color-*, --spacing-*, --typography-*) →\n Semantic (--eis-*) →\n Styles\n\n NOTE — deliberate deviations from the live CSS:\n - Container max-width is 1280px per the global padding spec\n (Rule 4); the live `.section-container` is 1248px. Consistent\n with ResourceBanner.\n - Vertical padding is bottom-only. These blocks stack directly on\n top of each other down the page, so Rule 4's symmetric padding\n would double the gap between entities. Live does the same:\n padding-top 0, padding-bottom 112px desktop / 56px mobile —\n which matches Rule 4's block values on the side that is used.\n - Heading letter-spacing is -0.02rem to match live; the h4 token\n chain specifies `normal`.\n Every other value below is 1:1 with the live computed CSS.\n ============================================================ */\n\n/* ── COMPONENT TOKENS ─────────────────────────────────────── */\n:root {\n --eis-text-color: var(--text-primary);\n --eis-link-color: var(--color-coral-700);\n\n --eis-max-width: 1280px;\n\n /* Outer padding — global template padding spec (Rule 4), bottom only */\n --eis-padding-block-end: var(--spacing-56);\n --eis-padding-inline: var(--spacing-16);\n\n /* Gap between name / paragraph / list / links — live 24px throughout */\n --eis-content-gap: var(--spacing-24);\n\n /* Live: 16px between links on mobile, 24px from 768px up */\n --eis-links-gap: var(--spacing-16);\n\n /* Live heading letter-spacing; the h4 token chain is `normal` */\n --eis-name-tracking: -0.02rem;\n}\n\n/* ── SECTION SHELL ────────────────────────────────────────── */\n\n.eis {\n display: block;\n width: 100%;\n}\n\n.eis__inner {\n max-width: var(--eis-max-width);\n margin: 0 auto;\n padding: 0 var(--eis-padding-inline) var(--eis-padding-block-end);\n box-sizing: border-box;\n}\n\n/* ── CONTENT ──────────────────────────────────────────────── */\n\n.eis__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--eis-content-gap);\n}\n\n.eis__name {\n margin: 0;\n font-family: var(--typography-h4-font-family);\n font-size: var(--typography-h4-font-size);\n font-weight: var(--typography-h4-font-weight);\n line-height: var(--typography-h4-line-height);\n letter-spacing: var(--eis-name-tracking);\n color: var(--eis-text-color);\n}\n\n/* body-md (16px/24px) — matches the live paragraph at every breakpoint */\n.eis__description {\n margin: 0;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--eis-text-color);\n}\n\n/* ── BULLETS ──────────────────────────────────────────────────\n The regulated-activities list. Live renders this as a rich-text\n <ul> with default disc markers. */\n\n.eis__bullets {\n margin: 0;\n padding-inline-start: var(--spacing-24);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n}\n\n.eis__bullets-item {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--eis-text-color);\n}\n\n/* ── LINKS ────────────────────────────────────────────────────\n Live lays these out in a row (`.link-wrapper`, flex row), unlike\n ResourceBanner's vertical stack. Wraps so several documents do not\n overflow a narrow column. */\n\n.eis__links {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--eis-links-gap);\n}\n\n.eis__links-item {\n display: flex;\n max-width: 100%;\n}\n\n/* `Link` sets `white-space: nowrap`, which would overflow a narrow\n column on a long document label. Allow wrapping and keep the arrow\n from shrinking. */\n.eis__link {\n white-space: normal;\n align-items: flex-start;\n text-align: left;\n}\n\n/* ── TABLET ≥ 768px ───────────────────────────────────────── */\n\n@media (min-width: 768px) {\n :root {\n --eis-padding-inline: var(--spacing-24);\n --eis-links-gap: var(--spacing-24);\n }\n}\n\n/* ── DESKTOP ≥ 992px ──────────────────────────────────────── */\n\n@media (min-width: 992px) {\n :root {\n --eis-padding-block-end: var(--spacing-112);\n }\n}\n","/* ============================================================\n COUNTRY LINK GRID\n Section heading and intro paragraph beside a grid of country\n entries, each a flag icon plus a country name linking to that\n country's document.\n\n Reproduces `.invesments-logos-component` on deriv.com/eu/regulatory\n (the misspelling is genuinely how the live class is written).\n `Deriv Investments (Europe) Limited` — the EU passporting list — is\n the reference instance.\n\n Token inheritance (Rule 5):\n Core (--color-*, --spacing-*, --typography-*) →\n Semantic (--clg-*) →\n Styles\n\n NOTE — deliberate deviations from the live CSS:\n - Container max-width is 1280px per the global padding spec\n (Rule 4); the live `.section-container` is 1248px. Consistent\n with EntityInfoSection and ResourceBanner.\n - Live puts `padding-inline: 24px` on `.investments-list` only\n between 480px and 991px, which indents the grid relative to the\n heading it sits under. That is a Webflow artefact, not a design\n intent, so it is dropped — heading and grid stay flush.\n - Live has no hover, focus, or transition state on the item at\n all. A `:hover` opacity shift and a `:focus-visible` ring are\n added — these are 30+ links in a grid and must be operable from\n the keyboard.\n - The grid item is a semantic <ul>/<li>; live uses a\n `role=\"list\"` div with the `investments-item` class applied to\n both the wrapper div and the inner anchor.\n - Heading letter-spacing is -0.02rem to match live; the h4 token\n chain specifies `normal`.\n - Live breaks the grid at 480 / 768 / 992. The system's own\n breakpoints are 768 / 992, so a 560px query is added rather than\n losing the mid-width 3-column layout (560, not live's 480 — see below).\n - Column count above 992px departs from live. Live holds 4 columns\n even after the grid drops into the half-width right-hand column,\n which leaves a ~90px track — 36px of it flag — and wraps even a\n short label onto three lines. Measured at 28 entries: every row\n was 72px tall at 992px. This template steps down to 2 columns at\n 992px and back up to 3 at 1200px, so a label fits on one line at\n the count this block is built for.\n Every other value below is 1:1 with the live computed CSS.\n ============================================================ */\n\n/* ── COMPONENT TOKENS ─────────────────────────────────────── */\n:root {\n --clg-text-color: var(--text-primary);\n\n --clg-max-width: 1280px;\n\n /* Outer padding — global template padding spec (Rule 4).\n Live matches: 56px block below 992px, 112px at 992px and up. */\n --clg-padding-block: var(--spacing-56);\n --clg-padding-inline: var(--spacing-16);\n\n /* Gap between the header column and the grid column.\n Live: 48px stacked, 80px in the two-column desktop layout. */\n --clg-layout-gap: var(--spacing-48);\n\n /* Header column is stacked below 992px, side-by-side above */\n --clg-layout-columns: 1fr;\n\n /* Gap between heading and paragraph — live 16px */\n --clg-header-gap: var(--spacing-16);\n\n /* Grid columns. Live runs 2 / 3 / 4 up to 992px and this matches it\n there. From 992px the grid moves into the right-hand column of the\n two-column layout and loses roughly half its width, so it steps\n back DOWN to 2 and recovers to 3 on a wide viewport. Live keeps 4\n throughout, which leaves ~46px of text space per cell at 992px and\n wraps even short labels onto three lines. See the CSS header. */\n --clg-grid-columns: 2;\n --clg-grid-gap: var(--spacing-24);\n\n /* Gap between flag and country name — live 8px */\n --clg-item-gap: var(--spacing-8);\n\n /* Flag is a remote CDN SVG with an intrinsic 36x24 box. Live applies\n no sizing at all, so it renders at its intrinsic size; pinned here\n so a differently sized consumer asset cannot break the row rhythm. */\n --clg-flag-width: 36px;\n --clg-flag-height: 24px;\n\n --clg-item-hover-opacity: 0.72;\n --clg-focus-ring-color: var(--color-coral-700);\n --clg-focus-ring-radius: var(--radius-xs);\n\n /* Live heading letter-spacing; the h4 token chain is `normal` */\n --clg-title-tracking: -0.02rem;\n}\n\n/* ── SECTION SHELL ────────────────────────────────────────── */\n\n.clg {\n display: block;\n width: 100%;\n}\n\n.clg__inner {\n max-width: var(--clg-max-width);\n margin: 0 auto;\n padding: var(--clg-padding-block) var(--clg-padding-inline);\n box-sizing: border-box;\n}\n\n/* ── LAYOUT ───────────────────────────────────────────────────\n Live is a CSS grid: one column below 992px (header above the\n grid), two equal columns at 992px and up (header left, grid\n right). */\n\n.clg__layout {\n display: grid;\n grid-template-columns: var(--clg-layout-columns);\n align-items: start;\n gap: var(--clg-layout-gap);\n}\n\n/* ── HEADER ───────────────────────────────────────────────── */\n\n.clg__header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n text-align: left;\n gap: var(--clg-header-gap);\n}\n\n.clg__title {\n margin: 0;\n font-family: var(--typography-h4-font-family);\n font-size: var(--typography-h4-font-size);\n font-weight: var(--typography-h4-font-weight);\n line-height: var(--typography-h4-line-height);\n letter-spacing: var(--clg-title-tracking);\n color: var(--clg-text-color);\n}\n\n/* body-md (16px/24px) — matches the live paragraph at every breakpoint */\n.clg__description {\n margin: 0;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--clg-text-color);\n}\n\n/* ── GRID ─────────────────────────────────────────────────── */\n\n.clg__list {\n list-style: none;\n margin: 0;\n padding: 0;\n display: grid;\n grid-template-columns: repeat(var(--clg-grid-columns), minmax(0, 1fr));\n gap: var(--clg-grid-gap);\n}\n\n.clg__item {\n display: flex;\n min-width: 0;\n}\n\n/* The whole row — flag and name — is the click target. */\n.clg__link {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--clg-item-gap);\n width: 100%;\n min-width: 0;\n text-decoration: none;\n color: var(--clg-text-color);\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n transition: opacity 0.2s ease;\n}\n\n.clg__link:hover {\n opacity: var(--clg-item-hover-opacity);\n}\n\n.clg__link:focus-visible {\n outline: 2px solid var(--clg-focus-ring-color);\n outline-offset: 2px;\n border-radius: var(--clg-focus-ring-radius);\n}\n\n.clg__flag {\n flex-shrink: 0;\n width: var(--clg-flag-width);\n height: var(--clg-flag-height);\n object-fit: contain;\n display: block;\n}\n\n/* A long country name wraps inside its cell instead of overflowing\n or forcing the grid wider. */\n.clg__text {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n/* ── SMALL TABLET ≥ 560px ─────────────────────────────────────\n Live steps to 3 columns at 480px, which yields a 133px track — only\n ~89px of it usable once the 36px flag and its gap are taken, so a\n typical label wraps to two lines. 560px is the first width where a\n third column still leaves a label on one line. */\n\n@media (min-width: 560px) {\n :root {\n --clg-grid-columns: 3;\n }\n}\n\n/* ── TABLET ≥ 768px ───────────────────────────────────────── */\n\n@media (min-width: 768px) {\n :root {\n --clg-padding-inline: var(--spacing-24);\n --clg-grid-columns: 4;\n }\n}\n\n/* ── DESKTOP ≥ 992px ──────────────────────────────────────── */\n\n@media (min-width: 992px) {\n :root {\n --clg-padding-block: var(--spacing-112);\n --clg-layout-gap: var(--spacing-80);\n --clg-layout-columns: 1fr 1fr;\n\n /* The grid is now sharing the row with the header, so it has about\n half the width it had at 768px. Four columns here would leave\n ~46px per label. */\n --clg-grid-columns: 2;\n }\n}\n\n/* ── WIDE DESKTOP ≥ 1200px ────────────────────────────────────\n Enough width in the right-hand column for a third column while\n still leaving a label room to sit on one line. */\n\n@media (min-width: 1200px) {\n :root {\n --clg-grid-columns: 3;\n }\n}\n","/* ============================================================\n DOCUMENT CHIPS\n Expandable groups of downloadable documents. Each group body is a\n set of pill-shaped document chips on a grey section background; a\n chip carries a file mark and the document title, and optionally a\n second, separate black arrow link (\"Choose language\") at its end.\n\n Reproduces `.section_regulatory-docs > .accordion_dropdown` on\n deriv.com/eu/regulatory — the accordion groups and their\n `.regulatory-doc` rows. The tab strip that sits above them on the\n live page is deliberately NOT reproduced: the design system already\n ships tab chips (`Tabs`), so a page that needs tabbing composes\n them around this template rather than this template owning it.\n\n Composes the shared `Accordion` (groups) and `Link` (the chip's\n language link) — neither is restyled here beyond the two layout\n escapes noted below.\n\n Token inheritance (Rule 5):\n Core (--color-*, --spacing-*, --radius-*, --typography-*) →\n Semantic (--dch-*) →\n Styles\n\n NOTE — deliberate deviations from the live CSS:\n - Container max-width is 1280px per the global padding spec\n (Rule 4); the live `.section-container` is 1248px. Consistent\n with EntityInfoSection and ResourceBanner.\n - Horizontal padding steps 16px → 24px at 768px, per the DS\n convention. Live steps at 480px instead.\n - Live's chip is `16px 28px 16px 24px`. There is no 28px spacing\n token, so the inline padding is a symmetric 24px at >=768px\n (a 4px difference on the right edge only).\n - Live's chip radius is 96px, which clamps to a pill at the\n chip's height. `--radius-full` is visually identical and is the\n token the DS already uses for pills.\n Every other value below is 1:1 with the live computed CSS.\n ============================================================ */\n\n/* ── COMPONENT TOKENS ─────────────────────────────────────── */\n:root {\n --dch-background: var(--background-surface-secondary);\n --dch-text-color: var(--text-primary);\n\n --dch-max-width: 1280px;\n\n /* Outer padding — global template padding spec (Rule 4) */\n --dch-padding-block: var(--spacing-56);\n --dch-padding-inline: var(--spacing-16);\n\n /* Live `.feature-list_component` gap: 32px, 48px from 992px up */\n --dch-header-gap: var(--spacing-32);\n\n /* Gap between the heading and the intro paragraph */\n --dch-header-content-gap: var(--spacing-16);\n\n /* Document grid — live is one column, two from 992px up */\n --dch-docs-columns: 1;\n --dch-docs-column-gap: var(--spacing-8);\n --dch-docs-row-gap: var(--spacing-16);\n\n /* Document chip */\n --dch-doc-background: var(--background-surface);\n --dch-doc-radius: var(--radius-2xl);\n --dch-doc-padding-block: var(--spacing-16);\n --dch-doc-padding-inline: var(--spacing-16);\n --dch-doc-gap: var(--spacing-8);\n\n /* Icon → title gap inside the document anchor */\n --dch-doc-icon-gap: var(--spacing-8);\n --dch-doc-icon-size: var(--spacing-24);\n\n /* Below 768px the chip stacks, and live indents the language link so it\n lines up with the document title rather than the file mark:\n 24px chip padding + 24px mark + 8px gap = 56px. */\n --dch-doc-action-indent: var(--spacing-56);\n\n --dch-focus-ring-color: var(--border-focus);\n\n /* Matches EntityInfoSection's h4 treatment; the h4 token chain is `normal` */\n --dch-title-tracking: -0.02rem;\n}\n\n/* ── SECTION SHELL ────────────────────────────────────────── */\n\n.dch {\n display: block;\n width: 100%;\n background-color: var(--dch-background);\n}\n\n.dch__inner {\n max-width: var(--dch-max-width);\n margin: 0 auto;\n padding: var(--dch-padding-block) var(--dch-padding-inline);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--dch-header-gap);\n}\n\n/* ── HEADER ───────────────────────────────────────────────────\n Live ships no heading above the groups — the group titles carry the\n section. The heading and intro are optional additions so the\n template can stand alone on a page that needs one. */\n\n.dch__header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--dch-header-content-gap);\n}\n\n.dch__title {\n margin: 0;\n font-family: var(--typography-h4-font-family);\n font-size: var(--typography-h4-font-size);\n font-weight: var(--typography-h4-font-weight);\n line-height: var(--typography-h4-line-height);\n letter-spacing: var(--dch-title-tracking);\n color: var(--dch-text-color);\n}\n\n.dch__description {\n margin: 0;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--dch-text-color);\n}\n\n/* ── GROUPS ───────────────────────────────────────────────── */\n\n.dch__groups {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n/* `Accordion` caps itself at 846px, which is correct for FAQ prose but\n too narrow for a two-column document grid. Widened from here rather\n than by editing the shared component (Rule 1). */\n.dch .dch__group {\n max-width: none;\n}\n\n/* ── DOCUMENTS ────────────────────────────────────────────────\n One column below 992px, two above — matching live's\n `.regulatory-doc-wrapper`. A grid rather than a flex row so a long\n title growing one chip does not leave its neighbour short. */\n\n.dch__docs {\n list-style: none;\n margin: 0;\n padding: 0;\n display: grid;\n grid-template-columns: repeat(var(--dch-docs-columns), minmax(0, 1fr));\n column-gap: var(--dch-docs-column-gap);\n row-gap: var(--dch-docs-row-gap);\n}\n\n.dch__doc-item {\n display: flex;\n min-width: 0;\n}\n\n/* ── CHIP ─────────────────────────────────────────────────────\n The chip surface is NOT interactive. It holds up to two separate\n interactive targets as siblings: the document anchor, and the\n optional language link. Nesting the second inside the first would\n be invalid HTML and unreachable to assistive tech.\n\n `space-between` pushes the language link to the end when it is\n present, and is a no-op when it is not — so one layout serves both\n chip shapes without a variant. */\n\n.dch__doc {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n gap: var(--dch-doc-gap);\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n padding: var(--dch-doc-padding-block) var(--dch-doc-padding-inline);\n border-radius: var(--dch-doc-radius);\n background-color: var(--dch-doc-background);\n color: var(--dch-text-color);\n}\n\n/* Interactive target 1 — the document itself. */\n.dch__doc-link {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--dch-doc-icon-gap);\n min-width: 0;\n color: inherit;\n text-decoration: none;\n}\n\n.dch__doc-link:focus-visible {\n outline: 2px solid var(--dch-focus-ring-color);\n outline-offset: 2px;\n border-radius: var(--radius-xs);\n}\n\n.dch__doc-link:hover .dch__doc-title {\n text-decoration: underline;\n}\n\n/* Fixed brand mark, rendered as an <img>. `object-fit` keeps a\n replacement asset of a different aspect ratio inside the box. */\n.dch__doc-icon {\n display: block;\n flex-shrink: 0;\n width: var(--dch-doc-icon-size);\n height: var(--dch-doc-icon-size);\n object-fit: contain;\n}\n\n/* Live `.link-text` is body-md at weight 600. `overflow-wrap` keeps a long\n unbroken document name inside its chip instead of widening the grid. */\n.dch__doc-title {\n min-width: 0;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--typography-body-md-line-height);\n overflow-wrap: anywhere;\n}\n\n/* Interactive target 2 — the language link, a sibling of the anchor.\n Below 768px live indents it to align with the document title. */\n.dch__doc-action {\n display: flex;\n flex-shrink: 0;\n padding-inline-start: var(--dch-doc-action-indent);\n}\n\n/* `Link` sets `white-space: nowrap`, which is right for this label; the\n chip's title is what wraps. Nothing else about `Link` is overridden. */\n\n/* ── TABLET ≥ 768px ───────────────────────────────────────────\n The chip becomes a single row with the language link pushed to the\n end, and the indent that aligned it under the title is dropped. */\n\n@media (min-width: 768px) {\n :root {\n --dch-padding-inline: var(--spacing-24);\n --dch-doc-padding-inline: var(--spacing-24);\n --dch-doc-radius: var(--radius-full);\n --dch-doc-action-indent: var(--spacing-0);\n }\n\n .dch__doc {\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n}\n\n/* ── DESKTOP ≥ 992px ──────────────────────────────────────── */\n\n@media (min-width: 992px) {\n :root {\n --dch-padding-block: var(--spacing-112);\n --dch-header-gap: var(--spacing-48);\n --dch-docs-columns: 2;\n }\n}\n","/* ============================================================\n LINK MODAL\n Generic centred dialog over a dark scrim: a title, a close\n button, and a body slot for any consumer content.\n\n Token inheritance (Rule 5):\n Core (--color-*, --spacing-*, --radius-*, --typography-*) →\n Semantic (--lm-*) →\n Styles\n ============================================================ */\n\n:root {\n --lm-scrim-color: var(--overlay-strong);\n --lm-scrim-blur: 4px;\n --lm-z-index: 9999;\n\n --lm-panel-background: var(--background-surface);\n --lm-panel-radius: var(--radius-xl);\n --lm-panel-shadow: var(--elevation-modal);\n --lm-panel-max-width: var(--content-width-846);\n --lm-panel-padding-block: var(--spacing-40);\n --lm-panel-padding-inline: var(--spacing-24);\n --lm-panel-gap: var(--spacing-24);\n --lm-panel-margin: var(--spacing-16);\n\n --lm-title-color: var(--text-primary);\n\n --lm-close-inset: var(--spacing-8);\n --lm-close-size: var(--spacing-48);\n --lm-close-glyph-size: var(--spacing-24);\n --lm-close-icon-color: var(--icon-primary);\n --lm-close-hover-background: var(--color-opacity-slate-8);\n --lm-close-active-background: var(--color-opacity-slate-16);\n\n --lm-focus-ring-color: var(--border-focus);\n}\n\n.lm {\n position: fixed;\n inset: 0;\n z-index: var(--lm-z-index);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--lm-panel-margin);\n box-sizing: border-box;\n overflow-y: auto;\n}\n\n.lm__scrim {\n position: fixed;\n inset: 0;\n background-color: var(--lm-scrim-color);\n -webkit-backdrop-filter: blur(var(--lm-scrim-blur));\n backdrop-filter: blur(var(--lm-scrim-blur));\n}\n\n.lm__panel {\n position: relative;\n z-index: 1;\n box-sizing: border-box;\n width: 100%;\n max-width: var(--lm-panel-max-width);\n max-height: calc(100dvh - (var(--lm-panel-margin) * 2));\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--lm-panel-gap);\n padding: var(--lm-panel-padding-block) var(--lm-panel-padding-inline);\n border-radius: var(--lm-panel-radius);\n background-color: var(--lm-panel-background);\n box-shadow: var(--lm-panel-shadow);\n outline: none;\n}\n\n.lm__panel:focus-visible {\n outline: 2px solid var(--lm-focus-ring-color);\n outline-offset: 2px;\n}\n\n.lm__close {\n position: absolute;\n top: var(--lm-close-inset);\n right: var(--lm-close-inset);\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--lm-close-size);\n height: var(--lm-close-size);\n box-sizing: border-box;\n padding: 0;\n border: none;\n border-radius: var(--radius-full);\n background: none;\n color: var(--lm-close-icon-color);\n cursor: pointer;\n outline: none;\n transition: background-color 100ms ease;\n}\n\n.lm__close:hover {\n background-color: var(--lm-close-hover-background);\n}\n\n.lm__close:active {\n background-color: var(--lm-close-active-background);\n}\n\n.lm__close:focus-visible {\n outline: 2px solid var(--lm-focus-ring-color);\n outline-offset: 2px;\n}\n\n.lm__close svg {\n width: var(--lm-close-glyph-size);\n height: var(--lm-close-glyph-size);\n}\n\n.lm__title {\n margin: 0;\n padding-inline: var(--lm-close-size);\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n letter-spacing: var(--typography-h5-letter-spacing);\n color: var(--lm-title-color);\n text-align: center;\n}\n\n.lm__body {\n width: 100%;\n min-height: 0;\n overflow-y: auto;\n}\n\n@media (min-width: 768px) {\n :root {\n --lm-panel-padding-inline: var(--spacing-32);\n }\n}\n\n@media (min-width: 992px) {\n :root {\n --lm-panel-padding-block: var(--spacing-80);\n --lm-panel-padding-inline: var(--spacing-96);\n --lm-panel-gap: var(--spacing-40);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .lm__close {\n transition: none;\n }\n}\n","/* Language-select grid styles — composed inside LinkModal's body slot. */\n\n:root {\n --lsm-grid-columns: 2;\n --lsm-grid-column-gap: var(--spacing-32);\n --lsm-grid-row-gap: var(--spacing-16);\n --lsm-option-gap: var(--spacing-8);\n --lsm-option-color: var(--text-primary);\n --lsm-flag-width: var(--spacing-24);\n --lsm-focus-ring-color: var(--border-focus);\n}\n\n.lsm__grid {\n list-style: none;\n margin: 0;\n padding: 0;\n width: 100%;\n min-height: 0;\n overflow-y: auto;\n display: grid;\n grid-template-columns: repeat(var(--lsm-grid-columns), minmax(0, 1fr));\n column-gap: var(--lsm-grid-column-gap);\n row-gap: var(--lsm-grid-row-gap);\n justify-content: center;\n}\n\n.lsm__grid-item {\n display: flex;\n min-width: 0;\n}\n\n.lsm__option {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--lsm-option-gap);\n min-width: 0;\n color: var(--lsm-option-color);\n text-decoration: none;\n}\n\n.lsm__option:hover .lsm__option-label,\n.lsm__option:active .lsm__option-label {\n text-decoration: underline;\n}\n\n.lsm__option:focus-visible {\n outline: 2px solid var(--lsm-focus-ring-color);\n outline-offset: 2px;\n border-radius: var(--radius-xs);\n}\n\n.lsm__flag {\n display: block;\n flex-shrink: 0;\n width: var(--lsm-flag-width);\n height: auto;\n}\n\n.lsm__option-label {\n min-width: 0;\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n overflow-wrap: anywhere;\n}\n\n@media (min-width: 768px) {\n :root {\n --lsm-grid-columns: 3;\n }\n}\n\n@media (min-width: 992px) {\n :root {\n --lsm-grid-column-gap: var(--spacing-80);\n }\n}\n","/* ============================================================\n AFFILIATES SLIDER\n Interactive referrals slider with live income estimate.\n\n Reproduces `.rangeslider_form-wrapper` on\n deriv.com/eu/partners/affiliates — centred heading, a three-part\n control row (referrals count, range slider, income figure), and a\n disclaimer below.\n\n Token inheritance (Rule 5):\n Core → Semantic (--afs-*) → Styles\n ============================================================ */\n\n:root {\n --afs-background: var(--background-surface);\n --afs-text-color: var(--text-primary);\n\n --afs-max-width: 1280px;\n --afs-padding-block: var(--spacing-56);\n --afs-padding-inline: var(--spacing-16);\n\n --afs-header-gap: var(--spacing-16);\n /* Live `.max-width-large-2` ≈ 640px — no matching content-width token */\n --afs-header-max-width: 40rem;\n\n --afs-controls-gap: var(--spacing-24);\n --afs-side-width: 12.5rem;\n --afs-side-padding: var(--spacing-24);\n\n --afs-slider-max-width: 25.5rem;\n --afs-track-height: var(--spacing-4);\n --afs-track-background: var(--color-slate-300);\n --afs-fill-background: var(--button-primary-background);\n --afs-handle-size: var(--spacing-24);\n --afs-handle-background: var(--button-primary-background);\n --afs-handle-shadow: 1px 1px 12px rgb(0 0 0 / 0.2);\n --afs-track-gradient-start: var(--color-slate-300);\n --afs-track-gradient-end: var(--color-slate-100);\n\n --afs-tick-padding-top: var(--spacing-20);\n /* Live `.methods_info-wrapper-2` — pale blue pill around the disclaimer */\n --afs-disclaimer-background: color-mix(in srgb, var(--color-blue-600) 8%, transparent);\n --afs-disclaimer-radius: var(--radius-xl);\n --afs-disclaimer-padding: var(--spacing-16);\n --afs-disclaimer-gap: var(--spacing-8);\n --afs-disclaimer-icon-size: var(--spacing-24);\n --afs-disclaimer-max-width: 40rem;\n\n --afs-focus-ring-color: var(--border-focus);\n}\n\n.afs {\n display: block;\n width: 100%;\n background-color: var(--afs-background);\n}\n\n.afs__inner {\n max-width: var(--afs-max-width);\n margin: 0 auto;\n padding: var(--afs-padding-block) var(--afs-padding-inline);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--afs-controls-gap);\n}\n\n.afs__header {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--afs-header-gap);\n max-width: var(--afs-header-max-width);\n text-align: center;\n}\n\n.afs__title {\n margin: 0;\n font-family: var(--typography-h4-font-family);\n font-size: var(--typography-h4-font-size);\n font-weight: var(--typography-h4-font-weight);\n line-height: var(--typography-h4-line-height);\n color: var(--afs-text-color);\n}\n\n.afs__description {\n margin: 0;\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--afs-text-color);\n}\n\n.afs__form {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\n.afs__controls {\n width: 100%;\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n grid-template-rows: auto auto;\n column-gap: var(--spacing-16);\n row-gap: var(--spacing-16);\n align-items: center;\n}\n\n.afs__referrals,\n.afs__income {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-8);\n min-width: 0;\n}\n\n.afs__referrals {\n grid-column: 1;\n grid-row: 1;\n align-items: flex-start;\n}\n\n.afs__arrow {\n grid-column: 2;\n grid-row: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--afs-text-color);\n}\n\n.afs__income {\n grid-column: 3;\n grid-row: 1;\n align-items: flex-end;\n}\n\n.afs__metric {\n font-family: var(--typography-h2-font-family);\n font-size: var(--typography-h2-font-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--typography-h2-line-height);\n color: var(--afs-text-color);\n}\n\n.afs__income-value {\n display: flex;\n align-items: baseline;\n gap: var(--spacing-4);\n}\n\n.afs__metric-label {\n margin: 0;\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n color: var(--afs-text-color);\n text-align: left;\n}\n\n.afs__metric-label--right {\n text-align: right;\n}\n\n.afs__slider-block {\n grid-column: 1 / -1;\n grid-row: 2;\n width: 100%;\n max-width: none;\n}\n\n.afs__track-gradient {\n display: block;\n width: 100%;\n height: 3rem;\n}\n\n.afs__track-wrap {\n margin-top: calc(var(--spacing-8) * -1);\n}\n\n.afs__track {\n position: relative;\n height: var(--afs-track-height);\n border-radius: var(--radius-full);\n background-color: var(--afs-track-background);\n}\n\n.afs__fill {\n position: absolute;\n inset-block: 0;\n inset-inline-start: 0;\n border-radius: var(--radius-full);\n background-color: var(--afs-fill-background);\n pointer-events: none;\n}\n\n.afs__handle {\n position: absolute;\n top: 50%;\n z-index: 1;\n width: var(--afs-handle-size);\n height: var(--afs-handle-size);\n border-radius: var(--radius-full);\n background-color: var(--afs-handle-background);\n box-shadow: var(--afs-handle-shadow);\n transform: translate(-50%, -50%);\n pointer-events: none;\n}\n\n.afs__input {\n position: absolute;\n inset: 0;\n z-index: 2;\n width: 100%;\n height: calc(var(--afs-handle-size) + var(--spacing-16));\n margin: calc(var(--spacing-8) * -1) 0;\n opacity: 0;\n cursor: grab;\n}\n\n.afs__track:focus-within {\n outline: 2px solid var(--afs-focus-ring-color);\n outline-offset: 4px;\n}\n\n.afs__ticks {\n display: flex;\n justify-content: space-between;\n padding-top: var(--afs-tick-padding-top);\n}\n\n.afs__tick {\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n color: var(--afs-text-color);\n}\n\n.afs__disclaimer {\n display: flex;\n align-items: flex-start;\n gap: var(--afs-disclaimer-gap);\n box-sizing: border-box;\n width: 100%;\n max-width: var(--afs-disclaimer-max-width);\n padding: var(--afs-disclaimer-padding);\n border-radius: var(--afs-disclaimer-radius);\n background-color: var(--afs-disclaimer-background);\n}\n\n.afs__disclaimer-icon {\n flex-shrink: 0;\n width: var(--afs-disclaimer-icon-size);\n height: var(--afs-disclaimer-icon-size);\n margin-block-start: -0.125rem;\n}\n\n.afs__disclaimer-text {\n margin: 0;\n font-family: var(--typography-body-sm-font-family);\n font-size: var(--typography-body-sm-font-size);\n font-weight: var(--typography-body-sm-font-weight);\n line-height: var(--typography-body-sm-line-height);\n color: var(--afs-text-color);\n}\n\n@media (min-width: 768px) {\n :root {\n --afs-padding-inline: var(--spacing-24);\n }\n}\n\n@media (min-width: 992px) {\n :root {\n --afs-padding-block: var(--spacing-112);\n }\n\n .afs__controls {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: 0;\n }\n\n .afs__referrals,\n .afs__arrow,\n .afs__income,\n .afs__slider-block {\n grid-column: unset;\n grid-row: unset;\n }\n\n .afs__referrals {\n width: var(--afs-side-width);\n padding-inline-end: var(--afs-side-padding);\n }\n\n .afs__income {\n width: var(--afs-side-width);\n padding-inline-start: var(--afs-side-padding);\n }\n\n .afs__slider-block {\n flex: 0 1 var(--afs-slider-max-width);\n max-width: var(--afs-slider-max-width);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .afs__input {\n cursor: pointer;\n }\n}\n"],"mappings":"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","names":[]}