commit 7323d458c95e2a2efbe1eb34bf2d7f087c1228f7 Author: noahpaige Date: Thu Sep 21 14:29:22 2023 -0700 Updates diff --git a/assets/index-85a40674.css b/assets/index-85a40674.css new file mode 100644 index 0000000..9f862b8 --- /dev/null +++ b/assets/index-85a40674.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root,[data-theme]{background-color:hsla(var(--b1) / var(--tw-bg-opacity, 1));color:hsla(var(--bc) / var(--tw-text-opacity, 1))}html{-webkit-tap-highlight-color:transparent}:root{--p: 198 93.137% 60%;--pf: 198 93.137% 48%;--sf: 234.41 89.394% 59.294%;--af: 328.85 85.621% 56%;--nf: 217.24 33.333% 13.647%;--b2: 260 33.333% 7.9412%;--b3: 260 33.333% 7.1471%;--bc: 260 35.484% 81.765%;--pc: 198 100% 12%;--sc: 234.41 100% 14.824%;--ac: 328.85 100% 14%;--nc: 217.24 75.414% 83.412%;--inc: 198.19 100% 9.6078%;--suc: 171.83 100% 10%;--wac: 41.111 100% 12.784%;--erc: 351 100% 14.196%;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--animation-btn: .25s;--animation-input: .2s;--btn-text-case: uppercase;--btn-focus-scale: .95;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--s: 234.41 89.394% 74.118%;--a: 328.85 85.621% 70%;--n: 217.24 33.333% 17.059%;--b1: 260 33.333% 8.8235%;--in: 198.19 90.204% 48.039%;--su: 171.83 66.275% 50%;--wa: 41.111 88.043% 63.922%;--er: 351 94.595% 70.98%}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.badge{display:inline-flex;align-items:center;justify-content:center;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);height:1.25rem;font-size:.875rem;line-height:1.25rem;width:fit-content;padding-left:.563rem;padding-right:.563rem;border-width:1px;--tw-border-opacity: 1;border-color:hsl(var(--n) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--n) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--nc) / var(--tw-text-opacity));border-radius:var(--rounded-badge, 1.9rem)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.card{position:relative;display:flex;flex-direction:column;border-radius:var(--rounded-box, 1rem)}.card:focus{outline:2px solid transparent;outline-offset:2px}.card figure{display:flex;align-items:center;justify-content:center}.card.image-full{display:grid}.card.image-full:before{position:relative;content:"";z-index:10;--tw-bg-opacity: 1;background-color:hsl(var(--n) / var(--tw-bg-opacity));opacity:.75;border-radius:var(--rounded-box, 1rem)}.card.image-full:before,.card.image-full>*{grid-column-start:1;grid-row-start:1}.card.image-full>figure img{height:100%;object-fit:cover}.card.image-full>.card-body{position:relative;z-index:20;--tw-text-opacity: 1;color:hsl(var(--nc) / var(--tw-text-opacity))}.btn-outline .badge{--tw-border-opacity: 1;border-color:hsl(var(--nf, var(--n)) / var(--tw-border-opacity));--tw-text-opacity: 1;color:hsl(var(--nc) / var(--tw-text-opacity))}.btn-outline.btn-primary .badge{--tw-border-opacity: 1;border-color:hsl(var(--p) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--p) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--pc) / var(--tw-text-opacity))}.btn-outline.btn-secondary .badge{--tw-border-opacity: 1;border-color:hsl(var(--s) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--s) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--sc) / var(--tw-text-opacity))}.btn-outline.btn-accent .badge{--tw-border-opacity: 1;border-color:hsl(var(--a) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--a) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--ac) / var(--tw-text-opacity))}.btn-outline .badge.outline{--tw-border-opacity: 1;border-color:hsl(var(--nf, var(--n)) / var(--tw-border-opacity));background-color:transparent}.btn-outline:hover .badge{--tw-border-opacity: 1;border-color:hsl(var(--b2, var(--b1)) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--b2, var(--b1)) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--bc) / var(--tw-text-opacity))}.btn-outline:hover .badge.outline{--tw-border-opacity: 1;border-color:hsl(var(--b2, var(--b1)) / var(--tw-border-opacity));--tw-text-opacity: 1;color:hsl(var(--nc) / var(--tw-text-opacity))}.btn-outline.btn-primary:hover .badge{--tw-border-opacity: 1;border-color:hsl(var(--pc) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--pc) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--p) / var(--tw-text-opacity))}.btn-outline.btn-primary:hover .badge.outline{--tw-border-opacity: 1;border-color:hsl(var(--pc) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--pf, var(--p)) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--pc) / var(--tw-text-opacity))}.btn-outline.btn-secondary:hover .badge{--tw-border-opacity: 1;border-color:hsl(var(--sc) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--sc) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--s) / var(--tw-text-opacity))}.btn-outline.btn-secondary:hover .badge.outline{--tw-border-opacity: 1;border-color:hsl(var(--sc) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--sf, var(--s)) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--sc) / var(--tw-text-opacity))}.btn-outline.btn-accent:hover .badge{--tw-border-opacity: 1;border-color:hsl(var(--ac) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--ac) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--a) / var(--tw-text-opacity))}.btn-outline.btn-accent:hover .badge.outline{--tw-border-opacity: 1;border-color:hsl(var(--ac) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--af, var(--a)) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--ac) / var(--tw-text-opacity))}@keyframes button-pop{0%{transform:scale(var(--btn-focus-scale, .95))}40%{transform:scale(1.02)}to{transform:scale(1)}}.card :where(figure:first-child){overflow:hidden;border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-start-radius:unset;border-end-end-radius:unset}.card :where(figure:last-child){overflow:hidden;border-start-start-radius:unset;border-start-end-radius:unset;border-end-start-radius:inherit;border-end-end-radius:inherit}.card:focus-visible{outline:2px solid currentColor;outline-offset:2px}.card.bordered{border-width:1px;--tw-border-opacity: 1;border-color:hsl(var(--b2, var(--b1)) / var(--tw-border-opacity))}.card.compact .card-body{padding:1rem;font-size:.875rem;line-height:1.25rem}.card.image-full :where(figure){overflow:hidden;border-radius:inherit}@keyframes checkmark{0%{background-position-y:5px}50%{background-position-y:-2px}to{background-position-y:0}}@keyframes progress-loading{50%{left:107%}}@keyframes radiomark{0%{box-shadow:0 0 0 12px hsl(var(--b1)) inset,0 0 0 12px hsl(var(--b1)) inset}50%{box-shadow:0 0 0 3px hsl(var(--b1)) inset,0 0 0 3px hsl(var(--b1)) inset}to{box-shadow:0 0 0 4px hsl(var(--b1)) inset,0 0 0 4px hsl(var(--b1)) inset}}@keyframes rating-pop{0%{transform:translateY(-.125em)}40%{transform:translateY(-.125em)}to{transform:translateY(0)}}@keyframes toast-pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.bottom-0{bottom:0}.right-0{right:0}.top-0{top:0}.z-10{z-index:10}.z-40{z-index:40}.m-auto{margin:auto}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.ml-2{margin-left:.5rem}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-20{height:5rem}.h-\[400px\]{height:400px}.h-\[inherit\]{height:inherit}.h-full{height:100%}.h-screen{height:100vh}.min-h-0{min-height:0px}.w-1\/2{width:50%}.w-32{width:8rem}.w-\[12px\]{width:12px}.w-full{width:100%}.min-w-0{min-width:0px}.flex-1{flex:1 1 0%}.grow{flex-grow:1}.origin-top{transform-origin:top}.select-none{-webkit-user-select:none;user-select:none}.resize{resize:both}.snap-y{scroll-snap-type:y var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness: mandatory}.snap-center{scroll-snap-align:center}.grid-flow-col{grid-auto-flow:column}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.place-content-around{place-content:space-around}.items-center{align-items:center}.justify-center{justify-content:center}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-y-4{row-gap:1rem}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.scroll-smooth{scroll-behavior:smooth}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border-none{border-style:none}.bg-\[rgba\(20\,30\,40\,0\.3\)\]{background-color:#141e284d}.bg-\[rgba\(20\,30\,40\,0\.7\)\]{background-color:#141e28b3}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity))}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity))}.bg-orange-400{--tw-bg-opacity: 1;background-color:rgb(251 146 60 / var(--tw-bg-opacity))}.bg-purple-800{--tw-bg-opacity: 1;background-color:rgb(107 33 168 / var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity))}.bg-slate-900\/50{background-color:#0f172a80}.bg-opacity-10{--tw-bg-opacity: .1}.object-cover{object-fit:cover}.p-4{padding:1rem}.p-8{padding:2rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-7xl{font-size:4.5rem;line-height:1}.text-9xl{font-size:8rem;line-height:1}.font-bold{font-weight:700}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity))}.text-slate-200{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity))}.mix-blend-lighten{mix-blend-mode:lighten}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.backdrop-blur-lg{--tw-backdrop-blur: blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}::-webkit-scrollbar{width:0}@media (min-width: 1280px){.xl\:w-\[1100px\]{width:1100px}}.\[\&\>\*\:nth-child\(1\)\]\:ml-0>*:nth-child(1){margin-left:0} diff --git a/assets/index-a9c722d3.js b/assets/index-a9c722d3.js new file mode 100644 index 0000000..cea30c3 --- /dev/null +++ b/assets/index-a9c722d3.js @@ -0,0 +1,67 @@ +function sg(e,t){for(var n=0;ni[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=n(r);fetch(r.href,s)}})();function og(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ff={exports:{}},_={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var lr=Symbol.for("react.element"),ag=Symbol.for("react.portal"),lg=Symbol.for("react.fragment"),ug=Symbol.for("react.strict_mode"),cg=Symbol.for("react.profiler"),dg=Symbol.for("react.provider"),fg=Symbol.for("react.context"),mg=Symbol.for("react.forward_ref"),pg=Symbol.for("react.suspense"),hg=Symbol.for("react.memo"),gg=Symbol.for("react.lazy"),Ou=Symbol.iterator;function vg(e){return e===null||typeof e!="object"?null:(e=Ou&&e[Ou]||e["@@iterator"],typeof e=="function"?e:null)}var mf={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},pf=Object.assign,hf={};function oi(e,t,n){this.props=e,this.context=t,this.refs=hf,this.updater=n||mf}oi.prototype.isReactComponent={};oi.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};oi.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function gf(){}gf.prototype=oi.prototype;function dl(e,t,n){this.props=e,this.context=t,this.refs=hf,this.updater=n||mf}var fl=dl.prototype=new gf;fl.constructor=dl;pf(fl,oi.prototype);fl.isPureReactComponent=!0;var ju=Array.isArray,vf=Object.prototype.hasOwnProperty,ml={current:null},yf={key:!0,ref:!0,__self:!0,__source:!0};function wf(e,t,n){var i,r={},s=null,o=null;if(t!=null)for(i in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(s=""+t.key),t)vf.call(t,i)&&!yf.hasOwnProperty(i)&&(r[i]=t[i]);var a=arguments.length-2;if(a===1)r.children=n;else if(1>>1,U=L[R];if(0>>1;Rr(Ln,I))Rer(nn,Ln)?(L[R]=nn,L[Re]=I,R=Re):(L[R]=Ln,L[ot]=I,R=ot);else if(Rer(nn,I))L[R]=nn,L[Re]=I,R=Re;else break e}}return b}function r(L,b){var I=L.sortIndex-b.sortIndex;return I!==0?I:L.id-b.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();e.unstable_now=function(){return o.now()-a}}var l=[],u=[],c=1,d=null,f=3,h=!1,v=!1,y=!1,S=typeof setTimeout=="function"?setTimeout:null,g=typeof clearTimeout=="function"?clearTimeout:null,m=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function p(L){for(var b=n(u);b!==null;){if(b.callback===null)i(u);else if(b.startTime<=L)i(u),b.sortIndex=b.expirationTime,t(l,b);else break;b=n(u)}}function w(L){if(y=!1,p(L),!v)if(n(l)!==null)v=!0,Se(x);else{var b=n(u);b!==null&&qe(w,b.startTime-L)}}function x(L,b){v=!1,y&&(y=!1,g(C),C=-1),h=!0;var I=f;try{for(p(b),d=n(l);d!==null&&(!(d.expirationTime>b)||L&&!Y());){var R=d.callback;if(typeof R=="function"){d.callback=null,f=d.priorityLevel;var U=R(d.expirationTime<=b);b=e.unstable_now(),typeof U=="function"?d.callback=U:d===n(l)&&i(l),p(b)}else i(l);d=n(l)}if(d!==null)var ht=!0;else{var ot=n(u);ot!==null&&qe(w,ot.startTime-b),ht=!1}return ht}finally{d=null,f=I,h=!1}}var T=!1,E=null,C=-1,q=5,N=-1;function Y(){return!(e.unstable_now()-NL||125R?(L.sortIndex=I,t(u,L),n(l)===null&&L===n(u)&&(y?(g(C),C=-1):y=!0,qe(w,I-R))):(L.sortIndex=U,t(l,L),v||h||(v=!0,Se(x))),L},e.unstable_shouldYield=Y,e.unstable_wrapCallback=function(L){var b=f;return function(){var I=f;f=b;try{return L.apply(this,arguments)}finally{f=I}}}})(Pf);xf.exports=Pf;var Cg=xf.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Cf=P,Oe=Cg;function k(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Zo=Object.prototype.hasOwnProperty,kg=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Bu={},zu={};function Tg(e){return Zo.call(zu,e)?!0:Zo.call(Bu,e)?!1:kg.test(e)?zu[e]=!0:(Bu[e]=!0,!1)}function Eg(e,t,n,i){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return i?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Lg(e,t,n,i){if(t===null||typeof t>"u"||Eg(e,t,n,i))return!0;if(i)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ee(e,t,n,i,r,s,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=i,this.attributeNamespace=r,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=o}var pe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){pe[e]=new Ee(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];pe[t]=new Ee(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){pe[e]=new Ee(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){pe[e]=new Ee(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){pe[e]=new Ee(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){pe[e]=new Ee(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){pe[e]=new Ee(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){pe[e]=new Ee(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){pe[e]=new Ee(e,5,!1,e.toLowerCase(),null,!1,!1)});var hl=/[\-:]([a-z])/g;function gl(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(hl,gl);pe[t]=new Ee(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(hl,gl);pe[t]=new Ee(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(hl,gl);pe[t]=new Ee(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){pe[e]=new Ee(e,1,!1,e.toLowerCase(),null,!1,!1)});pe.xlinkHref=new Ee("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){pe[e]=new Ee(e,1,!1,e.toLowerCase(),null,!0,!0)});function vl(e,t,n,i){var r=pe.hasOwnProperty(t)?pe[t]:null;(r!==null?r.type!==0:i||!(2a||r[o]!==s[a]){var l=` +`+r[o].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=o&&0<=a);break}}}finally{mo=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Si(e):""}function Mg(e){switch(e.tag){case 5:return Si(e.type);case 16:return Si("Lazy");case 13:return Si("Suspense");case 19:return Si("SuspenseList");case 0:case 2:case 15:return e=po(e.type,!1),e;case 11:return e=po(e.type.render,!1),e;case 1:return e=po(e.type,!0),e;default:return""}}function na(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Vn:return"Fragment";case Nn:return"Portal";case Jo:return"Profiler";case yl:return"StrictMode";case ea:return"Suspense";case ta:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Ef:return(e.displayName||"Context")+".Consumer";case Tf:return(e._context.displayName||"Context")+".Provider";case wl:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Sl:return t=e.displayName||null,t!==null?t:na(e.type)||"Memo";case qt:t=e._payload,e=e._init;try{return na(e(t))}catch{}}return null}function Ag(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return na(t);case 8:return t===yl?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Kt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Mf(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ng(e){var t=Mf(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),i=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var r=n.get,s=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return r.call(this)},set:function(o){i=""+o,s.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return i},setValue:function(o){i=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Sr(e){e._valueTracker||(e._valueTracker=Ng(e))}function Af(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),i="";return e&&(i=Mf(e)?e.checked?"true":"false":e.value),e=i,e!==n?(t.setValue(e),!0):!1}function rs(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function ia(e,t){var n=t.checked;return J({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function $u(e,t){var n=t.defaultValue==null?"":t.defaultValue,i=t.checked!=null?t.checked:t.defaultChecked;n=Kt(t.value!=null?t.value:n),e._wrapperState={initialChecked:i,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Nf(e,t){t=t.checked,t!=null&&vl(e,"checked",t,!1)}function ra(e,t){Nf(e,t);var n=Kt(t.value),i=t.type;if(n!=null)i==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(i==="submit"||i==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?sa(e,t.type,n):t.hasOwnProperty("defaultValue")&&sa(e,t.type,Kt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Wu(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var i=t.type;if(!(i!=="submit"&&i!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function sa(e,t,n){(t!=="number"||rs(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var xi=Array.isArray;function Hn(e,t,n,i){if(e=e.options,t){t={};for(var r=0;r"+t.valueOf().toString()+"",t=xr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Fi(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Ti={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Vg=["Webkit","ms","Moz","O"];Object.keys(Ti).forEach(function(e){Vg.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Ti[t]=Ti[e]})});function Df(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Ti.hasOwnProperty(e)&&Ti[e]?(""+t).trim():t+"px"}function bf(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var i=n.indexOf("--")===0,r=Df(n,t[n],i);n==="float"&&(n="cssFloat"),i?e.setProperty(n,r):e[n]=r}}var qg=J({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function la(e,t){if(t){if(qg[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(k(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(k(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(k(61))}if(t.style!=null&&typeof t.style!="object")throw Error(k(62))}}function ua(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var ca=null;function xl(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var da=null,Qn=null,Kn=null;function Ku(e){if(e=dr(e)){if(typeof da!="function")throw Error(k(280));var t=e.stateNode;t&&(t=Fs(t),da(e.stateNode,e.type,t))}}function If(e){Qn?Kn?Kn.push(e):Kn=[e]:Qn=e}function _f(){if(Qn){var e=Qn,t=Kn;if(Kn=Qn=null,Ku(e),t)for(e=0;e>>=0,e===0?32:31-(Ug(e)/$g|0)|0}var Pr=64,Cr=4194304;function Pi(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ls(e,t){var n=e.pendingLanes;if(n===0)return 0;var i=0,r=e.suspendedLanes,s=e.pingedLanes,o=n&268435455;if(o!==0){var a=o&~r;a!==0?i=Pi(a):(s&=o,s!==0&&(i=Pi(s)))}else o=n&~r,o!==0?i=Pi(o):s!==0&&(i=Pi(s));if(i===0)return 0;if(t!==0&&t!==i&&!(t&r)&&(r=i&-i,s=t&-t,r>=s||r===16&&(s&4194240)!==0))return t;if(i&4&&(i|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=i;0n;n++)t.push(e);return t}function ur(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-et(t),e[t]=n}function Kg(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var i=e.eventTimes;for(e=e.expirationTimes;0=Li),ic=String.fromCharCode(32),rc=!1;function im(e,t){switch(e){case"keyup":return Pv.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function rm(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var qn=!1;function kv(e,t){switch(e){case"compositionend":return rm(t);case"keypress":return t.which!==32?null:(rc=!0,ic);case"textInput":return e=t.data,e===ic&&rc?null:e;default:return null}}function Tv(e,t){if(qn)return e==="compositionend"||!Al&&im(e,t)?(e=tm(),Wr=El=_t=null,qn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=i}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=lc(n)}}function lm(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?lm(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function um(){for(var e=window,t=rs();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=rs(e.document)}return t}function Nl(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Dv(e){var t=um(),n=e.focusedElem,i=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&lm(n.ownerDocument.documentElement,n)){if(i!==null&&Nl(n)){if(t=i.start,e=i.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var r=n.textContent.length,s=Math.min(i.start,r);i=i.end===void 0?s:Math.min(i.end,r),!e.extend&&s>i&&(r=i,i=s,s=r),r=uc(n,s);var o=uc(n,i);r&&o&&(e.rangeCount!==1||e.anchorNode!==r.node||e.anchorOffset!==r.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(r.node,r.offset),e.removeAllRanges(),s>i?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Rn=null,va=null,Ai=null,ya=!1;function cc(e,t,n){var i=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ya||Rn==null||Rn!==rs(i)||(i=Rn,"selectionStart"in i&&Nl(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),Ai&&Hi(Ai,i)||(Ai=i,i=ds(va,"onSelect"),0In||(e.current=ka[In],ka[In]=null,In--)}function $(e,t){In++,ka[In]=e.current,e.current=t}var Gt={},we=Jt(Gt),Ae=Jt(!1),vn=Gt;function Jn(e,t){var n=e.type.contextTypes;if(!n)return Gt;var i=e.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===t)return i.__reactInternalMemoizedMaskedChildContext;var r={},s;for(s in n)r[s]=t[s];return i&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=r),r}function Ne(e){return e=e.childContextTypes,e!=null}function ms(){H(Ae),H(we)}function vc(e,t,n){if(we.current!==Gt)throw Error(k(168));$(we,t),$(Ae,n)}function ym(e,t,n){var i=e.stateNode;if(t=t.childContextTypes,typeof i.getChildContext!="function")return n;i=i.getChildContext();for(var r in i)if(!(r in t))throw Error(k(108,Ag(e)||"Unknown",r));return J({},n,i)}function ps(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Gt,vn=we.current,$(we,e),$(Ae,Ae.current),!0}function yc(e,t,n){var i=e.stateNode;if(!i)throw Error(k(169));n?(e=ym(e,t,vn),i.__reactInternalMemoizedMergedChildContext=e,H(Ae),H(we),$(we,e)):H(Ae),$(Ae,n)}var vt=null,Bs=!1,Mo=!1;function wm(e){vt===null?vt=[e]:vt.push(e)}function Hv(e){Bs=!0,wm(e)}function en(){if(!Mo&&vt!==null){Mo=!0;var e=0,t=z;try{var n=vt;for(z=1;e>=o,r-=o,yt=1<<32-et(t)+r|n<C?(q=E,E=null):q=E.sibling;var N=f(g,E,p[C],w);if(N===null){E===null&&(E=q);break}e&&E&&N.alternate===null&&t(g,E),m=s(N,m,C),T===null?x=N:T.sibling=N,T=N,E=q}if(C===p.length)return n(g,E),K&&on(g,C),x;if(E===null){for(;CC?(q=E,E=null):q=E.sibling;var Y=f(g,E,N.value,w);if(Y===null){E===null&&(E=q);break}e&&E&&Y.alternate===null&&t(g,E),m=s(Y,m,C),T===null?x=Y:T.sibling=Y,T=Y,E=q}if(N.done)return n(g,E),K&&on(g,C),x;if(E===null){for(;!N.done;C++,N=p.next())N=d(g,N.value,w),N!==null&&(m=s(N,m,C),T===null?x=N:T.sibling=N,T=N);return K&&on(g,C),x}for(E=i(g,E);!N.done;C++,N=p.next())N=h(E,g,C,N.value,w),N!==null&&(e&&N.alternate!==null&&E.delete(N.key===null?C:N.key),m=s(N,m,C),T===null?x=N:T.sibling=N,T=N);return e&&E.forEach(function(he){return t(g,he)}),K&&on(g,C),x}function S(g,m,p,w){if(typeof p=="object"&&p!==null&&p.type===Vn&&p.key===null&&(p=p.props.children),typeof p=="object"&&p!==null){switch(p.$$typeof){case wr:e:{for(var x=p.key,T=m;T!==null;){if(T.key===x){if(x=p.type,x===Vn){if(T.tag===7){n(g,T.sibling),m=r(T,p.props.children),m.return=g,g=m;break e}}else if(T.elementType===x||typeof x=="object"&&x!==null&&x.$$typeof===qt&&Tc(x)===T.type){n(g,T.sibling),m=r(T,p.props),m.ref=pi(g,T,p),m.return=g,g=m;break e}n(g,T);break}else t(g,T);T=T.sibling}p.type===Vn?(m=gn(p.props.children,g.mode,w,p.key),m.return=g,g=m):(w=Jr(p.type,p.key,p.props,null,g.mode,w),w.ref=pi(g,m,p),w.return=g,g=w)}return o(g);case Nn:e:{for(T=p.key;m!==null;){if(m.key===T)if(m.tag===4&&m.stateNode.containerInfo===p.containerInfo&&m.stateNode.implementation===p.implementation){n(g,m.sibling),m=r(m,p.children||[]),m.return=g,g=m;break e}else{n(g,m);break}else t(g,m);m=m.sibling}m=Io(p,g.mode,w),m.return=g,g=m}return o(g);case qt:return T=p._init,S(g,m,T(p._payload),w)}if(xi(p))return v(g,m,p,w);if(ui(p))return y(g,m,p,w);Nr(g,p)}return typeof p=="string"&&p!==""||typeof p=="number"?(p=""+p,m!==null&&m.tag===6?(n(g,m.sibling),m=r(m,p),m.return=g,g=m):(n(g,m),m=bo(p,g.mode,w),m.return=g,g=m),o(g)):n(g,m)}return S}var ti=Lm(!0),Mm=Lm(!1),fr={},ft=Jt(fr),Yi=Jt(fr),Xi=Jt(fr);function fn(e){if(e===fr)throw Error(k(174));return e}function jl(e,t){switch($(Xi,t),$(Yi,e),$(ft,fr),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:aa(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=aa(t,e)}H(ft),$(ft,t)}function ni(){H(ft),H(Yi),H(Xi)}function Am(e){fn(Xi.current);var t=fn(ft.current),n=aa(t,e.type);t!==n&&($(Yi,e),$(ft,n))}function Fl(e){Yi.current===e&&(H(ft),H(Yi))}var X=Jt(0);function Ss(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Ao=[];function Bl(){for(var e=0;en?n:4,e(!0);var i=No.transition;No.transition={};try{e(!1),t()}finally{z=n,No.transition=i}}function Wm(){return Ke().memoizedState}function Yv(e,t,n){var i=Wt(e);if(n={lane:i,action:n,hasEagerState:!1,eagerState:null,next:null},Hm(e))Qm(t,n);else if(n=Cm(e,t,n,i),n!==null){var r=ke();tt(n,e,i,r),Km(n,t,i)}}function Xv(e,t,n){var i=Wt(e),r={lane:i,action:n,hasEagerState:!1,eagerState:null,next:null};if(Hm(e))Qm(t,r);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var o=t.lastRenderedState,a=s(o,n);if(r.hasEagerState=!0,r.eagerState=a,it(a,o)){var l=t.interleaved;l===null?(r.next=r,_l(t)):(r.next=l.next,l.next=r),t.interleaved=r;return}}catch{}finally{}n=Cm(e,t,r,i),n!==null&&(r=ke(),tt(n,e,i,r),Km(n,t,i))}}function Hm(e){var t=e.alternate;return e===Z||t!==null&&t===Z}function Qm(e,t){Ni=xs=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Km(e,t,n){if(n&4194240){var i=t.lanes;i&=e.pendingLanes,n|=i,t.lanes=n,Cl(e,n)}}var Ps={readContext:Qe,useCallback:ge,useContext:ge,useEffect:ge,useImperativeHandle:ge,useInsertionEffect:ge,useLayoutEffect:ge,useMemo:ge,useReducer:ge,useRef:ge,useState:ge,useDebugValue:ge,useDeferredValue:ge,useTransition:ge,useMutableSource:ge,useSyncExternalStore:ge,useId:ge,unstable_isNewReconciler:!1},Zv={readContext:Qe,useCallback:function(e,t){return lt().memoizedState=[e,t===void 0?null:t],e},useContext:Qe,useEffect:Lc,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Gr(4194308,4,Fm.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Gr(4194308,4,e,t)},useInsertionEffect:function(e,t){return Gr(4,2,e,t)},useMemo:function(e,t){var n=lt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var i=lt();return t=n!==void 0?n(t):t,i.memoizedState=i.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},i.queue=e,e=e.dispatch=Yv.bind(null,Z,e),[i.memoizedState,e]},useRef:function(e){var t=lt();return e={current:e},t.memoizedState=e},useState:Ec,useDebugValue:Hl,useDeferredValue:function(e){return lt().memoizedState=e},useTransition:function(){var e=Ec(!1),t=e[0];return e=Gv.bind(null,e[1]),lt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var i=Z,r=lt();if(K){if(n===void 0)throw Error(k(407));n=n()}else{if(n=t(),ue===null)throw Error(k(349));wn&30||qm(i,t,n)}r.memoizedState=n;var s={value:n,getSnapshot:t};return r.queue=s,Lc(Dm.bind(null,i,s,e),[e]),i.flags|=2048,er(9,Rm.bind(null,i,s,n,t),void 0,null),n},useId:function(){var e=lt(),t=ue.identifierPrefix;if(K){var n=wt,i=yt;n=(i&~(1<<32-et(i)-1)).toString(32)+n,t=":"+t+"R"+n,n=Zi++,0<\/script>",e=e.removeChild(e.firstChild)):typeof i.is=="string"?e=o.createElement(n,{is:i.is}):(e=o.createElement(n),n==="select"&&(o=e,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):e=o.createElementNS(e,n),e[ct]=t,e[Gi]=i,ip(e,t,!1,!1),t.stateNode=e;e:{switch(o=ua(n,i),n){case"dialog":W("cancel",e),W("close",e),r=i;break;case"iframe":case"object":case"embed":W("load",e),r=i;break;case"video":case"audio":for(r=0;rri&&(t.flags|=128,i=!0,hi(s,!1),t.lanes=4194304)}else{if(!i)if(e=Ss(o),e!==null){if(t.flags|=128,i=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),hi(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!K)return ve(t),null}else 2*ie()-s.renderingStartTime>ri&&n!==1073741824&&(t.flags|=128,i=!0,hi(s,!1),t.lanes=4194304);s.isBackwards?(o.sibling=t.child,t.child=o):(n=s.last,n!==null?n.sibling=o:t.child=o,s.last=o)}return s.tail!==null?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=ie(),t.sibling=null,n=X.current,$(X,i?n&1|2:n&1),t):(ve(t),null);case 22:case 23:return Zl(),i=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==i&&(t.flags|=8192),i&&t.mode&1?De&1073741824&&(ve(t),t.subtreeFlags&6&&(t.flags|=8192)):ve(t),null;case 24:return null;case 25:return null}throw Error(k(156,t.tag))}function o0(e,t){switch(ql(t),t.tag){case 1:return Ne(t.type)&&ms(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ni(),H(Ae),H(we),Bl(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Fl(t),null;case 13:if(H(X),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(k(340));ei()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return H(X),null;case 4:return ni(),null;case 10:return Il(t.type._context),null;case 22:case 23:return Zl(),null;case 24:return null;default:return null}}var qr=!1,ye=!1,a0=typeof WeakSet=="function"?WeakSet:Set,M=null;function Fn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(i){ee(e,t,i)}else n.current=null}function Ia(e,t,n){try{n()}catch(i){ee(e,t,i)}}var Ic=!1;function l0(e,t){if(wa=us,e=um(),Nl(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var i=n.getSelection&&n.getSelection();if(i&&i.rangeCount!==0){n=i.anchorNode;var r=i.anchorOffset,s=i.focusNode;i=i.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,a=-1,l=-1,u=0,c=0,d=e,f=null;t:for(;;){for(var h;d!==n||r!==0&&d.nodeType!==3||(a=o+r),d!==s||i!==0&&d.nodeType!==3||(l=o+i),d.nodeType===3&&(o+=d.nodeValue.length),(h=d.firstChild)!==null;)f=d,d=h;for(;;){if(d===e)break t;if(f===n&&++u===r&&(a=o),f===s&&++c===i&&(l=o),(h=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=h}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Sa={focusedElem:e,selectionRange:n},us=!1,M=t;M!==null;)if(t=M,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,M=e;else for(;M!==null;){t=M;try{var v=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(v!==null){var y=v.memoizedProps,S=v.memoizedState,g=t.stateNode,m=g.getSnapshotBeforeUpdate(t.elementType===t.type?y:Ye(t.type,y),S);g.__reactInternalSnapshotBeforeUpdate=m}break;case 3:var p=t.stateNode.containerInfo;p.nodeType===1?p.textContent="":p.nodeType===9&&p.documentElement&&p.removeChild(p.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(k(163))}}catch(w){ee(t,t.return,w)}if(e=t.sibling,e!==null){e.return=t.return,M=e;break}M=t.return}return v=Ic,Ic=!1,v}function Vi(e,t,n){var i=t.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var r=i=i.next;do{if((r.tag&e)===e){var s=r.destroy;r.destroy=void 0,s!==void 0&&Ia(t,n,s)}r=r.next}while(r!==i)}}function $s(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var i=n.create;n.destroy=i()}n=n.next}while(n!==t)}}function _a(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function op(e){var t=e.alternate;t!==null&&(e.alternate=null,op(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[ct],delete t[Gi],delete t[Ca],delete t[$v],delete t[Wv])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ap(e){return e.tag===5||e.tag===3||e.tag===4}function _c(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||ap(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Oa(e,t,n){var i=e.tag;if(i===5||i===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=fs));else if(i!==4&&(e=e.child,e!==null))for(Oa(e,t,n),e=e.sibling;e!==null;)Oa(e,t,n),e=e.sibling}function ja(e,t,n){var i=e.tag;if(i===5||i===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(i!==4&&(e=e.child,e!==null))for(ja(e,t,n),e=e.sibling;e!==null;)ja(e,t,n),e=e.sibling}var fe=null,Xe=!1;function At(e,t,n){for(n=n.child;n!==null;)lp(e,t,n),n=n.sibling}function lp(e,t,n){if(dt&&typeof dt.onCommitFiberUnmount=="function")try{dt.onCommitFiberUnmount(Is,n)}catch{}switch(n.tag){case 5:ye||Fn(n,t);case 6:var i=fe,r=Xe;fe=null,At(e,t,n),fe=i,Xe=r,fe!==null&&(Xe?(e=fe,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):fe.removeChild(n.stateNode));break;case 18:fe!==null&&(Xe?(e=fe,n=n.stateNode,e.nodeType===8?Lo(e.parentNode,n):e.nodeType===1&&Lo(e,n),$i(e)):Lo(fe,n.stateNode));break;case 4:i=fe,r=Xe,fe=n.stateNode.containerInfo,Xe=!0,At(e,t,n),fe=i,Xe=r;break;case 0:case 11:case 14:case 15:if(!ye&&(i=n.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){r=i=i.next;do{var s=r,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&Ia(n,t,o),r=r.next}while(r!==i)}At(e,t,n);break;case 1:if(!ye&&(Fn(n,t),i=n.stateNode,typeof i.componentWillUnmount=="function"))try{i.props=n.memoizedProps,i.state=n.memoizedState,i.componentWillUnmount()}catch(a){ee(n,t,a)}At(e,t,n);break;case 21:At(e,t,n);break;case 22:n.mode&1?(ye=(i=ye)||n.memoizedState!==null,At(e,t,n),ye=i):At(e,t,n);break;default:At(e,t,n)}}function Oc(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new a0),t.forEach(function(i){var r=v0.bind(null,e,i);n.has(i)||(n.add(i),i.then(r,r))})}}function Ge(e,t){var n=t.deletions;if(n!==null)for(var i=0;ir&&(r=o),i&=~s}if(i=r,i=ie()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*c0(i/1960))-i,10e?16:e,Ot===null)var i=!1;else{if(e=Ot,Ot=null,Ts=0,j&6)throw Error(k(331));var r=j;for(j|=4,M=e.current;M!==null;){var s=M,o=s.child;if(M.flags&16){var a=s.deletions;if(a!==null){for(var l=0;lie()-Yl?hn(e,0):Gl|=n),Ve(e,t)}function gp(e,t){t===0&&(e.mode&1?(t=Cr,Cr<<=1,!(Cr&130023424)&&(Cr=4194304)):t=1);var n=ke();e=Et(e,t),e!==null&&(ur(e,t,n),Ve(e,n))}function g0(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),gp(e,n)}function v0(e,t){var n=0;switch(e.tag){case 13:var i=e.stateNode,r=e.memoizedState;r!==null&&(n=r.retryLane);break;case 19:i=e.stateNode;break;default:throw Error(k(314))}i!==null&&i.delete(t),gp(e,n)}var vp;vp=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Ae.current)Me=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Me=!1,r0(e,t,n);Me=!!(e.flags&131072)}else Me=!1,K&&t.flags&1048576&&Sm(t,gs,t.index);switch(t.lanes=0,t.tag){case 2:var i=t.type;Yr(e,t),e=t.pendingProps;var r=Jn(t,we.current);Yn(t,n),r=Ul(null,t,i,e,r,n);var s=$l();return t.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ne(i)?(s=!0,ps(t)):s=!1,t.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,Ol(t),r.updater=zs,t.stateNode=r,r._reactInternals=t,Aa(t,i,e,n),t=qa(null,t,i,!0,s,n)):(t.tag=0,K&&s&&Vl(t),Ce(null,t,r,n),t=t.child),t;case 16:i=t.elementType;e:{switch(Yr(e,t),e=t.pendingProps,r=i._init,i=r(i._payload),t.type=i,r=t.tag=w0(i),e=Ye(i,e),r){case 0:t=Va(null,t,i,e,n);break e;case 1:t=Rc(null,t,i,e,n);break e;case 11:t=Vc(null,t,i,e,n);break e;case 14:t=qc(null,t,i,Ye(i.type,e),n);break e}throw Error(k(306,i,""))}return t;case 0:return i=t.type,r=t.pendingProps,r=t.elementType===i?r:Ye(i,r),Va(e,t,i,r,n);case 1:return i=t.type,r=t.pendingProps,r=t.elementType===i?r:Ye(i,r),Rc(e,t,i,r,n);case 3:e:{if(ep(t),e===null)throw Error(k(387));i=t.pendingProps,s=t.memoizedState,r=s.element,km(e,t),ws(t,i,null,n);var o=t.memoizedState;if(i=o.element,s.isDehydrated)if(s={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){r=ii(Error(k(423)),t),t=Dc(e,t,i,n,r);break e}else if(i!==r){r=ii(Error(k(424)),t),t=Dc(e,t,i,n,r);break e}else for(be=zt(t.stateNode.containerInfo.firstChild),_e=t,K=!0,Ze=null,n=Mm(t,null,i,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ei(),i===r){t=Lt(e,t,n);break e}Ce(e,t,i,n)}t=t.child}return t;case 5:return Am(t),e===null&&Ea(t),i=t.type,r=t.pendingProps,s=e!==null?e.memoizedProps:null,o=r.children,xa(i,r)?o=null:s!==null&&xa(i,s)&&(t.flags|=32),Jm(e,t),Ce(e,t,o,n),t.child;case 6:return e===null&&Ea(t),null;case 13:return tp(e,t,n);case 4:return jl(t,t.stateNode.containerInfo),i=t.pendingProps,e===null?t.child=ti(t,null,i,n):Ce(e,t,i,n),t.child;case 11:return i=t.type,r=t.pendingProps,r=t.elementType===i?r:Ye(i,r),Vc(e,t,i,r,n);case 7:return Ce(e,t,t.pendingProps,n),t.child;case 8:return Ce(e,t,t.pendingProps.children,n),t.child;case 12:return Ce(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(i=t.type._context,r=t.pendingProps,s=t.memoizedProps,o=r.value,$(vs,i._currentValue),i._currentValue=o,s!==null)if(it(s.value,o)){if(s.children===r.children&&!Ae.current){t=Lt(e,t,n);break e}}else for(s=t.child,s!==null&&(s.return=t);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var l=a.firstContext;l!==null;){if(l.context===i){if(s.tag===1){l=xt(-1,n&-n),l.tag=2;var u=s.updateQueue;if(u!==null){u=u.shared;var c=u.pending;c===null?l.next=l:(l.next=c.next,c.next=l),u.pending=l}}s.lanes|=n,l=s.alternate,l!==null&&(l.lanes|=n),La(s.return,n,t),a.lanes|=n;break}l=l.next}}else if(s.tag===10)o=s.type===t.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(k(341));o.lanes|=n,a=o.alternate,a!==null&&(a.lanes|=n),La(o,n,t),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===t){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}Ce(e,t,r.children,n),t=t.child}return t;case 9:return r=t.type,i=t.pendingProps.children,Yn(t,n),r=Qe(r),i=i(r),t.flags|=1,Ce(e,t,i,n),t.child;case 14:return i=t.type,r=Ye(i,t.pendingProps),r=Ye(i.type,r),qc(e,t,i,r,n);case 15:return Xm(e,t,t.type,t.pendingProps,n);case 17:return i=t.type,r=t.pendingProps,r=t.elementType===i?r:Ye(i,r),Yr(e,t),t.tag=1,Ne(i)?(e=!0,ps(t)):e=!1,Yn(t,n),Em(t,i,r),Aa(t,i,r,n),qa(null,t,i,!0,e,n);case 19:return np(e,t,n);case 22:return Zm(e,t,n)}throw Error(k(156,t.tag))};function yp(e,t){return $f(e,t)}function y0(e,t,n,i){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function We(e,t,n,i){return new y0(e,t,n,i)}function eu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function w0(e){if(typeof e=="function")return eu(e)?1:0;if(e!=null){if(e=e.$$typeof,e===wl)return 11;if(e===Sl)return 14}return 2}function Ht(e,t){var n=e.alternate;return n===null?(n=We(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Jr(e,t,n,i,r,s){var o=2;if(i=e,typeof e=="function")eu(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Vn:return gn(n.children,r,s,t);case yl:o=8,r|=8;break;case Jo:return e=We(12,n,t,r|2),e.elementType=Jo,e.lanes=s,e;case ea:return e=We(13,n,t,r),e.elementType=ea,e.lanes=s,e;case ta:return e=We(19,n,t,r),e.elementType=ta,e.lanes=s,e;case Lf:return Hs(n,r,s,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Tf:o=10;break e;case Ef:o=9;break e;case wl:o=11;break e;case Sl:o=14;break e;case qt:o=16,i=null;break e}throw Error(k(130,e==null?e:typeof e,""))}return t=We(o,n,t,r),t.elementType=e,t.type=i,t.lanes=s,t}function gn(e,t,n,i){return e=We(7,e,i,t),e.lanes=n,e}function Hs(e,t,n,i){return e=We(22,e,i,t),e.elementType=Lf,e.lanes=n,e.stateNode={isHidden:!1},e}function bo(e,t,n){return e=We(6,e,null,t),e.lanes=n,e}function Io(e,t,n){return t=We(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function S0(e,t,n,i,r){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=go(0),this.expirationTimes=go(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=go(0),this.identifierPrefix=i,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function tu(e,t,n,i,r,s,o,a,l){return e=new S0(e,t,n,a,l),t===1?(t=1,s===!0&&(t|=8)):t=0,s=We(3,null,null,t),e.current=s,s.stateNode=e,s.memoizedState={element:i,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ol(s),e}function x0(e,t,n){var i=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Pp)}catch(e){console.error(e)}}Pp(),Sf.exports=Fe;var E0=Sf.exports,Hc=E0;Xo.createRoot=Hc.createRoot,Xo.hydrateRoot=Hc.hydrateRoot;const Xs=P.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"}),Zs=P.createContext({}),su=P.createContext(null),Js=typeof document<"u",ou=Js?P.useLayoutEffect:P.useEffect,Cp=P.createContext({strict:!1});function L0(e,t,n,i){const{visualElement:r}=P.useContext(Zs),s=P.useContext(Cp),o=P.useContext(su),a=P.useContext(Xs).reducedMotion,l=P.useRef();i=i||s.renderer,!l.current&&i&&(l.current=i(e,{visualState:t,parent:r,props:n,presenceContext:o,blockInitialAnimation:o?o.initial===!1:!1,reducedMotionConfig:a}));const u=l.current;P.useInsertionEffect(()=>{u&&u.update(n,o)});const c=P.useRef(!!window.HandoffAppearAnimations);return ou(()=>{u&&(u.render(),c.current&&u.animationState&&u.animationState.animateChanges())}),P.useEffect(()=>{u&&(u.updateFeatures(),!c.current&&u.animationState&&u.animationState.animateChanges(),window.HandoffAppearAnimations=void 0,c.current=!1)}),u}function zn(e){return typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function M0(e,t,n){return P.useCallback(i=>{i&&e.mount&&e.mount(i),t&&(i?t.mount(i):t.unmount()),n&&(typeof n=="function"?n(i):zn(n)&&(n.current=i))},[t])}function nr(e){return typeof e=="string"||Array.isArray(e)}function eo(e){return typeof e=="object"&&typeof e.start=="function"}const au=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],lu=["initial",...au];function to(e){return eo(e.animate)||lu.some(t=>nr(e[t]))}function kp(e){return!!(to(e)||e.variants)}function A0(e,t){if(to(e)){const{initial:n,animate:i}=e;return{initial:n===!1||nr(n)?n:void 0,animate:nr(i)?i:void 0}}return e.inherit!==!1?t:{}}function N0(e){const{initial:t,animate:n}=A0(e,P.useContext(Zs));return P.useMemo(()=>({initial:t,animate:n}),[Qc(t),Qc(n)])}function Qc(e){return Array.isArray(e)?e.join(" "):e}const Kc={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},ir={};for(const e in Kc)ir[e]={isEnabled:t=>Kc[e].some(n=>!!t[n])};function V0(e){for(const t in e)ir[t]={...ir[t],...e[t]}}const Tp=P.createContext({}),Ep=P.createContext({}),q0=Symbol.for("motionComponentSymbol");function R0({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:i,Component:r}){e&&V0(e);function s(a,l){let u;const c={...P.useContext(Xs),...a,layoutId:D0(a)},{isStatic:d}=c,f=N0(a),h=i(a,d);if(!d&&Js){f.visualElement=L0(r,h,c,t);const v=P.useContext(Ep),y=P.useContext(Cp).strict;f.visualElement&&(u=f.visualElement.loadFeatures(c,y,e,v))}return P.createElement(Zs.Provider,{value:f},u&&f.visualElement?P.createElement(u,{visualElement:f.visualElement,...c}):null,n(r,a,M0(h,f.visualElement,l),h,d,f.visualElement))}const o=P.forwardRef(s);return o[q0]=r,o}function D0({layoutId:e}){const t=P.useContext(Tp).id;return t&&e!==void 0?t+"-"+e:e}function b0(e){function t(i,r={}){return R0(e(i,r))}if(typeof Proxy>"u")return t;const n=new Map;return new Proxy(t,{get:(i,r)=>(n.has(r)||n.set(r,t(r)),n.get(r))})}const I0=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function uu(e){return typeof e!="string"||e.includes("-")?!1:!!(I0.indexOf(e)>-1||/[A-Z]/.test(e))}const Ms={};function _0(e){Object.assign(Ms,e)}const mr=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Tn=new Set(mr);function Lp(e,{layout:t,layoutId:n}){return Tn.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Ms[e]||e==="opacity")}const ce=e=>!!(e&&e.getVelocity),O0={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},j0=mr.length;function F0(e,{enableHardwareAcceleration:t=!0,allowTransformNone:n=!0},i,r){let s="";for(let o=0;ot=>typeof t=="string"&&t.startsWith(e),Ap=Mp("--"),$a=Mp("var(--"),B0=/var\s*\(\s*--[\w-]+(\s*,\s*(?:(?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)+)?\s*\)/g,z0=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Yt=(e,t,n)=>Math.min(Math.max(n,e),t),En={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Di={...En,transform:e=>Yt(0,1,e)},br={...En,default:1},bi=e=>Math.round(e*1e5)/1e5,no=/(-)?([\d]*\.?[\d])+/g,Np=/(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi,U0=/^(#[0-9a-f]{3,8}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function pr(e){return typeof e=="string"}const hr=e=>({test:t=>pr(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Nt=hr("deg"),mt=hr("%"),V=hr("px"),$0=hr("vh"),W0=hr("vw"),Gc={...mt,parse:e=>mt.parse(e)/100,transform:e=>mt.transform(e*100)},Yc={...En,transform:Math.round},Vp={borderWidth:V,borderTopWidth:V,borderRightWidth:V,borderBottomWidth:V,borderLeftWidth:V,borderRadius:V,radius:V,borderTopLeftRadius:V,borderTopRightRadius:V,borderBottomRightRadius:V,borderBottomLeftRadius:V,width:V,maxWidth:V,height:V,maxHeight:V,size:V,top:V,right:V,bottom:V,left:V,padding:V,paddingTop:V,paddingRight:V,paddingBottom:V,paddingLeft:V,margin:V,marginTop:V,marginRight:V,marginBottom:V,marginLeft:V,rotate:Nt,rotateX:Nt,rotateY:Nt,rotateZ:Nt,scale:br,scaleX:br,scaleY:br,scaleZ:br,skew:Nt,skewX:Nt,skewY:Nt,distance:V,translateX:V,translateY:V,translateZ:V,x:V,y:V,z:V,perspective:V,transformPerspective:V,opacity:Di,originX:Gc,originY:Gc,originZ:V,zIndex:Yc,fillOpacity:Di,strokeOpacity:Di,numOctaves:Yc};function cu(e,t,n,i){const{style:r,vars:s,transform:o,transformOrigin:a}=e;let l=!1,u=!1,c=!0;for(const d in t){const f=t[d];if(Ap(d)){s[d]=f;continue}const h=Vp[d],v=z0(f,h);if(Tn.has(d)){if(l=!0,o[d]=v,!c)continue;f!==(h.default||0)&&(c=!1)}else d.startsWith("origin")?(u=!0,a[d]=v):r[d]=v}if(t.transform||(l||i?r.transform=F0(e.transform,n,c,i):r.transform&&(r.transform="none")),u){const{originX:d="50%",originY:f="50%",originZ:h=0}=a;r.transformOrigin=`${d} ${f} ${h}`}}const du=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function qp(e,t,n){for(const i in t)!ce(t[i])&&!Lp(i,n)&&(e[i]=t[i])}function H0({transformTemplate:e},t,n){return P.useMemo(()=>{const i=du();return cu(i,t,{enableHardwareAcceleration:!n},e),Object.assign({},i.vars,i.style)},[t])}function Q0(e,t,n){const i=e.style||{},r={};return qp(r,i,e),Object.assign(r,H0(e,t,n)),e.transformValues?e.transformValues(r):r}function K0(e,t,n){const i={},r=Q0(e,t,n);return e.drag&&e.dragListener!==!1&&(i.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(i.tabIndex=0),i.style=r,i}const G0=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","transformValues","custom","inherit","onLayoutAnimationStart","onLayoutAnimationComplete","onLayoutMeasure","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","ignoreStrict","viewport"]);function As(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||G0.has(e)}let Rp=e=>!As(e);function Y0(e){e&&(Rp=t=>t.startsWith("on")?!As(t):e(t))}try{Y0(require("@emotion/is-prop-valid").default)}catch{}function X0(e,t,n){const i={};for(const r in e)r==="values"&&typeof e.values=="object"||(Rp(r)||n===!0&&As(r)||!t&&!As(r)||e.draggable&&r.startsWith("onDrag"))&&(i[r]=e[r]);return i}function Xc(e,t,n){return typeof e=="string"?e:V.transform(t+n*e)}function Z0(e,t,n){const i=Xc(t,e.x,e.width),r=Xc(n,e.y,e.height);return`${i} ${r}`}const J0={offset:"stroke-dashoffset",array:"stroke-dasharray"},ey={offset:"strokeDashoffset",array:"strokeDasharray"};function ty(e,t,n=1,i=0,r=!0){e.pathLength=1;const s=r?J0:ey;e[s.offset]=V.transform(-i);const o=V.transform(t),a=V.transform(n);e[s.array]=`${o} ${a}`}function fu(e,{attrX:t,attrY:n,attrScale:i,originX:r,originY:s,pathLength:o,pathSpacing:a=1,pathOffset:l=0,...u},c,d,f){if(cu(e,u,c,f),d){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:h,style:v,dimensions:y}=e;h.transform&&(y&&(v.transform=h.transform),delete h.transform),y&&(r!==void 0||s!==void 0||v.transform)&&(v.transformOrigin=Z0(y,r!==void 0?r:.5,s!==void 0?s:.5)),t!==void 0&&(h.x=t),n!==void 0&&(h.y=n),i!==void 0&&(h.scale=i),o!==void 0&&ty(h,o,a,l,!1)}const Dp=()=>({...du(),attrs:{}}),mu=e=>typeof e=="string"&&e.toLowerCase()==="svg";function ny(e,t,n,i){const r=P.useMemo(()=>{const s=Dp();return fu(s,t,{enableHardwareAcceleration:!1},mu(i),e.transformTemplate),{...s.attrs,style:{...s.style}}},[t]);if(e.style){const s={};qp(s,e.style,e),r.style={...s,...r.style}}return r}function iy(e=!1){return(n,i,r,{latestValues:s},o)=>{const l=(uu(n)?ny:K0)(i,s,o,n),c={...X0(i,typeof n=="string",e),...l,ref:r},{children:d}=i,f=P.useMemo(()=>ce(d)?d.get():d,[d]);return P.createElement(n,{...c,children:f})}}const pu=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();function bp(e,{style:t,vars:n},i,r){Object.assign(e.style,t,r&&r.getProjectionStyles(i));for(const s in n)e.style.setProperty(s,n[s])}const Ip=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function _p(e,t,n,i){bp(e,t,void 0,i);for(const r in t.attrs)e.setAttribute(Ip.has(r)?r:pu(r),t.attrs[r])}function hu(e,t){const{style:n}=e,i={};for(const r in n)(ce(n[r])||t.style&&ce(t.style[r])||Lp(r,e))&&(i[r]=n[r]);return i}function Op(e,t){const n=hu(e,t);for(const i in e)if(ce(e[i])||ce(t[i])){const r=mr.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;n[r]=e[i]}return n}function gu(e,t,n,i={},r={}){return typeof t=="function"&&(t=t(n!==void 0?n:e.custom,i,r)),typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"&&(t=t(n!==void 0?n:e.custom,i,r)),t}function rr(e){const t=P.useRef(null);return t.current===null&&(t.current=e()),t.current}const Ns=e=>Array.isArray(e),ry=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),sy=e=>Ns(e)?e[e.length-1]||0:e;function es(e){const t=ce(e)?e.get():e;return ry(t)?t.toValue():t}function oy({scrapeMotionValuesFromProps:e,createRenderState:t,onMount:n},i,r,s){const o={latestValues:ay(i,r,s,e),renderState:t()};return n&&(o.mount=a=>n(i,a,o)),o}const jp=e=>(t,n)=>{const i=P.useContext(Zs),r=P.useContext(su),s=()=>oy(e,t,i,r);return n?s():rr(s)};function ay(e,t,n,i){const r={},s=i(e,{});for(const f in s)r[f]=es(s[f]);let{initial:o,animate:a}=e;const l=to(e),u=kp(e);t&&u&&!l&&e.inherit!==!1&&(o===void 0&&(o=t.initial),a===void 0&&(a=t.animate));let c=n?n.initial===!1:!1;c=c||o===!1;const d=c?a:o;return d&&typeof d!="boolean"&&!eo(d)&&(Array.isArray(d)?d:[d]).forEach(h=>{const v=gu(e,h);if(!v)return;const{transitionEnd:y,transition:S,...g}=v;for(const m in g){let p=g[m];if(Array.isArray(p)){const w=c?p.length-1:0;p=p[w]}p!==null&&(r[m]=p)}for(const m in y)r[m]=y[m]}),r}const te=e=>e;class Zc{constructor(){this.order=[],this.scheduled=new Set}add(t){if(!this.scheduled.has(t))return this.scheduled.add(t),this.order.push(t),!0}remove(t){const n=this.order.indexOf(t);n!==-1&&(this.order.splice(n,1),this.scheduled.delete(t))}clear(){this.order.length=0,this.scheduled.clear()}}function ly(e){let t=new Zc,n=new Zc,i=0,r=!1,s=!1;const o=new WeakSet,a={schedule:(l,u=!1,c=!1)=>{const d=c&&r,f=d?t:n;return u&&o.add(l),f.add(l)&&d&&r&&(i=t.order.length),l},cancel:l=>{n.remove(l),o.delete(l)},process:l=>{if(r){s=!0;return}if(r=!0,[t,n]=[n,t],n.clear(),i=t.order.length,i)for(let u=0;u(d[f]=ly(()=>n=!0),d),{}),o=d=>s[d].process(r),a=()=>{const d=performance.now();n=!1,r.delta=i?1e3/60:Math.max(Math.min(d-r.timestamp,uy),1),r.timestamp=d,r.isProcessing=!0,Ir.forEach(o),r.isProcessing=!1,n&&t&&(i=!1,e(a))},l=()=>{n=!0,i=!0,r.isProcessing||e(a)};return{schedule:Ir.reduce((d,f)=>{const h=s[f];return d[f]=(v,y=!1,S=!1)=>(n||l(),h.schedule(v,y,S)),d},{}),cancel:d=>Ir.forEach(f=>s[f].cancel(d)),state:r,steps:s}}const{schedule:B,cancel:rt,state:ne,steps:_o}=cy(typeof requestAnimationFrame<"u"?requestAnimationFrame:te,!0),dy={useVisualState:jp({scrapeMotionValuesFromProps:Op,createRenderState:Dp,onMount:(e,t,{renderState:n,latestValues:i})=>{B.read(()=>{try{n.dimensions=typeof t.getBBox=="function"?t.getBBox():t.getBoundingClientRect()}catch{n.dimensions={x:0,y:0,width:0,height:0}}}),B.render(()=>{fu(n,i,{enableHardwareAcceleration:!1},mu(t.tagName),e.transformTemplate),_p(t,n)})}})},fy={useVisualState:jp({scrapeMotionValuesFromProps:hu,createRenderState:du})};function my(e,{forwardMotionProps:t=!1},n,i){return{...uu(e)?dy:fy,preloadedFeatures:n,useRender:iy(t),createVisualElement:i,Component:e}}function St(e,t,n,i={passive:!0}){return e.addEventListener(t,n,i),()=>e.removeEventListener(t,n)}const Fp=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1;function io(e,t="page"){return{point:{x:e[t+"X"],y:e[t+"Y"]}}}const py=e=>t=>Fp(t)&&e(t,io(t));function Pt(e,t,n,i){return St(e,t,py(n),i)}const hy=(e,t)=>n=>t(e(n)),Qt=(...e)=>e.reduce(hy);function Bp(e){let t=null;return()=>{const n=()=>{t=null};return t===null?(t=e,n):!1}}const Jc=Bp("dragHorizontal"),ed=Bp("dragVertical");function zp(e){let t=!1;if(e==="y")t=ed();else if(e==="x")t=Jc();else{const n=Jc(),i=ed();n&&i?t=()=>{n(),i()}:(n&&n(),i&&i())}return t}function Up(){const e=zp(!0);return e?(e(),!1):!0}class tn{constructor(t){this.isMounted=!1,this.node=t}update(){}}function td(e,t){const n="pointer"+(t?"enter":"leave"),i="onHover"+(t?"Start":"End"),r=(s,o)=>{if(s.type==="touch"||Up())return;const a=e.getProps();e.animationState&&a.whileHover&&e.animationState.setActive("whileHover",t),a[i]&&B.update(()=>a[i](s,o))};return Pt(e.current,n,r,{passive:!e.getProps()[i]})}class gy extends tn{mount(){this.unmount=Qt(td(this.node,!0),td(this.node,!1))}unmount(){}}class vy extends tn{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Qt(St(this.node.current,"focus",()=>this.onFocus()),St(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const $p=(e,t)=>t?e===t?!0:$p(e,t.parentElement):!1;function Oo(e,t){if(!t)return;const n=new PointerEvent("pointer"+e);t(n,io(n))}class yy extends tn{constructor(){super(...arguments),this.removeStartListeners=te,this.removeEndListeners=te,this.removeAccessibleListeners=te,this.startPointerPress=(t,n)=>{if(this.removeEndListeners(),this.isPressing)return;const i=this.node.getProps(),s=Pt(window,"pointerup",(a,l)=>{if(!this.checkPressEnd())return;const{onTap:u,onTapCancel:c}=this.node.getProps();B.update(()=>{$p(this.node.current,a.target)?u&&u(a,l):c&&c(a,l)})},{passive:!(i.onTap||i.onPointerUp)}),o=Pt(window,"pointercancel",(a,l)=>this.cancelPress(a,l),{passive:!(i.onTapCancel||i.onPointerCancel)});this.removeEndListeners=Qt(s,o),this.startPress(t,n)},this.startAccessiblePress=()=>{const t=s=>{if(s.key!=="Enter"||this.isPressing)return;const o=a=>{a.key!=="Enter"||!this.checkPressEnd()||Oo("up",(l,u)=>{const{onTap:c}=this.node.getProps();c&&B.update(()=>c(l,u))})};this.removeEndListeners(),this.removeEndListeners=St(this.node.current,"keyup",o),Oo("down",(a,l)=>{this.startPress(a,l)})},n=St(this.node.current,"keydown",t),i=()=>{this.isPressing&&Oo("cancel",(s,o)=>this.cancelPress(s,o))},r=St(this.node.current,"blur",i);this.removeAccessibleListeners=Qt(n,r)}}startPress(t,n){this.isPressing=!0;const{onTapStart:i,whileTap:r}=this.node.getProps();r&&this.node.animationState&&this.node.animationState.setActive("whileTap",!0),i&&B.update(()=>i(t,n))}checkPressEnd(){return this.removeEndListeners(),this.isPressing=!1,this.node.getProps().whileTap&&this.node.animationState&&this.node.animationState.setActive("whileTap",!1),!Up()}cancelPress(t,n){if(!this.checkPressEnd())return;const{onTapCancel:i}=this.node.getProps();i&&B.update(()=>i(t,n))}mount(){const t=this.node.getProps(),n=Pt(this.node.current,"pointerdown",this.startPointerPress,{passive:!(t.onTapStart||t.onPointerStart)}),i=St(this.node.current,"focus",this.startAccessiblePress);this.removeStartListeners=Qt(n,i)}unmount(){this.removeStartListeners(),this.removeEndListeners(),this.removeAccessibleListeners()}}const Wa=new WeakMap,jo=new WeakMap,wy=e=>{const t=Wa.get(e.target);t&&t(e)},Sy=e=>{e.forEach(wy)};function xy({root:e,...t}){const n=e||document;jo.has(n)||jo.set(n,{});const i=jo.get(n),r=JSON.stringify(t);return i[r]||(i[r]=new IntersectionObserver(Sy,{root:e,...t})),i[r]}function Py(e,t,n){const i=xy(t);return Wa.set(e,n),i.observe(e),()=>{Wa.delete(e),i.unobserve(e)}}const Cy={some:0,all:1};class ky extends tn{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:i,amount:r="some",once:s}=t,o={root:n?n.current:void 0,rootMargin:i,threshold:typeof r=="number"?r:Cy[r]},a=l=>{const{isIntersecting:u}=l;if(this.isInView===u||(this.isInView=u,s&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:c,onViewportLeave:d}=this.node.getProps(),f=u?c:d;f&&f(l)};return Py(this.node.current,o,a)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(Ty(t,n))&&this.startObserver()}unmount(){}}function Ty({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const Ey={inView:{Feature:ky},tap:{Feature:yy},focus:{Feature:vy},hover:{Feature:gy}};function Wp(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let i=0;it[i]=n.get()),t}function My(e){const t={};return e.values.forEach((n,i)=>t[i]=n.getVelocity()),t}function ro(e,t,n){const i=e.getProps();return gu(i,t,n!==void 0?n:i.custom,Ly(e),My(e))}const Ay="framerAppearId",Ny="data-"+pu(Ay);let Hp=te,so=te;const Ct=e=>e*1e3,nt=e=>e/1e3,Vy={current:!1},Qp=e=>Array.isArray(e)&&typeof e[0]=="number";function Kp(e){return!!(!e||typeof e=="string"&&Gp[e]||Qp(e)||Array.isArray(e)&&e.every(Kp))}const ki=([e,t,n,i])=>`cubic-bezier(${e}, ${t}, ${n}, ${i})`,Gp={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:ki([0,.65,.55,1]),circOut:ki([.55,0,1,.45]),backIn:ki([.31,.01,.66,-.59]),backOut:ki([.33,1.53,.69,.99])};function Yp(e){if(e)return Qp(e)?ki(e):Array.isArray(e)?e.map(Yp):Gp[e]}function qy(e,t,n,{delay:i=0,duration:r,repeat:s=0,repeatType:o="loop",ease:a,times:l}={}){const u={[t]:n};l&&(u.offset=l);const c=Yp(a);return Array.isArray(c)&&(u.easing=c),e.animate(u,{delay:i,duration:r,easing:Array.isArray(c)?"linear":c,fill:"both",iterations:s+1,direction:o==="reverse"?"alternate":"normal"})}function Ry(e,{repeat:t,repeatType:n="loop"}){const i=t&&n!=="loop"&&t%2===1?0:e.length-1;return e[i]}const Xp=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,Dy=1e-7,by=12;function Iy(e,t,n,i,r){let s,o,a=0;do o=t+(n-t)/2,s=Xp(o,i,r)-e,s>0?n=o:t=o;while(Math.abs(s)>Dy&&++aIy(s,0,1,e,n);return s=>s===0||s===1?s:Xp(r(s),t,i)}const _y=gr(.42,0,1,1),Oy=gr(0,0,.58,1),Zp=gr(.42,0,.58,1),Jp=e=>Array.isArray(e)&&typeof e[0]!="number",eh=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,th=e=>t=>1-e(1-t),nh=e=>1-Math.sin(Math.acos(e)),vu=th(nh),jy=eh(vu),ih=gr(.33,1.53,.69,.99),yu=th(ih),Fy=eh(yu),By=e=>(e*=2)<1?.5*yu(e):.5*(2-Math.pow(2,-10*(e-1))),zy={linear:te,easeIn:_y,easeInOut:Zp,easeOut:Oy,circIn:nh,circInOut:jy,circOut:vu,backIn:yu,backInOut:Fy,backOut:ih,anticipate:By},nd=e=>{if(Array.isArray(e)){so(e.length===4);const[t,n,i,r]=e;return gr(t,n,i,r)}else if(typeof e=="string")return zy[e];return e},wu=(e,t)=>n=>!!(pr(n)&&U0.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t)),rh=(e,t,n)=>i=>{if(!pr(i))return i;const[r,s,o,a]=i.match(no);return{[e]:parseFloat(r),[t]:parseFloat(s),[n]:parseFloat(o),alpha:a!==void 0?parseFloat(a):1}},Uy=e=>Yt(0,255,e),Fo={...En,transform:e=>Math.round(Uy(e))},mn={test:wu("rgb","red"),parse:rh("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:i=1})=>"rgba("+Fo.transform(e)+", "+Fo.transform(t)+", "+Fo.transform(n)+", "+bi(Di.transform(i))+")"};function $y(e){let t="",n="",i="",r="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),i=e.substring(5,7),r=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),i=e.substring(3,4),r=e.substring(4,5),t+=t,n+=n,i+=i,r+=r),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(i,16),alpha:r?parseInt(r,16)/255:1}}const Ha={test:wu("#"),parse:$y,transform:mn.transform},Un={test:wu("hsl","hue"),parse:rh("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:i=1})=>"hsla("+Math.round(e)+", "+mt.transform(bi(t))+", "+mt.transform(bi(n))+", "+bi(Di.transform(i))+")"},xe={test:e=>mn.test(e)||Ha.test(e)||Un.test(e),parse:e=>mn.test(e)?mn.parse(e):Un.test(e)?Un.parse(e):Ha.parse(e),transform:e=>pr(e)?e:e.hasOwnProperty("red")?mn.transform(e):Un.transform(e)},G=(e,t,n)=>-n*e+n*t+e;function Bo(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Wy({hue:e,saturation:t,lightness:n,alpha:i}){e/=360,t/=100,n/=100;let r=0,s=0,o=0;if(!t)r=s=o=n;else{const a=n<.5?n*(1+t):n+t-n*t,l=2*n-a;r=Bo(l,a,e+1/3),s=Bo(l,a,e),o=Bo(l,a,e-1/3)}return{red:Math.round(r*255),green:Math.round(s*255),blue:Math.round(o*255),alpha:i}}const zo=(e,t,n)=>{const i=e*e;return Math.sqrt(Math.max(0,n*(t*t-i)+i))},Hy=[Ha,mn,Un],Qy=e=>Hy.find(t=>t.test(e));function id(e){const t=Qy(e);let n=t.parse(e);return t===Un&&(n=Wy(n)),n}const sh=(e,t)=>{const n=id(e),i=id(t),r={...n};return s=>(r.red=zo(n.red,i.red,s),r.green=zo(n.green,i.green,s),r.blue=zo(n.blue,i.blue,s),r.alpha=G(n.alpha,i.alpha,s),mn.transform(r))};function Ky(e){var t,n;return isNaN(e)&&pr(e)&&(((t=e.match(no))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(Np))===null||n===void 0?void 0:n.length)||0)>0}const oh={regex:B0,countKey:"Vars",token:"${v}",parse:te},ah={regex:Np,countKey:"Colors",token:"${c}",parse:xe.parse},lh={regex:no,countKey:"Numbers",token:"${n}",parse:En.parse};function Uo(e,{regex:t,countKey:n,token:i,parse:r}){const s=e.tokenised.match(t);s&&(e["num"+n]=s.length,e.tokenised=e.tokenised.replace(t,i),e.values.push(...s.map(r)))}function Vs(e){const t=e.toString(),n={value:t,tokenised:t,values:[],numVars:0,numColors:0,numNumbers:0};return n.value.includes("var(--")&&Uo(n,oh),Uo(n,ah),Uo(n,lh),n}function uh(e){return Vs(e).values}function ch(e){const{values:t,numColors:n,numVars:i,tokenised:r}=Vs(e),s=t.length;return o=>{let a=r;for(let l=0;ltypeof e=="number"?0:e;function Yy(e){const t=uh(e);return ch(e)(t.map(Gy))}const Xt={test:Ky,parse:uh,createTransformer:ch,getAnimatableNone:Yy},dh=(e,t)=>n=>`${n>0?t:e}`;function fh(e,t){return typeof e=="number"?n=>G(e,t,n):xe.test(e)?sh(e,t):e.startsWith("var(")?dh(e,t):ph(e,t)}const mh=(e,t)=>{const n=[...e],i=n.length,r=e.map((s,o)=>fh(s,t[o]));return s=>{for(let o=0;o{const n={...e,...t},i={};for(const r in n)e[r]!==void 0&&t[r]!==void 0&&(i[r]=fh(e[r],t[r]));return r=>{for(const s in i)n[s]=i[s](r);return n}},ph=(e,t)=>{const n=Xt.createTransformer(t),i=Vs(e),r=Vs(t);return i.numVars===r.numVars&&i.numColors===r.numColors&&i.numNumbers>=r.numNumbers?Qt(mh(i.values,r.values),n):dh(e,t)},Pn=(e,t,n)=>{const i=t-e;return i===0?1:(n-e)/i},rd=(e,t)=>n=>G(e,t,n);function Zy(e){return typeof e=="number"?rd:typeof e=="string"?xe.test(e)?sh:ph:Array.isArray(e)?mh:typeof e=="object"?Xy:rd}function Jy(e,t,n){const i=[],r=n||Zy(e[0]),s=e.length-1;for(let o=0;ot[0];e[0]>e[s-1]&&(e=[...e].reverse(),t=[...t].reverse());const o=Jy(t,i,r),a=o.length,l=u=>{let c=0;if(a>1)for(;cl(Yt(e[0],e[s-1],u)):l}function hh(e,t){const n=e[e.length-1];for(let i=1;i<=t;i++){const r=Pn(0,t,i);e.push(G(n,1,r))}}function xu(e){const t=[0];return hh(t,e.length-1),t}function e1(e,t){return e.map(n=>n*t)}function t1(e,t){return e.map(()=>t||Zp).splice(0,e.length-1)}function qs({duration:e=300,keyframes:t,times:n,ease:i="easeInOut"}){const r=Jp(i)?i.map(nd):nd(i),s={done:!1,value:t[0]},o=e1(n&&n.length===t.length?n:xu(t),e),a=Su(o,t,{ease:Array.isArray(r)?r:t1(t,r)});return{calculatedDuration:e,next:l=>(s.value=a(l),s.done=l>=e,s)}}function Pu(e,t){return t?e*(1e3/t):0}const n1=5;function gh(e,t,n){const i=Math.max(t-n1,0);return Pu(n-e(i),t-i)}const $o=.001,i1=.01,sd=10,r1=.05,s1=1;function o1({duration:e=800,bounce:t=.25,velocity:n=0,mass:i=1}){let r,s;Hp(e<=Ct(sd));let o=1-t;o=Yt(r1,s1,o),e=Yt(i1,sd,nt(e)),o<1?(r=u=>{const c=u*o,d=c*e,f=c-n,h=Qa(u,o),v=Math.exp(-d);return $o-f/h*v},s=u=>{const d=u*o*e,f=d*n+n,h=Math.pow(o,2)*Math.pow(u,2)*e,v=Math.exp(-d),y=Qa(Math.pow(u,2),o);return(-r(u)+$o>0?-1:1)*((f-h)*v)/y}):(r=u=>{const c=Math.exp(-u*e),d=(u-n)*e+1;return-$o+c*d},s=u=>{const c=Math.exp(-u*e),d=(n-u)*(e*e);return c*d});const a=5/e,l=l1(r,s,a);if(e=Ct(e),isNaN(l))return{stiffness:100,damping:10,duration:e};{const u=Math.pow(l,2)*i;return{stiffness:u,damping:o*2*Math.sqrt(i*u),duration:e}}}const a1=12;function l1(e,t,n){let i=n;for(let r=1;re[n]!==void 0)}function d1(e){let t={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...e};if(!od(e,c1)&&od(e,u1)){const n=o1(e);t={...t,...n,velocity:0,mass:1},t.isResolvedFromDuration=!0}return t}function Cu({keyframes:e,restDelta:t,restSpeed:n,...i}){const r=e[0],s=e[e.length-1],o={done:!1,value:r},{stiffness:a,damping:l,mass:u,velocity:c,duration:d,isResolvedFromDuration:f}=d1(i),h=c?-nt(c):0,v=l/(2*Math.sqrt(a*u)),y=s-r,S=nt(Math.sqrt(a/u)),g=Math.abs(y)<5;n||(n=g?.01:2),t||(t=g?.005:.5);let m;if(v<1){const p=Qa(S,v);m=w=>{const x=Math.exp(-v*S*w);return s-x*((h+v*S*y)/p*Math.sin(p*w)+y*Math.cos(p*w))}}else if(v===1)m=p=>s-Math.exp(-S*p)*(y+(h+S*y)*p);else{const p=S*Math.sqrt(v*v-1);m=w=>{const x=Math.exp(-v*S*w),T=Math.min(p*w,300);return s-x*((h+v*S*y)*Math.sinh(T)+p*y*Math.cosh(T))/p}}return{calculatedDuration:f&&d||null,next:p=>{const w=m(p);if(f)o.done=p>=d;else{let x=h;p!==0&&(v<1?x=gh(m,p,w):x=0);const T=Math.abs(x)<=n,E=Math.abs(s-w)<=t;o.done=T&&E}return o.value=o.done?s:w,o}}}function ad({keyframes:e,velocity:t=0,power:n=.8,timeConstant:i=325,bounceDamping:r=10,bounceStiffness:s=500,modifyTarget:o,min:a,max:l,restDelta:u=.5,restSpeed:c}){const d=e[0],f={done:!1,value:d},h=C=>a!==void 0&&Cl,v=C=>a===void 0?l:l===void 0||Math.abs(a-C)-y*Math.exp(-C/i),p=C=>g+m(C),w=C=>{const q=m(C),N=p(C);f.done=Math.abs(q)<=u,f.value=f.done?g:N};let x,T;const E=C=>{h(f.value)&&(x=C,T=Cu({keyframes:[f.value,v(f.value)],velocity:gh(p,C,f.value),damping:r,stiffness:s,restDelta:u,restSpeed:c}))};return E(0),{calculatedDuration:null,next:C=>{let q=!1;return!T&&x===void 0&&(q=!0,w(C),E(C)),x!==void 0&&C>x?T.next(C-x):(!q&&w(C),f)}}}const f1=e=>{const t=({timestamp:n})=>e(n);return{start:()=>B.update(t,!0),stop:()=>rt(t),now:()=>ne.isProcessing?ne.timestamp:performance.now()}},Ka=2e4;function Ga(e){let t=0;const n=50;let i=e.next(t);for(;!i.done&&t=Ka?1/0:t}const m1={decay:ad,inertia:ad,tween:qs,keyframes:qs,spring:Cu};function sr({autoplay:e=!0,delay:t=0,driver:n=f1,keyframes:i,type:r="keyframes",repeat:s=0,repeatDelay:o=0,repeatType:a="loop",onPlay:l,onStop:u,onComplete:c,onUpdate:d,...f}){let h=1,v=!1,y,S;const g=()=>{S=new Promise(R=>{y=R})};g();let m;const p=m1[r]||qs;let w;p!==qs&&typeof i[0]!="number"&&(w=Su([0,100],i,{clamp:!1}),i=[0,100]);const x=p({...f,keyframes:i});let T;a==="mirror"&&(T=p({...f,keyframes:[...i].reverse(),velocity:-(f.velocity||0)}));let E="idle",C=null,q=null,N=null;x.calculatedDuration===null&&s&&(x.calculatedDuration=Ga(x));const{calculatedDuration:Y}=x;let he=1/0,de=1/0;Y!==null&&(he=Y+o,de=he*(s+1)-o);let F=0;const Q=R=>{if(q===null)return;h>0&&(q=Math.min(q,R)),h<0&&(q=Math.min(R-de/h,q)),C!==null?F=C:F=Math.round(R-q)*h;const U=F-t*(h>=0?1:-1),ht=h>=0?U<0:U>de;F=Math.max(U,0),E==="finished"&&C===null&&(F=de);let ot=F,Ln=x;if(s){const uo=F/he;let vr=Math.floor(uo),rn=uo%1;!rn&&uo>=1&&(rn=1),rn===1&&vr--,vr=Math.min(vr,s+1);const Iu=!!(vr%2);Iu&&(a==="reverse"?(rn=1-rn,o&&(rn-=o/he)):a==="mirror"&&(Ln=T));let _u=Yt(0,1,rn);F>de&&(_u=a==="reverse"&&Iu?1:0),ot=_u*he}const Re=ht?{done:!1,value:i[0]}:Ln.next(ot);w&&(Re.value=w(Re.value));let{done:nn}=Re;!ht&&Y!==null&&(nn=h>=0?F>=de:F<=0);const rg=C===null&&(E==="finished"||E==="running"&&nn);return d&&d(Re.value),rg&&L(),Re},Se=()=>{m&&m.stop(),m=void 0},qe=()=>{E="idle",Se(),y(),g(),q=N=null},L=()=>{E="finished",c&&c(),Se(),y()},b=()=>{if(v)return;m||(m=n(Q));const R=m.now();l&&l(),C!==null?q=R-C:(!q||E==="finished")&&(q=R),E==="finished"&&g(),N=q,C=null,E="running",m.start()};e&&b();const I={then(R,U){return S.then(R,U)},get time(){return nt(F)},set time(R){R=Ct(R),F=R,C!==null||!m||h===0?C=R:q=m.now()-R/h},get duration(){const R=x.calculatedDuration===null?Ga(x):x.calculatedDuration;return nt(R)},get speed(){return h},set speed(R){R===h||!m||(h=R,I.time=nt(F))},get state(){return E},play:b,pause:()=>{E="paused",C=F},stop:()=>{v=!0,E!=="idle"&&(E="idle",u&&u(),qe())},cancel:()=>{N!==null&&Q(N),qe()},complete:()=>{E="finished"},sample:R=>(q=0,Q(R))};return I}function vh(e){let t;return()=>(t===void 0&&(t=e()),t)}const p1=vh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),h1=new Set(["opacity","clipPath","filter","transform","backgroundColor"]),_r=10,g1=2e4,v1=(e,t)=>t.type==="spring"||e==="backgroundColor"||!Kp(t.ease);function y1(e,t,{onUpdate:n,onComplete:i,...r}){if(!(p1()&&h1.has(t)&&!r.repeatDelay&&r.repeatType!=="mirror"&&r.damping!==0&&r.type!=="inertia"))return!1;let o=!1,a,l;const u=()=>{l=new Promise(m=>{a=m})};u();let{keyframes:c,duration:d=300,ease:f,times:h}=r;if(v1(t,r)){const m=sr({...r,repeat:0,delay:0});let p={done:!1,value:c[0]};const w=[];let x=0;for(;!p.done&&xv.cancel(),S=()=>{B.update(y),a(),u()};return v.onfinish=()=>{e.set(Ry(c,r)),i&&i(),S()},{then(m,p){return l.then(m,p)},attachTimeline(m){return v.timeline=m,v.onfinish=null,te},get time(){return nt(v.currentTime||0)},set time(m){v.currentTime=Ct(m)},get speed(){return v.playbackRate},set speed(m){v.playbackRate=m},get duration(){return nt(d)},play:()=>{o||(v.play(),rt(y))},pause:()=>v.pause(),stop:()=>{if(o=!0,v.playState==="idle")return;const{currentTime:m}=v;if(m){const p=sr({...r,autoplay:!1});e.setWithVelocity(p.sample(m-_r).value,p.sample(m).value,_r)}S()},complete:()=>v.finish(),cancel:S}}function w1({keyframes:e,delay:t,onUpdate:n,onComplete:i}){const r=()=>(n&&n(e[e.length-1]),i&&i(),{time:0,speed:1,duration:0,play:te,pause:te,stop:te,then:s=>(s(),Promise.resolve()),cancel:te,complete:te});return t?sr({keyframes:[0,1],duration:0,delay:t,onComplete:r}):r()}const S1={type:"spring",stiffness:500,damping:25,restSpeed:10},x1=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),P1={type:"keyframes",duration:.8},C1={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},k1=(e,{keyframes:t})=>t.length>2?P1:Tn.has(e)?e.startsWith("scale")?x1(t[1]):S1:C1,Ya=(e,t)=>e==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&(Xt.test(t)||t==="0")&&!t.startsWith("url(")),T1=new Set(["brightness","contrast","saturate","opacity"]);function E1(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[i]=n.match(no)||[];if(!i)return e;const r=n.replace(i,"");let s=T1.has(t)?1:0;return i!==n&&(s*=100),t+"("+s+r+")"}const L1=/([a-z-]*)\(.*?\)/g,Xa={...Xt,getAnimatableNone:e=>{const t=e.match(L1);return t?t.map(E1).join(" "):e}},M1={...Vp,color:xe,backgroundColor:xe,outlineColor:xe,fill:xe,stroke:xe,borderColor:xe,borderTopColor:xe,borderRightColor:xe,borderBottomColor:xe,borderLeftColor:xe,filter:Xa,WebkitFilter:Xa},ku=e=>M1[e];function yh(e,t){let n=ku(e);return n!==Xa&&(n=Xt),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const wh=e=>/^0[^.\s]+$/.test(e);function A1(e){if(typeof e=="number")return e===0;if(e!==null)return e==="none"||e==="0"||wh(e)}function N1(e,t,n,i){const r=Ya(t,n);let s;Array.isArray(n)?s=[...n]:s=[null,n];const o=i.from!==void 0?i.from:e.get();let a;const l=[];for(let u=0;ur=>{const s=Sh(i,e)||{},o=s.delay||i.delay||0;let{elapsed:a=0}=i;a=a-Ct(o);const l=N1(t,e,n,s),u=l[0],c=l[l.length-1],d=Ya(e,u),f=Ya(e,c);let h={keyframes:l,velocity:t.getVelocity(),ease:"easeOut",...s,delay:-a,onUpdate:v=>{t.set(v),s.onUpdate&&s.onUpdate(v)},onComplete:()=>{r(),s.onComplete&&s.onComplete()}};if(V1(s)||(h={...h,...k1(e,h)}),h.duration&&(h.duration=Ct(h.duration)),h.repeatDelay&&(h.repeatDelay=Ct(h.repeatDelay)),!d||!f||Vy.current||s.type===!1)return w1(h);if(t.owner&&t.owner.current instanceof HTMLElement&&!t.owner.getProps().onUpdate){const v=y1(t,e,h);if(v)return v}return sr(h)};function Rs(e){return!!(ce(e)&&e.add)}const xh=e=>/^\-?\d*\.?\d+$/.test(e);function Eu(e,t){e.indexOf(t)===-1&&e.push(t)}function oo(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class Lu{constructor(){this.subscriptions=[]}add(t){return Eu(this.subscriptions,t),()=>oo(this.subscriptions,t)}notify(t,n,i){const r=this.subscriptions.length;if(r)if(r===1)this.subscriptions[0](t,n,i);else for(let s=0;s!isNaN(parseFloat(e));class R1{constructor(t,n={}){this.version="10.16.4",this.timeDelta=0,this.lastUpdated=0,this.canTrackVelocity=!1,this.events={},this.updateAndNotify=(i,r=!0)=>{this.prev=this.current,this.current=i;const{delta:s,timestamp:o}=ne;this.lastUpdated!==o&&(this.timeDelta=s,this.lastUpdated=o,B.postRender(this.scheduleVelocityCheck)),this.prev!==this.current&&this.events.change&&this.events.change.notify(this.current),this.events.velocityChange&&this.events.velocityChange.notify(this.getVelocity()),r&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.scheduleVelocityCheck=()=>B.postRender(this.velocityCheck),this.velocityCheck=({timestamp:i})=>{i!==this.lastUpdated&&(this.prev=this.current,this.events.velocityChange&&this.events.velocityChange.notify(this.getVelocity()))},this.hasAnimated=!1,this.prev=this.current=t,this.canTrackVelocity=q1(this.current),this.owner=n.owner}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new Lu);const i=this.events[t].add(n);return t==="change"?()=>{i(),B.read(()=>{this.events.change.getSize()||this.stop()})}:i}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,i){this.set(n),this.prev=t,this.timeDelta=i}jump(t){this.updateAndNotify(t),this.prev=t,this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){return this.canTrackVelocity?Pu(parseFloat(this.current)-parseFloat(this.prev),this.timeDelta):0}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Je(e,t){return new R1(e,t)}const Ph=e=>t=>t.test(e),D1={test:e=>e==="auto",parse:e=>e},Ch=[En,V,mt,Nt,W0,$0,D1],vi=e=>Ch.find(Ph(e)),b1=[...Ch,xe,Xt],I1=e=>b1.find(Ph(e));function _1(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,Je(n))}function O1(e,t){const n=ro(e,t);let{transitionEnd:i={},transition:r={},...s}=n?e.makeTargetAnimatable(n,!1):{};s={...s,...i};for(const o in s){const a=sy(s[o]);_1(e,o,a)}}function j1(e,t,n){var i,r;const s=Object.keys(t).filter(a=>!e.hasValue(a)),o=s.length;if(o)for(let a=0;al.remove(d))),u.push(y)}return o&&Promise.all(u).then(()=>{o&&O1(e,o)}),u}function Za(e,t,n={}){const i=ro(e,t,n.custom);let{transition:r=e.getDefaultTransition()||{}}=i||{};n.transitionOverride&&(r=n.transitionOverride);const s=i?()=>Promise.all(Mu(e,i,n)):()=>Promise.resolve(),o=e.variantChildren&&e.variantChildren.size?(l=0)=>{const{delayChildren:u=0,staggerChildren:c,staggerDirection:d}=r;return U1(e,t,u+l,c,d,n)}:()=>Promise.resolve(),{when:a}=r;if(a){const[l,u]=a==="beforeChildren"?[s,o]:[o,s];return l().then(()=>u())}else return Promise.all([s(),o(n.delay)])}function U1(e,t,n=0,i=0,r=1,s){const o=[],a=(e.variantChildren.size-1)*i,l=r===1?(u=0)=>u*i:(u=0)=>a-u*i;return Array.from(e.variantChildren).sort($1).forEach((u,c)=>{u.notify("AnimationStart",t),o.push(Za(u,t,{...s,delay:n+l(c)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(o)}function $1(e,t){return e.sortNodePosition(t)}function W1(e,t,n={}){e.notify("AnimationStart",t);let i;if(Array.isArray(t)){const r=t.map(s=>Za(e,s,n));i=Promise.all(r)}else if(typeof t=="string")i=Za(e,t,n);else{const r=typeof t=="function"?ro(e,t,n.custom):t;i=Promise.all(Mu(e,r,n))}return i.then(()=>e.notify("AnimationComplete",t))}const H1=[...au].reverse(),Q1=au.length;function K1(e){return t=>Promise.all(t.map(({animation:n,options:i})=>W1(e,n,i)))}function G1(e){let t=K1(e);const n=X1();let i=!0;const r=(l,u)=>{const c=ro(e,u);if(c){const{transition:d,transitionEnd:f,...h}=c;l={...l,...h,...f}}return l};function s(l){t=l(e)}function o(l,u){const c=e.getProps(),d=e.getVariantContext(!0)||{},f=[],h=new Set;let v={},y=1/0;for(let g=0;gy&&x;const N=Array.isArray(w)?w:[w];let Y=N.reduce(r,{});T===!1&&(Y={});const{prevResolvedValues:he={}}=p,de={...he,...Y},F=Q=>{q=!0,h.delete(Q),p.needsAnimating[Q]=!0};for(const Q in de){const Se=Y[Q],qe=he[Q];v.hasOwnProperty(Q)||(Se!==qe?Ns(Se)&&Ns(qe)?!Wp(Se,qe)||C?F(Q):p.protectedKeys[Q]=!0:Se!==void 0?F(Q):h.add(Q):Se!==void 0&&h.has(Q)?F(Q):p.protectedKeys[Q]=!0)}p.prevProp=w,p.prevResolvedValues=Y,p.isActive&&(v={...v,...Y}),i&&e.blockInitialAnimation&&(q=!1),q&&!E&&f.push(...N.map(Q=>({animation:Q,options:{type:m,...l}})))}if(h.size){const g={};h.forEach(m=>{const p=e.getBaseTarget(m);p!==void 0&&(g[m]=p)}),f.push({animation:g})}let S=!!f.length;return i&&c.initial===!1&&!e.manuallyAnimateOnMount&&(S=!1),i=!1,S?t(f):Promise.resolve()}function a(l,u,c){var d;if(n[l].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(h=>{var v;return(v=h.animationState)===null||v===void 0?void 0:v.setActive(l,u)}),n[l].isActive=u;const f=o(c,l);for(const h in n)n[h].protectedKeys={};return f}return{animateChanges:o,setActive:a,setAnimateFunction:s,getState:()=>n}}function Y1(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Wp(t,e):!1}function sn(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function X1(){return{animate:sn(!0),whileInView:sn(),whileHover:sn(),whileTap:sn(),whileDrag:sn(),whileFocus:sn(),exit:sn()}}class Z1 extends tn{constructor(t){super(t),t.animationState||(t.animationState=G1(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();this.unmount(),eo(t)&&(this.unmount=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){}}let J1=0;class ew extends tn{constructor(){super(...arguments),this.id=J1++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n,custom:i}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const s=this.node.animationState.setActive("exit",!t,{custom:i??this.node.getProps().custom});n&&!t&&s.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const tw={animation:{Feature:Z1},exit:{Feature:ew}},ld=(e,t)=>Math.abs(e-t);function nw(e,t){const n=ld(e.x,t.x),i=ld(e.y,t.y);return Math.sqrt(n**2+i**2)}class kh{constructor(t,n,{transformPagePoint:i}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const u=Ho(this.lastMoveEventInfo,this.history),c=this.startEvent!==null,d=nw(u.offset,{x:0,y:0})>=3;if(!c&&!d)return;const{point:f}=u,{timestamp:h}=ne;this.history.push({...f,timestamp:h});const{onStart:v,onMove:y}=this.handlers;c||(v&&v(this.lastMoveEvent,u),this.startEvent=this.lastMoveEvent),y&&y(this.lastMoveEvent,u)},this.handlePointerMove=(u,c)=>{this.lastMoveEvent=u,this.lastMoveEventInfo=Wo(c,this.transformPagePoint),B.update(this.updatePoint,!0)},this.handlePointerUp=(u,c)=>{if(this.end(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const{onEnd:d,onSessionEnd:f}=this.handlers,h=Ho(u.type==="pointercancel"?this.lastMoveEventInfo:Wo(c,this.transformPagePoint),this.history);this.startEvent&&d&&d(u,h),f&&f(u,h)},!Fp(t))return;this.handlers=n,this.transformPagePoint=i;const r=io(t),s=Wo(r,this.transformPagePoint),{point:o}=s,{timestamp:a}=ne;this.history=[{...o,timestamp:a}];const{onSessionStart:l}=n;l&&l(t,Ho(s,this.history)),this.removeListeners=Qt(Pt(window,"pointermove",this.handlePointerMove),Pt(window,"pointerup",this.handlePointerUp),Pt(window,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),rt(this.updatePoint)}}function Wo(e,t){return t?{point:t(e.point)}:e}function ud(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Ho({point:e},t){return{point:e,delta:ud(e,Th(t)),offset:ud(e,iw(t)),velocity:rw(t,.1)}}function iw(e){return e[0]}function Th(e){return e[e.length-1]}function rw(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,i=null;const r=Th(e);for(;n>=0&&(i=e[n],!(r.timestamp-i.timestamp>Ct(t)));)n--;if(!i)return{x:0,y:0};const s=nt(r.timestamp-i.timestamp);if(s===0)return{x:0,y:0};const o={x:(r.x-i.x)/s,y:(r.y-i.y)/s};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}function je(e){return e.max-e.min}function Ja(e,t=0,n=.01){return Math.abs(e-t)<=n}function cd(e,t,n,i=.5){e.origin=i,e.originPoint=G(t.min,t.max,e.origin),e.scale=je(n)/je(t),(Ja(e.scale,1,1e-4)||isNaN(e.scale))&&(e.scale=1),e.translate=G(n.min,n.max,e.origin)-e.originPoint,(Ja(e.translate)||isNaN(e.translate))&&(e.translate=0)}function Ii(e,t,n,i){cd(e.x,t.x,n.x,i?i.originX:void 0),cd(e.y,t.y,n.y,i?i.originY:void 0)}function dd(e,t,n){e.min=n.min+t.min,e.max=e.min+je(t)}function sw(e,t,n){dd(e.x,t.x,n.x),dd(e.y,t.y,n.y)}function fd(e,t,n){e.min=t.min-n.min,e.max=e.min+je(t)}function _i(e,t,n){fd(e.x,t.x,n.x),fd(e.y,t.y,n.y)}function ow(e,{min:t,max:n},i){return t!==void 0&&en&&(e=i?G(n,e,i.max):Math.min(e,n)),e}function md(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function aw(e,{top:t,left:n,bottom:i,right:r}){return{x:md(e.x,n,r),y:md(e.y,t,i)}}function pd(e,t){let n=t.min-e.min,i=t.max-e.max;return t.max-t.mini?n=Pn(t.min,t.max-i,e.min):i>r&&(n=Pn(e.min,e.max-r,t.min)),Yt(0,1,n)}function cw(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const el=.35;function dw(e=el){return e===!1?e=0:e===!0&&(e=el),{x:hd(e,"left","right"),y:hd(e,"top","bottom")}}function hd(e,t,n){return{min:gd(e,t),max:gd(e,n)}}function gd(e,t){return typeof e=="number"?e:e[t]||0}const vd=()=>({translate:0,scale:1,origin:0,originPoint:0}),$n=()=>({x:vd(),y:vd()}),yd=()=>({min:0,max:0}),re=()=>({x:yd(),y:yd()});function ut(e){return[e("x"),e("y")]}function Eh({top:e,left:t,right:n,bottom:i}){return{x:{min:t,max:n},y:{min:e,max:i}}}function fw({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function mw(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),i=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:i.y,right:i.x}}function Qo(e){return e===void 0||e===1}function tl({scale:e,scaleX:t,scaleY:n}){return!Qo(e)||!Qo(t)||!Qo(n)}function ln(e){return tl(e)||Lh(e)||e.z||e.rotate||e.rotateX||e.rotateY}function Lh(e){return wd(e.x)||wd(e.y)}function wd(e){return e&&e!=="0%"}function Ds(e,t,n){const i=e-n,r=t*i;return n+r}function Sd(e,t,n,i,r){return r!==void 0&&(e=Ds(e,r,i)),Ds(e,n,i)+t}function nl(e,t=0,n=1,i,r){e.min=Sd(e.min,t,n,i,r),e.max=Sd(e.max,t,n,i,r)}function Mh(e,{x:t,y:n}){nl(e.x,t.translate,t.scale,t.originPoint),nl(e.y,n.translate,n.scale,n.originPoint)}function pw(e,t,n,i=!1){const r=n.length;if(!r)return;t.x=t.y=1;let s,o;for(let a=0;a1.0000000000001||e<.999999999999?e:1}function Dt(e,t){e.min=e.min+t,e.max=e.max+t}function Pd(e,t,[n,i,r]){const s=t[r]!==void 0?t[r]:.5,o=G(e.min,e.max,s);nl(e,t[n],t[i],o,t.scale)}const hw=["x","scaleX","originX"],gw=["y","scaleY","originY"];function Wn(e,t){Pd(e.x,t,hw),Pd(e.y,t,gw)}function Ah(e,t){return Eh(mw(e.getBoundingClientRect(),t))}function vw(e,t,n){const i=Ah(e,n),{scroll:r}=t;return r&&(Dt(i.x,r.offset.x),Dt(i.y,r.offset.y)),i}const yw=new WeakMap;class ww{constructor(t){this.openGlobalLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=re(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:i}=this.visualElement;if(i&&i.isPresent===!1)return;const r=l=>{this.stopAnimation(),n&&this.snapToCursor(io(l,"page").point)},s=(l,u)=>{const{drag:c,dragPropagation:d,onDragStart:f}=this.getProps();if(c&&!d&&(this.openGlobalLock&&this.openGlobalLock(),this.openGlobalLock=zp(c),!this.openGlobalLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),ut(v=>{let y=this.getAxisMotionValue(v).get()||0;if(mt.test(y)){const{projection:S}=this.visualElement;if(S&&S.layout){const g=S.layout.layoutBox[v];g&&(y=je(g)*(parseFloat(y)/100))}}this.originPoint[v]=y}),f&&B.update(()=>f(l,u),!1,!0);const{animationState:h}=this.visualElement;h&&h.setActive("whileDrag",!0)},o=(l,u)=>{const{dragPropagation:c,dragDirectionLock:d,onDirectionLock:f,onDrag:h}=this.getProps();if(!c&&!this.openGlobalLock)return;const{offset:v}=u;if(d&&this.currentDirection===null){this.currentDirection=Sw(v),this.currentDirection!==null&&f&&f(this.currentDirection);return}this.updateAxis("x",u.point,v),this.updateAxis("y",u.point,v),this.visualElement.render(),h&&h(l,u)},a=(l,u)=>this.stop(l,u);this.panSession=new kh(t,{onSessionStart:r,onStart:s,onMove:o,onSessionEnd:a},{transformPagePoint:this.visualElement.getTransformPagePoint()})}stop(t,n){const i=this.isDragging;if(this.cancel(),!i)return;const{velocity:r}=n;this.startAnimation(r);const{onDragEnd:s}=this.getProps();s&&B.update(()=>s(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:i}=this.getProps();!i&&this.openGlobalLock&&(this.openGlobalLock(),this.openGlobalLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,i){const{drag:r}=this.getProps();if(!i||!Or(t,r,this.currentDirection))return;const s=this.getAxisMotionValue(t);let o=this.originPoint[t]+i[t];this.constraints&&this.constraints[t]&&(o=ow(o,this.constraints[t],this.elastic[t])),s.set(o)}resolveConstraints(){const{dragConstraints:t,dragElastic:n}=this.getProps(),{layout:i}=this.visualElement.projection||{},r=this.constraints;t&&zn(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&i?this.constraints=aw(i.layoutBox,t):this.constraints=!1,this.elastic=dw(n),r!==this.constraints&&i&&this.constraints&&!this.hasMutatedConstraints&&ut(s=>{this.getAxisMotionValue(s)&&(this.constraints[s]=cw(i.layoutBox[s],this.constraints[s]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!zn(t))return!1;const i=t.current,{projection:r}=this.visualElement;if(!r||!r.layout)return!1;const s=vw(i,r.root,this.visualElement.getTransformPagePoint());let o=lw(r.layout.layoutBox,s);if(n){const a=n(fw(o));this.hasMutatedConstraints=!!a,a&&(o=Eh(a))}return o}startAnimation(t){const{drag:n,dragMomentum:i,dragElastic:r,dragTransition:s,dragSnapToOrigin:o,onDragTransitionEnd:a}=this.getProps(),l=this.constraints||{},u=ut(c=>{if(!Or(c,n,this.currentDirection))return;let d=l&&l[c]||{};o&&(d={min:0,max:0});const f=r?200:1e6,h=r?40:1e7,v={type:"inertia",velocity:i?t[c]:0,bounceStiffness:f,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...s,...d};return this.startAxisValueAnimation(c,v)});return Promise.all(u).then(a)}startAxisValueAnimation(t,n){const i=this.getAxisMotionValue(t);return i.start(Tu(t,i,0,n))}stopAnimation(){ut(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){const n="_drag"+t.toUpperCase(),i=this.visualElement.getProps(),r=i[n];return r||this.visualElement.getValue(t,(i.initial?i.initial[t]:void 0)||0)}snapToCursor(t){ut(n=>{const{drag:i}=this.getProps();if(!Or(n,i,this.currentDirection))return;const{projection:r}=this.visualElement,s=this.getAxisMotionValue(n);if(r&&r.layout){const{min:o,max:a}=r.layout.layoutBox[n];s.set(t[n]-G(o,a,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:i}=this.visualElement;if(!zn(n)||!i||!this.constraints)return;this.stopAnimation();const r={x:0,y:0};ut(o=>{const a=this.getAxisMotionValue(o);if(a){const l=a.get();r[o]=uw({min:l,max:l},this.constraints[o])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",i.root&&i.root.updateScroll(),i.updateLayout(),this.resolveConstraints(),ut(o=>{if(!Or(o,t,null))return;const a=this.getAxisMotionValue(o),{min:l,max:u}=this.constraints[o];a.set(G(l,u,r[o]))})}addListeners(){if(!this.visualElement.current)return;yw.set(this.visualElement,this);const t=this.visualElement.current,n=Pt(t,"pointerdown",l=>{const{drag:u,dragListener:c=!0}=this.getProps();u&&c&&this.start(l)}),i=()=>{const{dragConstraints:l}=this.getProps();zn(l)&&(this.constraints=this.resolveRefConstraints())},{projection:r}=this.visualElement,s=r.addEventListener("measure",i);r&&!r.layout&&(r.root&&r.root.updateScroll(),r.updateLayout()),i();const o=St(window,"resize",()=>this.scalePositionWithinConstraints()),a=r.addEventListener("didUpdate",({delta:l,hasLayoutChanged:u})=>{this.isDragging&&u&&(ut(c=>{const d=this.getAxisMotionValue(c);d&&(this.originPoint[c]+=l[c].translate,d.set(d.get()+l[c].translate))}),this.visualElement.render())});return()=>{o(),n(),s(),a&&a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:i=!1,dragPropagation:r=!1,dragConstraints:s=!1,dragElastic:o=el,dragMomentum:a=!0}=t;return{...t,drag:n,dragDirectionLock:i,dragPropagation:r,dragConstraints:s,dragElastic:o,dragMomentum:a}}}function Or(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function Sw(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class xw extends tn{constructor(t){super(t),this.removeGroupControls=te,this.removeListeners=te,this.controls=new ww(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||te}unmount(){this.removeGroupControls(),this.removeListeners()}}const Cd=e=>(t,n)=>{e&&B.update(()=>e(t,n))};class Pw extends tn{constructor(){super(...arguments),this.removePointerDownListener=te}onPointerDown(t){this.session=new kh(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint()})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:i,onPanEnd:r}=this.node.getProps();return{onSessionStart:Cd(t),onStart:Cd(n),onMove:i,onEnd:(s,o)=>{delete this.session,r&&B.update(()=>r(s,o))}}}mount(){this.removePointerDownListener=Pt(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}function Cw(){const e=P.useContext(su);if(e===null)return[!0,null];const{isPresent:t,onExitComplete:n,register:i}=e,r=P.useId();return P.useEffect(()=>i(r),[]),!t&&n?[!1,()=>n&&n(r)]:[!0]}const ts={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function kd(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const yi={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(V.test(e))e=parseFloat(e);else return e;const n=kd(e,t.target.x),i=kd(e,t.target.y);return`${n}% ${i}%`}},kw={correct:(e,{treeScale:t,projectionDelta:n})=>{const i=e,r=Xt.parse(e);if(r.length>5)return i;const s=Xt.createTransformer(e),o=typeof r[0]!="number"?1:0,a=n.x.scale*t.x,l=n.y.scale*t.y;r[0+o]/=a,r[1+o]/=l;const u=G(a,l,.5);return typeof r[2+o]=="number"&&(r[2+o]/=u),typeof r[3+o]=="number"&&(r[3+o]/=u),s(r)}};var Nh={exports:{}},ao={};/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Tw=P,Ew=Symbol.for("react.element"),Lw=Symbol.for("react.fragment"),Mw=Object.prototype.hasOwnProperty,Aw=Tw.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Nw={key:!0,ref:!0,__self:!0,__source:!0};function Vh(e,t,n){var i,r={},s=null,o=null;n!==void 0&&(s=""+n),t.key!==void 0&&(s=""+t.key),t.ref!==void 0&&(o=t.ref);for(i in t)Mw.call(t,i)&&!Nw.hasOwnProperty(i)&&(r[i]=t[i]);if(e&&e.defaultProps)for(i in t=e.defaultProps,t)r[i]===void 0&&(r[i]=t[i]);return{$$typeof:Ew,type:e,key:s,ref:o,props:r,_owner:Aw.current}}ao.Fragment=Lw;ao.jsx=Vh;ao.jsxs=Vh;Nh.exports=ao;var Au=Nh.exports;const A=Au.jsx,st=Au.jsxs,Vw=Au.Fragment;class qw extends bs.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:i,layoutId:r}=this.props,{projection:s}=t;_0(Rw),s&&(n.group&&n.group.add(s),i&&i.register&&r&&i.register(s),s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,onExitComplete:()=>this.safeToRemove()})),ts.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:i,drag:r,isPresent:s}=this.props,o=i.projection;return o&&(o.isPresent=s,r||t.layoutDependency!==n||n===void 0?o.willUpdate():this.safeToRemove(),t.isPresent!==s&&(s?o.promote():o.relegate()||B.postRender(()=>{const a=o.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),queueMicrotask(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:i}=this.props,{projection:r}=t;r&&(r.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(r),i&&i.deregister&&i.deregister(r))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function qh(e){const[t,n]=Cw(),i=P.useContext(Tp);return A(qw,{...e,layoutGroup:i,switchLayoutGroup:P.useContext(Ep),isPresent:t,safeToRemove:n})}const Rw={borderRadius:{...yi,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:yi,borderTopRightRadius:yi,borderBottomLeftRadius:yi,borderBottomRightRadius:yi,boxShadow:kw},Rh=["TopLeft","TopRight","BottomLeft","BottomRight"],Dw=Rh.length,Td=e=>typeof e=="string"?parseFloat(e):e,Ed=e=>typeof e=="number"||V.test(e);function bw(e,t,n,i,r,s){r?(e.opacity=G(0,n.opacity!==void 0?n.opacity:1,Iw(i)),e.opacityExit=G(t.opacity!==void 0?t.opacity:1,0,_w(i))):s&&(e.opacity=G(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,i));for(let o=0;oit?1:n(Pn(e,t,i))}function Md(e,t){e.min=t.min,e.max=t.max}function ze(e,t){Md(e.x,t.x),Md(e.y,t.y)}function Ad(e,t,n,i,r){return e-=t,e=Ds(e,1/n,i),r!==void 0&&(e=Ds(e,1/r,i)),e}function Ow(e,t=0,n=1,i=.5,r,s=e,o=e){if(mt.test(t)&&(t=parseFloat(t),t=G(o.min,o.max,t/100)-o.min),typeof t!="number")return;let a=G(s.min,s.max,i);e===s&&(a-=t),e.min=Ad(e.min,t,n,a,r),e.max=Ad(e.max,t,n,a,r)}function Nd(e,t,[n,i,r],s,o){Ow(e,t[n],t[i],t[r],t.scale,s,o)}const jw=["x","scaleX","originX"],Fw=["y","scaleY","originY"];function Vd(e,t,n,i){Nd(e.x,t,jw,n?n.x:void 0,i?i.x:void 0),Nd(e.y,t,Fw,n?n.y:void 0,i?i.y:void 0)}function qd(e){return e.translate===0&&e.scale===1}function bh(e){return qd(e.x)&&qd(e.y)}function Bw(e,t){return e.x.min===t.x.min&&e.x.max===t.x.max&&e.y.min===t.y.min&&e.y.max===t.y.max}function Ih(e,t){return Math.round(e.x.min)===Math.round(t.x.min)&&Math.round(e.x.max)===Math.round(t.x.max)&&Math.round(e.y.min)===Math.round(t.y.min)&&Math.round(e.y.max)===Math.round(t.y.max)}function Rd(e){return je(e.x)/je(e.y)}class zw{constructor(){this.members=[]}add(t){Eu(this.members,t),t.scheduleRender()}remove(t){if(oo(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(r=>t===r);if(n===0)return!1;let i;for(let r=n;r>=0;r--){const s=this.members[r];if(s.isPresent!==!1){i=s;break}}return i?(this.promote(i),!0):!1}promote(t,n){const i=this.lead;if(t!==i&&(this.prevLead=i,this.lead=t,t.show(),i)){i.instance&&i.scheduleRender(),t.scheduleRender(),t.resumeFrom=i,n&&(t.resumeFrom.preserveOpacity=!0),i.snapshot&&(t.snapshot=i.snapshot,t.snapshot.latestValues=i.animationValues||i.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:r}=t.options;r===!1&&i.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:i}=t;n.onExitComplete&&n.onExitComplete(),i&&i.options.onExitComplete&&i.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function Dd(e,t,n){let i="";const r=e.x.translate/t.x,s=e.y.translate/t.y;if((r||s)&&(i=`translate3d(${r}px, ${s}px, 0) `),(t.x!==1||t.y!==1)&&(i+=`scale(${1/t.x}, ${1/t.y}) `),n){const{rotate:l,rotateX:u,rotateY:c}=n;l&&(i+=`rotate(${l}deg) `),u&&(i+=`rotateX(${u}deg) `),c&&(i+=`rotateY(${c}deg) `)}const o=e.x.scale*t.x,a=e.y.scale*t.y;return(o!==1||a!==1)&&(i+=`scale(${o}, ${a})`),i||"none"}const Uw=(e,t)=>e.depth-t.depth;class $w{constructor(){this.children=[],this.isDirty=!1}add(t){Eu(this.children,t),this.isDirty=!0}remove(t){oo(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(Uw),this.isDirty=!1,this.children.forEach(t)}}function Ww(e,t){const n=performance.now(),i=({timestamp:r})=>{const s=r-n;s>=t&&(rt(i),e(s-t))};return B.read(i,!0),()=>rt(i)}function Hw(e){window.MotionDebug&&window.MotionDebug.record(e)}function _h(e){return e instanceof SVGElement&&e.tagName!=="svg"}function Nu(e,t,n){const i=ce(e)?e:Je(e);return i.start(Tu("",i,t,n)),i.animation}const bd=["","X","Y","Z"],Id=1e3;let Qw=0;const un={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0};function Oh({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:i,resetTransform:r}){return class{constructor(o={},a=t==null?void 0:t()){this.id=Qw++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{un.totalNodes=un.resolvedTargetDeltas=un.recalculatedProjection=0,this.nodes.forEach(Yw),this.nodes.forEach(tS),this.nodes.forEach(nS),this.nodes.forEach(Xw),Hw(un)},this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0;for(let l=0;lthis.root.updateBlockedByResize=!1;e(o,()=>{this.root.updateBlockedByResize=!0,d&&d(),d=Ww(f,250),ts.hasAnimatedSinceResize&&(ts.hasAnimatedSinceResize=!1,this.nodes.forEach(Od))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&c&&(l||u)&&this.addEventListener("didUpdate",({delta:d,hasLayoutChanged:f,hasRelativeTargetChanged:h,layout:v})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const y=this.options.transition||c.getDefaultTransition()||aS,{onLayoutAnimationStart:S,onLayoutAnimationComplete:g}=c.getProps(),m=!this.targetLayout||!Ih(this.targetLayout,v)||h,p=!f&&h;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||p||f&&(m||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(d,p);const w={...Sh(y,"layout"),onPlay:S,onComplete:g};(c.shouldReduceMotion||this.options.layoutRoot)&&(w.delay=0,w.type=!1),this.startAnimation(w)}else f||Od(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=v})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,rt(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(iS),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let c=0;cthis.update()))}clearAllSnapshots(){this.nodes.forEach(Zw),this.sharedNodes.forEach(rS)}scheduleUpdateProjection(){B.preRender(this.updateProjection,!1,!0)}scheduleCheckAfterUnmount(){B.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l{const x=w/1e3;jd(d.x,o.x,x),jd(d.y,o.y,x),this.setTargetDelta(d),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(_i(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),sS(this.relativeTarget,this.relativeTargetOrigin,f,x),p&&Bw(this.relativeTarget,p)&&(this.isProjectionDirty=!1),p||(p=re()),ze(p,this.relativeTarget)),y&&(this.animationValues=c,bw(c,u,this.latestValues,x,m,g)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=x},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(rt(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=B.update(()=>{ts.hasAnimatedSinceResize=!0,this.currentAnimation=Nu(0,Id,{...o,onUpdate:a=>{this.mixTargetDelta(a),o.onUpdate&&o.onUpdate(a)},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Id),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:a,target:l,layout:u,latestValues:c}=o;if(!(!a||!l||!u)){if(this!==o&&this.layout&&u&&jh(this.options.animationType,this.layout.layoutBox,u.layoutBox)){l=this.target||re();const d=je(this.layout.layoutBox.x);l.x.min=o.target.x.min,l.x.max=l.x.min+d;const f=je(this.layout.layoutBox.y);l.y.min=o.target.y.min,l.y.max=l.y.min+f}ze(a,l),Wn(a,c),Ii(this.projectionDeltaWithTransform,this.layoutCorrected,a,c)}}registerSharedNode(o,a){this.sharedNodes.has(o)||this.sharedNodes.set(o,new zw),this.sharedNodes.get(o).add(a);const u=a.options.initialPromotionConfig;a.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(a):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var o;const{layoutId:a}=this.options;return a?((o=this.getStack())===null||o===void 0?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:a}=this.options;return a?(o=this.getStack())===null||o===void 0?void 0:o.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:a,preserveFollowOpacity:l}={}){const u=this.getStack();u&&u.promote(this,l),o&&(this.projectionDelta=void 0,this.needsReset=!0),a&&this.setOptions({transition:a})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetRotation(){const{visualElement:o}=this.options;if(!o)return;let a=!1;const{latestValues:l}=o;if((l.rotate||l.rotateX||l.rotateY||l.rotateZ)&&(a=!0),!a)return;const u={};for(let c=0;c{var a;return(a=o.currentAnimation)===null||a===void 0?void 0:a.stop()}),this.root.nodes.forEach(_d),this.root.sharedNodes.clear()}}}function Kw(e){e.updateLayout()}function Gw(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:i,measuredBox:r}=e.layout,{animationType:s}=e.options,o=n.source!==e.layout.source;s==="size"?ut(d=>{const f=o?n.measuredBox[d]:n.layoutBox[d],h=je(f);f.min=i[d].min,f.max=f.min+h}):jh(s,n.layoutBox,i)&&ut(d=>{const f=o?n.measuredBox[d]:n.layoutBox[d],h=je(i[d]);f.max=f.min+h,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[d].max=e.relativeTarget[d].min+h)});const a=$n();Ii(a,i,n.layoutBox);const l=$n();o?Ii(l,e.applyTransform(r,!0),n.measuredBox):Ii(l,i,n.layoutBox);const u=!bh(a);let c=!1;if(!e.resumeFrom){const d=e.getClosestProjectingParent();if(d&&!d.resumeFrom){const{snapshot:f,layout:h}=d;if(f&&h){const v=re();_i(v,n.layoutBox,f.layoutBox);const y=re();_i(y,i,h.layoutBox),Ih(v,y)||(c=!0),d.options.layoutRoot&&(e.relativeTarget=y,e.relativeTargetOrigin=v,e.relativeParent=d)}}}e.notifyListeners("didUpdate",{layout:i,snapshot:n,delta:l,layoutDelta:a,hasLayoutChanged:u,hasRelativeTargetChanged:c})}else if(e.isLead()){const{onExitComplete:i}=e.options;i&&i()}e.options.transition=void 0}function Yw(e){un.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function Xw(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function Zw(e){e.clearSnapshot()}function _d(e){e.clearMeasurements()}function Jw(e){e.isLayoutDirty=!1}function eS(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Od(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function tS(e){e.resolveTargetDelta()}function nS(e){e.calcProjection()}function iS(e){e.resetRotation()}function rS(e){e.removeLeadSnapshot()}function jd(e,t,n){e.translate=G(t.translate,0,n),e.scale=G(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Fd(e,t,n,i){e.min=G(t.min,n.min,i),e.max=G(t.max,n.max,i)}function sS(e,t,n,i){Fd(e.x,t.x,n.x,i),Fd(e.y,t.y,n.y,i)}function oS(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const aS={duration:.45,ease:[.4,0,.1,1]},Bd=e=>typeof navigator<"u"&&navigator.userAgent.toLowerCase().includes(e),zd=Bd("applewebkit/")&&!Bd("chrome/")?Math.round:te;function Ud(e){e.min=zd(e.min),e.max=zd(e.max)}function lS(e){Ud(e.x),Ud(e.y)}function jh(e,t,n){return e==="position"||e==="preserve-aspect"&&!Ja(Rd(t),Rd(n),.2)}const uS=Oh({attachResizeListener:(e,t)=>St(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),Ko={current:void 0},Fh=Oh({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!Ko.current){const e=new uS({});e.mount(window),e.setOptions({layoutScroll:!0}),Ko.current=e}return Ko.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),cS={pan:{Feature:Pw},drag:{Feature:xw,ProjectionNode:Fh,MeasureLayout:qh}},dS=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/;function fS(e){const t=dS.exec(e);if(!t)return[,];const[,n,i]=t;return[n,i]}function il(e,t,n=1){const[i,r]=fS(e);if(!i)return;const s=window.getComputedStyle(t).getPropertyValue(i);if(s){const o=s.trim();return xh(o)?parseFloat(o):o}else return $a(r)?il(r,t,n+1):r}function mS(e,{...t},n){const i=e.current;if(!(i instanceof Element))return{target:t,transitionEnd:n};n&&(n={...n}),e.values.forEach(r=>{const s=r.get();if(!$a(s))return;const o=il(s,i);o&&r.set(o)});for(const r in t){const s=t[r];if(!$a(s))continue;const o=il(s,i);o&&(t[r]=o,n||(n={}),n[r]===void 0&&(n[r]=s))}return{target:t,transitionEnd:n}}const pS=new Set(["width","height","top","left","right","bottom","x","y","translateX","translateY"]),Bh=e=>pS.has(e),hS=e=>Object.keys(e).some(Bh),$d=e=>e===En||e===V,Wd=(e,t)=>parseFloat(e.split(", ")[t]),Hd=(e,t)=>(n,{transform:i})=>{if(i==="none"||!i)return 0;const r=i.match(/^matrix3d\((.+)\)$/);if(r)return Wd(r[1],t);{const s=i.match(/^matrix\((.+)\)$/);return s?Wd(s[1],e):0}},gS=new Set(["x","y","z"]),vS=mr.filter(e=>!gS.has(e));function yS(e){const t=[];return vS.forEach(n=>{const i=e.getValue(n);i!==void 0&&(t.push([n,i.get()]),i.set(n.startsWith("scale")?1:0))}),t.length&&e.render(),t}const si={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:Hd(4,13),y:Hd(5,14)};si.translateX=si.x;si.translateY=si.y;const wS=(e,t,n)=>{const i=t.measureViewportBox(),r=t.current,s=getComputedStyle(r),{display:o}=s,a={};o==="none"&&t.setStaticValue("display",e.display||"block"),n.forEach(u=>{a[u]=si[u](i,s)}),t.render();const l=t.measureViewportBox();return n.forEach(u=>{const c=t.getValue(u);c&&c.jump(a[u]),e[u]=si[u](l,s)}),e},SS=(e,t,n={},i={})=>{t={...t},i={...i};const r=Object.keys(t).filter(Bh);let s=[],o=!1;const a=[];if(r.forEach(l=>{const u=e.getValue(l);if(!e.hasValue(l))return;let c=n[l],d=vi(c);const f=t[l];let h;if(Ns(f)){const v=f.length,y=f[0]===null?1:0;c=f[y],d=vi(c);for(let S=y;S=0?window.pageYOffset:null,u=wS(t,e,a);return s.length&&s.forEach(([c,d])=>{e.getValue(c).set(d)}),e.render(),Js&&l!==null&&window.scrollTo({top:l}),{target:u,transitionEnd:i}}else return{target:t,transitionEnd:i}};function xS(e,t,n,i){return hS(t)?SS(e,t,n,i):{target:t,transitionEnd:i}}const PS=(e,t,n,i)=>{const r=mS(e,t,i);return t=r.target,i=r.transitionEnd,xS(e,t,n,i)},rl={current:null},zh={current:!1};function CS(){if(zh.current=!0,!!Js)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>rl.current=e.matches;e.addListener(t),t()}else rl.current=!1}function kS(e,t,n){const{willChange:i}=t;for(const r in t){const s=t[r],o=n[r];if(ce(s))e.addValue(r,s),Rs(i)&&i.add(r);else if(ce(o))e.addValue(r,Je(s,{owner:e})),Rs(i)&&i.remove(r);else if(o!==s)if(e.hasValue(r)){const a=e.getValue(r);!a.hasAnimated&&a.set(s)}else{const a=e.getStaticValue(r);e.addValue(r,Je(a!==void 0?a:s,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const or=new WeakMap,Uh=Object.keys(ir),TS=Uh.length,Qd=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],ES=lu.length;class LS{constructor({parent:t,props:n,presenceContext:i,reducedMotionConfig:r,visualState:s},o={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.scheduleRender=()=>B.render(this.render,!1,!0);const{latestValues:a,renderState:l}=s;this.latestValues=a,this.baseTarget={...a},this.initialValues=n.initial?{...a}:{},this.renderState=l,this.parent=t,this.props=n,this.presenceContext=i,this.depth=t?t.depth+1:0,this.reducedMotionConfig=r,this.options=o,this.isControllingVariants=to(n),this.isVariantNode=kp(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(t&&t.current);const{willChange:u,...c}=this.scrapeMotionValuesFromProps(n,{});for(const d in c){const f=c[d];a[d]!==void 0&&ce(f)&&(f.set(a[d],!1),Rs(u)&&u.add(d))}}scrapeMotionValuesFromProps(t,n){return{}}mount(t){this.current=t,or.set(t,this),this.projection&&!this.projection.instance&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((n,i)=>this.bindToMotionValue(i,n)),zh.current||CS(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:rl.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){or.delete(this.current),this.projection&&this.projection.unmount(),rt(this.notifyUpdate),rt(this.render),this.valueSubscriptions.forEach(t=>t()),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features)this.features[t].unmount();this.current=null}bindToMotionValue(t,n){const i=Tn.has(t),r=n.on("change",o=>{this.latestValues[t]=o,this.props.onUpdate&&B.update(this.notifyUpdate,!1,!0),i&&this.projection&&(this.projection.isTransformDirty=!0)}),s=n.on("renderRequest",this.scheduleRender);this.valueSubscriptions.set(t,()=>{r(),s()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}loadFeatures({children:t,...n},i,r,s){let o,a;for(let l=0;lthis.scheduleRender(),animationType:typeof u=="string"?u:"both",initialPromotionConfig:s,layoutScroll:f,layoutRoot:h})}return a}updateFeatures(){for(const t in this.features){const n=this.features[t];n.isMounted?n.update():(n.mount(),n.isMounted=!0)}}triggerBuild(){this.build(this.renderState,this.latestValues,this.options,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):re()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}makeTargetAnimatable(t,n=!0){return this.makeTargetAnimatableFromInstance(t,this.props,n)}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let i=0;in.variantChildren.delete(t)}addValue(t,n){n!==this.values.get(t)&&(this.removeValue(t),this.bindToMotionValue(t,n)),this.values.set(t,n),this.latestValues[t]=n.get()}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let i=this.values.get(t);return i===void 0&&n!==void 0&&(i=Je(n,{owner:this}),this.addValue(t,i)),i}readValue(t){var n;return this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(n=this.getBaseTargetFromProps(this.props,t))!==null&&n!==void 0?n:this.readValueFromInstance(this.current,t,this.options)}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:i}=this.props,r=typeof i=="string"||typeof i=="object"?(n=gu(this.props,i))===null||n===void 0?void 0:n[t]:void 0;if(i&&r!==void 0)return r;const s=this.getBaseTargetFromProps(this.props,t);return s!==void 0&&!ce(s)?s:this.initialValues[t]!==void 0&&r===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new Lu),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class $h extends LS{sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:i}){delete n[t],delete i[t]}makeTargetAnimatableFromInstance({transition:t,transitionEnd:n,...i},{transformValues:r},s){let o=B1(i,t||{},this);if(r&&(n&&(n=r(n)),i&&(i=r(i)),o&&(o=r(o))),s){j1(this,i,o);const a=PS(this,i,o,n);n=a.transitionEnd,i=a.target}return{transition:t,transitionEnd:n,...i}}}function MS(e){return window.getComputedStyle(e)}class Wh extends $h{readValueFromInstance(t,n){if(Tn.has(n)){const i=ku(n);return i&&i.default||0}else{const i=MS(t),r=(Ap(n)?i.getPropertyValue(n):i[n])||0;return typeof r=="string"?r.trim():r}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Ah(t,n)}build(t,n,i,r){cu(t,n,i,r.transformTemplate)}scrapeMotionValuesFromProps(t,n){return hu(t,n)}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;ce(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}renderInstance(t,n,i,r){bp(t,n,i,r)}}class Hh extends $h{constructor(){super(...arguments),this.isSVGTag=!1}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(Tn.has(n)){const i=ku(n);return i&&i.default||0}return n=Ip.has(n)?n:pu(n),t.getAttribute(n)}measureInstanceViewportBox(){return re()}scrapeMotionValuesFromProps(t,n){return Op(t,n)}build(t,n,i,r){fu(t,n,i,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,i,r){_p(t,n,i,r)}mount(t){this.isSVGTag=mu(t.tagName),super.mount(t)}}const AS=(e,t)=>uu(e)?new Hh(t,{enableHardwareAcceleration:!1}):new Wh(t,{enableHardwareAcceleration:!0}),NS={layout:{ProjectionNode:Fh,MeasureLayout:qh}},VS={...tw,...Ey,...cS,...NS},Ie=b0((e,t)=>my(e,t,VS,AS));function qS(e){return P.useEffect(()=>()=>e(),[])}function RS(e){const t=rr(()=>Je(e)),{isStatic:n}=P.useContext(Xs);if(n){const[,i]=P.useState(e);P.useEffect(()=>t.on("change",i),[])}return t}function DS(e,t={}){const{isStatic:n}=P.useContext(Xs),i=P.useRef(null),r=RS(ce(e)?e.get():e),s=()=>{i.current&&i.current.stop()};return P.useInsertionEffect(()=>r.attach((o,a)=>{if(n)return a(o);if(s(),i.current=sr({keyframes:[r.get(),o],velocity:r.getVelocity(),type:"spring",restDelta:.001,restSpeed:.01,...t,onUpdate:a}),!ne.isProcessing){const l=performance.now()-ne.timestamp;l<30&&(i.current.time=nt(l))}return r.get()},s),[JSON.stringify(t)]),ou(()=>{if(ce(e))return e.on("change",o=>r.set(parseFloat(o)))},[r]),r}function bS(e,t,n){P.useInsertionEffect(()=>e.on(t,n),[e,t,n])}function Vu(e,t,n){var i;if(typeof e=="string"){let r=document;t&&(so(!!t.current),r=t.current),n?((i=n[e])!==null&&i!==void 0||(n[e]=r.querySelectorAll(e)),e=n[e]):e=r.querySelectorAll(e)}else e instanceof Element&&(e=[e]);return Array.from(e||[])}const ns=new WeakMap;let Vt;function IS(e,t){if(t){const{inlineSize:n,blockSize:i}=t[0];return{width:n,height:i}}else return e instanceof SVGElement&&"getBBox"in e?e.getBBox():{width:e.offsetWidth,height:e.offsetHeight}}function _S({target:e,contentRect:t,borderBoxSize:n}){var i;(i=ns.get(e))===null||i===void 0||i.forEach(r=>{r({target:e,contentSize:t,get size(){return IS(e,n)}})})}function OS(e){e.forEach(_S)}function jS(){typeof ResizeObserver>"u"||(Vt=new ResizeObserver(OS))}function FS(e,t){Vt||jS();const n=Vu(e);return n.forEach(i=>{let r=ns.get(i);r||(r=new Set,ns.set(i,r)),r.add(t),Vt==null||Vt.observe(i)}),()=>{n.forEach(i=>{const r=ns.get(i);r==null||r.delete(t),r!=null&&r.size||Vt==null||Vt.unobserve(i)})}}const is=new Set;let Oi;function BS(){Oi=()=>{const e={width:window.innerWidth,height:window.innerHeight},t={target:window,size:e,contentSize:e};is.forEach(n=>n(t))},window.addEventListener("resize",Oi)}function zS(e){return is.add(e),Oi||BS(),()=>{is.delete(e),!is.size&&Oi&&(Oi=void 0)}}function US(e,t){return typeof e=="function"?zS(e):FS(e,t)}const $S=50,Kd=()=>({current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0}),WS=()=>({time:0,x:Kd(),y:Kd()}),HS={x:{length:"Width",position:"Left"},y:{length:"Height",position:"Top"}};function Gd(e,t,n,i){const r=n[t],{length:s,position:o}=HS[t],a=r.current,l=n.time;r.current=e["scroll"+o],r.scrollLength=e["scroll"+s]-e["client"+s],r.offset.length=0,r.offset[0]=0,r.offset[1]=r.scrollLength,r.progress=Pn(0,r.scrollLength,r.current);const u=i-l;r.velocity=u>$S?0:Pu(r.current-a,u)}function QS(e,t,n){Gd(e,"x",t,n),Gd(e,"y",t,n),t.time=n}function KS(e,t){const n={x:0,y:0};let i=e;for(;i&&i!==t;)if(i instanceof HTMLElement)n.x+=i.offsetLeft,n.y+=i.offsetTop,i=i.offsetParent;else if(i.tagName==="svg"){const r=i.getBoundingClientRect();i=i.parentElement;const s=i.getBoundingClientRect();n.x+=r.left-s.left,n.y+=r.top-s.top}else if(i instanceof SVGGraphicsElement){const{x:r,y:s}=i.getBBox();n.x+=r,n.y+=s;let o=null,a=i.parentNode;for(;!o;)a.tagName==="svg"&&(o=a),a=i.parentNode;i=o}else break;return n}const GS={Enter:[[0,1],[1,1]],Exit:[[0,0],[1,0]],Any:[[1,0],[0,1]],All:[[0,0],[1,1]]},sl={start:0,center:.5,end:1};function Yd(e,t,n=0){let i=0;if(sl[e]!==void 0&&(e=sl[e]),typeof e=="string"){const r=parseFloat(e);e.endsWith("px")?i=r:e.endsWith("%")?e=r/100:e.endsWith("vw")?i=r/100*document.documentElement.clientWidth:e.endsWith("vh")?i=r/100*document.documentElement.clientHeight:e=r}return typeof e=="number"&&(i=t*e),n+i}const YS=[0,0];function XS(e,t,n,i){let r=Array.isArray(e)?e:YS,s=0,o=0;return typeof e=="number"?r=[e,e]:typeof e=="string"&&(e=e.trim(),e.includes(" ")?r=e.split(" "):r=[e,sl[e]?e:"0"]),s=Yd(r[0],n,i),o=Yd(r[1],t),s-o}const ZS={x:0,y:0};function JS(e){return"getBBox"in e&&e.tagName!=="svg"?e.getBBox():{width:e.clientWidth,height:e.clientHeight}}function ex(e,t,n){let{offset:i=GS.All}=n;const{target:r=e,axis:s="y"}=n,o=s==="y"?"height":"width",a=r!==e?KS(r,e):ZS,l=r===e?{width:e.scrollWidth,height:e.scrollHeight}:JS(r),u={width:e.clientWidth,height:e.clientHeight};t[s].offset.length=0;let c=!t[s].interpolate;const d=i.length;for(let f=0;ftx(e,i.target,n),update:r=>{QS(e,n,r),(i.offset||i.target)&&ex(e,n,i)},notify:()=>t(n)}}const wi=new WeakMap,Xd=new WeakMap,Go=new WeakMap,Zd=e=>e===document.documentElement?window:e;function ix(e,{container:t=document.documentElement,...n}={}){let i=Go.get(t);i||(i=new Set,Go.set(t,i));const r=WS(),s=nx(t,e,r,n);if(i.add(s),!wi.has(t)){const a=()=>{for(const f of i)f.measure()},l=()=>{for(const f of i)f.update(ne.timestamp)},u=()=>{for(const f of i)f.notify()},c=()=>{B.read(a,!1,!0),B.update(l,!1,!0),B.update(u,!1,!0)};wi.set(t,c);const d=Zd(t);window.addEventListener("resize",c,{passive:!0}),t!==document.documentElement&&Xd.set(t,US(t,c)),d.addEventListener("scroll",c,{passive:!0})}const o=wi.get(t);return B.read(o,!1,!0),()=>{var a;rt(o);const l=Go.get(t);if(!l||(l.delete(s),l.size))return;const u=wi.get(t);wi.delete(t),u&&(Zd(t).removeEventListener("scroll",u),(a=Xd.get(t))===null||a===void 0||a(),window.removeEventListener("resize",u))}}function Jd(e,t){Hp(!!(!t||t.current))}const rx=()=>({scrollX:Je(0),scrollY:Je(0),scrollXProgress:Je(0),scrollYProgress:Je(0)});function Qh({container:e,target:t,layoutEffect:n=!0,...i}={}){const r=rr(rx);return(n?ou:P.useEffect)(()=>(Jd("target",t),Jd("container",e),ix(({x:o,y:a})=>{r.scrollX.set(o.current),r.scrollXProgress.set(o.progress),r.scrollY.set(a.current),r.scrollYProgress.set(a.progress)},{...i,container:(e==null?void 0:e.current)||void 0,target:(t==null?void 0:t.current)||void 0})),[e,t,JSON.stringify(i.offset)]),r}function sx(e,t){let n;const i=()=>{const{currentTime:r}=t,o=(r===null?0:r.value)/100;n!==o&&e(o),n=o};return B.update(i,!0),()=>rt(i)}const ox=vh(()=>window.ScrollTimeline!==void 0);class Kh{constructor(t){this.animations=t.filter(Boolean)}then(t,n){return Promise.all(this.animations).then(t).catch(n)}getAll(t){return this.animations[0][t]}setAll(t,n){for(let i=0;i{if(ox()&&i.attachTimeline)i.attachTimeline(t);else return i.pause(),sx(r=>{i.time=i.duration*r},t)});return()=>{n.forEach((i,r)=>{i&&i(),this.animations[r].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get duration(){let t=0;for(let n=0;nn[t]())}play(){this.runAll("play")}pause(){this.runAll("pause")}stop(){this.runAll("stop")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}function ax(e){return typeof e=="object"&&!Array.isArray(e)}function lx(e){const t={presenceContext:null,props:{},visualState:{renderState:{transform:{},transformOrigin:{},style:{},vars:{},attrs:{}},latestValues:{}}},n=_h(e)?new Hh(t,{enableHardwareAcceleration:!1}):new Wh(t,{enableHardwareAcceleration:!0});n.mount(e),or.set(e,n)}function ux(e,t=100){const n=Cu({keyframes:[0,t],...e}),i=Math.min(Ga(n),Ka);return{type:"keyframes",ease:r=>n.next(i*r).value/t,duration:nt(i)}}function ef(e,t,n,i){var r;return typeof t=="number"?t:t.startsWith("-")||t.startsWith("+")?Math.max(0,e+parseFloat(t)):t==="<"?n:(r=i.get(t))!==null&&r!==void 0?r:e}const cx=(e,t,n)=>{const i=t-e;return((n-e)%i+i)%i+e};function dx(e,t){return Jp(e)?e[cx(0,e.length,t)]:e}function fx(e,t,n){for(let i=0;it&&r.at{const C=vx(p),{delay:q=0,times:N=xu(C),type:Y="keyframes",...he}=w;let{ease:de=t.ease||"easeOut",duration:F}=w;const Q=typeof q=="function"?q(T,E):q,Se=C.length;if(Se<=2&&Y==="spring"){let I=100;if(Se===2&&Sx(C)){const ht=C[1]-C[0];I=Math.abs(ht)}const R={...he};F!==void 0&&(R.duration=Ct(F));const U=ux(R,I);de=U.ease,F=U.duration}F??(F=r);const qe=c+Q,L=qe+F;N.length===1&&N[0]===0&&(N[1]=1);const b=N.length-C.length;b>0&&hh(N,b),C.length===1&&C.unshift(null),mx(x,C,de,N,qe,L),g=Math.max(Q+F,g),d=Math.max(L,d)};if(ce(v)){const p=tf(v,o);m(y,S,nf("default",p))}else{const p=Vu(v,i,a),w=p.length;for(let x=0;x{for(const v in f){const y=f[v];y.sort(px);const S=[],g=[],m=[];for(let w=0;wtypeof e=="number",Sx=e=>e.every(wx);function Gh(e,t,n,i){const r=Vu(e,i),s=r.length,o=[];for(let a=0;aArray.isArray(e)&&Array.isArray(e[0]);function Px(e,t,n){const i=[];return gx(e,t,n).forEach(({keyframes:s,transition:o},a)=>{let l;ce(a)?l=Nu(a,s.default,o.default):l=Gh(a,s,o),i.push(l)}),new Kh(i)}const Cx=e=>{function t(n,i,r){let s;return xx(n)?s=Px(n,i,e):ax(i)?s=Gh(n,i,r,e):s=Nu(n,i,r),e&&e.animations.push(s),s}return t};function rf(){const e=rr(()=>({current:null,animations:[]})),t=rr(()=>Cx(e));return qS(()=>{e.animations.forEach(n=>n.stop())}),[e,t]}const kx=({text:e,offset:t})=>st("div",{className:"relative",children:[A(Ie.span,{animate:{margin:`-${t} ${t} ${t} -${t}`},className:"absolute text-red-500 select-none",children:e}),A(Ie.span,{animate:{margin:`${t} ${t} ${t} ${t}`},className:"absolute text-blue-500 select-none",children:e}),A("span",{className:"text-slate-200 z-10 mix-blend-lighten",children:e})]}),Yh=P.memo(kx);function Tx(){return st("div",{className:"flex justify-center gap-y-4 h-full",children:[st("div",{className:"flex-1 grow flex flex-col justify-center gap-y-4 h-full",children:[A("span",{className:" text-7xl",children:"Hi, I'm"}),A("div",{className:"text-9xl font-bold",children:A(Yh,{text:"Noah Paige",offset:"0.25rem"})})]}),A("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"w-1/2 h-full",children:A("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.59 14.37a6 6 0 01-5.84 7.38v-4.8m5.84-2.58a14.98 14.98 0 006.16-12.12A14.98 14.98 0 009.631 8.41m5.96 5.96a14.926 14.926 0 01-5.841 2.58m-.119-8.54a6 6 0 00-7.381 5.84h4.8m2.581-5.84a14.927 14.927 0 00-2.58 5.84m2.699 2.7c-.103.021-.207.041-.311.06a15.09 15.09 0 01-2.448-2.448 14.9 14.9 0 01.06-.312m-2.24 2.39a4.493 4.493 0 00-1.757 4.306 4.493 4.493 0 004.306-1.758M16.5 9a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z"})})]})}function Ex(){return A("div",{className:"h-full",children:A("h1",{children:"About Me"})})}function Lx(){return A("div",{children:"Skills"})}const ol={type:"spring",stiffness:200,damping:30},al={type:"spring",stiffness:300,damping:35},Mx=({isOpen:e,imgSrc:t,width:n,height:i,imgPOI:r,title:s,children:o})=>{const a=P.useRef(),l=P.useRef();return P.useState({x:0,y:0}),P.useEffect(()=>{a.current.getBoundingClientRect(),l.current.getBoundingClientRect(),console.log("here")},[]),A(Vw,{children:A(Ie.div,{ref:a,className:"h-[400px] w-full overflow-hidden",style:{originX:0,originY:0},children:st("div",{className:"relative",children:[A(Ie.img,{ref:l,src:t,alt:s+" Image",className:"object-cover w-full h-[inherit]",initial:!1,animate:e?{x:0,y:0}:{x:-r.x,y:r.y}}),o]})})})},Ax=P.memo(Mx),Nx={open:{fontSize:"8rem",transition:{openSpring:ol}},closed:{fontSize:"3rem",transition:{closeSpring:al}}},Vx=({isOpen:e,title:t,tags:n,width:i,height:r})=>{const[s,o]=P.useState(!1),[a,l]=P.useState("0.05rem");return P.useEffect(()=>{!s&&!e&&l("0.05rem"),s&&!e&&l("0.2rem"),!s&&e&&l("0.2rem"),s&&e&&l("0.3rem")},[e,s]),st("div",{className:"absolute top-0 w-full flex flex-col h-full",style:{height:e&&r},onMouseOver:()=>o(!0),onMouseOut:()=>o(!1),onMouseDown:()=>!e&&o(!0),onMouseUp:()=>!e&&o(!1),children:[A("div",{className:"ml-2 [&>*:nth-child(1)]:ml-0",children:n.map((u,c)=>A(Ie.span,{className:"badge bg-[rgba(20,30,40,0.3)] backdrop-blur-lg border-none mx-1 my-2 text-slate-100",animate:e?{margin:"1rem 0.5rem 1rem 0.5rem",fontSize:"1.5rem",height:"2.25rem"}:{margin:"0.5rem 0.25rem 0.5rem 0.25rem",fontSize:"1rem",height:"1.5rem"},children:u},c))}),A(Ie.div,{animate:e?"open":"closed",initial:"closed",variants:Nx,className:"ml-2 font-bold",children:A(Yh,{text:t,offset:a})})]})},qx=P.memo(Vx),Rx=({height:e,children:t,allowScroll:n,allowOverscroll:i=!1})=>{const r=P.useRef(null),s=P.useRef(null),{scrollYProgress:o}=Qh({container:r}),a=DS(o,{stiffness:60,damping:15,restDelta:.1});return st("div",{ref:r,className:"w-full scroll-smooth",style:{height:e,overscrollBehavior:i?"auto":"contain",overflow:n?"scroll":"hidden"},children:[A("div",{className:"fixed h-full w-[12px] z-40 right-0",ref:s,children:A(Ie.div,{className:"bg-red-500 w-full h-full origin-top",style:{scaleY:a,visibility:n?"visible":"hidden"}})}),A("div",{children:t})]})},Dx=P.memo(Rx),bx=({isOpen:e,title:t,imgSrc:n,imgPOI:i,content:r,tags:s})=>A("div",{className:"backdrop-blur-xl bg-[rgba(20,30,40,0.7)] h-full",children:st(Dx,{height:e?"100%":"fit-content",allowScroll:e,children:[A(Ax,{isOpen:e,imgSrc:n,width:"800px",height:"400px",imgPOI:i,title:t,children:A(qx,{isOpen:e,title:t,tags:s,width:"800px",height:"400px"})}),A("div",{className:"p-4",children:r})]})}),Ix=P.memo(bx);class _x{constructor(){this.bus={}}$off(t){delete this.bus[t]}$on(t,n){this.bus[t]=n}$emit(t,...n){this.bus[t]&&this.bus[t](...n)}}const ll=new _x,An={open:{card:{width:"80vw",height:"90vh",left:"10vw",zIndex:"30"},overlay:{part1:{width:"100vw",height:"100vh",zIndex:"20"},part2:{opacity:1}}},closed:{card:{width:"100%",height:"100%",left:"0"},overlay:{part1:{opacity:0,zIndex:"10"},part2:{width:"100%",height:"100%"}}}},Ox=({title:e,imgSrc:t,imgPOI:n,content:i,tags:r,onCardToggle:s})=>{const[o,a]=P.useState(!1),[l,u]=rf(),[c,d]=rf(),f=P.useRef(),{scrollY:h}=Qh({container:f});bS(h,"change",m=>{console.log("Page scroll: ",m)});const v=()=>{o||(a(!0),ll.$emit("toggleBodyScroll"),S())},y=()=>{o&&(a(!1),ll.$emit("toggleBodyScroll"),g())};async function S(){const m=f.current.getBoundingClientRect();await d(c.current,{...An.open.overlay.part1,x:-m.x,y:-m.y},{duration:0}),await Promise.all([d(c.current,{...An.open.overlay.part2},ol),u(l.current,{...An.open.card,x:-m.x,y:`calc(5vh - ${m.y}px)`},ol)])}async function g(){await Promise.all([u(l.current,{...An.closed.card,x:0,y:0},al),d(c.current,{...An.closed.overlay.part1},al)]),await d(c.current,{...An.closed.overlay.part2,x:0,y:0},{duration:0}),await u(l.current,{zIndex:"10"})}return st("div",{ref:f,className:"relative",children:[A(Ie.div,{ref:c,whileHover:{cursor:o&&"pointer"},onClick:y,className:"absolute backdrop-blur-sm bg-slate-900/50"}),A(Ie.div,{ref:l,style:{cursor:!o&&"pointer"},whileHover:{scale:o?1:1.02},className:"absolute bg-slate-700 h-full w-full flex flex-col shadow-xl bg-opacity-10 overflow-hidden rounded-xl",onClick:v,children:A(Ix,{isOpen:o,imgSrc:t,imgPOI:n,title:e,content:i,tags:r})})]})},jx=P.memo(Ox),Fx=[{id:"smarter-npcs",title:"Smarter NPCs",tags:["Unity","Game Dev","C#"],imgSrc:"https://cdn.pixabay.com/photo/2023/05/01/06/17/pelican-7962189_1280.jpg",imgPOI:{x:0,y:-100},desc:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Odio morbi quis commodo odio aenean sed. Id porta nibh venenatis cras sed felis eget velit aliquet. Varius sit amet mattis vulputate enim nulla. ",content:A("div",{children:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Blandit cursus risus at ultrices mi tempus imperdiet nulla malesuada. Fusce ut placerat orci nulla pellentesque dignissim enim sit. Lorem ipsum dolor sit amet consectetur. Convallis aenean et tortor at risus viverra adipiscing at in. Libero id faucibus nisl tincidunt eget. Proin nibh nisl condimentum id venenatis. Nibh sit amet commodo nulla. Suscipit tellus mauris a diam maecenas sed enim. Malesuada pellentesque elit eget gravida cum sociis natoque penatibus. Pulvinar sapien et ligula ullamcorper malesuada proin libero. Nunc consequat interdum varius sit amet mattis vulputate enim nulla. Nunc aliquet bibendum enim facilisis gravida neque convallis a cras. Placerat duis ultricies lacus sed turpis. Malesuada bibendum arcu vitae elementum curabitur vitae nunc sed. Massa ultricies mi quis hendrerit dolor magna eget est. Eu sem integer vitae justo eget magna. Orci eu lobortis elementum nibh. Tempus imperdiet nulla malesuada pellentesque elit eget gravida. Diam sollicitudin tempor id eu nisl nunc mi ipsum. Eu nisl nunc mi ipsum faucibus vitae. Pharetra massa massa ultricies mi quis hendrerit. Turpis in eu mi bibendum. Nibh nisl condimentum id venenatis a. Sapien pellentesque habitant morbi tristique. Pharetra diam sit amet nisl. Mi in nulla posuere sollicitudin aliquam ultrices. Maecenas volutpat blandit aliquam etiam. Suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Cras ornare arcu dui vivamus. Ut consequat semper viverra nam. Auctor neque vitae tempus quam pellentesque nec nam. Quis blandit turpis cursus in hac habitasse. Congue eu consequat ac felis donec. Urna condimentum mattis pellentesque id nibh tortor id aliquet. Cras pulvinar mattis nunc sed blandit libero volutpat. Nunc sed augue lacus viverra vitae congue eu. Proin libero nunc consequat interdum varius sit. Risus pretium quam vulputate dignissim suspendisse in. In est ante in nibh mauris cursus. Lacinia quis vel eros donec ac odio tempor orci. Non odio euismod lacinia at quis risus. In egestas erat imperdiet sed euismod nisi porta lorem mollis. Ut faucibus pulvinar elementum integer enim neque volutpat ac. A lacus vestibulum sed arcu non odio euismod. Nec feugiat in fermentum posuere urna nec. Rhoncus est pellentesque elit ullamcorper dignissim cras tincidunt. Urna et pharetra pharetra massa massa ultricies mi quis. Ut eu sem integer vitae justo eget magna fermentum iaculis. Eros in cursus turpis massa tincidunt. Ullamcorper morbi tincidunt ornare massa. Tristique magna sit amet purus gravida quis. Scelerisque mauris pellentesque pulvinar pellentesque habitant morbi. Cras ornare arcu dui vivamus arcu felis bibendum ut tristique. Tortor condimentum lacinia quis vel eros donec ac odio. Duis at consectetur lorem donec massa sapien faucibus et molestie. Viverra ipsum nunc aliquet bibendum enim facilisis gravida neque. Viverra maecenas accumsan lacus vel facilisis. Ipsum dolor sit amet consectetur adipiscing elit pellentesque. Sollicitudin aliquam ultrices sagittis orci a scelerisque purus semper eget. Ullamcorper malesuada proin libero nunc. Amet nulla facilisi morbi tempus iaculis urna id. Ullamcorper malesuada proin libero nunc consequat interdum varius sit. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Eget gravida cum sociis natoque penatibus. Non sodales neque sodales ut etiam sit amet nisl. Bibendum ut tristique et egestas. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Quis auctor elit sed vulputate mi sit. Ut morbi tincidunt augue interdum velit euismod in pellentesque massa. Sagittis id consectetur purus ut faucibus pulvinar elementum. Et tortor at risus viverra adipiscing at. Vitae auctor eu augue ut lectus. Egestas pretium aenean pharetra magna. Ante in nibh mauris cursus mattis. Nisl condimentum id venenatis a condimentum vitae sapien pellentesque. Dis parturient montes nascetur ridiculus mus mauris vitae. Aliquam faucibus purus in massa tempor nec. Bibendum at varius vel pharetra vel turpis. Tellus pellentesque eu tincidunt tortor aliquam nulla. Laoreet sit amet cursus sit."})},{id:"portfolio-site",title:"Portfolio Website",tags:["React","JavaScript","Web Dev"],imgSrc:"https://cdn.pixabay.com/photo/2023/03/06/17/02/ship-7833921_1280.jpg",imgPOI:{x:0,y:-140},desc:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Odio morbi quis commodo odio aenean sed. Id porta nibh venenatis cras sed felis eget velit aliquet. Varius sit amet mattis vulputate enim nulla. ",content:A("div",{children:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Blandit cursus risus at ultrices mi tempus imperdiet nulla malesuada. Fusce ut placerat orci nulla pellentesque dignissim enim sit. Lorem ipsum dolor sit amet consectetur. Convallis aenean et tortor at risus viverra adipiscing at in. Libero id faucibus nisl tincidunt eget. Proin nibh nisl condimentum id venenatis. Nibh sit amet commodo nulla. Suscipit tellus mauris a diam maecenas sed enim. Malesuada pellentesque elit eget gravida cum sociis natoque penatibus. Pulvinar sapien et ligula ullamcorper malesuada proin libero. Nunc consequat interdum varius sit amet mattis vulputate enim nulla. Nunc aliquet bibendum enim facilisis gravida neque convallis a cras. Placerat duis ultricies lacus sed turpis. Malesuada bibendum arcu vitae elementum curabitur vitae nunc sed. Massa ultricies mi quis hendrerit dolor magna eget est. Eu sem integer vitae justo eget magna. Orci eu lobortis elementum nibh. Tempus imperdiet nulla malesuada pellentesque elit eget gravida. Diam sollicitudin tempor id eu nisl nunc mi ipsum. Eu nisl nunc mi ipsum faucibus vitae. Pharetra massa massa ultricies mi quis hendrerit. Turpis in eu mi bibendum. Nibh nisl condimentum id venenatis a. Sapien pellentesque habitant morbi tristique. Pharetra diam sit amet nisl. Mi in nulla posuere sollicitudin aliquam ultrices. Maecenas volutpat blandit aliquam etiam. Suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Cras ornare arcu dui vivamus. Ut consequat semper viverra nam. Auctor neque vitae tempus quam pellentesque nec nam. Quis blandit turpis cursus in hac habitasse. Congue eu consequat ac felis donec. Urna condimentum mattis pellentesque id nibh tortor id aliquet. Cras pulvinar mattis nunc sed blandit libero volutpat. Nunc sed augue lacus viverra vitae congue eu. Proin libero nunc consequat interdum varius sit. Risus pretium quam vulputate dignissim suspendisse in. In est ante in nibh mauris cursus. Lacinia quis vel eros donec ac odio tempor orci. Non odio euismod lacinia at quis risus. In egestas erat imperdiet sed euismod nisi porta lorem mollis. Ut faucibus pulvinar elementum integer enim neque volutpat ac. A lacus vestibulum sed arcu non odio euismod. Nec feugiat in fermentum posuere urna nec. Rhoncus est pellentesque elit ullamcorper dignissim cras tincidunt. Urna et pharetra pharetra massa massa ultricies mi quis. Ut eu sem integer vitae justo eget magna fermentum iaculis. Eros in cursus turpis massa tincidunt. Ullamcorper morbi tincidunt ornare massa. Tristique magna sit amet purus gravida quis. Scelerisque mauris pellentesque pulvinar pellentesque habitant morbi. Cras ornare arcu dui vivamus arcu felis bibendum ut tristique. Tortor condimentum lacinia quis vel eros donec ac odio. Duis at consectetur lorem donec massa sapien faucibus et molestie. Viverra ipsum nunc aliquet bibendum enim facilisis gravida neque. Viverra maecenas accumsan lacus vel facilisis. Ipsum dolor sit amet consectetur adipiscing elit pellentesque. Sollicitudin aliquam ultrices sagittis orci a scelerisque purus semper eget. Ullamcorper malesuada proin libero nunc. Amet nulla facilisi morbi tempus iaculis urna id. Ullamcorper malesuada proin libero nunc consequat interdum varius sit. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Eget gravida cum sociis natoque penatibus. Non sodales neque sodales ut etiam sit amet nisl. Bibendum ut tristique et egestas. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Quis auctor elit sed vulputate mi sit. Ut morbi tincidunt augue interdum velit euismod in pellentesque massa. Sagittis id consectetur purus ut faucibus pulvinar elementum. Et tortor at risus viverra adipiscing at. Vitae auctor eu augue ut lectus. Egestas pretium aenean pharetra magna. Ante in nibh mauris cursus mattis. Nisl condimentum id venenatis a condimentum vitae sapien pellentesque. Dis parturient montes nascetur ridiculus mus mauris vitae. Aliquam faucibus purus in massa tempor nec. Bibendum at varius vel pharetra vel turpis. Tellus pellentesque eu tincidunt tortor aliquam nulla. Laoreet sit amet cursus sit."})},{id:"project-3",title:"Project 3",tags:["one","two","three"],imgSrc:"https://cdn.pixabay.com/photo/2023/08/15/11/47/mushroom-8191823_1280.jpg",imgPOI:{x:0,y:0},desc:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Odio morbi quis commodo odio aenean sed. Id porta nibh venenatis cras sed felis eget velit aliquet. Varius sit amet mattis vulputate enim nulla. ",content:A("div",{children:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Blandit cursus risus at ultrices mi tempus imperdiet nulla malesuada. Fusce ut placerat orci nulla pellentesque dignissim enim sit. Lorem ipsum dolor sit amet consectetur. Convallis aenean et tortor at risus viverra adipiscing at in. Libero id faucibus nisl tincidunt eget. Proin nibh nisl condimentum id venenatis. Nibh sit amet commodo nulla. Suscipit tellus mauris a diam maecenas sed enim. Malesuada pellentesque elit eget gravida cum sociis natoque penatibus. Pulvinar sapien et ligula ullamcorper malesuada proin libero. Nunc consequat interdum varius sit amet mattis vulputate enim nulla. Nunc aliquet bibendum enim facilisis gravida neque convallis a cras. Placerat duis ultricies lacus sed turpis. Malesuada bibendum arcu vitae elementum curabitur vitae nunc sed. Massa ultricies mi quis hendrerit dolor magna eget est. Eu sem integer vitae justo eget magna. Orci eu lobortis elementum nibh. Tempus imperdiet nulla malesuada pellentesque elit eget gravida. Diam sollicitudin tempor id eu nisl nunc mi ipsum. Eu nisl nunc mi ipsum faucibus vitae. Pharetra massa massa ultricies mi quis hendrerit. Turpis in eu mi bibendum. Nibh nisl condimentum id venenatis a. Sapien pellentesque habitant morbi tristique. Pharetra diam sit amet nisl. Mi in nulla posuere sollicitudin aliquam ultrices. Maecenas volutpat blandit aliquam etiam. Suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Cras ornare arcu dui vivamus. Ut consequat semper viverra nam. Auctor neque vitae tempus quam pellentesque nec nam. Quis blandit turpis cursus in hac habitasse. Congue eu consequat ac felis donec. Urna condimentum mattis pellentesque id nibh tortor id aliquet. Cras pulvinar mattis nunc sed blandit libero volutpat. Nunc sed augue lacus viverra vitae congue eu. Proin libero nunc consequat interdum varius sit. Risus pretium quam vulputate dignissim suspendisse in. In est ante in nibh mauris cursus. Lacinia quis vel eros donec ac odio tempor orci. Non odio euismod lacinia at quis risus. In egestas erat imperdiet sed euismod nisi porta lorem mollis. Ut faucibus pulvinar elementum integer enim neque volutpat ac. A lacus vestibulum sed arcu non odio euismod. Nec feugiat in fermentum posuere urna nec. Rhoncus est pellentesque elit ullamcorper dignissim cras tincidunt. Urna et pharetra pharetra massa massa ultricies mi quis. Ut eu sem integer vitae justo eget magna fermentum iaculis. Eros in cursus turpis massa tincidunt. Ullamcorper morbi tincidunt ornare massa. Tristique magna sit amet purus gravida quis. Scelerisque mauris pellentesque pulvinar pellentesque habitant morbi. Cras ornare arcu dui vivamus arcu felis bibendum ut tristique. Tortor condimentum lacinia quis vel eros donec ac odio. Duis at consectetur lorem donec massa sapien faucibus et molestie. Viverra ipsum nunc aliquet bibendum enim facilisis gravida neque. Viverra maecenas accumsan lacus vel facilisis. Ipsum dolor sit amet consectetur adipiscing elit pellentesque. Sollicitudin aliquam ultrices sagittis orci a scelerisque purus semper eget. Ullamcorper malesuada proin libero nunc. Amet nulla facilisi morbi tempus iaculis urna id. Ullamcorper malesuada proin libero nunc consequat interdum varius sit. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Eget gravida cum sociis natoque penatibus. Non sodales neque sodales ut etiam sit amet nisl. Bibendum ut tristique et egestas. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Quis auctor elit sed vulputate mi sit. Ut morbi tincidunt augue interdum velit euismod in pellentesque massa. Sagittis id consectetur purus ut faucibus pulvinar elementum. Et tortor at risus viverra adipiscing at. Vitae auctor eu augue ut lectus. Egestas pretium aenean pharetra magna. Ante in nibh mauris cursus mattis. Nisl condimentum id venenatis a condimentum vitae sapien pellentesque. Dis parturient montes nascetur ridiculus mus mauris vitae. Aliquam faucibus purus in massa tempor nec. Bibendum at varius vel pharetra vel turpis. Tellus pellentesque eu tincidunt tortor aliquam nulla. Laoreet sit amet cursus sit."})},{id:"project-4",title:"Project 4",tags:["one","two","three"],imgSrc:"https://cdn.pixabay.com/photo/2023/08/11/05/44/ai-generated-8182842_1280.jpg",imgPOI:{x:0,y:0},desc:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Odio morbi quis commodo odio aenean sed. Id porta nibh venenatis cras sed felis eget velit aliquet. Varius sit amet mattis vulputate enim nulla. ",content:A("div",{children:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Blandit cursus risus at ultrices mi tempus imperdiet nulla malesuada. Fusce ut placerat orci nulla pellentesque dignissim enim sit. Lorem ipsum dolor sit amet consectetur. Convallis aenean et tortor at risus viverra adipiscing at in. Libero id faucibus nisl tincidunt eget. Proin nibh nisl condimentum id venenatis. Nibh sit amet commodo nulla. Suscipit tellus mauris a diam maecenas sed enim. Malesuada pellentesque elit eget gravida cum sociis natoque penatibus. Pulvinar sapien et ligula ullamcorper malesuada proin libero. Nunc consequat interdum varius sit amet mattis vulputate enim nulla. Nunc aliquet bibendum enim facilisis gravida neque convallis a cras. Placerat duis ultricies lacus sed turpis. Malesuada bibendum arcu vitae elementum curabitur vitae nunc sed. Massa ultricies mi quis hendrerit dolor magna eget est. Eu sem integer vitae justo eget magna. Orci eu lobortis elementum nibh. Tempus imperdiet nulla malesuada pellentesque elit eget gravida. Diam sollicitudin tempor id eu nisl nunc mi ipsum. Eu nisl nunc mi ipsum faucibus vitae. Pharetra massa massa ultricies mi quis hendrerit. Turpis in eu mi bibendum. Nibh nisl condimentum id venenatis a. Sapien pellentesque habitant morbi tristique. Pharetra diam sit amet nisl. Mi in nulla posuere sollicitudin aliquam ultrices. Maecenas volutpat blandit aliquam etiam. Suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Cras ornare arcu dui vivamus. Ut consequat semper viverra nam. Auctor neque vitae tempus quam pellentesque nec nam. Quis blandit turpis cursus in hac habitasse. Congue eu consequat ac felis donec. Urna condimentum mattis pellentesque id nibh tortor id aliquet. Cras pulvinar mattis nunc sed blandit libero volutpat. Nunc sed augue lacus viverra vitae congue eu. Proin libero nunc consequat interdum varius sit. Risus pretium quam vulputate dignissim suspendisse in. In est ante in nibh mauris cursus. Lacinia quis vel eros donec ac odio tempor orci. Non odio euismod lacinia at quis risus. In egestas erat imperdiet sed euismod nisi porta lorem mollis. Ut faucibus pulvinar elementum integer enim neque volutpat ac. A lacus vestibulum sed arcu non odio euismod. Nec feugiat in fermentum posuere urna nec. Rhoncus est pellentesque elit ullamcorper dignissim cras tincidunt. Urna et pharetra pharetra massa massa ultricies mi quis. Ut eu sem integer vitae justo eget magna fermentum iaculis. Eros in cursus turpis massa tincidunt. Ullamcorper morbi tincidunt ornare massa. Tristique magna sit amet purus gravida quis. Scelerisque mauris pellentesque pulvinar pellentesque habitant morbi. Cras ornare arcu dui vivamus arcu felis bibendum ut tristique. Tortor condimentum lacinia quis vel eros donec ac odio. Duis at consectetur lorem donec massa sapien faucibus et molestie. Viverra ipsum nunc aliquet bibendum enim facilisis gravida neque. Viverra maecenas accumsan lacus vel facilisis. Ipsum dolor sit amet consectetur adipiscing elit pellentesque. Sollicitudin aliquam ultrices sagittis orci a scelerisque purus semper eget. Ullamcorper malesuada proin libero nunc. Amet nulla facilisi morbi tempus iaculis urna id. Ullamcorper malesuada proin libero nunc consequat interdum varius sit. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Eget gravida cum sociis natoque penatibus. Non sodales neque sodales ut etiam sit amet nisl. Bibendum ut tristique et egestas. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Quis auctor elit sed vulputate mi sit. Ut morbi tincidunt augue interdum velit euismod in pellentesque massa. Sagittis id consectetur purus ut faucibus pulvinar elementum. Et tortor at risus viverra adipiscing at. Vitae auctor eu augue ut lectus. Egestas pretium aenean pharetra magna. Ante in nibh mauris cursus mattis. Nisl condimentum id venenatis a condimentum vitae sapien pellentesque. Dis parturient montes nascetur ridiculus mus mauris vitae. Aliquam faucibus purus in massa tempor nec. Bibendum at varius vel pharetra vel turpis. Tellus pellentesque eu tincidunt tortor aliquam nulla. Laoreet sit amet cursus sit."})},{id:"project-5",title:"Project 5",tags:["one","two","three"],imgSrc:"https://cdn.pixabay.com/photo/2023/05/01/06/17/pelican-7962189_1280.jpg",imgPOI:{x:0,y:0},desc:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Odio morbi quis commodo odio aenean sed. Id porta nibh venenatis cras sed felis eget velit aliquet. Varius sit amet mattis vulputate enim nulla. ",content:A("div",{children:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Blandit cursus risus at ultrices mi tempus imperdiet nulla malesuada. Fusce ut placerat orci nulla pellentesque dignissim enim sit. Lorem ipsum dolor sit amet consectetur. Convallis aenean et tortor at risus viverra adipiscing at in. Libero id faucibus nisl tincidunt eget. Proin nibh nisl condimentum id venenatis. Nibh sit amet commodo nulla. Suscipit tellus mauris a diam maecenas sed enim. Malesuada pellentesque elit eget gravida cum sociis natoque penatibus. Pulvinar sapien et ligula ullamcorper malesuada proin libero. Nunc consequat interdum varius sit amet mattis vulputate enim nulla. Nunc aliquet bibendum enim facilisis gravida neque convallis a cras. Placerat duis ultricies lacus sed turpis. Malesuada bibendum arcu vitae elementum curabitur vitae nunc sed. Massa ultricies mi quis hendrerit dolor magna eget est. Eu sem integer vitae justo eget magna. Orci eu lobortis elementum nibh. Tempus imperdiet nulla malesuada pellentesque elit eget gravida. Diam sollicitudin tempor id eu nisl nunc mi ipsum. Eu nisl nunc mi ipsum faucibus vitae. Pharetra massa massa ultricies mi quis hendrerit. Turpis in eu mi bibendum. Nibh nisl condimentum id venenatis a. Sapien pellentesque habitant morbi tristique. Pharetra diam sit amet nisl. Mi in nulla posuere sollicitudin aliquam ultrices. Maecenas volutpat blandit aliquam etiam. Suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Cras ornare arcu dui vivamus. Ut consequat semper viverra nam. Auctor neque vitae tempus quam pellentesque nec nam. Quis blandit turpis cursus in hac habitasse. Congue eu consequat ac felis donec. Urna condimentum mattis pellentesque id nibh tortor id aliquet. Cras pulvinar mattis nunc sed blandit libero volutpat. Nunc sed augue lacus viverra vitae congue eu. Proin libero nunc consequat interdum varius sit. Risus pretium quam vulputate dignissim suspendisse in. In est ante in nibh mauris cursus. Lacinia quis vel eros donec ac odio tempor orci. Non odio euismod lacinia at quis risus. In egestas erat imperdiet sed euismod nisi porta lorem mollis. Ut faucibus pulvinar elementum integer enim neque volutpat ac. A lacus vestibulum sed arcu non odio euismod. Nec feugiat in fermentum posuere urna nec. Rhoncus est pellentesque elit ullamcorper dignissim cras tincidunt. Urna et pharetra pharetra massa massa ultricies mi quis. Ut eu sem integer vitae justo eget magna fermentum iaculis. Eros in cursus turpis massa tincidunt. Ullamcorper morbi tincidunt ornare massa. Tristique magna sit amet purus gravida quis. Scelerisque mauris pellentesque pulvinar pellentesque habitant morbi. Cras ornare arcu dui vivamus arcu felis bibendum ut tristique. Tortor condimentum lacinia quis vel eros donec ac odio. Duis at consectetur lorem donec massa sapien faucibus et molestie. Viverra ipsum nunc aliquet bibendum enim facilisis gravida neque. Viverra maecenas accumsan lacus vel facilisis. Ipsum dolor sit amet consectetur adipiscing elit pellentesque. Sollicitudin aliquam ultrices sagittis orci a scelerisque purus semper eget. Ullamcorper malesuada proin libero nunc. Amet nulla facilisi morbi tempus iaculis urna id. Ullamcorper malesuada proin libero nunc consequat interdum varius sit. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Eget gravida cum sociis natoque penatibus. Non sodales neque sodales ut etiam sit amet nisl. Bibendum ut tristique et egestas. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Quis auctor elit sed vulputate mi sit. Ut morbi tincidunt augue interdum velit euismod in pellentesque massa. Sagittis id consectetur purus ut faucibus pulvinar elementum. Et tortor at risus viverra adipiscing at. Vitae auctor eu augue ut lectus. Egestas pretium aenean pharetra magna. Ante in nibh mauris cursus mattis. Nisl condimentum id venenatis a condimentum vitae sapien pellentesque. Dis parturient montes nascetur ridiculus mus mauris vitae. Aliquam faucibus purus in massa tempor nec. Bibendum at varius vel pharetra vel turpis. Tellus pellentesque eu tincidunt tortor aliquam nulla. Laoreet sit amet cursus sit."})},{id:"project-6",title:"Project 6",tags:["one","two","three"],imgSrc:"https://cdn.pixabay.com/photo/2023/05/01/06/17/pelican-7962189_1280.jpg",imgPOI:{x:0,y:0},desc:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Odio morbi quis commodo odio aenean sed. Id porta nibh venenatis cras sed felis eget velit aliquet. Varius sit amet mattis vulputate enim nulla. ",content:A("div",{children:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Blandit cursus risus at ultrices mi tempus imperdiet nulla malesuada. Fusce ut placerat orci nulla pellentesque dignissim enim sit. Lorem ipsum dolor sit amet consectetur. Convallis aenean et tortor at risus viverra adipiscing at in. Libero id faucibus nisl tincidunt eget. Proin nibh nisl condimentum id venenatis. Nibh sit amet commodo nulla. Suscipit tellus mauris a diam maecenas sed enim. Malesuada pellentesque elit eget gravida cum sociis natoque penatibus. Pulvinar sapien et ligula ullamcorper malesuada proin libero. Nunc consequat interdum varius sit amet mattis vulputate enim nulla. Nunc aliquet bibendum enim facilisis gravida neque convallis a cras. Placerat duis ultricies lacus sed turpis. Malesuada bibendum arcu vitae elementum curabitur vitae nunc sed. Massa ultricies mi quis hendrerit dolor magna eget est. Eu sem integer vitae justo eget magna. Orci eu lobortis elementum nibh. Tempus imperdiet nulla malesuada pellentesque elit eget gravida. Diam sollicitudin tempor id eu nisl nunc mi ipsum. Eu nisl nunc mi ipsum faucibus vitae. Pharetra massa massa ultricies mi quis hendrerit. Turpis in eu mi bibendum. Nibh nisl condimentum id venenatis a. Sapien pellentesque habitant morbi tristique. Pharetra diam sit amet nisl. Mi in nulla posuere sollicitudin aliquam ultrices. Maecenas volutpat blandit aliquam etiam. Suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Cras ornare arcu dui vivamus. Ut consequat semper viverra nam. Auctor neque vitae tempus quam pellentesque nec nam. Quis blandit turpis cursus in hac habitasse. Congue eu consequat ac felis donec. Urna condimentum mattis pellentesque id nibh tortor id aliquet. Cras pulvinar mattis nunc sed blandit libero volutpat. Nunc sed augue lacus viverra vitae congue eu. Proin libero nunc consequat interdum varius sit. Risus pretium quam vulputate dignissim suspendisse in. In est ante in nibh mauris cursus. Lacinia quis vel eros donec ac odio tempor orci. Non odio euismod lacinia at quis risus. In egestas erat imperdiet sed euismod nisi porta lorem mollis. Ut faucibus pulvinar elementum integer enim neque volutpat ac. A lacus vestibulum sed arcu non odio euismod. Nec feugiat in fermentum posuere urna nec. Rhoncus est pellentesque elit ullamcorper dignissim cras tincidunt. Urna et pharetra pharetra massa massa ultricies mi quis. Ut eu sem integer vitae justo eget magna fermentum iaculis. Eros in cursus turpis massa tincidunt. Ullamcorper morbi tincidunt ornare massa. Tristique magna sit amet purus gravida quis. Scelerisque mauris pellentesque pulvinar pellentesque habitant morbi. Cras ornare arcu dui vivamus arcu felis bibendum ut tristique. Tortor condimentum lacinia quis vel eros donec ac odio. Duis at consectetur lorem donec massa sapien faucibus et molestie. Viverra ipsum nunc aliquet bibendum enim facilisis gravida neque. Viverra maecenas accumsan lacus vel facilisis. Ipsum dolor sit amet consectetur adipiscing elit pellentesque. Sollicitudin aliquam ultrices sagittis orci a scelerisque purus semper eget. Ullamcorper malesuada proin libero nunc. Amet nulla facilisi morbi tempus iaculis urna id. Ullamcorper malesuada proin libero nunc consequat interdum varius sit. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Eget gravida cum sociis natoque penatibus. Non sodales neque sodales ut etiam sit amet nisl. Bibendum ut tristique et egestas. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Quis auctor elit sed vulputate mi sit. Ut morbi tincidunt augue interdum velit euismod in pellentesque massa. Sagittis id consectetur purus ut faucibus pulvinar elementum. Et tortor at risus viverra adipiscing at. Vitae auctor eu augue ut lectus. Egestas pretium aenean pharetra magna. Ante in nibh mauris cursus mattis. Nisl condimentum id venenatis a condimentum vitae sapien pellentesque. Dis parturient montes nascetur ridiculus mus mauris vitae. Aliquam faucibus purus in massa tempor nec. Bibendum at varius vel pharetra vel turpis. Tellus pellentesque eu tincidunt tortor aliquam nulla. Laoreet sit amet cursus sit."})},{id:"project-7",title:"Project 7",tags:["one","two","three"],imgSrc:"https://cdn.pixabay.com/photo/2023/05/01/06/17/pelican-7962189_1280.jpg",imgPOI:{x:0,y:0},desc:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Odio morbi quis commodo odio aenean sed. Id porta nibh venenatis cras sed felis eget velit aliquet. Varius sit amet mattis vulputate enim nulla. ",content:A("div",{children:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Blandit cursus risus at ultrices mi tempus imperdiet nulla malesuada. Fusce ut placerat orci nulla pellentesque dignissim enim sit. Lorem ipsum dolor sit amet consectetur. Convallis aenean et tortor at risus viverra adipiscing at in. Libero id faucibus nisl tincidunt eget. Proin nibh nisl condimentum id venenatis. Nibh sit amet commodo nulla. Suscipit tellus mauris a diam maecenas sed enim. Malesuada pellentesque elit eget gravida cum sociis natoque penatibus. Pulvinar sapien et ligula ullamcorper malesuada proin libero. Nunc consequat interdum varius sit amet mattis vulputate enim nulla. Nunc aliquet bibendum enim facilisis gravida neque convallis a cras. Placerat duis ultricies lacus sed turpis. Malesuada bibendum arcu vitae elementum curabitur vitae nunc sed. Massa ultricies mi quis hendrerit dolor magna eget est. Eu sem integer vitae justo eget magna. Orci eu lobortis elementum nibh. Tempus imperdiet nulla malesuada pellentesque elit eget gravida. Diam sollicitudin tempor id eu nisl nunc mi ipsum. Eu nisl nunc mi ipsum faucibus vitae. Pharetra massa massa ultricies mi quis hendrerit. Turpis in eu mi bibendum. Nibh nisl condimentum id venenatis a. Sapien pellentesque habitant morbi tristique. Pharetra diam sit amet nisl. Mi in nulla posuere sollicitudin aliquam ultrices. Maecenas volutpat blandit aliquam etiam. Suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Cras ornare arcu dui vivamus. Ut consequat semper viverra nam. Auctor neque vitae tempus quam pellentesque nec nam. Quis blandit turpis cursus in hac habitasse. Congue eu consequat ac felis donec. Urna condimentum mattis pellentesque id nibh tortor id aliquet. Cras pulvinar mattis nunc sed blandit libero volutpat. Nunc sed augue lacus viverra vitae congue eu. Proin libero nunc consequat interdum varius sit. Risus pretium quam vulputate dignissim suspendisse in. In est ante in nibh mauris cursus. Lacinia quis vel eros donec ac odio tempor orci. Non odio euismod lacinia at quis risus. In egestas erat imperdiet sed euismod nisi porta lorem mollis. Ut faucibus pulvinar elementum integer enim neque volutpat ac. A lacus vestibulum sed arcu non odio euismod. Nec feugiat in fermentum posuere urna nec. Rhoncus est pellentesque elit ullamcorper dignissim cras tincidunt. Urna et pharetra pharetra massa massa ultricies mi quis. Ut eu sem integer vitae justo eget magna fermentum iaculis. Eros in cursus turpis massa tincidunt. Ullamcorper morbi tincidunt ornare massa. Tristique magna sit amet purus gravida quis. Scelerisque mauris pellentesque pulvinar pellentesque habitant morbi. Cras ornare arcu dui vivamus arcu felis bibendum ut tristique. Tortor condimentum lacinia quis vel eros donec ac odio. Duis at consectetur lorem donec massa sapien faucibus et molestie. Viverra ipsum nunc aliquet bibendum enim facilisis gravida neque. Viverra maecenas accumsan lacus vel facilisis. Ipsum dolor sit amet consectetur adipiscing elit pellentesque. Sollicitudin aliquam ultrices sagittis orci a scelerisque purus semper eget. Ullamcorper malesuada proin libero nunc. Amet nulla facilisi morbi tempus iaculis urna id. Ullamcorper malesuada proin libero nunc consequat interdum varius sit. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Eget gravida cum sociis natoque penatibus. Non sodales neque sodales ut etiam sit amet nisl. Bibendum ut tristique et egestas. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Quis auctor elit sed vulputate mi sit. Ut morbi tincidunt augue interdum velit euismod in pellentesque massa. Sagittis id consectetur purus ut faucibus pulvinar elementum. Et tortor at risus viverra adipiscing at. Vitae auctor eu augue ut lectus. Egestas pretium aenean pharetra magna. Ante in nibh mauris cursus mattis. Nisl condimentum id venenatis a condimentum vitae sapien pellentesque. Dis parturient montes nascetur ridiculus mus mauris vitae. Aliquam faucibus purus in massa tempor nec. Bibendum at varius vel pharetra vel turpis. Tellus pellentesque eu tincidunt tortor aliquam nulla. Laoreet sit amet cursus sit."})},{id:"project-8",title:"Project 8",tags:["one","two","three"],imgSrc:"https://cdn.pixabay.com/photo/2023/05/01/06/17/pelican-7962189_1280.jpg",imgPOI:{x:0,y:0},desc:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Odio morbi quis commodo odio aenean sed. Id porta nibh venenatis cras sed felis eget velit aliquet. Varius sit amet mattis vulputate enim nulla. ",content:A("div",{children:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Blandit cursus risus at ultrices mi tempus imperdiet nulla malesuada. Fusce ut placerat orci nulla pellentesque dignissim enim sit. Lorem ipsum dolor sit amet consectetur. Convallis aenean et tortor at risus viverra adipiscing at in. Libero id faucibus nisl tincidunt eget. Proin nibh nisl condimentum id venenatis. Nibh sit amet commodo nulla. Suscipit tellus mauris a diam maecenas sed enim. Malesuada pellentesque elit eget gravida cum sociis natoque penatibus. Pulvinar sapien et ligula ullamcorper malesuada proin libero. Nunc consequat interdum varius sit amet mattis vulputate enim nulla. Nunc aliquet bibendum enim facilisis gravida neque convallis a cras. Placerat duis ultricies lacus sed turpis. Malesuada bibendum arcu vitae elementum curabitur vitae nunc sed. Massa ultricies mi quis hendrerit dolor magna eget est. Eu sem integer vitae justo eget magna. Orci eu lobortis elementum nibh. Tempus imperdiet nulla malesuada pellentesque elit eget gravida. Diam sollicitudin tempor id eu nisl nunc mi ipsum. Eu nisl nunc mi ipsum faucibus vitae. Pharetra massa massa ultricies mi quis hendrerit. Turpis in eu mi bibendum. Nibh nisl condimentum id venenatis a. Sapien pellentesque habitant morbi tristique. Pharetra diam sit amet nisl. Mi in nulla posuere sollicitudin aliquam ultrices. Maecenas volutpat blandit aliquam etiam. Suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Cras ornare arcu dui vivamus. Ut consequat semper viverra nam. Auctor neque vitae tempus quam pellentesque nec nam. Quis blandit turpis cursus in hac habitasse. Congue eu consequat ac felis donec. Urna condimentum mattis pellentesque id nibh tortor id aliquet. Cras pulvinar mattis nunc sed blandit libero volutpat. Nunc sed augue lacus viverra vitae congue eu. Proin libero nunc consequat interdum varius sit. Risus pretium quam vulputate dignissim suspendisse in. In est ante in nibh mauris cursus. Lacinia quis vel eros donec ac odio tempor orci. Non odio euismod lacinia at quis risus. In egestas erat imperdiet sed euismod nisi porta lorem mollis. Ut faucibus pulvinar elementum integer enim neque volutpat ac. A lacus vestibulum sed arcu non odio euismod. Nec feugiat in fermentum posuere urna nec. Rhoncus est pellentesque elit ullamcorper dignissim cras tincidunt. Urna et pharetra pharetra massa massa ultricies mi quis. Ut eu sem integer vitae justo eget magna fermentum iaculis. Eros in cursus turpis massa tincidunt. Ullamcorper morbi tincidunt ornare massa. Tristique magna sit amet purus gravida quis. Scelerisque mauris pellentesque pulvinar pellentesque habitant morbi. Cras ornare arcu dui vivamus arcu felis bibendum ut tristique. Tortor condimentum lacinia quis vel eros donec ac odio. Duis at consectetur lorem donec massa sapien faucibus et molestie. Viverra ipsum nunc aliquet bibendum enim facilisis gravida neque. Viverra maecenas accumsan lacus vel facilisis. Ipsum dolor sit amet consectetur adipiscing elit pellentesque. Sollicitudin aliquam ultrices sagittis orci a scelerisque purus semper eget. Ullamcorper malesuada proin libero nunc. Amet nulla facilisi morbi tempus iaculis urna id. Ullamcorper malesuada proin libero nunc consequat interdum varius sit. Bibendum neque egestas congue quisque egestas diam in arcu cursus. Eget gravida cum sociis natoque penatibus. Non sodales neque sodales ut etiam sit amet nisl. Bibendum ut tristique et egestas. Felis bibendum ut tristique et egestas quis ipsum suspendisse ultrices. Quis auctor elit sed vulputate mi sit. Ut morbi tincidunt augue interdum velit euismod in pellentesque massa. Sagittis id consectetur purus ut faucibus pulvinar elementum. Et tortor at risus viverra adipiscing at. Vitae auctor eu augue ut lectus. Egestas pretium aenean pharetra magna. Ante in nibh mauris cursus mattis. Nisl condimentum id venenatis a condimentum vitae sapien pellentesque. Dis parturient montes nascetur ridiculus mus mauris vitae. Aliquam faucibus purus in massa tempor nec. Bibendum at varius vel pharetra vel turpis. Tellus pellentesque eu tincidunt tortor aliquam nulla. Laoreet sit amet cursus sit."})}];function Bx(){return st("div",{className:"h-full flex flex-col justify-center",children:[A("div",{className:"text-4xl",children:"Projects"}),A("div",{className:"min-w-0 min-h-0 w-full xl:w-[1100px] grow relative m-auto",children:A("div",{className:"h-full w-full grid grid-cols-2 grid-rows-4 gap-4 p-4",children:Fx.map((e,t)=>A(jx,{title:e.title,classes:e.classes,imgSrc:e.imgSrc,imgPOI:e.imgPOI,desc:e.desc,content:e.content,tags:e.tags},t))})})]})}function zx(){return st("div",{className:"grid grid-rows-2 grid-flow-col gap-8 place-content-around",children:[A(Ie.a,{whileHover:{scale:1.1},whileTap:{scale:.9},target:"_blank",href:"https://github.com/noahpaige/",rel:"noreferrer",className:"bg-purple-800 h-20 w-32 rounded-xl text-2xl font-bold flex items-center justify-center",children:"github"}),A(Ie.a,{whileHover:{scale:1.1},whileTap:{scale:.9},target:"_blank",href:"https://www.linkedin.com/in/noah-paige",rel:"noreferrer",className:"bg-blue-600 h-20 w-32 rounded-lg text-2xl font-bold flex items-center justify-center",children:"linkedin"}),A(Ie.a,{whileHover:{scale:1.1},whileTap:{scale:.9},href:"mailto:noahlandonpaige@gmail.com&subject=What's up?",className:"bg-orange-400 h-20 w-32 rounded-lg text-2xl font-bold flex items-center justify-center",children:"email me"}),A(Ie.a,{whileHover:{scale:1.1},whileTap:{scale:.9},target:"_blank",href:"https://github.com/noahpaige/",rel:"noreferrer",className:"bg-emerald-600 h-20 w-32 rounded-lg text-2xl font-bold flex items-center justify-center",children:"resume"})]})}/** + * @remix-run/router v1.9.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function ar(){return ar=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function $x(){return Math.random().toString(36).substr(2,8)}function of(e,t){return{usr:e.state,key:e.key,idx:t}}function ul(e,t,n,i){return n===void 0&&(n=null),ar({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?lo(t):t,{state:n,key:t&&t.key||i||$x()})}function Xh(e){let{pathname:t="/",search:n="",hash:i=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),i&&i!=="#"&&(t+=i.charAt(0)==="#"?i:"#"+i),t}function lo(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let i=e.indexOf("?");i>=0&&(t.search=e.substr(i),e=e.substr(0,i)),e&&(t.pathname=e)}return t}function Wx(e,t,n,i){i===void 0&&(i={});let{window:r=document.defaultView,v5Compat:s=!1}=i,o=r.history,a=pn.Pop,l=null,u=c();u==null&&(u=0,o.replaceState(ar({},o.state,{idx:u}),""));function c(){return(o.state||{idx:null}).idx}function d(){a=pn.Pop;let S=c(),g=S==null?null:S-u;u=S,l&&l({action:a,location:y.location,delta:g})}function f(S,g){a=pn.Push;let m=ul(y.location,S,g);n&&n(m,S),u=c()+1;let p=of(m,u),w=y.createHref(m);try{o.pushState(p,"",w)}catch(x){if(x instanceof DOMException&&x.name==="DataCloneError")throw x;r.location.assign(w)}s&&l&&l({action:a,location:y.location,delta:1})}function h(S,g){a=pn.Replace;let m=ul(y.location,S,g);n&&n(m,S),u=c();let p=of(m,u),w=y.createHref(m);o.replaceState(p,"",w),s&&l&&l({action:a,location:y.location,delta:0})}function v(S){let g=r.location.origin!=="null"?r.location.origin:r.location.href,m=typeof S=="string"?S:Xh(S);return pt(g,"No window.location.(origin|href) available to create URL for href: "+m),new URL(m,g)}let y={get action(){return a},get location(){return e(r,o)},listen(S){if(l)throw new Error("A history only accepts one active listener");return r.addEventListener(sf,d),l=S,()=>{r.removeEventListener(sf,d),l=null}},createHref(S){return t(r,S)},createURL:v,encodeLocation(S){let g=v(S);return{pathname:g.pathname,search:g.search,hash:g.hash}},push:f,replace:h,go(S){return o.go(S)}};return y}var af;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(af||(af={}));function Hx(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,i=e.charAt(n);return i&&i!=="/"?null:e.slice(n)||"/"}function Qx(e,t){t===void 0&&(t="/");let{pathname:n,search:i="",hash:r=""}=typeof e=="string"?lo(e):e;return{pathname:n?n.startsWith("/")?n:Kx(n,t):t,search:Zx(i),hash:Jx(r)}}function Kx(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(r=>{r===".."?n.length>1&&n.pop():r!=="."&&n.push(r)}),n.length>1?n.join("/"):"/"}function Yo(e,t,n,i){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(i)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function Gx(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Yx(e,t,n,i){i===void 0&&(i=!1);let r;typeof e=="string"?r=lo(e):(r=ar({},e),pt(!r.pathname||!r.pathname.includes("?"),Yo("?","pathname","search",r)),pt(!r.pathname||!r.pathname.includes("#"),Yo("#","pathname","hash",r)),pt(!r.search||!r.search.includes("#"),Yo("#","search","hash",r)));let s=e===""||r.pathname==="",o=s?"/":r.pathname,a;if(i||o==null)a=n;else{let d=t.length-1;if(o.startsWith("..")){let f=o.split("/");for(;f[0]==="..";)f.shift(),d-=1;r.pathname=f.join("/")}a=d>=0?t[d]:"/"}let l=Qx(r,a),u=o&&o!=="/"&&o.endsWith("/"),c=(s||o===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(u||c)&&(l.pathname+="/"),l}const Xx=e=>e.join("/").replace(/\/\/+/g,"/"),Zx=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Jx=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,Zh=["post","put","patch","delete"];new Set(Zh);const eP=["get",...Zh];new Set(eP);/** + * React Router v6.16.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function cl(){return cl=Object.assign?Object.assign.bind():function(e){for(var t=1;tl.pathnameBase)),o=P.useRef(!1);return eg(()=>{o.current=!0}),P.useCallback(function(l,u){if(u===void 0&&(u={}),!o.current)return;if(typeof l=="number"){n.go(l);return}let c=Yx(l,JSON.parse(s),r,u.relative==="path");e==null&&t!=="/"&&(c.pathname=c.pathname==="/"?t:Xx([t,c.pathname])),(u.replace?n.replace:n.push)(c,u.state,u)},[t,n,s,r,e])}var tg=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(tg||{}),ng=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(ng||{});function rP(e){let t=P.useContext(Jh);return t||pt(!1),t}function sP(e){let t=P.useContext(Du);return t||pt(!1),t}function oP(e){let t=sP(),n=t.matches[t.matches.length-1];return n.route.id||pt(!1),n.route.id}function aP(){let{router:e}=rP(tg.UseNavigateStable),t=oP(ng.UseNavigateStable),n=P.useRef(!1);return eg(()=>{n.current=!0}),P.useCallback(function(r,s){s===void 0&&(s={}),n.current&&(typeof r=="number"?e.navigate(r):e.navigate(r,cl({fromRouteId:t},s)))},[e,t])}function lP(e){let{basename:t="/",children:n=null,location:i,navigationType:r=pn.Pop,navigator:s,static:o=!1}=e;bu()&&pt(!1);let a=t.replace(/^\/*/,"/"),l=P.useMemo(()=>({basename:a,navigator:s,static:o}),[a,s,o]);typeof i=="string"&&(i=lo(i));let{pathname:u="/",search:c="",hash:d="",state:f=null,key:h="default"}=i,v=P.useMemo(()=>{let y=Hx(u,a);return y==null?null:{location:{pathname:y,search:c,hash:d,state:f,key:h},navigationType:r}},[a,u,c,d,f,h,r]);return v==null?null:P.createElement(qu.Provider,{value:l},P.createElement(Ru.Provider,{children:n,value:v}))}new Promise(()=>{});/** + * React Router DOM v6.16.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */const uP="startTransition",lf=Pg[uP];function cP(e){let{basename:t,children:n,future:i,window:r}=e,s=P.useRef();s.current==null&&(s.current=Ux({window:r,v5Compat:!0}));let o=s.current,[a,l]=P.useState({action:o.action,location:o.location}),{v7_startTransition:u}=i||{},c=P.useCallback(d=>{u&&lf?lf(()=>l(d)):l(d)},[l,u]);return P.useLayoutEffect(()=>o.listen(c),[o,c]),P.createElement(lP,{basename:t,children:n,location:a.location,navigationType:a.action,navigator:o})}var uf;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher"})(uf||(uf={}));var cf;(function(e){e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(cf||(cf={}));const dP=(e,t=.5,n=()=>{})=>{const[i,r]=P.useState(!1);return P.useEffect(()=>{const s=new IntersectionObserver(([o])=>{const a=o.isIntersecting;r(a),a&&n()},{threshold:t});return e.current&&s.observe(e.current),()=>{e.current&&s.unobserve(e.current)}},[e,t,n]),i};class Pe{constructor(){this.r=0,this.g=0,this.b=0,this.a=1}set(t){return typeof t.r=="number"&&(this.r=Math.min(Math.max(0,t.r),255)),typeof t.g=="number"&&(this.g=Math.min(Math.max(0,t.g),255)),typeof t.b=="number"&&(this.b=Math.min(Math.max(0,t.b),255)),typeof t.a=="number"&&(this.a=Math.min(Math.max(0,t.a),1)),this}toObj(){return JSON.parse(JSON.stringify({r:this.r,g:this.g,b:this.b,a:this.a}))}toString(){return`rgba(${this.r}, ${this.g}, ${this.b}, ${this.a})`}static blend(t,n,i){const r=new Pe,s=t.toObj(),o=n.toObj();return r.set({r:jr(s.r,o.r,i),g:jr(s.g,o.g,i),b:jr(s.b,o.b,i),a:jr(s.a,o.a,i)}),r}}const jr=(e,t,n)=>e+(t-e)*n;function D(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var fP={A:{args:["rx","ry","rotation","arc","sweep","ex","ey"]},a:{args:["rx","ry","rotation","arc","sweep","ex","ey"]},C:{args:["cx1","cy1","cx2","cy2","ex","ey"]},c:{args:["cx1","cy1","cx2","cy2","ex","ey"]},H:{args:["x"]},h:{args:["x"]},L:{args:["x","y"]},l:{args:["x","y"]},M:{args:["x","y"]},m:{args:["x","y"]},Q:{args:["cx","cy","ex","ey"]},q:{args:["cx","cy","ex","ey"]},S:{args:["cx","cy","ex","ey"]},s:{args:["cx","cy","ex","ey"]},T:{args:["ex","ey"]},t:{args:["ex","ey"]},V:{args:["y"]},v:{args:["y"]},z:{args:[]}};class O{constructor(){return D(this,"attr",(t,n)=>(this.attributes[t]=n,this)),D(this,"fill",t=>this.attr("fill",t)),D(this,"stroke",t=>this.attr("stroke",t)),D(this,"strokeWidth",t=>this.attr("stroke-width",t)),D(this,"style",t=>this.attr("style",t)),D(this,"m",(t,n)=>this.moveTo(t,n,!0)),D(this,"M",(t,n)=>this.moveTo(t,n)),D(this,"moveTo",(t,n,i=!1)=>(this.pathData.push(`${i?"m":"M"}${t} ${n}`),this)),D(this,"l",(t,n)=>this.lineTo(t,n,!0)),D(this,"L",(t,n)=>this.lineTo(t,n)),D(this,"lineTo",(t,n,i=!1)=>(this.pathData.push(`${i?"l":"L"}${t} ${n}`),this)),D(this,"H",t=>this.horizontalTo(t)),D(this,"h",t=>this.horizontalTo(t,!0)),D(this,"horizontalTo",(t,n=!1)=>(this.pathData.push(`${n?"h":"H"}${t}`),this)),D(this,"V",t=>this.verticalTo(t)),D(this,"v",t=>this.verticalTo(t,!0)),D(this,"verticalTo",(t,n=!1)=>(this.pathData.push(`${n?"v":"V"}${t}`),this)),D(this,"Q",(t,n,i,r)=>this.qCurve(t,n,i,r)),D(this,"q",(t,n,i,r)=>this.qCurve(t,n,i,r,!0)),D(this,"qCurve",(t,n,i,r,s=!1)=>(this.pathData.push(`${s?"q":"Q"}${t} ${n} ${i} ${r}`),this)),D(this,"T",(t,n)=>this.tCurveTo(t,n)),D(this,"t",(t,n)=>this.tCurveTo(t,n,!0)),D(this,"tCurveTo",(t,n,i=!1)=>(this.pathData.push(`${i?"t":"T"}${t} ${n}`),this)),D(this,"C",(t,n,i,r,s,o)=>this.cCurve(t,n,i,r,s,o)),D(this,"c",(t,n,i,r,s,o)=>this.cCurve(t,n,i,r,s,o,!0)),D(this,"cCurve",(t,n,i,r,s,o,a=!1)=>(this.pathData.push(`${a?"c":"C"}${t} ${n} ${i} ${r} ${s} ${o}`),this)),D(this,"S",(t,n,i,r)=>this.sCurveTo(t,n,i,r)),D(this,"s",(t,n,i,r)=>this.sCurveTo(t,n,i,r,!0)),D(this,"sCurveTo",(t,n,i,r,s=!1)=>(this.pathData.push(`${s?"s":"S"}${t} ${n} ${i} ${r}`),this)),D(this,"A",(t,n,i,r,s,o,a)=>this.arc(t,n,i,r,s,o,a)),D(this,"a",(t,n,i,r,s,o,a)=>this.arc(t,n,i,r,s,o,a,!0)),D(this,"arc",(t,n,i,r,s,o,a,l=!1)=>(this.pathData.push(`${l?"a":"A"}${t} ${n} ${i} ${r} ${s} ${o} ${a}`),this)),D(this,"down",t=>this.v(t)),D(this,"up",t=>this.v(-1*t)),D(this,"right",t=>this.h(t)),D(this,"left",t=>this.h(-1*t)),D(this,"close",()=>(this.pathData.push("z"),this)),D(this,"toArray",()=>this.pathData),D(this,"toString",()=>this.pathData.join("")),D(this,"toCommands",()=>this.pathData.map(t=>{const n=[t.substr(0,1)],i=t.substr(1);return i.length&&n.push(...i.split(" ").map(Number)),n})),D(this,"toAnnotatedCommands",()=>this.toCommands().map(t=>{const n=t.shift(),i=fP[n].args;return i.length?{fn:n,args:t.reduce((r,s,o)=>(r[i[o]]=s,r),{})}:{fn:n}})),D(this,"toElement",(t={})=>{const n={...this.attributes,...t},i=document.createElementNS("http://www.w3.org/2000/svg","path");return Object.keys(n).forEach(r=>{i.setAttribute(r,n[r])}),i.setAttribute("d",this.toString()),i}),this.pathData=[],this.attributes={},this}}D(O,"angleInRadians",e=>e*Math.PI/180),D(O,"polarToCartesian",(e,t,n,i)=>{const r=O.angleInRadians(i);return{x:e+n*Math.cos(r),y:t+n*Math.sin(r)}}),D(O,"clockwisePoint",(e,t,n,i)=>{const r=i-90;return O.polarToCartesian(e,t,n,r)}),D(O,"radialPoints",(e,t,n,i,r,s=1)=>{r=r||-.5*Math.PI,e=e||1e-10;const o=2*Math.PI*s/i,a=Array.from(Array(i>=0?i:0).keys()),l=Math.max(0,4-Math.floor(Math.log10(e)));return a.map((u,c)=>{const d=c*o+r;return[(t+e*Math.cos(d)).toFixed(l),(n+e*Math.sin(d)).toFixed(l)]})}),D(O,"positionByArray",(e,t,n,i)=>{const r=[],s=e/2;return t.forEach((o,a)=>{o.forEach((l,u)=>{l&&r.push({size:e,cx:u*e+s+n,cy:a*e+s+i,ri:a,ci:u,value:l})})}),r}),D(O,"macro",(e,t)=>{O.prototype[e]=t}),O.macro("rect",function(e,t,n,i,r=!0){return this.M(n-e/2,i-t/2).right(e).down(t).left(e).up(t),r&&this.M(n,i),this}),O.macro("square",function(e,t,n,i=!0){return this.rect(e,e,t,n,i)}),O.macro("roundedSquare",function(e,t,n,i,r=!0){return this.roundedRect(e,e,t,n,i,r)}),O.macro("roundedRect",function(e,t,n,i,r,s=!0){const o=r-t/2,a=i-e/2,l=a+e,u=o+t;let c=Math.min(n,e/2);c=c<0?0:c;let d=Math.min(n,t/2);d=d<0?0:d;const f=Math.max(e-2*c,0),h=Math.max(t-2*d,0);return this.M(a+c,o).right(f).A(c,d,0,0,1,l,o+d).down(h).A(c,d,0,0,1,l-c,u).left(f).A(c,d,0,0,1,a,u-d).up(h).A(c,d,0,0,1,a+c,o).M(a,o),s&&this.M(i,r),this}),O.macro("circle",function(e,t,n,i=!0){return this.ellipse(e,e,t,n,i)}),O.macro("ellipse",function(e,t,n,i,r=!0){const s=e/2,o=t/2;return this.M(n+s,i).A(s,o,0,0,1,n-s,i).A(s,o,0,0,1,n+s,i).close(),r&&this.M(n,i),this}),O.macro("kite",function(e,t,n,i,r,s=!0){n=n||parseInt(.33*t,10);const[o,a,l]=this.constructor.radialPoints(t/2,i,r,4),u=parseInt(o[1],10)+n,c=[o,[i-e/2,u],l,[i+e/2,u]];return this.polyline(c).close()}),O.macro("lens",function(e,t,n,i,r=!0){return this.M(n-e/2,i).Q(n,i-t,n+e/2,i).Q(n,i+t,n-e/2,i),r&&this.M(n,i),this}),O.macro("polyline",function(e,t=!1){const n=[...e],i=n.shift(),r=t?this.m:this.M,s=t?this.l:this.L;return r.apply(null,i),n.forEach(o=>{s.apply(null,o)}),this}),O.macro("polygon",function(e){return this.polyline(e).close(),this}),O.macro("regPolygon",function(e,t,n,i,r=!0){return this.polygon(this.constructor.radialPoints(e/2,n,i,t)),r&&this.M(n,i),this}),O.macro("polygram",function(e,t,n,i,r=2,s=!0){return this.polygon(this.constructor.radialPoints(e/2,n,i,t,null,r)),s&&this.M(n,i),this}),O.macro("radialLines",function(e,t,n,i,r,s=!0){const o=this.constructor.radialPoints(t/2,i,r,n),a=this.constructor.radialPoints(e/2,i,r,n);return o.forEach((l,u)=>{this.M(l[0],l[1]).L(a[u][0],a[u][1])}),s&&this.M(i,r),this}),O.macro("star",function(e,t,n,i,r,s=!0){const o=t/2,a=e/2,l=360/(2*n),u=Array.from({length:2*n}).map((c,d)=>{let f=d%2==0?a:o,h=l*d;const{x:v,y}=this.constructor.clockwisePoint(i,r,f,h,s);return[v,y]});return this.polygon(u),s&&this.M(i,r),this}),O.macro("triangle",function(e,t,n,i=!0){const r=Math.sqrt(3),s=[t,n-r/3*e],o=[t-e/2,n+r/6*e],a=[t+e/2,n+r/6*e];return this.polygon([s,o,a]),i&&this.M(t,n),this}),O.macro("sector",function(e,t,n,i,r,s=!0){const o=n/2,a=this.constructor.clockwisePoint(e,t,o,r),l=this.constructor.clockwisePoint(e,t,o,i),u=r-i<=180?0:1;return this.M(a.x,a.y).A(o,o,0,u,0,l.x,l.y).L(e,t).L(a.x,a.y),s&&this.M(e,t),this}),O.macro("segment",function(e,t,n,i,r,s=!0){const o=n/2,a=this.constructor.clockwisePoint(e,t,o,r),l=this.constructor.clockwisePoint(e,t,o,i),u=r-i<=180?0:1;return this.M(a.x,a.y).A(o,o,0,u,0,l.x,l.y),s&&this.M(e,t),this}),O.macro("cross",function(e,t,n,i,r=!0){const s=n-e/2,o=s+e,a=i-t/2,l=a+t;return this.M(s,i).L(o,i).M(n,l).L(n,a),r&&this.M(n,i),this}),O.macro("symH",function(e,t,n,i,r=!0){const s=n-e/2,o=s+e,a=i-t/2,l=a+t;return this.M(s,a).L(s,l).M(s,i).L(o,i).M(o,a).L(o,l),r&&this.M(n,i),this}),O.macro("symI",function(e,t,n,i,r=!0){const s=n-e/2,o=s+e,a=i-t/2,l=a+t;return this.M(s,a).L(o,a).M(n,a).L(n,l).M(s,l).L(o,l),r&&this.M(n,i),this}),O.macro("symX",function(e,t,n,i,r=!0){const s=n-e/2,o=s+e,a=i-t/2,l=a+t;return this.M(s,a).L(o,l).M(s,l).L(o,a),r&&this.M(n,i),this}),O.macro("omino",function(e,t,n,i,r=!1){return this.constructor.positionByArray(e,t,n,i).forEach((s,o,a)=>{const{cx:l,cy:u,ri:c,ci:d,size:f}=s,h=f/2,v=a.find(T=>T.ri===c&&T.ci===d-1),y=a.find(T=>T.ri===c&&T.ci===d+1),S=a.find(T=>T.ri===c-1&&T.ci===d),g=a.find(T=>T.ri===c+1&&T.ci===d),m=l-h,p=l+h,w=u-h,x=u+h;v&&!r||(this.M(m,w),this.v(f)),y||(this.M(p,w),this.v(f)),S&&!r||(this.M(m,w),this.h(f)),g||(this.M(m,x),this.h(f))}),this});function Fr(e,t){return Math.random()*(t-e)+e}const mP=(e,t,n,i)=>{const r={x:t,y:Fr(n-i,n)},s=[];let o={cx1:void 0,cy1:void 0,cx2:void 0,cy2:void 0,ex:r.x,ey:r.y};for(let l=0;la.C(l.cx1,l.cy1,l.cx2,l.cy2,l.ex,l.ey)),a.L(0,0),a.toString()};function Br(e,t){return Math.random()*(t-e)+e}const pP=(e,t,n,i)=>{const r={x:0,y:Br(0,i)},s=[];let o={cx1:void 0,cy1:void 0,cx2:void 0,cy2:void 0,ex:r.x,ey:r.y};for(let l=0;la.C(l.cx1,l.cy1,l.cx2,l.cy2,l.ex,l.ey)),a.L(t,n),a.toString()},hP=(e,t,n,i,r)=>{const s={tops:[],bottoms:[]};for(let o=e-1;o>=0;o--){const a=Pe.blend(n,r,o===0?0:df(o/e)),l=Pe.blend(i,r,o===0?0:df(o/e));s.tops.push({path:mP(12,100,100,t-1),color:a.toString(),motionVariants:{hidden:{opacity:0,pathLength:0,fill:a.set({a:0}).toString()},visible:{opacity:1,pathLength:1,fill:a.set({a:1}).toString()}}}),s.bottoms.push({path:pP(12,100,100,t-1),color:l.toString(),motionVariants:{hidden:{opacity:0,pathLength:0,fill:a.set({a:0}).toString()},visible:{opacity:1,pathLength:1,fill:a.set({a:1}).toString()}}})}return s},df=e=>3*Math.pow(e,2)-2*Math.pow(e,3);function gP({content:e,path:t,topColor:n,bottomColor:i}){const{state:r,setState:s}=P.useContext(ig),o=nP(),a=P.useRef(),l=new Pe().set({r:20,g:15,b:30}),u=2,c=5,[d,f]=P.useState({tops:[],bottoms:[]}),v=dP(a,.9,()=>{window.location.pathname.toLowerCase()!==t&&o(t)});return P.useEffect(()=>{f(hP(c,u,n,i,l))},[]),P.useEffect(()=>(window.location.pathname.toLowerCase()===t&&!r.isNavigating&&(a.current.scrollIntoView({behavior:"smooth"}),s({isNavigating:!0})),()=>{v&&s({isNavigating:!1})}),[window,a,r]),st("div",{ref:a,className:"snap-center h-full w-full relative",style:{backgroundColor:l.toString()},children:[d.tops.map((y,S)=>A("svg",{className:"w-full h-full absolute top-0 pointer-events-none overflow-hidden",viewBox:`0 ${100-(c-S)*u} 100 100`,preserveAspectRatio:"none",children:A("path",{d:y.path,stroke:"transparent",fill:y.color})},S)),d.bottoms.map((y,S)=>A("svg",{className:"w-full h-full absolute bottom-0 pointer-events-none",viewBox:`0 ${-100+(c-S)*u} 100 100`,preserveAspectRatio:"none",children:A("path",{d:y.path,stroke:"transparent",fill:y.color})},S)),A("div",{className:"h-full w-full p-8 overflow-overlay",style:{paddingTop:u*c+"vh",paddingBottom:u*c+"vh"},children:e})]})}const ig=bs.createContext({isNavigating:!1}),vP=[{comp:A(Tx,{}),path:"/",topColor:new Pe().set({r:100,g:100,b:200}),bottomColor:new Pe().set({r:200,g:100,b:100})},{comp:A(Ex,{}),path:"/about",topColor:new Pe().set({r:200,g:100,b:100}),bottomColor:new Pe().set({r:100,g:200,b:100})},{comp:A(Lx,{}),path:"/skills",topColor:new Pe().set({r:100,g:200,b:100}),bottomColor:new Pe().set({r:100,g:200,b:200})},{comp:A(Bx,{}),path:"/projects",topColor:new Pe().set({r:100,g:200,b:200}),bottomColor:new Pe().set({r:200,g:100,b:200})},{comp:A(zx,{}),path:"/links",topColor:new Pe().set({r:200,g:100,b:200}),bottomColor:new Pe().set({r:100,g:100,b:200})}];function yP(){const[e,t]=P.useState({isNavigating:!1}),[n,i]=P.useState(!0),r=P.useRef();return ll.$on("toggleBodyScroll",()=>{i(s=>!s)}),A(cP,{children:A("div",{className:"App text-slate-200",children:A(ig.Provider,{value:{state:e,setState:t},children:A("div",{className:`snap-y snap-mandatory h-screen overflow-x-hidden ${n?"overflow-y-scroll":"overflow-y-hidden"}`,ref:r,children:vP.map((s,o)=>A(gP,{content:s.comp,path:s.path,topColor:s.topColor,bottomColor:s.bottomColor},o))})})})})}Xo.createRoot(document.getElementById("root")).render(A(bs.StrictMode,{children:A(yP,{})})); diff --git a/index.html b/index.html new file mode 100644 index 0000000..5a6f140 --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + Noah Paige Portfolio + + + + +
+ + +