{"version":3,"file":"script_main.BbWia5eF.mjs","names":["serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","React.forwardRef","React.useRef","React.useId","Image","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","animation","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","createLayoutDependency","React.forwardRef","useRef","React.useId","sharedStyle.className","RichText","sharedStyle.css","sharedStyle.fonts","fonts","css","className","fonts","css","className","Feather","serializationHash","variantClassNames","React.useContext","React.useMemo","humanReadableVariantMap","React.Fragment","getProps","React.forwardRef","useRef","React.useId","sharedStyle.className","sharedStyle1.className","RichText","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","FramerNS.useRouter","React.useLayoutEffect","React.useEffect","useRef","useState","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","css","LogoFonts","Logo","MenuAdaptedFonts","MenuAdapted","RidgelineBandFonts","SeattleClockFonts","breakpoints","serializationHash","variantClassNames","matchVariant","addImageAlt","breakpointRules","breakpointKeys","selectors","rules","sharedStyle.css","sharedStyle1.css","sharedStyle2.css","sharedStyle3.css","sharedStyle4.css","sharedStyle5.css","sharedStyle6.css","mediaQueries","humanReadableVariantMap","HTMLStyle","getProps","Component","useRef","React.useId","sharedStyle.className","sharedStyle1.className","sharedStyle2.className","sharedStyle3.className","sharedStyle4.className","sharedStyle5.className","sharedStyle6.className","className","PropertyOverrides","RichText","React.Fragment","css","sharedStyle.fonts","sharedStyle1.fonts","sharedStyle2.fonts","sharedStyle3.fonts","sharedStyle4.fonts","sharedStyle5.fonts","sharedStyle6.fonts","MenuBar","Logo","MenuAdapted","sharedStyle.css","sharedStyle1.css","sharedStyle2.css","sharedStyle3.css","sharedStyle4.css","sharedStyle5.css","sharedStyle6.css","useRef","React.useId","sharedStyle.className","sharedStyle1.className","sharedStyle2.className","sharedStyle3.className","sharedStyle4.className","sharedStyle5.className","sharedStyle6.className","className","PropertyOverrides","RichText","React.Fragment","sharedStyle.fonts","sharedStyle1.fonts","sharedStyle2.fonts","sharedStyle3.fonts","sharedStyle4.fonts","sharedStyle5.fonts","sharedStyle6.fonts","MenuBar","React.createElement","FooterHeaderSelected","FooterHeaderUnselected","Framer.PageRoot","Framer.lazy","Framer.useCurrentRoute","Framer.useLocaleInfo","Framer.useRouter","React.Fragment","React.memo","React.useCallback","React.useEffect","React.useRef","React.useState","React.useLayoutEffect","Framer.LazyValue","Framer.GracefullyDegradingErrorBoundary","Framer.PageEffectsProvider","Framer.patchRoutesForABTesting","Framer.inferInitialRouteFromPath","Framer.yieldToMain","React.startTransition","Framer.ErrorPlaceholder"],"sources":["https:/framerusercontent.com/modules/kWU3kB49W19lttfJyZOm/61ShU6w42hzL7RX5ckIE/Qs_TRspfY.js","https:/framerusercontent.com/modules/0jtjOLowjN109gv31LCM/tcodn7TQuTwZFIYgwMiG/tfMmaJ8Tp.js","https:/framerusercontent.com/modules/bS1QdcvlUutujbFtCxlH/vCyuiH7UvUns0vLSMQiD/LiquidGlass.js","https:/framerusercontent.com/modules/c9xswYl3wYqDGWk0BF9Q/bmgv4jeYKoNHIfZQSdZw/Utfy8t3eB.js","https:/framerusercontent.com/modules/Wz6t6bdzeFAErIM4v0bH/a7CTeyaoCJlaZpuoEuRQ/WNV43oucF.js","https:/framerusercontent.com/modules/b3EA2tF04oz3uV78XeVY/s1C4K4JjO0bLWqAw4n4p/vN9pVxrVZ.js","https:/framerusercontent.com/modules/z7K3xfkeeBXVpMohofWT/WODTpl7XRsPPxIcGmgdE/CurtainReceiver.js","https:/framerusercontent.com/modules/m1fIL5hLS652WNe9NQgB/eR0hQtxJ7CXjKeU4UNtW/RidgelineBand.js","https:/framerusercontent.com/modules/4PURZqZXD09EpfGoBACI/3uCFFMtOfXYuRC7uvgVL/SeattleClock.js","https:/framerusercontent.com/modules/XDyAscXJBfFPDTSYllch/ELvU89RSb154poayfYak/CmgeT4WHb.js","https:/framerusercontent.com/modules/xHMd4tJWHM5VmACkYDIw/rvvbU2JulKceLtH2kLj1/DYk9ic7sT.js","https:/framerusercontent.com/modules/3LMVzd6M8ISKXNOXN0Z5/boPqTahaP00WeJ32H0Ei/hJu5gKg92.js","https:/framerusercontent.com/modules/lKodtZbYy4MTRIFQAT8h/CL0KeOvc2H5hX0xMR2KR/i9mdmqV9H.js","https:/framerusercontent.com/modules/JkSzO2yFkQeszqytLw9v/3DdgmLJTDY6hlIq47tEs/ieQHolDSg.js","https:/framerusercontent.com/modules/m9Jh7X0Jan3ENWcUjNZL/0jyV0Yn7ZYLSBxC0AIpY/kXa3JFYp8.js","https:/framerusercontent.com/modules/po2RCJ8dFdbuLbhgMK8T/JhPMb2aCRa2W2VJtb7mS/SCe5OSMFI.js","https:/framerusercontent.com/modules/h5MFIM5MNx7Iv480oS7y/MUvr842E2JUZaRQX1ZuF/n7HW5uSmA.js","https:/framerusercontent.com/modules/u11Rbu9W0rigAhLAb5hC/GAanb7DHsBjmv4QmNQAQ/LbydhkUq9.js","framer:toplevel/main"],"sourcesContent":["// Generated by Framer (c563d2c)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,cx,getLoadingLazyAtYPosition,Image,Link,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";const serializationHash=\"framer-nRvdK\";const variantClassNames={mZeQ2WJBg:\"framer-v-pm48ys\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"mZeQ2WJBg\",variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const ref1=React.useRef(null);const defaultLayoutId=React.useId();const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"augiA20Il\"},nodeId:\"mZeQ2WJBg\",children:/*#__PURE__*/_jsx(Image,{...restProps,...gestureHandlers,as:\"a\",background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition(componentViewport?.y||0),src:\"https://framerusercontent.com/images/kotMQ7SXoYaHTK3zgQ0oxVpgKw8.png\"},className:`${cx(scopingClassNames,\"framer-pm48ys\",className,classNames)} framer-1rrgspj`,\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"mZeQ2WJBg\",ref:ref??ref1,style:{...style}})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-nRvdK.framer-1rrgspj, .framer-nRvdK .framer-1rrgspj { display: block; }\",\".framer-nRvdK.framer-pm48ys { height: 52px; position: relative; text-decoration: none; width: 52px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 52\n * @framerIntrinsicWidth 52\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerQs_TRspfY=withCSS(Component,css,\"framer-nRvdK\");export default FramerQs_TRspfY;FramerQs_TRspfY.displayName=\"Logo\";FramerQs_TRspfY.defaultProps={height:52,width:52};addFonts(FramerQs_TRspfY,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerQs_TRspfY\",\"slots\":[],\"annotations\":{\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"52\",\"framerIntrinsicHeight\":\"52\",\"framerImmutableVariables\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Qs_TRspfY.map","// Generated by Framer (74b9e1d)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,Link,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX,withOptimizedAppearEffect}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/ez5IeQEzdQ9ONdFlZmUq/gUaHKTkG2IHKLtJqFQqx/VoqRC1t0l.js\";const MotionAWithFXWithOptimizedAppearEffect=withOptimizedAppearEffect(withFX(motion.a));const MotionDivWithFXWithOptimizedAppearEffect=withOptimizedAppearEffect(withFX(motion.div));const cycleOrder=[\"m5A1UqW00\",\"qQ1Qz0GRj\"];const serializationHash=\"framer-PRQtv\";const variantClassNames={m5A1UqW00:\"framer-v-ydoqmz\",qQ1Qz0GRj:\"framer-v-2yk0st\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const transformTemplate1=(_,t)=>`translateY(-50%) ${t}`;const animation={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition1,x:0,y:0};const animation1={opacity:.001,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:0};const transition2={delay:0,duration:.4,ease:[.44,0,0,1],type:\"tween\"};const animation2={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition2,x:0,y:0};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={About:\"qQ1Qz0GRj\",Home:\"m5A1UqW00\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"m5A1UqW00\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"m5A1UqW00\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTap1atlchi=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});setVariant(\"qQ1Qz0GRj\");});const onTap18omvz0=activeVariantCallback(async(...args)=>{setVariant(\"m5A1UqW00\");});const onTap3bw62m=activeVariantCallback(async(...args)=>{setVariant(\"qQ1Qz0GRj\");});const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-ydoqmz\",className,classNames),\"data-framer-name\":\"Home\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"m5A1UqW00\",onTap:onTap1atlchi,ref:refBinding,style:{backdropFilter:\"blur(20px)\",backgroundColor:\"rgba(107, 114, 128, 0.2)\",borderBottomLeftRadius:32,borderBottomRightRadius:32,borderTopLeftRadius:32,borderTopRightRadius:32,WebkitBackdropFilter:\"blur(20px)\",...style},...addPropertyOverrides({qQ1Qz0GRj:{\"data-framer-name\":\"About\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(Link,{href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"Sl5vtSppF\",scopeId:\"tfMmaJ8Tp\",children:/*#__PURE__*/_jsx(MotionAWithFXWithOptimizedAppearEffect,{className:\"framer-1olktug framer-1lvs8ak\",\"data-framer-appear-id\":\"1olktug\",layoutDependency:layoutDependency,layoutId:\"Sl5vtSppF\",style:{backgroundColor:\"rgba(166, 166, 166, 0.85)\",borderBottomLeftRadius:32,borderBottomRightRadius:32,borderTopLeftRadius:32,borderTopRightRadius:32},transformTemplate:transformTemplate1,variants:{qQ1Qz0GRj:{backgroundColor:\"rgba(0, 0, 0, 0)\"}},...addPropertyOverrides({qQ1Qz0GRj:{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,\"data-highlight\":true,animate:animation,initial:animation1,onTap:onTap18omvz0,optimized:true}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"RlM7U2F0b3NoaS1tZWRpdW0=\",\"--framer-font-family\":'\"Satoshi\", \"Satoshi Placeholder\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"18px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"Home\"})}),className:\"framer-1xgndnw\",\"data-framer-name\":\"Home\",fonts:[\"FS;Satoshi-medium\"],layoutDependency:layoutDependency,layoutId:\"QpBoqc1Gv\",style:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\",\"--framer-paragraph-spacing\":\"60px\"},variants:{qQ1Qz0GRj:{\"--extracted-r6o4lv\":\"rgb(125, 125, 125)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({qQ1Qz0GRj:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"RlM7U2F0b3NoaS1tZWRpdW0=\",\"--framer-font-family\":'\"Satoshi\", \"Satoshi Placeholder\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"18px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(125, 125, 125))\"},children:\"Home\"})})}},baseVariant,gestureVariant)})})}),/*#__PURE__*/_jsx(MotionDivWithFXWithOptimizedAppearEffect,{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation2,className:\"framer-qrclyx\",\"data-framer-appear-id\":\"qrclyx\",\"data-highlight\":true,initial:animation1,layoutDependency:layoutDependency,layoutId:\"V_UJlLWK8\",onTap:onTap3bw62m,optimized:true,style:{backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0},transformTemplate:transformTemplate1,variants:{qQ1Qz0GRj:{backgroundColor:\"rgb(172, 172, 173)\",borderBottomLeftRadius:32,borderBottomRightRadius:32,borderTopLeftRadius:32,borderTopRightRadius:32}},children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"RlM7U2F0b3NoaS1tZWRpdW0=\",\"--framer-font-family\":'\"Satoshi\", \"Satoshi Placeholder\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"18px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(115, 115, 115))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"mpteQy0fw\"},motionChild:true,nodeId:\"sVDHwJGnp\",openInNewTab:false,relValues:[],scopeId:\"tfMmaJ8Tp\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1drjk82\",\"data-styles-preset\":\"VoqRC1t0l\",children:\"About\"})})})}),className:\"framer-ybdhc5\",\"data-framer-name\":\"About\",fonts:[\"FS;Satoshi-medium\"],layoutDependency:layoutDependency,layoutId:\"sVDHwJGnp\",style:{\"--extracted-r6o4lv\":\"rgb(115, 115, 115)\",\"--framer-paragraph-spacing\":\"60px\"},variants:{qQ1Qz0GRj:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({qQ1Qz0GRj:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"RlM7U2F0b3NoaS1tZWRpdW0=\",\"--framer-font-family\":'\"Satoshi\", \"Satoshi Placeholder\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"18px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"mpteQy0fw\"},motionChild:true,nodeId:\"sVDHwJGnp\",openInNewTab:false,relValues:[],scopeId:\"tfMmaJ8Tp\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1drjk82\",\"data-styles-preset\":\"VoqRC1t0l\",children:\"About\"})})})})}},baseVariant,gestureVariant)})})]})})})});});const css=[\".framer-PRQtv.framer-1lvs8ak, .framer-PRQtv .framer-1lvs8ak { display: block; }\",\".framer-PRQtv.framer-ydoqmz { cursor: pointer; gap: 10px; height: 50px; overflow: visible; position: relative; width: 300px; }\",\".framer-PRQtv .framer-1olktug { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; height: min-content; justify-content: space-between; left: 0px; overflow: visible; padding: 16px 0px 16px 0px; position: absolute; text-decoration: none; top: 50%; width: 50%; }\",\".framer-PRQtv .framer-1xgndnw, .framer-PRQtv .framer-ybdhc5 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-PRQtv .framer-qrclyx { align-content: center; align-items: center; cursor: pointer; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 16px 0px 16px 0px; position: absolute; right: 0px; top: 50%; width: 50%; }\",\".framer-PRQtv.framer-v-2yk0st .framer-1olktug { cursor: pointer; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 50\n * @framerIntrinsicWidth 300\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"qQ1Qz0GRj\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramertfMmaJ8Tp=withCSS(Component,css,\"framer-PRQtv\");export default FramertfMmaJ8Tp;FramertfMmaJ8Tp.displayName=\"Menu bar\";FramertfMmaJ8Tp.defaultProps={height:50,width:300};addPropertyControls(FramertfMmaJ8Tp,{variant:{options:[\"m5A1UqW00\",\"qQ1Qz0GRj\"],optionTitles:[\"Home\",\"About\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramertfMmaJ8Tp,[{explicitInter:true,fonts:[{cssFamilyName:\"Satoshi\",source:\"fontshare\",style:\"normal\",uiFamilyName:\"Satoshi\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/P2LQKHE6KA6ZP4AAGN72KDWMHH6ZH3TA/ZC32TK2P7FPS5GFTL46EU6KQJA24ZYDB/7AHDUZ4A7LFLVFUIFSARGIWCRQJHISQP.woff2\",weight:\"500\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramertfMmaJ8Tp\",\"slots\":[],\"annotations\":{\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"qQ1Qz0GRj\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicWidth\":\"300\",\"framerIntrinsicHeight\":\"50\",\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./tfMmaJ8Tp.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";/**\n * Liquid Glass\n *\n * A translucent material layer in the spirit of Apple's Liquid Glass: heavy\n * backdrop blur with a saturation lift, a thin luminous rim, a brighter\n * refracted edge band, and a soft specular sweep. Drop it as the bottom layer\n * of a capsule or card; it never captures pointer events.\n *\n * @framerIntrinsicWidth 188\n * @framerIntrinsicHeight 52\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function LiquidGlass(props){const{blur=24,saturate=170,tint=\"#28282C\",tintOpacity=.3,dim=45,topHighlight=.22,bottomShade=.35,edgeWidth=5,edgeBrightness=125,rimOpacity=.35,specular=.22,radius=1e3,style}=props;// brightness() dims what is behind multiplicatively, so light content stays\n// legible under light labels without the grey veil an alpha tint produces.\nconst glassFilter=`blur(${blur}px) saturate(${saturate}%) brightness(${dim}%)`;const edgeFilter=`blur(1.5px) brightness(${edgeBrightness}%) saturate(140%)`;const ringMask=\"linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0)\";const rim=a=>`rgba(255, 255, 255, ${a.toFixed(3)})`;return /*#__PURE__*/_jsxs(\"div\",{\"aria-hidden\":\"true\",style:{width:\"100%\",height:\"100%\",...style,position:\"relative\",pointerEvents:\"none\",borderRadius:radius,overflow:\"visible\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,borderRadius:radius,backdropFilter:glassFilter,WebkitBackdropFilter:glassFilter,background:withAlpha(tint,tintOpacity),boxShadow:`inset 0 40px 30px -40px ${rim(topHighlight)}, inset 0 -40px 10px -40px rgba(0, 0, 0, ${bottomShade})`}}),edgeWidth>0&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,borderRadius:radius,padding:edgeWidth,WebkitMask:ringMask,WebkitMaskComposite:\"xor\",mask:ringMask,maskComposite:\"exclude\",backdropFilter:edgeFilter,WebkitBackdropFilter:edgeFilter,boxShadow:`inset 0 0 0 0.5px ${rim(rimOpacity)}, inset 0 1px 1px ${rim(rimOpacity)}, inset 0 -1px 1px ${rim(rimOpacity*.35)}`,background:`linear-gradient(160deg, ${rim(specular)} 0%, ${rim(specular*.18)} 40%, rgba(255, 255, 255, 0) 60%, ${rim(specular*.64)} 100%)`}})]});}function withAlpha(color,alpha){const a=Math.max(0,Math.min(1,alpha));const c=color.trim();if(c.startsWith(\"#\")){let hex=c.slice(1);if(hex.length===3||hex.length===4){hex=hex.split(\"\").map(ch=>ch+ch).join(\"\");}if(hex.length>=6){const r=parseInt(hex.slice(0,2),16);const g=parseInt(hex.slice(2,4),16);const b=parseInt(hex.slice(4,6),16);return`rgba(${r}, ${g}, ${b}, ${a})`;}}const fn=c.match(/^(rgba?|hsla?)\\(([^)]*)\\)$/i);if(fn){const parts=fn[2].split(/[\\s,\\/]+/).filter(p=>p.length>0).slice(0,3);if(parts.length===3){const kind=fn[1].toLowerCase().startsWith(\"hsl\")?\"hsla\":\"rgba\";return`${kind}(${parts.join(\", \")}, ${a})`;}}return`color-mix(in srgb, ${c} ${(a*100).toFixed(1)}%, transparent)`;}addPropertyControls(LiquidGlass,{blur:{type:ControlType.Number,title:\"Blur\",defaultValue:24,min:0,max:60,step:1,unit:\"px\"},saturate:{type:ControlType.Number,title:\"Saturate\",defaultValue:170,min:100,max:250,step:5,unit:\"%\"},tint:{type:ControlType.Color,title:\"Tint\",defaultValue:\"#28282C\"},tintOpacity:{type:ControlType.Number,title:\"Tint opacity\",defaultValue:.3,min:0,max:1,step:.01},dim:{type:ControlType.Number,title:\"Brightness\",description:\"How much of the backdrop light passes through.\",defaultValue:45,min:10,max:100,step:5,unit:\"%\"},topHighlight:{type:ControlType.Number,title:\"Top glow\",defaultValue:.22,min:0,max:1,step:.01},bottomShade:{type:ControlType.Number,title:\"Bottom shade\",defaultValue:.35,min:0,max:1,step:.01},edgeWidth:{type:ControlType.Number,title:\"Edge width\",defaultValue:5,min:0,max:16,step:1,unit:\"px\"},edgeBrightness:{type:ControlType.Number,title:\"Edge bright\",defaultValue:125,min:100,max:180,step:5,unit:\"%\"},rimOpacity:{type:ControlType.Number,title:\"Rim\",defaultValue:.35,min:0,max:1,step:.01},specular:{type:ControlType.Number,title:\"Specular\",defaultValue:.22,min:0,max:1,step:.01},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:1e3,min:0,max:1e3,step:1,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LiquidGlass\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"188\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"52\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LiquidGlass.map","// Generated by Framer (9801af1)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-HIcn8 .framer-styles-preset-164q67y:not(.rich-text-wrapper), .framer-HIcn8 .framer-styles-preset-164q67y.rich-text-wrapper a { --framer-link-current-text-background-padding: 15px 22.35px 15px 22.35px; --framer-link-current-text-background-radius: 200px; --framer-link-current-text-color: #ffffff; --framer-link-current-text-decoration: none; --framer-link-text-background-padding: 15px 22.35px 15px 22.35px; --framer-link-text-background-radius: 200px; --framer-link-text-color: rgba(255, 255, 255, 0.64); --framer-link-text-decoration: none; transition-delay: 0s; transition-duration: 0.4s; transition-property: color; transition-timing-function: cubic-bezier(0.44, 0, 0.56, 1); }\"];export const className=\"framer-HIcn8\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (9801af1)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-uura8 .framer-styles-preset-rxdes2:not(.rich-text-wrapper), .framer-uura8 .framer-styles-preset-rxdes2.rich-text-wrapper a { --framer-link-current-text-color: #ffffff; --framer-link-current-text-decoration: none; --framer-link-text-background-padding: 12px 17px 12px 17px; --framer-link-text-color: rgba(255, 255, 255, 0.64); --framer-link-text-decoration: none; transition-delay: 0s; transition-duration: 0.4s; transition-property: color; transition-timing-function: cubic-bezier(0.44, 0, 0.56, 1); }\"];export const className=\"framer-uura8\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (9801af1)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,Link,RichText,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Icon as Feather}from\"https://framerusercontent.com/modules/f0DboytQenYh21kfme7W/zb1zVBMZJKgPMiedOi0y/Feather.js\";import LiquidGlass from\"https://framerusercontent.com/modules/bS1QdcvlUutujbFtCxlH/vCyuiH7UvUns0vLSMQiD/LiquidGlass.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/c9xswYl3wYqDGWk0BF9Q/bmgv4jeYKoNHIfZQSdZw/Utfy8t3eB.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/Wz6t6bdzeFAErIM4v0bH/a7CTeyaoCJlaZpuoEuRQ/WNV43oucF.js\";const LiquidGlassFonts=getFonts(LiquidGlass);const FeatherFonts=getFonts(Feather);const cycleOrder=[\"zcX8yXxD_\",\"MwHcUKtRW\",\"LhluvJGWI\",\"wiZkcf_71\",\"Q46VDAAWP\",\"aW2_m3JuJ\",\"dXukA4Mg4\",\"T2AkkyYJ4\"];const serializationHash=\"framer-LDs9N\";const variantClassNames={aW2_m3JuJ:\"framer-v-60o8hz\",dXukA4Mg4:\"framer-v-1d5sdl3\",LhluvJGWI:\"framer-v-1kgjqpn\",MwHcUKtRW:\"framer-v-1dw382h\",Q46VDAAWP:\"framer-v-kt2jn9\",T2AkkyYJ4:\"framer-v-1ie85v8\",wiZkcf_71:\"framer-v-1dkoeb3\",zcX8yXxD_:\"framer-v-sw4sc0\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const transition2={damping:52,delay:0,mass:1,stiffness:347,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Variant 1\":\"zcX8yXxD_\",\"Variant 2 - About\":\"MwHcUKtRW\",\"Variant 3 - Features\":\"LhluvJGWI\",\"Variant 4 - Testimonials\":\"wiZkcf_71\",\"Variant 5 - Reach out\":\"Q46VDAAWP\",\"Variant 6 - Null\":\"aW2_m3JuJ\",\"Variant 7\":\"dXukA4Mg4\",\"Variant 8\":\"T2AkkyYJ4\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"zcX8yXxD_\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"zcX8yXxD_\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const isDisplayed=()=>{if([\"LhluvJGWI\",\"wiZkcf_71\",\"Q46VDAAWP\"].includes(baseVariant))return false;return true;};const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTap1uos82p=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});setVariant(\"T2AkkyYJ4\");});const onTapzep0vy=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});setVariant(\"dXukA4Mg4\");});const isDisplayed1=()=>{if([\"aW2_m3JuJ\",\"dXukA4Mg4\",\"T2AkkyYJ4\"].includes(baseVariant))return false;return true;};const isDisplayed2=()=>{if(baseVariant===\"dXukA4Mg4\")return false;return true;};const onTap7kos4i=activeVariantCallback(async(...args)=>{setVariant(\"zcX8yXxD_\");});const onTap83hqwl=activeVariantCallback(async(...args)=>{setVariant(\"dXukA4Mg4\");});const isDisplayed3=()=>{if([\"dXukA4Mg4\",\"T2AkkyYJ4\"].includes(baseVariant))return true;return false;};const onTap1a3d1gf=activeVariantCallback(async(...args)=>{setVariant(\"MwHcUKtRW\");});return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:isDisplayed()&&/*#__PURE__*/_jsx(Transition,{value:transition1,...addPropertyOverrides({MwHcUKtRW:{value:transition2}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-sw4sc0\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"zcX8yXxD_\",ref:refBinding,style:{borderBottomLeftRadius:206,borderBottomRightRadius:206,borderTopLeftRadius:206,borderTopRightRadius:206,boxShadow:\"0px 8px 20px 0px rgba(0, 0, 0, 0.25)\",...style},variants:{T2AkkyYJ4:{borderBottomLeftRadius:4,borderBottomRightRadius:4,borderTopLeftRadius:4,borderTopRightRadius:4}},...addPropertyOverrides({aW2_m3JuJ:{\"data-framer-name\":\"Variant 6 - Null\"},dXukA4Mg4:{\"data-framer-name\":\"Variant 7\",\"data-highlight\":true,onTap:onTap1uos82p},MwHcUKtRW:{\"data-framer-name\":\"Variant 2 - About\"},T2AkkyYJ4:{\"data-framer-name\":\"Variant 8\",\"data-highlight\":true,onTap:onTapzep0vy}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-vge5mc-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"Liquid Glass\",isAuthoredByUser:true,layoutDependency:layoutDependency,layoutId:\"Qpx1i9yDt-container\",name:\"Liquid Glass\",nodeId:\"Qpx1i9yDt\",rendersWithMotion:true,scopeId:\"vN9pVxrVZ\",children:/*#__PURE__*/_jsx(LiquidGlass,{blur:24,bottomShade:.35,dim:45,edgeBrightness:125,edgeWidth:5,height:\"100%\",id:\"Qpx1i9yDt\",layoutId:\"Qpx1i9yDt\",name:\"Liquid Glass\",radius:1e3,rimOpacity:.35,saturate:170,specular:.22,style:{height:\"100%\",width:\"100%\"},tint:\"rgb(40, 40, 44)\",tintOpacity:.3,topHighlight:.22,width:\"100%\"})})}),isDisplayed1()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-1i38pi2\",\"data-border\":true,\"data-framer-name\":\"BG\",layoutDependency:layoutDependency,layoutId:\"BmxN2iZNe\",style:{\"--border-bottom-width\":\"0.5px\",\"--border-color\":\"rgba(255, 255, 255, 0.28)\",\"--border-left-width\":\"0.5px\",\"--border-right-width\":\"0.5px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0.5px\",backgroundColor:\"rgba(255, 255, 255, 0.12)\",borderBottomLeftRadius:200,borderBottomRightRadius:200,borderTopLeftRadius:200,borderTopRightRadius:200,boxShadow:\"inset 0px 1px 0px 0px rgba(255, 255, 255, 0.25), 0px 2px 8px 0px rgba(0, 0, 0, 0.3)\"}}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1ph0fgk\",layoutDependency:layoutDependency,layoutId:\"n97fHheSM\",children:[isDisplayed2()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-1leb8gy\",\"data-framer-name\":\"Section\",layoutDependency:layoutDependency,layoutId:\"nMnD3yEg2\",...addPropertyOverrides({MwHcUKtRW:{\"data-highlight\":true,onTap:onTap7kos4i},T2AkkyYJ4:{\"data-highlight\":true,onTap:onTap83hqwl}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"RlM7U2F0b3NoaS1tZWRpdW0=\",\"--framer-font-family\":'\"Satoshi\", \"Satoshi Placeholder\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(255, 255, 255, 0.64))\"},children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"nav-home\",href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"irXL82kdV\",openInNewTab:false,relValues:[],scopeId:\"vN9pVxrVZ\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-164q67y\",\"data-styles-preset\":\"Utfy8t3eB\",children:\"Home\"})})})}),className:\"framer-14mhyum\",fonts:[\"FS;Satoshi-medium\"],layoutDependency:layoutDependency,layoutId:\"irXL82kdV\",style:{\"--extracted-r6o4lv\":\"rgba(255, 255, 255, 0.64)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({aW2_m3JuJ:{\"data-highlight\":true,onTap:onTap7kos4i},MwHcUKtRW:{\"data-highlight\":true,onTap:onTap7kos4i},T2AkkyYJ4:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"RlM7U2F0b3NoaS1tZWRpdW0=\",\"--framer-font-family\":'\"Satoshi\", \"Satoshi Placeholder\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(255, 255, 255, 0.64))\"},children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"nav-home\",href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"irXL82kdV\",openInNewTab:false,relValues:[],scopeId:\"vN9pVxrVZ\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-rxdes2\",\"data-styles-preset\":\"WNV43oucF\",children:\"Home\"})})})})}},baseVariant,gestureVariant)})}),isDisplayed3()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-ujbzi8-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"GTDrQIY_0-container\",nodeId:\"GTDrQIY_0\",rendersWithMotion:true,scopeId:\"vN9pVxrVZ\",children:/*#__PURE__*/_jsx(Feather,{color:\"rgb(255, 255, 255)\",height:\"100%\",iconSearch:\"Home\",iconSelection:\"menu\",id:\"GTDrQIY_0\",layoutId:\"GTDrQIY_0\",mirrored:false,selectByList:true,style:{height:\"100%\",width:\"100%\"},width:\"100%\",...addPropertyOverrides({T2AkkyYJ4:{iconSelection:\"x\"}},baseVariant,gestureVariant)})})}),isDisplayed2()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-dqcmq2\",\"data-framer-name\":\"Section\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"qrR4vecZL\",onTap:onTap1a3d1gf,...addPropertyOverrides({T2AkkyYJ4:{onTap:onTap83hqwl}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-1lnu906\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"ew07Xamap\",onTap:onTap1a3d1gf,...addPropertyOverrides({T2AkkyYJ4:{onTap:onTap83hqwl}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"RlM7U2F0b3NoaS1tZWRpdW0=\",\"--framer-font-family\":'\"Satoshi\", \"Satoshi Placeholder\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(255, 255, 255, 0.64))\"},children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"nav-about\",href:{webPageId:\"JQ2pjDALW\"},motionChild:true,nodeId:\"zjBqrxyps\",openInNewTab:false,relValues:[],scopeId:\"vN9pVxrVZ\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-164q67y\",\"data-styles-preset\":\"Utfy8t3eB\",children:\"About\"})})})}),className:\"framer-c3w4kv\",fonts:[\"FS;Satoshi-medium\"],layoutDependency:layoutDependency,layoutId:\"zjBqrxyps\",style:{\"--extracted-r6o4lv\":\"rgba(255, 255, 255, 0.64)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({T2AkkyYJ4:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"RlM7U2F0b3NoaS1tZWRpdW0=\",\"--framer-font-family\":'\"Satoshi\", \"Satoshi Placeholder\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(255, 255, 255, 0.64))\"},children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"nav-about\",href:{webPageId:\"JQ2pjDALW\"},motionChild:true,nodeId:\"zjBqrxyps\",openInNewTab:false,relValues:[],scopeId:\"vN9pVxrVZ\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-rxdes2\",\"data-styles-preset\":\"WNV43oucF\",children:\"About\"})})})})}},baseVariant,gestureVariant)})})})]})]})})})});});const css=[\".framer-LDs9N.framer-xffuns, .framer-LDs9N .framer-xffuns { display: block; }\",\".framer-LDs9N.framer-sw4sc0 { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 40px; height: 52px; justify-content: center; overflow: hidden; padding: 16px 4px 16px 4px; position: relative; width: 188px; will-change: var(--framer-will-change-override, transform); }\",\".framer-LDs9N .framer-vge5mc-container { flex: none; height: 100%; left: 0px; pointer-events: none; position: absolute; top: 0px; width: 100%; z-index: 0; }\",\".framer-LDs9N .framer-1i38pi2 { bottom: 4px; flex: none; left: 4px; overflow: hidden; position: absolute; top: 4px; width: 88px; will-change: var(--framer-will-change-override, transform); z-index: 0; }\",\".framer-LDs9N .framer-1ph0fgk { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; height: 232%; justify-content: space-between; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-LDs9N .framer-1leb8gy { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-LDs9N .framer-14mhyum, .framer-LDs9N .framer-c3w4kv { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-LDs9N .framer-ujbzi8-container { flex: none; height: 44px; position: relative; width: 44px; }\",\".framer-LDs9N .framer-dqcmq2 { align-content: center; align-items: center; cursor: pointer; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 44px; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-LDs9N .framer-1lnu906 { align-content: center; align-items: center; cursor: pointer; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: 100%; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-LDs9N.framer-v-1dw382h .framer-1i38pi2 { left: 96px; right: 4px; width: unset; }\",\".framer-LDs9N.framer-v-1dw382h .framer-1leb8gy { cursor: pointer; padding: 15px 0px 15px 0px; }\",\".framer-LDs9N.framer-v-1dw382h .framer-14mhyum { cursor: pointer; height: 19px; }\",\".framer-LDs9N.framer-v-60o8hz .framer-14mhyum { cursor: pointer; }\",\".framer-LDs9N.framer-v-1d5sdl3.framer-sw4sc0 { cursor: pointer; height: 77px; width: min-content; }\",\".framer-LDs9N.framer-v-1d5sdl3 .framer-1ph0fgk { flex: none; height: 230%; width: 44px; }\",\".framer-LDs9N.framer-v-1d5sdl3 .framer-ujbzi8-container, .framer-LDs9N.framer-v-1ie85v8 .framer-ujbzi8-container { order: 0; }\",\".framer-LDs9N.framer-v-1ie85v8.framer-sw4sc0 { cursor: pointer; flex-direction: column; height: 177px; justify-content: flex-start; overflow: visible; padding: 16px 0px 16px 0px; width: min-content; will-change: unset; }\",\".framer-LDs9N.framer-v-1ie85v8 .framer-vge5mc-container { height: 164px; }\",\".framer-LDs9N.framer-v-1ie85v8 .framer-1ph0fgk { align-self: stretch; flex: none; flex-direction: column; height: min-content; width: auto; }\",\".framer-LDs9N.framer-v-1ie85v8 .framer-1leb8gy { cursor: pointer; height: 44px; order: 1; width: 100%; }\",\".framer-LDs9N.framer-v-1ie85v8 .framer-dqcmq2 { order: 2; }\",...sharedStyle.css,...sharedStyle1.css,'.framer-LDs9N[data-border=\"true\"]::after, .framer-LDs9N [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 52\n * @framerIntrinsicWidth 188\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"MwHcUKtRW\":{\"layout\":[\"fixed\",\"fixed\"]},\"LhluvJGWI\":{\"layout\":[\"auto\",\"fixed\"]},\"wiZkcf_71\":{\"layout\":[\"auto\",\"fixed\"]},\"Q46VDAAWP\":{\"layout\":[\"auto\",\"fixed\"]},\"aW2_m3JuJ\":{\"layout\":[\"fixed\",\"fixed\"]},\"dXukA4Mg4\":{\"layout\":[\"auto\",\"fixed\"]},\"T2AkkyYJ4\":{\"layout\":[\"auto\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerTrackingIds [{\"id\":\"_1n4kyos\",\"trackingId\":\"nav-home\",\"type\":\"click\",\"nodeId\":\"irXL82kdV\"},{\"id\":\"_3m3370\",\"trackingId\":\"nav-about\",\"type\":\"click\",\"nodeId\":\"zjBqrxyps\"}]\n */const FramervN9pVxrVZ=withCSS(Component,css,\"framer-LDs9N\");export default FramervN9pVxrVZ;FramervN9pVxrVZ.displayName=\"Menu - Adapted\";FramervN9pVxrVZ.defaultProps={height:52,width:188};addPropertyControls(FramervN9pVxrVZ,{variant:{options:[\"zcX8yXxD_\",\"MwHcUKtRW\",\"LhluvJGWI\",\"wiZkcf_71\",\"Q46VDAAWP\",\"aW2_m3JuJ\",\"dXukA4Mg4\",\"T2AkkyYJ4\"],optionTitles:[\"Variant 1\",\"Variant 2 - About\",\"Variant 3 - Features\",\"Variant 4 - Testimonials\",\"Variant 5 - Reach out\",\"Variant 6 - Null\",\"Variant 7\",\"Variant 8\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramervN9pVxrVZ,[{explicitInter:true,fonts:[{cssFamilyName:\"Satoshi\",source:\"fontshare\",style:\"normal\",uiFamilyName:\"Satoshi\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/P2LQKHE6KA6ZP4AAGN72KDWMHH6ZH3TA/ZC32TK2P7FPS5GFTL46EU6KQJA24ZYDB/7AHDUZ4A7LFLVFUIFSARGIWCRQJHISQP.woff2\",weight:\"500\"}]},...LiquidGlassFonts,...FeatherFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramervN9pVxrVZ\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerTrackingIds\":\"[{\\\"id\\\":\\\"_1n4kyos\\\",\\\"trackingId\\\":\\\"nav-home\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"irXL82kdV\\\"},{\\\"id\\\":\\\"_3m3370\\\",\\\"trackingId\\\":\\\"nav-about\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"zjBqrxyps\\\"}]\",\"framerComponentViewportWidth\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicHeight\":\"52\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"MwHcUKtRW\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"LhluvJGWI\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"wiZkcf_71\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"Q46VDAAWP\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"aW2_m3JuJ\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"dXukA4Mg4\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"T2AkkyYJ4\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"188\",\"framerColorSyntax\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/* CurtainReceiver: the case-page half of the UI showcase's folder curtain, one instance in the shared case template\n   \"Footer+header unselected\" (n7HW5uSmA), so every case page and the three /interfaces pages get it. Open (\"B\", PLAN.md\n   Round 3): the sender is HomeFolders.tsx: a tray link on Home grows the folder's front over the screen, writes the\n   hand-off and changes the route under the sheet; this component lets the new page mount under the identical sheet and\n   slides the sheet down off it. Return (\"C\"): the Back pill raises the sheet and Home shrinks it into the folder (see\n   the last point below).\n   GENERATED by case-study-reviews/home-folders/framer-port/build-receiver.mjs from CurtainReceiver.template.tsx and\n   curtain-kit.ts (shared with HomeFolders.tsx). Port of ui-showcase/app/src/kit/curtain.tsx ShowcaseCurtain.\n   - Inert unless a fresh \"open\" hand-off (sessionStorage \"showcase-handoff\", age < 10 s, for this path) is waiting:\n     direct loads, refreshes and back/forward never show a sheet.\n   - Client-side arrival: the identical opaque sheet is mounted in a layout effect (before the first paint of the new\n     page), window.__scCurtain = \"cover\" and \"sc:curtain\" { project, phase: \"cover\" }; it holds until the page reports\n     sc:page-ready (window.__scPageReady) or its first-viewport images are decoded, at most 250 ms and at least two\n     frames; then it slides down off the page (400 ms, cubic-bezier(.22,1,.36,1)), \"reveal\" 140 ms into the slide,\n     \"done\" when it has gone. The hand-off is consumed. Whatever happens (timeouts, errors, missing signals, a background\n     tab), reveal and done are always sent and the sheet is gone within 2 s of \"cover\". Esc or a press on the sheet skips\n     to the end (a press also swallows its own click, so a tap never activates a link under the finger).\n     Reduced motion: no sheet, reveal + done at once. Focus moves to the page's h1 (no ring).\n   - Full-page arrival (the sender's fallback): a small inline script in this component's server markup paints the\n     sheet's viewport part (the same gradient) while the document is still parsing, so the page is covered from its\n     first paint; the layout effect above then swaps in the real sheet at hydration and runs the same reveal. The script\n     removes its block on its own (8 s, a click, Esc) if hydration never comes.\n   - The receiver never animates the page's hero: pages that rise their hero do it themselves on \"reveal\" (the\n     /interfaces pages' curtainCompat contract).\n   - Touch browsers: the sheet is an absolute layer at the scroll position (iOS clips fixed layers under its toolbar)\n     and touch scrolling is held while it is up.\n   - The return (\"C\", PLAN.md): this component also arms one document-level capture click listener per window\n     (window.__scBackArmed). It hooks only the page's Back pill: the FIRST <a> inside \"#main [data-framer-root]\" (the\n     page's own content; the template's header capsule and footer \"Home\" link sit outside it, and later links home such\n     as Overtime's \"All work\" are not first) whose URL resolves same-origin to \"/\" with no hash, on a page that belongs\n     to a folder (/dynery, /dynery/*, /interfaces/{dynery,merchant,passion-projects}, /overtime; scProjectFor). A plain\n     click there is taken in the capture phase (preventDefault + stopPropagation, so React's root listeners never see\n     it): the sheet in that folder's look rises from the bottom (scLeave, 340 ms, cubic-bezier(.3,.6,.25,1)); as soon as\n     its top edge has passed the top of the viewport the hand-off { type: \"return\", project, kbd, path: \"/\" } is\n     written and a marked synthetic click (__scPass) is dispatched on the same anchor, so Framer's own Link handler runs\n     as on any click: it sends the native published_site_click (trackingId case-back-*) and navigates client-side. If\n     nothing handled it (not hydrated) or the anchor is gone: a full load of the URL (Home then finds no sheet and stays\n     inert). Home (HomeFolders.tsx) takes the body-level sheet over and shrinks it back into the folder; a sheet nobody\n     takes over fades out after 4 s (SC_CUR.orphanMs). Esc or a press on the sheet skips to covered; a second click\n     while it rises finishes it (window.__scLeaving). Excluded (plain navigation, no sheet, no hand-off): pages without\n     a folder (/cicerone, /sony, /squadup, /lime, /tms...), the header and footer links, modified or non-primary clicks,\n     other-tab targets, reduced motion.\n   - Framer: renders an empty 100% box (place the instance absolute, 1 x 1, pointer-events none); nothing runs on the\n     canvas, thumbnails or export (RenderTarget); CSS goes in through <style dangerouslySetInnerHTML>. */import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import*as FramerNS from\"framer\";import{RenderTarget}from\"framer\";const SC_CUR={/* sender: anticipation (label and print fade) before the front starts to grow */diveMs:40,/* the front grows to cover the viewport */expandMs:400,expandEase:\"cubic-bezier(.45,0,.2,1)\",/* the open counts as covered (the route may change) at this eased progress */coverAt:.99,/* the return: the sheet shrinks back into the folder on its own decelerating curve (it starts at once: the cover\n       before it has just decelerated) */shrinkMs:420,shrinkEase:\"cubic-bezier(.4,0,.2,1)\",/* the return: the sheet rises over a case page before it navigates away; the navigation starts as soon as its top\n       edge has passed the top of the viewport (~0.62 of the move), not at its end */coverMs:340,coverEase:\"cubic-bezier(.3,.6,.25,1)\",/* receiver: the sheet slides down off the page that mounted under it */revealMs:400,revealEase:\"cubic-bezier(.22,1,.36,1)\",/* longest wait for the new page's first-viewport images (or its sc:page-ready) before the sheet moves */holdMaxMs:250,/* \"reveal\" is dispatched this long after the slide starts (the page's own reveal work starts then) */releaseMs:140,/* receiver: whatever happens (stalled animations, a background tab, errors), the sheet is gone and reveal + done\n       have been sent this long after \"cover\" */safetyMs:2e3,/* after navigating, a sheet nobody took over within this long: open - the route never changed -> full load, the\n       route changed but the page has no receiver -> fade out; return - fade out */orphanMs:4e3,/* receiver: a hand-off older than this is ignored */ttlMs:1e4,z:9e3};const SC_HANDOFF_KEY=\"showcase-handoff\";/** The folder a case page belongs to (its Back pill returns into that folder on Home), or null. */function scProjectFor(path){const p=String(path||\"\").toLowerCase().replace(/\\/+$/,\"\")||\"/\";if(p===\"/dynery\"||p.indexOf(\"/dynery/\")===0||p===\"/interfaces/dynery\")return\"dynery\";if(p===\"/interfaces/merchant\")return\"merchant\";if(p===\"/interfaces/passion-projects\"||p===\"/overtime\")return\"passion\";return null;}/* each folder's front as a sheet (ui-showcase geometry.ts fronts; curtain.tsx CUR_LOOKS), Home materials */const SC_LOOKS={dynery:{front:{left:45.625,top:100.5,w:251.25,h:128.85},path:\"M0 32.62C0 20.47 9.85 10.62 22 10.62C45 10.62 68 10.62 91 10.62C102.5 10.62 111.5 0 123 0C159.083 0 195.167 0 231.25 0C242.296 0 251.25 8.954 251.25 20C251.25 49.95 251.25 79.9 251.25 109.85C251.25 120.343 242.743 128.85 232.25 128.85C161.167 128.85 90.083 128.85 19 128.85C8.507 128.85 0 120.343 0 109.85C0 84.107 0 58.363 0 32.62Z\",zoneTop:33,edgeLow:10.62,sheet:[[0,\"#7F9799\"],[.092,\"#738C8D\"],[.23,\"#637C7C\"],[.414,\"#506869\"],[.598,\"#435959\"],[.782,\"#394E4D\"],[1,\"#2F4343\"]],rim:\"rgba(255,255,255,.34)\",rimPx:1.5,shade:\"rgba(16,30,30,.30)\",shadeBlur:14},merchant:{front:{left:46.15,top:79.35,w:250.5,h:150.5},path:\"M0 21C0 9.402 9.402 0 21 0C90.5 0 160 0 229.5 0C241.098 0 250.5 9.402 250.5 21C250.5 57.166 250.5 93.333 250.5 129.5C250.5 141.098 241.098 150.5 229.5 150.5C160 150.5 90.5 150.5 21 150.5C9.402 150.5 0 141.098 0 129.5C0 93.333 0 57.166 0 21Z\",zoneTop:21.5,edgeLow:0,/* the tray edge's strip (HomeFolders RETUNE.b2bSheetStops), re-sampled from the retuned dark glass */sheet:[[0,\"#717A84\"],[.5,\"#697682\"],[1,\"#202D3D\"]],rim:\"rgba(160,200,240,.42)\",rimPx:2,shade:\"rgba(16,28,44,.30)\",shadeBlur:14},passion:{front:{left:45.625,top:100.85,w:251,h:128.85},path:\"M0 33.8C0 21.649 9.849 11.8 22 11.8C45 11.8 68 11.8 91 11.8C102.5 11.8 111.5 0.3 123 0.3C158.333 0.3 193.667 0.3 229 0.3C241.151 0.3 251 10.149 251 22.3C251 50.917 251 79.533 251 108.15C251 119.748 241.598 129.15 230 129.15C160.333 129.15 90.667 129.15 21 129.15C9.402 129.15 0 119.748 0 108.15C0 83.367 0 58.583 0 33.8Z\",zoneTop:34,edgeLow:11.8,sheet:[[0,\"#FEBEA5\"],[.2976,\"#FEAD8B\"],[.4451,\"#FDA47E\"],[.5615,\"#FD9E73\"],[.6896,\"#FB976B\"],[.7827,\"#FB9364\"],[.8758,\"#FC8D5C\"],[.934,\"#FC8252\"],[.9573,\"#FC7B4B\"],[.9806,\"#FE7347\"],[1,\"#FE7045\"]],rim:\"rgba(255,255,255,.42)\",rimPx:1.5,shade:\"rgba(150,60,20,.26)\",shadeBlur:14}};/** CSS linear-gradient (top to bottom) from stops. */function scGradient(stops){return\"linear-gradient(180deg,\"+stops.map(function(s){return s[1]+\" \"+Math.round(s[0]*1e4)/100+\"%\";}).join(\",\")+\")\";}/* ---------- geometry ---------- */function scParse(d){const tokens=d.match(/[MCZ]|-?\\d*\\.?\\d+(?:e-?\\d+)?/gi)||[];const cmds=[];const counts=[];const pts=[];let nums=[];for(let i=0;i<tokens.length;i++){const t=tokens[i];if(/^[MCZ]$/i.test(t)){cmds.push(t.toUpperCase());counts.push(0);continue;}nums.push(parseFloat(t));if(nums.length===2){pts.push([nums[0],nums[1]]);counts[counts.length-1]++;nums=[];}}return{cmds:cmds,counts:counts,pts:pts};}const scShapes={};function scShape(project){if(!scShapes[project])scShapes[project]=scParse(SC_LOOKS[project].path);return scShapes[project];}const SC_ZX=23// front-local x of the side corner zones (radii are 19-22)\n;const SC_ZB=22// front-local height of the bottom corner zone\n;function scR(n){return(Math.round(n*100)/100).toString();}function scD(shape,pts){let i=0;let out=\"\";shape.cmds.forEach(function(c,ci){out+=(out?\" \":\"\")+c;for(let n=0;n<shape.counts[ci];n++){const p=pts[i++];out+=\" \"+scR(p[0])+\" \"+scR(p[1]);}});return out;}function scClip(d){return\"path('\"+d+\"')\";}function scClipEvenOdd(d){return\"path(evenodd,'\"+d+\"')\";}/** Corner scale of the full sheet: its corner radius is ~22 px x this. */function scK(vw){return vw>=1024?1.5:vw>=600?1.3:1.1;}/** The cover outline's box: the top edge (corners included) just above the viewport, sides and bottom outside it. */function scCoverRect(look,vw,H,k){return{x0:-.5,x1:vw+.5,y0:-(look.zoneTop*k)-1,y1:H+SC_ZB*k+1};}/** The front 9-sliced onto rect: corners and the tab's height grow by k, straight runs and the tab's slope stretch. */function scSlice(project,rect,k){const look=SC_LOOKS[project];const w=look.front.w;const h=look.front.h;const zt=look.zoneTop;const mx=function(x){if(x<=SC_ZX)return rect.x0+x*k;if(x>=w-SC_ZX)return rect.x1-(w-x)*k;const a=rect.x0+SC_ZX*k;const b=rect.x1-SC_ZX*k;return a+(x-SC_ZX)/(w-2*SC_ZX)*(b-a);};const my=function(y){if(y<=zt)return rect.y0+y*k;if(y>=h-SC_ZB)return rect.y1-(h-y)*k;const a=rect.y0+zt*k;const b=rect.y1-SC_ZB*k;return a+(y-zt)/(h-zt-SC_ZB)*(b-a);};return scShape(project).pts.map(function(p){return[mx(p[0]),my(p[1])];});}/** The rim's inner outline: the top-edge zone moved down by px (evenodd with the outline = a strip along the top). */function scShiftTop(project,pts,px){const src=scShape(project).pts;const zt=SC_LOOKS[project].zoneTop;return pts.map(function(p,i){return src[i][1]<=zt?[p[0],p[1]+px]:p;});}/* ---------- viewport and placement (curtain.tsx curTouch / curViewport / curPlace) ---------- *//** Coarse pointer, no hover: the sheet is an absolute document layer (iOS clips fixed layers under its toolbar). */function scTouch(){try{return typeof window.matchMedia===\"function\"&&window.matchMedia(\"(hover: none) and (pointer: coarse)\").matches;}catch(e){return false;}}const SC_SKIRT_MIN=120;function scViewport(){const vw=document.documentElement.clientWidth||window.innerWidth;let H=window.innerHeight;try{/* the large viewport (mobile toolbars collapsed), so the sheet never leaves a strip */const probe=document.createElement(\"div\");probe.style.cssText=\"position:fixed;left:0;top:0;width:0;height:100lvh;visibility:hidden;pointer-events:none\";document.body.appendChild(probe);H=Math.max(H,probe.offsetHeight||0);probe.remove();}catch(e){/* no lvh: innerHeight */}H=Math.ceil(H);if(scTouch())H+=Math.max(SC_SKIRT_MIN,Math.ceil((window.screen&&window.screen.height||0)-H));return{vw:vw,H:H};}/* touch: keep every absolute sheet at the scroll position, and hold touch scrolling while one is up */function scFollow(){if(typeof document===\"undefined\")return;const y=window.scrollY+\"px\";document.querySelectorAll(\"[data-sc-curtain][data-sc-abs]\").forEach(function(n){if(n.style.top!==y)n.style.top=y;});}function scPlace(el){if(!scTouch())return\"position:fixed;left:0;top:0;\";el.setAttribute(\"data-sc-abs\",\"\");const w=window;if(!w.__scCurTouch){w.__scCurTouch=true;window.addEventListener(\"scroll\",scFollow,{passive:true});window.addEventListener(\"touchmove\",function(e){if(document.querySelector(\"[data-sc-curtain][data-sc-abs]\"))e.preventDefault();},{passive:false});}return\"position:absolute;left:0;top:\"+window.scrollY+\"px;\";}/* cubic-bezier(x1,y1,x2,y2) as a function of time, and its inverse (time at a progress) */function scBezier(css){const m=css.match(/-?\\d*\\.?\\d+/g)||[\"0\",\"0\",\"1\",\"1\"];const x1=+m[0];const y1=+m[1];const x2=+m[2];const y2=+m[3];const bx=function(u){return 3*x1*u*(1-u)*(1-u)+3*x2*u*u*(1-u)+u*u*u;};const by=function(u){return 3*y1*u*(1-u)*(1-u)+3*y2*u*u*(1-u)+u*u*u;};const solve=function(f,v){let lo=0;let hi=1;for(let i=0;i<28;i++){const mid=(lo+hi)/2;if(f(mid)<v)lo=mid;else hi=mid;}return(lo+hi)/2;};return{at:function(t){return by(solve(bx,Math.min(1,Math.max(0,t))));},inv:function(p){return bx(solve(by,Math.min(1,Math.max(0,p))));}};}/* ---------- DOM: one sheet at a time ---------- *//** Removes every curtain sheet on the page (except one). */function scClear(except){if(typeof document===\"undefined\")return;document.querySelectorAll(\"[data-sc-curtain]\").forEach(function(n){if(n!==except)n.remove();});}/** The covered state for the page underneath: window.__scCurtain and the window \"sc:curtain\" event. */function scPhase(project,phase){window.__scCurtain=phase===\"done\"?\"\":phase;try{window.dispatchEvent(new CustomEvent(\"sc:curtain\",{detail:{project:project,phase:phase}}));}catch(e){/* old engines: the global flag still tells late readers */}}function scCovering(){return typeof window!==\"undefined\"&&window.__scCurtain===\"cover\";}function scBase(){const w=window;if(!w.__scCurPageshow){w.__scCurPageshow=true;/* back/forward cache: a page restored mid-transition must not come back covered */window.addEventListener(\"pageshow\",function(e){if(e.persisted)scClear();});}w.__scCurSeq=(w.__scCurSeq||0)+1;const el=document.createElement(\"div\");el.setAttribute(\"aria-hidden\",\"true\");el.setAttribute(\"data-sc-curtain\",String(w.__scCurSeq));return el;}/** After a press that skipped a moving sheet: on touch the tap's click lands on whatever is under the finger once the\n    sheet has gone (a folder, a link), so the next click is swallowed once (window, capture phase, so no page handler sees\n    it); the guard lifts itself after 500 ms if no click comes. Esc skips do not need it. */function scBlockNextClick(){let t=0;const block=function(e){e.preventDefault();e.stopPropagation();lift();};const lift=function(){window.clearTimeout(t);window.removeEventListener(\"click\",block,true);};window.addEventListener(\"click\",block,true);t=window.setTimeout(lift,500);}/** Fades out and removes a sheet nobody took over. */function scOrphan(el){if(!el.isConnected)return;if(typeof el.animate!==\"function\"){el.remove();return;}const a=el.animate([{opacity:1},{opacity:0}],{duration:200,easing:\"ease-out\",fill:\"forwards\"});a.finished.then(function(){el.remove();},function(){el.remove();});}/** The full sheet as one static SVG (gradient body, rim, top-edge shadow), positioned covered. It only ever moves by\n    transform. travel: until the shadow's top has left the viewport; edgeAt: y of the top edge's lowest run. */function scSheet(project){const look=SC_LOOKS[project];const shape=scShape(project);const vp=scViewport();const vw=vp.vw;const H=vp.H;const k=scK(vw);const rect=scCoverRect(look,vw,H,k);const pts=scSlice(project,rect,k);const d=scD(shape,pts);const din=scD(shape,scShiftTop(project,pts,look.rimPx));const pad=Math.ceil(look.shadeBlur*3+4);const top=Math.floor(rect.y0-pad);const h=H-top+1;const el=scBase();const id=\"sc-cur-\"+el.getAttribute(\"data-sc-curtain\")+\"-\"+Math.random().toString(36).slice(2,7);const stops=look.sheet.map(function(s){return'<stop offset=\"'+s[0]+'\" stop-color=\"'+s[1]+'\"/>';}).join(\"\");el.style.cssText=scPlace(el)+\"width:\"+vw+\"px;height:\"+H+\"px;z-index:\"+SC_CUR.z+\";pointer-events:auto;will-change:transform;\"+\"contain:layout style;-webkit-tap-highlight-color:transparent\";el.innerHTML='<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"'+vw+'\" height=\"'+h+'\" viewBox=\"0 '+top+\" \"+vw+\" \"+h+'\" focusable=\"false\" '+'style=\"position:absolute;left:0;top:'+top+'px;display:block;overflow:visible\">'+'<defs><linearGradient id=\"'+id+'-g\" gradientUnits=\"userSpaceOnUse\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"'+H+'\">'+stops+\"</linearGradient>\"+'<filter id=\"'+id+'-s\" filterUnits=\"userSpaceOnUse\" x=\"-80\" y=\"'+top+'\" width=\"'+(vw+160)+'\" height=\"'+h+'\"><feGaussianBlur stdDeviation=\"'+look.shadeBlur+'\"/></filter></defs>'+'<path d=\"'+d+'\" fill=\"'+look.shade+'\" filter=\"url(#'+id+'-s)\"/>'+'<path d=\"'+d+'\" fill=\"url(#'+id+'-g)\"/>'+'<path d=\"'+d+\" \"+din+'\" fill=\"'+look.rim+'\" fill-rule=\"evenodd\"/>'+\"</svg>\";return{el:el,travel:H-top,edgeAt:rect.y0+look.edgeLow*k,H:H};}/* ---------- case pages: leave under the sheet (curtain.tsx curtainLeave) ---------- *//** The sheet (project = the folder it belongs to) rises from the bottom to cover the page, then go() runs (write the\n    hand-off, navigate). The navigation starts as soon as the sheet's top edge has passed the top of the viewport (the\n    rest of the rise is off-screen and the next page takes the sheet over); a sheet nobody takes over fades out after\n    SC_CUR.orphanMs. Esc or a press on the sheet skips to covered. Reduced motion: go() at once. A second call while one\n    rises (window.__scLeaving) finishes it. */function scLeave(project,go){const W=window;if(scReduced()){go();return;}if(W.__scLeaving){W.__scLeaving.finish();return;}const s=scSheet(project);const el=s.el;el.style.transform=\"translate3d(0,\"+s.travel+\"px,0)\";document.body.appendChild(el);scClear(el);scFollow();const a=el.animate([{transform:\"translate3d(0,\"+s.travel+\"px,0)\"},{transform:\"translate3d(0,0,0)\"}],{duration:SC_CUR.coverMs,easing:SC_CUR.coverEase,fill:\"forwards\"});/* covered: the top edge's lowest run (edgeAt, above y = 0 when settled) has passed the top of the viewport */const coverP=Math.min(1,Math.max(0,1+s.edgeAt/s.travel));let fired=false;let goTimer=0;const finish=function(){try{a.finish();}catch(e){/* done */}};const onKey=function(e){if(e.key===\"Escape\")finish();};const off=function(){window.removeEventListener(\"keydown\",onKey);el.removeEventListener(\"pointerdown\",finish);};window.addEventListener(\"keydown\",onKey);el.addEventListener(\"pointerdown\",finish);const me={finish:finish};W.__scLeaving=me;const fire=function(){if(fired)return;fired=true;window.clearTimeout(goTimer);off();if(W.__scLeaving===me)W.__scLeaving=null;go();window.setTimeout(function(){scOrphan(el);},SC_CUR.orphanMs);};goTimer=window.setTimeout(fire,scBezier(SC_CUR.coverEase).inv(coverP)*SC_CUR.coverMs);a.finished.then(function(){el.style.transform=\"translate3d(0,0,0)\";fire();},function(){/* cancelled */window.clearTimeout(goTimer);if(fired)return;off();if(W.__scLeaving===me)W.__scLeaving=null;el.remove();});}/* ---------- hand-off (kit/handoff.ts) ---------- */function scWriteHandoff(entry){try{window.sessionStorage.setItem(SC_HANDOFF_KEY,JSON.stringify({type:entry.type,project:entry.project,kbd:!!entry.kbd,t:Date.now(),path:entry.path}));}catch(e){/* storage unavailable: the destination simply renders its rest state */}}/** A fresh open/return entry (age <= ttl), without consuming it. */function scPeekHandoff(ttl){try{const raw=window.sessionStorage.getItem(SC_HANDOFF_KEY);if(!raw)return null;const v=JSON.parse(raw);if(!v||v.type!==\"open\"&&v.type!==\"return\"||typeof v.t!==\"number\"||typeof v.project!==\"string\")return null;const now=Date.now();if(now-v.t>ttl||v.t-now>1e3)return null;return v;}catch(e){return null;}}/** Removes an open/return entry (other readers' entries under the same key are left alone). */function scClearHandoff(){try{const raw=window.sessionStorage.getItem(SC_HANDOFF_KEY);if(!raw)return;let mine=true;try{const v=JSON.parse(raw);mine=!v||v.type===\"open\"||v.type===\"return\";}catch(e){}if(mine)window.sessionStorage.removeItem(SC_HANDOFF_KEY);}catch(e){}}function scPathNow(){return location.pathname.replace(/\\/+$/,\"\")||\"/\";}function scReduced(){try{return typeof window.matchMedia===\"function\"&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;}catch(e){return false;}}/* Framer's router hook (absent from the public type declarations, present on the published runtime): only used so the\n   receiver re-runs when a same-template client-side navigation keeps this instance mounted */const useFramerRouter=FramerNS.useRouter;const useIsoLayoutEffect=typeof window!==\"undefined\"?React.useLayoutEffect:React.useEffect;function scRestricted(){if(typeof window===\"undefined\")return true;try{return RenderTarget.hasRestrictions()||RenderTarget.current()===RenderTarget.canvas;}catch(e){return false;}}/* ---------- full-page arrival: the pre-paint block (inline script in the server markup) ----------\n   Plain ES5, self-contained (it runs while the document parses, before any bundle): the sheet's viewport part is a\n   rectangle of the sheet gradient over the large viewport (its curved top edge, rim and shadow sit above the screen\n   when covered), so it is pixel-identical to the real sheet the layout effect swaps in. */const SC_BOOT_CFG={key:SC_HANDOFF_KEY,ttl:SC_CUR.ttlMs,z:SC_CUR.z,skirt:SC_SKIRT_MIN,safety:8e3,g:{dynery:scGradient(SC_LOOKS.dynery.sheet),merchant:scGradient(SC_LOOKS.merchant.sheet),passion:scGradient(SC_LOOKS.passion.sheet)}};const SC_BOOT_JS=String.raw`(function(){try{var d=document,W=d.defaultView,C=`+JSON.stringify(SC_BOOT_CFG).replace(/</g,\"\\\\u003c\")+String.raw`;if(!W||W.__scBoot)return;W.__scBoot=1;`+String.raw`var mm=function(q){try{return!!(W.matchMedia&&W.matchMedia(q).matches)}catch(e){return false}};`+String.raw`var h=JSON.parse(W.sessionStorage.getItem(C.key)||'null');`+String.raw`if(!h||h.type!=='open'||typeof h.t!=='number'||!C.g[h.project])return;`+String.raw`var n=Date.now();if(n-h.t>C.ttl||h.t-n>1000)return;`+String.raw`var p=d.location.pathname.replace(/\\/+$/,'')||'/';if(h.path&&h.path!==p)return;`+String.raw`if(mm('(prefers-reduced-motion: reduce)'))return;`+String.raw`var t=mm('(hover: none) and (pointer: coarse)'),H=W.innerHeight;`+String.raw`try{var q=d.createElement('div');q.style.cssText='position:fixed;left:0;top:0;width:0;height:100lvh;visibility:hidden;pointer-events:none';d.body.appendChild(q);H=Math.max(H,q.offsetHeight||0);q.remove()}catch(e){}`+String.raw`H=Math.ceil(H);if(t)H+=Math.max(C.skirt,Math.ceil(((W.screen&&W.screen.height)||0)-H));`+String.raw`var el=d.createElement('div');el.setAttribute('data-sc-curtain','boot');el.setAttribute('aria-hidden','true');if(t)el.setAttribute('data-sc-abs','');`+String.raw`el.style.cssText=(t?'position:absolute;left:0;top:'+W.scrollY+'px;':'position:fixed;left:0;top:0;')+'width:100%;height:'+H+'px;z-index:'+C.z+';pointer-events:auto;background:'+C.g[h.project];`+String.raw`d.body.appendChild(el);W.__scCurtain='cover';W.__scBootHandoff=h;`+String.raw`var off=function(){W.removeEventListener('keydown',k,true);W.removeEventListener('touchmove',tm,{passive:false})};`+String.raw`var gone=function(){off();if(!el.isConnected)return;el.remove();try{W.sessionStorage.removeItem(C.key)}catch(e){}W.__scBootHandoff=null;W.__scCurtain='';`+String.raw`['reveal','done'].forEach(function(f){try{W.dispatchEvent(new CustomEvent('sc:curtain',{detail:{project:h.project,phase:f}}))}catch(e){}})};`+String.raw`var k=function(e){if(!el.isConnected)return off();if(e.key==='Escape')gone()};`+String.raw`var tm=function(e){if(!el.isConnected)return off();e.preventDefault()};`+String.raw`el.addEventListener('pointerdown',gone);W.addEventListener('keydown',k,true);W.addEventListener('touchmove',tm,{passive:false});W.setTimeout(gone,C.safety)`+String.raw`}catch(e){}})()`;/* ---------- arrival (curtain.tsx ShowcaseCurtain), one run per arrival for the whole window ---------- */function scArrive(){const W=window;/* several instances (breakpoint copies) mount in the same commit: the first one runs the arrival */if(W.__scArriving)return;const boot=W.__scBootHandoff||null;W.__scBootHandoff=null;const here=scPathNow();let h=scPeekHandoff(SC_CUR.ttlMs);if(h&&(h.type!==\"open\"||!SC_LOOKS[h.project]||h.path&&h.path!==here))h=null;/* the pre-paint block already covers this page (its own age check passed while the document parsed) */if(!h&&boot&&SC_LOOKS[boot.project]&&(!boot.path||boot.path===here)&&document.querySelector('[data-sc-curtain=\"boot\"]'))h=boot;if(!h){/* a direct load, a refresh, or a sheet left over from an interrupted move: never cover */const was=scCovering();scClear();if(was){scPhase(boot?boot.project:\"\",\"reveal\");scPhase(boot?boot.project:\"\",\"done\");}return;}scClearHandoff();const project=h.project;if(scReduced()){scClear();scPhase(project,\"reveal\");scPhase(project,\"done\");return;}W.__scArriving=true;let s;try{s=scSheet(project);document.body.appendChild(s.el);scClear(s.el);}catch(e){W.__scArriving=false;scClear();scPhase(project,\"reveal\");scPhase(project,\"done\");return;}const el=s.el;if(window.scrollY!==0)window.scrollTo(0,0);scFollow();scPhase(project,\"cover\");const timers=[];let slide=null;let ended=false;let released=false;let readyRes=null;/* the page's own reveal work starts once the slide is under way, not in its first frames */const release=function(){if(released||ended)return;released=true;scPhase(project,\"reveal\");};const off=function(){window.removeEventListener(\"keydown\",onKey,true);window.removeEventListener(\"sc:page-ready\",onReady);el.removeEventListener(\"pointerdown\",onDown);};const end=function(){if(ended)return;release();ended=true;off();timers.forEach(function(t){window.clearTimeout(t);});el.remove();W.__scArriving=false;scPhase(project,\"done\");};/* focus the page heading for keyboard and screen-reader users (programmatic: no ring, see the CSS below), unless\n       something on the new page already holds focus */const focusTarget=function(){try{const a=document.activeElement;if(a&&a!==document.body&&a!==document.documentElement)return;const target=document.querySelector(\"#main h1\");if(!target)return;if(!target.hasAttribute(\"tabindex\"))target.setAttribute(\"tabindex\",\"-1\");target.setAttribute(\"data-sc-arrival\",\"\");target.focus({preventScroll:true});}catch(e){}};const start=function(){if(slide||ended)return;try{slide=el.animate([{transform:\"translate3d(0,0,0)\"},{transform:\"translate3d(0,\"+s.travel+\"px,0)\"}],{duration:SC_CUR.revealMs,easing:SC_CUR.revealEase,fill:\"forwards\"});slide.finished.then(end,function(){});}catch(e){end();return;}timers.push(window.setTimeout(release,SC_CUR.releaseMs));window.requestAnimationFrame(focusTarget);};const skip=function(){start();release();try{if(slide)slide.finish();}catch(e){}if(!slide)end();};function onKey(e){if(e.key===\"Escape\")skip();}/* a press skips too; its click must not land on the page once the sheet has gone */function onDown(){scBlockNextClick();skip();}function onReady(){if(readyRes)readyRes();}window.addEventListener(\"keydown\",onKey,true);el.addEventListener(\"pointerdown\",onDown);/* the run always ends: sheet gone, reveal + done sent */timers.push(window.setTimeout(end,SC_CUR.safetyMs));/* hold: until the page says it is ready (sc:page-ready / window.__scPageReady) or its first-viewport images are\n       decoded (the showcase's own scan) and fonts are in, at most holdMaxMs, and at least two frames so the page has\n       laid out and painted under the sheet */try{const ready=new Promise(function(res){readyRes=res;if(W.__scPageReady)res();window.addEventListener(\"sc:page-ready\",onReady);const waits=[];const root=document.getElementById(\"main\")||document.body;root.querySelectorAll(\"img\").forEach(function(img){const r=img.getBoundingClientRect();if(r.top>s.H||r.bottom<0||r.width<1)return;if(typeof img.decode===\"function\"){waits.push(img.decode().catch(function(){}));return;}if(img.complete)return;waits.push(new Promise(function(r2){img.addEventListener(\"load\",r2,{once:true});img.addEventListener(\"error\",r2,{once:true});}));});const fonts=document.fonts;if(fonts&&fonts.status===\"loading\")waits.push(fonts.ready);Promise.all(waits).then(function(){res();},function(){res();});});const cap=new Promise(function(res){timers.push(window.setTimeout(res,SC_CUR.holdMaxMs));});const frames=new Promise(function(res){window.requestAnimationFrame(function(){window.requestAnimationFrame(res);});});Promise.all([Promise.race([ready,cap]),frames]).then(start,end);}catch(e){end();}}/* ---------- the return (\"C\"): the Back pill raises the sheet, then Framer's own link navigates under it ---------- *//** The absolute URL of a same-tab, same-origin link to \"/\" without a hash, else null. */function scHomeHref(a){try{const tg=a.getAttribute(\"target\");if(tg&&tg!==\"_self\")return null;const u=new URL(a.getAttribute(\"href\")||\"\",location.href);if(u.origin!==location.origin||u.hash)return null;if((u.pathname.replace(/\\/+$/,\"\")||\"/\")!==\"/\")return null;return u.href;}catch(e){return null;}}function scBackClick(e){/* our own re-dispatched click: Framer's Link handler takes it */if(e.__scPass)return;if(e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;const t=e.target;const a=t&&typeof t.closest===\"function\"?t.closest(\"a[href]\"):null;if(!a)return;const root=a.closest(\"#main [data-framer-root]\");if(!root)return;const href=scHomeHref(a);if(!href)return;/* the Back pill is the first link home in the page's own content (a breakpoint copy that is not displayed is\n       skipped) */const all=root.querySelectorAll(\"a[href]\");let first=null;for(let i=0;i<all.length;i++){const x=all[i];if(x!==a&&!x.getClientRects().length)continue;if(scHomeHref(x)){first=x;break;}}if(first!==a)return;const project=scProjectFor(scPathNow());if(!project||scReduced())return;const W=window;e.preventDefault();e.stopPropagation();if(W.__scLeaving){W.__scLeaving.finish();return;}/* detail 0: the click came from the keyboard (Enter) */const kbd=e.detail===0;const from=scPathNow();let went=false;const go=function(){if(went)return;went=true;/* another navigation won the race while the sheet rose: nothing to hand over */if(scPathNow()!==from){scClear();return;}scWriteHandoff({type:\"return\",project:project,kbd:kbd,path:\"/\"});if(!a.isConnected){location.assign(href);return;}const ev=new MouseEvent(\"click\",{bubbles:true,cancelable:true,composed:true,button:0,view:window});ev.__scPass=true;a.dispatchEvent(ev);/* nobody handled it (not hydrated): a full load (Home then finds no sheet and stays inert) */if(!ev.defaultPrevented)location.assign(href);};try{scLeave(project,go);}catch(err){scClear();go();}}/** One document-level capture listener per window (never removed: the template instance remounts per page). */function scArmBack(){const W=window;if(W.__scBackArmed)return;W.__scBackArmed=true;document.addEventListener(\"click\",scBackClick,true);}/* the arrival focus is programmatic: no ring on the heading */const SC_RECEIVER_CSS=\"[data-sc-arrival]:focus,[data-sc-arrival]:focus-visible{outline:none}\";/**\n * Curtain Receiver\n *\n * The page side of the Home folders' page transition. Renders nothing visible: place one instance in the case\n * template, position absolute, 1 x 1 px, pointer-events none.\n *\n * @framerIntrinsicWidth 1\n * @framerIntrinsicHeight 1\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function CurtainReceiver(props){const router=typeof useFramerRouter===\"function\"?useFramerRouter():null;const routeKey=router&&router.currentRouteId?String(router.currentRouteId):\"\";useIsoLayoutEffect(()=>{if(scRestricted())return undefined;try{scArmBack();}catch(e){}try{scArrive();}catch(e){/* never leave a cover behind */try{window.__scArriving=false;scClear();if(scCovering()){scPhase(\"\",\"reveal\");scPhase(\"\",\"done\");}}catch(e2){}}return undefined;},[routeKey]);return /*#__PURE__*/_jsxs(\"div\",{\"aria-hidden\":\"true\",\"data-sc-receiver\":\"\",style:{...props.style,width:\"100%\",height:\"100%\",overflow:\"hidden\",pointerEvents:\"none\"},children:[/*#__PURE__*/_jsx(\"script\",{dangerouslySetInnerHTML:{__html:SC_BOOT_JS}}),/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:SC_RECEIVER_CSS}})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CurtainReceiver\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicWidth\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CurtainReceiver.map","/*\n * RidgelineBand: the mountain ridgeline that sits behind the footer row.\n *\n * Real terrain seen from Kerry Park, Seattle (the Olympics on the left, Mount\n * Rainier on the right, one shared horizontal scale), drawn on charcoal either in\n * continuous tone with a faint static grain (renderMode \"tone\", the default) or as\n * light dots with an 8x8 ordered dither (renderMode \"dither\"). Fog drifts through\n * the distance bands and a soft light follows the pointer.\n *\n * Port of case-study-reviews/footer-ridgeline/ridgeline.js (the renderer's source\n * of truth). The shader, the tone tables and the options schema are lifted as-is,\n * fixed to the \"silhouette\" tone model. What changed for Framer:\n *   - Terrain is an embedded windowed constant (RIDGELINE_DATA, ~3.9k numbers,\n *     generated by framer/extract-data.py) instead of the 600 KB window global;\n *     the sampler reads per-window start azimuths and clamps at window edges.\n *   - The canvas is pointer-events: none, so the pointer is read from `window`\n *     (pointermove + scroll), and counts as \"over\" only inside the canvas rect\n *     plus `pointerMargin` (24 px). Coarse pointers get no light.\n *   - Size is measured in layout px (offsetWidth), so the editor's zoom transform\n *     never flips the narrow-screen crop.\n *   - On the Framer canvas (RenderTarget.hasRestrictions()) it renders ONE frame\n *     at t = 2.5 s through a throw-away WebGL context, copies it into a 2D canvas\n *     and frees the context at once. Layout templates repeat on every page in the\n *     editor; a live context per instance would hit the browser's context cap.\n *   - No debug panel, no URL params, no named exports.\n *\n * Revision 2026-10-12 (parity with ridgeline.js of the same day):\n *   - Sky glow is a pow curve (glow / glowLength / glowPow).\n *   - A clean full-width strip at the bottom (bottomClear) with a gradual dissolve above\n *     it (bottomFade, bottomFadeGamma). The component feeds it purely from its controls,\n *     so Framer breakpoint overrides own the phone values (narrowBottom* mirror the wide\n *     values here). groundFog / groundInk only apply when bottomClear is 0.\n *   - Tail dissolve in the faintest dither tails; dotCell 2; top fade 0.88 .. 1.0.\n *   - The prototype's `vignette` option is not ported (it stays off there).\n *\n * Revision 2026-10-12 v5 (parity with ridgeline.js of the same afternoon):\n *   - renderMode \"tone\" (default): every device pixel is shaded; the bands composite\n *     far-to-near with anti-aliased, slope-corrected coverage; each body's gradient is\n *     measured from a Gaussian-smoothed copy of its crest (a second N x 6 texture,\n *     computed on the CPU, bodySmooth 0.0175), so bodies have no vertical streaks; a\n *     static per-device-pixel triangular grain (grain 0.015, never below one 8-bit\n *     step where L > 0) keeps the dark gradients from banding. No dots, no tail\n *     dissolve; the top fade and the clear strip stay exactly at bg.\n *   - renderMode \"dither\": the v4 dots, unchanged. Each mode builds its own program.\n *   - The crest accent is pinned off in tone mode (on in dither mode); grainAnimated is\n *     pinned false. The dot controls are hidden (and inert) in tone mode.\n *\n * Revision 2026-10-12 v6 (loading / failure fallback):\n *   - A static image of the band (the t = 2.5 s frame, 2880 x 960) is server-rendered as an\n *     <img> UNDER the canvas, so the band shows the mountains before JS runs and while the\n *     first frame is pending. The \"Fallback image\" control overrides the built-in default.\n *   - The live canvas starts at opacity 0 and fades in over 400 ms after its first frame\n *     (no transition under reduced motion).\n *   - WebGL unavailable, a shader / texture failure, or a lost context (until it is restored\n *     and a frame is drawn) keep the canvas at opacity 0: the image shows.\n *   - The live context is created with failIfMajorPerformanceCaveat (no retry without it), so\n *     software GL gets the image. A frame-time guard stops the loop when the median rAF\n *     interval over the first 90 frames in view exceeds 45 ms; the last frame stays, with the\n *     pointer light off.\n *   - canvas[data-ridgeline-state] = \"live\" | \"static\" | \"fallback\". Only the two degraded\n *     paths log (one report() line each); the editor's staticFrame snapshot is unchanged.\n *\n * Revision 2026-10-14 v7 (footer v2, \"V1 Night\"):\n *   - renderMode \"sky\" (new default): the footer block's whole background. Footer text at the top,\n *     drifting clouds in the sky, ridges low with the nearest band running out as dark ground. The\n *     shader (FS_SKY) and the option set (SKY_OPTIONS) are copied verbatim from the prototype\n *     case-study-reviews/footer-ridgeline/v2/ridgeline-v2.js (r2) (the V1 Night variant: V2_DEFAULTS +\n *     V2_VARIANTS[1]); the port renders the same pixels as the prototype on the same terrain.\n *   - Sky mode reads its own terrain constant, RIDGELINE_DATA_SKY: the 0.2 degree DEM export the approved\n *     renders were made from (framer/extract-sky-data.py, ~1.9k numbers). Tone / dither keep the 0.1 degree\n *     RIDGELINE_DATA; fed that, the sky mode differs from the approved render on ~30 % of the pixels\n *     (sharper summits, a different blurred skyline under the glow and the cloud bank).\n *   - Sky mode caps the loop at 30 fps (every 2nd rAF tick at 60 Hz, every 4th at 120 Hz); its film\n *     grain boils at 3 fps with a normalised cross-fade; phones get a zoomed crop (narrowZoom /\n *     narrowVerticalExaggeration, ramped in below 780 px).\n *   - \"tone\" and \"dither\" are untouched (no frame cap, the v6 composition): rolling back is one control\n *     change (Render mode), plus the template layout (see FRAMER-PORT.md v7).\n *   - Sky-only controls: Film grain, Grain fps, Cloud speed, Clouds, Sky light, Sky fallback image.\n *     The tone/dither controls are hidden in sky mode, and the sky ones outside it.\n *\n * Revision 2026-10-15 v8 (footer link columns):\n *   - Three sky-only layout controls, so a taller footer block can raise the ridges and push the\n *     clouds below a taller text block: Sky horizon (px from the bottom, replaces horizonPx and\n *     narrowHorizonPx), Sky fade start and Sky fade end (px from the top, replace topFadePx and\n *     narrowTopFadePx: clouds and glow are full below \"start\" and 0 above \"end\"). Each defaults to 0,\n *     which keeps the built-in SKY_OPTIONS value, so an instance without them renders exactly as v7.\n *     Set per Framer breakpoint (the values of case-study-reviews/footer-ridgeline/v2/mockup-links).\n *\n * Hydration rules (this project): no style element with a text child, no SVG\n * title element, no window/document access at module scope.\n */import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";// <ridgeline-data>\n/* Generated by case-study-reviews/footer-ridgeline/framer/extract-data.py. Do not edit by hand. */const RIDGELINE_DATA={source:\"Kerry Park, Seattle (47.62949, -122.3599), eye 101.57 m; Mapzen/AWS Terrain Tiles, Terrarium encoding, zoom 11 (s3.amazonaws.com/elevation-tiles-prod/terrarium); ray-marched per dem/METHOD.md, refraction k 0.13; bands >= 3 km, max of each 0.05 deg pair -> 0.1 deg, 2 decimals; generated by framer/extract-data.py\",azimuthStepDeg:.1,bands:[{name:\"mid-near\",minKm:3,maxKm:12},{name:\"mid\",minKm:12,maxKm:30},{name:\"mid-far\",minKm:30,maxKm:60},{name:\"far\",minKm:60,maxKm:110},{name:\"horizon\",minKm:110,maxKm:170}],windows:[{name:\"olympics\",azFrom:248,count:531,elevDeg:[[-.26,-.26,-.26,-.26,-.26,-.27,-.28,-.3,-.31,-.32,-.34,-.36,-.37,-.37,-.37,-.38,-.38,-.39,-.4,-.41,-.43,-.45,-.45,-.45,-.44,-.45,-.45,-.45,-.45,-.45,-.46,-.46,-.47,-.43,-.4,-.4,-.39,-.38,-.38,-.38,-.38,-.36,-.35,-.36,-.34,-.33,-.33,-.32,-.31,-.31,-.31,-.31,-.31,-.31,-.32,-.31,-.3,-.3,-.29,-.29,-.28,-.28,-.28,-.28,-.28,-.27,-.27,-.26,-.26,-.25,-.25,-.24,-.24,-.23,-.23,-.23,-.23,-.23,-.22,-.21,-.21,-.2,-.2,-.2,-.2,-.2,-.2,-.2,-.2,-.19,-.18,-.17,-.17,-.17,-.17,-.17,-.16,-.16,-.16,-.16,-.16,-.16,-.16,-.16,-.16,-.16,-.16,-.16,-.16,-.16,-.17,-.17,-.17,-.17,-.18,-.18,-.19,-.19,-.19,-.19,-.19,-.19,-.2,-.2,-.21,-.21,-.22,-.23,-.23,-.24,-.25,-.25,-.26,-.27,-.27,-.28,-.29,-.29,-.3,-.31,-.32,-.33,-.33,-.34,-.35,-.36,-.37,-.39,-.4,-.41,-.41,-.41,-.41,-.42,-.42,-.42,-.43,-.43,-.44,-.45,-.45,-.46,-.46,-.47,-.47,-.48,-.48,-.48,-.49,-.49,-.49,-.5,-.51,-.52,-.53,-.53,-.53,-.53,-.53,-.53,-.53,-.52,-.51,-.5,-.49,-.48,-.47,-.47,-.46,-.46,-.45,-.44,-.43,-.42,-.41,-.41,-.4,-.39,-.39,-.38,-.37,-.37,-.36,-.36,-.35,-.35,-.34,-.34,-.33,-.32,-.31,-.3,-.29,-.29,-.29,-.28,-.28,-.29,-.29,-.29,-.29,-.28,-.28,-.28,-.28,-.27,-.27,-.26,-.26,-.26,-.26,-.26,-.26,-.26,-.26,-.27,-.26,-.26,-.25,-.25,-.24,-.24,-.24,-.24,-.24,-.24,-.24,-.24,-.25,-.25,-.26,-.26,-.26,-.26,-.25,-.25,-.25,-.25,-.25,-.26,-.26,-.26,-.26,-.25,-.25,-.24,-.25,-.25,-.26,-.27,-.26,-.26,-.26,-.26,-.26,-.26,-.25,-.25,-.25,-.24,-.24,-.25,-.25,-.25,-.25,-.25,-.25,-.25,-.25,-.26,-.26,-.26,-.25,-.26,-.26,-.26,-.26,-.26,-.26,-.26,-.26,-.27,-.27,-.28,-.28,-.28,-.29,-.29,-.29,-.3,-.3,-.3,-.3,-.3,-.31,-.31,-.32,-.32,-.33,-.33,-.34,-.34,-.35,-.35,-.36,-.36,-.37,-.38,-.39,-.4,-.41,-.43,-.44,-.47,-.48,-.49,-.5,-.48,-.47,-.47,-.48,-.48,-.47,-.47,-.48,-.48,-.48,-.49,-.49,-.5,-.5,-.51,-.52,-.52,-.52,-.52,-.52,-.52,-.52,-.51,-.5,-.49,-.48,-.47,-.46,-.45,-.44,-.43,-.42,-.41,-.41,-.4,-.39,-.39,-.38,-.37,-.36,-.35,-.34,-.34,-.33,-.32,-.31,-.3,-.29,-.28,-.28,-.27,-.26,-.26,-.26,-.26,-.25,-.24,-.23,-.22,-.21,-.2,-.19,-.18,-.17,-.17,-.16,-.15,-.15,-.14,-.13,-.13,-.12,-.11,-.1,-.09,-.09,-.08,-.07,-.06,-.05,-.04,-.03,-.03,-.02,-.01,0,.01,.01,.02,.01,.02,.02,.03,.03,.03,.03,.03,.03,.03,.03,.03,.03,.04,.04,.04,.05,.05,.05,.05,.05,.05,.05,.05,.06,.06,.06,.06,.06,.06,.06,.07,.07,.07,.06,.06,.06,.07,.07,.07,.07,.07,.07,.07,.07,.07,.07,.07,.07,.08,.08,.08,.08,.08,.08,.08,.08,.08,.08,.08,.09,.09,.1,.11,.12,.12,.13,.14,.15,.16,.17,.19,.2,.21,.21,.21,.21,.2,.2,.19,.19,.19,.18,.18,.17,.17,.16,.16,.16,.16,.16,.16,.15,.15,.15,.15,.15,.15,.15,.15,.15,.15,.15,.15,.15],[-.1,-.09,-.08,-.07,-.06,-.04,-.03,-.02,-.02,-.02,-.03,-.03,-.03,-.03,-.02,-.02,0,.02,.04,.06,.07,.07,.07,.07,.09,.12,.16,.19,.19,.2,.23,.25,.26,.26,.3,.33,.35,.36,.36,.36,.36,.33,.3,.28,.27,.24,.24,.23,.25,.28,.29,.28,.28,.28,.27,.23,.19,.18,.16,.12,.09,.1,.12,.14,.14,.15,.14,.15,.16,.16,.15,.12,.1,.11,.13,.15,.17,.18,.19,.2,.2,.21,.21,.22,.22,.23,.23,.23,.23,.23,.23,.23,.23,.23,.23,.23,.22,.22,.22,.21,.19,.18,.17,.16,.15,.14,.12,.1,.1,.1,.09,.08,.07,.07,.05,.04,.03,.03,.03,.03,.03,.03,.03,.03,.02,.02,.03,.03,.04,.04,.04,.04,.05,.05,.06,.06,.06,.06,.05,.05,.05,.05,.05,.05,.05,.04,.04,.04,.04,.04,.05,.05,.05,.05,.05,.04,.03,.03,.03,.03,.03,.03,.03,.03,.03,.03,.02,.02,.01,.01,.01,.01,.01,.01,0,0,0,0,0,0,0,.01,.01,.01,.01,.02,.02,.02,.02,.02,.03,.03,.03,.03,.03,.03,.03,.03,.03,.02,.02,.02,.02,.02,.02,.01,.01,.01,.01,.01,.01,.01,.01,0,0,0,0,0,0,0,-.01,-.01,-.01,-.01,-.01,-.01,-.01,0,0,0,0,.01,.01,.01,.01,.01,.02,.02,.02,.02,.02,.03,.03,.03,.03,.03,.03,.03,.02,.02,.02,.02,.02,.01,0,0,-.01,-.02,-.01,-.02,-.03,-.04,-.03,-.03,-.03,-.02,-.02,-.02,-.02,-.01,-.01,-.01,0,0,0,0,0,.01,.01,.01,.01,.01,.01,.01,.01,.01,.01,.01,.01,.01,.01,0,0,0,-.01,-.01,-.01,-.02,-.02,-.03,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.05,-.05,-.05,-.05,-.05,-.05,-.05,-.05,-.05,-.05,-.05,-.05,-.05,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.05,-.06,-.06,-.05,-.05,-.05,-.05,-.05,-.05,-.05,-.05,-.05,-.05,-.05,-.04,-.04,-.05,-.05,-.05,-.05,-.06,-.06,-.06,-.06,-.07,-.07,-.07,-.07,-.07,-.07,-.07,-.07,-.06,-.06,-.06,-.05,-.05,-.05,-.04,-.04,-.04,-.04,-.04,-.03,-.03,-.04,-.03,-.03,-.02,-.02,-.02,-.02,-.02,-.02,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.01,-.02,-.02,-.02,-.02,-.02,-.02,-.02,-.02,-.02,-.02,-.02,-.02,-.02,-.02,-.02,-.03,-.03,-.03,-.02,-.02,-.02,-.02,-.02,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.02,-.02,-.03,-.03,-.03,-.03,-.03,-.03,-.03,-.04,-.04,-.03,-.03,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.03,-.02,-.01,-.01,-.01,0,0,0,0,0,0,0,-.01,-.01,-.02,-.02,-.03,-.03,-.03,-.03,-.03,-.03,-.02],[-.06,-.06,-.06,-.06,-.05,-.05,-.05,-.05,-.05,-.04,-.03,-.02,-.02,-.01,-.01,0,0,.01,.03,.05,.07,.07,.08,.12,.16,.2,.23,.24,.24,.27,.3,.32,.33,.35,.39,.4,.43,.44,.45,.47,.46,.45,.45,.44,.43,.42,.4,.37,.35,.34,.32,.3,.32,.32,.35,.4,.43,.46,.51,.54,.57,.59,.59,.58,.61,.61,.6,.57,.56,.54,.54,.54,.52,.5,.49,.47,.44,.41,.37,.32,.27,.23,.21,.22,.23,.26,.3,.34,.37,.41,.44,.48,.49,.51,.53,.55,.55,.54,.55,.53,.51,.48,.47,.45,.42,.44,.47,.48,.5,.51,.51,.5,.48,.45,.44,.45,.46,.49,.54,.56,.56,.58,.54,.55,.54,.5,.48,.48,.49,.48,.45,.45,.45,.44,.46,.49,.49,.45,.45,.44,.44,.44,.46,.47,.43,.44,.45,.44,.43,.41,.44,.45,.43,.44,.46,.46,.43,.43,.39,.34,.3,.28,.25,.3,.35,.39,.43,.47,.52,.56,.6,.66,.73,.78,.78,.78,.76,.7,.62,.54,.45,.44,.49,.49,.5,.54,.56,.61,.64,.69,.72,.72,.7,.67,.66,.63,.63,.64,.67,.73,.74,.78,.83,.86,.86,.9,.89,.88,.88,.94,.95,.95,.97,1,1.01,1,1.02,1,.98,1.03,1.07,1.08,1.04,1.04,1.05,1.11,1.15,1.18,1.2,1.22,1.25,1.24,1.2,1.13,1.13,1.14,1.15,1.18,1.22,1.27,1.31,1.34,1.35,1.33,1.37,1.45,1.5,1.58,1.63,1.69,1.67,1.64,1.6,1.64,1.65,1.6,1.54,1.51,1.43,1.34,1.35,1.35,1.38,1.41,1.41,1.41,1.4,1.35,1.36,1.39,1.37,1.34,1.26,1.3,1.29,1.24,1.23,1.18,1.12,1.06,1.01,.94,.85,.79,.74,.68,.6,.52,.46,.4,.35,.27,.25,.28,.35,.44,.51,.56,.64,.72,.79,.88,.94,1,1.04,1.1,1.16,1.22,1.24,1.32,1.37,1.39,1.42,1.49,1.53,1.54,1.5,1.46,1.43,1.38,1.33,1.28,1.28,1.27,1.28,1.29,1.3,1.26,1.19,1.11,1.05,.99,.94,1,1.01,.97,.96,.91,.89,.88,.86,.85,.9,.94,.97,1.03,1.07,1.13,1.15,1.18,1.22,1.27,1.3,1.36,1.37,1.39,1.47,1.57,1.64,1.67,1.72,1.71,1.69,1.68,1.69,1.71,1.65,1.6,1.66,1.68,1.69,1.76,1.8,1.84,1.86,1.85,1.85,1.89,1.9,1.85,1.8,1.75,1.67,1.58,1.47,1.39,1.31,1.32,1.37,1.47,1.49,1.49,1.52,1.52,1.5,1.48,1.4,1.41,1.45,1.44,1.4,1.35,1.45,1.5,1.47,1.43,1.29,1.25,1.25,1.24,1.26,1.34,1.43,1.52,1.52,1.46,1.46,1.49,1.46,1.48,1.51,1.54,1.54,1.53,1.47,1.47,1.48,1.44,1.39,1.36,1.33,1.32,1.35,1.38,1.39,1.34,1.35,1.38,1.42,1.44,1.43,1.43,1.45,1.47,1.52,1.56,1.56,1.57,1.63,1.66,1.64,1.66,1.67,1.65,1.61,1.58,1.58,1.55,1.58,1.59,1.59,1.59,1.58,1.57,1.58,1.54,1.57,1.58,1.57,1.55,1.54,1.51,1.5,1.48,1.5,1.5,1.48,1.45,1.44,1.39,1.36,1.39,1.42,1.45,1.47,1.48,1.49,1.5,1.51,1.51,1.53,1.53,1.52,1.51,1.5,1.5,1.48,1.44,1.41,1.38,1.35,1.33,1.31,1.29,1.28,1.27,1.25,1.19,1.14,1.11,1.11,1.12,1.11,1.12,1.14,1.12,1.11,1.11,1.11,1.11,1.1,1.08,1.06,1.02,.98,.94,.94,.98,1.02,1.04,1.06],[.15,.16,.17,.17,.15,.16,.15,.17,.16,.2,.21,.19,.15,.13,.12,.13,.14,.14,.17,.21,.2,.14,.13,.13,.15,.15,.15,.16,.16,.17,.2,.21,.2,.21,.22,.21,.24,.25,.28,.31,.32,.3,.29,.33,.33,.33,.33,.31,.29,.26,.24,.25,.28,.34,.38,.4,.43,.44,.42,.43,.42,.41,.43,.45,.43,.43,.41,.4,.43,.45,.44,.43,.45,.45,.47,.51,.53,.54,.51,.47,.44,.42,.45,.46,.42,.37,.33,.33,.34,.39,.41,.46,.47,.45,.46,.47,.51,.6,.62,.62,.59,.59,.6,.62,.65,.67,.67,.68,.61,.64,.69,.7,.72,.74,.78,.84,.87,.92,.94,.99,1.03,1.06,1.14,1.12,1.04,1.09,1.09,1.12,1.15,1.24,1.26,1.23,1.17,1.13,1.05,.98,.92,.93,.92,.95,.97,1,1.03,1.05,1.07,1.05,1.1,1.14,1.16,1.18,1.2,1.14,1.13,1.13,1.11,1.09,1.09,1.14,1.12,1.05,1.02,1,.96,.99,1.06,1.07,1.08,1.06,.98,1,.99,.96,.94,.91,.9,.89,.87,.86,.9,.91,.93,.97,.96,1,1.07,1.09,1.11,1.17,1.22,1.22,1.2,1.15,1.11,1.08,1.08,1.05,1.11,1.15,1.2,1.22,1.27,1.31,1.3,1.29,1.3,1.29,1.25,1.23,1.19,1.17,1.17,1.24,1.25,1.27,1.25,1.23,1.2,1.19,1.2,1.19,1.15,1.08,1.11,1.15,1.12,1.13,1.14,1.13,1.12,1.15,1.2,1.25,1.25,1.27,1.27,1.26,1.26,1.23,1.19,1.18,1.17,1.19,1.17,1.13,1.15,1.15,1.16,1.16,1.19,1.22,1.22,1.21,1.18,1.18,1.17,1.12,1.07,1.05,1.09,1.08,1.11,1.09,1.15,1.14,1.14,1.15,1.12,1.08,1.08,1.07,1.07,1.12,1.17,1.18,1.12,1.13,1.22,1.27,1.31,1.32,1.26,1.21,1.21,1.21,1.29,1.3,1.29,1.32,1.3,1.25,1.22,1.18,1.18,1.18,1.18,1.2,1.24,1.24,1.26,1.26,1.26,1.27,1.32,1.36,1.34,1.32,1.33,1.34,1.34,1.27,1.24,1.21,1.24,1.23,1.19,1.15,1.14,1.15,1.16,1.22,1.26,1.25,1.26,1.29,1.26,1.22,1.22,1.25,1.25,1.23,1.21,1.21,1.19,1.17,1.18,1.18,1.18,1.13,1.11,1.13,1.16,1.18,1.17,1.11,1.1,1.17,1.22,1.25,1.26,1.22,1.28,1.35,1.37,1.36,1.37,1.42,1.46,1.48,1.5,1.55,1.57,1.57,1.6,1.67,1.71,1.74,1.73,1.73,1.76,1.79,1.8,1.86,1.84,1.79,1.76,1.79,1.79,1.76,1.73,1.69,1.68,1.65,1.64,1.62,1.61,1.59,1.67,1.71,1.77,1.74,1.74,1.69,1.64,1.6,1.58,1.61,1.65,1.65,1.65,1.66,1.63,1.57,1.56,1.53,1.54,1.52,1.54,1.56,1.55,1.52,1.55,1.59,1.62,1.63,1.61,1.61,1.56,1.52,1.48,1.46,1.48,1.47,1.43,1.46,1.44,1.46,1.5,1.55,1.59,1.61,1.6,1.63,1.65,1.61,1.64,1.64,1.58,1.61,1.62,1.6,1.58,1.54,1.55,1.59,1.61,1.63,1.64,1.65,1.66,1.67,1.63,1.53,1.5,1.52,1.52,1.47,1.49,1.51,1.52,1.51,1.47,1.46,1.45,1.44,1.41,1.4,1.39,1.41,1.41,1.38,1.34,1.32,1.32,1.31,1.31,1.3,1.31,1.37,1.38,1.35,1.33,1.31,1.26,1.23,1.21,1.2,1.19,1.18,1.21,1.2,1.19,1.22,1.25,1.27,1.27,1.31,1.31,1.25,1.2,1.22,1.22,1.19,1.17,1.15,1.13,1.11,1.09,1.09,1.07,1.05,1.04,1.02,.99,.99,.97,.95,.92,.89,.9,.94,.95,.96,.98,.95,.89,.88,.9,.88,.83,.79,.75],[-.36,-.34,-.34,-.34,-.33,-.33,-.33,-.33,-.33,-.32,-.32,-.32,-.32,-.32,-.32,-.31,-.31,-.3,-.31,-.31,-.3,-.28,-.27,-.27,-.24,-.23,-.23,-.24,-.26,-.26,-.28,-.26,-.26,-.28,-.28,-.26,-.26,-.3,-.31,-.33,-.32,-.31,-.3,-.28,-.29,-.29,-.28,-.27,-.27,-.28,-.27,-.25,-.25,-.23,-.2,-.2,-.2,-.22,-.23,-.26,-.29,-.26,-.25,-.24,-.21,-.21,-.24,-.28,-.26,-.26,-.28,-.26,-.27,-.29,-.27,-.24,-.23,-.27,-.28,-.27,-.25,-.23,-.22,-.21,-.15,-.14,-.19,-.21,-.23,-.21,-.18,-.16,-.16,-.17,-.17,-.16,-.13,-.12,-.13,-.13,-.09,-.06,-.07,-.09,-.11,-.1,-.06,-.06,-.09,-.09,-.08,-.06,-.05,-.05,-.05,-.03,-.05,-.05,-.08,-.08,-.06,-.05,-.08,-.11,-.11,-.11,-.09,-.08,-.09,-.07,-.07,-.11,-.14,-.18,-.23,-.27,-.29,-.32,-.36,-.36,-.4,-.41,-.44,-.45,-.45,-.44,-.44,-.43,-.39,-.37,-.32,-.29,-.26,-.24,-.2,-.14,-.13,-.1,-.1,-.06,-.05,-.08,-.08,-.08,-.07,-.06,-.07,-.07,-.1,-.1,-.1,-.08,-.04,-.03,-.03,-.04,-.04,-.06,-.08,-.1,-.14,-.15,-.17,-.12,-.09,-.04,-.02,.01,.02,.01,-.01,0,.01,.02,.02,0,.01,.01,-.01,0,0,0,-.01,-.02,-.01,-.03,-.07,-.09,-.09,-.1,-.12,-.12,-.13,-.18,-.13,-.08,-.03,.02,.07,.07,.06,.07,.04,.03,.04,.05,.05,.06,.02,.03,.01,-.03,-.03,-.04,-.06,-.09,-.12,-.17,-.21,-.23,-.19,-.16,-.15,-.15,-.13,-.07,-.02,.03,.02,0,-.01,-.04,-.1,-.1,-.09,-.1,-.11,-.12,-.12,-.16,-.12,-.11,-.1,-.1,-.1,-.07,-.03,-.03,-.03,-.02,0,.02,.08,.12,.14,.13,.16,.14,.18,.19,.19,.22,.22,.19,.22,.22,.27,.3,.27,.25,.26,.28,.25,.21,.17,.17,.16,.14,.09,.05,.02,.01,-.01,-.05,-.08,-.11,-.14,-.01,.06,.12,.15,.18,.24,.29,.33,.34,.37,.34,.32,.29,.23,.2,.18,.21,.23,.2,.16,.13,.1,.12,.14,.11,.08,.1,.09,.06,.05,.05,.02,.03,.09,.17,.24,.31,.29,.29,.29,.26,.23,.2,.19,.16,.15,.13,.11,.09,.07,.04,0,-.06,-.03,0,.03,.06,.08,.11,.14,.13,.16,.16,.19,.19,.17,.2,.2,.21,.22,.28,.32,.33,.29,.3,.32,.32,.34,.34,.35,.37,.35,.32,.32,.28,.27,.25,.23,.24,.24,.27,.25,.22,.15,.12,.1,.08,.02,-.01,.03,.08,.14,.21,.27,.29,.36,.37,.34,.33,.32,.32,.28,.23,.18,.26,.32,.35,.38,.39,.35,.31,.3,.3,.3,.28,.29,.28,.28,.3,.32,.3,.27,.27,.28,.23,.23,.29,.3,.28,.3,.29,.3,.32,.34,.36,.36,.33,.3,.28,.27,.24,.2,.14,.07,.01,-.01,0,-.04,-.06,-.02,-.02,.04,.07,.09,.17,.18,.17,.21,.21,.19,.18,.14,.11,.07,.04,-.01,-.08,-.14,-.17,-.2,-.22,-.26,-.24,-.19,-.18,-.18,-.16,-.15,-.16,-.15,-.12,-.12,-.13,-.15,-.18,-.23,-.23,-.25,-.27,-.32,-.35,-.35,-.37,-.37,-.37,-.37,-.38,-.39,-.41,-.41,-.42,-.42,-.43,-.42,-.42,-.43,-.43,-.43,-.43,-.42,-.42,-.41,-.38,-.35]]},{name:\"rainier\",azFrom:138,count:241,elevDeg:[[-.16,-.19,-.21,-.24,-.27,-.3,-.28,-.25,-.24,-.24,-.23,-.22,-.21,-.2,-.19,-.19,-.2,-.2,-.21,-.22,-.23,-.23,-.24,-.23,-.22,-.21,-.19,-.18,-.17,-.16,-.15,-.14,-.13,-.12,-.11,-.1,-.09,-.08,-.07,-.06,-.05,-.05,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.05,-.05,-.05,-.05,-.06,-.06,-.06,-.06,-.07,-.07,-.07,-.08,-.08,-.08,-.09,-.09,-.1,-.11,-.11,-.1,-.09,-.08,-.07,-.06,-.05,-.04,-.03,-.02,-.02,-.01,-.01,0,0,.01,.01,.01,.01,.02,.02,.02,.02,.02,.02,.02,.02,.02,.02,.01,.01,.01,.01,0,0,0,-.01,0,0,0,0,0,0,.01,.01,.01,.02,.02,.02,.02,.02,.02,.01,.01,.01,0,0,-.01,-.01,0,0,-.01,-.01,-.02,-.03,-.03,-.03,-.03,-.04,-.04,-.04,-.03,-.03,-.03,-.03,-.02,-.02,-.02,-.02,-.02,-.02,-.02,-.03,-.04,-.06,-.07,-.09,-.1,-.12,-.12,-.13,-.14,-.14,-.15,-.16,-.17,-.18,-.18,-.19,-.2,-.2,-.21,-.22,-.23,-.24,-.24,-.25,-.26,-.27,-.28,-.29,-.3,-.31,-.31,-.32,-.32,-.32,-.31,-.3,-.3,-.29,-.29,-.3,-.3,-.31,-.32,-.32,-.32,-.33,-.34,-.35,-.37,-.39,-.41,-.43,-.44,-.46,-.47,-.48,-.5,-.51,-.51,-.51,-.51,-.51,-.51,-.51,-.51,-.51,-.51,-.51,-.51,-.51,-.52,-.52,-.51,-.5],[.05,.04,.04,.03,.03,.04,.05,.05,.05,.05,.05,.06,.06,.06,.06,.06,.07,.09,.1,.1,.1,.09,.07,.06,.05,.04,.03,.03,.03,.02,.02,.02,.02,.02,.02,.02,.02,.02,.02,.02,.03,.03,.03,.03,.03,.03,.03,.04,.04,.04,.04,.05,.06,.06,.07,.07,.07,.07,.07,.07,.07,.07,.06,.06,.05,.04,.04,.04,.04,.03,.03,.02,.02,.02,.02,.02,.02,.02,.02,.02,.02,.02,.02,.02,.03,.02,.01,.01,.01,.01,.02,.02,.02,.02,.01,.01,.01,.02,.03,.03,.03,.03,.04,.04,.04,.04,.04,.04,.04,.04,.03,.03,.03,.02,.02,.03,.04,.05,.06,.06,.06,.06,.06,.07,.07,.07,.07,.07,.08,.08,.08,.08,.08,.07,.07,.07,.06,.06,.05,.05,.04,.04,.03,.03,.03,.02,.01,0,.01,.02,.02,.02,.01,.01,.01,.01,0,0,0,0,-.01,-.01,-.01,-.01,-.02,-.02,-.03,-.03,-.04,-.04,-.04,-.05,-.06,-.06,-.06,-.06,-.06,-.06,-.06,-.06,-.06,-.06,-.06,-.06,-.06,-.06,-.06,-.06,-.06,-.06,-.07,-.08,-.08,-.08,-.08,-.08,-.09,-.09,-.09,-.1,-.1,-.11,-.12,-.13,-.14,-.14,-.15,-.17,-.19,-.2,-.17,-.17,-.15,-.13,-.13,-.12,-.12,-.12,-.11,-.11,-.11,-.1,-.09,-.09,-.09,-.08,-.08,-.07,-.07,-.06,-.05,-.04,-.03,-.02,-.01,0,.01,.02,.02,.03,.04],[.82,.81,.78,.76,.75,.76,.76,.75,.73,.76,.79,.79,.81,.82,.82,.82,.8,.8,.8,.78,.74,.69,.64,.62,.6,.58,.56,.55,.54,.58,.58,.56,.55,.56,.58,.58,.58,.57,.6,.61,.6,.6,.61,.6,.59,.57,.56,.55,.54,.54,.51,.48,.47,.46,.44,.43,.39,.34,.28,.25,.23,.2,.2,.2,.18,.15,.15,.18,.21,.22,.21,.2,.19,.17,.16,.12,.08,.09,.1,.08,.07,.06,.03,.03,.04,.04,.08,.11,.13,.13,.13,.11,.11,.12,.12,.12,.13,.14,.12,.16,.17,.14,.06,0,0,0,-.01,-.01,-.01,-.01,-.01,-.02,-.02,-.01,-.03,-.02,-.01,.05,.11,.18,.2,.16,.15,.13,.11,.08,.04,.02,.02,.03,-.02,.04,.09,.08,.07,.01,-.06,-.05,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.04,-.03,-.03,-.03,-.03,-.03,-.02,-.02,-.02,-.02,-.02,-.03,-.02,-.02,-.02,-.03,-.03,-.03,-.04,-.04,-.04,-.04,-.04,-.03,-.03,-.03,-.04,-.04,-.04,-.04,-.05,-.05,-.05,-.04,-.04,-.04,-.04,-.05,-.05,-.05,-.05,-.06,-.06,-.06,-.07,-.07,-.08,-.08,-.08,-.08,-.09,-.09,-.08,-.07,-.07,-.07,-.07,-.07,-.07,-.06,-.06,-.06,-.06,-.07,-.07,-.08,-.09,-.08,-.09,-.09,-.1,-.1,-.1,-.1,-.1,-.09,-.09,-.08,-.08,-.08,-.06,-.05,-.05,-.05,-.06,-.07,-.07,-.08,-.07,-.07,-.07,-.05,-.05,-.06,-.06],[.81,.78,.76,.77,.76,.79,.8,.78,.76,.72,.76,.78,.77,.81,.82,.81,.79,.75,.71,.72,.74,.74,.75,.74,.76,.75,.74,.75,.75,.73,.79,.79,.79,.79,.76,.76,.73,.71,.76,.75,.73,.74,.73,.74,.79,.8,.82,.84,.86,.82,.79,.78,.8,.82,.8,.78,.79,.79,.77,.75,.75,.81,.8,.76,.8,.82,.8,.79,.81,.83,.8,.82,.81,.8,.83,.83,.83,.84,.87,.9,.93,.92,.93,.91,.87,.88,.89,.89,.89,.89,.89,.89,.89,.91,.93,.93,.93,.9,.88,.87,.9,.93,.93,.96,.96,.98,1.01,1.01,.98,1,1.02,1.04,1.06,1.11,1.16,1.14,1.14,1.17,1.22,1.24,1.3,1.38,1.45,1.48,1.45,1.39,1.38,1.4,1.45,1.5,1.56,1.62,1.69,1.75,1.81,1.87,1.93,1.99,2.06,2.1,2.12,2.13,2.13,2.13,2.12,2.08,2.07,2.05,1.99,1.92,1.87,1.83,1.76,1.7,1.63,1.58,1.51,1.47,1.42,1.35,1.28,1.24,1.22,1.17,1.17,1.16,1.17,1.16,1.13,1.08,1.05,1.02,.99,.97,.96,.94,.92,.94,.93,.91,.86,.84,.83,.81,.79,.76,.77,.73,.72,.7,.68,.66,.66,.66,.67,.63,.58,.57,.56,.55,.55,.57,.55,.54,.53,.52,.51,.48,.47,.46,.43,.42,.39,.38,.45,.48,.56,.58,.55,.52,.53,.57,.57,.55,.58,.54,.52,.51,.52,.54,.56,.53,.5,.48,.46,.44,.42,.4,.39,.4,.41],[.58,.58,.57,.59,.59,.55,.54,.55,.56,.55,.54,.5,.47,.47,.43,.42,.45,.49,.49,.48,.47,.43,.42,.45,.46,.44,.4,.4,.43,.47,.45,.43,.4,.37,.4,.39,.38,.37,.38,.4,.39,.39,.45,.43,.49,.49,.5,.52,.54,.52,.48,.46,.45,.42,.38,.38,.39,.39,.38,.37,.38,.41,.39,.36,.34,.34,.33,.32,.33,.34,.42,.43,.38,.32,.33,.32,.3,.29,.27,.32,.32,.31,.28,.25,.23,.23,.24,.23,.23,.22,.23,.25,.27,.28,.3,.27,.26,.31,.36,.37,.36,.34,.32,.3,.29,.28,.3,.3,.3,.28,.31,.32,.33,.29,.27,.27,.28,.28,.27,.29,.36,.34,.34,.35,.32,.3,.33,.36,.36,.31,.29,.29,.29,.3,.33,.36,.35,.38,.45,.51,.52,.5,.48,.46,.43,.49,.51,.55,.58,.61,.57,.58,.54,.5,.47,.43,.36,.28,.26,.21,.14,.09,.09,.15,.26,.35,.4,.44,.4,.33,.31,.28,.26,.27,.24,.23,.22,.2,.22,.26,.31,.31,.34,.37,.35,.34,.31,.32,.33,.31,.35,.33,.26,.23,.21,.21,.2,.19,.18,.21,.22,.23,.26,.27,.28,.2,.17,.14,.14,.16,.16,.16,.17,.17,.17,.16,.17,.2,.24,.21,.2,.23,.21,.23,.28,.26,.24,.25,.26,.27,.29,.27,.27,.27,.33,.36,.41,.37,.34,.31,.29]]}]};// </ridgeline-data>\n// <ridgeline-data-sky>\n/* Generated by case-study-reviews/footer-ridgeline/framer/extract-sky-data.py. Do not edit by hand. */const RIDGELINE_DATA_SKY={source:\"Kerry Park, Seattle (47.62949, -122.3599), eye 101.57 m; Mapzen/AWS Terrain Tiles, Terrarium encoding, zoom 11 (s3.amazonaws.com/elevation-tiles-prod/terrarium); ray-marched per dem/METHOD.md, refraction k 0.13; bands >= 3 km, 0.2 deg step (max of four 0.05 deg rays), 3 decimals; generated by framer/extract-sky-data.py\",azimuthStepDeg:.2,bands:[{name:\"mid-near\",minKm:3,maxKm:12},{name:\"mid\",minKm:12,maxKm:30},{name:\"mid-far\",minKm:30,maxKm:60},{name:\"far\",minKm:60,maxKm:110},{name:\"horizon\",minKm:110,maxKm:170}],windows:[{name:\"olympics\",azFrom:248,count:266,elevDeg:[[-.256,-.259,-.263,-.283,-.31,-.34,-.372,-.372,-.38,-.398,-.431,-.446,-.443,-.448,-.452,-.458,-.428,-.396,-.382,-.377,-.362,-.355,-.33,-.319,-.311,-.312,-.312,-.311,-.296,-.288,-.279,-.278,-.27,-.26,-.251,-.242,-.235,-.232,-.225,-.214,-.204,-.2,-.2,-.201,-.188,-.174,-.17,-.166,-.162,-.159,-.158,-.157,-.159,-.16,-.162,-.165,-.171,-.179,-.186,-.186,-.189,-.196,-.209,-.221,-.233,-.246,-.259,-.273,-.288,-.303,-.319,-.333,-.35,-.374,-.399,-.409,-.413,-.419,-.429,-.441,-.452,-.463,-.473,-.481,-.488,-.493,-.505,-.53,-.529,-.528,-.522,-.499,-.482,-.468,-.456,-.44,-.423,-.406,-.393,-.38,-.369,-.358,-.347,-.337,-.322,-.304,-.289,-.284,-.285,-.291,-.283,-.277,-.271,-.262,-.257,-.257,-.259,-.264,-.259,-.249,-.241,-.237,-.237,-.239,-.248,-.258,-.255,-.25,-.25,-.251,-.26,-.254,-.243,-.246,-.259,-.26,-.257,-.257,-.252,-.245,-.243,-.249,-.251,-.249,-.252,-.256,-.253,-.26,-.259,-.26,-.264,-.272,-.28,-.288,-.295,-.298,-.302,-.308,-.316,-.326,-.336,-.346,-.357,-.372,-.389,-.414,-.444,-.483,-.485,-.472,-.476,-.472,-.477,-.483,-.494,-.502,-.519,-.522,-.52,-.509,-.492,-.474,-.451,-.432,-.414,-.398,-.386,-.369,-.352,-.335,-.318,-.301,-.284,-.267,-.259,-.256,-.241,-.224,-.204,-.183,-.166,-.154,-.142,-.126,-.11,-.094,-.079,-.061,-.042,-.025,-.008,.008,.016,.016,.025,.027,.027,.028,.03,.038,.045,.049,.051,.051,.053,.057,.06,.063,.066,.067,.064,.066,.068,.07,.071,.072,.072,.076,.079,.081,.081,.079,.082,.091,.108,.121,.14,.162,.186,.208,.213,.207,.196,.189,.181,.172,.164,.161,.16,.155,.151,.151,.152,.152,.154,.154],[-.091,-.074,-.041,-.021,-.019,-.025,-.031,-.017,.018,.055,.075,.073,.118,.189,.205,.254,.263,.332,.361,.361,.361,.297,.271,.237,.281,.286,.282,.269,.192,.157,.098,.139,.146,.149,.163,.153,.114,.149,.181,.196,.209,.218,.225,.226,.227,.226,.228,.228,.223,.219,.194,.169,.148,.124,.098,.091,.075,.054,.033,.032,.029,.028,.019,.033,.04,.043,.054,.056,.055,.054,.052,.052,.048,.044,.045,.047,.051,.05,.033,.029,.026,.027,.027,.024,.013,.012,.01,.004,.002,.001,.005,.014,.017,.021,.024,.028,.028,.027,.026,.025,.023,.021,.018,.012,.005,.005,.005,.001,-.001,-.003,-.007,-.008,-.006,-.002,.001,.008,.013,.013,.022,.024,.026,.028,.027,.032,.023,.02,.016,.003,-.005,-.014,-.034,-.03,-.024,-.018,-.012,-.007,-.003,.003,.005,.006,.009,.011,.012,.012,.011,.006,.001,-.006,-.015,-.024,-.035,-.042,-.042,-.043,-.043,-.044,-.045,-.048,-.049,-.052,-.052,-.048,-.046,-.042,-.04,-.038,-.035,-.032,-.032,-.033,-.033,-.03,-.029,-.029,-.028,-.029,-.031,-.031,-.033,-.035,-.035,-.043,-.045,-.041,-.039,-.04,-.043,-.058,-.051,-.052,-.05,-.046,-.046,-.045,-.045,-.05,-.054,-.059,-.061,-.066,-.072,-.065,-.063,-.057,-.051,-.045,-.041,-.035,-.032,-.031,-.021,-.02,-.018,-.014,-.013,-.013,-.009,-.007,-.006,-.006,-.008,-.009,-.01,-.01,-.012,-.015,-.022,-.021,-.02,-.021,-.021,-.021,-.02,-.025,-.024,-.024,-.024,-.026,-.027,-.028,-.022,-.024,-.028,-.029,-.031,-.035,-.033,-.035,-.042,-.038,-.039,-.041,-.042,-.038,-.022,-.009,0,0,0,0,-.005,-.016,-.027,-.027,-.025,-.012],[-.062,-.055,-.052,-.049,-.038,-.023,-.011,-.003,.008,.048,.075,.117,.197,.238,.271,.319,.354,.401,.439,.47,.463,.445,.435,.398,.355,.318,.319,.399,.459,.542,.595,.587,.615,.597,.559,.538,.519,.489,.441,.368,.274,.217,.264,.345,.405,.483,.512,.547,.545,.545,.507,.468,.44,.483,.509,.512,.478,.447,.491,.556,.576,.546,.543,.483,.492,.451,.446,.49,.49,.446,.442,.465,.44,.453,.433,.452,.438,.46,.428,.391,.303,.304,.387,.468,.563,.659,.778,.782,.756,.625,.453,.495,.544,.613,.695,.718,.696,.66,.637,.728,.777,.856,.896,.893,.945,.948,1.005,1.014,1.016,1.034,1.084,1.045,1.107,1.179,1.215,1.246,1.204,1.14,1.182,1.267,1.343,1.353,1.452,1.583,1.692,1.665,1.643,1.649,1.536,1.426,1.351,1.41,1.414,1.4,1.39,1.371,1.296,1.287,1.228,1.116,1.008,.853,.745,.604,.457,.355,.285,.441,.56,.722,.877,.999,1.096,1.216,1.316,1.394,1.486,1.536,1.498,1.427,1.328,1.276,1.291,1.296,1.185,1.046,1.003,1.008,.956,.891,.856,.942,1.033,1.128,1.183,1.268,1.36,1.393,1.567,1.667,1.715,1.688,1.708,1.653,1.678,1.756,1.837,1.856,1.89,1.899,1.802,1.669,1.469,1.316,1.471,1.493,1.519,1.503,1.408,1.445,1.4,1.504,1.473,1.287,1.25,1.344,1.519,1.516,1.493,1.475,1.536,1.542,1.474,1.481,1.388,1.326,1.381,1.387,1.379,1.438,1.43,1.474,1.556,1.574,1.661,1.663,1.673,1.606,1.578,1.593,1.589,1.576,1.58,1.58,1.569,1.538,1.503,1.499,1.475,1.435,1.389,1.449,1.477,1.496,1.514,1.534,1.523,1.499,1.479,1.406,1.354,1.307,1.283,1.247,1.144,1.116,1.125,1.141,1.112,1.111,1.105,1.062,.982,.978,1.039,1.064],[.163,.173,.163,.169,.195,.211,.155,.129,.144,.207,.201,.131,.151,.161,.165,.206,.21,.218,.25,.306,.324,.332,.332,.328,.286,.247,.336,.402,.441,.434,.422,.449,.434,.412,.453,.438,.452,.506,.536,.508,.444,.458,.423,.333,.386,.464,.471,.474,.603,.622,.593,.621,.667,.675,.638,.702,.739,.839,.917,.988,1.063,1.14,1.09,1.12,1.235,1.258,1.167,1.053,.93,.953,1,1.052,1.07,1.14,1.181,1.204,1.134,1.113,1.137,1.12,1.021,.995,1.068,1.084,1.001,.992,.937,.899,.872,.909,.966,1,1.093,1.166,1.22,1.201,1.112,1.085,1.145,1.222,1.309,1.305,1.301,1.249,1.193,1.237,1.267,1.251,1.199,1.195,1.146,1.146,1.13,1.136,1.148,1.255,1.271,1.275,1.256,1.189,1.194,1.171,1.149,1.164,1.219,1.221,1.178,1.167,1.071,1.089,1.109,1.145,1.152,1.116,1.083,1.124,1.177,1.13,1.275,1.318,1.263,1.213,1.305,1.319,1.301,1.217,1.181,1.199,1.236,1.263,1.269,1.357,1.341,1.338,1.341,1.239,1.239,1.186,1.147,1.217,1.263,1.293,1.256,1.254,1.252,1.214,1.188,1.181,1.181,1.133,1.183,1.166,1.169,1.253,1.259,1.349,1.367,1.417,1.484,1.546,1.572,1.672,1.739,1.731,1.788,1.859,1.839,1.793,1.787,1.732,1.677,1.644,1.608,1.713,1.767,1.738,1.636,1.609,1.654,1.659,1.634,1.564,1.536,1.558,1.549,1.587,1.634,1.612,1.562,1.477,1.476,1.455,1.46,1.547,1.607,1.634,1.651,1.638,1.61,1.621,1.582,1.586,1.628,1.654,1.666,1.633,1.522,1.524,1.508,1.522,1.472,1.454,1.413,1.407,1.409,1.344,1.322,1.31,1.37,1.377,1.327,1.262,1.209,1.189,1.208,1.218,1.272,1.315,1.314,1.222,1.22,1.166,1.13,1.093,1.073,1.038,.994,.974,.919,.945,.957,.98,.893,.895,.834,.748],[-.344,-.335,-.328,-.332,-.319,-.32,-.316,-.307,-.303,-.306,-.285,-.267,-.229,-.235,-.256,-.261,-.262,-.26,-.259,-.314,-.31,-.282,-.287,-.267,-.267,-.254,-.228,-.195,-.205,-.235,-.257,-.242,-.206,-.242,-.259,-.26,-.273,-.238,-.235,-.272,-.231,-.215,-.137,-.188,-.207,-.156,-.163,-.16,-.119,-.126,-.063,-.065,-.099,-.057,-.086,-.058,-.051,-.03,-.046,-.076,-.049,-.077,-.107,-.077,-.065,-.074,-.136,-.226,-.289,-.36,-.401,-.441,-.442,-.427,-.368,-.286,-.236,-.145,-.098,-.061,-.052,-.077,-.061,-.074,-.096,-.078,-.025,-.025,-.044,-.082,-.137,-.123,-.042,.012,.018,-.001,.019,.022,.015,.003,0,-.015,-.012,-.066,-.092,-.119,-.127,-.078,.023,.07,.065,.044,.046,.055,.025,.011,-.033,-.062,-.12,-.208,-.161,-.147,-.071,.029,.023,-.013,-.099,-.088,-.111,-.124,-.107,-.102,-.065,-.03,-.016,.021,.123,.141,.159,.186,.222,.219,.224,.301,.267,.279,.25,.175,.158,.089,.021,-.014,-.076,-.009,.119,.183,.286,.341,.368,.316,.232,.207,.231,.16,.121,.14,.099,.087,.05,.028,.17,.31,.292,.29,.231,.19,.152,.109,.065,-.004,.004,.061,.111,.136,.164,.191,.197,.213,.275,.325,.299,.317,.343,.372,.355,.32,.265,.238,.269,.254,.151,.099,.019,.081,.214,.29,.372,.342,.32,.283,.255,.348,.385,.352,.297,.304,.286,.3,.315,.272,.275,.286,.296,.296,.323,.359,.358,.3,.272,.199,.072,-.003,-.042,-.017,.065,.171,.183,.212,.187,.138,.066,-.011,-.144,-.201,-.238,-.178,-.157,-.154,-.119,-.12,-.154,-.226,-.248,-.322,-.354,-.368,-.372,-.389,-.414,-.424,-.424,-.431,-.426,-.424,-.379,-.331]]},{name:\"rainier\",azFrom:138,count:123,elevDeg:[[-.162,-.215,-.269,-.254,-.236,-.216,-.2,-.192,-.198,-.21,-.225,-.231,-.208,-.183,-.164,-.144,-.121,-.102,-.076,-.061,-.048,-.04,-.04,-.035,-.035,-.038,-.037,-.039,-.041,-.038,-.036,-.035,-.041,-.046,-.051,-.055,-.059,-.065,-.068,-.079,-.091,-.101,-.097,-.078,-.059,-.041,-.024,-.012,-.002,.006,.012,.017,.021,.022,.021,.018,.016,.012,.006,0,-.004,-.003,-.001,.006,.014,.018,.019,.018,.013,.007,-.002,-.003,-.002,-.014,-.028,-.032,-.036,-.031,-.029,-.023,-.017,-.016,-.02,-.032,-.061,-.089,-.12,-.128,-.142,-.158,-.176,-.188,-.205,-.222,-.239,-.251,-.273,-.293,-.309,-.316,-.311,-.299,-.292,-.298,-.312,-.315,-.328,-.353,-.39,-.428,-.456,-.477,-.509,-.509,-.509,-.509,-.509,-.509,-.512,-.507,-.49,-.47,-.462],[.054,.039,.04,.049,.052,.055,.056,.06,.086,.103,.103,.072,.046,.034,.025,.024,.019,.016,.016,.019,.031,.033,.033,.035,.038,.049,.063,.071,.073,.073,.073,.063,.047,.039,.035,.029,.021,.022,.024,.023,.021,.024,.025,.014,.015,.021,.021,.009,.02,.028,.033,.038,.04,.041,.04,.032,.026,.032,.053,.062,.061,.067,.071,.075,.078,.079,.077,.07,.063,.053,.045,.032,.025,.012,.022,.022,.012,.009,.004,-.001,-.005,-.009,-.017,-.028,-.035,-.044,-.059,-.061,-.062,-.059,-.059,-.059,-.061,-.058,-.059,-.07,-.077,-.078,-.085,-.092,-.102,-.121,-.139,-.15,-.187,-.166,-.134,-.122,-.115,-.111,-.1,-.091,-.083,-.073,-.058,-.036,-.017,.001,.016,.028,.044,.057,.061],[.822,.782,.755,.755,.76,.794,.821,.821,.8,.801,.739,.644,.599,.565,.576,.577,.565,.58,.579,.606,.602,.608,.591,.561,.541,.511,.466,.441,.393,.276,.229,.198,.18,.179,.223,.214,.186,.157,.088,.095,.07,.034,.039,.109,.134,.127,.118,.117,.138,.157,.166,.062,.001,-.005,-.011,-.012,-.014,-.022,.05,.184,.205,.146,.107,.036,.026,.036,.087,.075,-.047,-.039,-.035,-.041,-.042,-.034,-.032,-.027,-.02,-.016,-.022,-.024,-.024,-.029,-.036,-.036,-.034,-.031,-.035,-.042,-.048,-.045,-.044,-.044,-.051,-.054,-.062,-.065,-.078,-.079,-.085,-.074,-.072,-.069,-.063,-.063,-.064,-.071,-.084,-.087,-.096,-.096,-.092,-.084,-.077,-.049,-.046,-.06,-.072,-.066,-.05,-.047,-.058,-.067,-.064],[.812,.774,.792,.797,.759,.782,.814,.817,.793,.717,.743,.75,.761,.746,.75,.788,.791,.764,.734,.757,.737,.745,.801,.843,.862,.789,.823,.803,.793,.77,.809,.798,.818,.8,.832,.816,.807,.834,.842,.904,.934,.925,.876,.888,.889,.892,.907,.927,.927,.884,.929,.956,.978,1.013,1.003,1.038,1.114,1.162,1.17,1.244,1.377,1.477,1.452,1.399,1.503,1.619,1.753,1.871,1.989,2.102,2.132,2.134,2.125,2.074,1.99,1.866,1.758,1.632,1.515,1.421,1.28,1.217,1.165,1.172,1.131,1.046,.989,.959,.936,.934,.858,.834,.789,.768,.717,.682,.657,.673,.584,.561,.571,.546,.533,.507,.471,.434,.394,.48,.581,.554,.57,.573,.576,.518,.535,.557,.504,.458,.418,.403,.43,.442,.475],[.585,.591,.586,.549,.555,.543,.471,.429,.491,.489,.47,.45,.463,.404,.465,.452,.402,.4,.379,.397,.389,.447,.486,.519,.535,.483,.451,.384,.387,.376,.406,.392,.337,.329,.343,.432,.38,.328,.299,.32,.317,.284,.233,.236,.233,.246,.285,.296,.307,.369,.363,.32,.295,.303,.305,.318,.325,.272,.285,.291,.36,.348,.319,.365,.357,.287,.305,.358,.376,.507,.523,.483,.487,.548,.606,.583,.537,.471,.362,.262,.137,.149,.347,.438,.402,.312,.273,.243,.224,.263,.313,.369,.351,.323,.331,.354,.262,.215,.204,.207,.227,.267,.281,.175,.157,.164,.172,.171,.197,.24,.225,.227,.276,.248,.267,.289,.274,.357,.405,.34,.288,.28,.266]]}]};// </ridgeline-data-sky>\n/* ------------------------------------------------------------------ options *//*\n * Sky-glow profile of the silhouette model (also the default of the glow options). The glow\n * sits right above the skyline and thins out over `glowLength` band-heights:\n *   \"pow\": haze = pow(max(0, 1 - dist / glowLength), glowPow)   (exactly 0 at glowLength)\n *   \"exp\": haze = exp(-(dist / (0.55 * glowLength))^2)          (the original Gaussian-ish tail)\n * and L = glow * haze, before the cloud noise and topFade.\n */const SILHOUETTE_GLOW={glow:.55,glowLength:.6,glowCurve:\"pow\",glowPow:1.6};const RIDGELINE_DEFAULTS=Object.freeze({data:null,host:null,// render mode\nrenderMode:\"tone\",// \"dither\": the ordered-dither dots (dotCell, dotShape, inkSoftness, tail dissolve)\ngrain:.015,// Any value > 0 also guarantees a +-1 8-bit-step dither, so dark gradients never band.\n// Masked like L: none in the clean bottom strip, none above the top fade.\ngrainAnimated:false,bodySmooth:.0175,// of the composition width (= the band width on desktop). 0 = each column's own crest.\n// tone\ntoneModel:\"silhouette\",crestAccent:true,// Sky glow above the skyline, and how it thins towards the top of the band.\nglow:SILHOUETTE_GLOW.glow,glowLength:SILHOUETTE_GLOW.glowLength,glowCurve:SILHOUETTE_GLOW.glowCurve,glowPow:SILHOUETTE_GLOW.glowPow,// Deprecated aliases of glow / glowLength: when not null they win. The lit model keeps its\n// own faint haze (RIDGELINE_TONES.lit) for any glow option still at its default.\nskyGlow:null,skyGlowFalloff:null,// Footer text rectangle: a full-width strip at the bottom with NO dots (L = 0 exactly), and\n// above it a ramp pow(smoothstep(0, 1, t), gamma), t = 0 at the strip's top edge and 1 after\n// bottomFadePx. gamma > 1 = thinning starts slowly and speeds up towards the strip, so the\n// dots dissolve into it with no wall. Applied as the LAST multiplication before dithering,\n// so neither fog nor the hover light can re-light the strip. bottomClearPx 0 turns it off\n// and the older ground fog below applies instead.\nbottomClearPx:96,bottomFadePx:120,bottomFadeGamma:1.4,narrowBottomClearPx:96,narrowBottomFadePx:120,groundFogPx:110,groundInk:.5,// dither\ndotCell:2,narrowDotCell:2,dotShape:\"square\",inkSoftness:.25,gamma:1,blackPoint:0,// terrain\nbands:6,minBandKm:3,belowHorizon:\"terrain\",// occludes; \"none\" = no terrain (punches holes over water)\nverticalExaggeration:2.5,elevToHeight:null,horizonY:.3,elevCurve:1,elevRef:2.2,layerSpread:0,detail:1,// Both windows share one horizontal scale: 48 deg over 0.68 => 0.014167 x/deg, so the\n// 19 deg Rainier window is 0.2692 wide and ends at 0.9892. 0.68..0.72 is the cross-fade.\ncomposition:[{azFrom:250,azTo:298,xFrom:0,xTo:.68},{azFrom:141,azTo:160,xFrom:.72,xTo:.9892}],narrowWidth:900,narrowFocus:.78,samples:2048,// atmosphere\nfogDensity:.6,fogDrift:.025,// pointer light + parallax\nlightRadius:.3,lightStrength:1,parallax:1,// look\nbg:\"#27282a\",ink:\"#d4d4d4\",tint:null,tintAmount:.6,topFade:[.88,1],// The end is clamped so the band's top row is always pure background:\n// the band sits on the page's charcoal and a stray dot row would read\n// as a hard line.\n// behaviour\nreducedMotion:\"auto\",showLuminance:false,interactive:true,pointerMargin:24,staticFrame:false,size:null,maxDpr:2,forceWebGL1:false,forceRGBA8:false,// Loading / failure fallback (live renderer only; staticFrame snapshots ignore all of it)\nfailIfMajorPerformanceCaveat:true,perfGuardFrames:90,perfGuardMs:45,fadeInMs:400});/*\n * Tone tables, luminance 0..1 before dithering. Stops are keyed by a band's\n * distance (midpoint of its km range) and interpolated in log-distance, so any\n * banding of the data maps onto them. Each band is a SOLID body: `top` at its\n * crest easing to `low` 0.25 band-heights below it (and flat beyond).\n */const STOP_KM=[7.5,21,45,85,140]// 3-12, 12-30, 30-60, 60-110, 110-170 km\n;const RIDGELINE_TONES=Object.freeze({silhouette:{top:[.06,.18,.3,.38,.44],low:[.14,.34,.46,.48,.52],light:[1,1,.6,.35,.25],...SILHOUETTE_GLOW,ground:.04},lit:{top:[.8,.58,.42,.3,.22],low:[.62,.44,.3,.2,.14],light:[.15,.4,.8,1,1],glow:.12,glowLength:.25,glowCurve:\"exp\",glowPow:1,ground:.06},fog:[.15,.26,.37,.49,.6],accent:.06});function toneAt(arr,km){const x=Math.log(Math.max(km,.1));const ks=STOP_KM.map(Math.log);if(x<=ks[0])return arr[0];for(let i=1;i<ks.length;i++){if(x<=ks[i])return lerp(arr[i-1],arr[i],(x-ks[i-1])/(ks[i]-ks[i-1]));}return arr[arr.length-1];}/*\n * renderMode \"sky\" (v7, 2026-10-14): the footer-v2 \"V1 Night\" look from\n * case-study-reviews/footer-ridgeline/v2/ridgeline-v2.js, r2 (V2_DEFAULTS + V2_VARIANTS[1], dumped by\n * framer/patch7.py). Footer text sits at the TOP of the block (DOM), the sky with drifting domain-warped\n * clouds fills the middle (four layers plus a low bank between ridge layers), the DEM ridges the lower\n * part, and the nearest band runs out at the bottom as dark ground. Film grain boils at grainFps,\n * cross-faded. The component exposes only grainAmount, grainFps, cloudSpeed, clouds and lightStrength.\n */const SKY_OPTIONS=Object.freeze({bands:6,minBandKm:3,belowHorizon:\"terrain\",verticalExaggeration:2.7,horizonPx:96,narrowHorizonPx:105,detail:1,composition:[{\"azFrom\":250,\"azTo\":298,\"xFrom\":0,\"xTo\":.68},{\"azFrom\":141,\"azTo\":160,\"xFrom\":.72,\"xTo\":.9892}],narrowWidth:780,narrowFocus:.78,narrowZoom:1.3,narrowVerticalExaggeration:3.4,samples:2048,bodySmooth:.0175,parallax:1,tones:{\"top\":[.05,.14,.24,.29,.36],\"low\":[.08,.22,.33,.36,.42],\"light\":[.25,.45,.6,.7,.7]},groundL:.02,groundPx:80,skyTop:0,skyHorizon:.05,glow:.495,glowLengthPx:150,glowBlurPx:120,topFadePx:[200,108],narrowTopFadePx:[170,104],grainTopFadePx:120,clouds:1,cloudSpeed:1,cloudDriftPx:[3.6,6,10.2,13.2],cloudEvolve:.006,cloudCover:[.36,.52,.6,.5],cloudAlpha:[.42,.9,.92,.5],cloudLit:.4,cloudShade:.136,cloudGlowLift:.24,cloudLight:.5,bankAfter:2,mistAfter:1,bankBlurPx:90,bankLift:.55,bankFloorPx:14,bankHaze:.5,bankAbovePx:46,bankBelowPx:40,mistPx:40,wispScale:[200,62],wispWarp:[2.6,1.9],wispWander:.9,wispBreakup:.55,grainAmount:.03,grainFps:3,grainSize:2.6,grainShadow:.3,vignette:0,bg:\"#27282a\",ink:\"#d6d6d6\",inkMid:null,lightRadiusPx:240,lightStrength:.7,maxFps:30});/* -------------------------------------------------------------------- shaders */const VS_BODY=`\nATTR vec2 aPos;\nvoid main() { gl_Position = vec4(aPos, 0.0, 1.0); }`;// Uniforms and helpers shared by both render modes.\nconst FS_COMMON=`\nuniform sampler2D uHeights;\nuniform vec2  uRes;        // backing store, device px\nuniform float uCell;       // dither cell, device px (integer)\nuniform float uTime;\nuniform float uBands;      // band groups in use\nuniform vec3  uTexMap;     // u = (x + m) * A + B\nuniform float uEncoded;    // 1 = RGBA8 two-channel heights\nuniform float uPar[6];     // per-band parallax, screen-x units\nuniform float uTop[6];     // per-band tone at the crest\nuniform float uLow[6];     // per-band tone 0.25 band-heights below the crest\nuniform float uFogW[6];    // per-band fog depth weight\nuniform float uLightW[6];  // per-band share of the hover light (silhouette)\nuniform float uTintW[6];   // per-band tint weight\nuniform float uModel;      // 0 = silhouette, 1 = lit\nuniform float uGamma;\nuniform float uBlack;\nuniform float uFog;\nuniform float uDrift;\nuniform vec3  uLight;      // xy = light (uv, y up), z = strength 0..1\nuniform float uLightR;\nuniform float uSoft;\nuniform float uShape;      // 0 square, 1 round\nuniform float uLum;        // 1 = show luminance, no dither\nuniform float uHorizon;\nuniform vec2  uTopFade;    // fade start, fade end (heights from the bottom)\nuniform vec3  uGround;     // x = ground-fog height (band units), y = ground tone, z = ground ink\nuniform vec4  uSky;        // x = glow at the skyline, y = length (band units), z = pow exponent, w = curve (0 exp, 1 pow)\nuniform vec3  uBottom;     // x = clear strip height (band units; 0 = off), y = fade height above it, z = fade gamma\nuniform vec2  uAccent;     // x = crest accent amount, y = its depth (band units)\nuniform vec3  uBg;\nuniform vec3  uInk;\nuniform vec3  uTint;\n\nfloat hash12(vec2 p) {                       // sin-free, stable on mobile GPUs\n    vec3 p3 = fract(vec3(p.xyx) * 0.1031);\n    p3 += dot(p3, p3.yzx + 33.33);\n    return fract((p3.x + p3.y) * p3.z);\n}\nfloat vnoise(vec2 p) {\n    vec2 i = floor(p), f = fract(p);\n    vec2 u = f * f * (3.0 - 2.0 * f);\n    return mix(mix(hash12(i), hash12(i + vec2(1.0, 0.0)), u.x),\n               mix(hash12(i + vec2(0.0, 1.0)), hash12(i + vec2(1.0, 1.0)), u.x), u.y);\n}\nfloat fbm2(vec2 p) {                         // 3 octaves, ~0..1\n    return vnoise(p) * 0.57 + vnoise(p * 2.03 + 17.0) * 0.29 + vnoise(p * 4.01 + 41.0) * 0.14;\n}\n// 2 octaves, stretched horizontally (stratus, not cotton). The octaves drift at\n// different speeds and directions so the fog morphs instead of sliding.\nfloat fogField(vec2 uv, float aspect) {\n    vec2 p = vec2(uv.x * aspect * 2.3, uv.y * 5.0);\n    float d = uTime * uDrift;\n    float n1 = vnoise(p + vec2(d, 0.0));\n    float n2 = vnoise(p * 2.07 + vec2(13.1 - d * 1.7, 7.3 + d * 0.35));\n    return smoothstep(0.30, 0.74, n1 * 0.66 + n2 * 0.34);\n}\n// Ordered dither: classic recursive 8x8 Bayer, values k/64.\nfloat bayer2(vec2 a) { a = floor(a); return fract(dot(a, vec2(0.5, a.y * 0.75))); }\nfloat bayer4(vec2 a) { return bayer2(0.5 * a) * 0.25 + bayer2(a); }\nfloat bayer8(vec2 a) { return bayer4(0.5 * a) * 0.25 + bayer2(a); }\n\nfloat ridge(float row, float x) {\n    vec2 st = vec2((x + uTexMap.x) * uTexMap.y + uTexMap.z, (row + 0.5) / 7.0);\n    vec4 c = TEX(uHeights, st);\n    // Two-channel decode is linear in the channels, so hardware LINEAR filtering\n    // of the encoded texture interpolates the decoded height correctly.\n    if (uEncoded > 0.5) return (c.r * 65280.0 + c.g * 255.0) / 65535.0 * 3.0 - 1.0;\n    return c.r;\n}\n`;// renderMode \"dither\": ordered-dither dots. FS_COMMON + FS_DITHER is exactly the v4 shader,\n// so the dots stay pixel-identical.\nconst FS_DITHER=`\nvoid main() {\n    // Every pixel of a dither cell shades the scene at the cell centre, so a dot\n    // is all-on or all-off: crisp at any DPR, no half dots, no moire.\n    vec2 cell = floor(gl_FragCoord.xy / uCell);\n    vec2 cc = (cell + 0.5) * uCell;\n    vec2 uv = cc / uRes;                     // 0..1, y up\n    float aspect = uRes.x / uRes.y;\n\n    float fogN = fogField(uv, aspect);\n\n    float L = 0.0;        // shaded luminance\n    float Lclear = 0.0;   // same, with no fog\n    float tintW = 0.0;\n    float lightW = 0.0;\n    float grainX = uv.x;\n    float hit = 0.0;\n    float skyPix = 0.0;   // 1 = open sky (its faint tail gets the dissolve below)\n    float hMax = -1.0;    // highest ridge so far at this x (= the skyline, for sky pixels)\n    for (int i = 0; i < 6; i++) {\n        if (float(i) >= uBands) break;\n        float h = ridge(float(i), uv.x + uPar[i]);\n        hMax = max(hMax, h);\n        if (uv.y < h) {                      // nearest band whose ridge is above us\n            float depth = h - uv.y;\n            // A solid body: one tone per layer with a gentle vertical gradient\n            // from its own crest, so layers read as masses, not rims.\n            float tone = mix(uTop[i], uLow[i], smoothstep(0.0, 0.25, depth));\n            tone += uAccent.x * (1.0 - step(uAccent.y, depth));\n            Lclear = tone;\n            L = tone * (1.0 - uFog * fogN * uFogW[i]);\n            tintW = uTintW[i];\n            lightW = uLightW[i];\n            grainX = uv.x + uPar[i];\n            hit = 1.0;\n            break;\n        }\n    }\n\n    vec2 d = (uv - uLight.xy) * vec2(aspect, 1.0);\n    float light = uLight.z * exp(-dot(d, d) / (uLightR * uLightR));\n\n    if (hit < 0.5) {\n        if (uv.y < uHorizon) {               // a hole in the data below the horizon\n            Lclear = uGround.y;\n            L = Lclear;\n        } else {\n            skyPix = 1.0;\n            // Sky: glow right above the skyline, gone ~uSky.y band-heights up,\n            // modulated +-25 % by the fog noise so it reads as cloud. Measured from a\n            // blurred skyline (texture row 6): from the raw one every peak would cast\n            // its own vertical shaft of light.\n            float above = max(uv.y - max(ridge(6.0, uv.x), uHorizon), 0.0);\n            float haze;\n            if (uSky.w > 0.5) {\n                haze = pow(max(0.0, 1.0 - above / uSky.y), uSky.z);   // exactly 0 at uSky.y\n            } else {\n                float k = above / (uSky.y * 0.55);\n                haze = exp(-k * k);\n            }\n            // +-25 % cloud in the body of the glow; in its faint tail the noise gates it\n            // into patches, so the fade never prints as straight rows of single dots.\n            // The cloud swing ramps from +-10 % at the skyline to +-25 % above it, so\n            // the crest keeps a reliable edge against the glow.\n            float swing = mix(0.10, 0.25, smoothstep(0.0, 0.08, above));\n            haze *= (1.0 + swing * (2.0 * fogN - 1.0)) * mix(fogN * 1.4, 1.0, smoothstep(0.08, 0.5, haze));\n            float glow = uSky.x + (uModel < 0.5 ? 0.10 * light : 0.0);   // the light lifts the glow\n            Lclear = glow * haze;\n            L = Lclear;\n        }\n    } else if (uModel < 0.5) {\n        // Silhouette: the light falls mostly on the near and mid bodies, and brings\n        // up terrain grain rather than a flat disc.\n        float grain = 0.6 + 0.4 * fbm2(vec2(grainX * 90.0, uv.y * 40.0));\n        L += light * 0.45 * lightW * grain;\n    } else {\n        // Lit: the light hands back what the fog took and brightens in proportion to\n        // the terrain, so far detail \"develops\" and empty sky stays empty.\n        L += light * lightW * (0.6 * Lclear + (Lclear - L));\n    }\n    L = clamp(L, 0.0, 1.0);\n\n    L *= 1.0 - smoothstep(uTopFade.x, uTopFade.y, uv.y);           // top: fade to bare charcoal\n    // Ground fog: the bottom half of uGround.x sits at the ground tone (the footer\n    // row lives there), the upper half eases back into the terrain.\n    float clearOfGround = smoothstep(0.5 * uGround.x, max(uGround.x, 1e-4), uv.y);\n    L = mix(uGround.y, L, clearOfGround);\n    L = max(L - uBlack, 0.0) / (1.0 - uBlack);\n    L = pow(L, uGamma);\n\n    // Footer text rectangle. LAST multiplication before dithering, so nothing above\n    // (fog, hover light, glow, blackPoint) can put a dot back into the clear strip.\n    // t = 0 at and below the strip's top edge, so L is exactly 0 there.\n    float rampB = 1.0;\n    if (uBottom.x > 0.0) {\n        float tb = clamp((uv.y - uBottom.x) / max(uBottom.y, 1e-4), 0.0, 1.0);\n        rampB = pow(tb * tb * (3.0 - 2.0 * tb), uBottom.z);\n        L *= rampB;\n    }\n\n    float threshold = bayer8(cell) + 0.5 / 64.0;                   // (bayer + 0.5) / 64\n    // Dissolve the faintest tails. Bayer's sparsest levels light one cell per 8x8 block, so a\n    // slowly thinning gradient ends in straight dotted rows and columns (a visible line where\n    // it dies). In the tails only (open sky with a faint glow, and the lower part of the strip's\n    // ramp) a share (tail) of the cells swaps its Bayer threshold for a per-cell random one:\n    // scattered dots. Choosing (not blending) keeps the threshold uniform on 0..1, so the mean\n    // density stays exactly L; averaging two uniforms would starve the low end and drop the\n    // density off a cliff. Mid-tones and the ridge bodies keep the ordered dither.\n    float tail = skyPix * (1.0 - smoothstep(0.03, 0.18, L));\n    if (uBottom.x > 0.0) tail = max(tail, 1.0 - smoothstep(0.0, 0.5, rampB));\n    // The floor keeps L = 0 off for any threshold: the clear strip and the top edge stay bare.\n    if (hash12(cell + 13.3) < tail) threshold = hash12(cell + 71.7);\n    threshold = max(threshold, 0.5 / 64.0);\n    float on = step(threshold, L);\n    if (uShape > 0.5) {                                            // round: a disc inside the cell\n        float r = length(gl_FragCoord.xy - cc);\n        float R = uCell * 0.44;\n        on *= 1.0 - smoothstep(R - 0.55, R + 0.55, r);\n    }\n    float alpha = on * mix(1.0, sqrt(L), uSoft) * mix(uGround.z, 1.0, clearOfGround);\n    vec3 ink = mix(uInk, uTint, tintW);\n    vec3 col = mix(uBg, ink, uLum > 0.5 ? L : alpha);\n    FRAG = vec4(col, 1.0);\n}`;// renderMode \"tone\": continuous luminance at every device pixel, no dots.\nconst FS_TONE=`\nuniform sampler2D uHeightsS;  // per-band crest, Gaussian-smoothed along x: the body gradient's reference\nuniform float uGrain;         // grain amplitude, luminance units (0 = off)\nuniform float uGrainMin;      // dither floor: one 8-bit output step, in luminance units (0 when grain is off)\nuniform float uGrainSeed;     // 0 = static grain; a new value every frame when animated\n\nfloat ridgeS(float row, float x) {\n    vec2 st = vec2((x + uTexMap.x) * uTexMap.y + uTexMap.z, (row + 0.5) / 6.0);\n    vec4 c = TEX(uHeightsS, st);\n    if (uEncoded > 0.5) return (c.r * 65280.0 + c.g * 255.0) / 65535.0 * 3.0 - 1.0;\n    return c.r;\n}\nvec2 hash22(vec2 p) {                        // two decorrelated uniforms, sin-free\n    vec3 p3 = fract(vec3(p.xyx) * vec3(0.1031, 0.1030, 0.0973));\n    p3 += dot(p3, p3.yzx + 33.33);\n    return fract((p3.xx + p3.yz) * p3.zy);\n}\n\nvoid main() {\n    vec2 fc = gl_FragCoord.xy;               // this device pixel's centre\n    vec2 uv = fc / uRes;                     // 0..1, y up\n    float aspect = uRes.x / uRes.y;\n    float fogN = fogField(uv, aspect);\n    vec2 dl = (uv - uLight.xy) * vec2(aspect, 1.0);\n    float light = uLight.z * exp(-dot(dl, dl) / (uLightR * uLightR));\n    float accentPx = uAccent.y * uRes.y;     // crest accent depth, device px\n\n    // Bands composite nearest-first with coverage (front-to-back \"over\"). That is the same\n    // result as L = mix(L, bodyTone, coverage) from the farthest band to the nearest, but\n    // the walk stops as soon as one band covers the pixel completely.\n    float T = 1.0;                           // share of the pixel not yet covered\n    float L = 0.0;\n    float tintW = 0.0;\n    for (int i = 0; i < 6; i++) {\n        if (float(i) >= uBands) break;\n        float x = uv.x + uPar[i];\n        float h = ridge(float(i), x);\n        float dv = (h - uv.y) * uRes.y;      // device px below the crest, measured vertically\n        if (dv <= -16.0) continue;           // well clear of this band\n        // Perpendicular distance to the crest line. The vertical one overstates it on a\n        // steep flank, and the edge would stair-step along x there. The slope comes from\n        // the height texture itself, so no derivatives extension is needed on WebGL1.\n        float sd = dv;\n        if (dv < 16.0) {\n            float dx = 1.0 / uRes.x;\n            float s = (ridge(float(i), x + dx) - ridge(float(i), x - dx)) * 0.5 * uRes.y;\n            sd = dv * inversesqrt(1.0 + s * s);\n        }\n        float cov = clamp(sd + 0.5, 0.0, 1.0);  // ~1 device px of anti-aliasing across the crest\n        if (cov <= 0.0) continue;\n        // Solid body: one tone per layer with a gentle vertical gradient, measured from the\n        // SMOOTHED crest so it is continuous across x. From each column's own crest, every\n        // notch in the ridge would drop a lighter vertical streak through the body.\n        float depth = ridgeS(float(i), x) - uv.y;\n        float tone = mix(uTop[i], uLow[i], smoothstep(0.0, 0.25, depth));\n        tone += uAccent.x * clamp(accentPx - sd + 0.5, 0.0, 1.0);    // thin lift below the crest, AA'd\n        float Lb = tone * (1.0 - uFog * fogN * uFogW[i]);\n        if (light > 1e-4) {                  // hover light: same terms as the dither mode\n            if (uModel < 0.5) {\n                Lb += light * 0.45 * uLightW[i] * (0.6 + 0.4 * fbm2(vec2(x * 90.0, uv.y * 40.0)));\n            } else {\n                Lb += light * uLightW[i] * (0.6 * tone + (tone - Lb));\n            }\n        }\n        float w = T * cov;\n        L += w * clamp(Lb, 0.0, 1.0);\n        tintW += w * uTintW[i];\n        T -= w;\n        if (T <= 0.0) break;\n    }\n\n    if (T > 0.0) {\n        // Sky behind the crests: the dither mode's glow, term for term (see there).\n        float above = max(uv.y - max(ridge(6.0, uv.x), uHorizon), 0.0);\n        float haze;\n        if (uSky.w > 0.5) {\n            haze = pow(max(0.0, 1.0 - above / uSky.y), uSky.z);\n        } else {\n            float k = above / (uSky.y * 0.55);\n            haze = exp(-k * k);\n        }\n        float swing = mix(0.10, 0.25, smoothstep(0.0, 0.08, above));\n        haze *= (1.0 + swing * (2.0 * fogN - 1.0)) * mix(fogN * 1.4, 1.0, smoothstep(0.08, 0.5, haze));\n        float glow = uSky.x + (uModel < 0.5 ? 0.10 * light : 0.0);\n        // A hole in the data below the horizon shows the ground tone, its edge AA'd too.\n        float ground = clamp((uHorizon - uv.y) * uRes.y + 0.5, 0.0, 1.0);\n        L += T * mix(glow * haze, uGround.y, ground);\n    }\n    L = clamp(L, 0.0, 1.0);\n\n    // From here on the same masks as the dither mode, in the same order.\n    float topK = 1.0 - smoothstep(uTopFade.x, uTopFade.y, uv.y);   // top: fade to bare charcoal\n    L *= topK;\n    float clearOfGround = smoothstep(0.5 * uGround.x, max(uGround.x, 1e-4), uv.y);\n    L = mix(uGround.y, L, clearOfGround);\n    L = max(L - uBlack, 0.0) / (1.0 - uBlack);\n    L = pow(L, uGamma);\n    float rampB = 1.0;                       // footer text rectangle: L is exactly 0 in the strip\n    if (uBottom.x > 0.0) {\n        float tb = clamp((uv.y - uBottom.x) / max(uBottom.y, 1e-4), 0.0, 1.0);\n        rampB = pow(tb * tb * (3.0 - 2.0 * tb), uBottom.z);\n        L *= rampB;\n    }\n    L *= mix(uGround.z, 1.0, clearOfGround);  // the ground fog's reduced ink (dither: dot alpha)\n\n    // Grain: triangular noise (sum of two uniforms, -1..1), static per device pixel unless\n    // animated. Two terms, the larger wins:\n    // - the visible grain, which follows the light and takes the same masks as L (topFade and the\n    //   strip ramp), so it thins out with the image;\n    // - a +-1 8-bit-step dither floor, so the dark gradients never band. It is NOT scaled by the\n    //   masks: the slow fade ramps are exactly where banding shows. It is gated by L instead.\n    // Both are 0 wherever L is exactly 0, and L is exactly 0 in the clean strip, at the band's top\n    // edge and wherever the sky has no glow left, so those stay exactly bg.\n    vec2 r = hash22(fc + uGrainSeed * vec2(7.13, 3.71));\n    float n = r.x + r.y - 1.0;\n    float amp = max(uGrain * smoothstep(0.0, 0.06, L) * topK * rampB,\n                    uGrainMin * smoothstep(0.0, max(uGrainMin, 1e-6), L));\n    L += n * amp * step(1e-7, L) * (1.0 - uLum);\n    vec3 ink = mix(uInk, uTint, tintW);\n    FRAG = vec4(mix(uBg, ink, L), 1.0);\n}`;// renderMode \"sky\": the footer-v2 shader, verbatim from ridgeline-v2.js (r2). Self-contained: it\n// does not use FS_COMMON. Texture rows: uHeights N x 7 (bands 0..5, row 6 = the skyline blurred by\n// glowBlurPx), uHeightsS N x 8 (smoothed crests, row 6 = the cloud bank's reference line).\nconst FS_SKY=`\nuniform sampler2D uHeights;   // N x 7: band rows 0..5 (-1 = no terrain), row 6 = blurred skyline\nuniform sampler2D uHeightsS;  // N x 8: band rows 0..5 smoothed along x, row 6 = cloud-bank reference\nuniform vec2  uRes;           // backing store, device px\nuniform float uDpr;           // device px per CSS px\nuniform float uBands;\nuniform vec3  uTexMap;        // u = (x + m) * A + B\nuniform float uEncoded;       // 1 = RGBA8 two-channel heights\nuniform float uPar[6];        // per-band pointer parallax, screen-x units\nuniform float uTop[6];\nuniform float uLow[6];\nuniform float uLightW[6];\nuniform float uHorizon;       // canvas units from the bottom\nuniform vec4  uSky;           // x skyTop L, y skyHorizon L, z glow, w glow length (CSS px)\nuniform vec2  uTopFade;       // CSS y (from the bottom) where the fade to skyTop starts / ends\nuniform vec2  uGround;        // x ground L, y ground fade height (CSS px)\nuniform vec3  uLight;         // xy = light (uv, y up), z = strength 0..1\nuniform float uLightR;        // light radius, CSS px\nuniform vec4  uCloudTone;     // x lit top, y underside, z glow lift, w hover gain\nuniform vec4  uCover;         // coverage per layer 0..1: high, mid, bank, mist\nuniform vec4  uAlpha;         // max opacity per layer\nuniform vec4  uDrift;         // CSS px each layer has drifted (time * speed): high, mid, bank, mist\nuniform float uEvolve;        // warp evolution phase, noise units\nuniform vec4  uCloudPar;      // pointer parallax per layer, CSS px\nuniform vec2  uLayerAt;       // band index after which: x = bank, y = mist (-1 = off)\nuniform vec4  uBankGeo;       // x bank above, y bank below, z mist thickness (CSS px), w bank haze floor\nuniform vec4  uWisp;          // high wisps: xy noise cell (CSS px), z vertical wander, w breakup\nuniform vec2  uWispWarp;      // high wisps: warp strength x / y\nuniform vec4  uGrain;         // x amount, y seed of grain frame k, z coarse size (device px), w shadow response\nuniform vec2  uGrainB;        // x seed of grain frame k + 1, y cross-fade weight a (0 = frame k only)\nuniform float uGrainTop;      // CSS px over which grain fades in from the top edge (0 = none)\nuniform float uVig;\nuniform vec3  uC0;            // colour at L = 0\nuniform vec3  uCm;            // control colour at L = 0.5 (quadratic ramp)\nuniform vec3  uC1;            // colour at L = 1\n\nfloat hash12(vec2 p) {\n    vec3 p3 = fract(vec3(p.xyx) * 0.1031);\n    p3 += dot(p3, p3.yzx + 33.33);\n    return fract((p3.x + p3.y) * p3.z);\n}\nvec2 hash22(vec2 p) {\n    vec3 p3 = fract(vec3(p.xyx) * vec3(0.1031, 0.1030, 0.0973));\n    p3 += dot(p3, p3.yzx + 33.33);\n    return fract((p3.xx + p3.yz) * p3.zy);\n}\nfloat vnoise(vec2 p) {                        // smooth value noise, 0..1\n    vec2 i = floor(p), f = fract(p);\n    vec2 u = f * f * (3.0 - 2.0 * f);\n    return mix(mix(hash12(i), hash12(i + vec2(1.0, 0.0)), u.x),\n               mix(hash12(i + vec2(0.0, 1.0)), hash12(i + vec2(1.0, 1.0)), u.x), u.y);\n}\nfloat gnoise(vec2 p) {                        // gradient noise, about -0.5..0.5\n    vec2 i = floor(p), f = fract(p);\n    vec2 u = f * f * f * (f * (f * 6.0 - 15.0) + 10.0);\n    vec2 g00 = hash22(i) * 2.0 - 1.0;\n    vec2 g10 = hash22(i + vec2(1.0, 0.0)) * 2.0 - 1.0;\n    vec2 g01 = hash22(i + vec2(0.0, 1.0)) * 2.0 - 1.0;\n    vec2 g11 = hash22(i + vec2(1.0, 1.0)) * 2.0 - 1.0;\n    return mix(mix(dot(g00, f), dot(g10, f - vec2(1.0, 0.0)), u.x),\n               mix(dot(g01, f - vec2(0.0, 1.0)), dot(g11, f - vec2(1.0, 1.0)), u.x), u.y);\n}\nconst mat2 ROT = mat2(0.80, 0.60, -0.60, 0.80);  // rotate octaves: no axis-aligned grid\nfloat fbm3(vec2 p) {\n    float s = 0.0, a = 0.5;\n    for (int k = 0; k < 3; k++) { s += a * gnoise(p); p = ROT * p * 2.03 + 11.7; a *= 0.5; }\n    return s;\n}\nfloat fbm5(vec2 p) {\n    float s = 0.0, a = 0.5;\n    for (int k = 0; k < 5; k++) { s += a * gnoise(p); p = ROT * p * 2.03 + 11.7; a *= 0.5; }\n    return s;\n}\nfloat bump(float s, float a, float b, float c) { return smoothstep(a, b, s) * (1.0 - smoothstep(b, c, s)); }\n\nfloat ridge(float row, float x) {\n    vec2 st = vec2((x + uTexMap.x) * uTexMap.y + uTexMap.z, (row + 0.5) / 7.0);\n    vec4 c = TEX(uHeights, st);\n    if (uEncoded > 0.5) return (c.r * 65280.0 + c.g * 255.0) / 65535.0 * 3.0 - 1.0;\n    return c.r;\n}\nfloat ridgeS(float row, float x) {\n    vec2 st = vec2((x + uTexMap.x) * uTexMap.y + uTexMap.z, (row + 0.5) / 8.0);\n    vec4 c = TEX(uHeightsS, st);\n    if (uEncoded > 0.5) return (c.r * 65280.0 + c.g * 255.0) / 65535.0 * 3.0 - 1.0;\n    return c.r;\n}\n\n/*\n * One cloud layer at CSS position css (y up). prof / profUp: the layer's vertical density\n * profile here and at the shading probe upPx above. Returns (opacity, luminance).\n *   - Domain-warped fBm: q = two fBm3 fields, f = fBm5(p + 1.7 q). The warp offsets move with\n *     uEvolve, so shapes slowly change while the layer drifts.\n *   - Coverage: f against a threshold that the profile lowers from \"never\" (prof 0) to the\n *     layer's cover (prof 1); smoothstep over 0.22 gives the soft edges.\n *   - Light from above: an fBm3 probe of the same warped field upPx higher. Cloud above this\n *     pixel = it is an underside or an interior = darker.\n */\nvec2 cloudLayer(vec2 css, float prof, float profUp, vec2 scale, float drift, float par, float cover,\n                float alphaMax, vec2 seed, float upPx, float haze, float light) {\n    vec2 p = vec2((css.x - drift + par) / scale.x, css.y / scale.y) + seed;\n    float ev = uEvolve + seed.x * 0.1;\n    vec2 q = vec2(fbm3(p * 0.9 + vec2(ev, 0.4 * ev)), fbm3(p * 0.9 + vec2(5.2 - 0.7 * ev, 1.3 + 0.5 * ev)));\n    vec2 pw = p + 1.7 * q;\n    float f = fbm5(pw) + 0.5;                                   // ~0..1, mean 0.5\n    float th = mix(1.05, 1.0 - cover, prof);\n    float d = smoothstep(th - 0.11, th + 0.11, f);\n    if (d <= 0.001) return vec2(0.0);\n    float fu = fbm3(pw + vec2(0.0, upPx / scale.y)) + 0.5;\n    float thu = mix(1.05, 1.0 - cover, profUp);\n    float du = smoothstep(thu - 0.16, thu + 0.10, fu);\n    float lit = clamp(1.0 - 1.15 * du, 0.0, 1.0);               // nothing above = lit top\n    lit = mix(lit, 1.0, 0.25 * (1.0 - d));                      // thin edges let light through\n    // The glow lights clouds near the skyline from below too: undersides there are lit, so the\n    // far summits read as silhouettes against them.\n    float Lc = mix(uCloudTone.y, uCloudTone.x, lit) + uCloudTone.z * haze;\n    Lc += light * uCloudTone.w * (1.0 - 0.55 * d);              // hover: light through the clouds\n    return vec2(d * alphaMax, Lc);\n}\n\n/*\n * The high layer: soft, broken wisps instead of long streaks. Shorter, thicker noise cells; the\n * layer's baseline wanders up and down along x (and drifts with it); a stronger warp with a real\n * vertical component curls the cells; softer threshold edges; and a low-frequency breakup mask\n * cuts each wisp into pieces. Thin cloud: no underside probe, lit almost evenly.\n */\nvec2 wispLayer(vec2 css, float prof, float drift, float par, float cover, float alphaMax, vec2 seed,\n               float haze, float light) {\n    vec2 sc = uWisp.xy;\n    float wander = uWisp.z * gnoise(vec2((css.x - 0.5 * drift) / (sc.x * 2.6), seed.y + 0.37));\n    vec2 p = vec2((css.x - drift + par) / sc.x, css.y / sc.y + wander) + seed;\n    float ev = uEvolve + seed.x * 0.1;\n    vec2 q = vec2(fbm3(p * 0.7 + vec2(ev, 0.3 * ev)), fbm3(p * vec2(0.7, 1.1) + vec2(3.1 - 0.6 * ev, 7.7 + 0.4 * ev)));\n    vec2 pw = p + uWispWarp * q;\n    float f = fbm5(pw) + 0.5;\n    float th = mix(1.05, 1.0 - cover, prof);\n    float d = smoothstep(th - 0.16, th + 0.20, f);\n    float br = vnoise(pw * vec2(0.9, 0.6) + seed.yx + vec2(2.0 * ev, 0.0));\n    d *= 1.0 - uWisp.w * (1.0 - smoothstep(0.32, 0.62, br));\n    if (d <= 0.001) return vec2(0.0);\n    float Lc = mix(uCloudTone.y, uCloudTone.x, 0.8 + 0.2 * (1.0 - d)) + uCloudTone.z * haze;\n    Lc += light * uCloudTone.w * (1.0 - 0.55 * d);\n    return vec2(d * alphaMax, Lc);\n}\n\nfloat filmGrain(vec2 fc, float seed) {\n    vec2 o = fract(vec2(seed * 0.3713, seed * 0.9173)) * 997.0;   // a new pattern per grain frame\n    vec2 h = hash22(fc + o);\n    float fine = (h.x + h.y - 1.0) * 2.45;                        // 1 device px, std ~1\n    float coarse = (vnoise(fc / uGrain.z + o * 0.37) - 0.5) * 5.0; // ~uGrain.z px blobs, std ~1\n    // Clumps: the grain's own amplitude varies over ~4 grain sizes, so it mottles like\n    // pushed film instead of sitting as an even sand.\n    float clump = 0.35 + 1.3 * vnoise(fc / (uGrain.z * 4.0) + o * 0.53 + 7.0);\n    return (0.45 * fine + 0.90 * coarse) * clump;\n}\n\nvoid main() {\n    vec2 fc = gl_FragCoord.xy;\n    vec2 uv = fc / uRes;                       // 0..1, y up\n    vec2 css = fc / uDpr;                      // CSS px, y up\n    float cssH = uRes.y / uDpr;\n    float horPx = uHorizon * cssH;\n\n    vec2 dl = (css - uLight.xy * uRes / uDpr);\n    float light = uLight.z * exp(-dot(dl, dl) / (uLightR * uLightR));\n\n    // Sky glow, measured from the blurred skyline (as in ridgeline.js).\n    float skyPx = max(ridge(6.0, uv.x), uHorizon) * cssH;\n    float above = max(css.y - skyPx, 0.0);\n    float hk = above / (uSky.w * 0.55);\n    float haze = exp(-hk * hk);\n\n    // Cloud-space vertical coordinate: 0 at the horizon line, 1 where the top fade ends.\n    float skySpan = max(uTopFade.y - horPx, 1.0);\n    float s = (css.y - horPx) / skySpan;\n    float sUp = (css.y + 14.0 - horPx) / skySpan;\n\n    float T = 1.0;                             // share of the pixel not yet covered\n    float L = 0.0;\n    float accentPx = 0.0;\n    for (int i = 0; i < 6; i++) {\n        if (float(i) >= uBands) break;\n        float x = uv.x + uPar[i];\n        float h = ridge(float(i), x);\n        float dv = (h - uv.y) * uRes.y;        // device px below the crest\n        if (dv > -16.0) {\n            float sd = dv;\n            if (dv < 16.0) {\n                float dx = 1.0 / uRes.x;\n                float sl = (ridge(float(i), x + dx) - ridge(float(i), x - dx)) * 0.5 * uRes.y;\n                sd = dv * inversesqrt(1.0 + sl * sl);\n            }\n            float cov = clamp(sd + 0.5, 0.0, 1.0);\n            if (cov > 0.0) {\n                float depth = ridgeS(float(i), x) - uv.y;\n                float Lb = mix(uTop[i], uLow[i], smoothstep(0.0, 0.25, depth));\n                Lb += light * 0.30 * uLightW[i];   // hover: a smooth lift, strongest on the far, misty bands\n                float w = T * cov;\n                L += w * clamp(Lb, 0.0, 1.0);\n                T -= w;\n            }\n        }\n        if (T <= 0.002) break;\n        // Cloud layers that sit between this band and the next one back.\n        if (float(i) == uLayerAt.y) {          // low mist over the water, in front of the front range\n            // Its thickness swells and thins along x (and drifts with it), so it never prints as a stripe.\n            float ym = css.y - horPx;\n            float mt = uBankGeo.z * (0.35 + 1.1 * vnoise(vec2((css.x - uDrift.w * 0.6) / 380.0, 3.7)));\n            float pm = bump(ym, -10.0, mt * 0.35, mt);\n            if (pm > 0.001 && uCover.w > 0.0) {\n                float pmu = bump(ym + 10.0, -10.0, mt * 0.35, mt);\n                vec2 c = cloudLayer(css, pm, pmu, vec2(300.0, 20.0), uDrift.w, uCloudPar.w, uCover.w,\n                                    uAlpha.w, vec2(41.0, 7.0), 10.0, 1.0, light);\n                L += T * c.x * c.y;\n                T *= 1.0 - c.x;\n            }\n        }\n        if (float(i) == uLayerAt.x) {          // the cloud bank: behind band i, in front of band i+1\n            float bPx = ridgeS(6.0, uv.x) * cssH;\n            float bt = uBankGeo.x * (0.55 + 0.9 * vnoise(vec2((css.x - uDrift.z * 0.6) / 300.0, 9.1)));\n            float yb = css.y - bPx;\n            float pb = smoothstep(-uBankGeo.y, -0.25 * uBankGeo.y, yb) * (1.0 - smoothstep(0.2 * bt, bt, yb));\n            if (pb > 0.001 && uCover.z > 0.0) {\n                float ybu = yb + 14.0;\n                float pbu = smoothstep(-uBankGeo.y, -0.25 * uBankGeo.y, ybu) * (1.0 - smoothstep(0.2 * bt, bt, ybu));\n                vec2 c = cloudLayer(css, pb, pbu, vec2(210.0, 46.0), uDrift.z, uCloudPar.z, uCover.z,\n                                    uAlpha.z, vec2(17.0, 3.0), 14.0, max(haze, uBankGeo.w), light);\n                L += T * c.x * c.y;\n                T *= 1.0 - c.x;\n            }\n        }\n        if (T <= 0.002) break;\n    }\n\n    if (T > 0.002) {\n        // Mid clouds: thicker, just above the skyline. High wisps: thin, stretched, sparse.\n        float pMid = bump(s, 0.02, 0.26, 0.66);\n        if (pMid > 0.001 && uCover.y > 0.0) {\n            vec2 c = cloudLayer(css, pMid, bump(sUp, 0.02, 0.26, 0.66), vec2(250.0, 78.0), uDrift.y, uCloudPar.y,\n                                uCover.y, uAlpha.y, vec2(3.0, 29.0), 14.0, haze, light);\n            L += T * c.x * c.y;\n            T *= 1.0 - c.x;\n        }\n        float pHigh = bump(s, 0.40, 0.70, 1.0);\n        if (pHigh > 0.001 && uCover.x > 0.0) {\n            vec2 c = wispLayer(css, pHigh, uDrift.x, uCloudPar.x, uCover.x, uAlpha.x, vec2(71.0, 53.0), haze, light);\n            L += T * c.x * c.y;\n            T *= 1.0 - c.x;\n        }\n        // Open sky: a gradient from the horizon tone to the top tone, plus the glow.\n        float g = smoothstep(0.0, 1.0, clamp((css.y - horPx) / skySpan, 0.0, 1.0));\n        float Ls = mix(uSky.y, uSky.x, g) + uSky.z * haze + 0.14 * light * uCloudTone.w / 0.5;\n        L += T * Ls;\n    }\n\n    // Top: everything fades to the sky's top tone (V1/V3: exactly bg, continuous with the page).\n    L = mix(L, uSky.x, smoothstep(uTopFade.x, uTopFade.y, css.y));\n    // Bottom: the nearest band runs out of frame as dark ground.\n    L = mix(uGround.x, L, smoothstep(0.0, uGround.y, css.y));\n\n    // Film grain: luminance-dependent (mid-tones strongest), clumpy, boiling at grainFps: frame k\n    // cross-fades into frame k + 1, normalised so the amplitude stays constant through the blend.\n    if (uGrain.x > 0.0) {\n        float Lc = clamp(L, 0.0, 1.0);\n        float resp = mix(uGrain.w, 1.0, pow(4.0 * Lc * (1.0 - Lc), 0.7));\n        float topIn = uGrainTop > 0.0 ? smoothstep(0.0, uGrainTop, cssH - css.y) : 1.0;\n        float g = filmGrain(fc, uGrain.y);\n        float a = uGrainB.y;\n        if (a > 0.0) g = (g * (1.0 - a) + a * filmGrain(fc, uGrainB.x)) * inversesqrt(a * a + (1.0 - a) * (1.0 - a));\n        L += uGrain.x * resp * topIn * g;\n    }\n\n    float a = 1.0 - L;\n    vec3 col = a * a * uC0 + 2.0 * a * L * uCm + L * L * uC1;\n    // +-1 8-bit step of triangular dither, always on (so grainAmount 0 still never bands), except\n    // where L is exactly the top tone: V1/V3 must meet the page above as exact bg.\n    vec2 hd = hash22(fc + 0.5);\n    col += (hd.x + hd.y - 1.0) / 255.0 * step(1e-5, abs(L - uSky.x));\n    if (uVig > 0.0) {                          // sides and bottom only: the top edge meets the page\n        vec2 v = (uv - vec2(0.5, 0.75)) * vec2(1.0, 0.9);\n        float vig = smoothstep(0.30, 0.95, length(v)) * (1.0 - smoothstep(cssH - 160.0, cssH - 40.0, css.y));\n        col *= 1.0 - uVig * vig;\n    }\n    FRAG = vec4(clamp(col, 0.0, 1.0), 1.0);\n}`;function shaderSources(webgl2,mode){const FS_BODY=mode===\"sky\"?FS_SKY:FS_COMMON+(mode===\"tone\"?FS_TONE:FS_DITHER);if(webgl2){return{vs:\"#version 300 es\\n#define ATTR in\\n\"+VS_BODY,fs:\"#version 300 es\\nprecision highp float;\\nout vec4 fragOut;\\n#define FRAG fragOut\\n#define TEX texture\\n\"+FS_BODY};}return{vs:\"#define ATTR attribute\\n\"+VS_BODY,fs:\"precision highp float;\\n#define FRAG gl_FragColor\\n#define TEX texture2D\\n\"+FS_BODY};}/* ------------------------------------------------------------- small helpers */const clamp=(v,lo,hi)=>v<lo?lo:v>hi?hi:v;const lerp=(a,b,t)=>a+(b-a)*t;const smoothstep=(e0,e1,x)=>{const t=clamp((x-e0)/(e1-e0),0,1);return t*t*(3-2*t);};/* Accepts #rgb, #rrggbb(aa), rgb(a)() and Framer's token form var(--token-x, <color>). */function parseColor(c,fallback){if(Array.isArray(c))return c.slice(0,3);if(typeof c!==\"string\")return fallback;let s=c.trim();const v=s.match(/^var\\([^,]+,\\s*(.+)\\)$/i);if(v)s=v[1].trim();if(s[0]===\"#\"){s=s.slice(1);if(s.length===3)s=s.split(\"\").map(ch=>ch+ch).join(\"\");const n=parseInt(s.slice(0,6),16);if(Number.isNaN(n))return fallback;return[(n>>16&255)/255,(n>>8&255)/255,(n&255)/255];}const m=s.match(/rgba?\\(([^)]+)\\)/i);if(m)return m[1].split(\",\").slice(0,3).map(x=>clamp(parseFloat(x)/255,0,1));return fallback;}/* Deterministic 1D value-noise fBm for ridge detail (CPU side). */function hash1(i,seed){let h=i*374761393+seed*668265263|0;h=Math.imul(h^h>>>13,1274126177);return((h^h>>>16)>>>0)/4294967296;}function fbm1(x,seed){let sum=0,amp=1,norm=0,f=1;for(let o=0;o<3;o++){const u=x*f,i=Math.floor(u),t=u-i;const s=t*t*(3-2*t);sum+=amp*lerp(hash1(i,seed+o*101),hash1(i+1,seed+o*101),s);norm+=amp;amp*=.5;f*=2.03;}return sum/norm// ~0..1\n;}/* Skyline (max over bands) blurred with three box passes (~gaussian, sigma in texels). */function blurredSkyline(heights,rows,N,sigma){let a=new Float32Array(N),b=new Float32Array(N);for(let i=0;i<N;i++){let m=-1;for(let g=0;g<rows;g++)m=Math.max(m,heights[g*N+i]);a[i]=m;}const r=Math.max(1,Math.round(sigma*.87))// 3 box passes of radius r ~ gaussian sigma\n;for(let pass=0;pass<3;pass++){let acc=0;for(let i=-r;i<=r;i++)acc+=a[clamp(i,0,N-1)];for(let i=0;i<N;i++){b[i]=acc/(2*r+1);acc+=a[clamp(i+r+1,0,N-1)]-a[clamp(i-r,0,N-1)];}const t=a;a=b;b=t;}return a;}/* Max over the listed rows, blurred with three box passes (~gaussian, sigma in texels). Sky mode:\n   the glow's skyline (all rows) and the cloud bank's reference (one row). As in ridgeline-v2.js. */function blurredMax(heights,rowList,N,sigma){let a=new Float32Array(N),b=new Float32Array(N);for(let i=0;i<N;i++){let m=-1;for(const g of rowList)m=Math.max(m,heights[g*N+i]);a[i]=m;}const r=Math.max(1,Math.round(sigma*.87));for(let pass=0;pass<3;pass++){let acc=0;for(let i=-r;i<=r;i++)acc+=a[clamp(i,0,N-1)];for(let i=0;i<N;i++){b[i]=acc/(2*r+1);acc+=a[clamp(i+r+1,0,N-1)]-a[clamp(i-r,0,N-1)];}const t=a;a=b;b=t;}return a;}/*\n * Each band's crest Gaussian-smoothed along x (three box passes, sigma in texels), for the tone\n * mode's body gradient. Texels with no terrain (-1) are left out of the average (normalised\n * convolution), so a hole does not drag its neighbours' crest down. Returns 6 rows of N; rows\n * beyond `rows`, and texels with no terrain anywhere in reach, are -1.\n */function smoothedBands(heights,rows,N,sigma,outRows=6){const out=new Float32Array(outRows*N).fill(-1);// Three passes of a (2r + 1) box have variance r^2 + r: pick r for the requested sigma.\nconst r=Math.round((-1+Math.sqrt(1+4*sigma*sigma))/2);let v=new Float32Array(N),w=new Float32Array(N),v2=new Float32Array(N),w2=new Float32Array(N);for(let g=0;g<rows;g++){for(let i=0;i<N;i++){const h=heights[g*N+i];const has=h>-.999?1:0;v[i]=has*h;w[i]=has;}if(r>=1){for(let pass=0;pass<3;pass++){let av=0,aw=0;for(let i=-r;i<=r;i++){const j=clamp(i,0,N-1);av+=v[j];aw+=w[j];}for(let i=0;i<N;i++){v2[i]=av;w2[i]=aw;const a=clamp(i+r+1,0,N-1),b=clamp(i-r,0,N-1);av+=v[a]-v[b];aw+=w[a]-w[b];}let t=v;v=v2;v2=t;t=w;w=w2;w2=t;}}for(let i=0;i<N;i++)out[g*N+i]=w[i]>1e-6?v[i]/w[i]:-1;}return out;}/* Merge distance bands into k contiguous groups (k = 3..6). The far groups keep\n   the most bands merged, so the mountain bands always survive. */function bandGroups(total,k){k=clamp(Math.round(k),1,Math.min(6,total));const groups=[];for(let g=0;g<k;g++){const a=Math.floor(g*total/k),b=Math.floor((g+1)*total/k);const members=[];for(let i=a;i<Math.max(b,a+1);i++)members.push(i);groups.push(members);}return groups;}/* Layout size in CSS px. Framer's editor zooms with a CSS transform, which scales\n   getBoundingClientRect but not the layout box; use the layout box whenever the two\n   disagree, and the fractional rect otherwise (exact device-pixel sizing on the site). */function layoutSize(el){const r=el.getBoundingClientRect();const ow=el.offsetWidth,oh=el.offsetHeight;if(ow>0&&Math.abs(r.width-ow)>1)return{w:ow,h:oh};return{w:r.width,h:r.height};}/* --------------------------------------------------------- CPU height precompute *//* Sky mode, phones: how far a narrow canvas is into the phone look, 0 at narrowWidth and above, 1 at\n   390 px and below. narrowZoom and narrowVerticalExaggeration ramp in with it (no jump at the\n   threshold). Tone / dither pass narrowZoom 1 and no narrow exaggeration, so this is inert there. */function narrowRamp(cssW,o){const nw=+o.narrowWidth||0;if(!(cssW<nw))return 0;return clamp((nw-cssW)/Math.max(1,nw-390),0,1);}/*\n * Returns { heights: Float32Array(rows * N), rows, N, margin } where heights are\n * in band-height units (0 = bottom of the band). A band with no terrain stores -1,\n * which can never cover a pixel (see the belowHorizon option).\n *\n * Framer port: `data` is windowed (RIDGELINE_DATA.windows, each with its own start\n * azimuth). Azimuths are read from the window that contains them, or clamped to the\n * nearest window edge. The windows cover every azimuth the default composition\n * samples, including the cross-fade and the parallax margin (asserted by\n * extract-data.py).\n */function computeHeights(data,o,cssW,cssH,maxParallaxPx){const N=clamp(Math.round(o.samples)||2048,256,8192);const bands=data.bands;// Drop bands that end before minBandKm (e.g. the hill you are standing on).\nlet keep=bands.map((_,i)=>i).filter(i=>!(+bands[i].maxKm<=(+o.minBandKm||0)));if(!keep.length)keep=bands.map((_,i)=>i);const groups=bandGroups(keep.length,o.bands).map(g=>g.map(j=>keep[j]));const rows=groups.length;const step=data.azimuthStepDeg||.1;const wins=data.windows.map(w=>({lo:+w.azFrom,hi:+w.azFrom+(w.count-1)*step,n:w.count,rows:w.elevDeg}));const comp=(Array.isArray(o.composition)&&o.composition.length?o.composition:RIDGELINE_DEFAULTS.composition).map(s=>({azFrom:+s.azFrom,azTo:+s.azTo,xFrom:+s.xFrom,xTo:+s.xTo})).filter(s=>Number.isFinite(s.azFrom+s.azTo+s.xFrom+s.xTo)&&s.xTo>s.xFrom).sort((a,b)=>a.xFrom-b.xFrom);if(!comp.length)comp.push({...RIDGELINE_DEFAULTS.composition[0]});// Narrow screens: crop a window of the composition rather than squeezing 95\n// degrees of skyline into 390 px (that turns ridges into needles).\nconst nt=narrowRamp(cssW,o);const zoom=lerp(1,Math.max(.25,+o.narrowZoom||1),nt);const span=cssW<o.narrowWidth?Math.min(1,cssW/(o.narrowWidth*zoom)):1;const x0=clamp(o.narrowFocus-span/2,0,1-span);const margin=(maxParallaxPx+4)/Math.max(cssW,1)// texels beyond the edges for parallax\n;// Vertical scale. With verticalExaggeration, one degree of elevation gets VE times\n// the on-screen pixels of one degree of azimuth (first segment's scale, after the\n// narrow-screen crop), so the relief keeps its proportions at any width.\nconst s0=comp[0];const pxPerDegH=cssW/span*Math.abs((s0.xTo-s0.xFrom)/(s0.azTo-s0.azFrom||1));const ve0=Math.max(.1,+o.verticalExaggeration||2.5);const nve=o.narrowVerticalExaggeration;const ve=nve!==null&&nve!==undefined&&nve!==\"\"&&Number.isFinite(+nve)?lerp(ve0,Math.max(.1,+nve),nt):ve0;const elevToHeight=Number.isFinite(+o.elevToHeight)&&o.elevToHeight!==null&&o.elevToHeight!==\"\"?+o.elevToHeight:ve*pxPerDegH/Math.max(cssH,1);// Representative distance of each group (midpoint of its merged km range) picks its tone.\nconst groupKm=groups.map(g=>{const lo=Math.min(...g.map(b=>+bands[b].minKm||0));const hi=Math.max(...g.map(b=>+bands[b].maxKm||0));return(lo+hi)/2;});const elevAt=(b,az)=>{az=(az%360+360)%360;let w=wins[0],best=Infinity;for(const c of wins){const dist=az<c.lo?c.lo-az:az>c.hi?az-c.hi:0;if(dist<best){best=dist;w=c;if(dist===0)break;}}const arr=w.rows[b];let f=clamp((az-w.lo)/step,0,w.n-1);const i=Math.min(Math.floor(f),w.n-2);f-=i;return lerp(arr[i],arr[i+1],f);};const azOf=(s,xc)=>s.azFrom+(xc-s.xFrom)/(s.xTo-s.xFrom)*(s.azTo-s.azFrom);// Per composition x: one or two (segment, weight) pairs. Segments extend past\n// their own ends, so in a gap both neighbours still sample real terrain and\n// the smoothstep cross-fade has no cliff to hide.\nconst pick=xc=>{if(xc<=comp[0].xTo)return[[comp[0],1]];for(let j=0;j<comp.length;j++){const s=comp[j];if(xc>=s.xFrom&&xc<=s.xTo)return[[s,1]];const nx=comp[j+1];if(nx&&xc>s.xTo&&xc<nx.xFrom){const w=smoothstep(s.xTo,nx.xFrom,xc);return[[s,1-w],[nx,w]];}}return[[comp[comp.length-1],1]];};const heights=new Float32Array(rows*N);for(let i=0;i<N;i++){const sx=-margin+i/(N-1)*(1+2*margin)// screen x, 0..1 inside the canvas\n;const xc=x0+sx*span// composition x\n;const parts=pick(xc);for(let g=0;g<rows;g++){let e=-Infinity;for(const b of groups[g]){let v=0;for(const[s,w]of parts)v+=w*elevAt(b,azOf(s,xc));if(v>e)e=v// merged group = highest terrain\n;}let h=-1;if(e>-90&&(e>=0||o.belowHorizon===\"terrain\")){const t=rows>1?g/(rows-1):1;const amp=lerp(.015,.004,t)*o.detail;const freq=lerp(40,120,t);// averaged value noise sits near 0.5 +- 0.2: stretch so amp is the real swing\nconst det=clamp((fbm1(xc*freq,17+g*7)-.5)*3.5,-1,1)*amp;const ref=Math.max(.01,+o.elevRef||2.2);const ec=Math.abs(+o.elevCurve-1)<1e-6?e:Math.sign(e)*ref*Math.pow(Math.abs(e)/ref,Math.max(.2,+o.elevCurve));const spread=(+o.layerSpread||0)*Math.pow(1-t,1.5);h=o.horizonY+ec*elevToHeight+det-spread;}heights[g*N+i]=h;}}return{heights,rows,N,margin,span,elevToHeight,pxPerDegH,groupKm};}/* -------------------------------------------------------------------- renderer */function createRidgeline(canvas,options={}){const errors=typeof window!==\"undefined\"&&(window.__rlErrors=window.__rlErrors||[])||[];const report=msg=>{errors.push(String(msg));console.error(\"[ridgeline]\",msg);};let o={...RIDGELINE_DEFAULTS,...options};const host=o.host||canvas.parentElement||canvas;const isStaticFrame=!!o.staticFrame;if(!o.data||!o.data.bands||!o.data.bands.length)report(\"no ridgeline data (options.data)\");canvas.style.display=\"block\";canvas.style.width=\"100%\";canvas.style.height=\"100%\";canvas.style.touchAction=\"pan-y\";const modeOf=()=>o.renderMode===\"dither\"?\"dither\":o.renderMode===\"sky\"?\"sky\":\"tone\";// DPR > maxDpr upscales the canvas: keep dot edges hard, but resample continuous tone smoothly\n// (nearest-neighbour at a 1.5x ratio would double every other pixel and jag the crests).\nconst applyCanvasStyle=()=>{canvas.style.imageRendering=modeOf()===\"dither\"?\"pixelated\":\"auto\";};applyCanvasStyle();/* ---------------- GL setup (re-run on context restore) */const attrs={alpha:false,antialias:false,depth:false,stencil:false,premultipliedAlpha:false,preserveDrawingBuffer:false,powerPreference:\"default\"};let gl=null,isGL2=false,prog=null,tex=null,texS=null,buf=null;let progMode=\"\"// \"sky\" | \"tone\" | \"dither\": the mode the current program was built for\n;let texPath=\"none\"// \"r32f\" | \"r16f\" | \"rgba32f\" | \"rgba8\"\n;const U={}// all uniform locations, one object (null where a program lacks one)\n;const ARRAYS=[\"uPar\",\"uTop\",\"uLow\",\"uFogW\",\"uLightW\",\"uTintW\"];let lost=false,destroyed=false;let failed=false// shader / texture failure: draw nothing until a context restore\n;let degraded=false// the frame-time guard stopped the loop: still frames only\n;/* ---------------- fallback state (live renderer only; staticFrame never touches the canvas) */let state=\"\"// \"live\" | \"static\" | \"fallback\" (\"\" before the first frame)\n;let shown=false// the canvas is faded in (opacity 1)\n;function setState(next){if(isStaticFrame||destroyed||next===state)return;state=next;canvas.setAttribute(\"data-ridgeline-state\",next);const show=next!==\"fallback\";if(show===shown)return;shown=show;const ms=Math.max(0,+o.fadeInMs||0);if(show&&ms>0&&!reduced()){void getComputedStyle(canvas).opacity// commit opacity 0 first so the change transitions\n;canvas.style.transition=`opacity ${ms}ms ease-out`;}else{canvas.style.transition=\"none\"// hiding is immediate: the image takes over at once\n;}canvas.style.opacity=show?\"1\":\"0\";}function fail(msg){failed=true;report(msg);setState(\"fallback\");}function compile(type,src){const s=gl.createShader(type);gl.shaderSource(s,src);gl.compileShader(s);if(!gl.getShaderParameter(s,gl.COMPILE_STATUS)&&!gl.isContextLost())report(gl.getShaderInfoLog(s));return s;}/* One program per render mode, built for the mode in force (and rebuilt when it changes). */function buildProgram(){const mode=modeOf();const src=shaderSources(isGL2,mode);const vs=compile(gl.VERTEX_SHADER,src.vs);const fs=compile(gl.FRAGMENT_SHADER,src.fs);const p=gl.createProgram();gl.attachShader(p,vs);gl.attachShader(p,fs);gl.bindAttribLocation(p,0,\"aPos\");gl.linkProgram(p);gl.deleteShader(vs);gl.deleteShader(fs);if(!gl.getProgramParameter(p,gl.LINK_STATUS)){if(!gl.isContextLost())report(gl.getProgramInfoLog(p));gl.deleteProgram(p);return false;}if(prog)gl.deleteProgram(prog);prog=p;progMode=mode;gl.useProgram(prog);for(const n of[\"uHeights\",\"uRes\",\"uCell\",\"uTime\",\"uBands\",\"uTexMap\",\"uEncoded\",...ARRAYS,\"uModel\",\"uGamma\",\"uBlack\",\"uFog\",\"uDrift\",\"uLight\",\"uLightR\",\"uSoft\",\"uShape\",\"uLum\",\"uHorizon\",\"uTopFade\",\"uGround\",\"uSky\",\"uBottom\",\"uAccent\",\"uBg\",\"uInk\",\"uTint\",\"uHeightsS\",\"uGrain\",\"uGrainMin\",\"uGrainSeed\",// sky mode\n\"uDpr\",\"uCloudTone\",\"uCover\",\"uAlpha\",\"uEvolve\",\"uCloudPar\",\"uLayerAt\",\"uBankGeo\",\"uWisp\",\"uWispWarp\",\"uGrainB\",\"uGrainTop\",\"uVig\",\"uC0\",\"uCm\",\"uC1\"]){U[n]=gl.getUniformLocation(prog,ARRAYS.includes(n)?n+\"[0]\":n);}applyCanvasStyle();return true;}function initGL(){gl=null;prog=null// objects of a lost context are not ours to delete\n;failed=false;// The live context refuses software GL: that path shows the fallback image instead, with\n// no retry. The editor's staticFrame snapshot keeps the plain attributes.\nconst caveat=!isStaticFrame&&o.failIfMajorPerformanceCaveat!==false;const ctxAttrs=caveat?{...attrs,failIfMajorPerformanceCaveat:true}:attrs;let why=\"\";const onCreationError=e=>{if(e&&e.statusMessage)why=String(e.statusMessage);};canvas.addEventListener(\"webglcontextcreationerror\",onCreationError);if(!o.forceWebGL1)gl=canvas.getContext(\"webgl2\",ctxAttrs);isGL2=!!gl;if(!gl)gl=canvas.getContext(\"webgl\",ctxAttrs)||canvas.getContext(\"experimental-webgl\",ctxAttrs);canvas.removeEventListener(\"webglcontextcreationerror\",onCreationError);if(!gl){if(isStaticFrame)report(\"WebGL unavailable\");else{report(\"fallback image: WebGL unavailable\"+(caveat?\" or below the performance bar (failIfMajorPerformanceCaveat)\":\"\")+(why?\" [\"+why+\"]\":\"\"));setState(\"fallback\");}return false;}if(!buildProgram()){if(!isStaticFrame&&!gl.isContextLost())fail(\"fallback image: shader program failed\");return false;}buf=gl.createBuffer()// one full-screen triangle\n;gl.bindBuffer(gl.ARRAY_BUFFER,buf);gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([-1,-1,3,-1,-1,3]),gl.STATIC_DRAW);gl.enableVertexAttribArray(0);gl.vertexAttribPointer(0,2,gl.FLOAT,false,0,0);// Height texture format: float when it can be LINEAR-filtered, else RGBA8 x2.\ntexPath=\"rgba8\";if(!o.forceRGBA8){if(isGL2)texPath=gl.getExtension(\"OES_texture_float_linear\")?\"r32f\":\"r16f\";else if(gl.getExtension(\"OES_texture_float\")&&gl.getExtension(\"OES_texture_float_linear\"))texPath=\"rgba32f\";}const mkTex=()=>{const t=gl.createTexture();gl.bindTexture(gl.TEXTURE_2D,t);gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR);gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR);gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE);gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE);return t;};texS=mkTex()// tone mode: smoothed crests (N x 6); sky mode: N x 8 (+ the cloud bank line)\n;tex=mkTex()// heights + blurred skyline (N x 7)\n;gl.pixelStorei(gl.UNPACK_ALIGNMENT,1);gl.clearColor(0,0,0,1);lastHeightsKey=\"\";lastSize=\"\";return true;}/* ---------------- heights texture */let hInfo=null,lastHeightsKey=\"\";const ROWS=7// 6 band rows (unused = -1, no terrain) + row 6: the blurred skyline\n;// One N x rows float array into a texture, in the format texPath allows.\nfunction texUpload(t,data,rows,N){gl.bindTexture(gl.TEXTURE_2D,t);if(texPath===\"r32f\"){gl.texImage2D(gl.TEXTURE_2D,0,gl.R32F,N,rows,0,gl.RED,gl.FLOAT,data);}else if(texPath===\"r16f\"){gl.texImage2D(gl.TEXTURE_2D,0,gl.R16F,N,rows,0,gl.RED,gl.FLOAT,data);}else if(texPath===\"rgba32f\"){const rgba=new Float32Array(rows*N*4);for(let i=0;i<data.length;i++)rgba[i*4]=data[i];gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,N,rows,0,gl.RGBA,gl.FLOAT,rgba);}else{// 16-bit fixed point over [-1, 2) band-heights, hi byte in R, lo byte in G.\nconst rgba=new Uint8Array(rows*N*4);for(let i=0;i<data.length;i++){const q=Math.round(clamp((data[i]+1)/3,0,1)*65535);rgba[i*4]=q>>8;rgba[i*4+1]=q&255;rgba[i*4+3]=255;}gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,N,rows,0,gl.RGBA,gl.UNSIGNED_BYTE,rgba);}}function uploadHeights(cssW,cssH){if(!gl||!o.data)return;if(progMode===\"sky\"){uploadSkyHeights(cssW,cssH);return;}const key=JSON.stringify([\"legacy\",o.bands,o.minBandKm,o.belowHorizon,o.verticalExaggeration,o.elevToHeight,o.elevCurve,o.elevRef,o.layerSpread,o.horizonY,o.detail,o.composition,o.narrowWidth,o.narrowFocus,o.samples,Math.round(cssW),Math.round(cssH),o.parallax,o.bodySmooth]);if(key===lastHeightsKey)return;lastHeightsKey=key;hInfo=computeHeights(o.data,o,cssW,cssH,10*Math.max(0,o.parallax));const{heights,rows,N}=hInfo;const full=new Float32Array(ROWS*N).fill(-1);full.set(heights.subarray(0,rows*N));full.set(blurredSkyline(heights,rows,N,36*N/(cssW*(1+2*hInfo.margin))),6*N);texUpload(tex,full,ROWS,N);// Tone mode's body gradient: sigma is a fraction of the composition width, in texels\n// (N texels span the canvas plus its parallax margins, i.e. `span` of the composition).\nconst sigmaTex=Math.max(0,+o.bodySmooth||0)*N/((1+2*hInfo.margin)*hInfo.span);texUpload(texS,smoothedBands(heights,rows,N,sigmaTex),6,N);checkUpload(cssW,cssH);}function checkUpload(cssW,cssH){const err=gl.getError();if(err&&!gl.isContextLost()){// A driver that advertises float but refuses the upload: drop to RGBA8 once.\nif(texPath!==\"rgba8\"){texPath=\"rgba8\";lastHeightsKey=\"\";uploadHeights(cssW,cssH);return;}if(isStaticFrame)report(\"height texture upload failed: GL error \"+err);else fail(\"fallback image: height texture upload failed: GL error \"+err);}}/* Sky mode (as ridgeline-v2.js uploadHeights): the horizon is set in CSS px from the bottom\n       (horizonPx, narrowHorizonPx below narrowWidth); tex row 6 is the skyline blurred by glowBlurPx;\n       texS holds the smoothed crests plus, in row 6, the cloud bank's reference line: the crest of\n       band bankAfter blurred by bankBlurPx, lifted bankLift of the way from the horizon to it and\n       kept bankFloorPx above the horizon. */const skyNarrow=()=>cssW<o.narrowWidth;function uploadSkyHeights(cssW,cssH){const horizonPx=skyNarrow()&&isNum(o.narrowHorizonPx)?+o.narrowHorizonPx:+o.horizonPx;const key=JSON.stringify([\"sky\",o.bands,o.minBandKm,o.belowHorizon,o.verticalExaggeration,horizonPx,o.detail,o.composition,o.narrowWidth,o.narrowFocus,o.narrowZoom,o.narrowVerticalExaggeration,o.samples,Math.round(cssW),Math.round(cssH),o.parallax,o.bodySmooth,o.bankAfter,o.glowBlurPx,o.bankBlurPx,o.bankLift,o.bankFloorPx]);if(key===lastHeightsKey)return;lastHeightsKey=key;const oo={...o,horizonY:horizonPx/Math.max(cssH,1)};hInfo=computeHeights(o.data,oo,cssW,cssH,10*Math.max(0,o.parallax));hInfo.horizonY=oo.horizonY;const{heights,rows,N}=hInfo;const texPerCss=N/(cssW*(1+2*hInfo.margin));const full=new Float32Array(7*N).fill(-1);full.set(heights.subarray(0,rows*N));full.set(blurredMax(heights,Array.from({length:rows},(_,i)=>i),N,Math.max(1,+o.glowBlurPx)*texPerCss),6*N);texUpload(tex,full,7,N);const sigmaTex=Math.max(0,+o.bodySmooth||0)*N/((1+2*hInfo.margin)*hInfo.span);const sm=smoothedBands(heights,rows,N,sigmaTex,8);const bi=clamp(Math.round(+o.bankAfter),0,rows-1);const bank=blurredMax(heights,[bi],N,Math.max(1,+o.bankBlurPx)*texPerCss);const hy=hInfo.horizonY,lift=clamp(+o.bankLift,0,1),floor=hy+(+o.bankFloorPx||0)/Math.max(cssH,1);for(let i=0;i<N;i++)sm[6*N+i]=Math.max(hy+lift*(bank[i]-hy),floor);texUpload(texS,sm,8,N);checkUpload(cssW,cssH);}/* ---------------- sizing */let cssW=0,cssH=0,dpr=1,W=0,H=0,cellPx=3,lastSize=\"\";let devicePxBox=null// exact device-pixel size from ResizeObserver, when offered\n;function resize(){if(!gl||destroyed)return;const r=Array.isArray(o.size)?{w:+o.size[0],h:+o.size[1]}:layoutSize(canvas);if(!(r.w>=1)||!(r.h>=1))return;cssW=r.w;cssH=r.h;dpr=Math.min(typeof devicePixelRatio===\"number\"&&devicePixelRatio||1,o.maxDpr);// Prefer the exact device-pixel box (no resampling => crisp dots). It is only\n// valid when DPR is not capped; otherwise round CSS size x capped DPR.\nconst native=typeof devicePixelRatio===\"number\"&&devicePixelRatio||1;// Trust the device box only when it agrees with CSS size x DPR (device\n// emulation and some zoom states report CSS pixels there).\nconst boxOk=devicePxBox&&Math.abs(devicePxBox[0]-cssW*native)<=2&&Math.abs(devicePxBox[1]-cssH*native)<=2;if(boxOk&&native<=o.maxDpr){W=devicePxBox[0];H=devicePxBox[1];}else{W=Math.max(1,Math.round(cssW*dpr));H=Math.max(1,Math.round(cssH*dpr));}const cellCss=cssW<o.narrowWidth&&o.narrowDotCell?+o.narrowDotCell:+o.dotCell;cellPx=Math.max(1,Math.round(cellCss*dpr))// whole device px: no moire\n;const key=W+\"x\"+H;if(key!==lastSize){lastSize=key;canvas.width=W;canvas.height=H;}gl.viewport(0,0,W,H);uploadHeights(cssW,cssH);}/* ---------------- motion state */const reducedMQ=typeof matchMedia===\"function\"?matchMedia(\"(prefers-reduced-motion: reduce)\"):null;const reduced=()=>o.reducedMotion===\"auto\"?!!(reducedMQ&&reducedMQ.matches):!!o.reducedMotion;// Seconds; advances only while the loop runs. Sky mode starts at 20 s, the moment its static frame\n// and fallback image show, so the canvas fades in over the same clouds.\nlet time=modeOf()===\"sky\"?20:12;let cloudClock=time// sky: time x cloudSpeed, integrated so a speed change never jumps\n;let lastNow=0;const ptr={tx:.5,ty:.5,x:.5,y:.5,hover:false,amt:0,par:0};function step(dt){// Frame-rate independent easing: lerp 0.1 per 60 fps frame.\nconst k=1-Math.pow(1-.1,dt*60);ptr.x+=(ptr.tx-ptr.x)*k;ptr.y+=(ptr.ty-ptr.y)*k;// Light ramps in over ~250 ms, out over ~1200 ms.\nptr.amt=ptr.hover?Math.min(1,ptr.amt+dt/.25):Math.max(0,ptr.amt-dt/1.2);// Parallax rides a slower ease and returns to centre on leave.\nconst parTarget=ptr.hover&&!reduced()?(ptr.tx-.5)*2:0;const kp=1-Math.pow(1-.06,dt*60);ptr.par+=(parTarget-ptr.par)*kp;}function settled(){const parTarget=ptr.hover&&!reduced()?(ptr.tx-.5)*2:0;return ptr.amt===(ptr.hover?1:0)&&(ptr.amt===0||Math.abs(ptr.tx-ptr.x)<1e-4&&Math.abs(ptr.ty-ptr.y)<1e-4)&&Math.abs(ptr.par-parTarget)<1e-4;}/* ---------------- draw */const par=new Float32Array(6),top=new Float32Array(6),low=new Float32Array(6);const fogW=new Float32Array(6),lightW=new Float32Array(6),tintW=new Float32Array(6);let colBg=parseColor(o.bg,[.153,.157,.165]),colInk=parseColor(o.ink,[.83,.83,.83]),colTint=parseColor(o.tint,null);const model=()=>RIDGELINE_TONES[o.toneModel===\"lit\"?\"lit\":\"silhouette\"];const isNum=v=>v!==null&&v!==undefined&&v!==\"\"&&Number.isFinite(+v);// Sky-glow profile in force: an option still at its default yields to the tone model's\n// own value (the lit model has a faint haze); the deprecated skyGlow / skyGlowFalloff win.\nfunction glowParams(m){const D=RIDGELINE_DEFAULTS;const get=key=>JSON.stringify(o[key])===JSON.stringify(D[key])||o[key]===undefined?m[key]:o[key];const glow=isNum(o.skyGlow)?+o.skyGlow:isNum(get(\"glow\"))?+get(\"glow\"):m.glow;const length=isNum(o.skyGlowFalloff)?+o.skyGlowFalloff:isNum(get(\"glowLength\"))?+get(\"glowLength\"):m.glowLength;const curve=get(\"glowCurve\")===\"exp\"?\"exp\":\"pow\";const pw=isNum(get(\"glowPow\"))?+get(\"glowPow\"):m.glowPow;return{glow,length,curve,pow:pw};}function draw(){if(!gl||lost||destroyed||failed||!hInfo||W<1)return;if(progMode===\"sky\"){setSkyUniforms();finishDraw();return;}const rows=hInfo.rows;const m=model();for(let i=0;i<6;i++){const g=Math.min(i,rows-1);const km=hInfo.groupKm[g];const t=rows>1?g/(rows-1):1;top[i]=toneAt(m.top,km);low[i]=toneAt(m.low,km);fogW[i]=toneAt(RIDGELINE_TONES.fog,km);lightW[i]=toneAt(m.light,km);tintW[i]=colTint?o.tintAmount*t*t:0;par[i]=ptr.par*lerp(10,2,t)*o.parallax/Math.max(cssW,1);}const span=1+2*hInfo.margin;const A=(hInfo.N-1)/(hInfo.N*span);const B=.5/hInfo.N;const light=ptr.amt*ptr.amt*(3-2*ptr.amt)// eased ramp\n;const gp=glowParams(m);const bp=clamp(+o.blackPoint||0,0,.5);// Footer text rectangle (narrow values below narrowWidth).\nconst narrowNow=cssW<o.narrowWidth;const pickPx=(wide,narrow)=>narrowNow&&isNum(narrow)?+narrow:isNum(wide)?+wide:0;const clearPx=Math.max(0,pickPx(o.bottomClearPx,o.narrowBottomClearPx));const fadePx=Math.max(0,pickPx(o.bottomFadePx,o.narrowBottomFadePx));// The band's top row must be pure background: keep the end of topFade at least half a\n// dither cell below the edge, so the top row's centre is already past it.\n// Tone mode shades every device pixel: keep the end a full pixel below the edge.\nconst tone=progMode===\"tone\";const tf1=Math.min(+o.topFade[1],1-(tone?1:.5*cellPx)/H);const tf0=Math.min(+o.topFade[0],tf1-1e-4);gl.useProgram(prog);if(tone){gl.activeTexture(gl.TEXTURE1);gl.bindTexture(gl.TEXTURE_2D,texS);gl.uniform1i(U.uHeightsS,1);// Grain amplitude (luminance) and its floor: one 8-bit output step of the widest\n// ink-bg channel, so the dark gradients dither instead of banding.\nconst grain=Math.max(0,+o.grain||0);const range=Math.max(Math.abs(colInk[0]-colBg[0]),Math.abs(colInk[1]-colBg[1]),Math.abs(colInk[2]-colBg[2]),1/255);gl.uniform1f(U.uGrain,grain);gl.uniform1f(U.uGrainMin,grain>0?1/(255*range):0);gl.uniform1f(U.uGrainSeed,o.grainAnimated&&!reduced()?frames%251+1:0);}gl.activeTexture(gl.TEXTURE0);gl.bindTexture(gl.TEXTURE_2D,tex);gl.uniform1i(U.uHeights,0);gl.uniform2f(U.uRes,W,H);gl.uniform1f(U.uCell,cellPx);gl.uniform1f(U.uTime,time%4096);gl.uniform1f(U.uBands,rows);gl.uniform3f(U.uTexMap,hInfo.margin,A,B);gl.uniform1f(U.uEncoded,texPath===\"rgba8\"?1:0);gl.uniform1fv(U.uPar,par);gl.uniform1fv(U.uTop,top);gl.uniform1fv(U.uLow,low);gl.uniform1fv(U.uFogW,fogW);gl.uniform1fv(U.uLightW,lightW);gl.uniform1fv(U.uTintW,tintW);gl.uniform1f(U.uModel,o.toneModel===\"lit\"?1:0);gl.uniform1f(U.uGamma,Math.max(.05,+o.gamma||1));gl.uniform1f(U.uBlack,bp);gl.uniform1f(U.uFog,clamp(+o.fogDensity,0,1));gl.uniform1f(U.uDrift,reduced()?0:+o.fogDrift);gl.uniform3f(U.uLight,ptr.x,1-ptr.y,light*Math.max(0,+o.lightStrength));gl.uniform1f(U.uLightR,Math.max(.01,+o.lightRadius));gl.uniform1f(U.uSoft,clamp(+o.inkSoftness,0,1));gl.uniform1f(U.uShape,o.dotShape===\"round\"?1:0);gl.uniform1f(U.uLum,o.showLuminance?1:0);gl.uniform1f(U.uHorizon,+o.horizonY);gl.uniform2f(U.uTopFade,tf0,tf1);// The clear strip replaces the ground fog (no tone floor, no reduced ink).\ngl.uniform3f(U.uGround,clearPx>0?0:Math.max(0,+o.groundFogPx||0)/Math.max(cssH,1),m.ground,clamp(o.groundInk===undefined?1:+o.groundInk,0,1));gl.uniform4f(U.uSky,Math.max(0,gp.glow),Math.max(.01,gp.length),Math.max(.05,gp.pow),gp.curve===\"exp\"?0:1);gl.uniform3f(U.uBottom,clearPx/Math.max(cssH,1),fadePx/Math.max(cssH,1),Math.max(.05,+o.bottomFadeGamma||1));gl.uniform2f(U.uAccent,o.crestAccent?RIDGELINE_TONES.accent:0,2/Math.max(cssH,1));gl.uniform3f(U.uBg,colBg[0],colBg[1],colBg[2]);gl.uniform3f(U.uInk,colInk[0],colInk[1],colInk[2]);const tc=colTint||colInk;gl.uniform3f(U.uTint,tc[0],tc[1],tc[2]);finishDraw();}function finishDraw(){gl.drawArrays(gl.TRIANGLES,0,3);frames++;// First frame since creation / restore: show the canvas (fades in).\nif(!isStaticFrame&&state!==(degraded?\"static\":\"live\")&&!gl.isContextLost()){setState(degraded?\"static\":\"live\");}}/* ---------------- sky mode uniforms (ridgeline-v2.js draw(), r2) */const skyTop=new Float32Array(6),skyLow=new Float32Array(6),skyLightW=new Float32Array(6);let colMid=parseColor(o.inkMid,null)||colBg.map((v,i)=>(v+colInk[i])/2);// Grain frames for time t: frame k = floor(t * fps) cross-fades into frame k + 1 with weight\n// smoothstep(fract(t * fps)). Static (seed 0, no blend) at fps 0 and under reduced motion.\nfunction seedFor(t){const fps=+o.grainFps||0;if(!(fps>0)||reduced())return{a:0,b:0,w:0};const f=t*fps,k=Math.floor(f);return{a:k%9973+1,b:(k+1)%9973+1,w:smoothstep(0,1,f-k)};}function setSkyUniforms(){const rows=hInfo.rows;const tones=o.tones||SKY_OPTIONS.tones;for(let i=0;i<6;i++){const g=Math.min(i,rows-1);const km=hInfo.groupKm[g];const t=rows>1?g/(rows-1):1;skyTop[i]=toneAt(tones.top,km);skyLow[i]=toneAt(tones.low,km);skyLightW[i]=toneAt(tones.light,km);par[i]=ptr.par*lerp(10,2,t)*o.parallax/Math.max(cssW,1);}const span=1+2*hInfo.margin;const A=(hInfo.N-1)/(hInfo.N*span);const B=.5/hInfo.N;const light=ptr.amt*ptr.amt*(3-2*ptr.amt);const tf=skyNarrow()&&Array.isArray(o.narrowTopFadePx)?o.narrowTopFadePx:o.topFadePx;const still=reduced();const cc=cloudClock;const drift=o.cloudDriftPx||SKY_OPTIONS.cloudDriftPx;const cover=o.cloudCover||SKY_OPTIONS.cloudCover;const amt=Math.max(0,+o.clouds);const alpha=o.cloudAlpha||SKY_OPTIONS.cloudAlpha;const gs=seedFor(time);gl.useProgram(prog);gl.activeTexture(gl.TEXTURE1);gl.bindTexture(gl.TEXTURE_2D,texS);gl.uniform1i(U.uHeightsS,1);gl.activeTexture(gl.TEXTURE0);gl.bindTexture(gl.TEXTURE_2D,tex);gl.uniform1i(U.uHeights,0);gl.uniform2f(U.uRes,W,H);gl.uniform1f(U.uDpr,W/Math.max(cssW,1));gl.uniform1f(U.uBands,rows);gl.uniform3f(U.uTexMap,hInfo.margin,A,B);gl.uniform1f(U.uEncoded,texPath===\"rgba8\"?1:0);gl.uniform1fv(U.uPar,par);gl.uniform1fv(U.uTop,skyTop);gl.uniform1fv(U.uLow,skyLow);gl.uniform1fv(U.uLightW,skyLightW);gl.uniform1f(U.uHorizon,hInfo.horizonY);gl.uniform4f(U.uSky,+o.skyTop,+o.skyHorizon,Math.max(0,+o.glow),Math.max(1,+o.glowLengthPx));gl.uniform2f(U.uTopFade,cssH-+tf[0],cssH-+tf[1]);gl.uniform2f(U.uGround,+o.groundL,Math.max(1,+o.groundPx));gl.uniform3f(U.uLight,ptr.x,1-ptr.y,light*Math.max(0,+o.lightStrength));gl.uniform1f(U.uLightR,Math.max(10,+o.lightRadiusPx));gl.uniform4f(U.uCloudTone,+o.cloudLit,+o.cloudShade,+o.cloudGlowLift,+o.cloudLight);gl.uniform4f(U.uCover,clamp(cover[0]*amt,0,1),clamp(cover[1]*amt,0,1),clamp(cover[2]*amt,0,1),clamp(cover[3]*amt,0,1));gl.uniform4f(U.uAlpha,alpha[0],alpha[1],alpha[2],alpha[3]);// Drift wraps every ~68 min of cloud time (a jump nobody will sit through).\nconst ct=cc%4096;gl.uniform4f(U.uDrift,ct*drift[0],ct*drift[1],ct*drift[2],ct*drift[3]);gl.uniform1f(U.uEvolve,ct*(+o.cloudEvolve||0));const pp=still?0:ptr.par*o.parallax;gl.uniform4f(U.uCloudPar,pp*1.5,pp*2.5,pp*5,pp*7);gl.uniform2f(U.uLayerAt,isNum(o.bankAfter)?+o.bankAfter:-1,isNum(o.mistAfter)?+o.mistAfter:-1);gl.uniform4f(U.uBankGeo,+o.bankAbovePx,+o.bankBelowPx,+o.mistPx,isNum(o.bankHaze)?+o.bankHaze:.75);const ws=Array.isArray(o.wispScale)?o.wispScale:SKY_OPTIONS.wispScale;const ww=Array.isArray(o.wispWarp)?o.wispWarp:SKY_OPTIONS.wispWarp;gl.uniform4f(U.uWisp,Math.max(8,+ws[0]),Math.max(4,+ws[1]),+o.wispWander||0,clamp(+o.wispBreakup||0,0,1));gl.uniform2f(U.uWispWarp,+ww[0]||0,+ww[1]||0);const devPx=W/Math.max(cssW,1);// Below DPR 2 every grain covers more CSS area, so the same amplitude reads heavier:\n// 0.7x at DPR 1, easing to 1x at DPR 2 (the amounts are tuned at DPR 2).\nconst grainK=lerp(.7,1,clamp(devPx-1,0,1));gl.uniform4f(U.uGrain,Math.max(0,+o.grainAmount||0)*grainK,gs.a,Math.max(1.5,(+o.grainSize||2.6)*devPx/2),clamp(+o.grainShadow,0,1));gl.uniform2f(U.uGrainB,gs.b,gs.w);gl.uniform1f(U.uGrainTop,Math.max(0,+o.grainTopFadePx||0));gl.uniform1f(U.uVig,clamp(+o.vignette||0,0,1));gl.uniform3fv(U.uC0,colBg);gl.uniform3fv(U.uCm,colMid);gl.uniform3fv(U.uC1,colInk);}/* ---------------- loop: runs only while started, visible and on screen */let running=false,raf=0,inView=true;let pageVisible=typeof document===\"undefined\"||document.visibilityState!==\"hidden\";let frames=0,fps=0,fpsT0=0,fpsF0=0;function wantsFrames(){if(isStaticFrame||degraded||failed||!gl||lost||destroyed||!inView||!pageVisible)return false;if(running&&!reduced())return true// fog drift\n;return!settled()// easing the light / parallax home\n;}function schedule(){if(!raf&&wantsFrames())raf=requestAnimationFrame(tick);}function tick(now){raf=0;if(!wantsFrames()){lastNow=0;guardPrev=0;return;}// Frame cap (sky mode: maxFps 30; tone / dither: none): skip ticks until ~1 / maxFps has\n// passed since the last drawn frame, with 4 ms of slack for rAF jitter. Every 2nd tick at\n// 60 Hz, every 4th at 120 Hz, every 3rd at 90 Hz; the clocks advance by the real time.\nconst minMs=+o.maxFps>0?1e3/+o.maxFps:0;if(minMs&&lastNow&&now-lastNow<minMs-4){schedule();return;}const dt=lastNow?Math.min(.1,(now-lastNow)/1e3):1/60;lastNow=now;if(running&&!reduced()){time+=dt;cloudClock+=dt*Math.max(0,+o.cloudSpeed||0);}step(dt);draw();if(!fpsT0){fpsT0=now;fpsF0=frames;}if(now-fpsT0>=500){fps=(frames-fpsF0)*1e3/(now-fpsT0);fpsT0=now;fpsF0=frames;}guardSample(now);if(degraded)return;schedule();}/* ---------------- frame-time guard: a device that cannot hold ~30 fps gets a still frame.\n       Only the continuous fog loop counts (a pointer-only burst is not a frame rate), and any\n       break in the loop (hidden, off screen, reduced motion, context loss) restarts the pairing. */let guardPrev=0,guardMedian=0,guardSeen=0;const guardIntervals=[];function guardSample(now){const n=Math.max(0,Math.round(+o.perfGuardFrames||0));if(!n||guardMedian||degraded||!running||reduced()||state!==\"live\"){guardPrev=0;return;}if(guardPrev)guardIntervals.push(now-guardPrev);guardPrev=now;const limit=Math.max(1,+o.perfGuardMs||45);// Verdict at n intervals (limit), or already at n / 3 when the median is more than\n// twice the limit (software GL: ~80 ms frames would otherwise jank for ~7 s first).\nconst early=guardIntervals.length>=Math.ceil(n/3);if(guardIntervals.length<n&&!early)return;const sorted=guardIntervals.slice().sort((a,b)=>a-b);const median=Math.round(sorted[sorted.length>>1]*10)/10;if(guardIntervals.length<n&&median<=2*limit)return;guardMedian=median;guardSeen=guardIntervals.length;guardIntervals.length=0;if(guardMedian>limit)degrade();}function degrade(){degraded=true;if(raf)cancelAnimationFrame(raf);raf=0;report(`static frame: median frame interval ${guardMedian} ms over ${guardSeen} frames `+`(limit ${+o.perfGuardMs} ms); the loop is stopped and the pointer light is off`);// Redraw the current fog with the light off and the parallax centred; that frame stays.\nptr.hover=false;ptr.amt=0;ptr.par=0;draw();setState(\"static\");}// Something changed while idle: draw now if we are not animating anyway.\nfunction invalidate(){if(raf)return;if(wantsFrames())schedule();else draw();}/* ---------------- events (Framer port: pointer from window, the canvas is click-through) */const coarse=typeof matchMedia===\"function\"&&matchMedia(\"(hover: none), (pointer: coarse)\").matches;let lastClient=null;function evalPointer(cx,cy){const r=canvas.getBoundingClientRect();if(r.width<1||r.height<1)return;const M=Math.max(0,+o.pointerMargin||0);const over=cx>=r.left-M&&cx<=r.right+M&&cy>=r.top-M&&cy<=r.bottom+M;if(!over){if(ptr.hover)onLeave();return;}ptr.tx=clamp((cx-r.left)/r.width,0,1);ptr.ty=clamp((cy-r.top)/r.height,0,1);if(!ptr.hover&&ptr.amt<.02){ptr.x=ptr.tx;ptr.y=ptr.ty;}// arrive in place, no sweep\nptr.hover=true;lastNow=0;schedule();}function onMove(e){if(!o.interactive||degraded||e.pointerType===\"touch\"||coarse&&e.pointerType!==\"mouse\")return;lastClient=[e.clientX,e.clientY];if(!inView&&!ptr.hover)return;// off screen: no layout reads per move\nevalPointer(e.clientX,e.clientY);}// The band scrolls under a still pointer at the end of the page: re-test on scroll.\nfunction onScroll(){if(lastClient&&o.interactive&&!degraded&&(inView||ptr.hover))evalPointer(lastClient[0],lastClient[1]);}function onOut(e){if(e.relatedTarget)return;// still inside the document\nlastClient=null;if(ptr.hover)onLeave();}function onLeave(){ptr.hover=false;schedule();}function onLost(e){e.preventDefault()// without this the browser never restores the context\n;lost=true;if(raf)cancelAnimationFrame(raf);raf=0;guardPrev=0;if(!destroyed)report(\"fallback image: WebGL context lost, waiting for a restore\");setState(\"fallback\")// the image shows until a restored context draws a frame\n;}function onRestored(){lost=false;guardPrev=0;if(initGL()){resize();invalidate();}}function onVisibility(){pageVisible=document.visibilityState!==\"hidden\";lastNow=0;guardPrev=0;if(pageVisible)schedule();}const onReducedChange=()=>{lastNow=0;guardPrev=0;invalidate();schedule();};let ro=null;let io=null;let dprMQ=null;const onDprChange=()=>{watchDpr();devicePxBox=null;resize();invalidate();};// Moving the window between displays changes DPR without a resize event.\nfunction watchDpr(){if(dprMQ)dprMQ.removeEventListener(\"change\",onDprChange);dprMQ=null;if(typeof matchMedia!==\"function\"||typeof devicePixelRatio!==\"number\")return;dprMQ=matchMedia(`(resolution: ${devicePixelRatio}dppx)`);if(dprMQ.addEventListener)dprMQ.addEventListener(\"change\",onDprChange,{once:true});}// staticFrame (Framer canvas snapshots): no listeners, no observers, no loop.\nif(!isStaticFrame){addEventListener(\"pointermove\",onMove,{passive:true});addEventListener(\"pointerout\",onOut,{passive:true});addEventListener(\"scroll\",onScroll,{passive:true});canvas.addEventListener(\"webglcontextlost\",onLost);canvas.addEventListener(\"webglcontextrestored\",onRestored);if(typeof document!==\"undefined\")document.addEventListener(\"visibilitychange\",onVisibility);if(reducedMQ&&reducedMQ.addEventListener)reducedMQ.addEventListener(\"change\",onReducedChange);if(typeof ResizeObserver===\"function\"){ro=new ResizeObserver(entries=>{for(const e of entries){if(e.target!==canvas)continue;const box=e.devicePixelContentBoxSize&&e.devicePixelContentBoxSize[0];devicePxBox=box?[box.inlineSize,box.blockSize]:null;}resize();invalidate();});try{ro.observe(canvas,{box:\"device-pixel-content-box\"});}catch(_){ro.observe(canvas);}if(host!==canvas)ro.observe(host);}if(typeof IntersectionObserver===\"function\"){io=new IntersectionObserver(entries=>{inView=entries[entries.length-1].isIntersecting;lastNow=0;guardPrev=0;if(inView)schedule();},{rootMargin:\"100px 0px\"});io.observe(host);}watchDpr();}if(initGL())resize();/* ---------------- public API */const api={setOptions(next={}){o={...o,...next};if(\"data\"in next)lastHeightsKey=\"\"// new terrain: rebuild the texture\n;if(\"bg\"in next||\"ink\"in next||\"tint\"in next||\"inkMid\"in next){colBg=parseColor(o.bg,colBg);colInk=parseColor(o.ink,colInk);colTint=parseColor(o.tint,null);colMid=parseColor(o.inkMid,null)||colBg.map((v,i)=>(v+colInk[i])/2);}// forceWebGL1 / forceRGBA8 / staticFrame need a fresh renderer: only honoured on creation.\nif(gl&&!lost&&!failed&&progMode!==modeOf()&&!buildProgram()&&!isStaticFrame){fail(\"fallback image: shader program failed\");}resize();lastNow=0;invalidate();schedule();},getOptions(){return{...o,data:undefined,host:undefined};},/* Normalised position in the band, x from the left, y from the TOP (DOM order).\n           { immediate: true } skips the ease and the ramp (used for screenshots). */setPointer(x,y,{immediate=false}={}){ptr.tx=clamp(+x,0,1);ptr.ty=clamp(+y,0,1);ptr.hover=true;if(immediate){ptr.x=ptr.tx;ptr.y=ptr.ty;ptr.amt=1;ptr.par=reduced()?0:(ptr.tx-.5)*2;}lastNow=0;invalidate();schedule();},clearPointer({immediate=false}={}){ptr.hover=false;if(immediate){ptr.amt=0;ptr.par=0;}lastNow=0;invalidate();schedule();},resize(){devicePxBox=null;resize();invalidate();},/* Draw exactly one frame. Pass t (seconds) to pin the fog for a deterministic frame. */renderOnce(t){if(typeof t===\"number\"&&Number.isFinite(t)){time=t;// Sky: clouds at t x cloudSpeed (kept where they are under reduced motion).\nif(!reduced())cloudClock=t*Math.max(0,+o.cloudSpeed||0);}resize();draw();},start(){running=true;lastNow=0;schedule();},stop(){running=false;if(raf)cancelAnimationFrame(raf);raf=0;},getStats(){let renderer=\"\";try{const ext=gl&&gl.getExtension(\"WEBGL_debug_renderer_info\");renderer=ext?gl.getParameter(ext.UNMASKED_RENDERER_WEBGL):\"\";}catch(_){}return{fps:Math.round(fps*10)/10,frames,light:Math.round(ptr.amt*1e3)/1e3,dpr,cssW,cssH,width:W,height:H,cellPx,webgl:gl?isGL2?\"webgl2\":\"webgl1\":\"none\",heightTexture:texPath,renderMode:progMode,toneModel:o.toneModel,elevToHeight:hInfo?Math.round(hInfo.elevToHeight*1e4)/1e4:0,pxPerDegH:hInfo?Math.round(hInfo.pxPerDegH*100)/100:0,bandKm:hInfo?hInfo.groupKm:[],bands:hInfo?hInfo.rows:0,running,inView,lost,reduced:reduced(),renderer,state,degraded,failed,guardMedianMs:guardMedian,maxFps:+o.maxFps||0,time,cloudClock,grain:progMode===\"sky\"?seedFor(time):null};},destroy(){destroyed=true;api.stop();if(!isStaticFrame){removeEventListener(\"pointermove\",onMove);removeEventListener(\"pointerout\",onOut);removeEventListener(\"scroll\",onScroll);canvas.removeEventListener(\"webglcontextlost\",onLost);canvas.removeEventListener(\"webglcontextrestored\",onRestored);if(typeof document!==\"undefined\")document.removeEventListener(\"visibilitychange\",onVisibility);if(reducedMQ&&reducedMQ.removeEventListener)reducedMQ.removeEventListener(\"change\",onReducedChange);if(dprMQ)dprMQ.removeEventListener(\"change\",onDprChange);if(ro)ro.disconnect();if(io)io.disconnect();}if(gl){gl.deleteTexture(tex);gl.deleteTexture(texS);gl.deleteBuffer(buf);gl.deleteProgram(prog);const ext=gl.getExtension(\"WEBGL_lose_context\");if(ext)ext.loseContext();}gl=null;}};return api;}/* ----------------------------------------------------------- Framer component *//* Terrain for a render mode: the sky mode's 0.2 degree constant, the 0.1 degree one for tone / dither. */const dataFor=o=>o&&o.renderMode===\"sky\"?RIDGELINE_DATA_SKY:RIDGELINE_DATA;const STATIC_T=2.5// seconds: the fog position of the canvas snapshot (tone / dither)\n;const SKY_STATIC_T=20// seconds: the cloud position of the sky snapshot and fallback image (the prototype's t)\n;/* The band's static frame (t = 2.5 s, the approved options, 1440 x 480 at DPR 2 = 2880 x 960),\n   rendered by this component and uploaded to the project's assets. It sits under the canvas:\n   it shows before JS runs, while the first frame is pending, and whenever WebGL is not usable.\n   The \"Fallback image\" control overrides it; this default keeps a fresh instance covered. */const FALLBACK_SRC=\"https://framerusercontent.com/images/8jUe463G5nIhLNIGpwh2odcE4.webp\";/* Sky mode's static frame (t = 20 s, SKY_OPTIONS, grain frame 61 at 0.03, 1440 x 600 at DPR 2 = 2880 x 1200,\n   rendered by this component and encoded as lossy WebP q90), same role as FALLBACK_SRC.\n   Overridden by the \"Sky fallback image\" control. */const SKY_FALLBACK_SRC=\"https://framerusercontent.com/images/wmFpVKtfObKGgahEc4ojedliFI.webp\";const DEFAULTS={renderMode:\"sky\",// sky mode\nfilmGrain:SKY_OPTIONS.grainAmount,grainFps:SKY_OPTIONS.grainFps,cloudSpeed:1,clouds:1,skyLight:SKY_OPTIONS.lightStrength,skyHorizon:0,skyFadeStart:0,skyFadeEnd:0,// tone / dither\ngrain:.015,verticalExaggeration:2.5,horizonY:.3,dotCell:2,narrowDotCell:2,inkSoftness:.25,gamma:1,glow:.6,glowLength:.28,glowCurve:\"exp\",glowPow:1.6,fogDensity:.6,fogDrift:.025,groundFogPx:110,groundInk:.5,bottomClearPx:96,bottomFadePx:120,bottomFadeGamma:1.4,lightRadius:.3,lightStrength:1,parallax:1,topFadeStart:.72,topFadeEnd:.96,bg:\"#27282A\",ink:\"#D4D4D4\",reducedMotionOverride:false};const num=(v,d)=>typeof v===\"number\"&&Number.isFinite(v)?v:d;/* \"sky\" unless the instance picks tone or dither (sky is the default since v7). */const modeOfProps=p=>p.renderMode===\"tone\"||p.renderMode===\"dither\"?p.renderMode:\"sky\";/* Props -> renderer options. Everything not exposed is pinned to the approved look. */function resolveOptions(p){const D=DEFAULTS;const fadeStart=clamp(num(p.topFadeStart,D.topFadeStart),0,.99);const fadeEnd=Math.max(fadeStart+.01,num(p.topFadeEnd,D.topFadeEnd));// Bottom strip values come purely from controls (no width-based switch): the narrow\n// variants mirror the wide ones, and Framer breakpoint overrides provide the phone values.\nconst bottomClearPx=Math.max(0,num(p.bottomClearPx,D.bottomClearPx));const bottomFadePx=Math.max(0,num(p.bottomFadePx,D.bottomFadePx));const mode=modeOfProps(p);const renderMode=mode===\"dither\"?\"dither\":\"tone\";const tone=renderMode===\"tone\";const legacy={renderMode,grain:clamp(num(p.grain,D.grain),0,.2),grainAnimated:false,bodySmooth:.0175,toneModel:\"silhouette\",crestAccent:!tone,minBandKm:3,belowHorizon:\"terrain\",composition:RIDGELINE_DEFAULTS.composition,narrowWidth:900,narrowFocus:.78,verticalExaggeration:num(p.verticalExaggeration,D.verticalExaggeration),horizonY:num(p.horizonY,D.horizonY),// The dot controls are hidden in tone mode, so they are inert there too.\ndotCell:num(p.dotCell,D.dotCell),narrowDotCell:num(p.narrowDotCell,D.narrowDotCell),inkSoftness:num(p.inkSoftness,D.inkSoftness),gamma:tone?1:num(p.gamma,D.gamma),glow:num(p.glow,D.glow),glowLength:num(p.glowLength,D.glowLength),glowCurve:p.glowCurve===\"pow\"?\"pow\":p.glowCurve===\"exp\"?\"exp\":D.glowCurve,glowPow:num(p.glowPow,D.glowPow),fogDensity:num(p.fogDensity,D.fogDensity),fogDrift:num(p.fogDrift,D.fogDrift),groundFogPx:num(p.groundFogPx,D.groundFogPx),groundInk:num(p.groundInk,D.groundInk),bottomClearPx,bottomFadePx,bottomFadeGamma:num(p.bottomFadeGamma,D.bottomFadeGamma),narrowBottomClearPx:bottomClearPx,narrowBottomFadePx:bottomFadePx,lightRadius:num(p.lightRadius,D.lightRadius),lightStrength:num(p.lightStrength,D.lightStrength),parallax:num(p.parallax,D.parallax),topFade:[fadeStart,fadeEnd],bg:p.bg||D.bg,ink:p.ink||D.ink,reducedMotion:p.reducedMotionOverride?true:\"auto\"};if(mode!==\"sky\"){// Exactly the v6 options, plus the sky-only switches held off (shared keys must be present in\n// both shapes: a control change merges into the running renderer's options).\nreturn{...legacy,narrowZoom:1,narrowVerticalExaggeration:null,maxFps:0};}// v8 layout overrides: 0 keeps the built-in value (wide and narrow variants alike).\nconst skyLayout={};const horizonPx=num(p.skyHorizon,D.skyHorizon);if(horizonPx>0){skyLayout.horizonPx=horizonPx;skyLayout.narrowHorizonPx=horizonPx;}const fadeStartPx=num(p.skyFadeStart,D.skyFadeStart);const fadeEndPx=num(p.skyFadeEnd,D.skyFadeEnd);if(fadeStartPx>0&&fadeEndPx>0){const fade=[Math.max(fadeStartPx,fadeEndPx+1),Math.min(fadeEndPx,fadeStartPx-1)];skyLayout.topFadePx=fade;skyLayout.narrowTopFadePx=fade;}return{...legacy,...SKY_OPTIONS,...skyLayout,renderMode:\"sky\",grainAmount:clamp(num(p.filmGrain,D.filmGrain),0,.2),grainFps:clamp(Math.round(num(p.grainFps,D.grainFps)),0,24),cloudSpeed:clamp(num(p.cloudSpeed,D.cloudSpeed),0,5),clouds:clamp(num(p.clouds,D.clouds),0,2),lightStrength:clamp(num(p.skyLight,D.skyLight),0,2),parallax:num(p.parallax,D.parallax),bg:p.bg||D.bg,reducedMotion:p.reducedMotionOverride?true:\"auto\"};}/* Canvas snapshot: a throw-away WebGL context renders one frame offscreen, the\n   pixels are copied into the visible 2D canvas, and the context is freed at once. */function paintStaticFrame(target,host,opts){const size=layoutSize(host);if(!(size.w>=1)||!(size.h>=1))return;const off=document.createElement(\"canvas\");const rl=createRidgeline(off,{...opts,data:dataFor(opts),host:off,staticFrame:true,interactive:false,size:[size.w,size.h]});try{rl.renderOnce(opts.renderMode===\"sky\"?SKY_STATIC_T:STATIC_T);if(rl.getStats().frames<1)return;// no WebGL: leave the plain background\nif(target.width!==off.width)target.width=off.width;if(target.height!==off.height)target.height=off.height;const ctx=target.getContext(\"2d\");if(ctx){ctx.imageSmoothingEnabled=false;ctx.drawImage(off,0,0);}}finally{rl.destroy();}}/**\n * Ridgeline Band\n *\n * Seattle ridgeline for the footer: a night sky with drifting clouds over the ridges (Sky, default),\n * or the v6 band in continuous tone or dithered dots.\n * Fill its parent (100% x 100%, absolute, behind the footer row); it never takes\n * pointer events.\n *\n * @framerIntrinsicWidth 1440\n * @framerIntrinsicHeight 600\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function RidgelineBand(props){const{style}=props;const opts=resolveOptions(props);const fallbackSrc=opts.renderMode===\"sky\"?props.skyFallbackImage&&props.skyFallbackImage.src||SKY_FALLBACK_SRC:props.fallbackImage&&props.fallbackImage.src||FALLBACK_SRC;const optsKey=JSON.stringify(opts);const optsRef=useRef(opts);optsRef.current=opts;const hostRef=useRef(null);const canvasRef=useRef(null);const apiRef=useRef(null);const appliedKey=useRef(optsKey);const isStatic=RenderTarget.hasRestrictions();// Site + preview: one live renderer for the life of the instance.\nuseEffect(()=>{if(isStatic)return;const canvas=canvasRef.current;const host=hostRef.current;if(!canvas||!host)return;const rl=createRidgeline(canvas,{...optsRef.current,data:dataFor(optsRef.current),host});apiRef.current=rl;appliedKey.current=JSON.stringify(optsRef.current);canvas.__ridgeline=rl// debug handle: canvas[data-ridgeline].__ridgeline.getStats()\n;rl.start();return()=>{rl.destroy();apiRef.current=null;canvas.__ridgeline=undefined;};},[isStatic]);// Site + preview: control changes go to the running renderer.\nuseEffect(()=>{if(isStatic||!apiRef.current||appliedKey.current===optsKey)return;appliedKey.current=optsKey;apiRef.current.setOptions({...optsRef.current,data:dataFor(optsRef.current)});},[isStatic,optsKey]);// Framer canvas: one frame at t = 2.5 s, repainted only when the size or a control changes.\nuseEffect(()=>{if(!isStatic)return;const canvas=canvasRef.current;const host=hostRef.current;if(!canvas||!host)return;let last=\"\";const paint=()=>{const s=layoutSize(host);const k=Math.round(s.w)+\"x\"+Math.round(s.h);if(k===last)return;last=k;paintStaticFrame(canvas,host,optsRef.current);};if(typeof ResizeObserver!==\"function\"){paint();return;}const ro=new ResizeObserver(paint);ro.observe(host);return()=>ro.disconnect();},[isStatic,optsKey]);return /*#__PURE__*/_jsxs(\"div\",{ref:hostRef,\"aria-hidden\":\"true\",style:{width:\"100%\",height:\"100%\",...style,position:\"relative\",overflow:\"hidden\",pointerEvents:\"none\",background:opts.bg},children:[fallbackSrc?/*#__PURE__*/_jsx(\"img\",{alt:\"\",\"aria-hidden\":\"true\",draggable:false,loading:\"lazy\",decoding:\"async\",src:fallbackSrc,style:{position:\"absolute\",left:0,top:0,width:\"100%\",height:\"100%\",display:\"block\",objectFit:\"cover\",objectPosition:\"95% 100%\",pointerEvents:\"none\",userSelect:\"none\"}}):null,/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,\"data-ridgeline\":\"\",\"aria-hidden\":\"true\",style:{position:\"absolute\",left:0,top:0,width:\"100%\",height:\"100%\",display:\"block\",pointerEvents:\"none\",imageRendering:opts.renderMode===\"dither\"?\"pixelated\":\"auto\",// Live: hidden until the first frame (the renderer fades it in), so the image\n// underneath shows first. Framer canvas: the 2D snapshot covers the image at once.\nopacity:isStatic?1:0}},isStatic?\"static\":\"live\")]});}RidgelineBand.displayName=\"Ridgeline Band\";addPropertyControls(RidgelineBand,{// Render mode\nrenderMode:{type:ControlType.Enum,title:\"Render mode\",options:[\"sky\",\"tone\",\"dither\"],optionTitles:[\"Sky\",\"Tone\",\"Dither\"],defaultValue:\"sky\",displaySegmentedControl:true,description:\"Sky: footer text on top, clouds and ridges below, film grain (v7). Tone / Dither: the v6 band with the row at the bottom.\"},// Sky\nfilmGrain:{type:ControlType.Number,title:\"Film grain\",min:0,max:.1,step:.005,defaultValue:SKY_OPTIONS.grainAmount,description:\"Sky only (Tone has its own Grain control, on a different scale). Grain strength: std in luminance at mid-grey. 0 = off.\",hidden:p=>modeOfProps(p)!==\"sky\"},grainFps:{type:ControlType.Number,title:\"Grain fps\",min:0,max:12,step:1,defaultValue:SKY_OPTIONS.grainFps,description:\"Sky only. New grain frames per second, cross-faded. 0 = static grain.\",hidden:p=>modeOfProps(p)!==\"sky\"},cloudSpeed:{type:ControlType.Number,title:\"Cloud speed\",min:0,max:3,step:.05,defaultValue:1,description:\"Sky only. Multiplier on cloud drift and shape change. 0 = still clouds.\",hidden:p=>modeOfProps(p)!==\"sky\"},clouds:{type:ControlType.Number,title:\"Clouds\",min:0,max:1.5,step:.05,defaultValue:1,description:\"Sky only. Cloud cover multiplier for every layer. 0 = clear sky.\",hidden:p=>modeOfProps(p)!==\"sky\"},skyLight:{type:ControlType.Number,title:\"Sky light\",min:0,max:1.5,step:.05,defaultValue:SKY_OPTIONS.lightStrength,description:\"Sky only. Strength of the hover light.\",hidden:p=>modeOfProps(p)!==\"sky\"},skyHorizon:{type:ControlType.Number,title:\"Sky horizon\",min:0,max:400,step:1,unit:\"px\",defaultValue:0,description:\"Sky only. Height of the horizon line above the bottom of the band, in px (phones too). 0 = built-in (96, 105 on phones).\",hidden:p=>modeOfProps(p)!==\"sky\"},skyFadeStart:{type:ControlType.Number,title:\"Sky fade start\",min:0,max:1e3,step:1,unit:\"px\",defaultValue:0,description:\"Sky only. Clouds and glow are at full strength below this many px from the top of the band. 0 = built-in.\",hidden:p=>modeOfProps(p)!==\"sky\"},skyFadeEnd:{type:ControlType.Number,title:\"Sky fade end\",min:0,max:1e3,step:1,unit:\"px\",defaultValue:0,description:\"Sky only. Clouds and glow are gone above this many px from the top (keep it below the text block). 0 = built-in.\",hidden:p=>modeOfProps(p)!==\"sky\"},grain:{type:ControlType.Number,title:\"Grain\",min:0,max:.06,step:.005,defaultValue:.015,description:\"Tone only (Sky has its own Film grain control). Static grain amplitude in luminance units. 0 turns it off (dark gradients may band).\",hidden:p=>modeOfProps(p)!==\"tone\"},// Terrain\nverticalExaggeration:{type:ControlType.Number,title:\"Relief\",min:1,max:5,step:.05,defaultValue:2.5,description:\"Vertical exaggeration: vertical px per degree / horizontal px per degree.\",hidden:p=>modeOfProps(p)===\"sky\"},horizonY:{type:ControlType.Number,title:\"Horizon\",min:.05,max:.6,step:.01,defaultValue:.3,description:\"Where 0 deg elevation sits, as a share of the band height from the bottom.\",hidden:p=>modeOfProps(p)===\"sky\"},// Dots\ndotCell:{type:ControlType.Number,title:\"Dot cell\",min:2,max:6,step:1,unit:\"px\",defaultValue:2,hidden:p=>modeOfProps(p)!==\"dither\"},narrowDotCell:{type:ControlType.Number,title:\"Dot cell narrow\",min:1,max:6,step:1,unit:\"px\",defaultValue:2,description:\"Dot cell below 900 px wide.\",hidden:p=>modeOfProps(p)!==\"dither\"},inkSoftness:{type:ControlType.Number,title:\"Dot softness\",min:0,max:1,step:.01,defaultValue:.25,hidden:p=>modeOfProps(p)!==\"dither\"},gamma:{type:ControlType.Number,title:\"Dot gamma\",min:.5,max:2,step:.05,defaultValue:1,hidden:p=>modeOfProps(p)!==\"dither\"},// Sky glow\nglow:{type:ControlType.Number,title:\"Glow\",min:0,max:1,step:.01,defaultValue:.6,description:\"Peak luminance of the sky glow right above the skyline.\",hidden:p=>modeOfProps(p)===\"sky\"},glowLength:{type:ControlType.Number,title:\"Glow length\",min:.1,max:1.5,step:.01,defaultValue:.28,description:\"Band heights above the skyline over which the glow thins out (exp: its Gaussian width / 0.55).\",hidden:p=>modeOfProps(p)===\"sky\"},glowCurve:{type:ControlType.Enum,title:\"Glow curve\",options:[\"exp\",\"pow\"],optionTitles:[\"Exp\",\"Pow\"],defaultValue:\"exp\",displaySegmentedControl:true,description:\"Exp: Gaussian tail. Pow: pow(1 - d / length, Glow pow), exactly 0 at the length.\",hidden:p=>modeOfProps(p)===\"sky\"},glowPow:{type:ControlType.Number,title:\"Glow pow\",min:.5,max:4,step:.05,defaultValue:1.6,description:\"Pow curve only. Falloff exponent; above 1 gives a dense core and a long, sparse tail.\",hidden:p=>modeOfProps(p)===\"sky\"||p.glowCurve!==\"pow\"},// Fog\nfogDensity:{type:ControlType.Number,title:\"Fog density\",min:0,max:1,step:.01,defaultValue:.6,hidden:p=>modeOfProps(p)===\"sky\"},fogDrift:{type:ControlType.Number,title:\"Fog drift\",min:0,max:.2,step:.005,defaultValue:.025,description:\"Noise cells per second; 0 under reduced motion.\",hidden:p=>modeOfProps(p)===\"sky\"},groundFogPx:{type:ControlType.Number,title:\"Ground fog\",min:0,max:220,step:1,unit:\"px\",defaultValue:110,description:\"Only used when Bottom clear is 0: bottom strip eased to the ground tone, where the footer row sits.\",hidden:p=>modeOfProps(p)===\"sky\"},groundInk:{type:ControlType.Number,title:\"Ground ink\",min:0,max:1,step:.01,defaultValue:.5,description:\"Only used when Bottom clear is 0.\",hidden:p=>modeOfProps(p)===\"sky\"},// Bottom strip\nbottomClearPx:{type:ControlType.Number,title:\"Bottom clear\",min:0,max:300,step:1,unit:\"px\",defaultValue:96,description:\"Full-width strip at the bottom left at the bare background, for the footer row. 0 turns it off (ground fog applies instead).\",hidden:p=>modeOfProps(p)===\"sky\"},bottomFadePx:{type:ControlType.Number,title:\"Bottom fade\",min:0,max:300,step:1,unit:\"px\",defaultValue:120,description:\"Height above the clear strip over which the terrain thins out.\",hidden:p=>modeOfProps(p)===\"sky\"},bottomFadeGamma:{type:ControlType.Number,title:\"Bottom fade gamma\",min:.5,max:3,step:.05,defaultValue:1.4,description:\"Above 1 the thinning starts slowly and speeds up towards the strip, so the terrain dissolves into it.\",hidden:p=>modeOfProps(p)===\"sky\"},// Light\nlightRadius:{type:ControlType.Number,title:\"Light radius\",min:.08,max:.8,step:.01,defaultValue:.3,hidden:p=>modeOfProps(p)===\"sky\"},lightStrength:{type:ControlType.Number,title:\"Light strength\",min:0,max:1.5,step:.01,defaultValue:1,hidden:p=>modeOfProps(p)===\"sky\"},parallax:{type:ControlType.Number,title:\"Light parallax\",min:0,max:3,step:.05,defaultValue:1},// Top fade\ntopFadeStart:{type:ControlType.Number,title:\"Fade start\",min:0,max:1,step:.01,defaultValue:.72,hidden:p=>modeOfProps(p)===\"sky\"},topFadeEnd:{type:ControlType.Number,title:\"Fade end\",min:0,max:1,step:.01,defaultValue:.96,hidden:p=>modeOfProps(p)===\"sky\"},// Colour\nbg:{type:ControlType.Color,title:\"Background\",defaultValue:\"#27282A\"},ink:{type:ControlType.Color,title:\"Ink\",defaultValue:\"#D4D4D4\",hidden:p=>modeOfProps(p)===\"sky\"},// Fallback\nfallbackImage:{type:ControlType.ResponsiveImage,title:\"Fallback image\",description:\"Shown under the canvas before the first frame, without WebGL, on software GL and after a lost context. Empty = the built-in frame (2880 x 960).\",hidden:p=>modeOfProps(p)===\"sky\"},skyFallbackImage:{type:ControlType.ResponsiveImage,title:\"Sky fallback image\",description:\"Sky only. Shown under the canvas before the first frame, without WebGL, on software GL and after a lost context. Empty = the built-in frame (2880 x 1200).\",hidden:p=>modeOfProps(p)!==\"sky\"},// Testing\nreducedMotionOverride:{type:ControlType.Boolean,title:\"Force reduced\",defaultValue:false,description:\"Testing: behave as if prefers-reduced-motion were on (no drift, no parallax).\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"RidgelineBand\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"1440\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicHeight\":\"600\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./RidgelineBand.map","/*\n * SeattleClock: \"Seattle 3:42 PM\", the local time in Seattle, for the footer's bottom line.\n *\n * Hydration: the server and the first client render both output <time>Seattle</time> (no time,\n * no dateTime), so the markup always matches. The time is filled in after mount and refreshed on\n * each minute boundary (and when the tab becomes visible again, since background timers are\n * throttled). On the Framer canvas (RenderTarget.hasRestrictions()) it shows a fixed\n * \"Seattle 3:42 PM\" so the layout can be judged without a ticking value.\n *\n * Text style comes from the Font and Color controls; the defaults match the \"Footer/Meta\" text\n * style (IBM Plex Mono 14 px / 20 px, white at 62 %). Set the font per breakpoint on the instance.\n *\n * Rules (this project): no style element with a text child, no window/document at module scope.\n */import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";const TZ=\"America/Los_Angeles\";const CANVAS_TIME=\"3:42 PM\";// ICU puts a narrow no-break space (U+202F) before AM / PM; IBM Plex Mono has no glyph for it.\nfunction clean(s){return s.replace(/[  ]/g,\" \");}function readClock(now){const text=clean(new Intl.DateTimeFormat(\"en-US\",{timeZone:TZ,hour:\"numeric\",minute:\"2-digit\"}).format(now));const parts={};for(const p of new Intl.DateTimeFormat(\"en-CA\",{timeZone:TZ,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",hourCycle:\"h23\"}).formatToParts(now))parts[p.type]=p.value;let zone=\"\";try{const off=new Intl.DateTimeFormat(\"en-US\",{timeZone:TZ,timeZoneName:\"longOffset\"}).formatToParts(now).find(p=>p.type===\"timeZoneName\");if(off&&/^GMT[+-]\\d{2}:\\d{2}$/.test(off.value))zone=off.value.slice(3);}catch(_){// older engines without \"longOffset\": a local date-time without an offset is still valid\n}return{text,iso:`${parts.year}-${parts.month}-${parts.day}T${parts.hour}:${parts.minute}${zone}`};}/**\n * Seattle Clock\n *\n * @framerIntrinsicWidth 150\n * @framerIntrinsicHeight 20\n *\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function SeattleClock(props){const{label=\"Seattle\",font,color=\"rgba(255, 255, 255, 0.62)\",style}=props;const isCanvas=RenderTarget.hasRestrictions();const[clock,setClock]=useState(null);useEffect(()=>{if(isCanvas)return;let timer=0;let alive=true;const tick=()=>{if(!alive)return;setClock(readClock(new Date));window.clearTimeout(timer);timer=window.setTimeout(tick,6e4-Date.now()%6e4+50);};const onVisible=()=>{if(document.visibilityState===\"visible\")tick();};tick();document.addEventListener(\"visibilitychange\",onVisible);return()=>{alive=false;window.clearTimeout(timer);document.removeEventListener(\"visibilitychange\",onVisible);};},[isCanvas]);const time=isCanvas?CANVAS_TIME:clock?clock.text:\"\";return /*#__PURE__*/_jsx(\"time\",{dateTime:!isCanvas&&clock?clock.iso:undefined,style:{position:\"relative\",display:\"block\",margin:0,whiteSpace:\"nowrap\",width:\"max-content\",fontFamily:'\"IBM Plex Mono\", ui-monospace, monospace',fontSize:14,lineHeight:\"20px\",fontWeight:400,...font,color,...style},children:time?`${label} ${time}`:label});}SeattleClock.displayName=\"Seattle Clock\";addPropertyControls(SeattleClock,{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Seattle\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"monospace\",defaultValue:{fontSize:\"14px\",lineHeight:\"20px\",letterSpacing:\"0em\"}},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(255, 255, 255, 0.62)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SeattleClock\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicWidth\":\"150\",\"framerSupportedLayoutWidth\":\"auto\",\"framerIntrinsicHeight\":\"20\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SeattleClock.map","// Generated by Framer (6783177)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;IBM Plex Mono-500\",\"GF;IBM Plex Mono-700\",\"GF;IBM Plex Mono-700italic\",\"GF;IBM Plex Mono-500italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJ8lJPg-IUDNg.woff2\",weight:\"500\"},{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3pQP8lJPg-IUDNg.woff2\",weight:\"700\"},{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"italic\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJFgsARHNh4zg.woff2\",weight:\"700\"},{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"italic\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6sfjptAgt5VM-kVkqdyU8n1ioSJlRFgsARHNh4zg.woff2\",weight:\"500\"}]}];export const css=['.framer-bo1cR .framer-styles-preset-115jxu3:not(.rich-text-wrapper), .framer-bo1cR .framer-styles-preset-115jxu3.rich-text-wrapper p { --framer-font-family: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 12px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: 0.12em; --framer-line-height: 16px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: rgba(255, 255, 255, 0.55); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; }'];export const className=\"framer-bo1cR\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6783177)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-yPnpu .framer-styles-preset-1f0ruut:not(.rich-text-wrapper), .framer-yPnpu .framer-styles-preset-1f0ruut.rich-text-wrapper a { --framer-link-current-text-color: #ffffff; --framer-link-hover-text-color: #ffffff; --framer-link-hover-text-decoration: underline; --framer-link-hover-text-decoration-color: #ffffff; --framer-link-hover-text-decoration-offset: 5px; --framer-link-hover-text-decoration-thickness: 1px; --framer-link-text-color: #ffffff; transition-delay: 0s; transition-duration: 0.18s; transition-property: color; transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1); }\"];export const className=\"framer-yPnpu\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6783177)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;IBM Plex Mono-regular\",\"GF;IBM Plex Mono-700\",\"GF;IBM Plex Mono-700italic\",\"GF;IBM Plex Mono-italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n5i0g1l9kn-s.woff2\",weight:\"400\"},{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3pQP8lJPg-IUDNg.woff2\",weight:\"700\"},{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"italic\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJFgsARHNh4zg.woff2\",weight:\"700\"},{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"italic\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6pfjptAgt5VM-kVkqdyU8n1ioq131hj-sNFQ.woff2\",weight:\"400\"}]}];export const css=['.framer-Nh9h9 .framer-styles-preset-1if4rdo:not(.rich-text-wrapper), .framer-Nh9h9 .framer-styles-preset-1if4rdo.rich-text-wrapper p { --framer-font-family: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 17px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 32px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: rgba(255, 255, 255, 0.85); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1449px) and (min-width: 810px) { .framer-Nh9h9 .framer-styles-preset-1if4rdo:not(.rich-text-wrapper), .framer-Nh9h9 .framer-styles-preset-1if4rdo.rich-text-wrapper p { --framer-font-family: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 30px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: rgba(255, 255, 255, 0.85); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-Nh9h9 .framer-styles-preset-1if4rdo:not(.rich-text-wrapper), .framer-Nh9h9 .framer-styles-preset-1if4rdo.rich-text-wrapper p { --framer-font-family: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 30px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: rgba(255, 255, 255, 0.85); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-Nh9h9\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6783177)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-hs44a .framer-styles-preset-g28405:not(.rich-text-wrapper), .framer-hs44a .framer-styles-preset-g28405.rich-text-wrapper a { --framer-link-current-text-color: rgba(255, 255, 255, 0.5); --framer-link-hover-text-color: #ffffff; --framer-link-hover-text-decoration: underline; --framer-link-hover-text-decoration-color: #ffffff; --framer-link-hover-text-decoration-offset: 5px; --framer-link-hover-text-decoration-thickness: 1px; --framer-link-text-color: rgba(255, 255, 255, 0.85); transition-delay: 0s; transition-duration: 0.18s; transition-property: color; transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1); }\"];export const className=\"framer-hs44a\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6783177)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;IBM Plex Mono-regular\",\"GF;IBM Plex Mono-700\",\"GF;IBM Plex Mono-700italic\",\"GF;IBM Plex Mono-italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n5i0g1l9kn-s.woff2\",weight:\"400\"},{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3pQP8lJPg-IUDNg.woff2\",weight:\"700\"},{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"italic\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJFgsARHNh4zg.woff2\",weight:\"700\"},{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"italic\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6pfjptAgt5VM-kVkqdyU8n1ioq131hj-sNFQ.woff2\",weight:\"400\"}]}];export const css=['.framer-0gyKa .framer-styles-preset-1w5lsmc:not(.rich-text-wrapper), .framer-0gyKa .framer-styles-preset-1w5lsmc.rich-text-wrapper p { --framer-font-family: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 24px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: rgba(255, 255, 255, 0.62); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1449px) and (min-width: 810px) { .framer-0gyKa .framer-styles-preset-1w5lsmc:not(.rich-text-wrapper), .framer-0gyKa .framer-styles-preset-1w5lsmc.rich-text-wrapper p { --framer-font-family: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 15px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 24px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: rgba(255, 255, 255, 0.62); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-0gyKa .framer-styles-preset-1w5lsmc:not(.rich-text-wrapper), .framer-0gyKa .framer-styles-preset-1w5lsmc.rich-text-wrapper p { --framer-font-family: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 15px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 24px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: rgba(255, 255, 255, 0.62); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-0gyKa\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6783177)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;IBM Plex Mono-500\",\"GF;IBM Plex Mono-700\",\"GF;IBM Plex Mono-700italic\",\"GF;IBM Plex Mono-500italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJ8lJPg-IUDNg.woff2\",weight:\"500\"},{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3pQP8lJPg-IUDNg.woff2\",weight:\"700\"},{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"italic\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJFgsARHNh4zg.woff2\",weight:\"700\"},{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"italic\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6sfjptAgt5VM-kVkqdyU8n1ioSJlRFgsARHNh4zg.woff2\",weight:\"500\"}]}];export const css=['.framer-edr2b .framer-styles-preset-bxojpv:not(.rich-text-wrapper), .framer-edr2b .framer-styles-preset-bxojpv.rich-text-wrapper p { --framer-font-family: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 22px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -0.01em; --framer-line-height: 28px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: #ffffff; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1449px) and (min-width: 810px) { .framer-edr2b .framer-styles-preset-bxojpv:not(.rich-text-wrapper), .framer-edr2b .framer-styles-preset-bxojpv.rich-text-wrapper p { --framer-font-family: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 20px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -0.01em; --framer-line-height: 28px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: #ffffff; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-edr2b .framer-styles-preset-bxojpv:not(.rich-text-wrapper), .framer-edr2b .framer-styles-preset-bxojpv.rich-text-wrapper p { --framer-font-family: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 20px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -0.01em; --framer-line-height: 28px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: #ffffff; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-edr2b\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6783177)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;IBM Plex Mono-regular\",\"GF;IBM Plex Mono-700\",\"GF;IBM Plex Mono-700italic\",\"GF;IBM Plex Mono-italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n5i0g1l9kn-s.woff2\",weight:\"400\"},{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"normal\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3pQP8lJPg-IUDNg.woff2\",weight:\"700\"},{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"italic\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJFgsARHNh4zg.woff2\",weight:\"700\"},{cssFamilyName:\"IBM Plex Mono\",openType:true,source:\"google\",style:\"italic\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F6pfjptAgt5VM-kVkqdyU8n1ioq131hj-sNFQ.woff2\",weight:\"400\"}]}];export const css=['.framer-s14XF .framer-styles-preset-1m0xshm:not(.rich-text-wrapper), .framer-s14XF .framer-styles-preset-1m0xshm.rich-text-wrapper p { --framer-font-family: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 20px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: rgba(255, 255, 255, 0.62); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1449px) and (min-width: 810px) { .framer-s14XF .framer-styles-preset-1m0xshm:not(.rich-text-wrapper), .framer-s14XF .framer-styles-preset-1m0xshm.rich-text-wrapper p { --framer-font-family: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 13px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 20px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: rgba(255, 255, 255, 0.62); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-s14XF .framer-styles-preset-1m0xshm:not(.rich-text-wrapper), .framer-s14XF .framer-styles-preset-1m0xshm.rich-text-wrapper p { --framer-font-family: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-bold-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-family-italic: \"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace; --framer-font-open-type-features: \\'blwf\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv09\\' on, \\'cv11\\' on; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 22px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: rgba(255, 255, 255, 0.62); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-s14XF\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (eaba142)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,Container,cx,forwardLoader,GeneratedComponentContext,getFonts,getFontsFromSharedStyle,Link,PropertyOverrides,RenderTarget,RichText,runTasksWithYield,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,withCSS}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Logo from\"#framer/local/canvasComponent/Qs_TRspfY/Qs_TRspfY.js\";import MenuBar from\"#framer/local/canvasComponent/tfMmaJ8Tp/tfMmaJ8Tp.js\";import MenuAdapted from\"#framer/local/canvasComponent/vN9pVxrVZ/vN9pVxrVZ.js\";import CurtainReceiver from\"#framer/local/codeFile/wbRSPHP/CurtainReceiver.js\";import RidgelineBand from\"#framer/local/codeFile/WSp5Hl2/RidgelineBand.js\";import SeattleClock from\"#framer/local/codeFile/PVwv9MI/SeattleClock.js\";import*as sharedStyle3 from\"#framer/local/css/CmgeT4WHb/CmgeT4WHb.js\";import*as sharedStyle1 from\"#framer/local/css/DYk9ic7sT/DYk9ic7sT.js\";import*as sharedStyle4 from\"#framer/local/css/hJu5gKg92/hJu5gKg92.js\";import*as sharedStyle5 from\"#framer/local/css/i9mdmqV9H/i9mdmqV9H.js\";import*as sharedStyle2 from\"#framer/local/css/ieQHolDSg/ieQHolDSg.js\";import*as sharedStyle from\"#framer/local/css/kXa3JFYp8/kXa3JFYp8.js\";import*as sharedStyle6 from\"#framer/local/css/SCe5OSMFI/SCe5OSMFI.js\";const CurtainReceiverFonts=getFonts(CurtainReceiver);const LogoFonts=getFonts(Logo);const MenuAdaptedFonts=getFonts(MenuAdapted);const RidgelineBandFonts=getFonts(RidgelineBand);const SeattleClockFonts=getFonts(SeattleClock);const breakpoints={A8gaCiVJE:\"(min-width: 810px) and (max-width: 1449.98px)\",jAr9SOBUy:\"(min-width: 1450px)\",XgHEayfAw:\"(max-width: 809.98px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-Lp8HE\";const variantClassNames={A8gaCiVJE:\"framer-v-jw6snl\",jAr9SOBUy:\"framer-v-f3g34w\",XgHEayfAw:\"framer-v-ddxdcv\"};const transition1={bounce:.25,delay:0,duration:.45,type:\"spring\"};const animation={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1.1,skewX:0,skewY:0,transition:transition1};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const addImageAlt=(image,alt)=>{if(!image||typeof image!==\"object\"){return;}return{...image,alt};};const breakpointRules={A8gaCiVJE:[\".framer-Lp8HE .framer-15vslx7 { height: 660px; }\",\".framer-Lp8HE .framer-2stz5v { padding: 64px 24px 28px 24px; }\",\".framer-Lp8HE .framer-rd0xj9 { padding: 9px 0px 0px 0px; }\",\".framer-Lp8HE .framer-al0cb9 { gap: 16px; width: 196px; }\",\".framer-Lp8HE .framer-vu5d65 { gap: 16px; width: 250px; }\",\".framer-Lp8HE .framer-1cmvsr4 { padding: 19px 0px 0px 0px; }\",\".framer-Lp8HE .framer-1k31qsv { width: 196px; }\",\".framer-Lp8HE .framer-xj9z8a { width: 250px; }\"],XgHEayfAw:[\".framer-Lp8HE .framer-1t2y4mk { padding: 40px 20px 0px 20px; }\",\".framer-Lp8HE .framer-thhub6-container, .framer-Lp8HE .framer-1mbvaj0 { height: 48px; width: 48px; }\",\".framer-Lp8HE .framer-2stz5v { padding: 44px 24px 28px 24px; }\",\".framer-Lp8HE .framer-1xht8pl { flex-direction: column; gap: 36px; }\",\".framer-Lp8HE .framer-r8asud, .framer-Lp8HE .framer-17p70uu { flex: none; width: 100%; }\",\".framer-Lp8HE .framer-rd0xj9 { gap: 16px; padding: 0px; width: 100%; }\",\".framer-Lp8HE .framer-al0cb9, .framer-Lp8HE .framer-vu5d65 { flex: 1 0 0px; gap: 14px; width: 1px; }\",\".framer-Lp8HE .framer-1cmvsr4 { flex-direction: column; gap: 2px; padding: 19px 0px 0px 0px; }\",\".framer-Lp8HE .framer-1k31qsv, .framer-Lp8HE .framer-xj9z8a { width: 100%; }\"]};const breakpointKeys=Object.keys(breakpointRules);const selectors={A8gaCiVJE:\".framer-jw6snl-override\",XgHEayfAw:\".framer-ddxdcv-override\"};const rules=[\".framer-Lp8HE.framer-ialwgk, .framer-Lp8HE .framer-ialwgk { display: block; }\",\".framer-Lp8HE.framer-f3g34w { align-content: center; align-items: center; background-color: var(--token-d5e629a9-b7e8-4b38-b705-22d46ae11c49, #27282a); display: flex; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 100%; }\",\".framer-Lp8HE .framer-24sso3-container { flex: none; height: 1px; left: 0px; order: -1000; pointer-events: none; position: absolute; top: 0px; width: 1px; }\",\".framer-Lp8HE .framer-ifdnj5 { align-content: center; align-items: center; background-color: var(--token-d5e629a9-b7e8-4b38-b705-22d46ae11c49, #27282a); display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; order: -999; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-Lp8HE .framer-1t2y4mk { align-content: flex-start; align-items: flex-start; background-color: var(--token-d5e629a9-b7e8-4b38-b705-22d46ae11c49, #27282a); display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: 120px; justify-content: space-between; overflow: hidden; padding: 40px 60px 0px 60px; position: relative; width: 100%; z-index: 1; }\",\".framer-Lp8HE .framer-thhub6-container { flex: none; height: 52px; position: relative; width: 52px; }\",\".framer-Lp8HE .framer-13k1zzn-container { flex: none; height: auto; position: relative; width: auto; will-change: var(--framer-will-change-effect-override, transform); }\",\".framer-Lp8HE .framer-1mbvaj0 { flex: none; height: 52px; pointer-events: none; position: relative; width: 52px; }\",\".framer-Lp8HE .framer-3dgkde { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -10px; position: relative; width: 0px; }\",\".framer-Lp8HE .framer-15vslx7 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 700px; justify-content: flex-start; order: 1004; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-Lp8HE .framer-fyjids-container { flex: none; height: 100%; left: 0px; pointer-events: none; position: absolute; top: 0px; width: 100%; z-index: 0; }\",\".framer-Lp8HE .framer-2stz5v { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; height: 1px; justify-content: space-between; max-width: 1088px; padding: 72px 24px 28px 24px; position: relative; width: 100%; z-index: 1; }\",\".framer-Lp8HE .framer-1xht8pl { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 100%; }\",\".framer-Lp8HE .framer-r8asud { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 1px; }\",\".framer-Lp8HE .framer-1s17upf, .framer-Lp8HE .framer-1hfi64j, .framer-Lp8HE .framer-r45u3b, .framer-Lp8HE .framer-3nt9v, .framer-Lp8HE .framer-1twqcl5, .framer-Lp8HE .framer-1y2naja, .framer-Lp8HE .framer-175wekd, .framer-Lp8HE .framer-lmi1dh, .framer-Lp8HE .framer-wk63bq, .framer-Lp8HE .framer-2cdx2t, .framer-Lp8HE .framer-1cv53t4 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-Lp8HE .framer-1nnlgqp { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-Lp8HE .framer-rd0xj9 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; padding: 10px 0px 0px 0px; position: relative; width: min-content; }\",\".framer-Lp8HE .framer-al0cb9 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 18px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 220px; }\",\".framer-Lp8HE .framer-cpiunw, .framer-Lp8HE .framer-1qb02vu { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 100%; }\",\".framer-Lp8HE .framer-vu5d65 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 18px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 280px; }\",\".framer-Lp8HE .framer-1cmvsr4 { --border-bottom-width: 0px; --border-color: rgba(255, 255, 255, 0.14); --border-left-width: 0px; --border-right-width: 0px; --border-style: solid; --border-top-width: 1px; align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; padding: 21px 0px 0px 0px; position: relative; width: 100%; }\",\".framer-Lp8HE .framer-17p70uu { flex: 1 0 0px; height: auto; position: relative; white-space: pre-wrap; width: 1px; word-break: break-word; word-wrap: break-word; }\",\".framer-Lp8HE .framer-1k31qsv { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 220px; }\",\".framer-Lp8HE .framer-q8w5s6-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-Lp8HE .framer-xj9z8a { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 280px; word-break: break-word; word-wrap: break-word; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -10px; }',...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css,...sharedStyle3.css,...sharedStyle4.css,...sharedStyle5.css,...sharedStyle6.css,'.framer-Lp8HE[data-border=\"true\"]::after, .framer-Lp8HE [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }'];const mediaQueries={A8gaCiVJE:\"(min-width: 810px) and (max-width: 1449.98px)\",jAr9SOBUy:\"(min-width: 1450px)\",XgHEayfAw:\"(max-width: 809.98px)\"};const humanReadableVariantMap={Desktop:\"jAr9SOBUy\",Phone:\"XgHEayfAw\",Tablet:\"A8gaCiVJE\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"jAr9SOBUy\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className,sharedStyle3.className,sharedStyle4.className,sharedStyle5.className,sharedStyle6.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,humanReadableVariantMap,isLayoutTemplate:true,primaryVariantId:\"jAr9SOBUy\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: var(--token-d5e629a9-b7e8-4b38-b705-22d46ae11c49, rgb(39, 40, 42)); }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-f3g34w\",className),\"data-layout-template\":true,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-24sso3-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"Curtain Receiver\",isAuthoredByUser:true,name:\"Curtain Receiver\",nodeId:\"sqZuvm3Uj\",scopeId:\"n7HW5uSmA\",children:/*#__PURE__*/_jsx(CurtainReceiver,{height:\"100%\",id:\"sqZuvm3Uj\",layoutId:\"sqZuvm3Uj\",name:\"Curtain Receiver\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-ifdnj5\",\"data-framer-name\":\"header\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1t2y4mk\",\"data-framer-name\":\"Header\",children:[/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{XgHEayfAw:{height:48,width:\"48px\"}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:52,width:\"52px\",y:40,children:/*#__PURE__*/_jsx(Container,{className:\"framer-thhub6-container\",nodeId:\"N3k8P1ZBl\",scopeId:\"n7HW5uSmA\",children:/*#__PURE__*/_jsx(Logo,{height:\"100%\",id:\"N3k8P1ZBl\",layoutId:\"N3k8P1ZBl\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:52,y:40,children:/*#__PURE__*/_jsx(Container,{className:\"framer-13k1zzn-container\",nodeId:\"NrXgRMEnC\",rendersWithMotion:true,scopeId:\"n7HW5uSmA\",whileHover:animation,children:/*#__PURE__*/_jsx(MenuAdapted,{height:\"100%\",id:\"NrXgRMEnC\",layoutId:\"NrXgRMEnC\",variant:matchVariant(\"aW2_m3JuJ\"),width:\"100%\"})})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-1mbvaj0\",\"data-framer-name\":\"Spacer (balances logo)\"})]})}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-3dgkde\"}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-15vslx7\",\"data-framer-name\":\"footer-band\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-fyjids-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"Ridgeline Band\",isAuthoredByUser:true,name:\"Ridgeline Band\",nodeId:\"MntGMVOAi\",scopeId:\"n7HW5uSmA\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{A8gaCiVJE:{skyFadeEnd:272,skyFadeStart:350,skyHorizon:128},XgHEayfAw:{bottomFadePx:70,horizonY:.36,skyFadeEnd:330,skyFadeStart:400,skyHorizon:150}},children:/*#__PURE__*/_jsx(RidgelineBand,{bg:\"rgb(39, 40, 42)\",bottomClearPx:96,bottomFadeGamma:1.4,bottomFadePx:120,clouds:1,cloudSpeed:1,dotCell:2,fallbackImage:addImageAlt({pixelHeight:960,pixelWidth:2880,src:\"https://framerusercontent.com/images/8jUe463G5nIhLNIGpwh2odcE4.webp?width=2880&height=960\",srcSet:\"https://framerusercontent.com/images/8jUe463G5nIhLNIGpwh2odcE4.webp?scale-down-to=512&width=2880&height=960 512w,https://framerusercontent.com/images/8jUe463G5nIhLNIGpwh2odcE4.webp?scale-down-to=1024&width=2880&height=960 1024w,https://framerusercontent.com/images/8jUe463G5nIhLNIGpwh2odcE4.webp?scale-down-to=2048&width=2880&height=960 2048w,https://framerusercontent.com/images/8jUe463G5nIhLNIGpwh2odcE4.webp?width=2880&height=960 2880w\"},\"\"),filmGrain:.03,fogDensity:.6,fogDrift:.025,gamma:1,glow:.6,glowCurve:\"exp\",glowLength:.28,glowPow:1.6,grain:.015,grainFps:3,groundFogPx:110,groundInk:.5,height:\"100%\",horizonY:.3,id:\"MntGMVOAi\",ink:\"rgb(212, 212, 212)\",inkSoftness:.25,layoutId:\"MntGMVOAi\",lightRadius:.3,lightStrength:1,name:\"Ridgeline Band\",narrowDotCell:2,parallax:1,reducedMotionOverride:false,renderMode:\"sky\",skyFadeEnd:292,skyFadeStart:370,skyFallbackImage:addImageAlt({pixelHeight:1400,pixelWidth:2880,src:\"https://framerusercontent.com/images/BKjdAXDFpEz75HoPPIkGeC7Y.webp?width=2880&height=1400\",srcSet:\"https://framerusercontent.com/images/BKjdAXDFpEz75HoPPIkGeC7Y.webp?scale-down-to=512&width=2880&height=1400 512w,https://framerusercontent.com/images/BKjdAXDFpEz75HoPPIkGeC7Y.webp?scale-down-to=1024&width=2880&height=1400 1024w,https://framerusercontent.com/images/BKjdAXDFpEz75HoPPIkGeC7Y.webp?scale-down-to=2048&width=2880&height=1400 2048w,https://framerusercontent.com/images/BKjdAXDFpEz75HoPPIkGeC7Y.webp?width=2880&height=1400 2880w\"},\"\"),skyHorizon:138,skyLight:.7,style:{height:\"100%\",width:\"100%\"},topFadeEnd:.96,topFadeStart:.72,verticalExaggeration:2.5,width:\"100%\"})})})}),/*#__PURE__*/_jsxs(\"footer\",{className:\"framer-2stz5v\",\"data-framer-name\":\"footer-links\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1xht8pl\",\"data-framer-name\":\"footer-top\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-r8asud\",\"data-framer-name\":\"footer-id\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-bxojpv\",\"data-styles-preset\":\"kXa3JFYp8\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-home\",href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"TX1RrDw_u\",openInNewTab:false,relValues:[],scopeId:\"n7HW5uSmA\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1f0ruut\",\"data-styles-preset\":\"DYk9ic7sT\",children:\"Dave Cai\"})})})}),className:\"framer-1s17upf\",\"data-framer-name\":\"footer-name\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1w5lsmc\",\"data-styles-preset\":\"ieQHolDSg\",dir:\"auto\",children:\"Product designer in Seattle.\"})}),className:\"framer-1nnlgqp\",\"data-framer-name\":\"footer-tagline\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsxs(\"nav\",{\"aria-label\":\"Footer\",className:\"framer-rd0xj9\",\"data-framer-name\":\"footer-nav\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-al0cb9\",\"data-framer-name\":\"footer-work\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-115jxu3\",\"data-styles-preset\":\"CmgeT4WHb\",dir:\"auto\",children:\"Work\"})}),className:\"framer-1hfi64j\",\"data-framer-name\":\"footer-work-label\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-cpiunw\",\"data-framer-name\":\"footer-work-links\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1if4rdo\",\"data-styles-preset\":\"hJu5gKg92\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-work-dynery\",href:{webPageId:\"CItrB0MRg\"},motionChild:true,nodeId:\"tA_WGGuif\",openInNewTab:false,relValues:[],scopeId:\"n7HW5uSmA\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-g28405\",\"data-styles-preset\":\"i9mdmqV9H\",children:\"Dynery\"})})})}),className:\"framer-r45u3b\",\"data-framer-name\":\"footer-work-dynery\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1if4rdo\",\"data-styles-preset\":\"hJu5gKg92\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-work-onboarding\",href:{webPageId:\"wHluVbYko\"},motionChild:true,nodeId:\"ylUC2d8mz\",openInNewTab:false,relValues:[],scopeId:\"n7HW5uSmA\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-g28405\",\"data-styles-preset\":\"i9mdmqV9H\",children:\"Onboarding\"})})})}),className:\"framer-3nt9v\",\"data-framer-name\":\"footer-work-onboarding\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1if4rdo\",\"data-styles-preset\":\"hJu5gKg92\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-work-split-method\",href:{webPageId:\"sI7eBEhvj\"},motionChild:true,nodeId:\"B4rhBo8KL\",openInNewTab:false,relValues:[],scopeId:\"n7HW5uSmA\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-g28405\",\"data-styles-preset\":\"i9mdmqV9H\",children:\"Split Method\"})})})}),className:\"framer-1twqcl5\",\"data-framer-name\":\"footer-work-split-method\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1if4rdo\",\"data-styles-preset\":\"hJu5gKg92\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-work-design-system\",href:{webPageId:\"lu5mbmBXM\"},motionChild:true,nodeId:\"rSIDLEMaR\",openInNewTab:false,relValues:[],scopeId:\"n7HW5uSmA\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-g28405\",\"data-styles-preset\":\"i9mdmqV9H\",children:\"Design System\"})})})}),className:\"framer-1y2naja\",\"data-framer-name\":\"footer-work-design-system\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1if4rdo\",\"data-styles-preset\":\"hJu5gKg92\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-work-overtime\",href:{webPageId:\"pcgikjLVg\"},motionChild:true,nodeId:\"CsNcyaER4\",openInNewTab:false,relValues:[],scopeId:\"n7HW5uSmA\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-g28405\",\"data-styles-preset\":\"i9mdmqV9H\",children:\"Working Overtime\"})})})}),className:\"framer-175wekd\",\"data-framer-name\":\"footer-work-overtime\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-vu5d65\",\"data-framer-name\":\"footer-contact\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-115jxu3\",\"data-styles-preset\":\"CmgeT4WHb\",dir:\"auto\",children:\"Contact\"})}),className:\"framer-lmi1dh\",\"data-framer-name\":\"footer-contact-label\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1qb02vu\",\"data-framer-name\":\"footer-contact-links\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1if4rdo\",\"data-styles-preset\":\"hJu5gKg92\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-email\",href:\"mailto:dave_cai@icloud.com\",motionChild:true,nodeId:\"hkj6yS2JT\",openInNewTab:false,relValues:[],scopeId:\"n7HW5uSmA\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-g28405\",\"data-styles-preset\":\"i9mdmqV9H\",children:\"Email\"})})})}),className:\"framer-wk63bq\",\"data-framer-name\":\"footer-email\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1if4rdo\",\"data-styles-preset\":\"hJu5gKg92\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-linkedin\",href:\"https://www.linkedin.com/in/dave-t-cai/\",motionChild:true,nodeId:\"XS3UgStKu\",openInNewTab:true,relValues:[],scopeId:\"n7HW5uSmA\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-g28405\",\"data-styles-preset\":\"i9mdmqV9H\",children:\"LinkedIn\"})})})}),className:\"framer-2cdx2t\",\"data-framer-name\":\"footer-linkedin\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1if4rdo\",\"data-styles-preset\":\"hJu5gKg92\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-resume\",href:\"https://framerusercontent.com/assets/H7YGWWPNKNVDvcLsnkkqRJMq4wg.pdf\",motionChild:true,nodeId:\"LWr8J1U_o\",openInNewTab:true,relValues:[],scopeId:\"n7HW5uSmA\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-g28405\",\"data-styles-preset\":\"i9mdmqV9H\",children:\"R\\xe9sum\\xe9\"})})})}),className:\"framer-1cv53t4\",\"data-framer-name\":\"footer-resume\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]})]})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1cmvsr4\",\"data-border\":true,\"data-framer-name\":\"footer-bottom\",children:[/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{XgHEayfAw:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1m0xshm\",\"data-styles-preset\":\"SCe5OSMFI\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\"},children:\"\\xa9 2026 Dave Cai\"})})}},children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1m0xshm\",\"data-styles-preset\":\"SCe5OSMFI\",dir:\"auto\",children:\"\\xa9 2026 Dave Cai\"})}),className:\"framer-17p70uu\",\"data-framer-name\":\"footer-copyright\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-1k31qsv\",\"data-framer-name\":\"footer-clock\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-q8w5s6-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"Seattle Clock\",isAuthoredByUser:true,name:\"Seattle Clock\",nodeId:\"flJTS5ldW\",scopeId:\"n7HW5uSmA\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{A8gaCiVJE:{font:{fontFamily:'\"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace',fontSize:\"13px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0em\",lineHeight:\"20px\"}},XgHEayfAw:{font:{fontFamily:'\"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace',fontSize:\"14px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0em\",lineHeight:\"22px\"}}},children:/*#__PURE__*/_jsx(SeattleClock,{color:\"rgba(255, 255, 255, 0.62)\",font:{fontFamily:'\"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace',fontSize:\"14px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0em\",lineHeight:\"20px\"},height:\"100%\",id:\"flJTS5ldW\",label:\"Seattle\",layoutId:\"flJTS5ldW\",name:\"Seattle Clock\",width:\"100%\"})})})})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsxs(\"p\",{className:\"framer-styles-preset-1m0xshm\",\"data-styles-preset\":\"SCe5OSMFI\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\"},children:[\"made with \",/*#__PURE__*/_jsx(\"span\",{style:{\"--framer-text-color\":\"rgb(255, 255, 255)\"},children:\"❤️\"}),\" in PNW wilderness\"]})}),className:\"framer-xj9z8a\",\"data-framer-name\":\"footer-made\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]})]})]})]}),/*#__PURE__*/_jsx(\"div\",{id:\"template-overlay\"})]})});});const css=target=>{const isStaticRenderer=target===RenderTarget.canvas||target===RenderTarget.export;if(!isStaticRenderer){return[...rules,...breakpointKeys.map(key=>{const query=mediaQueries[key];return`@media ${query} { ${breakpointRules[key].join(\" \")} }`;})];}return[...rules,...breakpointKeys.flatMap(key=>{const selector=selectors[key];return breakpointRules[key].map(rule=>`${selector} {${rule}}`);})];};/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 1000\n * @framerIntrinsicWidth 1450\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"XgHEayfAw\":{\"layout\":[\"fixed\",\"fixed\"]},\"A8gaCiVJE\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"jAr9SOBUy\":[\".framer-24sso3-container\",\".framer-ifdnj5\",\".framer-15vslx7\"],\"XgHEayfAw\":[\".framer-24sso3-container\",\".framer-ifdnj5\",\".framer-15vslx7\"],\"A8gaCiVJE\":[\".framer-24sso3-container\",\".framer-ifdnj5\",\".framer-15vslx7\"]}\n * @framerBreakpoints {\"jAr9SOBUy\":{\"min\":1450,\"canvasClassName\":\"framer-f3g34w-override\",\"minHeight\":1000,\"viewportHeight\":253,\"name\":\"Desktop\",\"width\":1450,\"rootFontSize\":16},\"A8gaCiVJE\":{\"min\":810,\"max\":1449,\"canvasClassName\":\"framer-jw6snl-override\",\"minHeight\":1000,\"viewportHeight\":253,\"name\":\"Tablet\",\"width\":810,\"rootFontSize\":16},\"XgHEayfAw\":{\"max\":809,\"canvasClassName\":\"framer-ddxdcv-override\",\"minHeight\":1000,\"viewportHeight\":253,\"name\":\"Phone\",\"width\":372,\"rootFontSize\":16}}\n * @framerDefaultVariant jAr9SOBUy\n * @framerTrackingIds [{\"id\":\"_1jk8nii\",\"trackingId\":\"footer-home\",\"type\":\"click\",\"nodeId\":\"TX1RrDw_u\"},{\"id\":\"_1tfipje\",\"trackingId\":\"footer-work-dynery\",\"type\":\"click\",\"nodeId\":\"tA_WGGuif\"},{\"id\":\"_i2op3v\",\"trackingId\":\"footer-work-onboarding\",\"type\":\"click\",\"nodeId\":\"ylUC2d8mz\"},{\"id\":\"_1kxffcx\",\"trackingId\":\"footer-work-split-method\",\"type\":\"click\",\"nodeId\":\"B4rhBo8KL\"},{\"id\":\"_1yxjr4r\",\"trackingId\":\"footer-work-design-system\",\"type\":\"click\",\"nodeId\":\"rSIDLEMaR\"},{\"id\":\"_1amdmv2\",\"trackingId\":\"footer-work-overtime\",\"type\":\"click\",\"nodeId\":\"CsNcyaER4\"},{\"id\":\"_1mbvkkg\",\"trackingId\":\"footer-email\",\"type\":\"click\",\"nodeId\":\"hkj6yS2JT\"},{\"id\":\"_w56p1d\",\"trackingId\":\"footer-linkedin\",\"type\":\"click\",\"nodeId\":\"XS3UgStKu\"},{\"id\":\"_5qnt0a\",\"trackingId\":\"footer-resume\",\"type\":\"click\",\"nodeId\":\"LWr8J1U_o\"}]\n * @framerLayoutTemplate true\n */const Framern7HW5uSmA=withCSS(Component,css,\"framer-Lp8HE\");export default Framern7HW5uSmA;Framern7HW5uSmA.displayName=\"Footer+header unselected\";Framern7HW5uSmA.defaultProps={height:1e3,width:1450};addFonts(Framern7HW5uSmA,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{cssFamilyName:\"IBM Plex Mono\",source:\"google\",style:\"normal\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n5i0g1l9kn-s.woff2\",weight:\"400\"}]},...CurtainReceiverFonts,...LogoFonts,...MenuAdaptedFonts,...RidgelineBandFonts,...SeattleClockFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts),...getFontsFromSharedStyle(sharedStyle2.fonts),...getFontsFromSharedStyle(sharedStyle3.fonts),...getFontsFromSharedStyle(sharedStyle4.fonts),...getFontsFromSharedStyle(sharedStyle5.fonts),...getFontsFromSharedStyle(sharedStyle6.fonts)],{supportsExplicitInterCodegen:true});Framern7HW5uSmA.loader={load:(props,context)=>{return runTasksWithYield([()=>forwardLoader(Logo,{},context),()=>forwardLoader(MenuBar,{},context),()=>forwardLoader(MenuAdapted,{},context)],context);}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Framern7HW5uSmA\",\"slots\":[],\"annotations\":{\"framerHitTargets\":\"{\\\"jAr9SOBUy\\\":[\\\".framer-24sso3-container\\\",\\\".framer-ifdnj5\\\",\\\".framer-15vslx7\\\"],\\\"XgHEayfAw\\\":[\\\".framer-24sso3-container\\\",\\\".framer-ifdnj5\\\",\\\".framer-15vslx7\\\"],\\\"A8gaCiVJE\\\":[\\\".framer-24sso3-container\\\",\\\".framer-ifdnj5\\\",\\\".framer-15vslx7\\\"]}\",\"framerColorSyntax\":\"true\",\"framerBreakpoints\":\"{\\\"jAr9SOBUy\\\":{\\\"min\\\":1450,\\\"canvasClassName\\\":\\\"framer-f3g34w-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":253,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1450,\\\"rootFontSize\\\":16},\\\"A8gaCiVJE\\\":{\\\"min\\\":810,\\\"max\\\":1449,\\\"canvasClassName\\\":\\\"framer-jw6snl-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":253,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":810,\\\"rootFontSize\\\":16},\\\"XgHEayfAw\\\":{\\\"max\\\":809,\\\"canvasClassName\\\":\\\"framer-ddxdcv-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":253,\\\"name\\\":\\\"Phone\\\",\\\"width\\\":372,\\\"rootFontSize\\\":16}}\",\"framerIntrinsicHeight\":\"1000\",\"framerDefaultVariant\":\"jAr9SOBUy\",\"framerAutoSizeImages\":\"true\",\"framerTrackingIds\":\"[{\\\"id\\\":\\\"_1jk8nii\\\",\\\"trackingId\\\":\\\"footer-home\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"TX1RrDw_u\\\"},{\\\"id\\\":\\\"_1tfipje\\\",\\\"trackingId\\\":\\\"footer-work-dynery\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"tA_WGGuif\\\"},{\\\"id\\\":\\\"_i2op3v\\\",\\\"trackingId\\\":\\\"footer-work-onboarding\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"ylUC2d8mz\\\"},{\\\"id\\\":\\\"_1kxffcx\\\",\\\"trackingId\\\":\\\"footer-work-split-method\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"B4rhBo8KL\\\"},{\\\"id\\\":\\\"_1yxjr4r\\\",\\\"trackingId\\\":\\\"footer-work-design-system\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"rSIDLEMaR\\\"},{\\\"id\\\":\\\"_1amdmv2\\\",\\\"trackingId\\\":\\\"footer-work-overtime\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"CsNcyaER4\\\"},{\\\"id\\\":\\\"_1mbvkkg\\\",\\\"trackingId\\\":\\\"footer-email\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"hkj6yS2JT\\\"},{\\\"id\\\":\\\"_w56p1d\\\",\\\"trackingId\\\":\\\"footer-linkedin\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"XS3UgStKu\\\"},{\\\"id\\\":\\\"_5qnt0a\\\",\\\"trackingId\\\":\\\"footer-resume\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"LWr8J1U_o\\\"}]\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"XgHEayfAw\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"A8gaCiVJE\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicWidth\":\"1450\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerLayoutTemplate\":\"true\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6783177)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,Container,cx,forwardLoader,GeneratedComponentContext,getFonts,getFontsFromSharedStyle,getPropertyControls,Link,PropertyOverrides,RenderTarget,RichText,runTasksWithYield,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,withCSS}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Logo from\"#framer/local/canvasComponent/Qs_TRspfY/Qs_TRspfY.js\";import MenuBar from\"#framer/local/canvasComponent/tfMmaJ8Tp/tfMmaJ8Tp.js\";import MenuAdapted from\"#framer/local/canvasComponent/vN9pVxrVZ/vN9pVxrVZ.js\";import RidgelineBand from\"#framer/local/codeFile/WSp5Hl2/RidgelineBand.js\";import SeattleClock from\"#framer/local/codeFile/PVwv9MI/SeattleClock.js\";import*as sharedStyle3 from\"#framer/local/css/CmgeT4WHb/CmgeT4WHb.js\";import*as sharedStyle1 from\"#framer/local/css/DYk9ic7sT/DYk9ic7sT.js\";import*as sharedStyle4 from\"#framer/local/css/hJu5gKg92/hJu5gKg92.js\";import*as sharedStyle5 from\"#framer/local/css/i9mdmqV9H/i9mdmqV9H.js\";import*as sharedStyle2 from\"#framer/local/css/ieQHolDSg/ieQHolDSg.js\";import*as sharedStyle from\"#framer/local/css/kXa3JFYp8/kXa3JFYp8.js\";import*as sharedStyle6 from\"#framer/local/css/SCe5OSMFI/SCe5OSMFI.js\";const LogoFonts=getFonts(Logo);const MenuAdaptedFonts=getFonts(MenuAdapted);const RidgelineBandFonts=getFonts(RidgelineBand);const SeattleClockFonts=getFonts(SeattleClock);const MenuAdaptedControls=getPropertyControls(MenuAdapted);const breakpoints={sbSWPm_Es:\"(max-width: 809.98px)\",UrReNisXc:\"(min-width: 810px) and (max-width: 1449.98px)\",xoryVuNte:\"(min-width: 1450px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-F68gI\";const variantClassNames={sbSWPm_Es:\"framer-v-176h1rp\",UrReNisXc:\"framer-v-1uup11y\",xoryVuNte:\"framer-v-eck6dv\"};const xGTHrbPnm=undefined;const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const addImageAlt=(image,alt)=>{if(!image||typeof image!==\"object\"){return;}return{...image,alt};};const breakpointRules={sbSWPm_Es:[\".framer-F68gI .framer-1v5e6z9 { align-content: flex-start; align-items: flex-start; padding: 40px 20px 20px 20px; }\",\".framer-F68gI .framer-15p2bmo-container, .framer-F68gI .framer-qyiqrn { height: 48px; width: 48px; }\",\".framer-F68gI .framer-18uh328 { padding: 44px 24px 28px 24px; }\",\".framer-F68gI .framer-wm2x4t { flex-direction: column; gap: 36px; }\",\".framer-F68gI .framer-s33rxk, .framer-F68gI .framer-edibwz { flex: none; width: 100%; }\",\".framer-F68gI .framer-1k9nwkp { gap: 16px; padding: 0px; width: 100%; }\",\".framer-F68gI .framer-dpcz96, .framer-F68gI .framer-1ebkynk { flex: 1 0 0px; gap: 14px; width: 1px; }\",\".framer-F68gI .framer-7wi4lk { flex-direction: column; gap: 2px; padding: 19px 0px 0px 0px; }\",\".framer-F68gI .framer-17pw7sk, .framer-F68gI .framer-18c1rn9 { width: 100%; }\"],UrReNisXc:[\".framer-F68gI .framer-x86xw3-container { position: sticky; top: 0px; z-index: 1; }\",\".framer-F68gI .framer-1w4q6h8 { height: 660px; }\",\".framer-F68gI .framer-18uh328 { padding: 64px 24px 28px 24px; }\",\".framer-F68gI .framer-1k9nwkp { padding: 9px 0px 0px 0px; }\",\".framer-F68gI .framer-dpcz96 { gap: 16px; width: 196px; }\",\".framer-F68gI .framer-1ebkynk { gap: 16px; width: 250px; }\",\".framer-F68gI .framer-7wi4lk { padding: 19px 0px 0px 0px; }\",\".framer-F68gI .framer-17pw7sk { width: 196px; }\",\".framer-F68gI .framer-18c1rn9 { width: 250px; }\"]};const breakpointKeys=Object.keys(breakpointRules);const selectors={sbSWPm_Es:\".framer-176h1rp-override\",UrReNisXc:\".framer-1uup11y-override\"};const rules=[\".framer-F68gI.framer-w9su1l, .framer-F68gI .framer-w9su1l { display: block; }\",\".framer-F68gI.framer-eck6dv { align-content: center; align-items: center; background-color: var(--token-d5e629a9-b7e8-4b38-b705-22d46ae11c49, #27282a); display: flex; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 100%; }\",\".framer-F68gI .framer-1v5e6z9 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; order: -1000; overflow: visible; padding: 40px 60px 20px 60px; pointer-events: none; position: sticky; top: 0px; width: 100%; z-index: 8; }\",\".framer-F68gI .framer-15p2bmo-container { flex: none; height: 52px; pointer-events: auto; position: relative; width: 52px; }\",\".framer-F68gI .framer-x86xw3-container { flex: none; height: auto; pointer-events: auto; position: relative; width: auto; }\",\".framer-F68gI .framer-qyiqrn { flex: none; height: 52px; pointer-events: none; position: relative; width: 52px; }\",\".framer-F68gI .framer-1ofv93m { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -10px; position: relative; width: 0px; }\",\".framer-F68gI .framer-1w4q6h8 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 700px; justify-content: flex-start; order: 1002; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-F68gI .framer-1rrr80-container { flex: none; height: 100%; left: 0px; pointer-events: none; position: absolute; top: 0px; width: 100%; z-index: 0; }\",\".framer-F68gI .framer-18uh328 { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; height: 1px; justify-content: space-between; max-width: 1088px; padding: 72px 24px 28px 24px; position: relative; width: 100%; z-index: 1; }\",\".framer-F68gI .framer-wm2x4t { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 100%; }\",\".framer-F68gI .framer-s33rxk { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 1px; }\",\".framer-F68gI .framer-1ckiowy, .framer-F68gI .framer-fvycm2, .framer-F68gI .framer-1gg0uw8, .framer-F68gI .framer-1xj0jsj, .framer-F68gI .framer-1bsxaqa, .framer-F68gI .framer-399du2, .framer-F68gI .framer-18t00m, .framer-F68gI .framer-2gxu8e, .framer-F68gI .framer-125xtr7, .framer-F68gI .framer-yey4no, .framer-F68gI .framer-645x2x { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-F68gI .framer-10wa40j { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-F68gI .framer-1k9nwkp { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; padding: 10px 0px 0px 0px; position: relative; width: min-content; }\",\".framer-F68gI .framer-dpcz96 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 18px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 220px; }\",\".framer-F68gI .framer-7yyrku, .framer-F68gI .framer-tfmzex { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 100%; }\",\".framer-F68gI .framer-1ebkynk { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 18px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 280px; }\",\".framer-F68gI .framer-7wi4lk { --border-bottom-width: 0px; --border-color: rgba(255, 255, 255, 0.14); --border-left-width: 0px; --border-right-width: 0px; --border-style: solid; --border-top-width: 1px; align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; padding: 21px 0px 0px 0px; position: relative; width: 100%; }\",\".framer-F68gI .framer-edibwz { flex: 1 0 0px; height: auto; position: relative; white-space: pre-wrap; width: 1px; word-break: break-word; word-wrap: break-word; }\",\".framer-F68gI .framer-17pw7sk { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 220px; }\",\".framer-F68gI .framer-1qbez9u-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-F68gI .framer-18c1rn9 { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 280px; word-break: break-word; word-wrap: break-word; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -10px; }',...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css,...sharedStyle3.css,...sharedStyle4.css,...sharedStyle5.css,...sharedStyle6.css,'.framer-F68gI[data-border=\"true\"]::after, .framer-F68gI [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }'];const mediaQueries={sbSWPm_Es:\"(max-width: 809.98px)\",UrReNisXc:\"(min-width: 810px) and (max-width: 1449.98px)\",xoryVuNte:\"(min-width: 1450px)\"};const humanReadableVariantMap={Desktop:\"xoryVuNte\",Phone:\"sbSWPm_Es\",Tablet:\"UrReNisXc\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const humanReadableEnumMap={\"Variant 1\":\"zcX8yXxD_\",\"Variant 2 - About\":\"MwHcUKtRW\",\"Variant 3 - Features\":\"LhluvJGWI\",\"Variant 4 - Testimonials\":\"wiZkcf_71\",\"Variant 5 - Reach out\":\"Q46VDAAWP\",\"Variant 6 - Null\":\"aW2_m3JuJ\",\"Variant 7\":\"dXukA4Mg4\",\"Variant 8\":\"T2AkkyYJ4\"};const getProps=({height,id,navVariantRef,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"xoryVuNte\",xGTHrbPnm:humanReadableEnumMap[navVariantRef]??navVariantRef??props.xGTHrbPnm??\"zcX8yXxD_\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,xGTHrbPnm,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className,sharedStyle3.className,sharedStyle4.className,sharedStyle5.className,sharedStyle6.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,humanReadableVariantMap,isLayoutTemplate:true,primaryVariantId:\"xoryVuNte\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: var(--token-d5e629a9-b7e8-4b38-b705-22d46ae11c49, rgb(39, 40, 42)); }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-eck6dv\",className),\"data-layout-template\":true,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1v5e6z9\",\"data-framer-name\":\"Header\",children:[/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{sbSWPm_Es:{height:48,width:\"48px\"}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:52,width:\"52px\",y:40,children:/*#__PURE__*/_jsx(Container,{className:\"framer-15p2bmo-container\",nodeId:\"aBcjs9gbT\",scopeId:\"LbydhkUq9\",children:/*#__PURE__*/_jsx(Logo,{height:\"100%\",id:\"aBcjs9gbT\",layoutId:\"aBcjs9gbT\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:52,y:40,children:/*#__PURE__*/_jsx(Container,{className:\"framer-x86xw3-container\",nodeId:\"mBkWT_dSw\",scopeId:\"LbydhkUq9\",children:/*#__PURE__*/_jsx(MenuAdapted,{height:\"100%\",id:\"mBkWT_dSw\",layoutId:\"mBkWT_dSw\",variant:matchVariant(xGTHrbPnm),width:\"100%\"})})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-qyiqrn\",\"data-framer-name\":\"Spacer (balances logo)\"})]}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-1ofv93m\"}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1w4q6h8\",\"data-framer-name\":\"footer-band\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1rrr80-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"Ridgeline Band\",isAuthoredByUser:true,name:\"Ridgeline Band\",nodeId:\"Bxrrtxq3V\",scopeId:\"LbydhkUq9\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{sbSWPm_Es:{bottomFadePx:70,horizonY:.36,skyFadeEnd:330,skyFadeStart:400,skyHorizon:150},UrReNisXc:{skyFadeEnd:272,skyFadeStart:350,skyHorizon:128}},children:/*#__PURE__*/_jsx(RidgelineBand,{bg:\"rgb(39, 40, 42)\",bottomClearPx:96,bottomFadeGamma:1.4,bottomFadePx:120,clouds:1,cloudSpeed:1,dotCell:2,fallbackImage:addImageAlt({pixelHeight:960,pixelWidth:2880,src:\"https://framerusercontent.com/images/8jUe463G5nIhLNIGpwh2odcE4.webp?width=2880&height=960\",srcSet:\"https://framerusercontent.com/images/8jUe463G5nIhLNIGpwh2odcE4.webp?scale-down-to=512&width=2880&height=960 512w,https://framerusercontent.com/images/8jUe463G5nIhLNIGpwh2odcE4.webp?scale-down-to=1024&width=2880&height=960 1024w,https://framerusercontent.com/images/8jUe463G5nIhLNIGpwh2odcE4.webp?scale-down-to=2048&width=2880&height=960 2048w,https://framerusercontent.com/images/8jUe463G5nIhLNIGpwh2odcE4.webp?width=2880&height=960 2880w\"},\"\"),filmGrain:.03,fogDensity:.6,fogDrift:.025,gamma:1,glow:.6,glowCurve:\"exp\",glowLength:.28,glowPow:1.6,grain:.015,grainFps:3,groundFogPx:110,groundInk:.5,height:\"100%\",horizonY:.3,id:\"Bxrrtxq3V\",ink:\"rgb(212, 212, 212)\",inkSoftness:.25,layoutId:\"Bxrrtxq3V\",lightRadius:.3,lightStrength:1,name:\"Ridgeline Band\",narrowDotCell:2,parallax:1,reducedMotionOverride:false,renderMode:\"sky\",skyFadeEnd:292,skyFadeStart:370,skyFallbackImage:addImageAlt({pixelHeight:1400,pixelWidth:2880,src:\"https://framerusercontent.com/images/BKjdAXDFpEz75HoPPIkGeC7Y.webp?width=2880&height=1400\",srcSet:\"https://framerusercontent.com/images/BKjdAXDFpEz75HoPPIkGeC7Y.webp?scale-down-to=512&width=2880&height=1400 512w,https://framerusercontent.com/images/BKjdAXDFpEz75HoPPIkGeC7Y.webp?scale-down-to=1024&width=2880&height=1400 1024w,https://framerusercontent.com/images/BKjdAXDFpEz75HoPPIkGeC7Y.webp?scale-down-to=2048&width=2880&height=1400 2048w,https://framerusercontent.com/images/BKjdAXDFpEz75HoPPIkGeC7Y.webp?width=2880&height=1400 2880w\"},\"\"),skyHorizon:138,skyLight:.7,style:{height:\"100%\",width:\"100%\"},topFadeEnd:.96,topFadeStart:.72,verticalExaggeration:2.5,width:\"100%\"})})})}),/*#__PURE__*/_jsxs(\"footer\",{className:\"framer-18uh328\",\"data-framer-name\":\"footer-links\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-wm2x4t\",\"data-framer-name\":\"footer-top\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-s33rxk\",\"data-framer-name\":\"footer-id\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-bxojpv\",\"data-styles-preset\":\"kXa3JFYp8\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-home\",href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"uBw3nKFjH\",openInNewTab:false,relValues:[],scopeId:\"LbydhkUq9\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1f0ruut\",\"data-styles-preset\":\"DYk9ic7sT\",children:\"Dave Cai\"})})})}),className:\"framer-1ckiowy\",\"data-framer-name\":\"footer-name\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1w5lsmc\",\"data-styles-preset\":\"ieQHolDSg\",dir:\"auto\",children:\"Product designer in Seattle.\"})}),className:\"framer-10wa40j\",\"data-framer-name\":\"footer-tagline\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsxs(\"nav\",{\"aria-label\":\"Footer\",className:\"framer-1k9nwkp\",\"data-framer-name\":\"footer-nav\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-dpcz96\",\"data-framer-name\":\"footer-work\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-115jxu3\",\"data-styles-preset\":\"CmgeT4WHb\",dir:\"auto\",children:\"Work\"})}),className:\"framer-fvycm2\",\"data-framer-name\":\"footer-work-label\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-7yyrku\",\"data-framer-name\":\"footer-work-links\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1if4rdo\",\"data-styles-preset\":\"hJu5gKg92\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-work-dynery\",href:{webPageId:\"CItrB0MRg\"},motionChild:true,nodeId:\"BauDFld78\",openInNewTab:false,relValues:[],scopeId:\"LbydhkUq9\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-g28405\",\"data-styles-preset\":\"i9mdmqV9H\",children:\"Dynery\"})})})}),className:\"framer-1gg0uw8\",\"data-framer-name\":\"footer-work-dynery\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1if4rdo\",\"data-styles-preset\":\"hJu5gKg92\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-work-onboarding\",href:{webPageId:\"wHluVbYko\"},motionChild:true,nodeId:\"NFI8eE2ZL\",openInNewTab:false,relValues:[],scopeId:\"LbydhkUq9\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-g28405\",\"data-styles-preset\":\"i9mdmqV9H\",children:\"Onboarding\"})})})}),className:\"framer-1xj0jsj\",\"data-framer-name\":\"footer-work-onboarding\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1if4rdo\",\"data-styles-preset\":\"hJu5gKg92\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-work-split-method\",href:{webPageId:\"sI7eBEhvj\"},motionChild:true,nodeId:\"xQtbEtR5H\",openInNewTab:false,relValues:[],scopeId:\"LbydhkUq9\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-g28405\",\"data-styles-preset\":\"i9mdmqV9H\",children:\"Split Method\"})})})}),className:\"framer-1bsxaqa\",\"data-framer-name\":\"footer-work-split-method\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1if4rdo\",\"data-styles-preset\":\"hJu5gKg92\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-work-design-system\",href:{webPageId:\"lu5mbmBXM\"},motionChild:true,nodeId:\"rwgX_7Ml8\",openInNewTab:false,relValues:[],scopeId:\"LbydhkUq9\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-g28405\",\"data-styles-preset\":\"i9mdmqV9H\",children:\"Design System\"})})})}),className:\"framer-399du2\",\"data-framer-name\":\"footer-work-design-system\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1if4rdo\",\"data-styles-preset\":\"hJu5gKg92\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-work-overtime\",href:{webPageId:\"pcgikjLVg\"},motionChild:true,nodeId:\"O7cHE5kUH\",openInNewTab:false,relValues:[],scopeId:\"LbydhkUq9\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-g28405\",\"data-styles-preset\":\"i9mdmqV9H\",children:\"Working Overtime\"})})})}),className:\"framer-18t00m\",\"data-framer-name\":\"footer-work-overtime\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1ebkynk\",\"data-framer-name\":\"footer-contact\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-115jxu3\",\"data-styles-preset\":\"CmgeT4WHb\",dir:\"auto\",children:\"Contact\"})}),className:\"framer-2gxu8e\",\"data-framer-name\":\"footer-contact-label\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-tfmzex\",\"data-framer-name\":\"footer-contact-links\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1if4rdo\",\"data-styles-preset\":\"hJu5gKg92\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-email\",href:\"mailto:dave_cai@icloud.com\",motionChild:true,nodeId:\"qd3RBmUZD\",openInNewTab:false,relValues:[],scopeId:\"LbydhkUq9\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-g28405\",\"data-styles-preset\":\"i9mdmqV9H\",children:\"Email\"})})})}),className:\"framer-125xtr7\",\"data-framer-name\":\"footer-email\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1if4rdo\",\"data-styles-preset\":\"hJu5gKg92\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-linkedin\",href:\"https://www.linkedin.com/in/dave-t-cai/\",motionChild:true,nodeId:\"fs8euWciB\",openInNewTab:true,relValues:[],scopeId:\"LbydhkUq9\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-g28405\",\"data-styles-preset\":\"i9mdmqV9H\",children:\"LinkedIn\"})})})}),className:\"framer-yey4no\",\"data-framer-name\":\"footer-linkedin\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1if4rdo\",\"data-styles-preset\":\"hJu5gKg92\",dir:\"auto\",children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"footer-resume\",href:\"https://framerusercontent.com/assets/H7YGWWPNKNVDvcLsnkkqRJMq4wg.pdf\",motionChild:true,nodeId:\"MuSZAryuY\",openInNewTab:true,relValues:[],scopeId:\"LbydhkUq9\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-g28405\",\"data-styles-preset\":\"i9mdmqV9H\",children:\"R\\xe9sum\\xe9\"})})})}),className:\"framer-645x2x\",\"data-framer-name\":\"footer-resume\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]})]})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-7wi4lk\",\"data-border\":true,\"data-framer-name\":\"footer-bottom\",children:[/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{sbSWPm_Es:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1m0xshm\",\"data-styles-preset\":\"SCe5OSMFI\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\"},children:\"\\xa9 2026 Dave Cai\"})})}},children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-1m0xshm\",\"data-styles-preset\":\"SCe5OSMFI\",dir:\"auto\",children:\"\\xa9 2026 Dave Cai\"})}),className:\"framer-edibwz\",\"data-framer-name\":\"footer-copyright\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-17pw7sk\",\"data-framer-name\":\"footer-clock\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1qbez9u-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"Seattle Clock\",isAuthoredByUser:true,name:\"Seattle Clock\",nodeId:\"yCrdkEDMR\",scopeId:\"LbydhkUq9\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{sbSWPm_Es:{font:{fontFamily:'\"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace',fontSize:\"14px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0em\",lineHeight:\"22px\"}},UrReNisXc:{font:{fontFamily:'\"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace',fontSize:\"13px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0em\",lineHeight:\"20px\"}}},children:/*#__PURE__*/_jsx(SeattleClock,{color:\"rgba(255, 255, 255, 0.62)\",font:{fontFamily:'\"IBM Plex Mono\", \"IBM Plex Mono Placeholder\", monospace',fontSize:\"14px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0em\",lineHeight:\"20px\"},height:\"100%\",id:\"yCrdkEDMR\",label:\"Seattle\",layoutId:\"yCrdkEDMR\",name:\"Seattle Clock\",width:\"100%\"})})})})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsxs(\"p\",{className:\"framer-styles-preset-1m0xshm\",\"data-styles-preset\":\"SCe5OSMFI\",dir:\"auto\",style:{\"--framer-text-alignment\":\"start\"},children:[\"made with \",/*#__PURE__*/_jsx(\"span\",{style:{\"--framer-text-color\":\"rgb(255, 255, 255)\"},children:\"❤️\"}),\" in PNW wilderness\"]})}),className:\"framer-18c1rn9\",\"data-framer-name\":\"footer-made\",fonts:[\"Inter\"],verticalAlignment:\"top\",withExternalLayout:true})]})]})]})]}),/*#__PURE__*/_jsx(\"div\",{id:\"template-overlay\"})]})});});const css=target=>{const isStaticRenderer=target===RenderTarget.canvas||target===RenderTarget.export;if(!isStaticRenderer){return[...rules,...breakpointKeys.map(key=>{const query=mediaQueries[key];return`@media ${query} { ${breakpointRules[key].join(\" \")} }`;})];}return[...rules,...breakpointKeys.flatMap(key=>{const selector=selectors[key];return breakpointRules[key].map(rule=>`${selector} {${rule}}`);})];};/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 1000\n * @framerIntrinsicWidth 1450\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"UrReNisXc\":{\"layout\":[\"fixed\",\"fixed\"]},\"sbSWPm_Es\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"xGTHrbPnm\":\"navVariantRef\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"xoryVuNte\":[\".framer-1v5e6z9\",\".framer-1w4q6h8\"],\"UrReNisXc\":[\".framer-1v5e6z9\",\".framer-1w4q6h8\"],\"sbSWPm_Es\":[\".framer-1v5e6z9\",\".framer-1w4q6h8\"]}\n * @framerBreakpoints {\"xoryVuNte\":{\"min\":1450,\"canvasClassName\":\"framer-eck6dv-override\",\"minHeight\":1000,\"name\":\"Desktop\",\"width\":1450,\"rootFontSize\":16},\"UrReNisXc\":{\"min\":810,\"max\":1449,\"canvasClassName\":\"framer-1uup11y-override\",\"minHeight\":1000,\"viewportHeight\":1080,\"name\":\"Tablet\",\"width\":810,\"rootFontSize\":16},\"sbSWPm_Es\":{\"max\":809,\"canvasClassName\":\"framer-176h1rp-override\",\"minHeight\":1000,\"viewportHeight\":844,\"name\":\"Phone\",\"width\":372,\"rootFontSize\":16}}\n * @framerDefaultVariant xoryVuNte\n * @framerTrackingIds [{\"id\":\"_10gf6sy\",\"trackingId\":\"footer-home\",\"type\":\"click\",\"nodeId\":\"uBw3nKFjH\"},{\"id\":\"_4prirp\",\"trackingId\":\"footer-work-dynery\",\"type\":\"click\",\"nodeId\":\"BauDFld78\"},{\"id\":\"_g3isit\",\"trackingId\":\"footer-work-onboarding\",\"type\":\"click\",\"nodeId\":\"NFI8eE2ZL\"},{\"id\":\"_1gshp2a\",\"trackingId\":\"footer-work-split-method\",\"type\":\"click\",\"nodeId\":\"xQtbEtR5H\"},{\"id\":\"_1sm3dc7\",\"trackingId\":\"footer-work-design-system\",\"type\":\"click\",\"nodeId\":\"rwgX_7Ml8\"},{\"id\":\"_1bjvxss\",\"trackingId\":\"footer-work-overtime\",\"type\":\"click\",\"nodeId\":\"O7cHE5kUH\"},{\"id\":\"_19qf7z5\",\"trackingId\":\"footer-email\",\"type\":\"click\",\"nodeId\":\"qd3RBmUZD\"},{\"id\":\"_n9ip7q\",\"trackingId\":\"footer-linkedin\",\"type\":\"click\",\"nodeId\":\"fs8euWciB\"},{\"id\":\"_1dy7r57\",\"trackingId\":\"footer-resume\",\"type\":\"click\",\"nodeId\":\"MuSZAryuY\"}]\n * @framerLayoutTemplate true\n */const FramerLbydhkUq9=withCSS(Component,css,\"framer-F68gI\");export default FramerLbydhkUq9;FramerLbydhkUq9.displayName=\"Footer+header Selected\";FramerLbydhkUq9.defaultProps={height:1e3,width:1450};addPropertyControls(FramerLbydhkUq9,{xGTHrbPnm:MenuAdaptedControls?.[\"variant\"]&&{...MenuAdaptedControls[\"variant\"],defaultValue:\"zcX8yXxD_\",description:undefined,hidden:undefined,title:\"Nav Variant Ref\"}});addFonts(FramerLbydhkUq9,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{cssFamilyName:\"IBM Plex Mono\",source:\"google\",style:\"normal\",uiFamilyName:\"IBM Plex Mono\",url:\"https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n5i0g1l9kn-s.woff2\",weight:\"400\"}]},...LogoFonts,...MenuAdaptedFonts,...RidgelineBandFonts,...SeattleClockFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts),...getFontsFromSharedStyle(sharedStyle2.fonts),...getFontsFromSharedStyle(sharedStyle3.fonts),...getFontsFromSharedStyle(sharedStyle4.fonts),...getFontsFromSharedStyle(sharedStyle5.fonts),...getFontsFromSharedStyle(sharedStyle6.fonts)],{supportsExplicitInterCodegen:true});FramerLbydhkUq9.loader={load:(props,context)=>{return runTasksWithYield([()=>forwardLoader(MenuBar,{},context),()=>forwardLoader(Logo,{},context),()=>forwardLoader(MenuAdapted,{},context)],context);}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerLbydhkUq9\",\"slots\":[],\"annotations\":{\"framerAutoSizeImages\":\"true\",\"framerVariables\":\"{\\\"xGTHrbPnm\\\":\\\"navVariantRef\\\"}\",\"framerDefaultVariant\":\"xoryVuNte\",\"framerBreakpoints\":\"{\\\"xoryVuNte\\\":{\\\"min\\\":1450,\\\"canvasClassName\\\":\\\"framer-eck6dv-override\\\",\\\"minHeight\\\":1000,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1450,\\\"rootFontSize\\\":16},\\\"UrReNisXc\\\":{\\\"min\\\":810,\\\"max\\\":1449,\\\"canvasClassName\\\":\\\"framer-1uup11y-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":1080,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":810,\\\"rootFontSize\\\":16},\\\"sbSWPm_Es\\\":{\\\"max\\\":809,\\\"canvasClassName\\\":\\\"framer-176h1rp-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":844,\\\"name\\\":\\\"Phone\\\",\\\"width\\\":372,\\\"rootFontSize\\\":16}}\",\"framerColorSyntax\":\"true\",\"framerIntrinsicHeight\":\"1000\",\"framerTrackingIds\":\"[{\\\"id\\\":\\\"_10gf6sy\\\",\\\"trackingId\\\":\\\"footer-home\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"uBw3nKFjH\\\"},{\\\"id\\\":\\\"_4prirp\\\",\\\"trackingId\\\":\\\"footer-work-dynery\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"BauDFld78\\\"},{\\\"id\\\":\\\"_g3isit\\\",\\\"trackingId\\\":\\\"footer-work-onboarding\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"NFI8eE2ZL\\\"},{\\\"id\\\":\\\"_1gshp2a\\\",\\\"trackingId\\\":\\\"footer-work-split-method\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"xQtbEtR5H\\\"},{\\\"id\\\":\\\"_1sm3dc7\\\",\\\"trackingId\\\":\\\"footer-work-design-system\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"rwgX_7Ml8\\\"},{\\\"id\\\":\\\"_1bjvxss\\\",\\\"trackingId\\\":\\\"footer-work-overtime\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"O7cHE5kUH\\\"},{\\\"id\\\":\\\"_19qf7z5\\\",\\\"trackingId\\\":\\\"footer-email\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"qd3RBmUZD\\\"},{\\\"id\\\":\\\"_n9ip7q\\\",\\\"trackingId\\\":\\\"footer-linkedin\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"fs8euWciB\\\"},{\\\"id\\\":\\\"_1dy7r57\\\",\\\"trackingId\\\":\\\"footer-resume\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"MuSZAryuY\\\"}]\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"1450\",\"framerHitTargets\":\"{\\\"xoryVuNte\\\":[\\\".framer-1v5e6z9\\\",\\\".framer-1w4q6h8\\\"],\\\"UrReNisXc\\\":[\\\".framer-1v5e6z9\\\",\\\".framer-1w4q6h8\\\"],\\\"sbSWPm_Es\\\":[\\\".framer-1v5e6z9\\\",\\\".framer-1w4q6h8\\\"]}\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"UrReNisXc\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"sbSWPm_Es\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerLayoutTemplate\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","\r\n\t\timport * as Framer from \"framer\";\r\nimport * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport * as ReactDOM from \"react-dom/client\";\r\nimport FooterHeaderUnselected from \"https://framerusercontent.com/modules/h5MFIM5MNx7Iv480oS7y/MUvr842E2JUZaRQX1ZuF/n7HW5uSmA.js\";\r\nimport FooterHeaderSelected from \"https://framerusercontent.com/modules/u11Rbu9W0rigAhLAb5hC/GAanb7DHsBjmv4QmNQAQ/LbydhkUq9.js\";\r\n\r\n\t\tconst routes = {augiA20Il: {elements: {s8gQvrIJn: \"work\", WA9UoEP0S: \"skills-rail\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/2yzQOGGvDR5IfXUXYjRE/KFmd4KGYFvFhiJUXWCFh/augiA20Il.js\")), path: \"/\"}, CItrB0MRg: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/QN8SKOWXuJBHH6mWpSOF/cn7w2ISV1NHQesxSxm2E/CItrB0MRg.js\")), path: \"/dynery\"}, RkYA680GN: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/jCx0PizBtqbYds9ZWNqA/I1vwsGGTMe2jw4JxxNOU/RkYA680GN.js\")), path: \"/lime\"}, BoO5stNTt: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/HFFXgy8W0dx3gSDqqJcy/rXIhtxkSmaf7KegFXpfB/BoO5stNTt.js\")), path: \"/cicerone\"}, JEtcg_uGz: {elements: {frc2O1fJ9: \"reflection\", id12C9buk: \"design-process\", jj6xdV9yp: \"userresearch\", lHQGzXuud: \"companion-app-breakdown\", rMmOPzZyN: \"scoping\", VfXt9Dx7x: \"overview\", Vgcdz6Bsi: \"solution\", XsEGJZQGu: \"problem-space\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/GmYCmRaYwPmbKvT1la4M/tB3sppbWYUJ6hsp39hVA/JEtcg_uGz.js\")), path: \"/sony\"}, itvOyqFio: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/nvxJHtrh2vRYwULXEDgJ/xeIPdEKwqRO0gAjUiKgJ/itvOyqFio.js\")), path: \"/squadup\"}, ebUjplIvi: {elements: {VmprB_xL6: \"impact\", XnGj4iM36: \"solution\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/pPRvje0CGxQ8eP5Py8Nz/5ujhRCRjjHI6exXvtTH8/ebUjplIvi.js\")), path: \"/dynery/onboardingredesign\"}, n6BmUOvCG: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/Pkhffs5M3err8w0xud0y/c71x5yzmOAdgTeNbjguX/n6BmUOvCG.js\")), path: \"/teslavideos\"}, V4kqq1G5a: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/pJQRVSNQLxGLMIkJruJn/hid9exeiWOAxTfFtXyN9/V4kqq1G5a.js\")), path: \"/stillimages\"}, JQ2pjDALW: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/E9raQg4QQOnYahLpMjVa/oXmKn9TQCE4ErPCjHOyz/JQ2pjDALW.js\")), path: \"/about\"}, pcgikjLVg: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/EepM0vtSZG2nfQf7iU12/al4MiSnfbJbPmc7aXb9U/pcgikjLVg.js\")), path: \"/overtime\"}, wHluVbYko: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/kqP1kCbEWncGyxkRTN4x/t5azqzwHTyel7iA2MOQj/wHluVbYko.js\")), path: \"/dynery/onboarding-v2\"}, sI7eBEhvj: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/0PFEjyhKGI0SyXm8rbs0/YhUUQ3DGjPJ6MNfuENPn/sI7eBEhvj.js\")), path: \"/dynery/split-method\"}, lu5mbmBXM: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/FMldX5glKnaR0Ay26yXU/VKiJde5hm8cL2tl1dWsE/lu5mbmBXM.js\")), path: \"/dynery/design-system\"}, BUlZCbVEo: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/8XddEs0pm6yy2z2ItaoN/VDuax9aWJNEA25VpUEkR/BUlZCbVEo.js\")), path: \"/interfaces/dynery\"}, wqmbF3aPV: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/W1JPKxdRBhDTad6OMoQJ/LcOdj4GNr4hhn32LMYuQ/wqmbF3aPV.js\")), path: \"/interfaces/merchant\"}, HbnAao6af: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/gsklBEaYlHJvT6RQaf1p/T7Cyz1tPdSmcTUqKLhNM/HbnAao6af.js\")), path: \"/interfaces/passion-projects\"}, NzYrW58Lv: {page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/WyMKnaSUP9F54K66WXYd/L7ArbbVenodwpREqd0GZ/NzYrW58Lv.js\"))}}\r\n\r\n\t\tconst locales = [{code: \"en\", id: \"default\", name: \"English\", slug: \"\", textDirection: \"ltr\"}]\r\n\t\tconst collectionUtils = {}\r\n\t\tconst serverDatabaseClient = undefined\r\n\t\tconst framerSiteId = \"633b2e81c0561990da22aa9e6f29d8c347954a6d4b9391840d16b164d86a8b4d\"\r\n\t\tfunction Template({webPageId, children, style, ...rest}) {const props1 = {xGTHrbPnm: \"zcX8yXxD_\"}\r\nconst props2 = {...props1, xGTHrbPnm: \"MwHcUKtRW\"}\r\nconst templateProps = {augiA20Il: props1, JQ2pjDALW: props2, X_EbvEqzk: props1}\r\nconst props = templateProps[webPageId] ?? {}\r\nswitch (webPageId) {case \"augiA20Il\":\r\ncase \"X_EbvEqzk\":\r\ncase \"JQ2pjDALW\":\r\nreturn React.createElement(FooterHeaderSelected, {...props, key: \"FooterHeaderSelected\", style}, children(true));\r\ncase \"CItrB0MRg\":\r\ncase \"RkYA680GN\":\r\ncase \"BoO5stNTt\":\r\ncase \"JEtcg_uGz\":\r\ncase \"itvOyqFio\":\r\ncase \"ebUjplIvi\":\r\ncase \"n6BmUOvCG\":\r\ncase \"V4kqq1G5a\":\r\ncase \"pcgikjLVg\":\r\ncase \"wHluVbYko\":\r\ncase \"sI7eBEhvj\":\r\ncase \"lu5mbmBXM\":\r\ncase \"sM3jpd5PU\":\r\ncase \"BUlZCbVEo\":\r\ncase \"wqmbF3aPV\":\r\ncase \"HbnAao6af\":\r\nreturn React.createElement(FooterHeaderUnselected, {...props, key: \"FooterHeaderUnselected\", style}, children(true));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"augiA20Il\":\r\ncase \"X_EbvEqzk\":\r\ncase \"JQ2pjDALW\":\r\nreturn [{hash: \"eck6dv\", mediaQuery: \"(min-width: 1450px)\"}, {hash: \"1uup11y\", mediaQuery: \"(min-width: 810px) and (max-width: 1449.98px)\"}, {hash: \"176h1rp\", mediaQuery: \"(max-width: 809.98px)\"}]\r\ncase \"CItrB0MRg\":\r\ncase \"RkYA680GN\":\r\ncase \"BoO5stNTt\":\r\ncase \"JEtcg_uGz\":\r\ncase \"itvOyqFio\":\r\ncase \"ebUjplIvi\":\r\ncase \"n6BmUOvCG\":\r\ncase \"V4kqq1G5a\":\r\ncase \"pcgikjLVg\":\r\ncase \"wHluVbYko\":\r\ncase \"sI7eBEhvj\":\r\ncase \"lu5mbmBXM\":\r\ncase \"sM3jpd5PU\":\r\ncase \"BUlZCbVEo\":\r\ncase \"wqmbF3aPV\":\r\ncase \"HbnAao6af\":\r\nreturn [{hash: \"f3g34w\", mediaQuery: \"(min-width: 1450px)\"}, {hash: \"jw6snl\", mediaQuery: \"(min-width: 810px) and (max-width: 1449.98px)\"}, {hash: \"ddxdcv\", mediaQuery: \"(max-width: 809.98px)\"}]\r\ndefault: { return undefined }}}\r\n\r\n\t\tconst isBrowser = typeof document !== \"undefined\"\r\n\t\tconst isBot = isBrowser && /bot|-google|google-|yandex|ia_archiver|crawl|spider/iu.test(navigator.userAgent)\r\n\r\n\t\t\r\n\t\t\r\n\r\n\t\texport async function getPageRoot({\r\n\t\t\trouteId,\r\n\t\t\tpathVariables,\r\n\t\t\tcanonicalPathVariables,\r\n\t\t\tlocaleId,\r\n\t\t\tcollectionItemId,\r\n\t\t\tcontentLocaleId,\r\n\t\t\tshouldResolveInitialRouteContentState = false,\r\n\t\t}) {\r\n\t\t\tconst rootPreload = routes[routeId].page.preload()\r\n\r\n\t\t\t\r\n\r\n\t\t\tFramer.setLibraryFeatures({checkServerSideRouter: true, disableCustomCode: false, disableHoverOnMobile: false, editorBarDisableFrameAncestorsSecurity: false, motionDivToDiv: false, onPageRichTextBlockSelection: true, scrollRestoration: true, synchronousNavigationOnDesktop: false, yieldOnTap: false})\r\n\t\t\tFramer.setCurrentSiteId(framerSiteId)\r\n\r\n\t\t\tconst content = React.createElement(\r\n\t\t\t\tFramer.PageRoot,\r\n\t\t\t\t{\r\n\t\t\t\t\tisWebsite: true,\r\n\t\t\t\t\tenvironment: \"site\",\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcanonicalPathVariables,\r\n\t\t\t\t\troutes,\r\n\t\t\t\t\tcollectionUtils,\r\n\t\t\t\t\tserverDatabaseClient,\r\n\t\t\t\t\tframerSiteId,\r\n\t\t\t\t\tnotFoundPage: Framer.lazy(() => import(\"__framer-not-found-page\")),\r\n\t\t\t\t\tisReducedMotion: true,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tlocales,\r\n\t\t\t\t\tpreserveQueryParams: undefined,\r\n\t\t\t\t\tsiteCanonicalURL: \"https://www.tianxiangcai.com\",\r\n\t\t\t\t\tEditorBar: \r\n\t\t\ttypeof window !== \"undefined\" ? (() => {\r\n\t\t\t\tif (isBot) {\r\n\t\t\t\t\tconsole.log(\"[Framer On-Page Editing] Unavailable because navigator is bot\")\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn Framer.lazy(async () => {\r\n\t\t\t\t\tconst dependencies = {\r\n\t\t\t\t\t\t__version: 3,\r\n\t\t\t\t\t\tframer: {\r\n\t\t\t\t\t\t\tuseCurrentRoute: Framer.useCurrentRoute,\r\n\t\t\t\t\t\t\tuseLocaleInfo: Framer.useLocaleInfo,\r\n\t\t\t\t\t\t\tuseRouter: Framer.useRouter,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\treact: {\r\n\t\t\t\t\t\t\tcreateElement: React.createElement,\r\n\t\t\t\t\t\t\tFragment: React.Fragment,\r\n\t\t\t\t\t\t\tmemo: React.memo,\r\n\t\t\t\t\t\t\tuseCallback: React.useCallback,\r\n\t\t\t\t\t\t\tuseEffect: React.useEffect,\r\n\t\t\t\t\t\t\tuseRef: React.useRef,\r\n\t\t\t\t\t\t\tuseState: React.useState,\r\n\t\t\t\t\t\t\tuseLayoutEffect: React.useLayoutEffect,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"react-dom\": { createPortal },\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twindow.__framer_editorBarDependencies = dependencies\r\n\r\n\t\t\t\t\tconst { createEditorBar } = await import(\"https://framer.com/edit/init.mjs\")\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tdefault: createEditorBar(),\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t})() : undefined\r\n\t\t,\r\n\t\t\t\t\tadaptLayoutToTextDirection: false,\r\n\t\t\t\t\tLayoutTemplate: Template,\r\n\t\t\t\t\tloadSnippetsModule: new Framer.LazyValue(() => import(\"https://framerusercontent.com/modules/JOtv0yfHmuWEihNfYVm4/7sJgYAfwTU9CHJZF7qB2/snippets.js\")),\r\n\t\t\t\t\tinitialCollectionItemId: collectionItemId,\r\n\t\t\t\t\tinitialContentLocaleIdOverride: contentLocaleId,\r\n\t\t\t\t}\r\n\t\t\t)\r\n\r\n\t\t\tconst contentWithGracefullyDegradingErrorBoundary = React.createElement(Framer.GracefullyDegradingErrorBoundary, {\r\n\t\t\t\tchildren: content\r\n\t\t\t})\r\n\r\n\t\t\t\r\n\t\t\tconst page = React.createElement(Framer.PageEffectsProvider, {\r\n\t\t\t\tchildren: contentWithGracefullyDegradingErrorBoundary,\r\n\t\t\t\tvalue: {global: {enter: {opacity: 0, rotate: 0, rotate3d: false, rotateX: 0, rotateY: 0, scale: 1, transition: {damping: 30, delay: 0, duration: 0.2, ease: [0.27, 0, 0.51, 1], mass: 1, stiffness: 400, type: \"tween\"}, x: \"0px\", y: \"0px\"}}, routes: {}}\r\n\t\t\t})\r\n\r\n\t\t\t// We don't want the initial render to immediately have to suspend.\r\n\t\t\tawait rootPreload\r\n\t\t\treturn page\r\n\t\t}\r\n\t\r\n\r\n\t\tif (isBrowser) {\r\n\t\t\t// Note: HTTPArchive also uses this function to detect Framer sites; see https://github.com/HTTPArchive/wappalyzer/blob/371a17583f74fd9171b9077f59a5619b24062891/src/technologies/f.json#L1722-L1748.\r\n\t\t\twindow.__framer_importFromPackage = (packageAndFilename, exportIdentifier) => () => {\r\n\t\t\t\treturn React.createElement(Framer.ErrorPlaceholder, { error: 'Package component not supported: \"' + exportIdentifier + '\" in \"' + packageAndFilename + '\"' })\r\n\t\t\t}\r\n\r\n\t\t\twindow.__framer_events = window.__framer_events || []\r\n\r\n\t\t\t// Initialize lazy modules cache for hydration\r\n\t\t\tFramer.initLazyModulesCache()\r\n\r\n\t\t\tconst container = document.getElementById(\"main\")\r\n\t\t\t// We know that #main is parsed before this script, so we don't need to wait for DOMContentLoaded or similar events.\r\n\t\t\tif (\"framerHydrateV2\" in container.dataset) main(true, container)\r\n\t\t\telse main(false, container)\r\n\t\t}\r\n\r\n\t\tfunction track() {\r\n\t\t\tif (!isBrowser) return\r\n\t\t\twindow.__framer_events.push(arguments)\r\n\t\t}\r\n\r\n\t\tasync function main(shouldHydrate, container) {\r\n\t\t\tfunction handleError(error, errorInfo, recoverable = true) {\r\n\t\t\t\tif (error.caught || window.__framer_hadFatalError) return // we already logged it\r\n\r\n\t\t\t\tconst componentStack = errorInfo?.componentStack\r\n\t\t\t\tif (recoverable) {\r\n\t\t\t\t\tconsole.warn(\"Caught a recoverable error. The site is still functional, but might have some UI flickering or degraded page load performance. If you are the author of this website, update external components and check recently added custom code or code overrides to fix the following server/client mismatches:\\n\", error, componentStack)\r\n\t\t\t\t\t// we only want to collect 1%, because this can be quite noisy (floods the data pipeline)\r\n\t\t\t\t\tif (Math.random() > 0.01) return\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.error(\"Caught a fatal error. Please report the following to the Framer team via https://www.framer.com/contact/:\\n\", error, componentStack)\r\n\t\t\t\t}\r\n\t\t\t\ttrack(recoverable ? \"published_site_load_recoverable_error\" : \"published_site_load_error\", {\r\n\t\t\t\t\tmessage: String(error),\r\n\t\t\t\t\tcomponentStack, // componentStack is more useful\r\n\t\t\t\t\tstack: componentStack ? undefined : error instanceof Error && typeof error.stack === \"string\" ? error.stack : null,\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\ttry {\r\n\t\t\t\tlet routeId, localeId, contentLocaleId, pathVariables, canonicalPathVariables, breakpoints, routeData\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\trouteData = JSON.parse(container.dataset[\"framerHydrateV2\"])\r\n\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\tcontentLocaleId = routeData.contentLocaleId\r\n\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\tcanonicalPathVariables = routeData.canonicalPathVariables\r\n\t\t\t\t\tbreakpoints = routeData.breakpoints\r\n\r\n\t\t\t\t\trouteId = Framer.patchRoutesForABTesting(routes, routeId) // Prioritize optimized route id to avoid flickering in browsers not supporting the server-timing header (Safari older than 16.4)\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\tFramer.patchRoutesForABTesting(routes, undefined) // This must happen before inferInitialRouteFromPath\r\n\t\t\t\t\tconst serverRoute = performance.getEntriesByType(\"navigation\")[0]?.serverTiming?.find(e => e.name === \"route\")?.description\r\n\t\t\t\t\tif (serverRoute) {\r\n\t\t\t\t\t\tconst routeData = new URLSearchParams(serverRoute)\r\n\t\t\t\t\t\trouteId = routeData.get(\"id\")\r\n\t\t\t\t\t\tlocaleId = routeData.get(\"locale\")\r\n\t\t\t\t\t\tfor (const [key, value] of routeData.entries()) {\r\n\t\t\t\t\t\t\tif (!key.startsWith(\"var.\")) continue\r\n\t\t\t\t\t\t\tpathVariables ??= {}\r\n\t\t\t\t\t\t\tpathVariables[key.slice(4)] = value\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!routeId || !localeId) {\r\n\t\t\t\t\t\tconst routeData = Framer.inferInitialRouteFromPath(routes, decodeURIComponent(location.pathname), true, locales)\r\n\t\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst pagePromise = getPageRoot({\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tcontentLocaleId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcanonicalPathVariables,\r\n\t\t\t\t\tcollectionItemId: shouldHydrate ? routeData?.collectionItemId : undefined,\r\n\t\t\t\t\tshouldResolveInitialRouteContentState: !shouldHydrate,\r\n\t\t\t\t})\r\n\r\n\t\t\t\t\r\nif (typeof window !== \"undefined\") {\r\n\tvoid (async () => {\r\n\t\tconst route = routes[routeId]\r\n\r\n\t\tconst defaultLocaleId = \"default\"\r\n\t\tconst framerLocale = locales.find(({ id }) => !localeId ? id === defaultLocaleId : id === localeId).code\r\n\r\n\t\t\r\n\t\tlet collectionItemId = routeData?.collectionItemId ?? null\r\n\t\tif (collectionItemId === null && route?.collectionId && collectionUtils) {\r\n\t\t\tconst utils = await collectionUtils[route.collectionId]?.()\r\n\t\t\tconst [slug] = Object.values(pathVariables)\r\n\t\t\tif (utils && typeof slug === \"string\") {\r\n\t\t\t\tcollectionItemId = (await utils.getRecordIdBySlug(slug, framerLocale || undefined)) ?? null\r\n\t\t\t}\r\n\t\t}\r\n\t\r\n\r\n\t\tconst resolvedDateTimeOptions = Intl.DateTimeFormat().resolvedOptions()\r\n\t\tconst timezone = resolvedDateTimeOptions.timeZone\r\n\t\tconst locale = resolvedDateTimeOptions.locale\r\n\r\n\t\t// wait for the page to be activated before sending the pageview event\r\n\t\t// https://developer.chrome.com/docs/web-platform/prerender-pages#impact-on-analytics\r\n\t\tawait new Promise((resolve) => {\r\n\t\t\tif (document.prerendering) {\r\n\t\t\t\tdocument.addEventListener(\"prerenderingchange\", resolve, { once: true })\r\n\t\t\t} else {\r\n\t\t\t\tresolve()\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\twindow.__framer_events.push([\r\n\t\t\t\"published_site_pageview\",\r\n\t\t\t{\r\n\t\t\t\tframerSiteId,\r\n\t\t\t\tversion: 2,\r\n\t\t\t\troutePath: route?.path || \"/\",\r\n\t\t\t\tcollectionItemId,\r\n\t\t\t\tframerLocale: framerLocale || null,\r\n\t\t\t\twebPageId: route?.abTestingVariantId ?? routeId,\r\n\t\t\t\tabTestId: route?.abTestId,\r\n\t\t\t\treferrer: document.referrer || null,\r\n\t\t\t\turl: window.location.href,\r\n\t\t\t\thostname: window.location.hostname || null,\r\n\t\t\t\tpathname: window.location.pathname || null,\r\n\t\t\t\thash: window.location.hash || null,\r\n\t\t\t\tsearch: window.location.search || null,\r\n\t\t\t\ttimezone,\r\n\t\t\t\tlocale,\r\n\t\t\t},\r\n\t\t\t\"eager\"\r\n\t\t])\r\n\r\n\t\t// Yield to avoid blocking the main thread with the user code\r\n\t\tawait Framer.yieldToMain({ priority: \"background\", ensureContinueBeforeUnload: true, continueAfter: \"paint\" })\r\n\r\n\t\tdocument.dispatchEvent(new CustomEvent(\"framer:pageview\", {\r\n\t\t\tdetail: { framerLocale: framerLocale || null }\r\n\t\t}))\r\n\t})()\r\n}\r\n\r\n\r\n\t\t\t\tconst page = await pagePromise\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tFramer.withPerformanceMarks(\"framer-rewrite-breakpoints\", () => {\r\n\t\t\t\t\t\tFramer.removeHiddenBreakpointLayersV2(breakpoints)\r\n\t\t\t\t\t\twindow.__framer_onRewriteBreakpoints?.(breakpoints)\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tconst startTransition = isBot ? cb => cb() : React.startTransition\r\n\t\t\t\t\tstartTransition(() => {\r\n\t\t\t\t\t\tFramer.markHydrationStart()\r\n\t\t\t\t\t\tFramer.turnOffReactEventHandling()\r\n\t\t\t\t\t\tReactDOM.hydrateRoot(container, page, { onRecoverableError: handleError })\r\n\t\t\t\t\t})\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\tReactDOM.createRoot(container, { onRecoverableError: handleError }).render(page)\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\thandleError(error, undefined, false)\r\n\t\t\t\tthrow error\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t"],"mappings":"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IAAI,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,EAAE,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,EAAE,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,OAAO,IAAI,MAAM,IAAI,QAAQ,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,KAAK,KAAK,EAAE,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAEh2iB,GAAmB,CAAC,OAAO,mUAAmU,eAAe,GAAG,MAAM,CAAC,CAAC,KAAK,WAAW,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC,KAAK,UAAU,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,KAAK,UAAU,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,WAAW,OAAO,IAAI,MAAM,IAAI,QAAQ,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,KAAK,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,EAAE,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,IAAI,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,KAAK,EAAE,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,IAAI,KAAK,EAAE,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,KAAK,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,KAAK,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,OAAO,IAAI,MAAM,IAAI,QAAQ,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,EAAE,CAAC,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,EAAE,CAAC,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,KAAK,EAAE,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM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"}