diff --git a/dist/assets/index-BIPgnXaa.css b/dist/assets/index-BIPgnXaa.css new file mode 100644 index 0000000..bd0449b --- /dev/null +++ b/dist/assets/index-BIPgnXaa.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Newsreader:ital,opsz,wght@0,6..72,200..800;1,6..72,200..800&family=JetBrains+Mono:wght@300;400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap";.print-portfolio{display:none}.print-portfolio.show-preview{display:flex!important;flex-direction:column;background:#0f172a;padding:40px 0;min-height:100vh;align-items:center}.print-portfolio.show-preview .cv-page{box-shadow:0 30px 60px #00000080;margin-bottom:40px}@media print{@page{size:A4;margin:15mm}html,body{margin:0!important;padding:0!important;width:100%!important;background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body>*:not(#root){display:none!important}#root{display:block!important;width:100%!important;margin:0!important;padding:0!important}#root>*:not(.print-portfolio){display:none!important}.print-portfolio{display:block!important;width:100%!important;margin:0 auto!important;padding:0!important;background:#fff;position:static!important}}*,: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: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::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: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;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:JetBrains Mono,monospace;font-feature-settings:normal;font-variation-settings:normal;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;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([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::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}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]:where(:not([hidden=until-found])){display:none}.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}}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.inset-4{top:1rem;right:1rem;bottom:1rem;left:1rem}.-bottom-2{bottom:-.5rem}.bottom-0{bottom:0}.bottom-6{bottom:1.5rem}.bottom-8{bottom:2rem}.left-0{left:0}.left-6{left:1.5rem}.left-\[-3px\]{left:-3px}.left-\[25\%\]{left:25%}.left-\[50\%\]{left:50%}.left-\[75\%\]{left:75%}.right-0{right:0}.right-4{right:1rem}.right-6{right:1.5rem}.right-8{right:2rem}.top-0{top:0}.top-2{top:.5rem}.top-4{top:1rem}.top-6{top:1.5rem}.top-\[20\%\]{top:20%}.top-\[80\%\]{top:80%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[110\]{z-index:110}.z-\[150\]{z-index:150}.z-\[200\]{z-index:200}.z-\[210\]{z-index:210}.mx-auto{margin-left:auto;margin-right:auto}.-ml-2{margin-left:-.5rem}.mb-1{margin-bottom:.25rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-8{margin-top:2rem}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-\[4\/3\]{aspect-ratio:4/3}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-24{height:6rem}.h-3{height:.75rem}.h-4{height:1rem}.h-64{height:16rem}.h-\[1px\]{height:1px}.h-\[2px\]{height:2px}.h-full{height:100%}.min-h-\[calc\(100vh-3\.5rem\)\]{min-height:calc(100vh - 3.5rem)}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-32{width:8rem}.w-8{width:2rem}.w-\[1px\]{width:1px}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-7xl{max-width:80rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.origin-left{transform-origin:left}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-grab{cursor:grab}.cursor-none{cursor:none}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-sm{border-radius:.125rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-t{border-top-width:1px}.border-\[\#00FF94\]{--tw-border-opacity: 1;border-color:rgb(0 255 148 / var(--tw-border-opacity, 1))}.border-\[\#00FF94\]\/20{border-color:#00ff9433}.border-\[\#00FF94\]\/30{border-color:#00ff944d}.border-\[\#1A1A1A\]{--tw-border-opacity: 1;border-color:rgb(26 26 26 / var(--tw-border-opacity, 1))}.border-\[\#1A1A1A\]\/10{border-color:#1a1a1a1a}.border-\[\#1A1A1A\]\/20{border-color:#1a1a1a33}.border-\[var\(--border\)\]{border-color:var(--border)}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-white\/10{border-color:#ffffff1a}.border-white\/20{border-color:#fff3}.bg-\[\#00FF94\]{--tw-bg-opacity: 1;background-color:rgb(0 255 148 / var(--tw-bg-opacity, 1))}.bg-\[\#00FF94\]\/10{background-color:#00ff941a}.bg-\[\#00FF94\]\/20{background-color:#00ff9433}.bg-\[\#00FF94\]\/5{background-color:#00ff940d}.bg-\[\#0a0a0a\]{--tw-bg-opacity: 1;background-color:rgb(10 10 10 / var(--tw-bg-opacity, 1))}.bg-\[\#0a0a0a\]\/90{background-color:#0a0a0ae6}.bg-\[\#111\]{--tw-bg-opacity: 1;background-color:rgb(17 17 17 / var(--tw-bg-opacity, 1))}.bg-\[\#1A1A1A\]{--tw-bg-opacity: 1;background-color:rgb(26 26 26 / var(--tw-bg-opacity, 1))}.bg-\[\#1A1A1A\]\/10{background-color:#1a1a1a1a}.bg-\[\#1A1A1A\]\/30{background-color:#1a1a1a4d}.bg-\[\#F5F5F5\]{--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity, 1))}.bg-\[\#FAFAFA\]{--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1))}.bg-\[var\(--accent-it\)\]{background-color:var(--accent-it)}.bg-\[var\(--bg-primary\)\]{background-color:var(--bg-primary)}.bg-\[var\(--bg-secondary\)\]{background-color:var(--bg-secondary)}.bg-\[var\(--grid-color\)\]{background-color:var(--grid-color)}.bg-\[var\(--text-muted\)\]{background-color:var(--text-muted)}.bg-\[var\(--text-primary\)\]{background-color:var(--text-primary)}.bg-black\/0{background-color:#0000}.bg-black\/80{background-color:#000c}.bg-black\/90{background-color:#000000e6}.bg-green-500\/50{background-color:#22c55e80}.bg-red-500\/50{background-color:#ef444480}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/20{background-color:#fff3}.bg-white\/5{background-color:#ffffff0d}.bg-white\/90{background-color:#ffffffe6}.bg-yellow-500\/50{background-color:#eab30880}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pl-3{padding-left:.75rem}.pl-8{padding-left:2rem}.pt-14{padding-top:3.5rem}.pt-20{padding-top:5rem}.pt-4{padding-top:1rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-display{font-family:Syne,sans-serif}.font-mono{font-family:JetBrains Mono,monospace}.font-serif{font-family:Playfair Display,Georgia,serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-5xl{font-size:3rem;line-height:1}.text-\[10px\]{font-size:10px}.text-\[8px\]{font-size:8px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-\[10px\]{line-height:10px}.leading-loose{line-height:2}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.tracking-tighter{letter-spacing:-.05em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[\#00D9FF\]{--tw-text-opacity: 1;color:rgb(0 217 255 / var(--tw-text-opacity, 1))}.text-\[\#00FF94\]{--tw-text-opacity: 1;color:rgb(0 255 148 / var(--tw-text-opacity, 1))}.text-\[\#00FF94\]\/30{color:#00ff944d}.text-\[\#00FF94\]\/40{color:#00ff9466}.text-\[\#00FF94\]\/50{color:#00ff9480}.text-\[\#00FF94\]\/60{color:#00ff9499}.text-\[\#0a0a0a\]{--tw-text-opacity: 1;color:rgb(10 10 10 / var(--tw-text-opacity, 1))}.text-\[\#1A1A1A\]{--tw-text-opacity: 1;color:rgb(26 26 26 / var(--tw-text-opacity, 1))}.text-\[\#666\]{--tw-text-opacity: 1;color:rgb(102 102 102 / var(--tw-text-opacity, 1))}.text-\[\#999\]{--tw-text-opacity: 1;color:rgb(153 153 153 / var(--tw-text-opacity, 1))}.text-\[var\(--text-primary\)\]{color:var(--text-primary)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/70{color:#ffffffb3}.underline{text-decoration-line:underline}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_20px_rgba\(0\,255\,148\,0\.3\)\]{--tw-shadow: 0 0 20px rgba(0,255,148,.3);--tw-shadow-colored: 0 0 20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[\#00FF94\]\/10{--tw-shadow-color: rgb(0 255 148 / .1);--tw-shadow: var(--tw-shadow-colored)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-\[0_0_8px_rgba\(0\,255\,148\,0\.3\)\]{--tw-drop-shadow: drop-shadow(0 0 8px rgba(0,255,148,.3));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-sm{--tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / .05));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-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)}.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}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-700{transition-duration:.7s}:root{--bg-primary: #F4F4F2;--bg-secondary: #EBEBE9;--text-primary: #1A1A1A;--text-secondary: #4A4A4A;--text-muted: #8E8E8E;--accent: #1A1A1A;--accent-subtle: rgba(26, 26, 26, .05);--border: rgba(0, 0, 0, .1);--grid-color: rgba(0, 0, 0, .03);--accent-it: #00FF94}[data-theme=dark]{--bg-primary: #0D0D0D;--bg-secondary: #141414;--text-primary: #EAEAEA;--text-secondary: #A0A0A0;--text-muted: #606060;--accent: #EAEAEA;--accent-subtle: rgba(234, 234, 234, .05);--border: rgba(255, 255, 255, .1)}html{scroll-behavior:smooth}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:background-color .5s cubic-bezier(.4,0,.2,1),color .5s cubic-bezier(.4,0,.2,1);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.noise-overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;opacity:.06;z-index:9999;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")}.font-creative-sans{font-family:Inter,sans-serif}.font-creative-serif{font-family:Newsreader,serif}.font-it-mono{font-family:JetBrains Mono,IBM Plex Mono,monospace}.font-display{font-family:Inter,sans-serif}.font-serif{font-family:Newsreader,serif}.font-mono,.font-body{font-family:JetBrains Mono,IBM Plex Mono,monospace}.bg-grid-pattern{background-image:linear-gradient(rgba(0,0,0,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.03) 1px,transparent 1px);background-size:60px 60px}.bg-dotted-pattern{background-image:radial-gradient(rgba(0,0,0,.1) 1px,transparent 1px);background-size:20px 20px}.print-only-version{display:none!important}.print-portfolio.show-preview{display:block!important;background:#1e293b;padding:20px}.print-portfolio.show-preview .pdf-content{display:block!important}.print-portfolio.show-preview .page{width:210mm;min-height:297mm;margin:0 auto 20px;box-shadow:0 10px 40px #00000080;display:block!important;background:#fff!important}.pdf-content{display:block!important}@media print{@page{size:A4;margin:0}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}html,body{margin:0!important;padding:0!important;background:#fff!important;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;color:#000!important}.app-main,.fixed.inset-0{display:none!important}.print-only-version{display:block!important;visibility:visible!important;position:absolute!important;top:0!important;left:0!important;width:100%!important;background:#fff!important}.pdf-content{display:block!important;background:none!important;padding:0!important;margin:0!important;width:210mm!important}.pdf-content .page{width:210mm!important;height:297mm!important;page-break-after:always!important;-moz-column-break-after:page!important;break-after:page!important;position:relative!important;overflow:hidden!important;background:#fff!important;margin:0!important;padding:0!important;display:block!important}.pdf-content .page:last-child{page-break-after:avoid!important;-moz-column-break-after:avoid!important;break-after:avoid!important}.pdf-content .page-content{padding:18mm 16mm!important;height:100%!important;display:flex!important;flex-direction:column!important}.pdf-content .cover-page{background:#111827!important;display:flex!important;align-items:center!important;justify-content:center!important}.pdf-content .cover-content{text-align:center!important;color:#fff!important;padding:35mm 30mm!important}.pdf-content .cover-name{font-size:38pt!important;font-weight:800!important;letter-spacing:-.02em!important;margin:0!important;color:#fff!important}.pdf-content .cover-accent{font-size:38pt!important;font-weight:800!important;letter-spacing:-.02em!important;margin:0!important;color:#60a5fa!important}.pdf-content .cover-divider{width:60px!important;height:3px!important;background:#60a5fa!important;margin:0 auto 35px!important}.pdf-content .cover-title{font-size:16pt!important;font-weight:500!important;color:#9ca3af!important;margin:0 0 35px!important;letter-spacing:.15em!important;text-transform:uppercase!important}.pdf-content .cover-contact{display:flex!important;flex-wrap:wrap!important;justify-content:center!important;gap:6px 18px!important;font-size:9pt!important;color:#9ca3af!important}.pdf-content .cover-contact span{white-space:nowrap!important}.pdf-content .section{margin-bottom:7mm!important}.pdf-content .section-title{font-size:15pt!important;font-weight:700!important;color:#111827!important;margin:0 0 5mm!important;padding-bottom:2.5mm!important;border-bottom:2px solid #1e40af!important;text-transform:uppercase!important;letter-spacing:.05em!important}.pdf-content .summary-section{background:#f9fafb!important;padding:5mm!important;border-left:3px solid #1e40af!important}.pdf-content .summary-text{font-size:9.5pt!important;line-height:1.7!important;color:#374151!important;margin:0!important}.pdf-content .experience-list{display:flex!important;flex-direction:column!important;gap:4mm!important}.pdf-content .experience-item{padding-bottom:4mm!important;border-bottom:1px solid #d1d5db!important}.pdf-content .experience-item:last-child{border-bottom:none!important}.pdf-content .experience-header{display:flex!important;justify-content:space-between!important;align-items:flex-start!important;margin-bottom:2mm!important}.pdf-content .experience-role{font-size:11pt!important;font-weight:700!important;color:#111827!important;margin:0!important}.pdf-content .experience-company{font-size:9pt!important;color:#1e40af!important;margin:1px 0 0!important;font-weight:600!important}.pdf-content .experience-period{font-size:8pt!important;color:#6b7280!important;white-space:nowrap!important;background:#f9fafb!important;padding:2px 8px!important;border-radius:3px!important;border:1px solid #d1d5db!important}.pdf-content .experience-highlights{margin:2.5mm 0 0!important;padding-left:5mm!important}.pdf-content .experience-highlights li{font-size:8.5pt!important;line-height:1.6!important;color:#374151!important;margin-bottom:1.5mm!important}.pdf-content .skills-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:3.5mm!important}.pdf-content .skill-category{background:#f9fafb!important;padding:3.5mm!important;border-left:3px solid #1e40af!important}.pdf-content .skill-category h3{font-size:9.5pt!important;font-weight:700!important;color:#111827!important;margin:0 0 1.5mm!important}.pdf-content .skill-category p{font-size:8pt!important;color:#374151!important;margin:0!important;line-height:1.5!important}.pdf-content .portfolio-grid{display:flex!important;flex-direction:column!important;gap:4mm!important}.pdf-content .portfolio-item{display:flex!important;gap:4mm!important;background:#fff!important;border-radius:2mm!important;overflow:hidden!important;border:1px solid #d1d5db!important}.pdf-content .portfolio-image{width:50mm!important;height:38mm!important;-o-object-fit:cover!important;object-fit:cover!important;flex-shrink:0!important;display:block!important}.pdf-content .portfolio-info{padding:2.5mm 3mm 2.5mm 0!important;flex:1!important;display:flex!important;flex-direction:column!important;justify-content:center!important}.pdf-content .portfolio-category{font-size:7pt!important;font-weight:600!important;color:#1e40af!important;text-transform:uppercase!important;letter-spacing:.05em!important;margin-bottom:1mm!important}.pdf-content .portfolio-title{font-size:10.5pt!important;font-weight:700!important;color:#111827!important;margin:0 0 1.5mm!important;line-height:1.3!important}.pdf-content .portfolio-description{font-size:7.5pt!important;color:#374151!important;line-height:1.5!important;margin:0!important}.pdf-content .contact-page{background:#111827!important;display:flex!important;align-items:center!important;justify-content:center!important}.pdf-content .contact-content{text-align:center!important;color:#fff!important;padding:35mm 30mm!important}.pdf-content .contact-title{font-size:28pt!important;font-weight:800!important;margin:0 0 5mm!important;color:#fff!important}.pdf-content .contact-divider{width:50px!important;height:3px!important;background:#60a5fa!important;margin:0 auto 10mm!important}.pdf-content .contact-subtitle{font-size:10pt!important;color:#9ca3af!important;margin:0 0 10mm!important}.pdf-content .contact-details{display:grid!important;grid-template-columns:1fr 1fr!important;gap:4mm!important;text-align:left!important}.pdf-content .contact-item{background:#ffffff0d!important;padding:3.5mm!important;border-radius:2mm!important;border:1px solid rgba(255,255,255,.1)!important}.pdf-content .contact-item strong{display:block!important;font-size:7pt!important;color:#60a5fa!important;text-transform:uppercase!important;letter-spacing:.1em!important;margin-bottom:1.5mm!important;font-weight:600!important}.pdf-content .contact-item span{font-size:9pt!important;color:#d1d5db!important;word-break:break-all!important}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0a0a0a}::-webkit-scrollbar-thumb{background:#00ff94;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#00d9ff}.grayscale-blur{filter:grayscale(80%) blur(1px);image-rendering:pixelated;transition:all .5s ease-out}.group:hover .grayscale-blur,.grayscale-blur:hover{filter:grayscale(0%) blur(0);image-rendering:auto}.crt-screen:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.15),rgba(0,0,0,.15) 1px,transparent 1px,transparent 2px);pointer-events:none;z-index:1000}.crt-screen:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 0%,rgba(0,0,0,.3) 100%);pointer-events:none;z-index:1001}@keyframes crt-flicker{0%,to{opacity:1}92%{opacity:1}93%{opacity:.8}94%{opacity:1}}.crt-flicker{animation:crt-flicker .15s infinite}@keyframes crt-scanline{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}.crt-scanline:after{content:"";position:fixed;left:0;right:0;height:4px;background:#00ff941a;animation:crt-scanline 4s linear infinite;pointer-events:none;z-index:1002}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.animate-blink{animation:blink 1s step-end infinite}.animate-float{animation:float 2s ease-in-out infinite}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[\#00FF94\]\/40:hover{border-color:#00ff9466}.hover\:border-\[\#1A1A1A\]\/30:hover{border-color:#1a1a1a4d}.hover\:border-white\/30:hover{border-color:#ffffff4d}.hover\:bg-\[\#00FF94\]:hover{--tw-bg-opacity: 1;background-color:rgb(0 255 148 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#00FF94\]\/10:hover{background-color:#00ff941a}.hover\:bg-\[\#00FF94\]\/5:hover{background-color:#00ff940d}.hover\:bg-\[\#1A1A1A\]:hover{--tw-bg-opacity: 1;background-color:rgb(26 26 26 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#F5F5F5\]:hover{--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity, 1))}.hover\:bg-black:hover{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.hover\:bg-transparent:hover{background-color:transparent}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:bg-white\/80:hover{background-color:#fffc}.hover\:text-\[\#00D9FF\]:hover{--tw-text-opacity: 1;color:rgb(0 217 255 / var(--tw-text-opacity, 1))}.hover\:text-\[\#00FF94\]:hover{--tw-text-opacity: 1;color:rgb(0 255 148 / var(--tw-text-opacity, 1))}.hover\:text-\[\#0a0a0a\]:hover{--tw-text-opacity: 1;color:rgb(10 10 10 / var(--tw-text-opacity, 1))}.hover\:text-black:hover{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-60:hover{opacity:.6}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-80:hover{opacity:.8}.active\:cursor-grabbing:active{cursor:grabbing}.group:hover .group-hover\:scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-black\/20{background-color:#0003}.group:hover .group-hover\:text-\[\#00FF94\]{--tw-text-opacity: 1;color:rgb(0 255 148 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-\[\#666\]{--tw-text-opacity: 1;color:rgb(102 102 102 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-\[var\(--accent-it\)\]{color:var(--accent-it)}.group:hover .group-hover\:text-\[var\(--text-muted\)\]{color:var(--text-muted)}@media(min-width:768px){.md\:bottom-0{bottom:0}.md\:bottom-8{bottom:2rem}.md\:left-0{left:0}.md\:left-8{left:2rem}.md\:left-\[25\%\]{left:25%}.md\:left-\[75\%\]{left:75%}.md\:right-8{right:2rem}.md\:top-14{top:3.5rem}.md\:top-8{top:2rem}.md\:mb-12{margin-bottom:3rem}.md\:mb-16{margin-bottom:4rem}.md\:ml-20{margin-left:5rem}.md\:inline{display:inline}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-96{height:24rem}.md\:h-auto{height:auto}.md\:w-20{width:5rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:items-start{align-items:flex-start}.md\:justify-start{justify-content:flex-start}.md\:gap-24{gap:6rem}.md\:gap-3{gap:.75rem}.md\:gap-6{gap:1.5rem}.md\:gap-8{gap:2rem}.md\:border-r{border-right-width:1px}.md\:border-t-0{border-top-width:0px}.md\:bg-\[\#0a0a0a\]\/80{background-color:#0a0a0acc}.md\:p-12{padding:3rem}.md\:p-3{padding:.75rem}.md\:p-6{padding:1.5rem}.md\:p-8{padding:2rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:py-32{padding-top:8rem;padding-bottom:8rem}.md\:py-8{padding-top:2rem;padding-bottom:2rem}.md\:pb-8{padding-bottom:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-7xl{font-size:4.5rem;line-height:1}.md\:text-\[10px\]{font-size:10px}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:text-xs{font-size:.75rem;line-height:1rem}.md\:leading-\[12px\]{line-height:12px}.md\:tracking-\[0\.4em\]{letter-spacing:.4em}}@media(min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}} diff --git a/dist/assets/index-CDV1Fqci.js b/dist/assets/index-CDV1Fqci.js deleted file mode 100644 index 29b23d7..0000000 --- a/dist/assets/index-CDV1Fqci.js +++ /dev/null @@ -1,135 +0,0 @@ -(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))a(u);new MutationObserver(u=>{for(const f of u)if(f.type==="childList")for(const d of f.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&a(d)}).observe(document,{childList:!0,subtree:!0});function s(u){const f={};return u.integrity&&(f.integrity=u.integrity),u.referrerPolicy&&(f.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?f.credentials="include":u.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function a(u){if(u.ep)return;u.ep=!0;const f=s(u);fetch(u.href,f)}})();function np(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var cl={exports:{}},mi={},dl={exports:{}},le={};/** - * @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 jf;function Hy(){if(jf)return le;jf=1;var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),u=Symbol.for("react.profiler"),f=Symbol.for("react.provider"),d=Symbol.for("react.context"),h=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),v=Symbol.iterator;function w(A){return A===null||typeof A!="object"?null:(A=v&&A[v]||A["@@iterator"],typeof A=="function"?A:null)}var C={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},N=Object.assign,D={};function M(A,L,se){this.props=A,this.context=L,this.refs=D,this.updater=se||C}M.prototype.isReactComponent={},M.prototype.setState=function(A,L){if(typeof A!="object"&&typeof A!="function"&&A!=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,A,L,"setState")},M.prototype.forceUpdate=function(A){this.updater.enqueueForceUpdate(this,A,"forceUpdate")};function I(){}I.prototype=M.prototype;function U(A,L,se){this.props=A,this.context=L,this.refs=D,this.updater=se||C}var B=U.prototype=new I;B.constructor=U,N(B,M.prototype),B.isPureReactComponent=!0;var b=Array.isArray,G=Object.prototype.hasOwnProperty,ie={current:null},ae={key:!0,ref:!0,__self:!0,__source:!0};function J(A,L,se){var ue,he={},pe=null,Se=null;if(L!=null)for(ue in L.ref!==void 0&&(Se=L.ref),L.key!==void 0&&(pe=""+L.key),L)G.call(L,ue)&&!ae.hasOwnProperty(ue)&&(he[ue]=L[ue]);var ye=arguments.length-2;if(ye===1)he.children=se;else if(1>>1,L=z[A];if(0>>1;Au(he,W))peu(Se,he)?(z[A]=Se,z[pe]=W,A=pe):(z[A]=he,z[ue]=W,A=ue);else if(peu(Se,W))z[A]=Se,z[pe]=W,A=pe;else break e}}return X}function u(z,X){var W=z.sortIndex-X.sortIndex;return W!==0?W:z.id-X.id}if(typeof performance=="object"&&typeof performance.now=="function"){var f=performance;n.unstable_now=function(){return f.now()}}else{var d=Date,h=d.now();n.unstable_now=function(){return d.now()-h}}var g=[],x=[],y=1,v=null,w=3,C=!1,N=!1,D=!1,M=typeof setTimeout=="function"?setTimeout:null,I=typeof clearTimeout=="function"?clearTimeout:null,U=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function B(z){for(var X=s(x);X!==null;){if(X.callback===null)a(x);else if(X.startTime<=z)a(x),X.sortIndex=X.expirationTime,r(g,X);else break;X=s(x)}}function b(z){if(D=!1,B(z),!N)if(s(g)!==null)N=!0,Te(G);else{var X=s(x);X!==null&&Me(b,X.startTime-z)}}function G(z,X){N=!1,D&&(D=!1,I(J),J=-1),C=!0;var W=w;try{for(B(X),v=s(g);v!==null&&(!(v.expirationTime>X)||z&&!fe());){var A=v.callback;if(typeof A=="function"){v.callback=null,w=v.priorityLevel;var L=A(v.expirationTime<=X);X=n.unstable_now(),typeof L=="function"?v.callback=L:v===s(g)&&a(g),B(X)}else a(g);v=s(g)}if(v!==null)var se=!0;else{var ue=s(x);ue!==null&&Me(b,ue.startTime-X),se=!1}return se}finally{v=null,w=W,C=!1}}var ie=!1,ae=null,J=-1,re=5,q=-1;function fe(){return!(n.unstable_now()-qz||125A?(z.sortIndex=W,r(x,z),s(g)===null&&z===s(x)&&(D?(I(J),J=-1):D=!0,Me(b,W-A))):(z.sortIndex=L,r(g,z),N||C||(N=!0,Te(G))),z},n.unstable_shouldYield=fe,n.unstable_wrapCallback=function(z){var X=w;return function(){var W=w;w=X;try{return z.apply(this,arguments)}finally{w=W}}}})(pl)),pl}var Rf;function Xy(){return Rf||(Rf=1,hl.exports=Yy()),hl.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 Ff;function Qy(){if(Ff)return ct;Ff=1;var n=ru(),r=Xy();function s(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,i=1;i"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),g=Object.prototype.hasOwnProperty,x=/^[: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]*$/,y={},v={};function w(e){return g.call(v,e)?!0:g.call(y,e)?!1:x.test(e)?v[e]=!0:(y[e]=!0,!1)}function C(e,t,i,o){if(i!==null&&i.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return o?!1:i!==null?!i.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function N(e,t,i,o){if(t===null||typeof t>"u"||C(e,t,i,o))return!0;if(o)return!1;if(i!==null)switch(i.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 D(e,t,i,o,l,c,p){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=o,this.attributeNamespace=l,this.mustUseProperty=i,this.propertyName=e,this.type=t,this.sanitizeURL=c,this.removeEmptyString=p}var M={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){M[e]=new D(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];M[t]=new D(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){M[e]=new D(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){M[e]=new D(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){M[e]=new D(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){M[e]=new D(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){M[e]=new D(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){M[e]=new D(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){M[e]=new D(e,5,!1,e.toLowerCase(),null,!1,!1)});var I=/[\-:]([a-z])/g;function U(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(I,U);M[t]=new D(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(I,U);M[t]=new D(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(I,U);M[t]=new D(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){M[e]=new D(e,1,!1,e.toLowerCase(),null,!1,!1)}),M.xlinkHref=new D("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){M[e]=new D(e,1,!1,e.toLowerCase(),null,!0,!0)});function B(e,t,i,o){var l=M.hasOwnProperty(t)?M[t]:null;(l!==null?l.type!==0:o||!(2S||l[p]!==c[S]){var k=` -`+l[p].replace(" at new "," at ");return e.displayName&&k.includes("")&&(k=k.replace("",e.displayName)),k}while(1<=p&&0<=S);break}}}finally{se=!1,Error.prepareStackTrace=i}return(e=e?e.displayName||e.name:"")?L(e):""}function he(e){switch(e.tag){case 5:return L(e.type);case 16:return L("Lazy");case 13:return L("Suspense");case 19:return L("SuspenseList");case 0:case 2:case 15:return e=ue(e.type,!1),e;case 11:return e=ue(e.type.render,!1),e;case 1:return e=ue(e.type,!0),e;default:return""}}function pe(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 ae:return"Fragment";case ie:return"Portal";case re:return"Profiler";case J:return"StrictMode";case Ne:return"Suspense";case Re:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case fe:return(e.displayName||"Context")+".Consumer";case q:return(e._context.displayName||"Context")+".Provider";case xe:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ze:return t=e.displayName||null,t!==null?t:pe(e.type)||"Memo";case Te:t=e._payload,e=e._init;try{return pe(e(t))}catch{}}return null}function Se(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 pe(t);case 8:return t===J?"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 ye(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Ee(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function dt(e){var t=Ee(e)?"checked":"value",i=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),o=""+e[t];if(!e.hasOwnProperty(t)&&typeof i<"u"&&typeof i.get=="function"&&typeof i.set=="function"){var l=i.get,c=i.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(p){o=""+p,c.call(this,p)}}),Object.defineProperty(e,t,{enumerable:i.enumerable}),{getValue:function(){return o},setValue:function(p){o=""+p},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Mi(e){e._valueTracker||(e._valueTracker=dt(e))}function Ru(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var i=t.getValue(),o="";return e&&(o=Ee(e)?e.checked?"true":"false":e.value),e=o,e!==i?(t.setValue(e),!0):!1}function Di(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 yo(e,t){var i=t.checked;return W({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:i??e._wrapperState.initialChecked})}function Fu(e,t){var i=t.defaultValue==null?"":t.defaultValue,o=t.checked!=null?t.checked:t.defaultChecked;i=ye(t.value!=null?t.value:i),e._wrapperState={initialChecked:o,initialValue:i,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Vu(e,t){t=t.checked,t!=null&&B(e,"checked",t,!1)}function vo(e,t){Vu(e,t);var i=ye(t.value),o=t.type;if(i!=null)o==="number"?(i===0&&e.value===""||e.value!=i)&&(e.value=""+i):e.value!==""+i&&(e.value=""+i);else if(o==="submit"||o==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?xo(e,t.type,i):t.hasOwnProperty("defaultValue")&&xo(e,t.type,ye(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Iu(e,t,i){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var o=t.type;if(!(o!=="submit"&&o!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,i||t===e.value||(e.value=t),e.defaultValue=t}i=e.name,i!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,i!==""&&(e.name=i)}function xo(e,t,i){(t!=="number"||Di(e.ownerDocument)!==e)&&(i==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+i&&(e.defaultValue=""+i))}var Mr=Array.isArray;function $n(e,t,i,o){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=Li.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Dr(e,t){if(t){var i=e.firstChild;if(i&&i===e.lastChild&&i.nodeType===3){i.nodeValue=t;return}}e.textContent=t}var Lr={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},Ym=["Webkit","ms","Moz","O"];Object.keys(Lr).forEach(function(e){Ym.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Lr[t]=Lr[e]})});function Uu(e,t,i){return t==null||typeof t=="boolean"||t===""?"":i||typeof t!="number"||t===0||Lr.hasOwnProperty(e)&&Lr[e]?(""+t).trim():t+"px"}function Wu(e,t){e=e.style;for(var i in t)if(t.hasOwnProperty(i)){var o=i.indexOf("--")===0,l=Uu(i,t[i],o);i==="float"&&(i="cssFloat"),o?e.setProperty(i,l):e[i]=l}}var Xm=W({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 ko(e,t){if(t){if(Xm[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(s(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(s(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(s(61))}if(t.style!=null&&typeof t.style!="object")throw Error(s(62))}}function To(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 Co=null;function Ao(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Po=null,Yn=null,Xn=null;function Hu(e){if(e=ei(e)){if(typeof Po!="function")throw Error(s(280));var t=e.stateNode;t&&(t=ts(t),Po(e.stateNode,e.type,t))}}function Gu(e){Yn?Xn?Xn.push(e):Xn=[e]:Yn=e}function Ku(){if(Yn){var e=Yn,t=Xn;if(Xn=Yn=null,Hu(e),t)for(e=0;e>>=0,e===0?32:31-(og(e)/ag|0)|0}var _i=64,zi=4194304;function Ir(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 Oi(e,t){var i=e.pendingLanes;if(i===0)return 0;var o=0,l=e.suspendedLanes,c=e.pingedLanes,p=i&268435455;if(p!==0){var S=p&~l;S!==0?o=Ir(S):(c&=p,c!==0&&(o=Ir(c)))}else p=i&~l,p!==0?o=Ir(p):c!==0&&(o=Ir(c));if(o===0)return 0;if(t!==0&&t!==o&&(t&l)===0&&(l=o&-o,c=t&-t,l>=c||l===16&&(c&4194240)!==0))return t;if((o&4)!==0&&(o|=i&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=o;0i;i++)t.push(e);return t}function _r(e,t,i){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Pt(t),e[t]=i}function dg(e,t){var i=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 o=e.eventTimes;for(e=e.expirationTimes;0=Gr),wc=" ",Sc=!1;function kc(e,t){switch(e){case"keyup":return Og.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Tc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Zn=!1;function bg(e,t){switch(e){case"compositionend":return Tc(t);case"keypress":return t.which!==32?null:(Sc=!0,wc);case"textInput":return e=t.data,e===wc&&Sc?null:e;default:return null}}function Ug(e,t){if(Zn)return e==="compositionend"||!Ho&&kc(e,t)?(e=pc(),Hi=zo=an=null,Zn=!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:i,offset:t-e};e=o}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=Mc(i)}}function Lc(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Lc(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Rc(){for(var e=window,t=Di();t instanceof e.HTMLIFrameElement;){try{var i=typeof t.contentWindow.location.href=="string"}catch{i=!1}if(i)e=t.contentWindow;else break;t=Di(e.document)}return t}function $o(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 qg(e){var t=Rc(),i=e.focusedElem,o=e.selectionRange;if(t!==i&&i&&i.ownerDocument&&Lc(i.ownerDocument.documentElement,i)){if(o!==null&&$o(i)){if(t=o.start,e=o.end,e===void 0&&(e=t),"selectionStart"in i)i.selectionStart=t,i.selectionEnd=Math.min(e,i.value.length);else if(e=(t=i.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=i.textContent.length,c=Math.min(o.start,l);o=o.end===void 0?c:Math.min(o.end,l),!e.extend&&c>o&&(l=o,o=c,c=l),l=Dc(i,c);var p=Dc(i,o);l&&p&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==p.node||e.focusOffset!==p.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),c>o?(e.addRange(t),e.extend(p.node,p.offset)):(t.setEnd(p.node,p.offset),e.addRange(t)))}}for(t=[],e=i;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof i.focus=="function"&&i.focus(),i=0;i=document.documentMode,Jn=null,Yo=null,Xr=null,Xo=!1;function Fc(e,t,i){var o=i.window===i?i.document:i.nodeType===9?i:i.ownerDocument;Xo||Jn==null||Jn!==Di(o)||(o=Jn,"selectionStart"in o&&$o(o)?o={start:o.selectionStart,end:o.selectionEnd}:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection(),o={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}),Xr&&Yr(Xr,o)||(Xr=o,o=Zi(Yo,"onSelect"),0ir||(e.current=aa[ir],aa[ir]=null,ir--)}function ke(e,t){ir++,aa[ir]=e.current,e.current=t}var dn={},qe=cn(dn),st=cn(!1),Mn=dn;function sr(e,t){var i=e.type.contextTypes;if(!i)return dn;var o=e.stateNode;if(o&&o.__reactInternalMemoizedUnmaskedChildContext===t)return o.__reactInternalMemoizedMaskedChildContext;var l={},c;for(c in i)l[c]=t[c];return o&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function ot(e){return e=e.childContextTypes,e!=null}function ns(){Ae(st),Ae(qe)}function Xc(e,t,i){if(qe.current!==dn)throw Error(s(168));ke(qe,t),ke(st,i)}function Qc(e,t,i){var o=e.stateNode;if(t=t.childContextTypes,typeof o.getChildContext!="function")return i;o=o.getChildContext();for(var l in o)if(!(l in t))throw Error(s(108,Se(e)||"Unknown",l));return W({},i,o)}function rs(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||dn,Mn=qe.current,ke(qe,e),ke(st,st.current),!0}function qc(e,t,i){var o=e.stateNode;if(!o)throw Error(s(169));i?(e=Qc(e,t,Mn),o.__reactInternalMemoizedMergedChildContext=e,Ae(st),Ae(qe),ke(qe,e)):Ae(st),ke(st,i)}var Xt=null,is=!1,la=!1;function Zc(e){Xt===null?Xt=[e]:Xt.push(e)}function uy(e){is=!0,Zc(e)}function fn(){if(!la&&Xt!==null){la=!0;var e=0,t=ve;try{var i=Xt;for(ve=1;e>=p,l-=p,Qt=1<<32-Pt(t)+l|i<ne?(Ke=te,te=null):Ke=te.sibling;var me=R(P,te,E[ne],O);if(me===null){te===null&&(te=Ke);break}e&&te&&me.alternate===null&&t(P,te),T=c(me,T,ne),ee===null?Z=me:ee.sibling=me,ee=me,te=Ke}if(ne===E.length)return i(P,te),je&&Ln(P,ne),Z;if(te===null){for(;nene?(Ke=te,te=null):Ke=te.sibling;var Sn=R(P,te,me.value,O);if(Sn===null){te===null&&(te=Ke);break}e&&te&&Sn.alternate===null&&t(P,te),T=c(Sn,T,ne),ee===null?Z=Sn:ee.sibling=Sn,ee=Sn,te=Ke}if(me.done)return i(P,te),je&&Ln(P,ne),Z;if(te===null){for(;!me.done;ne++,me=E.next())me=V(P,me.value,O),me!==null&&(T=c(me,T,ne),ee===null?Z=me:ee.sibling=me,ee=me);return je&&Ln(P,ne),Z}for(te=o(P,te);!me.done;ne++,me=E.next())me=H(te,P,ne,me.value,O),me!==null&&(e&&me.alternate!==null&&te.delete(me.key===null?ne:me.key),T=c(me,T,ne),ee===null?Z=me:ee.sibling=me,ee=me);return e&&te.forEach(function(Wy){return t(P,Wy)}),je&&Ln(P,ne),Z}function _e(P,T,E,O){if(typeof E=="object"&&E!==null&&E.type===ae&&E.key===null&&(E=E.props.children),typeof E=="object"&&E!==null){switch(E.$$typeof){case G:e:{for(var Z=E.key,ee=T;ee!==null;){if(ee.key===Z){if(Z=E.type,Z===ae){if(ee.tag===7){i(P,ee.sibling),T=l(ee,E.props.children),T.return=P,P=T;break e}}else if(ee.elementType===Z||typeof Z=="object"&&Z!==null&&Z.$$typeof===Te&&id(Z)===ee.type){i(P,ee.sibling),T=l(ee,E.props),T.ref=ti(P,ee,E),T.return=P,P=T;break e}i(P,ee);break}else t(P,ee);ee=ee.sibling}E.type===ae?(T=Bn(E.props.children,P.mode,O,E.key),T.return=P,P=T):(O=Ls(E.type,E.key,E.props,null,P.mode,O),O.ref=ti(P,T,E),O.return=P,P=O)}return p(P);case ie:e:{for(ee=E.key;T!==null;){if(T.key===ee)if(T.tag===4&&T.stateNode.containerInfo===E.containerInfo&&T.stateNode.implementation===E.implementation){i(P,T.sibling),T=l(T,E.children||[]),T.return=P,P=T;break e}else{i(P,T);break}else t(P,T);T=T.sibling}T=sl(E,P.mode,O),T.return=P,P=T}return p(P);case Te:return ee=E._init,_e(P,T,ee(E._payload),O)}if(Mr(E))return $(P,T,E,O);if(X(E))return Q(P,T,E,O);ls(P,E)}return typeof E=="string"&&E!==""||typeof E=="number"?(E=""+E,T!==null&&T.tag===6?(i(P,T.sibling),T=l(T,E),T.return=P,P=T):(i(P,T),T=il(E,P.mode,O),T.return=P,P=T),p(P)):i(P,T)}return _e}var ur=sd(!0),od=sd(!1),us=cn(null),cs=null,cr=null,pa=null;function ma(){pa=cr=cs=null}function ga(e){var t=us.current;Ae(us),e._currentValue=t}function ya(e,t,i){for(;e!==null;){var o=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,o!==null&&(o.childLanes|=t)):o!==null&&(o.childLanes&t)!==t&&(o.childLanes|=t),e===i)break;e=e.return}}function dr(e,t){cs=e,pa=cr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(at=!0),e.firstContext=null)}function xt(e){var t=e._currentValue;if(pa!==e)if(e={context:e,memoizedValue:t,next:null},cr===null){if(cs===null)throw Error(s(308));cr=e,cs.dependencies={lanes:0,firstContext:e}}else cr=cr.next=e;return t}var Rn=null;function va(e){Rn===null?Rn=[e]:Rn.push(e)}function ad(e,t,i,o){var l=t.interleaved;return l===null?(i.next=i,va(t)):(i.next=l.next,l.next=i),t.interleaved=i,Zt(e,o)}function Zt(e,t){e.lanes|=t;var i=e.alternate;for(i!==null&&(i.lanes|=t),i=e,e=e.return;e!==null;)e.childLanes|=t,i=e.alternate,i!==null&&(i.childLanes|=t),i=e,e=e.return;return i.tag===3?i.stateNode:null}var hn=!1;function xa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function ld(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Jt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function pn(e,t,i){var o=e.updateQueue;if(o===null)return null;if(o=o.shared,(de&2)!==0){var l=o.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),o.pending=t,Zt(e,i)}return l=o.interleaved,l===null?(t.next=t,va(o)):(t.next=l.next,l.next=t),o.interleaved=t,Zt(e,i)}function ds(e,t,i){if(t=t.updateQueue,t!==null&&(t=t.shared,(i&4194240)!==0)){var o=t.lanes;o&=e.pendingLanes,i|=o,t.lanes=i,Ro(e,i)}}function ud(e,t){var i=e.updateQueue,o=e.alternate;if(o!==null&&(o=o.updateQueue,i===o)){var l=null,c=null;if(i=i.firstBaseUpdate,i!==null){do{var p={eventTime:i.eventTime,lane:i.lane,tag:i.tag,payload:i.payload,callback:i.callback,next:null};c===null?l=c=p:c=c.next=p,i=i.next}while(i!==null);c===null?l=c=t:c=c.next=t}else l=c=t;i={baseState:o.baseState,firstBaseUpdate:l,lastBaseUpdate:c,shared:o.shared,effects:o.effects},e.updateQueue=i;return}e=i.lastBaseUpdate,e===null?i.firstBaseUpdate=t:e.next=t,i.lastBaseUpdate=t}function fs(e,t,i,o){var l=e.updateQueue;hn=!1;var c=l.firstBaseUpdate,p=l.lastBaseUpdate,S=l.shared.pending;if(S!==null){l.shared.pending=null;var k=S,j=k.next;k.next=null,p===null?c=j:p.next=j,p=k;var F=e.alternate;F!==null&&(F=F.updateQueue,S=F.lastBaseUpdate,S!==p&&(S===null?F.firstBaseUpdate=j:S.next=j,F.lastBaseUpdate=k))}if(c!==null){var V=l.baseState;p=0,F=j=k=null,S=c;do{var R=S.lane,H=S.eventTime;if((o&R)===R){F!==null&&(F=F.next={eventTime:H,lane:0,tag:S.tag,payload:S.payload,callback:S.callback,next:null});e:{var $=e,Q=S;switch(R=t,H=i,Q.tag){case 1:if($=Q.payload,typeof $=="function"){V=$.call(H,V,R);break e}V=$;break e;case 3:$.flags=$.flags&-65537|128;case 0:if($=Q.payload,R=typeof $=="function"?$.call(H,V,R):$,R==null)break e;V=W({},V,R);break e;case 2:hn=!0}}S.callback!==null&&S.lane!==0&&(e.flags|=64,R=l.effects,R===null?l.effects=[S]:R.push(S))}else H={eventTime:H,lane:R,tag:S.tag,payload:S.payload,callback:S.callback,next:null},F===null?(j=F=H,k=V):F=F.next=H,p|=R;if(S=S.next,S===null){if(S=l.shared.pending,S===null)break;R=S,S=R.next,R.next=null,l.lastBaseUpdate=R,l.shared.pending=null}}while(!0);if(F===null&&(k=V),l.baseState=k,l.firstBaseUpdate=j,l.lastBaseUpdate=F,t=l.shared.interleaved,t!==null){l=t;do p|=l.lane,l=l.next;while(l!==t)}else c===null&&(l.shared.lanes=0);In|=p,e.lanes=p,e.memoizedState=V}}function cd(e,t,i){if(e=t.effects,t.effects=null,e!==null)for(t=0;ti?i:4,e(!0);var o=Ca.transition;Ca.transition={};try{e(!1),t()}finally{ve=i,Ca.transition=o}}function Nd(){return wt().memoizedState}function hy(e,t,i){var o=vn(e);if(i={lane:o,action:i,hasEagerState:!1,eagerState:null,next:null},Md(e))Dd(t,i);else if(i=ad(e,t,i,o),i!==null){var l=nt();Lt(i,e,o,l),Ld(i,t,o)}}function py(e,t,i){var o=vn(e),l={lane:o,action:i,hasEagerState:!1,eagerState:null,next:null};if(Md(e))Dd(t,l);else{var c=e.alternate;if(e.lanes===0&&(c===null||c.lanes===0)&&(c=t.lastRenderedReducer,c!==null))try{var p=t.lastRenderedState,S=c(p,i);if(l.hasEagerState=!0,l.eagerState=S,Et(S,p)){var k=t.interleaved;k===null?(l.next=l,va(t)):(l.next=k.next,k.next=l),t.interleaved=l;return}}catch{}finally{}i=ad(e,t,l,o),i!==null&&(l=nt(),Lt(i,e,o,l),Ld(i,t,o))}}function Md(e){var t=e.alternate;return e===Le||t!==null&&t===Le}function Dd(e,t){si=ms=!0;var i=e.pending;i===null?t.next=t:(t.next=i.next,i.next=t),e.pending=t}function Ld(e,t,i){if((i&4194240)!==0){var o=t.lanes;o&=e.pendingLanes,i|=o,t.lanes=i,Ro(e,i)}}var vs={readContext:xt,useCallback:Ze,useContext:Ze,useEffect:Ze,useImperativeHandle:Ze,useInsertionEffect:Ze,useLayoutEffect:Ze,useMemo:Ze,useReducer:Ze,useRef:Ze,useState:Ze,useDebugValue:Ze,useDeferredValue:Ze,useTransition:Ze,useMutableSource:Ze,useSyncExternalStore:Ze,useId:Ze,unstable_isNewReconciler:!1},my={readContext:xt,useCallback:function(e,t){return Bt().memoizedState=[e,t===void 0?null:t],e},useContext:xt,useEffect:Sd,useImperativeHandle:function(e,t,i){return i=i!=null?i.concat([e]):null,gs(4194308,4,Cd.bind(null,t,e),i)},useLayoutEffect:function(e,t){return gs(4194308,4,e,t)},useInsertionEffect:function(e,t){return gs(4,2,e,t)},useMemo:function(e,t){var i=Bt();return t=t===void 0?null:t,e=e(),i.memoizedState=[e,t],e},useReducer:function(e,t,i){var o=Bt();return t=i!==void 0?i(t):t,o.memoizedState=o.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},o.queue=e,e=e.dispatch=hy.bind(null,Le,e),[o.memoizedState,e]},useRef:function(e){var t=Bt();return e={current:e},t.memoizedState=e},useState:xd,useDebugValue:Da,useDeferredValue:function(e){return Bt().memoizedState=e},useTransition:function(){var e=xd(!1),t=e[0];return e=fy.bind(null,e[1]),Bt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,i){var o=Le,l=Bt();if(je){if(i===void 0)throw Error(s(407));i=i()}else{if(i=t(),Ge===null)throw Error(s(349));(Vn&30)!==0||pd(o,t,i)}l.memoizedState=i;var c={value:i,getSnapshot:t};return l.queue=c,Sd(gd.bind(null,o,c,e),[e]),o.flags|=2048,li(9,md.bind(null,o,c,i,t),void 0,null),i},useId:function(){var e=Bt(),t=Ge.identifierPrefix;if(je){var i=qt,o=Qt;i=(o&~(1<<32-Pt(o)-1)).toString(32)+i,t=":"+t+"R"+i,i=oi++,0<\/script>",e=e.removeChild(e.firstChild)):typeof o.is=="string"?e=p.createElement(i,{is:o.is}):(e=p.createElement(i),i==="select"&&(p=e,o.multiple?p.multiple=!0:o.size&&(p.size=o.size))):e=p.createElementNS(e,i),e[zt]=t,e[Jr]=o,Zd(e,t,!1,!1),t.stateNode=e;e:{switch(p=To(i,o),i){case"dialog":Ce("cancel",e),Ce("close",e),l=o;break;case"iframe":case"object":case"embed":Ce("load",e),l=o;break;case"video":case"audio":for(l=0;lgr&&(t.flags|=128,o=!0,ui(c,!1),t.lanes=4194304)}else{if(!o)if(e=hs(p),e!==null){if(t.flags|=128,o=!0,i=e.updateQueue,i!==null&&(t.updateQueue=i,t.flags|=4),ui(c,!0),c.tail===null&&c.tailMode==="hidden"&&!p.alternate&&!je)return Je(t),null}else 2*Ie()-c.renderingStartTime>gr&&i!==1073741824&&(t.flags|=128,o=!0,ui(c,!1),t.lanes=4194304);c.isBackwards?(p.sibling=t.child,t.child=p):(i=c.last,i!==null?i.sibling=p:t.child=p,c.last=p)}return c.tail!==null?(t=c.tail,c.rendering=t,c.tail=t.sibling,c.renderingStartTime=Ie(),t.sibling=null,i=De.current,ke(De,o?i&1|2:i&1),t):(Je(t),null);case 22:case 23:return tl(),o=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==o&&(t.flags|=8192),o&&(t.mode&1)!==0?(mt&1073741824)!==0&&(Je(t),t.subtreeFlags&6&&(t.flags|=8192)):Je(t),null;case 24:return null;case 25:return null}throw Error(s(156,t.tag))}function Ty(e,t){switch(ca(t),t.tag){case 1:return ot(t.type)&&ns(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return fr(),Ae(st),Ae(qe),Ta(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Sa(t),null;case 13:if(Ae(De),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(s(340));lr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ae(De),null;case 4:return fr(),null;case 10:return ga(t.type._context),null;case 22:case 23:return tl(),null;case 24:return null;default:return null}}var ks=!1,et=!1,Cy=typeof WeakSet=="function"?WeakSet:Set,K=null;function pr(e,t){var i=e.ref;if(i!==null)if(typeof i=="function")try{i(null)}catch(o){Fe(e,t,o)}else i.current=null}function Wa(e,t,i){try{i()}catch(o){Fe(e,t,o)}}var tf=!1;function Ay(e,t){if(ta=Ui,e=Rc(),$o(e)){if("selectionStart"in e)var i={start:e.selectionStart,end:e.selectionEnd};else e:{i=(i=e.ownerDocument)&&i.defaultView||window;var o=i.getSelection&&i.getSelection();if(o&&o.rangeCount!==0){i=o.anchorNode;var l=o.anchorOffset,c=o.focusNode;o=o.focusOffset;try{i.nodeType,c.nodeType}catch{i=null;break e}var p=0,S=-1,k=-1,j=0,F=0,V=e,R=null;t:for(;;){for(var H;V!==i||l!==0&&V.nodeType!==3||(S=p+l),V!==c||o!==0&&V.nodeType!==3||(k=p+o),V.nodeType===3&&(p+=V.nodeValue.length),(H=V.firstChild)!==null;)R=V,V=H;for(;;){if(V===e)break t;if(R===i&&++j===l&&(S=p),R===c&&++F===o&&(k=p),(H=V.nextSibling)!==null)break;V=R,R=V.parentNode}V=H}i=S===-1||k===-1?null:{start:S,end:k}}else i=null}i=i||{start:0,end:0}}else i=null;for(na={focusedElem:e,selectionRange:i},Ui=!1,K=t;K!==null;)if(t=K,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,K=e;else for(;K!==null;){t=K;try{var $=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if($!==null){var Q=$.memoizedProps,_e=$.memoizedState,P=t.stateNode,T=P.getSnapshotBeforeUpdate(t.elementType===t.type?Q:Nt(t.type,Q),_e);P.__reactInternalSnapshotBeforeUpdate=T}break;case 3:var E=t.stateNode.containerInfo;E.nodeType===1?E.textContent="":E.nodeType===9&&E.documentElement&&E.removeChild(E.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(s(163))}}catch(O){Fe(t,t.return,O)}if(e=t.sibling,e!==null){e.return=t.return,K=e;break}K=t.return}return $=tf,tf=!1,$}function ci(e,t,i){var o=t.updateQueue;if(o=o!==null?o.lastEffect:null,o!==null){var l=o=o.next;do{if((l.tag&e)===e){var c=l.destroy;l.destroy=void 0,c!==void 0&&Wa(t,i,c)}l=l.next}while(l!==o)}}function Ts(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var i=t=t.next;do{if((i.tag&e)===e){var o=i.create;i.destroy=o()}i=i.next}while(i!==t)}}function Ha(e){var t=e.ref;if(t!==null){var i=e.stateNode;switch(e.tag){case 5:e=i;break;default:e=i}typeof t=="function"?t(e):t.current=e}}function nf(e){var t=e.alternate;t!==null&&(e.alternate=null,nf(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[zt],delete t[Jr],delete t[oa],delete t[ay],delete t[ly])),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 rf(e){return e.tag===5||e.tag===3||e.tag===4}function sf(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||rf(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 Ga(e,t,i){var o=e.tag;if(o===5||o===6)e=e.stateNode,t?i.nodeType===8?i.parentNode.insertBefore(e,t):i.insertBefore(e,t):(i.nodeType===8?(t=i.parentNode,t.insertBefore(e,i)):(t=i,t.appendChild(e)),i=i._reactRootContainer,i!=null||t.onclick!==null||(t.onclick=es));else if(o!==4&&(e=e.child,e!==null))for(Ga(e,t,i),e=e.sibling;e!==null;)Ga(e,t,i),e=e.sibling}function Ka(e,t,i){var o=e.tag;if(o===5||o===6)e=e.stateNode,t?i.insertBefore(e,t):i.appendChild(e);else if(o!==4&&(e=e.child,e!==null))for(Ka(e,t,i),e=e.sibling;e!==null;)Ka(e,t,i),e=e.sibling}var $e=null,Mt=!1;function mn(e,t,i){for(i=i.child;i!==null;)of(e,t,i),i=i.sibling}function of(e,t,i){if(_t&&typeof _t.onCommitFiberUnmount=="function")try{_t.onCommitFiberUnmount(Ii,i)}catch{}switch(i.tag){case 5:et||pr(i,t);case 6:var o=$e,l=Mt;$e=null,mn(e,t,i),$e=o,Mt=l,$e!==null&&(Mt?(e=$e,i=i.stateNode,e.nodeType===8?e.parentNode.removeChild(i):e.removeChild(i)):$e.removeChild(i.stateNode));break;case 18:$e!==null&&(Mt?(e=$e,i=i.stateNode,e.nodeType===8?sa(e.parentNode,i):e.nodeType===1&&sa(e,i),Ur(e)):sa($e,i.stateNode));break;case 4:o=$e,l=Mt,$e=i.stateNode.containerInfo,Mt=!0,mn(e,t,i),$e=o,Mt=l;break;case 0:case 11:case 14:case 15:if(!et&&(o=i.updateQueue,o!==null&&(o=o.lastEffect,o!==null))){l=o=o.next;do{var c=l,p=c.destroy;c=c.tag,p!==void 0&&((c&2)!==0||(c&4)!==0)&&Wa(i,t,p),l=l.next}while(l!==o)}mn(e,t,i);break;case 1:if(!et&&(pr(i,t),o=i.stateNode,typeof o.componentWillUnmount=="function"))try{o.props=i.memoizedProps,o.state=i.memoizedState,o.componentWillUnmount()}catch(S){Fe(i,t,S)}mn(e,t,i);break;case 21:mn(e,t,i);break;case 22:i.mode&1?(et=(o=et)||i.memoizedState!==null,mn(e,t,i),et=o):mn(e,t,i);break;default:mn(e,t,i)}}function af(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var i=e.stateNode;i===null&&(i=e.stateNode=new Cy),t.forEach(function(o){var l=Fy.bind(null,e,o);i.has(o)||(i.add(o),o.then(l,l))})}}function Dt(e,t){var i=t.deletions;if(i!==null)for(var o=0;ol&&(l=p),o&=~c}if(o=l,o=Ie()-o,o=(120>o?120:480>o?480:1080>o?1080:1920>o?1920:3e3>o?3e3:4320>o?4320:1960*Ey(o/1960))-o,10e?16:e,yn===null)var o=!1;else{if(e=yn,yn=null,js=0,(de&6)!==0)throw Error(s(331));var l=de;for(de|=4,K=e.current;K!==null;){var c=K,p=c.child;if((K.flags&16)!==0){var S=c.deletions;if(S!==null){for(var k=0;kIe()-Xa?zn(e,0):Ya|=i),ut(e,t)}function wf(e,t){t===0&&((e.mode&1)===0?t=1:(t=zi,zi<<=1,(zi&130023424)===0&&(zi=4194304)));var i=nt();e=Zt(e,t),e!==null&&(_r(e,t,i),ut(e,i))}function Ry(e){var t=e.memoizedState,i=0;t!==null&&(i=t.retryLane),wf(e,i)}function Fy(e,t){var i=0;switch(e.tag){case 13:var o=e.stateNode,l=e.memoizedState;l!==null&&(i=l.retryLane);break;case 19:o=e.stateNode;break;default:throw Error(s(314))}o!==null&&o.delete(t),wf(e,i)}var Sf;Sf=function(e,t,i){if(e!==null)if(e.memoizedProps!==t.pendingProps||st.current)at=!0;else{if((e.lanes&i)===0&&(t.flags&128)===0)return at=!1,Sy(e,t,i);at=(e.flags&131072)!==0}else at=!1,je&&(t.flags&1048576)!==0&&Jc(t,os,t.index);switch(t.lanes=0,t.tag){case 2:var o=t.type;Ss(e,t),e=t.pendingProps;var l=sr(t,qe.current);dr(t,i),l=Pa(null,t,o,e,l,i);var c=Ea();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ot(o)?(c=!0,rs(t)):c=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,xa(t),l.updater=xs,t.stateNode=l,l._reactInternals=t,Ra(t,o,e,i),t=_a(null,t,o,!0,c,i)):(t.tag=0,je&&c&&ua(t),tt(null,t,l,i),t=t.child),t;case 16:o=t.elementType;e:{switch(Ss(e,t),e=t.pendingProps,l=o._init,o=l(o._payload),t.type=o,l=t.tag=Iy(o),e=Nt(o,e),l){case 0:t=Ia(null,t,o,e,i);break e;case 1:t=Kd(null,t,o,e,i);break e;case 11:t=bd(null,t,o,e,i);break e;case 14:t=Ud(null,t,o,Nt(o.type,e),i);break e}throw Error(s(306,o,""))}return t;case 0:return o=t.type,l=t.pendingProps,l=t.elementType===o?l:Nt(o,l),Ia(e,t,o,l,i);case 1:return o=t.type,l=t.pendingProps,l=t.elementType===o?l:Nt(o,l),Kd(e,t,o,l,i);case 3:e:{if($d(t),e===null)throw Error(s(387));o=t.pendingProps,c=t.memoizedState,l=c.element,ld(e,t),fs(t,o,null,i);var p=t.memoizedState;if(o=p.element,c.isDehydrated)if(c={element:o,isDehydrated:!1,cache:p.cache,pendingSuspenseBoundaries:p.pendingSuspenseBoundaries,transitions:p.transitions},t.updateQueue.baseState=c,t.memoizedState=c,t.flags&256){l=hr(Error(s(423)),t),t=Yd(e,t,o,i,l);break e}else if(o!==l){l=hr(Error(s(424)),t),t=Yd(e,t,o,i,l);break e}else for(pt=un(t.stateNode.containerInfo.firstChild),ht=t,je=!0,jt=null,i=od(t,null,o,i),t.child=i;i;)i.flags=i.flags&-3|4096,i=i.sibling;else{if(lr(),o===l){t=en(e,t,i);break e}tt(e,t,o,i)}t=t.child}return t;case 5:return dd(t),e===null&&fa(t),o=t.type,l=t.pendingProps,c=e!==null?e.memoizedProps:null,p=l.children,ra(o,l)?p=null:c!==null&&ra(o,c)&&(t.flags|=32),Gd(e,t),tt(e,t,p,i),t.child;case 6:return e===null&&fa(t),null;case 13:return Xd(e,t,i);case 4:return wa(t,t.stateNode.containerInfo),o=t.pendingProps,e===null?t.child=ur(t,null,o,i):tt(e,t,o,i),t.child;case 11:return o=t.type,l=t.pendingProps,l=t.elementType===o?l:Nt(o,l),bd(e,t,o,l,i);case 7:return tt(e,t,t.pendingProps,i),t.child;case 8:return tt(e,t,t.pendingProps.children,i),t.child;case 12:return tt(e,t,t.pendingProps.children,i),t.child;case 10:e:{if(o=t.type._context,l=t.pendingProps,c=t.memoizedProps,p=l.value,ke(us,o._currentValue),o._currentValue=p,c!==null)if(Et(c.value,p)){if(c.children===l.children&&!st.current){t=en(e,t,i);break e}}else for(c=t.child,c!==null&&(c.return=t);c!==null;){var S=c.dependencies;if(S!==null){p=c.child;for(var k=S.firstContext;k!==null;){if(k.context===o){if(c.tag===1){k=Jt(-1,i&-i),k.tag=2;var j=c.updateQueue;if(j!==null){j=j.shared;var F=j.pending;F===null?k.next=k:(k.next=F.next,F.next=k),j.pending=k}}c.lanes|=i,k=c.alternate,k!==null&&(k.lanes|=i),ya(c.return,i,t),S.lanes|=i;break}k=k.next}}else if(c.tag===10)p=c.type===t.type?null:c.child;else if(c.tag===18){if(p=c.return,p===null)throw Error(s(341));p.lanes|=i,S=p.alternate,S!==null&&(S.lanes|=i),ya(p,i,t),p=c.sibling}else p=c.child;if(p!==null)p.return=c;else for(p=c;p!==null;){if(p===t){p=null;break}if(c=p.sibling,c!==null){c.return=p.return,p=c;break}p=p.return}c=p}tt(e,t,l.children,i),t=t.child}return t;case 9:return l=t.type,o=t.pendingProps.children,dr(t,i),l=xt(l),o=o(l),t.flags|=1,tt(e,t,o,i),t.child;case 14:return o=t.type,l=Nt(o,t.pendingProps),l=Nt(o.type,l),Ud(e,t,o,l,i);case 15:return Wd(e,t,t.type,t.pendingProps,i);case 17:return o=t.type,l=t.pendingProps,l=t.elementType===o?l:Nt(o,l),Ss(e,t),t.tag=1,ot(o)?(e=!0,rs(t)):e=!1,dr(t,i),Fd(t,o,l),Ra(t,o,l,i),_a(null,t,o,!0,e,i);case 19:return qd(e,t,i);case 22:return Hd(e,t,i)}throw Error(s(156,t.tag))};function kf(e,t){return ec(e,t)}function Vy(e,t,i,o){this.tag=e,this.key=i,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=o,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function kt(e,t,i,o){return new Vy(e,t,i,o)}function rl(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Iy(e){if(typeof e=="function")return rl(e)?1:0;if(e!=null){if(e=e.$$typeof,e===xe)return 11;if(e===ze)return 14}return 2}function wn(e,t){var i=e.alternate;return i===null?(i=kt(e.tag,t,e.key,e.mode),i.elementType=e.elementType,i.type=e.type,i.stateNode=e.stateNode,i.alternate=e,e.alternate=i):(i.pendingProps=t,i.type=e.type,i.flags=0,i.subtreeFlags=0,i.deletions=null),i.flags=e.flags&14680064,i.childLanes=e.childLanes,i.lanes=e.lanes,i.child=e.child,i.memoizedProps=e.memoizedProps,i.memoizedState=e.memoizedState,i.updateQueue=e.updateQueue,t=e.dependencies,i.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},i.sibling=e.sibling,i.index=e.index,i.ref=e.ref,i}function Ls(e,t,i,o,l,c){var p=2;if(o=e,typeof e=="function")rl(e)&&(p=1);else if(typeof e=="string")p=5;else e:switch(e){case ae:return Bn(i.children,l,c,t);case J:p=8,l|=8;break;case re:return e=kt(12,i,t,l|2),e.elementType=re,e.lanes=c,e;case Ne:return e=kt(13,i,t,l),e.elementType=Ne,e.lanes=c,e;case Re:return e=kt(19,i,t,l),e.elementType=Re,e.lanes=c,e;case Me:return Rs(i,l,c,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case q:p=10;break e;case fe:p=9;break e;case xe:p=11;break e;case ze:p=14;break e;case Te:p=16,o=null;break e}throw Error(s(130,e==null?e:typeof e,""))}return t=kt(p,i,t,l),t.elementType=e,t.type=o,t.lanes=c,t}function Bn(e,t,i,o){return e=kt(7,e,o,t),e.lanes=i,e}function Rs(e,t,i,o){return e=kt(22,e,o,t),e.elementType=Me,e.lanes=i,e.stateNode={isHidden:!1},e}function il(e,t,i){return e=kt(6,e,null,t),e.lanes=i,e}function sl(e,t,i){return t=kt(4,e.children!==null?e.children:[],e.key,t),t.lanes=i,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function _y(e,t,i,o,l){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=Lo(0),this.expirationTimes=Lo(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Lo(0),this.identifierPrefix=o,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function ol(e,t,i,o,l,c,p,S,k){return e=new _y(e,t,i,S,k),t===1?(t=1,c===!0&&(t|=8)):t=0,c=kt(3,null,null,t),e.current=c,c.stateNode=e,c.memoizedState={element:o,isDehydrated:i,cache:null,transitions:null,pendingSuspenseBoundaries:null},xa(c),e}function zy(e,t,i){var o=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(r){console.error(r)}}return n(),fl.exports=Qy(),fl.exports}var If;function Zy(){if(If)return Bs;If=1;var n=qy();return Bs.createRoot=n.createRoot,Bs.hydrateRoot=n.hydrateRoot,Bs}var Jy=Zy();const e0=np(Jy),iu=_.createContext({});function su(n){const r=_.useRef(null);return r.current===null&&(r.current=n()),r.current}const t0=typeof window<"u",rp=t0?_.useLayoutEffect:_.useEffect,fo=_.createContext(null);function ou(n,r){n.indexOf(r)===-1&&n.push(r)}function to(n,r){const s=n.indexOf(r);s>-1&&n.splice(s,1)}const $t=(n,r,s)=>s>r?r:s{};const An={},ip=n=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(n);function sp(n){return typeof n=="object"&&n!==null}const op=n=>/^0[^.\s]+$/u.test(n);function ap(n){let r;return()=>(r===void 0&&(r=n()),r)}const Ct=n=>n,n0=(n,r)=>s=>r(n(s)),Pi=(...n)=>n.reduce(n0),ki=(n,r,s)=>{const a=r-n;return a===0?1:(s-n)/a};class lu{constructor(){this.subscriptions=[]}add(r){return ou(this.subscriptions,r),()=>to(this.subscriptions,r)}notify(r,s,a){const u=this.subscriptions.length;if(u)if(u===1)this.subscriptions[0](r,s,a);else for(let f=0;fn*1e3,Tt=n=>n/1e3;function lp(n,r){return r?n*(1e3/r):0}const up=(n,r,s)=>(((1-3*s+3*r)*n+(3*s-6*r))*n+3*r)*n,r0=1e-7,i0=12;function s0(n,r,s,a,u){let f,d,h=0;do d=r+(s-r)/2,f=up(d,a,u)-n,f>0?s=d:r=d;while(Math.abs(f)>r0&&++hs0(f,0,1,n,s);return f=>f===0||f===1?f:up(u(f),r,a)}const cp=n=>r=>r<=.5?n(2*r)/2:(2-n(2*(1-r)))/2,dp=n=>r=>1-n(1-r),fp=Ei(.33,1.53,.69,.99),uu=dp(fp),hp=cp(uu),pp=n=>n>=1?1:(n*=2)<1?.5*uu(n):.5*(2-Math.pow(2,-10*(n-1))),cu=n=>1-Math.sin(Math.acos(n)),mp=dp(cu),gp=cp(cu),o0=Ei(.42,0,1,1),a0=Ei(0,0,.58,1),yp=Ei(.42,0,.58,1),l0=n=>Array.isArray(n)&&typeof n[0]!="number",vp=n=>Array.isArray(n)&&typeof n[0]=="number",u0={linear:Ct,easeIn:o0,easeInOut:yp,easeOut:a0,circIn:cu,circInOut:gp,circOut:mp,backIn:uu,backInOut:hp,backOut:fp,anticipate:pp},c0=n=>typeof n=="string",_f=n=>{if(vp(n)){au(n.length===4);const[r,s,a,u]=n;return Ei(r,s,a,u)}else if(c0(n))return u0[n];return n},bs=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function d0(n,r){let s=new Set,a=new Set,u=!1,f=!1;const d=new WeakSet;let h={delta:0,timestamp:0,isProcessing:!1};function g(y){d.has(y)&&(x.schedule(y),n()),y(h)}const x={schedule:(y,v=!1,w=!1)=>{const N=w&&u?s:a;return v&&d.add(y),N.add(y),y},cancel:y=>{a.delete(y),d.delete(y)},process:y=>{if(h=y,u){f=!0;return}u=!0;const v=s;s=a,a=v,s.forEach(g),s.clear(),u=!1,f&&(f=!1,x.process(y))}};return x}const f0=40;function xp(n,r){let s=!1,a=!0;const u={delta:0,timestamp:0,isProcessing:!1},f=()=>s=!0,d=bs.reduce((B,b)=>(B[b]=d0(f),B),{}),{setup:h,read:g,resolveKeyframes:x,preUpdate:y,update:v,preRender:w,render:C,postRender:N}=d,D=()=>{const B=An.useManualTiming,b=B?u.timestamp:performance.now();s=!1,B||(u.delta=a?1e3/60:Math.max(Math.min(b-u.timestamp,f0),1)),u.timestamp=b,u.isProcessing=!0,h.process(u),g.process(u),x.process(u),y.process(u),v.process(u),w.process(u),C.process(u),N.process(u),u.isProcessing=!1,s&&r&&(a=!1,n(D))},M=()=>{s=!0,a=!0,u.isProcessing||n(D)};return{schedule:bs.reduce((B,b)=>{const G=d[b];return B[b]=(ie,ae=!1,J=!1)=>(s||M(),G.schedule(ie,ae,J)),B},{}),cancel:B=>{for(let b=0;b($s===void 0&&rt.set(Xe.isProcessing||An.useManualTiming?Xe.timestamp:performance.now()),$s),set:n=>{$s=n,queueMicrotask(h0)}},wp=n=>r=>typeof r=="string"&&r.startsWith(n),Sp=wp("--"),p0=wp("var(--"),du=n=>p0(n)?m0.test(n.split("/*")[0].trim()):!1,m0=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function zf(n){return typeof n!="string"?!1:n.split("/*")[0].includes("var(--")}const Er={test:n=>typeof n=="number",parse:parseFloat,transform:n=>n},Ti={...Er,transform:n=>$t(0,1,n)},Us={...Er,default:1},vi=n=>Math.round(n*1e5)/1e5,fu=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function g0(n){return n==null}const y0=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,hu=(n,r)=>s=>!!(typeof s=="string"&&y0.test(s)&&s.startsWith(n)||r&&!g0(s)&&Object.prototype.hasOwnProperty.call(s,r)),kp=(n,r,s)=>a=>{if(typeof a!="string")return a;const[u,f,d,h]=a.match(fu);return{[n]:parseFloat(u),[r]:parseFloat(f),[s]:parseFloat(d),alpha:h!==void 0?parseFloat(h):1}},v0=n=>$t(0,255,n),gl={...Er,transform:n=>Math.round(v0(n))},Wn={test:hu("rgb","red"),parse:kp("red","green","blue"),transform:({red:n,green:r,blue:s,alpha:a=1})=>"rgba("+gl.transform(n)+", "+gl.transform(r)+", "+gl.transform(s)+", "+vi(Ti.transform(a))+")"};function x0(n){let r="",s="",a="",u="";return n.length>5?(r=n.substring(1,3),s=n.substring(3,5),a=n.substring(5,7),u=n.substring(7,9)):(r=n.substring(1,2),s=n.substring(2,3),a=n.substring(3,4),u=n.substring(4,5),r+=r,s+=s,a+=a,u+=u),{red:parseInt(r,16),green:parseInt(s,16),blue:parseInt(a,16),alpha:u?parseInt(u,16)/255:1}}const Dl={test:hu("#"),parse:x0,transform:Wn.transform},ji=n=>({test:r=>typeof r=="string"&&r.endsWith(n)&&r.split(" ").length===1,parse:parseFloat,transform:r=>`${r}${n}`}),kn=ji("deg"),Kt=ji("%"),Y=ji("px"),w0=ji("vh"),S0=ji("vw"),Of={...Kt,parse:n=>Kt.parse(n)/100,transform:n=>Kt.transform(n*100)},wr={test:hu("hsl","hue"),parse:kp("hue","saturation","lightness"),transform:({hue:n,saturation:r,lightness:s,alpha:a=1})=>"hsla("+Math.round(n)+", "+Kt.transform(vi(r))+", "+Kt.transform(vi(s))+", "+vi(Ti.transform(a))+")"},Be={test:n=>Wn.test(n)||Dl.test(n)||wr.test(n),parse:n=>Wn.test(n)?Wn.parse(n):wr.test(n)?wr.parse(n):Dl.parse(n),transform:n=>typeof n=="string"?n:n.hasOwnProperty("red")?Wn.transform(n):wr.transform(n),getAnimatableNone:n=>{const r=Be.parse(n);return r.alpha=0,Be.transform(r)}},k0=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function T0(n){var r,s;return isNaN(n)&&typeof n=="string"&&(((r=n.match(fu))==null?void 0:r.length)||0)+(((s=n.match(k0))==null?void 0:s.length)||0)>0}const Tp="number",Cp="color",C0="var",A0="var(",Bf="${}",P0=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function Ar(n){const r=n.toString(),s=[],a={color:[],number:[],var:[]},u=[];let f=0;const h=r.replace(P0,g=>(Be.test(g)?(a.color.push(f),u.push(Cp),s.push(Be.parse(g))):g.startsWith(A0)?(a.var.push(f),u.push(C0),s.push(g)):(a.number.push(f),u.push(Tp),s.push(parseFloat(g))),++f,Bf)).split(Bf);return{values:s,split:h,indexes:a,types:u}}function E0(n){return Ar(n).values}function Ap({split:n,types:r}){const s=n.length;return a=>{let u="";for(let f=0;ftypeof n=="number"?0:Be.test(n)?Be.getAnimatableNone(n):n,M0=(n,r)=>typeof n=="number"?r!=null&&r.trim().endsWith("/")?n:0:N0(n);function D0(n){const r=Ar(n);return Ap(r)(r.values.map((a,u)=>M0(a,r.split[u])))}const It={test:T0,parse:E0,createTransformer:j0,getAnimatableNone:D0};function yl(n,r,s){return s<0&&(s+=1),s>1&&(s-=1),s<1/6?n+(r-n)*6*s:s<1/2?r:s<2/3?n+(r-n)*(2/3-s)*6:n}function L0({hue:n,saturation:r,lightness:s,alpha:a}){n/=360,r/=100,s/=100;let u=0,f=0,d=0;if(!r)u=f=d=s;else{const h=s<.5?s*(1+r):s+r-s*r,g=2*s-h;u=yl(g,h,n+1/3),f=yl(g,h,n),d=yl(g,h,n-1/3)}return{red:Math.round(u*255),green:Math.round(f*255),blue:Math.round(d*255),alpha:a}}function no(n,r){return s=>s>0?r:n}const Pe=(n,r,s)=>n+(r-n)*s,vl=(n,r,s)=>{const a=n*n,u=s*(r*r-a)+a;return u<0?0:Math.sqrt(u)},R0=[Dl,Wn,wr],F0=n=>R0.find(r=>r.test(n));function bf(n){const r=F0(n);if(!r)return!1;let s=r.parse(n);return r===wr&&(s=L0(s)),s}const Uf=(n,r)=>{const s=bf(n),a=bf(r);if(!s||!a)return no(n,r);const u={...s};return f=>(u.red=vl(s.red,a.red,f),u.green=vl(s.green,a.green,f),u.blue=vl(s.blue,a.blue,f),u.alpha=Pe(s.alpha,a.alpha,f),Wn.transform(u))},Ll=new Set(["none","hidden"]);function V0(n,r){return Ll.has(n)?s=>s<=0?n:r:s=>s>=1?r:n}function I0(n,r){return s=>Pe(n,r,s)}function pu(n){return typeof n=="number"?I0:typeof n=="string"?du(n)?no:Be.test(n)?Uf:O0:Array.isArray(n)?Pp:typeof n=="object"?Be.test(n)?Uf:_0:no}function Pp(n,r){const s=[...n],a=s.length,u=n.map((f,d)=>pu(f)(f,r[d]));return f=>{for(let d=0;d{for(const f in a)s[f]=a[f](u);return s}}function z0(n,r){const s=[],a={color:0,var:0,number:0};for(let u=0;u{const s=It.createTransformer(r),a=Ar(n),u=Ar(r);return a.indexes.var.length===u.indexes.var.length&&a.indexes.color.length===u.indexes.color.length&&a.indexes.number.length>=u.indexes.number.length?Ll.has(n)&&!u.values.length||Ll.has(r)&&!a.values.length?V0(n,r):Pi(Pp(z0(a,u),u.values),s):no(n,r)};function Ep(n,r,s){return typeof n=="number"&&typeof r=="number"&&typeof s=="number"?Pe(n,r,s):pu(n)(n,r)}const B0=n=>{const r=({timestamp:s})=>n(s);return{start:(s=!0)=>we.update(r,s),stop:()=>Pn(r),now:()=>Xe.isProcessing?Xe.timestamp:rt.now()}},jp=(n,r,s=10)=>{let a="";const u=Math.max(Math.round(r/s),2);for(let f=0;f=ro?1/0:r}function b0(n,r=100,s){const a=s({...n,keyframes:[0,r]}),u=Math.min(mu(a),ro);return{type:"keyframes",ease:f=>a.next(u*f).value/r,duration:Tt(u)}}const Ve={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1};function Rl(n,r){return n*Math.sqrt(1-r*r)}const U0=12;function W0(n,r,s){let a=s;for(let u=1;u{const y=x*d,v=y*n,w=y-s,C=Rl(x,d),N=Math.exp(-v);return xl-w/C*N},f=x=>{const v=x*d*n,w=v*s+s,C=Math.pow(d,2)*Math.pow(x,2)*n,N=Math.exp(-v),D=Rl(Math.pow(x,2),d);return(-u(x)+xl>0?-1:1)*((w-C)*N)/D}):(u=x=>{const y=Math.exp(-x*n),v=(x-s)*n+1;return-xl+y*v},f=x=>{const y=Math.exp(-x*n),v=(s-x)*(n*n);return y*v});const h=5/n,g=W0(u,f,h);if(n=gt(n),isNaN(g))return{stiffness:Ve.stiffness,damping:Ve.damping,duration:n};{const x=Math.pow(g,2)*a;return{stiffness:x,damping:d*2*Math.sqrt(a*x),duration:n}}}const G0=["duration","bounce"],K0=["stiffness","damping","mass"];function Wf(n,r){return r.some(s=>n[s]!==void 0)}function $0(n){let r={velocity:Ve.velocity,stiffness:Ve.stiffness,damping:Ve.damping,mass:Ve.mass,isResolvedFromDuration:!1,...n};if(!Wf(n,K0)&&Wf(n,G0))if(r.velocity=0,n.visualDuration){const s=n.visualDuration,a=2*Math.PI/(s*1.2),u=a*a,f=2*$t(.05,1,1-(n.bounce||0))*Math.sqrt(u);r={...r,mass:Ve.mass,stiffness:u,damping:f}}else{const s=H0({...n,velocity:0});r={...r,...s,mass:Ve.mass},r.isResolvedFromDuration=!0}return r}function io(n=Ve.visualDuration,r=Ve.bounce){const s=typeof n!="object"?{visualDuration:n,keyframes:[0,1],bounce:r}:n;let{restSpeed:a,restDelta:u}=s;const f=s.keyframes[0],d=s.keyframes[s.keyframes.length-1],h={done:!1,value:f},{stiffness:g,damping:x,mass:y,duration:v,velocity:w,isResolvedFromDuration:C}=$0({...s,velocity:-Tt(s.velocity||0)}),N=w||0,D=x/(2*Math.sqrt(g*y)),M=d-f,I=Tt(Math.sqrt(g/y)),U=Math.abs(M)<5;a||(a=U?Ve.restSpeed.granular:Ve.restSpeed.default),u||(u=U?Ve.restDelta.granular:Ve.restDelta.default);let B,b,G,ie,ae,J;if(D<1)G=Rl(I,D),ie=(N+D*I*M)/G,B=q=>{const fe=Math.exp(-D*I*q);return d-fe*(ie*Math.sin(G*q)+M*Math.cos(G*q))},ae=D*I*ie+M*G,J=D*I*M-ie*G,b=q=>Math.exp(-D*I*q)*(ae*Math.sin(G*q)+J*Math.cos(G*q));else if(D===1){B=fe=>d-Math.exp(-I*fe)*(M+(N+I*M)*fe);const q=N+I*M;b=fe=>Math.exp(-I*fe)*(I*q*fe-N)}else{const q=I*Math.sqrt(D*D-1);B=Re=>{const ze=Math.exp(-D*I*Re),Te=Math.min(q*Re,300);return d-ze*((N+D*I*M)*Math.sinh(Te)+q*M*Math.cosh(Te))/q};const fe=(N+D*I*M)/q,xe=D*I*fe-M*q,Ne=D*I*M-fe*q;b=Re=>{const ze=Math.exp(-D*I*Re),Te=Math.min(q*Re,300);return ze*(xe*Math.sinh(Te)+Ne*Math.cosh(Te))}}const re={calculatedDuration:C&&v||null,velocity:q=>gt(b(q)),next:q=>{if(!C&&D<1){const xe=Math.exp(-D*I*q),Ne=Math.sin(G*q),Re=Math.cos(G*q),ze=d-xe*(ie*Ne+M*Re),Te=gt(xe*(ae*Ne+J*Re));return h.done=Math.abs(Te)<=a&&Math.abs(d-ze)<=u,h.value=h.done?d:ze,h}const fe=B(q);if(C)h.done=q>=v;else{const xe=gt(b(q));h.done=Math.abs(xe)<=a&&Math.abs(d-fe)<=u}return h.value=h.done?d:fe,h},toString:()=>{const q=Math.min(mu(re),ro),fe=jp(xe=>re.next(q*xe).value,q,30);return q+"ms "+fe},toTransition:()=>{}};return re}io.applyToOptions=n=>{const r=b0(n,100,io);return n.ease=r.ease,n.duration=gt(r.duration),n.type="keyframes",n};const Y0=5;function Np(n,r,s){const a=Math.max(r-Y0,0);return lp(s-n(a),r-a)}function Fl({keyframes:n,velocity:r=0,power:s=.8,timeConstant:a=325,bounceDamping:u=10,bounceStiffness:f=500,modifyTarget:d,min:h,max:g,restDelta:x=.5,restSpeed:y}){const v=n[0],w={done:!1,value:v},C=J=>h!==void 0&&Jg,N=J=>h===void 0?g:g===void 0||Math.abs(h-J)-D*Math.exp(-J/a),B=J=>I+U(J),b=J=>{const re=U(J),q=B(J);w.done=Math.abs(re)<=x,w.value=w.done?I:q};let G,ie;const ae=J=>{C(w.value)&&(G=J,ie=io({keyframes:[w.value,N(w.value)],velocity:Np(B,J,w.value),damping:u,stiffness:f,restDelta:x,restSpeed:y}))};return ae(0),{calculatedDuration:null,next:J=>{let re=!1;return!ie&&G===void 0&&(re=!0,b(J),ae(J)),G!==void 0&&J>=G?ie.next(J-G):(!re&&b(J),w)}}}function X0(n,r,s){const a=[],u=s||An.mix||Ep,f=n.length-1;for(let d=0;dr[0];if(f===2&&r[0]===r[1])return()=>r[1];const d=n[0]===n[1];n[0]>n[f-1]&&(n=[...n].reverse(),r=[...r].reverse());const h=X0(r,a,u),g=h.length,x=y=>{if(d&&y1)for(;vx($t(n[0],n[f-1],y)):x}function q0(n,r){const s=n[n.length-1];for(let a=1;a<=r;a++){const u=ki(0,r,a);n.push(Pe(s,1,u))}}function Z0(n){const r=[0];return q0(r,n.length-1),r}function J0(n,r){return n.map(s=>s*r)}function ev(n,r){return n.map(()=>r||yp).splice(0,n.length-1)}function xi({duration:n=300,keyframes:r,times:s,ease:a="easeInOut"}){const u=l0(a)?a.map(_f):_f(a),f={done:!1,value:r[0]},d=J0(s&&s.length===r.length?s:Z0(r),n),h=Q0(d,r,{ease:Array.isArray(u)?u:ev(r,u)});return{calculatedDuration:n,next:g=>(f.value=h(g),f.done=g>=n,f)}}const tv=n=>n!==null;function ho(n,{repeat:r,repeatType:s="loop"},a,u=1){const f=n.filter(tv),h=u<0||r&&s!=="loop"&&r%2===1?0:f.length-1;return!h||a===void 0?f[h]:a}const nv={decay:Fl,inertia:Fl,tween:xi,keyframes:xi,spring:io};function Mp(n){typeof n.type=="string"&&(n.type=nv[n.type])}class gu{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(r=>{this.resolve=r})}notifyFinished(){this.resolve()}then(r,s){return this.finished.then(r,s)}}const rv=n=>n/100;class so extends gu{constructor(r){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{var a,u;const{motionValue:s}=this.options;s&&s.updatedAt!==rt.now()&&this.tick(rt.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),(u=(a=this.options).onStop)==null||u.call(a))},this.options=r,this.initAnimation(),this.play(),r.autoplay===!1&&this.pause()}initAnimation(){const{options:r}=this;Mp(r);const{type:s=xi,repeat:a=0,repeatDelay:u=0,repeatType:f,velocity:d=0}=r;let{keyframes:h}=r;const g=s||xi;g!==xi&&typeof h[0]!="number"&&(this.mixKeyframes=Pi(rv,Ep(h[0],h[1])),h=[0,100]);const x=g({...r,keyframes:h});f==="mirror"&&(this.mirroredGenerator=g({...r,keyframes:[...h].reverse(),velocity:-d})),x.calculatedDuration===null&&(x.calculatedDuration=mu(x));const{calculatedDuration:y}=x;this.calculatedDuration=y,this.resolvedDuration=y+u,this.totalDuration=this.resolvedDuration*(a+1)-u,this.generator=x}updateTime(r){const s=Math.round(r-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=s}tick(r,s=!1){const{generator:a,totalDuration:u,mixKeyframes:f,mirroredGenerator:d,resolvedDuration:h,calculatedDuration:g}=this;if(this.startTime===null)return a.next(0);const{delay:x=0,keyframes:y,repeat:v,repeatType:w,repeatDelay:C,type:N,onUpdate:D,finalKeyframe:M}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,r):this.speed<0&&(this.startTime=Math.min(r-u/this.speed,this.startTime)),s?this.currentTime=r:this.updateTime(r);const I=this.currentTime-x*(this.playbackSpeed>=0?1:-1),U=this.playbackSpeed>=0?I<0:I>u;this.currentTime=Math.max(I,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=u);let B=this.currentTime,b=a;if(v){const J=Math.min(this.currentTime,u)/h;let re=Math.floor(J),q=J%1;!q&&J>=1&&(q=1),q===1&&re--,re=Math.min(re,v+1),!!(re%2)&&(w==="reverse"?(q=1-q,C&&(q-=C/h)):w==="mirror"&&(b=d)),B=$t(0,1,q)*h}let G;U?(this.delayState.value=y[0],G=this.delayState):G=b.next(B),f&&!U&&(G.value=f(G.value));let{done:ie}=G;!U&&g!==null&&(ie=this.playbackSpeed>=0?this.currentTime>=u:this.currentTime<=0);const ae=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&ie);return ae&&N!==Fl&&(G.value=ho(y,this.options,M,this.speed)),D&&D(G.value),ae&&this.finish(),G}then(r,s){return this.finished.then(r,s)}get duration(){return Tt(this.calculatedDuration)}get iterationDuration(){const{delay:r=0}=this.options||{};return this.duration+Tt(r)}get time(){return Tt(this.currentTime)}set time(r){r=gt(r),this.currentTime=r,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=r:this.driver&&(this.startTime=this.driver.now()-r/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=r,this.tick(r))}getGeneratorVelocity(){const r=this.currentTime;if(r<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(r);const s=this.generator.next(r).value;return Np(a=>this.generator.next(a).value,r,s)}get speed(){return this.playbackSpeed}set speed(r){const s=this.playbackSpeed!==r;s&&this.driver&&this.updateTime(rt.now()),this.playbackSpeed=r,s&&this.driver&&(this.time=Tt(this.currentTime))}play(){var u,f;if(this.isStopped)return;const{driver:r=B0,startTime:s}=this.options;this.driver||(this.driver=r(d=>this.tick(d))),(f=(u=this.options).onPlay)==null||f.call(u);const a=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=a):this.holdTime!==null?this.startTime=a-this.holdTime:this.startTime||(this.startTime=s??a),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(rt.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){var r,s;this.notifyFinished(),this.teardown(),this.state="finished",(s=(r=this.options).onComplete)==null||s.call(r)}cancel(){var r,s;this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),(s=(r=this.options).onCancel)==null||s.call(r)}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(r){return this.startTime=0,this.tick(r,!0)}attachTimeline(r){var s;return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),(s=this.driver)==null||s.stop(),r.observe(this)}}function iv(n){for(let r=1;rn*180/Math.PI,Vl=n=>{const r=Hn(Math.atan2(n[1],n[0]));return Il(r)},sv={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:n=>(Math.abs(n[0])+Math.abs(n[3]))/2,rotate:Vl,rotateZ:Vl,skewX:n=>Hn(Math.atan(n[1])),skewY:n=>Hn(Math.atan(n[2])),skew:n=>(Math.abs(n[1])+Math.abs(n[2]))/2},Il=n=>(n=n%360,n<0&&(n+=360),n),Hf=Vl,Gf=n=>Math.sqrt(n[0]*n[0]+n[1]*n[1]),Kf=n=>Math.sqrt(n[4]*n[4]+n[5]*n[5]),ov={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:Gf,scaleY:Kf,scale:n=>(Gf(n)+Kf(n))/2,rotateX:n=>Il(Hn(Math.atan2(n[6],n[5]))),rotateY:n=>Il(Hn(Math.atan2(-n[2],n[0]))),rotateZ:Hf,rotate:Hf,skewX:n=>Hn(Math.atan(n[4])),skewY:n=>Hn(Math.atan(n[1])),skew:n=>(Math.abs(n[1])+Math.abs(n[4]))/2};function _l(n){return n.includes("scale")?1:0}function zl(n,r){if(!n||n==="none")return _l(r);const s=n.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let a,u;if(s)a=ov,u=s;else{const h=n.match(/^matrix\(([-\d.e\s,]+)\)$/u);a=sv,u=h}if(!u)return _l(r);const f=a[r],d=u[1].split(",").map(lv);return typeof f=="function"?f(d):d[f]}const av=(n,r)=>{const{transform:s="none"}=getComputedStyle(n);return zl(s,r)};function lv(n){return parseFloat(n.trim())}const jr=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Nr=new Set(jr),$f=n=>n===Er||n===Y,uv=new Set(["x","y","z"]),cv=jr.filter(n=>!uv.has(n));function dv(n){const r=[];return cv.forEach(s=>{const a=n.getValue(s);a!==void 0&&(r.push([s,a.get()]),a.set(s.startsWith("scale")?1:0))}),r}const Cn={width:({x:n},{paddingLeft:r="0",paddingRight:s="0",boxSizing:a})=>{const u=n.max-n.min;return a==="border-box"?u:u-parseFloat(r)-parseFloat(s)},height:({y:n},{paddingTop:r="0",paddingBottom:s="0",boxSizing:a})=>{const u=n.max-n.min;return a==="border-box"?u:u-parseFloat(r)-parseFloat(s)},top:(n,{top:r})=>parseFloat(r),left:(n,{left:r})=>parseFloat(r),bottom:({y:n},{top:r})=>parseFloat(r)+(n.max-n.min),right:({x:n},{left:r})=>parseFloat(r)+(n.max-n.min),x:(n,{transform:r})=>zl(r,"x"),y:(n,{transform:r})=>zl(r,"y")};Cn.translateX=Cn.x;Cn.translateY=Cn.y;const Gn=new Set;let Ol=!1,Bl=!1,bl=!1;function Dp(){if(Bl){const n=Array.from(Gn).filter(a=>a.needsMeasurement),r=new Set(n.map(a=>a.element)),s=new Map;r.forEach(a=>{const u=dv(a);u.length&&(s.set(a,u),a.render())}),n.forEach(a=>a.measureInitialState()),r.forEach(a=>{a.render();const u=s.get(a);u&&u.forEach(([f,d])=>{var h;(h=a.getValue(f))==null||h.set(d)})}),n.forEach(a=>a.measureEndState()),n.forEach(a=>{a.suspendedScrollY!==void 0&&window.scrollTo(0,a.suspendedScrollY)})}Bl=!1,Ol=!1,Gn.forEach(n=>n.complete(bl)),Gn.clear()}function Lp(){Gn.forEach(n=>{n.readKeyframes(),n.needsMeasurement&&(Bl=!0)})}function fv(){bl=!0,Lp(),Dp(),bl=!1}class yu{constructor(r,s,a,u,f,d=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...r],this.onComplete=s,this.name=a,this.motionValue=u,this.element=f,this.isAsync=d}scheduleResolve(){this.state="scheduled",this.isAsync?(Gn.add(this),Ol||(Ol=!0,we.read(Lp),we.resolveKeyframes(Dp))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:r,name:s,element:a,motionValue:u}=this;if(r[0]===null){const f=u==null?void 0:u.get(),d=r[r.length-1];if(f!==void 0)r[0]=f;else if(a&&s){const h=a.readValue(s,d);h!=null&&(r[0]=h)}r[0]===void 0&&(r[0]=d),u&&f===void 0&&u.set(r[0])}iv(r)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(r=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,r),Gn.delete(this)}cancel(){this.state==="scheduled"&&(Gn.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const hv=n=>n.startsWith("--");function Rp(n,r,s){hv(r)?n.style.setProperty(r,s):n.style[r]=s}const pv={};function Fp(n,r){const s=ap(n);return()=>pv[r]??s()}const mv=Fp(()=>window.ScrollTimeline!==void 0,"scrollTimeline"),Vp=Fp(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),yi=([n,r,s,a])=>`cubic-bezier(${n}, ${r}, ${s}, ${a})`,Yf={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:yi([0,.65,.55,1]),circOut:yi([.55,0,1,.45]),backIn:yi([.31,.01,.66,-.59]),backOut:yi([.33,1.53,.69,.99])};function Ip(n,r){if(n)return typeof n=="function"?Vp()?jp(n,r):"ease-out":vp(n)?yi(n):Array.isArray(n)?n.map(s=>Ip(s,r)||Yf.easeOut):Yf[n]}function gv(n,r,s,{delay:a=0,duration:u=300,repeat:f=0,repeatType:d="loop",ease:h="easeOut",times:g}={},x=void 0){const y={[r]:s};g&&(y.offset=g);const v=Ip(h,u);Array.isArray(v)&&(y.easing=v);const w={delay:a,duration:u,easing:Array.isArray(v)?"linear":v,fill:"both",iterations:f+1,direction:d==="reverse"?"alternate":"normal"};return x&&(w.pseudoElement=x),n.animate(y,w)}function _p(n){return typeof n=="function"&&"applyToOptions"in n}function yv({type:n,...r}){return _p(n)&&Vp()?n.applyToOptions(r):(r.duration??(r.duration=300),r.ease??(r.ease="easeOut"),r)}class zp extends gu{constructor(r){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!r)return;const{element:s,name:a,keyframes:u,pseudoElement:f,allowFlatten:d=!1,finalKeyframe:h,onComplete:g}=r;this.isPseudoElement=!!f,this.allowFlatten=d,this.options=r,au(typeof r.type!="string");const x=yv(r);this.animation=gv(s,a,u,x,f),x.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!f){const y=ho(u,this.options,h,this.speed);this.updateMotionValue&&this.updateMotionValue(y),Rp(s,a,y),this.animation.cancel()}g==null||g(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){var r,s;(s=(r=this.animation).finish)==null||s.call(r)}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:r}=this;r==="idle"||r==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){var s,a,u;const r=(s=this.options)==null?void 0:s.element;!this.isPseudoElement&&(r!=null&&r.isConnected)&&((u=(a=this.animation).commitStyles)==null||u.call(a))}get duration(){var s,a;const r=((a=(s=this.animation.effect)==null?void 0:s.getComputedTiming)==null?void 0:a.call(s).duration)||0;return Tt(Number(r))}get iterationDuration(){const{delay:r=0}=this.options||{};return this.duration+Tt(r)}get time(){return Tt(Number(this.animation.currentTime)||0)}set time(r){const s=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=gt(r),s&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(r){r<0&&(this.finishedTime=null),this.animation.playbackRate=r}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(r){this.manualStartTime=this.animation.startTime=r}attachTimeline({timeline:r,rangeStart:s,rangeEnd:a,observe:u}){var f;return this.allowFlatten&&((f=this.animation.effect)==null||f.updateTiming({easing:"linear"})),this.animation.onfinish=null,r&&mv()?(this.animation.timeline=r,s&&(this.animation.rangeStart=s),a&&(this.animation.rangeEnd=a),Ct):u(this)}}const Op={anticipate:pp,backInOut:hp,circInOut:gp};function vv(n){return n in Op}function xv(n){typeof n.ease=="string"&&vv(n.ease)&&(n.ease=Op[n.ease])}const wl=10;class wv extends zp{constructor(r){xv(r),Mp(r),super(r),r.startTime!==void 0&&r.autoplay!==!1&&(this.startTime=r.startTime),this.options=r}updateMotionValue(r){const{motionValue:s,onUpdate:a,onComplete:u,element:f,...d}=this.options;if(!s)return;if(r!==void 0){s.set(r);return}const h=new so({...d,autoplay:!1}),g=Math.max(wl,rt.now()-this.startTime),x=$t(0,wl,g-wl),y=h.sample(g).value,{name:v}=this.options;f&&v&&Rp(f,v,y),s.setWithVelocity(h.sample(Math.max(0,g-x)).value,y,x),h.stop()}}const Xf=(n,r)=>r==="zIndex"?!1:!!(typeof n=="number"||Array.isArray(n)||typeof n=="string"&&(It.test(n)||n==="0")&&!n.startsWith("url("));function Sv(n){const r=n[0];if(n.length===1)return!0;for(let s=0;sObject.hasOwnProperty.call(Element.prototype,"animate"));function Ev(n){var v;const{motionValue:r,name:s,repeatDelay:a,repeatType:u,damping:f,type:d,keyframes:h}=n;if(!(((v=r==null?void 0:r.owner)==null?void 0:v.current)instanceof HTMLElement))return!1;const{onUpdate:x,transformTemplate:y}=r.owner.getProps();return Pv()&&s&&(Bp.has(s)||Av.has(s)&&Cv(h))&&(s!=="transform"||!y)&&!x&&!a&&u!=="mirror"&&f!==0&&d!=="inertia"}const jv=40;class Nv extends gu{constructor({autoplay:r=!0,delay:s=0,type:a="keyframes",repeat:u=0,repeatDelay:f=0,repeatType:d="loop",keyframes:h,name:g,motionValue:x,element:y,...v}){var N;super(),this.stop=()=>{var D,M;this._animation&&(this._animation.stop(),(D=this.stopTimeline)==null||D.call(this)),(M=this.keyframeResolver)==null||M.cancel()},this.createdAt=rt.now();const w={autoplay:r,delay:s,type:a,repeat:u,repeatDelay:f,repeatType:d,name:g,motionValue:x,element:y,...v},C=(y==null?void 0:y.KeyframeResolver)||yu;this.keyframeResolver=new C(h,(D,M,I)=>this.onKeyframesResolved(D,M,w,!I),g,x,y),(N=this.keyframeResolver)==null||N.scheduleResolve()}onKeyframesResolved(r,s,a,u){var I,U;this.keyframeResolver=void 0;const{name:f,type:d,velocity:h,delay:g,isHandoff:x,onUpdate:y}=a;this.resolvedAt=rt.now();let v=!0;kv(r,f,d,h)||(v=!1,(An.instantAnimations||!g)&&(y==null||y(ho(r,a,s))),r[0]=r[r.length-1],Ul(a),a.repeat=0);const C={startTime:u?this.resolvedAt?this.resolvedAt-this.createdAt>jv?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:s,...a,keyframes:r},N=v&&!x&&Ev(C),D=(U=(I=C.motionValue)==null?void 0:I.owner)==null?void 0:U.current;let M;if(N)try{M=new wv({...C,element:D})}catch{M=new so(C)}else M=new so(C);M.finished.then(()=>{this.notifyFinished()}).catch(Ct),this.pendingTimeline&&(this.stopTimeline=M.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=M}get finished(){return this._animation?this.animation.finished:this._finished}then(r,s){return this.finished.finally(r).then(()=>{})}get animation(){var r;return this._animation||((r=this.keyframeResolver)==null||r.resume(),fv()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(r){this.animation.time=r}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(r){this.animation.speed=r}get startTime(){return this.animation.startTime}attachTimeline(r){return this._animation?this.stopTimeline=this.animation.attachTimeline(r):this.pendingTimeline=r,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){var r;this._animation&&this.animation.cancel(),(r=this.keyframeResolver)==null||r.cancel()}}function bp(n,r,s,a=0,u=1){const f=Array.from(n).sort((x,y)=>x.sortNodePosition(y)).indexOf(r),d=n.size,h=(d-1)*a;return typeof s=="function"?s(f,d):u===1?f*a:h-f*a}const Mv=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function Dv(n){const r=Mv.exec(n);if(!r)return[,];const[,s,a,u]=r;return[`--${s??a}`,u]}function Up(n,r,s=1){const[a,u]=Dv(n);if(!a)return;const f=window.getComputedStyle(r).getPropertyValue(a);if(f){const d=f.trim();return ip(d)?parseFloat(d):d}return du(u)?Up(u,r,s+1):u}const Lv={type:"spring",stiffness:500,damping:25,restSpeed:10},Rv=n=>({type:"spring",stiffness:550,damping:n===0?2*Math.sqrt(550):30,restSpeed:10}),Fv={type:"keyframes",duration:.8},Vv={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},Iv=(n,{keyframes:r})=>r.length>2?Fv:Nr.has(n)?n.startsWith("scale")?Rv(r[1]):Lv:Vv;function Wp(n,r){if(n!=null&&n.inherit&&r){const{inherit:s,...a}=n;return{...r,...a}}return n}function vu(n,r){const s=(n==null?void 0:n[r])??(n==null?void 0:n.default)??n;return s!==n?Wp(s,n):s}const _v=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed"]);function zv(n){for(const r in n)if(!_v.has(r))return!0;return!1}const xu=(n,r,s,a={},u,f)=>d=>{const h=vu(a,n)||{},g=h.delay||a.delay||0;let{elapsed:x=0}=a;x=x-gt(g);const y={keyframes:Array.isArray(s)?s:[null,s],ease:"easeOut",velocity:r.getVelocity(),...h,delay:-x,onUpdate:w=>{r.set(w),h.onUpdate&&h.onUpdate(w)},onComplete:()=>{d(),h.onComplete&&h.onComplete()},name:n,motionValue:r,element:f?void 0:u};zv(h)||Object.assign(y,Iv(n,y)),y.duration&&(y.duration=gt(y.duration)),y.repeatDelay&&(y.repeatDelay=gt(y.repeatDelay)),y.from!==void 0&&(y.keyframes[0]=y.from);let v=!1;if((y.type===!1||y.duration===0&&!y.repeatDelay)&&(Ul(y),y.delay===0&&(v=!0)),(An.instantAnimations||An.skipAnimations||u!=null&&u.shouldSkipAnimations)&&(v=!0,Ul(y),y.delay=0),y.allowFlatten=!h.type&&!h.ease,v&&!f&&r.get()!==void 0){const w=ho(y.keyframes,h);if(w!==void 0){we.update(()=>{y.onUpdate(w),y.onComplete()});return}}return h.isSync?new so(y):new Nv(y)};function Qf(n){const r=[{},{}];return n==null||n.values.forEach((s,a)=>{r[0][a]=s.get(),r[1][a]=s.getVelocity()}),r}function wu(n,r,s,a){if(typeof r=="function"){const[u,f]=Qf(a);r=r(s!==void 0?s:n.custom,u,f)}if(typeof r=="string"&&(r=n.variants&&n.variants[r]),typeof r=="function"){const[u,f]=Qf(a);r=r(s!==void 0?s:n.custom,u,f)}return r}function Kn(n,r,s){const a=n.getProps();return wu(a,r,s!==void 0?s:a.custom,n)}const Hp=new Set(["width","height","top","left","right","bottom",...jr]),qf=30,Ov=n=>!isNaN(parseFloat(n));class Bv{constructor(r,s={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=a=>{var f;const u=rt.now();if(this.updatedAt!==u&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(a),this.current!==this.prev&&((f=this.events.change)==null||f.notify(this.current),this.dependents))for(const d of this.dependents)d.dirty()},this.hasAnimated=!1,this.setCurrent(r),this.owner=s.owner}setCurrent(r){this.current=r,this.updatedAt=rt.now(),this.canTrackVelocity===null&&r!==void 0&&(this.canTrackVelocity=Ov(this.current))}setPrevFrameValue(r=this.current){this.prevFrameValue=r,this.prevUpdatedAt=this.updatedAt}onChange(r){return this.on("change",r)}on(r,s){this.events[r]||(this.events[r]=new lu);const a=this.events[r].add(s);return r==="change"?()=>{a(),we.read(()=>{this.events.change.getSize()||this.stop()})}:a}clearListeners(){for(const r in this.events)this.events[r].clear()}attach(r,s){this.passiveEffect=r,this.stopPassiveEffect=s}set(r){this.passiveEffect?this.passiveEffect(r,this.updateAndNotify):this.updateAndNotify(r)}setWithVelocity(r,s,a){this.set(s),this.prev=void 0,this.prevFrameValue=r,this.prevUpdatedAt=this.updatedAt-a}jump(r,s=!0){this.updateAndNotify(r),this.prev=r,this.prevUpdatedAt=this.prevFrameValue=void 0,s&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){var r;(r=this.events.change)==null||r.notify(this.current)}addDependent(r){this.dependents||(this.dependents=new Set),this.dependents.add(r)}removeDependent(r){this.dependents&&this.dependents.delete(r)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const r=rt.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||r-this.updatedAt>qf)return 0;const s=Math.min(this.updatedAt-this.prevUpdatedAt,qf);return lp(parseFloat(this.current)-parseFloat(this.prevFrameValue),s)}start(r){return this.stop(),new Promise(s=>{this.hasAnimated=!0,this.animation=r(s),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(){var r,s;(r=this.dependents)==null||r.clear(),(s=this.events.destroy)==null||s.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Pr(n,r){return new Bv(n,r)}const Wl=n=>Array.isArray(n);function bv(n,r,s){n.hasValue(r)?n.getValue(r).set(s):n.addValue(r,Pr(s))}function Uv(n){return Wl(n)?n[n.length-1]||0:n}function Wv(n,r){const s=Kn(n,r);let{transitionEnd:a={},transition:u={},...f}=s||{};f={...f,...a};for(const d in f){const h=Uv(f[d]);bv(n,d,h)}}const Qe=n=>!!(n&&n.getVelocity);function Hv(n){return!!(Qe(n)&&n.add)}function Hl(n,r){const s=n.getValue("willChange");if(Hv(s))return s.add(r);if(!s&&An.WillChange){const a=new An.WillChange("auto");n.addValue("willChange",a),a.add(r)}}function Su(n){return n.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}const Gv="framerAppearId",Gp="data-"+Su(Gv);function Kp(n){return n.props[Gp]}function Kv({protectedKeys:n,needsAnimating:r},s){const a=n.hasOwnProperty(s)&&r[s]!==!0;return r[s]=!1,a}function $p(n,r,{delay:s=0,transitionOverride:a,type:u}={}){let{transition:f,transitionEnd:d,...h}=r;const g=n.getDefaultTransition();f=f?Wp(f,g):g;const x=f==null?void 0:f.reduceMotion;a&&(f=a);const y=[],v=u&&n.animationState&&n.animationState.getState()[u];for(const w in h){const C=n.getValue(w,n.latestValues[w]??null),N=h[w];if(N===void 0||v&&Kv(v,w))continue;const D={delay:s,...vu(f||{},w)},M=C.get();if(M!==void 0&&!C.isAnimating()&&!Array.isArray(N)&&N===M&&!D.velocity){we.update(()=>C.set(N));continue}let I=!1;if(window.MotionHandoffAnimation){const b=Kp(n);if(b){const G=window.MotionHandoffAnimation(b,w,we);G!==null&&(D.startTime=G,I=!0)}}Hl(n,w);const U=x??n.shouldReduceMotion;C.start(xu(w,C,N,U&&Hp.has(w)?{type:!1}:D,n,I));const B=C.animation;B&&y.push(B)}if(d){const w=()=>we.update(()=>{d&&Wv(n,d)});y.length?Promise.all(y).then(w):w()}return y}function Gl(n,r,s={}){var g;const a=Kn(n,r,s.type==="exit"?(g=n.presenceContext)==null?void 0:g.custom:void 0);let{transition:u=n.getDefaultTransition()||{}}=a||{};s.transitionOverride&&(u=s.transitionOverride);const f=a?()=>Promise.all($p(n,a,s)):()=>Promise.resolve(),d=n.variantChildren&&n.variantChildren.size?(x=0)=>{const{delayChildren:y=0,staggerChildren:v,staggerDirection:w}=u;return $v(n,r,x,y,v,w,s)}:()=>Promise.resolve(),{when:h}=u;if(h){const[x,y]=h==="beforeChildren"?[f,d]:[d,f];return x().then(()=>y())}else return Promise.all([f(),d(s.delay)])}function $v(n,r,s=0,a=0,u=0,f=1,d){const h=[];for(const g of n.variantChildren)g.notify("AnimationStart",r),h.push(Gl(g,r,{...d,delay:s+(typeof a=="function"?0:a)+bp(n.variantChildren,g,a,u,f)}).then(()=>g.notify("AnimationComplete",r)));return Promise.all(h)}function Yv(n,r,s={}){n.notify("AnimationStart",r);let a;if(Array.isArray(r)){const u=r.map(f=>Gl(n,f,s));a=Promise.all(u)}else if(typeof r=="string")a=Gl(n,r,s);else{const u=typeof r=="function"?Kn(n,r,s.custom):r;a=Promise.all($p(n,u,s))}return a.then(()=>{n.notify("AnimationComplete",r)})}const Xv={test:n=>n==="auto",parse:n=>n},Yp=n=>r=>r.test(n),Xp=[Er,Y,Kt,kn,S0,w0,Xv],Zf=n=>Xp.find(Yp(n));function Qv(n){return typeof n=="number"?n===0:n!==null?n==="none"||n==="0"||op(n):!0}const qv=new Set(["brightness","contrast","saturate","opacity"]);function Zv(n){const[r,s]=n.slice(0,-1).split("(");if(r==="drop-shadow")return n;const[a]=s.match(fu)||[];if(!a)return n;const u=s.replace(a,"");let f=qv.has(r)?1:0;return a!==s&&(f*=100),r+"("+f+u+")"}const Jv=/\b([a-z-]*)\(.*?\)/gu,Kl={...It,getAnimatableNone:n=>{const r=n.match(Jv);return r?r.map(Zv).join(" "):n}},$l={...It,getAnimatableNone:n=>{const r=It.parse(n);return It.createTransformer(n)(r.map(a=>typeof a=="number"?0:typeof a=="object"?{...a,alpha:1}:a))}},Jf={...Er,transform:Math.round},ex={rotate:kn,rotateX:kn,rotateY:kn,rotateZ:kn,scale:Us,scaleX:Us,scaleY:Us,scaleZ:Us,skew:kn,skewX:kn,skewY:kn,distance:Y,translateX:Y,translateY:Y,translateZ:Y,x:Y,y:Y,z:Y,perspective:Y,transformPerspective:Y,opacity:Ti,originX:Of,originY:Of,originZ:Y},ku={borderWidth:Y,borderTopWidth:Y,borderRightWidth:Y,borderBottomWidth:Y,borderLeftWidth:Y,borderRadius:Y,borderTopLeftRadius:Y,borderTopRightRadius:Y,borderBottomRightRadius:Y,borderBottomLeftRadius:Y,width:Y,maxWidth:Y,height:Y,maxHeight:Y,top:Y,right:Y,bottom:Y,left:Y,inset:Y,insetBlock:Y,insetBlockStart:Y,insetBlockEnd:Y,insetInline:Y,insetInlineStart:Y,insetInlineEnd:Y,padding:Y,paddingTop:Y,paddingRight:Y,paddingBottom:Y,paddingLeft:Y,paddingBlock:Y,paddingBlockStart:Y,paddingBlockEnd:Y,paddingInline:Y,paddingInlineStart:Y,paddingInlineEnd:Y,margin:Y,marginTop:Y,marginRight:Y,marginBottom:Y,marginLeft:Y,marginBlock:Y,marginBlockStart:Y,marginBlockEnd:Y,marginInline:Y,marginInlineStart:Y,marginInlineEnd:Y,fontSize:Y,backgroundPositionX:Y,backgroundPositionY:Y,...ex,zIndex:Jf,fillOpacity:Ti,strokeOpacity:Ti,numOctaves:Jf},tx={...ku,color:Be,backgroundColor:Be,outlineColor:Be,fill:Be,stroke:Be,borderColor:Be,borderTopColor:Be,borderRightColor:Be,borderBottomColor:Be,borderLeftColor:Be,filter:Kl,WebkitFilter:Kl,mask:$l,WebkitMask:$l},Qp=n=>tx[n],nx=new Set([Kl,$l]);function qp(n,r){let s=Qp(n);return nx.has(s)||(s=It),s.getAnimatableNone?s.getAnimatableNone(r):void 0}const rx=new Set(["auto","none","0"]);function ix(n,r,s){let a=0,u;for(;a{r.getValue(g).set(x)}),this.resolveNoneKeyframes()}}function Zp(n,r,s){if(n==null)return[];if(n instanceof EventTarget)return[n];if(typeof n=="string"){let a=document;const u=(s==null?void 0:s[n])??a.querySelectorAll(n);return u?Array.from(u):[]}return Array.from(n).filter(a=>a!=null)}const Jp=(n,r)=>r&&typeof n=="number"?r.transform(n):n;function Ys(n){return sp(n)&&"offsetHeight"in n&&!("ownerSVGElement"in n)}const{schedule:Tu}=xp(queueMicrotask,!1),Vt={x:!1,y:!1};function em(){return Vt.x||Vt.y}function ox(n){return n==="x"||n==="y"?Vt[n]?null:(Vt[n]=!0,()=>{Vt[n]=!1}):Vt.x||Vt.y?null:(Vt.x=Vt.y=!0,()=>{Vt.x=Vt.y=!1})}function tm(n,r){const s=Zp(n),a=new AbortController,u={passive:!0,...r,signal:a.signal};return[s,u,()=>a.abort()]}function ax(n){return!(n.pointerType==="touch"||em())}function lx(n,r,s={}){const[a,u,f]=tm(n,s);return a.forEach(d=>{let h=!1,g=!1,x;const y=()=>{d.removeEventListener("pointerleave",N)},v=M=>{x&&(x(M),x=void 0),y()},w=M=>{h=!1,window.removeEventListener("pointerup",w),window.removeEventListener("pointercancel",w),g&&(g=!1,v(M))},C=()=>{h=!0,window.addEventListener("pointerup",w,u),window.addEventListener("pointercancel",w,u)},N=M=>{if(M.pointerType!=="touch"){if(h){g=!0;return}v(M)}},D=M=>{if(!ax(M))return;g=!1;const I=r(d,M);typeof I=="function"&&(x=I,d.addEventListener("pointerleave",N,u))};d.addEventListener("pointerenter",D,u),d.addEventListener("pointerdown",C,u)}),f}const nm=(n,r)=>r?n===r?!0:nm(n,r.parentElement):!1,Cu=n=>n.pointerType==="mouse"?typeof n.button!="number"||n.button<=0:n.isPrimary!==!1,ux=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function cx(n){return ux.has(n.tagName)||n.isContentEditable===!0}const dx=new Set(["INPUT","SELECT","TEXTAREA"]);function fx(n){return dx.has(n.tagName)||n.isContentEditable===!0}const Xs=new WeakSet;function eh(n){return r=>{r.key==="Enter"&&n(r)}}function Sl(n,r){n.dispatchEvent(new PointerEvent("pointer"+r,{isPrimary:!0,bubbles:!0}))}const hx=(n,r)=>{const s=n.currentTarget;if(!s)return;const a=eh(()=>{if(Xs.has(s))return;Sl(s,"down");const u=eh(()=>{Sl(s,"up")}),f=()=>Sl(s,"cancel");s.addEventListener("keyup",u,r),s.addEventListener("blur",f,r)});s.addEventListener("keydown",a,r),s.addEventListener("blur",()=>s.removeEventListener("keydown",a),r)};function th(n){return Cu(n)&&!em()}const nh=new WeakSet;function px(n,r,s={}){const[a,u,f]=tm(n,s),d=h=>{const g=h.currentTarget;if(!th(h)||nh.has(h))return;Xs.add(g),s.stopPropagation&&nh.add(h);const x=r(g,h),y=(C,N)=>{window.removeEventListener("pointerup",v),window.removeEventListener("pointercancel",w),Xs.has(g)&&Xs.delete(g),th(C)&&typeof x=="function"&&x(C,{success:N})},v=C=>{y(C,g===window||g===document||s.useGlobalTarget||nm(g,C.target))},w=C=>{y(C,!1)};window.addEventListener("pointerup",v,u),window.addEventListener("pointercancel",w,u)};return a.forEach(h=>{(s.useGlobalTarget?window:h).addEventListener("pointerdown",d,u),Ys(h)&&(h.addEventListener("focus",x=>hx(x,u)),!cx(h)&&!h.hasAttribute("tabindex")&&(h.tabIndex=0))}),f}function Au(n){return sp(n)&&"ownerSVGElement"in n}const Qs=new WeakMap;let Tn;const rm=(n,r,s)=>(a,u)=>u&&u[0]?u[0][n+"Size"]:Au(a)&&"getBBox"in a?a.getBBox()[r]:a[s],mx=rm("inline","width","offsetWidth"),gx=rm("block","height","offsetHeight");function yx({target:n,borderBoxSize:r}){var s;(s=Qs.get(n))==null||s.forEach(a=>{a(n,{get width(){return mx(n,r)},get height(){return gx(n,r)}})})}function vx(n){n.forEach(yx)}function xx(){typeof ResizeObserver>"u"||(Tn=new ResizeObserver(vx))}function wx(n,r){Tn||xx();const s=Zp(n);return s.forEach(a=>{let u=Qs.get(a);u||(u=new Set,Qs.set(a,u)),u.add(r),Tn==null||Tn.observe(a)}),()=>{s.forEach(a=>{const u=Qs.get(a);u==null||u.delete(r),u!=null&&u.size||Tn==null||Tn.unobserve(a)})}}const qs=new Set;let Sr;function Sx(){Sr=()=>{const n={get width(){return window.innerWidth},get height(){return window.innerHeight}};qs.forEach(r=>r(n))},window.addEventListener("resize",Sr)}function kx(n){return qs.add(n),Sr||Sx(),()=>{qs.delete(n),!qs.size&&typeof Sr=="function"&&(window.removeEventListener("resize",Sr),Sr=void 0)}}function rh(n,r){return typeof n=="function"?kx(n):wx(n,r)}function Tx(n){return Au(n)&&n.tagName==="svg"}const Cx=[...Xp,Be,It],Ax=n=>Cx.find(Yp(n)),ih=()=>({translate:0,scale:1,origin:0,originPoint:0}),kr=()=>({x:ih(),y:ih()}),sh=()=>({min:0,max:0}),We=()=>({x:sh(),y:sh()}),Px=new WeakMap;function po(n){return n!==null&&typeof n=="object"&&typeof n.start=="function"}function Ci(n){return typeof n=="string"||Array.isArray(n)}const Pu=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],Eu=["initial",...Pu];function mo(n){return po(n.animate)||Eu.some(r=>Ci(n[r]))}function im(n){return!!(mo(n)||n.variants)}function Ex(n,r,s){for(const a in r){const u=r[a],f=s[a];if(Qe(u))n.addValue(a,u);else if(Qe(f))n.addValue(a,Pr(u,{owner:n}));else if(f!==u)if(n.hasValue(a)){const d=n.getValue(a);d.liveStyle===!0?d.jump(u):d.hasAnimated||d.set(u)}else{const d=n.getStaticValue(a);n.addValue(a,Pr(d!==void 0?d:u,{owner:n}))}}for(const a in s)r[a]===void 0&&n.removeValue(a);return r}const Yl={current:null},sm={current:!1},jx=typeof window<"u";function Nx(){if(sm.current=!0,!!jx)if(window.matchMedia){const n=window.matchMedia("(prefers-reduced-motion)"),r=()=>Yl.current=n.matches;n.addEventListener("change",r),r()}else Yl.current=!1}const oh=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];let oo={};function om(n){oo=n}function Mx(){return oo}class Dx{scrapeMotionValuesFromProps(r,s,a){return{}}constructor({parent:r,props:s,presenceContext:a,reducedMotionConfig:u,skipAnimations:f,blockInitialAnimation:d,visualState:h},g={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=yu,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,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.renderScheduledAt=0,this.scheduleRender=()=>{const C=rt.now();this.renderScheduledAtthis.bindToMotionValue(f,u)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(sm.current||Nx(),this.shouldReduceMotion=Yl.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,(a=this.parent)==null||a.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){var r;this.projection&&this.projection.unmount(),Pn(this.notifyUpdate),Pn(this.render),this.valueSubscriptions.forEach(s=>s()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),(r=this.parent)==null||r.removeChild(this);for(const s in this.events)this.events[s].clear();for(const s in this.features){const a=this.features[s];a&&(a.unmount(),a.isMounted=!1)}this.current=null}addChild(r){this.children.add(r),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(r)}removeChild(r){this.children.delete(r),this.enteringChildren&&this.enteringChildren.delete(r)}bindToMotionValue(r,s){if(this.valueSubscriptions.has(r)&&this.valueSubscriptions.get(r)(),s.accelerate&&Bp.has(r)&&this.current instanceof HTMLElement){const{factory:d,keyframes:h,times:g,ease:x,duration:y}=s.accelerate,v=new zp({element:this.current,name:r,keyframes:h,times:g,ease:x,duration:gt(y)}),w=d(v);this.valueSubscriptions.set(r,()=>{w(),v.cancel()});return}const a=Nr.has(r);a&&this.onBindTransform&&this.onBindTransform();const u=s.on("change",d=>{this.latestValues[r]=d,this.props.onUpdate&&we.preRender(this.notifyUpdate),a&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let f;typeof window<"u"&&window.MotionCheckAppearSync&&(f=window.MotionCheckAppearSync(this,r,s)),this.valueSubscriptions.set(r,()=>{u(),f&&f(),s.owner&&s.stop()})}sortNodePosition(r){return!this.current||!this.sortInstanceNodePosition||this.type!==r.type?0:this.sortInstanceNodePosition(this.current,r.current)}updateFeatures(){let r="animation";for(r in oo){const s=oo[r];if(!s)continue;const{isEnabled:a,Feature:u}=s;if(!this.features[r]&&u&&a(this.props)&&(this.features[r]=new u(this)),this.features[r]){const f=this.features[r];f.isMounted?f.update():(f.mount(),f.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):We()}getStaticValue(r){return this.latestValues[r]}setStaticValue(r,s){this.latestValues[r]=s}update(r,s){(r.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=r,this.prevPresenceContext=this.presenceContext,this.presenceContext=s;for(let a=0;as.variantChildren.delete(r)}addValue(r,s){const a=this.values.get(r);s!==a&&(a&&this.removeValue(r),this.bindToMotionValue(r,s),this.values.set(r,s),this.latestValues[r]=s.get())}removeValue(r){this.values.delete(r);const s=this.valueSubscriptions.get(r);s&&(s(),this.valueSubscriptions.delete(r)),delete this.latestValues[r],this.removeValueFromRenderState(r,this.renderState)}hasValue(r){return this.values.has(r)}getValue(r,s){if(this.props.values&&this.props.values[r])return this.props.values[r];let a=this.values.get(r);return a===void 0&&s!==void 0&&(a=Pr(s===null?void 0:s,{owner:this}),this.addValue(r,a)),a}readValue(r,s){let a=this.latestValues[r]!==void 0||!this.current?this.latestValues[r]:this.getBaseTargetFromProps(this.props,r)??this.readValueFromInstance(this.current,r,this.options);return a!=null&&(typeof a=="string"&&(ip(a)||op(a))?a=parseFloat(a):!Ax(a)&&It.test(s)&&(a=qp(r,s)),this.setBaseTarget(r,Qe(a)?a.get():a)),Qe(a)?a.get():a}setBaseTarget(r,s){this.baseTarget[r]=s}getBaseTarget(r){var f;const{initial:s}=this.props;let a;if(typeof s=="string"||typeof s=="object"){const d=wu(this.props,s,(f=this.presenceContext)==null?void 0:f.custom);d&&(a=d[r])}if(s&&a!==void 0)return a;const u=this.getBaseTargetFromProps(this.props,r);return u!==void 0&&!Qe(u)?u:this.initialValues[r]!==void 0&&a===void 0?void 0:this.baseTarget[r]}on(r,s){return this.events[r]||(this.events[r]=new lu),this.events[r].add(s)}notify(r,...s){this.events[r]&&this.events[r].notify(...s)}scheduleRenderMicrotask(){Tu.render(this.render)}}class am extends Dx{constructor(){super(...arguments),this.KeyframeResolver=sx}sortInstanceNodePosition(r,s){return r.compareDocumentPosition(s)&2?1:-1}getBaseTargetFromProps(r,s){const a=r.style;return a?a[s]:void 0}removeValueFromRenderState(r,{vars:s,style:a}){delete s[r],delete a[r]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:r}=this.props;Qe(r)&&(this.childSubscription=r.on("change",s=>{this.current&&(this.current.textContent=`${s}`)}))}}class En{constructor(r){this.isMounted=!1,this.node=r}update(){}}function lm({top:n,left:r,right:s,bottom:a}){return{x:{min:r,max:s},y:{min:n,max:a}}}function Lx({x:n,y:r}){return{top:r.min,right:n.max,bottom:r.max,left:n.min}}function Rx(n,r){if(!r)return n;const s=r({x:n.left,y:n.top}),a=r({x:n.right,y:n.bottom});return{top:s.y,left:s.x,bottom:a.y,right:a.x}}function kl(n){return n===void 0||n===1}function Xl({scale:n,scaleX:r,scaleY:s}){return!kl(n)||!kl(r)||!kl(s)}function Un(n){return Xl(n)||um(n)||n.z||n.rotate||n.rotateX||n.rotateY||n.skewX||n.skewY}function um(n){return ah(n.x)||ah(n.y)}function ah(n){return n&&n!=="0%"}function ao(n,r,s){const a=n-s,u=r*a;return s+u}function lh(n,r,s,a,u){return u!==void 0&&(n=ao(n,u,a)),ao(n,s,a)+r}function Ql(n,r=0,s=1,a,u){n.min=lh(n.min,r,s,a,u),n.max=lh(n.max,r,s,a,u)}function cm(n,{x:r,y:s}){Ql(n.x,r.translate,r.scale,r.originPoint),Ql(n.y,s.translate,s.scale,s.originPoint)}const uh=.999999999999,ch=1.0000000000001;function Fx(n,r,s,a=!1){var h;const u=s.length;if(!u)return;r.x=r.y=1;let f,d;for(let g=0;guh&&(r.x=1),r.yuh&&(r.y=1)}function Gt(n,r){n.min+=r,n.max+=r}function dh(n,r,s,a,u=.5){const f=Pe(n.min,n.max,u);Ql(n,r,s,f,a)}function fh(n,r){return typeof n=="string"?parseFloat(n)/100*(r.max-r.min):n}function Zs(n,r,s){const a=s??n;dh(n.x,fh(r.x,a.x),r.scaleX,r.scale,r.originX),dh(n.y,fh(r.y,a.y),r.scaleY,r.scale,r.originY)}function dm(n,r){return lm(Rx(n.getBoundingClientRect(),r))}function Vx(n,r,s){const a=dm(n,s),{scroll:u}=r;return u&&(Gt(a.x,u.offset.x),Gt(a.y,u.offset.y)),a}const Ix={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},_x=jr.length;function zx(n,r,s){let a="",u=!0;for(let f=0;f<_x;f++){const d=jr[f],h=n[d];if(h===void 0)continue;let g=!0;if(typeof h=="number")g=h===(d.startsWith("scale")?1:0);else{const x=parseFloat(h);g=d.startsWith("scale")?x===1:x===0}if(!g||s){const x=Jp(h,ku[d]);if(!g){u=!1;const y=Ix[d]||d;a+=`${y}(${x}) `}s&&(r[d]=x)}}return a=a.trim(),s?a=s(r,u?"":a):u&&(a="none"),a}function ju(n,r,s){const{style:a,vars:u,transformOrigin:f}=n;let d=!1,h=!1;for(const g in r){const x=r[g];if(Nr.has(g)){d=!0;continue}else if(Sp(g)){u[g]=x;continue}else{const y=Jp(x,ku[g]);g.startsWith("origin")?(h=!0,f[g]=y):a[g]=y}}if(r.transform||(d||s?a.transform=zx(r,n.transform,s):a.transform&&(a.transform="none")),h){const{originX:g="50%",originY:x="50%",originZ:y=0}=f;a.transformOrigin=`${g} ${x} ${y}`}}function fm(n,{style:r,vars:s},a,u){const f=n.style;let d;for(d in r)f[d]=r[d];u==null||u.applyProjectionStyles(f,a);for(d in s)f.setProperty(d,s[d])}function hh(n,r){return r.max===r.min?0:n/(r.max-r.min)*100}const gi={correct:(n,r)=>{if(!r.target)return n;if(typeof n=="string")if(Y.test(n))n=parseFloat(n);else return n;const s=hh(n,r.target.x),a=hh(n,r.target.y);return`${s}% ${a}%`}},Ox={correct:(n,{treeScale:r,projectionDelta:s})=>{const a=n,u=It.parse(n);if(u.length>5)return a;const f=It.createTransformer(n),d=typeof u[0]!="number"?1:0,h=s.x.scale*r.x,g=s.y.scale*r.y;u[0+d]/=h,u[1+d]/=g;const x=Pe(h,g,.5);return typeof u[2+d]=="number"&&(u[2+d]/=x),typeof u[3+d]=="number"&&(u[3+d]/=x),f(u)}},ql={borderRadius:{...gi,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:gi,borderTopRightRadius:gi,borderBottomLeftRadius:gi,borderBottomRightRadius:gi,boxShadow:Ox};function hm(n,{layout:r,layoutId:s}){return Nr.has(n)||n.startsWith("origin")||(r||s!==void 0)&&(!!ql[n]||n==="opacity")}function Nu(n,r,s){var d;const a=n.style,u=r==null?void 0:r.style,f={};if(!a)return f;for(const h in a)(Qe(a[h])||u&&Qe(u[h])||hm(h,n)||((d=s==null?void 0:s.getValue(h))==null?void 0:d.liveStyle)!==void 0)&&(f[h]=a[h]);return f}function Bx(n){return window.getComputedStyle(n)}class bx extends am{constructor(){super(...arguments),this.type="html",this.renderInstance=fm}readValueFromInstance(r,s){var a;if(Nr.has(s))return(a=this.projection)!=null&&a.isProjecting?_l(s):av(r,s);{const u=Bx(r),f=(Sp(s)?u.getPropertyValue(s):u[s])||0;return typeof f=="string"?f.trim():f}}measureInstanceViewportBox(r,{transformPagePoint:s}){return dm(r,s)}build(r,s,a){ju(r,s,a.transformTemplate)}scrapeMotionValuesFromProps(r,s,a){return Nu(r,s,a)}}const Ux={offset:"stroke-dashoffset",array:"stroke-dasharray"},Wx={offset:"strokeDashoffset",array:"strokeDasharray"};function Hx(n,r,s=1,a=0,u=!0){n.pathLength=1;const f=u?Ux:Wx;n[f.offset]=`${-a}`,n[f.array]=`${r} ${s}`}const Gx=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function pm(n,{attrX:r,attrY:s,attrScale:a,pathLength:u,pathSpacing:f=1,pathOffset:d=0,...h},g,x,y){if(ju(n,h,x),g){n.style.viewBox&&(n.attrs.viewBox=n.style.viewBox);return}n.attrs=n.style,n.style={};const{attrs:v,style:w}=n;v.transform&&(w.transform=v.transform,delete v.transform),(w.transform||v.transformOrigin)&&(w.transformOrigin=v.transformOrigin??"50% 50%",delete v.transformOrigin),w.transform&&(w.transformBox=(y==null?void 0:y.transformBox)??"fill-box",delete v.transformBox);for(const C of Gx)v[C]!==void 0&&(w[C]=v[C],delete v[C]);r!==void 0&&(v.x=r),s!==void 0&&(v.y=s),a!==void 0&&(v.scale=a),u!==void 0&&Hx(v,u,f,d,!1)}const mm=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"]),gm=n=>typeof n=="string"&&n.toLowerCase()==="svg";function Kx(n,r,s,a){fm(n,r,void 0,a);for(const u in r.attrs)n.setAttribute(mm.has(u)?u:Su(u),r.attrs[u])}function ym(n,r,s){const a=Nu(n,r,s);for(const u in n)if(Qe(n[u])||Qe(r[u])){const f=jr.indexOf(u)!==-1?"attr"+u.charAt(0).toUpperCase()+u.substring(1):u;a[f]=n[u]}return a}class $x extends am{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=We}getBaseTargetFromProps(r,s){return r[s]}readValueFromInstance(r,s){if(Nr.has(s)){const a=Qp(s);return a&&a.default||0}return s=mm.has(s)?s:Su(s),r.getAttribute(s)}scrapeMotionValuesFromProps(r,s,a){return ym(r,s,a)}build(r,s,a){pm(r,s,this.isSVGTag,a.transformTemplate,a.style)}renderInstance(r,s,a,u){Kx(r,s,a,u)}mount(r){this.isSVGTag=gm(r.tagName),super.mount(r)}}const Yx=Eu.length;function vm(n){if(!n)return;if(!n.isControllingVariants){const s=n.parent?vm(n.parent)||{}:{};return n.props.initial!==void 0&&(s.initial=n.props.initial),s}const r={};for(let s=0;sPromise.all(r.map(({animation:s,options:a})=>Yv(n,s,a)))}function Zx(n){let r=qx(n),s=ph(),a=!0,u=!1;const f=x=>(y,v)=>{var C;const w=Kn(n,v,x==="exit"?(C=n.presenceContext)==null?void 0:C.custom:void 0);if(w){const{transition:N,transitionEnd:D,...M}=w;y={...y,...M,...D}}return y};function d(x){r=x(n)}function h(x){const{props:y}=n,v=vm(n.parent)||{},w=[],C=new Set;let N={},D=1/0;for(let I=0;ID&&G,q=!1;const fe=Array.isArray(b)?b:[b];let xe=fe.reduce(f(U),{});ie===!1&&(xe={});const{prevResolvedValues:Ne={}}=B,Re={...Ne,...xe},ze=z=>{re=!0,C.has(z)&&(q=!0,C.delete(z)),B.needsAnimating[z]=!0;const X=n.getValue(z);X&&(X.liveStyle=!1)};for(const z in Re){const X=xe[z],W=Ne[z];if(N.hasOwnProperty(z))continue;let A=!1;Wl(X)&&Wl(W)?A=!xm(X,W):A=X!==W,A?X!=null?ze(z):C.add(z):X!==void 0&&C.has(z)?ze(z):B.protectedKeys[z]=!0}B.prevProp=b,B.prevResolvedValues=xe,B.isActive&&(N={...N,...xe}),(a||u)&&n.blockInitialAnimation&&(re=!1);const Te=ae&&J;re&&(!Te||q)&&w.push(...fe.map(z=>{const X={type:U};if(typeof z=="string"&&(a||u)&&!Te&&n.manuallyAnimateOnMount&&n.parent){const{parent:W}=n,A=Kn(W,z);if(W.enteringChildren&&A){const{delayChildren:L}=A.transition||{};X.delay=bp(W.enteringChildren,n,L)}}return{animation:z,options:X}}))}if(C.size){const I={};if(typeof y.initial!="boolean"){const U=Kn(n,Array.isArray(y.initial)?y.initial[0]:y.initial);U&&U.transition&&(I.transition=U.transition)}C.forEach(U=>{const B=n.getBaseTarget(U),b=n.getValue(U);b&&(b.liveStyle=!0),I[U]=B??null}),w.push({animation:I})}let M=!!w.length;return a&&(y.initial===!1||y.initial===y.animate)&&!n.manuallyAnimateOnMount&&(M=!1),a=!1,u=!1,M?r(w):Promise.resolve()}function g(x,y){var w;if(s[x].isActive===y)return Promise.resolve();(w=n.variantChildren)==null||w.forEach(C=>{var N;return(N=C.animationState)==null?void 0:N.setActive(x,y)}),s[x].isActive=y;const v=h(x);for(const C in s)s[C].protectedKeys={};return v}return{animateChanges:h,setActive:g,setAnimateFunction:d,getState:()=>s,reset:()=>{s=ph(),u=!0}}}function Jx(n,r){return typeof r=="string"?r!==n:Array.isArray(r)?!xm(r,n):!1}function bn(n=!1){return{isActive:n,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function ph(){return{animate:bn(!0),whileInView:bn(),whileHover:bn(),whileTap:bn(),whileDrag:bn(),whileFocus:bn(),exit:bn()}}function Zl(n,r){n.min=r.min,n.max=r.max}function Rt(n,r){Zl(n.x,r.x),Zl(n.y,r.y)}function mh(n,r){n.translate=r.translate,n.scale=r.scale,n.originPoint=r.originPoint,n.origin=r.origin}const wm=1e-4,e1=1-wm,t1=1+wm,Sm=.01,n1=0-Sm,r1=0+Sm;function it(n){return n.max-n.min}function i1(n,r,s){return Math.abs(n-r)<=s}function gh(n,r,s,a=.5){n.origin=a,n.originPoint=Pe(r.min,r.max,n.origin),n.scale=it(s)/it(r),n.translate=Pe(s.min,s.max,n.origin)-n.originPoint,(n.scale>=e1&&n.scale<=t1||isNaN(n.scale))&&(n.scale=1),(n.translate>=n1&&n.translate<=r1||isNaN(n.translate))&&(n.translate=0)}function wi(n,r,s,a){gh(n.x,r.x,s.x,a?a.originX:void 0),gh(n.y,r.y,s.y,a?a.originY:void 0)}function yh(n,r,s,a=0){const u=a?Pe(s.min,s.max,a):s.min;n.min=u+r.min,n.max=n.min+it(r)}function s1(n,r,s,a){yh(n.x,r.x,s.x,a==null?void 0:a.x),yh(n.y,r.y,s.y,a==null?void 0:a.y)}function vh(n,r,s,a=0){const u=a?Pe(s.min,s.max,a):s.min;n.min=r.min-u,n.max=n.min+it(r)}function lo(n,r,s,a){vh(n.x,r.x,s.x,a==null?void 0:a.x),vh(n.y,r.y,s.y,a==null?void 0:a.y)}function xh(n,r,s,a,u){return n-=r,n=ao(n,1/s,a),u!==void 0&&(n=ao(n,1/u,a)),n}function o1(n,r=0,s=1,a=.5,u,f=n,d=n){if(Kt.test(r)&&(r=parseFloat(r),r=Pe(d.min,d.max,r/100)-d.min),typeof r!="number")return;let h=Pe(f.min,f.max,a);n===f&&(h-=r),n.min=xh(n.min,r,s,h,u),n.max=xh(n.max,r,s,h,u)}function wh(n,r,[s,a,u],f,d){o1(n,r[s],r[a],r[u],r.scale,f,d)}const a1=["x","scaleX","originX"],l1=["y","scaleY","originY"];function Sh(n,r,s,a){wh(n.x,r,a1,s?s.x:void 0,a?a.x:void 0),wh(n.y,r,l1,s?s.y:void 0,a?a.y:void 0)}function kh(n){return n.translate===0&&n.scale===1}function km(n){return kh(n.x)&&kh(n.y)}function Th(n,r){return n.min===r.min&&n.max===r.max}function u1(n,r){return Th(n.x,r.x)&&Th(n.y,r.y)}function Ch(n,r){return Math.round(n.min)===Math.round(r.min)&&Math.round(n.max)===Math.round(r.max)}function Tm(n,r){return Ch(n.x,r.x)&&Ch(n.y,r.y)}function Ah(n){return it(n.x)/it(n.y)}function Ph(n,r){return n.translate===r.translate&&n.scale===r.scale&&n.originPoint===r.originPoint}function Wt(n){return[n("x"),n("y")]}function c1(n,r,s){let a="";const u=n.x.translate/r.x,f=n.y.translate/r.y,d=(s==null?void 0:s.z)||0;if((u||f||d)&&(a=`translate3d(${u}px, ${f}px, ${d}px) `),(r.x!==1||r.y!==1)&&(a+=`scale(${1/r.x}, ${1/r.y}) `),s){const{transformPerspective:x,rotate:y,rotateX:v,rotateY:w,skewX:C,skewY:N}=s;x&&(a=`perspective(${x}px) ${a}`),y&&(a+=`rotate(${y}deg) `),v&&(a+=`rotateX(${v}deg) `),w&&(a+=`rotateY(${w}deg) `),C&&(a+=`skewX(${C}deg) `),N&&(a+=`skewY(${N}deg) `)}const h=n.x.scale*r.x,g=n.y.scale*r.y;return(h!==1||g!==1)&&(a+=`scale(${h}, ${g})`),a||"none"}const Cm=["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"],d1=Cm.length,Eh=n=>typeof n=="string"?parseFloat(n):n,jh=n=>typeof n=="number"||Y.test(n);function f1(n,r,s,a,u,f){u?(n.opacity=Pe(0,s.opacity??1,h1(a)),n.opacityExit=Pe(r.opacity??1,0,p1(a))):f&&(n.opacity=Pe(r.opacity??1,s.opacity??1,a));for(let d=0;dar?1:s(ki(n,r,a))}function m1(n,r,s){const a=Qe(n)?n:Pr(n);return a.start(xu("",a,r,s)),a.animation}function Ai(n,r,s,a={passive:!0}){return n.addEventListener(r,s,a),()=>n.removeEventListener(r,s)}const g1=(n,r)=>n.depth-r.depth;class y1{constructor(){this.children=[],this.isDirty=!1}add(r){ou(this.children,r),this.isDirty=!0}remove(r){to(this.children,r),this.isDirty=!0}forEach(r){this.isDirty&&this.children.sort(g1),this.isDirty=!1,this.children.forEach(r)}}function v1(n,r){const s=rt.now(),a=({timestamp:u})=>{const f=u-s;f>=r&&(Pn(a),n(f-r))};return we.setup(a,!0),()=>Pn(a)}function Js(n){return Qe(n)?n.get():n}class x1{constructor(){this.members=[]}add(r){ou(this.members,r);for(let s=this.members.length-1;s>=0;s--){const a=this.members[s];if(a===r||a===this.lead||a===this.prevLead)continue;const u=a.instance;(!u||u.isConnected===!1)&&!a.snapshot&&(to(this.members,a),a.unmount())}r.scheduleRender()}remove(r){if(to(this.members,r),r===this.prevLead&&(this.prevLead=void 0),r===this.lead){const s=this.members[this.members.length-1];s&&this.promote(s)}}relegate(r){var s;for(let a=this.members.indexOf(r)-1;a>=0;a--){const u=this.members[a];if(u.isPresent!==!1&&((s=u.instance)==null?void 0:s.isConnected)!==!1)return this.promote(u),!0}return!1}promote(r,s){var u;const a=this.lead;if(r!==a&&(this.prevLead=a,this.lead=r,r.show(),a)){a.updateSnapshot(),r.scheduleRender();const{layoutDependency:f}=a.options,{layoutDependency:d}=r.options;(f===void 0||f!==d)&&(r.resumeFrom=a,s&&(a.preserveOpacity=!0),a.snapshot&&(r.snapshot=a.snapshot,r.snapshot.latestValues=a.animationValues||a.latestValues),(u=r.root)!=null&&u.isUpdating&&(r.isLayoutDirty=!0)),r.options.crossfade===!1&&a.hide()}}exitAnimationComplete(){this.members.forEach(r=>{var s,a,u,f,d;(a=(s=r.options).onExitComplete)==null||a.call(s),(d=(u=r.resumingFrom)==null?void 0:(f=u.options).onExitComplete)==null||d.call(f)})}scheduleRender(){this.members.forEach(r=>r.instance&&r.scheduleRender(!1))}removeLeadSnapshot(){var r;(r=this.lead)!=null&&r.snapshot&&(this.lead.snapshot=void 0)}}const eo={hasAnimatedSinceResize:!0,hasEverUpdated:!1},Tl=["","X","Y","Z"],w1=1e3;let S1=0;function Cl(n,r,s,a){const{latestValues:u}=r;u[n]&&(s[n]=u[n],r.setStaticValue(n,0),a&&(a[n]=0))}function Pm(n){if(n.hasCheckedOptimisedAppear=!0,n.root===n)return;const{visualElement:r}=n.options;if(!r)return;const s=Kp(r);if(window.MotionHasOptimisedAnimation(s,"transform")){const{layout:u,layoutId:f}=n.options;window.MotionCancelOptimisedAnimation(s,"transform",we,!(u||f))}const{parent:a}=n;a&&!a.hasCheckedOptimisedAppear&&Pm(a)}function Em({attachResizeListener:n,defaultParent:r,measureScroll:s,checkIsScrollRoot:a,resetTransform:u}){return class{constructor(d={},h=r==null?void 0:r()){this.id=S1++,this.animationId=0,this.animationCommitId=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.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(C1),this.nodes.forEach(M1),this.nodes.forEach(D1),this.nodes.forEach(A1)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=d,this.root=h?h.root||h:this,this.path=h?[...h.path,h]:[],this.parent=h,this.depth=h?h.depth+1:0;for(let g=0;gthis.root.updateBlockedByResize=!1;we.read(()=>{v=window.innerWidth}),n(d,()=>{const C=window.innerWidth;C!==v&&(v=C,this.root.updateBlockedByResize=!0,y&&y(),y=v1(w,250),eo.hasAnimatedSinceResize&&(eo.hasAnimatedSinceResize=!1,this.nodes.forEach(Lh)))})}h&&this.root.registerSharedNode(h,this),this.options.animate!==!1&&x&&(h||g)&&this.addEventListener("didUpdate",({delta:y,hasLayoutChanged:v,hasRelativeLayoutChanged:w,layout:C})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const N=this.options.transition||x.getDefaultTransition()||I1,{onLayoutAnimationStart:D,onLayoutAnimationComplete:M}=x.getProps(),I=!this.targetLayout||!Tm(this.targetLayout,C),U=!v&&w;if(this.options.layoutRoot||this.resumeFrom||U||v&&(I||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const B={...vu(N,"layout"),onPlay:D,onComplete:M};(x.shouldReduceMotion||this.options.layoutRoot)&&(B.delay=0,B.type=!1),this.startAnimation(B),this.setAnimationOrigin(y,U)}else v||Lh(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=C})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const d=this.getStack();d&&d.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),Pn(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(L1),this.animationId++)}getTransformTemplate(){const{visualElement:d}=this.options;return d&&d.getProps().transformTemplate}willUpdate(d=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&Pm(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let y=0;y{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!it(this.snapshot.measuredBox.x)&&!it(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let g=0;g{const G=b/1e3;Rh(v.x,d.x,G),Rh(v.y,d.y,G),this.setTargetDelta(v),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(lo(w,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),F1(this.relativeTarget,this.relativeTargetOrigin,w,G),B&&u1(this.relativeTarget,B)&&(this.isProjectionDirty=!1),B||(B=We()),Rt(B,this.relativeTarget)),D&&(this.animationValues=y,f1(y,x,this.latestValues,G,U,I)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=G},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(d){var h,g,x;this.notifyListeners("animationStart"),(h=this.currentAnimation)==null||h.stop(),(x=(g=this.resumingFrom)==null?void 0:g.currentAnimation)==null||x.stop(),this.pendingAnimation&&(Pn(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=we.update(()=>{eo.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=Pr(0)),this.motionValue.jump(0,!1),this.currentAnimation=m1(this.motionValue,[0,1e3],{...d,velocity:0,isSync:!0,onUpdate:y=>{this.mixTargetDelta(y),d.onUpdate&&d.onUpdate(y)},onStop:()=>{},onComplete:()=>{d.onComplete&&d.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 d=this.getStack();d&&d.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(w1),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const d=this.getLead();let{targetWithTransforms:h,target:g,layout:x,latestValues:y}=d;if(!(!h||!g||!x)){if(this!==d&&this.layout&&x&&jm(this.options.animationType,this.layout.layoutBox,x.layoutBox)){g=this.target||We();const v=it(this.layout.layoutBox.x);g.x.min=d.target.x.min,g.x.max=g.x.min+v;const w=it(this.layout.layoutBox.y);g.y.min=d.target.y.min,g.y.max=g.y.min+w}Rt(h,g),Zs(h,y),wi(this.projectionDeltaWithTransform,this.layoutCorrected,h,y)}}registerSharedNode(d,h){this.sharedNodes.has(d)||this.sharedNodes.set(d,new x1),this.sharedNodes.get(d).add(h);const x=h.options.initialPromotionConfig;h.promote({transition:x?x.transition:void 0,preserveFollowOpacity:x&&x.shouldPreserveFollowOpacity?x.shouldPreserveFollowOpacity(h):void 0})}isLead(){const d=this.getStack();return d?d.lead===this:!0}getLead(){var h;const{layoutId:d}=this.options;return d?((h=this.getStack())==null?void 0:h.lead)||this:this}getPrevLead(){var h;const{layoutId:d}=this.options;return d?(h=this.getStack())==null?void 0:h.prevLead:void 0}getStack(){const{layoutId:d}=this.options;if(d)return this.root.sharedNodes.get(d)}promote({needsReset:d,transition:h,preserveFollowOpacity:g}={}){const x=this.getStack();x&&x.promote(this,g),d&&(this.projectionDelta=void 0,this.needsReset=!0),h&&this.setOptions({transition:h})}relegate(){const d=this.getStack();return d?d.relegate(this):!1}resetSkewAndRotation(){const{visualElement:d}=this.options;if(!d)return;let h=!1;const{latestValues:g}=d;if((g.z||g.rotate||g.rotateX||g.rotateY||g.rotateZ||g.skewX||g.skewY)&&(h=!0),!h)return;const x={};g.z&&Cl("z",d,x,this.animationValues);for(let y=0;y{var h;return(h=d.currentAnimation)==null?void 0:h.stop()}),this.root.nodes.forEach(Mh),this.root.sharedNodes.clear()}}}function k1(n){n.updateLayout()}function T1(n){var s;const r=((s=n.resumeFrom)==null?void 0:s.snapshot)||n.snapshot;if(n.isLead()&&n.layout&&r&&n.hasListeners("didUpdate")){const{layoutBox:a,measuredBox:u}=n.layout,{animationType:f}=n.options,d=r.source!==n.layout.source;if(f==="size")Wt(v=>{const w=d?r.measuredBox[v]:r.layoutBox[v],C=it(w);w.min=a[v].min,w.max=w.min+C});else if(f==="x"||f==="y"){const v=f==="x"?"y":"x";Zl(d?r.measuredBox[v]:r.layoutBox[v],a[v])}else jm(f,r.layoutBox,a)&&Wt(v=>{const w=d?r.measuredBox[v]:r.layoutBox[v],C=it(a[v]);w.max=w.min+C,n.relativeTarget&&!n.currentAnimation&&(n.isProjectionDirty=!0,n.relativeTarget[v].max=n.relativeTarget[v].min+C)});const h=kr();wi(h,a,r.layoutBox);const g=kr();d?wi(g,n.applyTransform(u,!0),r.measuredBox):wi(g,a,r.layoutBox);const x=!km(h);let y=!1;if(!n.resumeFrom){const v=n.getClosestProjectingParent();if(v&&!v.resumeFrom){const{snapshot:w,layout:C}=v;if(w&&C){const N=n.options.layoutAnchor||void 0,D=We();lo(D,r.layoutBox,w.layoutBox,N);const M=We();lo(M,a,C.layoutBox,N),Tm(D,M)||(y=!0),v.options.layoutRoot&&(n.relativeTarget=M,n.relativeTargetOrigin=D,n.relativeParent=v)}}}n.notifyListeners("didUpdate",{layout:a,snapshot:r,delta:g,layoutDelta:h,hasLayoutChanged:x,hasRelativeLayoutChanged:y})}else if(n.isLead()){const{onExitComplete:a}=n.options;a&&a()}n.options.transition=void 0}function C1(n){n.parent&&(n.isProjecting()||(n.isProjectionDirty=n.parent.isProjectionDirty),n.isSharedProjectionDirty||(n.isSharedProjectionDirty=!!(n.isProjectionDirty||n.parent.isProjectionDirty||n.parent.isSharedProjectionDirty)),n.isTransformDirty||(n.isTransformDirty=n.parent.isTransformDirty))}function A1(n){n.isProjectionDirty=n.isSharedProjectionDirty=n.isTransformDirty=!1}function P1(n){n.clearSnapshot()}function Mh(n){n.clearMeasurements()}function E1(n){n.isLayoutDirty=!0,n.updateLayout()}function Dh(n){n.isLayoutDirty=!1}function j1(n){n.isAnimationBlocked&&n.layout&&!n.isLayoutDirty&&(n.snapshot=n.layout,n.isLayoutDirty=!0)}function N1(n){const{visualElement:r}=n.options;r&&r.getProps().onBeforeLayoutMeasure&&r.notify("BeforeLayoutMeasure"),n.resetTransform()}function Lh(n){n.finishAnimation(),n.targetDelta=n.relativeTarget=n.target=void 0,n.isProjectionDirty=!0}function M1(n){n.resolveTargetDelta()}function D1(n){n.calcProjection()}function L1(n){n.resetSkewAndRotation()}function R1(n){n.removeLeadSnapshot()}function Rh(n,r,s){n.translate=Pe(r.translate,0,s),n.scale=Pe(r.scale,1,s),n.origin=r.origin,n.originPoint=r.originPoint}function Fh(n,r,s,a){n.min=Pe(r.min,s.min,a),n.max=Pe(r.max,s.max,a)}function F1(n,r,s,a){Fh(n.x,r.x,s.x,a),Fh(n.y,r.y,s.y,a)}function V1(n){return n.animationValues&&n.animationValues.opacityExit!==void 0}const I1={duration:.45,ease:[.4,0,.1,1]},Vh=n=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(n),Ih=Vh("applewebkit/")&&!Vh("chrome/")?Math.round:Ct;function _h(n){n.min=Ih(n.min),n.max=Ih(n.max)}function _1(n){_h(n.x),_h(n.y)}function jm(n,r,s){return n==="position"||n==="preserve-aspect"&&!i1(Ah(r),Ah(s),.2)}function z1(n){var r;return n!==n.root&&((r=n.scroll)==null?void 0:r.wasRoot)}const O1=Em({attachResizeListener:(n,r)=>Ai(n,"resize",r),measureScroll:()=>{var n,r;return{x:document.documentElement.scrollLeft||((n=document.body)==null?void 0:n.scrollLeft)||0,y:document.documentElement.scrollTop||((r=document.body)==null?void 0:r.scrollTop)||0}},checkIsScrollRoot:()=>!0}),Al={current:void 0},Nm=Em({measureScroll:n=>({x:n.scrollLeft,y:n.scrollTop}),defaultParent:()=>{if(!Al.current){const n=new O1({});n.mount(window),n.setOptions({layoutScroll:!0}),Al.current=n}return Al.current},resetTransform:(n,r)=>{n.style.transform=r!==void 0?r:"none"},checkIsScrollRoot:n=>window.getComputedStyle(n).position==="fixed"}),Mu=_.createContext({transformPagePoint:n=>n,isStatic:!1,reducedMotion:"never"});function zh(n,r){if(typeof n=="function")return n(r);n!=null&&(n.current=r)}function B1(...n){return r=>{let s=!1;const a=n.map(u=>{const f=zh(u,r);return!s&&typeof f=="function"&&(s=!0),f});if(s)return()=>{for(let u=0;u{const{width:C,height:N,top:D,left:M,right:I,bottom:U}=g.current;if(r||f===!1||!h.current||!C||!N)return;const B=s==="left"?`left: ${M}`:`right: ${I}`,b=a==="bottom"?`bottom: ${U}`:`top: ${D}`;h.current.dataset.motionPopId=d;const G=document.createElement("style");x&&(G.nonce=x);const ie=u??document.head;return ie.appendChild(G),G.sheet&&G.sheet.insertRule(` - [data-motion-pop-id="${d}"] { - position: absolute !important; - width: ${C}px !important; - height: ${N}px !important; - ${B}px !important; - ${b}px !important; - } - `),()=>{var ae;(ae=h.current)==null||ae.removeAttribute("data-motion-pop-id"),ie.contains(G)&&ie.removeChild(G)}},[r]),m.jsx(U1,{isPresent:r,childRef:h,sizeRef:g,pop:f,children:f===!1?n:_.cloneElement(n,{ref:v})})}const H1=({children:n,initial:r,isPresent:s,onExitComplete:a,custom:u,presenceAffectsLayout:f,mode:d,anchorX:h,anchorY:g,root:x})=>{const y=su(G1),v=_.useId();let w=!0,C=_.useMemo(()=>(w=!1,{id:v,initial:r,isPresent:s,custom:u,onExitComplete:N=>{y.set(N,!0);for(const D of y.values())if(!D)return;a&&a()},register:N=>(y.set(N,!1),()=>y.delete(N))}),[s,y,a]);return f&&w&&(C={...C}),_.useMemo(()=>{y.forEach((N,D)=>y.set(D,!1))},[s]),_.useEffect(()=>{!s&&!y.size&&a&&a()},[s]),n=m.jsx(W1,{pop:d==="popLayout",isPresent:s,anchorX:h,anchorY:g,root:x,children:n}),m.jsx(fo.Provider,{value:C,children:n})};function G1(){return new Map}function Mm(n=!0){const r=_.useContext(fo);if(r===null)return[!0,null];const{isPresent:s,onExitComplete:a,register:u}=r,f=_.useId();_.useEffect(()=>{if(n)return u(f)},[n]);const d=_.useCallback(()=>n&&a&&a(f),[f,a,n]);return!s&&a?[!1,d]:[!0]}const Ws=n=>n.key||"";function Oh(n){const r=[];return _.Children.forEach(n,s=>{_.isValidElement(s)&&r.push(s)}),r}const Cr=({children:n,custom:r,initial:s=!0,onExitComplete:a,presenceAffectsLayout:u=!0,mode:f="sync",propagate:d=!1,anchorX:h="left",anchorY:g="top",root:x})=>{const[y,v]=Mm(d),w=_.useMemo(()=>Oh(n),[n]),C=d&&!y?[]:w.map(Ws),N=_.useRef(!0),D=_.useRef(w),M=su(()=>new Map),I=_.useRef(new Set),[U,B]=_.useState(w),[b,G]=_.useState(w);rp(()=>{N.current=!1,D.current=w;for(let J=0;J{const re=Ws(J),q=d&&!y?!1:w===b||C.includes(re),fe=()=>{if(I.current.has(re))return;if(M.has(re))I.current.add(re),M.set(re,!0);else return;let xe=!0;M.forEach(Ne=>{Ne||(xe=!1)}),xe&&(ae==null||ae(),G(D.current),d&&(v==null||v()),a&&a())};return m.jsx(H1,{isPresent:q,initial:!N.current||s?void 0:!1,custom:r,presenceAffectsLayout:u,mode:f,root:x,onExitComplete:q?void 0:fe,anchorX:h,anchorY:g,children:J},re)})})},Dm=_.createContext({strict:!1}),Bh={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"]};let bh=!1;function K1(){if(bh)return;const n={};for(const r in Bh)n[r]={isEnabled:s=>Bh[r].some(a=>!!s[a])};om(n),bh=!0}function Lm(){return K1(),Mx()}function $1(n){const r=Lm();for(const s in n)r[s]={...r[s],...n[s]};om(r)}const Y1=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function uo(n){return n.startsWith("while")||n.startsWith("drag")&&n!=="draggable"||n.startsWith("layout")||n.startsWith("onTap")||n.startsWith("onPan")||n.startsWith("onLayout")||Y1.has(n)}let Rm=n=>!uo(n);function X1(n){typeof n=="function"&&(Rm=r=>r.startsWith("on")?!uo(r):n(r))}try{X1(require("@emotion/is-prop-valid").default)}catch{}function Q1(n,r,s){const a={};for(const u in n)u==="values"&&typeof n.values=="object"||Qe(n[u])||(Rm(u)||s===!0&&uo(u)||!r&&!uo(u)||n.draggable&&u.startsWith("onDrag"))&&(a[u]=n[u]);return a}const go=_.createContext({});function q1(n,r){if(mo(n)){const{initial:s,animate:a}=n;return{initial:s===!1||Ci(s)?s:void 0,animate:Ci(a)?a:void 0}}return n.inherit!==!1?r:{}}function Z1(n){const{initial:r,animate:s}=q1(n,_.useContext(go));return _.useMemo(()=>({initial:r,animate:s}),[Uh(r),Uh(s)])}function Uh(n){return Array.isArray(n)?n.join(" "):n}const Du=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function Fm(n,r,s){for(const a in r)!Qe(r[a])&&!hm(a,s)&&(n[a]=r[a])}function J1({transformTemplate:n},r){return _.useMemo(()=>{const s=Du();return ju(s,r,n),Object.assign({},s.vars,s.style)},[r])}function ew(n,r){const s=n.style||{},a={};return Fm(a,s,n),Object.assign(a,J1(n,r)),a}function tw(n,r){const s={},a=ew(n,r);return n.drag&&n.dragListener!==!1&&(s.draggable=!1,a.userSelect=a.WebkitUserSelect=a.WebkitTouchCallout="none",a.touchAction=n.drag===!0?"none":`pan-${n.drag==="x"?"y":"x"}`),n.tabIndex===void 0&&(n.onTap||n.onTapStart||n.whileTap)&&(s.tabIndex=0),s.style=a,s}const Vm=()=>({...Du(),attrs:{}});function nw(n,r,s,a){const u=_.useMemo(()=>{const f=Vm();return pm(f,r,gm(a),n.transformTemplate,n.style),{...f.attrs,style:{...f.style}}},[r]);if(n.style){const f={};Fm(f,n.style,n),u.style={...f,...u.style}}return u}const rw=["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 Lu(n){return typeof n!="string"||n.includes("-")?!1:!!(rw.indexOf(n)>-1||/[A-Z]/u.test(n))}function iw(n,r,s,{latestValues:a},u,f=!1,d){const g=(d??Lu(n)?nw:tw)(r,a,u,n),x=Q1(r,typeof n=="string",f),y=n!==_.Fragment?{...x,...g,ref:s}:{},{children:v}=r,w=_.useMemo(()=>Qe(v)?v.get():v,[v]);return _.createElement(n,{...y,children:w})}function sw({scrapeMotionValuesFromProps:n,createRenderState:r},s,a,u){return{latestValues:ow(s,a,u,n),renderState:r()}}function ow(n,r,s,a){const u={},f=a(n,{});for(const w in f)u[w]=Js(f[w]);let{initial:d,animate:h}=n;const g=mo(n),x=im(n);r&&x&&!g&&n.inherit!==!1&&(d===void 0&&(d=r.initial),h===void 0&&(h=r.animate));let y=s?s.initial===!1:!1;y=y||d===!1;const v=y?h:d;if(v&&typeof v!="boolean"&&!po(v)){const w=Array.isArray(v)?v:[v];for(let C=0;C(r,s)=>{const a=_.useContext(go),u=_.useContext(fo),f=()=>sw(n,r,a,u);return s?f():su(f)},aw=Im({scrapeMotionValuesFromProps:Nu,createRenderState:Du}),lw=Im({scrapeMotionValuesFromProps:ym,createRenderState:Vm}),uw=Symbol.for("motionComponentSymbol");function cw(n,r,s){const a=_.useRef(s);_.useInsertionEffect(()=>{a.current=s});const u=_.useRef(null);return _.useCallback(f=>{var h;f&&((h=n.onMount)==null||h.call(n,f));const d=a.current;if(typeof d=="function")if(f){const g=d(f);typeof g=="function"&&(u.current=g)}else u.current?(u.current(),u.current=null):d(f);else d&&(d.current=f);r&&(f?r.mount(f):r.unmount())},[r])}const _m=_.createContext({});function xr(n){return n&&typeof n=="object"&&Object.prototype.hasOwnProperty.call(n,"current")}function dw(n,r,s,a,u,f){var B,b;const{visualElement:d}=_.useContext(go),h=_.useContext(Dm),g=_.useContext(fo),x=_.useContext(Mu),y=x.reducedMotion,v=x.skipAnimations,w=_.useRef(null),C=_.useRef(!1);a=a||h.renderer,!w.current&&a&&(w.current=a(n,{visualState:r,parent:d,props:s,presenceContext:g,blockInitialAnimation:g?g.initial===!1:!1,reducedMotionConfig:y,skipAnimations:v,isSVG:f}),C.current&&w.current&&(w.current.manuallyAnimateOnMount=!0));const N=w.current,D=_.useContext(_m);N&&!N.projection&&u&&(N.type==="html"||N.type==="svg")&&fw(w.current,s,u,D);const M=_.useRef(!1);_.useInsertionEffect(()=>{N&&M.current&&N.update(s,g)});const I=s[Gp],U=_.useRef(!!I&&typeof window<"u"&&!((B=window.MotionHandoffIsComplete)!=null&&B.call(window,I))&&((b=window.MotionHasOptimisedAnimation)==null?void 0:b.call(window,I)));return rp(()=>{C.current=!0,N&&(M.current=!0,window.MotionIsMounted=!0,N.updateFeatures(),N.scheduleRenderMicrotask(),U.current&&N.animationState&&N.animationState.animateChanges())}),_.useEffect(()=>{N&&(!U.current&&N.animationState&&N.animationState.animateChanges(),U.current&&(queueMicrotask(()=>{var G;(G=window.MotionHandoffMarkAsComplete)==null||G.call(window,I)}),U.current=!1),N.enteringChildren=void 0)}),N}function fw(n,r,s,a){const{layoutId:u,layout:f,drag:d,dragConstraints:h,layoutScroll:g,layoutRoot:x,layoutAnchor:y,layoutCrossfade:v}=r;n.projection=new s(n.latestValues,r["data-framer-portal-id"]?void 0:zm(n.parent)),n.projection.setOptions({layoutId:u,layout:f,alwaysMeasureLayout:!!d||h&&xr(h),visualElement:n,animationType:typeof f=="string"?f:"both",initialPromotionConfig:a,crossfade:v,layoutScroll:g,layoutRoot:x,layoutAnchor:y})}function zm(n){if(n)return n.options.allowProjection!==!1?n.projection:zm(n.parent)}function Pl(n,{forwardMotionProps:r=!1,type:s}={},a,u){a&&$1(a);const f=s?s==="svg":Lu(n),d=f?lw:aw;function h(x,y){let v;const w={..._.useContext(Mu),...x,layoutId:hw(x)},{isStatic:C}=w,N=Z1(x),D=d(x,C);if(!C&&typeof window<"u"){pw();const M=mw(w);v=M.MeasureLayout,N.visualElement=dw(n,D,w,u,M.ProjectionNode,f)}return m.jsxs(go.Provider,{value:N,children:[v&&N.visualElement?m.jsx(v,{visualElement:N.visualElement,...w}):null,iw(n,x,cw(D,N.visualElement,y),D,C,r,f)]})}h.displayName=`motion.${typeof n=="string"?n:`create(${n.displayName??n.name??""})`}`;const g=_.forwardRef(h);return g[uw]=n,g}function hw({layoutId:n}){const r=_.useContext(iu).id;return r&&n!==void 0?r+"-"+n:n}function pw(n,r){_.useContext(Dm).strict}function mw(n){const r=Lm(),{drag:s,layout:a}=r;if(!s&&!a)return{};const u={...s,...a};return{MeasureLayout:s!=null&&s.isEnabled(n)||a!=null&&a.isEnabled(n)?u.MeasureLayout:void 0,ProjectionNode:u.ProjectionNode}}function gw(n,r){if(typeof Proxy>"u")return Pl;const s=new Map,a=(f,d)=>Pl(f,d,n,r),u=(f,d)=>a(f,d);return new Proxy(u,{get:(f,d)=>d==="create"?a:(s.has(d)||s.set(d,Pl(d,void 0,n,r)),s.get(d))})}const yw=(n,r)=>r.isSVG??Lu(n)?new $x(r):new bx(r,{allowProjection:n!==_.Fragment});class vw extends En{constructor(r){super(r),r.animationState||(r.animationState=Zx(r))}updateAnimationControlsSubscription(){const{animate:r}=this.node.getProps();po(r)&&(this.unmountControls=r.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:r}=this.node.getProps(),{animate:s}=this.node.prevProps||{};r!==s&&this.updateAnimationControlsSubscription()}unmount(){var r;this.node.animationState.reset(),(r=this.unmountControls)==null||r.call(this)}}let xw=0;class ww extends En{constructor(){super(...arguments),this.id=xw++,this.isExitComplete=!1}update(){var f;if(!this.node.presenceContext)return;const{isPresent:r,onExitComplete:s}=this.node.presenceContext,{isPresent:a}=this.node.prevPresenceContext||{};if(!this.node.animationState||r===a)return;if(r&&a===!1){if(this.isExitComplete){const{initial:d,custom:h}=this.node.getProps();if(typeof d=="string"){const g=Kn(this.node,d,h);if(g){const{transition:x,transitionEnd:y,...v}=g;for(const w in v)(f=this.node.getValue(w))==null||f.jump(v[w])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}const u=this.node.animationState.setActive("exit",!r);s&&!r&&u.then(()=>{this.isExitComplete=!0,s(this.id)})}mount(){const{register:r,onExitComplete:s}=this.node.presenceContext||{};s&&s(this.id),r&&(this.unmount=r(this.id))}unmount(){}}const Sw={animation:{Feature:vw},exit:{Feature:ww}};function Ni(n){return{point:{x:n.pageX,y:n.pageY}}}const kw=n=>r=>Cu(r)&&n(r,Ni(r));function Si(n,r,s,a){return Ai(n,r,kw(s),a)}const Om=({current:n})=>n?n.ownerDocument.defaultView:null,Wh=(n,r)=>Math.abs(n-r);function Tw(n,r){const s=Wh(n.x,r.x),a=Wh(n.y,r.y);return Math.sqrt(s**2+a**2)}const Hh=new Set(["auto","scroll"]);class Bm{constructor(r,s,{transformPagePoint:a,contextWindow:u=window,dragSnapToOrigin:f=!1,distanceThreshold:d=3,element:h}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=C=>{this.handleScroll(C.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=Hs(this.lastRawMoveEventInfo,this.transformPagePoint));const C=El(this.lastMoveEventInfo,this.history),N=this.startEvent!==null,D=Tw(C.offset,{x:0,y:0})>=this.distanceThreshold;if(!N&&!D)return;const{point:M}=C,{timestamp:I}=Xe;this.history.push({...M,timestamp:I});const{onStart:U,onMove:B}=this.handlers;N||(U&&U(this.lastMoveEvent,C),this.startEvent=this.lastMoveEvent),B&&B(this.lastMoveEvent,C)},this.handlePointerMove=(C,N)=>{this.lastMoveEvent=C,this.lastRawMoveEventInfo=N,this.lastMoveEventInfo=Hs(N,this.transformPagePoint),we.update(this.updatePoint,!0)},this.handlePointerUp=(C,N)=>{this.end();const{onEnd:D,onSessionEnd:M,resumeAnimation:I}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&I&&I(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const U=El(C.type==="pointercancel"?this.lastMoveEventInfo:Hs(N,this.transformPagePoint),this.history);this.startEvent&&D&&D(C,U),M&&M(C,U)},!Cu(r))return;this.dragSnapToOrigin=f,this.handlers=s,this.transformPagePoint=a,this.distanceThreshold=d,this.contextWindow=u||window;const g=Ni(r),x=Hs(g,this.transformPagePoint),{point:y}=x,{timestamp:v}=Xe;this.history=[{...y,timestamp:v}];const{onSessionStart:w}=s;w&&w(r,El(x,this.history)),this.removeListeners=Pi(Si(this.contextWindow,"pointermove",this.handlePointerMove),Si(this.contextWindow,"pointerup",this.handlePointerUp),Si(this.contextWindow,"pointercancel",this.handlePointerUp)),h&&this.startScrollTracking(h)}startScrollTracking(r){let s=r.parentElement;for(;s;){const a=getComputedStyle(s);(Hh.has(a.overflowX)||Hh.has(a.overflowY))&&this.scrollPositions.set(s,{x:s.scrollLeft,y:s.scrollTop}),s=s.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(r){const s=this.scrollPositions.get(r);if(!s)return;const a=r===window,u=a?{x:window.scrollX,y:window.scrollY}:{x:r.scrollLeft,y:r.scrollTop},f={x:u.x-s.x,y:u.y-s.y};f.x===0&&f.y===0||(a?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=f.x,this.lastMoveEventInfo.point.y+=f.y):this.history.length>0&&(this.history[0].x-=f.x,this.history[0].y-=f.y),this.scrollPositions.set(r,u),we.update(this.updatePoint,!0))}updateHandlers(r){this.handlers=r}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),Pn(this.updatePoint)}}function Hs(n,r){return r?{point:r(n.point)}:n}function Gh(n,r){return{x:n.x-r.x,y:n.y-r.y}}function El({point:n},r){return{point:n,delta:Gh(n,bm(r)),offset:Gh(n,Cw(r)),velocity:Aw(r,.1)}}function Cw(n){return n[0]}function bm(n){return n[n.length-1]}function Aw(n,r){if(n.length<2)return{x:0,y:0};let s=n.length-1,a=null;const u=bm(n);for(;s>=0&&(a=n[s],!(u.timestamp-a.timestamp>gt(r)));)s--;if(!a)return{x:0,y:0};a===n[0]&&n.length>2&&u.timestamp-a.timestamp>gt(r)*2&&(a=n[1]);const f=Tt(u.timestamp-a.timestamp);if(f===0)return{x:0,y:0};const d={x:(u.x-a.x)/f,y:(u.y-a.y)/f};return d.x===1/0&&(d.x=0),d.y===1/0&&(d.y=0),d}function Pw(n,{min:r,max:s},a){return r!==void 0&&ns&&(n=a?Pe(s,n,a.max):Math.min(n,s)),n}function Kh(n,r,s){return{min:r!==void 0?n.min+r:void 0,max:s!==void 0?n.max+s-(n.max-n.min):void 0}}function Ew(n,{top:r,left:s,bottom:a,right:u}){return{x:Kh(n.x,s,u),y:Kh(n.y,r,a)}}function $h(n,r){let s=r.min-n.min,a=r.max-n.max;return r.max-r.mina?s=ki(r.min,r.max-a,n.min):a>u&&(s=ki(n.min,n.max-u,r.min)),$t(0,1,s)}function Mw(n,r){const s={};return r.min!==void 0&&(s.min=r.min-n.min),r.max!==void 0&&(s.max=r.max-n.min),s}const Jl=.35;function Dw(n=Jl){return n===!1?n=0:n===!0&&(n=Jl),{x:Yh(n,"left","right"),y:Yh(n,"top","bottom")}}function Yh(n,r,s){return{min:Xh(n,r),max:Xh(n,s)}}function Xh(n,r){return typeof n=="number"?n:n[r]||0}const Lw=new WeakMap;class Rw{constructor(r){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=We(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=r}start(r,{snapToCursor:s=!1,distanceThreshold:a}={}){const{presenceContext:u}=this.visualElement;if(u&&u.isPresent===!1)return;const f=v=>{s&&this.snapToCursor(Ni(v).point),this.stopAnimation()},d=(v,w)=>{const{drag:C,dragPropagation:N,onDragStart:D}=this.getProps();if(C&&!N&&(this.openDragLock&&this.openDragLock(),this.openDragLock=ox(C),!this.openDragLock))return;this.latestPointerEvent=v,this.latestPanInfo=w,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Wt(I=>{let U=this.getAxisMotionValue(I).get()||0;if(Kt.test(U)){const{projection:B}=this.visualElement;if(B&&B.layout){const b=B.layout.layoutBox[I];b&&(U=it(b)*(parseFloat(U)/100))}}this.originPoint[I]=U}),D&&we.update(()=>D(v,w),!1,!0),Hl(this.visualElement,"transform");const{animationState:M}=this.visualElement;M&&M.setActive("whileDrag",!0)},h=(v,w)=>{this.latestPointerEvent=v,this.latestPanInfo=w;const{dragPropagation:C,dragDirectionLock:N,onDirectionLock:D,onDrag:M}=this.getProps();if(!C&&!this.openDragLock)return;const{offset:I}=w;if(N&&this.currentDirection===null){this.currentDirection=Vw(I),this.currentDirection!==null&&D&&D(this.currentDirection);return}this.updateAxis("x",w.point,I),this.updateAxis("y",w.point,I),this.visualElement.render(),M&&we.update(()=>M(v,w),!1,!0)},g=(v,w)=>{this.latestPointerEvent=v,this.latestPanInfo=w,this.stop(v,w),this.latestPointerEvent=null,this.latestPanInfo=null},x=()=>{const{dragSnapToOrigin:v}=this.getProps();(v||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:y}=this.getProps();this.panSession=new Bm(r,{onSessionStart:f,onStart:d,onMove:h,onSessionEnd:g,resumeAnimation:x},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:y,distanceThreshold:a,contextWindow:Om(this.visualElement),element:this.visualElement.current})}stop(r,s){const a=r||this.latestPointerEvent,u=s||this.latestPanInfo,f=this.isDragging;if(this.cancel(),!f||!u||!a)return;const{velocity:d}=u;this.startAnimation(d);const{onDragEnd:h}=this.getProps();h&&we.postRender(()=>h(a,u))}cancel(){this.isDragging=!1;const{projection:r,animationState:s}=this.visualElement;r&&(r.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:a}=this.getProps();!a&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),s&&s.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(r,s,a){const{drag:u}=this.getProps();if(!a||!Gs(r,u,this.currentDirection))return;const f=this.getAxisMotionValue(r);let d=this.originPoint[r]+a[r];this.constraints&&this.constraints[r]&&(d=Pw(d,this.constraints[r],this.elastic[r])),f.set(d)}resolveConstraints(){var f;const{dragConstraints:r,dragElastic:s}=this.getProps(),a=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(f=this.visualElement.projection)==null?void 0:f.layout,u=this.constraints;r&&xr(r)?this.constraints||(this.constraints=this.resolveRefConstraints()):r&&a?this.constraints=Ew(a.layoutBox,r):this.constraints=!1,this.elastic=Dw(s),u!==this.constraints&&!xr(r)&&a&&this.constraints&&!this.hasMutatedConstraints&&Wt(d=>{this.constraints!==!1&&this.getAxisMotionValue(d)&&(this.constraints[d]=Mw(a.layoutBox[d],this.constraints[d]))})}resolveRefConstraints(){const{dragConstraints:r,onMeasureDragConstraints:s}=this.getProps();if(!r||!xr(r))return!1;const a=r.current,{projection:u}=this.visualElement;if(!u||!u.layout)return!1;const f=Vx(a,u.root,this.visualElement.getTransformPagePoint());let d=jw(u.layout.layoutBox,f);if(s){const h=s(Lx(d));this.hasMutatedConstraints=!!h,h&&(d=lm(h))}return d}startAnimation(r){const{drag:s,dragMomentum:a,dragElastic:u,dragTransition:f,dragSnapToOrigin:d,onDragTransitionEnd:h}=this.getProps(),g=this.constraints||{},x=Wt(y=>{if(!Gs(y,s,this.currentDirection))return;let v=g&&g[y]||{};(d===!0||d===y)&&(v={min:0,max:0});const w=u?200:1e6,C=u?40:1e7,N={type:"inertia",velocity:a?r[y]:0,bounceStiffness:w,bounceDamping:C,timeConstant:750,restDelta:1,restSpeed:10,...f,...v};return this.startAxisValueAnimation(y,N)});return Promise.all(x).then(h)}startAxisValueAnimation(r,s){const a=this.getAxisMotionValue(r);return Hl(this.visualElement,r),a.start(xu(r,a,0,s,this.visualElement,!1))}stopAnimation(){Wt(r=>this.getAxisMotionValue(r).stop())}getAxisMotionValue(r){const s=`_drag${r.toUpperCase()}`,a=this.visualElement.getProps(),u=a[s];return u||this.visualElement.getValue(r,(a.initial?a.initial[r]:void 0)||0)}snapToCursor(r){Wt(s=>{const{drag:a}=this.getProps();if(!Gs(s,a,this.currentDirection))return;const{projection:u}=this.visualElement,f=this.getAxisMotionValue(s);if(u&&u.layout){const{min:d,max:h}=u.layout.layoutBox[s],g=f.get()||0;f.set(r[s]-Pe(d,h,.5)+g)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:r,dragConstraints:s}=this.getProps(),{projection:a}=this.visualElement;if(!xr(s)||!a||!this.constraints)return;this.stopAnimation();const u={x:0,y:0};Wt(d=>{const h=this.getAxisMotionValue(d);if(h&&this.constraints!==!1){const g=h.get();u[d]=Nw({min:g,max:g},this.constraints[d])}});const{transformTemplate:f}=this.visualElement.getProps();this.visualElement.current.style.transform=f?f({},""):"none",a.root&&a.root.updateScroll(),a.updateLayout(),this.constraints=!1,this.resolveConstraints(),Wt(d=>{if(!Gs(d,r,null))return;const h=this.getAxisMotionValue(d),{min:g,max:x}=this.constraints[d];h.set(Pe(g,x,u[d]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;Lw.set(this.visualElement,this);const r=this.visualElement.current,s=Si(r,"pointerdown",x=>{const{drag:y,dragListener:v=!0}=this.getProps(),w=x.target,C=w!==r&&fx(w);y&&v&&!C&&this.start(x)});let a;const u=()=>{const{dragConstraints:x}=this.getProps();xr(x)&&x.current&&(this.constraints=this.resolveRefConstraints(),a||(a=Fw(r,x.current,()=>this.scalePositionWithinConstraints())))},{projection:f}=this.visualElement,d=f.addEventListener("measure",u);f&&!f.layout&&(f.root&&f.root.updateScroll(),f.updateLayout()),we.read(u);const h=Ai(window,"resize",()=>this.scalePositionWithinConstraints()),g=f.addEventListener("didUpdate",(({delta:x,hasLayoutChanged:y})=>{this.isDragging&&y&&(Wt(v=>{const w=this.getAxisMotionValue(v);w&&(this.originPoint[v]+=x[v].translate,w.set(w.get()+x[v].translate))}),this.visualElement.render())}));return()=>{h(),s(),d(),g&&g(),a&&a()}}getProps(){const r=this.visualElement.getProps(),{drag:s=!1,dragDirectionLock:a=!1,dragPropagation:u=!1,dragConstraints:f=!1,dragElastic:d=Jl,dragMomentum:h=!0}=r;return{...r,drag:s,dragDirectionLock:a,dragPropagation:u,dragConstraints:f,dragElastic:d,dragMomentum:h}}}function Qh(n){let r=!0;return()=>{if(r){r=!1;return}n()}}function Fw(n,r,s){const a=rh(n,Qh(s)),u=rh(r,Qh(s));return()=>{a(),u()}}function Gs(n,r,s){return(r===!0||r===n)&&(s===null||s===n)}function Vw(n,r=10){let s=null;return Math.abs(n.y)>r?s="y":Math.abs(n.x)>r&&(s="x"),s}class Iw extends En{constructor(r){super(r),this.removeGroupControls=Ct,this.removeListeners=Ct,this.controls=new Rw(r)}mount(){const{dragControls:r}=this.node.getProps();r&&(this.removeGroupControls=r.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Ct}update(){const{dragControls:r}=this.node.getProps(),{dragControls:s}=this.node.prevProps||{};r!==s&&(this.removeGroupControls(),r&&(this.removeGroupControls=r.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const jl=n=>(r,s)=>{n&&we.update(()=>n(r,s),!1,!0)};class _w extends En{constructor(){super(...arguments),this.removePointerDownListener=Ct}onPointerDown(r){this.session=new Bm(r,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Om(this.node)})}createPanHandlers(){const{onPanSessionStart:r,onPanStart:s,onPan:a,onPanEnd:u}=this.node.getProps();return{onSessionStart:jl(r),onStart:jl(s),onMove:jl(a),onEnd:(f,d)=>{delete this.session,u&&we.postRender(()=>u(f,d))}}}mount(){this.removePointerDownListener=Si(this.node.current,"pointerdown",r=>this.onPointerDown(r))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let Nl=!1;class zw extends _.Component{componentDidMount(){const{visualElement:r,layoutGroup:s,switchLayoutGroup:a,layoutId:u}=this.props,{projection:f}=r;f&&(s.group&&s.group.add(f),a&&a.register&&u&&a.register(f),Nl&&f.root.didUpdate(),f.addEventListener("animationComplete",()=>{this.safeToRemove()}),f.setOptions({...f.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),eo.hasEverUpdated=!0}getSnapshotBeforeUpdate(r){const{layoutDependency:s,visualElement:a,drag:u,isPresent:f}=this.props,{projection:d}=a;return d&&(d.isPresent=f,r.layoutDependency!==s&&d.setOptions({...d.options,layoutDependency:s}),Nl=!0,u||r.layoutDependency!==s||s===void 0||r.isPresent!==f?d.willUpdate():this.safeToRemove(),r.isPresent!==f&&(f?d.promote():d.relegate()||we.postRender(()=>{const h=d.getStack();(!h||!h.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{visualElement:r,layoutAnchor:s}=this.props,{projection:a}=r;a&&(a.options.layoutAnchor=s,a.root.didUpdate(),Tu.postRender(()=>{!a.currentAnimation&&a.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:r,layoutGroup:s,switchLayoutGroup:a}=this.props,{projection:u}=r;Nl=!0,u&&(u.scheduleCheckAfterUnmount(),s&&s.group&&s.group.remove(u),a&&a.deregister&&a.deregister(u))}safeToRemove(){const{safeToRemove:r}=this.props;r&&r()}render(){return null}}function Um(n){const[r,s]=Mm(),a=_.useContext(iu);return m.jsx(zw,{...n,layoutGroup:a,switchLayoutGroup:_.useContext(_m),isPresent:r,safeToRemove:s})}const Ow={pan:{Feature:_w},drag:{Feature:Iw,ProjectionNode:Nm,MeasureLayout:Um}};function qh(n,r,s){const{props:a}=n;n.animationState&&a.whileHover&&n.animationState.setActive("whileHover",s==="Start");const u="onHover"+s,f=a[u];f&&we.postRender(()=>f(r,Ni(r)))}class Bw extends En{mount(){const{current:r}=this.node;r&&(this.unmount=lx(r,(s,a)=>(qh(this.node,a,"Start"),u=>qh(this.node,u,"End"))))}unmount(){}}class bw extends En{constructor(){super(...arguments),this.isActive=!1}onFocus(){let r=!1;try{r=this.node.current.matches(":focus-visible")}catch{r=!0}!r||!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=Pi(Ai(this.node.current,"focus",()=>this.onFocus()),Ai(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Zh(n,r,s){const{props:a}=n;if(n.current instanceof HTMLButtonElement&&n.current.disabled)return;n.animationState&&a.whileTap&&n.animationState.setActive("whileTap",s==="Start");const u="onTap"+(s==="End"?"":s),f=a[u];f&&we.postRender(()=>f(r,Ni(r)))}class Uw extends En{mount(){const{current:r}=this.node;if(!r)return;const{globalTapTarget:s,propagate:a}=this.node.props;this.unmount=px(r,(u,f)=>(Zh(this.node,f,"Start"),(d,{success:h})=>Zh(this.node,d,h?"End":"Cancel")),{useGlobalTarget:s,stopPropagation:(a==null?void 0:a.tap)===!1})}unmount(){}}const eu=new WeakMap,Ml=new WeakMap,Ww=n=>{const r=eu.get(n.target);r&&r(n)},Hw=n=>{n.forEach(Ww)};function Gw({root:n,...r}){const s=n||document;Ml.has(s)||Ml.set(s,{});const a=Ml.get(s),u=JSON.stringify(r);return a[u]||(a[u]=new IntersectionObserver(Hw,{root:n,...r})),a[u]}function Kw(n,r,s){const a=Gw(r);return eu.set(n,s),a.observe(n),()=>{eu.delete(n),a.unobserve(n)}}const $w={some:0,all:1};class Yw extends En{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){var g;(g=this.stopObserver)==null||g.call(this);const{viewport:r={}}=this.node.getProps(),{root:s,margin:a,amount:u="some",once:f}=r,d={root:s?s.current:void 0,rootMargin:a,threshold:typeof u=="number"?u:$w[u]},h=x=>{const{isIntersecting:y}=x;if(this.isInView===y||(this.isInView=y,f&&!y&&this.hasEnteredView))return;y&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",y);const{onViewportEnter:v,onViewportLeave:w}=this.node.getProps(),C=y?v:w;C&&C(x)};this.stopObserver=Kw(this.node.current,d,h)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:r,prevProps:s}=this.node;["amount","margin","root"].some(Xw(r,s))&&this.startObserver()}unmount(){var r;(r=this.stopObserver)==null||r.call(this),this.hasEnteredView=!1,this.isInView=!1}}function Xw({viewport:n={}},{viewport:r={}}={}){return s=>n[s]!==r[s]}const Qw={inView:{Feature:Yw},tap:{Feature:Uw},focus:{Feature:bw},hover:{Feature:Bw}},qw={layout:{ProjectionNode:Nm,MeasureLayout:Um}},Zw={...Sw,...Qw,...Ow,...qw},ge=gw(Zw,yw);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Jw=n=>n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Wm=(...n)=>n.filter((r,s,a)=>!!r&&r.trim()!==""&&a.indexOf(r)===s).join(" ").trim();/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */var eS={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const tS=_.forwardRef(({color:n="currentColor",size:r=24,strokeWidth:s=2,absoluteStrokeWidth:a,className:u="",children:f,iconNode:d,...h},g)=>_.createElement("svg",{ref:g,...eS,width:r,height:r,stroke:n,strokeWidth:a?Number(s)*24/Number(r):s,className:Wm("lucide",u),...h},[...d.map(([x,y])=>_.createElement(x,y)),...Array.isArray(f)?f:[f]]));/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const At=(n,r)=>{const s=_.forwardRef(({className:a,...u},f)=>_.createElement(tS,{ref:f,iconNode:r,className:Wm(`lucide-${Jw(n)}`,a),...u}));return s.displayName=`${n}`,s};/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Hm=At("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const nS=At("Briefcase",[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Tr=At("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Gm=At("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Jh=At("Github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ep=At("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const rS=At("Layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Km=At("Linkedin",[["path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",key:"c2jq9f"}],["rect",{width:"4",height:"12",x:"2",y:"9",key:"mk3on5"}],["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const tu=At("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const iS=At("Phone",[["path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",key:"foiqr5"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const co=At("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** - * @license lucide-react v0.469.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const nu=At("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]),Ft={name:"Khoa.vo",title:"CREATIVE MANAGER & AI INNOVATION LEAD",location:"Ho Chi Minh City, Vietnam",phone:"0398300340",email:"vonguyendangkhoa@gmail.com",linkedin:"linkedin.com/in/khoavo",portfolio:"khoavo.myds.me",summaryHeadline:"Visionary Creative Leader merging Brand Strategy with Generative AI.",summaryBody:`With 9+ years of expertise at global firms like P&G and Phibious, I bridge the gap between artistic direction and high-performance automation. I specialize in designing scalable AI video production workflows and agentic systems that serve Fortune 500 brands while driving measurable growth and operational excellence. - -Beyond traditional creative direction, my recent evolution into an AI-Powered Developer enables me to architect custom web applications and full-stack deployment pipelines (React, Go, Docker). By unifying deep brand-building experience with hands-on coding and machine learning integration, I transform creative conceptualization into quantifiable, automated, and highly scalable digital realities.`},Ks=[{period:"2012 - 2016",school:"RMIT University",degree:"Bachelor of Multimedia Design",details:"Graduated with Excellence."}],sS=["Creative Direction","Brand Strategy","Team Mentorship","GenAI Workflows","ComfyUI & FLUX","AI Video Systems","Adobe Creative Suite","Motion Graphics","3D Visualization","Full-Stack Dev","Agentic AI","Automation SOPs"],oS=[{role:"AI Creative Lead",company:"Phibious Vietnam",period:"Jun 2025 - Present",highlights:["Spearheaded the transformation of video production workflows via AI and automation, achieving a 60% measurable gain in output volume.","Acted as a creative multiplier, leading regional stakeholders and cross-functional teams to automate end-to-end content lifecycles.","Standardized end-to-end AI video production SOPs—ranging from AI-led scripting to automated localization—ensuring brand compliance across Southeast Asian markets.","Drove Regional Enablement by mentoring 20+ producers on prompt engineering, AI ethics, and workflow standardization."]},{role:"eCOM Design Lead",company:"Procter & Gamble",period:"Sep 2023 - Jun 2025",highlights:["Directed visual strategies for P&G's Hair Care portfolio across SEA, impacting millions of consumers effectively.","Managed end-to-end design lifecycles, ensuring strict brand compliance and high-volume output across regional markets.","Collaborated with global brand teams to localize and scale omnichannel retail experiences."]},{role:"Associate Brand Manager (Design)",company:"P&G Vietnam",period:"Nov 2020 - Sep 2023",highlights:["Developed core visual concepts for major product launches, including packaging and digital touchpoints for regional SEA markets.","Optimized internal design processes, reducing asset turnaround time for regional marketing teams by 30%.","Mastered corporate identity systems, ensuring consistent brand expression across all platforms and physical retail environments."]},{role:"Production Creative Lead",company:"Inn Saigon",period:"Dec 2019 - Nov 2020",highlights:["Directed a multi-disciplinary team of photographers and retouchers for high-profile hospitality clients.","Managed production budgets and resource allocation for 30+ simultaneous client accounts.","Implemented quality control frameworks that reduced post-production errors by 40%."]}],aS=[{name:"KV-Tube",tech:"Go, Next.js, Docker",desc:"Enterprise-grade HLS video streaming platform with custom NAS deployment architecture."},{name:"APIx GenAI",tech:"TypeScript, LLM APIs",desc:"A custom AI image generation portal integrating multiple LLM and Diffusion providers."}],tp=({size:n=100,vnColor:r="#000000",dkColor:s="#333333"})=>m.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",width:n,height:n,fill:"none",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round",children:[m.jsx("path",{stroke:r,d:"M 15 25 L 30 45 L 45 25"}),m.jsx("path",{stroke:r,d:"M 55 45 L 55 25 L 85 45 L 85 25"}),m.jsx("path",{stroke:s,d:"M 15 55 L 30 55 A 10 10 0 0 1 30 75 L 15 75 Z"}),m.jsx("path",{stroke:s,d:"M 55 55 L 55 75 M 85 55 L 55 65 L 85 75"})]}),ce={accent:"#222222",black:"#000000",white:"#FFFFFF",grey:"#444444",muted:"#666666",border:"#DDDDDD"},oe={container:{width:"100%",maxWidth:"210mm",background:ce.white,fontFamily:"'Inter', sans-serif",color:ce.black,margin:"0 auto",boxSizing:"border-box",display:"flex",flexDirection:"column",position:"relative",zIndex:1},documentContainer:{padding:"0",backgroundColor:ce.white,display:"flex",flexDirection:"column"},headerWrapper:{backgroundColor:ce.white,padding:"16mm 18mm 12mm 18mm",width:"100%",boxSizing:"border-box",borderTop:`6mm solid ${ce.black}`,borderBottom:`1px solid ${ce.border}`,marginBottom:"10mm"},topHeader:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"10mm"},logoSlot:{border:`2px solid ${ce.black}`,padding:"2mm",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:ce.white},nameTitle:{display:"flex",flexDirection:"column",flex:1,marginLeft:"12mm"},name:{fontSize:"28pt",fontWeight:800,letterSpacing:"-0.02em",color:ce.black,marginBottom:"1mm"},title:{fontSize:"12pt",fontWeight:700,color:ce.muted,letterSpacing:"0.08em",textTransform:"uppercase"},contactInfo:{textAlign:"right",fontSize:"9pt",fontWeight:600,color:ce.black,lineHeight:"1.8"},headerLine:{width:"100%",height:"1.5px",backgroundColor:ce.black,margin:"8mm 0 4mm 0",position:"relative"},headerLineAccent:{position:"absolute",right:"0",top:"0",width:"30%",height:"1.5px",backgroundColor:ce.accent},summaryHeadline:{fontSize:"22pt",fontWeight:800,lineHeight:"1.2",marginBottom:"8mm",color:ce.black,maxWidth:"90%"},summaryParagraph:{fontSize:"11pt",color:ce.grey,marginBottom:"12mm",textAlign:"justify",lineHeight:"1.7",whiteSpace:"pre-wrap"},skillsGrid:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:"3mm 10mm"},skillItem:{fontSize:"10pt",display:"flex",alignItems:"center",gap:"4mm",fontWeight:600},skillIcon:{width:"6mm",height:"1.5px",backgroundColor:ce.accent},mainBody:{padding:"0 18mm",flex:1},sectionHeading:{fontSize:"11pt",fontWeight:900,textTransform:"uppercase",letterSpacing:"0.2em",marginBottom:"10mm",color:ce.black,borderLeft:`5mm solid ${ce.accent}`,paddingLeft:"5mm",pageBreakAfter:"avoid",breakAfter:"avoid"},experienceRow:{display:"grid",gridTemplateColumns:"1.3fr 2fr",gap:"12mm",marginBottom:"12mm"},experienceMeta:{display:"flex",flexDirection:"column"},expRole:{fontSize:"13pt",fontWeight:800,marginBottom:"2mm"},expCompany:{fontSize:"10.5pt",fontWeight:600,color:ce.muted},expPeriod:{fontSize:"9.5pt",color:ce.muted,marginTop:"3mm",fontFamily:"monospace",fontWeight:"bold"},expHighlights:{margin:0,paddingLeft:"6mm",listStyleType:"none"},highlightItem:{marginBottom:"4mm",textAlign:"justify",fontSize:"10.5pt",position:"relative",lineHeight:"1.6",pageBreakInside:"avoid",breakInside:"avoid"},highlightBullet:{position:"absolute",left:"-6mm",top:"2.5mm",width:"3.5mm",height:"1px",backgroundColor:ce.accent},techMeta:{fontFamily:"monospace",fontSize:"10pt",color:ce.black,backgroundColor:ce.white,padding:"1.5mm 3mm",borderLeft:`2px solid ${ce.accent}`,border:`1px solid ${ce.border}`,marginTop:"3mm"},footer:{marginTop:"10mm",padding:"10mm 18mm",textAlign:"center",fontSize:"9pt",color:ce.muted,borderTop:`1px solid ${ce.border}`,display:"flex",justifyContent:"space-between",alignItems:"center",pageBreakInside:"avoid",breakInside:"avoid"}};function lS(){return Ft?m.jsx("div",{style:oe.container,className:"print-portfolio-content",children:m.jsxs("div",{style:oe.documentContainer,children:[m.jsxs("div",{style:oe.headerWrapper,children:[m.jsxs("div",{style:oe.topHeader,children:[m.jsx("div",{style:oe.logoSlot,children:m.jsx(tp,{size:64})}),m.jsxs("div",{style:oe.nameTitle,children:[m.jsx("h1",{style:oe.name,children:Ft.name}),m.jsx("div",{style:oe.title,children:Ft.title})]}),m.jsxs("div",{style:oe.contactInfo,children:[m.jsx("div",{children:Ft.email}),m.jsx("div",{children:Ft.phone}),m.jsx("div",{style:{color:ce.muted,textDecoration:"underline"},children:Ft.portfolio})]})]}),m.jsx("div",{style:oe.headerLine,children:m.jsx("div",{style:oe.headerLineAccent})}),m.jsx("div",{style:{...oe.expPeriod,marginBottom:"10mm",textAlign:"right"},children:Ft.location}),m.jsx("h2",{style:oe.summaryHeadline,children:Ft.summaryHeadline}),m.jsx("p",{style:oe.summaryParagraph,children:Ft.summaryBody}),m.jsx("div",{style:{marginBottom:"8mm",fontSize:"10.5pt",fontWeight:900,textTransform:"uppercase",color:ce.black,letterSpacing:"0.15em"},children:"Branded Expertise"}),m.jsx("div",{style:oe.skillsGrid,children:sS.map((n,r)=>m.jsxs("div",{style:oe.skillItem,children:[m.jsx("div",{style:oe.skillIcon}),n]},r))})]}),m.jsxs("div",{style:oe.mainBody,children:[m.jsx("div",{style:oe.sectionHeading,children:"Experience Journey"}),oS.map((n,r)=>m.jsxs("div",{style:oe.experienceRow,children:[m.jsxs("div",{style:oe.experienceMeta,children:[m.jsx("div",{style:oe.expRole,children:n.role}),m.jsx("div",{style:oe.expCompany,children:n.company}),m.jsx("div",{style:oe.expPeriod,children:n.period})]}),m.jsx("ul",{style:oe.expHighlights,children:n.highlights&&n.highlights.map((s,a)=>m.jsxs("li",{style:oe.highlightItem,children:[m.jsx("div",{style:oe.highlightBullet}),s]},a))})]},r)),m.jsx("div",{style:{...oe.sectionHeading,marginTop:"8mm"},children:"Branded Systems & Tech"}),aS.map((n,r)=>m.jsxs("div",{style:oe.experienceRow,children:[m.jsxs("div",{style:oe.experienceMeta,children:[m.jsx("div",{style:{...oe.expRole,fontSize:"12pt"},children:n.name}),m.jsx("div",{style:oe.techMeta,children:n.tech})]}),m.jsx("div",{style:{fontSize:"11pt",color:ce.grey,lineHeight:"1.7"},children:n.desc})]},r)),m.jsx("div",{style:{...oe.sectionHeading,marginTop:"8mm"},children:"Foundation & Recognition"}),m.jsxs("div",{style:oe.experienceRow,children:[m.jsxs("div",{style:oe.experienceMeta,children:[m.jsx("div",{style:oe.expRole,children:Ks[0].school}),m.jsx("div",{style:oe.expPeriod,children:Ks[0].period})]}),m.jsxs("div",{style:{fontSize:"11pt",color:ce.grey},children:[m.jsx("strong",{style:{color:ce.black},children:Ks[0].degree})," (",Ks[0].details,")",m.jsx("br",{}),m.jsx("div",{style:{marginTop:"6mm",borderTop:`1px solid ${ce.border}`,paddingTop:"4mm"},children:m.jsx("div",{style:{display:"grid",gridTemplateColumns:"1fr",gap:"3mm"},children:m.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"3mm"},children:[m.jsx("div",{style:{...oe.skillIcon,width:"4mm"}}),m.jsx("span",{children:"P&G SEA Digital Awards (Best Digital Campaign, 2024)"})]})})})]})]})]}),m.jsxs("div",{style:oe.footer,children:[m.jsxs("div",{style:{display:"flex",gap:"6mm"},children:[m.jsx("span",{children:Ft.linkedin}),m.jsx("span",{children:Ft.portfolio})]}),m.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"4mm"},children:[m.jsx(tp,{size:24}),m.jsx("span",{style:{fontWeight:900,color:ce.black},children:"VNDK // CV"})]})]})]})}):null}const Ht={name:"Vo Nguyen Dang Khoa",phone:"0398300340",email:"vonguyendangkhoa@gmail.com",location:"Ho Chi Minh City, Vietnam",linkedin:"https://www.linkedin.com/in/khoa-vo-76291236/",portfolio:"https://khoavo.myds.me/"},Ut={title:"Creative Manager & AI Innovation Lead",summary:"Visionary Creative Leader with 9+ years of expertise bridging brand strategy, digital design, motion graphics, and cutting-edge generative AI. Currently pioneering AI-augmented creative workflows at Phibious, merging traditional art direction with ComfyUI, Stable Diffusion, and FLUX to redefine what's possible in visual storytelling. Previously led eCommerce design at P&G, shaping digital experiences for millions of consumers across Southeast Asia.",tagline:"Where Design Meets Intelligence",skills:[{category:"AI & Generative Design",items:["ComfyUI","Stable Diffusion","FLUX","Midjourney","RunwayML","Ollama","LM Studio","LoRA Training","ControlNet","IP-Adapter"]},{category:"Design & Creative Tools",items:["Adobe Creative Suite","Figma","After Effects","Premiere Pro","Cinema 4D","Blender","Photoshop","Illustrator","InDesign"]},{category:"Motion & Animation",items:["Motion Graphics","3D Animation","Kinetic Typography","Visual Effects","Character Animation","Storyboarding"]},{category:"Brand & Strategy",items:["Brand Identity","Art Direction","Visual Storytelling","Editorial Design","Packaging Design","Strategic Design"]}],projects:[{id:1,title:"The Language of Poetry & Literature",category:"AI Generated Art",image:"https://portfolio.khoavo.myds.me/wp-content/uploads/2025/08/i2i_1756355661_62547902.png",description:"Exploring the ethereal boundary between reality and imagination through AI-generated visuals. Created with Stable Diffusion, ComfyUI, and custom LoRA training to capture the intangible essence of poetic imagery.",link:"https://portfolio.khoavo.myds.me/2025/08/28/the-language-of-poetry-and-literature/",year:"2025"},{id:2,title:"Delux Perfume – Fineline 2025 Launch",category:"AI Branding & Video",image:"https://portfolio.khoavo.myds.me/wp-content/uploads/2025/08/Delux-Perfume_red.png",description:"End-to-end creative strategy and art direction for premium perfume launch. From AI-generated mood boards and product visuals to cinematic video production, creating a cohesive brand narrative for Southeast Asia market.",link:"https://portfolio.khoavo.myds.me/2025/08/11/giving-art-direction-to-a-brand-a-case-study/",year:"2025"},{id:3,title:"AI Studio Photography",category:"AI-Generated Branding",image:"https://portfolio.khoavo.myds.me/wp-content/uploads/2025/07/img_0317.jpg",description:"Revolutionary approach to professional studio photography using AI. ComfyUI workflows with custom LoRA to generate studio-quality product and portrait images, reducing production costs by 70%.",link:"https://portfolio.khoavo.myds.me/2025/07/27/%F0%9F%A7%A0%F0%9F%93%B8-ai-studio-i-can-do-that-too/",year:"2025"},{id:4,title:"NAVIGATOR – ASIAMARINE Magazine",category:"Editorial Design",image:"https://portfolio.khoavo.myds.me/wp-content/uploads/2020/10/navigator-vol1_page_001.webp",description:"Complete editorial design for Vietnam's premier yacht market publication. Art direction, layout design, and visual storytelling for a luxury marine sector brand reaching high-net-worth readers across Asia.",link:"https://portfolio.khoavo.myds.me/2020/10/20/navigator/",year:"2020"},{id:5,title:"PetroVietnam – PCT Corporate Identity",category:"Brand Identity & 3D",image:"https://portfolio.khoavo.myds.me/wp-content/uploads/2017/04/cip_mockup2.png",description:"Comprehensive corporate identity for PetroVietnam Transportation. 3D vehicle visualization, logo design, stationery system, and POSM materials creating a cohesive national brand presence.",link:"https://portfolio.khoavo.myds.me/2017/04/10/petrovietnam-pct/",year:"2017"},{id:6,title:"Skyxx – Animated Poster Series",category:"Motion Graphics",image:"https://portfolio.khoavo.myds.me/wp-content/uploads/2019/04/aash-3-scaled.jpg",description:"Award-winning weekly animated poster series for entertainment events. Dynamic motion graphics with 3D elements, pushing creative boundaries under tight deadlines while maintaining exceptional quality.",link:"https://portfolio.khoavo.myds.me/2019/02/17/skyxx-poster-animation/",year:"2019"}],experience:[{role:"AI Creative Lead",company:"Phibious Vietnam",period:"2025 - Present",location:"Ho Chi Minh City",highlights:["Spearheaded the transformation of video production workflows via AI and automation, achieving a 60% measurable gain in output volume","Acted as a creative multiplier, leading regional stakeholders and cross-functional teams to automate end-to-end content lifecycles","Designed and deployed Agentic AI systems and custom frameworks for rapid concept-to-video prototyping, serving global Fortune 500 brands","Drove Regional Enablement by establishing SOPs and mentoring 20+ producers on prompt engineering, AI ethics, and workflow standardization"]},{role:"eCommerce Design Lead",company:"Procter & Gamble (P&G)",period:"2020 - 2025",location:"Ho Chi Minh City",highlights:["Led visual strategy for eCommerce platforms across Hair Care category, directly impacting millions of consumers in SEA","Managed end-to-end design projects from concept to execution, aligning with global marketing strategies","Spearheaded the digital transformation of brand assets for omnichannel retail experiences","Mentored junior designers and established design standards adopted across the regional team"]},{role:"Production Creative Lead",company:"INN SaiGon",period:"Dec 2019 - Nov 2020",location:"Ho Chi Minh City",highlights:["Directed photography production for food, product, and event projects with 30+ client accounts","Established comprehensive brand guidelines and visual standards ensuring consistency across deliverables","Optimized post-production workflows, reducing turnaround time by 40%"]},{role:"Regional Head of Design",company:"ASIAMARINE",period:"2018 - 2019",location:"Ho Chi Minh City",highlights:["Led design team creating digital marketing assets, web graphics, and editorial content for luxury yacht brand","Delegated projects to junior designers while maintaining quality control and brand consistency","Collaborated with international teams to localize content for Asian markets"]},{role:"Senior Graphic Designer",company:"EMG - Element Management Group",period:"2017 - 2018",location:"Ho Chi Minh City",highlights:["Created impactful designs for print and digital campaigns for global luxury and lifestyle brands","Expert in photo sourcing, advanced image retouching, and brand identity development","Delivered corporate identity packages for multinational clients"]}],awards:[{title:"Best Digital Campaign",year:"2024",organization:"P&G SEA Digital Awards"},{title:"Outstanding Art Direction",year:"2019",organization:"Vietnam Design Awards"}]},vr={summary:"9-month intensive coding journey from zero to production. Built 5+ deployed applications including video streaming platforms, AI image generators, and music players. Proficient in modern web frameworks, containerization, and cloud deployment. Self-taught developer with a creative background bringing unique problem-solving perspective.",journey:[{month:"MAY '24",title:"The Spark",description:"First deep dive into Next.js. Abandoned manual CSS for Tailwind efficiency."},{month:"JUL '24",title:"First Production App",description:"Built kv-pix AI image generator with multi-provider support (Google Whisk, Meta AI, Grok)."},{month:"SEP '24",title:"Full-Stack Mastery",description:"Created KV-Tube YouTube platform with Go backend + Next.js. Dockerized for Synology NAS."},{month:"NOV '24",title:"The AI Pivot",description:"Fully embraced AI coding. Cursor and v0 became primary development engine."},{month:"DEC '24",title:"Rust Exploration",description:"Built Spotify clone with Rust Axum backend. Advanced system architecture."},{month:"PRESENT",title:"Vibe Ascended",description:"Building complex apps through high-level prompting and intuition."}],skills:{languages:["TypeScript","JavaScript","Go","Rust","Python","HTML/CSS","SQL"],frontend:["React","Next.js","Vite","Tailwind CSS","Shadcn","Framer Motion","Zustand","PWA"],backend:["Node.js","Go (Gin)","Rust (Axum)","Express","REST APIs","WebSocket"],ai:["LLM Integration","Cursor AI","v0","Replit AI","Ollama","Prompt Engineering","Multi-Provider AI APIs"],devops:["Docker","Docker Compose","GitHub Actions","Forgejo CI/CD","Synology NAS","Nginx","SQLite"],tools:["Git","VS Code","Figma","Postman","MongoDB","Prisma","ffmpeg"]},projects:[{name:"KV-Tube",description:"YouTube-like video streaming platform with HLS support, subscriptions, watch history, and PWA. Deployed on Synology NAS via Docker.",tech:["Go (Gin)","Next.js","TypeScript","SQLite","Docker","HLS.js","PWA"],github:"https://git.khoavo.myds.me/vndangkhoa/kv-tube"},{name:"Spotify Clone",description:"Full-featured Spotify-like music player with YouTube Music integration, real-time lyrics, custom playlists, and PWA support.",tech:["React (Vite)","Rust (Axum)","TailwindCSS","YouTube API","PWA"],github:"https://git.khoavo.myds.me/vndangkhoa/spotify-clone"},{name:"kv-pix (APIx)",description:"AI Image Generator powered by Google Whisk, Meta AI, and Grok. Multi-provider support with prompt library and history.",tech:["Next.js 14","TypeScript","Tailwind","Zustand","Docker"],github:"https://git.khoavo.myds.me/vndangkhoa/apix"},{name:"IT CV Portfolio",description:"This terminal-style interactive resume with typing animations and system aesthetics.",tech:["React","Vite","Tailwind","Framer Motion","TypeScript"],github:"https://git.khoavo.myds.me/vndangkhoa/it-cv"},{name:"kv-tiktok-download",description:"Douyin/TikTok video download API with batch processing support.",tech:["Python","FastAPI","yt-dlp"],github:"https://git.khoavo.myds.me/vndangkhoa/kv-tiktok-download"}],experience:[{role:"Creative Technology",company:"Phibious Vietnam",period:"2025 - Present",highlights:["Bridge between creative and technical teams","Develop interactive prototypes and AI-powered tools","Automate creative workflows with custom scripts","Build internal tools for design team productivity"]},{role:"Freelance Developer",company:"Self-Employed",period:"2024 - Present",highlights:["Built 5+ production web applications deployed on cloud and NAS","Integrated AI capabilities (image generation, video processing) into client solutions","Implemented CI/CD pipelines with GitHub/Forgejo Actions","Dockerized applications for easy deployment on various platforms"]}],forgejo:"https://git.khoavo.myds.me/vndangkhoa"},$m=({size:n=36,vnColor:r="#1A1A1A",dkColor:s="#00FF94",className:a=""})=>m.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",width:n,height:n,fill:"none",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round",className:a,children:[m.jsx("path",{stroke:r,d:"M 15 25 L 30 45 L 45 25"}),m.jsx("path",{stroke:r,d:"M 55 45 L 55 25 L 85 45 L 85 25"}),m.jsx("path",{stroke:s,d:"M 15 55 L 30 55 A 10 10 0 0 1 30 75 L 15 75 Z"}),m.jsx("path",{stroke:s,d:"M 55 55 L 55 75 M 85 55 L 55 65 L 85 75"})]}),uS=({onSelect:n})=>{const[r,s]=_.useState(!1);return m.jsxs(ge.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0,y:-50},className:"fixed inset-0 overflow-hidden bg-[#FAFAFA]",children:[m.jsxs("div",{className:"relative w-full h-full flex flex-col items-center justify-center px-6",children:[m.jsxs("div",{className:"absolute inset-0 z-0",children:[m.jsx("div",{className:"absolute top-[-10%] left-[-10%] w-[40%] h-[40%] rounded-full bg-slate-100 blur-[120px] opacity-60 animate-pulse"}),m.jsx("div",{className:"absolute bottom-[-10%] right-[-10%] w-[40%] h-[40%] rounded-full bg-slate-200 blur-[120px] opacity-60 animate-pulse",style:{animationDelay:"2s"}})]}),m.jsx("div",{className:"absolute inset-0 opacity-[0.03] bg-[linear-gradient(rgba(0,0,0,0.1)_1px,transparent_1px),linear-gradient(90deg,rgba(0,0,0,0.1)_1px,transparent_1px)] bg-[size:60px_60px]"}),m.jsx("div",{className:"relative z-10 max-w-5xl w-full text-center",children:m.jsxs(ge.div,{initial:{y:30,opacity:0},animate:{y:0,opacity:1},transition:{duration:1,ease:[.22,1,.36,1]},children:[m.jsx("div",{className:"overflow-hidden mb-4 py-2 px-4",children:m.jsx(ge.h1,{initial:{y:"100%"},animate:{y:0},transition:{duration:1.2,ease:[.22,1,.36,1],delay:.2},className:"text-[clamp(2rem,6.5vw,7.5rem)] font-serif font-bold text-[#1A1A1A] tracking-tighter leading-tight whitespace-nowrap",style:{textShadow:"0 2px 4px rgba(0,0,0,0.02)"},children:"Vo Nguyen Dang Khoa"})}),m.jsx(ge.p,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{duration:.8,delay:.8},className:"text-lg md:text-2xl font-serif text-[#1A1A1A]/70 mb-2 italic",children:"Where Design Meets Intelligence"}),m.jsx(ge.p,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.8,delay:1},className:"text-[10px] font-bold tracking-[0.4em] text-[#1A1A1A]/30 uppercase mb-10 md:mb-12",children:"Creative Manager & AI Innovation Lead"}),m.jsxs("button",{onClick:()=>n("creative"),className:"hidden md:inline-flex items-center gap-3 px-10 py-5 bg-[#1A1A1A] text-white text-lg font-medium rounded-full hover:bg-black hover:scale-105 transition-all shadow-2xl border-4 border-transparent hover:border-black/5",children:["Explore Portfolio",m.jsx(ge.div,{animate:{x:[0,5,0]},transition:{repeat:1/0,duration:1.5,ease:"easeInOut"},children:m.jsx(Tr,{size:22})})]}),m.jsxs("div",{className:"md:hidden flex flex-col gap-4 mt-8",children:[m.jsxs("button",{onClick:()=>n("creative"),className:"flex items-center justify-between px-6 py-5 bg-[#1A1A1A] text-white font-medium rounded-2xl shadow-xl active:scale-[0.98] transition-transform",children:[m.jsxs("span",{className:"flex items-center gap-3",children:[m.jsx(co,{size:18})," Creative Portfolio"]}),m.jsx(Tr,{size:18})]}),m.jsxs("button",{onClick:()=>n("it"),className:"flex items-center justify-between px-6 py-5 border border-[#1A1A1A]/10 text-[#1A1A1A] font-medium rounded-2xl bg-white/50 backdrop-blur-md shadow-sm active:scale-[0.98] transition-transform",children:[m.jsxs("span",{className:"flex items-center gap-3",children:[m.jsx(nu,{size:18})," Developer Side"]}),m.jsx(Tr,{size:18})]}),m.jsx("p",{className:"text-[10px] tracking-widest text-[#999] uppercase mt-2 opacity-60",children:"Select a persona to enter"})]})]})}),m.jsx(ge.div,{initial:{opacity:.5},animate:{opacity:r?0:.5},className:"absolute bottom-12 text-sm text-[#BBB] hidden md:block",children:m.jsxs("span",{className:"flex items-center gap-4",children:[m.jsx("span",{className:"w-12 h-px bg-[#BBB]"}),"Hover right to preview Developer side",m.jsx("span",{className:"w-12 h-px bg-[#BBB]"})]})})]}),m.jsxs(ge.div,{className:"absolute inset-y-0 right-0 w-full md:w-[75%] bg-[#0a0a0a] cursor-pointer hidden md:block z-40 border-l border-[#00FF94]/30",initial:{x:"calc(100% - 60px)"},animate:{x:r?"0%":"calc(100% - 60px)"},transition:{duration:.6,ease:[.22,1,.36,1]},onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),onClick:()=>n("it"),children:[!r&&m.jsx(ge.div,{initial:{opacity:0},animate:{opacity:1},className:"absolute left-0 inset-y-0 w-[60px] flex items-center justify-center pointer-events-none",children:m.jsx("span",{className:"rotate-90 text-[10px] tracking-[0.5em] text-[#00FF94]/40 font-mono whitespace-nowrap",children:"DEVELOPER SIDE // PREVIEW"})}),m.jsx("div",{className:"absolute inset-0 opacity-[0.04] bg-[linear-gradient(rgba(0,255,136,0.1)_1px,transparent_1px),linear-gradient(90deg,rgba(0,255,136,0.1)_1px,transparent_1px)] bg-[size:25px_25px]"}),m.jsx("div",{className:"relative z-10 w-full h-full flex flex-col items-center justify-center px-8",children:m.jsxs("div",{className:"max-w-md text-center",children:[m.jsx(nu,{size:56,className:"text-[#00FF94] mx-auto mb-6"}),m.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-white font-mono mb-2",children:"DEVELOPER"}),m.jsx("p",{className:"text-[#00FF94]/70 font-mono text-sm tracking-[0.3em] mb-8",children:"FULL-STACK & DEVOPS"}),m.jsxs("p",{className:"text-slate-400 font-mono text-base mb-8 leading-relaxed",children:["9-month coding journey.",m.jsx("br",{}),"Built 5+ production applications.",m.jsx("br",{}),"Self-taught with AI-powered development."]}),m.jsxs("button",{className:"inline-flex items-center gap-2 px-8 py-4 border-2 border-[#00FF94]/40 bg-[#00FF94]/10 text-[#00FF94] font-mono text-base rounded-full hover:bg-[#00FF94]/20 transition-colors",children:["Enter Terminal ",m.jsx(Tr,{size:18})]}),m.jsxs("div",{className:"mt-10 font-mono text-sm text-[#00FF94]/40 text-left space-y-2",children:[m.jsxs("div",{children:[m.jsx("span",{className:"text-[#00D9FF]",children:"const"}),' stack = ["Go", "Rust", "TS"];']}),m.jsxs("div",{children:[m.jsx("span",{className:"text-[#00D9FF]",children:"const"})," deployed = 5;"]}),m.jsxs("div",{children:[m.jsx("span",{className:"text-[#00D9FF]",children:"const"}),' vibe = "S-Tier";']})]})]})})]}),m.jsx(ge.div,{initial:{opacity:0},animate:{opacity:r?0:1},transition:{duration:.4},className:"absolute top-8 left-6 md:left-8 z-50 text-[10px] md:text-lg",children:m.jsxs("div",{className:"text-[#1A1A1A] font-serif font-bold tracking-widest flex items-center gap-2",children:["KHOA.VO ",m.jsx("span",{className:"w-4 md:w-8 h-px bg-[#1A1A1A]/30"})]})})]})},cS=({onComplete:n})=>{const r=_.useRef(null);return _.useEffect(()=>{const s=window.innerWidth,a=window.innerHeight,u=Math.floor(s/8)+5,f=Math.floor(a/10)+5;let d=0;const h=()=>{d+=.08;let y="";for(let v=0;v1.5?y+="V":C>.8?y+="N":C>.2?y+="D":C>-.2?y+="K":C>-.8?y+="→":C>-1.2?y+="←":C>-1.8?y+="↑":y+="↓"}y+=` -`}return y},g=setInterval(()=>{r.current&&(r.current.textContent=h())},50),x=setTimeout(()=>{clearInterval(g),n()},5e3);return()=>{clearInterval(g),clearTimeout(x)}},[n]),m.jsxs(ge.div,{exit:{opacity:0,scale:1.05,filter:"blur(5px)",transition:{duration:.8,ease:[.76,0,.24,1]}},className:"fixed inset-0 z-[200] bg-[#FAFAFA] flex items-center justify-center overflow-hidden",children:[m.jsx("pre",{ref:r,className:"text-[#1A1A1A] font-mono font-bold italic text-[10px] md:text-xs leading-[10px] md:leading-[12px] opacity-30 select-none whitespace-pre transform scale-110",style:{letterSpacing:"0.15em"}}),m.jsxs("button",{onClick:n,className:"absolute bottom-8 right-8 z-[210] flex items-center gap-2 text-[10px] md:text-xs font-bold tracking-[0.2em] uppercase text-[#1A1A1A]/50 hover:text-[#1A1A1A] transition-colors bg-white/80 px-4 py-2 backdrop-blur-sm rounded",children:["Click to Skip ",m.jsx("span",{className:"opacity-50",children:"→"})]})]})},dS=({onComplete:n})=>{const[r,s]=_.useState([]),a=["INIT SYSTEM KHOA.VO...","MOUNTING VIRTUAL DOM [OK]","LOADING REACT ROOT [OK]","ESTABLISHING AI SUBSYSTEMS...","AI SUBSYSTEMS [ONLINE]","BYPASSING SECURITY PROTOCOLS...","ACCESS GRANTED."];return _.useEffect(()=>{let u=0;const f=setInterval(()=>{u[...d,a[u]]),u++):(clearInterval(f),setTimeout(n,500))},180);return()=>clearInterval(f)},[n]),m.jsx(ge.div,{exit:{opacity:0,scale:1.05,filter:"blur(10px)",transition:{duration:.6,ease:"easeIn"}},className:"fixed inset-0 z-[200] bg-[#0a0a0a] text-[#00FF94] font-mono p-6 md:p-12 flex flex-col justify-end pb-24",children:m.jsxs("div",{className:"space-y-2 opacity-80 text-sm md:text-base",children:[r.map((u,f)=>m.jsxs("div",{children:["> ",u]},f)),r.length ▋"})]})})},fS=({onBack:n,onSwitch:r})=>{const[s,a]=_.useState(!0),[u,f]=_.useState(!1),[d,h]=_.useState(null),[g,x]=_.useState([]);_.useEffect(()=>{const v=()=>{f(window.scrollY>400)};return window.addEventListener("scroll",v),()=>window.removeEventListener("scroll",v)},[]);const y=()=>{window.scrollTo({top:0,behavior:"smooth"})};return _.useEffect(()=>{if(s)return;const v=setTimeout(()=>{x(Ut.projects.map(w=>w.id))},500);return()=>clearTimeout(v)},[s]),m.jsxs(m.Fragment,{children:[m.jsx(Cr,{children:s&&m.jsx(cS,{onComplete:()=>a(!1)})}),m.jsxs(ge.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"min-h-screen bg-[#FAFAFA] text-[#1A1A1A]",children:[m.jsx("nav",{className:"fixed top-0 left-0 right-0 z-50 bg-[#FAFAFA]/90 backdrop-blur-sm border-b border-[#1A1A1A]/10",children:m.jsxs("div",{className:"max-w-7xl mx-auto px-4 md:px-6 h-16 flex items-center justify-between",children:[m.jsxs("button",{onClick:n,className:"p-2 flex items-center gap-1.5 text-sm md:text-base text-[#1A1A1A]/60 hover:text-[#1A1A1A] transition-colors",children:[m.jsx(Hm,{size:18})," ",m.jsx("span",{className:"hidden md:inline",children:"Back"})]}),m.jsx("div",{className:"flex items-center justify-center",children:m.jsx($m,{size:36,vnColor:"#1A1A1A",dkColor:"#00FF94"})}),m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsxs("button",{onClick:()=>window.print(),className:"px-3 py-1.5 text-[10px] md:text-xs font-bold uppercase tracking-widest text-[#1A1A1A] border border-[#1A1A1A] rounded-full hover:bg-[#1A1A1A] hover:text-white transition-colors flex items-center gap-2",children:[m.jsx("span",{className:"hidden md:inline",children:"Download CV"}),m.jsx("span",{className:"md:hidden",children:"CV"})]}),m.jsxs("button",{onClick:r,className:"px-4 py-2 text-[10px] md:text-xs text-white bg-[#1A1A1A] border border-[#1A1A1A] rounded-full hover:bg-transparent hover:text-[#1A1A1A] transition-colors flex items-center gap-2",children:[m.jsx(nu,{size:14})," ",m.jsx("span",{className:"hidden md:inline",children:"IT View"}),m.jsx("span",{className:"md:hidden",children:"IT"})]})]})]})}),m.jsx(Cr,{children:u&&m.jsx(ge.button,{initial:{opacity:0,scale:.8,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.8,y:20},onClick:y,className:"fixed bottom-8 right-6 z-50 p-4 bg-[#1A1A1A] text-white rounded-full shadow-2xl md:hidden",children:m.jsx(Tr,{size:20,className:"-rotate-90"})})}),m.jsxs("main",{className:"pt-20",children:[m.jsx("section",{className:"max-w-5xl mx-auto px-6 py-24 md:py-32",children:m.jsxs(ge.div,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},children:[m.jsx("p",{className:"text-xs tracking-[0.3em] text-[#666] uppercase mb-4",children:Ut.title}),m.jsx("h1",{className:"text-5xl md:text-7xl font-serif font-bold leading-tight mb-4",children:Ut.tagline}),m.jsx("p",{className:"text-2xl md:text-3xl font-serif text-[#666] mb-8",children:Ht.name}),m.jsx("p",{className:"text-lg text-[#666] max-w-2xl leading-relaxed",children:Ut.summary}),m.jsxs("div",{className:"flex flex-wrap gap-4 mt-8 text-sm text-[#999]",children:[m.jsxs("span",{className:"flex items-center gap-1",children:[m.jsx(ep,{size:14})," ",Ht.location]}),m.jsxs("span",{className:"flex items-center gap-1",children:[m.jsx(tu,{size:14})," ",Ht.email]}),m.jsxs("span",{className:"flex items-center gap-1",children:[m.jsx(iS,{size:14})," ",Ht.phone]})]})]})}),Ut.awards&&Ut.awards.length>0&&m.jsx("section",{className:"max-w-5xl mx-auto px-6 pb-16",children:m.jsx("div",{className:"flex flex-wrap gap-6",children:Ut.awards.map((v,w)=>m.jsxs(ge.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:w*.1},className:"flex items-center gap-3 bg-[#F5F5F5] px-4 py-2 rounded-full",children:[m.jsx(co,{size:14,className:"text-amber-500"}),m.jsx("span",{className:"text-sm font-medium",children:v.title}),m.jsx("span",{className:"text-xs text-[#999]",children:v.year})]},w))})}),m.jsxs("section",{className:"max-w-7xl mx-auto px-6 py-16",children:[m.jsxs(ge.div,{initial:{opacity:0},whileInView:{opacity:1},viewport:{once:!0},className:"flex items-center gap-4 mb-12",children:[m.jsx(rS,{size:20}),m.jsx("h2",{className:"text-2xl font-serif font-bold",children:"Selected Works"})]}),m.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:Ut.projects.map((v,w)=>m.jsxs(ge.div,{initial:{opacity:0,y:30},animate:{opacity:g.includes(v.id)?1:0,y:g.includes(v.id)?0:30},transition:{duration:.6,delay:w*.1},className:"group cursor-pointer",onClick:()=>h(v),children:[m.jsxs("div",{className:"relative aspect-[4/3] overflow-hidden bg-slate-200 mb-4",children:[m.jsx("img",{src:v.image,alt:v.title,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105"}),m.jsx("div",{className:"absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-300"}),m.jsx("span",{className:"absolute top-4 right-4 bg-white/90 px-3 py-1 text-xs font-medium",children:v.year})]}),m.jsx("p",{className:"text-xs tracking-widest text-[#666] uppercase mb-1",children:v.category}),m.jsx("h3",{className:"text-lg font-serif font-semibold group-hover:text-[#666] transition-colors",children:v.title})]},v.id))})]}),m.jsxs("section",{className:"max-w-7xl mx-auto px-6 py-16 bg-[#F5F5F5]",children:[m.jsxs(ge.div,{initial:{opacity:0},whileInView:{opacity:1},viewport:{once:!0},className:"flex items-center gap-4 mb-12",children:[m.jsx(co,{size:20}),m.jsx("h2",{className:"text-2xl font-serif font-bold",children:"Expertise"})]}),m.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8",children:Ut.skills.map((v,w)=>m.jsxs(ge.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:w*.1},children:[m.jsx("h3",{className:"text-sm font-bold text-[#1A1A1A] mb-4 pb-2 border-b border-[#1A1A1A]/10",children:v.category}),m.jsx("div",{className:"flex flex-wrap gap-2",children:v.items.map(C=>m.jsx("span",{className:"text-xs text-[#666] bg-white px-3 py-1 border border-[#1A1A1A]/10",children:C},C))})]},v.category))})]}),m.jsxs("section",{className:"max-w-5xl mx-auto px-6 py-16",children:[m.jsxs(ge.div,{initial:{opacity:0},whileInView:{opacity:1},viewport:{once:!0},className:"flex items-center gap-4 mb-12",children:[m.jsx(nS,{size:20}),m.jsx("h2",{className:"text-2xl font-serif font-bold",children:"Professional Journey"})]}),m.jsxs("div",{className:"relative",children:[m.jsx("div",{className:"absolute left-0 top-0 bottom-0 w-px bg-[#1A1A1A]/10"}),m.jsx("div",{className:"space-y-10",children:Ut.experience.map((v,w)=>m.jsxs(ge.div,{initial:{opacity:0,x:-30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{delay:w*.1},className:"relative pl-8",children:[m.jsx("div",{className:"absolute left-[-3px] top-2 w-2 h-2 bg-[#1A1A1A] rounded-full"}),m.jsxs("div",{className:"flex flex-col md:flex-row md:items-start gap-2 md:gap-6 mb-2",children:[m.jsx("div",{className:"text-sm font-medium text-[#1A1A1A] shrink-0",children:v.period}),m.jsxs("div",{children:[m.jsx("h3",{className:"text-xl font-bold text-[#1A1A1A]",children:v.role}),m.jsxs("div",{className:"flex items-center gap-2 text-[#666] mt-1",children:[m.jsx("span",{className:"font-medium",children:v.company}),v.location&&m.jsxs(m.Fragment,{children:[m.jsx("span",{className:"text-[#999]",children:"•"}),m.jsx("span",{className:"text-sm",children:v.location})]})]})]})]}),m.jsx("ul",{className:"text-[#666] space-y-2 mt-3",children:v.highlights.map((C,N)=>m.jsxs("li",{className:"leading-relaxed flex items-start gap-2",children:[m.jsx("span",{className:"w-1.5 h-1.5 bg-[#1A1A1A]/30 rounded-full mt-2 shrink-0"}),m.jsx("span",{children:C})]},N))})]},w))})]})]}),m.jsxs("footer",{className:"max-w-7xl mx-auto px-6 py-16 border-t border-[#1A1A1A]/10",children:[m.jsxs("div",{className:"flex flex-col md:flex-row justify-between items-center gap-8",children:[m.jsxs("div",{children:[m.jsx("h3",{className:"text-2xl font-serif font-bold mb-2",children:"Let's Create Together"}),m.jsx("p",{className:"text-[#666]",children:"Open for creative collaborations and opportunities"})]}),m.jsxs("div",{className:"flex gap-4",children:[m.jsx("a",{href:Ht.linkedin,target:"_blank",rel:"noreferrer",className:"p-3 border border-[#1A1A1A]/20 hover:bg-[#1A1A1A] hover:text-white transition-colors",children:m.jsx(Km,{size:20})}),m.jsx("a",{href:Ht.email,className:"p-3 border border-[#1A1A1A]/20 hover:bg-[#1A1A1A] hover:text-white transition-colors",children:m.jsx(tu,{size:20})}),m.jsx("a",{href:Ht.portfolio,target:"_blank",rel:"noreferrer",className:"p-3 border border-[#1A1A1A]/20 hover:bg-[#1A1A1A] hover:text-white transition-colors",children:m.jsx(ep,{size:20})})]})]}),m.jsxs("p",{className:"text-center text-xs text-[#999] mt-12",children:["© ",new Date().getFullYear()," Vo Nguyen Dang Khoa. All rights reserved."]})]})]}),m.jsx(Cr,{children:d&&m.jsx(ge.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/80 backdrop-blur-sm p-8",onClick:()=>h(null),children:m.jsxs(ge.div,{initial:{scale:.9,y:20},animate:{scale:1,y:0},exit:{scale:.9,y:20},className:"bg-[#FAFAFA] max-w-4xl w-full rounded-lg overflow-hidden",onClick:v=>v.stopPropagation(),children:[m.jsx("img",{src:d.image,alt:d.title,className:"w-full h-64 md:h-96 object-cover"}),m.jsxs("div",{className:"p-8",children:[m.jsx("p",{className:"text-xs tracking-widest text-[#666] uppercase mb-2",children:d.category}),m.jsx("h3",{className:"text-2xl font-serif font-bold mb-4",children:d.title}),m.jsx("p",{className:"text-[#666] mb-6",children:d.description}),m.jsxs("a",{href:d.link,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-2 text-sm font-medium text-[#1A1A1A] border-b border-[#1A1A1A] pb-1 hover:opacity-60",children:["View Project ",m.jsx(Gm,{size:14})]})]})]})})})]})]})},hS=({onBack:n,onSwitch:r})=>{const[s,a]=_.useState(!0),[u,f]=_.useState("about"),[d,h]=_.useState(""),[g,x]=_.useState(!1),y=`> whoami - -Vo Nguyen Dang Khoa -AI-Powered Developer -9-month coding journey from zero to production`;_.useEffect(()=>{const w=()=>{x(window.scrollY>400)};return window.addEventListener("scroll",w),()=>window.removeEventListener("scroll",w)},[]);const v=()=>{window.scrollTo({top:0,behavior:"smooth"})};return _.useEffect(()=>{if(s)return;let w=0;const C=setInterval(()=>{wclearInterval(C)},[s]),m.jsxs(m.Fragment,{children:[m.jsx(Cr,{children:s&&m.jsx(dS,{onComplete:()=>a(!1)})}),m.jsxs(ge.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"min-h-screen bg-[#0a0a0a] text-[#00FF94] font-mono",children:[m.jsx(Cr,{children:g&&m.jsx(ge.button,{initial:{opacity:0,scale:.8,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.8,y:20},onClick:v,className:"fixed bottom-8 right-6 z-50 p-4 bg-[#00FF94] text-[#0a0a0a] rounded-full shadow-[0_0_20px_rgba(0,255,148,0.3)] md:hidden",children:m.jsx(Tr,{size:20,className:"-rotate-90"})})}),m.jsx("nav",{className:"fixed top-0 left-0 right-0 z-50 bg-[#0a0a0a]/90 backdrop-blur-sm border-b border-[#00FF94]/20",children:m.jsxs("div",{className:"max-w-6xl mx-auto px-4 h-14 flex items-center justify-between",children:[m.jsxs("button",{onClick:n,className:"p-2 -ml-2 flex items-center gap-1.5 text-xs text-[#00FF94]/60 hover:text-[#00FF94] transition-colors uppercase",children:[m.jsx(Hm,{size:16})," ",m.jsx("span",{className:"hidden md:inline",children:"Exit"})]}),m.jsx("div",{className:"flex items-center justify-center opacity-90 drop-shadow-[0_0_5px_rgba(0,255,148,0.3)]",children:m.jsx($m,{size:32,vnColor:"#FFFFFF",dkColor:"#00FF94"})}),m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsxs("button",{onClick:()=>window.print(),className:"px-3 py-1.5 text-[10px] md:text-xs text-[#00FF94] border border-[#00FF94] rounded hover:bg-[#00FF94] hover:text-[#0a0a0a] transition-colors flex items-center gap-1.5 font-bold uppercase",children:[m.jsx("span",{className:"hidden md:inline",children:"Download CV"}),m.jsx("span",{className:"md:hidden",children:"CV"})]}),m.jsxs("button",{onClick:r,className:"px-3 py-1.5 text-[10px] md:text-xs text-[#0a0a0a] bg-[#00FF94] border border-[#00FF94] rounded hover:bg-transparent hover:text-[#00FF94] transition-colors flex items-center gap-1.5 uppercase font-bold",children:[m.jsx(co,{size:12})," ",m.jsx("span",{className:"hidden md:inline",children:"Design View"}),m.jsx("span",{className:"md:hidden",children:"Design"})]})]})]})}),m.jsx("main",{className:"pt-16",children:m.jsxs("div",{className:"max-w-5xl mx-4 md:mx-auto",children:[m.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 bg-[#111] border border-[#00FF94]/20 border-b-0 rounded-t-lg",children:[m.jsx("div",{className:"w-3 h-3 rounded-full bg-red-500/50"}),m.jsx("div",{className:"w-3 h-3 rounded-full bg-yellow-500/50"}),m.jsx("div",{className:"w-3 h-3 rounded-full bg-green-500/50"}),m.jsx("span",{className:"ml-4 text-xs text-[#00FF94]/50",children:"khoa@portfolio ~"})]}),m.jsxs("div",{className:"border border-[#00FF94]/20 bg-[#0a0a0a] p-6 md:p-8 min-h-[80vh]",children:[m.jsx("div",{className:"flex gap-2 overflow-x-auto pb-4 mb-4 md:mb-8 no-scrollbar touch-pan-x",children:["about","skills","projects","experience"].map(w=>m.jsx("button",{onClick:()=>f(w),className:`px-5 py-3 md:px-4 md:py-2 text-[10px] md:text-xs border transition-colors whitespace-nowrap shrink-0 ${u===w?"border-[#00FF94] bg-[#00FF94]/10 text-[#00FF94]":"border-[#00FF94]/30 text-[#00FF94]/50 hover:text-[#00FF94] hover:border-[#00FF94]/50"}`,children:w.toUpperCase()},w))}),u==="about"&&m.jsxs(ge.div,{initial:{opacity:0},animate:{opacity:1},children:[m.jsx("div",{className:"text-xs text-[#00FF94]/50 mb-4",children:"SYSTEM STARTED..."}),m.jsxs("pre",{className:"text-sm leading-relaxed whitespace-pre-wrap",children:[d,m.jsx("span",{className:"animate-pulse",children:"▋"})]}),m.jsxs("div",{className:"mt-8 pt-8 border-t border-[#00FF94]/20",children:[m.jsx("div",{className:"text-xs text-[#00FF94]/50 mb-2",children:"> echo $JOURNEY"}),m.jsx("div",{className:"space-y-4",children:vr.journey.map((w,C)=>m.jsxs("div",{className:"flex gap-4",children:[m.jsx("span",{className:"text-[#00D9FF] text-xs shrink-0",children:w.month}),m.jsxs("div",{children:[m.jsx("span",{className:"text-white",children:w.title}),m.jsxs("span",{className:"text-[#00FF94]/50",children:[" — ",w.description]})]})]},C))})]}),m.jsxs("div",{className:"mt-8 pt-8 border-t border-[#00FF94]/20",children:[m.jsx("div",{className:"text-xs text-[#00FF94]/50 mb-4",children:"> cat summary.txt"}),m.jsx("p",{className:"text-sm text-slate-300 leading-relaxed max-w-xl",children:vr.summary})]})]}),u==="skills"&&m.jsx(ge.div,{initial:{opacity:0},animate:{opacity:1},children:Object.entries(vr.skills).map(([w,C])=>m.jsxs("div",{className:"mb-6",children:[m.jsx("div",{className:"text-xs text-[#00D9FF] mb-2 uppercase tracking-wider",children:w}),m.jsx("div",{className:"flex flex-wrap gap-2",children:C.map((N,D)=>m.jsx("span",{className:"text-sm border border-[#00FF94]/30 px-3 py-1 bg-[#00FF94]/5",children:N},D))})]},w))}),u==="projects"&&m.jsx(ge.div,{initial:{opacity:0},animate:{opacity:1},children:m.jsx("div",{className:"space-y-6",children:vr.projects.map((w,C)=>m.jsxs("div",{className:"border border-[#00FF94]/20 p-4 hover:border-[#00FF94]/40 transition-colors",children:[m.jsxs("div",{className:"flex items-center justify-between mb-2",children:[m.jsx("span",{className:"text-white font-bold",children:w.name}),m.jsxs("div",{className:"flex gap-2",children:[w.demo&&m.jsx("a",{href:w.demo,target:"_blank",rel:"noreferrer",className:"text-[#00D9FF] hover:text-[#00FF94]",title:"Live Demo",children:m.jsx(Gm,{size:16})}),m.jsx("a",{href:w.github,target:"_blank",rel:"noreferrer",className:"text-[#00FF94] hover:text-[#00D9FF]",children:m.jsx(Jh,{size:16})})]})]}),m.jsx("p",{className:"text-sm text-slate-400 mb-3",children:w.description}),m.jsx("div",{className:"flex flex-wrap gap-2",children:w.tech.map((N,D)=>m.jsx("span",{className:"text-xs bg-[#00FF94]/10 px-2 py-0.5 text-[#00FF94]",children:N},D))})]},C))})}),u==="experience"&&m.jsx(ge.div,{initial:{opacity:0},animate:{opacity:1},children:m.jsx("div",{className:"space-y-6",children:vr.experience.map((w,C)=>m.jsxs("div",{className:"border-l-2 border-[#00FF94] pl-4",children:[m.jsxs("div",{className:"flex justify-between items-start mb-2",children:[m.jsx("span",{className:"text-white font-bold",children:w.role}),m.jsx("span",{className:"text-xs text-[#00FF94]/50",children:w.period})]}),m.jsx("div",{className:"text-sm text-[#00D9FF] mb-2",children:w.company}),m.jsx("ul",{className:"text-sm text-slate-400 space-y-1",children:w.highlights.map((N,D)=>m.jsxs("li",{children:["• ",N]},D))})]},C))})}),m.jsxs("div",{className:"mt-12 pt-8 border-t border-[#00FF94]/20",children:[m.jsx("div",{className:"text-xs text-[#00FF94]/50 mb-4",children:"> exit --contact"}),m.jsxs("div",{className:"flex flex-wrap gap-4",children:[m.jsxs("a",{href:`mailto:${Ht.email}`,className:"flex items-center gap-2 text-sm text-slate-300 hover:text-[#00FF94]",children:[m.jsx(tu,{size:14})," ",Ht.email]}),m.jsxs("a",{href:vr.forgejo,target:"_blank",rel:"noreferrer",className:"flex items-center gap-2 text-sm text-slate-300 hover:text-[#00FF94]",children:[m.jsx(Jh,{size:14})," git.khoavo.myds.me/vndangkhoa"]}),m.jsxs("a",{href:Ht.linkedin,target:"_blank",rel:"noreferrer",className:"flex items-center gap-2 text-sm text-slate-300 hover:text-[#00FF94]",children:[m.jsx(Km,{size:14})," linkedin.com/in/khoa-vo-76291236"]})]})]})]})]})}),m.jsxs("footer",{className:"py-8 text-center text-xs text-[#00FF94]/30",children:["khoa@portfolio:~$ echo ",new Date().getFullYear()," © Vo Nguyen Dang Khoa"]})]})]})};function pS(){const[n,r]=_.useState("landing"),[s,a]=_.useState(!1),u=d=>{r(d)},f=()=>{r("landing")};return m.jsxs(m.Fragment,{children:[m.jsxs(Cr,{mode:"wait",children:[n==="landing"&&m.jsx(uS,{onSelect:u},"landing"),n==="creative"&&m.jsx(fS,{onBack:f,onSwitch:()=>r("it")},"creative"),n==="it"&&m.jsx(hS,{onBack:f,onSwitch:()=>r("creative")},"it")]}),m.jsx("div",{className:"print-portfolio",children:m.jsx(lS,{})})]})}e0.createRoot(document.getElementById("root")).render(m.jsx($y.StrictMode,{children:m.jsx(pS,{})})); diff --git a/dist/assets/index-DS6IUas1.css b/dist/assets/index-DS6IUas1.css deleted file mode 100644 index 76ae1e6..0000000 --- a/dist/assets/index-DS6IUas1.css +++ /dev/null @@ -1 +0,0 @@ -@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";.print-portfolio{display:none}.print-portfolio.show-preview{display:flex!important;flex-direction:column;background:#0f172a;padding:40px 0;min-height:100vh;align-items:center}.print-portfolio.show-preview .cv-page{box-shadow:0 30px 60px #00000080;margin-bottom:40px}@media print{@page{size:A4;margin:15mm}html,body{margin:0!important;padding:0!important;width:100%!important;background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body>*:not(#root){display:none!important}#root{display:block!important;width:100%!important;margin:0!important;padding:0!important}#root>*:not(.print-portfolio){display:none!important}.print-portfolio{display:block!important;width:100%!important;margin:0 auto!important;padding:0!important;background:#fff;position:static!important}}*,: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: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::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: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;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-feature-settings:normal;font-variation-settings:normal;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;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([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::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}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]:where(:not([hidden=until-found])){display:none}.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}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-12{bottom:3rem}.bottom-8{bottom:2rem}.bottom-\[-10\%\]{bottom:-10%}.left-0{left:0}.left-6{left:1.5rem}.left-\[-10\%\]{left:-10%}.left-\[-3px\]{left:-3px}.right-0{right:0}.right-4{right:1rem}.right-6{right:1.5rem}.right-8{right:2rem}.right-\[-10\%\]{right:-10%}.top-0{top:0}.top-2{top:.5rem}.top-4{top:1rem}.top-8{top:2rem}.top-\[-10\%\]{top:-10%}.z-0{z-index:0}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[200\]{z-index:200}.z-\[210\]{z-index:210}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.-ml-2{margin-left:-.5rem}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-4{margin-left:1rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-8{margin-top:2rem}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-\[4\/3\]{aspect-ratio:4/3}.h-1\.5{height:.375rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-64{height:16rem}.h-\[40\%\]{height:40%}.h-full{height:100%}.h-px{height:1px}.min-h-\[80vh\]{min-height:80vh}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-12{width:3rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-\[40\%\]{width:40%}.w-\[60px\]{width:60px}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.shrink-0{flex-shrink:0}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-pointer{cursor:pointer}.touch-pan-x{--tw-pan-x: pan-x;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-t{border-top-width:1px}.border-\[\#00FF94\]{--tw-border-opacity: 1;border-color:rgb(0 255 148 / var(--tw-border-opacity, 1))}.border-\[\#00FF94\]\/20{border-color:#00ff9433}.border-\[\#00FF94\]\/30{border-color:#00ff944d}.border-\[\#00FF94\]\/40{border-color:#00ff9466}.border-\[\#1A1A1A\]{--tw-border-opacity: 1;border-color:rgb(26 26 26 / var(--tw-border-opacity, 1))}.border-\[\#1A1A1A\]\/10{border-color:#1a1a1a1a}.border-\[\#1A1A1A\]\/20{border-color:#1a1a1a33}.border-transparent{border-color:transparent}.bg-\[\#00FF94\]{--tw-bg-opacity: 1;background-color:rgb(0 255 148 / var(--tw-bg-opacity, 1))}.bg-\[\#00FF94\]\/10{background-color:#00ff941a}.bg-\[\#00FF94\]\/5{background-color:#00ff940d}.bg-\[\#0a0a0a\]{--tw-bg-opacity: 1;background-color:rgb(10 10 10 / var(--tw-bg-opacity, 1))}.bg-\[\#0a0a0a\]\/90{background-color:#0a0a0ae6}.bg-\[\#111\]{--tw-bg-opacity: 1;background-color:rgb(17 17 17 / var(--tw-bg-opacity, 1))}.bg-\[\#1A1A1A\]{--tw-bg-opacity: 1;background-color:rgb(26 26 26 / var(--tw-bg-opacity, 1))}.bg-\[\#1A1A1A\]\/10{background-color:#1a1a1a1a}.bg-\[\#1A1A1A\]\/30{background-color:#1a1a1a4d}.bg-\[\#BBB\]{--tw-bg-opacity: 1;background-color:rgb(187 187 187 / var(--tw-bg-opacity, 1))}.bg-\[\#F5F5F5\]{--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity, 1))}.bg-\[\#FAFAFA\]{--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1))}.bg-\[\#FAFAFA\]\/90{background-color:#fafafae6}.bg-black\/0{background-color:#0000}.bg-black\/80{background-color:#000c}.bg-green-500\/50{background-color:#22c55e80}.bg-red-500\/50{background-color:#ef444480}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/50{background-color:#ffffff80}.bg-white\/80{background-color:#fffc}.bg-white\/90{background-color:#ffffffe6}.bg-yellow-500\/50{background-color:#eab30880}.bg-\[linear-gradient\(rgba\(0\,0\,0\,0\.1\)_1px\,transparent_1px\)\,linear-gradient\(90deg\,rgba\(0\,0\,0\,0\.1\)_1px\,transparent_1px\)\]{background-image:linear-gradient(rgba(0,0,0,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.1) 1px,transparent 1px)}.bg-\[linear-gradient\(rgba\(0\,255\,136\,0\.1\)_1px\,transparent_1px\)\,linear-gradient\(90deg\,rgba\(0\,255\,136\,0\.1\)_1px\,transparent_1px\)\]{background-image:linear-gradient(rgba(0,255,136,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(0,255,136,.1) 1px,transparent 1px)}.bg-\[size\:25px_25px\]{background-size:25px 25px}.bg-\[size\:60px_60px\]{background-size:60px 60px}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-24{padding-bottom:6rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pt-16{padding-top:4rem}.pt-20{padding-top:5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-serif{font-family:ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\[10px\]{font-size:10px}.text-\[clamp\(2rem\,6\.5vw\,7\.5rem\)\]{font-size:clamp(2rem,6.5vw,7.5rem)}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-\[10px\]{line-height:10px}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-\[0\.3em\]{letter-spacing:.3em}.tracking-\[0\.4em\]{letter-spacing:.4em}.tracking-\[0\.5em\]{letter-spacing:.5em}.tracking-tighter{letter-spacing:-.05em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[\#00D9FF\]{--tw-text-opacity: 1;color:rgb(0 217 255 / var(--tw-text-opacity, 1))}.text-\[\#00FF94\]{--tw-text-opacity: 1;color:rgb(0 255 148 / var(--tw-text-opacity, 1))}.text-\[\#00FF94\]\/30{color:#00ff944d}.text-\[\#00FF94\]\/40{color:#00ff9466}.text-\[\#00FF94\]\/50{color:#00ff9480}.text-\[\#00FF94\]\/60{color:#00ff9499}.text-\[\#00FF94\]\/70{color:#00ff94b3}.text-\[\#0a0a0a\]{--tw-text-opacity: 1;color:rgb(10 10 10 / var(--tw-text-opacity, 1))}.text-\[\#1A1A1A\]{--tw-text-opacity: 1;color:rgb(26 26 26 / var(--tw-text-opacity, 1))}.text-\[\#1A1A1A\]\/30{color:#1a1a1a4d}.text-\[\#1A1A1A\]\/50{color:#1a1a1a80}.text-\[\#1A1A1A\]\/60{color:#1a1a1a99}.text-\[\#1A1A1A\]\/70{color:#1a1a1ab3}.text-\[\#666\]{--tw-text-opacity: 1;color:rgb(102 102 102 / var(--tw-text-opacity, 1))}.text-\[\#999\]{--tw-text-opacity: 1;color:rgb(153 153 153 / var(--tw-text-opacity, 1))}.text-\[\#BBB\]{--tw-text-opacity: 1;color:rgb(187 187 187 / var(--tw-text-opacity, 1))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-\[0\.03\]{opacity:.03}.opacity-\[0\.04\]{opacity:.04}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_20px_rgba\(0\,255\,148\,0\.3\)\]{--tw-shadow: 0 0 20px rgba(0,255,148,.3);--tw-shadow-colored: 0 0 20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.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)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-\[120px\]{--tw-blur: blur(120px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-\[0_0_5px_rgba\(0\,255\,148\,0\.3\)\]{--tw-drop-shadow: drop-shadow(0 0 5px rgba(0,255,148,.3));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-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)}.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}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-700{transition-duration:.7s}html{scroll-behavior:smooth}body{background-color:#fafafa;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.font-serif{font-family:Playfair Display,Georgia,serif}.font-mono{font-family:JetBrains Mono,Fira Code,Consolas,monospace}.print-only-version{display:none!important}.print-portfolio.show-preview{display:block!important;background:#1e293b;padding:20px}.print-portfolio.show-preview .pdf-content{display:block!important}.print-portfolio.show-preview .page{width:210mm;min-height:297mm;margin:0 auto 20px;box-shadow:0 10px 40px #00000080;display:block!important;background:#fff!important}.pdf-content{display:block!important}@media print{@page{size:A4;margin:0}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}html,body{margin:0!important;padding:0!important;background:#fff!important;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;color:#000!important}.app-main,.fixed.inset-0{display:none!important}.print-only-version{display:block!important;visibility:visible!important;position:absolute!important;top:0!important;left:0!important;width:100%!important;background:#fff!important}.pdf-content{display:block!important;background:none!important;padding:0!important;margin:0!important;width:210mm!important}.pdf-content .page{width:210mm!important;height:297mm!important;page-break-after:always!important;-moz-column-break-after:page!important;break-after:page!important;position:relative!important;overflow:hidden!important;background:#fff!important;margin:0!important;padding:0!important;display:block!important}.pdf-content .page:last-child{page-break-after:avoid!important;-moz-column-break-after:avoid!important;break-after:avoid!important}.pdf-content .page-content{padding:18mm 16mm!important;height:100%!important;display:flex!important;flex-direction:column!important}.pdf-content .cover-page{background:#111827!important;display:flex!important;align-items:center!important;justify-content:center!important}.pdf-content .cover-content{text-align:center!important;color:#fff!important;padding:35mm 30mm!important}.pdf-content .cover-name{font-size:38pt!important;font-weight:800!important;letter-spacing:-.02em!important;margin:0!important;color:#fff!important}.pdf-content .cover-accent{font-size:38pt!important;font-weight:800!important;letter-spacing:-.02em!important;margin:0!important;color:#60a5fa!important}.pdf-content .cover-divider{width:60px!important;height:3px!important;background:#60a5fa!important;margin:0 auto 35px!important}.pdf-content .cover-title{font-size:16pt!important;font-weight:500!important;color:#9ca3af!important;margin:0 0 35px!important;letter-spacing:.15em!important;text-transform:uppercase!important}.pdf-content .cover-contact{display:flex!important;flex-wrap:wrap!important;justify-content:center!important;gap:6px 18px!important;font-size:9pt!important;color:#9ca3af!important}.pdf-content .cover-contact span{white-space:nowrap!important}.pdf-content .section{margin-bottom:7mm!important}.pdf-content .section-title{font-size:15pt!important;font-weight:700!important;color:#111827!important;margin:0 0 5mm!important;padding-bottom:2.5mm!important;border-bottom:2px solid #1e40af!important;text-transform:uppercase!important;letter-spacing:.05em!important}.pdf-content .summary-section{background:#f9fafb!important;padding:5mm!important;border-left:3px solid #1e40af!important}.pdf-content .summary-text{font-size:9.5pt!important;line-height:1.7!important;color:#374151!important;margin:0!important}.pdf-content .experience-list{display:flex!important;flex-direction:column!important;gap:4mm!important}.pdf-content .experience-item{padding-bottom:4mm!important;border-bottom:1px solid #d1d5db!important}.pdf-content .experience-item:last-child{border-bottom:none!important}.pdf-content .experience-header{display:flex!important;justify-content:space-between!important;align-items:flex-start!important;margin-bottom:2mm!important}.pdf-content .experience-role{font-size:11pt!important;font-weight:700!important;color:#111827!important;margin:0!important}.pdf-content .experience-company{font-size:9pt!important;color:#1e40af!important;margin:1px 0 0!important;font-weight:600!important}.pdf-content .experience-period{font-size:8pt!important;color:#6b7280!important;white-space:nowrap!important;background:#f9fafb!important;padding:2px 8px!important;border-radius:3px!important;border:1px solid #d1d5db!important}.pdf-content .experience-highlights{margin:2.5mm 0 0!important;padding-left:5mm!important}.pdf-content .experience-highlights li{font-size:8.5pt!important;line-height:1.6!important;color:#374151!important;margin-bottom:1.5mm!important}.pdf-content .skills-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:3.5mm!important}.pdf-content .skill-category{background:#f9fafb!important;padding:3.5mm!important;border-left:3px solid #1e40af!important}.pdf-content .skill-category h3{font-size:9.5pt!important;font-weight:700!important;color:#111827!important;margin:0 0 1.5mm!important}.pdf-content .skill-category p{font-size:8pt!important;color:#374151!important;margin:0!important;line-height:1.5!important}.pdf-content .portfolio-grid{display:flex!important;flex-direction:column!important;gap:4mm!important}.pdf-content .portfolio-item{display:flex!important;gap:4mm!important;background:#fff!important;border-radius:2mm!important;overflow:hidden!important;border:1px solid #d1d5db!important}.pdf-content .portfolio-image{width:50mm!important;height:38mm!important;-o-object-fit:cover!important;object-fit:cover!important;flex-shrink:0!important;display:block!important}.pdf-content .portfolio-info{padding:2.5mm 3mm 2.5mm 0!important;flex:1!important;display:flex!important;flex-direction:column!important;justify-content:center!important}.pdf-content .portfolio-category{font-size:7pt!important;font-weight:600!important;color:#1e40af!important;text-transform:uppercase!important;letter-spacing:.05em!important;margin-bottom:1mm!important}.pdf-content .portfolio-title{font-size:10.5pt!important;font-weight:700!important;color:#111827!important;margin:0 0 1.5mm!important;line-height:1.3!important}.pdf-content .portfolio-description{font-size:7.5pt!important;color:#374151!important;line-height:1.5!important;margin:0!important}.pdf-content .contact-page{background:#111827!important;display:flex!important;align-items:center!important;justify-content:center!important}.pdf-content .contact-content{text-align:center!important;color:#fff!important;padding:35mm 30mm!important}.pdf-content .contact-title{font-size:28pt!important;font-weight:800!important;margin:0 0 5mm!important;color:#fff!important}.pdf-content .contact-divider{width:50px!important;height:3px!important;background:#60a5fa!important;margin:0 auto 10mm!important}.pdf-content .contact-subtitle{font-size:10pt!important;color:#9ca3af!important;margin:0 0 10mm!important}.pdf-content .contact-details{display:grid!important;grid-template-columns:1fr 1fr!important;gap:4mm!important;text-align:left!important}.pdf-content .contact-item{background:#ffffff0d!important;padding:3.5mm!important;border-radius:2mm!important;border:1px solid rgba(255,255,255,.1)!important}.pdf-content .contact-item strong{display:block!important;font-size:7pt!important;color:#60a5fa!important;text-transform:uppercase!important;letter-spacing:.1em!important;margin-bottom:1.5mm!important;font-weight:600!important}.pdf-content .contact-item span{font-size:9pt!important;color:#d1d5db!important;word-break:break-all!important}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0a0a0a}::-webkit-scrollbar-thumb{background:#00ff94;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#00d9ff}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[\#00FF94\]\/40:hover{border-color:#00ff9466}.hover\:border-\[\#00FF94\]\/50:hover{border-color:#00ff9480}.hover\:border-black\/5:hover{border-color:#0000000d}.hover\:bg-\[\#00FF94\]:hover{--tw-bg-opacity: 1;background-color:rgb(0 255 148 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#00FF94\]\/20:hover{background-color:#00ff9433}.hover\:bg-\[\#1A1A1A\]:hover{--tw-bg-opacity: 1;background-color:rgb(26 26 26 / var(--tw-bg-opacity, 1))}.hover\:bg-black:hover{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.hover\:bg-transparent:hover{background-color:transparent}.hover\:text-\[\#00D9FF\]:hover{--tw-text-opacity: 1;color:rgb(0 217 255 / var(--tw-text-opacity, 1))}.hover\:text-\[\#00FF94\]:hover{--tw-text-opacity: 1;color:rgb(0 255 148 / var(--tw-text-opacity, 1))}.hover\:text-\[\#0a0a0a\]:hover{--tw-text-opacity: 1;color:rgb(10 10 10 / var(--tw-text-opacity, 1))}.hover\:text-\[\#1A1A1A\]:hover{--tw-text-opacity: 1;color:rgb(26 26 26 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:opacity-60:hover{opacity:.6}.active\:scale-\[0\.98\]:active{--tw-scale-x: .98;--tw-scale-y: .98;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-black\/20{background-color:#0003}.group:hover .group-hover\:text-\[\#666\]{--tw-text-opacity: 1;color:rgb(102 102 102 / var(--tw-text-opacity, 1))}@media(min-width:768px){.md\:left-8{left:2rem}.md\:mx-auto{margin-left:auto;margin-right:auto}.md\:mb-12{margin-bottom:3rem}.md\:mb-8{margin-bottom:2rem}.md\:block{display:block}.md\:inline{display:inline}.md\:inline-flex{display:inline-flex}.md\:hidden{display:none}.md\:h-96{height:24rem}.md\:w-8{width:2rem}.md\:w-\[75\%\]{width:75%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:gap-6{gap:1.5rem}.md\:p-12{padding:3rem}.md\:p-8{padding:2rem}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:py-2{padding-top:.5rem;padding-bottom:.5rem}.md\:py-32{padding-top:8rem;padding-bottom:8rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-7xl{font-size:4.5rem;line-height:1}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-xs{font-size:.75rem;line-height:1rem}.md\:leading-\[12px\]{line-height:12px}}@media(min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}} diff --git a/dist/assets/index-MMhTVSBP.js b/dist/assets/index-MMhTVSBP.js new file mode 100644 index 0000000..64d1fc4 --- /dev/null +++ b/dist/assets/index-MMhTVSBP.js @@ -0,0 +1,170 @@ +(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))a(u);new MutationObserver(u=>{for(const f of u)if(f.type==="childList")for(const d of f.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&a(d)}).observe(document,{childList:!0,subtree:!0});function s(u){const f={};return u.integrity&&(f.integrity=u.integrity),u.referrerPolicy&&(f.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?f.credentials="include":u.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function a(u){if(u.ep)return;u.ep=!0;const f=s(u);fetch(u.href,f)}})();function np(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var ul={exports:{}},hi={},cl={exports:{}},le={};/** + * @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 Af;function Hy(){if(Af)return le;Af=1;var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),u=Symbol.for("react.profiler"),f=Symbol.for("react.provider"),d=Symbol.for("react.context"),h=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),v=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),x=Symbol.iterator;function S(E){return E===null||typeof E!="object"?null:(E=x&&E[x]||E["@@iterator"],typeof E=="function"?E:null)}var C={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},D=Object.assign,L={};function N(E,I,oe){this.props=E,this.context=I,this.refs=L,this.updater=oe||C}N.prototype.isReactComponent={},N.prototype.setState=function(E,I){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,I,"setState")},N.prototype.forceUpdate=function(E){this.updater.enqueueForceUpdate(this,E,"forceUpdate")};function b(){}b.prototype=N.prototype;function F(E,I,oe){this.props=E,this.context=I,this.refs=L,this.updater=oe||C}var P=F.prototype=new b;P.constructor=F,D(P,N.prototype),P.isPureReactComponent=!0;var R=Array.isArray,W=Object.prototype.hasOwnProperty,ee={current:null},se={key:!0,ref:!0,__self:!0,__source:!0};function J(E,I,oe){var ue,pe={},me=null,Se=null;if(I!=null)for(ue in I.ref!==void 0&&(Se=I.ref),I.key!==void 0&&(me=""+I.key),I)W.call(I,ue)&&!se.hasOwnProperty(ue)&&(pe[ue]=I[ue]);var ye=arguments.length-2;if(ye===1)pe.children=oe;else if(1>>1,I=B[E];if(0>>1;Eu(pe,H))meu(Se,pe)?(B[E]=Se,B[me]=H,E=me):(B[E]=pe,B[ue]=H,E=ue);else if(meu(Se,H))B[E]=Se,B[me]=H,E=me;else break e}}return X}function u(B,X){var H=B.sortIndex-X.sortIndex;return H!==0?H:B.id-X.id}if(typeof performance=="object"&&typeof performance.now=="function"){var f=performance;n.unstable_now=function(){return f.now()}}else{var d=Date,h=d.now();n.unstable_now=function(){return d.now()-h}}var g=[],v=[],y=1,x=null,S=3,C=!1,D=!1,L=!1,N=typeof setTimeout=="function"?setTimeout:null,b=typeof clearTimeout=="function"?clearTimeout:null,F=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(B){for(var X=s(v);X!==null;){if(X.callback===null)a(v);else if(X.startTime<=B)a(v),X.sortIndex=X.expirationTime,r(g,X);else break;X=s(v)}}function R(B){if(L=!1,P(B),!D)if(s(g)!==null)D=!0,Te(W);else{var X=s(v);X!==null&&Me(R,X.startTime-B)}}function W(B,X){D=!1,L&&(L=!1,b(J),J=-1),C=!0;var H=S;try{for(P(X),x=s(g);x!==null&&(!(x.expirationTime>X)||B&&!he());){var E=x.callback;if(typeof E=="function"){x.callback=null,S=x.priorityLevel;var I=E(x.expirationTime<=X);X=n.unstable_now(),typeof I=="function"?x.callback=I:x===s(g)&&a(g),P(X)}else a(g);x=s(g)}if(x!==null)var oe=!0;else{var ue=s(v);ue!==null&&Me(R,ue.startTime-X),oe=!1}return oe}finally{x=null,S=H,C=!1}}var ee=!1,se=null,J=-1,ie=5,q=-1;function he(){return!(n.unstable_now()-qB||125E?(B.sortIndex=H,r(v,B),s(g)===null&&B===s(v)&&(L?(b(J),J=-1):L=!0,Me(R,H-E))):(B.sortIndex=I,r(g,B),D||C||(D=!0,Te(W))),B},n.unstable_shouldYield=he,n.unstable_wrapCallback=function(B){var X=S;return function(){var H=S;S=X;try{return B.apply(this,arguments)}finally{S=H}}}})(hl)),hl}var Ff;function Xy(){return Ff||(Ff=1,fl.exports=Yy()),fl.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 Lf;function Qy(){if(Lf)return dt;Lf=1;var n=tu(),r=Xy();function s(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,i=1;i"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),g=Object.prototype.hasOwnProperty,v=/^[: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]*$/,y={},x={};function S(e){return g.call(x,e)?!0:g.call(y,e)?!1:v.test(e)?x[e]=!0:(y[e]=!0,!1)}function C(e,t,i,o){if(i!==null&&i.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return o?!1:i!==null?!i.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function D(e,t,i,o){if(t===null||typeof t>"u"||C(e,t,i,o))return!0;if(o)return!1;if(i!==null)switch(i.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 L(e,t,i,o,l,c,p){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=o,this.attributeNamespace=l,this.mustUseProperty=i,this.propertyName=e,this.type=t,this.sanitizeURL=c,this.removeEmptyString=p}var N={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){N[e]=new L(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];N[t]=new L(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){N[e]=new L(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){N[e]=new L(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){N[e]=new L(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){N[e]=new L(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){N[e]=new L(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){N[e]=new L(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){N[e]=new L(e,5,!1,e.toLowerCase(),null,!1,!1)});var b=/[\-:]([a-z])/g;function F(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(b,F);N[t]=new L(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(b,F);N[t]=new L(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(b,F);N[t]=new L(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){N[e]=new L(e,1,!1,e.toLowerCase(),null,!1,!1)}),N.xlinkHref=new L("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){N[e]=new L(e,1,!1,e.toLowerCase(),null,!0,!0)});function P(e,t,i,o){var l=N.hasOwnProperty(t)?N[t]:null;(l!==null?l.type!==0:o||!(2w||l[p]!==c[w]){var k=` +`+l[p].replace(" at new "," at ");return e.displayName&&k.includes("")&&(k=k.replace("",e.displayName)),k}while(1<=p&&0<=w);break}}}finally{oe=!1,Error.prepareStackTrace=i}return(e=e?e.displayName||e.name:"")?I(e):""}function pe(e){switch(e.tag){case 5:return I(e.type);case 16:return I("Lazy");case 13:return I("Suspense");case 19:return I("SuspenseList");case 0:case 2:case 15:return e=ue(e.type,!1),e;case 11:return e=ue(e.type.render,!1),e;case 1:return e=ue(e.type,!0),e;default:return""}}function me(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 se:return"Fragment";case ee:return"Portal";case ie:return"Profiler";case J:return"StrictMode";case Ne:return"Suspense";case Le:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case he:return(e.displayName||"Context")+".Consumer";case q:return(e._context.displayName||"Context")+".Provider";case xe:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case _e:return t=e.displayName||null,t!==null?t:me(e.type)||"Memo";case Te:t=e._payload,e=e._init;try{return me(e(t))}catch{}}return null}function Se(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 me(t);case 8:return t===J?"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 ye(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Ae(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function ft(e){var t=Ae(e)?"checked":"value",i=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),o=""+e[t];if(!e.hasOwnProperty(t)&&typeof i<"u"&&typeof i.get=="function"&&typeof i.set=="function"){var l=i.get,c=i.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(p){o=""+p,c.call(this,p)}}),Object.defineProperty(e,t,{enumerable:i.enumerable}),{getValue:function(){return o},setValue:function(p){o=""+p},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ni(e){e._valueTracker||(e._valueTracker=ft(e))}function Fu(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var i=t.getValue(),o="";return e&&(o=Ae(e)?e.checked?"true":"false":e.value),e=o,e!==i?(t.setValue(e),!0):!1}function Mi(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 go(e,t){var i=t.checked;return H({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:i??e._wrapperState.initialChecked})}function Lu(e,t){var i=t.defaultValue==null?"":t.defaultValue,o=t.checked!=null?t.checked:t.defaultChecked;i=ye(t.value!=null?t.value:i),e._wrapperState={initialChecked:o,initialValue:i,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Ru(e,t){t=t.checked,t!=null&&P(e,"checked",t,!1)}function yo(e,t){Ru(e,t);var i=ye(t.value),o=t.type;if(i!=null)o==="number"?(i===0&&e.value===""||e.value!=i)&&(e.value=""+i):e.value!==""+i&&(e.value=""+i);else if(o==="submit"||o==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?vo(e,t.type,i):t.hasOwnProperty("defaultValue")&&vo(e,t.type,ye(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Iu(e,t,i){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var o=t.type;if(!(o!=="submit"&&o!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,i||t===e.value||(e.value=t),e.defaultValue=t}i=e.name,i!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,i!==""&&(e.name=i)}function vo(e,t,i){(t!=="number"||Mi(e.ownerDocument)!==e)&&(i==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+i&&(e.defaultValue=""+i))}var jr=Array.isArray;function Yn(e,t,i,o){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=Di.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Nr(e,t){if(t){var i=e.firstChild;if(i&&i===e.lastChild&&i.nodeType===3){i.nodeValue=t;return}}e.textContent=t}var Mr={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},Ym=["Webkit","ms","Moz","O"];Object.keys(Mr).forEach(function(e){Ym.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Mr[t]=Mr[e]})});function Bu(e,t,i){return t==null||typeof t=="boolean"||t===""?"":i||typeof t!="number"||t===0||Mr.hasOwnProperty(e)&&Mr[e]?(""+t).trim():t+"px"}function Uu(e,t){e=e.style;for(var i in t)if(t.hasOwnProperty(i)){var o=i.indexOf("--")===0,l=Bu(i,t[i],o);i==="float"&&(i="cssFloat"),o?e.setProperty(i,l):e[i]=l}}var Xm=H({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 So(e,t){if(t){if(Xm[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(s(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(s(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(s(61))}if(t.style!=null&&typeof t.style!="object")throw Error(s(62))}}function ko(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 To=null;function Co(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Eo=null,Xn=null,Qn=null;function Wu(e){if(e=Zr(e)){if(typeof Eo!="function")throw Error(s(280));var t=e.stateNode;t&&(t=es(t),Eo(e.stateNode,e.type,t))}}function Hu(e){Xn?Qn?Qn.push(e):Qn=[e]:Xn=e}function $u(){if(Xn){var e=Xn,t=Qn;if(Qn=Xn=null,Wu(e),t)for(e=0;e>>=0,e===0?32:31-(og(e)/ag|0)|0}var Vi=64,bi=4194304;function Rr(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 _i(e,t){var i=e.pendingLanes;if(i===0)return 0;var o=0,l=e.suspendedLanes,c=e.pingedLanes,p=i&268435455;if(p!==0){var w=p&~l;w!==0?o=Rr(w):(c&=p,c!==0&&(o=Rr(c)))}else p=i&~l,p!==0?o=Rr(p):c!==0&&(o=Rr(c));if(o===0)return 0;if(t!==0&&t!==o&&(t&l)===0&&(l=o&-o,c=t&-t,l>=c||l===16&&(c&4194240)!==0))return t;if((o&4)!==0&&(o|=i&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=o;0i;i++)t.push(e);return t}function Ir(e,t,i){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Pt(t),e[t]=i}function dg(e,t){var i=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 o=e.eventTimes;for(e=e.expirationTimes;0=Wr),xc=" ",wc=!1;function Sc(e,t){switch(e){case"keyup":return zg.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function kc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Jn=!1;function Bg(e,t){switch(e){case"compositionend":return kc(t);case"keypress":return t.which!==32?null:(wc=!0,xc);case"textInput":return e=t.data,e===xc&&wc?null:e;default:return null}}function Ug(e,t){if(Jn)return e==="compositionend"||!Wo&&Sc(e,t)?(e=hc(),Wi=bo=on=null,Jn=!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:i,offset:t-e};e=o}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=Nc(i)}}function Dc(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Dc(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Fc(){for(var e=window,t=Mi();t instanceof e.HTMLIFrameElement;){try{var i=typeof t.contentWindow.location.href=="string"}catch{i=!1}if(i)e=t.contentWindow;else break;t=Mi(e.document)}return t}function Go(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 qg(e){var t=Fc(),i=e.focusedElem,o=e.selectionRange;if(t!==i&&i&&i.ownerDocument&&Dc(i.ownerDocument.documentElement,i)){if(o!==null&&Go(i)){if(t=o.start,e=o.end,e===void 0&&(e=t),"selectionStart"in i)i.selectionStart=t,i.selectionEnd=Math.min(e,i.value.length);else if(e=(t=i.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=i.textContent.length,c=Math.min(o.start,l);o=o.end===void 0?c:Math.min(o.end,l),!e.extend&&c>o&&(l=o,o=c,c=l),l=Mc(i,c);var p=Mc(i,o);l&&p&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==p.node||e.focusOffset!==p.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),c>o?(e.addRange(t),e.extend(p.node,p.offset)):(t.setEnd(p.node,p.offset),e.addRange(t)))}}for(t=[],e=i;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof i.focus=="function"&&i.focus(),i=0;i=document.documentMode,er=null,Ko=null,Kr=null,Yo=!1;function Lc(e,t,i){var o=i.window===i?i.document:i.nodeType===9?i:i.ownerDocument;Yo||er==null||er!==Mi(o)||(o=er,"selectionStart"in o&&Go(o)?o={start:o.selectionStart,end:o.selectionEnd}:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection(),o={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}),Kr&&Gr(Kr,o)||(Kr=o,o=qi(Ko,"onSelect"),0sr||(e.current=oa[sr],oa[sr]=null,sr--)}function ke(e,t){sr++,oa[sr]=e.current,e.current=t}var cn={},Ze=un(cn),ot=un(!1),Mn=cn;function or(e,t){var i=e.type.contextTypes;if(!i)return cn;var o=e.stateNode;if(o&&o.__reactInternalMemoizedUnmaskedChildContext===t)return o.__reactInternalMemoizedMaskedChildContext;var l={},c;for(c in i)l[c]=t[c];return o&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function at(e){return e=e.childContextTypes,e!=null}function ts(){Ee(ot),Ee(Ze)}function Yc(e,t,i){if(Ze.current!==cn)throw Error(s(168));ke(Ze,t),ke(ot,i)}function Xc(e,t,i){var o=e.stateNode;if(t=t.childContextTypes,typeof o.getChildContext!="function")return i;o=o.getChildContext();for(var l in o)if(!(l in t))throw Error(s(108,Se(e)||"Unknown",l));return H({},i,o)}function ns(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||cn,Mn=Ze.current,ke(Ze,e),ke(ot,ot.current),!0}function Qc(e,t,i){var o=e.stateNode;if(!o)throw Error(s(169));i?(e=Xc(e,t,Mn),o.__reactInternalMemoizedMergedChildContext=e,Ee(ot),Ee(Ze),ke(Ze,e)):Ee(ot),ke(ot,i)}var Yt=null,rs=!1,aa=!1;function qc(e){Yt===null?Yt=[e]:Yt.push(e)}function uy(e){rs=!0,qc(e)}function dn(){if(!aa&&Yt!==null){aa=!0;var e=0,t=ve;try{var i=Yt;for(ve=1;e>=p,l-=p,Xt=1<<32-Pt(t)+l|i<re?(Ke=ne,ne=null):Ke=ne.sibling;var ge=V(A,ne,j[re],U);if(ge===null){ne===null&&(ne=Ke);break}e&&ne&&ge.alternate===null&&t(A,ne),T=c(ge,T,re),te===null?Z=ge:te.sibling=ge,te=ge,ne=Ke}if(re===j.length)return i(A,ne),je&&Fn(A,re),Z;if(ne===null){for(;rere?(Ke=ne,ne=null):Ke=ne.sibling;var wn=V(A,ne,ge.value,U);if(wn===null){ne===null&&(ne=Ke);break}e&&ne&&wn.alternate===null&&t(A,ne),T=c(wn,T,re),te===null?Z=wn:te.sibling=wn,te=wn,ne=Ke}if(ge.done)return i(A,ne),je&&Fn(A,re),Z;if(ne===null){for(;!ge.done;re++,ge=j.next())ge=O(A,ge.value,U),ge!==null&&(T=c(ge,T,re),te===null?Z=ge:te.sibling=ge,te=ge);return je&&Fn(A,re),Z}for(ne=o(A,ne);!ge.done;re++,ge=j.next())ge=$(ne,A,re,ge.value,U),ge!==null&&(e&&ge.alternate!==null&&ne.delete(ge.key===null?re:ge.key),T=c(ge,T,re),te===null?Z=ge:te.sibling=ge,te=ge);return e&&ne.forEach(function(Wy){return t(A,Wy)}),je&&Fn(A,re),Z}function be(A,T,j,U){if(typeof j=="object"&&j!==null&&j.type===se&&j.key===null&&(j=j.props.children),typeof j=="object"&&j!==null){switch(j.$$typeof){case W:e:{for(var Z=j.key,te=T;te!==null;){if(te.key===Z){if(Z=j.type,Z===se){if(te.tag===7){i(A,te.sibling),T=l(te,j.props.children),T.return=A,A=T;break e}}else if(te.elementType===Z||typeof Z=="object"&&Z!==null&&Z.$$typeof===Te&&rd(Z)===te.type){i(A,te.sibling),T=l(te,j.props),T.ref=Jr(A,te,j),T.return=A,A=T;break e}i(A,te);break}else t(A,te);te=te.sibling}j.type===se?(T=On(j.props.children,A.mode,U,j.key),T.return=A,A=T):(U=Ds(j.type,j.key,j.props,null,A.mode,U),U.ref=Jr(A,T,j),U.return=A,A=U)}return p(A);case ee:e:{for(te=j.key;T!==null;){if(T.key===te)if(T.tag===4&&T.stateNode.containerInfo===j.containerInfo&&T.stateNode.implementation===j.implementation){i(A,T.sibling),T=l(T,j.children||[]),T.return=A,A=T;break e}else{i(A,T);break}else t(A,T);T=T.sibling}T=il(j,A.mode,U),T.return=A,A=T}return p(A);case Te:return te=j._init,be(A,T,te(j._payload),U)}if(jr(j))return K(A,T,j,U);if(X(j))return Q(A,T,j,U);as(A,j)}return typeof j=="string"&&j!==""||typeof j=="number"?(j=""+j,T!==null&&T.tag===6?(i(A,T.sibling),T=l(T,j),T.return=A,A=T):(i(A,T),T=rl(j,A.mode,U),T.return=A,A=T),p(A)):i(A,T)}return be}var cr=id(!0),sd=id(!1),ls=un(null),us=null,dr=null,ha=null;function pa(){ha=dr=us=null}function ma(e){var t=ls.current;Ee(ls),e._currentValue=t}function ga(e,t,i){for(;e!==null;){var o=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,o!==null&&(o.childLanes|=t)):o!==null&&(o.childLanes&t)!==t&&(o.childLanes|=t),e===i)break;e=e.return}}function fr(e,t){us=e,ha=dr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(lt=!0),e.firstContext=null)}function wt(e){var t=e._currentValue;if(ha!==e)if(e={context:e,memoizedValue:t,next:null},dr===null){if(us===null)throw Error(s(308));dr=e,us.dependencies={lanes:0,firstContext:e}}else dr=dr.next=e;return t}var Ln=null;function ya(e){Ln===null?Ln=[e]:Ln.push(e)}function od(e,t,i,o){var l=t.interleaved;return l===null?(i.next=i,ya(t)):(i.next=l.next,l.next=i),t.interleaved=i,qt(e,o)}function qt(e,t){e.lanes|=t;var i=e.alternate;for(i!==null&&(i.lanes|=t),i=e,e=e.return;e!==null;)e.childLanes|=t,i=e.alternate,i!==null&&(i.childLanes|=t),i=e,e=e.return;return i.tag===3?i.stateNode:null}var fn=!1;function va(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function ad(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Zt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function hn(e,t,i){var o=e.updateQueue;if(o===null)return null;if(o=o.shared,(de&2)!==0){var l=o.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),o.pending=t,qt(e,i)}return l=o.interleaved,l===null?(t.next=t,ya(o)):(t.next=l.next,l.next=t),o.interleaved=t,qt(e,i)}function cs(e,t,i){if(t=t.updateQueue,t!==null&&(t=t.shared,(i&4194240)!==0)){var o=t.lanes;o&=e.pendingLanes,i|=o,t.lanes=i,Fo(e,i)}}function ld(e,t){var i=e.updateQueue,o=e.alternate;if(o!==null&&(o=o.updateQueue,i===o)){var l=null,c=null;if(i=i.firstBaseUpdate,i!==null){do{var p={eventTime:i.eventTime,lane:i.lane,tag:i.tag,payload:i.payload,callback:i.callback,next:null};c===null?l=c=p:c=c.next=p,i=i.next}while(i!==null);c===null?l=c=t:c=c.next=t}else l=c=t;i={baseState:o.baseState,firstBaseUpdate:l,lastBaseUpdate:c,shared:o.shared,effects:o.effects},e.updateQueue=i;return}e=i.lastBaseUpdate,e===null?i.firstBaseUpdate=t:e.next=t,i.lastBaseUpdate=t}function ds(e,t,i,o){var l=e.updateQueue;fn=!1;var c=l.firstBaseUpdate,p=l.lastBaseUpdate,w=l.shared.pending;if(w!==null){l.shared.pending=null;var k=w,M=k.next;k.next=null,p===null?c=M:p.next=M,p=k;var _=e.alternate;_!==null&&(_=_.updateQueue,w=_.lastBaseUpdate,w!==p&&(w===null?_.firstBaseUpdate=M:w.next=M,_.lastBaseUpdate=k))}if(c!==null){var O=l.baseState;p=0,_=M=k=null,w=c;do{var V=w.lane,$=w.eventTime;if((o&V)===V){_!==null&&(_=_.next={eventTime:$,lane:0,tag:w.tag,payload:w.payload,callback:w.callback,next:null});e:{var K=e,Q=w;switch(V=t,$=i,Q.tag){case 1:if(K=Q.payload,typeof K=="function"){O=K.call($,O,V);break e}O=K;break e;case 3:K.flags=K.flags&-65537|128;case 0:if(K=Q.payload,V=typeof K=="function"?K.call($,O,V):K,V==null)break e;O=H({},O,V);break e;case 2:fn=!0}}w.callback!==null&&w.lane!==0&&(e.flags|=64,V=l.effects,V===null?l.effects=[w]:V.push(w))}else $={eventTime:$,lane:V,tag:w.tag,payload:w.payload,callback:w.callback,next:null},_===null?(M=_=$,k=O):_=_.next=$,p|=V;if(w=w.next,w===null){if(w=l.shared.pending,w===null)break;V=w,w=V.next,V.next=null,l.lastBaseUpdate=V,l.shared.pending=null}}while(!0);if(_===null&&(k=O),l.baseState=k,l.firstBaseUpdate=M,l.lastBaseUpdate=_,t=l.shared.interleaved,t!==null){l=t;do p|=l.lane,l=l.next;while(l!==t)}else c===null&&(l.shared.lanes=0);Vn|=p,e.lanes=p,e.memoizedState=O}}function ud(e,t,i){if(e=t.effects,t.effects=null,e!==null)for(t=0;ti?i:4,e(!0);var o=Ta.transition;Ta.transition={};try{e(!1),t()}finally{ve=i,Ta.transition=o}}function jd(){return St().memoizedState}function hy(e,t,i){var o=yn(e);if(i={lane:o,action:i,hasEagerState:!1,eagerState:null,next:null},Nd(e))Md(t,i);else if(i=od(e,t,i,o),i!==null){var l=rt();Ft(i,e,o,l),Dd(i,t,o)}}function py(e,t,i){var o=yn(e),l={lane:o,action:i,hasEagerState:!1,eagerState:null,next:null};if(Nd(e))Md(t,l);else{var c=e.alternate;if(e.lanes===0&&(c===null||c.lanes===0)&&(c=t.lastRenderedReducer,c!==null))try{var p=t.lastRenderedState,w=c(p,i);if(l.hasEagerState=!0,l.eagerState=w,At(w,p)){var k=t.interleaved;k===null?(l.next=l,ya(t)):(l.next=k.next,k.next=l),t.interleaved=l;return}}catch{}finally{}i=od(e,t,l,o),i!==null&&(l=rt(),Ft(i,e,o,l),Dd(i,t,o))}}function Nd(e){var t=e.alternate;return e===Fe||t!==null&&t===Fe}function Md(e,t){ri=ps=!0;var i=e.pending;i===null?t.next=t:(t.next=i.next,i.next=t),e.pending=t}function Dd(e,t,i){if((i&4194240)!==0){var o=t.lanes;o&=e.pendingLanes,i|=o,t.lanes=i,Fo(e,i)}}var ys={readContext:wt,useCallback:Je,useContext:Je,useEffect:Je,useImperativeHandle:Je,useInsertionEffect:Je,useLayoutEffect:Je,useMemo:Je,useReducer:Je,useRef:Je,useState:Je,useDebugValue:Je,useDeferredValue:Je,useTransition:Je,useMutableSource:Je,useSyncExternalStore:Je,useId:Je,unstable_isNewReconciler:!1},my={readContext:wt,useCallback:function(e,t){return Ot().memoizedState=[e,t===void 0?null:t],e},useContext:wt,useEffect:wd,useImperativeHandle:function(e,t,i){return i=i!=null?i.concat([e]):null,ms(4194308,4,Td.bind(null,t,e),i)},useLayoutEffect:function(e,t){return ms(4194308,4,e,t)},useInsertionEffect:function(e,t){return ms(4,2,e,t)},useMemo:function(e,t){var i=Ot();return t=t===void 0?null:t,e=e(),i.memoizedState=[e,t],e},useReducer:function(e,t,i){var o=Ot();return t=i!==void 0?i(t):t,o.memoizedState=o.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},o.queue=e,e=e.dispatch=hy.bind(null,Fe,e),[o.memoizedState,e]},useRef:function(e){var t=Ot();return e={current:e},t.memoizedState=e},useState:vd,useDebugValue:Ma,useDeferredValue:function(e){return Ot().memoizedState=e},useTransition:function(){var e=vd(!1),t=e[0];return e=fy.bind(null,e[1]),Ot().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,i){var o=Fe,l=Ot();if(je){if(i===void 0)throw Error(s(407));i=i()}else{if(i=t(),Ge===null)throw Error(s(349));(In&30)!==0||hd(o,t,i)}l.memoizedState=i;var c={value:i,getSnapshot:t};return l.queue=c,wd(md.bind(null,o,c,e),[e]),o.flags|=2048,oi(9,pd.bind(null,o,c,i,t),void 0,null),i},useId:function(){var e=Ot(),t=Ge.identifierPrefix;if(je){var i=Qt,o=Xt;i=(o&~(1<<32-Pt(o)-1)).toString(32)+i,t=":"+t+"R"+i,i=ii++,0<\/script>",e=e.removeChild(e.firstChild)):typeof o.is=="string"?e=p.createElement(i,{is:o.is}):(e=p.createElement(i),i==="select"&&(p=e,o.multiple?p.multiple=!0:o.size&&(p.size=o.size))):e=p.createElementNS(e,i),e[_t]=t,e[qr]=o,qd(e,t,!1,!1),t.stateNode=e;e:{switch(p=ko(i,o),i){case"dialog":Ce("cancel",e),Ce("close",e),l=o;break;case"iframe":case"object":case"embed":Ce("load",e),l=o;break;case"video":case"audio":for(l=0;lyr&&(t.flags|=128,o=!0,ai(c,!1),t.lanes=4194304)}else{if(!o)if(e=fs(p),e!==null){if(t.flags|=128,o=!0,i=e.updateQueue,i!==null&&(t.updateQueue=i,t.flags|=4),ai(c,!0),c.tail===null&&c.tailMode==="hidden"&&!p.alternate&&!je)return et(t),null}else 2*Ve()-c.renderingStartTime>yr&&i!==1073741824&&(t.flags|=128,o=!0,ai(c,!1),t.lanes=4194304);c.isBackwards?(p.sibling=t.child,t.child=p):(i=c.last,i!==null?i.sibling=p:t.child=p,c.last=p)}return c.tail!==null?(t=c.tail,c.rendering=t,c.tail=t.sibling,c.renderingStartTime=Ve(),t.sibling=null,i=De.current,ke(De,o?i&1|2:i&1),t):(et(t),null);case 22:case 23:return el(),o=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==o&&(t.flags|=8192),o&&(t.mode&1)!==0?(gt&1073741824)!==0&&(et(t),t.subtreeFlags&6&&(t.flags|=8192)):et(t),null;case 24:return null;case 25:return null}throw Error(s(156,t.tag))}function Ty(e,t){switch(ua(t),t.tag){case 1:return at(t.type)&&ts(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return hr(),Ee(ot),Ee(Ze),ka(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return wa(t),null;case 13:if(Ee(De),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(s(340));ur()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ee(De),null;case 4:return hr(),null;case 10:return ma(t.type._context),null;case 22:case 23:return el(),null;case 24:return null;default:return null}}var Ss=!1,tt=!1,Cy=typeof WeakSet=="function"?WeakSet:Set,G=null;function mr(e,t){var i=e.ref;if(i!==null)if(typeof i=="function")try{i(null)}catch(o){Re(e,t,o)}else i.current=null}function Ua(e,t,i){try{i()}catch(o){Re(e,t,o)}}var ef=!1;function Ey(e,t){if(ea=Bi,e=Fc(),Go(e)){if("selectionStart"in e)var i={start:e.selectionStart,end:e.selectionEnd};else e:{i=(i=e.ownerDocument)&&i.defaultView||window;var o=i.getSelection&&i.getSelection();if(o&&o.rangeCount!==0){i=o.anchorNode;var l=o.anchorOffset,c=o.focusNode;o=o.focusOffset;try{i.nodeType,c.nodeType}catch{i=null;break e}var p=0,w=-1,k=-1,M=0,_=0,O=e,V=null;t:for(;;){for(var $;O!==i||l!==0&&O.nodeType!==3||(w=p+l),O!==c||o!==0&&O.nodeType!==3||(k=p+o),O.nodeType===3&&(p+=O.nodeValue.length),($=O.firstChild)!==null;)V=O,O=$;for(;;){if(O===e)break t;if(V===i&&++M===l&&(w=p),V===c&&++_===o&&(k=p),($=O.nextSibling)!==null)break;O=V,V=O.parentNode}O=$}i=w===-1||k===-1?null:{start:w,end:k}}else i=null}i=i||{start:0,end:0}}else i=null;for(ta={focusedElem:e,selectionRange:i},Bi=!1,G=t;G!==null;)if(t=G,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,G=e;else for(;G!==null;){t=G;try{var K=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(K!==null){var Q=K.memoizedProps,be=K.memoizedState,A=t.stateNode,T=A.getSnapshotBeforeUpdate(t.elementType===t.type?Q:Nt(t.type,Q),be);A.__reactInternalSnapshotBeforeUpdate=T}break;case 3:var j=t.stateNode.containerInfo;j.nodeType===1?j.textContent="":j.nodeType===9&&j.documentElement&&j.removeChild(j.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(s(163))}}catch(U){Re(t,t.return,U)}if(e=t.sibling,e!==null){e.return=t.return,G=e;break}G=t.return}return K=ef,ef=!1,K}function li(e,t,i){var o=t.updateQueue;if(o=o!==null?o.lastEffect:null,o!==null){var l=o=o.next;do{if((l.tag&e)===e){var c=l.destroy;l.destroy=void 0,c!==void 0&&Ua(t,i,c)}l=l.next}while(l!==o)}}function ks(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var i=t=t.next;do{if((i.tag&e)===e){var o=i.create;i.destroy=o()}i=i.next}while(i!==t)}}function Wa(e){var t=e.ref;if(t!==null){var i=e.stateNode;switch(e.tag){case 5:e=i;break;default:e=i}typeof t=="function"?t(e):t.current=e}}function tf(e){var t=e.alternate;t!==null&&(e.alternate=null,tf(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[_t],delete t[qr],delete t[sa],delete t[ay],delete t[ly])),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 nf(e){return e.tag===5||e.tag===3||e.tag===4}function rf(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||nf(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 Ha(e,t,i){var o=e.tag;if(o===5||o===6)e=e.stateNode,t?i.nodeType===8?i.parentNode.insertBefore(e,t):i.insertBefore(e,t):(i.nodeType===8?(t=i.parentNode,t.insertBefore(e,i)):(t=i,t.appendChild(e)),i=i._reactRootContainer,i!=null||t.onclick!==null||(t.onclick=Ji));else if(o!==4&&(e=e.child,e!==null))for(Ha(e,t,i),e=e.sibling;e!==null;)Ha(e,t,i),e=e.sibling}function $a(e,t,i){var o=e.tag;if(o===5||o===6)e=e.stateNode,t?i.insertBefore(e,t):i.appendChild(e);else if(o!==4&&(e=e.child,e!==null))for($a(e,t,i),e=e.sibling;e!==null;)$a(e,t,i),e=e.sibling}var Ye=null,Mt=!1;function pn(e,t,i){for(i=i.child;i!==null;)sf(e,t,i),i=i.sibling}function sf(e,t,i){if(bt&&typeof bt.onCommitFiberUnmount=="function")try{bt.onCommitFiberUnmount(Ii,i)}catch{}switch(i.tag){case 5:tt||mr(i,t);case 6:var o=Ye,l=Mt;Ye=null,pn(e,t,i),Ye=o,Mt=l,Ye!==null&&(Mt?(e=Ye,i=i.stateNode,e.nodeType===8?e.parentNode.removeChild(i):e.removeChild(i)):Ye.removeChild(i.stateNode));break;case 18:Ye!==null&&(Mt?(e=Ye,i=i.stateNode,e.nodeType===8?ia(e.parentNode,i):e.nodeType===1&&ia(e,i),Or(e)):ia(Ye,i.stateNode));break;case 4:o=Ye,l=Mt,Ye=i.stateNode.containerInfo,Mt=!0,pn(e,t,i),Ye=o,Mt=l;break;case 0:case 11:case 14:case 15:if(!tt&&(o=i.updateQueue,o!==null&&(o=o.lastEffect,o!==null))){l=o=o.next;do{var c=l,p=c.destroy;c=c.tag,p!==void 0&&((c&2)!==0||(c&4)!==0)&&Ua(i,t,p),l=l.next}while(l!==o)}pn(e,t,i);break;case 1:if(!tt&&(mr(i,t),o=i.stateNode,typeof o.componentWillUnmount=="function"))try{o.props=i.memoizedProps,o.state=i.memoizedState,o.componentWillUnmount()}catch(w){Re(i,t,w)}pn(e,t,i);break;case 21:pn(e,t,i);break;case 22:i.mode&1?(tt=(o=tt)||i.memoizedState!==null,pn(e,t,i),tt=o):pn(e,t,i);break;default:pn(e,t,i)}}function of(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var i=e.stateNode;i===null&&(i=e.stateNode=new Cy),t.forEach(function(o){var l=Ry.bind(null,e,o);i.has(o)||(i.add(o),o.then(l,l))})}}function Dt(e,t){var i=t.deletions;if(i!==null)for(var o=0;ol&&(l=p),o&=~c}if(o=l,o=Ve()-o,o=(120>o?120:480>o?480:1080>o?1080:1920>o?1920:3e3>o?3e3:4320>o?4320:1960*Ay(o/1960))-o,10e?16:e,gn===null)var o=!1;else{if(e=gn,gn=null,As=0,(de&6)!==0)throw Error(s(331));var l=de;for(de|=4,G=e.current;G!==null;){var c=G,p=c.child;if((G.flags&16)!==0){var w=c.deletions;if(w!==null){for(var k=0;kVe()-Ya?_n(e,0):Ka|=i),ct(e,t)}function xf(e,t){t===0&&((e.mode&1)===0?t=1:(t=bi,bi<<=1,(bi&130023424)===0&&(bi=4194304)));var i=rt();e=qt(e,t),e!==null&&(Ir(e,t,i),ct(e,i))}function Ly(e){var t=e.memoizedState,i=0;t!==null&&(i=t.retryLane),xf(e,i)}function Ry(e,t){var i=0;switch(e.tag){case 13:var o=e.stateNode,l=e.memoizedState;l!==null&&(i=l.retryLane);break;case 19:o=e.stateNode;break;default:throw Error(s(314))}o!==null&&o.delete(t),xf(e,i)}var wf;wf=function(e,t,i){if(e!==null)if(e.memoizedProps!==t.pendingProps||ot.current)lt=!0;else{if((e.lanes&i)===0&&(t.flags&128)===0)return lt=!1,Sy(e,t,i);lt=(e.flags&131072)!==0}else lt=!1,je&&(t.flags&1048576)!==0&&Zc(t,ss,t.index);switch(t.lanes=0,t.tag){case 2:var o=t.type;ws(e,t),e=t.pendingProps;var l=or(t,Ze.current);fr(t,i),l=Ea(null,t,o,e,l,i);var c=Pa();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,at(o)?(c=!0,ns(t)):c=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,va(t),l.updater=vs,t.stateNode=l,l._reactInternals=t,Fa(t,o,e,i),t=Va(null,t,o,!0,c,i)):(t.tag=0,je&&c&&la(t),nt(null,t,l,i),t=t.child),t;case 16:o=t.elementType;e:{switch(ws(e,t),e=t.pendingProps,l=o._init,o=l(o._payload),t.type=o,l=t.tag=Vy(o),e=Nt(o,e),l){case 0:t=Ia(null,t,o,e,i);break e;case 1:t=$d(null,t,o,e,i);break e;case 11:t=Od(null,t,o,e,i);break e;case 14:t=Bd(null,t,o,Nt(o.type,e),i);break e}throw Error(s(306,o,""))}return t;case 0:return o=t.type,l=t.pendingProps,l=t.elementType===o?l:Nt(o,l),Ia(e,t,o,l,i);case 1:return o=t.type,l=t.pendingProps,l=t.elementType===o?l:Nt(o,l),$d(e,t,o,l,i);case 3:e:{if(Gd(t),e===null)throw Error(s(387));o=t.pendingProps,c=t.memoizedState,l=c.element,ad(e,t),ds(t,o,null,i);var p=t.memoizedState;if(o=p.element,c.isDehydrated)if(c={element:o,isDehydrated:!1,cache:p.cache,pendingSuspenseBoundaries:p.pendingSuspenseBoundaries,transitions:p.transitions},t.updateQueue.baseState=c,t.memoizedState=c,t.flags&256){l=pr(Error(s(423)),t),t=Kd(e,t,o,i,l);break e}else if(o!==l){l=pr(Error(s(424)),t),t=Kd(e,t,o,i,l);break e}else for(mt=ln(t.stateNode.containerInfo.firstChild),pt=t,je=!0,jt=null,i=sd(t,null,o,i),t.child=i;i;)i.flags=i.flags&-3|4096,i=i.sibling;else{if(ur(),o===l){t=Jt(e,t,i);break e}nt(e,t,o,i)}t=t.child}return t;case 5:return cd(t),e===null&&da(t),o=t.type,l=t.pendingProps,c=e!==null?e.memoizedProps:null,p=l.children,na(o,l)?p=null:c!==null&&na(o,c)&&(t.flags|=32),Hd(e,t),nt(e,t,p,i),t.child;case 6:return e===null&&da(t),null;case 13:return Yd(e,t,i);case 4:return xa(t,t.stateNode.containerInfo),o=t.pendingProps,e===null?t.child=cr(t,null,o,i):nt(e,t,o,i),t.child;case 11:return o=t.type,l=t.pendingProps,l=t.elementType===o?l:Nt(o,l),Od(e,t,o,l,i);case 7:return nt(e,t,t.pendingProps,i),t.child;case 8:return nt(e,t,t.pendingProps.children,i),t.child;case 12:return nt(e,t,t.pendingProps.children,i),t.child;case 10:e:{if(o=t.type._context,l=t.pendingProps,c=t.memoizedProps,p=l.value,ke(ls,o._currentValue),o._currentValue=p,c!==null)if(At(c.value,p)){if(c.children===l.children&&!ot.current){t=Jt(e,t,i);break e}}else for(c=t.child,c!==null&&(c.return=t);c!==null;){var w=c.dependencies;if(w!==null){p=c.child;for(var k=w.firstContext;k!==null;){if(k.context===o){if(c.tag===1){k=Zt(-1,i&-i),k.tag=2;var M=c.updateQueue;if(M!==null){M=M.shared;var _=M.pending;_===null?k.next=k:(k.next=_.next,_.next=k),M.pending=k}}c.lanes|=i,k=c.alternate,k!==null&&(k.lanes|=i),ga(c.return,i,t),w.lanes|=i;break}k=k.next}}else if(c.tag===10)p=c.type===t.type?null:c.child;else if(c.tag===18){if(p=c.return,p===null)throw Error(s(341));p.lanes|=i,w=p.alternate,w!==null&&(w.lanes|=i),ga(p,i,t),p=c.sibling}else p=c.child;if(p!==null)p.return=c;else for(p=c;p!==null;){if(p===t){p=null;break}if(c=p.sibling,c!==null){c.return=p.return,p=c;break}p=p.return}c=p}nt(e,t,l.children,i),t=t.child}return t;case 9:return l=t.type,o=t.pendingProps.children,fr(t,i),l=wt(l),o=o(l),t.flags|=1,nt(e,t,o,i),t.child;case 14:return o=t.type,l=Nt(o,t.pendingProps),l=Nt(o.type,l),Bd(e,t,o,l,i);case 15:return Ud(e,t,t.type,t.pendingProps,i);case 17:return o=t.type,l=t.pendingProps,l=t.elementType===o?l:Nt(o,l),ws(e,t),t.tag=1,at(o)?(e=!0,ns(t)):e=!1,fr(t,i),Ld(t,o,l),Fa(t,o,l,i),Va(null,t,o,!0,e,i);case 19:return Qd(e,t,i);case 22:return Wd(e,t,i)}throw Error(s(156,t.tag))};function Sf(e,t){return Ju(e,t)}function Iy(e,t,i,o){this.tag=e,this.key=i,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=o,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Tt(e,t,i,o){return new Iy(e,t,i,o)}function nl(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Vy(e){if(typeof e=="function")return nl(e)?1:0;if(e!=null){if(e=e.$$typeof,e===xe)return 11;if(e===_e)return 14}return 2}function xn(e,t){var i=e.alternate;return i===null?(i=Tt(e.tag,t,e.key,e.mode),i.elementType=e.elementType,i.type=e.type,i.stateNode=e.stateNode,i.alternate=e,e.alternate=i):(i.pendingProps=t,i.type=e.type,i.flags=0,i.subtreeFlags=0,i.deletions=null),i.flags=e.flags&14680064,i.childLanes=e.childLanes,i.lanes=e.lanes,i.child=e.child,i.memoizedProps=e.memoizedProps,i.memoizedState=e.memoizedState,i.updateQueue=e.updateQueue,t=e.dependencies,i.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},i.sibling=e.sibling,i.index=e.index,i.ref=e.ref,i}function Ds(e,t,i,o,l,c){var p=2;if(o=e,typeof e=="function")nl(e)&&(p=1);else if(typeof e=="string")p=5;else e:switch(e){case se:return On(i.children,l,c,t);case J:p=8,l|=8;break;case ie:return e=Tt(12,i,t,l|2),e.elementType=ie,e.lanes=c,e;case Ne:return e=Tt(13,i,t,l),e.elementType=Ne,e.lanes=c,e;case Le:return e=Tt(19,i,t,l),e.elementType=Le,e.lanes=c,e;case Me:return Fs(i,l,c,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case q:p=10;break e;case he:p=9;break e;case xe:p=11;break e;case _e:p=14;break e;case Te:p=16,o=null;break e}throw Error(s(130,e==null?e:typeof e,""))}return t=Tt(p,i,t,l),t.elementType=e,t.type=o,t.lanes=c,t}function On(e,t,i,o){return e=Tt(7,e,o,t),e.lanes=i,e}function Fs(e,t,i,o){return e=Tt(22,e,o,t),e.elementType=Me,e.lanes=i,e.stateNode={isHidden:!1},e}function rl(e,t,i){return e=Tt(6,e,null,t),e.lanes=i,e}function il(e,t,i){return t=Tt(4,e.children!==null?e.children:[],e.key,t),t.lanes=i,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function by(e,t,i,o,l){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=Do(0),this.expirationTimes=Do(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Do(0),this.identifierPrefix=o,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function sl(e,t,i,o,l,c,p,w,k){return e=new by(e,t,i,w,k),t===1?(t=1,c===!0&&(t|=8)):t=0,c=Tt(3,null,null,t),e.current=c,c.stateNode=e,c.memoizedState={element:o,isDehydrated:i,cache:null,transitions:null,pendingSuspenseBoundaries:null},va(c),e}function _y(e,t,i){var o=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(r){console.error(r)}}return n(),dl.exports=Qy(),dl.exports}var If;function Zy(){if(If)return zs;If=1;var n=qy();return zs.createRoot=n.createRoot,zs.hydrateRoot=n.hydrateRoot,zs}var Jy=Zy();const e0=np(Jy),nu=z.createContext({});function ru(n){const r=z.useRef(null);return r.current===null&&(r.current=n()),r.current}const t0=typeof window<"u",rp=t0?z.useLayoutEffect:z.useEffect,co=z.createContext(null);function iu(n,r){n.indexOf(r)===-1&&n.push(r)}function to(n,r){const s=n.indexOf(r);s>-1&&n.splice(s,1)}const Gt=(n,r,s)=>s>r?r:s{};const En={},ip=n=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(n);function sp(n){return typeof n=="object"&&n!==null}const op=n=>/^0[^.\s]+$/u.test(n);function ap(n){let r;return()=>(r===void 0&&(r=n()),r)}const Et=n=>n,n0=(n,r)=>s=>r(n(s)),Ei=(...n)=>n.reduce(n0),Si=(n,r,s)=>{const a=r-n;return a===0?1:(s-n)/a};class ou{constructor(){this.subscriptions=[]}add(r){return iu(this.subscriptions,r),()=>to(this.subscriptions,r)}notify(r,s,a){const u=this.subscriptions.length;if(u)if(u===1)this.subscriptions[0](r,s,a);else for(let f=0;fn*1e3,Ct=n=>n/1e3;function lp(n,r){return r?n*(1e3/r):0}const up=(n,r,s)=>(((1-3*s+3*r)*n+(3*s-6*r))*n+3*r)*n,r0=1e-7,i0=12;function s0(n,r,s,a,u){let f,d,h=0;do d=r+(s-r)/2,f=up(d,a,u)-n,f>0?s=d:r=d;while(Math.abs(f)>r0&&++hs0(f,0,1,n,s);return f=>f===0||f===1?f:up(u(f),r,a)}const cp=n=>r=>r<=.5?n(2*r)/2:(2-n(2*(1-r)))/2,dp=n=>r=>1-n(1-r),fp=Pi(.33,1.53,.69,.99),au=dp(fp),hp=cp(au),pp=n=>n>=1?1:(n*=2)<1?.5*au(n):.5*(2-Math.pow(2,-10*(n-1))),lu=n=>1-Math.sin(Math.acos(n)),mp=dp(lu),gp=cp(lu),o0=Pi(.42,0,1,1),a0=Pi(0,0,.58,1),yp=Pi(.42,0,.58,1),l0=n=>Array.isArray(n)&&typeof n[0]!="number",vp=n=>Array.isArray(n)&&typeof n[0]=="number",u0={linear:Et,easeIn:o0,easeInOut:yp,easeOut:a0,circIn:lu,circInOut:gp,circOut:mp,backIn:au,backInOut:hp,backOut:fp,anticipate:pp},c0=n=>typeof n=="string",Vf=n=>{if(vp(n)){su(n.length===4);const[r,s,a,u]=n;return Pi(r,s,a,u)}else if(c0(n))return u0[n];return n},Os=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function d0(n,r){let s=new Set,a=new Set,u=!1,f=!1;const d=new WeakSet;let h={delta:0,timestamp:0,isProcessing:!1};function g(y){d.has(y)&&(v.schedule(y),n()),y(h)}const v={schedule:(y,x=!1,S=!1)=>{const D=S&&u?s:a;return x&&d.add(y),D.add(y),y},cancel:y=>{a.delete(y),d.delete(y)},process:y=>{if(h=y,u){f=!0;return}u=!0;const x=s;s=a,a=x,s.forEach(g),s.clear(),u=!1,f&&(f=!1,v.process(y))}};return v}const f0=40;function xp(n,r){let s=!1,a=!0;const u={delta:0,timestamp:0,isProcessing:!1},f=()=>s=!0,d=Os.reduce((P,R)=>(P[R]=d0(f),P),{}),{setup:h,read:g,resolveKeyframes:v,preUpdate:y,update:x,preRender:S,render:C,postRender:D}=d,L=()=>{const P=En.useManualTiming,R=P?u.timestamp:performance.now();s=!1,P||(u.delta=a?1e3/60:Math.max(Math.min(R-u.timestamp,f0),1)),u.timestamp=R,u.isProcessing=!0,h.process(u),g.process(u),v.process(u),y.process(u),x.process(u),S.process(u),C.process(u),D.process(u),u.isProcessing=!1,s&&r&&(a=!1,n(L))},N=()=>{s=!0,a=!0,u.isProcessing||n(L)};return{schedule:Os.reduce((P,R)=>{const W=d[R];return P[R]=(ee,se=!1,J=!1)=>(s||N(),W.schedule(ee,se,J)),P},{}),cancel:P=>{for(let R=0;R(Ks===void 0&&it.set(Qe.isProcessing||En.useManualTiming?Qe.timestamp:performance.now()),Ks),set:n=>{Ks=n,queueMicrotask(h0)}},wp=n=>r=>typeof r=="string"&&r.startsWith(n),Sp=wp("--"),p0=wp("var(--"),uu=n=>p0(n)?m0.test(n.split("/*")[0].trim()):!1,m0=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function bf(n){return typeof n!="string"?!1:n.split("/*")[0].includes("var(--")}const Er={test:n=>typeof n=="number",parse:parseFloat,transform:n=>n},ki={...Er,transform:n=>Gt(0,1,n)},Bs={...Er,default:1},yi=n=>Math.round(n*1e5)/1e5,cu=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function g0(n){return n==null}const y0=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,du=(n,r)=>s=>!!(typeof s=="string"&&y0.test(s)&&s.startsWith(n)||r&&!g0(s)&&Object.prototype.hasOwnProperty.call(s,r)),kp=(n,r,s)=>a=>{if(typeof a!="string")return a;const[u,f,d,h]=a.match(cu);return{[n]:parseFloat(u),[r]:parseFloat(f),[s]:parseFloat(d),alpha:h!==void 0?parseFloat(h):1}},v0=n=>Gt(0,255,n),ml={...Er,transform:n=>Math.round(v0(n))},Hn={test:du("rgb","red"),parse:kp("red","green","blue"),transform:({red:n,green:r,blue:s,alpha:a=1})=>"rgba("+ml.transform(n)+", "+ml.transform(r)+", "+ml.transform(s)+", "+yi(ki.transform(a))+")"};function x0(n){let r="",s="",a="",u="";return n.length>5?(r=n.substring(1,3),s=n.substring(3,5),a=n.substring(5,7),u=n.substring(7,9)):(r=n.substring(1,2),s=n.substring(2,3),a=n.substring(3,4),u=n.substring(4,5),r+=r,s+=s,a+=a,u+=u),{red:parseInt(r,16),green:parseInt(s,16),blue:parseInt(a,16),alpha:u?parseInt(u,16)/255:1}}const Ml={test:du("#"),parse:x0,transform:Hn.transform},Ai=n=>({test:r=>typeof r=="string"&&r.endsWith(n)&&r.split(" ").length===1,parse:parseFloat,transform:r=>`${r}${n}`}),Sn=Ai("deg"),$t=Ai("%"),Y=Ai("px"),w0=Ai("vh"),S0=Ai("vw"),_f={...$t,parse:n=>$t.parse(n)/100,transform:n=>$t.transform(n*100)},wr={test:du("hsl","hue"),parse:kp("hue","saturation","lightness"),transform:({hue:n,saturation:r,lightness:s,alpha:a=1})=>"hsla("+Math.round(n)+", "+$t.transform(yi(r))+", "+$t.transform(yi(s))+", "+yi(ki.transform(a))+")"},Oe={test:n=>Hn.test(n)||Ml.test(n)||wr.test(n),parse:n=>Hn.test(n)?Hn.parse(n):wr.test(n)?wr.parse(n):Ml.parse(n),transform:n=>typeof n=="string"?n:n.hasOwnProperty("red")?Hn.transform(n):wr.transform(n),getAnimatableNone:n=>{const r=Oe.parse(n);return r.alpha=0,Oe.transform(r)}},k0=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function T0(n){var r,s;return isNaN(n)&&typeof n=="string"&&(((r=n.match(cu))==null?void 0:r.length)||0)+(((s=n.match(k0))==null?void 0:s.length)||0)>0}const Tp="number",Cp="color",C0="var",E0="var(",zf="${}",P0=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function Tr(n){const r=n.toString(),s=[],a={color:[],number:[],var:[]},u=[];let f=0;const h=r.replace(P0,g=>(Oe.test(g)?(a.color.push(f),u.push(Cp),s.push(Oe.parse(g))):g.startsWith(E0)?(a.var.push(f),u.push(C0),s.push(g)):(a.number.push(f),u.push(Tp),s.push(parseFloat(g))),++f,zf)).split(zf);return{values:s,split:h,indexes:a,types:u}}function A0(n){return Tr(n).values}function Ep({split:n,types:r}){const s=n.length;return a=>{let u="";for(let f=0;ftypeof n=="number"?0:Oe.test(n)?Oe.getAnimatableNone(n):n,M0=(n,r)=>typeof n=="number"?r!=null&&r.trim().endsWith("/")?n:0:N0(n);function D0(n){const r=Tr(n);return Ep(r)(r.values.map((a,u)=>M0(a,r.split[u])))}const Vt={test:T0,parse:A0,createTransformer:j0,getAnimatableNone:D0};function gl(n,r,s){return s<0&&(s+=1),s>1&&(s-=1),s<1/6?n+(r-n)*6*s:s<1/2?r:s<2/3?n+(r-n)*(2/3-s)*6:n}function F0({hue:n,saturation:r,lightness:s,alpha:a}){n/=360,r/=100,s/=100;let u=0,f=0,d=0;if(!r)u=f=d=s;else{const h=s<.5?s*(1+r):s+r-s*r,g=2*s-h;u=gl(g,h,n+1/3),f=gl(g,h,n),d=gl(g,h,n-1/3)}return{red:Math.round(u*255),green:Math.round(f*255),blue:Math.round(d*255),alpha:a}}function no(n,r){return s=>s>0?r:n}const Pe=(n,r,s)=>n+(r-n)*s,yl=(n,r,s)=>{const a=n*n,u=s*(r*r-a)+a;return u<0?0:Math.sqrt(u)},L0=[Ml,Hn,wr],R0=n=>L0.find(r=>r.test(n));function Of(n){const r=R0(n);if(!r)return!1;let s=r.parse(n);return r===wr&&(s=F0(s)),s}const Bf=(n,r)=>{const s=Of(n),a=Of(r);if(!s||!a)return no(n,r);const u={...s};return f=>(u.red=yl(s.red,a.red,f),u.green=yl(s.green,a.green,f),u.blue=yl(s.blue,a.blue,f),u.alpha=Pe(s.alpha,a.alpha,f),Hn.transform(u))},Dl=new Set(["none","hidden"]);function I0(n,r){return Dl.has(n)?s=>s<=0?n:r:s=>s>=1?r:n}function V0(n,r){return s=>Pe(n,r,s)}function fu(n){return typeof n=="number"?V0:typeof n=="string"?uu(n)?no:Oe.test(n)?Bf:z0:Array.isArray(n)?Pp:typeof n=="object"?Oe.test(n)?Bf:b0:no}function Pp(n,r){const s=[...n],a=s.length,u=n.map((f,d)=>fu(f)(f,r[d]));return f=>{for(let d=0;d{for(const f in a)s[f]=a[f](u);return s}}function _0(n,r){const s=[],a={color:0,var:0,number:0};for(let u=0;u{const s=Vt.createTransformer(r),a=Tr(n),u=Tr(r);return a.indexes.var.length===u.indexes.var.length&&a.indexes.color.length===u.indexes.color.length&&a.indexes.number.length>=u.indexes.number.length?Dl.has(n)&&!u.values.length||Dl.has(r)&&!a.values.length?I0(n,r):Ei(Pp(_0(a,u),u.values),s):no(n,r)};function Ap(n,r,s){return typeof n=="number"&&typeof r=="number"&&typeof s=="number"?Pe(n,r,s):fu(n)(n,r)}const O0=n=>{const r=({timestamp:s})=>n(s);return{start:(s=!0)=>we.update(r,s),stop:()=>Pn(r),now:()=>Qe.isProcessing?Qe.timestamp:it.now()}},jp=(n,r,s=10)=>{let a="";const u=Math.max(Math.round(r/s),2);for(let f=0;f=ro?1/0:r}function B0(n,r=100,s){const a=s({...n,keyframes:[0,r]}),u=Math.min(hu(a),ro);return{type:"keyframes",ease:f=>a.next(u*f).value/r,duration:Ct(u)}}const Ie={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1};function Fl(n,r){return n*Math.sqrt(1-r*r)}const U0=12;function W0(n,r,s){let a=s;for(let u=1;u{const y=v*d,x=y*n,S=y-s,C=Fl(v,d),D=Math.exp(-x);return vl-S/C*D},f=v=>{const x=v*d*n,S=x*s+s,C=Math.pow(d,2)*Math.pow(v,2)*n,D=Math.exp(-x),L=Fl(Math.pow(v,2),d);return(-u(v)+vl>0?-1:1)*((S-C)*D)/L}):(u=v=>{const y=Math.exp(-v*n),x=(v-s)*n+1;return-vl+y*x},f=v=>{const y=Math.exp(-v*n),x=(s-v)*(n*n);return y*x});const h=5/n,g=W0(u,f,h);if(n=yt(n),isNaN(g))return{stiffness:Ie.stiffness,damping:Ie.damping,duration:n};{const v=Math.pow(g,2)*a;return{stiffness:v,damping:d*2*Math.sqrt(a*v),duration:n}}}const $0=["duration","bounce"],G0=["stiffness","damping","mass"];function Uf(n,r){return r.some(s=>n[s]!==void 0)}function K0(n){let r={velocity:Ie.velocity,stiffness:Ie.stiffness,damping:Ie.damping,mass:Ie.mass,isResolvedFromDuration:!1,...n};if(!Uf(n,G0)&&Uf(n,$0))if(r.velocity=0,n.visualDuration){const s=n.visualDuration,a=2*Math.PI/(s*1.2),u=a*a,f=2*Gt(.05,1,1-(n.bounce||0))*Math.sqrt(u);r={...r,mass:Ie.mass,stiffness:u,damping:f}}else{const s=H0({...n,velocity:0});r={...r,...s,mass:Ie.mass},r.isResolvedFromDuration=!0}return r}function io(n=Ie.visualDuration,r=Ie.bounce){const s=typeof n!="object"?{visualDuration:n,keyframes:[0,1],bounce:r}:n;let{restSpeed:a,restDelta:u}=s;const f=s.keyframes[0],d=s.keyframes[s.keyframes.length-1],h={done:!1,value:f},{stiffness:g,damping:v,mass:y,duration:x,velocity:S,isResolvedFromDuration:C}=K0({...s,velocity:-Ct(s.velocity||0)}),D=S||0,L=v/(2*Math.sqrt(g*y)),N=d-f,b=Ct(Math.sqrt(g/y)),F=Math.abs(N)<5;a||(a=F?Ie.restSpeed.granular:Ie.restSpeed.default),u||(u=F?Ie.restDelta.granular:Ie.restDelta.default);let P,R,W,ee,se,J;if(L<1)W=Fl(b,L),ee=(D+L*b*N)/W,P=q=>{const he=Math.exp(-L*b*q);return d-he*(ee*Math.sin(W*q)+N*Math.cos(W*q))},se=L*b*ee+N*W,J=L*b*N-ee*W,R=q=>Math.exp(-L*b*q)*(se*Math.sin(W*q)+J*Math.cos(W*q));else if(L===1){P=he=>d-Math.exp(-b*he)*(N+(D+b*N)*he);const q=D+b*N;R=he=>Math.exp(-b*he)*(b*q*he-D)}else{const q=b*Math.sqrt(L*L-1);P=Le=>{const _e=Math.exp(-L*b*Le),Te=Math.min(q*Le,300);return d-_e*((D+L*b*N)*Math.sinh(Te)+q*N*Math.cosh(Te))/q};const he=(D+L*b*N)/q,xe=L*b*he-N*q,Ne=L*b*N-he*q;R=Le=>{const _e=Math.exp(-L*b*Le),Te=Math.min(q*Le,300);return _e*(xe*Math.sinh(Te)+Ne*Math.cosh(Te))}}const ie={calculatedDuration:C&&x||null,velocity:q=>yt(R(q)),next:q=>{if(!C&&L<1){const xe=Math.exp(-L*b*q),Ne=Math.sin(W*q),Le=Math.cos(W*q),_e=d-xe*(ee*Ne+N*Le),Te=yt(xe*(se*Ne+J*Le));return h.done=Math.abs(Te)<=a&&Math.abs(d-_e)<=u,h.value=h.done?d:_e,h}const he=P(q);if(C)h.done=q>=x;else{const xe=yt(R(q));h.done=Math.abs(xe)<=a&&Math.abs(d-he)<=u}return h.value=h.done?d:he,h},toString:()=>{const q=Math.min(hu(ie),ro),he=jp(xe=>ie.next(q*xe).value,q,30);return q+"ms "+he},toTransition:()=>{}};return ie}io.applyToOptions=n=>{const r=B0(n,100,io);return n.ease=r.ease,n.duration=yt(r.duration),n.type="keyframes",n};const Y0=5;function Np(n,r,s){const a=Math.max(r-Y0,0);return lp(s-n(a),r-a)}function Ll({keyframes:n,velocity:r=0,power:s=.8,timeConstant:a=325,bounceDamping:u=10,bounceStiffness:f=500,modifyTarget:d,min:h,max:g,restDelta:v=.5,restSpeed:y}){const x=n[0],S={done:!1,value:x},C=J=>h!==void 0&&Jg,D=J=>h===void 0?g:g===void 0||Math.abs(h-J)-L*Math.exp(-J/a),P=J=>b+F(J),R=J=>{const ie=F(J),q=P(J);S.done=Math.abs(ie)<=v,S.value=S.done?b:q};let W,ee;const se=J=>{C(S.value)&&(W=J,ee=io({keyframes:[S.value,D(S.value)],velocity:Np(P,J,S.value),damping:u,stiffness:f,restDelta:v,restSpeed:y}))};return se(0),{calculatedDuration:null,next:J=>{let ie=!1;return!ee&&W===void 0&&(ie=!0,R(J),se(J)),W!==void 0&&J>=W?ee.next(J-W):(!ie&&R(J),S)}}}function X0(n,r,s){const a=[],u=s||En.mix||Ap,f=n.length-1;for(let d=0;dr[0];if(f===2&&r[0]===r[1])return()=>r[1];const d=n[0]===n[1];n[0]>n[f-1]&&(n=[...n].reverse(),r=[...r].reverse());const h=X0(r,a,u),g=h.length,v=y=>{if(d&&y1)for(;xv(Gt(n[0],n[f-1],y)):v}function q0(n,r){const s=n[n.length-1];for(let a=1;a<=r;a++){const u=Si(0,r,a);n.push(Pe(s,1,u))}}function Z0(n){const r=[0];return q0(r,n.length-1),r}function J0(n,r){return n.map(s=>s*r)}function ev(n,r){return n.map(()=>r||yp).splice(0,n.length-1)}function vi({duration:n=300,keyframes:r,times:s,ease:a="easeInOut"}){const u=l0(a)?a.map(Vf):Vf(a),f={done:!1,value:r[0]},d=J0(s&&s.length===r.length?s:Z0(r),n),h=Q0(d,r,{ease:Array.isArray(u)?u:ev(r,u)});return{calculatedDuration:n,next:g=>(f.value=h(g),f.done=g>=n,f)}}const tv=n=>n!==null;function fo(n,{repeat:r,repeatType:s="loop"},a,u=1){const f=n.filter(tv),h=u<0||r&&s!=="loop"&&r%2===1?0:f.length-1;return!h||a===void 0?f[h]:a}const nv={decay:Ll,inertia:Ll,tween:vi,keyframes:vi,spring:io};function Mp(n){typeof n.type=="string"&&(n.type=nv[n.type])}class pu{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(r=>{this.resolve=r})}notifyFinished(){this.resolve()}then(r,s){return this.finished.then(r,s)}}const rv=n=>n/100;class so extends pu{constructor(r){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{var a,u;const{motionValue:s}=this.options;s&&s.updatedAt!==it.now()&&this.tick(it.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),(u=(a=this.options).onStop)==null||u.call(a))},this.options=r,this.initAnimation(),this.play(),r.autoplay===!1&&this.pause()}initAnimation(){const{options:r}=this;Mp(r);const{type:s=vi,repeat:a=0,repeatDelay:u=0,repeatType:f,velocity:d=0}=r;let{keyframes:h}=r;const g=s||vi;g!==vi&&typeof h[0]!="number"&&(this.mixKeyframes=Ei(rv,Ap(h[0],h[1])),h=[0,100]);const v=g({...r,keyframes:h});f==="mirror"&&(this.mirroredGenerator=g({...r,keyframes:[...h].reverse(),velocity:-d})),v.calculatedDuration===null&&(v.calculatedDuration=hu(v));const{calculatedDuration:y}=v;this.calculatedDuration=y,this.resolvedDuration=y+u,this.totalDuration=this.resolvedDuration*(a+1)-u,this.generator=v}updateTime(r){const s=Math.round(r-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=s}tick(r,s=!1){const{generator:a,totalDuration:u,mixKeyframes:f,mirroredGenerator:d,resolvedDuration:h,calculatedDuration:g}=this;if(this.startTime===null)return a.next(0);const{delay:v=0,keyframes:y,repeat:x,repeatType:S,repeatDelay:C,type:D,onUpdate:L,finalKeyframe:N}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,r):this.speed<0&&(this.startTime=Math.min(r-u/this.speed,this.startTime)),s?this.currentTime=r:this.updateTime(r);const b=this.currentTime-v*(this.playbackSpeed>=0?1:-1),F=this.playbackSpeed>=0?b<0:b>u;this.currentTime=Math.max(b,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=u);let P=this.currentTime,R=a;if(x){const J=Math.min(this.currentTime,u)/h;let ie=Math.floor(J),q=J%1;!q&&J>=1&&(q=1),q===1&&ie--,ie=Math.min(ie,x+1),!!(ie%2)&&(S==="reverse"?(q=1-q,C&&(q-=C/h)):S==="mirror"&&(R=d)),P=Gt(0,1,q)*h}let W;F?(this.delayState.value=y[0],W=this.delayState):W=R.next(P),f&&!F&&(W.value=f(W.value));let{done:ee}=W;!F&&g!==null&&(ee=this.playbackSpeed>=0?this.currentTime>=u:this.currentTime<=0);const se=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&ee);return se&&D!==Ll&&(W.value=fo(y,this.options,N,this.speed)),L&&L(W.value),se&&this.finish(),W}then(r,s){return this.finished.then(r,s)}get duration(){return Ct(this.calculatedDuration)}get iterationDuration(){const{delay:r=0}=this.options||{};return this.duration+Ct(r)}get time(){return Ct(this.currentTime)}set time(r){r=yt(r),this.currentTime=r,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=r:this.driver&&(this.startTime=this.driver.now()-r/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=r,this.tick(r))}getGeneratorVelocity(){const r=this.currentTime;if(r<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(r);const s=this.generator.next(r).value;return Np(a=>this.generator.next(a).value,r,s)}get speed(){return this.playbackSpeed}set speed(r){const s=this.playbackSpeed!==r;s&&this.driver&&this.updateTime(it.now()),this.playbackSpeed=r,s&&this.driver&&(this.time=Ct(this.currentTime))}play(){var u,f;if(this.isStopped)return;const{driver:r=O0,startTime:s}=this.options;this.driver||(this.driver=r(d=>this.tick(d))),(f=(u=this.options).onPlay)==null||f.call(u);const a=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=a):this.holdTime!==null?this.startTime=a-this.holdTime:this.startTime||(this.startTime=s??a),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(it.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){var r,s;this.notifyFinished(),this.teardown(),this.state="finished",(s=(r=this.options).onComplete)==null||s.call(r)}cancel(){var r,s;this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),(s=(r=this.options).onCancel)==null||s.call(r)}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(r){return this.startTime=0,this.tick(r,!0)}attachTimeline(r){var s;return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),(s=this.driver)==null||s.stop(),r.observe(this)}}function iv(n){for(let r=1;rn*180/Math.PI,Rl=n=>{const r=$n(Math.atan2(n[1],n[0]));return Il(r)},sv={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:n=>(Math.abs(n[0])+Math.abs(n[3]))/2,rotate:Rl,rotateZ:Rl,skewX:n=>$n(Math.atan(n[1])),skewY:n=>$n(Math.atan(n[2])),skew:n=>(Math.abs(n[1])+Math.abs(n[2]))/2},Il=n=>(n=n%360,n<0&&(n+=360),n),Wf=Rl,Hf=n=>Math.sqrt(n[0]*n[0]+n[1]*n[1]),$f=n=>Math.sqrt(n[4]*n[4]+n[5]*n[5]),ov={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:Hf,scaleY:$f,scale:n=>(Hf(n)+$f(n))/2,rotateX:n=>Il($n(Math.atan2(n[6],n[5]))),rotateY:n=>Il($n(Math.atan2(-n[2],n[0]))),rotateZ:Wf,rotate:Wf,skewX:n=>$n(Math.atan(n[4])),skewY:n=>$n(Math.atan(n[1])),skew:n=>(Math.abs(n[1])+Math.abs(n[4]))/2};function Vl(n){return n.includes("scale")?1:0}function bl(n,r){if(!n||n==="none")return Vl(r);const s=n.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let a,u;if(s)a=ov,u=s;else{const h=n.match(/^matrix\(([-\d.e\s,]+)\)$/u);a=sv,u=h}if(!u)return Vl(r);const f=a[r],d=u[1].split(",").map(lv);return typeof f=="function"?f(d):d[f]}const av=(n,r)=>{const{transform:s="none"}=getComputedStyle(n);return bl(s,r)};function lv(n){return parseFloat(n.trim())}const Pr=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Ar=new Set(Pr),Gf=n=>n===Er||n===Y,uv=new Set(["x","y","z"]),cv=Pr.filter(n=>!uv.has(n));function dv(n){const r=[];return cv.forEach(s=>{const a=n.getValue(s);a!==void 0&&(r.push([s,a.get()]),a.set(s.startsWith("scale")?1:0))}),r}const Tn={width:({x:n},{paddingLeft:r="0",paddingRight:s="0",boxSizing:a})=>{const u=n.max-n.min;return a==="border-box"?u:u-parseFloat(r)-parseFloat(s)},height:({y:n},{paddingTop:r="0",paddingBottom:s="0",boxSizing:a})=>{const u=n.max-n.min;return a==="border-box"?u:u-parseFloat(r)-parseFloat(s)},top:(n,{top:r})=>parseFloat(r),left:(n,{left:r})=>parseFloat(r),bottom:({y:n},{top:r})=>parseFloat(r)+(n.max-n.min),right:({x:n},{left:r})=>parseFloat(r)+(n.max-n.min),x:(n,{transform:r})=>bl(r,"x"),y:(n,{transform:r})=>bl(r,"y")};Tn.translateX=Tn.x;Tn.translateY=Tn.y;const Gn=new Set;let _l=!1,zl=!1,Ol=!1;function Dp(){if(zl){const n=Array.from(Gn).filter(a=>a.needsMeasurement),r=new Set(n.map(a=>a.element)),s=new Map;r.forEach(a=>{const u=dv(a);u.length&&(s.set(a,u),a.render())}),n.forEach(a=>a.measureInitialState()),r.forEach(a=>{a.render();const u=s.get(a);u&&u.forEach(([f,d])=>{var h;(h=a.getValue(f))==null||h.set(d)})}),n.forEach(a=>a.measureEndState()),n.forEach(a=>{a.suspendedScrollY!==void 0&&window.scrollTo(0,a.suspendedScrollY)})}zl=!1,_l=!1,Gn.forEach(n=>n.complete(Ol)),Gn.clear()}function Fp(){Gn.forEach(n=>{n.readKeyframes(),n.needsMeasurement&&(zl=!0)})}function fv(){Ol=!0,Fp(),Dp(),Ol=!1}class mu{constructor(r,s,a,u,f,d=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...r],this.onComplete=s,this.name=a,this.motionValue=u,this.element=f,this.isAsync=d}scheduleResolve(){this.state="scheduled",this.isAsync?(Gn.add(this),_l||(_l=!0,we.read(Fp),we.resolveKeyframes(Dp))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:r,name:s,element:a,motionValue:u}=this;if(r[0]===null){const f=u==null?void 0:u.get(),d=r[r.length-1];if(f!==void 0)r[0]=f;else if(a&&s){const h=a.readValue(s,d);h!=null&&(r[0]=h)}r[0]===void 0&&(r[0]=d),u&&f===void 0&&u.set(r[0])}iv(r)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(r=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,r),Gn.delete(this)}cancel(){this.state==="scheduled"&&(Gn.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const hv=n=>n.startsWith("--");function Lp(n,r,s){hv(r)?n.style.setProperty(r,s):n.style[r]=s}const pv={};function Rp(n,r){const s=ap(n);return()=>pv[r]??s()}const mv=Rp(()=>window.ScrollTimeline!==void 0,"scrollTimeline"),Ip=Rp(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),gi=([n,r,s,a])=>`cubic-bezier(${n}, ${r}, ${s}, ${a})`,Kf={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:gi([0,.65,.55,1]),circOut:gi([.55,0,1,.45]),backIn:gi([.31,.01,.66,-.59]),backOut:gi([.33,1.53,.69,.99])};function Vp(n,r){if(n)return typeof n=="function"?Ip()?jp(n,r):"ease-out":vp(n)?gi(n):Array.isArray(n)?n.map(s=>Vp(s,r)||Kf.easeOut):Kf[n]}function gv(n,r,s,{delay:a=0,duration:u=300,repeat:f=0,repeatType:d="loop",ease:h="easeOut",times:g}={},v=void 0){const y={[r]:s};g&&(y.offset=g);const x=Vp(h,u);Array.isArray(x)&&(y.easing=x);const S={delay:a,duration:u,easing:Array.isArray(x)?"linear":x,fill:"both",iterations:f+1,direction:d==="reverse"?"alternate":"normal"};return v&&(S.pseudoElement=v),n.animate(y,S)}function bp(n){return typeof n=="function"&&"applyToOptions"in n}function yv({type:n,...r}){return bp(n)&&Ip()?n.applyToOptions(r):(r.duration??(r.duration=300),r.ease??(r.ease="easeOut"),r)}class _p extends pu{constructor(r){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!r)return;const{element:s,name:a,keyframes:u,pseudoElement:f,allowFlatten:d=!1,finalKeyframe:h,onComplete:g}=r;this.isPseudoElement=!!f,this.allowFlatten=d,this.options=r,su(typeof r.type!="string");const v=yv(r);this.animation=gv(s,a,u,v,f),v.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!f){const y=fo(u,this.options,h,this.speed);this.updateMotionValue&&this.updateMotionValue(y),Lp(s,a,y),this.animation.cancel()}g==null||g(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){var r,s;(s=(r=this.animation).finish)==null||s.call(r)}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:r}=this;r==="idle"||r==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){var s,a,u;const r=(s=this.options)==null?void 0:s.element;!this.isPseudoElement&&(r!=null&&r.isConnected)&&((u=(a=this.animation).commitStyles)==null||u.call(a))}get duration(){var s,a;const r=((a=(s=this.animation.effect)==null?void 0:s.getComputedTiming)==null?void 0:a.call(s).duration)||0;return Ct(Number(r))}get iterationDuration(){const{delay:r=0}=this.options||{};return this.duration+Ct(r)}get time(){return Ct(Number(this.animation.currentTime)||0)}set time(r){const s=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=yt(r),s&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(r){r<0&&(this.finishedTime=null),this.animation.playbackRate=r}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(r){this.manualStartTime=this.animation.startTime=r}attachTimeline({timeline:r,rangeStart:s,rangeEnd:a,observe:u}){var f;return this.allowFlatten&&((f=this.animation.effect)==null||f.updateTiming({easing:"linear"})),this.animation.onfinish=null,r&&mv()?(this.animation.timeline=r,s&&(this.animation.rangeStart=s),a&&(this.animation.rangeEnd=a),Et):u(this)}}const zp={anticipate:pp,backInOut:hp,circInOut:gp};function vv(n){return n in zp}function xv(n){typeof n.ease=="string"&&vv(n.ease)&&(n.ease=zp[n.ease])}const xl=10;class wv extends _p{constructor(r){xv(r),Mp(r),super(r),r.startTime!==void 0&&r.autoplay!==!1&&(this.startTime=r.startTime),this.options=r}updateMotionValue(r){const{motionValue:s,onUpdate:a,onComplete:u,element:f,...d}=this.options;if(!s)return;if(r!==void 0){s.set(r);return}const h=new so({...d,autoplay:!1}),g=Math.max(xl,it.now()-this.startTime),v=Gt(0,xl,g-xl),y=h.sample(g).value,{name:x}=this.options;f&&x&&Lp(f,x,y),s.setWithVelocity(h.sample(Math.max(0,g-v)).value,y,v),h.stop()}}const Yf=(n,r)=>r==="zIndex"?!1:!!(typeof n=="number"||Array.isArray(n)||typeof n=="string"&&(Vt.test(n)||n==="0")&&!n.startsWith("url("));function Sv(n){const r=n[0];if(n.length===1)return!0;for(let s=0;sObject.hasOwnProperty.call(Element.prototype,"animate"));function Av(n){var x;const{motionValue:r,name:s,repeatDelay:a,repeatType:u,damping:f,type:d,keyframes:h}=n;if(!(((x=r==null?void 0:r.owner)==null?void 0:x.current)instanceof HTMLElement))return!1;const{onUpdate:v,transformTemplate:y}=r.owner.getProps();return Pv()&&s&&(Op.has(s)||Ev.has(s)&&Cv(h))&&(s!=="transform"||!y)&&!v&&!a&&u!=="mirror"&&f!==0&&d!=="inertia"}const jv=40;class Nv extends pu{constructor({autoplay:r=!0,delay:s=0,type:a="keyframes",repeat:u=0,repeatDelay:f=0,repeatType:d="loop",keyframes:h,name:g,motionValue:v,element:y,...x}){var D;super(),this.stop=()=>{var L,N;this._animation&&(this._animation.stop(),(L=this.stopTimeline)==null||L.call(this)),(N=this.keyframeResolver)==null||N.cancel()},this.createdAt=it.now();const S={autoplay:r,delay:s,type:a,repeat:u,repeatDelay:f,repeatType:d,name:g,motionValue:v,element:y,...x},C=(y==null?void 0:y.KeyframeResolver)||mu;this.keyframeResolver=new C(h,(L,N,b)=>this.onKeyframesResolved(L,N,S,!b),g,v,y),(D=this.keyframeResolver)==null||D.scheduleResolve()}onKeyframesResolved(r,s,a,u){var b,F;this.keyframeResolver=void 0;const{name:f,type:d,velocity:h,delay:g,isHandoff:v,onUpdate:y}=a;this.resolvedAt=it.now();let x=!0;kv(r,f,d,h)||(x=!1,(En.instantAnimations||!g)&&(y==null||y(fo(r,a,s))),r[0]=r[r.length-1],Bl(a),a.repeat=0);const C={startTime:u?this.resolvedAt?this.resolvedAt-this.createdAt>jv?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:s,...a,keyframes:r},D=x&&!v&&Av(C),L=(F=(b=C.motionValue)==null?void 0:b.owner)==null?void 0:F.current;let N;if(D)try{N=new wv({...C,element:L})}catch{N=new so(C)}else N=new so(C);N.finished.then(()=>{this.notifyFinished()}).catch(Et),this.pendingTimeline&&(this.stopTimeline=N.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=N}get finished(){return this._animation?this.animation.finished:this._finished}then(r,s){return this.finished.finally(r).then(()=>{})}get animation(){var r;return this._animation||((r=this.keyframeResolver)==null||r.resume(),fv()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(r){this.animation.time=r}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(r){this.animation.speed=r}get startTime(){return this.animation.startTime}attachTimeline(r){return this._animation?this.stopTimeline=this.animation.attachTimeline(r):this.pendingTimeline=r,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){var r;this._animation&&this.animation.cancel(),(r=this.keyframeResolver)==null||r.cancel()}}function Bp(n,r,s,a=0,u=1){const f=Array.from(n).sort((v,y)=>v.sortNodePosition(y)).indexOf(r),d=n.size,h=(d-1)*a;return typeof s=="function"?s(f,d):u===1?f*a:h-f*a}const Mv=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function Dv(n){const r=Mv.exec(n);if(!r)return[,];const[,s,a,u]=r;return[`--${s??a}`,u]}function Up(n,r,s=1){const[a,u]=Dv(n);if(!a)return;const f=window.getComputedStyle(r).getPropertyValue(a);if(f){const d=f.trim();return ip(d)?parseFloat(d):d}return uu(u)?Up(u,r,s+1):u}const Fv={type:"spring",stiffness:500,damping:25,restSpeed:10},Lv=n=>({type:"spring",stiffness:550,damping:n===0?2*Math.sqrt(550):30,restSpeed:10}),Rv={type:"keyframes",duration:.8},Iv={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},Vv=(n,{keyframes:r})=>r.length>2?Rv:Ar.has(n)?n.startsWith("scale")?Lv(r[1]):Fv:Iv;function Wp(n,r){if(n!=null&&n.inherit&&r){const{inherit:s,...a}=n;return{...r,...a}}return n}function gu(n,r){const s=(n==null?void 0:n[r])??(n==null?void 0:n.default)??n;return s!==n?Wp(s,n):s}const bv=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed"]);function _v(n){for(const r in n)if(!bv.has(r))return!0;return!1}const yu=(n,r,s,a={},u,f)=>d=>{const h=gu(a,n)||{},g=h.delay||a.delay||0;let{elapsed:v=0}=a;v=v-yt(g);const y={keyframes:Array.isArray(s)?s:[null,s],ease:"easeOut",velocity:r.getVelocity(),...h,delay:-v,onUpdate:S=>{r.set(S),h.onUpdate&&h.onUpdate(S)},onComplete:()=>{d(),h.onComplete&&h.onComplete()},name:n,motionValue:r,element:f?void 0:u};_v(h)||Object.assign(y,Vv(n,y)),y.duration&&(y.duration=yt(y.duration)),y.repeatDelay&&(y.repeatDelay=yt(y.repeatDelay)),y.from!==void 0&&(y.keyframes[0]=y.from);let x=!1;if((y.type===!1||y.duration===0&&!y.repeatDelay)&&(Bl(y),y.delay===0&&(x=!0)),(En.instantAnimations||En.skipAnimations||u!=null&&u.shouldSkipAnimations)&&(x=!0,Bl(y),y.delay=0),y.allowFlatten=!h.type&&!h.ease,x&&!f&&r.get()!==void 0){const S=fo(y.keyframes,h);if(S!==void 0){we.update(()=>{y.onUpdate(S),y.onComplete()});return}}return h.isSync?new so(y):new Nv(y)};function Xf(n){const r=[{},{}];return n==null||n.values.forEach((s,a)=>{r[0][a]=s.get(),r[1][a]=s.getVelocity()}),r}function vu(n,r,s,a){if(typeof r=="function"){const[u,f]=Xf(a);r=r(s!==void 0?s:n.custom,u,f)}if(typeof r=="string"&&(r=n.variants&&n.variants[r]),typeof r=="function"){const[u,f]=Xf(a);r=r(s!==void 0?s:n.custom,u,f)}return r}function Kn(n,r,s){const a=n.getProps();return vu(a,r,s!==void 0?s:a.custom,n)}const Hp=new Set(["width","height","top","left","right","bottom",...Pr]),Qf=30,zv=n=>!isNaN(parseFloat(n));class Ov{constructor(r,s={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=a=>{var f;const u=it.now();if(this.updatedAt!==u&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(a),this.current!==this.prev&&((f=this.events.change)==null||f.notify(this.current),this.dependents))for(const d of this.dependents)d.dirty()},this.hasAnimated=!1,this.setCurrent(r),this.owner=s.owner}setCurrent(r){this.current=r,this.updatedAt=it.now(),this.canTrackVelocity===null&&r!==void 0&&(this.canTrackVelocity=zv(this.current))}setPrevFrameValue(r=this.current){this.prevFrameValue=r,this.prevUpdatedAt=this.updatedAt}onChange(r){return this.on("change",r)}on(r,s){this.events[r]||(this.events[r]=new ou);const a=this.events[r].add(s);return r==="change"?()=>{a(),we.read(()=>{this.events.change.getSize()||this.stop()})}:a}clearListeners(){for(const r in this.events)this.events[r].clear()}attach(r,s){this.passiveEffect=r,this.stopPassiveEffect=s}set(r){this.passiveEffect?this.passiveEffect(r,this.updateAndNotify):this.updateAndNotify(r)}setWithVelocity(r,s,a){this.set(s),this.prev=void 0,this.prevFrameValue=r,this.prevUpdatedAt=this.updatedAt-a}jump(r,s=!0){this.updateAndNotify(r),this.prev=r,this.prevUpdatedAt=this.prevFrameValue=void 0,s&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){var r;(r=this.events.change)==null||r.notify(this.current)}addDependent(r){this.dependents||(this.dependents=new Set),this.dependents.add(r)}removeDependent(r){this.dependents&&this.dependents.delete(r)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const r=it.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||r-this.updatedAt>Qf)return 0;const s=Math.min(this.updatedAt-this.prevUpdatedAt,Qf);return lp(parseFloat(this.current)-parseFloat(this.prevFrameValue),s)}start(r){return this.stop(),new Promise(s=>{this.hasAnimated=!0,this.animation=r(s),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(){var r,s;(r=this.dependents)==null||r.clear(),(s=this.events.destroy)==null||s.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Cr(n,r){return new Ov(n,r)}const Ul=n=>Array.isArray(n);function Bv(n,r,s){n.hasValue(r)?n.getValue(r).set(s):n.addValue(r,Cr(s))}function Uv(n){return Ul(n)?n[n.length-1]||0:n}function Wv(n,r){const s=Kn(n,r);let{transitionEnd:a={},transition:u={},...f}=s||{};f={...f,...a};for(const d in f){const h=Uv(f[d]);Bv(n,d,h)}}const qe=n=>!!(n&&n.getVelocity);function Hv(n){return!!(qe(n)&&n.add)}function Wl(n,r){const s=n.getValue("willChange");if(Hv(s))return s.add(r);if(!s&&En.WillChange){const a=new En.WillChange("auto");n.addValue("willChange",a),a.add(r)}}function xu(n){return n.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}const $v="framerAppearId",$p="data-"+xu($v);function Gp(n){return n.props[$p]}function Gv({protectedKeys:n,needsAnimating:r},s){const a=n.hasOwnProperty(s)&&r[s]!==!0;return r[s]=!1,a}function Kp(n,r,{delay:s=0,transitionOverride:a,type:u}={}){let{transition:f,transitionEnd:d,...h}=r;const g=n.getDefaultTransition();f=f?Wp(f,g):g;const v=f==null?void 0:f.reduceMotion;a&&(f=a);const y=[],x=u&&n.animationState&&n.animationState.getState()[u];for(const S in h){const C=n.getValue(S,n.latestValues[S]??null),D=h[S];if(D===void 0||x&&Gv(x,S))continue;const L={delay:s,...gu(f||{},S)},N=C.get();if(N!==void 0&&!C.isAnimating()&&!Array.isArray(D)&&D===N&&!L.velocity){we.update(()=>C.set(D));continue}let b=!1;if(window.MotionHandoffAnimation){const R=Gp(n);if(R){const W=window.MotionHandoffAnimation(R,S,we);W!==null&&(L.startTime=W,b=!0)}}Wl(n,S);const F=v??n.shouldReduceMotion;C.start(yu(S,C,D,F&&Hp.has(S)?{type:!1}:L,n,b));const P=C.animation;P&&y.push(P)}if(d){const S=()=>we.update(()=>{d&&Wv(n,d)});y.length?Promise.all(y).then(S):S()}return y}function Hl(n,r,s={}){var g;const a=Kn(n,r,s.type==="exit"?(g=n.presenceContext)==null?void 0:g.custom:void 0);let{transition:u=n.getDefaultTransition()||{}}=a||{};s.transitionOverride&&(u=s.transitionOverride);const f=a?()=>Promise.all(Kp(n,a,s)):()=>Promise.resolve(),d=n.variantChildren&&n.variantChildren.size?(v=0)=>{const{delayChildren:y=0,staggerChildren:x,staggerDirection:S}=u;return Kv(n,r,v,y,x,S,s)}:()=>Promise.resolve(),{when:h}=u;if(h){const[v,y]=h==="beforeChildren"?[f,d]:[d,f];return v().then(()=>y())}else return Promise.all([f(),d(s.delay)])}function Kv(n,r,s=0,a=0,u=0,f=1,d){const h=[];for(const g of n.variantChildren)g.notify("AnimationStart",r),h.push(Hl(g,r,{...d,delay:s+(typeof a=="function"?0:a)+Bp(n.variantChildren,g,a,u,f)}).then(()=>g.notify("AnimationComplete",r)));return Promise.all(h)}function Yv(n,r,s={}){n.notify("AnimationStart",r);let a;if(Array.isArray(r)){const u=r.map(f=>Hl(n,f,s));a=Promise.all(u)}else if(typeof r=="string")a=Hl(n,r,s);else{const u=typeof r=="function"?Kn(n,r,s.custom):r;a=Promise.all(Kp(n,u,s))}return a.then(()=>{n.notify("AnimationComplete",r)})}const Xv={test:n=>n==="auto",parse:n=>n},Yp=n=>r=>r.test(n),Xp=[Er,Y,$t,Sn,S0,w0,Xv],qf=n=>Xp.find(Yp(n));function Qv(n){return typeof n=="number"?n===0:n!==null?n==="none"||n==="0"||op(n):!0}const qv=new Set(["brightness","contrast","saturate","opacity"]);function Zv(n){const[r,s]=n.slice(0,-1).split("(");if(r==="drop-shadow")return n;const[a]=s.match(cu)||[];if(!a)return n;const u=s.replace(a,"");let f=qv.has(r)?1:0;return a!==s&&(f*=100),r+"("+f+u+")"}const Jv=/\b([a-z-]*)\(.*?\)/gu,$l={...Vt,getAnimatableNone:n=>{const r=n.match(Jv);return r?r.map(Zv).join(" "):n}},Gl={...Vt,getAnimatableNone:n=>{const r=Vt.parse(n);return Vt.createTransformer(n)(r.map(a=>typeof a=="number"?0:typeof a=="object"?{...a,alpha:1}:a))}},Zf={...Er,transform:Math.round},ex={rotate:Sn,rotateX:Sn,rotateY:Sn,rotateZ:Sn,scale:Bs,scaleX:Bs,scaleY:Bs,scaleZ:Bs,skew:Sn,skewX:Sn,skewY:Sn,distance:Y,translateX:Y,translateY:Y,translateZ:Y,x:Y,y:Y,z:Y,perspective:Y,transformPerspective:Y,opacity:ki,originX:_f,originY:_f,originZ:Y},wu={borderWidth:Y,borderTopWidth:Y,borderRightWidth:Y,borderBottomWidth:Y,borderLeftWidth:Y,borderRadius:Y,borderTopLeftRadius:Y,borderTopRightRadius:Y,borderBottomRightRadius:Y,borderBottomLeftRadius:Y,width:Y,maxWidth:Y,height:Y,maxHeight:Y,top:Y,right:Y,bottom:Y,left:Y,inset:Y,insetBlock:Y,insetBlockStart:Y,insetBlockEnd:Y,insetInline:Y,insetInlineStart:Y,insetInlineEnd:Y,padding:Y,paddingTop:Y,paddingRight:Y,paddingBottom:Y,paddingLeft:Y,paddingBlock:Y,paddingBlockStart:Y,paddingBlockEnd:Y,paddingInline:Y,paddingInlineStart:Y,paddingInlineEnd:Y,margin:Y,marginTop:Y,marginRight:Y,marginBottom:Y,marginLeft:Y,marginBlock:Y,marginBlockStart:Y,marginBlockEnd:Y,marginInline:Y,marginInlineStart:Y,marginInlineEnd:Y,fontSize:Y,backgroundPositionX:Y,backgroundPositionY:Y,...ex,zIndex:Zf,fillOpacity:ki,strokeOpacity:ki,numOctaves:Zf},tx={...wu,color:Oe,backgroundColor:Oe,outlineColor:Oe,fill:Oe,stroke:Oe,borderColor:Oe,borderTopColor:Oe,borderRightColor:Oe,borderBottomColor:Oe,borderLeftColor:Oe,filter:$l,WebkitFilter:$l,mask:Gl,WebkitMask:Gl},Qp=n=>tx[n],nx=new Set([$l,Gl]);function qp(n,r){let s=Qp(n);return nx.has(s)||(s=Vt),s.getAnimatableNone?s.getAnimatableNone(r):void 0}const rx=new Set(["auto","none","0"]);function ix(n,r,s){let a=0,u;for(;a{r.getValue(g).set(v)}),this.resolveNoneKeyframes()}}function Zp(n,r,s){if(n==null)return[];if(n instanceof EventTarget)return[n];if(typeof n=="string"){let a=document;const u=(s==null?void 0:s[n])??a.querySelectorAll(n);return u?Array.from(u):[]}return Array.from(n).filter(a=>a!=null)}const Jp=(n,r)=>r&&typeof n=="number"?r.transform(n):n;function Ys(n){return sp(n)&&"offsetHeight"in n&&!("ownerSVGElement"in n)}const{schedule:Su}=xp(queueMicrotask,!1),It={x:!1,y:!1};function em(){return It.x||It.y}function ox(n){return n==="x"||n==="y"?It[n]?null:(It[n]=!0,()=>{It[n]=!1}):It.x||It.y?null:(It.x=It.y=!0,()=>{It.x=It.y=!1})}function tm(n,r){const s=Zp(n),a=new AbortController,u={passive:!0,...r,signal:a.signal};return[s,u,()=>a.abort()]}function ax(n){return!(n.pointerType==="touch"||em())}function lx(n,r,s={}){const[a,u,f]=tm(n,s);return a.forEach(d=>{let h=!1,g=!1,v;const y=()=>{d.removeEventListener("pointerleave",D)},x=N=>{v&&(v(N),v=void 0),y()},S=N=>{h=!1,window.removeEventListener("pointerup",S),window.removeEventListener("pointercancel",S),g&&(g=!1,x(N))},C=()=>{h=!0,window.addEventListener("pointerup",S,u),window.addEventListener("pointercancel",S,u)},D=N=>{if(N.pointerType!=="touch"){if(h){g=!0;return}x(N)}},L=N=>{if(!ax(N))return;g=!1;const b=r(d,N);typeof b=="function"&&(v=b,d.addEventListener("pointerleave",D,u))};d.addEventListener("pointerenter",L,u),d.addEventListener("pointerdown",C,u)}),f}const nm=(n,r)=>r?n===r?!0:nm(n,r.parentElement):!1,ku=n=>n.pointerType==="mouse"?typeof n.button!="number"||n.button<=0:n.isPrimary!==!1,ux=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function cx(n){return ux.has(n.tagName)||n.isContentEditable===!0}const dx=new Set(["INPUT","SELECT","TEXTAREA"]);function fx(n){return dx.has(n.tagName)||n.isContentEditable===!0}const Xs=new WeakSet;function Jf(n){return r=>{r.key==="Enter"&&n(r)}}function wl(n,r){n.dispatchEvent(new PointerEvent("pointer"+r,{isPrimary:!0,bubbles:!0}))}const hx=(n,r)=>{const s=n.currentTarget;if(!s)return;const a=Jf(()=>{if(Xs.has(s))return;wl(s,"down");const u=Jf(()=>{wl(s,"up")}),f=()=>wl(s,"cancel");s.addEventListener("keyup",u,r),s.addEventListener("blur",f,r)});s.addEventListener("keydown",a,r),s.addEventListener("blur",()=>s.removeEventListener("keydown",a),r)};function eh(n){return ku(n)&&!em()}const th=new WeakSet;function px(n,r,s={}){const[a,u,f]=tm(n,s),d=h=>{const g=h.currentTarget;if(!eh(h)||th.has(h))return;Xs.add(g),s.stopPropagation&&th.add(h);const v=r(g,h),y=(C,D)=>{window.removeEventListener("pointerup",x),window.removeEventListener("pointercancel",S),Xs.has(g)&&Xs.delete(g),eh(C)&&typeof v=="function"&&v(C,{success:D})},x=C=>{y(C,g===window||g===document||s.useGlobalTarget||nm(g,C.target))},S=C=>{y(C,!1)};window.addEventListener("pointerup",x,u),window.addEventListener("pointercancel",S,u)};return a.forEach(h=>{(s.useGlobalTarget?window:h).addEventListener("pointerdown",d,u),Ys(h)&&(h.addEventListener("focus",v=>hx(v,u)),!cx(h)&&!h.hasAttribute("tabindex")&&(h.tabIndex=0))}),f}function Tu(n){return sp(n)&&"ownerSVGElement"in n}const Qs=new WeakMap;let kn;const rm=(n,r,s)=>(a,u)=>u&&u[0]?u[0][n+"Size"]:Tu(a)&&"getBBox"in a?a.getBBox()[r]:a[s],mx=rm("inline","width","offsetWidth"),gx=rm("block","height","offsetHeight");function yx({target:n,borderBoxSize:r}){var s;(s=Qs.get(n))==null||s.forEach(a=>{a(n,{get width(){return mx(n,r)},get height(){return gx(n,r)}})})}function vx(n){n.forEach(yx)}function xx(){typeof ResizeObserver>"u"||(kn=new ResizeObserver(vx))}function wx(n,r){kn||xx();const s=Zp(n);return s.forEach(a=>{let u=Qs.get(a);u||(u=new Set,Qs.set(a,u)),u.add(r),kn==null||kn.observe(a)}),()=>{s.forEach(a=>{const u=Qs.get(a);u==null||u.delete(r),u!=null&&u.size||kn==null||kn.unobserve(a)})}}const qs=new Set;let Sr;function Sx(){Sr=()=>{const n={get width(){return window.innerWidth},get height(){return window.innerHeight}};qs.forEach(r=>r(n))},window.addEventListener("resize",Sr)}function kx(n){return qs.add(n),Sr||Sx(),()=>{qs.delete(n),!qs.size&&typeof Sr=="function"&&(window.removeEventListener("resize",Sr),Sr=void 0)}}function nh(n,r){return typeof n=="function"?kx(n):wx(n,r)}function Tx(n){return Tu(n)&&n.tagName==="svg"}const Cx=[...Xp,Oe,Vt],Ex=n=>Cx.find(Yp(n)),rh=()=>({translate:0,scale:1,origin:0,originPoint:0}),kr=()=>({x:rh(),y:rh()}),ih=()=>({min:0,max:0}),We=()=>({x:ih(),y:ih()}),Px=new WeakMap;function ho(n){return n!==null&&typeof n=="object"&&typeof n.start=="function"}function Ti(n){return typeof n=="string"||Array.isArray(n)}const Cu=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],Eu=["initial",...Cu];function po(n){return ho(n.animate)||Eu.some(r=>Ti(n[r]))}function im(n){return!!(po(n)||n.variants)}function Ax(n,r,s){for(const a in r){const u=r[a],f=s[a];if(qe(u))n.addValue(a,u);else if(qe(f))n.addValue(a,Cr(u,{owner:n}));else if(f!==u)if(n.hasValue(a)){const d=n.getValue(a);d.liveStyle===!0?d.jump(u):d.hasAnimated||d.set(u)}else{const d=n.getStaticValue(a);n.addValue(a,Cr(d!==void 0?d:u,{owner:n}))}}for(const a in s)r[a]===void 0&&n.removeValue(a);return r}const Kl={current:null},sm={current:!1},jx=typeof window<"u";function Nx(){if(sm.current=!0,!!jx)if(window.matchMedia){const n=window.matchMedia("(prefers-reduced-motion)"),r=()=>Kl.current=n.matches;n.addEventListener("change",r),r()}else Kl.current=!1}const sh=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];let oo={};function om(n){oo=n}function Mx(){return oo}class Dx{scrapeMotionValuesFromProps(r,s,a){return{}}constructor({parent:r,props:s,presenceContext:a,reducedMotionConfig:u,skipAnimations:f,blockInitialAnimation:d,visualState:h},g={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=mu,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,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.renderScheduledAt=0,this.scheduleRender=()=>{const C=it.now();this.renderScheduledAtthis.bindToMotionValue(f,u)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(sm.current||Nx(),this.shouldReduceMotion=Kl.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,(a=this.parent)==null||a.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){var r;this.projection&&this.projection.unmount(),Pn(this.notifyUpdate),Pn(this.render),this.valueSubscriptions.forEach(s=>s()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),(r=this.parent)==null||r.removeChild(this);for(const s in this.events)this.events[s].clear();for(const s in this.features){const a=this.features[s];a&&(a.unmount(),a.isMounted=!1)}this.current=null}addChild(r){this.children.add(r),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(r)}removeChild(r){this.children.delete(r),this.enteringChildren&&this.enteringChildren.delete(r)}bindToMotionValue(r,s){if(this.valueSubscriptions.has(r)&&this.valueSubscriptions.get(r)(),s.accelerate&&Op.has(r)&&this.current instanceof HTMLElement){const{factory:d,keyframes:h,times:g,ease:v,duration:y}=s.accelerate,x=new _p({element:this.current,name:r,keyframes:h,times:g,ease:v,duration:yt(y)}),S=d(x);this.valueSubscriptions.set(r,()=>{S(),x.cancel()});return}const a=Ar.has(r);a&&this.onBindTransform&&this.onBindTransform();const u=s.on("change",d=>{this.latestValues[r]=d,this.props.onUpdate&&we.preRender(this.notifyUpdate),a&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let f;typeof window<"u"&&window.MotionCheckAppearSync&&(f=window.MotionCheckAppearSync(this,r,s)),this.valueSubscriptions.set(r,()=>{u(),f&&f(),s.owner&&s.stop()})}sortNodePosition(r){return!this.current||!this.sortInstanceNodePosition||this.type!==r.type?0:this.sortInstanceNodePosition(this.current,r.current)}updateFeatures(){let r="animation";for(r in oo){const s=oo[r];if(!s)continue;const{isEnabled:a,Feature:u}=s;if(!this.features[r]&&u&&a(this.props)&&(this.features[r]=new u(this)),this.features[r]){const f=this.features[r];f.isMounted?f.update():(f.mount(),f.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):We()}getStaticValue(r){return this.latestValues[r]}setStaticValue(r,s){this.latestValues[r]=s}update(r,s){(r.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=r,this.prevPresenceContext=this.presenceContext,this.presenceContext=s;for(let a=0;as.variantChildren.delete(r)}addValue(r,s){const a=this.values.get(r);s!==a&&(a&&this.removeValue(r),this.bindToMotionValue(r,s),this.values.set(r,s),this.latestValues[r]=s.get())}removeValue(r){this.values.delete(r);const s=this.valueSubscriptions.get(r);s&&(s(),this.valueSubscriptions.delete(r)),delete this.latestValues[r],this.removeValueFromRenderState(r,this.renderState)}hasValue(r){return this.values.has(r)}getValue(r,s){if(this.props.values&&this.props.values[r])return this.props.values[r];let a=this.values.get(r);return a===void 0&&s!==void 0&&(a=Cr(s===null?void 0:s,{owner:this}),this.addValue(r,a)),a}readValue(r,s){let a=this.latestValues[r]!==void 0||!this.current?this.latestValues[r]:this.getBaseTargetFromProps(this.props,r)??this.readValueFromInstance(this.current,r,this.options);return a!=null&&(typeof a=="string"&&(ip(a)||op(a))?a=parseFloat(a):!Ex(a)&&Vt.test(s)&&(a=qp(r,s)),this.setBaseTarget(r,qe(a)?a.get():a)),qe(a)?a.get():a}setBaseTarget(r,s){this.baseTarget[r]=s}getBaseTarget(r){var f;const{initial:s}=this.props;let a;if(typeof s=="string"||typeof s=="object"){const d=vu(this.props,s,(f=this.presenceContext)==null?void 0:f.custom);d&&(a=d[r])}if(s&&a!==void 0)return a;const u=this.getBaseTargetFromProps(this.props,r);return u!==void 0&&!qe(u)?u:this.initialValues[r]!==void 0&&a===void 0?void 0:this.baseTarget[r]}on(r,s){return this.events[r]||(this.events[r]=new ou),this.events[r].add(s)}notify(r,...s){this.events[r]&&this.events[r].notify(...s)}scheduleRenderMicrotask(){Su.render(this.render)}}class am extends Dx{constructor(){super(...arguments),this.KeyframeResolver=sx}sortInstanceNodePosition(r,s){return r.compareDocumentPosition(s)&2?1:-1}getBaseTargetFromProps(r,s){const a=r.style;return a?a[s]:void 0}removeValueFromRenderState(r,{vars:s,style:a}){delete s[r],delete a[r]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:r}=this.props;qe(r)&&(this.childSubscription=r.on("change",s=>{this.current&&(this.current.textContent=`${s}`)}))}}class An{constructor(r){this.isMounted=!1,this.node=r}update(){}}function lm({top:n,left:r,right:s,bottom:a}){return{x:{min:r,max:s},y:{min:n,max:a}}}function Fx({x:n,y:r}){return{top:r.min,right:n.max,bottom:r.max,left:n.min}}function Lx(n,r){if(!r)return n;const s=r({x:n.left,y:n.top}),a=r({x:n.right,y:n.bottom});return{top:s.y,left:s.x,bottom:a.y,right:a.x}}function Sl(n){return n===void 0||n===1}function Yl({scale:n,scaleX:r,scaleY:s}){return!Sl(n)||!Sl(r)||!Sl(s)}function Wn(n){return Yl(n)||um(n)||n.z||n.rotate||n.rotateX||n.rotateY||n.skewX||n.skewY}function um(n){return oh(n.x)||oh(n.y)}function oh(n){return n&&n!=="0%"}function ao(n,r,s){const a=n-s,u=r*a;return s+u}function ah(n,r,s,a,u){return u!==void 0&&(n=ao(n,u,a)),ao(n,s,a)+r}function Xl(n,r=0,s=1,a,u){n.min=ah(n.min,r,s,a,u),n.max=ah(n.max,r,s,a,u)}function cm(n,{x:r,y:s}){Xl(n.x,r.translate,r.scale,r.originPoint),Xl(n.y,s.translate,s.scale,s.originPoint)}const lh=.999999999999,uh=1.0000000000001;function Rx(n,r,s,a=!1){var h;const u=s.length;if(!u)return;r.x=r.y=1;let f,d;for(let g=0;glh&&(r.x=1),r.ylh&&(r.y=1)}function Ht(n,r){n.min+=r,n.max+=r}function ch(n,r,s,a,u=.5){const f=Pe(n.min,n.max,u);Xl(n,r,s,f,a)}function dh(n,r){return typeof n=="string"?parseFloat(n)/100*(r.max-r.min):n}function Zs(n,r,s){const a=s??n;ch(n.x,dh(r.x,a.x),r.scaleX,r.scale,r.originX),ch(n.y,dh(r.y,a.y),r.scaleY,r.scale,r.originY)}function dm(n,r){return lm(Lx(n.getBoundingClientRect(),r))}function Ix(n,r,s){const a=dm(n,s),{scroll:u}=r;return u&&(Ht(a.x,u.offset.x),Ht(a.y,u.offset.y)),a}const Vx={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},bx=Pr.length;function _x(n,r,s){let a="",u=!0;for(let f=0;f{if(!r.target)return n;if(typeof n=="string")if(Y.test(n))n=parseFloat(n);else return n;const s=fh(n,r.target.x),a=fh(n,r.target.y);return`${s}% ${a}%`}},zx={correct:(n,{treeScale:r,projectionDelta:s})=>{const a=n,u=Vt.parse(n);if(u.length>5)return a;const f=Vt.createTransformer(n),d=typeof u[0]!="number"?1:0,h=s.x.scale*r.x,g=s.y.scale*r.y;u[0+d]/=h,u[1+d]/=g;const v=Pe(h,g,.5);return typeof u[2+d]=="number"&&(u[2+d]/=v),typeof u[3+d]=="number"&&(u[3+d]/=v),f(u)}},Ql={borderRadius:{...pi,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:pi,borderTopRightRadius:pi,borderBottomLeftRadius:pi,borderBottomRightRadius:pi,boxShadow:zx};function hm(n,{layout:r,layoutId:s}){return Ar.has(n)||n.startsWith("origin")||(r||s!==void 0)&&(!!Ql[n]||n==="opacity")}function Au(n,r,s){var d;const a=n.style,u=r==null?void 0:r.style,f={};if(!a)return f;for(const h in a)(qe(a[h])||u&&qe(u[h])||hm(h,n)||((d=s==null?void 0:s.getValue(h))==null?void 0:d.liveStyle)!==void 0)&&(f[h]=a[h]);return f}function Ox(n){return window.getComputedStyle(n)}class Bx extends am{constructor(){super(...arguments),this.type="html",this.renderInstance=fm}readValueFromInstance(r,s){var a;if(Ar.has(s))return(a=this.projection)!=null&&a.isProjecting?Vl(s):av(r,s);{const u=Ox(r),f=(Sp(s)?u.getPropertyValue(s):u[s])||0;return typeof f=="string"?f.trim():f}}measureInstanceViewportBox(r,{transformPagePoint:s}){return dm(r,s)}build(r,s,a){Pu(r,s,a.transformTemplate)}scrapeMotionValuesFromProps(r,s,a){return Au(r,s,a)}}const Ux={offset:"stroke-dashoffset",array:"stroke-dasharray"},Wx={offset:"strokeDashoffset",array:"strokeDasharray"};function Hx(n,r,s=1,a=0,u=!0){n.pathLength=1;const f=u?Ux:Wx;n[f.offset]=`${-a}`,n[f.array]=`${r} ${s}`}const $x=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function pm(n,{attrX:r,attrY:s,attrScale:a,pathLength:u,pathSpacing:f=1,pathOffset:d=0,...h},g,v,y){if(Pu(n,h,v),g){n.style.viewBox&&(n.attrs.viewBox=n.style.viewBox);return}n.attrs=n.style,n.style={};const{attrs:x,style:S}=n;x.transform&&(S.transform=x.transform,delete x.transform),(S.transform||x.transformOrigin)&&(S.transformOrigin=x.transformOrigin??"50% 50%",delete x.transformOrigin),S.transform&&(S.transformBox=(y==null?void 0:y.transformBox)??"fill-box",delete x.transformBox);for(const C of $x)x[C]!==void 0&&(S[C]=x[C],delete x[C]);r!==void 0&&(x.x=r),s!==void 0&&(x.y=s),a!==void 0&&(x.scale=a),u!==void 0&&Hx(x,u,f,d,!1)}const mm=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"]),gm=n=>typeof n=="string"&&n.toLowerCase()==="svg";function Gx(n,r,s,a){fm(n,r,void 0,a);for(const u in r.attrs)n.setAttribute(mm.has(u)?u:xu(u),r.attrs[u])}function ym(n,r,s){const a=Au(n,r,s);for(const u in n)if(qe(n[u])||qe(r[u])){const f=Pr.indexOf(u)!==-1?"attr"+u.charAt(0).toUpperCase()+u.substring(1):u;a[f]=n[u]}return a}class Kx extends am{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=We}getBaseTargetFromProps(r,s){return r[s]}readValueFromInstance(r,s){if(Ar.has(s)){const a=Qp(s);return a&&a.default||0}return s=mm.has(s)?s:xu(s),r.getAttribute(s)}scrapeMotionValuesFromProps(r,s,a){return ym(r,s,a)}build(r,s,a){pm(r,s,this.isSVGTag,a.transformTemplate,a.style)}renderInstance(r,s,a,u){Gx(r,s,a,u)}mount(r){this.isSVGTag=gm(r.tagName),super.mount(r)}}const Yx=Eu.length;function vm(n){if(!n)return;if(!n.isControllingVariants){const s=n.parent?vm(n.parent)||{}:{};return n.props.initial!==void 0&&(s.initial=n.props.initial),s}const r={};for(let s=0;sPromise.all(r.map(({animation:s,options:a})=>Yv(n,s,a)))}function Zx(n){let r=qx(n),s=hh(),a=!0,u=!1;const f=v=>(y,x)=>{var C;const S=Kn(n,x,v==="exit"?(C=n.presenceContext)==null?void 0:C.custom:void 0);if(S){const{transition:D,transitionEnd:L,...N}=S;y={...y,...N,...L}}return y};function d(v){r=v(n)}function h(v){const{props:y}=n,x=vm(n.parent)||{},S=[],C=new Set;let D={},L=1/0;for(let b=0;bL&&W,q=!1;const he=Array.isArray(R)?R:[R];let xe=he.reduce(f(F),{});ee===!1&&(xe={});const{prevResolvedValues:Ne={}}=P,Le={...Ne,...xe},_e=B=>{ie=!0,C.has(B)&&(q=!0,C.delete(B)),P.needsAnimating[B]=!0;const X=n.getValue(B);X&&(X.liveStyle=!1)};for(const B in Le){const X=xe[B],H=Ne[B];if(D.hasOwnProperty(B))continue;let E=!1;Ul(X)&&Ul(H)?E=!xm(X,H):E=X!==H,E?X!=null?_e(B):C.add(B):X!==void 0&&C.has(B)?_e(B):P.protectedKeys[B]=!0}P.prevProp=R,P.prevResolvedValues=xe,P.isActive&&(D={...D,...xe}),(a||u)&&n.blockInitialAnimation&&(ie=!1);const Te=se&&J;ie&&(!Te||q)&&S.push(...he.map(B=>{const X={type:F};if(typeof B=="string"&&(a||u)&&!Te&&n.manuallyAnimateOnMount&&n.parent){const{parent:H}=n,E=Kn(H,B);if(H.enteringChildren&&E){const{delayChildren:I}=E.transition||{};X.delay=Bp(H.enteringChildren,n,I)}}return{animation:B,options:X}}))}if(C.size){const b={};if(typeof y.initial!="boolean"){const F=Kn(n,Array.isArray(y.initial)?y.initial[0]:y.initial);F&&F.transition&&(b.transition=F.transition)}C.forEach(F=>{const P=n.getBaseTarget(F),R=n.getValue(F);R&&(R.liveStyle=!0),b[F]=P??null}),S.push({animation:b})}let N=!!S.length;return a&&(y.initial===!1||y.initial===y.animate)&&!n.manuallyAnimateOnMount&&(N=!1),a=!1,u=!1,N?r(S):Promise.resolve()}function g(v,y){var S;if(s[v].isActive===y)return Promise.resolve();(S=n.variantChildren)==null||S.forEach(C=>{var D;return(D=C.animationState)==null?void 0:D.setActive(v,y)}),s[v].isActive=y;const x=h(v);for(const C in s)s[C].protectedKeys={};return x}return{animateChanges:h,setActive:g,setAnimateFunction:d,getState:()=>s,reset:()=>{s=hh(),u=!0}}}function Jx(n,r){return typeof r=="string"?r!==n:Array.isArray(r)?!xm(r,n):!1}function Bn(n=!1){return{isActive:n,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function hh(){return{animate:Bn(!0),whileInView:Bn(),whileHover:Bn(),whileTap:Bn(),whileDrag:Bn(),whileFocus:Bn(),exit:Bn()}}function ql(n,r){n.min=r.min,n.max=r.max}function Lt(n,r){ql(n.x,r.x),ql(n.y,r.y)}function ph(n,r){n.translate=r.translate,n.scale=r.scale,n.originPoint=r.originPoint,n.origin=r.origin}const wm=1e-4,e1=1-wm,t1=1+wm,Sm=.01,n1=0-Sm,r1=0+Sm;function st(n){return n.max-n.min}function i1(n,r,s){return Math.abs(n-r)<=s}function mh(n,r,s,a=.5){n.origin=a,n.originPoint=Pe(r.min,r.max,n.origin),n.scale=st(s)/st(r),n.translate=Pe(s.min,s.max,n.origin)-n.originPoint,(n.scale>=e1&&n.scale<=t1||isNaN(n.scale))&&(n.scale=1),(n.translate>=n1&&n.translate<=r1||isNaN(n.translate))&&(n.translate=0)}function xi(n,r,s,a){mh(n.x,r.x,s.x,a?a.originX:void 0),mh(n.y,r.y,s.y,a?a.originY:void 0)}function gh(n,r,s,a=0){const u=a?Pe(s.min,s.max,a):s.min;n.min=u+r.min,n.max=n.min+st(r)}function s1(n,r,s,a){gh(n.x,r.x,s.x,a==null?void 0:a.x),gh(n.y,r.y,s.y,a==null?void 0:a.y)}function yh(n,r,s,a=0){const u=a?Pe(s.min,s.max,a):s.min;n.min=r.min-u,n.max=n.min+st(r)}function lo(n,r,s,a){yh(n.x,r.x,s.x,a==null?void 0:a.x),yh(n.y,r.y,s.y,a==null?void 0:a.y)}function vh(n,r,s,a,u){return n-=r,n=ao(n,1/s,a),u!==void 0&&(n=ao(n,1/u,a)),n}function o1(n,r=0,s=1,a=.5,u,f=n,d=n){if($t.test(r)&&(r=parseFloat(r),r=Pe(d.min,d.max,r/100)-d.min),typeof r!="number")return;let h=Pe(f.min,f.max,a);n===f&&(h-=r),n.min=vh(n.min,r,s,h,u),n.max=vh(n.max,r,s,h,u)}function xh(n,r,[s,a,u],f,d){o1(n,r[s],r[a],r[u],r.scale,f,d)}const a1=["x","scaleX","originX"],l1=["y","scaleY","originY"];function wh(n,r,s,a){xh(n.x,r,a1,s?s.x:void 0,a?a.x:void 0),xh(n.y,r,l1,s?s.y:void 0,a?a.y:void 0)}function Sh(n){return n.translate===0&&n.scale===1}function km(n){return Sh(n.x)&&Sh(n.y)}function kh(n,r){return n.min===r.min&&n.max===r.max}function u1(n,r){return kh(n.x,r.x)&&kh(n.y,r.y)}function Th(n,r){return Math.round(n.min)===Math.round(r.min)&&Math.round(n.max)===Math.round(r.max)}function Tm(n,r){return Th(n.x,r.x)&&Th(n.y,r.y)}function Ch(n){return st(n.x)/st(n.y)}function Eh(n,r){return n.translate===r.translate&&n.scale===r.scale&&n.originPoint===r.originPoint}function Wt(n){return[n("x"),n("y")]}function c1(n,r,s){let a="";const u=n.x.translate/r.x,f=n.y.translate/r.y,d=(s==null?void 0:s.z)||0;if((u||f||d)&&(a=`translate3d(${u}px, ${f}px, ${d}px) `),(r.x!==1||r.y!==1)&&(a+=`scale(${1/r.x}, ${1/r.y}) `),s){const{transformPerspective:v,rotate:y,rotateX:x,rotateY:S,skewX:C,skewY:D}=s;v&&(a=`perspective(${v}px) ${a}`),y&&(a+=`rotate(${y}deg) `),x&&(a+=`rotateX(${x}deg) `),S&&(a+=`rotateY(${S}deg) `),C&&(a+=`skewX(${C}deg) `),D&&(a+=`skewY(${D}deg) `)}const h=n.x.scale*r.x,g=n.y.scale*r.y;return(h!==1||g!==1)&&(a+=`scale(${h}, ${g})`),a||"none"}const Cm=["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"],d1=Cm.length,Ph=n=>typeof n=="string"?parseFloat(n):n,Ah=n=>typeof n=="number"||Y.test(n);function f1(n,r,s,a,u,f){u?(n.opacity=Pe(0,s.opacity??1,h1(a)),n.opacityExit=Pe(r.opacity??1,0,p1(a))):f&&(n.opacity=Pe(r.opacity??1,s.opacity??1,a));for(let d=0;dar?1:s(Si(n,r,a))}function m1(n,r,s){const a=qe(n)?n:Cr(n);return a.start(yu("",a,r,s)),a.animation}function Ci(n,r,s,a={passive:!0}){return n.addEventListener(r,s,a),()=>n.removeEventListener(r,s)}const g1=(n,r)=>n.depth-r.depth;class y1{constructor(){this.children=[],this.isDirty=!1}add(r){iu(this.children,r),this.isDirty=!0}remove(r){to(this.children,r),this.isDirty=!0}forEach(r){this.isDirty&&this.children.sort(g1),this.isDirty=!1,this.children.forEach(r)}}function v1(n,r){const s=it.now(),a=({timestamp:u})=>{const f=u-s;f>=r&&(Pn(a),n(f-r))};return we.setup(a,!0),()=>Pn(a)}function Js(n){return qe(n)?n.get():n}class x1{constructor(){this.members=[]}add(r){iu(this.members,r);for(let s=this.members.length-1;s>=0;s--){const a=this.members[s];if(a===r||a===this.lead||a===this.prevLead)continue;const u=a.instance;(!u||u.isConnected===!1)&&!a.snapshot&&(to(this.members,a),a.unmount())}r.scheduleRender()}remove(r){if(to(this.members,r),r===this.prevLead&&(this.prevLead=void 0),r===this.lead){const s=this.members[this.members.length-1];s&&this.promote(s)}}relegate(r){var s;for(let a=this.members.indexOf(r)-1;a>=0;a--){const u=this.members[a];if(u.isPresent!==!1&&((s=u.instance)==null?void 0:s.isConnected)!==!1)return this.promote(u),!0}return!1}promote(r,s){var u;const a=this.lead;if(r!==a&&(this.prevLead=a,this.lead=r,r.show(),a)){a.updateSnapshot(),r.scheduleRender();const{layoutDependency:f}=a.options,{layoutDependency:d}=r.options;(f===void 0||f!==d)&&(r.resumeFrom=a,s&&(a.preserveOpacity=!0),a.snapshot&&(r.snapshot=a.snapshot,r.snapshot.latestValues=a.animationValues||a.latestValues),(u=r.root)!=null&&u.isUpdating&&(r.isLayoutDirty=!0)),r.options.crossfade===!1&&a.hide()}}exitAnimationComplete(){this.members.forEach(r=>{var s,a,u,f,d;(a=(s=r.options).onExitComplete)==null||a.call(s),(d=(u=r.resumingFrom)==null?void 0:(f=u.options).onExitComplete)==null||d.call(f)})}scheduleRender(){this.members.forEach(r=>r.instance&&r.scheduleRender(!1))}removeLeadSnapshot(){var r;(r=this.lead)!=null&&r.snapshot&&(this.lead.snapshot=void 0)}}const eo={hasAnimatedSinceResize:!0,hasEverUpdated:!1},kl=["","X","Y","Z"],w1=1e3;let S1=0;function Tl(n,r,s,a){const{latestValues:u}=r;u[n]&&(s[n]=u[n],r.setStaticValue(n,0),a&&(a[n]=0))}function Pm(n){if(n.hasCheckedOptimisedAppear=!0,n.root===n)return;const{visualElement:r}=n.options;if(!r)return;const s=Gp(r);if(window.MotionHasOptimisedAnimation(s,"transform")){const{layout:u,layoutId:f}=n.options;window.MotionCancelOptimisedAnimation(s,"transform",we,!(u||f))}const{parent:a}=n;a&&!a.hasCheckedOptimisedAppear&&Pm(a)}function Am({attachResizeListener:n,defaultParent:r,measureScroll:s,checkIsScrollRoot:a,resetTransform:u}){return class{constructor(d={},h=r==null?void 0:r()){this.id=S1++,this.animationId=0,this.animationCommitId=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.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(C1),this.nodes.forEach(M1),this.nodes.forEach(D1),this.nodes.forEach(E1)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=d,this.root=h?h.root||h:this,this.path=h?[...h.path,h]:[],this.parent=h,this.depth=h?h.depth+1:0;for(let g=0;gthis.root.updateBlockedByResize=!1;we.read(()=>{x=window.innerWidth}),n(d,()=>{const C=window.innerWidth;C!==x&&(x=C,this.root.updateBlockedByResize=!0,y&&y(),y=v1(S,250),eo.hasAnimatedSinceResize&&(eo.hasAnimatedSinceResize=!1,this.nodes.forEach(Dh)))})}h&&this.root.registerSharedNode(h,this),this.options.animate!==!1&&v&&(h||g)&&this.addEventListener("didUpdate",({delta:y,hasLayoutChanged:x,hasRelativeLayoutChanged:S,layout:C})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const D=this.options.transition||v.getDefaultTransition()||V1,{onLayoutAnimationStart:L,onLayoutAnimationComplete:N}=v.getProps(),b=!this.targetLayout||!Tm(this.targetLayout,C),F=!x&&S;if(this.options.layoutRoot||this.resumeFrom||F||x&&(b||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const P={...gu(D,"layout"),onPlay:L,onComplete:N};(v.shouldReduceMotion||this.options.layoutRoot)&&(P.delay=0,P.type=!1),this.startAnimation(P),this.setAnimationOrigin(y,F)}else x||Dh(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=C})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const d=this.getStack();d&&d.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),Pn(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(F1),this.animationId++)}getTransformTemplate(){const{visualElement:d}=this.options;return d&&d.getProps().transformTemplate}willUpdate(d=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&Pm(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let y=0;y{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!st(this.snapshot.measuredBox.x)&&!st(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let g=0;g{const W=R/1e3;Fh(x.x,d.x,W),Fh(x.y,d.y,W),this.setTargetDelta(x),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(lo(S,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),R1(this.relativeTarget,this.relativeTargetOrigin,S,W),P&&u1(this.relativeTarget,P)&&(this.isProjectionDirty=!1),P||(P=We()),Lt(P,this.relativeTarget)),L&&(this.animationValues=y,f1(y,v,this.latestValues,W,F,b)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=W},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(d){var h,g,v;this.notifyListeners("animationStart"),(h=this.currentAnimation)==null||h.stop(),(v=(g=this.resumingFrom)==null?void 0:g.currentAnimation)==null||v.stop(),this.pendingAnimation&&(Pn(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=we.update(()=>{eo.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=Cr(0)),this.motionValue.jump(0,!1),this.currentAnimation=m1(this.motionValue,[0,1e3],{...d,velocity:0,isSync:!0,onUpdate:y=>{this.mixTargetDelta(y),d.onUpdate&&d.onUpdate(y)},onStop:()=>{},onComplete:()=>{d.onComplete&&d.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 d=this.getStack();d&&d.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(w1),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const d=this.getLead();let{targetWithTransforms:h,target:g,layout:v,latestValues:y}=d;if(!(!h||!g||!v)){if(this!==d&&this.layout&&v&&jm(this.options.animationType,this.layout.layoutBox,v.layoutBox)){g=this.target||We();const x=st(this.layout.layoutBox.x);g.x.min=d.target.x.min,g.x.max=g.x.min+x;const S=st(this.layout.layoutBox.y);g.y.min=d.target.y.min,g.y.max=g.y.min+S}Lt(h,g),Zs(h,y),xi(this.projectionDeltaWithTransform,this.layoutCorrected,h,y)}}registerSharedNode(d,h){this.sharedNodes.has(d)||this.sharedNodes.set(d,new x1),this.sharedNodes.get(d).add(h);const v=h.options.initialPromotionConfig;h.promote({transition:v?v.transition:void 0,preserveFollowOpacity:v&&v.shouldPreserveFollowOpacity?v.shouldPreserveFollowOpacity(h):void 0})}isLead(){const d=this.getStack();return d?d.lead===this:!0}getLead(){var h;const{layoutId:d}=this.options;return d?((h=this.getStack())==null?void 0:h.lead)||this:this}getPrevLead(){var h;const{layoutId:d}=this.options;return d?(h=this.getStack())==null?void 0:h.prevLead:void 0}getStack(){const{layoutId:d}=this.options;if(d)return this.root.sharedNodes.get(d)}promote({needsReset:d,transition:h,preserveFollowOpacity:g}={}){const v=this.getStack();v&&v.promote(this,g),d&&(this.projectionDelta=void 0,this.needsReset=!0),h&&this.setOptions({transition:h})}relegate(){const d=this.getStack();return d?d.relegate(this):!1}resetSkewAndRotation(){const{visualElement:d}=this.options;if(!d)return;let h=!1;const{latestValues:g}=d;if((g.z||g.rotate||g.rotateX||g.rotateY||g.rotateZ||g.skewX||g.skewY)&&(h=!0),!h)return;const v={};g.z&&Tl("z",d,v,this.animationValues);for(let y=0;y{var h;return(h=d.currentAnimation)==null?void 0:h.stop()}),this.root.nodes.forEach(Nh),this.root.sharedNodes.clear()}}}function k1(n){n.updateLayout()}function T1(n){var s;const r=((s=n.resumeFrom)==null?void 0:s.snapshot)||n.snapshot;if(n.isLead()&&n.layout&&r&&n.hasListeners("didUpdate")){const{layoutBox:a,measuredBox:u}=n.layout,{animationType:f}=n.options,d=r.source!==n.layout.source;if(f==="size")Wt(x=>{const S=d?r.measuredBox[x]:r.layoutBox[x],C=st(S);S.min=a[x].min,S.max=S.min+C});else if(f==="x"||f==="y"){const x=f==="x"?"y":"x";ql(d?r.measuredBox[x]:r.layoutBox[x],a[x])}else jm(f,r.layoutBox,a)&&Wt(x=>{const S=d?r.measuredBox[x]:r.layoutBox[x],C=st(a[x]);S.max=S.min+C,n.relativeTarget&&!n.currentAnimation&&(n.isProjectionDirty=!0,n.relativeTarget[x].max=n.relativeTarget[x].min+C)});const h=kr();xi(h,a,r.layoutBox);const g=kr();d?xi(g,n.applyTransform(u,!0),r.measuredBox):xi(g,a,r.layoutBox);const v=!km(h);let y=!1;if(!n.resumeFrom){const x=n.getClosestProjectingParent();if(x&&!x.resumeFrom){const{snapshot:S,layout:C}=x;if(S&&C){const D=n.options.layoutAnchor||void 0,L=We();lo(L,r.layoutBox,S.layoutBox,D);const N=We();lo(N,a,C.layoutBox,D),Tm(L,N)||(y=!0),x.options.layoutRoot&&(n.relativeTarget=N,n.relativeTargetOrigin=L,n.relativeParent=x)}}}n.notifyListeners("didUpdate",{layout:a,snapshot:r,delta:g,layoutDelta:h,hasLayoutChanged:v,hasRelativeLayoutChanged:y})}else if(n.isLead()){const{onExitComplete:a}=n.options;a&&a()}n.options.transition=void 0}function C1(n){n.parent&&(n.isProjecting()||(n.isProjectionDirty=n.parent.isProjectionDirty),n.isSharedProjectionDirty||(n.isSharedProjectionDirty=!!(n.isProjectionDirty||n.parent.isProjectionDirty||n.parent.isSharedProjectionDirty)),n.isTransformDirty||(n.isTransformDirty=n.parent.isTransformDirty))}function E1(n){n.isProjectionDirty=n.isSharedProjectionDirty=n.isTransformDirty=!1}function P1(n){n.clearSnapshot()}function Nh(n){n.clearMeasurements()}function A1(n){n.isLayoutDirty=!0,n.updateLayout()}function Mh(n){n.isLayoutDirty=!1}function j1(n){n.isAnimationBlocked&&n.layout&&!n.isLayoutDirty&&(n.snapshot=n.layout,n.isLayoutDirty=!0)}function N1(n){const{visualElement:r}=n.options;r&&r.getProps().onBeforeLayoutMeasure&&r.notify("BeforeLayoutMeasure"),n.resetTransform()}function Dh(n){n.finishAnimation(),n.targetDelta=n.relativeTarget=n.target=void 0,n.isProjectionDirty=!0}function M1(n){n.resolveTargetDelta()}function D1(n){n.calcProjection()}function F1(n){n.resetSkewAndRotation()}function L1(n){n.removeLeadSnapshot()}function Fh(n,r,s){n.translate=Pe(r.translate,0,s),n.scale=Pe(r.scale,1,s),n.origin=r.origin,n.originPoint=r.originPoint}function Lh(n,r,s,a){n.min=Pe(r.min,s.min,a),n.max=Pe(r.max,s.max,a)}function R1(n,r,s,a){Lh(n.x,r.x,s.x,a),Lh(n.y,r.y,s.y,a)}function I1(n){return n.animationValues&&n.animationValues.opacityExit!==void 0}const V1={duration:.45,ease:[.4,0,.1,1]},Rh=n=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(n),Ih=Rh("applewebkit/")&&!Rh("chrome/")?Math.round:Et;function Vh(n){n.min=Ih(n.min),n.max=Ih(n.max)}function b1(n){Vh(n.x),Vh(n.y)}function jm(n,r,s){return n==="position"||n==="preserve-aspect"&&!i1(Ch(r),Ch(s),.2)}function _1(n){var r;return n!==n.root&&((r=n.scroll)==null?void 0:r.wasRoot)}const z1=Am({attachResizeListener:(n,r)=>Ci(n,"resize",r),measureScroll:()=>{var n,r;return{x:document.documentElement.scrollLeft||((n=document.body)==null?void 0:n.scrollLeft)||0,y:document.documentElement.scrollTop||((r=document.body)==null?void 0:r.scrollTop)||0}},checkIsScrollRoot:()=>!0}),Cl={current:void 0},Nm=Am({measureScroll:n=>({x:n.scrollLeft,y:n.scrollTop}),defaultParent:()=>{if(!Cl.current){const n=new z1({});n.mount(window),n.setOptions({layoutScroll:!0}),Cl.current=n}return Cl.current},resetTransform:(n,r)=>{n.style.transform=r!==void 0?r:"none"},checkIsScrollRoot:n=>window.getComputedStyle(n).position==="fixed"}),ju=z.createContext({transformPagePoint:n=>n,isStatic:!1,reducedMotion:"never"});function bh(n,r){if(typeof n=="function")return n(r);n!=null&&(n.current=r)}function O1(...n){return r=>{let s=!1;const a=n.map(u=>{const f=bh(u,r);return!s&&typeof f=="function"&&(s=!0),f});if(s)return()=>{for(let u=0;u{const{width:C,height:D,top:L,left:N,right:b,bottom:F}=g.current;if(r||f===!1||!h.current||!C||!D)return;const P=s==="left"?`left: ${N}`:`right: ${b}`,R=a==="bottom"?`bottom: ${F}`:`top: ${L}`;h.current.dataset.motionPopId=d;const W=document.createElement("style");v&&(W.nonce=v);const ee=u??document.head;return ee.appendChild(W),W.sheet&&W.sheet.insertRule(` + [data-motion-pop-id="${d}"] { + position: absolute !important; + width: ${C}px !important; + height: ${D}px !important; + ${P}px !important; + ${R}px !important; + } + `),()=>{var se;(se=h.current)==null||se.removeAttribute("data-motion-pop-id"),ee.contains(W)&&ee.removeChild(W)}},[r]),m.jsx(U1,{isPresent:r,childRef:h,sizeRef:g,pop:f,children:f===!1?n:z.cloneElement(n,{ref:x})})}const H1=({children:n,initial:r,isPresent:s,onExitComplete:a,custom:u,presenceAffectsLayout:f,mode:d,anchorX:h,anchorY:g,root:v})=>{const y=ru($1),x=z.useId();let S=!0,C=z.useMemo(()=>(S=!1,{id:x,initial:r,isPresent:s,custom:u,onExitComplete:D=>{y.set(D,!0);for(const L of y.values())if(!L)return;a&&a()},register:D=>(y.set(D,!1),()=>y.delete(D))}),[s,y,a]);return f&&S&&(C={...C}),z.useMemo(()=>{y.forEach((D,L)=>y.set(L,!1))},[s]),z.useEffect(()=>{!s&&!y.size&&a&&a()},[s]),n=m.jsx(W1,{pop:d==="popLayout",isPresent:s,anchorX:h,anchorY:g,root:v,children:n}),m.jsx(co.Provider,{value:C,children:n})};function $1(){return new Map}function Mm(n=!0){const r=z.useContext(co);if(r===null)return[!0,null];const{isPresent:s,onExitComplete:a,register:u}=r,f=z.useId();z.useEffect(()=>{if(n)return u(f)},[n]);const d=z.useCallback(()=>n&&a&&a(f),[f,a,n]);return!s&&a?[!1,d]:[!0]}const Us=n=>n.key||"";function _h(n){const r=[];return z.Children.forEach(n,s=>{z.isValidElement(s)&&r.push(s)}),r}const Cn=({children:n,custom:r,initial:s=!0,onExitComplete:a,presenceAffectsLayout:u=!0,mode:f="sync",propagate:d=!1,anchorX:h="left",anchorY:g="top",root:v})=>{const[y,x]=Mm(d),S=z.useMemo(()=>_h(n),[n]),C=d&&!y?[]:S.map(Us),D=z.useRef(!0),L=z.useRef(S),N=ru(()=>new Map),b=z.useRef(new Set),[F,P]=z.useState(S),[R,W]=z.useState(S);rp(()=>{D.current=!1,L.current=S;for(let J=0;J{const ie=Us(J),q=d&&!y?!1:S===R||C.includes(ie),he=()=>{if(b.current.has(ie))return;if(N.has(ie))b.current.add(ie),N.set(ie,!0);else return;let xe=!0;N.forEach(Ne=>{Ne||(xe=!1)}),xe&&(se==null||se(),W(L.current),d&&(x==null||x()),a&&a())};return m.jsx(H1,{isPresent:q,initial:!D.current||s?void 0:!1,custom:r,presenceAffectsLayout:u,mode:f,root:v,onExitComplete:q?void 0:he,anchorX:h,anchorY:g,children:J},ie)})})},Dm=z.createContext({strict:!1}),zh={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"]};let Oh=!1;function G1(){if(Oh)return;const n={};for(const r in zh)n[r]={isEnabled:s=>zh[r].some(a=>!!s[a])};om(n),Oh=!0}function Fm(){return G1(),Mx()}function K1(n){const r=Fm();for(const s in n)r[s]={...r[s],...n[s]};om(r)}const Y1=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function uo(n){return n.startsWith("while")||n.startsWith("drag")&&n!=="draggable"||n.startsWith("layout")||n.startsWith("onTap")||n.startsWith("onPan")||n.startsWith("onLayout")||Y1.has(n)}let Lm=n=>!uo(n);function X1(n){typeof n=="function"&&(Lm=r=>r.startsWith("on")?!uo(r):n(r))}try{X1(require("@emotion/is-prop-valid").default)}catch{}function Q1(n,r,s){const a={};for(const u in n)u==="values"&&typeof n.values=="object"||qe(n[u])||(Lm(u)||s===!0&&uo(u)||!r&&!uo(u)||n.draggable&&u.startsWith("onDrag"))&&(a[u]=n[u]);return a}const mo=z.createContext({});function q1(n,r){if(po(n)){const{initial:s,animate:a}=n;return{initial:s===!1||Ti(s)?s:void 0,animate:Ti(a)?a:void 0}}return n.inherit!==!1?r:{}}function Z1(n){const{initial:r,animate:s}=q1(n,z.useContext(mo));return z.useMemo(()=>({initial:r,animate:s}),[Bh(r),Bh(s)])}function Bh(n){return Array.isArray(n)?n.join(" "):n}const Nu=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function Rm(n,r,s){for(const a in r)!qe(r[a])&&!hm(a,s)&&(n[a]=r[a])}function J1({transformTemplate:n},r){return z.useMemo(()=>{const s=Nu();return Pu(s,r,n),Object.assign({},s.vars,s.style)},[r])}function ew(n,r){const s=n.style||{},a={};return Rm(a,s,n),Object.assign(a,J1(n,r)),a}function tw(n,r){const s={},a=ew(n,r);return n.drag&&n.dragListener!==!1&&(s.draggable=!1,a.userSelect=a.WebkitUserSelect=a.WebkitTouchCallout="none",a.touchAction=n.drag===!0?"none":`pan-${n.drag==="x"?"y":"x"}`),n.tabIndex===void 0&&(n.onTap||n.onTapStart||n.whileTap)&&(s.tabIndex=0),s.style=a,s}const Im=()=>({...Nu(),attrs:{}});function nw(n,r,s,a){const u=z.useMemo(()=>{const f=Im();return pm(f,r,gm(a),n.transformTemplate,n.style),{...f.attrs,style:{...f.style}}},[r]);if(n.style){const f={};Rm(f,n.style,n),u.style={...f,...u.style}}return u}const rw=["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 Mu(n){return typeof n!="string"||n.includes("-")?!1:!!(rw.indexOf(n)>-1||/[A-Z]/u.test(n))}function iw(n,r,s,{latestValues:a},u,f=!1,d){const g=(d??Mu(n)?nw:tw)(r,a,u,n),v=Q1(r,typeof n=="string",f),y=n!==z.Fragment?{...v,...g,ref:s}:{},{children:x}=r,S=z.useMemo(()=>qe(x)?x.get():x,[x]);return z.createElement(n,{...y,children:S})}function sw({scrapeMotionValuesFromProps:n,createRenderState:r},s,a,u){return{latestValues:ow(s,a,u,n),renderState:r()}}function ow(n,r,s,a){const u={},f=a(n,{});for(const S in f)u[S]=Js(f[S]);let{initial:d,animate:h}=n;const g=po(n),v=im(n);r&&v&&!g&&n.inherit!==!1&&(d===void 0&&(d=r.initial),h===void 0&&(h=r.animate));let y=s?s.initial===!1:!1;y=y||d===!1;const x=y?h:d;if(x&&typeof x!="boolean"&&!ho(x)){const S=Array.isArray(x)?x:[x];for(let C=0;C(r,s)=>{const a=z.useContext(mo),u=z.useContext(co),f=()=>sw(n,r,a,u);return s?f():ru(f)},aw=Vm({scrapeMotionValuesFromProps:Au,createRenderState:Nu}),lw=Vm({scrapeMotionValuesFromProps:ym,createRenderState:Im}),uw=Symbol.for("motionComponentSymbol");function cw(n,r,s){const a=z.useRef(s);z.useInsertionEffect(()=>{a.current=s});const u=z.useRef(null);return z.useCallback(f=>{var h;f&&((h=n.onMount)==null||h.call(n,f));const d=a.current;if(typeof d=="function")if(f){const g=d(f);typeof g=="function"&&(u.current=g)}else u.current?(u.current(),u.current=null):d(f);else d&&(d.current=f);r&&(f?r.mount(f):r.unmount())},[r])}const bm=z.createContext({});function xr(n){return n&&typeof n=="object"&&Object.prototype.hasOwnProperty.call(n,"current")}function dw(n,r,s,a,u,f){var P,R;const{visualElement:d}=z.useContext(mo),h=z.useContext(Dm),g=z.useContext(co),v=z.useContext(ju),y=v.reducedMotion,x=v.skipAnimations,S=z.useRef(null),C=z.useRef(!1);a=a||h.renderer,!S.current&&a&&(S.current=a(n,{visualState:r,parent:d,props:s,presenceContext:g,blockInitialAnimation:g?g.initial===!1:!1,reducedMotionConfig:y,skipAnimations:x,isSVG:f}),C.current&&S.current&&(S.current.manuallyAnimateOnMount=!0));const D=S.current,L=z.useContext(bm);D&&!D.projection&&u&&(D.type==="html"||D.type==="svg")&&fw(S.current,s,u,L);const N=z.useRef(!1);z.useInsertionEffect(()=>{D&&N.current&&D.update(s,g)});const b=s[$p],F=z.useRef(!!b&&typeof window<"u"&&!((P=window.MotionHandoffIsComplete)!=null&&P.call(window,b))&&((R=window.MotionHasOptimisedAnimation)==null?void 0:R.call(window,b)));return rp(()=>{C.current=!0,D&&(N.current=!0,window.MotionIsMounted=!0,D.updateFeatures(),D.scheduleRenderMicrotask(),F.current&&D.animationState&&D.animationState.animateChanges())}),z.useEffect(()=>{D&&(!F.current&&D.animationState&&D.animationState.animateChanges(),F.current&&(queueMicrotask(()=>{var W;(W=window.MotionHandoffMarkAsComplete)==null||W.call(window,b)}),F.current=!1),D.enteringChildren=void 0)}),D}function fw(n,r,s,a){const{layoutId:u,layout:f,drag:d,dragConstraints:h,layoutScroll:g,layoutRoot:v,layoutAnchor:y,layoutCrossfade:x}=r;n.projection=new s(n.latestValues,r["data-framer-portal-id"]?void 0:_m(n.parent)),n.projection.setOptions({layoutId:u,layout:f,alwaysMeasureLayout:!!d||h&&xr(h),visualElement:n,animationType:typeof f=="string"?f:"both",initialPromotionConfig:a,crossfade:x,layoutScroll:g,layoutRoot:v,layoutAnchor:y})}function _m(n){if(n)return n.options.allowProjection!==!1?n.projection:_m(n.parent)}function El(n,{forwardMotionProps:r=!1,type:s}={},a,u){a&&K1(a);const f=s?s==="svg":Mu(n),d=f?lw:aw;function h(v,y){let x;const S={...z.useContext(ju),...v,layoutId:hw(v)},{isStatic:C}=S,D=Z1(v),L=d(v,C);if(!C&&typeof window<"u"){pw();const N=mw(S);x=N.MeasureLayout,D.visualElement=dw(n,L,S,u,N.ProjectionNode,f)}return m.jsxs(mo.Provider,{value:D,children:[x&&D.visualElement?m.jsx(x,{visualElement:D.visualElement,...S}):null,iw(n,v,cw(L,D.visualElement,y),L,C,r,f)]})}h.displayName=`motion.${typeof n=="string"?n:`create(${n.displayName??n.name??""})`}`;const g=z.forwardRef(h);return g[uw]=n,g}function hw({layoutId:n}){const r=z.useContext(nu).id;return r&&n!==void 0?r+"-"+n:n}function pw(n,r){z.useContext(Dm).strict}function mw(n){const r=Fm(),{drag:s,layout:a}=r;if(!s&&!a)return{};const u={...s,...a};return{MeasureLayout:s!=null&&s.isEnabled(n)||a!=null&&a.isEnabled(n)?u.MeasureLayout:void 0,ProjectionNode:u.ProjectionNode}}function gw(n,r){if(typeof Proxy>"u")return El;const s=new Map,a=(f,d)=>El(f,d,n,r),u=(f,d)=>a(f,d);return new Proxy(u,{get:(f,d)=>d==="create"?a:(s.has(d)||s.set(d,El(d,void 0,n,r)),s.get(d))})}const yw=(n,r)=>r.isSVG??Mu(n)?new Kx(r):new Bx(r,{allowProjection:n!==z.Fragment});class vw extends An{constructor(r){super(r),r.animationState||(r.animationState=Zx(r))}updateAnimationControlsSubscription(){const{animate:r}=this.node.getProps();ho(r)&&(this.unmountControls=r.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:r}=this.node.getProps(),{animate:s}=this.node.prevProps||{};r!==s&&this.updateAnimationControlsSubscription()}unmount(){var r;this.node.animationState.reset(),(r=this.unmountControls)==null||r.call(this)}}let xw=0;class ww extends An{constructor(){super(...arguments),this.id=xw++,this.isExitComplete=!1}update(){var f;if(!this.node.presenceContext)return;const{isPresent:r,onExitComplete:s}=this.node.presenceContext,{isPresent:a}=this.node.prevPresenceContext||{};if(!this.node.animationState||r===a)return;if(r&&a===!1){if(this.isExitComplete){const{initial:d,custom:h}=this.node.getProps();if(typeof d=="string"){const g=Kn(this.node,d,h);if(g){const{transition:v,transitionEnd:y,...x}=g;for(const S in x)(f=this.node.getValue(S))==null||f.jump(x[S])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}const u=this.node.animationState.setActive("exit",!r);s&&!r&&u.then(()=>{this.isExitComplete=!0,s(this.id)})}mount(){const{register:r,onExitComplete:s}=this.node.presenceContext||{};s&&s(this.id),r&&(this.unmount=r(this.id))}unmount(){}}const Sw={animation:{Feature:vw},exit:{Feature:ww}};function ji(n){return{point:{x:n.pageX,y:n.pageY}}}const kw=n=>r=>ku(r)&&n(r,ji(r));function wi(n,r,s,a){return Ci(n,r,kw(s),a)}const zm=({current:n})=>n?n.ownerDocument.defaultView:null,Uh=(n,r)=>Math.abs(n-r);function Tw(n,r){const s=Uh(n.x,r.x),a=Uh(n.y,r.y);return Math.sqrt(s**2+a**2)}const Wh=new Set(["auto","scroll"]);class Om{constructor(r,s,{transformPagePoint:a,contextWindow:u=window,dragSnapToOrigin:f=!1,distanceThreshold:d=3,element:h}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=C=>{this.handleScroll(C.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=Ws(this.lastRawMoveEventInfo,this.transformPagePoint));const C=Pl(this.lastMoveEventInfo,this.history),D=this.startEvent!==null,L=Tw(C.offset,{x:0,y:0})>=this.distanceThreshold;if(!D&&!L)return;const{point:N}=C,{timestamp:b}=Qe;this.history.push({...N,timestamp:b});const{onStart:F,onMove:P}=this.handlers;D||(F&&F(this.lastMoveEvent,C),this.startEvent=this.lastMoveEvent),P&&P(this.lastMoveEvent,C)},this.handlePointerMove=(C,D)=>{this.lastMoveEvent=C,this.lastRawMoveEventInfo=D,this.lastMoveEventInfo=Ws(D,this.transformPagePoint),we.update(this.updatePoint,!0)},this.handlePointerUp=(C,D)=>{this.end();const{onEnd:L,onSessionEnd:N,resumeAnimation:b}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&b&&b(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const F=Pl(C.type==="pointercancel"?this.lastMoveEventInfo:Ws(D,this.transformPagePoint),this.history);this.startEvent&&L&&L(C,F),N&&N(C,F)},!ku(r))return;this.dragSnapToOrigin=f,this.handlers=s,this.transformPagePoint=a,this.distanceThreshold=d,this.contextWindow=u||window;const g=ji(r),v=Ws(g,this.transformPagePoint),{point:y}=v,{timestamp:x}=Qe;this.history=[{...y,timestamp:x}];const{onSessionStart:S}=s;S&&S(r,Pl(v,this.history)),this.removeListeners=Ei(wi(this.contextWindow,"pointermove",this.handlePointerMove),wi(this.contextWindow,"pointerup",this.handlePointerUp),wi(this.contextWindow,"pointercancel",this.handlePointerUp)),h&&this.startScrollTracking(h)}startScrollTracking(r){let s=r.parentElement;for(;s;){const a=getComputedStyle(s);(Wh.has(a.overflowX)||Wh.has(a.overflowY))&&this.scrollPositions.set(s,{x:s.scrollLeft,y:s.scrollTop}),s=s.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(r){const s=this.scrollPositions.get(r);if(!s)return;const a=r===window,u=a?{x:window.scrollX,y:window.scrollY}:{x:r.scrollLeft,y:r.scrollTop},f={x:u.x-s.x,y:u.y-s.y};f.x===0&&f.y===0||(a?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=f.x,this.lastMoveEventInfo.point.y+=f.y):this.history.length>0&&(this.history[0].x-=f.x,this.history[0].y-=f.y),this.scrollPositions.set(r,u),we.update(this.updatePoint,!0))}updateHandlers(r){this.handlers=r}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),Pn(this.updatePoint)}}function Ws(n,r){return r?{point:r(n.point)}:n}function Hh(n,r){return{x:n.x-r.x,y:n.y-r.y}}function Pl({point:n},r){return{point:n,delta:Hh(n,Bm(r)),offset:Hh(n,Cw(r)),velocity:Ew(r,.1)}}function Cw(n){return n[0]}function Bm(n){return n[n.length-1]}function Ew(n,r){if(n.length<2)return{x:0,y:0};let s=n.length-1,a=null;const u=Bm(n);for(;s>=0&&(a=n[s],!(u.timestamp-a.timestamp>yt(r)));)s--;if(!a)return{x:0,y:0};a===n[0]&&n.length>2&&u.timestamp-a.timestamp>yt(r)*2&&(a=n[1]);const f=Ct(u.timestamp-a.timestamp);if(f===0)return{x:0,y:0};const d={x:(u.x-a.x)/f,y:(u.y-a.y)/f};return d.x===1/0&&(d.x=0),d.y===1/0&&(d.y=0),d}function Pw(n,{min:r,max:s},a){return r!==void 0&&ns&&(n=a?Pe(s,n,a.max):Math.min(n,s)),n}function $h(n,r,s){return{min:r!==void 0?n.min+r:void 0,max:s!==void 0?n.max+s-(n.max-n.min):void 0}}function Aw(n,{top:r,left:s,bottom:a,right:u}){return{x:$h(n.x,s,u),y:$h(n.y,r,a)}}function Gh(n,r){let s=r.min-n.min,a=r.max-n.max;return r.max-r.mina?s=Si(r.min,r.max-a,n.min):a>u&&(s=Si(n.min,n.max-u,r.min)),Gt(0,1,s)}function Mw(n,r){const s={};return r.min!==void 0&&(s.min=r.min-n.min),r.max!==void 0&&(s.max=r.max-n.min),s}const Zl=.35;function Dw(n=Zl){return n===!1?n=0:n===!0&&(n=Zl),{x:Kh(n,"left","right"),y:Kh(n,"top","bottom")}}function Kh(n,r,s){return{min:Yh(n,r),max:Yh(n,s)}}function Yh(n,r){return typeof n=="number"?n:n[r]||0}const Fw=new WeakMap;class Lw{constructor(r){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=We(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=r}start(r,{snapToCursor:s=!1,distanceThreshold:a}={}){const{presenceContext:u}=this.visualElement;if(u&&u.isPresent===!1)return;const f=x=>{s&&this.snapToCursor(ji(x).point),this.stopAnimation()},d=(x,S)=>{const{drag:C,dragPropagation:D,onDragStart:L}=this.getProps();if(C&&!D&&(this.openDragLock&&this.openDragLock(),this.openDragLock=ox(C),!this.openDragLock))return;this.latestPointerEvent=x,this.latestPanInfo=S,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Wt(b=>{let F=this.getAxisMotionValue(b).get()||0;if($t.test(F)){const{projection:P}=this.visualElement;if(P&&P.layout){const R=P.layout.layoutBox[b];R&&(F=st(R)*(parseFloat(F)/100))}}this.originPoint[b]=F}),L&&we.update(()=>L(x,S),!1,!0),Wl(this.visualElement,"transform");const{animationState:N}=this.visualElement;N&&N.setActive("whileDrag",!0)},h=(x,S)=>{this.latestPointerEvent=x,this.latestPanInfo=S;const{dragPropagation:C,dragDirectionLock:D,onDirectionLock:L,onDrag:N}=this.getProps();if(!C&&!this.openDragLock)return;const{offset:b}=S;if(D&&this.currentDirection===null){this.currentDirection=Iw(b),this.currentDirection!==null&&L&&L(this.currentDirection);return}this.updateAxis("x",S.point,b),this.updateAxis("y",S.point,b),this.visualElement.render(),N&&we.update(()=>N(x,S),!1,!0)},g=(x,S)=>{this.latestPointerEvent=x,this.latestPanInfo=S,this.stop(x,S),this.latestPointerEvent=null,this.latestPanInfo=null},v=()=>{const{dragSnapToOrigin:x}=this.getProps();(x||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:y}=this.getProps();this.panSession=new Om(r,{onSessionStart:f,onStart:d,onMove:h,onSessionEnd:g,resumeAnimation:v},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:y,distanceThreshold:a,contextWindow:zm(this.visualElement),element:this.visualElement.current})}stop(r,s){const a=r||this.latestPointerEvent,u=s||this.latestPanInfo,f=this.isDragging;if(this.cancel(),!f||!u||!a)return;const{velocity:d}=u;this.startAnimation(d);const{onDragEnd:h}=this.getProps();h&&we.postRender(()=>h(a,u))}cancel(){this.isDragging=!1;const{projection:r,animationState:s}=this.visualElement;r&&(r.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:a}=this.getProps();!a&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),s&&s.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(r,s,a){const{drag:u}=this.getProps();if(!a||!Hs(r,u,this.currentDirection))return;const f=this.getAxisMotionValue(r);let d=this.originPoint[r]+a[r];this.constraints&&this.constraints[r]&&(d=Pw(d,this.constraints[r],this.elastic[r])),f.set(d)}resolveConstraints(){var f;const{dragConstraints:r,dragElastic:s}=this.getProps(),a=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(f=this.visualElement.projection)==null?void 0:f.layout,u=this.constraints;r&&xr(r)?this.constraints||(this.constraints=this.resolveRefConstraints()):r&&a?this.constraints=Aw(a.layoutBox,r):this.constraints=!1,this.elastic=Dw(s),u!==this.constraints&&!xr(r)&&a&&this.constraints&&!this.hasMutatedConstraints&&Wt(d=>{this.constraints!==!1&&this.getAxisMotionValue(d)&&(this.constraints[d]=Mw(a.layoutBox[d],this.constraints[d]))})}resolveRefConstraints(){const{dragConstraints:r,onMeasureDragConstraints:s}=this.getProps();if(!r||!xr(r))return!1;const a=r.current,{projection:u}=this.visualElement;if(!u||!u.layout)return!1;const f=Ix(a,u.root,this.visualElement.getTransformPagePoint());let d=jw(u.layout.layoutBox,f);if(s){const h=s(Fx(d));this.hasMutatedConstraints=!!h,h&&(d=lm(h))}return d}startAnimation(r){const{drag:s,dragMomentum:a,dragElastic:u,dragTransition:f,dragSnapToOrigin:d,onDragTransitionEnd:h}=this.getProps(),g=this.constraints||{},v=Wt(y=>{if(!Hs(y,s,this.currentDirection))return;let x=g&&g[y]||{};(d===!0||d===y)&&(x={min:0,max:0});const S=u?200:1e6,C=u?40:1e7,D={type:"inertia",velocity:a?r[y]:0,bounceStiffness:S,bounceDamping:C,timeConstant:750,restDelta:1,restSpeed:10,...f,...x};return this.startAxisValueAnimation(y,D)});return Promise.all(v).then(h)}startAxisValueAnimation(r,s){const a=this.getAxisMotionValue(r);return Wl(this.visualElement,r),a.start(yu(r,a,0,s,this.visualElement,!1))}stopAnimation(){Wt(r=>this.getAxisMotionValue(r).stop())}getAxisMotionValue(r){const s=`_drag${r.toUpperCase()}`,a=this.visualElement.getProps(),u=a[s];return u||this.visualElement.getValue(r,(a.initial?a.initial[r]:void 0)||0)}snapToCursor(r){Wt(s=>{const{drag:a}=this.getProps();if(!Hs(s,a,this.currentDirection))return;const{projection:u}=this.visualElement,f=this.getAxisMotionValue(s);if(u&&u.layout){const{min:d,max:h}=u.layout.layoutBox[s],g=f.get()||0;f.set(r[s]-Pe(d,h,.5)+g)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:r,dragConstraints:s}=this.getProps(),{projection:a}=this.visualElement;if(!xr(s)||!a||!this.constraints)return;this.stopAnimation();const u={x:0,y:0};Wt(d=>{const h=this.getAxisMotionValue(d);if(h&&this.constraints!==!1){const g=h.get();u[d]=Nw({min:g,max:g},this.constraints[d])}});const{transformTemplate:f}=this.visualElement.getProps();this.visualElement.current.style.transform=f?f({},""):"none",a.root&&a.root.updateScroll(),a.updateLayout(),this.constraints=!1,this.resolveConstraints(),Wt(d=>{if(!Hs(d,r,null))return;const h=this.getAxisMotionValue(d),{min:g,max:v}=this.constraints[d];h.set(Pe(g,v,u[d]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;Fw.set(this.visualElement,this);const r=this.visualElement.current,s=wi(r,"pointerdown",v=>{const{drag:y,dragListener:x=!0}=this.getProps(),S=v.target,C=S!==r&&fx(S);y&&x&&!C&&this.start(v)});let a;const u=()=>{const{dragConstraints:v}=this.getProps();xr(v)&&v.current&&(this.constraints=this.resolveRefConstraints(),a||(a=Rw(r,v.current,()=>this.scalePositionWithinConstraints())))},{projection:f}=this.visualElement,d=f.addEventListener("measure",u);f&&!f.layout&&(f.root&&f.root.updateScroll(),f.updateLayout()),we.read(u);const h=Ci(window,"resize",()=>this.scalePositionWithinConstraints()),g=f.addEventListener("didUpdate",(({delta:v,hasLayoutChanged:y})=>{this.isDragging&&y&&(Wt(x=>{const S=this.getAxisMotionValue(x);S&&(this.originPoint[x]+=v[x].translate,S.set(S.get()+v[x].translate))}),this.visualElement.render())}));return()=>{h(),s(),d(),g&&g(),a&&a()}}getProps(){const r=this.visualElement.getProps(),{drag:s=!1,dragDirectionLock:a=!1,dragPropagation:u=!1,dragConstraints:f=!1,dragElastic:d=Zl,dragMomentum:h=!0}=r;return{...r,drag:s,dragDirectionLock:a,dragPropagation:u,dragConstraints:f,dragElastic:d,dragMomentum:h}}}function Xh(n){let r=!0;return()=>{if(r){r=!1;return}n()}}function Rw(n,r,s){const a=nh(n,Xh(s)),u=nh(r,Xh(s));return()=>{a(),u()}}function Hs(n,r,s){return(r===!0||r===n)&&(s===null||s===n)}function Iw(n,r=10){let s=null;return Math.abs(n.y)>r?s="y":Math.abs(n.x)>r&&(s="x"),s}class Vw extends An{constructor(r){super(r),this.removeGroupControls=Et,this.removeListeners=Et,this.controls=new Lw(r)}mount(){const{dragControls:r}=this.node.getProps();r&&(this.removeGroupControls=r.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Et}update(){const{dragControls:r}=this.node.getProps(),{dragControls:s}=this.node.prevProps||{};r!==s&&(this.removeGroupControls(),r&&(this.removeGroupControls=r.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const Al=n=>(r,s)=>{n&&we.update(()=>n(r,s),!1,!0)};class bw extends An{constructor(){super(...arguments),this.removePointerDownListener=Et}onPointerDown(r){this.session=new Om(r,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:zm(this.node)})}createPanHandlers(){const{onPanSessionStart:r,onPanStart:s,onPan:a,onPanEnd:u}=this.node.getProps();return{onSessionStart:Al(r),onStart:Al(s),onMove:Al(a),onEnd:(f,d)=>{delete this.session,u&&we.postRender(()=>u(f,d))}}}mount(){this.removePointerDownListener=wi(this.node.current,"pointerdown",r=>this.onPointerDown(r))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let jl=!1;class _w extends z.Component{componentDidMount(){const{visualElement:r,layoutGroup:s,switchLayoutGroup:a,layoutId:u}=this.props,{projection:f}=r;f&&(s.group&&s.group.add(f),a&&a.register&&u&&a.register(f),jl&&f.root.didUpdate(),f.addEventListener("animationComplete",()=>{this.safeToRemove()}),f.setOptions({...f.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),eo.hasEverUpdated=!0}getSnapshotBeforeUpdate(r){const{layoutDependency:s,visualElement:a,drag:u,isPresent:f}=this.props,{projection:d}=a;return d&&(d.isPresent=f,r.layoutDependency!==s&&d.setOptions({...d.options,layoutDependency:s}),jl=!0,u||r.layoutDependency!==s||s===void 0||r.isPresent!==f?d.willUpdate():this.safeToRemove(),r.isPresent!==f&&(f?d.promote():d.relegate()||we.postRender(()=>{const h=d.getStack();(!h||!h.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{visualElement:r,layoutAnchor:s}=this.props,{projection:a}=r;a&&(a.options.layoutAnchor=s,a.root.didUpdate(),Su.postRender(()=>{!a.currentAnimation&&a.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:r,layoutGroup:s,switchLayoutGroup:a}=this.props,{projection:u}=r;jl=!0,u&&(u.scheduleCheckAfterUnmount(),s&&s.group&&s.group.remove(u),a&&a.deregister&&a.deregister(u))}safeToRemove(){const{safeToRemove:r}=this.props;r&&r()}render(){return null}}function Um(n){const[r,s]=Mm(),a=z.useContext(nu);return m.jsx(_w,{...n,layoutGroup:a,switchLayoutGroup:z.useContext(bm),isPresent:r,safeToRemove:s})}const zw={pan:{Feature:bw},drag:{Feature:Vw,ProjectionNode:Nm,MeasureLayout:Um}};function Qh(n,r,s){const{props:a}=n;n.animationState&&a.whileHover&&n.animationState.setActive("whileHover",s==="Start");const u="onHover"+s,f=a[u];f&&we.postRender(()=>f(r,ji(r)))}class Ow extends An{mount(){const{current:r}=this.node;r&&(this.unmount=lx(r,(s,a)=>(Qh(this.node,a,"Start"),u=>Qh(this.node,u,"End"))))}unmount(){}}class Bw extends An{constructor(){super(...arguments),this.isActive=!1}onFocus(){let r=!1;try{r=this.node.current.matches(":focus-visible")}catch{r=!0}!r||!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=Ei(Ci(this.node.current,"focus",()=>this.onFocus()),Ci(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function qh(n,r,s){const{props:a}=n;if(n.current instanceof HTMLButtonElement&&n.current.disabled)return;n.animationState&&a.whileTap&&n.animationState.setActive("whileTap",s==="Start");const u="onTap"+(s==="End"?"":s),f=a[u];f&&we.postRender(()=>f(r,ji(r)))}class Uw extends An{mount(){const{current:r}=this.node;if(!r)return;const{globalTapTarget:s,propagate:a}=this.node.props;this.unmount=px(r,(u,f)=>(qh(this.node,f,"Start"),(d,{success:h})=>qh(this.node,d,h?"End":"Cancel")),{useGlobalTarget:s,stopPropagation:(a==null?void 0:a.tap)===!1})}unmount(){}}const Jl=new WeakMap,Nl=new WeakMap,Ww=n=>{const r=Jl.get(n.target);r&&r(n)},Hw=n=>{n.forEach(Ww)};function $w({root:n,...r}){const s=n||document;Nl.has(s)||Nl.set(s,{});const a=Nl.get(s),u=JSON.stringify(r);return a[u]||(a[u]=new IntersectionObserver(Hw,{root:n,...r})),a[u]}function Gw(n,r,s){const a=$w(r);return Jl.set(n,s),a.observe(n),()=>{Jl.delete(n),a.unobserve(n)}}const Kw={some:0,all:1};class Yw extends An{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){var g;(g=this.stopObserver)==null||g.call(this);const{viewport:r={}}=this.node.getProps(),{root:s,margin:a,amount:u="some",once:f}=r,d={root:s?s.current:void 0,rootMargin:a,threshold:typeof u=="number"?u:Kw[u]},h=v=>{const{isIntersecting:y}=v;if(this.isInView===y||(this.isInView=y,f&&!y&&this.hasEnteredView))return;y&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",y);const{onViewportEnter:x,onViewportLeave:S}=this.node.getProps(),C=y?x:S;C&&C(v)};this.stopObserver=Gw(this.node.current,d,h)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:r,prevProps:s}=this.node;["amount","margin","root"].some(Xw(r,s))&&this.startObserver()}unmount(){var r;(r=this.stopObserver)==null||r.call(this),this.hasEnteredView=!1,this.isInView=!1}}function Xw({viewport:n={}},{viewport:r={}}={}){return s=>n[s]!==r[s]}const Qw={inView:{Feature:Yw},tap:{Feature:Uw},focus:{Feature:Bw},hover:{Feature:Ow}},qw={layout:{ProjectionNode:Nm,MeasureLayout:Um}},Zw={...Sw,...Qw,...zw,...qw},fe=gw(Zw,yw);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Jw=n=>n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Wm=(...n)=>n.filter((r,s,a)=>!!r&&r.trim()!==""&&a.indexOf(r)===s).join(" ").trim();/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var eS={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const tS=z.forwardRef(({color:n="currentColor",size:r=24,strokeWidth:s=2,absoluteStrokeWidth:a,className:u="",children:f,iconNode:d,...h},g)=>z.createElement("svg",{ref:g,...eS,width:r,height:r,stroke:n,strokeWidth:a?Number(s)*24/Number(r):s,className:Wm("lucide",u),...h},[...d.map(([v,y])=>z.createElement(v,y)),...Array.isArray(f)?f:[f]]));/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const He=(n,r)=>{const s=z.forwardRef(({className:a,...u},f)=>z.createElement(tS,{ref:f,iconNode:r,className:Wm(`lucide-${Jw(n)}`,a),...u}));return s.displayName=`${n}`,s};/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const eu=He("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Hm=He("Briefcase",[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const $m=He("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const nS=He("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const rS=He("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Gm=He("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Zh=He("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const iS=He("Github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Jh=He("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const sS=He("Layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const oS=He("Linkedin",[["path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",key:"c2jq9f"}],["rect",{width:"4",height:"12",x:"2",y:"9",key:"mk3on5"}],["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ep=He("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const aS=He("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const lS=He("Phone",[["path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",key:"foiqr5"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const uS=He("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const cS=He("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Km=He("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const dS=He("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);/** + * @license lucide-react v0.469.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const fS=He("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Rt={name:"Khoa.vo",title:"CREATIVE MANAGER & AI INNOVATION LEAD",location:"Ho Chi Minh City, Vietnam",phone:"0398300340",email:"vonguyendangkhoa@gmail.com",linkedin:"linkedin.com/in/khoavo",portfolio:"khoavo.myds.me",summaryHeadline:"Visionary Creative Leader merging Brand Strategy with Generative AI.",summaryBody:`With 9+ years of expertise at global firms like P&G and Phibious, I bridge the gap between artistic direction and high-performance automation. I specialize in designing scalable AI video production workflows and agentic systems that serve Fortune 500 brands while driving measurable growth and operational excellence. + +Beyond traditional creative direction, my recent evolution into an AI-Powered Developer enables me to architect custom web applications and full-stack deployment pipelines (React, Go, Docker). By unifying deep brand-building experience with hands-on coding and machine learning integration, I transform creative conceptualization into quantifiable, automated, and highly scalable digital realities.`},$s=[{period:"2012 - 2016",school:"RMIT University",degree:"Bachelor of Multimedia Design",details:"Graduated with Excellence."}],hS=["Creative Direction","Brand Strategy","Team Mentorship","GenAI Workflows","ComfyUI & FLUX","AI Video Systems","Adobe Creative Suite","Motion Graphics","3D Visualization","Full-Stack Dev","Agentic AI","Automation SOPs"],pS=[{role:"AI Creative Lead",company:"Phibious Vietnam",period:"Jun 2025 - Present",highlights:["Spearheaded the transformation of video production workflows via AI and automation, achieving a 60% measurable gain in output volume.","Acted as a creative multiplier, leading regional stakeholders and cross-functional teams to automate end-to-end content lifecycles.","Standardized end-to-end AI video production SOPs—ranging from AI-led scripting to automated localization—ensuring brand compliance across Southeast Asian markets.","Drove Regional Enablement by mentoring 20+ producers on prompt engineering, AI ethics, and workflow standardization."]},{role:"eCOM Design Lead",company:"Procter & Gamble",period:"Sep 2023 - Jun 2025",highlights:["Directed visual strategies for P&G's Hair Care portfolio across SEA, impacting millions of consumers effectively.","Managed end-to-end design lifecycles, ensuring strict brand compliance and high-volume output across regional markets.","Collaborated with global brand teams to localize and scale omnichannel retail experiences."]},{role:"Associate Brand Manager (Design)",company:"P&G Vietnam",period:"Nov 2020 - Sep 2023",highlights:["Developed core visual concepts for major product launches, including packaging and digital touchpoints for regional SEA markets.","Optimized internal design processes, reducing asset turnaround time for regional marketing teams by 30%.","Mastered corporate identity systems, ensuring consistent brand expression across all platforms and physical retail environments."]},{role:"Production Creative Lead",company:"Inn Saigon",period:"Dec 2019 - Nov 2020",highlights:["Directed a multi-disciplinary team of photographers and retouchers for high-profile hospitality clients.","Managed production budgets and resource allocation for 30+ simultaneous client accounts.","Implemented quality control frameworks that reduced post-production errors by 40%."]}],mS=[{name:"KV-Tube",tech:"Go, Next.js, Docker",desc:"Enterprise-grade HLS video streaming platform with custom NAS deployment architecture."},{name:"APIx GenAI",tech:"TypeScript, LLM APIs",desc:"A custom AI image generation portal integrating multiple LLM and Diffusion providers."}],tp=({size:n=100,vnColor:r="#000000",dkColor:s="#333333"})=>m.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",width:n,height:n,fill:"none",strokeWidth:"6",strokeLinecap:"round",strokeLinejoin:"round",children:[m.jsx("path",{stroke:r,d:"M 15 25 L 30 45 L 45 25"}),m.jsx("path",{stroke:r,d:"M 55 45 L 55 25 L 85 45 L 85 25"}),m.jsx("path",{stroke:s,d:"M 15 55 L 30 55 A 10 10 0 0 1 30 75 L 15 75 Z"}),m.jsx("path",{stroke:s,d:"M 55 55 L 55 75 M 85 55 L 55 65 L 85 75"})]}),ce={accent:"#222222",black:"#000000",white:"#FFFFFF",grey:"#444444",muted:"#666666",border:"#DDDDDD"},ae={container:{width:"100%",maxWidth:"210mm",background:ce.white,fontFamily:"'Inter', sans-serif",color:ce.black,margin:"0 auto",boxSizing:"border-box",display:"flex",flexDirection:"column",position:"relative",zIndex:1},documentContainer:{padding:"0",backgroundColor:ce.white,display:"flex",flexDirection:"column"},headerWrapper:{backgroundColor:ce.white,padding:"16mm 18mm 12mm 18mm",width:"100%",boxSizing:"border-box",borderTop:`6mm solid ${ce.black}`,borderBottom:`1px solid ${ce.border}`,marginBottom:"10mm"},topHeader:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"10mm"},logoSlot:{border:`2px solid ${ce.black}`,padding:"2mm",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:ce.white},nameTitle:{display:"flex",flexDirection:"column",flex:1,marginLeft:"12mm"},name:{fontSize:"28pt",fontWeight:800,letterSpacing:"-0.02em",color:ce.black,marginBottom:"1mm"},title:{fontSize:"12pt",fontWeight:700,color:ce.muted,letterSpacing:"0.08em",textTransform:"uppercase"},contactInfo:{textAlign:"right",fontSize:"9pt",fontWeight:600,color:ce.black,lineHeight:"1.8"},headerLine:{width:"100%",height:"1.5px",backgroundColor:ce.black,margin:"8mm 0 4mm 0",position:"relative"},headerLineAccent:{position:"absolute",right:"0",top:"0",width:"30%",height:"1.5px",backgroundColor:ce.accent},summaryHeadline:{fontSize:"22pt",fontWeight:800,lineHeight:"1.2",marginBottom:"8mm",color:ce.black,maxWidth:"90%"},summaryParagraph:{fontSize:"11pt",color:ce.grey,marginBottom:"12mm",textAlign:"justify",lineHeight:"1.7",whiteSpace:"pre-wrap"},skillsGrid:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:"3mm 10mm"},skillItem:{fontSize:"10pt",display:"flex",alignItems:"center",gap:"4mm",fontWeight:600},skillIcon:{width:"6mm",height:"1.5px",backgroundColor:ce.accent},mainBody:{padding:"0 18mm",flex:1},sectionHeading:{fontSize:"11pt",fontWeight:900,textTransform:"uppercase",letterSpacing:"0.2em",marginBottom:"10mm",color:ce.black,borderLeft:`5mm solid ${ce.accent}`,paddingLeft:"5mm",pageBreakAfter:"avoid",breakAfter:"avoid"},experienceRow:{display:"grid",gridTemplateColumns:"1.3fr 2fr",gap:"12mm",marginBottom:"12mm"},experienceMeta:{display:"flex",flexDirection:"column"},expRole:{fontSize:"13pt",fontWeight:800,marginBottom:"2mm"},expCompany:{fontSize:"10.5pt",fontWeight:600,color:ce.muted},expPeriod:{fontSize:"9.5pt",color:ce.muted,marginTop:"3mm",fontFamily:"monospace",fontWeight:"bold"},expHighlights:{margin:0,paddingLeft:"6mm",listStyleType:"none"},highlightItem:{marginBottom:"4mm",textAlign:"justify",fontSize:"10.5pt",position:"relative",lineHeight:"1.6",pageBreakInside:"avoid",breakInside:"avoid"},highlightBullet:{position:"absolute",left:"-6mm",top:"2.5mm",width:"3.5mm",height:"1px",backgroundColor:ce.accent},techMeta:{fontFamily:"monospace",fontSize:"10pt",color:ce.black,backgroundColor:ce.white,padding:"1.5mm 3mm",borderLeft:`2px solid ${ce.accent}`,border:`1px solid ${ce.border}`,marginTop:"3mm"},footer:{marginTop:"10mm",padding:"10mm 18mm",textAlign:"center",fontSize:"9pt",color:ce.muted,borderTop:`1px solid ${ce.border}`,display:"flex",justifyContent:"space-between",alignItems:"center",pageBreakInside:"avoid",breakInside:"avoid"}};function gS(){return Rt?m.jsx("div",{style:ae.container,className:"print-portfolio-content",children:m.jsxs("div",{style:ae.documentContainer,children:[m.jsxs("div",{style:ae.headerWrapper,children:[m.jsxs("div",{style:ae.topHeader,children:[m.jsx("div",{style:ae.logoSlot,children:m.jsx(tp,{size:64})}),m.jsxs("div",{style:ae.nameTitle,children:[m.jsx("h1",{style:ae.name,children:Rt.name}),m.jsx("div",{style:ae.title,children:Rt.title})]}),m.jsxs("div",{style:ae.contactInfo,children:[m.jsx("div",{children:Rt.email}),m.jsx("div",{children:Rt.phone}),m.jsx("div",{style:{color:ce.muted,textDecoration:"underline"},children:Rt.portfolio})]})]}),m.jsx("div",{style:ae.headerLine,children:m.jsx("div",{style:ae.headerLineAccent})}),m.jsx("div",{style:{...ae.expPeriod,marginBottom:"10mm",textAlign:"right"},children:Rt.location}),m.jsx("h2",{style:ae.summaryHeadline,children:Rt.summaryHeadline}),m.jsx("p",{style:ae.summaryParagraph,children:Rt.summaryBody}),m.jsx("div",{style:{marginBottom:"8mm",fontSize:"10.5pt",fontWeight:900,textTransform:"uppercase",color:ce.black,letterSpacing:"0.15em"},children:"Branded Expertise"}),m.jsx("div",{style:ae.skillsGrid,children:hS.map((n,r)=>m.jsxs("div",{style:ae.skillItem,children:[m.jsx("div",{style:ae.skillIcon}),n]},r))})]}),m.jsxs("div",{style:ae.mainBody,children:[m.jsx("div",{style:ae.sectionHeading,children:"Experience Journey"}),pS.map((n,r)=>m.jsxs("div",{style:ae.experienceRow,children:[m.jsxs("div",{style:ae.experienceMeta,children:[m.jsx("div",{style:ae.expRole,children:n.role}),m.jsx("div",{style:ae.expCompany,children:n.company}),m.jsx("div",{style:ae.expPeriod,children:n.period})]}),m.jsx("ul",{style:ae.expHighlights,children:n.highlights&&n.highlights.map((s,a)=>m.jsxs("li",{style:ae.highlightItem,children:[m.jsx("div",{style:ae.highlightBullet}),s]},a))})]},r)),m.jsx("div",{style:{...ae.sectionHeading,marginTop:"8mm"},children:"Branded Systems & Tech"}),mS.map((n,r)=>m.jsxs("div",{style:ae.experienceRow,children:[m.jsxs("div",{style:ae.experienceMeta,children:[m.jsx("div",{style:{...ae.expRole,fontSize:"12pt"},children:n.name}),m.jsx("div",{style:ae.techMeta,children:n.tech})]}),m.jsx("div",{style:{fontSize:"11pt",color:ce.grey,lineHeight:"1.7"},children:n.desc})]},r)),m.jsx("div",{style:{...ae.sectionHeading,marginTop:"8mm"},children:"Foundation & Recognition"}),m.jsxs("div",{style:ae.experienceRow,children:[m.jsxs("div",{style:ae.experienceMeta,children:[m.jsx("div",{style:ae.expRole,children:$s[0].school}),m.jsx("div",{style:ae.expPeriod,children:$s[0].period})]}),m.jsxs("div",{style:{fontSize:"11pt",color:ce.grey},children:[m.jsx("strong",{style:{color:ce.black},children:$s[0].degree})," (",$s[0].details,")",m.jsx("br",{}),m.jsx("div",{style:{marginTop:"6mm",borderTop:`1px solid ${ce.border}`,paddingTop:"4mm"},children:m.jsx("div",{style:{display:"grid",gridTemplateColumns:"1fr",gap:"3mm"},children:m.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"3mm"},children:[m.jsx("div",{style:{...ae.skillIcon,width:"4mm"}}),m.jsx("span",{children:"P&G SEA Digital Awards (Best Digital Campaign, 2024)"})]})})})]})]})]}),m.jsxs("div",{style:ae.footer,children:[m.jsxs("div",{style:{display:"flex",gap:"6mm"},children:[m.jsx("span",{children:Rt.linkedin}),m.jsx("span",{children:Rt.portfolio})]}),m.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"4mm"},children:[m.jsx(tp,{size:24}),m.jsx("span",{style:{fontWeight:900,color:ce.black},children:"VNDK // CV"})]})]})]})}):null}const Un={name:"Vo Nguyen Dang Khoa",phone:"0398300340",email:"vonguyendangkhoa@gmail.com",location:"Ho Chi Minh City, Vietnam",linkedin:"https://www.linkedin.com/in/khoa-vo-76291236/",portfolio:"https://khoavo.myds.me/"},Ut={title:"Creative Manager & AI Innovation Lead",summary:"Visionary Creative Leader with 9+ years of expertise bridging brand strategy, digital design, motion graphics, and cutting-edge generative AI. Currently pioneering AI-augmented creative workflows at Phibious, merging traditional art direction with ComfyUI, Stable Diffusion, and FLUX to redefine what's possible in visual storytelling. Previously led eCommerce design at P&G, shaping digital experiences for millions of consumers across Southeast Asia.",tagline:"Where Design Meets Intelligence",skills:[{category:"AI & Generative Design",items:["ComfyUI","Stable Diffusion","FLUX","Midjourney","RunwayML","Ollama","LM Studio","LoRA Training","ControlNet","IP-Adapter"]},{category:"Design & Creative Tools",items:["Adobe Creative Suite","Figma","After Effects","Premiere Pro","Cinema 4D","Blender","Photoshop","Illustrator","InDesign"]},{category:"Motion & Animation",items:["Motion Graphics","3D Animation","Kinetic Typography","Visual Effects","Character Animation","Storyboarding"]},{category:"Brand & Strategy",items:["Brand Identity","Art Direction","Visual Storytelling","Editorial Design","Packaging Design","Strategic Design"]}],projects:[{id:1,title:"FASHION Pipeline: Ideas 2 Execution",category:"AI Video Creation",image:"https://portfolio.khoavo.myds.me/wp-content/uploads/2026/04/Gemini_Generated_Image_vmk4e2vmk4e2vmk4-1-scaled.png",description:"End-to-end AI fashion workflow from concept to video. Ideas -> System prompt instructions -> Scale up structures for repeatable production. Building a complete creative pipeline.",link:"https://portfolio.khoavo.myds.me/2026/04/25/fashion-pipeline-ideas-2-execution/",year:"2026"},{id:2,title:"The Language of Poetry & Literature",category:"AI Generated Art",image:"https://portfolio.khoavo.myds.me/wp-content/uploads/2025/08/i2i_1756355661_62547902.png",description:"Exploring the ethereal boundary between reality and imagination through AI-generated visuals. Capturing the feeling of looking through glass — that quiet distance between the outside world and the person inside.",link:"https://portfolio.khoavo.myds.me/2025/08/28/the-language-of-poetry-and-literature/",year:"2025"},{id:3,title:"Evolving My AI Art Workflow: Better Control",category:"AI Generated Art",image:"https://portfolio.khoavo.myds.me/wp-content/uploads/2025/08/537657171_24322581567428756_3673426611845520713_n.jpg",description:"Iterating on AI image generation process with new combinations for precise control over final output, particularly when training LoRA models for consistent character generation.",link:"https://portfolio.khoavo.myds.me/2025/08/27/evolving-my-ai-art-workflow-tweaking-for-better-control/",year:"2025"},{id:4,title:"Delux Perfume – Fineline 2025 Launch",category:"AI Branding & Video",image:"https://portfolio.khoavo.myds.me/wp-content/uploads/2025/08/Delux-Perfume_red.png",description:"End-to-end creative strategy and art direction for premium perfume launch. From AI-generated mood boards and product visuals to cinematic video production for Southeast Asia market.",link:"https://portfolio.khoavo.myds.me/2025/08/11/giving-art-direction-to-a-brand-a-case-study/",year:"2025"},{id:5,title:"Behind the Prompt – AI Video Creation",category:"AI Video Creation",image:"https://portfolio.khoavo.myds.me/wp-content/uploads/2025/07/94afe9e65b1ceeee.jpg",description:"Creating Apple-style AI advert entirely from text prompt. Journey into AI video creation - ever wondered how a skincare commercial can be made entirely from a single structured prompt?",link:"https://portfolio.khoavo.myds.me/2025/07/31/%f0%9f%8c%b8%e2%9c%a8-behind-the-prompt-my-journey-into-ai-video-creation-%e2%9c%a8%f0%9f%8c%b8/",year:"2025"},{id:6,title:"AI Studio Photography",category:"AI-Generated Branding",image:"https://portfolio.khoavo.myds.me/wp-content/uploads/2025/07/img_0317.jpg",description:"Revolutionary approach to professional studio photography using AI. ComfyUI workflows with custom LoRA to generate studio-quality product and portrait images, reducing production costs by 70%.",link:"https://portfolio.khoavo.myds.me/2025/07/27/%F0%9F%A7%A0%F0%9F%93%B8-ai-studio-i-can-do-that-too/",year:"2025"},{id:7,title:"A Photo with Feeling is Hard",category:"AI Generated Art",image:"https://portfolio.khoavo.myds.me/wp-content/uploads/2025/07/img_0327-1.png",description:"When people see your work, they don't ask what prompt you used. They ask: Why does this FEEL different? Exploring the emotional depth in AI-generated imagery.",link:"https://portfolio.khoavo.myds.me/2025/07/27/%e2%9c%a8-a-beautiful-photo-is-easy-a-photo-with-feeling-is-hard/",year:"2025"},{id:8,title:"NAVIGATOR – ASIAMARINE Magazine",category:"Editorial Design",image:"https://portfolio.khoavo.myds.me/wp-content/uploads/2020/10/navigator-vol1_page_001.webp",description:"Complete editorial design for Vietnam's premier yacht market publication. Art direction, layout design, and visual storytelling for a luxury marine sector brand.",link:"https://portfolio.khoavo.myds.me/2020/10/20/navigator/",year:"2020"},{id:9,title:"Skyxx – Animated Poster Series",category:"Motion Graphics",image:"https://portfolio.khoavo.myds.me/wp-content/uploads/2019/04/aash-3-scaled.jpg",description:"Award-winning weekly animated poster series for entertainment events. Dynamic motion graphics with 3D elements under tight deadlines.",link:"https://portfolio.khoavo.myds.me/2019/02/17/skyxx-poster-animation/",year:"2019"},{id:10,title:"PetroVietnam – PCT Corporate Identity",category:"Brand Identity & 3D",image:"https://portfolio.khoavo.myds.me/wp-content/uploads/2017/04/cip_mockup2.png",description:"Comprehensive corporate identity for PetroVietnam Transportation. 3D vehicle visualization, logo design, stationery system, and POSM materials.",link:"https://portfolio.khoavo.myds.me/2017/04/10/petrovietnam-pct/",year:"2017"}],experience:[{role:"AI CREATIVE LEAD",company:"Phibious Vietnam",period:"2025 - Present",location:"Ho Chi Minh City, Vietnam",highlights:["Spearheaded the transformation of video production workflows via AI and automation, achieving a 60% measurable gain in output volume across all regional campaigns.","Acted as a creative multiplier, leading regional stakeholders and cross-functional teams (marketing, digital, and creative) to automate end-to-end content lifecycles from concept to delivery.","Designed and deployed Agentic AI systems and custom frameworks for rapid concept-to-video prototyping, serving global Fortune 500 brands including premium beauty, fashion, and consumer goods sectors.","Standardized end-to-end AI video production SOPs—ranging from AI-led scripting and storyboarding to automated localization—ensuring brand compliance across Southeast Asian markets.","Drove Regional Enablement by establishing SOPs and mentoring 20+ producers on prompt engineering, AI ethics, and workflow standardization.","Pioneered the integration of ComfyUI, FLUX, and Stable Diffusion into traditional creative workflows, reducing concept-to-execution time by 70%.","Collaborated with international creative directors to translate brand visions into AI-augmented visual narratives that maintain emotional authenticity while achieving production scale."]},{role:"ECOMMERCE DESIGN LEAD",company:"Procter & Gamble (P&G)",period:"2020 - 2025",location:"Ho Chi Minh City, Vietnam",highlights:["Led visual strategy for eCommerce platforms across Hair Care category (Head & Shoulders, Pantene, Clear), directly impacting millions of consumers in Southeast Asia through digital shelf optimization.","Managed end-to-end design projects from concept to execution, aligning with global marketing strategies while adapting for local market nuances across 6 SEA markets.","Spearheaded the digital transformation of brand assets for omnichannel retail experiences, bridging the gap between physical retail and D2C eCommerce touchpoints.","Collaborated with global brand teams to localize and scale omnichannel retail experiences for P&G's premium beauty portfolio.","Mentored junior designers and established design standards adopted across the regional team, creating a unified visual language for SEA markets.","Led the development of modular design systems enabling 3x faster content adaptation for new product launches across markets.","Pioneered data-informed creative approaches, using consumer insights to drive visual decisions that increased conversion rates by measurable percentages."]},{role:"PRODUCTION CREATIVE LEAD",company:"INN SaiGon",period:"Dec 2019 - Nov 2020",location:"Ho Chi Minh City, Vietnam",highlights:["Directed photography production for food, product, and event projects with 30+ client accounts across hospitality, F&B, and luxury retail sectors.","Established comprehensive brand guidelines and visual standards ensuring consistency across all client deliverables.","Optimized post-production workflows using advanced retouching techniques and batch processing, reducing turnaround time by 40%.","Built and managed a multi-disciplinary team of photographers, stylists, and retouchers for high-profile shoots.","Implemented quality control frameworks that reduced post-production errors by 40%, improving client satisfaction scores.","Developed innovative lighting and styling approaches that became signature INN aesthetics for premium hospitality campaigns."]},{role:"REGIONAL HEAD OF DESIGN",company:"ASIAMARINE",period:"2018 - 2019",location:"Ho Chi Minh City, Vietnam",highlights:["Led design team creating digital marketing assets, web graphics, and editorial content for Vietnam's premier luxury yacht brand.","Delegated projects to junior designers while maintaining quality control and brand consistency across all touchpoints.","Collaborated with international teams to localize content for Asian markets, adapting luxury messaging for cultural resonance.","Created multi-channel visual campaigns spanning print, digital, and event activations that elevated ASIAMARINE's regional presence.","Developed the visual identity system that defined ASIAMARINE's premium positioning in the for regional marine lifestyle sector."]},{role:"SENIOR GRAPHIC DESIGNER",company:"EMG - Element Management Group",period:"2017 - 2018",location:"Ho Chi Minh City, Vietnam",highlights:["Created impactful designs for print and digital campaigns for global luxury and lifestyle brands including hospitality, automotive, and premium retail.","Expert in photo sourcing, advanced image retouching, and brand identity development for both regional and international clients.","Delivered corporate identity packages for multinational clients seekingVietnam market entry.","Collaborated with international creative directors to adapt global campaigns for local market sensibilities.","Developed production-ready artwork for offset and digital print, ensuring color accuracy across media."]}]},mi={summary:"14-month intensive coding journey from zero to production. Built 10+ deployed applications including video streaming platforms, AI tools, and media players. Proficient in modern web frameworks, containerization, and cloud deployment. Self-taught developer with a creative background bringing unique problem-solving perspective.",journey:[{month:"MAY '24",title:"The Spark",description:"First deep dive into Next.js. Abandoned manual CSS for Tailwind efficiency."},{month:"JUL '24",title:"First Production App",description:"Built apix AI image generator with multi-provider support (Google Whisk, Meta AI, Grok)."},{month:"SEP '24",title:"Full-Stack Mastery",description:"Created KV-Tube YouTube platform with Go backend + Next.js. Dockerized for Synology NAS."},{month:"NOV '24",title:"The AI Pivot",description:"Fully embraced AI coding. Cursor and v0 became primary development engine."},{month:"DEC '24",title:"Rust Exploration",description:"Built Spotify clone with Rust Axum backend. Advanced system architecture."},{month:"MAR '25",title:"Netflix Clone",description:"Built kv-netflix Android TV + Web app with Kotlin Multiplatform."},{month:"PRESENT",title:"Vibe Ascended",description:"Building complex apps through high-level prompting and intuition."}],skills:{languages:["TypeScript","JavaScript","Go","Rust","Python","Kotlin","HTML/CSS","SQL"],frontend:["React","Next.js","Vite","Tailwind CSS","Shadcn","Framer Motion","Zustand","PWA","Jetpack Compose"],backend:["Node.js","Go (Gin)","Rust (Axum)","Express","REST APIs","WebSocket","Ktor"],ai:["LLM Integration","Cursor AI","v0","Replit AI","Ollama","Prompt Engineering","Multi-Provider AI APIs","ComfyUI"],devops:["Docker","Docker Compose","GitHub Actions","Forgejo CI/CD","Synology NAS","Nginx","SQLite","Git"],tools:["Git","VS Code","Figma","Postman","MongoDB","Prisma","ffmpeg","Android Studio"]},projects:[{name:"kv-netflix",description:"StreamFlow Netflix - Android TV + Web App built with Kotlin Multiplatform. Movie streaming with trailer preview, custom playlists, and offline download support.",tech:["Kotlin","Compose Multiplatform","Android TV","Web","PWA"],github:"https://git.khoavo.myds.me/vndangkhoa/kv-netflix"},{name:"kv-tube",description:"YouTube-like video streaming platform with HLS support, subscriptions, watch history, comments, and PWA. Deployed on Synology NAS via Docker.",tech:["Go (Gin)","Next.js","TypeScript","SQLite","Docker","HLS.js","PWA"],github:"https://git.khoavo.myds.me/vndangkhoa/kv-tube"},{name:"spotify-clone",description:"Full-featured Spotify-like music player with YouTube Music integration, real-time lyrics, custom playlists, and PWA support.",tech:["React (Vite)","Rust (Axum)","TailwindCSS","YouTube API","PWA"],github:"https://git.khoavo.myds.me/vndangkhoa/spotify-clone"},{name:"neko",description:"Go-based media server with streaming capabilities and user management. Deployed on NAS.",tech:["Go","SQLite","Docker","HLS"],github:"https://git.khoavo.myds.me/vndangkhoa/neko"},{name:"kv-download",description:"Universal video downloader API supporting multiple platforms with batch processing.",tech:["Go","yt-dlp","Docker"],github:"https://git.khoavo.myds.me/vndangkhoa/kv-download"},{name:"kv-tiktok-download",description:"Douyin/TikTok video download API with batch processing, watermarks removal, and metadata extraction.",tech:["Python","FastAPI","yt-dlp"],github:"https://git.khoavo.myds.me/vndangkhoa/kv-tiktok-download"},{name:"apix",description:"AI Image Generator powered by Google Whisk, Meta AI, and Grok. Multi-provider support with prompt library and history.",tech:["Next.js 14","TypeScript","Tailwind","Zustand","Docker"],github:"https://git.khoavo.myds.me/vndangkhoa/apix"},{name:"kv-cv",description:"This terminal-style interactive resume with retro desktop UI and draggable windows.",tech:["React","Vite","Tailwind","Framer Motion","TypeScript"],github:"https://git.khoavo.myds.me/vndangkhoa/kv-cv"}],experience:[{role:"Creative Technology",company:"Phibious Vietnam",period:"2025 - Present",highlights:["Bridge between creative and technical teams","Develop interactive prototypes and AI-powered tools","Automate creative workflows with custom scripts","Build internal tools for design team productivity","Deploy AI apps on enterprise infrastructure"]},{role:"Freelance Developer",company:"Self-Employed",period:"2024 - Present",highlights:["Built 10+ production web applications deployed on cloud and NAS","Integrated AI capabilities (image generation, video processing) into client solutions","Implemented CI/CD pipelines with GitHub/Forgejo Actions","Dockerized applications for easy deployment on various platforms"]}]},Du=({size:n=36,vnColor:r="#1A1A1A",dkColor:s="#00FF94",className:a=""})=>m.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",width:n,height:n,fill:"none",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round",className:a,children:[m.jsx("path",{stroke:r,d:"M 15 25 L 30 45 L 45 25"}),m.jsx("path",{stroke:r,d:"M 55 45 L 55 25 L 85 45 L 85 25"}),m.jsx("path",{stroke:s,d:"M 15 55 L 30 55 A 10 10 0 0 1 30 75 L 15 75 Z"}),m.jsx("path",{stroke:s,d:"M 55 55 L 55 75 M 85 55 L 55 65 L 85 75"})]}),yS=({onSelect:n,darkMode:r,toggleTheme:s})=>{const[a,u]=z.useState(!1);return z.useEffect(()=>{const f=()=>u(window.innerWidth<768);return f(),window.addEventListener("resize",f),()=>window.removeEventListener("resize",f)},[]),m.jsxs(fe.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 overflow-hidden bg-[var(--bg-primary)] text-[var(--text-primary)]",children:[m.jsx("button",{onClick:s,className:"absolute top-6 right-6 md:top-8 md:right-8 z-[100] p-2.5 md:p-3 rounded-full border border-[var(--border)] opacity-40 hover:opacity-100 transition-all hover:scale-110",title:r?"Light mode":"Dark mode",children:r?m.jsx(cS,{size:16}):m.jsx(aS,{size:16})}),m.jsxs("div",{className:"absolute inset-0 pointer-events-none",children:[m.jsx("div",{className:"absolute top-[20%] left-0 right-0 h-[1px] bg-[var(--grid-color)]"}),m.jsx("div",{className:"absolute top-[80%] left-0 right-0 h-[1px] bg-[var(--grid-color)]"}),m.jsx("div",{className:"absolute left-[25%] md:left-[25%] top-0 bottom-0 w-[1px] bg-[var(--grid-color)]"}),!a&&m.jsx("div",{className:"absolute left-[50%] top-0 bottom-0 w-[1px] bg-[var(--grid-color)]"}),m.jsx("div",{className:"absolute left-[75%] md:left-[75%] top-0 bottom-0 w-[1px] bg-[var(--grid-color)]"}),[20,80].map(f=>(a?[25,75]:[25,50,75]).map(d=>m.jsx("div",{className:"absolute w-1 h-1 bg-[var(--text-muted)] opacity-20 rounded-full -translate-x-1/2 -translate-y-1/2",style:{left:`${d}%`,top:`${f}%`}},`${d}-${f}`)))]}),m.jsx("div",{className:"relative z-10 w-full h-full flex flex-col items-center justify-center px-6",children:m.jsxs(fe.div,{initial:{y:20,opacity:0},animate:{y:0,opacity:1},transition:{duration:1.2,ease:[.16,1,.3,1]},className:"max-w-4xl w-full text-center",children:[m.jsx(fe.div,{className:"mb-8 md:mb-12 flex justify-center",whileHover:{scale:1.02},transition:{type:"spring",stiffness:400,damping:10},children:m.jsx(Du,{size:a?100:140,vnColor:r?"#FFFFFF":"#1A1A1A",dkColor:"#00FF94",className:"drop-shadow-sm"})}),m.jsx(fe.p,{initial:{opacity:0},animate:{opacity:.6},transition:{duration:1,delay:.5},className:"text-[10px] md:text-sm font-creative-sans tracking-[0.3em] md:tracking-[0.4em] uppercase mb-12 md:mb-16 px-4",children:"where design meets intelligence"}),m.jsxs("div",{className:"flex flex-col md:flex-row items-center justify-center gap-8 md:gap-24",children:[m.jsxs(fe.button,{onClick:()=>n("creative"),initial:{opacity:0,x:-20},animate:{opacity:1,x:0},transition:{delay:.8},className:"group relative",children:[m.jsx("span",{className:"text-xs md:text-sm font-display font-bold tracking-[0.2em] uppercase transition-colors group-hover:text-[var(--text-muted)]",children:"Creative Portfolio"}),m.jsx(fe.div,{className:"absolute -bottom-2 left-0 right-0 h-[2px] bg-[var(--text-primary)] origin-left",initial:{scaleX:0},whileHover:{scaleX:1},transition:{duration:.4}})]}),m.jsxs(fe.button,{onClick:()=>n("it"),initial:{opacity:0,x:20},animate:{opacity:1,x:0},transition:{delay:1},className:"group relative",children:[m.jsx("span",{className:"text-xs md:text-sm font-display font-bold tracking-[0.2em] uppercase transition-colors group-hover:text-[var(--accent-it)]",children:"IT Portfolio"}),m.jsx(fe.div,{className:"absolute -bottom-2 left-0 right-0 h-[2px] bg-[var(--accent-it)] origin-left",initial:{scaleX:0},whileHover:{scaleX:1},transition:{duration:.4}})]})]})]})}),m.jsxs("div",{className:"absolute bottom-6 md:bottom-8 left-6 right-6 md:left-8 md:right-8 flex justify-between items-end",children:[m.jsxs("div",{className:"text-[8px] md:text-[10px] font-creative-sans tracking-widest opacity-30 uppercase text-left leading-relaxed",children:["Art Direction",m.jsx("br",{}),"AI Engineering",m.jsx("br",{}),"Full Stack Dev"]}),m.jsxs("div",{className:"text-[8px] md:text-[10px] font-creative-sans tracking-widest opacity-30 uppercase text-right leading-relaxed",children:["Based in HCMC",m.jsx("br",{}),"Vietnam",m.jsx("br",{}),"© 2026"]})]})]})},vS=({onComplete:n})=>{const r=z.useRef(null);return z.useEffect(()=>{const s=window.innerWidth,a=window.innerHeight,u=Math.floor(s/8)+5,f=Math.floor(a/10)+5;let d=0;const h=()=>{d+=.08;let y="";for(let x=0;x1.5?y+="V":C>.8?y+="N":C>.2?y+="D":C>-.2?y+="K":C>-.8?y+="→":C>-1.2?y+="←":C>-1.8?y+="↑":y+="↓"}y+=` +`}return y},g=setInterval(()=>{r.current&&(r.current.textContent=h())},50),v=setTimeout(()=>{clearInterval(g),n()},5e3);return()=>{clearInterval(g),clearTimeout(v)}},[n]),m.jsxs(fe.div,{exit:{opacity:0,scale:1.05,filter:"blur(5px)",transition:{duration:.8,ease:[.76,0,.24,1]}},className:"fixed inset-0 z-[200] bg-[var(--bg-primary)] flex items-center justify-center overflow-hidden",children:[m.jsx("pre",{ref:r,className:"text-[var(--text-primary)] font-creative-sans font-bold italic text-[10px] md:text-xs leading-[10px] md:leading-[12px] opacity-30 select-none whitespace-pre transform scale-110",style:{letterSpacing:"0.15em"}}),m.jsxs("button",{onClick:n,className:"absolute bottom-8 right-8 z-[210] flex items-center gap-2 text-[10px] md:text-xs font-bold tracking-[0.2em] uppercase text-[var(--text-primary)] opacity-50 hover:opacity-100 transition-opacity bg-[var(--bg-secondary)] px-4 py-2 backdrop-blur-sm rounded",children:["Click to Skip ",m.jsx("span",{className:"opacity-50",children:"→"})]})]})},xS=({onComplete:n})=>{const[r,s]=z.useState([]),a=["INIT SYSTEM KHOA.VO...","MOUNTING VIRTUAL DOM [OK]","LOADING REACT ROOT [OK]","ESTABLISHING AI SUBSYSTEMS...","AI SUBSYSTEMS [ONLINE]","BYPASSING SECURITY PROTOCOLS...","ACCESS GRANTED."];return z.useEffect(()=>{let u=0;const f=setInterval(()=>{u[...d,a[u]]),u++):(clearInterval(f),setTimeout(n,500))},180);return()=>clearInterval(f)},[n]),m.jsx(fe.div,{exit:{opacity:0,scale:1.05,filter:"blur(10px)",transition:{duration:.6,ease:"easeIn"}},className:"fixed inset-0 z-[200] bg-[#0a0a0a] text-[#00FF94] font-mono p-6 md:p-12 flex flex-col justify-end pb-24",children:m.jsxs("div",{className:"space-y-2 opacity-80 text-sm md:text-base",children:[r.map((u,f)=>m.jsxs("div",{children:["> ",u]},f)),r.length ▋"})]})})},wS=({onBack:n,onSwitch:r,darkMode:s,toggleTheme:a})=>{const[u,f]=z.useState(!0),[d,h]=z.useState(!1),[g,v]=z.useState(null),[y,x]=z.useState([]),[S,C]=z.useState("grid"),D="bg-[var(--bg-primary)]",L="text-[var(--text-primary)]",N="text-[var(--text-secondary)]",b="border-[var(--border)]";z.useEffect(()=>{const P=()=>{h(window.scrollY>400)};return window.addEventListener("scroll",P),()=>window.removeEventListener("scroll",P)},[]),z.useEffect(()=>{if(!g)return;const P=Ut.projects,R=P.findIndex(ee=>ee.id===g.id),W=ee=>{if(ee.key==="Escape"&&v(null),ee.key==="ArrowRight"||ee.key==="ArrowDown"){const se=(R+1)%P.length;v(P[se])}if(ee.key==="ArrowLeft"||ee.key==="ArrowUp"){const se=(R-1+P.length)%P.length;v(P[se])}};return window.addEventListener("keydown",W),()=>window.removeEventListener("keydown",W)},[g]);const F=()=>{window.scrollTo({top:0,behavior:"smooth"})};return z.useEffect(()=>{if(u)return;const P=setTimeout(()=>{x(Ut.projects.map(R=>R.id))},500);return()=>clearTimeout(P)},[u]),m.jsxs(m.Fragment,{children:[m.jsx(Cn,{children:u&&m.jsx(vS,{onComplete:()=>f(!1)})}),m.jsxs(fe.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:`min-h-screen ${D} ${L}`,children:[m.jsx("nav",{className:`fixed top-0 left-0 right-0 z-50 ${D}/90 backdrop-blur-sm border-b ${b}`,children:m.jsxs("div",{className:"max-w-7xl mx-auto px-4 md:px-6 h-16 flex items-center justify-between",children:[m.jsxs("button",{onClick:n,className:`p-2 flex items-center gap-1.5 text-sm md:text-base ${N} hover:${L} transition-colors`,children:[m.jsx(eu,{size:18})," ",m.jsx("span",{className:"hidden md:inline",children:"Back"})]}),m.jsx("div",{className:"flex items-center justify-center",children:m.jsx(Du,{size:36,vnColor:s?"#FFFFFF":"#1A1A1A",dkColor:"#00FF94"})}),m.jsxs("div",{className:"flex items-center gap-2 md:gap-3",children:[m.jsxs("button",{onClick:()=>window.print(),className:"px-4 py-2 text-[10px] md:text-xs font-bold uppercase tracking-widest bg-[#00FF94] text-black border border-[#00FF94] rounded-full hover:opacity-80 transition-opacity flex items-center gap-2 font-medium",children:[m.jsx(rS,{size:14}),m.jsx("span",{className:"hidden md:inline",children:"Download CV"}),m.jsx("span",{className:"md:hidden",children:"CV"})]}),m.jsxs("button",{onClick:r,className:`px-4 py-2 text-[10px] md:text-xs rounded-full transition-colors flex items-center gap-2 ${s?"bg-white text-black hover:bg-white/80":"bg-[#1A1A1A] text-white hover:bg-black"}`,children:[m.jsx(Km,{size:14})," ",m.jsx("span",{className:"hidden md:inline",children:"IT View"}),m.jsx("span",{className:"md:hidden",children:"IT"})]})]})]})}),m.jsx(Cn,{children:d&&m.jsx(fe.button,{initial:{opacity:0,scale:.8,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.8,y:20},onClick:F,className:`fixed bottom-8 right-6 z-50 p-4 rounded-full shadow-2xl md:hidden ${s?"bg-[#00FF94] text-black":"bg-[#1A1A1A] text-white"}`,children:m.jsx($m,{size:20,className:"-rotate-90"})})}),m.jsxs("main",{className:"pt-20",children:[m.jsx("section",{className:"max-w-5xl mx-auto px-6 py-24 md:py-32",children:m.jsxs(fe.div,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},children:[m.jsx("p",{className:`text-xs tracking-[0.3em] uppercase mb-4 ${N}`,children:Ut.title}),m.jsx("h1",{className:"text-5xl md:text-7xl font-serif font-bold leading-tight mb-4",children:Ut.tagline}),m.jsx("p",{className:`text-2xl md:text-3xl font-serif mb-8 ${N}`,children:Un.name}),m.jsx("p",{className:`text-lg max-w-2xl leading-relaxed ${N}`,children:Ut.summary}),m.jsxs("div",{className:`flex flex-wrap gap-4 mt-8 text-sm ${N}`,children:[m.jsxs("span",{className:"flex items-center gap-1",children:[m.jsx(Jh,{size:14})," ",Un.location]}),m.jsxs("span",{className:"flex items-center gap-1",children:[m.jsx(ep,{size:14})," ",Un.email]}),m.jsxs("span",{className:"flex items-center gap-1",children:[m.jsx(lS,{size:14})," ",Un.phone]})]})]})}),m.jsxs("section",{className:"max-w-7xl mx-auto px-6 py-16",children:[m.jsxs(fe.div,{initial:{opacity:0},whileInView:{opacity:1},viewport:{once:!0},className:"flex items-center justify-between mb-8",children:[m.jsxs("div",{className:"flex items-center gap-4",children:[m.jsx(sS,{size:20,className:s?"text-[#00FF94]":""}),m.jsx("h2",{className:"text-2xl font-display font-bold",children:"Selected Works"})]}),m.jsx("div",{className:`flex items-center gap-1 rounded-full p-1 ${s?"bg-white/10":"bg-[#1A1A1A]/10"}`,children:["grid","list","minimal"].map(P=>m.jsx("button",{onClick:()=>C(P),className:`px-3 py-1.5 text-[10px] font-medium uppercase tracking-wider rounded-full transition-colors ${S===P?s?"bg-[#00FF94] text-black":"bg-[#1A1A1A] text-white":N}`,children:P},P))})]}),S==="grid"&&m.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:Ut.projects.map((P,R)=>m.jsxs(fe.div,{initial:{opacity:0,y:30},animate:{opacity:y.includes(P.id)?1:0,y:y.includes(P.id)?0:30},transition:{duration:.6,delay:R*.1},className:"group cursor-pointer",onClick:()=>v(P),children:[m.jsxs("div",{className:"relative aspect-[4/3] overflow-hidden bg-slate-200 mb-4 grayscale-blur",children:[m.jsx("img",{src:P.image,alt:P.title,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105"}),m.jsx("div",{className:"absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-300"}),m.jsx("span",{className:"absolute top-4 right-4 bg-white/90 px-3 py-1 text-xs font-medium text-black",children:P.year})]}),m.jsx("p",{className:`text-xs tracking-widest uppercase mb-1 ${N}`,children:P.category}),m.jsx("h3",{className:`text-lg font-serif font-semibold transition-colors ${s?"group-hover:text-[#00FF94]":"group-hover:text-[#666]"}`,children:P.title})]},P.id))}),S==="list"&&m.jsx("div",{className:"space-y-4",children:Ut.projects.map((P,R)=>m.jsxs(fe.div,{initial:{opacity:0,x:-20},animate:{opacity:y.includes(P.id)?1:0,x:y.includes(P.id)?0:-20},transition:{duration:.4,delay:R*.05},className:`flex gap-6 p-4 border cursor-pointer group transition-colors ${s?"bg-white/5 border-white/10 hover:border-white/30":"bg-white border-[#1A1A1A]/10 hover:border-[#1A1A1A]/30"}`,onClick:()=>v(P),children:[m.jsx("div",{className:"w-32 h-24 shrink-0 overflow-hidden bg-slate-200 grayscale-blur",children:m.jsx("img",{src:P.image,alt:P.title,className:"w-full h-full object-cover"})}),m.jsxs("div",{className:"flex-1",children:[m.jsx("p",{className:`text-xs tracking-widest uppercase mb-1 ${N}`,children:P.category}),m.jsx("h3",{className:`text-lg font-serif font-semibold transition-colors ${s?"group-hover:text-[#00FF94]":"group-hover:text-[#666]"}`,children:P.title}),m.jsx("p",{className:`text-sm mt-1 line-clamp-2 ${N}`,children:P.description})]}),m.jsx("span",{className:`text-xs self-start ${N}`,children:P.year})]},P.id))}),S==="minimal"&&m.jsx("div",{className:"space-y-0",children:Ut.projects.map((P,R)=>m.jsxs(fe.div,{initial:{opacity:0},animate:{opacity:y.includes(P.id)?1:0},transition:{duration:.3,delay:R*.03},className:`flex items-center justify-between py-3 border-b cursor-pointer group transition-colors ${b} ${s?"hover:bg-white/5":"hover:bg-[#F5F5F5]"}`,onClick:()=>v(P),children:[m.jsxs("div",{className:"flex items-center gap-4",children:[m.jsx("span",{className:`text-xs w-8 ${N}`,children:String(R+1).padStart(2,"0")}),m.jsx("h3",{className:`text-base font-medium transition-colors ${s?"group-hover:text-[#00FF94]":"group-hover:text-[#666]"}`,children:P.title})]}),m.jsxs("div",{className:"flex items-center gap-4",children:[m.jsx("span",{className:`text-xs ${N}`,children:P.category}),m.jsx("span",{className:`text-xs ${N}`,children:P.year})]})]},P.id))})]}),m.jsxs("section",{className:`max-w-7xl mx-auto px-6 py-16 ${s?"bg-white/5":"bg-[#F5F5F5]"}`,children:[m.jsxs(fe.div,{initial:{opacity:0},whileInView:{opacity:1},viewport:{once:!0},className:"flex items-center gap-4 mb-12",children:[m.jsx(uS,{size:20}),m.jsx("h2",{className:"text-2xl font-serif font-bold",children:"Expertise"})]}),m.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8",children:Ut.skills.map((P,R)=>m.jsxs(fe.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:R*.1},children:[m.jsx("h3",{className:`text-sm font-bold mb-4 pb-2 border-b ${L} ${b}`,children:P.category}),m.jsx("div",{className:"flex flex-wrap gap-2",children:P.items.map(W=>m.jsx("span",{className:`text-xs px-3 py-1 border transition-colors ${s?"bg-white/5 border-white/10 text-white/70":"bg-white border-[#1A1A1A]/10 text-[#666]"}`,children:W},W))})]},P.category))})]}),m.jsxs("section",{className:"max-w-5xl mx-auto px-6 py-16",children:[m.jsxs(fe.div,{initial:{opacity:0},whileInView:{opacity:1},viewport:{once:!0},className:"flex items-center gap-4 mb-12",children:[m.jsx(Hm,{size:20}),m.jsx("h2",{className:"text-2xl font-serif font-bold",children:"Professional Journey"})]}),m.jsxs("div",{className:"relative",children:[m.jsx("div",{className:`absolute left-0 top-0 bottom-0 w-px ${s?"bg-white/10":"bg-[#1A1A1A]/10"}`}),m.jsx("div",{className:"space-y-10",children:Ut.experience.map((P,R)=>m.jsxs(fe.div,{initial:{opacity:0,x:-30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{delay:R*.1},className:"relative pl-8",children:[m.jsx("div",{className:`absolute left-[-3px] top-2 w-2 h-2 rounded-full ${s?"bg-[#00FF94]":"bg-[#1A1A1A]"}`}),m.jsxs("div",{className:"flex flex-col md:flex-row md:items-start gap-2 md:gap-6 mb-2",children:[m.jsx("div",{className:`text-sm font-medium shrink-0 ${N}`,children:P.period}),m.jsxs("div",{children:[m.jsx("h3",{className:`text-xl font-bold ${L}`,children:P.role}),m.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[m.jsx("span",{className:`font-medium ${N}`,children:P.company}),P.location&&m.jsxs(m.Fragment,{children:[m.jsx("span",{className:"text-[#999]",children:"•"}),m.jsx("span",{className:`text-sm ${N}`,children:P.location})]})]})]})]}),m.jsx("ul",{className:"space-y-2 mt-3",children:P.highlights.map((W,ee)=>m.jsxs("li",{className:`leading-relaxed flex items-start gap-2 ${N}`,children:[m.jsx("span",{className:`w-1.5 h-1.5 rounded-full mt-2 shrink-0 ${s?"bg-white/20":"bg-[#1A1A1A]/30"}`}),m.jsx("span",{children:W})]},ee))})]},R))})]})]}),m.jsxs("footer",{className:`max-w-7xl mx-auto px-6 py-16 border-t ${b}`,children:[m.jsxs("div",{className:"flex flex-col md:flex-row justify-between items-center gap-8",children:[m.jsxs("div",{children:[m.jsx("h3",{className:"text-2xl font-serif font-bold mb-2",children:"Let's Create Together"}),m.jsx("p",{className:N,children:"Open for creative collaborations and opportunities"})]}),m.jsxs("div",{className:"flex gap-4",children:[m.jsx("a",{href:Un.linkedin,target:"_blank",rel:"noreferrer",className:`p-3 border transition-colors ${s?"border-white/20 hover:bg-white hover:text-black":"border-[#1A1A1A]/20 hover:bg-[#1A1A1A] hover:text-white"}`,children:m.jsx(oS,{size:20})}),m.jsx("a",{href:`mailto:${Un.email}`,className:`p-3 border transition-colors ${s?"border-white/20 hover:bg-white hover:text-black":"border-[#1A1A1A]/20 hover:bg-[#1A1A1A] hover:text-white"}`,children:m.jsx(ep,{size:20})}),m.jsx("a",{href:Un.portfolio,target:"_blank",rel:"noreferrer",className:`p-3 border transition-colors ${s?"border-white/20 hover:bg-white hover:text-black":"border-[#1A1A1A]/20 hover:bg-[#1A1A1A] hover:text-white"}`,children:m.jsx(Jh,{size:20})})]})]}),m.jsxs("p",{className:`text-center text-xs mt-12 ${N}`,children:["© ",new Date().getFullYear()," Vo Nguyen Dang Khoa. All rights reserved."]})]})]}),m.jsx(Cn,{children:g&&m.jsx(fe.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/80 backdrop-blur-sm p-8",onClick:()=>v(null),children:m.jsxs(fe.div,{initial:{scale:.9,y:20},animate:{scale:1,y:0},exit:{scale:.9,y:20},className:`max-w-4xl w-full rounded-lg overflow-hidden ${s?"bg-[#111] border border-white/10 text-white":"bg-[#FAFAFA] text-[#1A1A1A]"}`,onClick:P=>P.stopPropagation(),children:[m.jsx("img",{src:g.image,alt:g.title,className:"w-full h-64 md:h-96 object-cover"}),m.jsxs("div",{className:"p-8",children:[m.jsx("p",{className:`text-xs tracking-widest uppercase mb-2 ${N}`,children:g.category}),m.jsx("h3",{className:"text-2xl font-serif font-bold mb-4",children:g.title}),m.jsx("p",{className:`mb-6 ${N}`,children:g.description}),m.jsxs("a",{href:g.link,target:"_blank",rel:"noreferrer",className:`inline-flex items-center gap-2 text-sm font-medium border-b pb-1 hover:opacity-60 ${s?"border-white text-white":"border-[#1A1A1A] text-[#1A1A1A]"}`,children:["View Project ",m.jsx(Gm,{size:14})]})]})]})})})]})]})},Gs=({children:n,title:r,onClose:s,initialPosition:a={x:20,y:20}})=>{const[u,f]=z.useState(!1);return z.useEffect(()=>{const d=()=>f(window.innerWidth<768);return d(),window.addEventListener("resize",d),()=>window.removeEventListener("resize",d)},[]),m.jsxs(fe.div,{drag:!u,dragMomentum:!1,dragElastic:.1,initial:{x:u?0:a.x,y:u?0:a.y,opacity:0,scale:.9},animate:{x:u?0:a.x,y:u?0:a.y,opacity:1,scale:1},exit:{opacity:0,scale:.9},className:`absolute ${u?"fixed inset-4 z-50":"rounded-lg"} bg-[#0a0a0a] border border-[#00FF94]/30 overflow-hidden shadow-2xl shadow-[#00FF94]/10 flex flex-col`,style:{width:u?"calc(100% - 2rem)":"auto",minWidth:u?"none":320,maxWidth:u?"none":500,height:u?"calc(100% - 8rem)":"auto",zIndex:100},children:[m.jsxs("div",{className:`flex items-center justify-between px-3 py-2 bg-[#111] border-b border-[#00FF94]/20 ${u?"":"cursor-grab active:cursor-grabbing"}`,children:[m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx("div",{className:"w-2.5 h-2.5 rounded-full bg-red-500/50"}),m.jsx("div",{className:"w-2.5 h-2.5 rounded-full bg-yellow-500/50"}),m.jsx("div",{className:"w-2.5 h-2.5 rounded-full bg-green-500/50"}),m.jsx("span",{className:"ml-2 text-[10px] md:text-xs text-[#00FF94] font-mono uppercase tracking-widest",children:r})]}),m.jsx("button",{onClick:s,className:"p-1 text-[#00FF94]/50 hover:text-red-400 transition-colors",children:m.jsx(fS,{size:16})})]}),m.jsx("div",{className:"p-4 md:p-6 overflow-y-auto flex-1 custom-scrollbar",children:n})]})},SS=({onBack:n,onSwitch:r})=>{const[s,a]=z.useState(!0),[u,f]=z.useState(["about"]),[d,h]=z.useState(""),[g,v]=z.useState(!1),[y,x]=z.useState(null),[S,C]=z.useState(!1),D=`> whoami + +Vo Nguyen Dang Khoa +AI-Powered Developer +14-month coding journey from zero to production`,L=F=>{u.includes(F)?f(u.filter(P=>P!==F)):f([...u,F])},N=F=>{f(u.filter(P=>P!==F))};z.useEffect(()=>{const F=()=>{v(window.scrollY>400)};return window.addEventListener("scroll",F),()=>window.removeEventListener("scroll",F)},[]),z.useEffect(()=>{if(s)return;let F;const P=()=>{C(!1),clearTimeout(F),F=setTimeout(()=>C(!0),1e4)};return window.addEventListener("mousemove",P),window.addEventListener("keydown",P),window.addEventListener("click",P),window.addEventListener("touchstart",P),window.addEventListener("scroll",P),P(),()=>{clearTimeout(F),window.removeEventListener("mousemove",P),window.removeEventListener("keydown",P),window.removeEventListener("click",P),window.removeEventListener("touchstart",P),window.removeEventListener("scroll",P)}},[s]);const b=()=>{window.scrollTo({top:0,behavior:"smooth"})};return z.useEffect(()=>{if(s)return;let F=0;const P=setInterval(()=>{FclearInterval(P)},[s]),m.jsxs(m.Fragment,{children:[m.jsx(Cn,{children:s&&m.jsx(xS,{onComplete:()=>a(!1)})}),m.jsxs(fe.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"min-h-screen bg-[#0a0a0a] text-[#00FF94] font-mono crt-screen crt-scanline",children:[m.jsx(Cn,{children:S&&m.jsx(fe.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[150] bg-[#0a0a0a] flex items-center justify-center cursor-none backdrop-blur-sm",onClick:()=>C(!1),children:m.jsxs("div",{className:"text-2xl md:text-4xl text-[#00FF94]/30 font-mono text-center p-6",children:[m.jsx("div",{className:"mb-6 animate-float",children:m.jsx("span",{className:"animate-blink text-[#00FF94]",children:"KHOA.VO"})}),m.jsx("div",{className:"text-lg md:text-xl mb-4 font-bold text-[#00FF94]/50",children:"KHOA.VO PORTFOLIO"}),m.jsx("div",{className:"text-sm md:text-base mb-2",children:"[ IT SIDE ] - AI-powered developer"}),m.jsx("div",{className:"text-sm md:text-base mb-6",children:"[ CREATIVE ] - studio lead"}),m.jsxs("div",{className:"text-[10px] md:text-xs mb-8 text-[#00D9FF] opacity-40 uppercase tracking-widest leading-loose",children:["vndangkhoa | khoavo.myds.me | phibious ",m.jsx("br",{className:"md:hidden"})," Ho Chi Minh City, Vietnam"]}),m.jsx("div",{className:"text-sm md:text-base",children:m.jsx("span",{className:"animate-pulse",children:"IDLE... INTERACT TO RESUME"})})]})})}),m.jsx(Cn,{children:g&&m.jsx(fe.button,{initial:{opacity:0,scale:.8,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.8,y:20},onClick:b,className:"fixed bottom-8 right-6 z-50 p-4 bg-[#00FF94] text-[#0a0a0a] rounded-full shadow-[0_0_20px_rgba(0,255,148,0.3)] md:hidden",children:m.jsx($m,{size:20,className:"-rotate-90"})})}),m.jsx("nav",{className:"fixed top-0 left-0 right-0 z-[110] bg-[#0a0a0a]/90 backdrop-blur-md border-b border-[#00FF94]/20",children:m.jsxs("div",{className:"max-w-7xl mx-auto px-4 h-14 flex items-center justify-between",children:[m.jsxs("button",{onClick:n,className:"p-2 -ml-2 flex items-center gap-2 text-xs text-[#00FF94] hover:opacity-70 transition-opacity uppercase font-mono font-bold",children:[m.jsx(eu,{size:16})," Exit"]}),m.jsxs("div",{className:"flex items-center gap-6",children:[m.jsxs("div",{className:"hidden md:flex items-center gap-2 font-mono text-[#00FF94]/60 text-[10px] tracking-wider",children:[m.jsx("span",{className:"opacity-40",children:"SYSTEM://"}),m.jsx("span",{children:"khoa@portfolio:~$"}),m.jsx("span",{className:"w-2 h-4 bg-[#00FF94] animate-blink"})]}),m.jsx("div",{className:"flex items-center justify-center opacity-90 drop-shadow-[0_0_8px_rgba(0,255,148,0.3)]",children:m.jsx(Du,{size:32,vnColor:"#FFFFFF",dkColor:"#00FF94"})})]}),m.jsxs("div",{className:"flex items-center gap-3",children:[m.jsx("button",{onClick:()=>window.print(),className:"px-3 py-1.5 text-[10px] md:text-xs text-[#00FF94] border border-[#00FF94]/30 rounded-sm hover:bg-[#00FF94] hover:text-[#0a0a0a] transition-all font-bold uppercase font-mono",children:"CV"}),m.jsx("button",{onClick:r,className:"px-3 py-1.5 text-[10px] md:text-xs text-[#0a0a0a] bg-[#00FF94] border border-[#00FF94] rounded-sm hover:bg-transparent hover:text-[#00FF94] transition-all uppercase font-bold font-mono",children:"Design"})]})]})}),m.jsxs("main",{className:"relative min-h-screen overflow-hidden pt-14",children:[m.jsx("div",{className:"fixed bottom-0 left-0 right-0 h-16 md:h-auto md:left-0 md:top-14 md:bottom-0 md:w-20 bg-[#0a0a0a]/90 md:bg-[#0a0a0a]/80 backdrop-blur-md border-t md:border-t-0 md:border-r border-[#00FF94]/20 flex md:flex-col items-center justify-around md:justify-start py-2 md:py-8 gap-2 md:gap-8 z-[100]",children:[{id:"about",icon:dS,label:"About"},{id:"skills",icon:nS,label:"Skills"},{id:"projects",icon:Zh,label:"Projects"},{id:"experience",icon:Hm,label:"Experience"}].map(F=>m.jsxs("button",{onClick:()=>L(F.id),className:`flex flex-col items-center gap-1 p-2 rounded transition-all group ${u.includes(F.id)?"bg-[#00FF94]/20":"hover:bg-[#00FF94]/10"}`,children:[m.jsx(F.icon,{size:22,className:`${u.includes(F.id)?"text-[#00FF94]":"text-[#00FF94]/60"} group-hover:text-[#00FF94] transition-colors`}),m.jsx("span",{className:"text-[8px] text-[#00FF94]/40 group-hover:text-[#00FF94] uppercase tracking-tighter",children:F.label})]},F.id))}),m.jsxs("div",{className:"md:ml-20 p-4 md:p-8 pb-20 md:pb-8 relative min-h-[calc(100vh-3.5rem)]",children:[u.includes("about")&&m.jsx(Gs,{title:"about.txt",onClose:()=>N("about"),initialPosition:{x:120,y:40},children:m.jsxs(fe.div,{initial:{opacity:0},animate:{opacity:1},children:[m.jsx("div",{className:"text-xs text-[#00FF94]/50 mb-4",children:"SYSTEM STARTED..."}),m.jsxs("pre",{className:"text-sm leading-relaxed whitespace-pre-wrap",children:[d,m.jsx("span",{className:"animate-pulse",children:"▋"})]}),m.jsxs("div",{className:"mt-8 pt-8 border-t border-[#00FF94]/20",children:[m.jsx("div",{className:"text-xs text-[#00FF94]/50 mb-2",children:"> echo $JOURNEY"}),m.jsx("div",{className:"space-y-4",children:mi.journey.map((F,P)=>m.jsxs("div",{className:"flex gap-4",children:[m.jsx("span",{className:"text-[#00D9FF] text-xs shrink-0",children:F.month}),m.jsxs("div",{children:[m.jsx("span",{className:"text-white",children:F.title}),m.jsxs("span",{className:"text-[#00FF94]/50",children:[" — ",F.description]})]})]},P))})]}),m.jsxs("div",{className:"mt-8 pt-8 border-t border-[#00FF94]/20",children:[m.jsx("div",{className:"text-xs text-[#00FF94]/50 mb-4",children:"> cat summary.txt"}),m.jsx("p",{className:"text-sm text-slate-300 leading-relaxed max-w-xl",children:mi.summary})]})]})}),u.includes("skills")&&m.jsx(Gs,{title:"skills.json",onClose:()=>N("skills"),initialPosition:{x:160,y:100},children:m.jsx(fe.div,{initial:{opacity:0},animate:{opacity:1},children:Object.entries(mi.skills).map(([F,P])=>m.jsxs("div",{className:"mb-4",children:[m.jsx("div",{className:"text-xs text-[#00D9FF] mb-2 uppercase tracking-wider",children:F}),m.jsx("div",{className:"flex flex-wrap gap-2",children:P.map((R,W)=>m.jsx("span",{className:"text-sm border border-[#00FF94]/30 px-3 py-1 bg-[#00FF94]/5",children:R},W))})]},F))})}),u.includes("projects")&&m.jsx(Gs,{title:"projects/",onClose:()=>N("projects"),initialPosition:{x:200,y:160},children:m.jsx(fe.div,{initial:{opacity:0},animate:{opacity:1},children:m.jsx("div",{className:"grid grid-cols-1 gap-3",children:mi.projects.map((F,P)=>m.jsxs("div",{onClick:()=>x(F),className:"border border-[#00FF94]/20 p-3 hover:border-[#00FF94]/40 hover:bg-[#00FF94]/5 cursor-pointer transition-all group",children:[m.jsxs("div",{className:"flex items-center justify-between mb-1",children:[m.jsx("span",{className:"text-white font-bold group-hover:text-[#00FF94] transition-colors",children:F.name}),m.jsx(Zh,{size:14,className:"text-[#00FF94]/40"})]}),m.jsx("p",{className:"text-xs text-slate-400 mb-2",children:F.description}),m.jsx("div",{className:"flex flex-wrap gap-1",children:F.tech.slice(0,6).map((R,W)=>m.jsx("span",{className:"text-[10px] bg-[#00FF94]/10 px-2 py-0.5 text-[#00FF94]",children:R},W))})]},P))})})}),u.includes("experience")&&m.jsx(Gs,{title:"experience.log",onClose:()=>N("experience"),initialPosition:{x:240,y:220},children:m.jsx(fe.div,{initial:{opacity:0},animate:{opacity:1},children:m.jsx("div",{className:"space-y-4",children:mi.experience.map((F,P)=>m.jsxs("div",{className:"border-l-2 border-[#00FF94] pl-3",children:[m.jsxs("div",{className:"flex justify-between items-start mb-1",children:[m.jsx("span",{className:"text-white font-bold",children:F.role}),m.jsx("span",{className:"text-xs text-[#00FF94]/50",children:F.period})]}),m.jsx("div",{className:"text-xs text-[#00D9FF] mb-1",children:F.company}),m.jsx("ul",{className:"text-xs text-slate-400 space-y-0.5",children:F.highlights.map((R,W)=>m.jsxs("li",{children:["• ",R]},W))})]},P))})})}),u.length===0&&m.jsx("div",{className:"flex items-center justify-center h-full opacity-30",children:m.jsxs("div",{className:"text-center",children:[m.jsx(Km,{size:48,className:"mx-auto mb-4 text-[#00FF94]/30"}),m.jsx("p",{className:"text-sm text-[#00FF94]/50",children:"Click icons to open windows"})]})})]}),m.jsxs("div",{className:"fixed bottom-0 left-0 right-0 h-10 bg-[#0a0a0a]/90 backdrop-blur-sm border-t border-[#00FF94]/20 flex items-center px-4 z-40",children:[m.jsx("div",{className:"flex items-center gap-2",children:m.jsxs("button",{onClick:n,className:"px-3 py-1 text-xs text-[#00FF94] hover:bg-[#00FF94]/10 rounded transition-colors flex items-center gap-2",children:[m.jsx(eu,{size:12})," Exit"]})}),m.jsx("div",{className:"flex-1"}),m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsxs("span",{className:"text-[10px] text-[#00FF94]/50",children:["khoa@portfolio:~$"," "]}),m.jsx("span",{className:"animate-pulse text-[#00FF94]",children:"▋"})]}),m.jsxs("div",{className:"flex items-center gap-2 ml-4",children:[m.jsx("button",{onClick:()=>window.print(),className:"px-2 py-1 text-[10px] text-[#00FF94] border border-[#00FF94]/30 rounded hover:bg-[#00FF94]/10 transition-colors",children:"CV"}),m.jsx("button",{onClick:r,className:"px-2 py-1 text-[10px] text-[#0a0a0a] bg-[#00FF94] rounded hover:opacity-80 transition-colors",children:"Design"})]})]})]}),m.jsx(Cn,{children:y&&m.jsx(fe.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/90 backdrop-blur-sm p-4",onClick:()=>x(null),children:m.jsxs(fe.div,{initial:{scale:.9,y:20},animate:{scale:1,y:0},exit:{scale:.9,y:20},className:"bg-[#0a0a0a] border border-[#00FF94]/30 max-w-2xl w-full rounded-lg overflow-hidden",onClick:F=>F.stopPropagation(),children:[m.jsxs("div",{className:"flex items-center gap-2 px-4 py-3 bg-[#111] border-b border-[#00FF94]/20",children:[m.jsx("div",{className:"w-3 h-3 rounded-full bg-red-500/50"}),m.jsx("div",{className:"w-3 h-3 rounded-full bg-yellow-500/50"}),m.jsx("div",{className:"w-3 h-3 rounded-full bg-green-500/50"}),m.jsx("span",{className:"ml-4 text-xs text-[#00FF94]",children:y.name})]}),m.jsxs("div",{className:"p-6",children:[m.jsx("div",{className:"text-xs text-[#00D9FF] mb-2 uppercase tracking-wider",children:"Project Details"}),m.jsx("h3",{className:"text-xl text-white font-bold mb-3",children:y.name}),m.jsx("p",{className:"text-sm text-slate-300 mb-4",children:y.description}),m.jsx("div",{className:"flex flex-wrap gap-2 mb-4",children:y.tech.map((F,P)=>m.jsx("span",{className:"text-xs bg-[#00FF94]/10 px-3 py-1.5 text-[#00FF94] border border-[#00FF94]/20",children:F},P))}),m.jsxs("div",{className:"flex gap-4 pt-4 border-t border-[#00FF94]/20",children:[y.demo&&m.jsxs("a",{href:y.demo,target:"_blank",rel:"noreferrer",className:"flex items-center gap-2 text-sm text-[#00D9FF] hover:text-[#00FF94]",children:[m.jsx(Gm,{size:14})," Live Demo"]}),m.jsxs("a",{href:y.github,target:"_blank",rel:"noreferrer",className:"flex items-center gap-2 text-sm text-[#00FF94] hover:text-[#00D9FF]",children:[m.jsx(iS,{size:14})," Source Code"]})]})]})]})})})]})]})};function kS(){const[n,r]=z.useState("landing"),[s,a]=z.useState(!1),[u,f]=z.useState(!1);z.useEffect(()=>{document.documentElement.setAttribute("data-theme","light")},[]);const d=v=>{r(v)},h=()=>{r("landing")},g=()=>{const v=!u;f(v),document.documentElement.setAttribute("data-theme",v?"dark":"light")};return m.jsxs(m.Fragment,{children:[m.jsx("div",{className:"noise-overlay"}),m.jsxs(Cn,{mode:"wait",children:[n==="landing"&&m.jsx(yS,{onSelect:d,darkMode:u,toggleTheme:g},"landing"),n==="creative"&&m.jsx(wS,{onBack:h,onSwitch:()=>r("it"),darkMode:u,toggleTheme:g},"creative"),n==="it"&&m.jsx(SS,{onBack:h,onSwitch:()=>r("creative")},"it")]}),m.jsx("div",{className:"print-portfolio",children:m.jsx(gS,{})})]})}e0.createRoot(document.getElementById("root")).render(m.jsx(Ky.StrictMode,{children:m.jsx(kS,{})})); diff --git a/dist/index.html b/dist/index.html index 7f3adec..6c295f1 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1,61 +1,61 @@ - - - - - - - Khoa Vo - Creative Manager & AI Innovation Lead - - - - - - - - - - - - - - - - - - - - -
- - + + + + + + + Khoa Vo - Creative Manager & AI Innovation Lead + + + + + + + + + + + + + + + + + + + + +
+ +