{"version":3,"file":"PageTransition.o7doqjdp.mjs","names":["useState","useRef","useState"],"sources":["https:/framerusercontent.com/modules/dTGzpMcq7PUz1Oa6VrDf/FF4am70euOtJXBsizyCf/CustomCursor.js","https:/framerusercontent.com/modules/5F2FBfXFNko0CdULye0J/WFstaFCMqyzULM4mmrAq/PageTransition.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useState,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * CustomCursor\n * Drop once on any page — hides default cursor, shows branded dot.\n * Automatically disabled on touch/tablet/mobile devices.\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function CustomCursor(props){const{accentColor,size,hoverLabel}=props;const[pos,setPos]=useState({x:-200,y:-200});const[ring,setRing]=useState({x:-200,y:-200});const[hovered,setHovered]=useState(false);const[visible,setVisible]=useState(false);const ringRef=useRef({x:-200,y:-200});const rafRef=useRef();// Only run on desktop with a real mouse (pointer: fine)\nconst isDesktop=typeof window!==\"undefined\"&&window.matchMedia(\"(pointer: fine) and (hover: hover)\").matches;useEffect(()=>{if(!isDesktop)return;const style=document.createElement(\"style\");style.id=\"kapture-cursor-hide\";style.textContent=\"* { cursor: none !important; }\";document.head.appendChild(style);const onMove=e=>{setPos({x:e.clientX,y:e.clientY});setVisible(true);};const onOver=e=>{const el=e.target;const isInteractive=el.tagName===\"A\"||el.tagName===\"BUTTON\"||el.closest(\"a\")||el.closest(\"button\")||el.getAttribute(\"role\")===\"button\"||el.closest(\"[data-framer-name]\");setHovered(!!isInteractive);};const onLeave=()=>setVisible(false);window.addEventListener(\"mousemove\",onMove);window.addEventListener(\"mouseover\",onOver);document.addEventListener(\"mouseleave\",onLeave);const animate=()=>{ringRef.current.x+=(pos.x-ringRef.current.x)*.12;ringRef.current.y+=(pos.y-ringRef.current.y)*.12;setRing({x:ringRef.current.x,y:ringRef.current.y});rafRef.current=requestAnimationFrame(animate);};rafRef.current=requestAnimationFrame(animate);return()=>{const s=document.getElementById(\"kapture-cursor-hide\");if(s)document.head.removeChild(s);window.removeEventListener(\"mousemove\",onMove);window.removeEventListener(\"mouseover\",onOver);document.removeEventListener(\"mouseleave\",onLeave);if(rafRef.current)cancelAnimationFrame(rafRef.current);};},[isDesktop]);// Not a mouse device — render nothing, keep default cursor\nif(!isDesktop)return null;return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"fixed\",top:0,left:0,width:0,height:0,pointerEvents:\"none\",zIndex:99999},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"fixed\",left:pos.x,top:pos.y,width:hovered?6:size,height:hovered?6:size,borderRadius:\"50%\",background:accentColor,transform:\"translate(-50%, -50%)\",transition:\"width 0.15s ease, height 0.15s ease\",opacity:visible?1:0,pointerEvents:\"none\"}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"fixed\",left:ring.x,top:ring.y,width:hovered?64:36,height:hovered?64:36,borderRadius:\"50%\",border:`1.5px solid ${accentColor}`,background:hovered?`${accentColor}18`:\"transparent\",transform:\"translate(-50%, -50%)\",transition:\"width 0.3s ease, height 0.3s ease, background 0.3s ease\",opacity:visible?hovered?1:.4:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",pointerEvents:\"none\"},children:hovered&&/*#__PURE__*/_jsx(\"span\",{style:{color:accentColor,fontSize:8,fontWeight:700,letterSpacing:\"0.1em\",textTransform:\"uppercase\",fontFamily:\"inherit\"},children:hoverLabel})})]});}CustomCursor.defaultProps={accentColor:\"rgb(255, 107, 53)\",size:8,hoverLabel:\"VIEW\"};addPropertyControls(CustomCursor,{accentColor:{type:ControlType.Color,title:\"Colour\",defaultValue:\"rgb(255, 107, 53)\"},size:{type:ControlType.Number,title:\"Dot Size\",min:4,max:20,defaultValue:8},hoverLabel:{type:ControlType.String,title:\"Hover Label\",defaultValue:\"VIEW\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CustomCursor\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CustomCursor.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * PageTransition\n * Dark curtain that sweeps in/out on every page load.\n * Drop once on every page as a fixed overlay.\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function PageTransition(props){const{color,duration,direction}=props;const[phase,setPhase]=useState(\"in\");useEffect(()=>{const t1=setTimeout(()=>setPhase(\"hold\"),50);const t2=setTimeout(()=>setPhase(\"out\"),300);const t3=setTimeout(()=>setPhase(\"done\"),300+duration*1e3);return()=>{clearTimeout(t1);clearTimeout(t2);clearTimeout(t3);};},[duration]);if(phase===\"done\")return null;const isVertical=direction===\"vertical\";const transforms={in:isVertical?\"scaleY(1)\":\"scaleX(1)\",hold:isVertical?\"scaleY(1)\":\"scaleX(1)\",out:isVertical?\"scaleY(0)\":\"scaleX(0)\"};const origins={in:isVertical?\"top\":\"left\",hold:isVertical?\"bottom\":\"right\",out:isVertical?\"bottom\":\"right\"};return /*#__PURE__*/_jsx(\"div\",{style:{position:\"fixed\",inset:0,background:color,zIndex:99997,transform:transforms[phase],transformOrigin:origins[phase],transition:phase===\"out\"?`transform ${duration}s cubic-bezier(0.76, 0, 0.24, 1)`:\"none\",pointerEvents:phase===\"out\"||phase===\"done\"?\"none\":\"all\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:phase!==\"out\"&&/*#__PURE__*/_jsx(\"div\",{style:{color:\"rgb(255, 107, 53)\",fontSize:32,fontWeight:800,fontFamily:\"inherit\",letterSpacing:\"-1px\",textTransform:\"uppercase\",opacity:phase===\"hold\"?1:0,transform:phase===\"hold\"?\"translateY(0)\":\"translateY(20px)\",transition:\"opacity 0.3s ease, transform 0.3s ease\"},children:\"Kapture\"})});}PageTransition.defaultProps={color:\"rgb(10, 10, 10)\",duration:.8,direction:\"vertical\"};addPropertyControls(PageTransition,{color:{type:ControlType.Color,title:\"Curtain Color\",defaultValue:\"rgb(10,10,10)\"},duration:{type:ControlType.Number,title:\"Exit Duration (s)\",min:.3,max:2,step:.1,defaultValue:.8},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"vertical\",\"horizontal\"],optionTitles:[\"Vertical\",\"Horizontal\"],defaultValue:\"vertical\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PageTransition\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PageTransition.map"],"mappings":"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"}