{"version":3,"file":"PortfolioProjectCard.Ckp27Z7D.mjs","names":["React.useState","React.useMemo","React.useCallback","_Fragment"],"sources":["https:/framerusercontent.com/modules/pfSkaXsJCBfpwmwjcTMo/5wNnGtftT2ltUS0whM2V/PortfolioProjectCard.js"],"sourcesContent":["// User instructions: Create a responsive Framer Code Component for a CMS portfolio project card that fits inside a Framer CMS grid, resizes fluidly, auto-expands height on flip, shows media with customizable dither overlay on front, flips on hover (desktop) or tap (mobile) to reveal expanded project details on back, and supports navigation to the CMS detail page.\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";import{AnimatePresence,motion}from\"framer-motion\";function clamp(n,min,max){return Math.min(max,Math.max(min,n));}function toRgba(hexOrRgba,alpha){// Accepts hex (#RGB, #RRGGBB, #RRGGBBAA) or rgba() and returns rgba() with replaced alpha.\nconst s=(hexOrRgba||\"\").trim();if(s.startsWith(\"rgba(\")){const parts=s.replace(\"rgba(\",\"\").replace(\")\",\"\").split(\",\").map(p=>p.trim());if(parts.length>=3){const r=Number(parts[0]);const g=Number(parts[1]);const b=Number(parts[2]);return`rgba(${r}, ${g}, ${b}, ${alpha})`;}}if(s.startsWith(\"rgb(\")){const parts=s.replace(\"rgb(\",\"\").replace(\")\",\"\").split(\",\").map(p=>p.trim());if(parts.length>=3){const r=Number(parts[0]);const g=Number(parts[1]);const b=Number(parts[2]);return`rgba(${r}, ${g}, ${b}, ${alpha})`;}}let hex=s;if(hex.startsWith(\"#\"))hex=hex.slice(1);if(hex.length===3){hex=hex.split(\"\").map(c=>c+c).join(\"\");}if(hex.length===8){hex=hex.slice(0,6);}if(hex.length!==6)return`rgba(0,0,0,${alpha})`;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}, ${alpha})`;}function relativeLuminance(color){// Supports #RRGGBB / #RGB / rgb(a)\nlet r=0,g=0,b=0;const s=(color||\"\").trim();const fromHex=hex=>{let h=hex;if(h.startsWith(\"#\"))h=h.slice(1);if(h.length===3)h=h.split(\"\").map(c=>c+c).join(\"\");if(h.length>=6){r=parseInt(h.slice(0,2),16);g=parseInt(h.slice(2,4),16);b=parseInt(h.slice(4,6),16);}};if(s.startsWith(\"#\")){fromHex(s);}else if(s.startsWith(\"rgb\")){const parts=s.replace(/rgba?\\(/,\"\").replace(\")\",\"\").split(\",\").map(p=>p.trim());r=Number(parts[0]||0);g=Number(parts[1]||0);b=Number(parts[2]||0);}else{// fallback\nfromHex(\"#000000\");}const srgb=[r,g,b].map(v=>{const c=v/255;return c<=.03928?c/12.92:Math.pow((c+.055)/1.055,2.4);});return .2126*srgb[0]+.7152*srgb[1]+.0722*srgb[2];}function pickReadableText(background){const lum=relativeLuminance(background);return lum>.55?\"#000000\":\"#FFFFFF\";}function easingToMotion(easing){switch(easing){case\"easeInOut\":return\"easeInOut\";case\"easeOut\":return\"easeOut\";case\"easeIn\":return\"easeIn\";case\"linear\":return\"linear\";case\"circOut\":return[0,.55,.45,1];case\"backOut\":return[.16,1,.3,1];default:return\"easeInOut\";}}function useIsTouchDevice(){const[isTouch,setIsTouch]=React.useState(false);React.useEffect(()=>{if(typeof window===\"undefined\")return;const update=()=>{const v=\"ontouchstart\"in window||navigator?.maxTouchPoints>0||window.matchMedia&&window.matchMedia(\"(pointer: coarse)\").matches;React.startTransition(()=>setIsTouch(!!v));};update();window.addEventListener(\"resize\",update);return()=>window.removeEventListener(\"resize\",update);},[]);return isTouch;}function safeNavigate(url){if(!url)return;if(typeof window===\"undefined\")return;try{window.location.href=url;}catch{// noop\n}}function parseTags(input){const s=(input||\"\").trim();if(!s)return[];// Supports comma-separated, newline-separated, or bullet-like input.\nreturn s.split(/\\n|,/g).map(t=>t.replace(/^[-•\\s]+/,\"\").trim()).filter(Boolean);}/**\n * Portfolio Project Card (CMS)\n *\n * @framerIntrinsicWidth 420\n * @framerIntrinsicHeight 320\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function PortfolioProjectCard(props){const{title,description,tagsText,cardImage={src:\"https://framerusercontent.com/images/f9RiWoNpmlCMqVRIHz8l8wYfeI.jpg\",alt:\"Gradient 5 - Green\"},videoFile=\"\",lottieFile=\"\",mediaType,projectColor,projectLink,interactionMode,showDescription,ditherPixelSize,ditherIntensity,ditherColor,ditherOpacity,flipDuration,easing,enableButtonHoverInvert,buttonHoverTransitionDuration,buttonHoverBorderColor,buttonHoverTextColor,borderRadius,padding,borderWidth,gap,mediaAspectRatio,imageGrayscale,imageGrayscaleBack,tagRadius,useAutoTextColors,titleColor,descriptionColor,tagTextColor,tagBackgroundColor,buttonTextColor,buttonBackgroundColor,buttonBorderColor,titleFont,descriptionFont,tagFont,buttonFont,style}=props;const isStatic=useIsStaticRenderer();const isTouch=useIsTouchDevice();const tags=React.useMemo(()=>parseTags(tagsText),[tagsText]);const[isFlipped,setIsFlipped]=React.useState(false);const[isHovered,setIsHovered]=React.useState(false);const[isButtonHovered,setIsButtonHovered]=React.useState(false);const effectiveInteraction=React.useMemo(()=>{if(interactionMode===\"auto\")return isTouch?\"tap\":\"hover\";return interactionMode;},[interactionMode,isTouch]);const baseTextOnProject=React.useMemo(()=>pickReadableText(projectColor),[projectColor]);// Back side auto text: when auto would use pure black, use #401111 instead.\nconst backAutoTextOnProject=React.useMemo(()=>{return baseTextOnProject===\"#000000\"?\"#401111\":baseTextOnProject;},[baseTextOnProject]);const resolvedTitleColor=useAutoTextColors?backAutoTextOnProject:titleColor;const resolvedDescriptionColor=useAutoTextColors?toRgba(backAutoTextOnProject,.82):descriptionColor;const resolvedTagText=useAutoTextColors?backAutoTextOnProject:tagTextColor;const resolvedTagBg=useAutoTextColors?toRgba(backAutoTextOnProject,.14):tagBackgroundColor;const resolvedButtonText=useAutoTextColors?backAutoTextOnProject:buttonTextColor;const resolvedButtonBg=useAutoTextColors?toRgba(backAutoTextOnProject,0):buttonBackgroundColor;const resolvedButtonBorder=useAutoTextColors?toRgba(backAutoTextOnProject,.4):buttonBorderColor;const resolvedButtonHoverText=React.useMemo(()=>{// Explicit hover text color (useful when background is transparent or when auto colors are used)\nreturn buttonHoverTextColor;},[buttonHoverTextColor]);const motionEase=React.useMemo(()=>easingToMotion(easing),[easing]);const ditherAlpha=React.useMemo(()=>{const a=clamp(ditherOpacity,0,1);const k=clamp(ditherIntensity,0,1);// Keep a minimum visibility when present\nreturn clamp(a*(.35+.65*k),0,1);},[ditherOpacity,ditherIntensity]);const onHoverStart=React.useCallback(()=>{if(isStatic)return;if(effectiveInteraction!==\"hover\")return;React.startTransition(()=>setIsHovered(true));React.startTransition(()=>setIsFlipped(true));},[isStatic,effectiveInteraction]);const onHoverEnd=React.useCallback(()=>{if(isStatic)return;if(effectiveInteraction!==\"hover\")return;React.startTransition(()=>setIsHovered(false));React.startTransition(()=>setIsFlipped(false));},[isStatic,effectiveInteraction]);const onCardClick=React.useCallback(e=>{if(isStatic)return;if(effectiveInteraction===\"direct\"){safeNavigate(projectLink);return;}if(effectiveInteraction===\"tap\"){e.preventDefault();// On mobile/touch, when flipped the View Project link should be the only navigation.\nReact.startTransition(()=>setIsFlipped(v=>!v));return;}// Hover mode: allow click-through only when not currently in the flip interaction state.\nif(isHovered||isFlipped)return;safeNavigate(projectLink);},[isStatic,effectiveInteraction,isHovered,isFlipped,projectLink]);const onCardKeyDown=React.useCallback(e=>{if(isStatic)return;if(e.key!==\"Enter\"&&e.key!==\" \")return;// Avoid triggering when focused inside the View Project link\nconst target=e.target;if(target&&target.closest(\"a\"))return;e.preventDefault();if(effectiveInteraction===\"direct\"){safeNavigate(projectLink);return;}if(effectiveInteraction===\"tap\"){React.startTransition(()=>setIsFlipped(v=>!v));return;}if(effectiveInteraction===\"hover\"){if(isHovered||isFlipped)return;safeNavigate(projectLink);}},[effectiveInteraction,isFlipped,isHovered,isStatic,projectLink]);const mediaNode=React.useMemo(()=>{const commonStyle={width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\"};const imageNode=/*#__PURE__*/_jsx(\"img\",{src:cardImage?.src,srcSet:cardImage?.srcSet,alt:cardImage?.alt||title||\"Project image\",style:commonStyle});if(mediaType===\"video\"){const url=(videoFile||\"\").trim();if(!url)return imageNode;return /*#__PURE__*/_jsx(\"video\",{src:url,style:commonStyle,muted:true,playsInline:true,loop:true,autoPlay:!isStatic,controls:false,\"aria-label\":title?`${title} video`:\"Project video\"});}if(mediaType===\"lottie\"){const url=(lottieFile||\"\").trim();if(!url)return imageNode;return /*#__PURE__*/_jsxs(_Fragment,{children:[!isStatic&&/*#__PURE__*/_jsx(\"script\",{src:\"https://unpkg.com/@dotlottie/player-component@2.7.12/dist/dotlottie-player.mjs\",type:\"module\"}),/*#__PURE__*/_jsx(\"dotlottie-player\",{src:url,style:commonStyle,autoplay:true,loop:true,background:\"transparent\",\"aria-label\":title?`${title} animation`:\"Project animation\"})]});}return imageNode;},[mediaType,cardImage,videoFile,lottieFile,isStatic,title]);const ditherStyle=React.useMemo(()=>{const px=clamp(ditherPixelSize,2,40);const alpha=clamp(ditherAlpha,0,1);const cell=Math.max(4,px);const dotOpacity=clamp(alpha*(.45+ditherIntensity*.75),0,1);const maxDot=cell*clamp(.08+ditherIntensity*.28,.08,.36);const steps=4;// 4x4 Bayer matrix gives an ordered/halftone distribution.\nconst bayer4=[[0,8,2,10],[12,4,14,6],[3,11,1,9],[15,7,13,5]];const gradients=[];for(let y=0;y<steps;y++){for(let x=0;x<steps;x++){const threshold=bayer4[y][x]/15;const dot=Math.max(0,maxDot*threshold);if(dot<=.05)continue;const color=toRgba(ditherColor,dotOpacity*(.3+.7*threshold));gradients.push(`radial-gradient(circle at ${(x+.5)*cell}px ${(y+.5)*cell}px, ${color} 0 ${dot}px, transparent ${dot+.5}px)`);}}return{backgroundImage:gradients.join(\", \"),backgroundSize:`${cell*steps}px ${cell*steps}px`,backgroundPosition:\"0 0\",mixBlendMode:\"multiply\"};},[ditherPixelSize,ditherAlpha,ditherColor,ditherIntensity]);const mediaGrayscaleFront=React.useMemo(()=>clamp(imageGrayscale,0,100),[imageGrayscale]);const mediaTintOpacityFront=React.useMemo(()=>clamp(mediaGrayscaleFront/100,0,1),[mediaGrayscaleFront]);const mediaGrayscaleBack=React.useMemo(()=>clamp(imageGrayscaleBack,0,100),[imageGrayscaleBack]);const mediaTintOpacityBack=React.useMemo(()=>clamp(mediaGrayscaleBack/100,0,1),[mediaGrayscaleBack]);const cardPadding=padding;// For grid friendliness: full width; auto height; no absolute overlay for expanded content.\n// Use motion layout to smoothly grow height when details appear.\nconst showDetails=isFlipped;const inPreviewOrCanvas=RenderTarget.current()===RenderTarget.canvas||RenderTarget.current()===RenderTarget.thumbnail;const flipRotation=showDetails?180:0;return /*#__PURE__*/_jsxs(motion.article,{layout:true,style:{width:\"100%\",position:\"relative\",boxSizing:\"border-box\",borderRadius,padding:cardPadding,border:`${borderWidth}px solid ${projectColor}`,background:projectColor,display:\"flex\",flexDirection:\"column\",gap,overflow:\"hidden\",...style},onHoverStart:inPreviewOrCanvas?undefined:onHoverStart,onHoverEnd:inPreviewOrCanvas?undefined:onHoverEnd,onClick:inPreviewOrCanvas?undefined:onCardClick,onKeyDown:inPreviewOrCanvas?undefined:onCardKeyDown,tabIndex:inPreviewOrCanvas?undefined:0,role:inPreviewOrCanvas?undefined:\"article\",\"aria-label\":title?`Project card: ${title}`:\"Project card\",children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",borderRadius:Math.max(0,borderRadius-2),overflow:\"hidden\",aspectRatio:String(Math.max(.2,mediaAspectRatio)),transformStyle:\"preserve-3d\",perspective:900},\"aria-hidden\":false,children:/*#__PURE__*/_jsxs(motion.div,{style:{position:\"absolute\",inset:0,transformStyle:\"preserve-3d\"},animate:{rotateY:flipRotation},transition:{duration:flipDuration,ease:motionEase},children:[/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",inset:0,backfaceVisibility:\"hidden\",borderRadius:Math.max(0,borderRadius-2),overflow:\"hidden\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",position:\"relative\",filter:`grayscale(${mediaGrayscaleFront}%)`},children:[mediaNode,mediaTintOpacityFront>0&&/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":true,style:{position:\"absolute\",inset:0,background:\"#401111\",mixBlendMode:\"color\",opacity:mediaTintOpacityFront,pointerEvents:\"none\"}})]}),/*#__PURE__*/_jsx(motion.div,{\"aria-hidden\":true,style:{position:\"absolute\",inset:0,pointerEvents:\"none\",...ditherStyle,opacity:1}})]}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",inset:0,transform:\"rotateY(180deg)\",backfaceVisibility:\"hidden\",borderRadius:Math.max(0,borderRadius-2),overflow:\"hidden\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",position:\"relative\",filter:`grayscale(${mediaGrayscaleBack}%)`},children:[mediaNode,mediaTintOpacityBack>0&&/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":true,style:{position:\"absolute\",inset:0,background:\"#401111\",mixBlendMode:\"color\",opacity:mediaTintOpacityBack,pointerEvents:\"none\"}})]}),/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":true,style:{position:\"absolute\",inset:0,background:\"linear-gradient(180deg, rgba(0,0,0,0.0) 0%, rgba(0,0,0,0.08) 100%)\",pointerEvents:\"none\"}})]})]})}),/*#__PURE__*/_jsx(AnimatePresence,{initial:false,mode:\"popLayout\",children:showDetails&&/*#__PURE__*/_jsxs(motion.section,{layout:true,initial:{opacity:0,y:-6},animate:{opacity:1,y:0},exit:{opacity:0,y:-6},transition:{duration:.22,ease:motionEase},style:{display:\"flex\",flexDirection:\"column\",gap,minWidth:0},children:[/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",display:\"flex\",alignItems:\"flex-start\",justifyContent:\"space-between\",gap,flexWrap:\"wrap\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",gap:8,flexWrap:\"wrap\",alignItems:\"center\",flex:\"1 1 auto\",minWidth:0},\"aria-label\":\"Project tags\",children:(tags||[]).filter(Boolean).map((t,idx)=>/*#__PURE__*/_jsx(\"span\",{style:{padding:\"6px 10px\",borderRadius:tagRadius,background:resolvedTagBg,color:resolvedTagText,...tagFont,whiteSpace:\"nowrap\",maxWidth:\"100%\",overflow:\"hidden\",textOverflow:\"ellipsis\",boxSizing:\"border-box\"},children:t},`${t}-${idx}`))}),/*#__PURE__*/_jsx(\"a\",{href:projectLink||\"#\",style:{display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",gap:8,padding:\"10px 12px\",borderRadius:Math.max(10,borderRadius),color:enableButtonHoverInvert&&isButtonHovered?resolvedButtonHoverText:resolvedButtonText,background:enableButtonHoverInvert&&isButtonHovered?resolvedButtonText:resolvedButtonBg,border:`1px solid ${enableButtonHoverInvert&&isButtonHovered?buttonHoverBorderColor||resolvedButtonBorder:resolvedButtonBorder}`,textDecoration:\"none\",outline:\"none\",flex:\"0 0 auto\",transition:`background ${Math.max(0,buttonHoverTransitionDuration)}s ease, color ${Math.max(0,buttonHoverTransitionDuration)}s ease, border-color ${Math.max(0,buttonHoverTransitionDuration)}s ease`,...buttonFont},onMouseEnter:()=>{if(!enableButtonHoverInvert)return;React.startTransition(()=>setIsButtonHovered(true));},onMouseLeave:()=>{if(!enableButtonHoverInvert)return;React.startTransition(()=>setIsButtonHovered(false));},onClick:e=>{// Ensure navigation even if empty #\nif(!projectLink){e.preventDefault();return;}},\"aria-label\":\"View project\",children:\"View Project →\"})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:8,minWidth:0},children:[/*#__PURE__*/_jsx(\"div\",{style:{color:resolvedTitleColor,...titleFont,minWidth:0,wordBreak:\"break-word\"},children:title}),showDescription&&/*#__PURE__*/_jsx(\"div\",{style:{color:resolvedDescriptionColor,...descriptionFont,minWidth:0,wordBreak:\"break-word\",overflowWrap:\"anywhere\"},children:description})]})]},\"details\")})]});}addPropertyControls(PortfolioProjectCard,{title:{type:ControlType.String,title:\"Title\",defaultValue:\"Project Title\",description:\"CMS: bind to a Text field.\"},description:{type:ControlType.String,title:\"Description\",defaultValue:\"A short project description that explains what you built, why it matters, and the outcome.\",displayTextArea:true,description:\"CMS: bind to a Text field.\"},tagsText:{type:ControlType.String,title:\"Tags\",defaultValue:\"Design, Build, Motion\",placeholder:\"Design, Build, Motion\",description:\"CMS: bind to a Text / Multi-select field. Use commas or new lines to separate tags.\"},cardImage:{type:ControlType.ResponsiveImage,title:\"Card Image\",description:\"CMS: bind to an Image field.\"},mediaType:{type:ControlType.Enum,title:\"Media Type\",options:[\"image\",\"video\",\"lottie\"],optionTitles:[\"Image\",\"Video\",\"Lottie\"],defaultValue:\"image\",displaySegmentedControl:true,description:\"Choose Image for CMS binding. Video/Lottie are optional overrides.\"},videoFile:{type:ControlType.File,title:\"Video File\",allowedFileTypes:[\"mp4\",\"webm\",\"mov\"],hidden:({mediaType})=>mediaType!==\"video\",description:\"Optional override. If empty, falls back to Card Image.\"},lottieFile:{type:ControlType.File,title:\"Lottie File\",allowedFileTypes:[\"json\",\"lottie\"],hidden:({mediaType})=>mediaType!==\"lottie\",description:\"Optional override. If empty, falls back to Card Image.\"},projectColor:{type:ControlType.Color,title:\"Project Color\",defaultValue:\"#000000\",description:\"CMS: bind to a Color field.\"},projectLink:{type:ControlType.Link,title:\"Project Link\",defaultValue:\"\",description:\"CMS: bind to the Item Link / Detail Page URL.\"},interactionMode:{type:ControlType.Enum,title:\"Interaction\",options:[\"auto\",\"hover\",\"tap\",\"direct\"],optionTitles:[\"Auto\",\"Hover\",\"Tap\",\"No Flip / Direct\"],defaultValue:\"auto\",displaySegmentedControl:true},// Dither\nditherPixelSize:{type:ControlType.Number,title:\"Dither Pixel\",defaultValue:10,min:2,max:40,step:1,unit:\"px\"},ditherIntensity:{type:ControlType.Number,title:\"Dither Intensity\",defaultValue:.75,min:0,max:1,step:.01},ditherColor:{type:ControlType.Color,title:\"Dither Color\",defaultValue:\"#FFFFFF\"},ditherOpacity:{type:ControlType.Number,title:\"Dither Opacity\",defaultValue:.55,min:0,max:1,step:.01},// Animation\nflipDuration:{type:ControlType.Number,title:\"Flip Duration\",defaultValue:.6,min:.1,max:2,step:.01,unit:\"s\"},easing:{type:ControlType.Enum,title:\"Easing\",options:[\"easeInOut\",\"easeOut\",\"easeIn\",\"linear\",\"circOut\",\"backOut\"],optionTitles:[\"Ease In Out\",\"Ease Out\",\"Ease In\",\"Linear\",\"Circ Out\",\"Back Out\"],defaultValue:\"easeInOut\"},// Layout\nborderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:16,min:0,max:48,step:1},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"14px\"},borderWidth:{type:ControlType.Number,title:\"Border\",defaultValue:1,min:0,max:8,step:1,unit:\"px\"},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:12,min:0,max:40,step:1,unit:\"px\"},mediaAspectRatio:{type:ControlType.Number,title:\"Media Ratio\",defaultValue:1.45,min:.6,max:2.2,step:.01},imageGrayscale:{type:ControlType.Number,title:\"Front Image Grayscale\",defaultValue:0,min:0,max:100,step:1,unit:\"%\"},imageGrayscaleBack:{type:ControlType.Number,title:\"Back Image Grayscale\",defaultValue:0,min:0,max:100,step:1,unit:\"%\"},tagRadius:{type:ControlType.Number,title:\"Tag Radius\",defaultValue:999,min:0,max:999,step:1},showDescription:{type:ControlType.Boolean,title:\"Description\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},// Colors\nuseAutoTextColors:{type:ControlType.Boolean,title:\"Auto Colors\",defaultValue:true,enabledTitle:\"Auto\",disabledTitle:\"Manual\"},titleColor:{type:ControlType.Color,title:\"Title\",defaultValue:\"#FFFFFF\",hidden:({useAutoTextColors})=>useAutoTextColors},descriptionColor:{type:ControlType.Color,title:\"Description\",defaultValue:\"#F5F5F5\",hidden:({useAutoTextColors})=>useAutoTextColors},tagTextColor:{type:ControlType.Color,title:\"Tag Text\",defaultValue:\"#FFFFFF\",hidden:({useAutoTextColors})=>useAutoTextColors},tagBackgroundColor:{type:ControlType.Color,title:\"Tag BG\",defaultValue:\"#000000\",hidden:({useAutoTextColors})=>useAutoTextColors},buttonTextColor:{type:ControlType.Color,title:\"Button Text\",defaultValue:\"#FFFFFF\",hidden:({useAutoTextColors})=>useAutoTextColors},buttonBackgroundColor:{type:ControlType.Color,title:\"Button BG\",defaultValue:\"#000000\",hidden:({useAutoTextColors})=>useAutoTextColors},buttonBorderColor:{type:ControlType.Color,title:\"Button Border\",defaultValue:\"#FFFFFF\",hidden:({useAutoTextColors})=>useAutoTextColors},enableButtonHoverInvert:{type:ControlType.Boolean,title:\"Btn Hover Invert\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},buttonHoverTransitionDuration:{type:ControlType.Number,title:\"Btn Hover Dur\",defaultValue:.18,min:0,max:1,step:.01,unit:\"s\",hidden:({enableButtonHoverInvert})=>!enableButtonHoverInvert},buttonHoverBorderColor:{type:ControlType.Color,title:\"Btn Hover Border\",defaultValue:\"#FFFFFF\",hidden:({enableButtonHoverInvert})=>!enableButtonHoverInvert},buttonHoverTextColor:{type:ControlType.Color,title:\"Btn Hover Text\",defaultValue:\"#FFFFFF\",hidden:({enableButtonHoverInvert})=>!enableButtonHoverInvert},// Fonts\ntitleFont:{type:ControlType.Font,title:\"Title Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"18px\",variant:\"Semibold\",letterSpacing:\"-0.02em\",lineHeight:\"1.15em\"}},descriptionFont:{type:ControlType.Font,title:\"Description Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"14px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.35em\"}},tagFont:{type:ControlType.Font,title:\"Tag Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"12px\",variant:\"Semibold\",letterSpacing:\"-0.01em\",lineHeight:\"1em\"}},buttonFont:{type:ControlType.Font,title:\"Button Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"13px\",variant:\"Semibold\",letterSpacing:\"-0.01em\",lineHeight:\"1em\"}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PortfolioProjectCard\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"420\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicHeight\":\"320\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PortfolioProjectCard.map"],"mappings":"8SACkP,SAAS,EAAM,EAAE,EAAI,EAAI,CAAC,OAAO,KAAK,IAAI,EAAI,KAAK,IAAI,EAAI,CAAC,CAAC,CAAE,CAAC,SAAS,EAAO,EAAU,EAAM,CAClV,IAAM,GAAG,GAAW,GAAA,CAAI,KAAK,EAAE,GAAG,EAAE,WAAW,OAAO,EAAE,CAAC,IAAM,EAAM,EAAE,QAAQ,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,EAAM,QAAQ,EAA8E,MAAM,QAAzE,OAAO,EAAM,EAAoE,EAAE,IAA1D,OAAO,EAAM,EAAiD,EAAE,IAAvC,OAAO,EAAM,EAA8B,EAAE,IAAI,EAAM,EAAI,CAAC,GAAG,EAAE,WAAW,MAAM,EAAE,CAAC,IAAM,EAAM,EAAE,QAAQ,OAAO,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,EAAM,QAAQ,EAA8E,MAAM,QAAzE,OAAO,EAAM,EAAoE,EAAE,IAA1D,OAAO,EAAM,EAAiD,EAAE,IAAvC,OAAO,EAAM,EAA8B,EAAE,IAAI,EAAM,EAAI,CAAC,IAAI,EAAI,EAAuS,OAAlS,EAAI,WAAW,GAAG,IAAE,EAAI,EAAI,MAAM,CAAC,GAAK,EAAI,SAAS,IAAG,EAAI,EAAI,MAAM,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,GAAM,EAAI,SAAS,IAAG,EAAI,EAAI,MAAM,EAAE,CAAC,GAAM,EAAI,SAAS,EAAiJ,QAA1G,SAAS,EAAI,MAAM,EAAE,CAAC,EAAE,EAA0F,EAAE,IAAhF,SAAS,EAAI,MAAM,EAAE,CAAC,EAAE,EAA4D,EAAE,IAAlD,SAAS,EAAI,MAAM,EAAE,CAAC,EAAE,EAA8B,EAAE,IAAI,EAAM,GAAzK,cAAc,EAAM,EAAwJ,CAAC,SAAS,EAAkB,EAAM,CAC33B,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAQ,GAAG,GAAO,GAAA,CAAI,KAAK,EAAQ,EAAQ,GAAK,CAAC,IAAI,EAAE,EAAO,EAAE,WAAW,GAAG,IAAE,EAAE,EAAE,MAAM,CAAC,GAAK,EAAE,SAAS,IAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,GAAK,EAAE,QAAQ,IAAG,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAG,EAAE,GAAG,EAAE,WAAW,GAAG,EAAG,EAAQ,CAAC,OAAQ,GAAG,EAAE,WAAW,KAAK,EAAE,CAAC,IAAM,EAAM,EAAE,QAAQ,UAAU,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAM,IAAI,CAAC,EAAE,EAAE,OAAO,EAAM,IAAI,CAAC,EAAE,EAAE,OAAO,EAAM,IAAI,CAAC,CAAE,MACtd,EAAQ,SAAS,EAAG,IAAM,EAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAM,EAAE,EAAE,IAAI,OAAO,GAAG,OAAO,EAAE,QAAgB,EAAE,MAAM,QAAM,GAAK,CAAC,EAAE,MAAO,OAAM,EAAK,GAAG,MAAM,EAAK,GAAG,MAAM,EAAK,EAAG,CAAC,SAAS,GAAiB,EAAW,CAAyC,OAA9B,EAAkB,CAAqB,EAAE,IAAI,UAAU,SAAU,CAAC,SAAS,GAAe,EAAO,CAAC,OAAO,EAAP,CAAe,IAAI,YAAY,MAAM,YAAY,IAAI,UAAU,MAAM,UAAU,IAAI,SAAS,MAAM,SAAS,IAAI,SAAS,MAAM,SAAS,IAAI,UAAU,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,UAAU,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,QAAQ,MAAM,WAAY,CAAC,CAAC,SAAS,IAAkB,CAAC,GAAK,CAAC,EAAQ,GAAYA,EAAe,EAAK,EAA0W,OAAxW,MAAoB,CAAC,GAAU,IAAS,OAAY,OAAO,IAAM,MAAW,CAAC,IAAM,EAAE,iBAAiB,GAAQ,GAAW,eAAe,GAAG,EAAO,YAAY,EAAO,WAAW,mBAAmB,CAAC,CAAC,QAAQ,MAA0B,EAAW,CAAC,CAAC,CAAC,CAAC,CAAE,EAAoD,OAAlD,EAAO,EAAE,EAAO,iBAAiB,SAAS,CAAM,MAAY,EAAO,oBAAoB,SAAS,CAAM,CAAE,EAAE,CAAC,CAAC,EAAS,CAAQ,CAAC,SAAS,EAAa,EAAI,CAAK,MAAqB,IAAS,OAAmB,GAAG,CAAC,EAAO,SAAS,KAAK,CAAI,MAAM,CACvlC,CAAC,CAAC,SAAS,GAAU,EAAM,CAAC,IAAM,GAAG,GAAO,GAAA,CAAI,KAAK,EACrD,OAD2D,EACpD,EAAE,MAAM,OAAO,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,OAAO,EADX,CAAC,CACY,CAQ7E,SAAwB,EAAqB,EAAM,CAAC,GAAK,CAAC,QAAM,cAAY,WAAS,YAAU,CAAC,IAAI,sEAAsE,IAAI,oBAAoB,EAAE,YAAU,GAAG,aAAW,GAAG,YAAU,eAAa,cAAY,kBAAgB,kBAAgB,kBAAgB,kBAAgB,cAAY,gBAAc,gBAAa,SAAO,0BAAwB,gCAA8B,0BAAuB,uBAAqB,eAAa,WAAQ,eAAY,MAAI,oBAAiB,kBAAe,qBAAmB,aAAU,oBAAkB,cAAW,oBAAiB,gBAAa,sBAAmB,mBAAgB,yBAAsB,qBAAkB,aAAU,mBAAgB,WAAQ,cAAW,UAAO,EAAY,EAAS,GAAoB,EAAQ,EAAQ,GAAiB,EAAQ,GAAKC,MAAkB,GAAU,CAAQ,EAAE,CAAC,CAAQ,CAAC,EAAO,CAAC,EAAU,GAAcD,EAAe,EAAK,EAAO,CAAC,EAAU,GAAcA,EAAe,EAAK,EAAO,CAAC,EAAgB,GAAoBA,EAAe,EAAK,EAAQ,EAAqBC,MAAsB,IAAkB,OAAc,EAAQ,MAAM,QAAe,EAAkB,CAAC,EAAgB,CAAO,CAAC,EAAQ,EAAkBA,MAAkB,GAAiB,CAAY,EAAE,CAAC,CAAY,CAAC,EAC9wC,EAAsBA,MAA0B,IAAoB,UAAU,UAAU,EAAoB,CAAC,CAAiB,CAAC,EAAQ,GAAmB,EAAkB,EAAsB,GAAiB,GAAyB,EAAkB,EAAO,EAAsB,GAAG,EAAE,GAAuB,GAAgB,EAAkB,EAAsB,GAAmB,GAAc,EAAkB,EAAO,EAAsB,GAAG,EAAE,GAAyB,EAAmB,EAAkB,EAAsB,GAAsB,GAAiB,EAAkB,EAAO,EAAsB,CAAC,EAAE,GAA4B,GAAqB,EAAkB,EAAO,EAAsB,EAAE,EAAE,GAAwB,GAAwBA,MACpwB,EAAuB,CAAC,CAAoB,CAAC,EAAQ,EAAWA,MAAkB,GAAe,CAAM,EAAE,CAAC,CAAM,CAAC,EAAQ,EAAYA,MACrI,EADgK,EAAM,EAAc,EAAE,CAChL,GAAG,IAAI,IADoL,EAAM,EAAgB,EAAE,CACxM,GAAG,EAAE,CAAC,EAAI,CAAC,EAAc,CAAe,CAAC,EAAQ,GAAaC,MAAsB,CAAI,GAAmB,IAAuB,UAAe,MAA0B,EAAa,EAAI,CAAC,EAAE,MAA0B,EAAa,EAAI,CAAC,EAAE,EAAE,CAAC,EAAS,CAAoB,CAAC,EAAQ,GAAWA,MAAsB,CAAI,GAAmB,IAAuB,UAAe,MAA0B,EAAa,EAAK,CAAC,EAAE,MAA0B,EAAa,EAAK,CAAC,EAAE,EAAE,CAAC,EAAS,CAAoB,CAAC,EAAQ,GAAYA,EAAkB,GAAG,CAAI,MAAgB,IAAG,IAAuB,SAAS,CAAC,EAAa,CAAW,EAAE,MAAO,CAAC,GAAG,IAAuB,MAAM,CAAC,EAAE,eAAe,EAChsB,MAA0B,EAAa,GAAG,CAAC,CAAC,CAAC,EAAE,MAAO,CACnD,GAAW,GAAiB,EAAa,CAAW,CAFslB,CAEplB,EAAE,CAAC,EAAS,EAAqB,EAAU,EAAU,CAAW,CAAC,EAAQ,GAAcA,EAAkB,GAAG,CAAoB,GAAhB,GAAmB,EAAE,MAAM,SAAS,EAAE,MAAM,IAAI,OACzN,IAAM,EAAO,EAAE,OAAU,QAAQ,EAAO,QAAQ,GAAG,GAA4B,IAAnB,EAAE,eAAe,EAAK,IAAuB,SAAS,CAAC,EAAa,CAAW,EAAE,MAAO,CAAC,GAAG,IAAuB,MAAM,CAAC,MAA0B,EAAa,GAAG,CAAC,CAAC,CAAC,EAAE,MAAO,CAAC,GAAG,IAAuB,QAAQ,CAAC,GAAG,GAAW,EAAU,OAAO,EAAa,CAAW,CAAE,CAArL,CAAsL,EAAE,CAAC,EAAqB,EAAU,EAAU,EAAS,CAAW,CAAC,EAAQ,EAAUD,MAAkB,CAAC,IAAM,EAAY,CAAC,MAAM,OAAO,OAAO,OAAO,UAAU,QAAQ,QAAQ,OAAO,EAAQ,EAAuB,EAAK,MAAM,CAAC,IAAI,GAAW,IAAI,OAAO,GAAW,OAAO,IAAI,GAAW,KAAK,GAAO,gBAAgB,MAAM,CAAW,CAAC,EAAE,GAAG,IAAY,QAAQ,CAAC,IAAM,GAAK,GAAW,GAAA,CAAI,KAAK,EAA2B,OAArB,EAAyC,EAAK,QAAQ,CAAC,IAAI,EAAI,MAAM,EAAY,MAAM,GAAK,YAAY,GAAK,KAAK,GAAK,SAAS,CAAC,EAAS,SAAS,GAAM,aAAa,EAAM,GAAG,EAAM,QAAQ,eAAe,CAAC,EAAlM,CAAoM,CAAC,GAAG,IAAY,SAAS,CAAC,IAAM,GAAK,GAAY,GAAA,CAAI,KAAK,EAA2B,OAArB,EAAyC,EAAME,GAAU,CAAC,SAAS,CAAC,CAAC,GAAuB,EAAK,SAAS,CAAC,IAAI,iFAAiF,KAAK,QAAQ,CAAC,EAAe,EAAK,mBAAmB,CAAC,IAAI,EAAI,MAAM,EAAY,SAAS,GAAK,KAAK,GAAK,WAAW,cAAc,aAAa,EAAM,GAAG,EAAM,YAAY,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAArX,CAAuX,CAAC,OAAO,CAAU,EAAE,CAAC,EAAU,EAAU,EAAU,EAAW,EAAS,CAAK,CAAC,EAAQ,GAAYF,MAAkB,CAAC,IAAM,EAAG,EAAM,EAAgB,EAAE,EAAE,EAAQ,EAAM,EAAM,EAAY,EAAE,CAAC,EAAQ,EAAK,KAAK,IAAI,EAAE,CAAE,EAAQ,EAAW,EAAM,GAAO,IAAI,EAAgB,KAAK,EAAE,CAAC,EAAQ,EAAO,EAAK,EAAM,IAAI,EAAgB,IAAI,IAAI,GAAG,EACtqD,EAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAQ,EAAU,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAM,IAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAM,IAAI,CAAC,IAAM,EAAU,EAAO,EAAE,CAAC,GAAG,GAAS,EAAI,KAAK,IAAI,EAAE,EAAO,CAAS,EAAE,GAAG,GAAK,IAAI,SAAS,IAAM,EAAM,EAAO,EAAY,GAAY,GAAG,GAAG,EAAU,EAAE,EAAU,KAAK,8BAA8B,EAAE,IAAI,EAAK,MAAM,EAAE,IAAI,EAAK,MAAM,EAAM,KAAK,EAAI,kBAAkB,EAAI,GAAG,IAAI,CAAE,CAAE,MAAM,CAAC,gBAAgB,EAAU,KAAK,IAAI,EAAE,eAAe,GAAG,EAAK,EAAM,KAAK,EAAK,EAAM,IAAI,mBAAmB,MAAM,aAAa,UAAU,CAAE,EAAE,CAAC,EAAgB,EAAY,EAAY,CAAe,CAAC,EAAQ,EAAoBA,MAAkB,EAAM,GAAe,EAAE,GAAG,EAAE,CAAC,EAAc,CAAC,EAAQ,EAAsBA,MAAkB,EAAM,EAAoB,IAAI,EAAE,CAAC,EAAE,CAAC,CAAmB,CAAC,EAAQ,EAAmBA,MAAkB,EAAM,EAAmB,EAAE,GAAG,EAAE,CAAC,CAAkB,CAAC,EAAQ,GAAqBA,MAAkB,EAAM,EAAmB,IAAI,EAAE,CAAC,EAAE,CAAC,CAAkB,CAAC,EAAQ,GAAY,GAE1/B,GAAY,EAAgB,EAAkB,EAAa,QAAQ,IAAI,EAAa,QAAQ,EAAa,QAAQ,IAAI,EAAa,UAAgB,GAAa,GAAY,IAAI,EAAE,OAAoB,EAAM,EAAO,QAAQ,CAAC,OAAO,GAAK,MAAM,CAAC,MAAM,OAAO,SAAS,WAAW,UAAU,aAAa,eAAa,QAAQ,GAAY,OAAO,GAAG,GAAY,WAAW,IAAe,WAAW,EAAa,QAAQ,OAAO,cAAc,SAAS,MAAI,SAAS,SAAS,GAAG,EAAK,EAAE,aAAa,EAAkB,IAAA,GAAU,GAAa,WAAW,EAAkB,IAAA,GAAU,GAAW,QAAQ,EAAkB,IAAA,GAAU,GAAY,UAAU,EAAkB,IAAA,GAAU,GAAc,SAAS,EAAkB,IAAA,GAAU,EAAE,KAAK,EAAkB,IAAA,GAAU,UAAU,aAAa,EAAM,iBAAiB,IAAQ,eAAe,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,OAAO,aAAa,KAAK,IAAI,EAAE,EAAa,CAAC,EAAE,SAAS,SAAS,YAAY,OAAO,KAAK,IAAI,GAAG,EAAgB,CAAC,EAAE,eAAe,cAAc,YAAY,GAAG,EAAE,cAAc,GAAM,SAAsB,EAAM,EAAO,IAAI,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,eAAe,aAAa,EAAE,QAAQ,CAAC,QAAQ,EAAY,EAAE,WAAW,CAAC,SAAS,GAAa,KAAK,CAAU,EAAE,SAAS,CAAc,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,mBAAmB,SAAS,aAAa,KAAK,IAAI,EAAE,EAAa,CAAC,EAAE,SAAS,QAAQ,EAAE,SAAS,CAAc,EAAM,MAAM,CAAC,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,SAAS,WAAW,OAAO,aAAa,EAAoB,GAAG,EAAE,SAAS,CAAC,EAAU,EAAsB,GAAgB,EAAK,MAAM,CAAC,cAAc,GAAK,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,WAAW,UAAU,aAAa,QAAQ,QAAQ,EAAsB,cAAc,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,EAAO,IAAI,CAAC,cAAc,GAAK,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,cAAc,OAAO,GAAG,GAAY,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,UAAU,kBAAkB,mBAAmB,SAAS,aAAa,KAAK,IAAI,EAAE,EAAa,CAAC,EAAE,SAAS,QAAQ,EAAE,SAAS,CAAc,EAAM,MAAM,CAAC,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,SAAS,WAAW,OAAO,aAAa,EAAmB,GAAG,EAAE,SAAS,CAAC,EAAU,GAAqB,GAAgB,EAAK,MAAM,CAAC,cAAc,GAAK,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,WAAW,UAAU,aAAa,QAAQ,QAAQ,GAAqB,cAAc,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,cAAc,GAAK,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,WAAW,qEAAqE,cAAc,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,GAAgB,CAAC,QAAQ,GAAM,KAAK,YAAY,SAAS,IAA0B,EAAM,EAAO,QAAQ,CAAC,OAAO,GAAK,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,SAAS,IAAI,KAAK,CAAU,EAAE,MAAM,CAAC,QAAQ,OAAO,cAAc,SAAS,MAAI,SAAS,CAAC,EAAE,SAAS,CAAc,EAAM,MAAM,CAAC,MAAM,CAAC,MAAM,OAAO,QAAQ,OAAO,WAAW,aAAa,eAAe,gBAAgB,MAAI,SAAS,MAAM,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,IAAI,EAAE,SAAS,OAAO,WAAW,SAAS,KAAK,WAAW,SAAS,CAAC,EAAE,aAAa,eAAe,UAAU,IAAM,CAAC,EAAA,CAAG,OAAO,OAAO,CAAC,CAAC,KAAK,EAAE,IAAmB,EAAK,OAAO,CAAC,MAAM,CAAC,QAAQ,WAAW,aAAa,GAAU,WAAW,GAAc,MAAM,GAAgB,GAAG,GAAQ,WAAW,SAAS,SAAS,OAAO,SAAS,SAAS,aAAa,WAAW,UAAU,YAAY,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,GAAK,CAAC,CAAC,CAAC,EAAe,EAAK,IAAI,CAAC,KAAK,GAAa,IAAI,MAAM,CAAC,QAAQ,cAAc,WAAW,SAAS,eAAe,SAAS,IAAI,EAAE,QAAQ,YAAY,aAAa,KAAK,IAAI,GAAG,CAAY,EAAE,MAAM,GAAyB,EAAgB,GAAwB,EAAmB,WAAW,GAAyB,EAAgB,EAAmB,GAAiB,OAAO,aAAa,GAAyB,GAAgB,IAA6C,KAAuB,eAAe,OAAO,QAAQ,OAAO,KAAK,WAAW,WAAW,cAAc,KAAK,IAAI,EAAE,CAA6B,EAAE,gBAAgB,KAAK,IAAI,EAAE,CAA6B,EAAE,uBAAuB,KAAK,IAAI,EAAE,CAA6B,EAAE,QAAQ,GAAG,EAAU,EAAE,iBAAiB,CAAK,GAA+B,MAA0B,EAAmB,EAAI,CAAC,CAAE,EAAE,iBAAiB,CAAK,GAA+B,MAA0B,EAAmB,EAAK,CAAC,CAAE,EAAE,QAAQ,GAAG,CACz7I,GAAG,CAAC,EAAY,CAAC,EAAE,eAAe,EAAE,MAAO,CAAC,EAAE,aAAa,eAAe,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,cAAc,SAAS,IAAI,EAAE,SAAS,CAAC,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,MAAM,GAAmB,GAAG,GAAU,SAAS,EAAE,UAAU,YAAY,EAAE,SAAS,CAAK,CAAC,EAAE,GAA8B,EAAK,MAAM,CAAC,MAAM,CAAC,MAAM,GAAyB,GAAG,GAAgB,SAAS,EAAE,UAAU,aAAa,aAAa,UAAU,EAAE,SAAS,CAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,qBAvBlc,IAA4B,IAAqF,IAAkD,EAuBgS,EAAoB,EAAqB,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,gBAAgB,YAAY,4BAA4B,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,6FAA6F,gBAAgB,GAAK,YAAY,4BAA4B,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,wBAAwB,YAAY,wBAAwB,YAAY,qFAAqF,EAAE,UAAU,CAAC,KAAK,EAAY,gBAAgB,MAAM,aAAa,YAAY,8BAA8B,EAAE,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,aAAa,QAAQ,CAAC,QAAQ,QAAQ,QAAQ,EAAE,aAAa,CAAC,QAAQ,QAAQ,QAAQ,EAAE,aAAa,QAAQ,wBAAwB,GAAK,YAAY,oEAAoE,EAAE,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,aAAa,iBAAiB,CAAC,MAAM,OAAO,KAAK,EAAE,QAAQ,CAAC,eAAa,IAAY,QAAQ,YAAY,wDAAwD,EAAE,WAAW,CAAC,KAAK,EAAY,KAAK,MAAM,cAAc,iBAAiB,CAAC,OAAO,QAAQ,EAAE,QAAQ,CAAC,eAAa,IAAY,SAAS,YAAY,wDAAwD,EAAE,aAAa,CAAC,KAAK,EAAY,MAAM,MAAM,gBAAgB,aAAa,UAAU,YAAY,6BAA6B,EAAE,YAAY,CAAC,KAAK,EAAY,KAAK,MAAM,eAAe,aAAa,GAAG,YAAY,+CAA+C,EAAE,gBAAgB,CAAC,KAAK,EAAY,KAAK,MAAM,cAAc,QAAQ,CAAC,OAAO,QAAQ,MAAM,QAAQ,EAAE,aAAa,CAAC,OAAO,QAAQ,MAAM,kBAAkB,EAAE,aAAa,OAAO,wBAAwB,EAAI,EAC1zE,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,mBAAmB,aAAa,IAAI,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,YAAY,CAAC,KAAK,EAAY,MAAM,MAAM,eAAe,aAAa,SAAS,EAAE,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,aAAa,IAAI,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,EAC1Y,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,GAAG,IAAI,GAAG,IAAI,EAAE,KAAK,IAAI,KAAK,GAAG,EAAE,OAAO,CAAC,KAAK,EAAY,KAAK,MAAM,SAAS,QAAQ,CAAC,YAAY,UAAU,SAAS,SAAS,UAAU,SAAS,EAAE,aAAa,CAAC,cAAc,WAAW,UAAU,SAAS,WAAW,UAAU,EAAE,aAAa,WAAW,EACxU,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,MAAM,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,IAAI,EAAE,iBAAiB,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,KAAK,IAAI,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,eAAe,CAAC,KAAK,EAAY,OAAO,MAAM,wBAAwB,aAAa,EAAE,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,GAAG,EAAE,mBAAmB,CAAC,KAAK,EAAY,OAAO,MAAM,uBAAuB,aAAa,EAAE,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,GAAG,EAAE,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,IAAI,IAAI,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAY,QAAQ,MAAM,cAAc,aAAa,GAAK,aAAa,OAAO,cAAc,MAAM,EACn4B,kBAAkB,CAAC,KAAK,EAAY,QAAQ,MAAM,cAAc,aAAa,GAAK,aAAa,OAAO,cAAc,QAAQ,EAAE,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,UAAU,QAAQ,CAAC,uBAAqB,CAAiB,EAAE,iBAAiB,CAAC,KAAK,EAAY,MAAM,MAAM,cAAc,aAAa,UAAU,QAAQ,CAAC,uBAAqB,CAAiB,EAAE,aAAa,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,aAAa,UAAU,QAAQ,CAAC,uBAAqB,CAAiB,EAAE,mBAAmB,CAAC,KAAK,EAAY,MAAM,MAAM,SAAS,aAAa,UAAU,QAAQ,CAAC,uBAAqB,CAAiB,EAAE,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,cAAc,aAAa,UAAU,QAAQ,CAAC,uBAAqB,CAAiB,EAAE,sBAAsB,CAAC,KAAK,EAAY,MAAM,MAAM,YAAY,aAAa,UAAU,QAAQ,CAAC,uBAAqB,CAAiB,EAAE,kBAAkB,CAAC,KAAK,EAAY,MAAM,MAAM,gBAAgB,aAAa,UAAU,QAAQ,CAAC,uBAAqB,CAAiB,EAAE,wBAAwB,CAAC,KAAK,EAAY,QAAQ,MAAM,mBAAmB,aAAa,GAAK,aAAa,KAAK,cAAc,KAAK,EAAE,8BAA8B,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,IAAI,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK,IAAI,QAAQ,CAAC,6BAA2B,CAAC,CAAuB,EAAE,uBAAuB,CAAC,KAAK,EAAY,MAAM,MAAM,mBAAmB,aAAa,UAAU,QAAQ,CAAC,6BAA2B,CAAC,CAAuB,EAAE,qBAAqB,CAAC,KAAK,EAAY,MAAM,MAAM,iBAAiB,aAAa,UAAU,QAAQ,CAAC,6BAA2B,CAAC,CAAuB,EACloD,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,aAAa,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,OAAO,QAAQ,WAAW,cAAc,UAAU,WAAW,QAAQ,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAY,KAAK,MAAM,mBAAmB,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,OAAO,QAAQ,SAAS,cAAc,UAAU,WAAW,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAY,KAAK,MAAM,WAAW,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,OAAO,QAAQ,WAAW,cAAc,UAAU,WAAW,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,EAAY,KAAK,MAAM,cAAc,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,OAAO,QAAQ,WAAW,cAAc,UAAU,WAAW,KAAK,CAAC,CAAC,CAAC"}