{"version":3,"file":"GlobalCSS.B5pNRZHT.mjs","names":[],"sources":["https:/framerusercontent.com/modules/bsTEACUXnJCTnKxmD0Bp/eLrjhhPs3xd0NTgHTlHZ/GlobalCSS.js"],"sourcesContent":["// Global CSS injection for gallery/light theme\n// Overrides text color from white (dark theme default) to dark\n// Also fixes wrong thumbnail images on homepage tiles 4-6\n// Music page: the solid \"BookingButton\" layer keeps light text on its dark background.\n//\n// 2026-10 (apple-design audit):\n// - CTA pills (\"see them all\", \"Let's connect\"): text was black on black → cream text,\n//   instant press feedback, hover inversion (same pattern as BookingButton).\n// - Header: translucent material (blur) so content scrolling under it stays legible;\n//   nav visible immediately instead of waiting for the intro.\n// - Gallery tiles: paintings render at full opacity right away (no 1s grey fade on scroll).\n// - Respects prefers-reduced-transparency / prefers-contrast / prefers-reduced-motion.\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect}from\"react\";const imageMap={\"Running from wonderland\":\"https://framerusercontent.com/images/x05bTKWvLe9lmsaXJ60GBYOox4.jpg\",Siblings:\"https://framerusercontent.com/images/jr7IigI5Rc8wvyLBDylxN3tHOk.jpg\",\"You f**ked up. Story of my life\":\"https://framerusercontent.com/images/sH2dvLjJ9KdINwNFn6XcwiEz2Z0.jpg\"};const WRONG_IMAGE=\"4lYpKB46sdM5HOrJZDIaevqwAM\";function fixOneImg(img){if(!img.src||!img.src.includes(WRONG_IMAGE))return;const wrapper=img.closest('[data-framer-name=\"Image wrapper\"]');if(!wrapper)return;const full=wrapper.closest('[data-framer-name=\"Full\"]');if(!full)return;const titleEl=full.querySelector(\"h6\");const title=titleEl?.textContent?.trim()??\"\";const correctUrl=imageMap[title];if(correctUrl){img.src=correctUrl;img.removeAttribute(\"srcset\");}}function fixAllImages(){document.querySelectorAll('[data-framer-name=\"Image wrapper\"] img').forEach(fixOneImg);}export default function GlobalCSS(){useEffect(()=>{// Fix on mount (covers SSR-hydrated images)\nfixAllImages();// Also run after short delays for lazy-loaded images\nconst t1=setTimeout(fixAllImages,400);const t2=setTimeout(fixAllImages,1200);// MutationObserver keeps fixing if Framer re-renders / lazy-loads\nconst observer=new MutationObserver(mutations=>{for(const m of mutations){if(m.type===\"attributes\"&&m.target instanceof HTMLImageElement){fixOneImg(m.target);}else if(m.type===\"childList\"){m.addedNodes.forEach(node=>{if(node instanceof HTMLImageElement){fixOneImg(node);}else if(node instanceof HTMLElement){node.querySelectorAll('[data-framer-name=\"Image wrapper\"] img').forEach(fixOneImg);}});}}});observer.observe(document.body,{childList:true,subtree:true,attributes:true,attributeFilter:[\"src\"]});return()=>{clearTimeout(t1);clearTimeout(t2);observer.disconnect();};},[]);return /*#__PURE__*/_jsx(\"style\",{children:`\n            .framer-text {\n                color: rgb(15, 14, 14) !important;\n            }\n            .framer-text a,\n            .framer-text span {\n                color: inherit !important;\n            }\n\n            /* ---------- BookingButton (music page) ---------- */\n            [data-framer-name=\"BookingButton\"] {\n                transition: background-color 160ms ease;\n            }\n            [data-framer-name=\"BookingButton\"] .framer-text,\n            [data-framer-name=\"BookingButton\"] .framer-text * {\n                color: rgb(246, 244, 239) !important;\n                transition: color 160ms ease;\n            }\n            [data-framer-name=\"BookingButton\"]:hover,\n            [data-framer-name=\"BookingButton\"]:focus-visible {\n                background-color: rgb(246, 244, 239) !important;\n            }\n            [data-framer-name=\"BookingButton\"]:hover .framer-text,\n            [data-framer-name=\"BookingButton\"]:hover .framer-text *,\n            [data-framer-name=\"BookingButton\"]:focus-visible .framer-text,\n            [data-framer-name=\"BookingButton\"]:focus-visible .framer-text * {\n                color: rgb(15, 14, 14) !important;\n            }\n\n            /* ---------- CTA pills: \"see them all\", \"Let's connect\" ----------\n               Component \"CTA\" (class framer-4oBCE, root layer \"Main\").\n               Black pill → cream text. Feedback on press, not on release. */\n            a.framer-4oBCE,\n            [data-framer-name=\"Cta wrapper\"] a {\n                transition: transform 100ms ease-out,\n                            background-color 160ms ease,\n                            border-color 160ms ease;\n                will-change: transform;\n            }\n            a.framer-4oBCE .framer-text,\n            a.framer-4oBCE .framer-text *,\n            [data-framer-name=\"Cta wrapper\"] a .framer-text,\n            [data-framer-name=\"Cta wrapper\"] a .framer-text * {\n                color: rgb(246, 244, 239) !important;\n                transition: color 160ms ease;\n            }\n            a.framer-4oBCE:hover,\n            a.framer-4oBCE:focus-visible,\n            [data-framer-name=\"Cta wrapper\"] a:hover,\n            [data-framer-name=\"Cta wrapper\"] a:focus-visible {\n                background-color: rgb(246, 244, 239) !important;\n                border-color: rgb(15, 14, 14) !important;\n            }\n            a.framer-4oBCE:hover .framer-text,\n            a.framer-4oBCE:hover .framer-text *,\n            a.framer-4oBCE:focus-visible .framer-text,\n            a.framer-4oBCE:focus-visible .framer-text *,\n            [data-framer-name=\"Cta wrapper\"] a:hover .framer-text,\n            [data-framer-name=\"Cta wrapper\"] a:hover .framer-text * {\n                color: rgb(15, 14, 14) !important;\n            }\n            a.framer-4oBCE:active,\n            [data-framer-name=\"Cta wrapper\"] a:active {\n                transform: scale(0.97);\n            }\n\n            /* ---------- Header: translucent material, no gating ----------\n               Content scrolls under a blurred layer instead of colliding with nav text. */\n            header[data-framer-name] {\n                background-color: rgba(246, 244, 239, 0.72) !important;\n                -webkit-backdrop-filter: blur(20px) saturate(180%);\n                backdrop-filter: blur(20px) saturate(180%);\n            }\n            /* Nav is usable from the first frame; the hero logo intro still plays. */\n            header[data-framer-name] [data-framer-name=\"Inner Wrapper\"] {\n                opacity: 1 !important;\n                top: 0 !important;\n                transform: none !important;\n            }\n            /* Nav links: feedback on press */\n            header[data-framer-name] a {\n                transition: opacity 120ms ease-out;\n            }\n            header[data-framer-name] a:hover { opacity: 0.6; }\n            header[data-framer-name] a:active { opacity: 0.4; }\n\n            /* ---------- Gallery tiles: paintings visible immediately ----------\n               Component \"Home/Project\" (root layer \"Full\"). The appear effect faded the\n               tile, image + info from 0 and slid them up over ~1s. The work is the product:\n               no fade, no slide. Hover zoom (scale on the image container) is untouched. */\n            [data-framer-name=\"Project tile\"],\n            [data-framer-name=\"Project tile\"] *,\n            a[data-framer-name=\"Full\"],\n            a[data-framer-name=\"Full\"] * {\n                opacity: 1 !important;\n            }\n            a[data-framer-name=\"Full\"],\n            a[data-framer-name=\"Full\"] [data-framer-name=\"Info\"] div {\n                transform: none !important;\n            }\n\n            /* ---------- Accessibility signals ---------- */\n            @media (prefers-reduced-transparency: reduce) {\n                header[data-framer-name] {\n                    background-color: rgb(246, 244, 239) !important;\n                    -webkit-backdrop-filter: none;\n                    backdrop-filter: none;\n                }\n            }\n            @media (prefers-contrast: more) {\n                header[data-framer-name] {\n                    background-color: rgb(246, 244, 239) !important;\n                    -webkit-backdrop-filter: none;\n                    backdrop-filter: none;\n                    border-bottom: 1px solid rgb(15, 14, 14);\n                }\n            }\n            @media (prefers-reduced-motion: reduce) {\n                a.framer-4oBCE,\n                [data-framer-name=\"Cta wrapper\"] a,\n                header[data-framer-name] a {\n                    transition: none;\n                }\n                a.framer-4oBCE:active,\n                [data-framer-name=\"Cta wrapper\"] a:active {\n                    transform: none;\n                }\n            }\n        `});}export const globalCSSDefaultProps={};\nexport const __FramerMetadata__ = {\"exports\":{\"globalCSSDefaultProps\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"GlobalCSS\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GlobalCSS.map"],"mappings":"kHAYga,SAAS,EAAU,EAAI,CAAC,GAAG,CAAC,EAAI,KAAK,CAAC,EAAI,IAAI,SAAS,CAAW,EAAE,OAAO,IAAM,EAAQ,EAAI,QAAQ,oCAAoC,EAAE,GAAG,CAAC,EAAQ,OAAO,IAAM,EAAK,EAAQ,QAAQ,2BAA2B,EAAE,GAAG,CAAC,EAAK,OAA8C,IAAM,EAA/B,EAAK,cAAc,IAAwB,CAAC,EAAE,aAAa,KAAK,GAAG,GAAS,EAAW,EAAS,GAAU,IAAY,EAAI,IAAI,EAAW,EAAI,gBAAgB,QAAQ,EAAG,CAAC,SAAS,GAAc,CAAC,SAAS,iBAAiB,wCAAwC,CAAC,CAAC,QAAQ,CAAS,CAAE,CAAC,SAAwB,GAAW,CAG/Y,OAHgZ,MAAc,CAC/9B,EAAa,EACb,IAAM,EAAG,WAAW,EAAa,GAAG,EAAQ,EAAG,WAAW,EAAa,IAAI,EACrE,EAAS,IAAI,iBAAiB,GAAW,CAAC,IAAI,IAAM,KAAK,EAAc,EAAE,OAAO,cAAc,EAAE,kBAAkB,iBAAkB,EAAU,EAAE,MAAM,EAAW,EAAE,OAAO,aAAa,EAAE,WAAW,QAAQ,GAAM,CAAI,aAAgB,iBAAkB,EAAU,CAAI,EAAW,aAAgB,aAAa,EAAK,iBAAiB,wCAAwC,CAAC,CAAC,QAAQ,CAAS,CAAG,CAAC,CAAI,CAAC,EAAwG,OAAtG,EAAS,QAAQ,SAAS,KAAK,CAAC,UAAU,GAAK,QAAQ,GAAK,WAAW,GAAK,gBAAgB,CAAC,KAAK,CAAC,CAAC,MAAY,CAAC,aAAa,CAAE,EAAE,aAAa,CAAE,EAAE,EAAS,WAAW,CAAE,CAAE,EAAE,CAAC,CAAC,EAAsB,EAAK,QAAQ,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAgInmB,CAAC,CAAE,qBAnI8B,IAA6B,EAAO,EAAS,CAAC,0BAA0B,sEAAsE,SAAS,sEAAsE,kCAAkC,sEAAsE,EAAQ,EAAY"}