@deriv-web-design/ui-templates 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +2519 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.mts +419 -0
- package/dist/index.d.ts +419 -0
- package/dist/index.js +1983 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1956 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../templates/FeatureCards/FeatureCards.css","../templates/FeatureCardsSecondary/FeatureCardsSecondary.css","../templates/Hero/Hero.css","../templates/Stats/Stats.css","../templates/FeatureScroll/FeatureScroll.css","../templates/StickyStackedCards/StickyStackedCards.css","../templates/CTABanner/CTABanner.css","../templates/DayNightTransition/DayNightTransition.css","../templates/LogoMarquee/LogoMarquee.css","../templates/Steps/Steps.css","../templates/DownloadBanner/DownloadBanner.css","../templates/TextScroll/TextScroll.css"],"sourcesContent":["/* ── 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(--color-slate-1200);\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: full row (3 cards) */\n@media (min-width: 992px) {\n .fc-grid {\n grid-template-columns: repeat(3, 1fr);\n }\n}","/* ── Section shell ─────────────────────────────────────────── */\n\n.fcs-section {\n width: 100%;\n background-color: var(--color-slate-50);\n}\n\n/* ── Inner container ───────────────────────────────────────── */\n\n.fcs-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 .fcs-container {\n padding: var(--spacing-112) var(--spacing-24);\n }\n}\n\n/* ── Header ────────────────────────────────────────────────── */\n\n.fcs-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 .fcs-header {\n align-items: center;\n text-align: center;\n }\n}\n\n/* ── Section title (H2) ────────────────────────────────────── */\n\n.fcs-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.fcs-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(--color-slate-1200);\n margin: 0;\n max-width: 640px;\n}\n\n/* ── Cards grid ────────────────────────────────────────────── */\n\n.fcs-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 .fcs-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 .fcs-grid--3 {\n grid-template-columns: repeat(3, 1fr);\n }\n\n .fcs-grid--4 {\n grid-template-columns: repeat(4, 1fr);\n }\n}","/* ============================================================\n HERO COMPONENT\n Token inheritance:\n Core (--color-*, --spacing-*, --font-*) →\n Semantic (--typography-*) →\n Component (--hero-*) →\n Styles\n\n Component tokens (--hero-*) defined in :root below:\n --hero-dark-bg → --color-slate-1200 (semantic intent: background-surface-inverse)\n --hero-light-bg → --color-slate-75 (semantic intent: background-surface-secondary)\n --hero-text-light → --color-slate-50 (semantic intent: text-inverse)\n --hero-text-dark → --color-slate-1200 (semantic intent: text-primary)\n --hero-subtitle-size → --typography-body-md-font-size\n --hero-title-size-mobile → --typography-h1-font-size (H1 on ALL variants, ALL breakpoints)\n --hero-body-size → --typography-body-md-font-size\n Split-specific tokens:\n --hero-primary-padding-top-mobile → --spacing-80\n --hero-primary-padding-top-tablet → --spacing-96\n --hero-primary-padding-top-desktop → --spacing-96\n Centered/Showcase/Visuals-specific tokens:\n --hero-secondary-shrink-radius 3.5rem (56px design value)\n --hero-secondary-padding-top-mobile → --spacing-80\n --hero-secondary-padding-top-tablet → --spacing-96\n --hero-secondary-padding-top-desktop → --spacing-112\n ============================================================ */\n\n/* ── COMPONENT TOKENS ─────────────────────────────────────── */\n:root {\n /* Background — via semantic tokens (background-surface-inverse / background-surface-secondary) */\n --hero-dark-bg: var(--color-slate-1200);\n /* semantic intent: background-surface-inverse */\n --hero-light-bg: var(--color-slate-75);\n /* semantic intent: background-surface-secondary */\n\n /* Text — via semantic tokens (text-inverse / text-primary) */\n --hero-text-light: var(--color-slate-50);\n /* semantic intent: text-inverse */\n --hero-text-dark: var(--text-primary);\n /* semantic intent: text-primary */\n /* Typography — headings (responsive via core --font-size-* / --line-height-* vars) */\n --hero-subtitle-size: var(--typography-body-md-font-size);\n /* 1rem (16px) — all viewports */\n --hero-subtitle-lh: var(--typography-body-md-line-height);\n /* 1.5rem (24px) — all viewports */\n --hero-subtitle-weight: var(--font-weight-semi-bold);\n /* 600 — eyebrow/label weight, visually lighter than title */\n\n /* Title — H1 scale on ALL variants at ALL breakpoints */\n --hero-title-size-mobile: var(--typography-h1-font-size);\n /* mobile: 3rem → tablet: 4rem → desktop: 5rem */\n --hero-title-lh-mobile: var(--typography-h1-line-height);\n /* mobile: 3.5rem → tablet: 4.5rem → desktop: 5.5rem */\n\n /* Description — body-md for light-bg variants (more readable than body-sm) */\n --hero-body-size: var(--typography-body-md-font-size);\n /* 1rem (16px) — all viewports */\n --hero-body-lh: var(--typography-body-md-line-height);\n /* 1.5rem (24px) — all viewports */\n\n /* Split variant — component-level tokens */\n --hero-primary-padding-top-mobile: var(--spacing-80);\n --hero-primary-padding-top-tablet: var(--spacing-96);\n --hero-primary-padding-top-desktop: var(--spacing-96);\n /* 96px — closest to Figma 104px */\n\n /* Centered / Showcase / Visuals variants — component-level tokens */\n --hero-secondary-shrink-radius: 3.5rem;\n /* 56px — intentional design value, no core token equivalent */\n --hero-secondary-padding-top-mobile: var(--spacing-80);\n --hero-secondary-padding-top-tablet: var(--spacing-96);\n --hero-secondary-padding-top-desktop: var(--spacing-112);\n /* closest token to Figma 128px */\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}\n\n/* ── FULL-BLEED BACKGROUND IMAGE ─────────────────────────── */\n\n.hero__bg-image {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n pointer-events: none;\n display: block;\n z-index: 0;\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 /* --typography-body-md-font-size → 1rem (16px) */\n font-weight: var(--hero-subtitle-weight);\n /* --font-weight-semi-bold → 600 — eyebrow weight, lighter than title */\n line-height: var(--hero-subtitle-lh);\n /* --typography-body-md-line-height → 1.5rem (24px) */\n margin: 0;\n}\n\n.hero__title {\n font-size: var(--hero-title-size-mobile);\n /* --typography-h1-font-size → mobile: 3rem, tablet: 4rem, desktop: 5rem */\n font-weight: var(--typography-h1-font-weight);\n /* --font-weight-extra-bold → 800 */\n line-height: var(--hero-title-lh-mobile);\n /* --typography-h1-line-height → mobile: 3.5rem, tablet: 4.5rem, desktop: 5.5rem */\n margin: 0;\n}\n\n.hero__description {\n font-size: var(--hero-body-size);\n /* --typography-body-md-font-size → 1rem (16px) */\n font-weight: var(--typography-body-md-font-weight);\n /* --font-weight-regular → 400 */\n line-height: var(--hero-body-lh);\n /* --typography-body-md-line-height → 1.5rem (24px) */\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 /* Mobile: buttons fill full width of their container */\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-color: var(--hero-dark-bg);\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n /* Exact viewport height — content clips inside */\n height: 100vh;\n display: flex;\n align-items: flex-start;\n /* Clip the border-radius as it animates */\n overflow: hidden;\n /* Scroll-driven shrink: bottom corners round + scale down as hero exits viewport */\n animation: hero-split-shrink linear both;\n animation-timeline: view();\n animation-range: exit 0% exit 40%;\n}\n\n@keyframes hero-split-shrink {\n 0% {\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n scale: 1;\n }\n\n 100% {\n border-bottom-left-radius: var(--hero-secondary-shrink-radius);\n border-bottom-right-radius: var(--hero-secondary-shrink-radius);\n scale: 0.94;\n }\n}\n\n/* Mobile/tablet: transparent top → dark bottom so text at bottom is readable */\n.hero--split .hero__overlay {\n background: linear-gradient(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/* Mobile: inner — text pinned to the bottom, no top padding */\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.hero--split .hero__subtitle,\n.hero--split .hero__title,\n.hero--split .hero__description {\n color: var(--hero-text-light);\n}\n\n/* Mobile typography — split uses larger scale than base hero defaults */\n.hero--split .hero__subtitle {\n font-size: var(--typography-h4-font-size);\n /* mobile: 1.5rem → tablet: 2rem → desktop: 2.5rem (via --font-size-2xl) */\n line-height: var(--typography-h4-line-height);\n}\n\n.hero--split .hero__title {\n font-size: var(--typography-h1-font-size);\n /* mobile: 3rem → tablet: 4rem → desktop: 5rem (via --font-size-5xl) */\n line-height: var(--typography-h1-line-height);\n}\n\n.hero--split .hero__description {\n font-size: var(--typography-body-md-font-size);\n /* 1rem (16px) — all viewports */\n line-height: var(--typography-body-md-line-height);\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 background-color: var(--hero-dark-bg);\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n /* Strictly 100vh — content clips inside */\n height: 100vh;\n display: flex;\n align-items: flex-start;\n /* Clip the border-radius as it animates */\n overflow: hidden;\n /* Scroll-driven shrink: bottom corners round + scale down as hero exits viewport */\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\n 100% {\n border-bottom-left-radius: var(--hero-secondary-shrink-radius);\n border-bottom-right-radius: var(--hero-secondary-shrink-radius);\n scale: 0.94;\n }\n}\n\n/* Dark top → transparent bottom overlay */\n.hero--centered .hero__overlay {\n background: linear-gradient(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.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-secondary-padding-top-mobile);\n padding-bottom: 0;\n}\n\n/* Mobile: left-aligned column, content at top */\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/* Text block */\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__subtitle {\n font-size: var(--hero-subtitle-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--hero-subtitle-lh);\n color: var(--hero-text-light);\n margin: 0;\n}\n\n.hero--centered .hero__title {\n font-size: var(--hero-title-size-mobile);\n font-weight: var(--typography-h1-font-weight);\n line-height: var(--hero-title-lh-mobile);\n color: var(--hero-text-light);\n margin: 0;\n}\n\n.hero--centered .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 opacity: 0.8;\n}\n\n/* Buttons — full-width stacked on mobile */\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: VISUALS / MINIMAL\n Light grey bg + SVG grid, center text, floating visuals (visuals only)\n ============================================================ */\n\n.hero--visuals,\n.hero--minimal {\n background-color: var(--hero-light-bg);\n min-height: 540px;\n display: flex;\n align-items: center;\n}\n\n/* SVG grid pattern overlay */\n.hero--visuals .hero__grid,\n.hero--minimal .hero__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='40' height='40'%3E%3Cpath d='M 40 0 L 0 0 0 40' fill='none' stroke='%23cfd4d8' stroke-width='0.5' opacity='0.5'/%3E%3C/svg%3E\");\n background-repeat: repeat;\n background-size: 40px 40px;\n}\n\n/* Overlay sits on top of visuals (z-index: 2), fades them from all edges */\n.hero--visuals .hero__overlay,\n.hero--minimal .hero__overlay {\n background:\n linear-gradient(to right, var(--hero-light-bg) 0%, rgba(246, 247, 248, 0) 18%, rgba(246, 247, 248, 0) 82%, var(--hero-light-bg) 100%),\n linear-gradient(to bottom, var(--hero-light-bg) 0%, rgba(246, 247, 248, 0) 30%, rgba(246, 247, 248, 0) 70%, var(--hero-light-bg) 100%);\n}\n\n.hero--visuals .hero__inner,\n.hero--minimal .hero__inner {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n padding-top: var(--spacing-32);\n padding-bottom: var(--spacing-32);\n min-height: 540px;\n}\n\n.hero--visuals .hero__content,\n.hero--minimal .hero__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.hero--visuals .hero__text,\n.hero--minimal .hero__text {\n align-items: flex-start;\n max-width: var(--content-width-846);\n}\n\n.hero--visuals .hero__subtitle,\n.hero--minimal .hero__subtitle {\n color: var(--hero-text-dark);\n /* --color-slate-1200 — semantic: text-primary */\n font-size: var(--hero-subtitle-size);\n /* --typography-body-md-font-size → 1rem (16px) */\n font-weight: var(--hero-subtitle-weight);\n /* --font-weight-semi-bold → 600 */\n line-height: var(--hero-subtitle-lh);\n /* --typography-body-md-line-height → 1.5rem (24px) */\n}\n\n.hero--visuals .hero__title,\n.hero--minimal .hero__title {\n color: var(--hero-text-dark);\n /* --color-slate-1200 — semantic: text-primary */\n font-size: var(--hero-title-size-mobile);\n /* --typography-h1-font-size → mobile: 3rem, tablet: 4rem, desktop: 5rem */\n font-weight: var(--typography-h1-font-weight);\n /* --font-weight-extra-bold → 800 */\n line-height: var(--hero-title-lh-mobile);\n /* --typography-h1-line-height → mobile: 3.5rem, tablet: 4.5rem, desktop: 5.5rem */\n}\n\n.hero--visuals .hero__description,\n.hero--minimal .hero__description {\n color: var(--hero-text-dark);\n /* --color-slate-1200 — semantic: text-primary — dark text on light bg */\n font-size: var(--hero-body-size);\n /* --typography-body-md-font-size → 1rem (16px) */\n font-weight: var(--typography-body-md-font-weight);\n /* --font-weight-regular → 400 */\n line-height: var(--hero-body-lh);\n /* --typography-body-md-line-height → 1.5rem (24px) */\n}\n\n/* Mobile: buttons full-width stacked — row layout promoted at tablet */\n.hero--visuals .hero__buttons,\n.hero--minimal .hero__buttons {\n align-items: stretch;\n justify-content: flex-start;\n flex-direction: column;\n width: 100%;\n}\n\n/* ── FLOATING VISUALS ─────────────────────────────────────── */\n/* Direct children of the section: z-index 1 (below overlay z-2 and text z-3) */\n\n.hero__visual {\n position: absolute;\n z-index: 1;\n overflow: hidden;\n pointer-events: none;\n}\n\n.hero__visual img,\n.hero__visual>* {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n object-position: center;\n}\n\n/* Mobile: vertically centred on left/right sides */\n.hero__visual--left {\n width: 160px;\n height: 160px;\n top: calc(50% - 80px);\n /* 160px / 2 = 80px — centres without using transform */\n left: -20px;\n bottom: auto;\n will-change: transform;\n /* transform set by JS scroll parallax in Hero.tsx */\n}\n\n.hero__visual--right {\n width: 160px;\n height: 160px;\n top: calc(50% - 80px);\n /* 160px / 2 = 80px — centres without using transform */\n right: -20px;\n bottom: auto;\n will-change: transform;\n /* transform set by JS scroll parallax in Hero.tsx */\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 background-color: var(--hero-dark-bg);\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n /* Strictly 100vh — content clips inside */\n height: 100vh;\n display: flex;\n align-items: flex-start;\n /* Clip the border-radius as it animates */\n overflow: hidden;\n /* Scroll-driven shrink: bottom corners round + scale down as hero exits viewport */\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\n 100% {\n border-bottom-left-radius: var(--hero-secondary-shrink-radius);\n border-bottom-right-radius: var(--hero-secondary-shrink-radius);\n scale: 0.94;\n }\n}\n\n/* Dark top → transparent bottom overlay */\n.hero--showcase .hero__overlay {\n background: linear-gradient(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.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-secondary-padding-top-mobile);\n padding-bottom: 0;\n}\n\n/* Mobile: left-aligned column */\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/* Text block */\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__subtitle {\n font-size: var(--hero-subtitle-size);\n font-weight: var(--typography-h2-font-weight);\n line-height: var(--hero-subtitle-lh);\n color: var(--hero-text-light);\n margin: 0;\n}\n\n.hero--showcase .hero__title {\n font-size: var(--hero-title-size-mobile);\n font-weight: var(--typography-h1-font-weight);\n line-height: var(--hero-title-lh-mobile);\n color: var(--hero-text-light);\n margin: 0;\n}\n\n.hero--showcase .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 opacity: 0.8;\n}\n\n/* Buttons — full-width stacked on mobile */\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 .hero--split .hero__inner {\n padding-top: var(--hero-primary-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 /* Centered tablet: restore centre alignment, buttons side by side */\n .hero--centered .hero__inner {\n padding-top: var(--hero-secondary-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--split .hero__buttons {\n flex-direction: row;\n align-items: center;\n width: auto;\n }\n\n /* Visuals / Minimal tablet: restore center alignment, buttons side by side */\n .hero--visuals .hero__inner,\n .hero--minimal .hero__inner {\n align-items: center;\n }\n\n .hero--visuals .hero__content,\n .hero--minimal .hero__content {\n align-items: center;\n text-align: center;\n }\n\n .hero--visuals .hero__text,\n .hero--minimal .hero__text {\n align-items: center;\n }\n\n .hero--visuals .hero__buttons,\n .hero--minimal .hero__buttons {\n flex-direction: row;\n align-items: center;\n justify-content: center;\n width: auto;\n }\n\n /* Showcase tablet: more breathing room, buttons side by side */\n .hero--showcase .hero__inner {\n padding-top: var(--hero-secondary-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 /* Desktop title: H1 scale applies to all variants via base .hero__title token.\n No per-variant overrides needed — --hero-title-size-mobile already uses H1. */\n\n /* ── Split desktop: full-width inner, text constrained to left half ── */\n .hero--split .hero__inner {\n max-width: var(--content-width-1280);\n padding-top: var(--hero-primary-padding-top-desktop);\n padding-bottom: var(--spacing-96);\n padding-left: var(--spacing-32);\n padding-right: var(--spacing-32);\n height: 100vh;\n justify-content: center;\n align-items: flex-start;\n }\n\n .hero--split .hero__content {\n flex-direction: column;\n gap: var(--spacing-32);\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-32);\n }\n\n /* Desktop subtitle: tighter line-height override (h5 lh = 2.25rem vs h4 lh = 3rem) */\n .hero--split .hero__subtitle {\n line-height: var(--typography-h5-line-height);\n /* desktop: 2.25rem — tighter than h4 line-height for large display text */\n }\n\n /* Desktop: image in right half — slot starts at 50% left, centred within */\n .hero--split .hero__image-slot {\n position: absolute;\n top: var(--spacing-72);\n right: auto;\n left: 50%;\n transform: none;\n z-index: 4;\n width: 50%;\n height: calc(100% - 5px);\n display: flex;\n align-items: center;\n justify-content: center;\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: auto;\n max-height: none;\n max-width: none;\n object-fit: contain;\n object-position: center;\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: dark left → transparent right */\n .hero--split .hero__overlay {\n background: linear-gradient(to right,\n var(--hero-dark-bg) 0%,\n var(--color-opacity-slate-88) 40%,\n var(--color-opacity-slate-24) 100%);\n }\n\n /* ── Centered desktop: wider text column ── */\n .hero--centered .hero__inner {\n padding-top: var(--hero-secondary-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 /* ── Visuals / Minimal desktop ── */\n\n /* Buttons: side by side (already set at tablet, reinforced here) */\n .hero--visuals .hero__buttons,\n .hero--minimal .hero__buttons {\n flex-direction: row;\n width: auto;\n }\n\n /* Floating visuals: absolute positioned */\n .hero--visuals .hero__inner,\n .hero--minimal .hero__inner {\n position: relative;\n }\n\n .hero__visuals-wrapper {\n flex-direction: row;\n justify-content: center;\n position: relative;\n }\n\n /* Desktop visuals: larger, vertically centred on far left/right */\n .hero--visuals .hero__visual--left {\n width: 241px;\n height: 241px;\n top: calc(50% - 120px);\n /* 241px / 2 ≈ 120px — centres without using transform */\n left: 48px;\n bottom: auto;\n right: auto;\n /* No transform here — transform is owned exclusively by JS parallax */\n }\n\n .hero--visuals .hero__visual--right {\n width: 241px;\n height: 241px;\n top: calc(50% - 120px);\n /* 241px / 2 ≈ 120px — centres without using transform */\n right: 48px;\n bottom: auto;\n left: auto;\n /* No transform here — transform is owned exclusively by JS parallax */\n }\n\n .hero--visuals .hero__content,\n .hero--minimal .hero__content {\n max-width: var(--content-width-846);\n width: 100%;\n }\n\n /* ── Showcase desktop: wider text column, larger images ── */\n .hero--showcase .hero__inner {\n padding-top: var(--hero-secondary-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 margin-bottom: 8vh;\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 STATS COMPONENT\n Token inheritance:\n Primitive (core) → Semantic (--stats-*) → Component styles\n\n Semantic tokens used:\n --stats-bg var(--color-slate-50)\n --stats-card-bg var(--color-slate-75)\n --stats-text-primary var(--color-slate-1200)\n --stats-title-size var(--typography-h2-font-size) [mobile 40px → desktop 56px]\n --stats-title-lh var(--typography-h2-line-height) [mobile 48px → desktop 64px]\n --stats-desc-size var(--typography-body-md-font-size) [16px]\n --stats-desc-lh var(--typography-body-md-line-height) [24px]\n --stats-value-size var(--font-size-3xl) [mobile 48px → tablet 40px → desktop 48px]\n --stats-value-lh var(--line-height-3xl) [mobile 40px → tablet 48px → desktop 56px]\n --stats-value-featured-size var(--font-size-5xl) [mobile 48px → tablet 64px → desktop 80px]\n --stats-value-featured-lh var(--line-height-5xl) [mobile 56px → tablet 64px → desktop 88px]\n --stats-label-size var(--font-size-lg) [18px]\n --stats-label-lh var(--line-height-lg) [28px]\n ============================================================ */\n\n/* ── SEMANTIC TOKENS ──────────────────────────────────────── */\n\n:root {\n --stats-bg: var(--color-slate-50);\n --stats-card-bg: var(--color-slate-75);\n --stats-text-primary: var(--text-primary);\n\n --stats-title-size: var(--typography-h2-font-size);\n --stats-title-lh: var(--typography-h2-line-height);\n\n --stats-desc-size: var(--typography-body-md-font-size);\n --stats-desc-lh: var(--typography-body-md-line-height);\n\n /* Inactive stat size */\n --stats-value-size: var(--font-size-3xl);\n /* 48px */\n --stats-value-lh: var(--line-height-3xl);\n /* 56px */\n\n /* Active stat — uses H1 scale (one step below previous custom values) */\n --stats-value-featured-size: var(--font-size-5xl);\n --stats-value-featured-lh: var(--line-height-5xl);\n\n --stats-label-size: var(--font-size-lg);\n --stats-label-lh: var(--line-height-lg);\n}\n\n/* ── ROOT ─────────────────────────────────────────────────── */\n\n.stats {\n width: 100%;\n background-color: var(--stats-bg);\n font-family: var(--font-family-base);\n box-sizing: border-box;\n}\n\n/* ── INNER CONTAINER ──────────────────────────────────────── */\n\n.stats__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__header {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n}\n\n.stats__title {\n font-size: var(--stats-title-size);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--stats-title-lh);\n color: var(--stats-text-primary);\n margin: 0;\n}\n\n.stats__description {\n font-size: var(--stats-desc-size);\n font-weight: var(--font-weight-regular);\n line-height: var(--stats-desc-lh);\n color: var(--stats-text-primary);\n margin: 0;\n}\n\n/* ── CONTENT ROW ──────────────────────────────────────────── */\n\n.stats__content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-32);\n width: 100%;\n}\n\n/* ── STATS CARD ───────────────────────────────────────────── */\n\n.stats__card {\n background-color: var(--stats-card-bg);\n border-radius: var(--radius-2xl);\n /* 1.5rem = 24px */\n padding: var(--spacing-24);\n width: 100%;\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/*\n * Track: overflow:visible so the card's border-radius clips instead.\n * Mobile (320px): center at 160px\n * Active (~100px) → 110–210px — fully visible, clear of both fades\n * Above ( ~53px scaled) → 38–91px — partially faded by top 70px fade\n * Below ( ~53px scaled) → 206–259px — partially faded by bottom 70px fade\n */\n.stats__card-track {\n position: relative;\n width: 100%;\n height: 320px;\n /* mobile */\n overflow: visible;\n}\n\n/* ── STAT ITEM — absolutely positioned for 3-D carousel ────── */\n\n.stats__stat {\n position: absolute;\n top: 50%;\n left: 0;\n right: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n will-change: transform, opacity;\n /* Initial state (overridden by inline style at runtime) */\n transform: translateY(-50%) scale(1);\n opacity: 1;\n}\n\n.stats__stat-value {\n display: block;\n font-family: var(--font-family-base);\n font-size: var(--stats-value-size);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--stats-value-lh);\n text-transform: uppercase;\n color: var(--stats-text-primary);\n}\n\n.stats__stat-label {\n display: block;\n font-family: var(--font-family-base);\n font-size: var(--stats-label-size);\n font-weight: var(--font-weight-regular);\n line-height: var(--stats-label-lh);\n color: var(--stats-text-primary);\n}\n\n/* Active stat — always renders at the large hero size */\n.stats__stat--active .stats__stat-value {\n font-size: var(--stats-value-featured-size);\n line-height: var(--stats-value-featured-lh);\n font-weight: var(--font-weight-extra-bold);\n}\n\n/* Inactive stats — small size + muted colour */\n.stats__stat--inactive .stats__stat-value {\n font-size: var(--stats-value-size);\n line-height: var(--stats-value-lh);\n font-weight: var(--font-weight-extra-bold);\n color: var(--color-slate-400);\n}\n\n.stats__stat--inactive .stats__stat-label {\n color: var(--color-slate-400);\n}\n\n/* ── FADE OVERLAYS ────────────────────────────────────────── */\n\n/*\n * Mobile — 100px: covers 0–100px (fully fades above item 38–91px) and 220–320px (fully fades below item 229–282px)\n * Active item (110–210px) is fully outside both fade zones.\n * Desktop — 65px: covers 0–65px (fully fades above item 13–66px) and 205–270px (fully fades below item 205–258px)\n * Active item (73–197px) is fully outside both fade zones.\n */\n.stats__fade {\n position: absolute;\n left: 0;\n right: 0;\n height: 100px;\n /* mobile — fully covers inactive items (38–91px / 229–282px) */\n pointer-events: none;\n z-index: 3;\n /* above all stat items */\n}\n\n.stats__fade--top {\n top: 0;\n background: linear-gradient(180deg,\n var(--stats-card-bg) 0%,\n rgba(246, 247, 248, 0) 100%);\n}\n\n.stats__fade--bottom {\n bottom: 0;\n background: linear-gradient(0deg,\n var(--stats-card-bg) 0%,\n rgba(246, 247, 248, 0) 100%);\n}\n\n/* ── AWARD BADGE ──────────────────────────────────────────── */\n\n.stats__award {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.stats__award-image {\n display: block;\n width: 100px;\n /* mobile */\n height: 100px;\n object-fit: contain;\n object-position: center;\n}\n\n/* ── AWARD COLUMNS — hidden until desktop ─────────────────── */\n\n.stats__awards-col {\n display: none;\n}\n\n/* ── AWARD MOBILE GRID ────────────────────────────────────── */\n\n.stats__awards-mobile {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n/* ============================================================\n TABLET ≥768px\n ============================================================ */\n\n@media (min-width: 768px) {\n .stats__header {\n align-items: center;\n text-align: center;\n }\n\n .stats__inner {\n gap: var(--spacing-48);\n }\n}\n\n/* ============================================================\n DESKTOP ≥992px\n ============================================================ */\n\n@media (min-width: 992px) {\n .stats__inner {\n padding: var(--spacing-112) var(--spacing-24);\n gap: var(--spacing-80);\n }\n\n .stats__header {\n max-width: var(--content-width-846);\n margin-left: auto;\n margin-right: auto;\n }\n\n /* Switch to 3-column layout: awards | card | awards */\n .stats__content {\n flex-direction: row;\n align-items: stretch;\n justify-content: center;\n gap: var(--spacing-24);\n /* 24px — closest available to 20px */\n }\n\n /* Stats card: fixed 414×414 square */\n .stats__card {\n width: 414px;\n height: 414px;\n padding: var(--spacing-72);\n flex-shrink: 0;\n }\n\n /* Inner track fills the padded area (414 - 144px padding = 270px) */\n .stats__card-track {\n height: 270px;\n }\n\n /* Above item (13–66px) fully covered; active (73–197px) fully clear */\n .stats__fade {\n height: 65px;\n }\n\n /* Desktop award columns */\n .stats__awards-col {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-32);\n width: 196px;\n flex-shrink: 0;\n align-items: center;\n }\n\n .stats__awards-col--left,\n .stats__awards-col--right {\n justify-content: center;\n }\n\n /* Award images at desktop size */\n .stats__awards-col .stats__award-image {\n width: 140px;\n height: 140px;\n }\n\n /* Mobile awards grid hidden on desktop */\n .stats__awards-mobile {\n display: none;\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-500)\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(--color-slate-500);\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","/* ============================================================\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 60vh [60% of viewport 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: 60vh;\n /* 60% of viewport 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/* ── 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}","/* ============================================================\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-lg) [0.75rem ≈ 10px 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-24) [1.5rem ≈ 25px]\n\n Columns gap (between col1 and col2 horizontally):\n --lm-col-gap var(--spacing-24) [1.5rem]\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-lg);\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-24);\n --lm-col-gap: var(--spacing-24);\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 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-item-title-color var(--color-slate-1200)\n --steps-item-desc-color var(--color-slate-600)\n --steps-divider-color var(--color-slate-200)\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-item-title-color: var(--text-primary);\n --steps-item-desc-color: var(--color-slate-600);\n --steps-divider-color: var(--color-slate-200);\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/* ── 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/* ── 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(--typography-h5-font-size);\n font-weight: var(--font-weight-extra-bold);\n line-height: var(--typography-h5-line-height);\n color: var(--steps-number-color);\n flex-shrink: 0;\n min-width: var(--spacing-16);\n padding-top: 2px;\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-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(--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 → white outer, slate-100 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(--color-slate-50)\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(--color-slate-100)\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(--color-slate-50);\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(--color-slate-100);\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 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-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__subtitle--desktop {\n /* Semantic tag: <h2> — visual style: h3 */\n margin: 0;\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}\n\n.db-qr-text__title--mobile {\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/* 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"],"mappings":"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","names":[]}
|