{"version":3,"file":"shared-lib.BFlR61dp.mjs","names":["useState","useRef","useState"],"sources":["https:/framerusercontent.com/modules/fTrw9gh5yMYE86IIiWFI/HJ1kzdoWqAJZFgnABkYS/BackToTop.js","https:/framerusercontent.com/modules/OqZXnI5MpyDziEMEMriR/VahhSwLUnT9st7D71lLe/ThemeToggle.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function BackToTop(props){const{label,showAfter,idle,bottomGap,background,color,border,style}=props;const isStatic=useIsStaticRenderer();const[shown,setShown]=useState(isStatic);const scrollTopRef=useRef(()=>window.scrollTo({top:0,behavior:\"smooth\"}));useEffect(()=>{if(isStatic||typeof window===\"undefined\")return;// Phones, Framer's device preview and some in-app browsers (Instagram) scroll an inner\n// element instead of the window, so track whichever element actually scrolled.\nlet scroller=document.scrollingElement||document.documentElement;let active=false,timer=0;const metrics=()=>{const el=scroller;if(!el||el===document.scrollingElement||el===document.documentElement||el===document.body)return{y:window.scrollY||document.documentElement.scrollTop,view:window.innerHeight,total:document.documentElement.scrollHeight};return{y:el.scrollTop,view:el.clientHeight,total:el.scrollHeight};};const update=()=>{const{y,view,total}=metrics();setShown(active&&y>showAfter&&y+view<total-bottomGap);};const wake=e=>{if(e&&e.type===\"scroll\"){const t=e.target;scroller=t instanceof Element&&t.scrollHeight>t.clientHeight?t:document.scrollingElement;}active=true;update();window.clearTimeout(timer);timer=window.setTimeout(()=>{active=false;update();},idle*1e3);};const events=[\"wheel\",\"touchstart\",\"touchmove\",\"pointermove\",\"keydown\"];document.addEventListener(\"scroll\",wake,{passive:true,capture:true});events.forEach(e=>window.addEventListener(e,wake,{passive:true}));update();scrollTopRef.current=()=>{const el=scroller;const opts={top:0,behavior:window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches?\"auto\":\"smooth\"};if(el&&el!==document.scrollingElement&&el!==document.documentElement&&el!==document.body)el.scrollTo(opts);else window.scrollTo(opts);};return()=>{window.clearTimeout(timer);document.removeEventListener(\"scroll\",wake,{capture:true});events.forEach(e=>window.removeEventListener(e,wake));};},[isStatic,showAfter,idle,bottomGap]);const reduce=typeof window!==\"undefined\"&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;return /*#__PURE__*/_jsxs(\"button\",{type:\"button\",\"aria-label\":\"Back to top\",tabIndex:shown?0:-1,onClick:()=>scrollTopRef.current(),style:{...style,position:\"relative\",display:\"inline-flex\",alignItems:\"center\",gap:10,height:44,padding:\"0 22px\",borderRadius:999,border:`1px solid ${border}`,background,color,cursor:\"pointer\",font:\"400 12px/1 'Instrument Sans', system-ui, sans-serif\",letterSpacing:\"1px\",textTransform:\"uppercase\",whiteSpace:\"nowrap\",opacity:shown?1:0,transform:shown?\"none\":\"translateY(12px)\",pointerEvents:shown?\"auto\":\"none\",transition:reduce?\"none\":\"opacity .35s ease, transform .45s cubic-bezier(.22,.8,.2,1)\"},children:[label,\" \",/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",children:\"↑\"})]});}addPropertyControls(BackToTop,{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Back to top\"},showAfter:{type:ControlType.Number,title:\"Show After\",defaultValue:600,min:0,max:3e3,step:50,unit:\"px\"},idle:{type:ControlType.Number,title:\"Hide When Idle\",defaultValue:2.5,min:.5,max:10,step:.5,unit:\"s\"},bottomGap:{type:ControlType.Number,title:\"Hide Near End\",defaultValue:320,min:0,max:1200,step:20,unit:\"px\"},background:{type:ControlType.Color,title:\"Fill\",defaultValue:\"#000000\"},color:{type:ControlType.Color,title:\"Text\",defaultValue:\"#ffffff\"},border:{type:ControlType.Color,title:\"Border\",defaultValue:\"rgba(255, 255, 255, 0.25)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BackToTop\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BackToTop.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useState}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// Light / dark switch for the whole site. The theme itself is applied by a tiny head script\n// (installed site-wide) that reads the visitor's saved choice before first paint and defaults to dark.\n// This toggle just flips it, remembers it, and keeps every toggle on the page in sync.\nconst KEY=\"ar-theme\";// Same rules the site-wide head script installs; repeated here so the switch also works in Framer's Preview.\nconst TOKENS={ground:\"acdf933a-bb44-47ab-95da-efb7a59602c0\",line:\"9ce08c76-7b5f-4f1b-bcdd-62001deead06\",ink:\"4ff52da6-10e1-4941-8e07-c42ee38ad78b\",muted:\"0110efbe-e414-457a-9985-c18a1e478de9\",accent:\"302334bd-3295-489a-a60c-6458f13d4aef\"};const VALUES={dark:{ground:\"#000000\",line:\"rgba(255,255,255,0.25)\",ink:\"#ffffff\",muted:\"#8f8f8f\",accent:\"#cbbfae\"},light:{ground:\"#efede8\",line:\"rgba(17,17,17,0.14)\",ink:\"#111111\",muted:\"#77736c\",accent:\"#8a7f70\"}};function ensureThemeCSS(){if(document.getElementById(\"ar-theme-css\"))return;const css=[\"dark\",\"light\"].map(m=>`html[data-ar-theme=\"${m}\"], html[data-ar-theme=\"${m}\"] body { ${Object.entries(TOKENS).map(([k,id])=>`--token-${id}: ${VALUES[m][k]} !important;`).join(\" \")} color-scheme: ${m}; }`).join(\"\\n\");const el=document.createElement(\"style\");el.id=\"ar-theme-css\";el.textContent=css;document.head.appendChild(el);if(!document.documentElement.dataset.arTheme){let saved=\"dark\";try{saved=localStorage.getItem(KEY)||\"dark\";}catch(e){}document.documentElement.dataset.arTheme=saved===\"light\"?\"light\":\"dark\";}}const read=()=>typeof document!==\"undefined\"&&document.documentElement.dataset.arTheme===\"light\"?\"light\":\"dark\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function ThemeToggle(props){const{color,fontSize,style}=props;const isStatic=useIsStaticRenderer();const[theme,setTheme]=useState(\"dark\");useEffect(()=>{if(isStatic)return;ensureThemeCSS();setTheme(read());const sync=()=>setTheme(read());window.addEventListener(\"ar-theme-change\",sync);return()=>window.removeEventListener(\"ar-theme-change\",sync);},[isStatic]);const flip=()=>{const next=theme===\"dark\"?\"light\":\"dark\";document.documentElement.dataset.arTheme=next;try{localStorage.setItem(KEY,next);}catch(e){}window.dispatchEvent(new Event(\"ar-theme-change\"));};const opt=name=>/*#__PURE__*/_jsx(\"span\",{style:{opacity:theme===name?1:.45,transition:\"opacity .3s ease\"},children:name});return /*#__PURE__*/_jsxs(\"button\",{type:\"button\",onClick:flip,\"aria-label\":`Switch to ${theme===\"dark\"?\"light\":\"dark\"} mode`,style:{...style,all:\"unset\",cursor:\"pointer\",display:\"inline-flex\",alignItems:\"center\",gap:6,color,fontFamily:\"'Instrument Sans', sans-serif\",fontSize,lineHeight:1.4,letterSpacing:\"1px\",textTransform:\"uppercase\",whiteSpace:\"nowrap\"},children:[/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{width:9,height:9,borderRadius:\"50%\",border:`1px solid ${color}`,background:`linear-gradient(90deg, ${color} 50%, transparent 50%)`}}),opt(\"light\"),/*#__PURE__*/_jsx(\"span\",{style:{opacity:.45},children:\"/\"}),opt(\"dark\")]});}addPropertyControls(ThemeToggle,{color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#ffffff\"},fontSize:{type:ControlType.Number,title:\"Size\",defaultValue:11,min:8,max:24,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ThemeToggle\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ThemeToggle.map"],"mappings":"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"}