{"version":3,"file":"shared-lib.C_lShutL.mjs","names":["useRef","useState","useMemo","metadata","metadata","siteMetadata","metadataVersion","__FramerMetadata__","siteMetadata"],"sources":["https:/framerusercontent.com/modules/VgUrYLyk6f18rgXihg1Y/wFn6xGS7ll4CqL9pMKLX/HoverStrokeCard.js","https:/framerusercontent.com/modules/hGWQ6DoocusTRlKjXbzF/itczqvbEqpED3jEVlLGI/siteMetadata.js","https:/framerusercontent.com/modules/wqAA199ZmICAomF0q4D5/T8n1PJn96X2mETPFRgYQ/augiA20Il.js","https:/framerusercontent.com/modules/3YfYaty5nccs9psoYxYC/nD0Zo7JnT53yEyTvs66D/gB_7CsAfE.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useMemo,useRef,useLayoutEffect}from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * HoverStrokeCard\n *\n * A card that reveals an image and title behind a scattering of animated\n * SVG strokes on hover (or tap, on touch devices). Two independently\n * colored stroke layers sweep in from off-canvas positions, thicken to\n * fully cover the image, then retreat on hover-out — while the title\n * slides into view word by word.\n *\n * Built with Framer Motion only (no external CDN dependencies), so it\n * behaves reliably inside the Framer canvas and once published.\n */const BASE_PATH={primary:\"M-150,-100 C-50,0 50,-50 150,50 C250,150 300,100 400,200 C480,280 500,350 550,500\",secondary:\"M-150,450 C-50,380 60,420 140,320 C220,220 180,150 280,100 C360,60 340,-40 420,-150\"};// Default custom stroke shape — a simple angular checkmark-style path,\n// supplied as the component's out-of-the-box look instead of the generic\n// wavy default. Auto-scaled at runtime via useAutoScale below, same as any\n// other pasted custom path.\nconst DEFAULT_CUSTOM_PATH=\"M 0 0 L 223 14 L 216 123.5 L 285 96 L 99.5 62\";// Default portrait, shown whenever no image has been selected — embedded\n// directly as a compressed base64 JPEG rather than relying on Framer's\n// Image control `defaultValue` (which doesn't reliably resolve arbitrary\n// data URIs) or an external hotlinked URL (which Framer's canvas sandbox\n// tends to silently block). This guarantees something always renders on\n// first drop, with zero network dependency.\nconst DEFAULT_IMAGE_SRC=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdHx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RD84QzQ5Ojf/2wBDAQoKCg0MDRoPDxo3JR8lNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzf/wAARCAJNAfQDASIAAhEBAxEB/8QAGwAAAwEBAQEBAAAAAAAAAAAAAAECAwQFBgf/xAA+EAACAQMDAgUDAgQEBAUFAAAAAQIDBBEFITESQQYyUWFxEyKBFJEjQqHRUrHB8AczQ3IVRGLh8RYkNILS/8QAGgEBAQEBAQEBAAAAAAAAAAAAAAECAwQFBv/EAC0RAQEAAgICAgAFAwMFAAAAAAABAhEDMRIhBEEiMlFhoQUTcYGxwTNCUtHw/9oADAMBAAIRAxEAPwD8UGAIrIQAAAAAADAMAAxDIoAAAADsMKWBgACGAAAAAAAAQAABAAAwpAMAEAwAQDABAxgF0QDEAAAAIB4AGiAYASAwCEIYAIBiAQDABCGACAAAQYGI0AQwATAAABDEAAAAagAFYAAMAAAAAAAGAARoDEMAAAAAAAoABhCGIZKpAMCAAAAAGGAEhhgYVIYKABAMAFgBgBIYKACQGACAb9gAQmMAEIYAIGAAIBiABDEAgGAQsAAAIAABAMTKAQwKEAAAAAAaAAysAAAAAAABgAAADCwAAEUAAAAxDCgAAiAAQyKQDDAAAwCkMqKTe7ePYFCTeIxb+ETayW9JHGMpeVN742PSpaJqFazVxTsLnob2quOIS/36nTpNjQ+vTWsXdC0t4PMlOOZtc4wv6boxeTGTcdJxZb9vPo6VqNdtUbC6m0svpoy2/od1DwxqdSpSi7WsoVF54U3USfp9ucP5wfR6149jGkrHQ6c4WMI9Eer7W1x8v8nyMdYvIXDrRua1Oo3vOM3n4OHHn8jObskdLOHH729qv4NvHSlK2pV5ygsNypdEZfGWZR8D6/KEZwsuqMvSayvweetTvq2eqtN53b5TLpXdzSS6bupHG6Smy65/1n/3+qXLh/Stanhq+t6sqdZUnNcw6nF+2G1jPszzbmyubPqVem47YyuOd/g9+jqVev0fVuKjcFiMqs85X7nfCdtUqdVRQnOSXUoSeHjh+uTUyznbFuF+q+OoWd1cxzbW1asu/wBOm5Y+cCnbTpwqfVhOE4NJxlFprPqmfc6ZQsKFz9WVnC4p5acac3Fte6Txk9q6n4c1GCoydzQpTW9OtD6kMeiy+qL90/wc8vkZY5a8br9Wpx4a/M/KIRUlLnKWV7+v9BThKEnGcZRkuVJYZ9rc+A7qFd1dOuI3FrlShPzPD7bcv9vjsePq+nXNq3QuJfWhHalVakpQf+CSe6T7Z29O51w58M7rGs3ism3ggwwB3ciDA8AQSAxFCDAwAkRQgEAxAIBgBIDEEIBiABMYigAAAQABQAAAagIZWAAAADAAAAAKYABAAMQUDAAAAAgBiGRQADAAAYCLpU51Z9EI9UsZwicHteHKWmV7yjSvqFStVcsQpxqdMZvOyltnH/buYzy8cbW8MfKyOrwdoFxquqOE6HTQpQcqtSvFqENtm389u59Lq+v2Ph3T3pfh6rKvct5qV/pxcc90uMfsd3jLxJZ6NY0tGsaFCVRLNWMY4hB44ce7+fyfmWZ15znOaSll+XB87ixz+Vf7nJNY/U/5r15ZTix8ce1ahrOpXzxeXlaqo8KU8pHHDMsdOWzZ0o9XQ1FNcdj1bKcIxzTcac9svHJ9D8OM9R5Lcsvt5dO2l1dVaMoJYfl3Z0U6tpR/6a6s8yjku/8Arp/xFv2fUedPrW7z+S9pvT2IXVvKGJUYOL/mW+AVpb3O9CCb9KcsP9jxoSxNSScd98cHVQn97Um4yzyieJc3RO1+m30zba26ZLDRKVSLXXTwu04t/wCZ6tCdSaj+qX1YfyVopOcf7r/ex0Tt408pdPVLeKx9lX+zNeLleXV082nd1bdxlKUnF+WcWexbXVWpjr/i0/X+/wDdHmUqlL68qTS+nP7ZQkvK/U9LTMWdZ0urMEmpRl6f6mbiXk/V9N4f1N0JNUqsouLUvptrKXv6x/y/qfT6vp9pq1rK7jGEoyWK9GTz075zF9uM+j9nufDVKUKqVWnLonCSaa2az7/7z+59Rot66ls6NT7Ksd2k/ta+Oy+ODxfI+L/c943WUb4flf2ru9PzTXPDdWyv6lN/ZT3l1RjKcVh74feO635R4Nxb1Lap0VEt1mMo7qSfDT9D9Tuq1a11H6dbFSiniPXHLinzh/7ymeL4r0GK0udaNtGlVpv6kfovNOUW93Fds7Nx7PdcvG8OfPCzHlj13DDlly46+BEaypqNGMpN9UntH/0+v7mZ7N7eazSQGIqEAwYCFgYASDGIoQDEAgGIBAMQQgAAAQwKEIYigAAA1AAKwAAAAYhoAAYBQhgBFIYhgAABAwAAoAYEAMQwAulTnVqRp04uU5PCiuWyRpEqx7Vh4X1K9q04UqOXP036P+70PS1q00vwvQo0rW4jeasn1VKkN4U/j+561rRl4f8AC0L66rRp1akX+npQTzOT265PZtpbLsj8/uq861WVSTc5N5cpcs8PHlnzZ27/AAz+XtzmPFj6nuitWnPNSbzKTy8mEbiUJZUhqpnKlxjDwZzg1ul1L1R7ZHkt+2/W8Nx3WAo1pU3mEn0vZxbz+xzQk4vDWUW0sZjzndF0m3qq7l0Yf30ns093El9PT10MJt8+n4PPoucJZg9/8z0LaKqt9KfVjeK5+USY66Yyy9JzUm/4kU890ka/QU8Ois4WXFrD/B2QtPp/ct13i8/0NakbepRePMuJbqUX6NHRwuXv0en3tO2Se/05bVINbwfqa6lc0ailFT+1pSi08ZX91zk8K5rKtmWcVeG1xJHL+pqOCTbfRxnt/v8AuRZx/bqqVp/USqS/ix26l/NF8HfdXuaFKvTk1OEo4a/b+37Hh1Zt9D9sGzrNWTpPvLK+CN3F9PQ1JStXUy3LyzS9Ox16RrblcKk6v3dOadT0/wBtY/LPjre4cYdOdmsMvT6kvqN58sG17ck0nh6fp9TUaGp2fRWzGvT2z3j+fTJ3aPqlGtR/R3vT9Oa+m+qKXQ29s+z4/Z9z84q39SFdVqT+574zysJtf5mun6o1cTy30OGMN7tehw5uDHlw8a1w3Liy8sW3ibw9LTI1n0uUYVFCE3w4S3WX6rDX5R867eUaUqkt4JfbKLypPPB+seDLq1v6NawvZfWTScIyWcY7/wCTPM8Q6G4vU7C4jKt00v1FrcKnFP7XjpbjysNrf0PDxfN8c7w8nc/mPpZ8Mznnj9vzPAi2scoln1XiIQwCJYDwJgAmMRQhFCAQMGDAQmNiCAQxAAhgwEAAaAAABoAAVgAAAMAAAQwAKAGBFAIBgIBgRQMQyAABgA8AhkVVKCnLEqkYLGcyyfSeF9Ks6leV1fw+tY0E5Van3QjlcR7Zb9EeNpFC3r3X/wB5KSowi5yUXjqxws9svCyfp+qw/wDprweri7p0at3cYUKKjiFvBp4UV29W+Xk8Xy+bx1hO69Xx8J+avznxTr9TW7+VTH0qEF0UaWF9sVsjwnJPZsqq25OUmst54MWsvZZPVx4TDGYxxzyuV3T3W6ZSms94v+hm445/ZC3fB0057auOd8ocE++69zOO39zel1YxlZ+B6S7rWlBdWXB4O2VHoSnTqyXdNpnNTpyfnl1R9DojZ1N+hzw/6jyjNwtbrUajhh9EZraWOH/v+hyVpVHU6o5T7p75O2jpNWck03L8Ht2OgTl0pxzjjYnkeExfIyoynNy6X927D9NNpvp37n6RQ8KxxmUfxg64eFqSSTgNpcn5W7eTxthL1JlSeyw3g/UqnhCnKP2rD+Dy7rwhVTail+w2TKPz5Qa6tsZRrRi4KbW+Vg+qr+Fa1JKSi5J+h5d5pFajs4P9iba9PKqVm6sEm+lJL/QIVOnjzJ4/C/8AkdW3nGeHz8GVZNVZJZ6ljYvZNPr/AA5cVLTULapCab+l1SWfZ8s/TdYn+q0dXdGOJU6DnKWEkotrKb9f8z8W0SvCldwVxlQyk48Z9n7H7Z/4nRreHq9eEYSt1bYdOG/C4e3pnsfnP6lhcOfDLT7HBnMuL0/A6qkpyUm202sshnXeVaE69SVODxKTcYraMcv+uDkP0ON9Pl5dkIeANMpAYmAgGIBCaKEwJAYihCKECkIYBCAAAQMYigAAA0AANMAYhgAwAAGAEUAAwpDACAABkUAAwEUhDAEMAIrSjJU61Oo4qahJScZcPD4Pu/F2qXF34F065vKUY1ruvJQwvLTW/wDU+Is49VeMPpRqSn9sVOXSk/Vs+j8e1ZR0nQbaVWE4xoylF01iPTlJNL3wzx8+Ey5uP/P/AA9PFbjx5V8bKfwZSm+MjkTjJ7Y81Lk06OwU4vqOunSz2JllprHG1lSo9TPVs7FSx9pjRp/ctj3dNisr2OVy27eOhR0zCWx6NrYY9kdtCmnFY7HZRgibYrWx0+GE5JPfg9y1t4xSSSRyWi3PUorZFcso6KdNehrGmuMDpxyjohHc3HK6FKin2NHaxa8qN6EV6HT07GpGLXj1rKnKMlKKw/Y8u80ijWThOEWpcZR9NOCOatTXOCUflfivQFZpzpxzGXdLdHw11a9Mup+V/wAyP3HxLZu506pHHU0vTlH5krWDjKNSPlnun/n8cMsPPT5iinb1oSf3Qz24Z+0+GXZX3ha7WlTlRrfRbbSScJY2Py+509Rm1HCecY9fdf79T7b/AIdSdTSdQjbvF1Gk4tNdWdttu58n+rce+OZz6sfR+Dy+W8X5vqLpRvKkVQj1ReJ4bScu7SXbJyVJRklinGOPRs+v8Q6RTqWqvbSp09WHXo5bVN7rq9YxbWN+MYZ8jXpSpSSljfhqSaf7Hv4eSZ47jPLhljlds2iShM7OJCfAxFQmAxMBMQ2AEsRQihCGIBAxiCEAxADEMRQAAEGgxAbYMAABgABTAQyKBiGQIYAFMAAgBiGA0MSGFCGCGQOm1GSk4xkl2ktme745lXq0NGuLlRUqto5KKXlXU8L5xg8H4PpvGqUvD/h6e/X9Koptyy85TeffL/07HDkuuXD/AF/2d8PfHk+LNaNNzlssmXc7rFb7nbK6jlhN1pStsby5Z0Rhg3xsQ1uee5WvXMZDhHhnq2Dw0kjzqWNsnoWW0vyWJk9+0eU/6noU1x+5wWW/7nqUIZW3Y04ZO21e6yepQlsjzaCx25O+i8KOfUsc8npUpLOV+DopvfscdOWV79jqoyT/ACbjlY7aTwtzbKzyc8NjXJrbFi2YVlt8GqexnVeewqSOK6h1UZJrOUfl/iG3/TXNVwaXVws8+x+q1f8AlvHZH5h4488sbN8e4jN7fNxvI1HTed1Pp2XB9L4KrO1uL+tSwl9BuS4biufbjP5R8RZp9FXqeeHt6n2HhatUtp3rpUVXcraTVPlSxyv2PL87Hy4LHq+HrHmjwIeIbiGqUatWp129PqpP7UpSpS2effbPszxL63laX1e3qPqlTqOLkv5t9n+Vv+QvKkK1xVnTpKlCUm1TTz0+xNarUrz6603OeEup84SSX9EjrhhMeo65ZW9shDA6MExDEyoQMYmESwGIBCYwYEsBsRQhDEEAhiABDABMAYAaDEM2wAQAAwAYWAAAigBgQAAhkUAAAMaEMBgAEUxoASyFNHt69QlT8L6TJ1fqKVSpJ75UW8PHJ4iPVuYVLjwwq1SUVC2qqnShHbOcuUn69lk48n5sbv7duPrKfs+cxuddo/uRynVZLNRex1y6c8O3qrgljyZ1K0Kb3e/oebW69dsjamnng77SXTNN8HmUr2ku52Ub2h9v3Y9jpMa53OPpLGtj9z3baaks7bcnyNtXi0uia3e+57FjeNZTZdOWWq+poxTivg0Tw2cNlcpxSysehtKr1R2Zpy+3fRq5lyelbr+vB4dtUWE28PJ6Ku4RSbkkvk1jHLKvaptYL22Pl7rxLZ2q+6vTb9MnE/G1u3/Dw165Omo5br7XKIn7nx9PxdGq0sRfwz2tO1uhfZpuajU7LPJmwld1V5i0fl3jDNSvUg/NF8n6c5ZR8B44s3RuYXCT+nLOTMq2fb4V0lThOPD6s8HraPWnQtL+rT6vtt5Z6Xhr3XujhusSk3jDaxnsje2+3RdSrOcoNRiupLht/wCvBj5H5Nf4d/i/9Tb5l5cm5PLbyxMFugNOhCGBRLAYmEJiY2IqEIYMBMQxAIQ2BRIMYgEIYBCAAATAGAGgwA2wBoQwGIBhQADIoAAJQDEMgBiGFAwABoEA0RTQ1sIZFgPc0rNzoOqWii24UlVTb4w+yPDPe8HylU1Kdpn7LijODTeMtxaX57L5OPP6w3+nt24Pz6/V8qd+mwy2zjqU5UqkoSWJRbTTPQ01fwm/c6Z38LPHPxe2l1V+jTyuex5kpTm8tvc9C8i5yS7IzhCEN8IzjdRrKbriUKsvKmDjWhymepTvKNJcdXwD1S1mumVLD9cZOktrllqOK3uqtOXMj2rHVnF4k8r5PLufprLjFZTw44aa+UzCM12GVMZL7ffaXqilPHVjOx9DZTdaLx+D8wsK04Vo4b5P13wna/WoQclzyYl3dLyTU28+7ualvF4T+D5/UL68uF003Ln/AEP0XUtIpyTzFHxOrThaymlHCWeO5renHG+T5OppV5WmnKePdvg9Kx8NXE+nFZL2R5d/qtzLqlQ2iu6/uc+la/ezrdLu40cRcuqbe+FxxyXHdM5JH3lr4UuYRy60ZRxuscjq6Xf2dRVlhdPdcnn2XifUrNW7uliFaClD6iwpp8bo+v0jV6Oq0nmGJp4nB8xZq3XquGrrcdmh3c7q1TqZVVLEkcXja3VbRZz/AJqbyj1be3hSmp0449cdzLXqf1dJuY4ziDZn7a+n45OLlQ6m990dsemHhO7qVJwi61SMVF8vHp/v/IxdLpUor1+Tv1XQdRu9PsLfT7OpcSp05VajhjCy9l7v+5z+Rd3HH9/9no+LNeWT44Rtc0K1rWnQuaU6Vam+mcJrDi/RoyNStJYDAokQwZUIQ+2BMoQmNiYQhDYAIQxMBCGIoBDEEIAABMBgBoAAbYAxD7AAAADGIAsMAAzVCGIZFMBDCAYhhTQxARVDJGFNH1+j2Vl4eq2l/qtzcK9lGNWFpbQTcKb465Phtdlvg+VtIKpdUYSxiVSMX1PC3a5Z9X4hpq68RanUm2/48orfhLZf0R5PkZf9t6r3/B+Llz5W4/T5/wAVVrG61Kpdacpwp1ZOTpzjhxZhp21BP1bDUaHRSlL8pjsf/wAaBvHU45I5542ct32qqu5xV+qTwuEehUWxg6TfCLjlpnLFzUaMpJptbrHBu9JqVpqUHDO2Usm1Ozrt/av6npW1O7pxw5pfg6zKuNwjgvrCcLTFSSnWcnOdSUt22eTTjJSw+x7d+ptNzm2zy402pZFyMMNOi0X8SL9z9o8GVFG3orPZYPxmgsSj8n614Oq5tqWXhpbnPH8zfLPwPtqqU+pPc+G8YaRGpSl9JJdXmfdfB9tGW/Jje2cLul0zW/Y6vFPV2/F6dhSUvo7tRfEng9XTvDWlTqKdSlHD5zN7+p9hdaJSUmqtGE9+cCoaLaZzGDXt1Em5W7ljYzraPp17SjCovqpJKEZbqK9MG2neHYWVSNShwlw3/T4PZsrKjSSUY/1PRjSSWxb77cp69RyxpSUEmY3cFO3qQf8ANFo9CSwjhuO5jpY/PvC2hvU9QuHU2o28k5fO/wDY+t1rUaehWcf0ln9bfttGPuxeDrGorjVKcE4qrctttbYX/wAnpeKbaCsZw6U107F5Py7j0fFkucmXT8y/4lqlf0NL1unTUJ3EZ0a2O8o7p/OG1+D4Q/Q/FtuqngW3qp4dtfYxjnqWP9D87Zjiu8XbnxmOdkAhiOjkQMAZpCENiCExMYgEAdgAQhiKEAAwEIYggEMQCYDADQAA2wAQAAwQAADAAoGhDIpoAAyoGAAA0IYDAAAY0SMiu/Q4OetWEFy7mmu3+Jep9A5Snd3kqixN1Zt/OWfJ0ak6VSFSnJxnBqUWuzW6Z9hqNSFapHU7ZNUL6DqYa8tRbVI/iW/w0eL5WPuV9z+jcuOGWWN/R4WodMqMo8t+hzWi6aEIvlI3pv6s9yJYjUklwmawvrxc/lcetcn6ray0ddpSjJ7o5Tqs54ksljy329ilbRUeCK1PpRpSrZRNeX2nSOOnh6g1HJ5yOvUp7vc46cuolbmnVZ0nVrRR+m+GEqdKEfY/NLHP14pep+heHqjUYZzt/UuMZ5L6fc0pTaTXB1U55WGc1j91LZLbk13jLjc7aeG3YuendNZOKVNJ/au5nUv4zqOLwpJ4ZpSqqeMMm9teOu3RQTPQpxeNzjt0tsndH7YmpGMqirhR2PKupYe7welWeO+x5F/LpMZJHm2lxdWOpyqqq40KqzFLh74f9T29VmrrSZ1fSLPLuKSq6RatrElmWe+GzvsKTraaqMt+uaWPYxfW49vHZrHJ8D41rQsfBlKynj6t1cqai1ulHdv/AC/c/NT6Lx7qq1TxFX+jJ/prb+BRT9Fy8e7yfODjx8cTlz887QIYjpHICGIqAQMQAIYgEACKATAAExDEAmA/wIIBDfyIAxkBMANQADbAAAAYAADAAChDEMigYhkAMQEDGhAAwAApjQgApH1HhKb1Czv9Hm5SmqTubVcqM4LMkvTqjn9j5ZHoaBqMtJ1e1voJN0aik01lOPDX7ZOPPhcuOydu3DyXjzmUVT6qdaSUW0u5nOSdVuLymfS+J9PpWV9Ulavqta8VVt5f4qct1+3H4PmKtPofVFPd7nn4splNvpfK8vGT6dEdzSnLpmjCEtkNyOmnll9PXo1u79Ar10ocnmwq4XJjdXDccI3Ga5b6t11HgVt/y2/cw3k22XGTp8rbkuvWmXXQr/SrKXoz7bR9Rh9KDi1k/N81HVypPfsz3NM/VKKkoSjHb7uxZjpjK7j9k07V/o2uVJZfquDutNSoXKyqkW/Zn589MuNVsFRVWr9Pp36ZY6vnBv4R8KahaXUl9Z0qHVv1PLfwjp7eWTH3u+3ua/TnSqzuKKbjnLx6EaXqaqKOZbn1NzYUq1t9LG3ThZPzjUqNXRdT6JJ/Sk8xZizTrjl5Txr9Cs66a9D0HVXS0mfJaPfKrCP3ducntqvlbPKNzL04ZY+3VUqZ5Z4+ozznHKTOyVTOx5l7JvqS4eI/lmd+2a9WytZTsou5hFQUEo/GDh8Sak9H8O3t9GKpyp0nCjF/45fav8/6HvxopUYRy+mKWEz8s/4w6yql1baNRaaopV6+P8bX2x/Ed/8A9jOc6j08d9br84bb5efd9xABsDEwAoBAIIBDEACGIBCGxFAxDEAhDEEDExiYAIYgAAADQAA2wAAAGAhgAAADQxAFMBIaM1TAAIGAhhTQCGADEADGmSMg+vsbqOq+GKVsm3eaZKTcW8uVCTzle0Zcrtk8i9jmm0u2559he3On3MbmzqypVY8Si+3dP1T9D1quvWVRutU0aj9blxhXlGk369HK+E8HkvDcct49Po8Xysbxf283nQew2xVITpzlGcemSecfO6DlHRxi4PJnXWNm92XSeMnJUqOUm/U1EyqkkkPpzwYxbbydVvj+bH5LpNurT9P+rVXWsZ7n3NPS1DSZ/bvKPKR8tY31tbuLliTWNkfXWXijTalCNCpGUXxh+prGuWeGV6beGK8lSdKSfXF9J9ZQm6TeEvjufMUL+zt63XbxU5PnOx71DWLKrD+NDoeN2nk3jXHPiu9x6kb5OOJLfGTx9Wp2up03QuIZjLiS5T9c9mdEriwrr7LmC24ex87rep2ljcR6aqlJcpPOPktsctZbcdmq+kX/AOkry64PenP/ABx/ufV0Kj6c9mfO3yV9aWtamsyhWWH7NPJ79rFxpJSe6W5xrrldzdb5T57bHnXtxCio1Kkkl9SOMvHc7ak3hLj3Pj/+IlaEdFlTeMznFRWed/7F+nPCeWT6/VfF+n6baSrXdVRlj7aSac6j9Ev9ex+IavqNfVtTuNQunH61xPrkorCXol7JHDhZzgZZje69G51DEAGkAhiABADABAACEDAoBAACYmMQAJjEEDExiAQAAAAmAGoABtgAAAAxDAAAAAYhhQMQENmMQEUxiGRQAAADEMAAAAAe4ZDuB3fUjUpUZR8yh0TznlcP9sC74OnSrGVzp97WdSMIUulw6v56j4ivdrP7HGpZWx5/W7Hpm9StI+nqc9Si35Uat4Z0U3Fxy+TUulvt5TdWnnCygVVzf3No9Cqo52xuc6ioVFlbGplGfGqtIRqSp/xUutpbvDR9Pa+HVVhKtK6UelZ7bnJpNe2niNSnTbz3ij6ezsrK5ShUo0sSfStv2NzS5ceWvVdOn+HLSFrWq3N7USpwctp75x6csc9OsH+mjQuLiblJ9coZxFY7/kzs6FBeSKjv8H0VnSs6VFyypTe6SOk9/TheG4+8srXy114durmu40q9WhbRqNRkp/dVXZ+x6cfB9pY27jTjKUpx++Unls+ps4qpPrcVtujouUpJ+hjLTnllr1HzWm2sadGFJrHS8nqJ7YeMIwlTUarxnGSutLO/tg5xzypVJ9CWZZXGx+ZePtRVzqFO2g300U2/l/8At/mff39apVq06VCOak30wx/vsfA+MrOhX1e9/Rpq4tOmFWmt/qRSS617+ovqzbXDN2vlQEM6OoAQEAIAKAQAACYxAIAEwATBgEIAALsmAAEIABgIAAAAQFGoABpgAAAAAMAAAABiGAAAAMBDIpgAE0oGICBjEAAAAFAAAHdqVzUtLXT7WlOKcF+plKHeUntn4S/qzCT+nPbyS3TMNUfVUozUcJ0YJfhYNLWpGtR+nLlcHPWsZXbe8rG6w9yk2lszGLcZOMuV/U1W8dzNblD3FLjfgpe5SpuXbYjTGnN05pxfB7VlrUqGFJtHDSs3J4a/J22+k1ZyTjHPoblYuVj1rfVKc2knNt+x9NpNWVbpyn+TwNO0et1RzT27n1+mWbpQX2YZrbz8mdr2rWTjBLH4Lm1jPCIoweDSS6cpvhZ3JXDpw1Yt+mex5tzcxt6cpt9nvk9G9qKNJrq3x/7Hz1CjLV9QVH/ytP8A5m/L7R/uMYxa9fw7azmpX9eO8k40V6Rzu/z/AJH5b4iunb+M7+4WXGN01Jesdk1+2T9h1TULfRtLq3VZqNOlDaPGX2SPwW5qzvLmpVnvUrVHJ/LZ0k3LtrC6s0L6ire9r0U9oTaT9V2/oYHRqE4VL6tKn5erC/GxzGZ09N7MQAUDAQBAJjbEACAAAQAAgAAEDAGAMXG4AwBiAAEAAUJgMANAADTAAAABiABgIYAMQAMBDABiAKYABADEBFMYgIGAgAYgPas9AqO2V7qdenZWb3Uqj++a/wDTHlmcs8cPdbxwuXTxr2K/R2085bc1x2WP7nHTm4SUovc9/wAUQsKVrp9PTo1Ix6Jzn9SSc221hvHGUs4Pnhx3yx2vJPHLT0oVVXgt8TRUJt7PbHJ5kZOLymdUK6njqeJLuLisy274yzuddpKPViX4PMp1Oz2Zr1tNYfcxcXSZPorZRckk0fSWEY9Ed0muD4mzu2pp5/J9Ba338N7tSLI555PsrCpTb6c75PdoOlJZzFfJ+aWurSVfHCzv3PpbXU8wSi0s7c5Nx5s4+qdSMM8P4W5w3d7CFN7pe7+cHmLUFJxc8ReOWeBfX1xql2rWwaUV56jW0Pj39i6cndcXVbUbl2lpJrH/ADKnKgv/AOuT6Cj+j0bTpVKklSo01luT59/lngyvNO8MaepV6i639yhnM5y9T8+8SeJLzXa2asnTtovMKSey936ssx2T26PGPiet4gvOml1QsaT/AIcP8T/xM8SwxO8pKXl6jlbzsuDs0qvG11G3rzpqcKc1KUHxJd0aylmN06Ya8ptzSeZPfO4j6S/0/SdRrzlo9f8AT1XvG3rNdM/+2Xb4Z89c0K1tWlRuKcqdSLxKMlho44cky9dV6csde+4zAQG2DYgAAEAAAhiYAJjEACGIAEMQADBiAAARQAAAGQEwKNQEMrAAAAAAAAa9wAAAAABiGAAAAAAMKAEMiwAB6mn6Df31N1lTVG3XNeu+iCXyzGeeOM3lW8ccsuo8vJ6OnaLf6jD6lvR/hLzVZtRhH5bOr9Xo2jSxbJ6ncpYcp/bQ/C5keXqmuX+p4jc1sUl5aNNdNOPxFbHPeef5Zqfv/wCm/HDH83t7N1R07w7GNR3NHUNQks06cN6dH3k/5n7Hzl5e3F5Xda6rSqVH3k+PZehzt5Ebww8e7usZZ79T1FzqSn5m2+csgAOjBDEAG1Oq1tLdG8Km2zysc9ziKTa4eCWNTJ3wrLhPC9fQ7I6m4xjHOUtvweQq0lzh/KKjOL5j+xNJfb1Keo43zh5zk9Oz12o8U6anJv8AljHLPAoVbaL/AIlOcvbY9GGtfp44sranSf8Aik+plkc8n1FCjfXcOu6q/pLZJOUnLEmvnhGd94qs9Nt3a6HSjOSWPqtfavder9z4+71C6vN7qvOou0W9l+Dkc/Q1pz8f1dN3d17utKvd1ZVKsuZSZzuWfglblpGmjRcOcmfcuLwis1bk2mj2bC8tNThCx1upKHSsULxLMqf/AKZesf6o8PJSeJLBjPjmc01hyXC+ntX3he9ownXspU760X/Wt5dWPlco8F5Wz5O2z1C60+4+rZ16lKa7weM+zXc9OOr6dqjxrdooV28fq7aOMf8AdDhnn1y8ffufy9My4+Tr1Xz4j3rjwxcuhUutMrUr+2hu50fMl7x5R4UouEmpJprs0aw5Mc+qZYZY9kAAdGCAAIEAAUAgAAEAAAhiYCAAAAARQMAADQYgK5mAhhQMQwAQxAMBDAAAAGAgAYDhGU5KMIylJ8KKyz6Cz8L1I01X1i4p2FBrOJv75L2icuTlw4+66YceWfT59Jt4Sbfoj6DTfCl7cUv1F66dlarmrXl07eqXc2n4h0jRo/T0CxVWsv8AzdysvPsux83qerX2p1fqX1zUrS7KT2Xwjlvm5evwz+XXXHx9+7/D6WepeHNETjp1t/4pdL/r3CxTT9o9z57V9av9Wn1XlxKUV5aa2hBeiS2PNbDJvDhxwu+7+tYz5csvXUGQyIZ2cwIYAAgAAABgIYAAZKUsEjSAtSYdT9QUS1ArNSk2aRiNYE5GmVdhNolvLBbsIpFohFrYrNMIfdPPZCk+yKj9kPcIibzPYbRmnmeTZrhhb6a2t1XtKqq21adKa3UoSwe09ftNTbhr1lGpJ4X6u3ShVXz2kfPBjucc+HDP3e3XDmyw6e9U8NK6pSr6He076C3dLy1Yr/tfP4PDuLetbVZUrilOnOLw4yWGh0qs6U1OlKUZLhp4aPZh4jq16KttWoU7yhtvJYqL4kv9Tn48uH7z+XWZ8effq/w8AR78tIstQcqmkXajJva1rvE/w+GeNc21a0qulc0pU5r+WSwax5McvX2ZYWTf0xBgI3pkAAigAAABMAIgEAAAABVJgAAaAAFYAxDAAAABDEAAMQAMC6VKpVmoUoSnJ8JLc9GOnW9p0y1S4UG91Sp4lL89kYyzmLeOFyebSpzqzUKcJTk+0VlntU9EoWeZ6zdxoRxlUqf3VJf2/JyVNdqUofS02nC1hvlwX3P5keRUqznJucnJvnLOdnJn+0/l0lww/d9FceIqNjCVDQbaNBcfqJrNR/nseBc3de6qOpc1Z1JvvOWTERrDjxw6Zy5MsuzbEMR0YIBgAhiGgAQxAAAADAQAAwDADGmSMC1IrrM0ikisnnI8PuCKSKgS2KQh/BWaaGCXqXGKW8v2DNEI95cEVpbYRcpdjCe/wKYzdOmbvgxpo3fBYmXaBMbFkADAZAKcZOL2yseh7Ntrn1YKhq1BXtDjM3icV7S5PG+BHPPjxz7bw5MsL6fQ1fD9vfU3W0O4VVKLcqM9qi9l6nz9zbVrWq6dxTlTmuYyWGjShcVrapGdCpKEk8pxeD3I69Rv6aoazRjVXCq8Sj75PP48vFf/ACn8vVM+Pk79X+HzIHvXegKpBVdIq/qIYy6bf3r8HhThKnJxnFxkuU9sHTDkxz6Yzwyx7SwAR0ZAADAQAAQAAAIAYAaAAFZAxDAAAAAAAAOi3hRinWunJU1xGPM36L+5nSppp1KkumnHl+vsvcxuKzrTzhRiliMV2Ri+/TcmvdejcazP6cqNlTjbUnhLo8z+ZcnlSlKT3bfyTwVgY4zHpcsrl2QhiNMhgPsLADwJlCKmyFgoRFSNACArAsFY2E0XSbTgB4BoikADAQ9hpJj6UE2QfBXQH0/cqbgQ1+AVPYpUwmyTXqxrLWyGor1RSUVyzSbTj1ZpGD+AUl2QNt8thmqTS2W7E2+RB2Kmg2ZPk0e5m+SNRrTRrIikuMls1HO9oZDLZnIjUNFZJiDIKQ0QmWtygDCGkARrb3Va2eaU3H4Z7VDU7LUlToarRi3x9VPpa/KPAxkXTk48nDjn/l24+fLD/Dp1awp2cuq3uIV6TbWYry+zPOPQoOME4zXVCSxKL7nPd230JZi+qlLyy9fb5LJcfVamUz9xzgAiqAAAAAAIQAAGgABWQAAAwAAAulBSbc3iEd5P0RGM7ImtUyvpxf2p7+7JVn6ivWdVpJYhHyxMu4ikJNLaBLbZlITRUDQmOLzsxtBEpjwT3LQWmlsS0aJbEMrMSDKJZFiRrkTBckaapbCa3LitiWjTG04HgEWgM3EIrsatGb2ZFlDh6B0s0juhl0m2WJB93qaYDCYTaPuDf3NNgxsDaMNlpAvYaKlppD7gJsMnkQAA2ZvzGjZnHeQWOin5QfyOPCEzTmlmcjSRnIjcJclMhMqT23I1r2lS3aNoHNF/cdcFsImXo2Q3gqXBlH7549CsxrFd2NP0QpvGyEmEaZNYOMk6dVZpy5Xp7mCZcWWyWaqS3G7jlrUnRqOD37p+q9TI7q8fqUsd47p/6HCc7NPTjl5TYAAIpAMQAAABYABWTAAAYAgAUpdMXtu+H6GBdWWXj0II0EUSUipTQNCKRUQuTR7rJDWGXHjBIVi+TWG5nJYZpSEL00xsQ/g0fBmaZhEstkvkioYlyU0SjLUb0+CpImkatbG453tgVEUkEdiNNEZzRohTXoKzGcHjY1TRhwzSDEasWIaArJf0AYewQDQhgHwhDYAAwXGUDYRE3hBSW+SJPLwbUkJ21fUa9hNjZDZpzgfczkWyJGWomITewiZvYm252VPeZ2x2icdHzHZxFehcWeTtnUeE2K3T3ZNUuisRH2nUOfKEnuFTzNb/AJEgfS0y0zNMtGozY0i2clxDonlcPg6URcx6qeVyiZTcXjurpyAAM5vQBAAAAABYABWQMQwAM4AmbxEDJvLyAgI0ZcSBxeGWJVtCRot0Q1grImtkxRZS3RnwyLDqLcdLkJ7wTCj5h9n03lwZs0lwZmmMSYYHgCNIaM+DdrYyksEqytKRu+DmpcnUt45NRjLtlNGfBtNGTJVikU+CEy+yKjGaCLLmjLuRqe43TGRDdF9uSsgXcBZAofyiUMIBgBQyJvbkt8e5lUZCJW8jpp8cHPTW50x2QhmGychNiTKzIZDLJYqxDMps1ZjU5M10xXb+Y65s5KHnOmfzsi49MZ9s5b4RrDCW/oZcywa5aWxUqJN9XORLYXLYN4RFVnc0XBjDfk0TLGate5WE4tepCLT3NMuJ7NoRdeOKj9HuZnF6ZdwAABQAABQANFZAxDACKr2RZlU5BO0AAEaNAMHwUVTl2NJLKMFsbQllFlZsTwTNdzSa3yiXugkTHeLQ6HJEXhmlHkkW9NpmXc1qGP8AMaZxWkHwNcAEIzqI1IqrYlWds6fJ2U+DjhyddN7DFOQpIxkbyMZItMSWzNFwZGsSRaUlkxksM6HwYVFuKYqps1wYU+TdFhkh7MWSpIzbIRa3KXBnF7mq4LEoGGRBAzGbNnwYS5JWsV0kdHYypLBq+CxjL3WcnuCE3uNAUSyyJ8lpE9jCpydBhUW5mumKqHmRu3uznov7jWo8JidJlPZw5bKk1x3RNNbA2+6Kz9gnOXsEmEVtkKtbbFJkLd5LT3KzVJ+xaM0ykys1ncryv8HOdVws0/hnKznl27cd/CAACNkAwAoAyBWTQAgADKb+5mpjLzMiwgEMKpLKAIvDKmu64LEQwi2hiawBun1RM3tsTTlhmk1spIds61WT5Lo8kSLpciNXptU4MF5jao9jBclvbGPTdcCYkw5KKQp8AhvgDnWzOqnwjmlydFJkxXPpcjORq+DJ7lrEZvYumRJDg9yN3pt2MapsuOTKoi1nHtnDk6I4xwc8dmbxZIuRTMWzWpwYvkVcVwNkZUzURnIB7ibDvsVBLgw7m0+DFckreLpprYqT2Jp9hz22NOf2z7jQuSkRapCkMTKiUY1eTbuZVTNbx7TS8xdTeeDOn5i353kn01e2iaxgGycrbYlt5wis6OO7K5YlssFLgsKaGmSMrOlotMhbDi9wzVVPJLHocZ2Pyv4ONmcm+LoAAjLqYCYAWAAVkDEMAMZcs27GDIsIAAKeTSEk1hmQ0WJYucXHdCTyXCeVhilDD24CIawVCXZ8An2YpRxugpSWGVTJbysFU+QXppU4MVybT8qMC1MemqexREWUEsUgfAhhGL8xtS4RlLk0pdhFy6bMh8lt7EsrnGclsTHZlvgjuSukbx3RFRbFU+AqIrE7c3c2gZPk0gSN0VODDua1GZdyVZ02p8GnBnT7Gj44NRm9lka4JKXASpn3Mo+Y0nwRHzEanTop8BMIcCmac/tJSJXI0RowAWQg7GNT0NWZVCVrHtMOS5c/KIhyOo/uJ9NfY6sDh6sjnktAqkVknIcmmVIpImKKb7IJTz2KRCLRWbF9mcbOyPBxvkzk1x/ZB2GIy6hgGQAsAArIAB5AT4ZibS8rMWRYAENBQA2hIANI1MbMnGROIT00cU1mP7Ep42ZKbiy8qS32ZUZv2KhyEo4FHkitZeVGJq/KZFqYqizRGSNFuIVT4BiF6lRD5NKfYhl0xC9Ns7EvuPOwisQmZtbmhMvkNRVNly4M48mnKDN7YSW448DmhEaRPcgqRKMtxtT4KfyRDgtmmL2SKJQ8lClwRHkt7kx5yRY3hwKYQYMrH2gYgCmH4JyUgEzKZozKXJK1iceRT8w4in5mT6a+wiiVyPkIrOWVFCSxu2DlnZcFSqbxsgQksDwVlSKQkhorNaI5JeZnUuxyz8z+SZNcaQBgYdQAABYCArJgAAKflZkaz8pkyLCGhAFaRaezCUSEaxllFTpmngrI5LuJBDSTBw9BjRU2yeeGJclzRCMtRp2My1wQ+S0gLiQVEQrQTATZayllwZBUeSRW0WBMWM0wQnyNiYWCPJojJGiESlIhmkuDKQWM5CQSEYdG0GUzOLKbNMU0NcE5H2AbEgDuBcSnwRF+hTZWde0sTGIKTKjyQ2OL3Itip7GMjapsjBiriqIpP7mOOws/uRTS/BWUuCd2OKCGk29yksAsYBvJWTGlgSXqUVKf4GieWUuCs1aOar538nSjnrf8xkya4+0CBgYdQAwAYAMrIAAAmp5TI1qcGZGiABgIpPDEAG0X1ImUcMiMsM28y5KzfSEMXDGmUDRk9jbJE0KQkS+RoTMqRcSCoiFaEsfYllQDixDQFoohfJWTSGyWx8iAEUie40EqmZyLb2M5AjNiHIRh0XEtmcSys0DQhooYu4yQikytiCkVDfyIGAEv3CPIMI8kX6XV4Rgzar5UYEq49K/lEgY0FNFIlfIyosa5JWSlsVk844AnkpBDRSENFZqjCt52bmNfzImXTWHbJgMRh1AAAFAAysgAACanBmaT8pmRYAAAoHgBoCcFQl0sZLiVG20kTjBMJ4e5rtJbFZvpHSTJbFcClwKsZiGxGWgUhAgLEHYCsgEAAUmUiEUihgHIFQDRI0wGRIolikZyEUyTDakUQikVKoYkN8FQmIbEA0UuSUNfIRQABUJ7iiNoXciqqv7EYG1V/akYkq49DuMQyLTRQkUkVDjwGc8Cb7IaWCopFCSDOSs1SGiSkVmqMa/mXwamdflfBL0uHbIQxGHYAMAKAAKyAAAFJZizI25TMWRYQxDCmMSGEp42GhJ4Y8Z4KglH0FCTiykEopgaYUlsZtCTcXgt4kis9MZElTW4jLpACEMCgEBUAAAFIaJTGgi0MlPcZUAcAIB9iWPImBDJKkSZbNFIlFIqVSGxIoqIYhsRA0MkaAtMefchDyVDEGQQBU4RkXUfBmStToxoQ0QqkNsWfQcV6mkOK7ssXCE3lhns2ylshRQyxDRSJRSQSmZVuV8GplX8y+Belw7ZgAGHUAIALAYFZAAAAYy5ZsZT8wqxIIQ0RTGhIZUpji+wkMIoMiQyoJLJKzFloGgbZz3WTM0ktjMlagAAIqkAkDCHkQDKpjRKKQZUMlDWCoAGIAZLGJhUskpiMtApcElIRKtcDFEZplMuSC5EMiwDEMKpAwjyE0VCyGRBkgJvJA28sRGjGhIaCVSKEhmmaN2UkIeSoY0JfkYQxoQyoZlV8xqZVPMzOTWHaAADLoAAALAAKyAAaKAyq8mpnV7EIyGhARoyhIEEpopCTDJUUMnJSyVAADKiJ8GbNZLYyZmtwgGIimAhgAAAFIaEikVkIYIZUJAMAESymSwqWIbEZaA0IpAqolkIs0wlkM0ZnLkVYkYhoirhyVMmHJpJZRYze2DEOSwIlahAMRFMaEikEpplZQkNJeppk0NCwPBUPPuC3BZGEMBDCKMZeZmxi+WTJrAhDAy6EwHgAKABlZAAAARV8poRU8oIwGhDI0CsZJGmCngeAzsLLKysCcsNyiwyThh0sIbaM3yXgh8kqwhDERoAAwAAEBaKRCKRYlUhkjKyYCABsllfuSwqWSUySLANCGiKtFEopGmCZLGxMVUANiMtLjyardGCNIssYsTMzNJkCtQgACKCkJDTCU1ke41L2GpL0KhLI02UnEeEVNkpDyHShpFQLcpCSwxhmgyZr2ZkyZN4EAAZbABkAKGIEVkwAAGTU8jGKfkYIwK6fQkqLItLDGlkrYM4Lo2SW5SSE5IOv2Ce1YBEdb7IOqRdmmgzNdbH0zG00oymtympohyySrIkAAjQAAAAAAGiyEWVKYsiGVBkMi2AgpsTYCYAIYBSYIYgKRSIRaLEowJo0x7Bguk2ycSWjfp9iXEmiVkNMpxRJGuxJkDYiLAAAADBJspR9QFuHSy1hFdSLpnaFGQdMkadcQ6l6l0brPMkUpvuac+gNL0CbJTyUnl7EqK9Ckn6FjND8rMzSflMzN7bx6IABkaDAAAoBAVlQCyADFLysZM/KwMQBiI0eRpNgkUipQoruP7ULA8Jdgg6lnZZDql/hX7FR3b7A3h4wBPXL0D6j7h1+yKUs9ioXWmsNGclhm0oLBnUWEKssZgMRloAAAAAADRRKKRYlADGkESA8BgBADGBIZBoCNABAA0XFmaKTKljZMZEWys7GmLDJbQm90S2S0kDZDYMCVuJAAIoAYgHkNxDSyA8Z7j6V/iKVNc5H9NerKm09C/xB9N9pJlfTXqJwxwxpNl0T7DTn7k9Uk9mUqku4W7UpT9yk2ClnlFJJmpGKU/KiC6nCMzN7ax6AAIjQAAA/9k=\";const SEQUENCES={primary:{stepX:.6180339887,stepY:.7548776662,stepR:.569840291,phase:0},secondary:{stepX:.7548776662,stepY:.6180339887,stepR:.4302907499,phase:.37}};function buildStrands(count,group){const{stepX,stepY,stepR,phase}=SEQUENCES[group];const strands=[];for(let i=0;i<count;i++){const u=(i+phase)*stepX%1;const v=(i+phase)*stepY%1;const w=(i+phase)*stepR%1;const activeX=(u-.5)*260;const activeY=(v-.5)*260;const activeRotate=(w-.5)*170;const angle=i*137.5%360*(Math.PI/180);const restX=Math.cos(angle)*130;const restY=Math.sin(angle)*130;const restRotate=i*53%60-30;strands.push({activeX,activeY,activeRotate,restX,restY,restRotate});}return strands;}function sanitizePathData(raw,fallback){if(!raw)return fallback;let value=raw.trim();const attrMatch=value.match(/\\bd\\s*=\\s*\"([^\"]+)\"/)||value.match(/\\bd\\s*=\\s*'([^']+)'/);if(attrMatch){value=attrMatch[1];}value=value.trim().replace(/^['\"]+|['\"]+$/g,\"\").trim();return/^[Mm]/.test(value)?value:fallback;}const TARGET_SPAN=750;function useAutoScale(pathData,isCustom){const probeRef=useRef(null);const[scale,setScale]=useState(1);useLayoutEffect(()=>{if(!isCustom||!probeRef.current){setScale(1);return;}try{const box=probeRef.current.getBBox();const span=Math.max(box.width,box.height,1);setScale(TARGET_SPAN/span);}catch{setScale(1);}},[pathData,isCustom]);return{probeRef,scale};}function getRevealBackground({type,color,color2,angle,radialX,radialY}){switch(type){case\"solid\":return color;case\"linear\":return`linear-gradient(${angle}deg, ${color}, ${color2})`;case\"radial\":return`radial-gradient(circle at ${radialX}% ${radialY}%, ${color}, ${color2})`;default:return\"transparent\";}}function HoverStrokeCard(props){const{image,title,titleColor,font,description,descriptionColor,descriptionFont,revealBackgroundType,revealBackgroundColor,revealBackgroundColor2,revealGradientAngle,revealGradientPositionX,revealGradientPositionY,contentRevealDelay,titlePaddingX,titlePaddingBottom,primaryStrokeColor,secondaryStrokeColor,primaryStrandCount,secondaryStrandCount,primaryPathData,secondaryPathData,cornerRadius,maxStrokeWidth,hoverInDuration,hoverOutDuration,staggerAmount,wordStagger,interaction}=props;const[active,setActive]=useState(false);// Framer's automated check requires this: when rendering in a static\n// context (canvas thumbnail, export, or any non-interactive render),\n// all animation and continuous effects must be disabled and a plain,\n// static fallback shown instead — see the early return below.\nconst isStatic=useIsStaticRenderer();const shouldDelayReveal=revealBackgroundType!==\"none\";// The reveal content waits for the strokes to finish (hoverInDuration),\n// plus an extra user-controlled offset (contentRevealDelay). This now\n// applies regardless of whether a Reveal Background is set — without a\n// background, the title/description used to pop in almost instantly on\n// hover, well before the strokes finished sweeping in, which looked\n// premature. The offset can still go negative — e.g. setting it to\n// -hoverInDuration makes content appear immediately, or anywhere in\n// between if you want it to arrive slightly before the strokes are\n// fully done.\nconst revealContentDelay=active?Math.max(0,hoverInDuration+contentRevealDelay):0;// How long the reveal content panel takes to fade/scale back out on\n// hover-out — kept as one constant so both the panel's own transition\n// and the stroke retraction delay below stay in sync.\nconst CONTENT_EXIT_DURATION=.4;// On hover-out, when a background is set, the strokes should only start\n// retracting once the content panel has fully disappeared — otherwise\n// both happen at once and the strokes read as oddly fast since they're\n// competing for attention with the content leaving at the same time.\n// With no background, strokes retract immediately as before.\nconst strokeLeaveDelay=!active&&shouldDelayReveal?CONTENT_EXIT_DURATION:0;const primaryStrands=useMemo(()=>buildStrands(primaryStrandCount,\"primary\"),[primaryStrandCount]);const secondaryStrands=useMemo(()=>buildStrands(secondaryStrandCount,\"secondary\"),[secondaryStrandCount]);const handleEnter=()=>{if(interaction===\"hover\")setActive(true);};const handleLeave=()=>{if(interaction===\"hover\")setActive(false);};const handleTap=()=>{if(interaction===\"tap\")setActive(v=>!v);};const words=useMemo(()=>(title||\"\").split(\" \").filter(Boolean),[title]);const resolvedPrimaryPath=sanitizePathData(primaryPathData,BASE_PATH.primary);const resolvedSecondaryPath=sanitizePathData(secondaryPathData,BASE_PATH.secondary);const primaryIsCustom=resolvedPrimaryPath!==BASE_PATH.primary;const secondaryIsCustom=resolvedSecondaryPath!==BASE_PATH.secondary;const{probeRef:primaryProbeRef,scale:primaryScale}=useAutoScale(resolvedPrimaryPath,primaryIsCustom);const{probeRef:secondaryProbeRef,scale:secondaryScale}=useAutoScale(resolvedSecondaryPath,secondaryIsCustom);const groups=[{key:\"primary\",d:resolvedPrimaryPath,scale:primaryScale,color:primaryStrokeColor,strands:primaryStrands},{key:\"secondary\",d:resolvedSecondaryPath,scale:secondaryScale,color:secondaryStrokeColor,strands:secondaryStrands}];const imageSrc=typeof image===\"string\"?image:image?.src;const[imageFailed,setImageFailed]=useState(false);const[defaultImageFailed,setDefaultImageFailed]=useState(false);const showImage=Boolean(imageSrc)&&!imageFailed;// Static render (canvas thumbnail, export, or any non-interactive\n// context) — no motion components, no hover state, no continuous\n// effects. Shows the card exactly as it looks by default, before any\n// hover: just the image, nothing overlaid. The strokes, background\n// panel, and title/description are only ever meant to be visible once\n// someone actually hovers — showing them here would misrepresent what\n// the component actually looks like at rest.\nif(isStatic){return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",borderRadius:cornerRadius,overflow:\"hidden\"},children:[showImage&&/*#__PURE__*/_jsx(\"img\",{src:imageSrc,alt:\"\",style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\"}}),!showImage&&/*#__PURE__*/_jsx(\"img\",{src:DEFAULT_IMAGE_SRC,alt:\"\",style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\"}})]});}return /*#__PURE__*/_jsxs(\"div\",{onMouseEnter:handleEnter,onMouseLeave:handleLeave,onClick:handleTap,style:{position:\"relative\",width:\"100%\",height:\"100%\",borderRadius:cornerRadius,overflow:\"hidden\",cursor:interaction===\"tap\"?\"pointer\":\"default\"},children:[/*#__PURE__*/_jsxs(\"svg\",{style:{position:\"absolute\",width:0,height:0,overflow:\"hidden\"},\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"path\",{ref:primaryProbeRef,d:resolvedPrimaryPath}),/*#__PURE__*/_jsx(\"path\",{ref:secondaryProbeRef,d:resolvedSecondaryPath})]}),showImage&&/*#__PURE__*/_jsx(\"img\",{src:imageSrc,alt:\"\",onError:()=>setImageFailed(true),style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\"}}),!showImage&&!defaultImageFailed&&/*#__PURE__*/_jsx(\"img\",{src:DEFAULT_IMAGE_SRC,alt:\"\",onError:()=>setDefaultImageFailed(true),style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\"}}),!showImage&&defaultImageFailed&&/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 400 400\",preserveAspectRatio:\"xMidYMid slice\",style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\"},children:[/*#__PURE__*/_jsxs(\"defs\",{children:[/*#__PURE__*/_jsxs(\"linearGradient\",{id:\"hsc-bg\",x1:\"0%\",y1:\"0%\",x2:\"100%\",y2:\"100%\",children:[/*#__PURE__*/_jsx(\"stop\",{offset:\"0%\",stopColor:\"#1c2430\"}),/*#__PURE__*/_jsx(\"stop\",{offset:\"100%\",stopColor:\"#05070a\"})]}),/*#__PURE__*/_jsxs(\"radialGradient\",{id:\"hsc-vignette\",cx:\"50%\",cy:\"38%\",r:\"65%\",children:[/*#__PURE__*/_jsx(\"stop\",{offset:\"0%\",stopColor:\"#000000\",stopOpacity:\"0\"}),/*#__PURE__*/_jsx(\"stop\",{offset:\"100%\",stopColor:\"#000000\",stopOpacity:\"0.55\"})]}),/*#__PURE__*/_jsx(\"pattern\",{id:\"hsc-scan\",width:\"4\",height:\"4\",patternUnits:\"userSpaceOnUse\",children:/*#__PURE__*/_jsx(\"rect\",{width:\"4\",height:\"1.4\",fill:\"#bcd6ff\",opacity:\"0.05\"})})]}),/*#__PURE__*/_jsx(\"rect\",{width:\"400\",height:\"400\",fill:\"url(#hsc-bg)\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M70,400 C70,290 125,215 200,215 C275,215 330,290 330,400 Z\",fill:\"#232c39\"}),/*#__PURE__*/_jsx(\"rect\",{x:\"178\",y:\"185\",width:\"44\",height:\"45\",fill:\"#1d2431\"}),/*#__PURE__*/_jsx(\"ellipse\",{cx:\"200\",cy:\"150\",rx:\"58\",ry:\"68\",fill:\"#28323f\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M150,175 C165,205 235,205 250,175 C240,195 160,195 150,175 Z\",fill:\"#1d2431\",opacity:\"0.6\"}),/*#__PURE__*/_jsx(\"rect\",{width:\"400\",height:\"400\",fill:\"url(#hsc-scan)\"}),/*#__PURE__*/_jsx(\"rect\",{width:\"400\",height:\"400\",fill:\"url(#hsc-vignette)\"})]}),groups.map(group=>/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 400 400\",preserveAspectRatio:\"none\",style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",overflow:\"visible\",pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"g\",{transform:`scale(${group.scale})`,style:{transformOrigin:\"50% 50%\"},children:group.strands.map((strand,i)=>/*#__PURE__*/_jsx(motion.path,{d:group.d,fill:\"none\",stroke:group.color,strokeLinecap:\"round\",style:{transformBox:\"fill-box\",transformOrigin:\"50% 50%\"},initial:false,animate:{pathLength:active?1:0,strokeWidth:active?maxStrokeWidth:0,x:active?strand.activeX:strand.activeX+strand.restX,y:active?strand.activeY:strand.activeY+strand.restY,rotate:active?strand.activeRotate:strand.activeRotate+strand.restRotate},transition:{pathLength:{duration:active?hoverInDuration:hoverOutDuration,ease:[.16,1,.3,1],delay:active?i*staggerAmount*.08:strokeLeaveDelay},x:{duration:active?hoverInDuration:hoverOutDuration,ease:[.16,1,.3,1],delay:active?i*staggerAmount*.08:strokeLeaveDelay},y:{duration:active?hoverInDuration:hoverOutDuration,ease:[.16,1,.3,1],delay:active?i*staggerAmount*.08:strokeLeaveDelay},rotate:{duration:active?hoverInDuration:hoverOutDuration,ease:[.16,1,.3,1],delay:active?i*staggerAmount*.08:strokeLeaveDelay},strokeWidth:active?{duration:hoverInDuration*.75,delay:i*staggerAmount*.08+hoverInDuration*.25,ease:[.16,1,.3,1]}:{duration:hoverOutDuration*.35,delay:strokeLeaveDelay,ease:[.4,0,1,1]}}},i))})},group.key)),/*#__PURE__*/_jsxs(motion.div,{initial:{opacity:0,y:70,scale:.7},animate:{opacity:active?1:0,y:active?0:70,scale:active?1:.7},transition:{duration:active?.8:CONTENT_EXIT_DURATION,ease:[.16,1,.3,1],delay:active?revealContentDelay:0},style:{position:\"absolute\",top:0,right:0,bottom:0,left:0,width:\"100%\",height:\"100%\",zIndex:1,transformOrigin:\"center center\",willChange:\"transform, opacity\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,right:0,bottom:0,left:0,width:\"100%\",height:\"100%\",borderRadius:cornerRadius,background:getRevealBackground({type:revealBackgroundType,color:revealBackgroundColor,color2:revealBackgroundColor2,angle:revealGradientAngle,radialX:revealGradientPositionX,radialY:revealGradientPositionY})}}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",left:titlePaddingX,right:titlePaddingX,bottom:titlePaddingBottom,zIndex:2,display:\"flex\",flexDirection:\"column\",gap:\"0.35em\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",gap:\"0.4em\",fontFamily:font?.fontFamily,fontWeight:font?.fontWeight,fontSize:font?.fontSize,letterSpacing:font?.letterSpacing,lineHeight:font?.lineHeight,color:titleColor},children:words.map((word,i)=>/*#__PURE__*/_jsx(\"span\",{style:{overflow:\"hidden\",display:\"inline-block\"},children:/*#__PURE__*/_jsx(motion.span,{style:{display:\"inline-block\"},initial:false,animate:{opacity:active?1:0},transition:{duration:.35,ease:[.16,1,.3,1],delay:active?revealContentDelay+.05+i*wordStagger:0},children:word})},i))}),description&&/*#__PURE__*/_jsx(\"div\",{style:{overflow:\"hidden\"},children:/*#__PURE__*/_jsx(motion.div,{initial:false,animate:{opacity:active?1:0},transition:{duration:.35,ease:[.16,1,.3,1],delay:active?revealContentDelay+.08+words.length*wordStagger:0},style:{fontFamily:descriptionFont?.fontFamily,fontWeight:descriptionFont?.fontWeight,fontSize:descriptionFont?.fontSize,letterSpacing:descriptionFont?.letterSpacing,lineHeight:descriptionFont?.lineHeight,color:descriptionColor},children:description})})]})]})]});}addPropertyControls(HoverStrokeCard,{image:{type:ControlType.Image,title:\"Image\"},title:{type:ControlType.String,title:\"Title\",displayTextArea:false,defaultValue:\"Adrian Voss\"},titleColor:{type:ControlType.Color,title:\"Title Color\",defaultValue:\"#f5f5f0\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultValue:{fontFamily:\"Inter\",fontWeight:600,fontSize:24,letterSpacing:\"-0.01em\",lineHeight:1.2}},description:{type:ControlType.String,title:\"Description\",displayTextArea:false,defaultValue:\"Award-winning Creative Director crafting bold brand identities and immersive digital experiences for clients worldwide.\"},descriptionColor:{type:ControlType.Color,title:\"Description Color\",defaultValue:\"#f5f5f0\"},descriptionFont:{type:ControlType.Font,title:\"Description Font\",controls:\"extended\",defaultValue:{fontFamily:\"Inter\",fontWeight:500,fontSize:15,letterSpacing:\"0em\",lineHeight:1.3}},revealBackgroundType:{type:ControlType.Enum,title:\"Reveal Background\",options:[\"none\",\"solid\",\"linear\",\"radial\"],optionTitles:[\"None\",\"Solid Color\",\"Linear Gradient\",\"Radial Gradient\"],defaultValue:\"none\"},revealBackgroundColor:{type:ControlType.Color,title:\"Background Color 1\",defaultValue:\"#0080FF\",hidden:props=>props.revealBackgroundType===\"none\"},revealBackgroundColor2:{type:ControlType.Color,title:\"Background Color 2\",description:\"Used as the second stop for gradient backgrounds\",defaultValue:\"#004C99\",hidden:props=>props.revealBackgroundType!==\"linear\"&&props.revealBackgroundType!==\"radial\"},revealGradientAngle:{type:ControlType.Number,title:\"Gradient Angle\",min:0,max:360,step:1,defaultValue:135,hidden:props=>props.revealBackgroundType!==\"linear\"},revealGradientPositionX:{type:ControlType.Number,title:\"Radial Center X\",min:0,max:100,step:1,defaultValue:50,hidden:props=>props.revealBackgroundType!==\"radial\"},revealGradientPositionY:{type:ControlType.Number,title:\"Radial Center Y\",min:0,max:100,step:1,defaultValue:50,hidden:props=>props.revealBackgroundType!==\"radial\"},contentRevealDelay:{type:ControlType.Number,title:\"Content Delay\",description:\"Offset from the moment the strokes finish sweeping in. 0 = right when they finish. Negative values bring content in earlier (fully negative of Reveal Duration = instantly). Positive values add extra pause.\",min:-3,max:2,step:.05,defaultValue:0},titlePaddingX:{type:ControlType.Number,title:\"Title Inset X\",min:0,max:120,step:1,defaultValue:24},titlePaddingBottom:{type:ControlType.Number,title:\"Title Inset Bottom\",min:0,max:120,step:1,defaultValue:24},cornerRadius:{type:ControlType.Number,title:\"Corner Radius\",min:0,max:100,step:1,defaultValue:20},primaryStrokeColor:{type:ControlType.Color,title:\"Stroke Color 1\",defaultValue:\"#e67339\"},primaryStrandCount:{type:ControlType.Number,title:\"Stroke 1 Count\",description:\"How many copies of the first stroke path are drawn — more copies means tighter, more complete coverage\",min:5,max:14,step:1,defaultValue:6},primaryPathData:{type:ControlType.String,title:\"Path 1 Data\",description:\"Optional — paste an SVG path's \\\"d\\\" attribute here (from Figma, Illustrator, or Framer's vector tool) to replace the default stroke shape. Leave empty to use the default. Should roughly fit within a 400\\xd7400 area to line up correctly\",displayTextArea:true,defaultValue:DEFAULT_CUSTOM_PATH},secondaryStrokeColor:{type:ControlType.Color,title:\"Stroke Color 2\",defaultValue:\"#e0e0e0\"},secondaryStrandCount:{type:ControlType.Number,title:\"Stroke 2 Count\",description:\"How many copies of the second stroke path are drawn\",min:5,max:14,step:1,defaultValue:7},secondaryPathData:{type:ControlType.String,title:\"Path 2 Data\",description:'Optional — paste an SVG path\\'s \"d\" attribute here to replace the default stroke shape for this layer',displayTextArea:true,defaultValue:DEFAULT_CUSTOM_PATH},maxStrokeWidth:{type:ControlType.Number,title:\"Coverage Width\",description:\"How thick each stroke gets at full reveal — higher fully hides the image, lower leaves gaps\",min:60,max:300,step:5,defaultValue:100},hoverInDuration:{type:ControlType.Number,title:\"Reveal Duration\",min:.2,max:3,step:.05,defaultValue:2},hoverOutDuration:{type:ControlType.Number,title:\"Hide Duration\",min:.2,max:3,step:.05,defaultValue:2},staggerAmount:{type:ControlType.Number,title:\"Stroke Stagger\",description:\"Spread in stroke entrance timing\",min:0,max:1,step:.01,defaultValue:.13},wordStagger:{type:ControlType.Number,title:\"Word Stagger\",min:0,max:.3,step:.005,defaultValue:.075},interaction:{type:ControlType.Enum,title:\"Trigger\",options:[\"hover\",\"tap\"],optionTitles:[\"Hover\",\"Tap (mobile-friendly)\"],defaultValue:\"hover\"}});HoverStrokeCard.defaultSize={width:600,height:450};export default HoverStrokeCard;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"HoverStrokeCard\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HoverStrokeCard.map","// Generated by Framer (3ad0d99)\nexport default function metadata(params,activeLocale){return{description:\"Made with Framer\",robots:\"max-image-preview:large\",title:\"My Framer Site\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (7bfce40)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"72rtr7\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-BpTuF\",title:siteMetadata(params,activeLocale).title||\"Home\",viewport:\"width=1600\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (7bfce40)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"tioban\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-AfnAD\",title:siteMetadata(params,activeLocale).title||\"Preview\",viewport:\"width=1200\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"8PAqBu7mB,SAAS,EAAa,EAAM,EAAM,CAAC,GAAK,CAAC,QAAM,QAAM,QAAM,SAAO,EAAU,GAAa,EAAQ,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAM,IAAI,CAAC,IAAM,GAAG,EAAE,GAAO,EAAM,EAAQ,GAAG,EAAE,GAAO,EAAM,EAAQ,GAAG,EAAE,GAAO,EAAM,EAAQ,GAAS,EAAE,IAAI,IAAU,GAAS,EAAE,IAAI,IAAU,GAAc,EAAE,IAAI,IAAU,EAAM,EAAE,MAAM,KAAK,KAAK,GAAG,KAAW,EAAM,KAAK,IAAI,CAAK,EAAE,IAAU,EAAM,KAAK,IAAI,CAAK,EAAE,IAAU,EAAW,EAAE,GAAG,GAAG,GAAG,EAAQ,KAAK,CAAC,UAAQ,UAAQ,eAAa,QAAM,QAAM,YAAU,CAAC,CAAE,CAAC,OAAO,CAAQ,CAAC,SAAS,EAAiB,EAAI,EAAS,CAAC,GAAG,CAAC,EAAI,OAAO,EAAS,IAAI,EAAM,EAAI,KAAK,EAAQ,EAAU,EAAM,MAAM,qBAAqB,GAAG,EAAM,MAAM,qBAAqB,EAA2F,OAAtF,IAAW,EAAM,EAAU,IAAI,EAAM,EAAM,KAAK,CAAC,CAAC,QAAQ,iBAAiB,EAAE,CAAC,CAAC,KAAK,EAAQ,QAAQ,KAAK,CAAK,EAAE,EAAM,CAAS,CAAuB,SAAS,EAAa,EAAS,EAAS,CAAC,IAAM,EAASA,EAAO,IAAI,EAAO,CAAC,EAAM,GAAUC,EAAS,CAAC,EAAuO,OAArO,MAAoB,CAAC,GAAG,CAAC,GAAU,CAAC,EAAS,QAAQ,CAAC,EAAS,CAAC,EAAE,MAAO,CAAC,GAAG,CAAC,IAAM,EAAI,EAAS,QAAQ,QAAQ,EAAQ,EAAK,KAAK,IAAI,EAAI,MAAM,EAAI,OAAO,CAAC,EAAE,EAAS,EAAY,CAAI,CAAE,MAAM,CAAC,EAAS,CAAC,CAAE,CAAC,EAAE,CAAC,EAAS,CAAQ,CAAC,EAAQ,CAAC,WAAS,OAAK,CAAE,CAAC,SAAS,GAAoB,CAAC,OAAK,QAAM,SAAO,QAAM,UAAQ,WAAS,CAAC,OAAO,EAAP,CAAa,IAAI,QAAQ,OAAO,EAAM,IAAI,SAAS,MAAM,mBAAmB,EAAM,OAAO,EAAM,IAAI,EAAO,GAAG,IAAI,SAAS,MAAM,6BAA6B,EAAQ,IAAI,EAAQ,KAAK,EAAM,IAAI,EAAO,GAAG,QAAQ,MAAM,aAAc,CAAC,CAAC,SAAS,EAAgB,EAAM,CAAC,GAAK,CAAC,QAAM,QAAM,aAAW,OAAK,cAAY,mBAAiB,kBAAgB,uBAAqB,wBAAsB,yBAAuB,sBAAoB,0BAAwB,0BAAwB,qBAAmB,gBAAc,qBAAmB,qBAAmB,uBAAqB,qBAAmB,uBAAqB,kBAAgB,oBAAkB,eAAa,iBAAe,kBAAgB,mBAAiB,gBAAc,cAAY,eAAa,EAAW,CAAC,EAAO,GAAWA,EAAS,EAAK,EAIv6qB,EAAS,EAAoB,EAAQ,EAAkB,IAAuB,OAS9E,EAAmB,EAAO,KAAK,IAAI,EAAE,EAAgB,CAAkB,EAAE,EAGzE,EAAsB,GAKtB,EAAiB,CAAC,GAAQ,EAAkB,EAAsB,EAAQ,GAAeC,MAAY,EAAa,EAAmB,SAAS,EAAE,CAAC,CAAkB,CAAC,EAAQ,GAAiBA,MAAY,EAAa,EAAqB,WAAW,EAAE,CAAC,CAAoB,CAAC,EAAQ,OAAgB,CAAI,IAAc,SAAQ,EAAU,EAAI,CAAE,EAAQ,OAAgB,CAAI,IAAc,SAAQ,EAAU,EAAK,CAAE,EAAQ,OAAc,CAAI,IAAc,OAAM,EAAU,GAAG,CAAC,CAAC,CAAE,EAAQ,EAAMA,OAAa,GAAO,GAAA,CAAI,MAAM,GAAG,CAAC,CAAC,OAAO,OAAO,EAAE,CAAC,CAAK,CAAC,EAAQ,EAAoB,EAAiB,EAAgB,EAAU,OAAO,EAAQ,EAAsB,EAAiB,EAAkB,EAAU,SAAS,EAAQ,GAAgB,IAAsB,EAAU,QAAc,GAAkB,IAAwB,EAAU,UAAe,CAAC,SAAS,GAAgB,MAAM,IAAc,EAAa,EAAoB,EAAe,EAAO,CAAC,SAAS,GAAkB,MAAM,IAAgB,EAAa,EAAsB,EAAiB,EAAQ,GAAO,CAAC,CAAC,IAAI,UAAU,EAAE,EAAoB,MAAM,GAAa,MAAM,EAAmB,QAAQ,EAAc,EAAE,CAAC,IAAI,YAAY,EAAE,EAAsB,MAAM,GAAe,MAAM,EAAqB,QAAQ,EAAgB,CAAC,EAAQ,EAAS,OAAO,GAAQ,SAAS,EAAM,GAAO,IAAS,CAAC,GAAY,IAAgBD,EAAS,EAAK,EAAO,CAAC,EAAmB,IAAuBA,EAAS,EAAK,EAAQ,EAAU,EAAQ,GAAW,CAAC,GAOl/B,OAA5d,EAA8B,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,OAAO,OAAO,OAAO,aAAa,EAAa,SAAS,QAAQ,EAAE,SAAS,CAAC,GAAwB,EAAK,MAAM,CAAC,IAAI,EAAS,IAAI,GAAG,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,MAAM,OAAO,OAAO,OAAO,UAAU,QAAQ,QAAQ,OAAO,CAAC,CAAC,EAAE,CAAC,GAAwB,EAAK,MAAM,CAAC,IAAI,EAAkB,IAAI,GAAG,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,MAAM,OAAO,OAAO,OAAO,UAAU,QAAQ,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAuB,EAAM,MAAM,CAAC,aAAa,GAAY,aAAa,GAAY,QAAQ,GAAU,MAAM,CAAC,SAAS,WAAW,MAAM,OAAO,OAAO,OAAO,aAAa,EAAa,SAAS,SAAS,OAAO,IAAc,MAAM,UAAU,SAAS,EAAE,SAAS,CAAc,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,OAAO,EAAE,SAAS,QAAQ,EAAE,cAAc,OAAO,SAAS,CAAc,EAAK,OAAO,CAAC,IAAI,GAAgB,EAAE,CAAmB,CAAC,EAAe,EAAK,OAAO,CAAC,IAAI,GAAkB,EAAE,CAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,GAAwB,EAAK,MAAM,CAAC,IAAI,EAAS,IAAI,GAAG,YAAY,GAAe,EAAI,EAAE,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,MAAM,OAAO,OAAO,OAAO,UAAU,QAAQ,QAAQ,OAAO,CAAC,CAAC,EAAE,CAAC,GAAW,CAAC,GAAiC,EAAK,MAAM,CAAC,IAAI,EAAkB,IAAI,GAAG,YAAY,GAAsB,EAAI,EAAE,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,MAAM,OAAO,OAAO,OAAO,UAAU,QAAQ,QAAQ,OAAO,CAAC,CAAC,EAAE,CAAC,GAAW,GAAiC,EAAM,MAAM,CAAC,QAAQ,cAAc,oBAAoB,iBAAiB,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,MAAM,OAAO,OAAO,MAAM,EAAE,SAAS,CAAc,EAAM,OAAO,CAAC,SAAS,CAAc,EAAM,iBAAiB,CAAC,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,SAAS,CAAc,EAAK,OAAO,CAAC,OAAO,KAAK,UAAU,SAAS,CAAC,EAAe,EAAK,OAAO,CAAC,OAAO,OAAO,UAAU,SAAS,CAAC,CAAC,CAAC,CAAC,EAAe,EAAM,iBAAiB,CAAC,GAAG,eAAe,GAAG,MAAM,GAAG,MAAM,EAAE,MAAM,SAAS,CAAc,EAAK,OAAO,CAAC,OAAO,KAAK,UAAU,UAAU,YAAY,GAAG,CAAC,EAAe,EAAK,OAAO,CAAC,OAAO,OAAO,UAAU,UAAU,YAAY,MAAM,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,UAAU,CAAC,GAAG,WAAW,MAAM,IAAI,OAAO,IAAI,aAAa,iBAAiB,SAAsB,EAAK,OAAO,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,OAAO,CAAC,MAAM,MAAM,OAAO,MAAM,KAAK,cAAc,CAAC,EAAe,EAAK,OAAO,CAAC,EAAE,6DAA6D,KAAK,SAAS,CAAC,EAAe,EAAK,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,MAAM,KAAK,OAAO,KAAK,KAAK,SAAS,CAAC,EAAe,EAAK,UAAU,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,EAAe,EAAK,OAAO,CAAC,EAAE,+DAA+D,KAAK,UAAU,QAAQ,KAAK,CAAC,EAAe,EAAK,OAAO,CAAC,MAAM,MAAM,OAAO,MAAM,KAAK,gBAAgB,CAAC,EAAe,EAAK,OAAO,CAAC,MAAM,MAAM,OAAO,MAAM,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,GAAO,IAAI,GAAoB,EAAK,MAAM,CAAC,QAAQ,cAAc,oBAAoB,OAAO,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,MAAM,OAAO,OAAO,OAAO,SAAS,UAAU,cAAc,MAAM,EAAE,SAAsB,EAAK,IAAI,CAAC,UAAU,SAAS,EAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,SAAS,EAAE,SAAS,EAAM,QAAQ,KAAK,EAAO,IAAiB,EAAK,EAAO,KAAK,CAAC,EAAE,EAAM,EAAE,KAAK,OAAO,OAAO,EAAM,MAAM,cAAc,QAAQ,MAAM,CAAC,aAAa,WAAW,gBAAgB,SAAS,EAAE,QAAQ,GAAM,QAAQ,CAAC,WAAW,KAAW,YAAY,EAAO,EAAe,EAAE,EAAE,EAAO,EAAO,QAAQ,EAAO,QAAQ,EAAO,MAAM,EAAE,EAAO,EAAO,QAAQ,EAAO,QAAQ,EAAO,MAAM,OAAO,EAAO,EAAO,aAAa,EAAO,aAAa,EAAO,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,SAAS,EAAO,EAAgB,EAAiB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,EAAO,EAAE,EAAc,IAAI,CAAgB,EAAE,EAAE,CAAC,SAAS,EAAO,EAAgB,EAAiB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,EAAO,EAAE,EAAc,IAAI,CAAgB,EAAE,EAAE,CAAC,SAAS,EAAO,EAAgB,EAAiB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,EAAO,EAAE,EAAc,IAAI,CAAgB,EAAE,OAAO,CAAC,SAAS,EAAO,EAAgB,EAAiB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,EAAO,EAAE,EAAc,IAAI,CAAgB,EAAE,YAAY,EAAO,CAAC,SAAS,EAAgB,IAAI,MAAM,EAAE,EAAc,IAAI,EAAgB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,EAAiB,IAAI,MAAM,EAAiB,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAM,GAAG,CAAC,EAAe,EAAM,EAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,QAAQ,CAAC,QAAQ,KAAW,EAAE,EAAO,EAAE,GAAG,MAAM,EAAO,EAAE,EAAE,EAAE,WAAW,CAAC,SAAS,EAAO,GAAG,EAAsB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,EAAO,EAAmB,CAAC,EAAE,MAAM,CAAC,SAAS,WAAW,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,OAAO,OAAO,OAAO,EAAE,gBAAgB,gBAAgB,WAAW,oBAAoB,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,OAAO,OAAO,aAAa,EAAa,WAAW,GAAoB,CAAC,KAAK,EAAqB,MAAM,EAAsB,OAAO,EAAuB,MAAM,EAAoB,QAAQ,EAAwB,QAAQ,CAAuB,CAAC,CAAC,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,KAAK,EAAc,MAAM,EAAc,OAAO,EAAmB,OAAO,EAAE,QAAQ,OAAO,cAAc,SAAS,IAAI,QAAQ,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,SAAS,OAAO,IAAI,QAAQ,WAAW,GAAM,WAAW,WAAW,GAAM,WAAW,SAAS,GAAM,SAAS,cAAc,GAAM,cAAc,WAAW,GAAM,WAAW,MAAM,CAAU,EAAE,SAAS,EAAM,KAAK,EAAK,IAAiB,EAAK,OAAO,CAAC,MAAM,CAAC,SAAS,SAAS,QAAQ,cAAc,EAAE,SAAsB,EAAK,EAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,cAAc,EAAE,QAAQ,GAAM,QAAQ,CAAC,QAAQ,IAAU,EAAE,WAAW,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,EAAO,EAAmB,IAAI,EAAE,EAAY,CAAC,EAAE,SAAS,CAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAA0B,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,QAAQ,EAAE,SAAsB,EAAK,EAAO,IAAI,CAAC,QAAQ,GAAM,QAAQ,CAAC,QAAQ,IAAU,EAAE,WAAW,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,EAAO,EAAmB,IAAI,EAAM,OAAO,EAAY,CAAC,EAAE,MAAM,CAAC,WAAW,GAAiB,WAAW,WAAW,GAAiB,WAAW,SAAS,GAAiB,SAAS,cAAc,GAAiB,cAAc,WAAW,GAAiB,WAAW,MAAM,CAAgB,EAAE,SAAS,CAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,2BAjD9sM,IAA2D,IAAkC,IAAwE,EAWpN,EAAU,CAAC,QAAQ,oFAAoF,UAAU,qFAAqF,EAIzM,EAAoB,gDAMpB,EAAkB,0vmBAAgwmB,EAAU,CAAC,QAAQ,CAAC,MAAM,YAAY,MAAM,YAAY,MAAM,WAAW,MAAM,CAAC,EAAE,UAAU,CAAC,MAAM,YAAY,MAAM,YAAY,MAAM,YAAY,MAAM,GAAG,CAAC,EAAyyB,EAAY,IA4Bn+b,EAAoB,EAAgB,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,EAAE,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,gBAAgB,GAAM,aAAa,aAAa,EAAE,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,cAAc,aAAa,SAAS,EAAE,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,SAAS,WAAW,aAAa,CAAC,WAAW,QAAQ,WAAW,IAAI,SAAS,GAAG,cAAc,UAAU,WAAW,GAAG,CAAC,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,gBAAgB,GAAM,aAAa,yHAAyH,EAAE,iBAAiB,CAAC,KAAK,EAAY,MAAM,MAAM,oBAAoB,aAAa,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAY,KAAK,MAAM,mBAAmB,SAAS,WAAW,aAAa,CAAC,WAAW,QAAQ,WAAW,IAAI,SAAS,GAAG,cAAc,MAAM,WAAW,GAAG,CAAC,EAAE,qBAAqB,CAAC,KAAK,EAAY,KAAK,MAAM,oBAAoB,QAAQ,CAAC,OAAO,QAAQ,SAAS,QAAQ,EAAE,aAAa,CAAC,OAAO,cAAc,kBAAkB,iBAAiB,EAAE,aAAa,MAAM,EAAE,sBAAsB,CAAC,KAAK,EAAY,MAAM,MAAM,qBAAqB,aAAa,UAAU,OAAO,GAAO,EAAM,uBAAuB,MAAM,EAAE,uBAAuB,CAAC,KAAK,EAAY,MAAM,MAAM,qBAAqB,YAAY,mDAAmD,aAAa,UAAU,OAAO,GAAO,EAAM,uBAAuB,UAAU,EAAM,uBAAuB,QAAQ,EAAE,oBAAoB,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,aAAa,IAAI,OAAO,GAAO,EAAM,uBAAuB,QAAQ,EAAE,wBAAwB,CAAC,KAAK,EAAY,OAAO,MAAM,kBAAkB,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,aAAa,GAAG,OAAO,GAAO,EAAM,uBAAuB,QAAQ,EAAE,wBAAwB,CAAC,KAAK,EAAY,OAAO,MAAM,kBAAkB,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,aAAa,GAAG,OAAO,GAAO,EAAM,uBAAuB,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,YAAY,gNAAgN,IAAI,GAAG,IAAI,EAAE,KAAK,IAAI,aAAa,CAAC,EAAE,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,aAAa,EAAE,EAAE,mBAAmB,CAAC,KAAK,EAAY,OAAO,MAAM,qBAAqB,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,aAAa,EAAE,EAAE,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,aAAa,EAAE,EAAE,mBAAmB,CAAC,KAAK,EAAY,MAAM,MAAM,iBAAiB,aAAa,SAAS,EAAE,mBAAmB,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,YAAY,yGAAyG,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,aAAa,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,YAAY,0OAA+O,gBAAgB,GAAK,aAAa,CAAmB,EAAE,qBAAqB,CAAC,KAAK,EAAY,MAAM,MAAM,iBAAiB,aAAa,SAAS,EAAE,qBAAqB,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,YAAY,sDAAsD,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,aAAa,CAAC,EAAE,kBAAkB,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,YAAY,uGAAwG,gBAAgB,GAAK,aAAa,CAAmB,EAAE,eAAe,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,YAAY,8FAA8F,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,aAAa,GAAG,EAAE,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,kBAAkB,IAAI,GAAG,IAAI,EAAE,KAAK,IAAI,aAAa,CAAC,EAAE,iBAAiB,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,IAAI,GAAG,IAAI,EAAE,KAAK,IAAI,aAAa,CAAC,EAAE,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,YAAY,mCAAmC,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,aAAa,GAAG,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,IAAI,EAAE,IAAI,GAAG,KAAK,KAAK,aAAa,IAAI,EAAE,YAAY,CAAC,KAAK,EAAY,KAAK,MAAM,UAAU,QAAQ,CAAC,QAAQ,KAAK,EAAE,aAAa,CAAC,QAAQ,uBAAuB,EAAE,aAAa,OAAO,CAAC,CAAC,EAAE,EAAgB,YAAY,CAAC,MAAM,IAAI,OAAO,GAAG,KChDvzV,SAAwBE,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,YAAY,mBAAmB,OAAO,0BAA0B,MAAM,gBAAgB,CAAE,mBCAnE,SAAwBC,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,QAAQ,CAAC,EAAE,YAAYC,EAAa,EAAO,CAAY,CAAC,CAAC,YAAY,SAAS,CAAC,EAAE,OAAO,0BAA0B,gBAAgB,eAAe,MAAMA,EAAa,EAAO,CAAY,CAAC,CAAC,OAAO,OAAO,SAAS,YAAY,CAAE,qBAA/S,EAA6TC,EAAgB,EACjZC,EAAqB,CAAC,QAAU,CAAC,QAAU,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,gBAAkB,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,mBAAqB,CAAC,KAAO,UAAU,CAAC,CAAC,KCDjK,SAAwB,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,QAAQ,CAAC,EAAE,YAAYC,EAAa,EAAO,CAAY,CAAC,CAAC,YAAY,SAAS,CAAC,EAAE,OAAO,0BAA0B,gBAAgB,eAAe,MAAMA,EAAa,EAAO,CAAY,CAAC,CAAC,OAAO,UAAU,SAAS,YAAY,CAAE,qBAAlT,EAAgU,EAAgB,EACpZ,EAAqB,CAAC,QAAU,CAAC,gBAAkB,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,QAAU,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,GAAG,CAAC,EAAE,mBAAqB,CAAC,KAAO,UAAU,CAAC,CAAC"}