{"version":3,"file":"Button.DdPd3Kac.mjs","names":["p","React.Fragment","getContainerPadding","getContainerMaxWidth","React.useState","Tokens","Tokens","Tokens","BackgroundAnimatedGradientInternal","useMemo","p","BackgroundAnimatedGradient","BackgroundAnimatedGradient","Tokens","p","p","useMemo","useCallback","Framer.useRouter","useRef","useState","useCallback","Tokens","Tokens","useState","useCallback","useMemo","Tokens","ButtonInternal","Tokens","useMemo","gap","getGap","style","_Fragment"],"sources":["https:/framerusercontent.com/modules/XIM5CDb5NplU8oalmwIA/W0gtSCnD36ChfDBrPY2w/fontLoader.js","https:/framerusercontent.com/modules/XmP6lddHGwwZ6IkaVx2s/MDeOeDYrTvuAQZdH6kDt/colors.js","https:/framerusercontent.com/modules/bCwuxUCPByrId2011XdW/lfwsEW5AmhLjHK03RiqB/typography.js","https:/framerusercontent.com/modules/B31emSmx1NLRWgwsBsT2/ABQDPSGSceq8CIo6a1B6/core.js","https:/framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js","https:/framerusercontent.com/modules/ggRBN6PctbBy9SMbbePI/P0AdJy2leJUHBULN6DZC/themeHelpers.js","https:/framerusercontent.com/modules/mehW3ipt7NwJNkWUjO0g/TatoE2nXREsJFApGHAt7/layoutStyles.js","https:/framerusercontent.com/modules/vaIzCx0TYEaOse8701LH/nLhUb6ABm2Y1xPgMbxFs/rainbowSignatureGradient.js","https:/framerusercontent.com/modules/yMmZh2tc4vrRCWDsxNvE/AlxxxO0BHyWOBKxdxQW3/BackgroundAnimatedGradient.js","https:/framerusercontent.com/modules/hqFOkpWLA64fdQpB8yjs/5dnFOIkZzqGFDL0Lk6r0/sectionBackground.js","https:/framerusercontent.com/modules/kNZJPvkIJZGGj8KxF53M/EVxL25LJacDR3InTjCol/linkHelpers.js","https:/framerusercontent.com/modules/ZO8py5W6dWspTZ6N8FoQ/ik33zGZQhIFSuzy6bsA1/placeholders.js","https:/framerusercontent.com/modules/queGQX2T65iTgpRx9F0b/k4NbRLg9SuyP7Adl7kwV/useSectionAnimation.js","https:/framerusercontent.com/modules/hUj3FWgpcDAgyV0oQMgI/bggoehe4d3ShZ3F54NQX/motionVariants.js","https:/framerusercontent.com/modules/keR2epPkn1MdvCLnDSBc/z4ga9Xl53MGZI0XlY2dd/svg.js","https:/framerusercontent.com/modules/fJNdNvtkorPxGrDlmhln/LiwKJUReu5R3WX0AxbqC/icons.js","https:/framerusercontent.com/modules/jkm3kn6MUCcPAZ8Vhc78/hXm1p6FV8ESByKH2k6R3/colorEffects.js","https:/framerusercontent.com/modules/4zU46N6zmk4kAwI6633E/rs5qQjj5gsXnmwMYotSf/animationConstants.js","https:/framerusercontent.com/modules/2zwpGmOdSSxYIu3BgaaO/xOLU66f31yrw6qn4Tzs9/buttonStyles.js","https:/framerusercontent.com/modules/U2JBkUXibY2YYWsHMAJo/3tlMH4hg7ehgZ4TLC0Va/useInteractiveStates.js","https:/framerusercontent.com/modules/47jGon7CMrRR2tkBLszZ/ixJNoJU1L47x43mPtcbC/env.js","https:/framerusercontent.com/modules/FkbrVksyiwmgD2bFsrtv/5HinRk2eRnqRbBBz4S3h/Button.js"],"sourcesContent":["/**\n * Font Loader – ensures the primary typeface (DM Sans) is available at runtime.\n *\n * This module does three things, idempotently:\n *\n *  1. Injects a Google Fonts `<link>` to download variable DM Sans (opsz + wght).\n *  2. Injects a `<style>` tag that defines `--font-family-primary` on `:root`,\n *     applies the font to `html, body`, and resets form-element font\n *     inheritance so the cascade works in environments that don't process\n *     CSS imports (e.g. Framer's published site).\n *  3. Auto-runs on import so consumers get the font as a side-effect.\n *\n * Safe to call `ensureFontLoaded()` (or just import this module) many times;\n * elements are added to `<head>` only once.\n *\n * @module fontLoader\n */export const GOOGLE_FONTS_URL=\"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap\";export const FONT_LINK_ID=\"bunq-dm-sans-font\";export const FONT_STYLE_ID=\"bunq-font-variables\";// ── Montserrat (A/B experiment font) ───────────────────────────────────\n/** Google Fonts URL for Montserrat at the weights used in the design system (300, 400, 500, 700). */export const GOOGLE_FONTS_URL_MONTSERRAT=\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap\";export const FONT_LINK_ID_MONTSERRAT=\"bunq-montserrat-font\";/** Primary typeface name for the A/B experiment override. */export const FONT_FAMILY_MONTSERRAT=\"Montserrat\";/** Full font stack for the Montserrat A/B experiment override. */export const FONT_FAMILY_MONTSERRAT_STACK=`\"${FONT_FAMILY_MONTSERRAT}\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif`;/**\n * Paste into Framer → Site settings → Custom code → Start of `<head>` (before body paint).\n * Loads DM Sans early so code-components and canvas text do not flash the browser default serif.\n */export const FRAMER_HEAD_FONT_SNIPPET=`<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link rel=\"stylesheet\" id=\"${FONT_LINK_ID}\" href=\"${GOOGLE_FONTS_URL}\">\n<style id=\"${FONT_STYLE_ID}\">\n:root { --font-family-primary: \"DM Sans\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif; }\nhtml, body { font-family: var(--font-family-primary); font-optical-sizing: auto; font-kerning: normal; font-feature-settings: \"kern\" 1; }\nbutton, input, select, textarea, optgroup { font-family: inherit; }\n</style>`;/** Keep identical to `FONT_FAMILY_PRIMARY_STACK` in typography.ts (fontLoader loads before that module in the entry bundle). */const FONT_FAMILY_PRIMARY_STACK_CSS='\"DM Sans\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif';// ── Helpers ────────────────────────────────────────────────────────────\n/** Inject the Google Font `<link>` (with preconnect hints) if not yet present. */function injectFontLink(){if(typeof document===\"undefined\")return;// SSR guard\nif(document.getElementById(FONT_LINK_ID))return;// Preconnect for faster font loading\nconst preconnectGoogle=document.createElement(\"link\");preconnectGoogle.rel=\"preconnect\";preconnectGoogle.href=\"https://fonts.googleapis.com\";document.head.appendChild(preconnectGoogle);const preconnectGstatic=document.createElement(\"link\");preconnectGstatic.rel=\"preconnect\";preconnectGstatic.href=\"https://fonts.gstatic.com\";preconnectGstatic.crossOrigin=\"anonymous\";document.head.appendChild(preconnectGstatic);// Font stylesheet\nconst link=document.createElement(\"link\");link.id=FONT_LINK_ID;link.rel=\"stylesheet\";link.href=GOOGLE_FONTS_URL;document.head.appendChild(link);}/**\n * Inject the comprehensive font-cascade CSS.\n *\n * This runs at JS-execution time so it works in Framer and other hosts\n * that don't process CSS imports.\n */function injectCSSCascade(){if(typeof document===\"undefined\")return;// SSR guard\nif(document.getElementById(FONT_STYLE_ID))return;const style=document.createElement(\"style\");style.id=FONT_STYLE_ID;style.textContent=[`:root { --font-family-primary: ${FONT_FAMILY_PRIMARY_STACK_CSS}; }`,`html, body { font-family: var(--font-family-primary, ${FONT_FAMILY_PRIMARY_STACK_CSS}) !important; font-optical-sizing: auto; font-kerning: normal; font-feature-settings: \"kern\" 1; }`,// Form elements don't inherit font-family — force them to\n\"button, input, select, textarea, optgroup { font-family: inherit; }\"].join(\"\\n\");document.head.appendChild(style);}// ── Public API ─────────────────────────────────────────────────────────\n/**\n * Ensure the primary font (DM Sans) is loaded and the CSS cascade is set up.\n * Safe to call multiple times; only injects once.\n */export function ensureFontLoaded(){injectFontLink();injectCSSCascade();}// Auto-run on import so components get the font as a side-effect.\nensureFontLoaded();// ── Montserrat loader ──────────────────────────────────────────────────\n/**\n * Ensure Montserrat is loaded via Google Fonts.\n * Called lazily when a section component has useMontserrat enabled.\n * Safe to call multiple times; only injects once.\n */export function ensureMontserratLoaded(){if(typeof document===\"undefined\")return;// SSR guard\nif(document.getElementById(FONT_LINK_ID_MONTSERRAT))return;const preconnectGoogle=document.createElement(\"link\");preconnectGoogle.rel=\"preconnect\";preconnectGoogle.href=\"https://fonts.googleapis.com\";document.head.appendChild(preconnectGoogle);const preconnectGstatic=document.createElement(\"link\");preconnectGstatic.rel=\"preconnect\";preconnectGstatic.href=\"https://fonts.gstatic.com\";preconnectGstatic.crossOrigin=\"anonymous\";document.head.appendChild(preconnectGstatic);const link=document.createElement(\"link\");link.id=FONT_LINK_ID_MONTSERRAT;link.rel=\"stylesheet\";link.href=GOOGLE_FONTS_URL_MONTSERRAT;document.head.appendChild(link);}\nexport const __FramerMetadata__ = {\"exports\":{\"FONT_LINK_ID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ensureFontLoaded\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FONT_STYLE_ID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ensureMontserratLoaded\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"GOOGLE_FONTS_URL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FONT_FAMILY_MONTSERRAT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FONT_LINK_ID_MONTSERRAT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FONT_FAMILY_MONTSERRAT_STACK\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"GOOGLE_FONTS_URL_MONTSERRAT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FRAMER_HEAD_FONT_SNIPPET\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./fontLoader.map","/**\n * Colors - Color token definitions and accessor functions.\n *\n * This module contains all color token definitions and related functions.\n */// ============================================\nconst COLOR_TOKENS={// Black.\n\"/Backgrounds/bg-primary\":{id:\"\",name:\"bg-primary\",light:\"rgb(0, 0, 0)\",dark:null,path:\"/Backgrounds/bg-primary\"},// RGB(28,28,30).\n\"/Backgrounds/bg-secondary\":{id:\"\",name:\"bg-secondary\",light:\"rgb(28, 28, 30)\",dark:null,path:\"/Backgrounds/bg-secondary\"},// RGB(44,44,46).\n\"/Backgrounds/bg-tertiary\":{id:\"\",name:\"bg-tertiary\",light:\"rgb(44, 44, 46)\",dark:null,path:\"/Backgrounds/bg-tertiary\"},// RGB(58,58,60).\n\"/Backgrounds/bg-quaternary\":{id:\"\",name:\"bg-quaternary\",light:\"rgb(58, 58, 60)\",dark:null,path:\"/Backgrounds/bg-quaternary\"},// RGB(72,72,74).\n\"/Backgrounds/bg-quinary\":{id:\"\",name:\"bg-quinary\",light:\"rgb(72, 72, 74)\",dark:null,path:\"/Backgrounds/bg-quinary\"},// Frosted glass: white opacity for use with backdrop-filter. Same perceived brightness as solid bg-secondary–quinary over dark base.\n\"/Backgrounds/bg-secondary-glass\":{id:\"\",name:\"bg-secondary-glass\",light:\"rgba(255, 255, 255, 0.065)\",dark:null,path:\"/Backgrounds/bg-secondary-glass\"},\"/Backgrounds/bg-tertiary-glass\":{id:\"\",name:\"bg-tertiary-glass\",light:\"rgba(255, 255, 255, 0.13)\",dark:null,path:\"/Backgrounds/bg-tertiary-glass\"},\"/Backgrounds/bg-quaternary-glass\":{id:\"\",name:\"bg-quaternary-glass\",light:\"rgba(255, 255, 255, 0.19)\",dark:null,path:\"/Backgrounds/bg-quaternary-glass\"},\"/Backgrounds/bg-quinary-glass\":{id:\"\",name:\"bg-quinary-glass\",light:\"rgba(255, 255, 255, 0.25)\",dark:null,path:\"/Backgrounds/bg-quinary-glass\"},// Dark frosted panel: ~45% black overlay. Heavy darkening pass — reserve\n// for direct usage on full-bleed surfaces over light/colourful backdrops\n// (e.g. modals over a light hero gradient). The LiquidGlass system does\n// **not** use this token; for refractive glass surfaces use the\n// `bg-(inverted-)tertiary-glass` / `bg-(inverted-)quinary-glass` scale,\n// which is wired through `<LiquidGlass tone=\"regular\" | \"strong\" />`.\n\"/Backgrounds/bg-panel-dark-glass\":{id:\"\",name:\"bg-panel-dark-glass\",light:\"rgba(0, 0, 0, 0.45)\",dark:null,path:\"/Backgrounds/bg-panel-dark-glass\"},// Light frosted panel: ~60% white overlay. Reserve for direct usage on\n// light / inverted-theme dropdowns and panels (e.g. NavBarMenu). The\n// LiquidGlass system uses the `bg-(inverted-)tertiary/quinary-glass`\n// scale — see `tone` prop on `<LiquidGlass />` and `<LiquidGlassSurface />`.\n\"/Backgrounds/bg-panel-light-glass\":{id:\"\",name:\"bg-panel-light-glass\",light:\"rgba(255, 255, 255, 0.6)\",dark:null,path:\"/Backgrounds/bg-panel-light-glass\"},// White.\n\"/Backgrounds/bg-inverted-primary\":{id:\"\",name:\"bg-inverted-primary\",light:\"rgb(255, 255, 255)\",dark:null,path:\"/Backgrounds/bg-inverted-primary\"},// RGB(242,242,247).\n\"/Backgrounds/bg-inverted-secondary\":{id:\"\",name:\"bg-inverted-secondary\",light:\"rgb(242, 242, 247)\",dark:null,path:\"/Backgrounds/bg-inverted-secondary\"},// RGB(229,229,234).\n\"/Backgrounds/bg-inverted-tertiary\":{id:\"\",name:\"bg-inverted-tertiary\",light:\"rgb(229, 229, 234)\",dark:null,path:\"/Backgrounds/bg-inverted-tertiary\"},// RGB(209,209,214).\n\"/Backgrounds/bg-inverted-quaternary\":{id:\"\",name:\"bg-inverted-quaternary\",light:\"rgb(209, 209, 214)\",dark:null,path:\"/Backgrounds/bg-inverted-quaternary\"},// RGB(199,199,204).\n\"/Backgrounds/bg-inverted-quinary\":{id:\"\",name:\"bg-inverted-quinary\",light:\"rgb(199, 199, 204)\",dark:null,path:\"/Backgrounds/bg-inverted-quinary\"},// Frosted glass (light theme): black opacity for use with backdrop-filter. Same perceived brightness as solid bg-inverted-secondary–quinary over light base.\n\"/Backgrounds/bg-inverted-secondary-glass\":{id:\"\",name:\"bg-inverted-secondary-glass\",light:\"rgba(0, 0, 0, 0.05)\",dark:null,path:\"/Backgrounds/bg-inverted-secondary-glass\"},\"/Backgrounds/bg-inverted-tertiary-glass\":{id:\"\",name:\"bg-inverted-tertiary-glass\",light:\"rgba(0, 0, 0, 0.1)\",dark:null,path:\"/Backgrounds/bg-inverted-tertiary-glass\"},\"/Backgrounds/bg-inverted-quaternary-glass\":{id:\"\",name:\"bg-inverted-quaternary-glass\",light:\"rgba(0, 0, 0, 0.18)\",dark:null,path:\"/Backgrounds/bg-inverted-quaternary-glass\"},\"/Backgrounds/bg-inverted-quinary-glass\":{id:\"\",name:\"bg-inverted-quinary-glass\",light:\"rgba(0, 0, 0, 0.22)\",dark:null,path:\"/Backgrounds/bg-inverted-quinary-glass\"},// Blue.\n\"/Backgrounds/bg-brand-bunq\":{id:\"\",name:\"bg-brand-bunq\",light:\"rgb(0, 54, 102)\",dark:null,path:\"/Backgrounds/bg-brand-bunq\"},// Blue.\n\"/Backgrounds/bg-brand-bunq-solid\":{id:\"\",name:\"bg-brand-bunq-solid\",light:\"rgb(0, 136, 255)\",dark:null,path:\"/Backgrounds/bg-brand-bunq-solid\"},// Blue.\n\"/Backgrounds/bg-brand-tricount\":{id:\"\",name:\"bg-brand-tricount\",light:\"rgb(12, 64, 153)\",dark:null,path:\"/Backgrounds/bg-brand-tricount\"},// Blue.\n\"/Backgrounds/bg-brand-tricount-solid\":{id:\"\",name:\"bg-brand-tricount-solid\",light:\"rgb(55, 126, 247)\",dark:null,path:\"/Backgrounds/bg-brand-tricount-solid\"},// Green.\n\"/Backgrounds/bg-success\":{id:\"\",name:\"bg-success\",light:\"rgb(21, 82, 56)\",dark:null,path:\"/Backgrounds/bg-success\"},// Orange.\n\"/Backgrounds/bg-warning\":{id:\"\",name:\"bg-warning\",light:\"rgb(102, 48, 10)\",dark:null,path:\"/Backgrounds/bg-warning\"},// Dark red.\n\"/Backgrounds/bg-error\":{id:\"\",name:\"bg-error\",light:\"rgb(89, 19, 14)\",dark:null,path:\"/Backgrounds/bg-error\"},// RGB(28,28,30).\n\"/Backgrounds/bg-disabled\":{id:\"\",name:\"bg-disabled\",light:\"rgb(28, 28, 30)\",dark:null,path:\"/Backgrounds/bg-disabled\"},// White.\n\"/Backgrounds/bg-white\":{id:\"\",name:\"bg-white\",light:\"rgb(255, 255, 255)\",dark:null,path:\"/Backgrounds/bg-white\"},// Black.\n\"/Backgrounds/bg-black\":{id:\"\",name:\"bg-black\",light:\"rgb(0, 0, 0)\",dark:null,path:\"/Backgrounds/bg-black\"},// Yellow.\n\"/Backgrounds/bg-yellow\":{id:\"\",name:\"bg-yellow\",light:\"rgb(102, 82, 0)\",dark:null,path:\"/Backgrounds/bg-yellow\"},// Deep yellow.\n\"/Backgrounds/bg-deep-yellow\":{id:\"\",name:\"bg-deep-yellow\",light:\"rgb(100, 68, 0)\",dark:null,path:\"/Backgrounds/bg-deep-yellow\"},// Orange.\n\"/Backgrounds/bg-orange\":{id:\"\",name:\"bg-orange\",light:\"rgb(102, 48, 10)\",dark:null,path:\"/Backgrounds/bg-orange\"},// Dark red.\n\"/Backgrounds/bg-red\":{id:\"\",name:\"bg-red\",light:\"rgb(89, 19, 14)\",dark:null,path:\"/Backgrounds/bg-red\"},// Hot pink.\n\"/Backgrounds/bg-hot-pink\":{id:\"\",name:\"bg-hot-pink\",light:\"rgb(102, 18, 34)\",dark:null,path:\"/Backgrounds/bg-hot-pink\"},// Fuchsia.\n\"/Backgrounds/bg-fuchsia\":{id:\"\",name:\"bg-fuchsia\",light:\"rgb(102, 21, 67)\",dark:null,path:\"/Backgrounds/bg-fuchsia\"},// Purple.\n\"/Backgrounds/bg-purple\":{id:\"\",name:\"bg-purple\",light:\"rgb(95, 25, 102)\",dark:null,path:\"/Backgrounds/bg-purple\"},// Deep purple.\n\"/Backgrounds/bg-deep-purple\":{id:\"\",name:\"bg-deep-purple\",light:\"rgb(88, 5, 102)\",dark:null,path:\"/Backgrounds/bg-deep-purple\"},// Indigo.\n\"/Backgrounds/bg-indigo\":{id:\"\",name:\"bg-indigo\",light:\"rgb(69, 28, 128)\",dark:null,path:\"/Backgrounds/bg-indigo\"},// Deep blue.\n\"/Backgrounds/bg-deep-blue\":{id:\"\",name:\"bg-deep-blue\",light:\"rgb(13, 40, 102)\",dark:null,path:\"/Backgrounds/bg-deep-blue\"},// Blue.\n\"/Backgrounds/bg-blue\":{id:\"\",name:\"bg-blue\",light:\"rgb(0, 54, 102)\",dark:null,path:\"/Backgrounds/bg-blue\"},// Light blue.\n\"/Backgrounds/bg-light-blue\":{id:\"\",name:\"bg-light-blue\",light:\"rgb(20, 73, 102)\",dark:null,path:\"/Backgrounds/bg-light-blue\"},// Cyan.\n\"/Backgrounds/bg-cyan\":{id:\"\",name:\"bg-cyan\",light:\"rgb(10, 102, 89)\",dark:null,path:\"/Backgrounds/bg-cyan\"},// Turquoise.\n\"/Backgrounds/bg-turquoise\":{id:\"\",name:\"bg-turquoise\",light:\"rgb(6, 106, 103)\",dark:null,path:\"/Backgrounds/bg-turquoise\"},// Green.\n\"/Backgrounds/bg-green\":{id:\"\",name:\"bg-green\",light:\"rgb(21, 82, 56)\",dark:null,path:\"/Backgrounds/bg-green\"},// Deep green.\n\"/Backgrounds/bg-deep-green\":{id:\"\",name:\"bg-deep-green\",light:\"rgb(15, 77, 28)\",dark:null,path:\"/Backgrounds/bg-deep-green\"},// Deep blue.\n\"/Backgrounds/bg-activation\":{id:\"\",name:\"bg-activation\",light:\"rgb(13, 40, 102)\",dark:null,path:\"/Backgrounds/bg-activation\"},// Light blue.\n\"/Backgrounds/bg-information\":{id:\"\",name:\"bg-information\",light:\"rgb(20, 73, 102)\",dark:null,path:\"/Backgrounds/bg-information\"},// Black with 70% opacity.\n\"/Backgrounds/bg-overlay\":{id:\"\",name:\"bg-overlay\",light:\"rgba(0, 0, 0, 0.7)\",dark:null,path:\"/Backgrounds/bg-overlay\"},// Transparent.\n\"/Backgrounds/bg-transparent\":{id:\"\",name:\"bg-transparent\",light:\"rgba(0, 0, 0, 0)\",dark:null,path:\"/Backgrounds/bg-transparent\"},// Cyan.\n\"/Backgrounds/bg-verification\":{id:\"\",name:\"bg-verification\",light:\"rgb(10, 102, 89)\",dark:null,path:\"/Backgrounds/bg-verification\"},// Black.\n\"/Borders/border-primary\":{id:\"\",name:\"border-primary\",light:\"rgb(0, 0, 0)\",dark:null,path:\"/Borders/border-primary\"},// RGB(58,58,60).\n\"/Borders/border-secondary\":{id:\"\",name:\"border-secondary\",light:\"rgb(58, 58, 60)\",dark:null,path:\"/Borders/border-secondary\"},// RGB(72,72,74).\n\"/Borders/border-tertiary\":{id:\"\",name:\"border-tertiary\",light:\"rgb(72, 72, 74)\",dark:null,path:\"/Borders/border-tertiary\"},// RGB(142,142,147).\n\"/Borders/border-quinary\":{id:\"\",name:\"border-quinary\",light:\"rgb(142, 142, 147)\",dark:null,path:\"/Borders/border-quinary\"},// White.\n\"/Borders/border-inverted-primary\":{id:\"\",name:\"border-inverted-primary\",light:\"rgb(255, 255, 255)\",dark:null,path:\"/Borders/border-inverted-primary\"},// RGB(209,209,214).\n\"/Borders/border-inverted-secondary\":{id:\"\",name:\"border-inverted-secondary\",light:\"rgb(209, 209, 214)\",dark:null,path:\"/Borders/border-inverted-secondary\"},// RGB(199,199,204).\n\"/Borders/border-inverted-tertiary\":{id:\"\",name:\"border-inverted-tertiary\",light:\"rgb(199, 199, 204)\",dark:null,path:\"/Borders/border-inverted-tertiary\"},// RGB(174,174,178).\n\"/Borders/border-inverted-quaternary\":{id:\"\",name:\"border-inverted-quaternary\",light:\"rgb(174, 174, 178)\",dark:null,path:\"/Borders/border-inverted-quaternary\"},// RGB(142,142,147).\n\"/Borders/border-inverted-quinary\":{id:\"\",name:\"border-inverted-quinary\",light:\"rgb(142, 142, 147)\",dark:null,path:\"/Borders/border-inverted-quinary\"},// Blue.\n\"/Borders/border-brand-bunq\":{id:\"\",name:\"border-brand-bunq\",light:\"rgb(0, 136, 255)\",dark:null,path:\"/Borders/border-brand-bunq\"},// Blue.\n\"/Borders/border-brand-tricount\":{id:\"\",name:\"border-brand-tricount\",light:\"rgb(55, 126, 247)\",dark:null,path:\"/Borders/border-brand-tricount\"},// RGB(41,204,136).\n\"/Borders/border-success\":{id:\"\",name:\"border-success\",light:\"rgb(41, 204, 136)\",dark:null,path:\"/Borders/border-success\"},// Orange.\n\"/Borders/border-warning\":{id:\"\",name:\"border-warning\",light:\"rgb(255, 120, 25)\",dark:null,path:\"/Borders/border-warning\"},// Red\n\"/Borders/border-error\":{id:\"\",name:\"border-error\",light:\"rgb(230, 50, 35)\",dark:null,path:\"/Borders/border-error\"},// Medium gray.\n\"/Borders/border-disabled\":{id:\"\",name:\"border-disabled\",light:\"rgb(99, 99, 102)\",dark:null,path:\"/Borders/border-disabled\"},// Yellow/Orange.\n\"/Borders/border-yellow\":{id:\"\",name:\"border-yellow\",light:\"rgb(250, 200, 0)\",dark:null,path:\"/Borders/border-yellow\"},// Yellow/Orange.\n\"/Borders/border-deep-yellow\":{id:\"\",name:\"border-deep-yellow\",light:\"rgb(250, 170, 0)\",dark:null,path:\"/Borders/border-deep-yellow\"},// Orange.\n\"/Borders/border-orange\":{id:\"\",name:\"border-orange\",light:\"rgb(255, 120, 25)\",dark:null,path:\"/Borders/border-orange\"},// Red\n\"/Borders/border-red\":{id:\"\",name:\"border-red\",light:\"rgb(230, 50, 35)\",dark:null,path:\"/Borders/border-red\"},// Red/Pink.\n\"/Borders/border-hot-pink\":{id:\"\",name:\"border-hot-pink\",light:\"rgb(255, 45, 85)\",dark:null,path:\"/Borders/border-hot-pink\"},// Purple/Magenta.\n\"/Borders/border-fuchsia\":{id:\"\",name:\"border-fuchsia\",light:\"rgb(227, 23, 138)\",dark:null,path:\"/Borders/border-fuchsia\"},// Purple/Magenta.\n\"/Borders/border-purple\":{id:\"\",name:\"border-purple\",light:\"rgb(200, 52, 214)\",dark:null,path:\"/Borders/border-purple\"},// Purple/Magenta.\n\"/Borders/border-deep-purple\":{id:\"\",name:\"border-deep-purple\",light:\"rgb(162, 47, 182)\",dark:null,path:\"/Borders/border-deep-purple\"},// Purple/Magenta.\n\"/Borders/border-indigo\":{id:\"\",name:\"border-indigo\",light:\"rgb(124, 50, 229)\",dark:null,path:\"/Borders/border-indigo\"},// Blue.\n\"/Borders/border-deep-blue\":{id:\"\",name:\"border-deep-blue\",light:\"rgb(27, 80, 204)\",dark:null,path:\"/Borders/border-deep-blue\"},// Blue.\n\"/Borders/border-blue\":{id:\"\",name:\"border-blue\",light:\"rgb(0, 136, 255)\",dark:null,path:\"/Borders/border-blue\"},// Cyan/Turquoise.\n\"/Borders/border-light-blue\":{id:\"\",name:\"border-light-blue\",light:\"rgb(67, 181, 242)\",dark:null,path:\"/Borders/border-light-blue\"},// Cyan/Turquoise.\n\"/Borders/border-cyan\":{id:\"\",name:\"border-cyan\",light:\"rgb(22, 224, 196)\",dark:null,path:\"/Borders/border-cyan\"},// Cyan/Turquoise.\n\"/Borders/border-turquoise\":{id:\"\",name:\"border-turquoise\",light:\"rgb(38, 199, 195)\",dark:null,path:\"/Borders/border-turquoise\"},// RGB(41,204,136).\n\"/Borders/border-green\":{id:\"\",name:\"border-green\",light:\"rgb(41, 204, 136)\",dark:null,path:\"/Borders/border-green\"},// Green.\n\"/Borders/border-deep-green\":{id:\"\",name:\"border-deep-green\",light:\"rgb(45, 178, 73)\",dark:null,path:\"/Borders/border-deep-green\"},// Blue.\n\"/Borders/border-activation\":{id:\"\",name:\"border-activation\",light:\"rgb(0, 136, 255)\",dark:null,path:\"/Borders/border-activation\"},// Blue.\n\"/Borders/border-focus\":{id:\"\",name:\"border-focus\",light:\"rgb(0, 136, 255)\",dark:null,path:\"/Borders/border-focus\"},// Cyan/Turquoise.\n\"/Borders/border-information\":{id:\"\",name:\"border-information\",light:\"rgb(67, 181, 242)\",dark:null,path:\"/Borders/border-information\"},// Medium gray.\n\"/Borders/border-quarternary\":{id:\"\",name:\"border-quarternary\",light:\"rgb(99, 99, 102)\",dark:null,path:\"/Borders/border-quarternary\"},// Cyan/Turquoise.\n\"/Borders/border-verification\":{id:\"\",name:\"border-verification\",light:\"rgb(22, 224, 196)\",dark:null,path:\"/Borders/border-verification\"},// RGB(99,99,102) – one shade darker than quinary for clearer separation.\n\"/Borders/divider\":{id:\"\",name:\"divider\",light:\"rgb(99, 99, 102)\",dark:null,path:\"/Borders/divider\"},// Hairline on dark / layered surfaces — white at low alpha (use with frosted\n// glass; softer than solid `/Borders/divider`).\n\"/Borders/divider-glass\":{id:\"\",name:\"divider-glass\",light:\"rgba(255, 255, 255, 0.14)\",dark:null,path:\"/Borders/divider-glass\"},// Hairline on light / inverted surfaces — black at low alpha.\n\"/Borders/divider-inverted-glass\":{id:\"\",name:\"divider-inverted-glass\",light:\"rgba(0, 0, 0, 0.10)\",dark:null,path:\"/Borders/divider-inverted-glass\"},// White.\n\"/Text/text-primary\":{id:\"\",name:\"text-primary\",light:\"rgb(255, 255, 255)\",dark:null,path:\"/Text/text-primary\"},// RGB(229,229,234).\n\"/Text/text-secondary\":{id:\"\",name:\"text-secondary\",light:\"rgb(229, 229, 234)\",dark:null,path:\"/Text/text-secondary\"},// RGB(199,199,204).\n\"/Text/text-tertiary\":{id:\"\",name:\"text-tertiary\",light:\"rgb(214, 214, 219)\",dark:null,path:\"/Text/text-tertiary\"},// RGB(142,142,147).\n\"/Text/text-quaternary\":{id:\"\",name:\"text-quaternary\",light:\"rgb(165, 165, 170)\",dark:null,path:\"/Text/text-quaternary\"},// RGB(72,72,74).\n\"/Text/text-quinary\":{id:\"\",name:\"text-quinary\",light:\"rgb(72, 72, 74)\",dark:null,path:\"/Text/text-quinary\"},// Black.\n\"/Text/text-inverted-primary\":{id:\"\",name:\"text-inverted-primary\",light:\"rgb(0, 0, 0)\",dark:null,path:\"/Text/text-inverted-primary\"},// RGB(44,44,46).\n\"/Text/text-inverted-secondary\":{id:\"\",name:\"text-inverted-secondary\",light:\"rgb(44, 44, 46)\",dark:null,path:\"/Text/text-inverted-secondary\"},// RGB(72,72,74).\n\"/Text/text-inverted-tertiary\":{id:\"\",name:\"text-inverted-tertiary\",light:\"rgb(72, 72, 74)\",dark:null,path:\"/Text/text-inverted-tertiary\"},// RGB(142,142,147).\n\"/Text/text-inverted-quaternary\":{id:\"\",name:\"text-inverted-quaternary\",light:\"rgb(142, 142, 147)\",dark:null,path:\"/Text/text-inverted-quaternary\"},// RGB(199,199,204).\n\"/Text/text-inverted-quinary\":{id:\"\",name:\"text-inverted-quinary\",light:\"rgb(199, 199, 204)\",dark:null,path:\"/Text/text-inverted-quinary\"},// Blue.\n\"/Text/text-brand-bunq\":{id:\"\",name:\"text-brand-bunq\",light:\"rgb(0, 136, 255)\",dark:null,path:\"/Text/text-brand-bunq\"},// Blue.\n\"/Text/text-brand-tricount\":{id:\"\",name:\"text-brand-tricount\",light:\"rgb(55, 126, 247)\",dark:null,path:\"/Text/text-brand-tricount\"},// Orange.\n\"/Text/text-link\":{id:\"\",name:\"text-link\",light:\"rgb(255, 120, 25)\",dark:null,path:\"/Text/text-link\"},// RGB(142,142,147).\n\"/Text/text-placeholder\":{id:\"\",name:\"text-placeholder\",light:\"rgb(142, 142, 147)\",dark:null,path:\"/Text/text-placeholder\"},// RGB(41,204,136).\n\"/Text/text-success\":{id:\"\",name:\"text-success\",light:\"rgb(41, 204, 136)\",dark:null,path:\"/Text/text-success\"},// Orange.\n\"/Text/text-warning\":{id:\"\",name:\"text-warning\",light:\"rgb(255, 120, 25)\",dark:null,path:\"/Text/text-warning\"},// Red\n\"/Text/text-error\":{id:\"\",name:\"text-error\",light:\"rgb(230, 50, 35)\",dark:null,path:\"/Text/text-error\"},// Medium gray.\n\"/Text/text-disabled\":{id:\"\",name:\"text-disabled\",light:\"rgb(99, 99, 102)\",dark:null,path:\"/Text/text-disabled\"},// White.\n\"/Text/text-white\":{id:\"\",name:\"text-white\",light:\"rgb(255, 255, 255)\",dark:null,path:\"/Text/text-white\"},// Black.\n\"/Text/text-black\":{id:\"\",name:\"text-black\",light:\"rgb(0, 0, 0)\",dark:null,path:\"/Text/text-black\"},// Yellow/Orange.\n\"/Text/text-yellow\":{id:\"\",name:\"text-yellow\",light:\"rgb(250, 200, 0)\",dark:null,path:\"/Text/text-yellow\"},// Yellow/Orange.\n\"/Text/text-deep-yellow\":{id:\"\",name:\"text-deep-yellow\",light:\"rgb(250, 170, 0)\",dark:null,path:\"/Text/text-deep-yellow\"},// Orange.\n\"/Text/text-orange\":{id:\"\",name:\"text-orange\",light:\"rgb(255, 120, 25)\",dark:null,path:\"/Text/text-orange\"},// Red\n\"/Text/text-red\":{id:\"\",name:\"text-red\",light:\"rgb(230, 50, 35)\",dark:null,path:\"/Text/text-red\"},// Red/Pink.\n\"/Text/text-hot-pink\":{id:\"\",name:\"text-hot-pink\",light:\"rgb(255, 45, 85)\",dark:null,path:\"/Text/text-hot-pink\"},// Purple/Magenta.\n\"/Text/text-fuchsia\":{id:\"\",name:\"text-fuchsia\",light:\"rgb(227, 23, 138)\",dark:null,path:\"/Text/text-fuchsia\"},// Purple/Magenta.\n\"/Text/text-purple\":{id:\"\",name:\"text-purple\",light:\"rgb(200, 52, 214)\",dark:null,path:\"/Text/text-purple\"},// Purple/Magenta.\n\"/Text/text-deep-purple\":{id:\"\",name:\"text-deep-purple\",light:\"rgb(162, 47, 182)\",dark:null,path:\"/Text/text-deep-purple\"},// Purple/Magenta.\n\"/Text/text-indigo\":{id:\"\",name:\"text-indigo\",light:\"rgb(124, 50, 229)\",dark:null,path:\"/Text/text-indigo\"},// Blue.\n\"/Text/text-deep-blue\":{id:\"\",name:\"text-deep-blue\",light:\"rgb(27, 80, 204)\",dark:null,path:\"/Text/text-deep-blue\"},// Blue.\n\"/Text/text-blue\":{id:\"\",name:\"text-blue\",light:\"rgb(0, 136, 255)\",dark:null,path:\"/Text/text-blue\"},// Cyan/Turquoise.\n\"/Text/text-light-blue\":{id:\"\",name:\"text-light-blue\",light:\"rgb(67, 181, 242)\",dark:null,path:\"/Text/text-light-blue\"},// Cyan/Turquoise.\n\"/Text/text-cyan\":{id:\"\",name:\"text-cyan\",light:\"rgb(22, 224, 196)\",dark:null,path:\"/Text/text-cyan\"},// Cyan/Turquoise.\n\"/Text/text-turquoise\":{id:\"\",name:\"text-turquoise\",light:\"rgb(38, 199, 195)\",dark:null,path:\"/Text/text-turquoise\"},// RGB(41,204,136).\n\"/Text/text-green\":{id:\"\",name:\"text-green\",light:\"rgb(41, 204, 136)\",dark:null,path:\"/Text/text-green\"},// Green.\n\"/Text/text-deep-green\":{id:\"\",name:\"text-deep-green\",light:\"rgb(45, 178, 73)\",dark:null,path:\"/Text/text-deep-green\"},// Blue.\n\"/Text/text-activation\":{id:\"\",name:\"text-activation\",light:\"rgb(0, 136, 255)\",dark:null,path:\"/Text/text-activation\"},// Cyan/Turquoise.\n\"/Text/text-information\":{id:\"\",name:\"text-information\",light:\"rgb(67, 181, 242)\",dark:null,path:\"/Text/text-information\"},// Cyan/Turquoise.\n\"/Text/text-verification\":{id:\"\",name:\"text-verification\",light:\"rgb(22, 224, 196)\",dark:null,path:\"/Text/text-verification\"},// White.\n\"/Foregrounds/fg-primary\":{id:\"\",name:\"fg-primary\",light:\"rgb(255, 255, 255)\",dark:null,path:\"/Foregrounds/fg-primary\"},// RGB(229,229,234).\n\"/Foregrounds/fg-secondary\":{id:\"\",name:\"fg-secondary\",light:\"rgb(229, 229, 234)\",dark:null,path:\"/Foregrounds/fg-secondary\"},// RGB(199,199,204).\n\"/Foregrounds/fg-tertiary\":{id:\"\",name:\"fg-tertiary\",light:\"rgb(199, 199, 204)\",dark:null,path:\"/Foregrounds/fg-tertiary\"},// RGB(142,142,147).\n\"/Foregrounds/fg-quaternary\":{id:\"\",name:\"fg-quaternary\",light:\"rgb(142, 142, 147)\",dark:null,path:\"/Foregrounds/fg-quaternary\"},// RGB(72,72,74).\n\"/Foregrounds/fg-quinary\":{id:\"\",name:\"fg-quinary\",light:\"rgb(72, 72, 74)\",dark:null,path:\"/Foregrounds/fg-quinary\"},// Black.\n\"/Foregrounds/fg-inverted-primary\":{id:\"\",name:\"fg-inverted-primary\",light:\"rgb(0, 0, 0)\",dark:null,path:\"/Foregrounds/fg-inverted-primary\"},// RGB(44,44,46).\n\"/Foregrounds/fg-inverted-secondary\":{id:\"\",name:\"fg-inverted-secondary\",light:\"rgb(44, 44, 46)\",dark:null,path:\"/Foregrounds/fg-inverted-secondary\"},// RGB(72,72,74).\n\"/Foregrounds/fg-inverted-tertiary\":{id:\"\",name:\"fg-inverted-tertiary\",light:\"rgb(72, 72, 74)\",dark:null,path:\"/Foregrounds/fg-inverted-tertiary\"},// RGB(142,142,147).\n\"/Foregrounds/fg-inverted-quaternary\":{id:\"\",name:\"fg-inverted-quaternary\",light:\"rgb(142, 142, 147)\",dark:null,path:\"/Foregrounds/fg-inverted-quaternary\"},// RGB(199,199,204).\n\"/Foregrounds/fg-inverted-quinary\":{id:\"\",name:\"fg-inverted-quinary\",light:\"rgb(199, 199, 204)\",dark:null,path:\"/Foregrounds/fg-inverted-quinary\"},// Blue.\n\"/Foregrounds/fg-brand-bunq\":{id:\"\",name:\"fg-brand-bunq\",light:\"rgb(0, 136, 255)\",dark:null,path:\"/Foregrounds/fg-brand-bunq\"},// Blue.\n\"/Foregrounds/fg-brand-tricount\":{id:\"\",name:\"fg-brand-tricount\",light:\"rgb(55, 126, 247)\",dark:null,path:\"/Foregrounds/fg-brand-tricount\"},// RGB(41,204,136).\n\"/Foregrounds/fg-success\":{id:\"\",name:\"fg-success\",light:\"rgb(41, 204, 136)\",dark:null,path:\"/Foregrounds/fg-success\"},// Orange.\n\"/Foregrounds/fg-warning\":{id:\"\",name:\"fg-warning\",light:\"rgb(255, 120, 25)\",dark:null,path:\"/Foregrounds/fg-warning\"},// Red\n\"/Foregrounds/fg-error\":{id:\"\",name:\"fg-error\",light:\"rgb(230, 50, 35)\",dark:null,path:\"/Foregrounds/fg-error\"},// Medium gray.\n\"/Foregrounds/fg-disabled\":{id:\"\",name:\"fg-disabled\",light:\"rgb(99, 99, 102)\",dark:null,path:\"/Foregrounds/fg-disabled\"},// White.\n\"/Foregrounds/fg-white\":{id:\"\",name:\"fg-white\",light:\"rgb(255, 255, 255)\",dark:null,path:\"/Foregrounds/fg-white\"},// Black.\n\"/Foregrounds/fg-black\":{id:\"\",name:\"fg-black\",light:\"rgb(0, 0, 0)\",dark:null,path:\"/Foregrounds/fg-black\"},// Yellow/Orange.\n\"/Foregrounds/fg-yellow\":{id:\"\",name:\"fg-yellow\",light:\"rgb(250, 200, 0)\",dark:null,path:\"/Foregrounds/fg-yellow\"},// Yellow/Orange.\n\"/Foregrounds/fg-deep-yellow\":{id:\"\",name:\"fg-deep-yellow\",light:\"rgb(250, 170, 0)\",dark:null,path:\"/Foregrounds/fg-deep-yellow\"},// Orange.\n\"/Foregrounds/fg-orange\":{id:\"\",name:\"fg-orange\",light:\"rgb(255, 120, 25)\",dark:null,path:\"/Foregrounds/fg-orange\"},// Red\n\"/Foregrounds/fg-red\":{id:\"\",name:\"fg-red\",light:\"rgb(230, 50, 35)\",dark:null,path:\"/Foregrounds/fg-red\"},// Red/Pink.\n\"/Foregrounds/fg-hot-pink\":{id:\"\",name:\"fg-hot-pink\",light:\"rgb(255, 45, 85)\",dark:null,path:\"/Foregrounds/fg-hot-pink\"},// Purple/Magenta.\n\"/Foregrounds/fg-fuchsia\":{id:\"\",name:\"fg-fuchsia\",light:\"rgb(227, 23, 138)\",dark:null,path:\"/Foregrounds/fg-fuchsia\"},// Purple/Magenta.\n\"/Foregrounds/fg-purple\":{id:\"\",name:\"fg-purple\",light:\"rgb(200, 52, 214)\",dark:null,path:\"/Foregrounds/fg-purple\"},// Purple/Magenta.\n\"/Foregrounds/fg-deep-purple\":{id:\"\",name:\"fg-deep-purple\",light:\"rgb(162, 47, 182)\",dark:null,path:\"/Foregrounds/fg-deep-purple\"},// Purple/Magenta.\n\"/Foregrounds/fg-indigo\":{id:\"\",name:\"fg-indigo\",light:\"rgb(124, 50, 229)\",dark:null,path:\"/Foregrounds/fg-indigo\"},// Blue.\n\"/Foregrounds/fg-deep-blue\":{id:\"\",name:\"fg-deep-blue\",light:\"rgb(27, 80, 204)\",dark:null,path:\"/Foregrounds/fg-deep-blue\"},// Blue.\n\"/Foregrounds/fg-blue\":{id:\"\",name:\"fg-blue\",light:\"rgb(0, 136, 255)\",dark:null,path:\"/Foregrounds/fg-blue\"},// Cyan/Turquoise.\n\"/Foregrounds/fg-light-blue\":{id:\"\",name:\"fg-light-blue\",light:\"rgb(67, 181, 242)\",dark:null,path:\"/Foregrounds/fg-light-blue\"},// Cyan/Turquoise.\n\"/Foregrounds/fg-cyan\":{id:\"\",name:\"fg-cyan\",light:\"rgb(22, 224, 196)\",dark:null,path:\"/Foregrounds/fg-cyan\"},// Cyan/Turquoise.\n\"/Foregrounds/fg-turquoise\":{id:\"\",name:\"fg-turquoise\",light:\"rgb(38, 199, 195)\",dark:null,path:\"/Foregrounds/fg-turquoise\"},// RGB(41,204,136).\n\"/Foregrounds/fg-green\":{id:\"\",name:\"fg-green\",light:\"rgb(41, 204, 136)\",dark:null,path:\"/Foregrounds/fg-green\"},// Green.\n\"/Foregrounds/fg-deep-green\":{id:\"\",name:\"fg-deep-green\",light:\"rgb(45, 178, 73)\",dark:null,path:\"/Foregrounds/fg-deep-green\"},// Blue.\n\"/Foregrounds/fg-activation\":{id:\"\",name:\"fg-activation\",light:\"rgb(0, 136, 255)\",dark:null,path:\"/Foregrounds/fg-activation\"},// Cyan/Turquoise.\n\"/Foregrounds/fg-information\":{id:\"\",name:\"fg-information\",light:\"rgb(67, 181, 242)\",dark:null,path:\"/Foregrounds/fg-information\"},// Cyan/Turquoise.\n\"/Foregrounds/fg-verification\":{id:\"\",name:\"fg-verification\",light:\"rgb(22, 224, 196)\",dark:null,path:\"/Foregrounds/fg-verification\"},// RGB(153,122,0).\n\"/Components/ma-emoji-yellow-dark\":{id:\"\",name:\"ma-emoji-yellow-dark\",light:\"rgb(153, 122, 0)\",dark:null,path:\"/Components/ma-emoji-yellow-dark\"},// RGB(77,61,0).\n\"/Components/ma-icon-yellow-dark\":{id:\"\",name:\"ma-icon-yellow-dark\",light:\"rgb(77, 61, 0)\",dark:null,path:\"/Components/ma-icon-yellow-dark\"},// Yellow/Orange.\n\"/Components/ma-emoji-yellow-light\":{id:\"\",name:\"ma-emoji-yellow-light\",light:\"rgb(250, 200, 0)\",dark:null,path:\"/Components/ma-emoji-yellow-light\"},// Yellow.\n\"/Components/ma-icon-yellow-light\":{id:\"\",name:\"ma-icon-yellow-light\",light:\"rgb(102, 82, 0)\",dark:null,path:\"/Components/ma-icon-yellow-light\"},// RGB(153,104,0).\n\"/Components/ma-emoji-deep-yellow-dark\":{id:\"\",name:\"ma-emoji-deep-yellow-dark\",light:\"rgb(153, 104, 0)\",dark:null,path:\"/Components/ma-emoji-deep-yellow-dark\"},// RGB(80,55,0).\n\"/Components/ma-icon-deep-yellow-dark\":{id:\"\",name:\"ma-icon-deep-yellow-dark\",light:\"rgb(80, 55, 0)\",dark:null,path:\"/Components/ma-icon-deep-yellow-dark\"},// Yellow/Orange.\n\"/Components/ma-emoji-deep-yellow-light\":{id:\"\",name:\"ma-emoji-deep-yellow-light\",light:\"rgb(250, 170, 0)\",dark:null,path:\"/Components/ma-emoji-deep-yellow-light\"},// Deep yellow.\n\"/Components/ma-icon-deep-yellow-light\":{id:\"\",name:\"ma-icon-deep-yellow-light\",light:\"rgb(100, 68, 0)\",dark:null,path:\"/Components/ma-icon-deep-yellow-light\"},// Red/Pink.\n\"/Components/ma-emoji-orange-dark\":{id:\"\",name:\"ma-emoji-orange-dark\",light:\"rgb(153, 64, 0)\",dark:null,path:\"/Components/ma-emoji-orange-dark\"},// RGB(82,28,0).\n\"/Components/ma-icon-orange-dark\":{id:\"\",name:\"ma-icon-orange-dark\",light:\"rgb(82, 28, 0)\",dark:null,path:\"/Components/ma-icon-orange-dark\"},// Orange.\n\"/Components/ma-emoji-orange-light\":{id:\"\",name:\"ma-emoji-orange-light\",light:\"rgb(255, 120, 25)\",dark:null,path:\"/Components/ma-emoji-orange-light\"},// Orange.\n\"/Components/ma-icon-orange-light\":{id:\"\",name:\"ma-icon-orange-light\",light:\"rgb(102, 48, 10)\",dark:null,path:\"/Components/ma-icon-orange-light\"},// Red/Pink.\n\"/Components/ma-emoji-red-dark\":{id:\"\",name:\"ma-emoji-red-dark\",light:\"rgb(153, 33, 23)\",dark:null,path:\"/Components/ma-emoji-red-dark\"},// RGB(77,0,0).\n\"/Components/ma-icon-red-dark\":{id:\"\",name:\"ma-icon-red-dark\",light:\"rgb(77, 0, 0)\",dark:null,path:\"/Components/ma-icon-red-dark\"},// Red\n\"/Components/ma-emoji-red-light\":{id:\"\",name:\"ma-emoji-red-light\",light:\"rgb(230, 50, 35)\",dark:null,path:\"/Components/ma-emoji-red-light\"},// Dark red.\n\"/Components/ma-icon-red-light\":{id:\"\",name:\"ma-icon-red-light\",light:\"rgb(89, 19, 14)\",dark:null,path:\"/Components/ma-icon-red-light\"},// Red/Pink.\n\"/Components/ma-emoji-hot-pink-dark\":{id:\"\",name:\"ma-emoji-hot-pink-dark\",light:\"rgb(178, 32, 59)\",dark:null,path:\"/Components/ma-emoji-hot-pink-dark\"},// RGB(77,0,14).\n\"/Components/ma-icon-hot-pink-dark\":{id:\"\",name:\"ma-icon-hot-pink-dark\",light:\"rgb(77, 0, 14)\",dark:null,path:\"/Components/ma-icon-hot-pink-dark\"},// Red/Pink.\n\"/Components/ma-emoji-hot-pink-light\":{id:\"\",name:\"ma-emoji-hot-pink-light\",light:\"rgb(255, 45, 85)\",dark:null,path:\"/Components/ma-emoji-hot-pink-light\"},// Hot pink.\n\"/Components/ma-icon-hot-pink-light\":{id:\"\",name:\"ma-icon-hot-pink-light\",light:\"rgb(102, 18, 34)\",dark:null,path:\"/Components/ma-icon-hot-pink-light\"},// Purple/Magenta.\n\"/Components/ma-emoji-fuchsia-dark\":{id:\"\",name:\"ma-emoji-fuchsia-dark\",light:\"rgb(153, 32, 101)\",dark:null,path:\"/Components/ma-emoji-fuchsia-dark\"},// RGB(77,0,43).\n\"/Components/ma-icon-fuchsia-dark\":{id:\"\",name:\"ma-icon-fuchsia-dark\",light:\"rgb(77, 0, 43)\",dark:null,path:\"/Components/ma-icon-fuchsia-dark\"},// Purple/Magenta.\n\"/Components/ma-emoji-fuchsia-light\":{id:\"\",name:\"ma-emoji-fuchsia-light\",light:\"rgb(227, 23, 138)\",dark:null,path:\"/Components/ma-emoji-fuchsia-light\"},// Fuchsia.\n\"/Components/ma-icon-fuchsia-light\":{id:\"\",name:\"ma-icon-fuchsia-light\",light:\"rgb(102, 21, 67)\",dark:null,path:\"/Components/ma-icon-fuchsia-light\"},// Purple/Magenta.\n\"/Components/ma-emoji-purple-dark\":{id:\"\",name:\"ma-emoji-purple-dark\",light:\"rgb(134, 35, 143)\",dark:null,path:\"/Components/ma-emoji-purple-dark\"},// RGB(70,11,77).\n\"/Components/ma-icon-purple-dark\":{id:\"\",name:\"ma-icon-purple-dark\",light:\"rgb(70, 11, 77)\",dark:null,path:\"/Components/ma-icon-purple-dark\"},// Purple/Magenta.\n\"/Components/ma-emoji-purple-light\":{id:\"\",name:\"ma-emoji-purple-light\",light:\"rgb(200, 52, 214)\",dark:null,path:\"/Components/ma-emoji-purple-light\"},// Purple.\n\"/Components/ma-icon-purple-light\":{id:\"\",name:\"ma-icon-purple-light\",light:\"rgb(95, 25, 102)\",dark:null,path:\"/Components/ma-icon-purple-light\"},// Purple/Magenta.\n\"/Components/ma-emoji-deep-purple-dark\":{id:\"\",name:\"ma-emoji-deep-purple-dark\",light:\"rgb(112, 32, 126)\",dark:null,path:\"/Components/ma-emoji-deep-purple-dark\"},// RGB(66,4,77).\n\"/Components/ma-icon-deep-purple-dark\":{id:\"\",name:\"ma-icon-deep-purple-dark\",light:\"rgb(66, 4, 77)\",dark:null,path:\"/Components/ma-icon-deep-purple-dark\"},// Purple/Magenta.\n\"/Components/ma-emoji-deep-purple-light\":{id:\"\",name:\"ma-emoji-deep-purple-light\",light:\"rgb(162, 47, 182)\",dark:null,path:\"/Components/ma-emoji-deep-purple-light\"},// Deep purple.\n\"/Components/ma-icon-deep-purple-light\":{id:\"\",name:\"ma-icon-deep-purple-light\",light:\"rgb(88, 5, 102)\",dark:null,path:\"/Components/ma-icon-deep-purple-light\"},// Blue.\n\"/Components/ma-emoji-indigo-dark\":{id:\"\",name:\"ma-emoji-indigo-dark\",light:\"rgb(97, 39, 178)\",dark:null,path:\"/Components/ma-emoji-indigo-dark\"},// RGB(48,10,102).\n\"/Components/ma-icon-indigo-dark\":{id:\"\",name:\"ma-icon-indigo-dark\",light:\"rgb(48, 10, 102)\",dark:null,path:\"/Components/ma-icon-indigo-dark\"},// Purple/Magenta.\n\"/Components/ma-emoji-indigo-light\":{id:\"\",name:\"ma-emoji-indigo-light\",light:\"rgb(124, 50, 229)\",dark:null,path:\"/Components/ma-emoji-indigo-light\"},// Indigo.\n\"/Components/ma-icon-indigo-light\":{id:\"\",name:\"ma-icon-indigo-light\",light:\"rgb(69, 28, 128)\",dark:null,path:\"/Components/ma-icon-indigo-light\"},// Blue.\n\"/Components/ma-emoji-deep-blue-dark\":{id:\"\",name:\"ma-emoji-deep-blue-dark\",light:\"rgb(28, 65, 153)\",dark:null,path:\"/Components/ma-emoji-deep-blue-dark\"},// RGB(0,18,77).\n\"/Components/ma-icon-deep-blue-dark\":{id:\"\",name:\"ma-icon-deep-blue-dark\",light:\"rgb(0, 18, 77)\",dark:null,path:\"/Components/ma-icon-deep-blue-dark\"},// Blue.\n\"/Components/ma-emoji-deep-blue-light\":{id:\"\",name:\"ma-emoji-deep-blue-light\",light:\"rgb(27, 80, 204)\",dark:null,path:\"/Components/ma-emoji-deep-blue-light\"},// Deep blue.\n\"/Components/ma-icon-deep-blue-light\":{id:\"\",name:\"ma-icon-deep-blue-light\",light:\"rgb(13, 40, 102)\",dark:null,path:\"/Components/ma-icon-deep-blue-light\"},// RGB(0,68,128).\n\"/Components/ma-emoji-blue-dark\":{id:\"\",name:\"ma-emoji-blue-dark\",light:\"rgb(0, 68, 128)\",dark:null,path:\"/Components/ma-emoji-blue-dark\"},// RGB(0,34,82).\n\"/Components/ma-icon-blue-dark\":{id:\"\",name:\"ma-icon-blue-dark\",light:\"rgb(0, 34, 82)\",dark:null,path:\"/Components/ma-icon-blue-dark\"},// Blue.\n\"/Components/ma-emoji-blue-light\":{id:\"\",name:\"ma-emoji-blue-light\",light:\"rgb(0, 136, 255)\",dark:null,path:\"/Components/ma-emoji-blue-light\"},// Blue.\n\"/Components/ma-icon-blue-light\":{id:\"\",name:\"ma-icon-blue-light\",light:\"rgb(0, 54, 102)\",dark:null,path:\"/Components/ma-icon-blue-light\"},// Blue.\n\"/Components/ma-emoji-light-blue-dark\":{id:\"\",name:\"ma-emoji-light-blue-dark\",light:\"rgb(35, 112, 153)\",dark:null,path:\"/Components/ma-emoji-light-blue-dark\"},// RGB(8,56,82).\n\"/Components/ma-icon-light-blue-dark\":{id:\"\",name:\"ma-icon-light-blue-dark\",light:\"rgb(8, 56, 82)\",dark:null,path:\"/Components/ma-icon-light-blue-dark\"},// Cyan/Turquoise.\n\"/Components/ma-emoji-light-blue-light\":{id:\"\",name:\"ma-emoji-light-blue-light\",light:\"rgb(67, 181, 242)\",dark:null,path:\"/Components/ma-emoji-light-blue-light\"},// Light blue.\n\"/Components/ma-icon-light-blue-light\":{id:\"\",name:\"ma-icon-light-blue-light\",light:\"rgb(20, 73, 102)\",dark:null,path:\"/Components/ma-icon-light-blue-light\"},// RGB(17,168,147).\n\"/Components/ma-emoji-cyan-dark\":{id:\"\",name:\"ma-emoji-cyan-dark\",light:\"rgb(17, 168, 147)\",dark:null,path:\"/Components/ma-emoji-cyan-dark\"},// RGB(0,77,66).\n\"/Components/ma-icon-cyan-dark\":{id:\"\",name:\"ma-icon-cyan-dark\",light:\"rgb(0, 77, 66)\",dark:null,path:\"/Components/ma-icon-cyan-dark\"},// Cyan/Turquoise.\n\"/Components/ma-emoji-cyan-light\":{id:\"\",name:\"ma-emoji-cyan-light\",light:\"rgb(22, 224, 196)\",dark:null,path:\"/Components/ma-emoji-cyan-light\"},// Cyan.\n\"/Components/ma-icon-cyan-light\":{id:\"\",name:\"ma-icon-cyan-light\",light:\"rgb(10, 102, 89)\",dark:null,path:\"/Components/ma-icon-cyan-light\"},// RGB(21,143,139).\n\"/Components/ma-emoji-turquoise-dark\":{id:\"\",name:\"ma-emoji-turquoise-dark\",light:\"rgb(21, 143, 139)\",dark:null,path:\"/Components/ma-emoji-turquoise-dark\"},// RGB(0,77,74).\n\"/Components/ma-icon-turquoise-dark\":{id:\"\",name:\"ma-icon-turquoise-dark\",light:\"rgb(0, 77, 74)\",dark:null,path:\"/Components/ma-icon-turquoise-dark\"},// Cyan/Turquoise.\n\"/Components/ma-emoji-turquoise-light\":{id:\"\",name:\"ma-emoji-turquoise-light\",light:\"rgb(38, 199, 195)\",dark:null,path:\"/Components/ma-emoji-turquoise-light\"},// Turquoise.\n\"/Components/ma-icon-turquoise-light\":{id:\"\",name:\"ma-icon-turquoise-light\",light:\"rgb(6, 106, 103)\",dark:null,path:\"/Components/ma-icon-turquoise-light\"},// RGB(31,153,102).\n\"/Components/ma-emoji-green-dark\":{id:\"\",name:\"ma-emoji-green-dark\",light:\"rgb(31, 153, 102)\",dark:null,path:\"/Components/ma-emoji-green-dark\"},// RGB(1,62,36).\n\"/Components/ma-icon-green-dark\":{id:\"\",name:\"ma-icon-green-dark\",light:\"rgb(1, 62, 36)\",dark:null,path:\"/Components/ma-icon-green-dark\"},// RGB(41,204,136).\n\"/Components/ma-emoji-green-light\":{id:\"\",name:\"ma-emoji-green-light\",light:\"rgb(41, 204, 136)\",dark:null,path:\"/Components/ma-emoji-green-light\"},// Green.\n\"/Components/ma-icon-green-light\":{id:\"\",name:\"ma-icon-green-light\",light:\"rgb(21, 82, 56)\",dark:null,path:\"/Components/ma-icon-green-light\"},// Green.\n\"/Components/ma-emoji-deep-green-dark\":{id:\"\",name:\"ma-emoji-deep-green-dark\",light:\"rgb(37, 106, 51)\",dark:null,path:\"/Components/ma-emoji-deep-green-dark\"},// RGB(5,51,15).\n\"/Components/ma-icon-deep-green-dark\":{id:\"\",name:\"ma-icon-deep-green-dark\",light:\"rgb(5, 51, 15)\",dark:null,path:\"/Components/ma-icon-deep-green-dark\"},// Green.\n\"/Components/ma-emoji-deep-green-light\":{id:\"\",name:\"ma-emoji-deep-green-light\",light:\"rgb(45, 178, 73)\",dark:null,path:\"/Components/ma-emoji-deep-green-light\"},// Deep green.\n\"/Components/ma-icon-deep-green-light\":{id:\"\",name:\"ma-icon-deep-green-light\",light:\"rgb(15, 77, 28)\",dark:null,path:\"/Components/ma-icon-deep-green-light\"},// Medium dark gray.\n\"/Components/ma-emoji-calm-gray-dark\":{id:\"\",name:\"ma-emoji-calm-gray-dark\",light:\"rgb(67, 67, 67)\",dark:null,path:\"/Components/ma-emoji-calm-gray-dark\"},// Medium gray.\n\"/Components/ma-emoji-calm-gray-light\":{id:\"\",name:\"ma-emoji-calm-gray-light\",light:\"rgb(108, 108, 108)\",dark:null,path:\"/Components/ma-emoji-calm-gray-light\"},// Very dark gray.\n\"/Components/ma-icon-calm-gray-dark\":{id:\"\",name:\"ma-icon-calm-gray-dark\",light:\"rgb(26, 26, 26)\",dark:null,path:\"/Components/ma-icon-calm-gray-dark\"},// Dark gray.\n\"/Components/ma-icon-calm-gray-light\":{id:\"\",name:\"ma-icon-calm-gray-light\",light:\"rgb(51, 51, 51)\",dark:null,path:\"/Components/ma-icon-calm-gray-light\"},// Medium gray.\n\"/Components/metal-icon-calm-gray-dark\":{id:\"\",name:\"metal-icon-calm-gray-dark\",light:\"rgb(108, 108, 108)\",dark:null,path:\"/Components/metal-icon-calm-gray-dark\"},// Light gray.\n\"/Components/metal-icon-calm-gray-light\":{id:\"\",name:\"metal-icon-calm-gray-light\",light:\"rgb(189, 189, 189)\",dark:null,path:\"/Components/metal-icon-calm-gray-light\"},// Blue.\n\"/Effects/Effects/focus-ring\":{id:\"\",name:\"focus-ring\",light:\"rgb(0, 136, 255)\",dark:null,path:\"/Effects/Effects/focus-ring\"},// Red\n\"/Effects/Effects/focus-ring-error\":{id:\"\",name:\"focus-ring-error\",light:\"rgb(230, 50, 35)\",dark:null,path:\"/Effects/Effects/focus-ring-error\"},// Color with 18% opacity.\n\"/Effects/Effects/shadow-2xl_01\":{id:\"\",name:\"shadow-2xl_01\",light:\"rgba(245, 245, 245, 0.18)\",dark:null,path:\"/Effects/Effects/shadow-2xl_01\"},// Color with 4% opacity.\n\"/Effects/Effects/shadow-2xl_02\":{id:\"\",name:\"shadow-2xl_02\",light:\"rgba(245, 245, 245, 0.04)\",dark:null,path:\"/Effects/Effects/shadow-2xl_02\"},// Color with 14% opacity.\n\"/Effects/Effects/shadow-3xl_01\":{id:\"\",name:\"shadow-3xl_01\",light:\"rgba(245, 245, 245, 0.14)\",dark:null,path:\"/Effects/Effects/shadow-3xl_01\"},// Color with 4% opacity.\n\"/Effects/Effects/shadow-3xl_02\":{id:\"\",name:\"shadow-3xl_02\",light:\"rgba(245, 245, 245, 0.04)\",dark:null,path:\"/Effects/Effects/shadow-3xl_02\"},// Color with 8% opacity.\n\"/Effects/Effects/shadow-lg_01\":{id:\"\",name:\"shadow-lg_01\",light:\"rgba(245, 245, 245, 0.08)\",dark:null,path:\"/Effects/Effects/shadow-lg_01\"},// Color with 3% opacity.\n\"/Effects/Effects/shadow-lg_02\":{id:\"\",name:\"shadow-lg_02\",light:\"rgba(245, 245, 245, 0.03)\",dark:null,path:\"/Effects/Effects/shadow-lg_02\"},// Color with 4% opacity.\n\"/Effects/Effects/shadow-lg_03\":{id:\"\",name:\"shadow-lg_03\",light:\"rgba(245, 245, 245, 0.04)\",dark:null,path:\"/Effects/Effects/shadow-lg_03\"},// Color with 10% opacity.\n\"/Effects/Effects/shadow-md_01\":{id:\"\",name:\"shadow-md_01\",light:\"rgba(245, 245, 245, 0.1)\",dark:null,path:\"/Effects/Effects/shadow-md_01\"},// Color with 6% opacity.\n\"/Effects/Effects/shadow-md_02\":{id:\"\",name:\"shadow-md_02\",light:\"rgba(245, 245, 245, 0.06)\",dark:null,path:\"/Effects/Effects/shadow-md_02\"},// Color with 10% opacity.\n\"/Effects/Effects/shadow-sm_01\":{id:\"\",name:\"shadow-sm_01\",light:\"rgba(245, 245, 245, 0.1)\",dark:null,path:\"/Effects/Effects/shadow-sm_01\"},// Color with 10% opacity.\n\"/Effects/Effects/shadow-sm_02\":{id:\"\",name:\"shadow-sm_02\",light:\"rgba(245, 245, 245, 0.1)\",dark:null,path:\"/Effects/Effects/shadow-sm_02\"},// Color with 8% opacity.\n\"/Effects/Effects/shadow-xl_01\":{id:\"\",name:\"shadow-xl_01\",light:\"rgba(245, 245, 245, 0.08)\",dark:null,path:\"/Effects/Effects/shadow-xl_01\"},// Color with 3% opacity.\n\"/Effects/Effects/shadow-xl_02\":{id:\"\",name:\"shadow-xl_02\",light:\"rgba(245, 245, 245, 0.03)\",dark:null,path:\"/Effects/Effects/shadow-xl_02\"},// Color with 4% opacity.\n\"/Effects/Effects/shadow-xl_03\":{id:\"\",name:\"shadow-xl_03\",light:\"rgba(245, 245, 245, 0.04)\",dark:null,path:\"/Effects/Effects/shadow-xl_03\"},// Color with 5% opacity.\n\"/Effects/Effects/shadow-xs\":{id:\"\",name:\"shadow-xs\",light:\"rgba(245, 245, 245, 0.05)\",dark:null,path:\"/Effects/Effects/shadow-xs\"},// Transparent.\n\"/transparent\":{id:\"\",name:\"Transparent\",light:\"rgba(0, 0, 0, 0)\",dark:null,path:\"/transparent\"},// Blue.\n\"/Utility colors/utility-brand-bunq-100\":{id:\"\",name:\"utility-brand-bunq-100\",light:\"rgb(204, 235, 255)\",dark:null,path:\"/Utility colors/utility-brand-bunq-100\"},// Blue.\n\"/Utility colors/utility-brand-bunq-200\":{id:\"\",name:\"utility-brand-bunq-200\",light:\"rgb(153, 215, 255)\",dark:null,path:\"/Utility colors/utility-brand-bunq-200\"},// Blue.\n\"/Utility colors/utility-brand-bunq-300\":{id:\"\",name:\"utility-brand-bunq-300\",light:\"rgb(82, 175, 255)\",dark:null,path:\"/Utility colors/utility-brand-bunq-300\"},// Blue.\n\"/Utility colors/utility-brand-bunq-400\":{id:\"\",name:\"utility-brand-bunq-400\",light:\"rgb(40, 156, 255)\",dark:null,path:\"/Utility colors/utility-brand-bunq-400\"},// Blue.\n\"/Utility colors/utility-brand-bunq-500\":{id:\"\",name:\"utility-brand-bunq-500\",light:\"rgb(0, 136, 255)\",dark:null,path:\"/Utility colors/utility-brand-bunq-500\"},// Blue.\n\"/Utility colors/utility-brand-bunq-600\":{id:\"\",name:\"utility-brand-bunq-600\",light:\"rgb(0, 109, 204)\",dark:null,path:\"/Utility colors/utility-brand-bunq-600\"},// Blue.\n\"/Utility colors/utility-brand-bunq-700\":{id:\"\",name:\"utility-brand-bunq-700\",light:\"rgb(0, 82, 153)\",dark:null,path:\"/Utility colors/utility-brand-bunq-700\"},// Blue.\n\"/Utility colors/utility-brand-bunq-800\":{id:\"\",name:\"utility-brand-bunq-800\",light:\"rgb(0, 54, 102)\",dark:null,path:\"/Utility colors/utility-brand-bunq-800\"},// Blue.\n\"/Utility colors/utility-brand-bunq-900\":{id:\"\",name:\"utility-brand-bunq-900\",light:\"rgb(0, 44, 82)\",dark:null,path:\"/Utility colors/utility-brand-bunq-900\"},// RGB(210,227,255).\n\"/Utility colors/utility-brand-tricount-100\":{id:\"\",name:\"utility-brand-tricount-100\",light:\"rgb(210, 227, 255)\",dark:null,path:\"/Utility colors/utility-brand-tricount-100\"},// RGB(170,203,254).\n\"/Utility colors/utility-brand-tricount-200\":{id:\"\",name:\"utility-brand-tricount-200\",light:\"rgb(170, 203, 254)\",dark:null,path:\"/Utility colors/utility-brand-tricount-200\"},// RGB(131,177,252).\n\"/Utility colors/utility-brand-tricount-300\":{id:\"\",name:\"utility-brand-tricount-300\",light:\"rgb(131, 177, 252)\",dark:null,path:\"/Utility colors/utility-brand-tricount-300\"},// Cyan/Turquoise.\n\"/Utility colors/utility-brand-tricount-400\":{id:\"\",name:\"utility-brand-tricount-400\",light:\"rgb(93, 152, 250)\",dark:null,path:\"/Utility colors/utility-brand-tricount-400\"},// Blue.\n\"/Utility colors/utility-brand-tricount-500\":{id:\"\",name:\"utility-brand-tricount-500\",light:\"rgb(55, 126, 247)\",dark:null,path:\"/Utility colors/utility-brand-tricount-500\"},// Blue.\n\"/Utility colors/utility-brand-tricount-600\":{id:\"\",name:\"utility-brand-tricount-600\",light:\"rgb(14, 98, 242)\",dark:null,path:\"/Utility colors/utility-brand-tricount-600\"},// Blue.\n\"/Utility colors/utility-brand-tricount-700\":{id:\"\",name:\"utility-brand-tricount-700\",light:\"rgb(13, 81, 197)\",dark:null,path:\"/Utility colors/utility-brand-tricount-700\"},// Blue.\n\"/Utility colors/utility-brand-tricount-800\":{id:\"\",name:\"utility-brand-tricount-800\",light:\"rgb(12, 64, 153)\",dark:null,path:\"/Utility colors/utility-brand-tricount-800\"},// RGB(10,47,109).\n\"/Utility colors/utility-brand-tricount-900\":{id:\"\",name:\"utility-brand-tricount-900\",light:\"rgb(10, 47, 109)\",dark:null,path:\"/Utility colors/utility-brand-tricount-900\"},// RGB(194,255,229).\n\"/Utility colors/utility-success-100\":{id:\"\",name:\"utility-success-100\",light:\"rgb(194, 255, 229)\",dark:null,path:\"/Utility colors/utility-success-100\"},// RGB(174,235,209).\n\"/Utility colors/utility-success-200\":{id:\"\",name:\"utility-success-200\",light:\"rgb(174, 235, 209)\",dark:null,path:\"/Utility colors/utility-success-200\"},// Cyan/Turquoise.\n\"/Utility colors/utility-success-300\":{id:\"\",name:\"utility-success-300\",light:\"rgb(69, 229, 163)\",dark:null,path:\"/Utility colors/utility-success-300\"},// Cyan/Turquoise.\n\"/Utility colors/utility-success-400\":{id:\"\",name:\"utility-success-400\",light:\"rgb(65, 217, 154)\",dark:null,path:\"/Utility colors/utility-success-400\"},// RGB(41,204,136).\n\"/Utility colors/utility-success-500\":{id:\"\",name:\"utility-success-500\",light:\"rgb(41, 204, 136)\",dark:null,path:\"/Utility colors/utility-success-500\"},// RGB(36,178,119).\n\"/Utility colors/utility-success-600\":{id:\"\",name:\"utility-success-600\",light:\"rgb(36, 178, 119)\",dark:null,path:\"/Utility colors/utility-success-600\"},// RGB(31,153,102).\n\"/Utility colors/utility-success-700\":{id:\"\",name:\"utility-success-700\",light:\"rgb(31, 153, 102)\",dark:null,path:\"/Utility colors/utility-success-700\"},// Green.\n\"/Utility colors/utility-success-800\":{id:\"\",name:\"utility-success-800\",light:\"rgb(21, 82, 56)\",dark:null,path:\"/Utility colors/utility-success-800\"},// RGB(1,62,36).\n\"/Utility colors/utility-success-900\":{id:\"\",name:\"utility-success-900\",light:\"rgb(1, 62, 36)\",dark:null,path:\"/Utility colors/utility-success-900\"},// RGB(255,228,209).\n\"/Utility colors/utility-warning-100\":{id:\"\",name:\"utility-warning-100\",light:\"rgb(255, 228, 209)\",dark:null,path:\"/Utility colors/utility-warning-100\"},// RGB(255,201,163).\n\"/Utility colors/utility-warning-200\":{id:\"\",name:\"utility-warning-200\",light:\"rgb(255, 201, 163)\",dark:null,path:\"/Utility colors/utility-warning-200\"},// Yellow/Orange.\n\"/Utility colors/utility-warning-300\":{id:\"\",name:\"utility-warning-300\",light:\"rgb(255, 154, 82)\",dark:null,path:\"/Utility colors/utility-warning-300\"},// RGB(250,133,50).\n\"/Utility colors/utility-warning-400\":{id:\"\",name:\"utility-warning-400\",light:\"rgb(250, 133, 50)\",dark:null,path:\"/Utility colors/utility-warning-400\"},// Orange.\n\"/Utility colors/utility-warning-500\":{id:\"\",name:\"utility-warning-500\",light:\"rgb(255, 120, 25)\",dark:null,path:\"/Utility colors/utility-warning-500\"},// Red/Pink.\n\"/Utility colors/utility-warning-600\":{id:\"\",name:\"utility-warning-600\",light:\"rgb(204, 85, 0)\",dark:null,path:\"/Utility colors/utility-warning-600\"},// Red/Pink.\n\"/Utility colors/utility-warning-700\":{id:\"\",name:\"utility-warning-700\",light:\"rgb(153, 64, 0)\",dark:null,path:\"/Utility colors/utility-warning-700\"},// Orange.\n\"/Utility colors/utility-warning-800\":{id:\"\",name:\"utility-warning-800\",light:\"rgb(102, 48, 10)\",dark:null,path:\"/Utility colors/utility-warning-800\"},// RGB(82,28,0).\n\"/Utility colors/utility-warning-900\":{id:\"\",name:\"utility-warning-900\",light:\"rgb(82, 28, 0)\",dark:null,path:\"/Utility colors/utility-warning-900\"},// RGB(255,185,178).\n\"/Utility colors/utility-error-100\":{id:\"\",name:\"utility-error-100\",light:\"rgb(255, 185, 178)\",dark:null,path:\"/Utility colors/utility-error-100\"},// RGB(245,155,147).\n\"/Utility colors/utility-error-200\":{id:\"\",name:\"utility-error-200\",light:\"rgb(245, 155, 147)\",dark:null,path:\"/Utility colors/utility-error-200\"},// RGB(245,109,98).\n\"/Utility colors/utility-error-300\":{id:\"\",name:\"utility-error-300\",light:\"rgb(245, 109, 98)\",dark:null,path:\"/Utility colors/utility-error-300\"},// Red/Pink.\n\"/Utility colors/utility-error-400\":{id:\"\",name:\"utility-error-400\",light:\"rgb(229, 71, 57)\",dark:null,path:\"/Utility colors/utility-error-400\"},// Red\n\"/Utility colors/utility-error-500\":{id:\"\",name:\"utility-error-500\",light:\"rgb(230, 50, 35)\",dark:null,path:\"/Utility colors/utility-error-500\"},// Red/Pink.\n\"/Utility colors/utility-error-600\":{id:\"\",name:\"utility-error-600\",light:\"rgb(204, 44, 31)\",dark:null,path:\"/Utility colors/utility-error-600\"},// Red/Pink.\n\"/Utility colors/utility-error-700\":{id:\"\",name:\"utility-error-700\",light:\"rgb(153, 33, 23)\",dark:null,path:\"/Utility colors/utility-error-700\"},// Dark red.\n\"/Utility colors/utility-error-800\":{id:\"\",name:\"utility-error-800\",light:\"rgb(89, 19, 14)\",dark:null,path:\"/Utility colors/utility-error-800\"},// RGB(77,0,0).\n\"/Utility colors/utility-error-900\":{id:\"\",name:\"utility-error-900\",light:\"rgb(77, 0, 0)\",dark:null,path:\"/Utility colors/utility-error-900\"},// White.\n\"/Utility colors/utility-white\":{id:\"\",name:\"utility-white\",light:\"rgb(255, 255, 255)\",dark:null,path:\"/Utility colors/utility-white\"},// White with 10% opacity.\n\"/Utility colors/utility-white-10%\":{id:\"\",name:\"utility-white-10%\",light:\"rgba(255, 255, 255, 0.1)\",dark:null,path:\"/Utility colors/utility-white-10%\"},// White with 30% opacity.\n\"/Utility colors/utility-white-30%\":{id:\"\",name:\"utility-white-30%\",light:\"rgba(255, 255, 255, 0.3)\",dark:null,path:\"/Utility colors/utility-white-30%\"},// White with 50% opacity.\n\"/Utility colors/utility-white-50%\":{id:\"\",name:\"utility-white-50%\",light:\"rgba(255, 255, 255, 0.5)\",dark:null,path:\"/Utility colors/utility-white-50%\"},// White with 70% opacity.\n\"/Utility colors/utility-white-70%\":{id:\"\",name:\"utility-white-70%\",light:\"rgba(255, 255, 255, 0.7)\",dark:null,path:\"/Utility colors/utility-white-70%\"},// White with 90% opacity.\n\"/Utility colors/utility-white-90%\":{id:\"\",name:\"utility-white-90%\",light:\"rgba(255, 255, 255, 0.9)\",dark:null,path:\"/Utility colors/utility-white-90%\"},// Transparent.\n\"/Utility colors/utility-transparent\":{id:\"\",name:\"utility-transparent\",light:\"rgba(0, 0, 0, 0)\",dark:null,path:\"/Utility colors/utility-transparent\"},// Black.\n\"/Utility colors/utility-black\":{id:\"\",name:\"utility-black\",light:\"rgb(0, 0, 0)\",dark:null,path:\"/Utility colors/utility-black\"},// Black with 10% opacity.\n\"/Utility colors/utility-black-10%\":{id:\"\",name:\"utility-black-10%\",light:\"rgba(0, 0, 0, 0.1)\",dark:null,path:\"/Utility colors/utility-black-10%\"},// Black with 30% opacity.\n\"/Utility colors/utility-black-30%\":{id:\"\",name:\"utility-black-30%\",light:\"rgba(0, 0, 0, 0.3)\",dark:null,path:\"/Utility colors/utility-black-30%\"},// Black with 50% opacity.\n\"/Utility colors/utility-black-50%\":{id:\"\",name:\"utility-black-50%\",light:\"rgba(0, 0, 0, 0.5)\",dark:null,path:\"/Utility colors/utility-black-50%\"},// Black with 70% opacity.\n\"/Utility colors/utility-black-70%\":{id:\"\",name:\"utility-black-70%\",light:\"rgba(0, 0, 0, 0.7)\",dark:null,path:\"/Utility colors/utility-black-70%\"},// Black with 80% opacity.\n\"/Utility colors/utility-black-80%\":{id:\"\",name:\"utility-black-80%\",light:\"rgba(0, 0, 0, 0.8)\",dark:null,path:\"/Utility colors/utility-black-80%\"},// Black with 90% opacity.\n\"/Utility colors/utility-black-90%\":{id:\"\",name:\"utility-black-90%\",light:\"rgba(0, 0, 0, 0.9)\",dark:null,path:\"/Utility colors/utility-black-90%\"},// RGB(255,245,173).\n\"/Utility colors/utility-yellow-100\":{id:\"\",name:\"utility-yellow-100\",light:\"rgb(255, 245, 173)\",dark:null,path:\"/Utility colors/utility-yellow-100\"},// RGB(250,230,150).\n\"/Utility colors/utility-yellow-200\":{id:\"\",name:\"utility-yellow-200\",light:\"rgb(250, 230, 150)\",dark:null,path:\"/Utility colors/utility-yellow-200\"},// RGB(250,220,100).\n\"/Utility colors/utility-yellow-300\":{id:\"\",name:\"utility-yellow-300\",light:\"rgb(250, 220, 100)\",dark:null,path:\"/Utility colors/utility-yellow-300\"},// Yellow/Orange.\n\"/Utility colors/utility-yellow-400\":{id:\"\",name:\"utility-yellow-400\",light:\"rgb(250, 210, 50)\",dark:null,path:\"/Utility colors/utility-yellow-400\"},// Yellow/Orange.\n\"/Utility colors/utility-yellow-500\":{id:\"\",name:\"utility-yellow-500\",light:\"rgb(250, 200, 0)\",dark:null,path:\"/Utility colors/utility-yellow-500\"},// Yellow/Orange.\n\"/Utility colors/utility-yellow-600\":{id:\"\",name:\"utility-yellow-600\",light:\"rgb(204, 163, 0)\",dark:null,path:\"/Utility colors/utility-yellow-600\"},// RGB(153,122,0).\n\"/Utility colors/utility-yellow-700\":{id:\"\",name:\"utility-yellow-700\",light:\"rgb(153, 122, 0)\",dark:null,path:\"/Utility colors/utility-yellow-700\"},// Yellow.\n\"/Utility colors/utility-yellow-800\":{id:\"\",name:\"utility-yellow-800\",light:\"rgb(102, 82, 0)\",dark:null,path:\"/Utility colors/utility-yellow-800\"},// RGB(77,61,0).\n\"/Utility colors/utility-yellow-900\":{id:\"\",name:\"utility-yellow-900\",light:\"rgb(77, 61, 0)\",dark:null,path:\"/Utility colors/utility-yellow-900\"},// RGB(255,240,209).\n\"/Utility colors/utility-deep-yellow-100\":{id:\"\",name:\"utility-deep-yellow-100\",light:\"rgb(255, 240, 209)\",dark:null,path:\"/Utility colors/utility-deep-yellow-100\"},// RGB(253,221,153).\n\"/Utility colors/utility-deep-yellow-200\":{id:\"\",name:\"utility-deep-yellow-200\",light:\"rgb(253, 221, 153)\",dark:null,path:\"/Utility colors/utility-deep-yellow-200\"},// RGB(253,204,101).\n\"/Utility colors/utility-deep-yellow-300\":{id:\"\",name:\"utility-deep-yellow-300\",light:\"rgb(253, 204, 101)\",dark:null,path:\"/Utility colors/utility-deep-yellow-300\"},// Yellow/Orange.\n\"/Utility colors/utility-deep-yellow-400\":{id:\"\",name:\"utility-deep-yellow-400\",light:\"rgb(253, 188, 51)\",dark:null,path:\"/Utility colors/utility-deep-yellow-400\"},// Yellow/Orange.\n\"/Utility colors/utility-deep-yellow-500\":{id:\"\",name:\"utility-deep-yellow-500\",light:\"rgb(250, 170, 0)\",dark:null,path:\"/Utility colors/utility-deep-yellow-500\"},// RGB(204,139,0).\n\"/Utility colors/utility-deep-yellow-600\":{id:\"\",name:\"utility-deep-yellow-600\",light:\"rgb(204, 139, 0)\",dark:null,path:\"/Utility colors/utility-deep-yellow-600\"},// RGB(153,104,0).\n\"/Utility colors/utility-deep-yellow-700\":{id:\"\",name:\"utility-deep-yellow-700\",light:\"rgb(153, 104, 0)\",dark:null,path:\"/Utility colors/utility-deep-yellow-700\"},// Deep yellow.\n\"/Utility colors/utility-deep-yellow-800\":{id:\"\",name:\"utility-deep-yellow-800\",light:\"rgb(100, 68, 0)\",dark:null,path:\"/Utility colors/utility-deep-yellow-800\"},// RGB(80,55,0).\n\"/Utility colors/utility-deep-yellow-900\":{id:\"\",name:\"utility-deep-yellow-900\",light:\"rgb(80, 55, 0)\",dark:null,path:\"/Utility colors/utility-deep-yellow-900\"},// RGB(255,228,209).\n\"/Utility colors/utility-orange-100\":{id:\"\",name:\"utility-orange-100\",light:\"rgb(255, 228, 209)\",dark:null,path:\"/Utility colors/utility-orange-100\"},// RGB(255,201,163).\n\"/Utility colors/utility-orange-200\":{id:\"\",name:\"utility-orange-200\",light:\"rgb(255, 201, 163)\",dark:null,path:\"/Utility colors/utility-orange-200\"},// Yellow/Orange.\n\"/Utility colors/utility-orange-300\":{id:\"\",name:\"utility-orange-300\",light:\"rgb(255, 154, 82)\",dark:null,path:\"/Utility colors/utility-orange-300\"},// RGB(250,133,50).\n\"/Utility colors/utility-orange-400\":{id:\"\",name:\"utility-orange-400\",light:\"rgb(250, 133, 50)\",dark:null,path:\"/Utility colors/utility-orange-400\"},// Orange.\n\"/Utility colors/utility-orange-500\":{id:\"\",name:\"utility-orange-500\",light:\"rgb(255, 120, 25)\",dark:null,path:\"/Utility colors/utility-orange-500\"},// Red/Pink.\n\"/Utility colors/utility-orange-600\":{id:\"\",name:\"utility-orange-600\",light:\"rgb(204, 85, 0)\",dark:null,path:\"/Utility colors/utility-orange-600\"},// Red/Pink.\n\"/Utility colors/utility-orange-700\":{id:\"\",name:\"utility-orange-700\",light:\"rgb(153, 64, 0)\",dark:null,path:\"/Utility colors/utility-orange-700\"},// Orange.\n\"/Utility colors/utility-orange-800\":{id:\"\",name:\"utility-orange-800\",light:\"rgb(102, 48, 10)\",dark:null,path:\"/Utility colors/utility-orange-800\"},// RGB(82,28,0).\n\"/Utility colors/utility-orange-900\":{id:\"\",name:\"utility-orange-900\",light:\"rgb(82, 28, 0)\",dark:null,path:\"/Utility colors/utility-orange-900\"},// RGB(255,185,178).\n\"/Utility colors/utility-red-100\":{id:\"\",name:\"utility-red-100\",light:\"rgb(255, 185, 178)\",dark:null,path:\"/Utility colors/utility-red-100\"},// RGB(245,155,147).\n\"/Utility colors/utility-red-200\":{id:\"\",name:\"utility-red-200\",light:\"rgb(245, 155, 147)\",dark:null,path:\"/Utility colors/utility-red-200\"},// RGB(245,109,98).\n\"/Utility colors/utility-red-300\":{id:\"\",name:\"utility-red-300\",light:\"rgb(245, 109, 98)\",dark:null,path:\"/Utility colors/utility-red-300\"},// Red/Pink.\n\"/Utility colors/utility-red-400\":{id:\"\",name:\"utility-red-400\",light:\"rgb(229, 71, 57)\",dark:null,path:\"/Utility colors/utility-red-400\"},// Red\n\"/Utility colors/utility-red-500\":{id:\"\",name:\"utility-red-500\",light:\"rgb(230, 50, 35)\",dark:null,path:\"/Utility colors/utility-red-500\"},// Red/Pink.\n\"/Utility colors/utility-red-600\":{id:\"\",name:\"utility-red-600\",light:\"rgb(204, 44, 31)\",dark:null,path:\"/Utility colors/utility-red-600\"},// Red/Pink.\n\"/Utility colors/utility-red-700\":{id:\"\",name:\"utility-red-700\",light:\"rgb(153, 33, 23)\",dark:null,path:\"/Utility colors/utility-red-700\"},// Dark red.\n\"/Utility colors/utility-red-800\":{id:\"\",name:\"utility-red-800\",light:\"rgb(89, 19, 14)\",dark:null,path:\"/Utility colors/utility-red-800\"},// RGB(77,0,0).\n\"/Utility colors/utility-red-900\":{id:\"\",name:\"utility-red-900\",light:\"rgb(77, 0, 0)\",dark:null,path:\"/Utility colors/utility-red-900\"},// RGB(255,209,224).\n\"/Utility colors/utility-hot-pink-100\":{id:\"\",name:\"utility-hot-pink-100\",light:\"rgb(255, 209, 224)\",dark:null,path:\"/Utility colors/utility-hot-pink-100\"},// RGB(255,153,172).\n\"/Utility colors/utility-hot-pink-200\":{id:\"\",name:\"utility-hot-pink-200\",light:\"rgb(255, 153, 172)\",dark:null,path:\"/Utility colors/utility-hot-pink-200\"},// RGB(255,102,131).\n\"/Utility colors/utility-hot-pink-300\":{id:\"\",name:\"utility-hot-pink-300\",light:\"rgb(255, 102, 131)\",dark:null,path:\"/Utility colors/utility-hot-pink-300\"},// Purple/Magenta.\n\"/Utility colors/utility-hot-pink-400\":{id:\"\",name:\"utility-hot-pink-400\",light:\"rgb(255, 71, 106)\",dark:null,path:\"/Utility colors/utility-hot-pink-400\"},// Red/Pink.\n\"/Utility colors/utility-hot-pink-500\":{id:\"\",name:\"utility-hot-pink-500\",light:\"rgb(255, 45, 85)\",dark:null,path:\"/Utility colors/utility-hot-pink-500\"},// Red/Pink.\n\"/Utility colors/utility-hot-pink-600\":{id:\"\",name:\"utility-hot-pink-600\",light:\"rgb(204, 36, 68)\",dark:null,path:\"/Utility colors/utility-hot-pink-600\"},// Red/Pink.\n\"/Utility colors/utility-hot-pink-700\":{id:\"\",name:\"utility-hot-pink-700\",light:\"rgb(178, 32, 59)\",dark:null,path:\"/Utility colors/utility-hot-pink-700\"},// Hot pink.\n\"/Utility colors/utility-hot-pink-800\":{id:\"\",name:\"utility-hot-pink-800\",light:\"rgb(102, 18, 34)\",dark:null,path:\"/Utility colors/utility-hot-pink-800\"},// RGB(77,0,14).\n\"/Utility colors/utility-hot-pink-900\":{id:\"\",name:\"utility-hot-pink-900\",light:\"rgb(77, 0, 14)\",dark:null,path:\"/Utility colors/utility-hot-pink-900\"},// RGB(255,209,240).\n\"/Utility colors/utility-fuchsia-100\":{id:\"\",name:\"utility-fuchsia-100\",light:\"rgb(255, 209, 240)\",dark:null,path:\"/Utility colors/utility-fuchsia-100\"},// RGB(244,172,213).\n\"/Utility colors/utility-fuchsia-200\":{id:\"\",name:\"utility-fuchsia-200\",light:\"rgb(244, 172, 213)\",dark:null,path:\"/Utility colors/utility-fuchsia-200\"},// Purple/Magenta.\n\"/Utility colors/utility-fuchsia-300\":{id:\"\",name:\"utility-fuchsia-300\",light:\"rgb(227, 91, 168)\",dark:null,path:\"/Utility colors/utility-fuchsia-300\"},// Purple/Magenta.\n\"/Utility colors/utility-fuchsia-400\":{id:\"\",name:\"utility-fuchsia-400\",light:\"rgb(227, 45, 148)\",dark:null,path:\"/Utility colors/utility-fuchsia-400\"},// Purple/Magenta.\n\"/Utility colors/utility-fuchsia-500\":{id:\"\",name:\"utility-fuchsia-500\",light:\"rgb(227, 23, 138)\",dark:null,path:\"/Utility colors/utility-fuchsia-500\"},// Purple/Magenta.\n\"/Utility colors/utility-fuchsia-600\":{id:\"\",name:\"utility-fuchsia-600\",light:\"rgb(204, 43, 135)\",dark:null,path:\"/Utility colors/utility-fuchsia-600\"},// Purple/Magenta.\n\"/Utility colors/utility-fuchsia-700\":{id:\"\",name:\"utility-fuchsia-700\",light:\"rgb(153, 32, 101)\",dark:null,path:\"/Utility colors/utility-fuchsia-700\"},// Fuchsia.\n\"/Utility colors/utility-fuchsia-800\":{id:\"\",name:\"utility-fuchsia-800\",light:\"rgb(102, 21, 67)\",dark:null,path:\"/Utility colors/utility-fuchsia-800\"},// RGB(77,0,43).\n\"/Utility colors/utility-fuchsia-900\":{id:\"\",name:\"utility-fuchsia-900\",light:\"rgb(77, 0, 43)\",dark:null,path:\"/Utility colors/utility-fuchsia-900\"},// RGB(252,178,255).\n\"/Utility colors/utility-purple-100\":{id:\"\",name:\"utility-purple-100\",light:\"rgb(252, 178, 255)\",dark:null,path:\"/Utility colors/utility-purple-100\"},// RGB(230,143,239).\n\"/Utility colors/utility-purple-200\":{id:\"\",name:\"utility-purple-200\",light:\"rgb(230, 143, 239)\",dark:null,path:\"/Utility colors/utility-purple-200\"},// RGB(228,120,239).\n\"/Utility colors/utility-purple-300\":{id:\"\",name:\"utility-purple-300\",light:\"rgb(228, 120, 239)\",dark:null,path:\"/Utility colors/utility-purple-300\"},// Purple/Magenta.\n\"/Utility colors/utility-purple-400\":{id:\"\",name:\"utility-purple-400\",light:\"rgb(224, 81, 239)\",dark:null,path:\"/Utility colors/utility-purple-400\"},// Purple/Magenta.\n\"/Utility colors/utility-purple-500\":{id:\"\",name:\"utility-purple-500\",light:\"rgb(200, 52, 214)\",dark:null,path:\"/Utility colors/utility-purple-500\"},// Purple/Magenta.\n\"/Utility colors/utility-purple-600\":{id:\"\",name:\"utility-purple-600\",light:\"rgb(171, 46, 184)\",dark:null,path:\"/Utility colors/utility-purple-600\"},// Purple/Magenta.\n\"/Utility colors/utility-purple-700\":{id:\"\",name:\"utility-purple-700\",light:\"rgb(134, 35, 143)\",dark:null,path:\"/Utility colors/utility-purple-700\"},// Purple.\n\"/Utility colors/utility-purple-800\":{id:\"\",name:\"utility-purple-800\",light:\"rgb(95, 25, 102)\",dark:null,path:\"/Utility colors/utility-purple-800\"},// RGB(70,11,77).\n\"/Utility colors/utility-purple-900\":{id:\"\",name:\"utility-purple-900\",light:\"rgb(70, 11, 77)\",dark:null,path:\"/Utility colors/utility-purple-900\"},// RGB(235,172,246).\n\"/Utility colors/utility-deep-purple-100\":{id:\"\",name:\"utility-deep-purple-100\",light:\"rgb(235, 172, 246)\",dark:null,path:\"/Utility colors/utility-deep-purple-100\"},// RGB(213,136,226).\n\"/Utility colors/utility-deep-purple-200\":{id:\"\",name:\"utility-deep-purple-200\",light:\"rgb(213, 136, 226)\",dark:null,path:\"/Utility colors/utility-deep-purple-200\"},// Purple/Magenta.\n\"/Utility colors/utility-deep-purple-300\":{id:\"\",name:\"utility-deep-purple-300\",light:\"rgb(206, 90, 226)\",dark:null,path:\"/Utility colors/utility-deep-purple-300\"},// Purple/Magenta.\n\"/Utility colors/utility-deep-purple-400\":{id:\"\",name:\"utility-deep-purple-400\",light:\"rgb(203, 68, 226)\",dark:null,path:\"/Utility colors/utility-deep-purple-400\"},// Purple/Magenta.\n\"/Utility colors/utility-deep-purple-500\":{id:\"\",name:\"utility-deep-purple-500\",light:\"rgb(162, 47, 182)\",dark:null,path:\"/Utility colors/utility-deep-purple-500\"},// Purple/Magenta.\n\"/Utility colors/utility-deep-purple-600\":{id:\"\",name:\"utility-deep-purple-600\",light:\"rgb(137, 40, 154)\",dark:null,path:\"/Utility colors/utility-deep-purple-600\"},// Purple/Magenta.\n\"/Utility colors/utility-deep-purple-700\":{id:\"\",name:\"utility-deep-purple-700\",light:\"rgb(112, 32, 126)\",dark:null,path:\"/Utility colors/utility-deep-purple-700\"},// Deep purple.\n\"/Utility colors/utility-deep-purple-800\":{id:\"\",name:\"utility-deep-purple-800\",light:\"rgb(88, 5, 102)\",dark:null,path:\"/Utility colors/utility-deep-purple-800\"},// RGB(66,4,77).\n\"/Utility colors/utility-deep-purple-900\":{id:\"\",name:\"utility-deep-purple-900\",light:\"rgb(66, 4, 77)\",dark:null,path:\"/Utility colors/utility-deep-purple-900\"},// RGB(189,161,229).\n\"/Utility colors/utility-indigo-100\":{id:\"\",name:\"utility-indigo-100\",light:\"rgb(189, 161, 229)\",dark:null,path:\"/Utility colors/utility-indigo-100\"},// RGB(166,130,217).\n\"/Utility colors/utility-indigo-200\":{id:\"\",name:\"utility-indigo-200\",light:\"rgb(166, 130, 217)\",dark:null,path:\"/Utility colors/utility-indigo-200\"},// Purple/Magenta.\n\"/Utility colors/utility-indigo-300\":{id:\"\",name:\"utility-indigo-300\",light:\"rgb(140, 87, 217)\",dark:null,path:\"/Utility colors/utility-indigo-300\"},// Purple/Magenta.\n\"/Utility colors/utility-indigo-400\":{id:\"\",name:\"utility-indigo-400\",light:\"rgb(135, 69, 229)\",dark:null,path:\"/Utility colors/utility-indigo-400\"},// Purple/Magenta.\n\"/Utility colors/utility-indigo-500\":{id:\"\",name:\"utility-indigo-500\",light:\"rgb(124, 50, 229)\",dark:null,path:\"/Utility colors/utility-indigo-500\"},// Purple/Magenta.\n\"/Utility colors/utility-indigo-600\":{id:\"\",name:\"utility-indigo-600\",light:\"rgb(110, 45, 204)\",dark:null,path:\"/Utility colors/utility-indigo-600\"},// Blue.\n\"/Utility colors/utility-indigo-700\":{id:\"\",name:\"utility-indigo-700\",light:\"rgb(97, 39, 178)\",dark:null,path:\"/Utility colors/utility-indigo-700\"},// Indigo.\n\"/Utility colors/utility-indigo-800\":{id:\"\",name:\"utility-indigo-800\",light:\"rgb(69, 28, 128)\",dark:null,path:\"/Utility colors/utility-indigo-800\"},// RGB(48,10,102).\n\"/Utility colors/utility-indigo-900\":{id:\"\",name:\"utility-indigo-900\",light:\"rgb(48, 10, 102)\",dark:null,path:\"/Utility colors/utility-indigo-900\"},// RGB(170,192,243).\n\"/Utility colors/utility-deep-blue-100\":{id:\"\",name:\"utility-deep-blue-100\",light:\"rgb(170, 192, 243)\",dark:null,path:\"/Utility colors/utility-deep-blue-100\"},// RGB(138,165,229).\n\"/Utility colors/utility-deep-blue-200\":{id:\"\",name:\"utility-deep-blue-200\",light:\"rgb(138, 165, 229)\",dark:null,path:\"/Utility colors/utility-deep-blue-200\"},// Blue.\n\"/Utility colors/utility-deep-blue-300\":{id:\"\",name:\"utility-deep-blue-300\",light:\"rgb(80, 116, 201)\",dark:null,path:\"/Utility colors/utility-deep-blue-300\"},// Blue.\n\"/Utility colors/utility-deep-blue-400\":{id:\"\",name:\"utility-deep-blue-400\",light:\"rgb(60, 102, 201)\",dark:null,path:\"/Utility colors/utility-deep-blue-400\"},// Blue.\n\"/Utility colors/utility-deep-blue-500\":{id:\"\",name:\"utility-deep-blue-500\",light:\"rgb(27, 80, 204)\",dark:null,path:\"/Utility colors/utility-deep-blue-500\"},// Blue.\n\"/Utility colors/utility-deep-blue-600\":{id:\"\",name:\"utility-deep-blue-600\",light:\"rgb(23, 69, 178)\",dark:null,path:\"/Utility colors/utility-deep-blue-600\"},// Blue.\n\"/Utility colors/utility-deep-blue-700\":{id:\"\",name:\"utility-deep-blue-700\",light:\"rgb(28, 65, 153)\",dark:null,path:\"/Utility colors/utility-deep-blue-700\"},// Deep blue.\n\"/Utility colors/utility-deep-blue-800\":{id:\"\",name:\"utility-deep-blue-800\",light:\"rgb(13, 40, 102)\",dark:null,path:\"/Utility colors/utility-deep-blue-800\"},// RGB(0,18,77).\n\"/Utility colors/utility-deep-blue-900\":{id:\"\",name:\"utility-deep-blue-900\",light:\"rgb(0, 18, 77)\",dark:null,path:\"/Utility colors/utility-deep-blue-900\"},// RGB(191,231,255).\n\"/Utility colors/utility-blue-100\":{id:\"\",name:\"utility-blue-100\",light:\"rgb(191, 231, 255)\",dark:null,path:\"/Utility colors/utility-blue-100\"},// RGB(153,207,255).\n\"/Utility colors/utility-blue-200\":{id:\"\",name:\"utility-blue-200\",light:\"rgb(153, 207, 255)\",dark:null,path:\"/Utility colors/utility-blue-200\"},// RGB(102,184,255).\n\"/Utility colors/utility-blue-300\":{id:\"\",name:\"utility-blue-300\",light:\"rgb(102, 184, 255)\",dark:null,path:\"/Utility colors/utility-blue-300\"},// Cyan/Turquoise.\n\"/Utility colors/utility-blue-400\":{id:\"\",name:\"utility-blue-400\",light:\"rgb(51, 160, 255)\",dark:null,path:\"/Utility colors/utility-blue-400\"},// Blue.\n\"/Utility colors/utility-blue-500\":{id:\"\",name:\"utility-blue-500\",light:\"rgb(0, 136, 255)\",dark:null,path:\"/Utility colors/utility-blue-500\"},// Blue.\n\"/Utility colors/utility-blue-600\":{id:\"\",name:\"utility-blue-600\",light:\"rgb(0, 109, 204)\",dark:null,path:\"/Utility colors/utility-blue-600\"},// RGB(0,68,128).\n\"/Utility colors/utility-blue-700\":{id:\"\",name:\"utility-blue-700\",light:\"rgb(0, 68, 128)\",dark:null,path:\"/Utility colors/utility-blue-700\"},// Blue.\n\"/Utility colors/utility-blue-800\":{id:\"\",name:\"utility-blue-800\",light:\"rgb(0, 54, 102)\",dark:null,path:\"/Utility colors/utility-blue-800\"},// RGB(0,34,82).\n\"/Utility colors/utility-blue-900\":{id:\"\",name:\"utility-blue-900\",light:\"rgb(0, 34, 82)\",dark:null,path:\"/Utility colors/utility-blue-900\"},// RGB(191,233,255).\n\"/Utility colors/utility-light-blue-100\":{id:\"\",name:\"utility-light-blue-100\",light:\"rgb(191, 233, 255)\",dark:null,path:\"/Utility colors/utility-light-blue-100\"},// RGB(166,224,255).\n\"/Utility colors/utility-light-blue-200\":{id:\"\",name:\"utility-light-blue-200\",light:\"rgb(166, 224, 255)\",dark:null,path:\"/Utility colors/utility-light-blue-200\"},// RGB(102,202,255).\n\"/Utility colors/utility-light-blue-300\":{id:\"\",name:\"utility-light-blue-300\",light:\"rgb(102, 202, 255)\",dark:null,path:\"/Utility colors/utility-light-blue-300\"},// Cyan/Turquoise.\n\"/Utility colors/utility-light-blue-400\":{id:\"\",name:\"utility-light-blue-400\",light:\"rgb(85, 187, 242)\",dark:null,path:\"/Utility colors/utility-light-blue-400\"},// Cyan/Turquoise.\n\"/Utility colors/utility-light-blue-500\":{id:\"\",name:\"utility-light-blue-500\",light:\"rgb(67, 181, 242)\",dark:null,path:\"/Utility colors/utility-light-blue-500\"},// Cyan/Turquoise.\n\"/Utility colors/utility-light-blue-600\":{id:\"\",name:\"utility-light-blue-600\",light:\"rgb(57, 153, 204)\",dark:null,path:\"/Utility colors/utility-light-blue-600\"},// Blue.\n\"/Utility colors/utility-light-blue-700\":{id:\"\",name:\"utility-light-blue-700\",light:\"rgb(35, 112, 153)\",dark:null,path:\"/Utility colors/utility-light-blue-700\"},// Light blue.\n\"/Utility colors/utility-light-blue-800\":{id:\"\",name:\"utility-light-blue-800\",light:\"rgb(20, 73, 102)\",dark:null,path:\"/Utility colors/utility-light-blue-800\"},// RGB(8,56,82).\n\"/Utility colors/utility-light-blue-900\":{id:\"\",name:\"utility-light-blue-900\",light:\"rgb(8, 56, 82)\",dark:null,path:\"/Utility colors/utility-light-blue-900\"},// RGB(191,255,253).\n\"/Utility colors/utility-cyan-100\":{id:\"\",name:\"utility-cyan-100\",light:\"rgb(191, 255, 253)\",dark:null,path:\"/Utility colors/utility-cyan-100\"},// RGB(171,243,233).\n\"/Utility colors/utility-cyan-200\":{id:\"\",name:\"utility-cyan-200\",light:\"rgb(171, 243, 233)\",dark:null,path:\"/Utility colors/utility-cyan-200\"},// RGB(100,250,229).\n\"/Utility colors/utility-cyan-300\":{id:\"\",name:\"utility-cyan-300\",light:\"rgb(100, 250, 229)\",dark:null,path:\"/Utility colors/utility-cyan-300\"},// Cyan/Turquoise.\n\"/Utility colors/utility-cyan-400\":{id:\"\",name:\"utility-cyan-400\",light:\"rgb(70, 235, 212)\",dark:null,path:\"/Utility colors/utility-cyan-400\"},// Cyan/Turquoise.\n\"/Utility colors/utility-cyan-500\":{id:\"\",name:\"utility-cyan-500\",light:\"rgb(22, 224, 196)\",dark:null,path:\"/Utility colors/utility-cyan-500\"},// Cyan/Turquoise.\n\"/Utility colors/utility-cyan-600\":{id:\"\",name:\"utility-cyan-600\",light:\"rgb(20, 204, 178)\",dark:null,path:\"/Utility colors/utility-cyan-600\"},// RGB(17,168,147).\n\"/Utility colors/utility-cyan-700\":{id:\"\",name:\"utility-cyan-700\",light:\"rgb(17, 168, 147)\",dark:null,path:\"/Utility colors/utility-cyan-700\"},// Cyan.\n\"/Utility colors/utility-cyan-800\":{id:\"\",name:\"utility-cyan-800\",light:\"rgb(10, 102, 89)\",dark:null,path:\"/Utility colors/utility-cyan-800\"},// RGB(0,77,66).\n\"/Utility colors/utility-cyan-900\":{id:\"\",name:\"utility-cyan-900\",light:\"rgb(0, 77, 66)\",dark:null,path:\"/Utility colors/utility-cyan-900\"},// RGB(202,253,252).\n\"/Utility colors/utility-turquoise-100\":{id:\"\",name:\"utility-turquoise-100\",light:\"rgb(202, 253, 252)\",dark:null,path:\"/Utility colors/utility-turquoise-100\"},// RGB(163,233,232).\n\"/Utility colors/utility-turquoise-200\":{id:\"\",name:\"utility-turquoise-200\",light:\"rgb(163, 233, 232)\",dark:null,path:\"/Utility colors/utility-turquoise-200\"},// Cyan/Turquoise.\n\"/Utility colors/utility-turquoise-300\":{id:\"\",name:\"utility-turquoise-300\",light:\"rgb(94, 235, 231)\",dark:null,path:\"/Utility colors/utility-turquoise-300\"},// Cyan/Turquoise.\n\"/Utility colors/utility-turquoise-400\":{id:\"\",name:\"utility-turquoise-400\",light:\"rgb(67, 224, 220)\",dark:null,path:\"/Utility colors/utility-turquoise-400\"},// Cyan/Turquoise.\n\"/Utility colors/utility-turquoise-500\":{id:\"\",name:\"utility-turquoise-500\",light:\"rgb(38, 199, 195)\",dark:null,path:\"/Utility colors/utility-turquoise-500\"},// Cyan/Turquoise.\n\"/Utility colors/utility-turquoise-600\":{id:\"\",name:\"utility-turquoise-600\",light:\"rgb(33, 178, 176)\",dark:null,path:\"/Utility colors/utility-turquoise-600\"},// RGB(21,143,139).\n\"/Utility colors/utility-turquoise-700\":{id:\"\",name:\"utility-turquoise-700\",light:\"rgb(21, 143, 139)\",dark:null,path:\"/Utility colors/utility-turquoise-700\"},// Turquoise.\n\"/Utility colors/utility-turquoise-800\":{id:\"\",name:\"utility-turquoise-800\",light:\"rgb(6, 106, 103)\",dark:null,path:\"/Utility colors/utility-turquoise-800\"},// RGB(0,77,74).\n\"/Utility colors/utility-turquoise-900\":{id:\"\",name:\"utility-turquoise-900\",light:\"rgb(0, 77, 74)\",dark:null,path:\"/Utility colors/utility-turquoise-900\"},// RGB(194,255,229).\n\"/Utility colors/utility-green-100\":{id:\"\",name:\"utility-green-100\",light:\"rgb(194, 255, 229)\",dark:null,path:\"/Utility colors/utility-green-100\"},// RGB(174,235,209).\n\"/Utility colors/utility-green-200\":{id:\"\",name:\"utility-green-200\",light:\"rgb(174, 235, 209)\",dark:null,path:\"/Utility colors/utility-green-200\"},// Cyan/Turquoise.\n\"/Utility colors/utility-green-300\":{id:\"\",name:\"utility-green-300\",light:\"rgb(69, 229, 163)\",dark:null,path:\"/Utility colors/utility-green-300\"},// Cyan/Turquoise.\n\"/Utility colors/utility-green-400\":{id:\"\",name:\"utility-green-400\",light:\"rgb(65, 217, 154)\",dark:null,path:\"/Utility colors/utility-green-400\"},// RGB(41,204,136).\n\"/Utility colors/utility-green-500\":{id:\"\",name:\"utility-green-500\",light:\"rgb(41, 204, 136)\",dark:null,path:\"/Utility colors/utility-green-500\"},// RGB(36,178,119).\n\"/Utility colors/utility-green-600\":{id:\"\",name:\"utility-green-600\",light:\"rgb(36, 178, 119)\",dark:null,path:\"/Utility colors/utility-green-600\"},// RGB(31,153,102).\n\"/Utility colors/utility-green-700\":{id:\"\",name:\"utility-green-700\",light:\"rgb(31, 153, 102)\",dark:null,path:\"/Utility colors/utility-green-700\"},// Green.\n\"/Utility colors/utility-green-800\":{id:\"\",name:\"utility-green-800\",light:\"rgb(21, 82, 56)\",dark:null,path:\"/Utility colors/utility-green-800\"},// RGB(1,62,36).\n\"/Utility colors/utility-green-900\":{id:\"\",name:\"utility-green-900\",light:\"rgb(1, 62, 36)\",dark:null,path:\"/Utility colors/utility-green-900\"},// RGB(184,229,193).\n\"/Utility colors/utility-deep-green-100\":{id:\"\",name:\"utility-deep-green-100\",light:\"rgb(184, 229, 193)\",dark:null,path:\"/Utility colors/utility-deep-green-100\"},// RGB(152,217,165).\n\"/Utility colors/utility-deep-green-200\":{id:\"\",name:\"utility-deep-green-200\",light:\"rgb(152, 217, 165)\",dark:null,path:\"/Utility colors/utility-deep-green-200\"},// RGB(82,204,107).\n\"/Utility colors/utility-deep-green-300\":{id:\"\",name:\"utility-deep-green-300\",light:\"rgb(82, 204, 107)\",dark:null,path:\"/Utility colors/utility-deep-green-300\"},// Green.\n\"/Utility colors/utility-deep-green-400\":{id:\"\",name:\"utility-deep-green-400\",light:\"rgb(67, 191, 93)\",dark:null,path:\"/Utility colors/utility-deep-green-400\"},// Green.\n\"/Utility colors/utility-deep-green-500\":{id:\"\",name:\"utility-deep-green-500\",light:\"rgb(45, 178, 73)\",dark:null,path:\"/Utility colors/utility-deep-green-500\"},// Green.\n\"/Utility colors/utility-deep-green-600\":{id:\"\",name:\"utility-deep-green-600\",light:\"rgb(50, 145, 70)\",dark:null,path:\"/Utility colors/utility-deep-green-600\"},// Green.\n\"/Utility colors/utility-deep-green-700\":{id:\"\",name:\"utility-deep-green-700\",light:\"rgb(37, 106, 51)\",dark:null,path:\"/Utility colors/utility-deep-green-700\"},// Deep green.\n\"/Utility colors/utility-deep-green-800\":{id:\"\",name:\"utility-deep-green-800\",light:\"rgb(15, 77, 28)\",dark:null,path:\"/Utility colors/utility-deep-green-800\"},// RGB(5,51,15).\n\"/Utility colors/utility-deep-green-900\":{id:\"\",name:\"utility-deep-green-900\",light:\"rgb(5, 51, 15)\",dark:null,path:\"/Utility colors/utility-deep-green-900\"},// RGB(229,229,234).\n\"/Utility colors/utility-gray-100\":{id:\"\",name:\"utility-gray-100\",light:\"rgb(229, 229, 234)\",dark:null,path:\"/Utility colors/utility-gray-100\"},// RGB(209,209,214).\n\"/Utility colors/utility-gray-200\":{id:\"\",name:\"utility-gray-200\",light:\"rgb(209, 209, 214)\",dark:null,path:\"/Utility colors/utility-gray-200\"},// RGB(199,199,204).\n\"/Utility colors/utility-gray-300\":{id:\"\",name:\"utility-gray-300\",light:\"rgb(199, 199, 204)\",dark:null,path:\"/Utility colors/utility-gray-300\"},// RGB(174,174,178).\n\"/Utility colors/utility-gray-400\":{id:\"\",name:\"utility-gray-400\",light:\"rgb(174, 174, 178)\",dark:null,path:\"/Utility colors/utility-gray-400\"},// RGB(242,242,247).\n\"/Utility colors/utility-gray-50\":{id:\"\",name:\"utility-gray-50\",light:\"rgb(242, 242, 247)\",dark:null,path:\"/Utility colors/utility-gray-50\"},// RGB(142,142,147).\n\"/Utility colors/utility-gray-500\":{id:\"\",name:\"utility-gray-500\",light:\"rgb(142, 142, 147)\",dark:null,path:\"/Utility colors/utility-gray-500\"},// Medium gray.\n\"/Utility colors/utility-gray-600\":{id:\"\",name:\"utility-gray-600\",light:\"rgb(99, 99, 102)\",dark:null,path:\"/Utility colors/utility-gray-600\"},// RGB(72,72,74).\n\"/Utility colors/utility-gray-700\":{id:\"\",name:\"utility-gray-700\",light:\"rgb(72, 72, 74)\",dark:null,path:\"/Utility colors/utility-gray-700\"},// RGB(58,58,60).\n\"/Utility colors/utility-gray-800\":{id:\"\",name:\"utility-gray-800\",light:\"rgb(58, 58, 60)\",dark:null,path:\"/Utility colors/utility-gray-800\"},// RGB(44,44,46).\n\"/Utility colors/utility-gray-900\":{id:\"\",name:\"utility-gray-900\",light:\"rgb(44, 44, 46)\",dark:null,path:\"/Utility colors/utility-gray-900\"},// RGB(28,28,30).\n\"/Utility colors/utility-gray-950\":{id:\"\",name:\"utility-gray-950\",light:\"rgb(28, 28, 30)\",dark:null,path:\"/Utility colors/utility-gray-950\"},// Rainbow Signature — solid stops (brand guidelines).\n\"/Brand colors/rainbow-tree\":{id:\"\",name:\"rainbow-tree\",light:\"rgb(0, 129, 96)\",dark:null,path:\"/Brand colors/rainbow-tree\"},\"/Brand colors/rainbow-grass\":{id:\"\",name:\"rainbow-grass\",light:\"rgb(47, 155, 71)\",dark:null,path:\"/Brand colors/rainbow-grass\"},\"/Brand colors/rainbow-apple\":{id:\"\",name:\"rainbow-apple\",light:\"rgb(98, 182, 79)\",dark:null,path:\"/Brand colors/rainbow-apple\"},\"/Brand colors/rainbow-zest\":{id:\"\",name:\"rainbow-zest\",light:\"rgb(137, 204, 83)\",dark:null,path:\"/Brand colors/rainbow-zest\"},\"/Brand colors/rainbow-brook\":{id:\"\",name:\"rainbow-brook\",light:\"rgb(61, 184, 173)\",dark:null,path:\"/Brand colors/rainbow-brook\"},\"/Brand colors/rainbow-pool\":{id:\"\",name:\"rainbow-pool\",light:\"rgb(51, 148, 215)\",dark:null,path:\"/Brand colors/rainbow-pool\"},\"/Brand colors/rainbow-tide\":{id:\"\",name:\"rainbow-tide\",light:\"rgb(40, 114, 188)\",dark:null,path:\"/Brand colors/rainbow-tide\"},\"/Brand colors/rainbow-dusk\":{id:\"\",name:\"rainbow-dusk\",light:\"rgb(25, 88, 163)\",dark:null,path:\"/Brand colors/rainbow-dusk\"},\"/Brand colors/rainbow-mulberry\":{id:\"\",name:\"rainbow-mulberry\",light:\"rgb(174, 7, 76)\",dark:null,path:\"/Brand colors/rainbow-mulberry\"},\"/Brand colors/rainbow-flare\":{id:\"\",name:\"rainbow-flare\",light:\"rgb(216, 29, 60)\",dark:null,path:\"/Brand colors/rainbow-flare\"},\"/Brand colors/rainbow-tangerine\":{id:\"\",name:\"rainbow-tangerine\",light:\"rgb(239, 95, 38)\",dark:null,path:\"/Brand colors/rainbow-tangerine\"},\"/Brand colors/rainbow-amber\":{id:\"\",name:\"rainbow-amber\",light:\"rgb(249, 162, 48)\",dark:null,path:\"/Brand colors/rainbow-amber\"},/** Bunq plan signature gradients (four-stop linear; see BackgroundAnimatedGradient presets Free / Core / Pro / Elite). */\"/Brand gradients/plan-free-1\":{id:\"\",name:\"plan-free-1\",light:\"rgb(64, 190, 214)\",dark:null,path:\"/Brand gradients/plan-free-1\"},\"/Brand gradients/plan-free-2\":{id:\"\",name:\"plan-free-2\",light:\"rgb(49, 152, 214)\",dark:null,path:\"/Brand gradients/plan-free-2\"},\"/Brand gradients/plan-free-3\":{id:\"\",name:\"plan-free-3\",light:\"rgb(37, 117, 190)\",dark:null,path:\"/Brand gradients/plan-free-3\"},\"/Brand gradients/plan-free-4\":{id:\"\",name:\"plan-free-4\",light:\"rgb(28, 88, 163)\",dark:null,path:\"/Brand gradients/plan-free-4\"},\"/Brand gradients/plan-core-1\":{id:\"\",name:\"plan-core-1\",light:\"rgb(43, 196, 142)\",dark:null,path:\"/Brand gradients/plan-core-1\"},\"/Brand gradients/plan-core-2\":{id:\"\",name:\"plan-core-2\",light:\"rgb(78, 184, 85)\",dark:null,path:\"/Brand gradients/plan-core-2\"},\"/Brand gradients/plan-core-3\":{id:\"\",name:\"plan-core-3\",light:\"rgb(47, 155, 71)\",dark:null,path:\"/Brand gradients/plan-core-3\"},\"/Brand gradients/plan-core-4\":{id:\"\",name:\"plan-core-4\",light:\"rgb(0, 129, 96)\",dark:null,path:\"/Brand gradients/plan-core-4\"},\"/Brand gradients/plan-pro-1\":{id:\"\",name:\"plan-pro-1\",light:\"rgb(64, 166, 232)\",dark:null,path:\"/Brand gradients/plan-pro-1\"},\"/Brand gradients/plan-pro-2\":{id:\"\",name:\"plan-pro-2\",light:\"rgb(51, 148, 215)\",dark:null,path:\"/Brand gradients/plan-pro-2\"},\"/Brand gradients/plan-pro-3\":{id:\"\",name:\"plan-pro-3\",light:\"rgb(40, 114, 188)\",dark:null,path:\"/Brand gradients/plan-pro-3\"},\"/Brand gradients/plan-pro-4\":{id:\"\",name:\"plan-pro-4\",light:\"rgb(25, 88, 163)\",dark:null,path:\"/Brand gradients/plan-pro-4\"},\"/Brand gradients/plan-elite-1\":{id:\"\",name:\"plan-elite-1\",light:\"rgb(221, 35, 132)\",dark:null,path:\"/Brand gradients/plan-elite-1\"},\"/Brand gradients/plan-elite-2\":{id:\"\",name:\"plan-elite-2\",light:\"rgb(216, 29, 91)\",dark:null,path:\"/Brand gradients/plan-elite-2\"},\"/Brand gradients/plan-elite-3\":{id:\"\",name:\"plan-elite-3\",light:\"rgb(174, 7, 76)\",dark:null,path:\"/Brand gradients/plan-elite-3\"},\"/Brand gradients/plan-elite-4\":{id:\"\",name:\"plan-elite-4\",light:\"rgb(127, 22, 96)\",dark:null,path:\"/Brand gradients/plan-elite-4\"},// RGB(7,29,66).\n\"/Brand gradients/tricount-blue-1\":{id:\"\",name:\"tricount-blue-1\",light:\"rgb(7, 29, 66)\",dark:null,path:\"/Brand gradients/tricount-blue-1\"},// RGB(10,47,109).\n\"/Brand gradients/tricount-blue-2\":{id:\"\",name:\"tricount-blue-2\",light:\"rgb(10, 47, 109)\",dark:null,path:\"/Brand gradients/tricount-blue-2\"},// Blue.\n\"/Brand gradients/tricount-blue-3\":{id:\"\",name:\"tricount-blue-3\",light:\"rgb(12, 64, 153)\",dark:null,path:\"/Brand gradients/tricount-blue-3\"},// Blue.\n\"/Brand gradients/tricount-blue-4\":{id:\"\",name:\"tricount-blue-4\",light:\"rgb(55, 126, 247)\",dark:null,path:\"/Brand gradients/tricount-blue-4\"}};// ============================================\n/**\n * Get all color tokens.\n * @returns Record of all color tokens\n */export function getAllColorTokens(){return COLOR_TOKENS;}/**\n * Get color token by path.\n * @param path - Color path (e.g., \"/Text/text-primary\")\n * @returns Color token object or null if not found\n */export function getColor(path){return COLOR_TOKENS[path]||null;}/**\n * Get color value string by path.\n * @param path - Color path (e.g., \"/Text/text-primary\")\n * @returns Color value string (rgb/rgba) or fallback\n */export function getColorValue(path){const token=COLOR_TOKENS[path];if(!token){if(typeof __DEV__!==\"undefined\"&&__DEV__){console.warn(`Color token not found: ${path}`);}return\"#000000\";// Fallback\n}return token.light||token.dark||\"#000000\";}\nexport const __FramerMetadata__ = {\"exports\":{\"ColorPath\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getAllColorTokens\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getColorValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ColorToken\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./colors.map","/**\n * Typography - Typography token definitions and accessor functions.\n *\n * This module contains all typography token definitions and related functions.\n * Primary font is DM Sans; use FONT_FAMILY_PRIMARY / FONT_FAMILY_PRIMARY_STACK for consistency.\n *\n * Brand-aligned four-role hierarchy (from `documentation/design/brand-identity-guidelines.md`):\n *   - **Bold (700)** — Headlines (Headline {SIZE} Heavy).\n *   - **Regular (400)** — Subheadlines (Headline {SIZE} Light, Subheadline/LG|MD|SM), body emphasis (Body {SIZE} Heavy).\n *   - **Light (300)** — Body copy (Body {SIZE} Light, Detail Light, Content P).\n *   - **Medium (500)** — Buttons / form labels / eyebrow (Button XL|LG|SM, Label, Eyebrow).\n *\n * Naming convention: Headline / Button / Label sizes use two-letter abbreviations\n * (LG, MD, SM) alongside the existing X-prefixed tiers (XL, 2XL, 3XL, XS, 2XS, 3XS).\n * Buttons cover navigation links and CTAs (no separate Nav Link or CTA tokens).\n *\n * Tracking is web-tuned from the brand spec (-4% headline, -2.5% subheadline/CTA/label,\n * -1% body, -1.5% legal). On screen, the full -0.04em is too tight for readability under\n * ~40px so display headlines clamp at -0.03em and ease toward -0.02em on phone.\n *\n * Rhythm (refined): the bigger the type, the tighter the leading. Headlines and UI sit inside\n * 1.0em–1.3em; body copy is allowed to breathe up to ~1.55em for reading comfort. Display\n * headlines (4XL–3XL) lead at 1.0em (brand default); transitional sizes (2XL–SM) graduate from\n * ~1.05em to ~1.2em; bridge headings (XS–3XS) climb from 1.22em to 1.3em. Body copy follows\n * the same \"bigger = tighter\" principle inside its own band: Body XXL 1.4em → Body SM 1.55em,\n * with Content/P matching Body LG. UI labels, detail, eyebrow and small CTAs cap at 1.3em.\n * Responsive tiers: desktop (≥1200), tablet (810–1199) uses interpolated sizes between desktop\n * base and the phone preset (`breakpoints[1]`), phone (&lt;810) uses the phone preset.\n */import*as React from\"react\";// ============================================\n// PRIMARY FONT (single source of truth).\n// ============================================\n/** Primary typeface name. Use in TS/TSX fallbacks and when building font stacks. */export const FONT_FAMILY_PRIMARY=\"DM Sans\";/**\n * Full font stack for primary UI text. Sans-serif only (no serif fallback).\n * Use in inline styles or when a full stack is needed (e.g. modals, cookie banner).\n */export const FONT_FAMILY_PRIMARY_STACK=`\"${FONT_FAMILY_PRIMARY}\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif`;// ============================================\n// CSS FALLBACKS (align with TYPOGRAPHY_TOKENS desktop defaults).\n// Use when getTypographyStyles returns null or in defensive || chains.\n// A unit test asserts these stay aligned with the matching token (`tests/utils/tokens.test.ts`).\n// ============================================\n/** `/Body MD/Light` */export const TYPOGRAPHY_FALLBACK_BODY_MD_LINE_HEIGHT=\"1.5em\";export const TYPOGRAPHY_FALLBACK_BODY_MD_LETTER_SPACING=\"-0.01em\";/** `/Headline SM/Heavy` */export const TYPOGRAPHY_FALLBACK_HEADLINE_SM_HEAVY_LINE_HEIGHT=\"1.2em\";export const TYPOGRAPHY_FALLBACK_HEADLINE_SM_HEAVY_LETTER_SPACING=\"-0.03em\";/** `/Headline 2XS/Heavy` */export const TYPOGRAPHY_FALLBACK_HEADLINE_2XS_HEAVY_LINE_HEIGHT=\"1.25em\";export const TYPOGRAPHY_FALLBACK_HEADLINE_2XS_HEAVY_LETTER_SPACING=\"-0.012em\";/** `/Headline MD/Heavy` */export const TYPOGRAPHY_FALLBACK_HEADLINE_MD_HEAVY_LINE_HEIGHT=\"1.15em\";export const TYPOGRAPHY_FALLBACK_HEADLINE_MD_HEAVY_LETTER_SPACING=\"-0.03em\";/** `/Detail LG/Light` and `/Detail LG/Heavy` line metrics */export const TYPOGRAPHY_FALLBACK_DETAIL_LG_LINE_HEIGHT=\"1.3em\";export const TYPOGRAPHY_FALLBACK_DETAIL_LG_LETTER_SPACING=\"-0.015em\";/** `/Detail LG/Light` desktop font size (fallback when `getTypography` is null). */export const TYPOGRAPHY_FALLBACK_DETAIL_LG_FONT_SIZE=\"14px\";/** `/Subheadline/LG` */export const TYPOGRAPHY_FALLBACK_SUBHEADLINE_LG_FONT_SIZE=\"36px\";export const TYPOGRAPHY_FALLBACK_SUBHEADLINE_LG_LINE_HEIGHT=\"1.12em\";export const TYPOGRAPHY_FALLBACK_SUBHEADLINE_LG_LETTER_SPACING=\"-0.025em\";/** `/Subheadline/MD` */export const TYPOGRAPHY_FALLBACK_SUBHEADLINE_MD_FONT_SIZE=\"28px\";export const TYPOGRAPHY_FALLBACK_SUBHEADLINE_MD_LINE_HEIGHT=\"1.18em\";export const TYPOGRAPHY_FALLBACK_SUBHEADLINE_MD_LETTER_SPACING=\"-0.025em\";/** `/Subheadline/SM` */export const TYPOGRAPHY_FALLBACK_SUBHEADLINE_SM_FONT_SIZE=\"22px\";export const TYPOGRAPHY_FALLBACK_SUBHEADLINE_SM_LINE_HEIGHT=\"1.22em\";export const TYPOGRAPHY_FALLBACK_SUBHEADLINE_SM_LETTER_SPACING=\"-0.025em\";/** `/Eyebrow` */export const TYPOGRAPHY_FALLBACK_EYEBROW_FONT_SIZE=\"14px\";export const TYPOGRAPHY_FALLBACK_EYEBROW_LINE_HEIGHT=\"1.3em\";export const TYPOGRAPHY_FALLBACK_EYEBROW_LETTER_SPACING=\"-0.025em\";const TYPOGRAPHY_TOKENS={\"/Headline 4XL/Light\":{id:\"H4XL_Light\",name:\"Light\",path:\"/Headline 4XL/Light\",tag:\"h1\",// Brand: subheadline-style use; Regular 400.\nfont:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"112px\",letterSpacing:\"-0.03em\",lineHeight:\"1em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"112px\",letterSpacing:\"-0.03em\",lineHeight:\"1em\",paragraphSpacing:40},{minWidth:810,fontSize:\"68px\",letterSpacing:\"-0.02em\",lineHeight:\"1.05em\",paragraphSpacing:24}]},\"/Headline 4XL/Heavy\":{id:\"H4XL_Heavy\",name:\"Heavy\",path:\"/Headline 4XL/Heavy\",tag:\"h1\",// Brand: 1.0em default; 0.9–0.95em allowed when ascenders/descenders don't collide.\nfont:{selector:\"FS;DM Sans-bold\",family:\"DM Sans\",weight:700,style:\"normal\"},fontSize:\"112px\",letterSpacing:\"-0.03em\",lineHeight:\"1em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"112px\",letterSpacing:\"-0.03em\",lineHeight:\"1em\",paragraphSpacing:40},{minWidth:810,fontSize:\"68px\",letterSpacing:\"-0.02em\",lineHeight:\"1.05em\",paragraphSpacing:24}]},\"/Headline 3XL/Light\":{id:\"OYpDb9vSz\",name:\"Light\",path:\"/Headline 3XL/Light\",tag:\"h1\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"80px\",letterSpacing:\"-0.03em\",lineHeight:\"1em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"80px\",letterSpacing:\"-0.03em\",lineHeight:\"1em\",paragraphSpacing:40},{minWidth:810,fontSize:\"48px\",letterSpacing:\"-0.02em\",lineHeight:\"1.08em\",paragraphSpacing:24}]},\"/Headline 3XL/Heavy\":{id:\"Z1NMtqnun\",name:\"Heavy\",path:\"/Headline 3XL/Heavy\",tag:\"h1\",font:{selector:\"FS;DM Sans-bold\",family:\"DM Sans\",weight:700,style:\"normal\"},fontSize:\"80px\",letterSpacing:\"-0.03em\",lineHeight:\"1em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"80px\",letterSpacing:\"-0.03em\",lineHeight:\"1em\",paragraphSpacing:40},{minWidth:810,fontSize:\"48px\",letterSpacing:\"-0.02em\",lineHeight:\"1.08em\",paragraphSpacing:24}]},\"/Headline 2XL/Light\":{id:\"hPQs1xY4J\",name:\"Light\",path:\"/Headline 2XL/Light\",tag:\"h1\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"64px\",letterSpacing:\"-0.03em\",lineHeight:\"1.05em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"64px\",letterSpacing:\"-0.03em\",lineHeight:\"1.05em\",paragraphSpacing:40},{minWidth:810,fontSize:\"40px\",letterSpacing:\"-0.02em\",lineHeight:\"1.1em\",paragraphSpacing:24}]},\"/Headline 2XL/Heavy\":{id:\"BmGmA691U\",name:\"Heavy\",path:\"/Headline 2XL/Heavy\",tag:\"h1\",font:{selector:\"FS;DM Sans-bold\",family:\"DM Sans\",weight:700,style:\"normal\"},fontSize:\"64px\",letterSpacing:\"-0.03em\",lineHeight:\"1.05em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"64px\",letterSpacing:\"-0.03em\",lineHeight:\"1.05em\",paragraphSpacing:40},{minWidth:810,fontSize:\"40px\",letterSpacing:\"-0.02em\",lineHeight:\"1.1em\",paragraphSpacing:24}]},\"/Headline XL/Light\":{id:\"Hi0Q0s1WP\",name:\"Light\",path:\"/Headline XL/Light\",tag:\"h2\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"52px\",letterSpacing:\"-0.03em\",lineHeight:\"1.08em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"52px\",letterSpacing:\"-0.03em\",lineHeight:\"1.08em\",paragraphSpacing:40},{minWidth:810,fontSize:\"32px\",letterSpacing:\"-0.02em\",lineHeight:\"1.15em\",paragraphSpacing:24}]},\"/Headline XL/Heavy\":{id:\"QodQLACi6\",name:\"Heavy\",path:\"/Headline XL/Heavy\",tag:\"h2\",font:{selector:\"FS;DM Sans-bold\",family:\"DM Sans\",weight:700,style:\"normal\"},fontSize:\"52px\",letterSpacing:\"-0.03em\",lineHeight:\"1.08em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"52px\",letterSpacing:\"-0.03em\",lineHeight:\"1.08em\",paragraphSpacing:40},{minWidth:810,fontSize:\"32px\",letterSpacing:\"-0.02em\",lineHeight:\"1.15em\",paragraphSpacing:24}]},\"/Headline LG/Light\":{id:\"w0rR5BNdQ\",name:\"Light\",path:\"/Headline LG/Light\",tag:\"h2\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"40px\",letterSpacing:\"-0.03em\",lineHeight:\"1.1em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"40px\",letterSpacing:\"-0.03em\",lineHeight:\"1.1em\",paragraphSpacing:40},{minWidth:810,fontSize:\"28px\",letterSpacing:\"-0.02em\",lineHeight:\"1.18em\",paragraphSpacing:24}]},\"/Headline LG/Heavy\":{id:\"NLBEe4aVc\",name:\"Heavy\",path:\"/Headline LG/Heavy\",tag:\"h2\",font:{selector:\"FS;DM Sans-bold\",family:\"DM Sans\",weight:700,style:\"normal\"},fontSize:\"40px\",letterSpacing:\"-0.03em\",lineHeight:\"1.1em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"40px\",letterSpacing:\"-0.03em\",lineHeight:\"1.1em\",paragraphSpacing:40},{minWidth:810,fontSize:\"28px\",letterSpacing:\"-0.02em\",lineHeight:\"1.18em\",paragraphSpacing:24}]},\"/Headline MD/Light\":{id:\"vk4dzFtJx\",name:\"Light\",path:\"/Headline MD/Light\",tag:\"h3\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"32px\",letterSpacing:\"-0.03em\",lineHeight:\"1.15em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"32px\",letterSpacing:\"-0.03em\",lineHeight:\"1.15em\",paragraphSpacing:40},{minWidth:810,fontSize:\"24px\",letterSpacing:\"-0.02em\",lineHeight:\"1.2em\",paragraphSpacing:24}]},\"/Headline MD/Heavy\":{id:\"Syt1ipHc1\",name:\"Heavy\",path:\"/Headline MD/Heavy\",tag:\"h3\",font:{selector:\"FS;DM Sans-bold\",family:\"DM Sans\",weight:700,style:\"normal\"},fontSize:\"32px\",letterSpacing:\"-0.03em\",lineHeight:\"1.15em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"32px\",letterSpacing:\"-0.03em\",lineHeight:\"1.15em\",paragraphSpacing:40},{minWidth:810,fontSize:\"24px\",letterSpacing:\"-0.02em\",lineHeight:\"1.2em\",paragraphSpacing:24}]},\"/Headline SM/Light\":{id:\"Zq4DbL73h\",name:\"Light\",path:\"/Headline SM/Light\",tag:\"h3\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"26px\",letterSpacing:\"-0.03em\",lineHeight:\"1.2em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"26px\",letterSpacing:\"-0.03em\",lineHeight:\"1.2em\",paragraphSpacing:40},{minWidth:810,fontSize:\"22px\",letterSpacing:\"-0.02em\",lineHeight:\"1.22em\",paragraphSpacing:24}]},\"/Headline SM/Heavy\":{id:\"Vuc71wfXr\",name:\"Heavy\",path:\"/Headline SM/Heavy\",tag:\"h3\",// Brand: Bold (700) is the headline weight at every display size.\nfont:{selector:\"FS;DM Sans-bold\",family:\"DM Sans\",weight:700,style:\"normal\"},fontSize:\"26px\",letterSpacing:\"-0.03em\",lineHeight:\"1.2em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"26px\",letterSpacing:\"-0.03em\",lineHeight:\"1.2em\",paragraphSpacing:40},{minWidth:810,fontSize:\"22px\",letterSpacing:\"-0.02em\",lineHeight:\"1.22em\",paragraphSpacing:24}]},\"/Headline XS/Light\":{id:\"rjFWX9qGy\",name:\"Light\",path:\"/Headline XS/Light\",tag:\"h4\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"22px\",letterSpacing:\"-0.012em\",lineHeight:\"1.22em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"22px\",letterSpacing:\"-0.012em\",lineHeight:\"1.22em\",paragraphSpacing:40},{minWidth:810,fontSize:\"20px\",letterSpacing:\"-0.008em\",lineHeight:\"1.25em\",paragraphSpacing:24}]},\"/Headline XS/Heavy\":{id:\"r_EkJQedq\",name:\"Heavy\",path:\"/Headline XS/Heavy\",tag:\"h4\",// Brand: Bold (700) at every headline size, including bridge sizes.\nfont:{selector:\"FS;DM Sans-bold\",family:\"DM Sans\",weight:700,style:\"normal\"},fontSize:\"22px\",letterSpacing:\"-0.012em\",lineHeight:\"1.22em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"22px\",letterSpacing:\"-0.012em\",lineHeight:\"1.22em\",paragraphSpacing:40},{minWidth:810,fontSize:\"20px\",letterSpacing:\"-0.008em\",lineHeight:\"1.25em\",paragraphSpacing:24}]},\"/Headline 2XS/Light\":{id:\"zoQ8XBidD\",name:\"Light\",path:\"/Headline 2XS/Light\",tag:\"h5\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"20px\",letterSpacing:\"-0.012em\",lineHeight:\"1.25em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"20px\",letterSpacing:\"-0.012em\",lineHeight:\"1.25em\",paragraphSpacing:40},{minWidth:810,fontSize:\"18px\",letterSpacing:\"-0.008em\",lineHeight:\"1.28em\",paragraphSpacing:24}]},\"/Headline 2XS/Heavy\":{id:\"Ym6cjYUno\",name:\"Heavy\",path:\"/Headline 2XS/Heavy\",tag:\"h5\",font:{selector:\"FS;DM Sans-bold\",family:\"DM Sans\",weight:700,style:\"normal\"},fontSize:\"20px\",letterSpacing:\"-0.012em\",lineHeight:\"1.25em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"20px\",letterSpacing:\"-0.012em\",lineHeight:\"1.25em\",paragraphSpacing:40},{minWidth:810,fontSize:\"18px\",letterSpacing:\"-0.008em\",lineHeight:\"1.28em\",paragraphSpacing:24}]},\"/Headline 3XS/Light\":{id:\"hn4fm3Bgo\",name:\"Light\",path:\"/Headline 3XS/Light\",tag:\"h6\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"18px\",letterSpacing:\"-0.012em\",lineHeight:\"1.28em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"18px\",letterSpacing:\"-0.012em\",lineHeight:\"1.28em\",paragraphSpacing:40},{minWidth:810,fontSize:\"16px\",letterSpacing:\"-0.008em\",lineHeight:\"1.3em\",paragraphSpacing:24}]},\"/Headline 3XS/Heavy\":{id:\"bHTcuHzge\",name:\"Heavy\",path:\"/Headline 3XS/Heavy\",tag:\"h6\",font:{selector:\"FS;DM Sans-bold\",family:\"DM Sans\",weight:700,style:\"normal\"},fontSize:\"18px\",letterSpacing:\"-0.012em\",lineHeight:\"1.28em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"18px\",letterSpacing:\"-0.012em\",lineHeight:\"1.28em\",paragraphSpacing:40},{minWidth:810,fontSize:\"16px\",letterSpacing:\"-0.008em\",lineHeight:\"1.3em\",paragraphSpacing:24}]},\"/Body XXL/Light\":{id:\"BdXXL_Light\",name:\"Light\",path:\"/Body XXL/Light\",tag:\"p\",// Brand: body copy uses Light (300). Regular (400) may replace at small sizes / on busy backgrounds.\nfont:{selector:\"FS;DM Sans-300\",family:\"DM Sans\",weight:300,style:\"normal\"},fontSize:\"24px\",letterSpacing:\"-0.01em\",lineHeight:\"1.4em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"24px\",letterSpacing:\"-0.01em\",lineHeight:\"1.4em\",paragraphSpacing:24},{minWidth:810,fontSize:\"22px\",letterSpacing:\"-0.005em\",lineHeight:\"1.45em\",paragraphSpacing:16}]},\"/Body XXL/Heavy\":{id:\"BdXXL_Heavy\",name:\"Heavy\",path:\"/Body XXL/Heavy\",tag:\"p\",// Brand: body emphasis uses Regular (400).\nfont:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"24px\",letterSpacing:\"-0.01em\",lineHeight:\"1.4em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"24px\",letterSpacing:\"-0.01em\",lineHeight:\"1.4em\",paragraphSpacing:24},{minWidth:810,fontSize:\"22px\",letterSpacing:\"-0.005em\",lineHeight:\"1.45em\",paragraphSpacing:16}]},\"/Body XL/Light\":{id:\"Sv9VOC34f\",name:\"Light\",path:\"/Body XL/Light\",tag:\"p\",font:{selector:\"FS;DM Sans-300\",family:\"DM Sans\",weight:300,style:\"normal\"},fontSize:\"22px\",letterSpacing:\"-0.01em\",lineHeight:\"1.45em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"22px\",letterSpacing:\"-0.01em\",lineHeight:\"1.45em\",paragraphSpacing:24},{minWidth:810,fontSize:\"20px\",letterSpacing:\"-0.005em\",lineHeight:\"1.5em\",paragraphSpacing:16}]},\"/Body XL/Heavy\":{id:\"hArDDRNVm\",name:\"Heavy\",path:\"/Body XL/Heavy\",tag:\"p\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"22px\",letterSpacing:\"-0.01em\",lineHeight:\"1.45em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"22px\",letterSpacing:\"-0.01em\",lineHeight:\"1.45em\",paragraphSpacing:24},{minWidth:810,fontSize:\"20px\",letterSpacing:\"-0.005em\",lineHeight:\"1.5em\",paragraphSpacing:16}]},\"/Body LG/Light\":{id:\"rncFq5P_8\",name:\"Light\",path:\"/Body LG/Light\",tag:\"p\",font:{selector:\"FS;DM Sans-300\",family:\"DM Sans\",weight:300,style:\"normal\"},fontSize:\"20px\",letterSpacing:\"-0.01em\",lineHeight:\"1.45em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"20px\",letterSpacing:\"-0.01em\",lineHeight:\"1.45em\",paragraphSpacing:24},{minWidth:810,fontSize:\"18px\",letterSpacing:\"-0.005em\",lineHeight:\"1.5em\",paragraphSpacing:16}]},\"/Body LG/Heavy\":{id:\"fSreB4YpK\",name:\"Heavy\",path:\"/Body LG/Heavy\",tag:\"p\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"20px\",letterSpacing:\"-0.01em\",lineHeight:\"1.45em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"20px\",letterSpacing:\"-0.01em\",lineHeight:\"1.45em\",paragraphSpacing:24},{minWidth:810,fontSize:\"18px\",letterSpacing:\"-0.005em\",lineHeight:\"1.5em\",paragraphSpacing:16}]},\"/Body MD/Light\":{id:\"GygTAX8TE\",name:\"Light\",path:\"/Body MD/Light\",tag:\"p\",font:{selector:\"FS;DM Sans-300\",family:\"DM Sans\",weight:300,style:\"normal\"},fontSize:\"18px\",letterSpacing:\"-0.01em\",lineHeight:\"1.5em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"18px\",letterSpacing:\"-0.01em\",lineHeight:\"1.5em\",paragraphSpacing:24},{minWidth:810,fontSize:\"16px\",letterSpacing:\"-0.005em\",lineHeight:\"1.55em\",paragraphSpacing:16}]},\"/Body MD/Heavy\":{id:\"gZkR4VWWM\",name:\"Heavy\",path:\"/Body MD/Heavy\",tag:\"p\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"18px\",letterSpacing:\"-0.01em\",lineHeight:\"1.5em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"18px\",letterSpacing:\"-0.01em\",lineHeight:\"1.5em\",paragraphSpacing:24},{minWidth:810,fontSize:\"16px\",letterSpacing:\"-0.005em\",lineHeight:\"1.55em\",paragraphSpacing:16}]},\"/Body SM/Light\":{id:\"sJXPpwmYP\",name:\"Light\",path:\"/Body SM/Light\",tag:\"p\",font:{selector:\"FS;DM Sans-300\",family:\"DM Sans\",weight:300,style:\"normal\"},fontSize:\"16px\",letterSpacing:\"-0.01em\",lineHeight:\"1.55em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"16px\",letterSpacing:\"-0.01em\",lineHeight:\"1.55em\",paragraphSpacing:24},{minWidth:810,fontSize:\"15px\",letterSpacing:\"-0.005em\",lineHeight:\"1.55em\",paragraphSpacing:16}]},\"/Body SM/Heavy\":{id:\"czsUloFWg\",name:\"Heavy\",path:\"/Body SM/Heavy\",tag:\"p\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"16px\",letterSpacing:\"-0.01em\",lineHeight:\"1.55em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"16px\",letterSpacing:\"-0.01em\",lineHeight:\"1.55em\",paragraphSpacing:24},{minWidth:810,fontSize:\"15px\",letterSpacing:\"-0.005em\",lineHeight:\"1.55em\",paragraphSpacing:16}]},\"/Detail LG/Light\":{id:\"nAZw8NEQ6\",name:\"Light\",path:\"/Detail LG/Light\",tag:\"p\",font:{selector:\"FS;DM Sans-300\",family:\"DM Sans\",weight:300,style:\"normal\"},fontSize:\"14px\",letterSpacing:\"-0.015em\",lineHeight:\"1.3em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"14px\",letterSpacing:\"-0.015em\",lineHeight:\"1.3em\",paragraphSpacing:24},{minWidth:810,fontSize:\"13px\",letterSpacing:\"-0.01em\",lineHeight:\"1.3em\",paragraphSpacing:16}]},\"/Detail LG/Heavy\":{id:\"AzmBZ1puU\",name:\"Heavy\",path:\"/Detail LG/Heavy\",tag:\"p\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"14px\",letterSpacing:\"-0.015em\",lineHeight:\"1.3em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"14px\",letterSpacing:\"-0.015em\",lineHeight:\"1.3em\",paragraphSpacing:24},{minWidth:810,fontSize:\"13px\",letterSpacing:\"-0.01em\",lineHeight:\"1.3em\",paragraphSpacing:16}]},\"/Detail SM/Light\":{id:\"s2tAP6eBg\",name:\"Light\",path:\"/Detail SM/Light\",tag:\"p\",font:{selector:\"FS;DM Sans-300\",family:\"DM Sans\",weight:300,style:\"normal\"},fontSize:\"12px\",letterSpacing:\"-0.015em\",lineHeight:\"1.3em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"12px\",letterSpacing:\"-0.015em\",lineHeight:\"1.3em\",paragraphSpacing:24},{minWidth:810,fontSize:\"12px\",letterSpacing:\"-0.015em\",lineHeight:\"1.3em\",paragraphSpacing:24}]},\"/Detail SM/Heavy\":{id:\"j8GKglUTY\",name:\"Heavy\",path:\"/Detail SM/Heavy\",tag:\"p\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"12px\",letterSpacing:\"-0.015em\",lineHeight:\"1.3em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"12px\",letterSpacing:\"-0.015em\",lineHeight:\"1.3em\",paragraphSpacing:24},{minWidth:810,fontSize:\"12px\",letterSpacing:\"-0.015em\",lineHeight:\"1.3em\",paragraphSpacing:24}]},\"/Button XL\":{id:\"BtnXL_New\",name:\"Button XL\",path:\"/Button XL\",tag:\"p\",// Brand: CTA / button = Medium (500), tracking -2.5%.\nfont:{selector:\"FS;DM Sans-medium\",family:\"DM Sans\",weight:500,style:\"normal\"},fontSize:\"24px\",letterSpacing:\"-0.025em\",lineHeight:\"1.2em\",paragraphSpacing:0,breakpoints:[{minWidth:1200,fontSize:\"24px\",letterSpacing:\"-0.025em\",lineHeight:\"1.2em\",paragraphSpacing:0},{minWidth:810,fontSize:\"22px\",letterSpacing:\"-0.025em\",lineHeight:\"1.22em\",paragraphSpacing:0}]},\"/Button LG\":{id:\"ycNLZdWxd\",name:\"Button LG\",path:\"/Button LG\",tag:\"p\",// Also covers nav links: same metrics as the legacy /Nav Link token.\nfont:{selector:\"FS;DM Sans-medium\",family:\"DM Sans\",weight:500,style:\"normal\"},fontSize:\"20px\",letterSpacing:\"-0.025em\",lineHeight:\"1.25em\",paragraphSpacing:0,breakpoints:[{minWidth:1200,fontSize:\"20px\",letterSpacing:\"-0.025em\",lineHeight:\"1.25em\",paragraphSpacing:0},{minWidth:810,fontSize:\"18px\",letterSpacing:\"-0.025em\",lineHeight:\"1.28em\",paragraphSpacing:0}]},\"/Button SM\":{id:\"tfDxytjFu\",name:\"Button SM\",path:\"/Button SM\",tag:\"p\",font:{selector:\"FS;DM Sans-medium\",family:\"DM Sans\",weight:500,style:\"normal\"},fontSize:\"16px\",letterSpacing:\"-0.025em\",lineHeight:\"1.3em\",paragraphSpacing:0,breakpoints:[{minWidth:1200,fontSize:\"16px\",letterSpacing:\"-0.025em\",lineHeight:\"1.3em\",paragraphSpacing:0},{minWidth:810,fontSize:\"16px\",letterSpacing:\"-0.025em\",lineHeight:\"1.3em\",paragraphSpacing:0}]},\"/Label\":{id:\"Lbl_New\",name:\"Label\",path:\"/Label\",tag:\"label\",// Form field labels only — Medium (500).\nfont:{selector:\"FS;DM Sans-medium\",family:\"DM Sans\",weight:500,style:\"normal\"},fontSize:\"18px\",letterSpacing:\"-0.025em\",lineHeight:\"1.28em\",paragraphSpacing:16,breakpoints:[{minWidth:1200,fontSize:\"18px\",letterSpacing:\"-0.025em\",lineHeight:\"1.28em\",paragraphSpacing:16},{minWidth:810,fontSize:\"16px\",letterSpacing:\"-0.025em\",lineHeight:\"1.3em\",paragraphSpacing:12}]},// Content styles for document/blog body — brand-aligned: H2–H4 Bold (700), P Light (300).\n\"/Content/H2\":{id:\"CntH2\",name:\"Content H2\",path:\"/Content/H2\",tag:\"h2\",font:{selector:\"FS;DM Sans-bold\",family:\"DM Sans\",weight:700,style:\"normal\"},fontSize:\"40px\",letterSpacing:\"-0.03em\",lineHeight:\"1.1em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"40px\",letterSpacing:\"-0.03em\",lineHeight:\"1.1em\",paragraphSpacing:40},{minWidth:810,fontSize:\"28px\",letterSpacing:\"-0.02em\",lineHeight:\"1.18em\",paragraphSpacing:24}]},\"/Content/H3\":{id:\"CntH3\",name:\"Content H3\",path:\"/Content/H3\",tag:\"h3\",font:{selector:\"FS;DM Sans-bold\",family:\"DM Sans\",weight:700,style:\"normal\"},fontSize:\"32px\",letterSpacing:\"-0.03em\",lineHeight:\"1.15em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"32px\",letterSpacing:\"-0.03em\",lineHeight:\"1.15em\",paragraphSpacing:40},{minWidth:810,fontSize:\"24px\",letterSpacing:\"-0.02em\",lineHeight:\"1.2em\",paragraphSpacing:24}]},\"/Content/H4\":{id:\"CntH4\",name:\"Content H4\",path:\"/Content/H4\",tag:\"h4\",font:{selector:\"FS;DM Sans-bold\",family:\"DM Sans\",weight:700,style:\"normal\"},fontSize:\"26px\",letterSpacing:\"-0.03em\",lineHeight:\"1.2em\",paragraphSpacing:40,breakpoints:[{minWidth:1200,fontSize:\"26px\",letterSpacing:\"-0.03em\",lineHeight:\"1.2em\",paragraphSpacing:40},{minWidth:810,fontSize:\"20px\",letterSpacing:\"-0.02em\",lineHeight:\"1.25em\",paragraphSpacing:24}]},\"/Content/P\":{id:\"CntP\",name:\"Content P\",path:\"/Content/P\",tag:\"p\",// Brand: long-form body uses Light (300) on the website document scale.\nfont:{selector:\"FS;DM Sans-300\",family:\"DM Sans\",weight:300,style:\"normal\"},fontSize:\"20px\",letterSpacing:\"-0.01em\",lineHeight:\"1.45em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"20px\",letterSpacing:\"-0.01em\",lineHeight:\"1.45em\",paragraphSpacing:24},{minWidth:810,fontSize:\"18px\",letterSpacing:\"-0.005em\",lineHeight:\"1.5em\",paragraphSpacing:16}]},// ── Brand-role tokens (added per brand-identity-guidelines.md) ──────────\n// Subheadline = Regular (400), brand spec: 60% of headline, leading 120–130%, tracking -2.5%.\n\"/Subheadline/LG\":{id:\"SubL_New\",name:\"Subheadline LG\",path:\"/Subheadline/LG\",tag:\"p\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"36px\",letterSpacing:\"-0.025em\",lineHeight:\"1.12em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"36px\",letterSpacing:\"-0.025em\",lineHeight:\"1.12em\",paragraphSpacing:24},{minWidth:810,fontSize:\"24px\",letterSpacing:\"-0.02em\",lineHeight:\"1.2em\",paragraphSpacing:16}]},\"/Subheadline/MD\":{id:\"SubM_New\",name:\"Subheadline MD\",path:\"/Subheadline/MD\",tag:\"p\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"28px\",letterSpacing:\"-0.025em\",lineHeight:\"1.18em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"28px\",letterSpacing:\"-0.025em\",lineHeight:\"1.18em\",paragraphSpacing:24},{minWidth:810,fontSize:\"20px\",letterSpacing:\"-0.02em\",lineHeight:\"1.25em\",paragraphSpacing:16}]},\"/Subheadline/SM\":{id:\"SubS_New\",name:\"Subheadline SM\",path:\"/Subheadline/SM\",tag:\"p\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"22px\",letterSpacing:\"-0.025em\",lineHeight:\"1.22em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"22px\",letterSpacing:\"-0.025em\",lineHeight:\"1.22em\",paragraphSpacing:24},{minWidth:810,fontSize:\"18px\",letterSpacing:\"-0.02em\",lineHeight:\"1.28em\",paragraphSpacing:16}]},\"/Nav Link\":{id:\"NavLink_New\",name:\"Nav Link\",path:\"/Nav Link\",tag:\"p\",font:{selector:\"FS;DM Sans-medium\",family:\"DM Sans\",weight:500,style:\"normal\"},fontSize:\"20px\",letterSpacing:\"-0.025em\",lineHeight:\"1em\",paragraphSpacing:0,breakpoints:[{minWidth:1200,fontSize:\"20px\",letterSpacing:\"-0.025em\",lineHeight:\"1em\",paragraphSpacing:0},{minWidth:810,fontSize:\"18px\",letterSpacing:\"-0.025em\",lineHeight:\"1em\",paragraphSpacing:0}]},\"/Legal/Default\":{id:\"LegalDef_New\",name:\"Legal Default\",path:\"/Legal/Default\",tag:\"p\",font:{selector:\"FS;DM Sans-regular\",family:\"DM Sans\",weight:400,style:\"normal\"},fontSize:\"12px\",letterSpacing:\"-0.015em\",lineHeight:\"1.4em\",paragraphSpacing:16,breakpoints:[{minWidth:1200,fontSize:\"12px\",letterSpacing:\"-0.015em\",lineHeight:\"1.4em\",paragraphSpacing:16},{minWidth:810,fontSize:\"11px\",letterSpacing:\"-0.01em\",lineHeight:\"1.4em\",paragraphSpacing:12}]},// Eyebrow = Medium (500); section kickers above headlines (not form labels).\n// Size scale matches `/Body XL`; weight stays Medium (500).\n// Sentence case per brand \"Writing basics\"; uppercase reserved for acronyms.\n\"/Eyebrow\":{id:\"EybNew\",name:\"Eyebrow\",path:\"/Eyebrow\",tag:\"p\",font:{selector:\"FS;DM Sans-medium\",family:\"DM Sans\",weight:500,style:\"normal\"},fontSize:\"22px\",letterSpacing:\"-0.01em\",lineHeight:\"1.45em\",paragraphSpacing:24,breakpoints:[{minWidth:1200,fontSize:\"22px\",letterSpacing:\"-0.01em\",lineHeight:\"1.45em\",paragraphSpacing:24},{minWidth:810,fontSize:\"20px\",letterSpacing:\"-0.005em\",lineHeight:\"1.5em\",paragraphSpacing:16}]}};// ============================================\n// TYPOGRAPHY ACCESSOR FUNCTIONS.\n// ============================================\n/**\n * Get typography token by path.\n * @param path - Typography path (e.g., \"/Headline XL/Light\")\n * @returns Typography token object or null if not found\n */export function getTypography(path){return TYPOGRAPHY_TOKENS[path]||null;}function parsePxSize(px){const n=parseInt(px.replace(/px/gi,\"\").trim(),10);return Number.isFinite(n)?n:NaN;}function interpolatePxSizes(desktopPx,phonePx){const d=parsePxSize(desktopPx);const p=parsePxSize(phonePx);if(!Number.isFinite(d)||!Number.isFinite(p))return desktopPx;const mid=Math.round((d+p)/2/2)*2;return`${mid}px`;}function parseEmValue(em){const m=em.trim().match(/^([\\d.]+)em$/i);return m?parseFloat(m[1]):null;}function interpolateEmLineHeights(a,b){const ea=parseEmValue(a);const eb=parseEmValue(b);if(ea===null||eb===null)return a;const mid=(ea+eb)/2;const rounded=Math.round(mid*1e3)/1e3;const s=rounded.toString();return`${s}em`;}function interpolateLetterSpacings(a,b){const emA=a.trim().match(/^(-?[\\d.]+)em$/i);const emB=b.trim().match(/^(-?[\\d.]+)em$/i);if(emA&&emB){const mid=(parseFloat(emA[1])+parseFloat(emB[1]))/2;const rounded=Math.round(mid*1e4)/1e4;const str=rounded===0?\"0\":rounded.toString();return`${str}em`;}if(a.trim()===b.trim())return a;return a;}function interpolateParagraphSpacings(desktop,phone){return Math.round((desktop+phone)/2/4)*4;}/**\n * Resolve font metrics for a breakpoint.\n * - **Desktop** (≥1200 layout tier): token base fields.\n * - **Phone** (&lt;810px): `breakpoints[1]` (second entry is the small-screen preset; `minWidth` labels are for Framer export only).\n * - **Tablet** (810–1199): interpolated between desktop base and the phone preset.\n */function resolveTypographyTier(token,breakpoint){const desktop={fontSize:token.fontSize,letterSpacing:token.letterSpacing,lineHeight:token.lineHeight,paragraphSpacing:token.paragraphSpacing};const phoneBp=token.breakpoints?.[1];if(!phoneBp){return desktop;}const phone={fontSize:phoneBp.fontSize,letterSpacing:phoneBp.letterSpacing,lineHeight:phoneBp.lineHeight,paragraphSpacing:phoneBp.paragraphSpacing};if(breakpoint===\"desktop\"){return desktop;}if(breakpoint===\"phone\"){return phone;}return{fontSize:interpolatePxSizes(desktop.fontSize,phone.fontSize),letterSpacing:interpolateLetterSpacings(desktop.letterSpacing,phone.letterSpacing),lineHeight:interpolateEmLineHeights(desktop.lineHeight,phone.lineHeight),paragraphSpacing:interpolateParagraphSpacings(desktop.paragraphSpacing,phone.paragraphSpacing)};}// Cache for getTypographyStyles results.\nconst typographyStylesCache=new Map;/**\n * Paragraph gap (px) between stacked blocks for this token at the given breakpoint.\n * Use for `marginTop` on following paragraphs; not applied by `getTypographyStyles` (safe to spread styles).\n */export function getTypographyParagraphSpacing(path,breakpoint=\"desktop\"){const token=TYPOGRAPHY_TOKENS[path];if(!token)return 0;return resolveTypographyTier(token,breakpoint).paragraphSpacing;}/**\n * Get CSS-compatible typography styles object.\n * @param path - Typography path (e.g., \"/Headline XL/Light\")\n * @param breakpoint - Optional breakpoint for responsive sizing (default: \"desktop\")\n * @returns CSS styles object with font properties adjusted for the breakpoint\n */export function getTypographyStyles(path,breakpoint=\"desktop\"){const cacheKey=`${path}-${breakpoint}`;const cached=typographyStylesCache.get(cacheKey);if(cached!==undefined){return cached;}const token=TYPOGRAPHY_TOKENS[path];if(!token){if(typeof __DEV__!==\"undefined\"&&__DEV__){console.warn(`Typography token not found: ${path}`);}typographyStylesCache.set(cacheKey,null);return null;}const tier=resolveTypographyTier(token,breakpoint);const result={// CSS variable allows per-section font overrides (e.g. useMontserrat A/B experiment)\n// while falling back to the full DM Sans stack for normal rendering.\nfontFamily:`var(--cc-font-primary, ${FONT_FAMILY_PRIMARY_STACK})`,fontSize:tier.fontSize,fontWeight:token.font.weight,fontStyle:token.font.style,letterSpacing:tier.letterSpacing,lineHeight:tier.lineHeight,margin:0};typographyStylesCache.set(cacheKey,result);return result;}/**\n * Get all typography tokens.\n * @returns Record of all typography tokens\n */export function getAllTypographyTokens(){return TYPOGRAPHY_TOKENS;}// ============================================\n// DM Sans `rt` pair kerning (plain text)\n// ============================================\n/** Space inserted before `t` only in `rt` pairs (em-relative so it scales with font size). */export const DM_SANS_RT_T_MARGIN_LEFT=\"0.035em\";/**\n * Returns React nodes with `rt` / `Rt` / `RT` pairs adjusted so `t` does not touch `r`.\n * Safe for plain copy; does not parse HTML.\n *\n * Important: each prefix text is concatenated with the leading `r` of the matched pair\n * before being emitted as a single text node. The previous implementation emitted the\n * prefix and the `r` as two separate strings (inside a Fragment), which React serialised\n * as adjacent text nodes joined by an HTML comment marker (`<!-- -->`) during SSR but\n * not during client render. That triggered React #418/#425 hydration mismatches on every\n * heading containing an `rt` pair (Support, Effortlessly, Start, Get started, Short …).\n */export function kernDmSansRtInPlainText(text){if(text.length<2)return text;const re=/r(t)/gi;if(!re.test(text))return text;const parts=[];let last=0;let m;let key=0;re.lastIndex=0;while((m=re.exec(text))!==null){const matched=m[0];if(matched.length<2)continue;parts.push(text.slice(last,m.index)+matched[0]);parts.push(/*#__PURE__*/React.createElement(\"span\",{key:`dm-sans-rt-${m.index}-${key++}`,style:{marginLeft:DM_SANS_RT_T_MARGIN_LEFT}},matched[1]));last=m.index+matched.length;}const suffix=text.slice(last);if(suffix.length>0)parts.push(suffix);return parts.length===1?parts[0]:/*#__PURE__*/React.createElement(React.Fragment,null,...parts);}/**\n * For `<h1>`–`<h6>` / `<motion.h*>` copy: returns `null` for null/undefined/empty string;\n * otherwise applies {@link kernDmSansRtInPlainText}. Use so every heading picks up `rt` kerning.\n */export function kernHeadingPlainText(text){if(text==null||text===\"\"){return null;}return kernDmSansRtInPlainText(text);}\nexport const __FramerMetadata__ = {\"exports\":{\"TYPOGRAPHY_FALLBACK_HEADLINE_2XS_HEAVY_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_DETAIL_LG_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"kernHeadingPlainText\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_BODY_MD_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_LG_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FONT_FAMILY_PRIMARY_STACK\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TypographyToken\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DM_SANS_RT_T_MARGIN_LEFT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_HEADLINE_MD_HEAVY_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_BODY_MD_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_EYEBROW_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_DETAIL_LG_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"kernDmSansRtInPlainText\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_LG_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_MD_FONT_SIZE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getTypography\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_HEADLINE_SM_HEAVY_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_LG_FONT_SIZE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getAllTypographyTokens\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_HEADLINE_2XS_HEAVY_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getTypographyParagraphSpacing\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getTypographyStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_MD_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_HEADLINE_SM_HEAVY_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_SM_FONT_SIZE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_DETAIL_LG_FONT_SIZE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_SM_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_EYEBROW_FONT_SIZE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FONT_FAMILY_PRIMARY\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_HEADLINE_MD_HEAVY_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_EYEBROW_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_SM_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TypographyPath\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_MD_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./typography.map","/**\n * Core - Core token definitions and accessor functions.\n *\n * This module contains spacing, width, container, radius, opacity, animation tokens,.\n * And related functions. Color and typography tokens are in separate modules.\n */import*as React from\"react\";import{getAllColorTokens,getColor,getColorValue}from\"https://framerusercontent.com/modules/XmP6lddHGwwZ6IkaVx2s/MDeOeDYrTvuAQZdH6kDt/colors.js\";import{getAllTypographyTokens,getTypography,getTypographyStyles,getTypographyParagraphSpacing}from\"https://framerusercontent.com/modules/bCwuxUCPByrId2011XdW/lfwsEW5AmhLjHK03RiqB/typography.js\";const PHONE_BREAKPOINT_MAX_WIDTH=809;const TABLET_BREAKPOINT_MIN_WIDTH=PHONE_BREAKPOINT_MAX_WIDTH+1;const TABLET_BREAKPOINT_MAX_WIDTH=1199;// ============================================\n// SPACING SCALE.\n// ============================================\nconst SPACING_SCALE={0:0,1:1,2:2,3:3,4:4,6:6,8:8,10:10,12:12,14:14,16:16,18:18,20:20,24:24,28:28,32:32,35:35,40:40,44:44,48:48,56:56,64:64,80:80,96:96,100:100,112:112,128:128,160:160,180:180,200:200,220:220,225:225,240:240,260:260,280:280,288:288,300:300,320:320,350:350,360:360,400:400,500:500,520:520};const WIDTH_TOKENS={\"paragraph-max-width\":720,\"width-3xl\":1280,\"width-4xl\":1440,\"width-5xl\":1600,\"width-6xl\":1920,\"width-lg\":640,\"width-md\":560,\"width-sm\":480,\"width-xl\":768,\"width-xs\":384,\"width-xxl\":1024,\"width-xxs\":320,\"width-dropdown-narrow\":600,\"width-dropdown-mid\":800,\"width-dropdown-wide\":900};const CONTAINER_TOKENS={\"container-max-width-desktop\":1280,\"container-padding-desktop\":32,\"container-padding-tablet\":24,\"container-padding-mobile\":16};const GRID_TOKENS={desktop:{columns:12,gutter:32},tablet:{columns:8,gutter:32},phone:{columns:4,gutter:16}};// ============================================\n// BORDER RADIUS.\n// ============================================\n/**\n * Canonical radius token scale.\n *\n * | Token        | px   | Use |\n * |--------------|------|-----|\n * | radius-none  |  0   | Sharp edges, tables |\n * | radius-xxs   |  2   | Very subtle (badges, tags) |\n * | radius-xs    |  4   | Small controls, inputs |\n * | radius-sm    |  6   | Buttons, small cards |\n * | radius-md    |  8   | Cards, modals, dropdowns |\n * | radius-lg    | 12   | Default cards, images |\n * | radius-xl    | 16   | Larger cards, nav items |\n * | radius-2xl   | 18   | Between xl and xxl |\n * | radius-xxl   | 20   | Feature cards, tiles |\n * | radius-3xl   | 24   | Section cards, bento |\n * | radius-4xl   | 32   | Section blocks |\n * | radius-5xl   | 48   | Hero-style cards |\n * | radius-6xl   | 64   | Extra-large hero / feature frames |\n * | radius-full  | 9999 | Pills, circles |\n */const RADIUS_VALUES={\"radius-none\":0,\"radius-xxs\":2,\"radius-xs\":4,\"radius-sm\":6,\"radius-md\":8,\"radius-lg\":12,\"radius-xl\":16,\"radius-2xl\":18,\"radius-xxl\":20,\"radius-3xl\":24,\"radius-4xl\":32,\"radius-5xl\":48,\"radius-6xl\":64,\"radius-full\":9999};// ============================================\n// OPACITY TOKENS.\n// ============================================\nconst OPACITY_TOKENS={subtle:.08,light:.1,medium:.2,glass:.45,spotlight:.3,shadow:.25,disabled:.4,disabledMedium:.5,disabledStrong:.6,muted:.65,backdrop:.7,overlay:.86,strong:.9,hover:.8};/**\n * Opaque but visually invisible background for mask layers (avoids paint bugs).\n * Use for SVG/clipping where a non-transparent value is required.\n */export const INVISIBLE_PAINT=\"rgba(0,0,0,0.001)\";// ============================================\n// SHADOW TOKENS.\n// ============================================\n/**\n * Shadow tokens for elevation and depth effects.\n *\n * Shadows use dark colors (black) with varying opacity to create realistic.\n * Depth effects. Higher elevation = larger blur and offset.\n */const SHADOW_TOKENS={// Subtle elevation - barely visible, for minimal depth.\nsubtle:\"0 1px 2px 0 rgba(0, 0, 0, 0.15)\",// Small elevation - for cards, buttons, small elevated elements.\nsmall:\"0 2px 4px 0 rgba(0, 0, 0, 0.2)\",// Medium elevation - for dropdowns, popovers, tooltips.\nmedium:\"0 4px 12px 0 rgba(0, 0, 0, 0.25)\",// Large elevation - for modals, drawers, major UI elements.\nlarge:\"0 8px 24px 0 rgba(0, 0, 0, 0.3)\",// Modal elevation - for modal dialogs (slightly stronger than large).\nmodal:\"0 8px 32px 0 rgba(0, 0, 0, 0.4)\",// Extra large elevation - for maximum depth, floating elements.\nxlarge:\"0 16px 48px 0 rgba(0, 0, 0, 0.35)\",// Focus ring shadow - for accessibility (combines with border).\nfocus:\"0 0 0 4px rgba(0, 0, 0, 0.15)\",// Polaroid frame shadow - layered double drop-shadow tuned for the\n// photo-ticker frame chrome (soft ambient halo + close contact shadow).\n// The two-layer composition gives the printed-photo feel that a single\n// shadow can't reproduce.\npolaroid:\"0 4px 20px rgba(0, 0, 0, 0.18), 0 1px 4px rgba(0, 0, 0, 0.1)\"};// ============================================\n// Z-INDEX TOKENS.\n// ============================================\n/**\n * Z-Index tokens for consistent layering across the design system.\n *\n * Z-index scale 0–10 (Framer canvas limit). Layering hierarchy (lowest to highest):\n * - base (0): Normal document flow.\n * - raised (1): Cards/content above local backdrop.\n * - elevated (2): Dropdowns, popovers, in-section floating layers.\n * - controls (3): Interactive controls (video, form toggles).\n * - sticky (4): Sticky headers, announcement banners, fixed navbar.\n * - tooltip (5): Tooltips above sticky chrome.\n * - floating (6): FABs, carousel arrows, floating actions.\n * - drawer (7): Side drawers, mobile nav overlay.\n * - modal (8): Modal backdrops and panels.\n * - cookie (9): Cookie consent — always above modals.\n * - max (10): Emergency escape hatch (local deck stacking).\n */const Z_INDEX_TOKENS={base:0,raised:1,elevated:2,controls:3,sticky:4,tooltip:5,floating:6,drawer:7,modal:8,cookie:9,max:10};// ============================================\n// ANIMATION TOKENS\n// ============================================\n// Duration constants (in seconds).\nconst ANIMATION_DURATIONS={brief:.08,quick:.15,standard:.25,extended:.4,micro:.18,moderate:.3,leisurely:.45,loop:.8,loopSlow:1};// Backdrop blur radii (px) for glass surfaces — use with backdrop-filter / -webkit-backdrop-filter.\nconst BACKDROP_BLUR_PX={xs:4,sm:8,md:12,lg:20};// Sub-pixel / effect `filter: blur()` values (not backdrop-filter).\nconst EFFECT_FILTER_BLUR_PX={/** Light-ray and similar softening (sub-pixel). */subtle:.6};/** Default and max blur (px) for VideoPlayer ambient glow (user-controlled, clamped). */const VIDEO_AMBIENT_GLOW_BLUR={default:48,max:200};/**\n * Single shared Liquid Glass preset — Figma “Shared Glass” as the baseline, with\n * quality tuning so the web build stays frosted and legible (the raw Figma frost\n * scalar maps to only ~3.5 px blur at a 30 px max, which reads flat next to SVG refraction).\n *\n * - Refraction sits between the legacy “standard” (60) and the Figma slider (80)\n *   so displacement stays expressive without feeling swimmy on large cards.\n * - Frost blur is tuned so content behind reads as *frosted glass* through lighter\n *   translucent tints without over-softening (paired with softer fills in `getLiquidGlassVariantFill`).\n * - Saturation stays slightly boosted so colours survive blur + translucent overlays.\n */export const LIQUID_GLASS_SHARED={displacementScale:68,/** Frost radius (px): higher = more literal glass; clamp avoids extreme GPU cost */frostBlurPx:Math.min(20,Math.max(12,18/100*88)),/** Backdrop saturation — compensates blur + tinted overlay so imagery stays lively */saturation:148,/** Dispersion 50% → midpoint of former 1–3 edge scale */aberrationIntensity:2.35,/** Edge softness reserved for future SVG tuning; CSS rim stays crisp (blur kills the sheen). */splayBlurPx:0,highlightDepthNearPct:32,highlightDepthFarPct:68,highlightLightAlpha:.8,highlightAngleBaseDeg:-45};/**\n * Shared `backdrop-filter` stack for frosted glass (blur + saturate + mild contrast).\n * Use everywhere that mirrors `<LiquidGlass />` without the SVG displacement URL so\n * Safari/WebKit and Chrome stay visually aligned.\n */export function getLiquidGlassBackdropBlurFilter(frostBlurPx,saturationPct){return`blur(${frostBlurPx}px) saturate(${saturationPct}%) contrast(1.025)`;}const LEGACY_SHARED_PRESET={displacementScale:LIQUID_GLASS_SHARED.displacementScale,blurAmount:Math.max(0,(LIQUID_GLASS_SHARED.frostBlurPx-4)/32),saturation:LIQUID_GLASS_SHARED.saturation,aberrationIntensity:LIQUID_GLASS_SHARED.aberrationIntensity};// Easing functions.\nconst ANIMATION_EASING={standard:\"cubic-bezier(0.25, 0.1, 0.25, 1)\",enter:\"cubic-bezier(0.2, 0, 0, 1)\",exit:\"cubic-bezier(0.3, 0, 1, 1)\",linear:\"linear\"};// Spring physics presets.\nconst ANIMATION_SPRING={snappy:{stiffness:450,damping:35},smooth:{stiffness:280,damping:28},gentle:{stiffness:170,damping:26}};/**\n * Shared viewport margin for scroll-triggered (whileInView) animations.\n * Triggers the animation slightly before the element enters the viewport\n * so content appears to animate in naturally.\n */const SCROLL_VIEWPORT_MARGIN=\"-100px\";// ============================================\n// TOKEN ACCESSOR FUNCTIONS.\n// ============================================\n// Color and typography functions are imported from their respective modules.\n/**\n * Get spacing value from scale.\n * @param value - Spacing value (0, 2, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 80, 96, 128, 160)\n * @returns Spacing value in pixels as string\n */function getSpacing(value){const spacing=SPACING_SCALE[value];if(spacing===undefined){if(typeof __DEV__!==\"undefined\"&&__DEV__){console.warn(`Spacing value not in scale: ${value}`);}return`${value}px`;// Return as-is if not in scale\n}return`${spacing}px`;}/**\n * Get spacing value for a specific breakpoint.\n *\n * **Important:** Responsive spacing is NOT automatic. You must manually choose.\n * Appropriate spacing values for each breakpoint based on the design requirements.\n * This function simply returns the spacing value you specify - it does not scale automatically.\n *\n * Use media queries or breakpoint-specific logic to apply different spacing values.\n * For different screen sizes. Carefully adapt spacing for each breakpoint to maintain.\n * visual hierarchy and usability.\n *\n * @param value - Spacing value from the spacing scale\n * @param breakpoint - Current breakpoint (used for responsive component logic, default: \"desktop\")\n * @returns Spacing value in pixels as string\n *\n * @example\n * ```typescript.\n * // Manually choose different spacing values for different breakpoints.\n * Const padding = breakpoint === \"phone\".\n * ? Tokens.getResponsiveSpacing(16, breakpoint)  // Smaller padding for mobile.\n * : Tokens.getResponsiveSpacing(24, breakpoint); // Larger padding for desktop/tablet.\n *\n * // Or use in responsive component logic.\n * Const gap = Tokens.getResponsiveSpacing(.\n * Size === \"large\" ? 24 : 16,.\n * Breakpoint.\n * );\n * ```\n */function getResponsiveSpacing(value,_breakpoint=\"desktop\"){// Simply return the spacing value - no automatic scaling.\n// Developers must choose appropriate values for each breakpoint.\nreturn getSpacing(value);}/**\n * Get width value by token key.\n * @param key - Width token key (e.g., \"width-md\", \"paragraph-max-width\")\n * @returns Width value in pixels as number\n */function getWidth(key){const width=WIDTH_TOKENS[key];if(width===undefined){if(typeof __DEV__!==\"undefined\"&&__DEV__){console.warn(`Width token not found: ${key}`);}return 0;}return width;}/**\n * Get width value as string.\n * @param key - Width token key\n * @returns Width value in pixels as string\n */function getWidthValue(key){return`${getWidth(key)}px`;}/**\n * Get container token value by key.\n * @param key - Container token key (e.g., \"container-padding-mobile\", \"container-padding-tablet\", \"container-padding-desktop\", \"container-max-width-desktop\")\n * @returns Container value in pixels as number\n */function getContainer(key){const container=CONTAINER_TOKENS[key];if(container===undefined){if(typeof __DEV__!==\"undefined\"&&__DEV__){console.warn(`Container token not found: ${key}`);}return 0;}return container;}/**\n * Get container token value as string.\n * @param key - Container token key\n * @returns Container value in pixels as string\n */function getContainerValue(key){return`${getContainer(key)}px`;}/**\n * Get responsive container padding for a specific breakpoint.\n * Provides consistent horizontal padding that matches the container system.\n *\n * Container padding:\n * - Desktop: 32px.\n * - Tablet: 24px.\n * - Mobile: 16px.\n *\n * @param breakpoint - Current breakpoint (default: \"desktop\")\n * @returns Container padding in pixels as string\n *\n * @example\n * ```typescript.\n * Const padding = Tokens.getContainerPadding(breakpoint);\n * // Returns: \"32px\" for desktop, \"24px\" for tablet, \"16px\" for phone.\n *\n * // Use in component styles.\n * <div style={{ paddingLeft: Tokens.getContainerPadding(breakpoint), paddingRight: Tokens.getContainerPadding(breakpoint) }}>.\n * ```\n */function getContainerPadding(breakpoint=\"desktop\"){const paddingMap={desktop:\"container-padding-desktop\",tablet:\"container-padding-tablet\",phone:\"container-padding-mobile\"};return getContainerValue(paddingMap[breakpoint]);}/**\n * Get container max width for a specific breakpoint.\n * Used by Section organisms to ensure consistent container widths.\n *\n * Max widths:\n * - Desktop: 1280px (container-max-width-desktop).\n * - Tablet: 100%.\n * - Mobile: 100%.\n *\n * For full container style objects (maxWidth + margin + boxSizing), use\n * layoutStyles.getContainerStyles(breakpoint) instead.\n *\n * @param breakpoint - Current breakpoint (default: \"desktop\")\n * @returns Max width as CSS string\n *\n * @example\n * ```typescript.\n * Const maxWidth = Tokens.getContainerMaxWidth(breakpoint);\n * // Returns: \"1280px\" for desktop, \"100%\" for tablet, \"100%\" for phone.\n *\n * // Use in component styles.\n * <div style={{ maxWidth: Tokens.getContainerMaxWidth(breakpoint) }}>.\n * ```\n */function getContainerMaxWidth(breakpoint=\"desktop\"){const maxWidths={desktop:getContainerValue(\"container-max-width-desktop\"),tablet:\"100%\",phone:\"100%\"};return maxWidths[breakpoint];}/**\n * Get responsive section padding for organisms.\n * Provides consistent horizontal and vertical padding across breakpoints.\n *\n * Horizontal padding:\n * - Desktop: 32px (matches container-padding-desktop).\n * - Tablet: 24px (matches container-padding-tablet).\n * - Mobile: 16px (matches container-padding-mobile).\n *\n * Vertical padding:\n * - Desktop: 112px.\n * - Tablet: 96px.\n * - Mobile: 64px.\n *\n * @param breakpoint - Current breakpoint (default: \"desktop\")\n * @returns Object with paddingTop, paddingBottom, paddingLeft, paddingRight as strings\n *\n * @example\n * ```typescript.\n * Const padding = Tokens.getSectionPadding(breakpoint);\n * // Returns: { paddingTop: \"112px\", paddingBottom: \"112px\", paddingLeft: \"32px\", paddingRight: \"32px\" }.\n *\n * // Use in component styles.\n * <section style={Tokens.getSectionPadding(breakpoint)}>.\n * ```\n */function getSectionPadding(breakpoint=\"desktop\"){const verticalPadding={desktop:112,tablet:96,phone:64};// Use container padding tokens for horizontal padding.\nconst horizontalPadding={desktop:getContainer(\"container-padding-desktop\"),tablet:getContainer(\"container-padding-tablet\"),phone:getContainer(\"container-padding-mobile\")};return{paddingTop:getSpacing(verticalPadding[breakpoint]),paddingBottom:getSpacing(verticalPadding[breakpoint]),paddingLeft:getSpacing(horizontalPadding[breakpoint]),paddingRight:getSpacing(horizontalPadding[breakpoint])};}/**\n * Get responsive gap value for sections.\n * Provides consistent gap spacing across breakpoints.\n *\n * @param size - Gap size: \"small\", \"medium\", \"large\", or \"xl\"\n * @param breakpoint - Current breakpoint (default: \"desktop\")\n * @returns Gap value in pixels as string\n *\n * @example\n * ```typescript\n * const gap = Tokens.getResponsiveGap(\"medium\", breakpoint);\n * // Returns: \"24px\" for desktop, \"20px\" for tablet, \"16px\" for mobile.\n *\n * // Use in component styles.\n * <div style={{ display: \"flex\", gap: Tokens.getResponsiveGap(\"medium\", breakpoint) }}>\n * ```\n */function getResponsiveGap(size,breakpoint=\"desktop\"){const gapMap={small:{desktop:16,tablet:12,phone:8},medium:{desktop:24,tablet:20,phone:16},large:{desktop:48,tablet:32,phone:24},xl:{desktop:80,tablet:48,phone:32}};return getSpacing(gapMap[size][breakpoint]);}/**\n * Get grid column count for a specific breakpoint.\n *\n * Grid columns:\n * - Desktop: 12 columns.\n * - Tablet: 8 columns.\n * - Mobile: 4 columns.\n *\n * @param breakpoint - Current breakpoint (default: \"desktop\")\n * @returns Number of columns\n *\n * @example\n * ```typescript.\n * Const columns = Tokens.getGridColumns(breakpoint);\n * // Returns: 12 for desktop, 8 for tablet, 4 for mobile.\n *\n * // Use in CSS Grid.\n * GridTemplateColumns: `repeat(${Tokens.getGridColumns(breakpoint)}, 1fr)`.\n * ```\n */function getGridColumns(breakpoint=\"desktop\"){return GRID_TOKENS[breakpoint].columns;}/**\n * Get grid gutter size for a specific breakpoint.\n *\n * Grid gutters:\n * - Desktop: 32px.\n * - Tablet: 32px.\n * - Mobile: 16px.\n *\n * @param breakpoint - Current breakpoint (default: \"desktop\")\n * @returns Gutter size in pixels as string\n *\n * @example\n * ```typescript.\n * Const gutter = Tokens.getGridGutter(breakpoint);\n * // Returns: \"32px\" for desktop/tablet, \"16px\" for mobile.\n *\n * // Use in CSS Grid.\n * Gap: Tokens.getGridGutter(breakpoint).\n * ```\n */function getGridGutter(breakpoint=\"desktop\"){return getSpacing(GRID_TOKENS[breakpoint].gutter);}/**\n * Get all grid tokens for a specific breakpoint.\n *\n * @param breakpoint - Current breakpoint (default: \"desktop\")\n * @returns Object with columns and gutter values\n *\n * @example\n * ```typescript.\n * Const grid = Tokens.getGridTokens(breakpoint);\n * // Returns: { columns: 12, gutter: 32 } for desktop.\n * ```\n */function getGridTokens(breakpoint=\"desktop\"){return GRID_TOKENS[breakpoint];}/**\n * Get all spacing values from the scale.\n * @returns Array of spacing values sorted in ascending order\n */function getAllSpacingValues(){return Object.keys(SPACING_SCALE).map(key=>parseInt(key,10)).sort((a,b)=>a-b);}/**\n * Get all width tokens.\n * @returns Record of all width tokens\n */function getAllWidthTokens(){return WIDTH_TOKENS;}/**\n * Get all container tokens.\n * @returns Record of all container tokens\n */function getAllContainerTokens(){return CONTAINER_TOKENS;}/**\n * Get border radius value.\n * @param size - Canonical radius token key (e.g. \"radius-lg\", \"radius-3xl\", \"radius-full\").\n *   See the RADIUS_VALUES table for the full scale (0–128px + pill 9999px).\n * @returns Border radius value in pixels as string\n */function getRadius(size){const radius=RADIUS_VALUES[size];if(radius===undefined){if(typeof __DEV__!==\"undefined\"&&__DEV__){console.warn(`Invalid radius token: ${size}. Use a canonical \"radius-*\" token.`);}return\"12px\";// Fallback to radius-lg\n}return`${radius}px`;}/**\n * Get opacity value by token name.\n * @param token - Opacity token name (e.g., \"subtle\", \"light\", \"medium\", \"disabled\", etc.)\n * @returns Opacity value as number (0-1)\n */function getOpacity(token){const opacity=OPACITY_TOKENS[token];if(opacity===undefined){if(typeof __DEV__!==\"undefined\"&&__DEV__){console.warn(`Opacity token not found: ${token}`);}return 1;// Fallback to fully opaque\n}return opacity;}/**\n * Get shadow value by token name.\n * @param token - Shadow token name (e.g., \"subtle\", \"small\", \"medium\", \"large\", \"xlarge\", \"focus\")\n * @returns CSS box-shadow value string\n *\n * @example\n * ```typescript.\n * Const shadow = Tokens.getShadow(\"medium\");\n * // Returns: \"0 4px 12px 0 rgba(0, 0, 0, 0.25)\".\n *\n * // Use in component styles.\n * <div style={{ boxShadow: Tokens.getShadow(\"small\") }}>.\n * ```\n */function getShadow(token){const shadow=SHADOW_TOKENS[token];if(shadow===undefined){if(typeof __DEV__!==\"undefined\"&&__DEV__){console.warn(`Shadow token not found: ${token}`);}return\"none\";// Fallback to no shadow\n}return shadow;}/**\n * Get z-index value by token name (scale 0–10).\n * @param token - Z-index token name (e.g. \"base\", \"raised\", \"elevated\", \"modal\", \"max\")\n * @returns Z-index value as number\n *\n * @example\n * ```ts\n * Tokens.getZIndex(\"elevated\"); // 2\n * <div style={{ zIndex: Tokens.getZIndex(\"modal\") }} />\n * ```\n */function getZIndex(token){const zIndex=Z_INDEX_TOKENS[token];if(zIndex===undefined){if(typeof __DEV__!==\"undefined\"&&__DEV__){console.warn(`Z-index token not found: ${token}`);}return 0;// Fallback to base\n}return zIndex;}/**\n * Get animation duration by type.\n * @param type - Named duration from the animation scale (see ANIMATION_DURATIONS)\n * @returns Duration in seconds as number\n */function getAnimationDuration(type){return ANIMATION_DURATIONS[type];}/**\n * Get easing function by type.\n * @param type - Easing type: 'standard', 'enter', 'exit', or 'linear'\n * @returns CSS easing function string\n */function getEasing(type){return ANIMATION_EASING[type];}/**\n * Get spring physics preset.\n * @param type - Spring type: 'snappy', 'smooth', or 'gentle'\n * @returns Spring physics object with stiffness and damping\n */function getSpring(type){return ANIMATION_SPRING[type];}/**\n * Generate CSS transition string.\n * @param property - CSS property name (e.g., \"background\", \"opacity\", \"transform\")\n * @param durationType - Named animation duration (default: 'standard')\n * @param easingType - Easing type: 'standard', 'enter', 'exit', or 'linear' (default: 'standard')\n * @returns CSS transition string (e.g., \"background 0.2s cubic-bezier(0.4, 0, 0.2, 1)\")\n */function getTransition(property,durationType=\"standard\",easingType=\"standard\"){const duration=getAnimationDuration(durationType);const easing=getEasing(easingType);return`${property} ${duration}s ${easing}`;}/**\n * Generate Framer Motion transition object.\n * @param durationType - Duration type: 'quick', 'standard', or 'extended' (default: 'standard')\n * @param easingType - Easing type: 'standard', 'enter', 'exit', or 'linear' (default: 'standard')\n * @returns Framer Motion transition object\n */function getFramerTransition(durationType=\"standard\",easingType=\"standard\"){const duration=getAnimationDuration(durationType);const easing=getEasing(easingType);// Convert cubic-bezier string to array for Framer Motion.\nif(easingType===\"linear\"){return{duration,ease:\"linear\"};}// Extract cubic-bezier values.\nconst bezierMatch=easing.match(/cubic-bezier\\(([^)]+)\\)/);if(bezierMatch){const values=bezierMatch[1].split(\",\").map(v=>parseFloat(v.trim()));return{duration,ease:values};}return{duration,ease:easing};}/**\n * Get the shared viewport margin for scroll-triggered animations.\n * Use this as the `margin` value in Framer Motion's `viewport` prop\n * to trigger animations slightly before elements enter the viewport.\n *\n * @returns Viewport margin string (e.g. \"-100px\")\n *\n * @example\n * ```typescript\n * <motion.div\n *     initial=\"hidden\"\n *     whileInView=\"visible\"\n *     viewport={{ once: true, margin: Tokens.getScrollViewportMargin() }}\n * >\n * ```\n */function getScrollViewportMargin(){return SCROLL_VIEWPORT_MARGIN;}/**\n * CSS `blur()` value for backdrop-filter (and -webkit-backdrop-filter).\n */function getBackdropBlur(size){return`blur(${BACKDROP_BLUR_PX[size]}px)`;}/**\n * Returns the shared Figma-aligned LiquidGlass parameter set.\n * The `intensity` argument is ignored (kept for backward compatibility).\n */function getLiquidGlassPreset(_intensity){return LEGACY_SHARED_PRESET;}/**\n * CSS `filter: blur()` for layered effects (not backdrop-filter).\n */function getEffectFilterBlur(token){return`blur(${EFFECT_FILTER_BLUR_PX[token]}px)`;}/**\n * Default ambient-glow blur (px) for VideoPlayer.\n */function getVideoAmbientGlowBlurDefault(){return VIDEO_AMBIENT_GLOW_BLUR.default;}/**\n * Clamp user-provided ambient-glow blur to a safe range.\n */function clampVideoAmbientGlowBlur(px){if(Number.isNaN(px)||px<0){return 0;}else{return Math.min(Math.round(px),VIDEO_AMBIENT_GLOW_BLUR.max);}}/**\n * Standard focus-ring outline width (matches spacing scale — 2px).\n */function getFocusOutlineWidth(){return getSpacing(2);}/**\n * Convert color value (hex or rgb) to RGB string for rgba usage.\n * @param color - Color value in hex (#RRGGBB) or rgb(r, g, b) format\n * @returns RGB string in format \"r, g, b\"\n */function colorToRgb(color){// Handle hex colors (#RRGGBB).\nif(color.startsWith(\"#\")){const hex=color.replace(\"#\",\"\");const r=parseInt(hex.substring(0,2),16);const g=parseInt(hex.substring(2,4),16);const b=parseInt(hex.substring(4,6),16);return`${r}, ${g}, ${b}`;}// Handle rgb() colors.\nconst rgbMatch=color.match(/rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);if(rgbMatch){return`${rgbMatch[1]}, ${rgbMatch[2]}, ${rgbMatch[3]}`;}// Fallback to black if format is unknown.\nreturn\"0, 0, 0\";}/**\n * Get brightness filter value for hover/pressed/disabled states.\n * Standard hover pattern: brightness(0.7) provides consistent visual feedback.\n * Across all interactive components when hovered or pressed (reduces brightness by 30%).\n * Disabled state: brightness(0.3) provides consistent visual feedback for disabled components.\n *\n * @param disabled - Whether the component is disabled\n * @param isHovered - Whether the component is currently hovered\n * @param isPressed - Whether the component is currently pressed/active\n * @returns CSS filter string: \"brightness(0.3)\" when disabled, \"brightness(0.7)\" when hovered or pressed, \"none\" otherwise\n *\n * @example\n * ```typescript.\n * Const filter = Tokens.getBrightnessFilter(disabled, isHovered, isPressed);\n * // Use in component styles: filter: filter.\n * ```\n */function getBrightnessFilter(disabled=false,isHovered=false,isPressed=false){if(disabled){return\"brightness(0.3)\";}if(isPressed||isHovered){return\"brightness(0.7)\";}return\"none\";}function useReducedMotion(){const[prefersReducedMotion,setPrefersReducedMotion]=React.useState(false);React.useEffect(()=>{if(typeof window===\"undefined\")return;try{const mediaQuery=window.matchMedia(\"(prefers-reduced-motion: reduce)\");setPrefersReducedMotion(mediaQuery.matches);// Listen for changes to the preference.\nconst handleChange=e=>{setPrefersReducedMotion(e.matches);};// Modern browsers.\nif(mediaQuery.addEventListener){mediaQuery.addEventListener(\"change\",handleChange);return()=>mediaQuery.removeEventListener(\"change\",handleChange);}else if(mediaQuery.addListener){mediaQuery.addListener(handleChange);return()=>mediaQuery.removeListener(handleChange);}return undefined;}catch{setPrefersReducedMotion(false);return undefined;}},[]);return prefersReducedMotion;}/**\n * Hook to detect the current viewport breakpoint via matchMedia.\n *\n * Uses the same breakpoint thresholds as typography/layout tiers:\n * - Phone: < 810px\n * - Tablet: 810px – 1199px\n * - Desktop: >= 1200px\n *\n * Returns \"desktop\" during SSR or when window is unavailable.\n *\n * @example\n * ```typescript\n * const breakpoint = useAutoBreakpoint();\n * // \"phone\" | \"tablet\" | \"desktop\" depending on viewport width.\n * ```\n */function useAutoBreakpoint(){const[breakpoint,setBreakpoint]=React.useState(\"desktop\");React.useEffect(()=>{if(typeof window===\"undefined\")return;const phoneQuery=window.matchMedia(`(max-width: ${PHONE_BREAKPOINT_MAX_WIDTH}px)`);const tabletQuery=window.matchMedia(`(min-width: ${TABLET_BREAKPOINT_MIN_WIDTH}px) and (max-width: ${TABLET_BREAKPOINT_MAX_WIDTH}px)`);const update=()=>{if(phoneQuery.matches)setBreakpoint(\"phone\");else if(tabletQuery.matches)setBreakpoint(\"tablet\");else setBreakpoint(\"desktop\");};// Set initial value.\nupdate();// Listen for changes.\nif(phoneQuery.addEventListener){phoneQuery.addEventListener(\"change\",update);tabletQuery.addEventListener(\"change\",update);return()=>{phoneQuery.removeEventListener(\"change\",update);tabletQuery.removeEventListener(\"change\",update);};}else if(phoneQuery.addListener){phoneQuery.addListener(update);tabletQuery.addListener(update);return()=>{phoneQuery.removeListener(update);tabletQuery.removeListener(update);};}return undefined;},[]);return breakpoint;}/**\n * Breakpoint ordering for comparison (lower = more constrained).\n */const BREAKPOINT_ORDER={phone:0,tablet:1,desktop:2};/**\n * Derive breakpoint from a pixel width (same thresholds as useAutoBreakpoint).\n */function widthToBreakpoint(width){if(width<=PHONE_BREAKPOINT_MAX_WIDTH)return\"phone\";if(width<=TABLET_BREAKPOINT_MAX_WIDTH)return\"tablet\";return\"desktop\";}/**\n * Hook that observes the parent element of the ref and returns the breakpoint\n * for that container width. Use when the section is inside a narrow frame\n * (e.g. Framer preview) so layout follows the container, not the window.\n * Only RefObjects are observed; callback refs are ignored (container stays \"desktop\").\n *\n * @param sectionRef - Ref attached to the section root (we observe its parentElement). RefObject only.\n * @returns Breakpoint for the container width, or \"desktop\" until measured.\n */function useContainerBreakpoint(sectionRef){const[containerWidth,setContainerWidth]=React.useState(null);const refObj=sectionRef&&typeof sectionRef===\"object\"&&\"current\"in sectionRef?sectionRef:undefined;React.useLayoutEffect(()=>{const el=refObj?.current?.parentElement;if(!el)return;const update=()=>setContainerWidth(el.clientWidth);update();const ro=new ResizeObserver(update);ro.observe(el);return()=>ro.disconnect();},[refObj]);if(containerWidth===null)return\"desktop\";return widthToBreakpoint(containerWidth);}/**\n * Hook that resolves the effective breakpoint by combining a prop value\n * with viewport and optional container detection.\n *\n * If the viewport (or container, when sectionRef is passed) is narrower\n * than the breakpoint specified by the prop, the narrower breakpoint wins.\n * Passing sectionRef ensures layout follows the section's container width\n * (e.g. when the section is in a narrow Framer frame).\n *\n * @param propBreakpoint - The breakpoint value from the component prop.\n * @param sectionRef - Optional ref attached to the section root; when set, container width is used.\n * @returns The effective breakpoint (most constrained of prop, viewport, and container).\n *\n * @example\n * ```typescript\n * const breakpoint = useEffectiveBreakpoint(breakpointProp, sectionRef);\n * ```\n */function useEffectiveBreakpoint(propBreakpoint,sectionRef){const viewportBp=useAutoBreakpoint();const containerBp=useContainerBreakpoint(sectionRef);const fromViewport=BREAKPOINT_ORDER[viewportBp]<BREAKPOINT_ORDER[propBreakpoint]?viewportBp:propBreakpoint;return BREAKPOINT_ORDER[containerBp]<BREAKPOINT_ORDER[fromViewport]?containerBp:fromViewport;}/**\n * Layout helpers derived **only** from the Framer Breakpoint control (`breakpointProp`).\n *\n * `useEffectiveBreakpoint()` also considers viewport and container width (anything below 1200px maps to\n * `\"tablet\"`), which collapses split grids and multi-column layouts when designing on a desktop canvas.\n * Use these for structural CSS (grid columns, bento placement, carousel slides per view); keep using\n * `useEffectiveBreakpoint()` for typography and spacing tokens.\n */function isCanvasPhoneBreakpoint(propBreakpoint){return propBreakpoint===\"phone\";}function isCanvasTabletBreakpoint(propBreakpoint){return propBreakpoint===\"tablet\";}/** Tablet or phone — stacked / narrow column layout vs desktop multi-column. */function isCanvasNarrowBreakpoint(propBreakpoint){return propBreakpoint===\"tablet\"||propBreakpoint===\"phone\";}const STAGGER_TOKENS={fast:.04,medium:.06,slow:.08,section:.08,/** Dense lists, mobile nav link cascade, tight column reveals (0.05s). */dense:.05,/** Relaxed hero / section headline stagger — slightly slower than `section` (0.1s). */loose:.1};function getStagger(recipe){return STAGGER_TOKENS[recipe];}const ENTRANCE_OFFSET_TOKENS={card:16,item:24,dropdown:-8,nav:-12};function getEntranceOffset(recipe){return ENTRANCE_OFFSET_TOKENS[recipe];}const ENTRANCE_SCALE_TOKENS={media:.96,modal:.98};function getEntranceScale(recipe){return ENTRANCE_SCALE_TOKENS[recipe];}const ENTRANCE_DELAY_TOKENS={navChildren:.06,/** Secondary hero/header line after primary headline (shared across SectionHero* / headers). */heroSecondary:.2,/** Mobile nav panel: stagger starts after surface begins settling. */navDropdownChildren:.18};function getEntranceDelay(recipe){return ENTRANCE_DELAY_TOKENS[recipe];}/**\n * Stacked reel/card carousel: delay ladder for tier 1–3 content (e.g. date → title → body).\n * Values are 0.1s, 0.2s, 0.3s — keeps choreographed reveals off magic numbers at call sites.\n */function getCarouselReelTierDelay(tier){return tier*.1;}// Sizes are in pixels; aligned to the 4 px spacing grid where possible.\nconst ICON_SIZE_BY_ROLE={// Inline detail icons (lists, captions). 16 / 16 / 14 px.\ndetail:{desktop:16,tablet:16,phone:14},// Button leading/trailing icons. 20 / 20 / 18 px.\nbutton:{desktop:20,tablet:20,phone:18},// Feature/utility icons in cards. 24 / 22 / 20 px.\nfeature:{desktop:24,tablet:22,phone:20},// Hero featured icons. 32 / 28 / 24 px.\nhero:{desktop:32,tablet:28,phone:24}};/**\n * Returns a responsive icon size in pixels for a given semantic role +\n * breakpoint. Sized to align with the 4 px spacing grid where possible.\n * Drops straight into the `size` prop on `FeaturedIcon` and similar\n * pixel-sized icon primitives.\n */function getResponsiveIconSize(role,breakpoint=\"desktop\"){return ICON_SIZE_BY_ROLE[role]?.[breakpoint]??ICON_SIZE_BY_ROLE.detail[breakpoint];}// ============================================\n// DEFAULT EXPORT.\n// ============================================\nconst Tokens={getAllColorTokens,getColor,getColorValue,getAllTypographyTokens,getTypography,getTypographyStyles,getTypographyParagraphSpacing,getAllSpacingValues,getSpacing,getResponsiveSpacing,getSectionPadding,getResponsiveGap,getGridColumns,getGridGutter,getGridTokens,getAllWidthTokens,getWidth,getWidthValue,getAllContainerTokens,getContainer,getContainerValue,getContainerPadding,getContainerMaxWidth,getRadius,getOpacity,getShadow,getZIndex,getAnimationDuration,getEasing,getSpring,getTransition,getFramerTransition,getScrollViewportMargin,getBackdropBlur,getLiquidGlassPreset,getEffectFilterBlur,getVideoAmbientGlowBlurDefault,clampVideoAmbientGlowBlur,getFocusOutlineWidth,colorToRgb,getBrightnessFilter,getStagger,getEntranceOffset,getEntranceScale,getEntranceDelay,getCarouselReelTierDelay,getResponsiveIconSize};export default Tokens;export{useReducedMotion,useAutoBreakpoint,useContainerBreakpoint,useEffectiveBreakpoint,isCanvasPhoneBreakpoint,isCanvasTabletBreakpoint,isCanvasNarrowBreakpoint};\nexport const __FramerMetadata__ = {\"exports\":{\"useEffectiveBreakpoint\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"OpacityToken\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ShadowToken\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiquidGlassPreset\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ZIndexToken\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiquidGlassIntensity\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ColorPath\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useReducedMotion\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ContainerTokenKey\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"INVISIBLE_PAINT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useContainerBreakpoint\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getLiquidGlassBackdropBlurFilter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TypographyToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TypographyPath\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ColorToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BackdropBlurToken\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isCanvasNarrowBreakpoint\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isCanvasTabletBreakpoint\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"AnimationDurationName\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"WidthTokenKey\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAutoBreakpoint\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LIQUID_GLASS_SHARED\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isCanvasPhoneBreakpoint\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RadiusToken\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EffectFilterBlurToken\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Breakpoint\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * Tokens - Design System Token Utility.\n *\n * Main entry point for all design tokens. Re-exports everything from\n * the modular token files (colors, typography, core).\n *\n * This module provides a unified API for accessing all design tokens.\n */// ── Side-effect imports ─────────────────────────────────────────────────\n// Font loading: Ensures DM Sans is loaded via Google Fonts and injects\n// --font-family-primary plus html/body/form cascade (no CSS files).\nimport\"https://framerusercontent.com/modules/XIM5CDb5NplU8oalmwIA/W0gtSCnD36ChfDBrPY2w/fontLoader.js\";// Re-export the loader so consumers can call it explicitly if needed.\nexport{ensureFontLoaded,ensureMontserratLoaded,FRAMER_HEAD_FONT_SNIPPET,GOOGLE_FONTS_URL,GOOGLE_FONTS_URL_MONTSERRAT,FONT_FAMILY_MONTSERRAT,FONT_FAMILY_MONTSERRAT_STACK}from\"https://framerusercontent.com/modules/XIM5CDb5NplU8oalmwIA/W0gtSCnD36ChfDBrPY2w/fontLoader.js\";// Re-export everything from core (includes Tokens object, useReducedMotion, etc.)\nexport{useReducedMotion,useAutoBreakpoint,useContainerBreakpoint,useEffectiveBreakpoint,isCanvasPhoneBreakpoint,isCanvasTabletBreakpoint,isCanvasNarrowBreakpoint,INVISIBLE_PAINT,LIQUID_GLASS_SHARED,getLiquidGlassBackdropBlurFilter}from\"https://framerusercontent.com/modules/B31emSmx1NLRWgwsBsT2/ABQDPSGSceq8CIo6a1B6/core.js\";// Re-export Tokens as both named and default export\nexport{default as Tokens}from\"https://framerusercontent.com/modules/B31emSmx1NLRWgwsBsT2/ABQDPSGSceq8CIo6a1B6/core.js\";export{default}from\"https://framerusercontent.com/modules/B31emSmx1NLRWgwsBsT2/ABQDPSGSceq8CIo6a1B6/core.js\";// Re-export color functions\nexport{getAllColorTokens,getColor,getColorValue}from\"https://framerusercontent.com/modules/XmP6lddHGwwZ6IkaVx2s/MDeOeDYrTvuAQZdH6kDt/colors.js\";// Re-export typography functions and font constants\nexport{getAllTypographyTokens,getTypography,getTypographyStyles,getTypographyParagraphSpacing,FONT_FAMILY_PRIMARY,FONT_FAMILY_PRIMARY_STACK,TYPOGRAPHY_FALLBACK_BODY_MD_LINE_HEIGHT,TYPOGRAPHY_FALLBACK_BODY_MD_LETTER_SPACING,TYPOGRAPHY_FALLBACK_HEADLINE_SM_HEAVY_LINE_HEIGHT,TYPOGRAPHY_FALLBACK_HEADLINE_SM_HEAVY_LETTER_SPACING,TYPOGRAPHY_FALLBACK_HEADLINE_2XS_HEAVY_LINE_HEIGHT,TYPOGRAPHY_FALLBACK_HEADLINE_2XS_HEAVY_LETTER_SPACING,TYPOGRAPHY_FALLBACK_HEADLINE_MD_HEAVY_LINE_HEIGHT,TYPOGRAPHY_FALLBACK_HEADLINE_MD_HEAVY_LETTER_SPACING,TYPOGRAPHY_FALLBACK_DETAIL_LG_LINE_HEIGHT,TYPOGRAPHY_FALLBACK_DETAIL_LG_LETTER_SPACING,TYPOGRAPHY_FALLBACK_DETAIL_LG_FONT_SIZE,TYPOGRAPHY_FALLBACK_SUBHEADLINE_LG_FONT_SIZE,TYPOGRAPHY_FALLBACK_SUBHEADLINE_LG_LINE_HEIGHT,TYPOGRAPHY_FALLBACK_SUBHEADLINE_LG_LETTER_SPACING,TYPOGRAPHY_FALLBACK_SUBHEADLINE_MD_FONT_SIZE,TYPOGRAPHY_FALLBACK_SUBHEADLINE_MD_LINE_HEIGHT,TYPOGRAPHY_FALLBACK_SUBHEADLINE_MD_LETTER_SPACING,TYPOGRAPHY_FALLBACK_SUBHEADLINE_SM_FONT_SIZE,TYPOGRAPHY_FALLBACK_SUBHEADLINE_SM_LINE_HEIGHT,TYPOGRAPHY_FALLBACK_SUBHEADLINE_SM_LETTER_SPACING,TYPOGRAPHY_FALLBACK_EYEBROW_FONT_SIZE,TYPOGRAPHY_FALLBACK_EYEBROW_LINE_HEIGHT,TYPOGRAPHY_FALLBACK_EYEBROW_LETTER_SPACING,kernDmSansRtInPlainText,kernHeadingPlainText,DM_SANS_RT_T_MARGIN_LEFT}from\"https://framerusercontent.com/modules/bCwuxUCPByrId2011XdW/lfwsEW5AmhLjHK03RiqB/typography.js\";\nexport const __FramerMetadata__ = {\"exports\":{\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_SM_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getTypographyStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_LG_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ensureMontserratLoaded\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getAllTypographyTokens\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_DETAIL_LG_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getAllColorTokens\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"INVISIBLE_PAINT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"WidthTokenKey\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_HEADLINE_2XS_HEAVY_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_HEADLINE_2XS_HEAVY_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LIQUID_GLASS_SHARED\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_EYEBROW_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_DETAIL_LG_FONT_SIZE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getColor\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useEffectiveBreakpoint\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAutoBreakpoint\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TypographyToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiquidGlassIntensity\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiquidGlassPreset\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_MD_FONT_SIZE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ShadowToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ContainerTokenKey\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DM_SANS_RT_T_MARGIN_LEFT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ColorToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_SM_FONT_SIZE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BackdropBlurToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_MD_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FRAMER_HEAD_FONT_SNIPPET\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ZIndexToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getTypographyParagraphSpacing\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getColorValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"kernDmSansRtInPlainText\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"GOOGLE_FONTS_URL_MONTSERRAT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FONT_FAMILY_PRIMARY_STACK\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"kernHeadingPlainText\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FONT_FAMILY_PRIMARY\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getLiquidGlassBackdropBlurFilter\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_LG_FONT_SIZE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FONT_FAMILY_MONTSERRAT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getTypography\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Tokens\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isCanvasPhoneBreakpoint\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_LG_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ensureFontLoaded\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_DETAIL_LG_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_MD_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FONT_FAMILY_MONTSERRAT_STACK\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EffectFilterBlurToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_EYEBROW_FONT_SIZE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isCanvasTabletBreakpoint\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_HEADLINE_MD_HEAVY_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ColorPath\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"OpacityToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TypographyPath\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RadiusToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"GOOGLE_FONTS_URL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useReducedMotion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isCanvasNarrowBreakpoint\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_HEADLINE_MD_HEAVY_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useContainerBreakpoint\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Breakpoint\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_HEADLINE_SM_HEAVY_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_SUBHEADLINE_SM_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_HEADLINE_SM_HEAVY_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_BODY_MD_LINE_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_BODY_MD_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TYPOGRAPHY_FALLBACK_EYEBROW_LETTER_SPACING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"AnimationDurationName\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * Theme Helper Utilities.\n *\n * Centralized theme color utilities for components.\n * Provides consistent theme-aware color selection across the component library.\n */import Tokens from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";/**\n * Get standard theme colors for any component.\n *\n * Returns a comprehensive set of theme-aware colors that work for most components.\n * For modal-specific colors, use getModalThemeColors from modalConstants.ts.\n *\n * ## Why only `default` and `inverted` (no `dark`)\n *\n * The bunq design system intentionally exposes two surface palettes:\n * `default` (light-mode primary backgrounds + dark text) and `inverted`\n * (the on-brand dark surface variant + light text). It does **not**\n * currently model a separate OS-level \"dark mode\". The underlying token\n * schema in `utils/tokens/colors.ts` reflects this: every color entry has\n * a `light: string` value and a `dark: string | null` slot, and today\n * every `dark` slot is `null` — there is no dark-mode palette to wire up.\n *\n * Concretely, this means:\n *   - Components must not branch on `prefers-color-scheme`.\n *   - The `theme` prop is a per-section/per-card design decision (e.g. an\n *     inverted hero), not a user preference.\n *   - When (if) the design system adds dark-mode tokens, this helper is\n *     the single place to extend the union to `\"default\" | \"inverted\" | \"dark\"`\n *     and the `isInverted` ternaries below need to be replaced with a\n *     small lookup map.\n *\n * Adding a `dark` branch here without those tokens would silently fall\n * back to `default` colors and create a phantom theme that designers\n * couldn't actually preview in Framer.\n *\n * @param theme - Color theme variant (\"default\" or \"inverted\")\n * @returns Object containing theme-aware colors\n *//**\n * Normalize Framer enum / string values so theme branches stay reliable (e.g. casing drift).\n */export function resolveThemeVariant(theme){if(theme===\"inverted\")return\"inverted\";if(typeof theme===\"string\"&&theme.toLowerCase()===\"inverted\")return\"inverted\";return\"default\";}export const getThemeColors=(theme=\"default\")=>{const isInverted=resolveThemeVariant(theme)===\"inverted\";return{// Background colors.\nbgPrimary:Tokens.getColorValue(isInverted?\"/Backgrounds/bg-inverted-primary\":\"/Backgrounds/bg-primary\"),bgSecondary:Tokens.getColorValue(isInverted?\"/Backgrounds/bg-inverted-secondary\":\"/Backgrounds/bg-secondary\"),bgTertiary:Tokens.getColorValue(isInverted?\"/Backgrounds/bg-inverted-tertiary\":\"/Backgrounds/bg-tertiary\"),bgQuaternary:Tokens.getColorValue(isInverted?\"/Backgrounds/bg-inverted-quaternary\":\"/Backgrounds/bg-quaternary\"),bgQuinary:Tokens.getColorValue(isInverted?\"/Backgrounds/bg-inverted-quinary\":\"/Backgrounds/bg-quinary\"),// Text colors.\ntextPrimary:Tokens.getColorValue(isInverted?\"/Text/text-inverted-primary\":\"/Text/text-primary\"),textSecondary:Tokens.getColorValue(isInverted?\"/Text/text-inverted-secondary\":\"/Text/text-secondary\"),textTertiary:Tokens.getColorValue(isInverted?\"/Text/text-inverted-tertiary\":\"/Text/text-tertiary\"),textQuaternary:Tokens.getColorValue(isInverted?\"/Text/text-inverted-quaternary\":\"/Text/text-quaternary\"),// Foreground/Icon colors.\nfgPrimary:Tokens.getColorValue(isInverted?\"/Foregrounds/fg-inverted-primary\":\"/Foregrounds/fg-primary\"),fgSecondary:Tokens.getColorValue(isInverted?\"/Foregrounds/fg-inverted-secondary\":\"/Foregrounds/fg-secondary\"),fgTertiary:Tokens.getColorValue(isInverted?\"/Foregrounds/fg-inverted-tertiary\":\"/Foregrounds/fg-tertiary\"),// Border colors.\nborderPrimary:Tokens.getColorValue(isInverted?\"/Borders/border-inverted-primary\":\"/Borders/border-primary\"),borderSecondary:Tokens.getColorValue(isInverted?\"/Borders/border-inverted-secondary\":\"/Borders/border-secondary\"),borderTertiary:Tokens.getColorValue(isInverted?\"/Borders/border-inverted-tertiary\":\"/Borders/border-tertiary\"),/** Hairline separators on glass / layered UI — alpha tint, not solid gray. */dividerGlass:Tokens.getColorValue(isInverted?\"/Borders/divider-inverted-glass\":\"/Borders/divider-glass\"),// Semantic colors (theme-independent).\ntextLink:Tokens.getColorValue(\"/Text/text-brand-bunq\"),textError:Tokens.getColorValue(\"/Text/text-error\"),textSuccess:Tokens.getColorValue(\"/Text/text-success\"),textWarning:Tokens.getColorValue(\"/Text/text-warning\"),bgBrand:Tokens.getColorValue(\"/Backgrounds/bg-brand-bunq-solid\"),bgError:Tokens.getColorValue(\"/Backgrounds/bg-error\"),bgSuccess:Tokens.getColorValue(\"/Backgrounds/bg-success\"),bgWarning:Tokens.getColorValue(\"/Backgrounds/bg-warning\"),borderBrand:Tokens.getColorValue(\"/Borders/border-brand-bunq\"),borderError:Tokens.getColorValue(\"/Borders/border-error\"),borderSuccess:Tokens.getColorValue(\"/Borders/border-success\"),borderWarning:Tokens.getColorValue(\"/Borders/border-warning\")};};/**\n * Get theme colors specifically for card components.\n *\n * Provides a standard set of colors for card-based components like.\n * CardBlog, CardTestimonial, CardTeamMember, etc.\n *\n * @param theme - Color theme variant (\"default\" or \"inverted\")\n * @returns Object containing card-specific theme-aware colors\n */export const getCardThemeColors=(theme=\"default\")=>{const baseColors=getThemeColors(theme);return{cardBg:baseColors.bgTertiary,contentBg:baseColors.bgPrimary,titleColor:baseColors.textPrimary,descriptionColor:baseColors.textSecondary,metaColor:baseColors.textTertiary,borderColor:baseColors.borderSecondary,iconColor:baseColors.fgPrimary,// Include base colors for flexibility.\n...baseColors};};/**\n * Get theme colors specifically for banner components.\n *\n * @param theme - Color theme variant (\"default\" or \"inverted\")\n * @returns Object containing banner-specific theme-aware colors\n */export const getBannerThemeColors=(theme=\"default\")=>{const baseColors=getThemeColors(theme);return{bannerBg:baseColors.bgTertiary,titleColor:baseColors.textPrimary,messageColor:baseColors.textPrimary,buttonColor:baseColors.textPrimary,closeIconColor:baseColors.fgPrimary,borderColor:baseColors.borderPrimary,// Include base colors for flexibility.\n...baseColors};};/**\n * Get theme colors specifically for section components.\n *\n * @param theme - Color theme variant (\"default\" or \"inverted\")\n * @returns Object containing section-specific theme-aware colors\n */export const getSectionThemeColors=(theme=\"default\")=>{const baseColors=getThemeColors(theme);return{sectionBg:baseColors.bgPrimary,headingColor:baseColors.textPrimary,bodyColor:baseColors.textSecondary,accentColor:baseColors.textLink,dividerColor:baseColors.dividerGlass,// Include base colors for flexibility.\n...baseColors};};// ─── Background color helpers ─────────────────────────────────────────────────\n/**\n * Get section background color based on a backgroundVariant prop.\n *\n * Centralizes the duplicated `getBackgroundColor` closure that appeared in 11\n * hero/header section components. Pass the raw colors object from\n * `getThemeColors()` so no extra token lookups are required.\n *\n * @param backgroundVariant - \"primary\" | \"secondary\" (or any string for primary fallback)\n * @param colors - Theme colors object containing bgPrimary and bgSecondary\n * @returns CSS color string\n */export function getSectionBackgroundColor(backgroundVariant,colors){if(backgroundVariant===\"primary\")return colors.bgPrimary;if(backgroundVariant===\"secondary\")return colors.bgSecondary;return colors.bgPrimary;}// ─── CMS placeholder color helpers ───────────────────────────────────────────\n/**\n * Get the four standard placeholder colors used by CMS skeleton UIs.\n *\n * Centralizes the duplicated placeholder color expressions that appeared in\n * 11 CMS-backed section components (SectionFaqCentered, SectionCollectionList,\n * SectionTestimonialCarousel, etc.).\n *\n * @param colors - Theme colors object containing textTertiary\n * @returns Object with bgSubtle, bgLight, bgMedium, and textMuted color strings\n */export function getPlaceholderColors(colors){return{bgSubtle:`rgba(${Tokens.colorToRgb(colors.textTertiary)}, ${Tokens.getOpacity(\"subtle\")})`,bgLight:`rgba(${Tokens.colorToRgb(colors.textTertiary)}, ${Tokens.getOpacity(\"light\")})`,bgMedium:`rgba(${Tokens.colorToRgb(colors.textTertiary)}, ${Tokens.getOpacity(\"medium\")})`,textMuted:`rgba(${Tokens.colorToRgb(colors.textTertiary)}, ${Tokens.getOpacity(\"muted\")})`};}\nexport const __FramerMetadata__ = {\"exports\":{\"SectionThemeColors\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"resolveThemeVariant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCardThemeColors\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CardThemeColors\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getPlaceholderColors\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getThemeColors\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BannerThemeColors\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getBannerThemeColors\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSectionBackgroundColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSectionThemeColors\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ThemeColors\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * Layout Styles — Framer-Compatible Layout Helpers.\n *\n * JavaScript replacement for the removed `layout.module.css`. Provides\n * breakpoint-aware style objects for sections, containers, grids, and\n * content stacks. Use these helpers when migrating organisms/templates\n * from CSS Modules to inline styles.\n *\n * All values mirror the layout system (breakpoint-aware grid, container,\n * spacing). No CSS files are used; styling is token-driven inline.\n *\n * @example\n * ```tsx\n * import { getSectionStyles, getContainerStyles, getGrid2ColStyles } from \"../../utils/layoutStyles.ts\";\n *\n * const sectionStyle = useMemo(() => getSectionStyles(breakpoint), [breakpoint]);\n * const containerStyle = useMemo(() => getContainerStyles(breakpoint), [breakpoint]);\n * ```\n */import Tokens from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";import{getLiquidGlassBackdropBlurFilter,LIQUID_GLASS_SHARED}from\"https://framerusercontent.com/modules/B31emSmx1NLRWgwsBsT2/ABQDPSGSceq8CIo6a1B6/core.js\";import{darken,formatRgba,parseRgba}from\"https://framerusercontent.com/modules/8c8KaKUdeszQqGCCT7Zw/cAYkeC6yz3m4yKfSKNf3/colorParsing.js\";// ─── Hero min-height ──────────────────────────────────────────────────────────\n/**\n * Standard hero section min-height: fills the full small viewport (toolbars visible).\n *\n * Uses `100svh` instead of `100dvh` for two reasons:\n * 1. The nav is position:sticky and overlaps the hero from y=0, so the hero\n *    must span the full viewport height — not viewport minus nav height.\n * 2. `svh` (small viewport height) is stable during scroll: it does not grow\n *    when the mobile browser toolbar hides, which would cause the absolutely-\n *    positioned background image to rescale and appear to zoom in.\n *    On desktop there are no dynamic toolbars so svh === dvh === vh.\n */export const HERO_MIN_HEIGHT=\"100svh\";/**\n * Inset highlight shadow used to add the soft top + bottom rim that makes\n * a Liquid Glass surface feel slightly raised over its background. Apply\n * via `boxShadow` on the surface that already has the backdrop blur set.\n *\n * The values mirror Apple's \"regular\" glass refraction tone (2026 spec):\n * a faint white highlight along the top edge and a darker shadow along\n * the bottom edge to simulate light bouncing through the chrome.\n */export const LIQUID_GLASS_HIGHLIGHT_INSET_SHADOW=\"inset 0 1px 0 rgba(255, 255, 255, 0.09), inset 0 -1px 0 rgba(0, 0, 0, 0.04)\";/**\n * Top padding for sections that sit under a fixed/sticky nav (e.g. hero sections).\n * Returns the nav height so content starts below the header. Use for paddingTop\n * on the first section below the navbar.\n */export function getSectionPaddingTopWithNav(_breakpoint=\"desktop\"){return\"var(--nav-header-height, 80px)\";}/**\n * Top padding for sections that need both section vertical padding and nav offset\n * (e.g. hero sections: section padding + nav height so content clears the fixed header).\n * Use for paddingTop on the first section below the navbar when section padding is desired.\n *\n * @param breakpoint - Current breakpoint (affects getSectionPaddingY)\n * @returns calc(getSectionPaddingY(breakpoint) + var(--nav-header-height, 80px))\n */export function getSectionPaddingTopWithSectionAndNav(breakpoint=\"desktop\"){return`calc(${getSectionPaddingY(breakpoint)} + var(--nav-header-height, 80px))`;}// ─── Focus outline (shared) ───────────────────────────────────────────────────\nconst FOCUS_OUTLINE_BORDER_TOKEN=\"/Borders/border-brand-bunq\";/**\n * Shared focus outline style string for interactive elements (buttons, links, inputs).\n * Uses the brand border token so focus rings are consistent and themeable.\n *\n * @returns Outline value string, e.g. \"<width> solid <brand-color>\"\n */export function getFocusOutlineStyle(){return`${Tokens.getFocusOutlineWidth()} solid ${Tokens.getColorValue(FOCUS_OUTLINE_BORDER_TOKEN)}`;}/**\n * Whether an interactive element should show its focus ring.\n *\n * Uses native `:focus-visible` so pointer clicks do not leave a persistent\n * outline after the user moves away, while keyboard navigation still gets a\n * visible indicator. Matches platform conventions (e.g. Material, native apps).\n *\n * @param element - The focused element to evaluate\n * @returns True when the focus ring should be painted\n */export function shouldShowFocusRing(element){try{return element.matches(\":focus-visible\");}catch{// Browsers without `:focus-visible` — show the ring so keyboard users\n// still get a focus indicator.\nreturn true;}}// ─── Full-size child style ────────────────────────────────────────────────────\n/**\n * Style object for children that must fill their parent completely\n * (e.g. BackgroundAnimatedGradient behind hero sections).\n */export const FULL_SIZE_STYLE={width:\"100%\",height:\"100%\",minWidth:0,minHeight:0};// ─── Container padding ────────────────────────────────────────────────────────\nexport function getContainerPadding(breakpoint=\"desktop\"){if(breakpoint===\"phone\"){return Tokens.getSpacing(16);}else if(breakpoint===\"tablet\"){return Tokens.getSpacing(24);}else{return Tokens.getSpacing(32);}}export function getContainerMaxWidth(breakpoint=\"desktop\"){if(breakpoint===\"phone\"){return\"100%\";}else if(breakpoint===\"tablet\"){return\"100%\";}else{return\"1280px\";}}/**\n * Max width of the copy column — matches the left cell in `SectionHeroStandard`'s two-column grid.\n */export function getSplitHeroContentMaxWidth(breakpoint=\"desktop\"){const sidePadding=getContainerPadding(breakpoint);const containerMax=getContainerMaxWidth(breakpoint);const gridGap=Tokens.getResponsiveGap(\"large\",breakpoint);return`calc((min(100%, ${containerMax}) - 2 * ${sidePadding} - ${gridGap}) / 2)`;}/**\n * Centered inner container for split heroes (desktop/tablet split layout).\n * Mirrors `SectionHeroStandard` section padding + container; media is positioned separately.\n */export function getSplitHeroInnerContainerStyles(breakpoint=\"desktop\",options){const sectionPadding=Tokens.getSectionPadding(breakpoint);return{...getContainerStyles(breakpoint),...options.isGradient?{position:\"relative\",zIndex:Tokens.getZIndex(\"raised\")}:{},display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",alignItems:\"flex-start\",width:\"100%\",minWidth:0,boxSizing:\"border-box\",minHeight:HERO_MIN_HEIGHT,paddingTop:options.paddingTop,paddingBottom:sectionPadding.paddingBottom,paddingLeft:sectionPadding.paddingLeft,paddingRight:sectionPadding.paddingRight};}/**\n * Absolute media region: starts after the standard hero grid gap, flush to the section's right edge.\n */export function getSplitHeroMediaAbsoluteStyles(breakpoint=\"desktop\"){const sidePadding=getContainerPadding(breakpoint);const containerMax=getContainerMaxWidth(breakpoint);const gridGap=Tokens.getResponsiveGap(\"large\",breakpoint);const leftColumnWidth=getSplitHeroContentMaxWidth(breakpoint);const containerInset=`max(0px, (100% - ${containerMax}) / 2)`;return{position:\"absolute\",top:0,right:0,left:`calc(${containerInset} + ${sidePadding} + ${leftColumnWidth} + ${gridGap})`,height:\"100%\",minHeight:0,minWidth:0};}/**\n * Background region for split heroes (desktop/tablet): gradient fills the left\n * content column from the section edge up to (but not under) the media cell.\n * Position relative to the `<section>` root, not the inner content container.\n */export function getSplitHeroContentBackgroundStyles(breakpoint=\"desktop\"){const sidePadding=getContainerPadding(breakpoint);const containerMax=getContainerMaxWidth(breakpoint);const gridGap=Tokens.getResponsiveGap(\"large\",breakpoint);const leftColumnWidth=getSplitHeroContentMaxWidth(breakpoint);const containerInset=`max(0px, (100% - ${containerMax}) / 2)`;const contentColumnEnd=`calc(${containerInset} + ${sidePadding} + ${leftColumnWidth} + ${gridGap})`;return{position:\"absolute\",top:0,bottom:0,left:0,width:contentColumnEnd,zIndex:Tokens.getZIndex(\"base\"),overflow:\"hidden\",pointerEvents:\"none\",isolation:\"isolate\"};}const SPLIT_HERO_PHONE_VISUAL_ASPECT_RATIO_CSS={\"16:9\":\"16 / 9\",\"16:10\":\"16 / 10\",\"4:3\":\"4 / 3\",\"4:5\":\"4 / 5\",\"3:2\":\"3 / 2\",\"1:1\":\"1 / 1\",\"9:16\":\"9 / 16\"};/** Maps a split-hero phone visual aspect ratio preset to a CSS `aspect-ratio` value. */export function getSplitHeroPhoneVisualAspectRatioCss(ratio=\"1:1\"){return SPLIT_HERO_PHONE_VISUAL_ASPECT_RATIO_CSS[ratio];}/** Grid row template for stacked split heroes: flexible copy, auto-sized visual from aspect ratio. */export function getSplitHeroStackedGridTemplateRows(){return\"minmax(0, 1fr) auto\";}/** Media container styles for split heroes on phone (stacked layout). */export function getSplitHeroStackedMediaContainerStyles(aspectRatio=\"1:1\"){return{position:\"relative\",width:\"100%\",height:\"auto\",minHeight:0,aspectRatio:getSplitHeroPhoneVisualAspectRatioCss(aspectRatio)};}export function getSectionPaddingY(breakpoint=\"desktop\"){if(breakpoint===\"phone\"){return Tokens.getSpacing(64);}else if(breakpoint===\"tablet\"){return Tokens.getSpacing(96);}else{return Tokens.getSpacing(112);}}// ─── Semantic spacing gaps ────────────────────────────────────────────────────\nconst GAP_VALUES={xxs:{desktop:Tokens.getSpacing(4),tablet:Tokens.getSpacing(4),phone:Tokens.getSpacing(2)},xs:{desktop:Tokens.getSpacing(8),tablet:Tokens.getSpacing(6),phone:Tokens.getSpacing(4)},sm:{desktop:Tokens.getSpacing(16),tablet:Tokens.getSpacing(12),phone:Tokens.getSpacing(8)},md:{desktop:Tokens.getSpacing(24),tablet:Tokens.getSpacing(20),phone:Tokens.getSpacing(16)},lg:{desktop:Tokens.getSpacing(48),tablet:Tokens.getSpacing(32),phone:Tokens.getSpacing(24)},xl:{desktop:Tokens.getSpacing(80),tablet:Tokens.getSpacing(48),phone:Tokens.getSpacing(32)}};export function getGap(size,breakpoint=\"desktop\"){return GAP_VALUES[size][breakpoint];}// ─── Visually hidden (screen-reader only) ───────────────────────────────────────\n/**\n * Style object for visually hidden content that remains available to screen readers.\n * Uses 1px clip pattern (not on spacing scale); use for SR-only live regions and labels.\n */export const VISUALLY_HIDDEN_STYLE={position:\"absolute\",width:\"1px\",height:\"1px\",padding:0,margin:\"-1px\",overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",border:0};// ─── Card/tile spacing ────────────────────────────────────────────────────────\nexport function getCardPadding(breakpoint=\"desktop\"){if(breakpoint===\"phone\"){return Tokens.getSpacing(20);}else if(breakpoint===\"tablet\"){return Tokens.getSpacing(24);}else{return Tokens.getSpacing(32);}}export function getCardGap(breakpoint=\"desktop\"){if(breakpoint===\"phone\"){return Tokens.getSpacing(16);}else if(breakpoint===\"tablet\"){return Tokens.getSpacing(20);}else{return Tokens.getSpacing(24);}}// ─── Responsive card radius ───────────────────────────────────────────────────\n/**\n * Breakpoint-based border radius for section/card wrappers and prominent elements.\n * Use for cards, video players, image containers, and other large-radius elements so radius scales from phone to desktop.\n *\n * Radius philosophy: large, prominent radii signal premium quality and modern design.\n * Each tier steps up by one token so the proportional feel is consistent across breakpoints.\n *\n * - **small**: Video players, small cards, inline tiles. Phone 6px, tablet 8px, desktop 12px.\n * - **default**: Section cards, bento, grid cards. Phone 20px, tablet 24px, desktop 32px.\n * - **large**: Hero-style cards, feature \"biggest\", hero images/video. Phone 24px, tablet 32px, desktop 48px.\n *\n * @param breakpoint - Current breakpoint (phone, tablet, desktop).\n * @param size - \"small\" for video/small cards; \"default\" for section cards; \"large\" for hero-style.\n * @returns Radius value in pixels as string (e.g. \"48px\").\n */export function getCardRadius(breakpoint=\"desktop\",size=\"default\"){if(size===\"large\"){if(breakpoint===\"phone\"){return Tokens.getRadius(\"radius-3xl\");}if(breakpoint===\"tablet\"){return Tokens.getRadius(\"radius-4xl\");}return Tokens.getRadius(\"radius-5xl\");}if(size===\"small\"){if(breakpoint===\"phone\"){return Tokens.getRadius(\"radius-sm\");}if(breakpoint===\"tablet\"){return Tokens.getRadius(\"radius-md\");}return Tokens.getRadius(\"radius-lg\");}if(breakpoint===\"phone\"){return Tokens.getRadius(\"radius-xxl\");}if(breakpoint===\"tablet\"){return Tokens.getRadius(\"radius-3xl\");}return Tokens.getRadius(\"radius-4xl\");}/**\n * Border radius for split-card image column (image one side, content other).\n * Phone: top-left and top-right only; desktop: top-left and bottom-left only.\n *\n * Mirrors the one-level-reduced phone and desktop values from getCardRadius for the matching size tier.\n *\n * @param breakpoint - Current breakpoint.\n * @param size - \"default\" (radius-3xl/5xl) or \"large\" (radius-4xl/6xl).\n * @returns Four-value borderRadius string (tl tr br bl).\n */export function getCardImageColumnRadius(breakpoint=\"desktop\",size=\"default\"){const r=size===\"large\"?breakpoint===\"phone\"?Tokens.getRadius(\"radius-3xl\"):Tokens.getRadius(\"radius-5xl\"):breakpoint===\"phone\"?Tokens.getRadius(\"radius-xxl\"):Tokens.getRadius(\"radius-4xl\");if(breakpoint===\"phone\"){return`${r} ${r} 0 0`;}return`${r} 0 0 ${r}`;}export function getModalGap(breakpoint=\"desktop\"){if(breakpoint===\"phone\"){return Tokens.getSpacing(24);}else if(breakpoint===\"tablet\"){return Tokens.getSpacing(24);}else{return Tokens.getSpacing(32);}}// ─── Grid helpers ─────────────────────────────────────────────────────────────\nexport function getGridGutter(breakpoint=\"desktop\"){if(breakpoint===\"phone\"){return Tokens.getSpacing(16);}else{return Tokens.getSpacing(32);}}// ─── Section wrapper (Framer compatibility) ─────────────────────────────────────\n/**\n * Styles for the outer wrapper div used by Section components for Framer.\n * Ensures the section never overflows: maxWidth 100%, minWidth 0 on phone/tablet\n * so content can wrap; minWidth 1280 only on desktop for canvas. Use in the\n * default-export wrapper: <div style={{ ...getSectionWrapperStyles(breakpoint), ...props.style }}>\n */export function getSectionWrapperStyles(breakpoint=\"desktop\"){return{width:\"100%\",maxWidth:\"100%\",minWidth:breakpoint===\"desktop\"?1280:0,boxSizing:\"border-box\",overflowX:\"hidden\"};}/**\n * Wrapper for calculator sections that must follow Framer fill width when resized.\n * Unlike getSectionWrapperStyles, never applies minWidth 1280 so the frame can shrink.\n */export function getCalculatorSectionWrapperStyles(){return{width:\"100%\",maxWidth:\"100%\",minWidth:0,boxSizing:\"border-box\",overflowX:\"hidden\"};}/**\n * Wrapper styles for NavBar components. Same as section wrapper but with\n * overflow: visible so dropdown menus are not clipped by ancestor overflow.\n * Use for NavBarBunqMain (and similar) when used in Framer page templates.\n */export function getNavBarWrapperStyles(breakpoint=\"desktop\"){return{width:\"100%\",maxWidth:\"100%\",minWidth:breakpoint===\"desktop\"?1280:0,boxSizing:\"border-box\",overflow:\"visible\"};}/**\n * Wrapper styles for section components with a sticky sidebar (e.g. document/blog TOC).\n * Same as getSectionWrapperStyles but overflow visible so position: sticky sticks\n * to the viewport as the page scrolls (overflow-x: hidden on the default wrapper\n * creates a scroll container and prevents sticky from working).\n */export function getSectionStickySidebarWrapperStyles(breakpoint=\"desktop\"){return{width:\"100%\",maxWidth:\"100%\",minWidth:breakpoint===\"desktop\"?1280:0,boxSizing:\"border-box\",overflow:\"visible\"};}// ─── Section style objects ────────────────────────────────────────────────────\n/** Full section wrapper with vertical + horizontal padding. */export function getSectionStyles(breakpoint=\"desktop\"){const sidePadding=getContainerPadding(breakpoint);const verticalPadding=getSectionPaddingY(breakpoint);return{width:\"100%\",maxWidth:\"100%\",minWidth:0,boxSizing:\"border-box\",paddingTop:verticalPadding,paddingBottom:verticalPadding,paddingLeft:sidePadding,paddingRight:sidePadding};}/** Compact section: halved vertical padding. */export function getSectionCompactStyles(breakpoint=\"desktop\"){const sidePadding=getContainerPadding(breakpoint);const sectionPY=getSectionPaddingY(breakpoint);const halfPY=`calc(${sectionPY} / 2)`;return{width:\"100%\",maxWidth:\"100%\",minWidth:0,boxSizing:\"border-box\",paddingTop:halfPY,paddingBottom:halfPY,paddingLeft:sidePadding,paddingRight:sidePadding};}/** Flush section: no vertical padding (hero, footer, full-bleed). */export function getSectionFlushStyles(breakpoint=\"desktop\"){const sidePadding=getContainerPadding(breakpoint);return{width:\"100%\",maxWidth:\"100%\",minWidth:0,boxSizing:\"border-box\",paddingTop:0,paddingBottom:0,paddingLeft:sidePadding,paddingRight:sidePadding};}// ─── Container style objects ──────────────────────────────────────────────────\n/** Centered max-width container inside a section. */export function getContainerStyles(breakpoint=\"desktop\"){return{maxWidth:getContainerMaxWidth(breakpoint),marginLeft:\"auto\",marginRight:\"auto\",width:\"100%\",minWidth:0,boxSizing:\"border-box\"};}/**\n * Same max-width as `SectionForm`’s outer wrapper (`width-xl` on desktop). Use for blocks\n * stacked under the form (e.g. GDPR disclaimer) so they stay column-aligned with the form.\n */export function getFormSectionInnerContainerStyles(breakpoint=\"desktop\"){const base=getContainerStyles(breakpoint);return breakpoint===\"desktop\"?{...base,maxWidth:Tokens.getWidthValue(\"width-xl\")}:base;}/** Narrow container max-width (e.g. status page, text-heavy content). Desktop only; tablet/phone use full width. */export function getContainerNarrowMaxWidth(breakpoint=\"desktop\"){if(breakpoint===\"phone\"||breakpoint===\"tablet\"){return\"100%\";}return\"720px\";}/** Narrow container for text-heavy content (paragraph max-width = 720px). */export function getContainerNarrowStyles(){return{maxWidth:\"720px\",marginLeft:\"auto\",marginRight:\"auto\",width:\"100%\",boxSizing:\"border-box\"};}// ─── Grid layout style objects ────────────────────────────────────────────────\n/** Full-width grid (12 / 8 / 4 columns with gutter). */export function getGridStyles(breakpoint=\"desktop\"){return{display:\"grid\",gridTemplateColumns:`repeat(${breakpoint===\"phone\"?4:breakpoint===\"tablet\"?8:12}, 1fr)`,gap:getGridGutter(breakpoint)};}/** Two-column equal split (collapses to 1-col on phone). */export function getGrid2ColStyles(breakpoint=\"desktop\"){return{display:\"grid\",gridTemplateColumns:breakpoint===\"phone\"?\"1fr\":\"1fr 1fr\",gap:getGap(\"xl\",breakpoint),alignItems:\"center\"};}/** Three-column equal split (2-col on tablet, 1-col on phone). */export function getGrid3ColStyles(breakpoint=\"desktop\"){let gridTemplateColumns;if(breakpoint===\"phone\"){gridTemplateColumns=\"1fr\";}else if(breakpoint===\"tablet\"){gridTemplateColumns=\"repeat(2, 1fr)\";}else{gridTemplateColumns=\"repeat(3, 1fr)\";}return{display:\"grid\",gridTemplateColumns,gap:getCardGap(breakpoint)};}/** Four-column grid (2-col on tablet, 1-col on phone). */export function getGrid4ColStyles(breakpoint=\"desktop\"){let gridTemplateColumns;if(breakpoint===\"phone\"){gridTemplateColumns=\"1fr\";}else if(breakpoint===\"tablet\"){gridTemplateColumns=\"repeat(2, 1fr)\";}else{gridTemplateColumns=\"repeat(4, 1fr)\";}return{display:\"grid\",gridTemplateColumns,gap:getCardGap(breakpoint)};}// ─── Content stack style objects ──────────────────────────────────────────────\n/** Vertical flex stack for heading/body/CTA sequences. */export function getStackStyles(size=\"md\",breakpoint=\"desktop\"){return{display:\"flex\",flexDirection:\"column\",gap:getGap(size,breakpoint)};}// ─── Alignment helpers ────────────────────────────────────────────────────────\nexport function getAlignCenterStyles(){return{textAlign:\"center\",alignItems:\"center\"};}// ─── Responsive button width ──────────────────────────────────────────────────\n/**\n * Responsive button container width.\n *\n * On phone, buttons should stretch to full width for tap-friendliness.\n * On tablet and desktop they shrink to fit their content.\n *\n * Centralizes `breakpoint === \"phone\" ? \"100%\" : \"fit-content\"` which was\n * duplicated across 24 Section components.\n *\n * @param breakpoint - Current breakpoint\n * @returns \"100%\" on phone, \"fit-content\" otherwise\n */export function getResponsiveButtonWidth(breakpoint){return breakpoint===\"phone\"?\"100%\":\"fit-content\";}/**\n * Wrapper styles for CTAs inside a column flex that uses default `align-items: stretch`.\n * Stretch ignores `width: fit-content` on tablet/desktop, so buttons appear full-width;\n * `align-self: flex-start` restores intrinsic pill width while keeping phone at `width: 100%`.\n *\n * Skip when the parent already sets `align-items: center` / `flex-start` — stretch is not active.\n */export function getResponsiveButtonContainerStyle(breakpoint){return{width:getResponsiveButtonWidth(breakpoint),alignSelf:\"flex-start\",minWidth:0};}/** Tight gap between heading and subheading/description within a copy block. */export function getCopyStackGap(breakpoint){return Tokens.getResponsiveGap(\"small\",breakpoint);}/** Space between a copy block and the primary CTA below it. */export function getCopyToCtaMarginTop(breakpoint){return Tokens.getResponsiveGap(\"large\",breakpoint);}// ─── Carousel phone peek ──────────────────────────────────────────────────────\n/** Trailing peek width for phone horizontal carousels (on-scale spacing below 64). */export const CAROUSEL_PHONE_PEEK=Tokens.getSpacing(48);// ─── Testimonial phone horizontal scroll ──────────────────────────────────────\nexport const TESTIMONIAL_PHONE_SCROLL_DATA_ATTR=\"data-bunq-testimonial-hscroll\";export const TESTIMONIAL_PHONE_SCROLLBAR_HIDE_STYLE=\"[data-bunq-testimonial-hscroll]::-webkit-scrollbar{display:none;width:0;height:0;}\";/**\n * Shared phone horizontal-scroll list chrome for testimonial card sections.\n * Cards peek in from the right so users can discover additional testimonials.\n */export function getTestimonialPhoneScrollListStyle(breakpoint,gap,reducedMotion){return{display:\"flex\",flexDirection:\"row\",alignItems:\"stretch\",gap,width:\"100%\",overflowX:\"auto\",overflowY:\"hidden\",scrollSnapType:reducedMotion?\"none\":\"x mandatory\",WebkitOverflowScrolling:\"touch\",scrollbarWidth:\"none\",msOverflowStyle:\"none\",paddingRight:getContainerPadding(breakpoint),scrollPaddingRight:getContainerPadding(breakpoint),scrollPaddingLeft:0,minWidth:0};}export function getTestimonialPhoneScrollItemStyle(){return{display:\"flex\",flex:`0 0 calc(100% - ${CAROUSEL_PHONE_PEEK})`,height:\"auto\",scrollSnapAlign:\"start\",scrollSnapStop:\"always\"};}// ─── CMS empty placeholder style ─────────────────────────────────────────────\n/**\n * Style object for the full-section CMS empty/skeleton placeholder shown in\n * Framer canvas when a CMS Collection has not yet been connected.\n *\n * Centralizes the `emptyPlaceholderStyle` object duplicated across 11\n * CMS-backed Section components. The caller supplies `bgSubtle` (from\n * `getPlaceholderColors()`) and the current breakpoint so the border radius\n * scales correctly.\n *\n * @param breakpoint - Current breakpoint (affects border radius)\n * @param bgSubtle - Subtle background color (from getPlaceholderColors)\n * @returns CSSProperties for the placeholder container\n */export function getCmsEmptyPlaceholderStyle(breakpoint,bgSubtle){return{width:\"100%\",minHeight:Tokens.getSpacing(200),backgroundColor:bgSubtle,borderRadius:getCardRadius(breakpoint,\"small\"),display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexDirection:\"column\",textAlign:\"center\",gap:Tokens.getSpacing(8)};}export function getAlignLeftStyles(){return{textAlign:\"left\",alignItems:\"flex-start\"};}/** Default accent for `variant=\"colored\"` when no `accentColor` is passed (#004922). */export const DEFAULT_COLORED_GLASS_ACCENT=\"#004922\";/**\n * Normalise legacy `\"light\"` / `\"dark\"` aliases to their explicit\n * `default-*` equivalents. Pass-through for already-resolved variants.\n */export function normalizeGlassVariant(variant){if(variant===\"light\")return\"default-light\";if(variant===\"dark\")return\"default-regular\";return variant;}/**\n * Resolve a glass variant from `theme` + optional `shade` (or legacy\n * `fallbackTone`).\n *\n * - When `shade` is provided it always wins → `${theme}-${shade}`.\n * - Otherwise legacy `fallbackTone` is honoured for back-compat:\n *   - `fallbackTone=\"light\"` (old white-tint family on dark UI) →\n *     `\"default-regular\"` (same fill as legacy `\"dark\"`).\n *   - `fallbackTone=\"dark\"` (old black-tint family on light UI) →\n *     `\"default-light\"` (same fill as legacy `\"light\"`).\n * - Default mapping (`auto`): default theme → `\"default-regular\"`;\n *   inverted theme → `\"inverted-regular\"`. This intentionally **changes**\n *   the inverted theme's auto-resolved fill from the legacy `\"light\"`\n *   (`#fff` family) to `\"inverted-regular\"` (same `#fff` family as legacy\n *   `\"light\"`) — no visual change, just a semantic relabel.\n */export function resolveGlassVariant(theme,fallbackTone=\"auto\",shade){if(shade){const prefix=theme===\"inverted\"?\"inverted\":\"default\";return`${prefix}-${shade}`;}if(fallbackTone===\"light\")return\"default-regular\";if(fallbackTone===\"dark\")return\"default-light\";return theme===\"inverted\"?\"inverted-regular\":\"default-regular\";}/** Parses accent for colored fills; defaults to {@link DEFAULT_COLORED_GLASS_ACCENT}. */export function resolveAccentRgb(accentColor){const raw=accentColor??DEFAULT_COLORED_GLASS_ACCENT;const parts=parseRgba(raw);if(parts)return{r:parts.r,g:parts.g,b:parts.b};return{r:0,g:73,b:34};}/**\n * Fill gradient / solid stack for a glass variant (layer opacities folded into stops).\n *\n * Shade reuse map (matches Figma):\n * - `default-light`     === legacy `\"light\"` fill (white-tint family).\n * - `default-regular`   === legacy `\"dark\"` fill (gray-tint family).\n * - `default-dark`      → NEW deeper variant for elevated surfaces on light UI.\n * - `inverted-light`    → NEW airy variant for hero overlays on dark UI.\n * - `inverted-regular`  === legacy `\"light\"` fill (same as `default-light`).\n * - `inverted-dark`     === legacy `\"dark\"` fill (same as `default-regular`).\n */export function getLiquidGlassVariantFill(variant,surface,accentColor){const resolved=normalizeGlassVariant(variant);const{r,g,b}=resolveAccentRgb(accentColor);if(surface===\"button\"){switch(resolved){// Reused: legacy \"light\" button fill (white-tint).\ncase\"default-light\":case\"inverted-regular\":return\"linear-gradient(180deg, rgba(255, 255, 255, 0.02) 0%, rgba(255, 255, 255, 0.06) 100%), rgba(255, 255, 255, 0.06)\";// Reused: legacy \"dark\" button fill (subtle white-to-black gradient).\ncase\"default-regular\":case\"inverted-dark\":return\"linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, rgba(0, 0, 0, 0.12) 100%)\";// NEW: deeper button glass for default theme.\ncase\"default-dark\":return\"linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(0, 0, 0, 0.24) 100%)\";// NEW: airier button glass for inverted theme.\ncase\"inverted-light\":return\"linear-gradient(180deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.20) 100%), rgba(255, 255, 255, 0.10)\";case\"colored\":{const accentStr=accentColor??DEFAULT_COLORED_GLASS_ACCENT;const darkenedTop=darken(accentStr,.26);const darkParts=parseRgba(darkenedTop);const topA=.26;const botA=.13;const topStop=darkParts?formatRgba({...darkParts,a:topA}):`rgba(${r}, ${g}, ${b}, ${topA})`;return`linear-gradient(180deg, ${topStop} 7%, rgba(${r}, ${g}, ${b}, ${botA}) 100%)`;}}}switch(resolved){// Reused: legacy \"light\" surface fill.\ncase\"default-light\":case\"inverted-regular\":return\"linear-gradient(180deg, rgba(255, 255, 255, 0.15) 0%, rgba(238, 238, 238, 0.30) 100%)\";// Reused: legacy \"dark\" surface fill.\ncase\"default-regular\":case\"inverted-dark\":return\"linear-gradient(180deg, rgba(92, 92, 92, 0.20) 0%, rgba(46, 46, 46, 0.34) 100%)\";// NEW: deeper surface glass for default theme. Pulls more black through\n// the frost so navbars / popovers float convincingly above light hero\n// imagery without losing translucency entirely.\ncase\"default-dark\":return\"linear-gradient(180deg, rgba(34, 34, 34, 0.36) 0%, rgba(14, 14, 14, 0.52) 100%)\";// NEW: airy surface glass for inverted theme. Lifts white frost so\n// surfaces over dark gradients read as a softly lit pane.\ncase\"inverted-light\":return\"linear-gradient(180deg, rgba(255, 255, 255, 0.32) 0%, rgba(245, 245, 245, 0.46) 100%)\";case\"colored\":{const accentStr=accentColor??DEFAULT_COLORED_GLASS_ACCENT;const darkenedTop=darken(accentStr,.26);const darkParts=parseRgba(darkenedTop);const topA=.28;const botA=.14;const topStop=darkParts?formatRgba({...darkParts,a:topA}):`rgba(${r}, ${g}, ${b}, ${topA})`;return`linear-gradient(180deg, ${topStop} 7%, rgba(${r}, ${g}, ${b}, ${botA}) 100%)`;}}}/**\n * Inset chrome ring for liquid glass (surface **and** button/pill shells).\n *\n * Apple's refractive-glass edge reads best as a *thin* sub-pixel light catch\n * with a soft bottom falloff for depth — not as a heavy 1 px stroke with a\n * hard 1 px contour underneath (which makes the rim look like a chiseled\n * frame). For non-selected variants we keep things subtle because the\n * `<LiquidGlass />` primitive already paints a universal `0.5 px` hairline\n * rim via `HIGHLIGHT_BORDER_BOX_SHADOW`; this function adds the\n * variant-specific top sheen + a soft (blurred, inset spread) bottom shadow\n * for depth, and only switches to a visible 1 px ring when the surface is\n * `selected` (so the selection state remains unambiguous).\n *\n * `surface=\"button\"` keeps the same **rim + depth** intent as card glass but\n * omits the extra `inset 0 1px 0` top sheen — on small pills it stacks with the\n * hairline and reads as a double border.\n */export function getLiquidGlassVariantChromeShadow(variant,surface,selected){const resolved=normalizeGlassVariant(variant);// Pills (Badge, Tab, FeaturedIcon): hairline must stay legible at 24–64px — global\n// card chrome was toned down ~50%, but the same alphas on tiny discs + backdrop-filter\n// composite nearly disappear; button stack uses stronger alphas than card surfaces.\nif(surface===\"button\"){if(resolved===\"default-regular\"||resolved===\"inverted-dark\"){if(selected){return[\"inset 0 0 0 1px rgba(255, 255, 255, 0.42)\",\"inset 0 -2px 6px -1px rgba(0, 0, 0, 0.10)\"].join(\", \");}return[\"inset 0 0 0 0.5px rgba(255, 255, 255, 0.14)\",\"inset 0 -2px 6px -1px rgba(0, 0, 0, 0.12)\"].join(\", \");}if(resolved===\"default-light\"||resolved===\"inverted-regular\"){return[\"inset 0 0 0 0.5px rgba(255, 255, 255, 0.22)\",\"inset 0 -2px 6px -1px rgba(0, 0, 0, 0.045)\"].join(\", \");}if(resolved===\"default-dark\"){if(selected){return[\"inset 0 0 0 1px rgba(255, 255, 255, 0.38)\",\"inset 0 -3px 8px -1px rgba(0, 0, 0, 0.14)\"].join(\", \");}return[\"inset 0 0 0 0.5px rgba(255, 255, 255, 0.11)\",\"inset 0 -3px 8px -1px rgba(0, 0, 0, 0.14)\"].join(\", \");}if(resolved===\"inverted-light\"){return[\"inset 0 0 0 0.5px rgba(255, 255, 255, 0.26)\",\"inset 0 -2px 6px -1px rgba(0, 0, 0, 0.03)\"].join(\", \");}// colored — only variant left for button-sized glass\nif(selected){return[\"inset 0 0 0 1px rgba(255, 255, 255, 0.34)\",\"inset 0 -2px 6px -1px rgba(0, 0, 0, 0.09)\"].join(\", \");}return[\"inset 0 0 0 0.5px rgba(255, 255, 255, 0.14)\",\"inset 0 -2px 6px -1px rgba(0, 0, 0, 0.12)\"].join(\", \");}// Reused: legacy \"dark\" chrome (gray-tint surface). Used by both\n// `default-regular` and `inverted-dark` since they share the same fill.\nif(resolved===\"default-regular\"||resolved===\"inverted-dark\"){if(selected){return[\"inset 0 0 0 1px rgba(255, 255, 255, 0.36)\",\"inset 0 1px 0 rgba(255, 255, 255, 0.19)\",\"inset 0 -2px 6px -1px rgba(0, 0, 0, 0.07)\"].join(\", \");}return[\"inset 0 0 0 0.5px rgba(255, 255, 255, 0.09)\",\"inset 0 1px 0 rgba(255, 255, 255, 0.10)\",\"inset 0 -2px 6px -1px rgba(0, 0, 0, 0.09)\"].join(\", \");}// Reused: legacy \"light\" chrome (white-tint surface). Used by both\n// `default-light` and `inverted-regular`.\nif(resolved===\"default-light\"||resolved===\"inverted-regular\"){return[\"inset 0 0 0 0.5px rgba(255, 255, 255, 0.16)\",\"inset 0 1px 0 rgba(255, 255, 255, 0.25)\",\"inset 0 -2px 6px -1px rgba(0, 0, 0, 0.03)\"].join(\", \");}// NEW: deep glass on default theme. Stronger bottom contact shadow gives\n// the surface visible weight against bright backdrops; top sheen stays\n// subtle so the rim doesn't look chiseled.\nif(resolved===\"default-dark\"){if(selected){return[\"inset 0 0 0 1px rgba(255, 255, 255, 0.33)\",\"inset 0 1px 0 rgba(255, 255, 255, 0.16)\",\"inset 0 -3px 8px -1px rgba(0, 0, 0, 0.11)\"].join(\", \");}return[\"inset 0 0 0 0.5px rgba(255, 255, 255, 0.07)\",\"inset 0 1px 0 rgba(255, 255, 255, 0.08)\",\"inset 0 -3px 8px -1px rgba(0, 0, 0, 0.13)\"].join(\", \");}// NEW: airy glass on inverted theme. Soft top sheen prevents blow-out\n// against dark gradients; minimal bottom shadow keeps the surface light.\nif(resolved===\"inverted-light\"){return[\"inset 0 0 0 0.5px rgba(255, 255, 255, 0.20)\",\"inset 0 1px 0 rgba(255, 255, 255, 0.18)\",\"inset 0 -2px 6px -1px rgba(0, 0, 0, 0.02)\"].join(\", \");}// colored\nif(selected){return[\"inset 0 0 0 1px rgba(255, 255, 255, 0.28)\",\"inset 0 1px 0 rgba(255, 255, 255, 0.20)\",\"inset 0 -2px 6px -1px rgba(0, 0, 0, 0.065)\"].join(\", \");}return[\"inset 0 0 0 0.5px rgba(255, 255, 255, 0.09)\",\"inset 0 1px 0 rgba(255, 255, 255, 0.11)\",\"inset 0 -2px 6px -1px rgba(0, 0, 0, 0.09)\"].join(\", \");}/** Extra tint layer for colored-button selection (Linear 70% white). */export function getLiquidGlassColoredButtonSelectionOverlay(){return\"linear-gradient(180deg, rgba(255, 255, 255, 0.70) 0%, rgba(255, 255, 255, 0.70) 100%)\";}/** Composed tint layer(s) for the SVG-active path + fallback (includes selection overlay when applicable). */export function getLiquidGlassTintBackground(variant,surface,selected,accentColor){const resolved=normalizeGlassVariant(variant);const accent=accentColor??(resolved===\"colored\"?DEFAULT_COLORED_GLASS_ACCENT:undefined);const base=getLiquidGlassVariantFill(resolved,surface,accent);if(selected&&resolved===\"colored\"&&surface===\"button\"){return`${base}, ${getLiquidGlassColoredButtonSelectionOverlay()}`;}return base;}/** Full fallback style when variant/surface are explicit (preferred for `<LiquidGlass />`). */export function getLiquidGlassFallbackStyleResolved(variant,surface,selected,accentColor,/** When false, omits inset chrome (caller paints rim separately — e.g. above a tint overlay). */includeChrome=true){const filter=getLiquidGlassBackdropBlurFilter(LIQUID_GLASS_SHARED.frostBlurPx,LIQUID_GLASS_SHARED.saturation);return{background:getLiquidGlassTintBackground(variant,surface,selected,accentColor),backdropFilter:filter,WebkitBackdropFilter:filter,...includeChrome?{boxShadow:getLiquidGlassVariantChromeShadow(variant,surface,selected)}:{}};}/**\n * Returns the resolved CSS colour string for a Liquid Glass tint (surface fills only).\n * Legacy API: maps theme/fallbackTone/tone → new dark/light fills (tone ignored).\n */export function getLiquidGlassTintColor(theme=\"default\",fallbackTone=\"auto\",_tone=\"regular\"){return getLiquidGlassVariantFill(resolveGlassVariant(theme,fallbackTone),\"surface\",undefined);}/**\n * Theme-aware inset chrome stack (surface glass). Delegates to {@link getLiquidGlassVariantChromeShadow}.\n */export function getLiquidGlassChromeShadow(theme=\"default\",fallbackTone=\"auto\"){return getLiquidGlassVariantChromeShadow(resolveGlassVariant(theme,fallbackTone),\"surface\",false);}/**\n * Static frosted-glass fallback CSS for LiquidGlass when SVG filter is unavailable.\n * Uses shared Figma frost blur + saturate from {@link LIQUID_GLASS_SHARED}.\n */export function getLiquidGlassFallbackStyle(theme=\"default\",fallbackTone=\"auto\",_tone=\"regular\"){const variant=resolveGlassVariant(theme,fallbackTone);const filter=getLiquidGlassBackdropBlurFilter(LIQUID_GLASS_SHARED.frostBlurPx,LIQUID_GLASS_SHARED.saturation);return{background:getLiquidGlassVariantFill(variant,\"surface\",undefined),backdropFilter:filter,WebkitBackdropFilter:filter,boxShadow:getLiquidGlassVariantChromeShadow(variant,\"surface\",false)};}\nexport const __FramerMetadata__ = {\"exports\":{\"getLiquidGlassTintBackground\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getContainerPadding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCopyToCtaMarginTop\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getLiquidGlassTintColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCardImageColumnRadius\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSectionPaddingTopWithSectionAndNav\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSplitHeroContentMaxWidth\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getLiquidGlassColoredButtonSelectionOverlay\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSplitHeroPhoneVisualAspectRatioCss\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSplitHeroContentBackgroundStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getLiquidGlassVariantFill\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"resolveGlassVariant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getLiquidGlassFallbackStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getGrid4ColStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiquidGlassShade\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCalculatorSectionWrapperStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getModalGap\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TESTIMONIAL_PHONE_SCROLLBAR_HIDE_STYLE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSplitHeroMediaAbsoluteStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HERO_MIN_HEIGHT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSplitHeroStackedGridTemplateRows\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSectionPaddingTopWithNav\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSectionFlushStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getTestimonialPhoneScrollItemStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getGrid3ColStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiquidGlassSurfaceKind\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ResolvedLiquidGlassVariant\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getGrid2ColStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getGap\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getFocusOutlineStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getGridGutter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getNavBarWrapperStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CAROUSEL_PHONE_PEEK\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSectionStickySidebarWrapperStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiquidGlassVariant\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCopyStackGap\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getContainerNarrowMaxWidth\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSectionWrapperStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getLiquidGlassChromeShadow\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"VISUALLY_HIDDEN_STYLE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSplitHeroInnerContainerStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getAlignCenterStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getContainerStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getGridStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FULL_SIZE_STYLE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getStackStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCardPadding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getContainerMaxWidth\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSectionCompactStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getResponsiveButtonWidth\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getLiquidGlassVariantChromeShadow\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"resolveAccentRgb\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SplitHeroPhoneVisualAspectRatio\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCardGap\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getFormSectionInnerContainerStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getAlignLeftStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_COLORED_GLASS_ACCENT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCardRadius\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getContainerNarrowStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getLiquidGlassFallbackStyleResolved\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSplitHeroStackedMediaContainerStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"normalizeGlassVariant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"shouldShowFocusRing\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TESTIMONIAL_PHONE_SCROLL_DATA_ATTR\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LIQUID_GLASS_HIGHLIGHT_INSET_SHADOW\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getResponsiveButtonContainerStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getTestimonialPhoneScrollListStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSectionPaddingY\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSectionStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCmsEmptyPlaceholderStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./layoutStyles.map","/**\n * Brand Rainbow Signature — ten-stop linear gradient (Figma Hero_gradient-C).\n * Used by BackgroundAnimatedGradient Rainbow preset and animated rainbow borders.\n */import Tokens from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";/** Full Rainbow Signature palette (12 solids), left-to-right: greens → blues → warm. Used by Rainbow Bar “Bars” variant. */export const RAINBOW_SIGNATURE_TWELVE_COLOR_PATHS=[\"/Brand colors/rainbow-tree\",\"/Brand colors/rainbow-grass\",\"/Brand colors/rainbow-apple\",\"/Brand colors/rainbow-zest\",\"/Brand colors/rainbow-brook\",\"/Brand colors/rainbow-pool\",\"/Brand colors/rainbow-tide\",\"/Brand colors/rainbow-dusk\",\"/Brand colors/rainbow-mulberry\",\"/Brand colors/rainbow-flare\",\"/Brand colors/rainbow-tangerine\",\"/Brand colors/rainbow-amber\"];/** Exact RGB stops from Figma Hero_gradient-C. */export const RAINBOW_SIGNATURE_COLORS=[\"rgb(97, 181, 79)\",\"rgb(76, 183, 134)\",\"rgb(61, 184, 173)\",\"rgb(58, 172, 186)\",\"rgb(51, 148, 214)\",\"rgb(26, 89, 163)\",\"rgb(108, 44, 115)\",\"rgb(173, 8, 77)\",\"rgb(240, 94, 38)\",\"rgb(244, 123, 42)\"];/** Linear-gradient angle matching Figma (120deg). */export const RAINBOW_SIGNATURE_GRADIENT_ANGLE_DEG=120;/** Linear-gradient stop positions (%) matching Figma Hero_gradient-C. */export const RAINBOW_SIGNATURE_LINEAR_STOPS_PERCENT=[0,11,20,30,38,54,67,78,90,100];export function getRainbowSignatureColorsResolved(){return RAINBOW_SIGNATURE_COLORS;}export function getRainbowSignatureTwelveColorsResolved(){return RAINBOW_SIGNATURE_TWELVE_COLOR_PATHS.map(path=>Tokens.getColorValue(path));}/** Build the static Rainbow Signature linear-gradient CSS value. */export function buildRainbowSignatureLinearGradient(angleDeg=RAINBOW_SIGNATURE_GRADIENT_ANGLE_DEG){return`linear-gradient(${angleDeg}deg, ${formatLinearGradientColorStops([...RAINBOW_SIGNATURE_COLORS],RAINBOW_SIGNATURE_LINEAR_STOPS_PERCENT)})`;}/** Build CSS linear-gradient color list with optional `%` stops (equal spacing if omitted). */export function formatLinearGradientColorStops(colors,percents){if(percents?.length===colors.length){return colors.map((c,i)=>`${c} ${percents[i]}%`).join(\", \");}return colors.join(\", \");}/** @deprecated Prefer `formatLinearGradientColorStops` — alias for older imports. */export const formatRainbowSignatureLinearGradientStops=formatLinearGradientColorStops;\nexport const __FramerMetadata__ = {\"exports\":{\"formatLinearGradientColorStops\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RAINBOW_SIGNATURE_GRADIENT_ANGLE_DEG\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getRainbowSignatureTwelveColorsResolved\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buildRainbowSignatureLinearGradient\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getRainbowSignatureColorsResolved\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RAINBOW_SIGNATURE_TWELVE_COLOR_PATHS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"formatRainbowSignatureLinearGradientStops\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RAINBOW_SIGNATURE_COLORS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RAINBOW_SIGNATURE_LINEAR_STOPS_PERCENT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * BackgroundAnimatedGradient - Animated background component with gradient presets.\n *\n * Animated background component with customizable gradient presets and animation types.\n * Supports 20 predefined gradient presets with 5 different animation types.\n *\n * @framerIntrinsicWidth 1280.\n * @framerIntrinsicHeight 225.\n * @framerSupportedLayoutWidth any-prefer-fixed.\n * @framerSupportedLayoutHeight any-prefer-fixed.\n */// 1. React and React types\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{forwardRef,useMemo}from\"react\";// 2. Framer API\nimport{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{isFramerStaticMotionContext}from\"https://framerusercontent.com/modules/H2peOJaolSTyCFFNIwVC/MBjueh7ML19qP5n6r5VM/framerStaticMotionContext.js\";import{pickSafeDivProps}from\"https://framerusercontent.com/modules/kDtm9rjjhstSjEsKiU59/FntwkS18vtdaa5Vgz0fk/domProps.js\";// 4. Design system utilities\nimport Tokens,{useReducedMotion}from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";import{RAINBOW_SIGNATURE_GRADIENT_ANGLE_DEG,RAINBOW_SIGNATURE_LINEAR_STOPS_PERCENT,getRainbowSignatureColorsResolved,formatLinearGradientColorStops}from\"https://framerusercontent.com/modules/vaIzCx0TYEaOse8701LH/nLhUb6ABm2Y1xPgMbxFs/rainbowSignatureGradient.js\";/** Legacy Framer instances used \"Bunq Rainbow\"; resolve to Lush (see plan / brand Rainbow Signature). */const GRADIENT_PRESET_ALIASES={\"Bunq Rainbow\":\"Lush\"};/**\n * Inline SVG film-grain tile. Same recipe as `GradientText` so a section's\n * gradient background and any gradient-text headline inside it share the\n * same texture. Higher `baseFrequency` = finer grain; `numOctaves` adds\n * mid-frequency noise so the texture doesn't look uniform.\n */const NOISE_TILE_SIZE_PX=200;const NOISE_SVG=`<svg xmlns='http://www.w3.org/2000/svg' width='${NOISE_TILE_SIZE_PX}' height='${NOISE_TILE_SIZE_PX}'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.6' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(#n)'/></svg>`;const NOISE_BACKGROUND_IMAGE=`url(\"data:image/svg+xml;utf8,${encodeURIComponent(NOISE_SVG)}\")`;function resolveGradientPresetKey(preset){return GRADIENT_PRESET_ALIASES[preset]??preset;}/** Map utility color shade to inverted (light) shade for theme=\"inverted\": 900→100, 800→200, etc. */function invertUtilityColorPath(path){const match=path.match(/-(\\d+)$/);if(!match)return path;const num=parseInt(match[1],10);const map={100:900,200:800,300:700,400:600,500:500,600:400,700:300,800:200,900:100};const inverted=map[num]??num;return path.replace(/-\\d+$/,`-${inverted}`);}// Gradient presets with colors, default speeds, and animation types.\n// All colors use design tokens from the design system.\n//\n// `colorPaths` is used for the default theme. For `theme=\"inverted\"`, the\n// resolver first looks at `invertedColorPaths` (an explicit override, used\n// for brand gradients like tricount-blue whose paths don't follow the\n// utility-color shade scale). When `invertedColorPaths` is missing, the\n// resolver falls back to remapping the trailing shade number in `colorPaths`\n// (900↔100, 800↔200 …) via `invertUtilityColorPath`. Without this override,\n// brand presets used to render identically in default and inverted themes\n// because their numeric suffix is a sequence index (1/2/3/4) rather than a\n// shade weight, so the inversion map fell through to a no-op.\n//\n// Exported for use by other effects (e.g. BackgroundLightRays).\nexport const gradientPresets={\"Yellow\":{colorPaths:[\"/Utility colors/utility-yellow-900\",\"/Utility colors/utility-yellow-800\",\"/Utility colors/utility-yellow-500\",\"/Utility colors/utility-yellow-200\"],colors:[Tokens.getColorValue(\"/Utility colors/utility-yellow-900\"),Tokens.getColorValue(\"/Utility colors/utility-yellow-800\"),Tokens.getColorValue(\"/Utility colors/utility-yellow-500\"),Tokens.getColorValue(\"/Utility colors/utility-yellow-200\")],/**\n         * Default speed.\n         */defaultSpeed:32,/**\n         * Animation type.\n         */animationType:\"nebula-pulse\"},\"Deep Yellow\":{colorPaths:[\"/Utility colors/utility-deep-yellow-900\",\"/Utility colors/utility-deep-yellow-800\",\"/Utility colors/utility-deep-yellow-500\",\"/Utility colors/utility-deep-yellow-100\"],colors:[Tokens.getColorValue(\"/Utility colors/utility-deep-yellow-900\"),Tokens.getColorValue(\"/Utility colors/utility-deep-yellow-800\"),Tokens.getColorValue(\"/Utility colors/utility-deep-yellow-500\"),Tokens.getColorValue(\"/Utility colors/utility-deep-yellow-100\")],/**\n         * Default speed.\n         */defaultSpeed:32,/**\n         * Animation type.\n         */animationType:\"nebula-pulse\"},\"Orange\":{colorPaths:[\"/Utility colors/utility-orange-900\",\"/Utility colors/utility-orange-800\",\"/Utility colors/utility-orange-500\",\"/Utility colors/utility-yellow-400\"],colors:[Tokens.getColorValue(\"/Utility colors/utility-orange-900\"),Tokens.getColorValue(\"/Utility colors/utility-orange-800\"),Tokens.getColorValue(\"/Utility colors/utility-orange-500\"),Tokens.getColorValue(\"/Utility colors/utility-yellow-400\")],/**\n         * Default speed.\n         */defaultSpeed:20,/**\n         * Animation type.\n         */animationType:\"electric-drift\"},\"Red\":{colorPaths:[\"/Utility colors/utility-red-800\",\"/Utility colors/utility-red-700\",\"/Utility colors/utility-red-500\",\"/Utility colors/utility-red-200\"],colors:[Tokens.getColorValue(\"/Utility colors/utility-red-800\"),Tokens.getColorValue(\"/Utility colors/utility-red-700\"),Tokens.getColorValue(\"/Utility colors/utility-red-500\"),Tokens.getColorValue(\"/Utility colors/utility-red-200\")],/**\n         * Default speed.\n         */defaultSpeed:18,/**\n         * Animation type.\n         */animationType:\"liquid-morph\"},\"Hot Pink\":{colorPaths:[\"/Utility colors/utility-hot-pink-900\",\"/Utility colors/utility-hot-pink-800\",\"/Utility colors/utility-hot-pink-500\",\"/Utility colors/utility-hot-pink-200\"],colors:[Tokens.getColorValue(\"/Utility colors/utility-hot-pink-900\"),Tokens.getColorValue(\"/Utility colors/utility-hot-pink-800\"),Tokens.getColorValue(\"/Utility colors/utility-hot-pink-500\"),Tokens.getColorValue(\"/Utility colors/utility-hot-pink-200\")],/**\n         * Default speed.\n         */defaultSpeed:24,/**\n         * Animation type.\n         */animationType:\"cosmic-flow\"},\"Fuchsia\":{colorPaths:[\"/Utility colors/utility-fuchsia-900\",\"/Utility colors/utility-fuchsia-800\",\"/Utility colors/utility-fuchsia-500\",\"/Utility colors/utility-fuchsia-200\"],colors:[Tokens.getColorValue(\"/Utility colors/utility-fuchsia-900\"),Tokens.getColorValue(\"/Utility colors/utility-fuchsia-800\"),Tokens.getColorValue(\"/Utility colors/utility-fuchsia-500\"),Tokens.getColorValue(\"/Utility colors/utility-fuchsia-200\")],/**\n         * Default speed.\n         */defaultSpeed:24,/**\n         * Animation type.\n         */animationType:\"cosmic-flow\"},\"Purple\":{colorPaths:[\"/Utility colors/utility-purple-900\",\"/Utility colors/utility-purple-800\",\"/Utility colors/utility-purple-500\",\"/Utility colors/utility-purple-300\"],colors:[Tokens.getColorValue(\"/Utility colors/utility-purple-900\"),Tokens.getColorValue(\"/Utility colors/utility-purple-800\"),Tokens.getColorValue(\"/Utility colors/utility-purple-500\"),Tokens.getColorValue(\"/Utility colors/utility-purple-300\")],/**\n         * Default speed.\n         */defaultSpeed:22,/**\n         * Animation type.\n         */animationType:\"nebula-pulse\"},\"Deep Purple\":{colorPaths:[\"/Utility colors/utility-deep-purple-900\",\"/Utility colors/utility-deep-purple-800\",\"/Utility colors/utility-deep-purple-500\",\"/Utility colors/utility-deep-purple-300\"],colors:[Tokens.getColorValue(\"/Utility colors/utility-deep-purple-900\"),Tokens.getColorValue(\"/Utility colors/utility-deep-purple-800\"),Tokens.getColorValue(\"/Utility colors/utility-deep-purple-500\"),Tokens.getColorValue(\"/Utility colors/utility-deep-purple-300\")],/**\n         * Default speed.\n         */defaultSpeed:22,/**\n         * Animation type.\n         */animationType:\"nebula-pulse\"},\"Indigo\":{colorPaths:[\"/Utility colors/utility-indigo-900\",\"/Utility colors/utility-indigo-800\",\"/Utility colors/utility-indigo-500\",\"/Utility colors/utility-indigo-200\"],colors:[Tokens.getColorValue(\"/Utility colors/utility-indigo-900\"),Tokens.getColorValue(\"/Utility colors/utility-indigo-800\"),Tokens.getColorValue(\"/Utility colors/utility-indigo-500\"),Tokens.getColorValue(\"/Utility colors/utility-indigo-200\")],/**\n         * Default speed.\n         */defaultSpeed:24,/**\n         * Animation type.\n         */animationType:\"nebula-pulse\"},\"Deep Blue\":{colorPaths:[\"/Utility colors/utility-deep-blue-900\",\"/Utility colors/utility-deep-blue-800\",\"/Utility colors/utility-deep-blue-600\",\"/Utility colors/utility-deep-blue-500\"],colors:[Tokens.getColorValue(\"/Utility colors/utility-deep-blue-900\"),Tokens.getColorValue(\"/Utility colors/utility-deep-blue-800\"),Tokens.getColorValue(\"/Utility colors/utility-deep-blue-600\"),Tokens.getColorValue(\"/Utility colors/utility-deep-blue-500\")],/**\n         * Default speed.\n         */defaultSpeed:30,/**\n         * Animation type.\n         */animationType:\"aurora-waves\"},\"Blue\":{colorPaths:[\"/Utility colors/utility-blue-900\",\"/Utility colors/utility-blue-800\",\"/Utility colors/utility-blue-600\",\"/Utility colors/utility-blue-500\"],colors:[Tokens.getColorValue(\"/Utility colors/utility-blue-900\"),Tokens.getColorValue(\"/Utility colors/utility-blue-800\"),Tokens.getColorValue(\"/Utility colors/utility-blue-600\"),Tokens.getColorValue(\"/Utility colors/utility-blue-500\")],/**\n         * Default speed.\n         */defaultSpeed:30,/**\n         * Animation type.\n         */animationType:\"aurora-waves\"},\"Light Blue\":{colorPaths:[\"/Utility colors/utility-light-blue-900\",\"/Utility colors/utility-light-blue-800\",\"/Utility colors/utility-light-blue-500\",\"/Utility colors/utility-light-blue-100\"],colors:[Tokens.getColorValue(\"/Utility colors/utility-light-blue-900\"),Tokens.getColorValue(\"/Utility colors/utility-light-blue-800\"),Tokens.getColorValue(\"/Utility colors/utility-light-blue-500\"),Tokens.getColorValue(\"/Utility colors/utility-light-blue-100\")],/**\n         * Default speed.\n         */defaultSpeed:32,/**\n         * Animation type.\n         */animationType:\"aurora-waves\"},\"Turquoise\":{colorPaths:[\"/Utility colors/utility-turquoise-900\",\"/Utility colors/utility-turquoise-800\",\"/Utility colors/utility-turquoise-500\",\"/Utility colors/utility-turquoise-200\"],colors:[Tokens.getColorValue(\"/Utility colors/utility-turquoise-900\"),Tokens.getColorValue(\"/Utility colors/utility-turquoise-800\"),Tokens.getColorValue(\"/Utility colors/utility-turquoise-500\"),Tokens.getColorValue(\"/Utility colors/utility-turquoise-200\")],/**\n         * Default speed.\n         */defaultSpeed:28,/**\n         * Animation type.\n         */animationType:\"liquid-morph\"},\"Cyan\":{colorPaths:[\"/Utility colors/utility-cyan-900\",\"/Utility colors/utility-cyan-800\",\"/Utility colors/utility-cyan-500\",\"/Utility colors/utility-cyan-200\"],colors:[Tokens.getColorValue(\"/Utility colors/utility-cyan-900\"),Tokens.getColorValue(\"/Utility colors/utility-cyan-800\"),Tokens.getColorValue(\"/Utility colors/utility-cyan-500\"),Tokens.getColorValue(\"/Utility colors/utility-cyan-200\")],/**\n         * Default speed.\n         */defaultSpeed:26,/**\n         * Animation type.\n         */animationType:\"aurora-waves\"},\"Green\":{colorPaths:[\"/Utility colors/utility-green-900\",\"/Utility colors/utility-green-800\",\"/Utility colors/utility-green-500\",\"/Utility colors/utility-green-300\"],colors:[Tokens.getColorValue(\"/Utility colors/utility-green-900\"),Tokens.getColorValue(\"/Utility colors/utility-green-800\"),Tokens.getColorValue(\"/Utility colors/utility-green-500\"),Tokens.getColorValue(\"/Utility colors/utility-green-300\")],/**\n         * Default speed.\n         */defaultSpeed:28,/**\n         * Animation type.\n         */animationType:\"liquid-morph\"},\"Deep Green\":{colorPaths:[\"/Utility colors/utility-deep-green-900\",\"/Utility colors/utility-deep-green-800\",\"/Utility colors/utility-deep-green-500\",\"/Utility colors/utility-deep-green-300\"],colors:[Tokens.getColorValue(\"/Utility colors/utility-deep-green-900\"),Tokens.getColorValue(\"/Utility colors/utility-deep-green-800\"),Tokens.getColorValue(\"/Utility colors/utility-deep-green-500\"),Tokens.getColorValue(\"/Utility colors/utility-deep-green-300\")],/**\n         * Default speed.\n         */defaultSpeed:28,/**\n         * Animation type.\n         */animationType:\"liquid-morph\"},\"Rainbow\":{colorPaths:[],colors:[...getRainbowSignatureColorsResolved()],gradientStopPercents:RAINBOW_SIGNATURE_LINEAR_STOPS_PERCENT,gradientAngleDeg:RAINBOW_SIGNATURE_GRADIENT_ANGLE_DEG,/**\n         * Fit the full Figma Hero_gradient-C spectrum in the container at rest (Framer\n         * canvas + reduced motion). `backgroundSizePercentAnimated` adds pan room when\n         * cosmic-flow runs on the live site.\n         */backgroundSizePercent:100,backgroundSizePercentAnimated:105,/**\n         * Default speed.\n         */defaultSpeed:28,/**\n         * Animation type.\n         */animationType:\"cosmic-flow\"},\"Lush\":{colorPaths:[\"/Brand colors/rainbow-tree\",\"/Brand colors/rainbow-grass\",\"/Brand colors/rainbow-apple\",\"/Brand colors/rainbow-zest\"],colors:[Tokens.getColorValue(\"/Brand colors/rainbow-tree\"),Tokens.getColorValue(\"/Brand colors/rainbow-grass\"),Tokens.getColorValue(\"/Brand colors/rainbow-apple\"),Tokens.getColorValue(\"/Brand colors/rainbow-zest\")],defaultSpeed:40,animationType:\"cosmic-flow\"},\"Cool\":{colorPaths:[\"/Brand colors/rainbow-brook\",\"/Brand colors/rainbow-pool\",\"/Brand colors/rainbow-tide\",\"/Brand colors/rainbow-dusk\"],colors:[Tokens.getColorValue(\"/Brand colors/rainbow-brook\"),Tokens.getColorValue(\"/Brand colors/rainbow-pool\"),Tokens.getColorValue(\"/Brand colors/rainbow-tide\"),Tokens.getColorValue(\"/Brand colors/rainbow-dusk\")],defaultSpeed:40,animationType:\"cosmic-flow\"},\"Warm\":{colorPaths:[\"/Brand colors/rainbow-mulberry\",\"/Brand colors/rainbow-flare\",\"/Brand colors/rainbow-tangerine\",\"/Brand colors/rainbow-amber\"],colors:[Tokens.getColorValue(\"/Brand colors/rainbow-mulberry\"),Tokens.getColorValue(\"/Brand colors/rainbow-flare\"),Tokens.getColorValue(\"/Brand colors/rainbow-tangerine\"),Tokens.getColorValue(\"/Brand colors/rainbow-amber\")],defaultSpeed:40,animationType:\"cosmic-flow\"},/**\n     * Bunq plan gradients — four-stop linear (0% / 33% / 66% / 100%), light → dark per hue.\n     * Tokens: `/Brand gradients/plan-{plan}-{1–4}` in `utils/tokens/colors.ts`.\n     */\"Free\":{colorPaths:[\"/Brand gradients/plan-free-1\",\"/Brand gradients/plan-free-2\",\"/Brand gradients/plan-free-3\",\"/Brand gradients/plan-free-4\"],invertedColorPaths:[\"/Brand gradients/plan-free-4\",\"/Brand gradients/plan-free-3\",\"/Brand gradients/plan-free-2\",\"/Brand gradients/plan-free-1\"],colors:[Tokens.getColorValue(\"/Brand gradients/plan-free-1\"),Tokens.getColorValue(\"/Brand gradients/plan-free-2\"),Tokens.getColorValue(\"/Brand gradients/plan-free-3\"),Tokens.getColorValue(\"/Brand gradients/plan-free-4\")],gradientStopPercents:[0,33,66,100],defaultSpeed:40,animationType:\"cosmic-flow\"},\"Core\":{colorPaths:[\"/Brand gradients/plan-core-1\",\"/Brand gradients/plan-core-2\",\"/Brand gradients/plan-core-3\",\"/Brand gradients/plan-core-4\"],invertedColorPaths:[\"/Brand gradients/plan-core-4\",\"/Brand gradients/plan-core-3\",\"/Brand gradients/plan-core-2\",\"/Brand gradients/plan-core-1\"],colors:[Tokens.getColorValue(\"/Brand gradients/plan-core-1\"),Tokens.getColorValue(\"/Brand gradients/plan-core-2\"),Tokens.getColorValue(\"/Brand gradients/plan-core-3\"),Tokens.getColorValue(\"/Brand gradients/plan-core-4\")],gradientStopPercents:[0,33,66,100],defaultSpeed:40,animationType:\"cosmic-flow\"},\"Pro\":{colorPaths:[\"/Brand gradients/plan-pro-1\",\"/Brand gradients/plan-pro-2\",\"/Brand gradients/plan-pro-3\",\"/Brand gradients/plan-pro-4\"],invertedColorPaths:[\"/Brand gradients/plan-pro-4\",\"/Brand gradients/plan-pro-3\",\"/Brand gradients/plan-pro-2\",\"/Brand gradients/plan-pro-1\"],colors:[Tokens.getColorValue(\"/Brand gradients/plan-pro-1\"),Tokens.getColorValue(\"/Brand gradients/plan-pro-2\"),Tokens.getColorValue(\"/Brand gradients/plan-pro-3\"),Tokens.getColorValue(\"/Brand gradients/plan-pro-4\")],gradientStopPercents:[0,33,66,100],defaultSpeed:40,animationType:\"cosmic-flow\"},\"Elite\":{colorPaths:[\"/Brand gradients/plan-elite-1\",\"/Brand gradients/plan-elite-2\",\"/Brand gradients/plan-elite-3\",\"/Brand gradients/plan-elite-4\"],invertedColorPaths:[\"/Brand gradients/plan-elite-4\",\"/Brand gradients/plan-elite-3\",\"/Brand gradients/plan-elite-2\",\"/Brand gradients/plan-elite-1\"],colors:[Tokens.getColorValue(\"/Brand gradients/plan-elite-1\"),Tokens.getColorValue(\"/Brand gradients/plan-elite-2\"),Tokens.getColorValue(\"/Brand gradients/plan-elite-3\"),Tokens.getColorValue(\"/Brand gradients/plan-elite-4\")],gradientStopPercents:[0,33,66,100],defaultSpeed:40,animationType:\"cosmic-flow\"},\"tricount Blue\":{colorPaths:[\"/Brand gradients/tricount-blue-1\",\"/Brand gradients/tricount-blue-2\",\"/Brand gradients/tricount-blue-3\",\"/Brand gradients/tricount-blue-4\"],// Brand gradient — no light/dark shade scale exists (tokens only have\n// a `light` value, `dark: null`). Reverse the sequence under the\n// inverted theme so the bright end leads, giving a different visual\n// weight on light surfaces. This is a soft inversion, not a true\n// light-mode variant — a real inverted token set should replace\n// these paths if/when it's added to the design system.\ninvertedColorPaths:[\"/Brand gradients/tricount-blue-4\",\"/Brand gradients/tricount-blue-3\",\"/Brand gradients/tricount-blue-2\",\"/Brand gradients/tricount-blue-1\"],colors:[Tokens.getColorValue(\"/Brand gradients/tricount-blue-1\"),Tokens.getColorValue(\"/Brand gradients/tricount-blue-2\"),Tokens.getColorValue(\"/Brand gradients/tricount-blue-3\"),Tokens.getColorValue(\"/Brand gradients/tricount-blue-4\")],/**\n         * Default speed.\n         */defaultSpeed:28,/**\n         * Animation type.\n         */animationType:\"aurora-waves\"}};// Animation style definitions with keyframes and animation functions.\nconst animationStyles={\"cosmic-flow\":{/**\n         * Keyframes.\n         */keyframes:`\n            @keyframes cosmic-flow {\n                0% { background-position: 0% 50%; }\n                50% { background-position: 100% 50%; }\n                100% { background-position: 0% 50%; }\n            }\n        `,/**\n         * Animation.\n         */animation:speed=>`cosmic-flow ${speed}s ease-in-out infinite`},\"nebula-pulse\":{/**\n         * Keyframes.\n         */keyframes:`\n            @keyframes nebula-pulse {\n                0% { background-position: 0% 0%; filter: saturate(100%); }\n                33% { background-position: 100% 0%; filter: saturate(150%); }\n                66% { background-position: 100% 100%; filter: saturate(120%); }\n                100% { background-position: 0% 0%; filter: saturate(100%); }\n            }\n        `,/**\n         * Animation.\n         */animation:speed=>`nebula-pulse ${speed}s ease infinite`},\"aurora-waves\":{/**\n         * Keyframes.\n         */keyframes:`\n            @keyframes aurora-waves {\n                0% { background-position: 0% 0%; }\n                25% { background-position: 50% 25%; }\n                50% { background-position: 100% 50%; }\n                75% { background-position: 50% 75%; }\n                100% { background-position: 0% 0%; }\n            }\n        `,/**\n         * Animation.\n         */animation:speed=>`aurora-waves ${speed}s ease-in-out infinite`},\"liquid-morph\":{/**\n         * Keyframes.\n         */keyframes:`\n            @keyframes liquid-morph {\n                0% { background-position: 0% 50%; }\n                25% { background-position: 25% 25%; }\n                50% { background-position: 100% 50%; }\n                75% { background-position: 75% 75%; }\n                100% { background-position: 0% 50%; }\n            }\n        `,/**\n         * Animation.\n         */animation:speed=>`liquid-morph ${speed}s ease-in-out infinite`},\"electric-drift\":{/**\n         * Keyframes.\n         */keyframes:`\n            @keyframes electric-drift {\n                0% { background-position: 0% 0%; filter: hue-rotate(0deg); }\n                50% { background-position: 100% 100%; filter: hue-rotate(15deg); }\n                100% { background-position: 0% 0%; filter: hue-rotate(0deg); }\n            }\n        `,/**\n         * Animation.\n         */animation:speed=>`electric-drift ${speed}s linear infinite`}};/**\n * BackgroundAnimatedGradientInternal - Internal forwardRef component.\n *\n * This is the actual component implementation. Using forwardRef allows.\n * Proper ref forwarding for integration with Framer and parent components.\n */const BackgroundAnimatedGradientInternal=/*#__PURE__*/forwardRef(function BackgroundAnimatedGradientInternal(props,ref){const{breakpoint=\"desktop\",preset=\"Rainbow\",overlayDirection=\"top-left-corner\",showOverlay=true,overlayStyle=\"fade\",showGrain=true,grainOpacity=40,theme=\"default\",gradientBrightness=1,gradientSaturate=1,overlayMinOpacity=0,style,...rest}=props;const isStatic=useIsStaticRenderer();const prefersReducedMotion=useReducedMotion();const disableMotion=isStatic||prefersReducedMotion||isFramerStaticMotionContext();// Get gradient and animation data based on preset. Inverted theme uses light (200/100) scale via colorPaths.\nconst{colors,animation,keyframes,gradientStopPercents,backgroundSizePercent,backgroundSizePercentAnimated,gradientAngleDeg,isRainbowPreset}=useMemo(()=>{const resolvedPreset=resolveGradientPresetKey(preset);const presetData=gradientPresets[resolvedPreset]||gradientPresets[\"Rainbow\"];const animData=animationStyles[presetData.animationType]||animationStyles[\"cosmic-flow\"];const resolvedColors=(()=>{if(theme!==\"inverted\")return presetData.colors;if(presetData.invertedColorPaths){return presetData.invertedColorPaths.map(p=>Tokens.getColorValue(p));}if(presetData.colorPaths.length>0){return presetData.colorPaths.map(p=>Tokens.getColorValue(invertUtilityColorPath(p)));}return presetData.colors;})();const stops=presetData.gradientStopPercents?.length===resolvedColors.length?presetData.gradientStopPercents:undefined;return{colors:resolvedColors,animation:animData.animation(presetData.defaultSpeed),keyframes:animData.keyframes,gradientStopPercents:stops,backgroundSizePercent:presetData.backgroundSizePercent,backgroundSizePercentAnimated:presetData.backgroundSizePercentAnimated,gradientAngleDeg:presetData.gradientAngleDeg??135,isRainbowPreset:resolvedPreset===\"Rainbow\"};},[preset,theme]);const numColorStops=colors.length;const gradientColorStops=formatLinearGradientColorStops(colors,gradientStopPercents);const gradient=`linear-gradient(${gradientAngleDeg}deg, ${gradientColorStops})`;const clampedBrightness=Math.max(0,Math.min(2,gradientBrightness));const clampedSaturate=Math.max(0,Math.min(2,gradientSaturate));const gradientFilters=[clampedBrightness!==1?`brightness(${clampedBrightness})`:null,clampedSaturate!==1?`saturate(${clampedSaturate})`:null].filter(Boolean);const gradientBrightnessFilter=gradientFilters.length>0?gradientFilters.join(\" \"):undefined;const restBackgroundSize=backgroundSizePercent??numColorStops*100;const animatedBackgroundSize=backgroundSizePercentAnimated??restBackgroundSize;const resolvedBackgroundSize=disableMotion||!isRainbowPreset?restBackgroundSize:animatedBackgroundSize;const backgroundSize=`${resolvedBackgroundSize}% ${resolvedBackgroundSize}%`;const rainbowBackgroundPosition=isRainbowPreset&&disableMotion?\"50% 50%\":undefined;// Generate overlay based on style, direction, and theme.\n// \"fade\": directional gradient (black/white → transparent). \"full\": uniform semi-transparent layer.\n// Default theme = black-based, inverted = white-based.\nconst overlayGradient=useMemo(()=>{const isInverted=theme===\"inverted\";const rgb=isInverted?Tokens.colorToRgb(Tokens.getColorValue(\"/Utility colors/utility-white\")):Tokens.colorToRgb(Tokens.getColorValue(\"/Utility colors/utility-black\"));if(overlayStyle===\"full\"){return`rgba(${rgb}, 0.5)`;}const start=`rgba(${rgb}, 1)`;const step80=`rgba(${rgb}, ${Tokens.getOpacity(\"overlay\")})`;const step60=`rgba(${rgb}, ${Tokens.getOpacity(\"disabledStrong\")})`;const step40=`rgba(${rgb}, ${Tokens.getOpacity(\"disabled\")})`;const colorEndAlpha=Math.max(0,Math.min(1,overlayMinOpacity));const colorEnd=`rgba(${rgb}, ${colorEndAlpha})`;switch(overlayDirection){case\"top-color-bottom-neutral\":return`linear-gradient(to top, ${start} 0%, ${start} 20%, ${step80} 40%, ${step60} 60%, ${step40} 80%, ${colorEnd} 100%)`;case\"top-left-corner\":return`radial-gradient(ellipse 85% 85% at top left, ${colorEnd} 0%, ${colorEnd} 30%, ${step40} 50%, ${step60} 65%, ${step80} 80%, ${start} 100%)`;case\"top-right-corner\":return`radial-gradient(ellipse 85% 85% at top right, ${colorEnd} 0%, ${colorEnd} 30%, ${step40} 50%, ${step60} 65%, ${step80} 80%, ${start} 100%)`;case\"top-neutral-bottom-color\":default:return`linear-gradient(to bottom, ${start} 0%, ${start} 20%, ${step80} 40%, ${step60} 60%, ${step40} 80%, ${colorEnd} 100%)`;}},[overlayDirection,overlayStyle,theme,overlayMinOpacity]);const containerStyle=useMemo(()=>({position:\"relative\",width:\"100%\",height:\"100%\",minWidth:breakpoint===\"phone\"?0:Tokens.getSpacing(400),minHeight:Tokens.getSpacing(225),overflow:\"hidden\",...style}),[breakpoint,style]);const gradientLayerStyle=useMemo(()=>({position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",background:gradient,backgroundSize,...gradientBrightnessFilter?{filter:gradientBrightnessFilter}:{},...rainbowBackgroundPosition?{backgroundPosition:rainbowBackgroundPosition}:{},...disableMotion?{}:{animation:animation}}),[gradient,backgroundSize,gradientBrightnessFilter,rainbowBackgroundPosition,disableMotion,animation]);const overlayLayerStyle=useMemo(()=>({position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",backgroundSize:\"100% 100%\",backgroundRepeat:\"no-repeat\",zIndex:Tokens.getZIndex(\"raised\"),pointerEvents:\"none\",background:overlayGradient}),[overlayGradient]);// Grain layer sits ABOVE the dark/light overlay so the texture stays\n// visible in the masked corners (otherwise the overlay washes it out\n// exactly where we want texture most). `mix-blend-mode: overlay`\n// tints the noise by whatever sits below, so it reads as film grain\n// on both the colorful gradient and the near-black masked area.\nconst grainAlpha=Math.max(0,Math.min(100,grainOpacity))/100;const grainLayerStyle=useMemo(()=>({position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",backgroundImage:NOISE_BACKGROUND_IMAGE,backgroundRepeat:\"repeat\",backgroundSize:`${NOISE_TILE_SIZE_PX}px ${NOISE_TILE_SIZE_PX}px`,mixBlendMode:\"overlay\",opacity:grainAlpha,zIndex:Tokens.getZIndex(\"elevated\"),pointerEvents:\"none\"}),[grainAlpha]);return /*#__PURE__*/_jsxs(\"div\",{ref:ref,style:containerStyle,\"aria-hidden\":\"true\",role:\"presentation\",...pickSafeDivProps(rest),children:[disableMotion===false&&/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:keyframes}}),/*#__PURE__*/_jsx(\"div\",{style:gradientLayerStyle}),showOverlay&&/*#__PURE__*/_jsx(\"div\",{style:overlayLayerStyle}),showGrain&&grainAlpha>0&&/*#__PURE__*/_jsx(\"div\",{style:grainLayerStyle})]});});/**\n * BackgroundAnimatedGradient - Wrapper component for Framer compatibility.\n *\n * This wrapper ensures the component works properly with Framer's.\n * component system and Property Controls.\n */const BackgroundAnimatedGradient=/*#__PURE__*/forwardRef(function BackgroundAnimatedGradient(props,ref){const{preset=\"Rainbow\",overlayDirection=\"top-left-corner\",showOverlay=true,overlayStyle=\"fade\",showGrain=true,grainOpacity=40,...rest}=props;return /*#__PURE__*/_jsx(BackgroundAnimatedGradientInternal,{preset:preset,overlayDirection:overlayDirection,showOverlay:showOverlay,overlayStyle:overlayStyle,showGrain:showGrain,grainOpacity:grainOpacity,...rest,ref:ref});});export default BackgroundAnimatedGradient;// Set display name for Framer.\nBackgroundAnimatedGradient.displayName=\"Background Animated Gradient - Effect\";addPropertyControls(BackgroundAnimatedGradient,{// ─── 6. Configuration ──\npreset:{type:ControlType.Enum,title:\"Preset\",options:Object.keys(gradientPresets),optionTitles:Object.keys(gradientPresets),defaultValue:\"Rainbow\",description:\"Gradient preset selection.\"},overlayStyle:{type:ControlType.Enum,title:\"Overlay Style\",options:[\"fade\",\"full\"],optionTitles:[\"Fade\",\"Full\"],displaySegmentedControl:true,defaultValue:\"fade\",description:\"Fade applies a directional gradient veil (use Overlay Direction to pick the side). Full applies a uniform semi-transparent layer that darkens or lightens the entire background evenly.\"},overlayDirection:{type:ControlType.Enum,title:\"Overlay Direction\",options:[\"top-neutral-bottom-color\",\"top-color-bottom-neutral\",\"top-left-corner\",\"top-right-corner\"],optionTitles:[\"Top Neutral, Bottom Color\",\"Top Color, Bottom Neutral\",\"Color from Top Left\",\"Color from Top Right\"],defaultValue:\"top-left-corner\",description:\"Direction or corner origin of the fade overlay. Hidden when Overlay Style is Full.\",hidden:props=>props.overlayStyle===\"full\"},showGrain:{type:ControlType.Boolean,title:\"Film Grain\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:true,description:\"Overlay a film-grain texture on top of the gradient. Matches the noise used by Gradient Text.\"},grainOpacity:{type:ControlType.Number,title:\"Grain Strength\",defaultValue:40,min:0,max:100,step:1,unit:\"%\",description:\"Strength of the film-grain overlay (0–100%).\",hidden:props=>props.showGrain===false},// ─── 10. System ──\nbreakpoint:{type:ControlType.Enum,title:\"Breakpoint\",options:[\"desktop\",\"tablet\",\"phone\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\"],displaySegmentedControl:false,defaultValue:\"desktop\",description:\"Select the breakpoint to match Framer's canvas.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"gradientPresets\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BackgroundAnimatedGradientProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * Section Background — shared background system for every Section organism.\n *\n * Centralises the four \"Background\" props (`backgroundVariant`,\n * `backgroundPreset`, `backgroundOverlayDirection`, `backgroundShowOverlay`)\n * that previously lived inline in every hero/header section. Use this from\n * any section so they all expose the same Background controls in Framer with\n * identical defaults and visuals.\n *\n * @example\n * ```tsx\n * import {\n *     SECTION_BACKGROUND_DEFAULTS,\n *     getSectionBackgroundLayer,\n *     sectionBackgroundPropertyControls,\n *     type SectionBackgroundProps,\n * } from \"../../utils/sectionBackground.ts\";\n *\n * // 1. Extend the section's Props interface.\n * export interface MySectionProps extends SectionBackgroundProps { ... }\n *\n * // 2. Destructure with shared defaults.\n * const {\n *     backgroundVariant = SECTION_BACKGROUND_DEFAULTS.backgroundVariant,\n *     backgroundPreset = SECTION_BACKGROUND_DEFAULTS.backgroundPreset,\n *     backgroundOverlayDirection = SECTION_BACKGROUND_DEFAULTS.backgroundOverlayDirection,\n *     backgroundShowOverlay = SECTION_BACKGROUND_DEFAULTS.backgroundShowOverlay,\n *     backgroundOverlayStyle = SECTION_BACKGROUND_DEFAULTS.backgroundOverlayStyle,\n * } = props;\n *\n * // 3. Resolve background color + gradient layer.\n * const { sectionBgColor, isGradient, backgroundLayer } = getSectionBackgroundLayer({\n *     variant: backgroundVariant,\n *     preset: backgroundPreset,\n *     overlayDirection: backgroundOverlayDirection,\n *     showOverlay: backgroundShowOverlay,\n *     overlayStyle: backgroundOverlayStyle,\n *     theme,\n *     colors,\n * });\n *\n * // 4. Apply to the section + render the layer as the first child.\n * const sectionStyles: CSSProperties = {\n *     ...getSectionStyles(breakpoint),\n *     backgroundColor: sectionBgColor,\n *     position: \"relative\",\n *     overflow: \"hidden\",\n * };\n * return (\n *     <section style={sectionStyles}>\n *         {backgroundLayer}\n *         <div style={{ position: isGradient ? \"relative\" : undefined, zIndex: isGradient ? 1 : undefined }}>\n *             {/* existing content *\\/}\n *         </div>\n *     </section>\n * );\n *\n * // 5. Spread shared property controls into addPropertyControls(...).\n * addPropertyControls(MySection, {\n *     ...sectionBackgroundPropertyControls<MySectionProps>(),\n *     // ...rest of the section's own controls\n * });\n * ```\n */import*as React from\"react\";import{ControlType}from\"framer\";import{SECTION_GRADIENT_BRIGHTNESS,SECTION_GRADIENT_OVERLAY_MIN_OPACITY,SECTION_GRADIENT_PRESET_DEFAULT,SECTION_GRADIENT_PRESET_OPTIONS,SECTION_GRADIENT_SATURATE}from\"https://framerusercontent.com/modules/8JMJA41hDNrdsRbGYlIy/ehoHa5RsA8viMgmETbGB/sectionGradientPresets.js\";import Tokens from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";import{ensureMontserratLoaded,FONT_FAMILY_MONTSERRAT_STACK}from\"https://framerusercontent.com/modules/XIM5CDb5NplU8oalmwIA/W0gtSCnD36ChfDBrPY2w/fontLoader.js\";import{getSectionBackgroundColor}from\"https://framerusercontent.com/modules/ggRBN6PctbBy9SMbbePI/P0AdJy2leJUHBULN6DZC/themeHelpers.js\";import{FULL_SIZE_STYLE}from\"https://framerusercontent.com/modules/mehW3ipt7NwJNkWUjO0g/TatoE2nXREsJFApGHAt7/layoutStyles.js\";import BackgroundAnimatedGradient from\"https://framerusercontent.com/modules/yMmZh2tc4vrRCWDsxNvE/AlxxxO0BHyWOBKxdxQW3/BackgroundAnimatedGradient.js\";/**\n * Default values for {@link SectionBackgroundProps}. Sections that don't\n * already render a gradient default to `\"primary\"` so existing visuals are\n * preserved — opt into `\"gradient\"` per-section in Framer.\n *\n * Hero / header sections that historically defaulted to `\"gradient\"` should\n * keep their own override at the destructure site (don't change those\n * sections via this default).\n */export const SECTION_BACKGROUND_DEFAULTS={backgroundVariant:\"primary\",backgroundPreset:SECTION_GRADIENT_PRESET_DEFAULT,backgroundOverlayDirection:\"top-color-bottom-neutral\",backgroundShowOverlay:true,backgroundOverlayStyle:\"fade\",useMontserrat:false};/** Default gradient overlay for {@link SectionHero*} organisms (Top Neutral / Bottom Color). */export const SECTION_HERO_OVERLAY_DIRECTION_DEFAULT=\"top-neutral-bottom-color\";/** Values exposed on the Framer Background enum (subset of {@link SectionBackgroundProps}). */export const SECTION_BACKGROUND_VARIANT_OPTIONS=[\"primary\",\"secondary\",\"gradient\"];function getBackgroundVariantControlDefault(override){if(override===\"primary\"||override===\"secondary\"||override===\"gradient\"){return override;}return SECTION_BACKGROUND_DEFAULTS.backgroundVariant;}/**\n * Resolve the section's background color and the optional animated gradient\n * layer based on the four Background props.\n *\n * @returns `sectionBgColor` to assign to the `<section>`'s `backgroundColor`\n *  (`\"transparent\"` when gradient), `isGradient` to gate `position: relative`\n *  + content z-index, and `backgroundLayer` ReactNode (renders `null` when\n *  not gradient — render it as the first child of the `<section>`).\n */export function getSectionBackgroundLayer(opts){const isGradient=opts.variant===\"gradient\";const sectionBgColor=isGradient?\"transparent\":getSectionBackgroundColor(opts.variant??\"primary\",opts.colors);if(!isGradient){return{sectionBgColor,isGradient,backgroundLayer:null};}// `zIndex: -1` paints the gradient BELOW in-flow content within the\n// section's isolated stacking context (see `getSectionRootBackgroundStyle`\n// — it sets `isolation: isolate` so the negative z-index can't escape the\n// section). This means consumers do NOT need to add `position: relative`\n// to inner content wrappers — static content stacks above the gradient\n// automatically.\nconst layerStyle={position:\"absolute\",inset:0,zIndex:-1,overflow:\"hidden\",pointerEvents:\"none\"};return{sectionBgColor,isGradient,backgroundLayer:/*#__PURE__*/React.createElement(\"div\",{\"style\":layerStyle,\"aria-hidden\":true},/*#__PURE__*/React.createElement(BackgroundAnimatedGradient,{preset:opts.preset,overlayDirection:opts.overlayDirection,showOverlay:opts.showOverlay,overlayStyle:opts.overlayStyle??\"fade\",theme:opts.theme,gradientBrightness:SECTION_GRADIENT_BRIGHTNESS,gradientSaturate:SECTION_GRADIENT_SATURATE,overlayMinOpacity:SECTION_GRADIENT_OVERLAY_MIN_OPACITY,style:FULL_SIZE_STYLE}))};}/**\n * Style object to spread onto the wrapper around the section's existing\n * content so it stacks above the absolutely-positioned gradient layer.\n * Returns an empty object when the section isn't using the gradient\n * variant, so it's safe to spread unconditionally.\n */export function getSectionContentStackStyle(isGradient){return isGradient?{position:\"relative\",zIndex:Tokens.getZIndex(\"raised\")}:{};}/**\n * Style additions to spread into the `<section>` element so the gradient\n * layer is positioned and stacked correctly.\n *\n * - `position: relative` — anchors the absolutely-positioned gradient layer.\n * - `isolation: isolate` — creates a new stacking context so the gradient\n *   layer's `zIndex: -1` paints BELOW the section's in-flow content but\n *   doesn't leak behind sibling sections / parent backgrounds. This is what\n *   lets static content (without `position: relative`) render above the\n *   gradient automatically — no per-section content wrapper changes needed.\n *\n * - `--cc-font-primary` — when `useMontserrat` is true, sets the CSS custom\n *   property that `getTypographyStyles` resolves via `var(--cc-font-primary)`,\n *   switching all section text from DM Sans to Montserrat. Montserrat is lazy-\n *   loaded from Google Fonts on first use.\n *\n * The gradient layer owns `overflow: hidden`, so we don't impose it on the\n * section root and risk clipping unrelated content.\n */export function getSectionRootBackgroundStyle(opts){const base={position:\"relative\",isolation:\"isolate\"};if(opts?.useMontserrat){ensureMontserratLoaded();return{...base,// CSS custom property override — cascades into all child elements\n// that use var(--cc-font-primary) from getTypographyStyles.\n\"--cc-font-primary\":FONT_FAMILY_MONTSERRAT_STACK};}return base;}/**\n * Shared property controls for the four Background props. Spread the\n * returned object into the section's `addPropertyControls(...)` call so all\n * sections expose the same Background section in Framer.\n *\n * @template P - The section's full Props interface (must extend\n *  `SectionBackgroundProps`). Used so the `hidden` predicates type-check\n *  against the consuming section.\n *\n * @param overrides - Optional defaults to override per-section. Use\n *  `variantDefault: \"secondary\"` for sections whose original (pre-helper)\n *  visual was the secondary surface, and `variantDefault: \"gradient\"` for\n *  hero/header sections that ship gradient-on by default.\n *  `presetDefault` overrides the gradient preset (e.g. \"Rainbow\" for\n *  hero/header sections). `overlayDirectionDefault` overrides the gradient\n *  overlay direction — hero sections typically want\n *  \"top-neutral-bottom-color\" (color anchored at the bottom near the CTA),\n *  page-header sections typically want \"top-color-bottom-neutral\" (color\n *  anchored at the top, fading down into body content).\n */export function sectionBackgroundPropertyControls(overrides){const isNotGradient=p=>p.backgroundVariant!==\"gradient\";const controls={backgroundVariant:{type:ControlType.Enum,title:\"Background\",options:[...SECTION_BACKGROUND_VARIANT_OPTIONS],optionTitles:[\"Primary\",\"Secondary\",\"Gradient\"],displaySegmentedControl:false,defaultValue:getBackgroundVariantControlDefault(overrides?.variantDefault),description:\"Primary (default surface), Secondary (alt surface), or Gradient. All theme-aware.\"},backgroundPreset:{type:ControlType.Enum,title:\"Gradient Preset\",options:[...SECTION_GRADIENT_PRESET_OPTIONS],optionTitles:[...SECTION_GRADIENT_PRESET_OPTIONS],displaySegmentedControl:false,defaultValue:overrides?.presetDefault??SECTION_BACKGROUND_DEFAULTS.backgroundPreset,description:\"Gradient preset. Used when Background is Gradient.\",hidden:isNotGradient},backgroundOverlayDirection:{type:ControlType.Enum,title:\"Gradient Overlay\",options:[\"top-neutral-bottom-color\",\"top-color-bottom-neutral\",\"top-left-corner\",\"top-right-corner\"],optionTitles:[\"Top Neutral / Bottom Color\",\"Top Color / Bottom Neutral\",\"Color from Top Left\",\"Color from Top Right\"],displaySegmentedControl:false,defaultValue:overrides?.overlayDirectionDefault??SECTION_BACKGROUND_DEFAULTS.backgroundOverlayDirection,description:\"Direction of the fade overlay. Hidden when Overlay Style is Full or Background is not Gradient.\",hidden:p=>p.backgroundVariant!==\"gradient\"||p.backgroundShowOverlay===false||p.backgroundOverlayStyle===\"full\"},backgroundShowOverlay:{type:ControlType.Boolean,title:\"Show Overlay\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:SECTION_BACKGROUND_DEFAULTS.backgroundShowOverlay,description:\"Toggle the dark/light overlay on top of the gradient. Used when Background is Gradient.\",hidden:isNotGradient},backgroundOverlayStyle:{type:ControlType.Enum,title:\"Overlay Style\",options:[\"fade\",\"full\"],optionTitles:[\"Fade\",\"Full\"],displaySegmentedControl:true,defaultValue:SECTION_BACKGROUND_DEFAULTS.backgroundOverlayStyle,description:\"Fade applies a directional gradient veil (see Gradient Overlay). Full applies a uniform semi-transparent layer that darkens or lightens the entire background evenly.\",hidden:p=>p.backgroundVariant!==\"gradient\"||p.backgroundShowOverlay===false},useMontserrat:{type:ControlType.Boolean,title:\"Use Montserrat\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:SECTION_BACKGROUND_DEFAULTS.useMontserrat,description:\"Temporary A/B experiment: replaces DM Sans with Montserrat. Defaults to No so production typography is unchanged. Remove after the experiment concludes.\"}};return controls;}\nexport const __FramerMetadata__ = {\"exports\":{\"SectionBackgroundControlVariant\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SECTION_BACKGROUND_DEFAULTS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SectionBackgroundProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SECTION_HERO_OVERLAY_DIRECTION_DEFAULT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSectionRootBackgroundStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSectionContentStackStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"sectionBackgroundPropertyControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SECTION_BACKGROUND_VARIANT_OPTIONS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSectionBackgroundLayer\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * Shared navigation/link helpers and video URL utilities for templates and components.\n * Used when handling button/link clicks that may be internal (SPA) or external.\n */import{useCallback,useMemo}from\"react\";import*as Framer from\"framer\";import{RenderTarget}from\"framer\";const framerUseRouter=Framer.useRouter??(()=>null);function normalizePathname(path){const withoutQueryHash=path.split(/[?#]/)[0]||\"/\";const withSlash=withoutQueryHash.startsWith(\"/\")?withoutQueryHash:`/${withoutQueryHash}`;if(withSlash.length>1&&withSlash.endsWith(\"/\")){return withSlash.slice(0,-1);}return withSlash;}function matchDynamicRoutePath(routePath,pathname){const routeSegments=normalizePathname(routePath).split(\"/\").filter(Boolean);const pathSegments=normalizePathname(pathname).split(\"/\").filter(Boolean);if(routeSegments.length!==pathSegments.length){return null;}const pathVariables={};for(let i=0;i<routeSegments.length;i+=1){const routeSegment=routeSegments[i];const pathSegment=pathSegments[i];if(routeSegment.startsWith(\":\")){pathVariables[routeSegment.slice(1)]=decodeURIComponent(pathSegment);continue;}if(routeSegment!==pathSegment){return null;}}return pathVariables;}function findRouteForPath(pathname,routes){const target=normalizePathname(pathname);let dynamicMatch;for(const[routeId,route]of Object.entries(routes)){const candidates=[route.path,...route.pathLocalized?Object.values(route.pathLocalized):[]].filter(p=>typeof p===\"string\"&&p.length>0);for(const candidate of candidates){const normalizedCandidate=normalizePathname(candidate);if(normalizedCandidate===target){return{routeId};}if(!dynamicMatch&&normalizedCandidate.includes(\":\")){const pathVariables=matchDynamicRoutePath(normalizedCandidate,target);if(pathVariables){dynamicMatch={routeId,pathVariables};}}}}return dynamicMatch;}function resolvePathTemplate(path,pathVariables){if(!path.includes(\":\")||!pathVariables){return path;}return path.replace(/:([^/?#]+)/g,(match,variableName)=>{const value=pathVariables[variableName]??pathVariables.slug??pathVariables.Slug??pathVariables[variableName.toLowerCase()];if(value==null||value===\"\"){return match;}return encodeURIComponent(String(value));});}/**\n * Uses Framer's SPA router when available so internal links don't resolve\n * against `framer.com` in the editor preview iframe (which produced Framer's\n * generic 404).\n */function navigateWithFramerSiteRouter(router,safeHref){if(!safeHref.startsWith(\"/\")||safeHref.startsWith(\"//\")){return false;}const hashIndex=safeHref.indexOf(\"#\");const beforeHash=hashIndex>=0?safeHref.slice(0,hashIndex):safeHref;const hashPart=hashIndex>=0?safeHref.slice(hashIndex+1):undefined;const pathOnly=beforeHash.split(\"?\")[0]??beforeHash;const routeMatch=findRouteForPath(pathOnly,router.routes);if(!routeMatch){return false;}router.navigate(routeMatch.routeId,hashPart,routeMatch.pathVariables);return true;}function isFramerCanvasTarget(){try{return RenderTarget.current()===RenderTarget.canvas;}catch{return false;}}/**\n * Normalize a Framer link control value or URL string to a plain URL string.\n * Safe to use for href or when passing to components that expect a string link.\n *\n * Framer may supply `{ url }`, `{ href }`, `{ path }`, or a plain string depending on\n * control / runtime version — handle both object shapes. CMS detail links may include\n * `pathVariables` to resolve `:slug` (or collection-specific keys like `:Documents`).\n */export function getLinkUrl(value){if(value==null)return\"\";if(typeof value===\"string\")return value;const o=value;const candidates=[o.url,o.href,o.path];for(const candidate of candidates){if(typeof candidate===\"string\"&&candidate!==\"\"){return resolvePathTemplate(candidate,o.pathVariables);}}return\"\";}/** First non-empty normalized link among Framer `url` / `link` control values. */export function coalesceLinkValue(...values){for(const value of values){const url=getLinkUrl(value);if(url)return url;}return\"\";}/**\n * URL schemes that are safe to use as href / window.open targets for\n * editor-supplied links. Anything outside this allow-list (most importantly\n * `javascript:`, `data:`, and `vbscript:`) is rejected by `safeUrl()` to\n * prevent XSS / open-redirect vectors when an untrusted CMS or Framer\n * editor field is wired into a navigation control.\n *\n * Same-page (#hash) and same-origin relative paths are allowed without a\n * scheme — those are checked explicitly in `safeUrl()` rather than here.\n */const SAFE_URL_SCHEMES=new Set([\"http:\",\"https:\",\"mailto:\",\"tel:\"]);/**\n * Validate an editor-/CMS-supplied URL against an allow-list of schemes.\n *\n * Returns the original URL when safe (http(s), mailto, tel, hash, or a\n * relative path) and an empty string otherwise. Use this whenever a URL\n * coming from a Framer property control / CMS field is about to flow into\n * an `<a href>`, `window.open`, or `window.location.href` — it neutralizes\n * `javascript:` / `data:` payloads at the boundary.\n *\n * Example:\n *   const href = safeUrl(getLinkUrl(props.link));\n *   if (href) window.open(href, \"_blank\", \"noopener,noreferrer\");\n */export function safeUrl(url){if(!url||typeof url!==\"string\")return\"\";const trimmed=url.trim();if(!trimmed)return\"\";// Same-page anchors and relative paths are always considered safe; they\n// can't carry a hostile scheme and the browser resolves them against the\n// current document origin.\nif(trimmed.startsWith(\"#\")||trimmed.startsWith(\"/\"))return trimmed;// Protocol-relative (\"//host/path\") inherits the page protocol; treat it\n// as http(s) and allow.\nif(trimmed.startsWith(\"//\"))return trimmed;try{const parsed=new URL(trimmed,\"https://example.invalid\");return SAFE_URL_SCHEMES.has(parsed.protocol)?trimmed:\"\";}catch{return\"\";}}/**\n * Handle a link URL: use SPA navigation for same-origin paths when onNavigate is provided,\n * open external URLs in a new tab, otherwise fall back to full page navigation.\n * Templates pass onNavigate from the host (e.g. prototypes's openOrNavigate) for SPA routing.\n *\n * The URL is funneled through `safeUrl()` first so a `javascript:` / `data:`\n * payload from a CMS or Framer link control can never reach `window.open` or\n * `window.location.href`.\n */export function handleLink(url,onNavigate){const safe=safeUrl(url);if(!safe)return;if(safe.startsWith(\"http\")||safe.startsWith(\"//\")){window.open(safe,\"_blank\",\"noopener,noreferrer\");return;}if(onNavigate){onNavigate(safe);return;}window.location.href=safe;}// ─── Form action helpers ─────────────────────────────────────────────────────\n/**\n * Validate a form `action` URL for use as `<form action=\"...\">`.\n *\n * Returns the original value when it's safe to submit to and an empty string\n * otherwise. \"Safe\" means one of:\n *   - empty (the form posts back to the current page),\n *   - a same-origin relative path (`/`-prefixed) or hash anchor,\n *   - an absolute `https:` URL.\n *\n * Notably this rejects `http:` (plaintext form posts of user data), and the\n * same dangerous schemes `safeUrl()` blocks (`javascript:`, `data:`,\n * `vbscript:`). It also rejects `mailto:` and `tel:` — those are valid hrefs\n * but make no sense as a form `action` and quietly swallowing one would mask\n * a bug.\n *\n * Use this whenever a CMS/Framer-supplied form action is about to flow into a\n * `<form action>` attribute or `fetch(..., { method: \"POST\" })` URL.\n */export function safeFormAction(url){if(url==null)return\"\";if(typeof url!==\"string\")return\"\";const trimmed=url.trim();if(!trimmed)return\"\";if(trimmed.startsWith(\"#\")||trimmed.startsWith(\"/\"))return trimmed;let parsed;try{parsed=new URL(trimmed);}catch{return\"\";}return parsed.protocol===\"https:\"?trimmed:\"\";}// ─── Lottie URL helpers ──────────────────────────────────────────────────────\n/**\n * Hostname suffixes/exact matches we trust to serve Lottie JSON. Limited to\n * the bunq CDN/site domains and LottieFiles' canonical CDN. Anything else\n * could redirect a `fetch()` call into an attacker-controlled host (where the\n * payload could trigger expensive renders, bloat memory, or — once injected\n * into a `<lottie-player>` — abuse `expressions` to run arbitrary JS in some\n * older Lottie runtimes).\n *\n * Adding a new host requires updating this list explicitly so the decision is\n * reviewable in code rather than buried in a CMS field.\n */const ALLOWED_LOTTIE_HOST_SUFFIXES=[\".bunq.net\",\".bunq.com\",\".lottiefiles.com\"];const ALLOWED_LOTTIE_HOSTS=new Set([\"bunq.net\",\"bunq.com\",\"lottiefiles.com\",\"assets.lottiefiles.com\"]);/**\n * Returns the original URL when it's an https Lottie endpoint on an\n * allow-listed host (see {@link ALLOWED_LOTTIE_HOSTS} and\n * {@link ALLOWED_LOTTIE_HOST_SUFFIXES}), and an empty string otherwise.\n *\n * Use this whenever a CMS/Framer-supplied Lottie URL is about to flow into\n * `fetch(url).then(r => r.json())` — it stops a hostile editor from\n * pointing the player at an arbitrary origin and slipping data exfil or\n * runtime-exploit payloads into the page.\n */export function safeLottieUrl(url){if(!url||typeof url!==\"string\")return\"\";const trimmed=url.trim();if(!trimmed)return\"\";let parsed;try{parsed=new URL(trimmed);}catch{return\"\";}if(parsed.protocol!==\"https:\")return\"\";const host=parsed.hostname.toLowerCase();if(ALLOWED_LOTTIE_HOSTS.has(host))return trimmed;return ALLOWED_LOTTIE_HOST_SUFFIXES.some(suffix=>host.endsWith(suffix))?trimmed:\"\";}// ─── Video URL helpers (from videoUrl.ts) ────────────────────────────────────\n/**\n * Helpers for video URLs used in hero/section components.\n * HTML5 <video> only supports direct file URLs; YouTube/Vimeo etc. cannot be used as src.\n *//** File extensions that the HTML5 <video> element can play directly. */const DIRECT_VIDEO_EXTENSIONS=/\\.(mp4|webm|ogg|mov|m4v)(\\?|$)/i;/**\n * Returns true if the URL is a direct video file the browser can play inline.\n * Returns false for YouTube, Vimeo, or other embed-only URLs.\n */export function isDirectVideoUrl(url){try{const pathname=new URL(url,\"https://example.com\").pathname;return DIRECT_VIDEO_EXTENSIONS.test(pathname);}catch{return false;}}/**\n * Suffix appended to accessible labels for links that open in a new browser\n * tab. Mirrors the WCAG 2.2 SC 3.2.5 expectation that opening a new context\n * is announced to assistive technology so the user is not surprised.\n */const NEW_TAB_ARIA_SUFFIX=\" (opens in new tab)\";/**\n * Returns an accessible-name string with a \"(opens in new tab)\" suffix\n * appended, used when a link or button will open the destination in a new\n * browser tab via `target=\"_blank\"` or `window.open(..., \"_blank\")`.\n *\n * - Returns the original label unchanged when the suffix is already present\n *   (case-insensitive), so it is safe to call repeatedly.\n * - Returns the original label unchanged when it is empty.\n *\n * Usage:\n *   <a {...smart} aria-label={getNewTabAriaLabel(\"Follow us on X\")}>…</a>\n *\n * Pair with {@link useSmartLinkProps} (whose returned `target === \"_blank\"`\n * tells the consumer when to apply this) or use directly at any\n * `window.open(url, \"_blank\")` call site.\n */export function getNewTabAriaLabel(label){if(!label)return label;const lower=label.toLowerCase();if(lower.includes(\"(opens in new tab)\")||lower.includes(\"(opens in a new tab)\")){return label;}return`${label}${NEW_TAB_ARIA_SUFFIX}`;}/**\n * React hook that produces a safe set of anchor props for a Framer Link / URL\n * value. Handles URL sanitization, internal vs external `target`/`rel`,\n * SPA-style click handling, and a default style that keeps anchors looking\n * like the surrounding text.\n *\n * The returned `target` field will be `\"_blank\"` when the link opens in a new\n * tab — consumers that own the accessible name MUST then append\n * \"(opens in new tab)\" to their `aria-label` (use {@link getNewTabAriaLabel})\n * to satisfy WCAG 2.2 SC 3.2.5 / general screen-reader expectations.\n *\n * When composing with your own `style`, spread `smart.style` first so\n * `textDecoration` / `color` you set afterward are not overwritten by the\n * hook’s defaults (`textDecoration: \"none\"`, `color: \"inherit\"`).\n *\n * Usage:\n *   const smart = useSmartLinkProps(link, openInNewTab, { onClick });\n *   const ariaLabel = smart.target === \"_blank\"\n *       ? getNewTabAriaLabel(\"Follow us on X\")\n *       : \"Follow us on X\";\n *   return <a {...smart} aria-label={ariaLabel}>Label</a>;\n */export function useSmartLinkProps(link,openInNewTab=false,options){const userOnClick=options?.onClick;const onNavigate=options?.onNavigate;const framerRouter=framerUseRouter();const rawUrl=useMemo(()=>getLinkUrl(link),[link]);const href=useMemo(()=>safeUrl(rawUrl),[rawUrl]);const isExternal=useMemo(()=>{if(!href)return false;return/^https?:\\/\\//i.test(href)||href.startsWith(\"//\");},[href]);const target=openInNewTab||isExternal?\"_blank\":undefined;const rel=target===\"_blank\"?\"noopener noreferrer\":undefined;const onClick=useCallback(event=>{if(userOnClick){userOnClick(event);if(event.defaultPrevented)return;}if(!href){event.preventDefault();return;}// Allow the browser to open in a new tab natively when target=_blank\n// — handleLink() also opens in a new window for external links, so\n// we'd otherwise double-trigger.\nif(target===\"_blank\")return;// Modifier-click on internal paths: native navigation would resolve\n// `/...` against the wrong origin in Framer preview; open an absolute\n// URL when the site router exposes a canonical base.\nif(event.metaKey||event.ctrlKey||event.shiftKey||event.altKey||typeof event.button===\"number\"&&event.button!==0){if(framerRouter?.siteCanonicalURL&&href.startsWith(\"/\")&&!href.startsWith(\"//\")){event.preventDefault();try{const abs=new URL(href,framerRouter.siteCanonicalURL).href;window.open(abs,\"_blank\",\"noopener,noreferrer\");}catch{/* fall through */}}return;}event.preventDefault();// Editor canvas: never navigate the preview iframe away from the project.\nif(isFramerCanvasTarget()){return;}// Published site / preview: prefer Framer's client router over\n// `window.location`, which breaks inside the Framer preview iframe.\nif(framerRouter&&!onNavigate&&href.startsWith(\"/\")&&!href.startsWith(\"//\")){if(navigateWithFramerSiteRouter(framerRouter,href)){return;}// Unmatched paths (e.g. dynamic segments): full navigation on the\n// site's canonical origin instead of the preview/editor host.\nif(framerRouter.siteCanonicalURL){try{window.location.assign(new URL(href,framerRouter.siteCanonicalURL).href);return;}catch{/* fall through */}}}handleLink(href,onNavigate);},[href,target,userOnClick,onNavigate,framerRouter]);const style=useMemo(()=>{const base={cursor:href?\"pointer\":\"default\",color:\"inherit\",textDecoration:\"none\"};if(href&&isFramerCanvasTarget()){base.pointerEvents=\"none\";}return base;},[href]);return{href,target,rel,style,onClick};}\nexport const __FramerMetadata__ = {\"exports\":{\"UseSmartLinkPropsOptions\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getLinkUrl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getNewTabAriaLabel\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LinkValue\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"safeFormAction\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SmartLinkProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"handleLink\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"coalesceLinkValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"safeUrl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useSmartLinkProps\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"safeLottieUrl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isDirectVideoUrl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./linkHelpers.map","/**\n * Placeholder constants for component default values.\n *\n * These constants ensure that every component shows representative content\n * when first placed on the canvas, so designers and developers immediately\n * see the component as intended. Placeholder text is length-appropriate and\n * guides content authors (e.g. \"Short headline goes here\", \"One or two sentences...\").\n *\n * **Structural rule:** This module must remain self-contained — it must not be a barrel of\n * `export * from` / `export { … } from` re-exports of other project files. The Framer code-link\n * sync rewrites a re-export-only file to **empty**, which silently breaks every component\n * importing `PLACEHOLDER` / `HINT_*`, plus any component that re-exports from those modules\n * (manifests as a \"module does not provide export named 'default'\" cascade).\n *\n * Usage:\n * ```ts\n * import { PLACEHOLDER, HINT_IMAGE_URL } from \"../../utils/placeholders.ts\";\n * ```\n */// ============================================\n// IMAGES.\n// ============================================\n/** Standard placeholder image (bunq CDN). Use for section images, feature images, cards, and Image atom loading/error state. */const IMAGE=\"https://static.bunq.com/website/images/bunq-placeholder-eva.png\";/** Phone-mockup placeholder image (bunq CDN). Use where a portrait device-mockup visual fits better than the standard people-photo placeholder (e.g. SectionFeatureBreakdown). */const IMAGE_PHONE=\"https://static.bunq.com/website/images/bunq-placeholder-phone.png\";/** Placeholder avatar image (bunq CDN). Use for team members, testimonial authors, profiles. */const AVATAR=\"https://static.bunq.com/website/images/bunq-placeholder-eva.png\";/** Placeholder company logo (bunq CDN). Use for logo carousels / ticker placeholders so designers immediately see a real logo on the canvas. */const LOGO=\"https://static.bunq.com/website/images/logo-forbes.png\";// ============================================\n// VIDEO.\n// ============================================\n/** Standard placeholder video URL (MP4). Use for all direct-video placeholders (sections, VideoPlayer url source). */const VIDEO_URL=\"https://static.bunq.com/website/videos/bunq-about.mp4\";/** Standard placeholder YouTube URL. Use for all YouTube placeholders (sections, VideoPlayer youtube source). */const VIDEO_YOUTUBE=\"https://www.youtube.com/watch?v=bQwcgpND4v4\";// ============================================\n// TEXT - Headings & Labels.\n// ============================================\n/** Generic section heading (short, one line). For cards, grids, and in-section titles — not page mastheads. */const HEADING=\"Short section heading goes here\";/** Page masthead title (short, one line). Use for SectionHeader-style page titles. */const PAGE_HEADING=\"Short page heading goes here\";/** Generic hero heading (short, one line). */const HERO_HEADING=\"Short hero heading goes here\";/** Generic card or item heading (short, one line). Use for headings inside cards, list items, or feature blocks. */const ITEM_HEADING=\"Short item heading goes here\";/** Short tagline or badge above heading (e.g. New, Featured). */const TAGLINE=\"Short tagline or badge (e.g. New, Featured)\";/** Badge label above section heading; keep short. */const BADGE_LABEL=\"Short badge label (e.g. Feature, New)\";/** Generic label for nav links, tabs, buttons when no specific copy is set. */const LABEL_GENERIC=\"Label\";// ============================================\n// TEXT - Descriptions.\n// ============================================\n/** Section description: one or two sentences supporting the headline; length matches intended layout. */const DESCRIPTION=\"Medium-length body copy of one or two sentences goes here to support the main headline. Do not make your text longer than this.\";/** Short description for cards or small blocks; one short sentence. */const DESCRIPTION_SHORT=\"Brief description (one short sentence).\";/** FAQ answer body copy: keep answers brief (no longer than ~5 lines). If more detail is needed, link to the relevant help center article. Used as the default answer in FAQ sections, AccordionFAQGroup and AccordionFAQItem. */const FAQ_ANSWER=\"Medium-length answer to this question goes here. Keep your answer brief and no longer than 5 lines — if there's more to explain, add a link to the relevant help center article.\";/** Footer masthead headline (optional canvas default). Kept on PLACEHOLDER for backwards compatibility with consumers that destructure or reference it. */const FOOTER_HEADING=\"Footer headline\";/** Example footer navigation link label (one short line). NavFooter link defaultValues. Named export for addPropertyControls (Framer may not have `PLACEHOLDER` in scope for defaultValue). */export const FOOTER_NAV_LINK_DEFAULT=\"Short footer link label goes here\";// ============================================\n// TEXT - Buttons.\n// ============================================\n/** Primary CTA button label (e.g. Get started, Sign up). */const PRIMARY_BUTTON=\"Get started\";/** Secondary button label (e.g. Learn more, See details). */const SECONDARY_BUTTON=\"Learn more\";// ============================================\n// TEXT - Alt Text.\n// ============================================\n/** Alt text for section images: leave empty so authors must provide meaningful copy. */const IMAGE_ALT=\"\";/** Alt text for hero images. */const HERO_IMAGE_ALT=\"\";/** Video thumbnail alt text. */const VIDEO_THUMBNAIL_ALT=\"\";/** Blog post image alt text. */const BLOG_IMAGE_ALT=\"\";/** Profile or avatar alt text. */const AVATAR_ALT=\"Name of person (or 'Team member')\";// ============================================\n// Framer control hints (placeholder prop in addPropertyControls).\n// Use these so content authors see length-appropriate guidance in the panel.\n// ============================================\n/** Hint for heading fields: one line. */export const HINT_HEADING=\"e.g. Short headline (one line)\";/** Hint for section/body description: one or two sentences; length matches layout. */export const HINT_DESCRIPTION=\"Medium-length body copy of one or two sentences goes here to support the main headline. Do not make your text longer than this.\";/** Hint for footer menu column titles. */export const HINT_FOOTER_MENU_COLUMN=\"Short menu column title (one line). Do not make your text longer than this placeholder.\";/** Hint for footer nav and legal link labels. */export const HINT_FOOTER_MENU_LINK=\"Short footer link label (one line). Do not make your text longer than this placeholder.\";/** Hint for short badge/tag labels. */export const HINT_BADGE=\"e.g. Feature, New (keep short)\";/** Hint for tab labels. */export const HINT_TAB_LABEL=\"e.g. Overview, Pricing (short label)\";/** Hint for image alt text. */export const HINT_IMAGE_ALT=\"Brief description of image for screen readers\";/** Hint for optional section anchor ID. */export const HINT_SECTION_ID=\"Optional anchor ID (e.g. features)\";/** Hint for primary/secondary button labels. */export const HINT_BUTTON_LABEL=\"e.g. Get started, Learn more\";/** Hint for image URL. */export const HINT_IMAGE_URL=\"e.g. https://example.com/image.jpg\";/** Hint for HTML element id (atoms, cards). */export const HINT_ELEMENT_ID=\"e.g. my-element (lowercase, hyphen-separated)\";/** Hint for Contentsquare / analytics CTA IDs. */export const HINT_CTA_ID=\"e.g. section-hero-cta-primary\";/** Hint for category or filter labels (tabs, badges on cards). */export const HINT_CATEGORY=\"e.g. News (short label)\";/** Hint for accessible name overrides. */export const HINT_ARIA_LABEL=\"e.g. Descriptive label for screen readers\";/** Hint for locale modal language label. */export const HINT_LOCALE_LANGUAGE=\"e.g. English\";/** Hint for locale modal country label. */export const HINT_LOCALE_COUNTRY=\"e.g. Netherlands\";/** Hint for locale path slug. */export const HINT_LOCALE_SLUG=\"e.g. en-nl or /\";/** Hint for input placeholder copy (prop named `placeholder`). */export const HINT_INPUT_PLACEHOLDER=\"e.g. Search…\";/** Hint for short chart or metric labels. */export const HINT_SHORT_LABEL=\"e.g. Short label\";// ============================================\n// EXPORT\n// ============================================\nexport const PLACEHOLDER={// Images.\nIMAGE,IMAGE_PHONE,AVATAR,LOGO,// Video.\nVIDEO_URL,VIDEO_YOUTUBE,// Headings & Labels.\nHEADING,PAGE_HEADING,HERO_HEADING,ITEM_HEADING,TAGLINE,BADGE_LABEL,LABEL_GENERIC,// Descriptions.\nDESCRIPTION,DESCRIPTION_SHORT,FAQ_ANSWER,// Footer (NavFooter; FOOTER_HEADING retained for shared bundle compatibility).\nFOOTER_HEADING,FOOTER_NAV_LINK_DEFAULT,// Buttons.\nPRIMARY_BUTTON,SECONDARY_BUTTON,// Alt text.\nIMAGE_ALT,HERO_IMAGE_ALT,VIDEO_THUMBNAIL_ALT,BLOG_IMAGE_ALT,AVATAR_ALT};\nexport const __FramerMetadata__ = {\"exports\":{\"PLACEHOLDER\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_LOCALE_LANGUAGE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_SECTION_ID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FOOTER_NAV_LINK_DEFAULT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_BADGE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_FOOTER_MENU_LINK\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_HEADING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_CATEGORY\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_LOCALE_SLUG\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_FOOTER_MENU_COLUMN\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_ELEMENT_ID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_SHORT_LABEL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_ARIA_LABEL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_IMAGE_URL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_CTA_ID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_DESCRIPTION\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_INPUT_PLACEHOLDER\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_BUTTON_LABEL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_IMAGE_ALT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_TAB_LABEL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HINT_LOCALE_COUNTRY\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./placeholders.map","/**\n * useSectionAnimation - Hook for reliable one-time scroll-triggered section animations.\n *\n * Uses IntersectionObserver with React state to ensure the animation\n * triggers exactly once and never reverts, even during re-renders, HMR, or layout shifts.\n *\n * This replaces the pattern of `whileInView=\"visible\"` on motion.section elements,\n * which can glitch and cause sections to go blank during fast scrolling or re-renders.\n *\n * @example\n * ```tsx\n * const SectionComponent = forwardRef<HTMLElement, Props>((props, ref) => {\n *     const { sectionRef, animate } = useSectionAnimation(ref);\n *\n *     return (\n *         <motion.section\n *             ref={sectionRef}\n *             initial={animate === \"visible\" ? false : \"hidden\"}\n *             animate={animate}\n *             variants={containerVariants}\n *         >\n *             ...\n *         </motion.section>\n *     );\n * });\n * ```\n */import{useRef,useCallback,useState,useEffect}from\"react\";import{isFramerDesignEnvironment,useFramerDesignEnvironment}from\"https://framerusercontent.com/modules/fLnoI6ZB9Br9mhUvxmjW/tWYaqzIJ6baBNTssXrK2/useInViewport.js\";/** Safe `motion.section` initial: visible until mounted so SSR matches hydration. */export function getSectionMotionInitial(animate,options){const{hasMounted=true,isStaticRenderer=false,reducedMotion=false}=options??{};if(isStaticRenderer||reducedMotion||!hasMounted||animate===\"visible\"){return false;}return\"hidden\";}/**\n * Hook for reliable one-time scroll-triggered section animations.\n *\n * @param forwardedRef - The ref from forwardRef to merge with the internal observer ref.\n * @param options - Configuration for the IntersectionObserver.\n * @returns Object with sectionRef, animate state, and hasBeenSeen flag.\n */export function useSectionAnimation(forwardedRef,options){const internalRef=useRef(null);const[element,setElement]=useState(null);const isDesignEnvironment=useFramerDesignEnvironment();const[isInView,setIsInView]=useState(false);const[hasMounted,setHasMounted]=useState(false);const margin=options?.margin??\"-100px\";// Framer SSR renders sections visible; defer \"hidden\" until after hydration.\nuseEffect(()=>{setHasMounted(true);},[]);// Canvas/export previews: reveal after mount so SSR and first client paint stay aligned.\nuseEffect(()=>{if(isFramerDesignEnvironment()){setIsInView(true);}},[]);// Merge the internal ref (for IntersectionObserver) with the forwarded ref (for parent access).\nconst sectionRef=useCallback(node=>{internalRef.current=node;setElement(node);if(typeof forwardedRef===\"function\"){forwardedRef(node);}else if(forwardedRef&&typeof forwardedRef===\"object\"){forwardedRef.current=node;}},[forwardedRef]);useEffect(()=>{// Skip observer in Framer design/preview modes — always visible there.\nif(isDesignEnvironment||element===null){return;}if(typeof window===\"undefined\"||typeof IntersectionObserver===\"undefined\"){setIsInView(true);return;}const observer=new IntersectionObserver(([entry])=>{if(!entry.isIntersecting){return;}setIsInView(true);},{rootMargin:margin,threshold:0});observer.observe(element);return()=>observer.disconnect();},[element,margin,isDesignEnvironment]);return{sectionRef,sectionRefObject:internalRef,animate:!hasMounted||isInView||isDesignEnvironment?\"visible\":\"hidden\",hasBeenSeen:isInView||isDesignEnvironment,hasMounted};}\nexport const __FramerMetadata__ = {\"exports\":{\"useSectionAnimation\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSectionMotionInitial\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useSectionAnimation.map","/**\n * motionVariants - Shared Framer Motion variant factories.\n *\n * Centralizes the container/item/image variant patterns used across section\n * organisms, modals, dropdowns, and navbars. Every factory respects\n * `reducedMotion` and pulls timing from Tokens so the entire motion\n * language is adjustable from one file.\n */import Tokens from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";// ── Section Variants ────────────────────────────────────────────────────\n/**\n * Standard section entrance variants (container + item).\n * Used by ~60 section organisms for scroll-triggered staggered reveals.\n */export function createSectionVariants(reducedMotion,options){const stagger=options?.stagger??Tokens.getStagger(\"section\");const yOffset=options?.yOffset??Tokens.getEntranceOffset(\"item\");const itemTransition=options?.transition??(reducedMotion?{duration:0}:Tokens.getFramerTransition(\"standard\"));return{container:{hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:reducedMotion?0:stagger}}},item:{hidden:{opacity:0,y:reducedMotion?0:yOffset},visible:{opacity:1,y:0,transition:itemTransition}}};}/**\n * Section entrance variants with an additional image/media scale reveal.\n * The image starts at `Tokens.getEntranceScale(\"media\")` and scales to 1\n * with a slight delay for choreographed flow.\n */export function createSectionVariantsWithImage(reducedMotion,options){const base=createSectionVariants(reducedMotion,options);const scale=Tokens.getEntranceScale(\"media\");const imageDelay=options?.imageDelay??.2;return{...base,image:{hidden:{opacity:0,scale:reducedMotion?1:scale},visible:{opacity:1,scale:1,transition:reducedMotion?{duration:0}:{...Tokens.getFramerTransition(\"standard\"),delay:imageDelay}}}};}// ── Card Grid Variants ──────────────────────────────────────────────────\n/**\n * Card/grid entrance variants with tighter stagger and smaller y-offset.\n * Used by grid-heavy sections (chroma cards, gallery, image grids).\n */export function createCardVariants(reducedMotion,options){return createSectionVariants(reducedMotion,{stagger:options?.stagger??Tokens.getStagger(\"medium\"),yOffset:options?.yOffset??Tokens.getEntranceOffset(\"card\")});}// ── Dropdown Variants ───────────────────────────────────────────────────\n/**\n * Dropdown/popover entrance/exit variants.\n * Slides in from above with a quick transition.\n */export function createDropdownVariants(reducedMotion){const yOffset=Tokens.getEntranceOffset(\"dropdown\");const transition=reducedMotion?{duration:0}:Tokens.getFramerTransition(\"quick\");return{hidden:{opacity:0,y:reducedMotion?0:yOffset},visible:{opacity:1,y:0,transition},exit:{opacity:0,y:reducedMotion?0:yOffset,transition}};}// ── Modal Variants ──────────────────────────────────────────────────────\n/**\n * Modal backdrop + panel variants.\n * Panel uses `Tokens.getEntranceScale(\"modal\")` for a subtle scale-up reveal.\n * When {@link CreateModalVariantsOptions.liquidGlass} is true, the panel omits\n * `scale` so children using `backdrop-filter` (liquid glass) composite correctly.\n */export function createModalVariants(reducedMotion,options){const scale=Tokens.getEntranceScale(\"modal\");const enterTransition=reducedMotion?{duration:0}:Tokens.getFramerTransition(\"moderate\",\"enter\");const exitTransition=reducedMotion?{duration:0}:Tokens.getFramerTransition(\"standard\",\"exit\");const liquidGlass=options?.liquidGlass===true;if(liquidGlass){// ── Liquid-glass entry/exit choreography ────────────────────────\n//\n// Three motion targets, each animating a backdrop-root-safe\n// property so the panel's inner `<LiquidGlass>` keeps sampling\n// the page correctly throughout:\n//\n// 1. `backdrop` → the wrapper element. Animates `backgroundColor`'s\n//    alpha (transparent → dim). `background-color` is not a\n//    backdrop-root-forming property, so the wrapper stays\n//    sampling-transparent for the panel's LG.\n//\n// 2. `backdropBlur` → a sibling-of-panel `<div>` (or motion.div)\n//    that carries the actual `backdrop-filter: blur(...)` and so\n//    blurs the page behind the modal. It IS a backdrop root, but\n//    only over its own (empty) subtree — the panel is a SIBLING,\n//    so its LG is unaffected. Opacity ramps the blur in/out\n//    smoothly alongside the dim color.\n//\n// 3. `panel` → stays fully visible on entry (no opacity / scale)\n//    so the panel's `<LiquidGlass>` samples the page correctly\n//    from frame 1. On exit we only fade out: any temporary\n//    backdrop-root side effect is hidden by the fade, while close\n//    feels smooth instead of popping away at the end of the\n//    backdrop animation.\nconst transparentColor=\"rgba(0, 0, 0, 0)\";const visibleColor=options?.backdropColor??\"rgba(0, 0, 0, 0.5)\";return{backdrop:{hidden:{backgroundColor:transparentColor},visible:{backgroundColor:visibleColor,transition:enterTransition},exit:{backgroundColor:transparentColor,transition:exitTransition}},backdropBlur:{hidden:{opacity:0},visible:{opacity:1,transition:enterTransition},exit:{opacity:0,transition:exitTransition}},panel:{hidden:{opacity:1},visible:{opacity:1},exit:{opacity:0,transition:exitTransition}}};}return{backdrop:{hidden:{opacity:0},visible:{opacity:1,transition:enterTransition},exit:{opacity:0,transition:exitTransition}},panel:{hidden:{opacity:0,scale:reducedMotion?1:scale},visible:{opacity:1,scale:1,transition:enterTransition},exit:{opacity:0,scale:reducedMotion?1:scale,transition:exitTransition}}};}// ── Nav Stagger Variants ────────────────────────────────────────────────\n/**\n * Navbar submenu stagger variants.\n * Uses a slower stagger with small y-offset for menu items.\n */export function createNavStaggerVariants(reducedMotion,options){const stagger=options?.stagger??Tokens.getStagger(\"slow\");const delayChildren=options?.delayChildren??Tokens.getEntranceDelay(\"navChildren\");const yOffset=options?.yOffset??Tokens.getEntranceOffset(\"nav\");return{container:{hidden:{opacity:0},visible:{opacity:1,transition:reducedMotion?{staggerChildren:0,delayChildren:0}:{staggerChildren:stagger,delayChildren}}},item:{hidden:{opacity:0,y:reducedMotion?0:yOffset},visible:{opacity:1,y:0,transition:reducedMotion?{duration:0}:Tokens.getFramerTransition(\"standard\",\"enter\")}}};}\nexport const __FramerMetadata__ = {\"exports\":{\"createDropdownVariants\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CreateModalVariantsOptions\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createSectionVariants\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createModalVariants\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ModalVariants\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createCardVariants\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createSectionVariantsWithImage\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createNavStaggerVariants\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * SVG Processing Utility.\n *\n * Utility functions for processing SVG strings, including resizing and color replacement.\n * Used across components to dynamically modify SVG icons.\n *//**\n * Cache for sanitized SVG strings to avoid expensive DOMParser operations.\n * Key: original SVG string (truncated for key generation).\n * Value: sanitized SVG string.\n */const sanitizeCache=new Map;/**\n * Cache for fully processed SVG strings.\n * Key: `${sanitizedSVG}|${size}|${color}|${replaceStroke}`.\n * Value: processed SVG string.\n */const processCache=new Map;/**\n * Maximum cache size to prevent memory leaks.\n * When exceeded, clear oldest entries (simple FIFO strategy).\n */const MAX_CACHE_SIZE=500;/**\n * Process SVG string to replace size and colors.\n *\n * @param svgString - The SVG string to process\n * @param size - The target size for width and height attributes (optional)\n * @param color - The color to replace black/white fills (and optionally strokes) with\n * @param options - Optional configuration\n * @param options.replaceStroke - Whether to also replace stroke colors (default: false)\n * @param options.opticalInset - Expand viewBox by this amount on each side for consistent optical size (e.g. 2)\n * @returns Processed SVG string, or empty string if input is invalid\n *\n * @example\n * ```typescript.\n * Const processed = processSVG(iconSVG, 24, \"#000000\");\n * Const withStroke = processSVG(iconSVG, 24, \"#000000\", { replaceStroke: true });\n * ```\n */function sanitizeSVG(svgString){if(!svgString||!svgString.trim()){return\"\";}// DOMParser is available in Framer/browser contexts. In SSR/static contexts we still want to.\n// Return a best-effort sanitized string (so icons don't disappear entirely).\nif(typeof window===\"undefined\"||typeof DOMParser===\"undefined\"){const raw=svgString.trim();// Best-effort SSR sanitization (string-based).\n// Remove unsafe elements.\n// Strip inline event handlers.\n// Strip navigable hrefs. Icons do not need outbound links; keep only\n// same-document fragment references used by SVG defs.\nreturn raw.replace(/<script[\\s\\S]*?>[\\s\\S]*?<\\/script>/gi,\"\").replace(/<style[\\s\\S]*?>[\\s\\S]*?<\\/style>/gi,\"\").replace(/<foreignObject[\\s\\S]*?>[\\s\\S]*?<\\/foreignObject>/gi,\"\").replace(/\\son[a-zA-Z]+\\s*=\\s*(['\"])[\\s\\S]*?\\1/gi,\"\").replace(/\\s(xlink:href|href)\\s*=\\s*(['\"])(?!\\s*#)[\\s\\S]*?\\2/gi,\"\");}// Check cache using full SVG string for correctness (avoids collisions from truncated keys).\nconst cacheKey=svgString;if(sanitizeCache.has(cacheKey)){return sanitizeCache.get(cacheKey);}const parser=new DOMParser;const doc=parser.parseFromString(svgString,\"image/svg+xml\");const svg=doc.querySelector(\"svg\");if(!svg){return\"\";}// Remove unsafe elements.\ndoc.querySelectorAll(\"script, style, foreignObject\").forEach(node=>node.remove());// Strip event handlers and navigable hrefs. Same-document fragments are\n// allowed so gradients, masks, and symbols can still reference local IDs.\n[svg,...Array.from(svg.querySelectorAll(\"*\"))].forEach(el=>{for(const attr of el.getAttributeNames()){if(attr.startsWith(\"on\")){el.removeAttribute(attr);continue;}if(attr===\"href\"||attr===\"xlink:href\"){const val=el.getAttribute(attr)||\"\";if(!/^\\s*#/.test(val)){el.removeAttribute(attr);}}}});const sanitized=svg.outerHTML;// Cache the result (with size limit).\nif(sanitizeCache.size>=MAX_CACHE_SIZE){// Clear oldest entries (first 25% of cache).\nconst entriesToDelete=Math.floor(MAX_CACHE_SIZE*.25);let deleted=0;for(const key of sanitizeCache.keys()){if(deleted>=entriesToDelete)break;sanitizeCache.delete(key);deleted++;}}sanitizeCache.set(cacheKey,sanitized);return sanitized;}export function processSVG(svgString,size,color,options){// Normalize `size` once: callers may pass either a numeric pixel value or a\n// token-string (e.g. `Tokens.getSpacing(24)` → `\"24px\"`). The width/height\n// attribute regex below requires a digit-only value, so parse to number.\nconst sizeNum=typeof size===\"string\"?parseFloat(size):size;const clean=sanitizeSVG(svgString);if(!clean){return\"\";}// Create cache key using the full sanitized SVG string for correctness.\nconst replaceStroke=options?.replaceStroke||false;const opticalInset=options?.opticalInset??0;const processCacheKey=`${clean}|${sizeNum??\"undefined\"}|${color??\"undefined\"}|${replaceStroke}|${opticalInset}`;// Check process cache.\nif(processCache.has(processCacheKey)){return processCache.get(processCacheKey);}let processed=clean;// Replace width and height attributes if size is provided.\nif(sizeNum===undefined||Number.isNaN(sizeNum)){// No size provided, keep original dimensions.\n}else{processed=processed.replace(/(width|height)=[\"']?(\\d+)[\"']?/g,`$1=\"${sizeNum}\"`);}// Apply optical inset: expand viewBox so the graphic has consistent visual padding.\n// e.g. viewBox=\"0 0 24 24\" with inset 2 → \"-2 -2 28 28\" so content appears slightly smaller.\n// This runs on the *sanitized* string (clean). If sanitizeSVG returns a different attribute\n// order or format (e.g. after DOMParser.outerHTML), the regex must still match. We match\n// viewBox/viewbox (case-insensitive) and flexible whitespace so serialization doesn't skip the fix.\nif(opticalInset>0){const insetViewBox=`viewBox=\"-${opticalInset} -${opticalInset} ${24+2*opticalInset} ${24+2*opticalInset}\"`;processed=processed.replace(/viewbox\\s*=\\s*[\"']\\s*0\\s+0\\s+24\\s+24\\s*[\"']/gi,insetViewBox);}// Only replace colors if color is explicitly provided.\nif(color===undefined){// No color provided, keep original colors.\n}else{// Replace fill=\"black\" with dynamic color - handle all variations.\nprocessed=processed.replace(/fill=[\"']black[\"']/g,`fill=\"${color}\"`);processed=processed.replace(/fill=black/g,`fill=\"${color}\"`);// Replace fill=\"white\" with dynamic color - handle all variations.\nprocessed=processed.replace(/fill=[\"']white[\"']/g,`fill=\"${color}\"`);processed=processed.replace(/fill=white/g,`fill=\"${color}\"`);// Replace fill hex forms (e.g. #fff, #ffffff) including style attributes (e.g. style=\"fill: #fff;\").\nprocessed=processed.replace(/\\bfill\\s*=\\s*[\"']\\s*#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\s*[\"']/g,`fill=\"${color}\"`);processed=processed.replace(/\\bstyle\\s*=\\s*[\"'][^\"']*\\bfill\\s*:\\s*#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\s*;?[^\"']*[\"']/g,match=>match.replace(/\\bfill\\s*:\\s*#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b/i,`fill: ${color}`));// Optionally replace stroke colors.\nif(options?.replaceStroke){// Replace stroke=\"black\" with dynamic color - handle all variations.\nprocessed=processed.replace(/stroke=[\"']black[\"']/g,`stroke=\"${color}\"`);processed=processed.replace(/stroke=black/g,`stroke=\"${color}\"`);// Replace stroke=\"white\" with dynamic color - handle all variations.\nprocessed=processed.replace(/stroke=[\"']white[\"']/g,`stroke=\"${color}\"`);processed=processed.replace(/stroke=white/g,`stroke=\"${color}\"`);// Replace stroke hex forms (e.g. #fff, #ffffff) including style attributes (e.g. style=\"stroke: #fff;\").\nprocessed=processed.replace(/\\bstroke\\s*=\\s*[\"']\\s*#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\s*[\"']/g,`stroke=\"${color}\"`);processed=processed.replace(/\\bstyle\\s*=\\s*[\"'][^\"']*\\bstroke\\s*:\\s*#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\s*;?[^\"']*[\"']/g,match=>match.replace(/\\bstroke\\s*:\\s*#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b/i,`stroke: ${color}`));}}// Cache the result (with size limit).\nif(processCache.size>=MAX_CACHE_SIZE){// Clear oldest entries (first 25% of cache).\nconst entriesToDelete=Math.floor(MAX_CACHE_SIZE*.25);let deleted=0;for(const key of processCache.keys()){if(deleted>=entriesToDelete)break;processCache.delete(key);deleted++;}}processCache.set(processCacheKey,processed);return processed;}/**\n * For SVGs using `viewBox=\"0 0 24 24\"`, inset the viewBox on each side so the glyph\n * occupies more of the rendered pixel box (optical zoom). Bunq library icons often sit\n * with extra padding inside the 24×24 artboard; TabsGroup’s built-in default tab SVGs\n * read larger at the same CSS size. Passing raw library SVG through this helper aligns\n * visual weight with sections that rely on `DEFAULT_TAB_ICONS`.\n *\n * No-op if the viewBox is not the standard 24×24 form (e.g. cropped icons).\n *//** Per-edge viewBox inset for bunq icons in `TabsGroup` when matching `DEFAULT_TAB_ICONS` (~1.33× zoom vs raw). */export const ZOOM_STANDARD_24_TAB_STRIP_INSET=3;/**\n * Per-edge viewBox inset for the `link` icon when it sits beside full-bleed social glyphs.\n * The link paths occupy ~12×12 of the 24×24 artboard; cropping to the inner 12×12 matches\n * IconSocialItem / ButtonShare platform icons at the same rendered pixel size.\n */export const SOCIAL_SHARE_LINK_VIEWBOX_INSET=6;/** Zoom a processed `link` SVG so it optically matches full-bleed share icons at the same CSS size. */export function alignSocialShareLinkIcon(svg){return zoomStandard24ViewBox(svg,SOCIAL_SHARE_LINK_VIEWBOX_INSET);}export function zoomStandard24ViewBox(svg,inset=2){if(!svg||inset<=0)return svg;const inner=24-2*inset;if(inner<=0)return svg;return svg.replace(/\\bviewBox=([\"'])\\s*0\\s+0\\s+24\\s+24\\s*\\1/i,`viewBox=$1${inset} ${inset} ${inner} ${inner}$1`);}// ─── Icon bbox sizing (use with getIcon + processSVG) ───────────────────────\n//\n// Kept in this **small** module (not `icons.ts`) so Framer’s bundler does not\n// treat the large icon data file as a mixed chunk and omit `getIcon` exports\n// at runtime. No imports from `icons.ts` here — avoids circular dependencies\n// (`icons.ts` already imports `processSVG` from this file).\n/** Portion of the container edge used by the icon bbox (rest is symmetric padding). */export const ICON_FILL_RATIO_SQUARE=.8;/** Snap a pixel length to the design-system 4px grid (minimum 12px for icons). */export function snapIconSizeToGrid(px){return Math.max(12,Math.round(px/4)*4);}/** Rendered icon width/height for a square control of `sidePx` (e.g. 48 → 40 at ratio 0.8). */export function iconPixelSizeForSquareSide(sidePx){return snapIconSizeToGrid(sidePx*ICON_FILL_RATIO_SQUARE);}/** Padding on one side of the icon inside a square control: `(side − icon) / 2`. */export function squareIconPaddingOneSidePx(sidePx){return(sidePx-iconPixelSizeForSquareSide(sidePx))/2;}/** Same fill rule as square controls for circular badges (e.g. FeaturedIcon). */export function iconPixelSizeForDiscDiameter(diameterPx){return iconPixelSizeForSquareSide(diameterPx);}\nexport const __FramerMetadata__ = {\"exports\":{\"ICON_FILL_RATIO_SQUARE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"processSVG\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"zoomStandard24ViewBox\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"iconPixelSizeForDiscDiameter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"squareIconPaddingOneSidePx\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"alignSocialShareLinkIcon\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ZOOM_STANDARD_24_TAB_STRIP_INSET\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SOCIAL_SHARE_LINK_VIEWBOX_INSET\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"iconPixelSizeForSquareSide\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"snapIconSizeToGrid\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./svg.map","/**\n * Centralized SVG Icons.\n *\n * Icon data is generated from @assets/src/icons (icon-black-*.svg) and manual overrides.\n * SVG payloads are split across utils/iconSvgs/chunk_*.ts to stay under Framer's 1 MB file limit.\n * Run: npm run generate:icons (full library) or npm run generate:icons:curated (common subset).\n * For durable optical consistency, prefer normalizing glyphs to use most of the 24×24 artboard in source before regenerating.\n *\n * All icons use \"black\" (or \"white\") fill, replaced at runtime via processSVG.\n * Icons can be used with any color via getIcon(). Same icons are at static.bunq.com/website/icons/*.\n */import{processSVG}from\"https://framerusercontent.com/modules/keR2epPkn1MdvCLnDSBc/z4ga9Xl53MGZI0XlY2dd/svg.js\";import{getColorValue}from\"https://framerusercontent.com/modules/XmP6lddHGwwZ6IkaVx2s/MDeOeDYrTvuAQZdH6kDt/colors.js\";// __GENERATE_ICON_IMPORTS__\nimport{ICON_SVGS_CHUNK_0}from\"https://framerusercontent.com/modules/X9GiU6ge5LH6mzVKkdGt/ohlrcnJEPSv0xwu9YBuv/chunk_0.js\";import{ICON_SVGS_CHUNK_1}from\"https://framerusercontent.com/modules/ceKPmyMzzkm6oUPx6w9g/rU6pITFKaSnzGnC7NObd/chunk_1.js\";/**\n * Validate if a string is a valid CSS color value.\n *\n * @param color - Color string to validate\n * @returns True if color appears to be valid\n */function isValidColor(color){return/^(#[0-9a-fA-F]{3,8}|rgb|rgba|hsl|hsla|currentColor|inherit|transparent)/.test(color);}// __GENERATE_ICONS_DATA__\n/** Full icon library from @assets/src/icons (icon-black-*.svg) plus manual overrides. Do not edit by hand. */export const ICON_NAMES=[\"account\",\"activity\",\"activity-heart\",\"add-widget\",\"air\",\"airplane\",\"airplay\",\"airpods\",\"alarm-clock\",\"alarm-clock-check\",\"alarm-clock-minus\",\"alarm-clock-off\",\"alarm-clock-plus\",\"alert-circle\",\"alert-triangle\",\"align-bottom\",\"align-center\",\"align-horizontal-centre\",\"align-justify\",\"align-left\",\"align-left-1\",\"align-right\",\"align-right-1\",\"align-top\",\"align-vertical-center\",\"anchor\",\"announcement\",\"api\",\"apple\",\"apps\",\"archive\",\"arrow-block-down\",\"arrow-block-left\",\"arrow-block-right\",\"arrow-block-up\",\"arrow-circle-back\",\"arrow-circle-forward\",\"arrow-down\",\"arrow-down-left\",\"arrow-down-off\",\"arrow-down-right\",\"arrow-forward\",\"arrow-left\",\"arrow-narrow-down\",\"arrow-narrow-down-left\",\"arrow-narrow-down-right\",\"arrow-narrow-left\",\"arrow-narrow-right\",\"arrow-narrow-up\",\"arrow-narrow-up-left\",\"arrow-narrow-up-right\",\"arrow-right\",\"arrow-up\",\"arrow-up-left\",\"arrow-up-right\",\"arrows-back\",\"arrows-down\",\"arrows-left\",\"arrows-right\",\"arrows-triangle\",\"arrows-up\",\"asterisk\",\"at-sign\",\"atom\",\"attachment\",\"award\",\"award-medaillion\",\"award-winner\",\"backpack\",\"balance\",\"bank-account\",\"bank-accounts\",\"bank-note\",\"bar-chart\",\"bar-chart-down\",\"bar-chart-simple\",\"bar-chart-simple-down\",\"bar-chart-simple-up\",\"bar-chart-square-down\",\"bar-chart-square-minus\",\"bar-chart-square-plus\",\"bar-chart-square-up\",\"bar-chart-up\",\"bar-line-chart\",\"basket\",\"basketball\",\"battery-charging\",\"battery-empty\",\"battery-full\",\"beach\",\"beach-umbrella\",\"beaker\",\"bell\",\"bell-off\",\"bell-ringing\",\"bluetooth-connect\",\"bluetooth-off\",\"bluetooth-on\",\"bluetooth-signal\",\"book-closed\",\"book-open\",\"bookmark\",\"bookmark-add\",\"bookmark-check\",\"bookmark-minus\",\"bookmark-x\",\"box\",\"brackets\",\"brackets-check\",\"brackets-ellipses\",\"brackets-minus\",\"brackets-plus\",\"brackets-slash\",\"brackets-x\",\"briefcase\",\"briefcase-1\",\"browser\",\"brush\",\"bug\",\"building-apartment\",\"building-bank\",\"building-business\",\"building-business-02\",\"building-house\",\"bus\",\"calculator\",\"calendar\",\"calendar-check\",\"calendar-date\",\"calendar-heart\",\"calendar-minus\",\"calendar-off\",\"calendar-plus\",\"camera\",\"camera-lens\",\"camera-off\",\"camera-plus\",\"car\",\"card-wallet\",\"cards\",\"cash-multiple\",\"cash-register\",\"certificate\",\"chart-breakout-circle\",\"chat-back\",\"check\",\"check-circle\",\"check-heart\",\"check-square\",\"check-verified\",\"checklist\",\"chevron-down\",\"chevron-down-double\",\"chevron-selector-horizontal\",\"chevron-selector-vertical\",\"children\",\"circle\",\"circle-of-trust\",\"clipboard\",\"clipboard-attachment\",\"clipboard-check\",\"clipboard-download\",\"clipboard-minus\",\"clipboard-plus\",\"clipboard-x\",\"clock\",\"clock-check\",\"clock-fast-forward\",\"clock-off\",\"clock-plus\",\"clock-refresh\",\"clock-rewind\",\"clock-snooze\",\"clock-stopwatch\",\"cloud\",\"cloud-lightning\",\"cloud-moon\",\"cloud-off\",\"cloud-raining\",\"cloud-snowing\",\"cloud-sun\",\"clover\",\"code-browser\",\"code-closing\",\"code-opening\",\"codepen\",\"coins\",\"coins-hand\",\"coins-stacked\",\"coins-swap\",\"color-modes\",\"colors\",\"colors-1\",\"columns\",\"command\",\"compass\",\"compass-1\",\"connect\",\"connect-1\",\"connect-off\",\"container\",\"contrast\",\"cookie\",\"copy\",\"copy-file\",\"core\",\"corner-down-left\",\"corner-down-right\",\"corner-left-down\",\"corner-left-up\",\"corner-right-down\",\"corner-right-up\",\"corner-up-left\",\"corner-up-right\",\"couples\",\"cpu-chip\",\"credit-card\",\"credit-card-1\",\"criminal\",\"crop\",\"crosshair\",\"crown\",\"crypto\",\"cryptocurrency\",\"cube\",\"cube-outline\",\"currencies\",\"currency\",\"currency-bitcoin\",\"currency-dollar\",\"currency-ethereum\",\"currency-euro\",\"currency-pound\",\"currency-ruble\",\"currency-rupee\",\"currency-yen\",\"cursor\",\"cursor-box\",\"cursor-click\",\"cvc\",\"data\",\"database\",\"dataflow-01\",\"dataflow-02\",\"dataflow-03\",\"delete\",\"deposit-down\",\"deposit-down-02\",\"deposit-up\",\"desposit-up-02\",\"dials-small\",\"diamond\",\"dice\",\"digital nomad\",\"digital-map\",\"disc\",\"divide\",\"divider\",\"dot\",\"dot-points\",\"dots-grid\",\"dots-horizontal\",\"dots-vertical\",\"download\",\"download-cloud\",\"drop\",\"droplets\",\"dropper\",\"dual-pin\",\"edit\",\"elite\",\"email\",\"equal\",\"equal-not\",\"eraser\",\"euro-off\",\"exclamation\",\"expand\",\"expats\",\"eye\",\"eye-off\",\"face-content\",\"face-frown\",\"face-happy\",\"face-id\",\"face-neutral\",\"face-sad\",\"face-smile\",\"face-wink\",\"facebook\",\"families\",\"fast-backward\",\"fast-forward\",\"feather\",\"figma\",\"file-attachment\",\"file-check\",\"file-code\",\"file-data\",\"file-download\",\"file-heart\",\"file-lock\",\"file-minus\",\"file-off\",\"file-paper\",\"file-paper-data\",\"file-paper-text\",\"file-plus\",\"file-question\",\"file-search\",\"file-shield\",\"file-text\",\"file-x\",\"film\",\"filter-funnel\",\"filter-lines\",\"fingerprint\",\"fingerprint-id\",\"finn\",\"fire-one\",\"fire-three\",\"fire-two\",\"flag\",\"flash\",\"flash-off\",\"flask\",\"flexing-card\",\"flip-backward\",\"flip-forward\",\"folder\",\"folder-check\",\"folder-closed\",\"folder-code\",\"folder-download\",\"folder-lock\",\"folder-minus\",\"folder-plus\",\"folder-question\",\"folder-search\",\"folder-shield\",\"folder-x\",\"foot\",\"football\",\"fork-knife\",\"forward\",\"framer\",\"free\",\"gaming-pad-01\",\"gift\",\"git-branch\",\"git-commit\",\"git-merge\",\"git-pull-request\",\"glasses\",\"globe\",\"globe-slated\",\"google\",\"grid\",\"hand\",\"hard-drive\",\"hash\",\"headphones\",\"heart\",\"heart-hand\",\"heart-leaf\",\"heart-rounded\",\"help-circle\",\"hexagon\",\"hi-five\",\"history\",\"home\",\"home-energy\",\"horizon\",\"horizontal-bar-chart-simple\",\"horizontal-bar-chart-simple-down\",\"horizontal-bar-chart-simple-up\",\"hourglass\",\"hurricane\",\"ideal\",\"ideal-off\",\"image\",\"image-check\",\"image-down\",\"image-left\",\"image-plus\",\"image-right\",\"image-up\",\"image-user\",\"image-user-check\",\"image-user-down\",\"image-user-left\",\"image-user-plus\",\"image-user-right\",\"image-user-up\",\"image-user-x\",\"image-x\",\"inbox\",\"infinity\",\"info-circle\",\"information\",\"instagram\",\"integrations\",\"integrations-1\",\"intersect-circle\",\"ka-ching\",\"key\",\"keyboard\",\"keys\",\"laptop\",\"layer-single\",\"layers-three\",\"layers-two\",\"layout\",\"layout-grid\",\"levels\",\"life-buoy\",\"lightbulb\",\"lightning\",\"limit\",\"line-chart-down\",\"line-chart-down-square\",\"line-chart-square\",\"line-chart-up\",\"line-chart-up-square\",\"link\",\"link-broken\",\"link-external\",\"linkedin\",\"list\",\"loading\",\"local-iban\",\"lock\",\"lock-keyhole-circle\",\"lock-unlocked\",\"locked-account\",\"log-in\",\"log-out\",\"loyalty-card\",\"luggage\",\"luggage-1\",\"magic-wand\",\"mail-envelope\",\"mail-envelope-open\",\"mark\",\"marker-pin-destination\",\"marker-pin-global\",\"marker-pin-goal\",\"marker-pin-location\",\"marker-pin-stop\",\"martini-glass\",\"maximize\",\"medical-circle\",\"medical-cross\",\"menu-hamburger-open\",\"menu-x-close\",\"message-alert-square\",\"message-chat-square\",\"message-check-square\",\"message-dots-square\",\"message-heart-square\",\"message-notification-square\",\"message-plus-square\",\"message-question-square\",\"message-smile-square\",\"message-text-square\",\"message-x-square\",\"microphone\",\"microphone-off\",\"microscope\",\"minimize\",\"minus\",\"modem\",\"money-prize\",\"monitor\",\"monitor-speaker\",\"moon\",\"moon-star\",\"mouse\",\"move\",\"music-note\",\"music-note-plus\",\"navigation-pointer\",\"navigation-pointer-off\",\"notification-box\",\"notification-message\",\"notification-text\",\"number-five\",\"number-four\",\"number-one\",\"number-three\",\"number-two\",\"octagon\",\"outlook\",\"pack\",\"package\",\"package-check\",\"package-minus\",\"package-plus\",\"package-search\",\"package-x\",\"paint\",\"paint-brush\",\"palette\",\"paper-map\",\"paperclip\",\"passcode\",\"passcode-lock\",\"passport\",\"paste\",\"pause\",\"pause-circle\",\"paw\",\"payment-draft\",\"payment-sorter\",\"pen\",\"pen-02\",\"pencil\",\"pentagon\",\"perspective\",\"phishing\",\"phone\",\"phone-call\",\"phone-hang-up\",\"phone-incoming\",\"phone-outgoing\",\"phone-pause\",\"phone-plus\",\"phone-x\",\"pie-chart-budget\",\"pie-chart-group\",\"pie-chart-share\",\"pie-chart-split\",\"piggy-bank\",\"pin\",\"pin-code\",\"pin-empty\",\"pinterest\",\"plan-core\",\"plan-elite\",\"plan-free\",\"plan-pro\",\"play\",\"play-circle\",\"plug\",\"plus\",\"plus-one\",\"podcast\",\"pointer\",\"power\",\"power-circle\",\"presentation-chart\",\"printer\",\"pro\",\"process\",\"puzzle-piece\",\"qr-code\",\"question-mark\",\"receipt\",\"receipt-check\",\"record\",\"recording\",\"reddit\",\"reflect\",\"repeat\",\"reverse-left\",\"reverse-right\",\"rocket\",\"roller-brush\",\"route\",\"rows\",\"rss\",\"ruler\",\"safe\",\"sale\",\"save\",\"scale-down\",\"scale-up\",\"scales\",\"scan\",\"scissors\",\"search\",\"search-ios\",\"search-refraction\",\"security-code\",\"send\",\"server\",\"server-online\",\"settings\",\"share\",\"shield\",\"shield-hack\",\"shield-off\",\"shield-plus\",\"shield-tick\",\"shield-zap\",\"shirt\",\"shopping-bag\",\"shopping-cart\",\"shuffle\",\"signal\",\"simcard\",\"skew\",\"skip-back\",\"skip-forward\",\"slash-circle-stop\",\"slash-divider\",\"sliders\",\"smartphone\",\"snapchat\",\"snowflake\",\"sofa\",\"sos\",\"spacing-height\",\"spacing-width\",\"speaker\",\"speed\",\"speedometer\",\"sports\",\"sports-ball\",\"square\",\"stand\",\"star\",\"star-01\",\"star-05\",\"star-06\",\"star-07\",\"stars-01\",\"stars-02\",\"stars-03\",\"steering-wheel\",\"sticker\",\"stocks\",\"stop\",\"stop-circle\",\"students\",\"subscript\",\"suitcase\",\"sun\",\"sunrise\",\"sunset\",\"switch-horizontal\",\"switch-service\",\"switch-user\",\"switch-vertical\",\"table\",\"tablet\",\"tag\",\"tags\",\"target\",\"taxes\",\"telescope\",\"terminal\",\"terminal-browser\",\"text-input\",\"thermometer-03\",\"thermometer-cold\",\"thermometer-warm\",\"thumbs-down\",\"thumbs-down-1\",\"thumbs-up\",\"ticket\",\"tiktok\",\"time-clock\",\"time-limit\",\"toggle-off\",\"toggle-on\",\"tool\",\"train\",\"tram\",\"transform\",\"translate\",\"trash\",\"tree\",\"trend-down\",\"trend-up\",\"triangle\",\"trophy\",\"truck\",\"tumblr\",\"tv\",\"type\",\"type-crossed\",\"umbrella\",\"upload\",\"upload-cloud\",\"usb-flash-drive\",\"user\",\"user-deceased\",\"user-friends\",\"user-parents\",\"user-plus\",\"users\",\"users-three\",\"users-three-1\",\"users-two\",\"variable\",\"video-recorder\",\"video-recorder-off\",\"virtual-card\",\"virus\",\"voicemail\",\"volleyball\",\"volume-max\",\"volume-min\",\"volume-minus\",\"volume-plus\",\"volume-x\",\"wallet\",\"watch-circle\",\"watch-square\",\"waves\",\"weather\",\"webcam\",\"whatsapp\",\"wifi\",\"wifi-off\",\"wind\",\"world\",\"x\",\"x-circle\",\"youtube\",\"zap\",\"zap-fast\",\"zap-off\",\"zero-fx\",\"zoom-in\",\"zoom-out\"];const ICON_SVGS={...ICON_SVGS_CHUNK_0,...ICON_SVGS_CHUNK_1};// __END_ICON_DATA__\n/**\n * Get processed icon SVG string.\n *\n * **Optical inset (default `6`):** expands the SVG viewBox so the drawn glyph occupies\n * less of the rendered width/height — useful for aligning “full-bleed” paths with icons\n * that have built‑in padding. Many bunq icons only use ~12×12 of the 24×24 artboard; for\n * those, default inset shrinks the mark further. Prefer `{ opticalInset: 0 }` when the icon\n * should visually fill its CSS box (buttons, circular controls, dense rows).\n *\n * **Sizing with `opticalInset: 0`:** pick `size` so the SVG matches the slot — e.g.\n * `ButtonClose` uses the same icon px as **`Button`** icon-only (`20` / `24` / `24`).\n *\n * @param name - Icon name identifier\n * @param size - Target size for width/height. Accepts either a numeric pixel value\n *   or a token string (e.g. `Tokens.getSpacing(24)` → `\"24px\"`). If undefined, the\n *   icon's original dimensions are preserved.\n * @param color - CSS color value to replace black/white fills with (e.g., \"#000000\", \"currentColor\", \"rgb(0,0,0)\")\n * @param options - Optional processing options (`replaceStroke`, `opticalInset`; omit inset for default 6)\n * @returns Processed SVG string ready for use with dangerouslySetInnerHTML\n */export function getIcon(name,size,color,options){// Normalize `size` once so downstream template literals and `processSVG`\n// both receive a numeric value (the token system returns \"24px\" strings).\nconst sizeNum=typeof size===\"string\"?parseFloat(size):size;const sizeOrFallback=sizeNum&&!Number.isNaN(sizeNum)?sizeNum:24;// Validate color parameter.\nif(!color||typeof color!==\"string\"||color.trim()===\"\"){color=\"currentColor\";}else if(!isValidColor(color)){color=\"currentColor\";}const svgString=ICON_SVGS[name];if(!svgString){// Return a visible fallback.\nreturn`<svg width=\"${sizeOrFallback}\" height=\"${sizeOrFallback}\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"${color}\" stroke-width=\"2\" fill=\"none\"/><text x=\"12\" y=\"16\" text-anchor=\"middle\" font-size=\"12\" fill=\"${color}\">?</text></svg>`;}// Apply default optical inset so all 24×24 icons render with consistent visual size\n// (full-bleed and padded icons align). Callers can override via options.opticalInset (e.g. 0 to disable).\n// Why processing alone can fail to fix full-bleed icons: processSVG runs the viewBox replace on the\n// *sanitized* string (sanitizeSVG output). In the browser that is DOMParser + svg.outerHTML, which can\n// serialize attributes in a different order/format so the replace regex might not match. Icons that are\n// full-bleed in source (email, link) are therefore also given viewBox=\"-6 -6 36 36\" in ICON_SVGS so\n// they are correct regardless of runtime replace.\nconst mergedOptions={...options,opticalInset:options?.opticalInset??6};return processSVG(svgString,sizeNum,color,mergedOptions);}/**\n * Get raw icon SVG string without processing.\n * Useful when you need the base SVG for custom processing.\n *\n * @param name - Icon name identifier\n * @returns Raw SVG string, or empty string if icon not found\n */export function getIconRaw(name){const svgString=ICON_SVGS[name];if(!svgString){return\"\";}return svgString;}/** Icon options including \"none\" for controls that allow no icon. */export const ICON_OPTIONS_WITH_NONE=[...ICON_NAMES,\"none\"];/** Human-readable option titles for icon controls (e.g. \"check-circle\" → \"Check circle\"). */export const ICON_OPTION_TITLES={...Object.fromEntries(ICON_NAMES.map(name=>[name,name.split(\"-\").map(w=>w.charAt(0).toUpperCase()+w.slice(1)).join(\" \")])),none:\"None\"};/** Options for icon select: Custom at top, then all icon names. Use for unified icon picker with custom SVG fallback. */export const ICON_OPTIONS_WITH_CUSTOM=[\"custom\",...ICON_NAMES];/** Human-readable titles for icon select (Custom + icon names). */export const ICON_OPTION_TITLES_WITH_CUSTOM={custom:\"Custom\",...Object.fromEntries(ICON_NAMES.map(name=>[name,ICON_OPTION_TITLES[name]]))};/** Options: None, Custom, then all icon names. Use with iconSvg when value is \"custom\". */export const ICON_OPTIONS_WITH_NONE_AND_CUSTOM=[\"none\",\"custom\",...ICON_NAMES];/** Human-readable titles for icon select (None + Custom + icon names). */export const ICON_OPTION_TITLES_WITH_NONE_AND_CUSTOM={none:\"None\",custom:\"Custom\",...Object.fromEntries(ICON_NAMES.map(name=>[name,ICON_OPTION_TITLES[name]]))};/**\n * Full list of accent color names for icons and FeaturedIcon.\n * Aligned with design token paths (/Foregrounds/fg-{name}, /Utility colors/utility-{name}-*).\n */export const ICON_ACCENT_COLORS=[\"blue\",\"deep-blue\",\"light-blue\",\"green\",\"deep-green\",\"orange\",\"yellow\",\"deep-yellow\",\"red\",\"purple\",\"deep-purple\",\"fuchsia\",\"hot-pink\",\"indigo\",\"cyan\",\"turquoise\"];/** Human-readable option titles for icon accent color controls (e.g. \"deep-blue\" → \"Deep Blue\"). */export const ICON_ACCENT_OPTION_TITLES=Object.fromEntries(ICON_ACCENT_COLORS.map(c=>[c,c.split(\"-\").map(w=>w.charAt(0).toUpperCase()+w.slice(1)).join(\" \")]));/**\n * Get icon color value from design tokens based on a named color variant.\n * Maps named color variants to foreground token values.\n * Icons should use foreground colors, not text colors.\n *\n * @param colorName - Named color variant (e.g., \"orange\", \"blue\", \"green\", \"purple\").\n *   Falls back to fg-primary for unrecognized or undefined values.\n * @returns CSS color value string from design tokens.\n */export function getIconColor(colorName){if(!colorName||!ICON_ACCENT_COLORS.includes(colorName)){return getColorValue(\"/Foregrounds/fg-primary\");}return getColorValue(`/Foregrounds/fg-${colorName}`);}/**\n * Derives plan icon name from plan display name (e.g. \"bunq Free\" -> \"free\").\n * Returns undefined if the name does not match a known plan.\n */export function getPlanIconNameFromPlanName(planName){const n=planName.toLowerCase().replace(/\\s+/g,\" \");if(n.includes(\"free\"))return\"free\";if(n.includes(\"core\"))return\"core\";if(n.includes(\"pro\"))return\"pro\";if(n.includes(\"elite\"))return\"elite\";return undefined;}\nexport const __FramerMetadata__ = {\"exports\":{\"getIcon\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"IconName\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ICON_OPTIONS_WITH_CUSTOM\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PlanIconName\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ICON_OPTIONS_WITH_NONE_AND_CUSTOM\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ICON_OPTION_TITLES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ICON_OPTION_TITLES_WITH_NONE_AND_CUSTOM\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ICON_OPTIONS_WITH_NONE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ICON_NAMES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"IconNameOrNoneOrCustom\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ICON_ACCENT_COLORS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ICON_ACCENT_OPTION_TITLES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"IconAccentColor\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ICON_OPTION_TITLES_WITH_CUSTOM\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"IconProcessingOptions\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getIconRaw\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"IconNameOrCustom\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getIconColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getPlanIconNameFromPlanName\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * Color Effects — shared helpers for tinted-glass surface treatments.\n *\n * These helpers power liquid-glass surfaces used by Badge, Tab and\n * FeaturedIcon so they share a consistent finish with `<LiquidGlass />`.\n */import{getLiquidGlassBackdropBlurFilter,LIQUID_GLASS_SHARED}from\"https://framerusercontent.com/modules/B31emSmx1NLRWgwsBsT2/ABQDPSGSceq8CIo6a1B6/core.js\";import{DEFAULT_COLORED_GLASS_ACCENT,getLiquidGlassTintBackground,getLiquidGlassVariantChromeShadow,normalizeGlassVariant}from\"https://framerusercontent.com/modules/mehW3ipt7NwJNkWUjO0g/TatoE2nXREsJFApGHAt7/layoutStyles.js\";import{darken,formatRgba,parseRgba}from\"https://framerusercontent.com/modules/8c8KaKUdeszQqGCCT7Zw/cAYkeC6yz3m4yKfSKNf3/colorParsing.js\";export{darken,formatRgba,parseRgba};/**\n * Convert a hex/rgb CSS color to rgba with the given alpha.\n */export function withAlpha(cssColor,alpha){const parts=parseRgba(cssColor);if(!parts)return cssColor;return formatRgba({...parts,a:alpha});}/**\n * Wrap a flat color in a subtle top-darker → bottom-accent linear gradient.\n */export function toAccentGradient(cssColor){const parts=parseRgba(cssColor);if(!parts)return cssColor;const darker=darken(cssColor,.11);return`linear-gradient(180deg, ${darker} 0%, ${formatRgba(parts)} 100%)`;}/**\n * Alpha applied to accent/semantic fills before {@link toAccentGradient} when using\n * CSS-only liquid glass (Badge, Tab, FeaturedIcon, InfoBox). Lower = more see-through;\n * paired with shared frost blur (`LIQUID_GLASS_SHARED` in tokens/core.ts).\n */export const LIQUID_GLASS_FILL_ALPHA=.46;/**\n * CSS finishing layer for tinted glass (Badge / Tab / small surfaces) — mirrors\n * `<LiquidGlass />` fill + frost + inset chrome without the SVG displacement map.\n */export function getLiquidGlassFinish(options){const surface=options.surface??\"surface\";const selected=options.selected??false;const accent=options.accentColor??(options.variant===\"colored\"?DEFAULT_COLORED_GLASS_ACCENT:undefined);const backdrop=getLiquidGlassBackdropBlurFilter(LIQUID_GLASS_SHARED.frostBlurPx,LIQUID_GLASS_SHARED.saturation);const tintLayers=getLiquidGlassTintBackground(options.variant,surface,selected,accent);const resolvedVariant=normalizeGlassVariant(options.variant);const background=resolvedVariant===\"colored\"&&options.baseFill?`${tintLayers}, ${options.baseFill}`:tintLayers;return{backdropFilter:backdrop,WebkitBackdropFilter:backdrop,background,boxShadow:getLiquidGlassVariantChromeShadow(options.variant,surface,selected),border:surface===\"surface\"?\"none\":\"none\"};}/**\n * Back-compat helper: old `\"light\"` meant white sheen on dark UI (now\n * `\"default-regular\"` — the gray-tint family), `\"dark\"` meant reflection on\n * light UI (now `\"default-light\"` — the white-tint family). Fills are\n * unchanged.\n */export function liquidGlassLegacyHighlightToVariant(highlight){return highlight===\"light\"?\"default-regular\":\"default-light\";}\nexport const __FramerMetadata__ = {\"exports\":{\"formatRgba\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LIQUID_GLASS_FILL_ALPHA\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiquidGlassTone\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withAlpha\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parseRgba\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"liquidGlassLegacyHighlightToVariant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getLiquidGlassFinish\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"toAccentGradient\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"darken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RgbaParts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LiquidGlassFinishOptions\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * Shared animation timing constants for code-components.\n * Use design tokens (Tokens.getAnimationDuration, Tokens.getFramerTransition) where\n * a token exists (quick, standard, extended). Use these constants for component-\n * specific timings that have no token (e.g. hamburger menu, spinners).\n *//** Duration for instant / no-motion transitions (e.g. when prefers-reduced-motion). */export const NO_MOTION_DURATION=0;/** Navbar hamburger icon: delay before line move. */export const HAMBURGER_DELAY_LINE=.08;/** Navbar hamburger icon: delay before rotate. */export const HAMBURGER_DELAY_ROTATE=.24;/** Navbar hamburger icon: delay before center line fade-in. */export const HAMBURGER_DELAY_CENTER_FADE=.28;/** Navbar hamburger icon: duration for line translate. */export const HAMBURGER_DURATION_LINE=.18;/** Navbar hamburger icon: duration for center line opacity. */export const HAMBURGER_DURATION_OPACITY_OUT=.08;/** Spinner rotation: one full rotation duration (loading states). */export const SPINNER_DURATION=.8;/** Spinner rotation: longer variant (e.g. full-page loading). */export const SPINNER_DURATION_FULL=1;/**\n * `@keyframes` name for the Button loading spinner. Unique id avoids clashes\n * with other injected keyframe rules on the page.\n */export const BUTTON_SPIN_KEYFRAMES_NAME=\"ds-button-spinner-rotate\";/**\n * CSS rule defining {@link BUTTON_SPIN_KEYFRAMES_NAME}. Injected once per\n * loading Button when motion is allowed.\n */export const BUTTON_SPIN_KEYFRAMES_RULE=`@keyframes ${BUTTON_SPIN_KEYFRAMES_NAME} {\n  from {\n    transform: rotate(0deg);\n  }\n  to {\n    transform: rotate(360deg);\n  }\n}`;\nexport const __FramerMetadata__ = {\"exports\":{\"HAMBURGER_DELAY_ROTATE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SPINNER_DURATION\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SPINNER_DURATION_FULL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NO_MOTION_DURATION\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BUTTON_SPIN_KEYFRAMES_RULE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HAMBURGER_DELAY_LINE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BUTTON_SPIN_KEYFRAMES_NAME\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HAMBURGER_DELAY_CENTER_FADE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HAMBURGER_DURATION_LINE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HAMBURGER_DURATION_OPACITY_OUT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./animationConstants.map","/**\n * Button Style Utilities.\n *\n * Centralized functions for calculating button styles based on variant, theme, and state.\n * Extracted from Button component for reusability and maintainability.\n */import Tokens from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";import{getLiquidGlassVariantFill}from\"https://framerusercontent.com/modules/mehW3ipt7NwJNkWUjO0g/TatoE2nXREsJFApGHAt7/layoutStyles.js\";/**\n * Brand Rainbow Signature gradient stops per primary variant.\n * Mirrors the Lush/Cool/Warm presets in `BackgroundAnimatedGradient`\n * so a `primary-cool` button matches a `Cool` section background, etc.\n */const PRIMARY_GRADIENT_COLOR_PATHS={\"primary-lush\":[\"/Brand colors/rainbow-tree\",\"/Brand colors/rainbow-grass\",\"/Brand colors/rainbow-apple\",\"/Brand colors/rainbow-zest\"],\"primary-cool\":[\"/Brand colors/rainbow-brook\",\"/Brand colors/rainbow-pool\",\"/Brand colors/rainbow-tide\",\"/Brand colors/rainbow-dusk\"],\"primary-warm\":[\"/Brand colors/rainbow-mulberry\",\"/Brand colors/rainbow-flare\",\"/Brand colors/rainbow-tangerine\",\"/Brand colors/rainbow-amber\"]};const PRIMARY_GRADIENT_ACCENT_MIX=.35;function mixRgbColors(color,accentColor,accentMix=PRIMARY_GRADIENT_ACCENT_MIX){const colorMatch=color.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);const accentMatch=accentColor.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);if(!colorMatch||!accentMatch){return color;}const colorChannels=colorMatch.slice(1).map(Number);const accentChannels=accentMatch.slice(1).map(Number);const mixedChannels=colorChannels.map((channel,index)=>Math.round(channel*(1-accentMix)+accentChannels[index]*accentMix));return`rgb(${mixedChannels.join(\", \")})`;}/** Resolve the configured brand-rainbow stops into a static `linear-gradient(135deg, …)` CSS value. */function getPrimaryRainbowGradient(variant){const accentColor=getPrimaryGlassAccentColor(variant);const stops=PRIMARY_GRADIENT_COLOR_PATHS[variant].map(path=>mixRgbColors(Tokens.getColorValue(path),accentColor)).join(\", \");return`linear-gradient(135deg, ${stops})`;}/** Mid-spectrum brand stop per primary variant — drives colored-button glass tint. */export function getPrimaryGlassAccentColor(variant){const accentPath=variant===\"primary-warm\"?\"/Brand colors/rainbow-tangerine\":variant===\"primary-lush\"?\"/Brand colors/rainbow-grass\":\"/Brand colors/rainbow-pool\";return Tokens.getColorValue(accentPath);}/**\n * Stacks Figma “colored button glass” overlay on top of the Brand Rainbow Signature gradient.\n */export function getPrimaryRainbowGradientWithColoredGlass(variant){const base=getPrimaryRainbowGradient(variant);const glass=getLiquidGlassVariantFill(\"colored\",\"button\",getPrimaryGlassAccentColor(variant));return`${glass}, ${base}`;}/**\n * Liquid-glass stack for ghost buttons on default (dark) theme.\n * Uses the `\"dark\"` liquid-glass button fill — a subtle highlight over\n * `baseFill`. The `\"light\"` button fill stacks heavy white translucency and\n * was washing ghost CTAs to near-white while labels stay white, destroying contrast.\n */export function getGhostGlassButtonBackground(baseFill){const glass=getLiquidGlassVariantFill(\"dark\",\"button\",undefined);return`${glass}, ${baseFill}`;}/**\n * Calculate background color for button based on variant, theme, and disabled state.\n * Background color does not change on hover/pressed - brightness filter is used instead.\n *\n * @param variant - Button variant style\n * @param theme - Button theme (default or inverted)\n * @param isDisabled - Whether the button is disabled\n * @returns CSS background color value\n */export function getButtonBackgroundColor(variant,theme,isDisabled){if(isDisabled){return Tokens.getColorValue(\"/Backgrounds/bg-disabled\");}else{// Continue with variant-based color calculation.\n}switch(variant){case\"solid\":return theme===\"default\"?Tokens.getColorValue(\"/Backgrounds/bg-inverted-primary\"):Tokens.getColorValue(\"/Backgrounds/bg-primary\");case\"primary\":// Legacy \"primary\" keeps the bunq brand solid (blue) for back-compat.\nreturn Tokens.getColorValue(\"/Backgrounds/bg-brand-bunq-solid\");case\"primary-warm\":case\"primary-lush\":case\"primary-cool\":// Brand Rainbow Signature gradient stops, theme-independent.\nreturn getPrimaryRainbowGradient(variant);case\"ghost\":return theme===\"default\"?Tokens.getColorValue(\"/Backgrounds/bg-quaternary-glass\"):Tokens.getColorValue(\"/Backgrounds/bg-inverted-quaternary\");case\"outline\":case\"link\":return\"transparent\";default:return\"transparent\";}}/**\n * Calculate border style for button based on variant, theme, and disabled state.\n * Borders do not change on hover, pressed, or focus - only the outline (focus ring) appears on focus.\n *\n * @param variant - Button variant style\n * @param theme - Button theme (default or inverted)\n * @param isDisabled - Whether the button is disabled\n * @returns CSS border value\n */export function getButtonBorderStyle(variant,theme,isDisabled){if(isDisabled){return`1px solid ${Tokens.getColorValue(\"/Borders/border-disabled\")}`;}else{// Continue with variant-based border calculation.\n}switch(variant){case\"solid\":case\"primary\":case\"primary-warm\":case\"primary-lush\":case\"primary-cool\":// Match outline's 1px border so solid and outline share the same\n// border-box dimensions (height + padding) when paired in hero CTAs.\nreturn\"1px solid transparent\";case\"outline\":return theme===\"default\"?`1px solid ${Tokens.getColorValue(\"/Borders/border-inverted-primary\")}`:`1px solid ${Tokens.getColorValue(\"/Borders/border-primary\")}`;case\"ghost\":case\"link\":return\"none\";default:return\"none\";}}/**\n * Calculate text color for button based on variant, theme, and disabled state.\n *\n * @param variant - Button variant style\n * @param theme - Button theme (default or inverted)\n * @param isDisabled - Whether the button is disabled\n * @returns CSS color value\n */export function getButtonTextColor(variant,theme,isDisabled){if(isDisabled){return Tokens.getColorValue(\"/Text/text-disabled\");}else{// Continue with variant-based text color calculation.\n}switch(variant){case\"solid\":return theme===\"default\"?Tokens.getColorValue(\"/Text/text-inverted-primary\"):Tokens.getColorValue(\"/Text/text-primary\");case\"primary\":case\"primary-warm\":case\"primary-lush\":case\"primary-cool\":// Primary variant ignores theme - always uses text-primary (white)\nreturn Tokens.getColorValue(\"/Text/text-primary\");case\"outline\":return theme===\"default\"?Tokens.getColorValue(\"/Text/text-primary\"):Tokens.getColorValue(\"/Text/text-inverted-primary\");case\"ghost\":return theme===\"default\"?Tokens.getColorValue(\"/Text/text-primary\"):Tokens.getColorValue(\"/Text/text-inverted-primary\");case\"link\":return theme===\"default\"?Tokens.getColorValue(\"/Text/text-primary\"):Tokens.getColorValue(\"/Text/text-inverted-primary\");default:return Tokens.getColorValue(\"/Text/text-primary\");}}/**\n * Calculate icon color for button based on variant, theme, and disabled state.\n * Icons should use foreground tokens (not text tokens).\n *\n * @param variant - Button variant style\n * @param theme - Button theme (default or inverted)\n * @param isDisabled - Whether the button is disabled\n * @returns CSS color value\n */export function getButtonIconColor(variant,theme,isDisabled){if(isDisabled){return Tokens.getColorValue(\"/Foregrounds/fg-disabled\");}else{// Continue with variant-based icon color calculation.\n}switch(variant){case\"solid\":return theme===\"default\"?Tokens.getColorValue(\"/Foregrounds/fg-inverted-primary\"):Tokens.getColorValue(\"/Foregrounds/fg-primary\");case\"primary\":case\"primary-warm\":case\"primary-lush\":case\"primary-cool\":// Primary variant ignores theme - always uses fg-primary (white)\nreturn Tokens.getColorValue(\"/Foregrounds/fg-primary\");case\"outline\":return theme===\"default\"?Tokens.getColorValue(\"/Foregrounds/fg-primary\"):Tokens.getColorValue(\"/Foregrounds/fg-inverted-primary\");case\"ghost\":return theme===\"default\"?Tokens.getColorValue(\"/Foregrounds/fg-primary\"):Tokens.getColorValue(\"/Foregrounds/fg-inverted-primary\");case\"link\":return theme===\"default\"?Tokens.getColorValue(\"/Foregrounds/fg-primary\"):Tokens.getColorValue(\"/Foregrounds/fg-inverted-primary\");default:return Tokens.getColorValue(\"/Foregrounds/fg-primary\");}}\nexport const __FramerMetadata__ = {\"exports\":{\"getButtonBackgroundColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getButtonTextColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getPrimaryGlassAccentColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getButtonIconColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getGhostGlassButtonBackground\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ButtonTheme\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ButtonVariant\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getButtonBorderStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getPrimaryRainbowGradientWithColoredGlass\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * UseInteractiveStates - Hook for managing interactive component states.\n *\n * Provides state management and event handlers for hover, press, and focus states.\n * Respects disabled state to prevent interactions when component is disabled.\n *\n * The optional `options` argument turns on cohesive motion treatment that should\n * feel consistent across the design system (hover/focus filter and outline fade,\n * a subtle press scale). Both options are reduced-motion aware — when the user\n * has `prefers-reduced-motion: reduce` on, transitions resolve to `\"none\"` and\n * the press scale collapses to `scale(1)`.\n */import{useState,useCallback,useMemo}from\"react\";import Tokens,{useReducedMotion}from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";import{shouldShowFocusRing}from\"https://framerusercontent.com/modules/mehW3ipt7NwJNkWUjO0g/TatoE2nXREsJFApGHAt7/layoutStyles.js\";/**\n * Hook for managing interactive component states (hover, press, focus).\n *\n * @param disabled - Whether the component is disabled (prevents interactions)\n * @param options - Optional motion behaviour (transitions / press scale)\n */export function useInteractiveStates(disabled=false,options){const[isHovered,setIsHovered]=useState(false);const[isPressed,setIsPressed]=useState(false);const[isFocused,setIsFocused]=useState(false);const reducedMotion=useReducedMotion();const transitionsEnabled=options?.transitions===true;const pressScaleEnabled=options?.pressScale===true;const handleMouseEnter=useCallback(()=>{if(!disabled){setIsHovered(true);}},[disabled]);const handleMouseLeave=useCallback(()=>{setIsHovered(false);setIsPressed(false);},[]);const handleMouseDown=useCallback(()=>{if(!disabled){setIsPressed(true);}},[disabled]);const handleMouseUp=useCallback(()=>{setIsPressed(false);},[]);const handleFocus=useCallback(event=>{if(!disabled){setIsFocused(shouldShowFocusRing(event.currentTarget));}},[disabled]);const handleBlur=useCallback(()=>{setIsFocused(false);},[]);const isInteractive=useMemo(()=>!disabled,[disabled]);const brightnessFilter=useMemo(()=>Tokens.getBrightnessFilter(disabled,isHovered,isPressed),[disabled,isHovered,isPressed]);const cursorStyle=useMemo(()=>isInteractive?\"pointer\":\"not-allowed\",[isInteractive]);const focusOutline=useMemo(()=>{if(isFocused){const focusColor=Tokens.getColorValue(\"/Borders/border-brand-bunq\");return`${Tokens.getFocusOutlineWidth()} solid ${focusColor}`;}return\"none\";},[isFocused]);const focusOutlineOffset=Tokens.getSpacing(2);const transition=useMemo(()=>{if(!transitionsEnabled||reducedMotion)return\"\";return[Tokens.getTransition(\"filter\",\"quick\"),Tokens.getTransition(\"outline-color\",\"quick\"),Tokens.getTransition(\"outline-offset\",\"quick\"),Tokens.getTransition(\"transform\",\"quick\")].join(\", \");},[transitionsEnabled,reducedMotion]);const pressTransform=useMemo(()=>{if(!transitionsEnabled||reducedMotion)return\"scale(1)\";if(!pressScaleEnabled)return\"scale(1)\";return isPressed?\"scale(0.98)\":\"scale(1)\";},[transitionsEnabled,reducedMotion,pressScaleEnabled,isPressed]);const styles=useMemo(()=>{const base={filter:brightnessFilter,cursor:cursorStyle,outline:focusOutline,outlineOffset:focusOutlineOffset};if(!transitionsEnabled)return base;return{...base,...transition?{transition}:{},transform:pressTransform};},[brightnessFilter,cursorStyle,focusOutline,focusOutlineOffset,transitionsEnabled,transition,pressTransform]);return{isHovered,isPressed,isFocused,isInteractive,brightnessFilter,cursorStyle,focusOutline,focusOutlineOffset,styles,transition,pressTransform,handlers:{onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,onMouseDown:handleMouseDown,onMouseUp:handleMouseUp,onFocus:handleFocus,onBlur:handleBlur}};}\nexport const __FramerMetadata__ = {\"exports\":{\"UseInteractiveStatesReturn\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"UseInteractiveStatesOptions\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useInteractiveStates\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * Environment Utilities.\n *\n * Provides standardized environment detection utilities for development/production checks.\n * Handles browser and Node.js environments safely.\n *//**\n * Check if the code is running in development mode.\n *\n * Safely checks process.env.NODE_ENV in both browser and Node.js environments.\n * Returns true if NODE_ENV is not \"production\" (i.e., development, test, or undefined).\n *\n * @returns True if running in development mode, false otherwise.\n */export function isDevelopment(){if(typeof process===\"undefined\"){return false;}return process.env?.NODE_ENV!==\"production\";}/**\n * Check if the code is running in production mode.\n *\n * @returns True if running in production mode, false otherwise.\n */export function isProduction(){return!isDevelopment();}\nexport const __FramerMetadata__ = {\"exports\":{\"isProduction\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isDevelopment\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./env.map","/**\n * Button - Button component with multiple variants and states.\n *\n * Button component supporting solid, ghost, outline, link, legacy Primary (brand solid blue),\n * and primary-warm / primary-lush / primary-cool rainbow variants. The three rainbow variants\n * render Brand Rainbow Signature gradients (Warm, Lush, Cool) and ignore `theme`; legacy Primary\n * also ignores `theme` for label/icon colors per `buttonStyles.ts`.\n * Includes support for different sizes, states (default, disabled, loading),\n * and icon placement (leading, trailing, icon-only).\n *\n * Typography: size maps to `/Button XL` (large), `/Button LG` (medium), `/Button SM` (small).\n * Font sizes scale by breakpoint (desktop base; tablet interpolated; phone uses the small-screen preset).\n *\n * Size dimensions:\n *   Small  — 44 × 44px minimum touch target, 16px H padding, 8px V padding; icon-only glyph via {@link iconPixelSizeForSquareSide} (`svg.ts`)\n *   Medium — 48 × 48px (icon-only), 48px height (text), 24px H padding, 12px V padding\n *   Large  — 56 × 56px (icon-only), 56px height (text), 32px H padding, 16px V padding\n *\n * Icon-only padding = (height − iconSize) / 2, so content fits exactly inside border-box.\n */// 1. React and React types\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{forwardRef,useMemo,useEffect}from\"react\";// 2. Framer Motion (not applicable)\n// 3. Framer API\nimport{addPropertyControls,ControlType}from\"framer\";import{FRAMER_BREAKPOINT_DESCRIPTION}from\"https://framerusercontent.com/modules/TvAAtdjNtwUg3Y1lriXj/Wh3HNug8gnAeRVrciJOW/propertyControlCopy.js\";// 4. Design system\nimport{Tokens,getLiquidGlassBackdropBlurFilter,useReducedMotion,LIQUID_GLASS_SHARED}from\"https://framerusercontent.com/modules/HjvhO8Re4WnlZSTpJli8/jbCIdsxnmVrJOsDqxSxp/index.js\";import{SPINNER_DURATION_FULL,BUTTON_SPIN_KEYFRAMES_NAME,BUTTON_SPIN_KEYFRAMES_RULE}from\"https://framerusercontent.com/modules/4zU46N6zmk4kAwI6633E/rs5qQjj5gsXnmwMYotSf/animationConstants.js\";import{getButtonBackgroundColor,getButtonBorderStyle,getButtonTextColor,getButtonIconColor,getGhostGlassButtonBackground,getPrimaryRainbowGradientWithColoredGlass}from\"https://framerusercontent.com/modules/2zwpGmOdSSxYIu3BgaaO/xOLU66f31yrw6qn4Tzs9/buttonStyles.js\";import{getFocusOutlineStyle}from\"https://framerusercontent.com/modules/mehW3ipt7NwJNkWUjO0g/TatoE2nXREsJFApGHAt7/layoutStyles.js\";// 5. Local\nimport{useInteractiveStates}from\"https://framerusercontent.com/modules/U2JBkUXibY2YYWsHMAJo/3tlMH4hg7ehgZ4TLC0Va/useInteractiveStates.js\";import{isDevelopment}from\"https://framerusercontent.com/modules/47jGon7CMrRR2tkBLszZ/ixJNoJU1L47x43mPtcbC/env.js\";import{getLinkUrl,getNewTabAriaLabel,useSmartLinkProps}from\"https://framerusercontent.com/modules/kNZJPvkIJZGGj8KxF53M/EVxL25LJacDR3InTjCol/linkHelpers.js\";import{getIcon,getIconRaw,ICON_OPTIONS_WITH_CUSTOM,ICON_OPTION_TITLES_WITH_CUSTOM}from\"https://framerusercontent.com/modules/fJNdNvtkorPxGrDlmhln/LiwKJUReu5R3WX0AxbqC/icons.js\";import{iconPixelSizeForSquareSide,processSVG,squareIconPaddingOneSidePx}from\"https://framerusercontent.com/modules/keR2epPkn1MdvCLnDSBc/z4ga9Xl53MGZI0XlY2dd/svg.js\";import{PLACEHOLDER}from\"https://framerusercontent.com/modules/ZO8py5W6dWspTZ6N8FoQ/ik33zGZQhIFSuzy6bsA1/placeholders.js\";import{normalizeElementId}from\"https://framerusercontent.com/modules/V8DZ1j6fmzxP1pB8h5BJ/sPSFCEug6lYXxMvPVu5Z/resolveElementId.js\";const DEFAULT_CIRCLE_ICON_SVG=getIconRaw(\"circle\");const ButtonInternal=/*#__PURE__*/forwardRef(function ButtonInternal(props,ref){const{breakpoint=\"desktop\",variant=\"solid\",theme=\"default\",size=\"medium\",widthMode=\"responsive\",label=PLACEHOLDER.PRIMARY_BUTTON,leadingIconName=\"circle\",leadingIconSvg=DEFAULT_CIRCLE_ICON_SVG,trailingIconName=\"arrow-narrow-right\",trailingIconSvg=DEFAULT_CIRCLE_ICON_SVG,iconPosition=\"none\",disabled=false,loading=false,link,openInNewTab=false,onClick,ariaLabel,style,type=\"button\",id,...rest}=props;const elementId=normalizeElementId(id);const iconOnly=iconPosition===\"icon-only\";// Enforce that icon-only buttons get an explicit accessible name in\n// development. Without this, a missing `ariaLabel` ships silently\n// and AT users hear an unlabelled button. We intentionally don't\n// throw — Framer canvas / Storybook need to keep rendering — but a\n// loud `console.warn` on the dev build catches it during review.\nuseEffect(()=>{if(typeof window===\"undefined\"||!isDevelopment())return;if(!iconOnly)return;const labelText=typeof label===\"string\"?label.trim():\"\";const ariaText=typeof ariaLabel===\"string\"?ariaLabel.trim():\"\";if(!ariaText&&!labelText){console.warn(\"[Button] icon-only buttons must set `ariaLabel` (or pass a string `label` for the visually-hidden name) so screen readers announce something other than an unlabelled button.\");}},[iconOnly,ariaLabel,label]);const isDisabled=disabled;const isLoading=loading;const isInteractive=!isDisabled&&!isLoading;const reducedMotion=useReducedMotion();const typography=size===\"large\"?Tokens.getTypographyStyles(\"/Button XL\",breakpoint):size===\"medium\"?Tokens.getTypographyStyles(\"/Button LG\",breakpoint):Tokens.getTypographyStyles(\"/Button SM\",breakpoint);const{isHovered,isPressed,isFocused,brightnessFilter,cursorStyle,handlers}=useInteractiveStates(isDisabled||isLoading);const finalBrightnessFilter=isDisabled?Tokens.getBrightnessFilter(true,false,false):brightnessFilter;// Icon-only: shared fill ratio + symmetric padding (`utils/svg.ts`). With label: 20 / 24 px per size.\nconst iconOnlySidePx=size===\"large\"?56:size===\"medium\"?48:44;const buttonHeightPx=iconOnly?iconOnlySidePx:size===\"large\"?56:size===\"medium\"?48:44;const iconSize=iconOnly?iconPixelSizeForSquareSide(iconOnlySidePx):size===\"small\"?20:24;// Constants for padding logic (values must be in SPACING_SCALE)\nconst PADDING_TOP_LARGE=16;const PADDING_TOP_MEDIUM=12;const PADDING_TOP_SMALL=8;const PADDING_HORIZONTAL_LARGE=32;const PADDING_HORIZONTAL_MEDIUM=24;const PADDING_HORIZONTAL_SMALL=16;const GAP_LARGE=12;const GAP_MEDIUM=10;const GAP_SMALL=8;const showIconLeading=iconPosition===\"leading\"||iconOnly;const showIconTrailing=iconPosition===\"trailing\"&&!iconOnly;const showLoadingIcon=isLoading;const backgroundColor=getButtonBackgroundColor(variant,theme,isDisabled);const border=getButtonBorderStyle(variant,theme,isDisabled);const textColor=getButtonTextColor(variant,theme,isDisabled);const iconColor=getButtonIconColor(variant,theme,isDisabled);const linkUrl=getLinkUrl(link);const hasLink=Boolean(linkUrl&&linkUrl.trim()!==\"\");const handleClick=e=>{if(!isInteractive){e.preventDefault();e.stopPropagation();return;}onClick?.(e);// When rendered as submit button, do not preventDefault so the form's onSubmit runs.\nif(type===\"submit\"){return;}// When rendered as button (no link), consume the event so Framer does not\n// treat it as unhandled and show an error state in the canvas.\nif(!hasLink){e.preventDefault();e.stopPropagation();}};const smartLink=useSmartLinkProps(link,openInNewTab,{onClick:e=>handleClick(e)});const linkOpensNewTab=hasLink&&smartLink.target===\"_blank\";const trimmedAria=typeof ariaLabel===\"string\"?ariaLabel.trim():\"\";const trimmedLabel=typeof label===\"string\"?label.trim():\"\";const iconAccessibleName=trimmedAria||trimmedLabel||\"Button\";const resolvedAriaLabel=(()=>{if(!hasLink){if(iconOnly)return iconAccessibleName;if(trimmedAria!==\"\"&&trimmedAria!==trimmedLabel)return trimmedAria;return undefined;}if(linkOpensNewTab){const name=iconOnly?iconAccessibleName:trimmedLabel;if(name)return getNewTabAriaLabel(name);}if(iconOnly)return iconAccessibleName;if(trimmedAria!==\"\"&&trimmedAria!==trimmedLabel)return trimmedAria;return undefined;})();const buttonStyles=useMemo(()=>{const{background:styleBackground,...restStyle}=style??{};const getNumericSpacing=val=>parseFloat(Tokens.getResponsiveSpacing(val,breakpoint));const getPadding=()=>{if(iconOnly){const basePadding=squareIconPaddingOneSidePx(iconOnlySidePx);const basePaddingStr=Tokens.getResponsiveSpacing(basePadding,breakpoint);return`${basePaddingStr} ${basePaddingStr}`;}else{let top=PADDING_TOP_SMALL;let horizontal=PADDING_HORIZONTAL_SMALL;let gap=GAP_SMALL;if(size===\"large\"){top=PADDING_TOP_LARGE;horizontal=PADDING_HORIZONTAL_LARGE;gap=GAP_LARGE;}else if(size===\"medium\"){top=PADDING_TOP_MEDIUM;horizontal=PADDING_HORIZONTAL_MEDIUM;gap=GAP_MEDIUM;}const topStr=Tokens.getResponsiveSpacing(top,breakpoint);const horizontalStr=Tokens.getResponsiveSpacing(horizontal,breakpoint);if(!showIconLeading&&!showIconTrailing){return`${topStr} ${horizontalStr}`;}const horizontalVal=getNumericSpacing(horizontal);const gapVal=getNumericSpacing(gap);// Balanced padding\nif(showIconLeading&&showIconTrailing){return`${topStr} ${horizontalStr}`;}else if(showIconLeading){const right=horizontalVal+gapVal;return`${topStr} ${right}px ${topStr} ${horizontalStr}`;}else{// showIconTrailing\nconst left=horizontalVal+gapVal;return`${topStr} ${horizontalStr} ${topStr} ${left}px`;}}};const getGap=()=>{if(iconOnly)return\"0\";if(size===\"large\")return Tokens.getResponsiveSpacing(GAP_LARGE,breakpoint);if(size===\"medium\")return Tokens.getResponsiveSpacing(GAP_MEDIUM,breakpoint);return Tokens.getResponsiveSpacing(GAP_SMALL,breakpoint);};const padding=getPadding();const gap=getGap();const height=Tokens.getSpacing(buttonHeightPx);// Height per size: Small = 44px, Medium = 48px, Large = 56px.\n// Icon-only squares match the same dimension for consistent touch targets.\nconst dimension=iconOnly?size===\"large\"?56:size===\"medium\"?48:44:undefined;const widthFromMode=(()=>{if(iconOnly){return Tokens.getSpacing(dimension);}if(widthMode===\"full\"){return\"100%\";}if(widthMode===\"intrinsic\"){return\"auto\";}// responsive — match legacy default: full width on phone, intrinsic elsewhere\nreturn breakpoint===\"phone\"?\"100%\":\"auto\";})();const resolvedWidth=restStyle.width!==undefined?restStyle.width:widthFromMode;const isPrimaryRainbow=variant===\"primary-warm\"||variant===\"primary-lush\"||variant===\"primary-cool\";let resolvedBackground=backgroundColor;if(!isDisabled&&isPrimaryRainbow){resolvedBackground=getPrimaryRainbowGradientWithColoredGlass(variant);}else if(!isDisabled&&variant===\"ghost\"&&theme===\"default\"){resolvedBackground=getGhostGlassButtonBackground(backgroundColor);}const frostBackdrop=getLiquidGlassBackdropBlurFilter(LIQUID_GLASS_SHARED.frostBlurPx,LIQUID_GLASS_SHARED.saturation);// Primary rainbow and default-theme ghost both use the liquid-glass fill\n// stack; pair with the shared frost backdrop so the pill reads as real\n// glass (blur + saturate), aligned with `getLiquidGlassBackdropBlurFilter`.\nconst isGhostDefaultTheme=variant===\"ghost\"&&theme===\"default\";const needsFrostBackdropVariant=isPrimaryRainbow||isGhostDefaultTheme;const useFrostBackdrop=!isDisabled&&needsFrostBackdropVariant;return{...restStyle,width:resolvedWidth,height,minHeight:height,padding,borderRadius:Tokens.getRadius(\"radius-full\"),background:styleBackground??resolvedBackground,...useFrostBackdrop?{backdropFilter:frostBackdrop,WebkitBackdropFilter:frostBackdrop}:{},border,color:textColor,display:\"inline-flex\",flexShrink:0,position:\"relative\",zIndex:Tokens.getZIndex(\"raised\"),alignItems:\"center\",justifyContent:\"center\",gap,minWidth:iconOnly?Tokens.getSpacing(dimension):Tokens.getSpacing(44),overflow:\"hidden\",boxSizing:\"border-box\",cursor:cursorStyle,filter:finalBrightnessFilter,transition:variant===\"link\"?`${Tokens.getTransition(\"background\",\"quick\")}, ${Tokens.getTransition(\"text-decoration\",\"quick\")}, ${Tokens.getTransition(\"filter\",\"quick\")}`:`${Tokens.getTransition(\"background\",\"quick\")}, ${Tokens.getTransition(\"border\",\"quick\")}, ${Tokens.getTransition(\"filter\",\"quick\")}`,textDecoration:variant===\"link\"&&isHovered&&isInteractive?\"underline\":\"none\",textUnderlineOffset:variant===\"link\"?Tokens.getSpacing(2):\"0\",outline:isFocused?getFocusOutlineStyle():\"none\",outlineOffset:Tokens.getSpacing(2),userSelect:\"none\",whiteSpace:\"nowrap\",...typography,fontSize:restStyle.fontSize||typography?.fontSize};},[style,iconOnly,iconOnlySidePx,buttonHeightPx,size,variant,theme,isDisabled,isInteractive,isHovered,isFocused,breakpoint,widthMode,showIconLeading,showIconTrailing,cursorStyle,finalBrightnessFilter,typography,backgroundColor,border,textColor]);const processCustomIconSvg=rawSvg=>{const trimmed=rawSvg.trim();const sizeMatch=trimmed.match(/width=[\"'](\\d+)[\"']/);const alreadySized=sizeMatch!==null&&parseInt(sizeMatch[1],10)===iconSize;const hasHexColors=/fill=[\"']#[0-9a-fA-F]{3,8}[\"']/i.test(trimmed);return processSVG(trimmed,alreadySized?undefined:iconSize,hasHexColors?undefined:iconColor);};const getLeadingIconSVG=()=>{if(!showIconLeading)return null;if(showLoadingIcon)return getIcon(\"loading\",iconSize,iconColor,{opticalInset:0});if(leadingIconName===\"custom\"&&leadingIconSvg?.trim()?.includes(\"<svg\")){return processCustomIconSvg(leadingIconSvg);}return getIcon(leadingIconName,iconSize,iconColor,{opticalInset:0});};const getTrailingIconSVG=()=>{if(!showIconTrailing)return null;if(showLoadingIcon)return getIcon(\"loading\",iconSize,iconColor,{opticalInset:0});if(trailingIconName===\"custom\"&&trailingIconSvg?.trim()?.includes(\"<svg\")){return processCustomIconSvg(trailingIconSvg);}return getIcon(trailingIconName,iconSize,iconColor,{opticalInset:0});};const renderIcon=svgContent=>{if(!svgContent)return null;const style={display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",width:`${iconSize}px`,height:`${iconSize}px`,flexShrink:0};if(isLoading&&svgContent.includes(\"loading\")){const spinStyle=reducedMotion?style:{...style,animation:`${BUTTON_SPIN_KEYFRAMES_NAME} ${SPINNER_DURATION_FULL}s linear infinite`};return /*#__PURE__*/_jsx(\"span\",{style:spinStyle,dangerouslySetInnerHTML:{__html:svgContent},\"aria-hidden\":true});}return /*#__PURE__*/_jsx(\"span\",{dangerouslySetInnerHTML:{__html:svgContent},\"aria-hidden\":true,style:style});};const content=/*#__PURE__*/_jsxs(_Fragment,{children:[renderIcon(getLeadingIconSVG()),!iconOnly&&label&&/*#__PURE__*/_jsx(\"span\",{style:{minWidth:0,overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"},children:label}),renderIcon(getTrailingIconSVG())]});const scale=isPressed?.98:1;const transformTransition=reducedMotion?\"none\":Tokens.getTransition(\"transform\",\"quick\");const interactiveStyle={...buttonStyles,transform:`scale(${scale})`,transition:variant===\"link\"?`${Tokens.getTransition(\"background\",\"quick\")}, ${Tokens.getTransition(\"text-decoration\",\"quick\")}, ${Tokens.getTransition(\"filter\",\"quick\")}, ${transformTransition}`:`${Tokens.getTransition(\"background\",\"quick\")}, ${Tokens.getTransition(\"border\",\"quick\")}, ${Tokens.getTransition(\"filter\",\"quick\")}, ${transformTransition}`};const mergedStyle=interactiveStyle;const commonProps={\"style\":mergedStyle,\"onMouseEnter\":handlers.onMouseEnter,\"onMouseLeave\":handlers.onMouseLeave,\"onMouseDown\":handlers.onMouseDown,\"onMouseUp\":handlers.onMouseUp,\"onFocus\":handlers.onFocus,\"onBlur\":handlers.onBlur,\"tabIndex\":isInteractive?0:-1,\"aria-disabled\":isDisabled||isLoading,\"aria-busy\":isLoading,\"aria-label\":resolvedAriaLabel,...elementId?{id:elementId}:{},...rest};const interactiveElement=hasLink?/*#__PURE__*/_jsx(\"a\",{ref:ref,href:isInteractive?smartLink.href:undefined,target:smartLink.target,rel:smartLink.rel,...commonProps,// Spread smartLink.style FIRST and let the button's computed\n// styles win. smartLink.style sets `color: \"inherit\"`, which\n// would otherwise clobber the variant/theme-aware textColor\n// (e.g. ghost+default needs white text, but `inherit` falls\n// back to the UA default black on sections that don't set\n// an ambient `color`).\nstyle:{...smartLink.style,...commonProps.style},onClick:smartLink.onClick,children:content}):/*#__PURE__*/_jsx(\"button\",{ref:ref,type:type,disabled:isDisabled||isLoading,...commonProps,onClick:handleClick,children:content});return /*#__PURE__*/_jsxs(_Fragment,{children:[isLoading&&!reducedMotion&&/*#__PURE__*/_jsx(\"style\",{children:BUTTON_SPIN_KEYFRAMES_RULE}),interactiveElement]});});ButtonInternal.displayName=\"ButtonInternal - Atom\";/**\n * Button - Wrapper component for Framer compatibility.\n *\n * Exported as a plain named function so Framer's code-link parser recognizes\n * it as a valid code component (a `forwardRef` default export is opaque to\n * Framer's static analysis and prevents the component from being registered\n * on the canvas).\n *\n * Refs from consumers (focus management, measurement, Floating UI anchors,\n * the `Button*` wrappers in atoms/molecules) are still forwarded to the\n * underlying `<button>` / `<a>` because `ButtonInternal` is itself a\n * `forwardRef` — we just pass `props.ref` straight through.\n *\n * @framerIntrinsicWidth 140\n * @framerIntrinsicHeight 48\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function Button(props){const{ref,...rest}=props;return /*#__PURE__*/_jsx(ButtonInternal,{...rest,ref:ref});}Button.displayName=\"Button - Atom\";addPropertyControls(Button,{// ─── 1. Content ────────────────────────────────────────────────────────────\nlabel:{type:ControlType.String,title:\"Button Label\",defaultValue:\"Get started\",placeholder:\"e.g. Get started, Learn more\",description:\"Visible text on the button. When Icon Position is Only, use this as the accessible name too (often the same words you would put on an icon-only control, e.g. Close).\"},// ─── 2. Links ────────────────────────────────────────────────────────────\nlink:{type:ControlType.Link,title:\"Link\",defaultValue:\"\",description:\"Add a destination to render an `<a>`; leave empty to keep a `<button>` for forms and custom interactions.\"},openInNewTab:{type:ControlType.Boolean,title:\"Open in New Tab\",defaultValue:false,enabledTitle:\"New Tab\",disabledTitle:\"Same Tab\",description:\"Turn on when Link is set so the destination opens in a new browser tab.\",hidden:props=>!getLinkUrl(props?.link)},// ─── 4. Icons ──────────────────────────────────────────────────────────────\niconPosition:{type:ControlType.Enum,title:\"Icon Position\",options:[\"none\",\"leading\",\"trailing\",\"icon-only\"],optionTitles:[\"None\",\"Leading\",\"Trailing\",\"Only\"],defaultValue:\"none\",description:\"Choose None for text-only, Leading or Trailing for icons beside the label, or Only for icon-only buttons (set Label to the action name).\"},leadingIconName:{type:ControlType.Enum,title:\"Leading Icon\",options:[...ICON_OPTIONS_WITH_CUSTOM],optionTitles:ICON_OPTIONS_WITH_CUSTOM.map(k=>ICON_OPTION_TITLES_WITH_CUSTOM[k]),displaySegmentedControl:false,defaultValue:\"circle\",description:\"Select a library icon, or Custom to paste SVG in Leading Icon SVG below.\",hidden:props=>props?.iconPosition!==\"leading\"&&props?.iconPosition!==\"icon-only\"},leadingIconSvg:{type:ControlType.String,title:\"Leading Icon SVG\",defaultValue:\"\",placeholder:\"<svg>...</svg>\",description:\"Paste your SVG markup when Leading Icon is Custom - it replaces the built-in glyph.\",hidden:props=>{const isLeadingOrIconOnly=props?.iconPosition===\"leading\"||props?.iconPosition===\"icon-only\";const showLeadingIconSvg=isLeadingOrIconOnly&&props?.leadingIconName===\"custom\";return!showLeadingIconSvg;}},trailingIconName:{type:ControlType.Enum,title:\"Trailing Icon\",options:[...ICON_OPTIONS_WITH_CUSTOM],optionTitles:ICON_OPTIONS_WITH_CUSTOM.map(k=>ICON_OPTION_TITLES_WITH_CUSTOM[k]),displaySegmentedControl:false,defaultValue:\"arrow-narrow-right\",description:\"Select a library icon, or Custom to paste SVG in Trailing Icon SVG below.\",hidden:props=>props?.iconPosition!==\"trailing\"},trailingIconSvg:{type:ControlType.String,title:\"Trailing Icon SVG\",defaultValue:\"\",placeholder:\"<svg>...</svg>\",description:\"Paste your SVG markup when Trailing Icon is Custom - it replaces the built-in glyph.\",hidden:props=>props?.iconPosition!==\"trailing\"||props?.trailingIconName!==\"custom\"},// ─── 6. Configuration ──────────────────────────────────────────────────────\nvariant:{type:ControlType.Enum,title:\"Variant\",options:[\"solid\",\"primary\",\"outline\",\"ghost\",\"link\",\"primary-warm\",\"primary-lush\",\"primary-cool\"],optionTitles:[\"Solid\",\"Primary Brand\",\"Outline\",\"Ghost\",\"Link\",\"Primary Warm\",\"Primary Lush\",\"Primary Cool\"],defaultValue:\"solid\",description:\"Solid, Outline, Ghost, Link for standard treatments; Primary Brand is the legacy solid bunq blue; Primary Warm/Lush/Cool use rainbow gradients — Primary and rainbow variants ignore Theme.\"},size:{type:ControlType.Enum,title:\"Size\",options:[\"large\",\"medium\",\"small\"],optionTitles:[\"Large\",\"Medium\",\"Small\"],displaySegmentedControl:true,defaultValue:\"medium\",description:\"Use Large for primary hero CTAs, Medium for most UI, Small for dense rows or secondary actions.\"},widthMode:{type:ControlType.Enum,title:\"Width Mode\",options:[\"responsive\",\"full\",\"intrinsic\"],optionTitles:[\"Responsive\",\"Full\",\"Intrinsic\"],defaultValue:\"responsive\",displaySegmentedControl:true,description:\"Controls horizontal sizing relative to the layout breakpoint.\"},// ─── 7. Behavior ─────────────────────────────────────────────────────────\nonClick:{type:ControlType.EventHandler,title:\"On Click\",description:\"Wire this to run custom logic when someone activates the control - fires for both button and link rendering.\"},// ─── 8. Accessibility ────────────────────────────────────────────────────\nariaLabel:{type:ControlType.String,title:\"ARIA Label\",defaultValue:\"\",placeholder:\"e.g. Get started\",description:\"Optional accessible name override. Leave empty so screen readers use the visible Label; set only for icon-only buttons or when the spoken name should differ from visible text.\"},// ─── 9. Advanced ─────────────────────────────────────────────────────────\nid:{type:ControlType.String,title:\"ID\",defaultValue:\"\",placeholder:\"e.g. my-element\",description:\"Set a unique id when you anchor to this control or tag it for analytics (e.g. Contentsquare). Leave empty to omit the id attribute.\"},// ─── 10. System ────────────────────────────────────────────────────────────\nbreakpoint:{type:ControlType.Enum,title:\"Breakpoint\",options:[\"desktop\",\"tablet\",\"phone\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\"],displaySegmentedControl:false,defaultValue:\"desktop\",description:FRAMER_BREAKPOINT_DESCRIPTION},theme:{type:ControlType.Enum,title:\"Theme\",options:[\"default\",\"inverted\"],optionTitles:[\"Default\",\"Inverted\"],displaySegmentedControl:true,defaultValue:\"default\",description:\"Default matches dark sections (our default). Inverted is for light backgrounds.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"ButtonVariant\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"Button\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"48\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"140\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"ButtonProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}