diff --git a/docs/404.html b/docs/404.html index 94f1b2e..f1006de 100644 --- a/docs/404.html +++ b/docs/404.html @@ -33,8 +33,8 @@ - - + + diff --git a/docs/assets/index-DEUrhNBj.css b/docs/assets/index-BAsLyIyM.css similarity index 67% rename from docs/assets/index-DEUrhNBj.css rename to docs/assets/index-BAsLyIyM.css index e9dbbde..de59734 100644 --- a/docs/assets/index-DEUrhNBj.css +++ b/docs/assets/index-BAsLyIyM.css @@ -1 +1 @@ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--shimmer-angle:20deg;--console-head-pinned:0}*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-content:"";--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--spacing:4px;--font-weight-medium:500;--leading-snug:1.375;--leading-normal:1.5;--radius-md:calc(var(--radius) * .8);--radius-lg:0px;--radius-xl:0px;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-paper:#f2f2f2;--color-ink:#171717;--color-ink-soft:#404040;--color-muted:#606060;--color-line:#e5e5e5;--color-line-strong:#8a8a8a;--color-action:#171717;--color-action-text:#fff;--color-action-hover:#353535;--color-tint-hover:#1717170a;--color-surface:#fff;--color-subtle:#f5f5f5;--color-good:#287247;--color-good-soft:#e4efe8;--color-warn:#85600f;--color-warn-soft:#f4ecda;--color-bad:#8a2533;--color-bad-soft:#f3e3e6;--color-info:var(--color-ink);--color-info-soft:var(--color-subtle);--font-body:Geist, ui-sans-serif, sans-serif;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:18px;--text-xl:24px;--leading-body:1.55;--container-content:1160px;--spacing-gutter:clamp(16px, 4vw, 32px);--spacing-header:72px;--spacing-section:clamp(56px, 7vw, 88px)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--color-ink);outline-offset:3px}[tabindex="-1"]:focus{outline:none}::selection{background:var(--color-ink);color:var(--color-surface)}@media(max-width:700px){:root{--spacing-header:64px;--spacing-card:24px;--spacing-card-lg:24px}}@media(prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation:none!important}}:where([data-slot],[data-slot] *){border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){:where([data-slot],[data-slot] *){outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}button:not(:disabled),[role=button]:not(:disabled){cursor:pointer}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-0{top:0}.right-2{right:calc(var(--spacing) * 2)}.bottom-0{bottom:0}.left-0{left:0}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-10{margin-inline:calc(var(--spacing) * -10)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.-me-px{margin-inline-end:-1px}.-mt-7{margin-top:calc(var(--spacing) * -7)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.-mb-5{margin-bottom:calc(var(--spacing) * -5)}.-mb-px{margin-bottom:-1px}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-auto{height:auto}.h-px{height:1px}.h-screen{height:100vh}.max-h-\(--available-height\){max-height:var(--available-height)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-13{min-height:calc(var(--spacing) * 13)}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-\(--anchor-width\){width:var(--anchor-width)}.w-0{width:0}.w-8{width:calc(var(--spacing) * 8)}.w-\[min\(var\(--container-content\)\,100\%-2\*var\(--spacing-gutter\)\)\]{width:min(var(--container-content),100% - 2 * var(--spacing-gutter))}.w-fit{width:fit-content}.w-full{width:100%}.max-w-140{max-width:calc(var(--spacing) * 140)}.max-w-180{max-width:calc(var(--spacing) * 180)}.max-w-\[46ch\]{max-width:46ch}.max-w-\[60ch\]{max-width:60ch}.max-w-\[65ch\]{max-width:65ch}.max-w-\[1200px\]{max-width:1200px}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-\[320px\]{min-width:320px}.flex-1{flex:1}.flex-none{flex:none}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.origin-\(--transform-origin\){transform-origin:var(--transform-origin)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.scroll-fade-x{--_scroll-fade-size-s:var(--scroll-fade-s-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))));--_scroll-fade-size-e:var(--scroll-fade-e-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))));--scroll-fade-inline:linear-gradient(to right, transparent 0, #000 var(--scroll-fade-s,0px), #000 calc(100% - var(--scroll-fade-e,0px)), transparent 100%)}.scroll-fade-x:where([dir=rtl],[dir=rtl] *){--scroll-fade-inline:linear-gradient(to left, transparent 0, #000 var(--scroll-fade-s,0px), #000 calc(100% - var(--scroll-fade-e,0px)), transparent 100%)}.scroll-fade-x{-webkit-mask-image:var(--scroll-fade-mask,var(--scroll-fade-inline));mask-image:var(--scroll-fade-mask,var(--scroll-fade-inline));-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-composite:source-in;mask-composite:intersect}@supports (animation-timeline:scroll()){.scroll-fade-x{animation:1ms ease-in-out scroll-fade-reveal-s,1ms ease-in-out scroll-fade-reveal-e;animation-timeline:scroll(self inline),scroll(self inline);animation-range:0 var(--scroll-fade-reveal,calc(var(--spacing) * 24)),calc(100% - var(--scroll-fade-reveal,calc(var(--spacing) * 24))) 100%;animation-fill-mode:both}}@supports not (animation-timeline:scroll()){.scroll-fade-x{--scroll-fade-s:var(--_scroll-fade-size-s);--scroll-fade-e:var(--_scroll-fade-size-e)}}.cursor-default{cursor:default}.resize{resize:both}.scroll-my-1{scroll-margin-block:var(--spacing)}.scroll-pt-header{scroll-padding-top:var(--spacing-header)}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[240px_minmax\(0\,1fr\)\]{grid-template-columns:240px minmax(0,1fr)}.grid-cols-\[repeat\(auto-fill\,minmax\(160px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-\(--card-spacing\){gap:var(--card-spacing)}.gap-0{gap:0}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-px{gap:1px}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1{row-gap:var(--spacing)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.rounded-4xl{border-radius:calc(var(--radius) * 2.6)}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md),10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md),12px)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:calc(var(--radius) * .8)}.rounded-none{border-radius:0}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.rounded-b-xl{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-border{border-color:var(--border)}.border-current\/25{border-color:currentColor}@supports (color:color-mix(in lab,red,red)){.border-current\/25{border-color:color-mix(in oklab,currentcolor 25%,transparent)}}.border-input{border-color:var(--input)}.border-line{border-color:var(--color-line)}.border-line-strong{border-color:var(--color-line-strong)}.border-transparent{border-color:#0000}.border-b-line{border-bottom-color:var(--color-line)}.bg-action{background-color:var(--color-action)}.bg-background{background-color:var(--background)}.bg-bad-soft{background-color:var(--color-bad-soft)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.bg-good-soft{background-color:var(--color-good-soft)}.bg-info-soft{background-color:var(--color-info-soft)}.bg-line{background-color:var(--color-line)}.bg-muted,.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.bg-paper{background-color:var(--color-paper)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-subtle{background-color:var(--color-subtle)}.bg-surface{background-color:var(--color-surface)}.bg-tint-hover{background-color:var(--color-tint-hover)}.bg-transparent{background-color:#0000}.bg-warn-soft{background-color:var(--color-warn-soft)}.bg-clip-border{background-clip:border-box}.bg-clip-padding{background-clip:padding-box}.fill-none{fill:none}.stroke-current{stroke:currentColor}.stroke-\[2\.4\]{stroke-width:2.4px}.p-\(--card-spacing\){padding:var(--card-spacing)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-\[3px\]{padding:3px}.px-\(--card-spacing\){padding-inline:var(--card-spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-10{padding-inline:calc(var(--spacing) * 10)}.py-\(--card-spacing\){padding-block:var(--card-spacing)}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-section{padding-block:var(--spacing-section)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-body,.font-heading{font-family:var(--font-body)}.font-mono{font-family:var(--font-mono)}.text-\[0\.8rem\]{font-size:.8rem}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-\[23px\]{font-size:23px}.text-\[28px\]{font-size:28px}.text-\[30px\]{font-size:30px}.text-\[clamp\(30px\,3vw\,40px\)\]{font-size:clamp(30px,3vw,40px)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-\[1\.08\]{--tw-leading:1.08;line-height:1.08}.leading-body{--tw-leading:var(--leading-body);line-height:var(--leading-body)}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-\[450\]{--tw-font-weight:450;font-weight:450}.font-\[550\]{--tw-font-weight:550;font-weight:550}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-\[-0\.03em\]{--tw-tracking:-.03em;letter-spacing:-.03em}.tracking-\[-0\.035em\]{--tw-tracking:-.035em;letter-spacing:-.035em}.tracking-\[0\.4em\]{--tw-tracking:.4em;letter-spacing:.4em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.whitespace-nowrap{white-space:nowrap}.text-action-text{color:var(--color-action-text)}.text-bad{color:var(--color-bad)}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-good{color:var(--color-good)}.text-info{color:var(--color-info)}.text-ink{color:var(--color-ink)}.text-ink-soft{color:var(--color-ink-soft)}.text-muted{color:var(--color-muted)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-warn{color:var(--color-warn)}.uppercase{text-transform:uppercase}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.decoration-line-strong{-webkit-text-decoration-color:var(--color-line-strong);text-decoration-color:var(--color-line-strong)}.underline-offset-4{text-underline-offset:4px}.\[-webkit-font-smoothing\:antialiased\]{-webkit-font-smoothing:antialiased}.scheme-light{color-scheme:light}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-foreground\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background\,border-color\]{transition-property:background,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background\]{transition-property:background;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,background-color\,border-color\]{transition-property:color,background-color,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-160{--tw-duration:.16s;transition-duration:.16s}.ease-\[cubic-bezier\(\.25\,1\,\.5\,1\)\]{--tw-ease:cubic-bezier(.25,1,.5,1);transition-timing-function:cubic-bezier(.25,1,.5,1)}.outline-none{--tw-outline-style:none;outline-style:none}.select-auto{-webkit-user-select:auto;user-select:auto}.select-none{-webkit-user-select:none;user-select:none}.\!paused{animation-play-state:paused!important}.\[--card-spacing\:--spacing\(4\)\]{--card-spacing:calc(var(--spacing) * 4)}.paused{animation-play-state:paused}.running{animation-play-state:running}:is(.\*\:min-w-40>*){min-width:calc(var(--spacing) * 40)}.group-focus-within\/row\:opacity-100:is(:where(.group\/row):focus-within *){opacity:1}.group-hover\/button\:translate-x-0\.5:is(:where(.group\/button):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\/row\:opacity-100:is(:where(.group\/row):hover *){opacity:1}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[size\=sm\]\/card\:text-sm:is(:where(.group\/card)[data-size=sm] *){font-size:var(--text-sm)}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}.group-data-horizontal\/tabs\:h-8:is(:where(.group\/tabs):where([data-orientation=horizontal]) *){height:calc(var(--spacing) * 8)}.group-data-horizontal\/tabs\:h-9:is(:where(.group\/tabs):where([data-orientation=horizontal]) *){height:calc(var(--spacing) * 9)}.group-data-vertical\/tabs\:h-fit:is(:where(.group\/tabs):where([data-orientation=vertical]) *){height:fit-content}.group-data-vertical\/tabs\:w-full:is(:where(.group\/tabs):where([data-orientation=vertical]) *){width:100%}.group-data-vertical\/tabs\:flex-col:is(:where(.group\/tabs):where([data-orientation=vertical]) *){flex-direction:column}.group-data-vertical\/tabs\:justify-start:is(:where(.group\/tabs):where([data-orientation=vertical]) *){justify-content:flex-start}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-6::file-selector-button{height:calc(var(--spacing) * 6)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm)}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-x-0:after{content:var(--tw-content);inset-inline:0}.after\:top-full:after{content:var(--tw-content);top:100%}.after\:h-10:after{content:var(--tw-content);height:calc(var(--spacing) * 10)}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:bg-linear-to-b:after{content:var(--tw-content);--tw-gradient-position:to bottom}@supports (background-image:linear-gradient(in lab,red,red)){.after\:bg-linear-to-b:after{--tw-gradient-position:to bottom in oklab}}.after\:bg-linear-to-b:after{background-image:linear-gradient(var(--tw-gradient-stops))}.after\:from-paper:after{content:var(--tw-content);--tw-gradient-from:var(--color-paper);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.after\:to-transparent:after{content:var(--tw-content);--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:duration-150:after{content:var(--tw-content);--tw-duration:.15s;transition-duration:.15s}.group-data-horizontal\/tabs\:after\:inset-x-0:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);inset-inline:0}.group-data-horizontal\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);bottom:-5px}.group-data-horizontal\/tabs\:after\:h-0\.5:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);height:calc(var(--spacing) * .5)}.group-data-vertical\/tabs\:after\:inset-y-0:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);inset-block:0}.group-data-vertical\/tabs\:after\:-right-1:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);right:calc(var(--spacing) * -1)}.group-data-vertical\/tabs\:after\:w-0\.5:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);width:calc(var(--spacing) * .5)}.empty\:hidden:empty{display:none}.hover\:border-ink:hover{border-color:var(--color-ink)}.hover\:border-line-strong:hover{border-color:var(--color-line-strong)}.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:color-mix(in oklch,var(--secondary),var(--foreground) 5%)}}.hover\:bg-action-hover:hover{background-color:var(--color-action-hover)}.hover\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.hover\:bg-muted:hover,.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.hover\:bg-primary\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab,var(--primary) 80%,transparent)}}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-ink:hover{color:var(--color-ink)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:underline:hover{text-decoration-line:underline}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:fixed:focus{position:fixed}.focus\:top-3:focus{top:calc(var(--spacing) * 3)}.focus\:left-3:focus{left:calc(var(--spacing) * 3)}.focus\:z-50:focus{z-index:50}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus,:is(.not-data-\[variant\=destructive\]\:focus\:\*\*\:text-accent-foreground:not([data-variant=destructive]):focus *){color:var(--accent-foreground)}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab,var(--destructive) 40%,transparent)}}.focus-visible\:border-ink:focus-visible{border-color:var(--color-ink)}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-3:focus-visible,.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-3:focus-visible{outline-offset:3px}.focus-visible\:outline-ink:focus-visible{outline-color:var(--color-ink)}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.focus-visible\:outline-solid:focus-visible{--tw-outline-style:solid;outline-style:solid}.active\:not-aria-\[haspopup\]\:translate-y-0:active:not([aria-haspopup]){--tw-translate-y:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-input\/50:disabled{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.disabled\:bg-input\/50:disabled{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-55:disabled{opacity:.55}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius-lg)}.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.has-data-\[icon\=inline-end\]\:pr-1:has([data-icon=inline-end]){padding-right:var(--spacing)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 2)}.has-data-\[icon\=inline-start\]\:pl-1:has([data-icon=inline-start]){padding-left:var(--spacing)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 2)}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[slot\=card-description\]\:grid-rows-\[auto_auto\]:has([data-slot=card-description]){grid-template-rows:auto auto}.has-data-\[slot\=card-footer\]\:pb-0:has([data-slot=card-footer]){padding-bottom:0}.has-\[\>img\:first-child\]\:pt-0:has(>img:first-child){padding-top:0}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-placeholder\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-stuck\:after\:opacity-100[data-stuck]:after{content:var(--tw-content);opacity:1}.data-\[align-trigger\=true\]\:animate-none[data-align-trigger=true]{animation:none}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=inline-end\]\:slide-in-from-left-2[data-side=inline-end]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=inline-start\]\:slide-in-from-right-2[data-side=inline-start],.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-8[data-size=default]{height:calc(var(--spacing) * 8)}.data-\[size\=sm\]\:h-7[data-size=sm]{height:calc(var(--spacing) * 7)}.data-\[size\=sm\]\:rounded-\[min\(var\(--radius-md\)\,10px\)\][data-size=sm]{border-radius:min(var(--radius-md),10px)}.data-\[size\=sm\]\:\[--card-spacing\:--spacing\(3\)\][data-size=sm]{--card-spacing:calc(var(--spacing) * 3)}.data-\[size\=sm\]\:has-data-\[slot\=card-footer\]\:pb-0[data-size=sm]:has([data-slot=card-footer]){padding-bottom:0}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-1\.5>*)[data-slot=select-value]{gap:calc(var(--spacing) * 1.5)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}@media(prefers-reduced-motion:reduce){.motion-reduce\:scroll-auto{scroll-behavior:auto}}@media(min-width:48rem){.md\:text-base{font-size:var(--text-base)}.md\:text-sm{font-size:var(--text-sm)}}.dark\:border-input:where([data-theme=dark],[data-theme=dark] *){border-color:var(--input)}.dark\:bg-destructive\/20:where([data-theme=dark],[data-theme=dark] *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/20:where([data-theme=dark],[data-theme=dark] *){background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.dark\:bg-input\/30:where([data-theme=dark],[data-theme=dark] *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:where([data-theme=dark],[data-theme=dark] *){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}.dark\:text-muted-foreground:where([data-theme=dark],[data-theme=dark] *){color:var(--muted-foreground)}.dark\:hover\:bg-destructive\/30:where([data-theme=dark],[data-theme=dark] *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-destructive\/30:where([data-theme=dark],[data-theme=dark] *):hover{background-color:color-mix(in oklab,var(--destructive) 30%,transparent)}}.dark\:hover\:bg-input\/50:where([data-theme=dark],[data-theme=dark] *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:where([data-theme=dark],[data-theme=dark] *):hover{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}.dark\:hover\:bg-muted\/50:where([data-theme=dark],[data-theme=dark] *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-muted\/50:where([data-theme=dark],[data-theme=dark] *):hover{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.dark\:hover\:text-foreground:where([data-theme=dark],[data-theme=dark] *):hover{color:var(--foreground)}.dark\:focus-visible\:ring-destructive\/40:where([data-theme=dark],[data-theme=dark] *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:where([data-theme=dark],[data-theme=dark] *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:disabled\:bg-input\/80:where([data-theme=dark],[data-theme=dark] *):disabled{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:disabled\:bg-input\/80:where([data-theme=dark],[data-theme=dark] *):disabled{background-color:color-mix(in oklab,var(--input) 80%,transparent)}}.dark\:aria-invalid\:border-destructive\/50:where([data-theme=dark],[data-theme=dark] *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:border-destructive\/50:where([data-theme=dark],[data-theme=dark] *)[aria-invalid=true]{border-color:color-mix(in oklab,var(--destructive) 50%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:where([data-theme=dark],[data-theme=dark] *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:where([data-theme=dark],[data-theme=dark] *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.data-open\:animate-in:where([data-state=open]),.data-open\:animate-in:where([data-open]:not([data-open=false])){animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-open\:fade-in-0:where([data-state=open]),.data-open\:fade-in-0:where([data-open]:not([data-open=false])){--tw-enter-opacity:0}.data-open\:zoom-in-95:where([data-state=open]),.data-open\:zoom-in-95:where([data-open]:not([data-open=false])){--tw-enter-scale:.95}.data-closed\:animate-out:where([data-state=closed]),.data-closed\:animate-out:where([data-closed]:not([data-closed=false])){animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:fade-out-0:where([data-state=closed]),.data-closed\:fade-out-0:where([data-closed]:not([data-closed=false])){--tw-exit-opacity:0}.data-closed\:zoom-out-95:where([data-state=closed]),.data-closed\:zoom-out-95:where([data-closed]:not([data-closed=false])){--tw-exit-scale:.95}.data-disabled\:pointer-events-none:where([data-disabled=true]),.data-disabled\:pointer-events-none:where([data-disabled]:not([data-disabled=false])){pointer-events:none}.data-disabled\:opacity-50:where([data-disabled=true]),.data-disabled\:opacity-50:where([data-disabled]:not([data-disabled=false])){opacity:.5}.data-active\:bg-background:where([data-state=active]),.data-active\:bg-background:where([data-active]:not([data-active=false])){background-color:var(--background)}.data-active\:text-foreground:where([data-state=active]),.data-active\:text-foreground:where([data-active]:not([data-active=false])){color:var(--foreground)}.group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}:is(.group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false]))):after{content:var(--tw-content);opacity:1}.dark\:data-active\:border-input:where([data-theme=dark],[data-theme=dark] *):where([data-state=active]),.dark\:data-active\:border-input:where([data-theme=dark],[data-theme=dark] *):where([data-active]:not([data-active=false])){border-color:var(--input)}.dark\:data-active\:bg-input\/30:where([data-theme=dark],[data-theme=dark] *):where([data-state=active]),.dark\:data-active\:bg-input\/30:where([data-theme=dark],[data-theme=dark] *):where([data-active]:not([data-active=false])){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-active\:bg-input\/30:where([data-theme=dark],[data-theme=dark] *):where([data-state=active]),.dark\:data-active\:bg-input\/30:where([data-theme=dark],[data-theme=dark] *):where([data-active]:not([data-active=false])){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}.dark\:data-active\:text-foreground:where([data-theme=dark],[data-theme=dark] *):where([data-state=active]),.dark\:data-active\:text-foreground:where([data-theme=dark],[data-theme=dark] *):where([data-active]:not([data-active=false])){color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:where([data-theme=dark],[data-theme=dark] *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:where([data-theme=dark],[data-theme=dark] *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:where([data-theme=dark],[data-theme=dark] *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:where([data-theme=dark],[data-theme=dark] *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){background-color:#0000}.data-horizontal\:flex-col:where([data-orientation=horizontal]){flex-direction:column}@media(max-width:860px){.console-narrow\:static{position:static}.console-narrow\:order-last{order:9999}.console-narrow\:-mx-4{margin-inline:calc(var(--spacing) * -4)}.console-narrow\:mt-0{margin-top:0}.console-narrow\:ml-auto{margin-left:auto}.console-narrow\:hidden{display:none}.console-narrow\:h-auto{height:auto}.console-narrow\:w-full{width:100%}.console-narrow\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.console-narrow\:grid-cols-\[minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr)}.console-narrow\:flex-row{flex-direction:row}.console-narrow\:flex-wrap{flex-wrap:wrap}.console-narrow\:items-center{align-items:center}.console-narrow\:gap-3{gap:calc(var(--spacing) * 3)}.console-narrow\:gap-x-3{column-gap:calc(var(--spacing) * 3)}.console-narrow\:gap-y-2{row-gap:calc(var(--spacing) * 2)}.console-narrow\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.console-narrow\:border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.console-narrow\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.console-narrow\:px-0{padding-inline:0}.console-narrow\:px-4{padding-inline:calc(var(--spacing) * 4)}.console-narrow\:py-3{padding-block:calc(var(--spacing) * 3)}.console-narrow\:pt-0{padding-top:0}.console-narrow\:pt-3{padding-top:calc(var(--spacing) * 3)}.console-narrow\:pb-12{padding-bottom:calc(var(--spacing) * 12)}.console-narrow\:text-\[26px\]{font-size:26px}}@media(max-width:700px){.mobile\:mb-6{margin-bottom:calc(var(--spacing) * 6)}.mobile\:size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.mobile\:px-4{padding-inline:calc(var(--spacing) * 4)}.mobile\:py-8{padding-block:calc(var(--spacing) * 8)}.mobile\:text-xl{font-size:var(--text-xl)}}.\[\&_\:is\(th\,td\)\]\:h-11 :is(th,td){height:calc(var(--spacing) * 11)}.\[\&_\:is\(th\,td\)\]\:px-3 :is(th,td){padding-inline:calc(var(--spacing) * 3)}.\[\&_\:is\(th\,td\)\]\:py-0 :is(th,td){padding-block:0}.\[\&_\:is\(th\,td\)\:first-child\]\:pl-5 :is(th,td):first-child{padding-left:calc(var(--spacing) * 5)}.\[\&_\:is\(th\,td\)\:last-child\]\:pr-5 :is(th,td):last-child{padding-right:calc(var(--spacing) * 5)}.\[\&_a\:not\(\[data-slot\]\)\]\:font-medium a:not([data-slot]){--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_a\:not\(\[data-slot\]\)\]\:text-ink a:not([data-slot]){color:var(--color-ink)}.\[\&_a\:not\(\[data-slot\]\)\]\:underline-offset-4 a:not([data-slot]){text-underline-offset:4px}.\[\&_a\:not\(\[data-slot\]\)\:hover\]\:underline a:not([data-slot]):hover{text-decoration-line:underline}.\[\&_code\]\:font-mono code{font-family:var(--font-mono)}.\[\&_code\]\:text-\[13px\] code{font-size:13px}.\[\&_p\>a\]\:font-medium p>a{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_p\>a\]\:text-ink p>a{color:var(--color-ink)}.\[\&_p\>a\]\:underline p>a{text-decoration-line:underline}.\[\&_p\>a\]\:decoration-line p>a{-webkit-text-decoration-color:var(--color-line);text-decoration-color:var(--color-line)}.\[\&_p\>a\]\:underline-offset-4 p>a{text-underline-offset:4px}.hover\:\[\&_p\>a\]\:decoration-ink:hover p>a{-webkit-text-decoration-color:var(--color-ink);text-decoration-color:var(--color-ink)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_tbody_tr\]\:hover\:bg-tint-hover tbody tr:hover{background-color:var(--color-tint-hover)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\.border-b\]\:pb-\(--card-spacing\).border-b{padding-bottom:var(--card-spacing)}.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.\[a\]\:hover\:bg-muted:is(a):hover{background-color:var(--muted)}.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:color-mix(in oklab,var(--primary) 80%,transparent)}}.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:color-mix(in oklab,var(--secondary) 80%,transparent)}}.\[a\]\:hover\:text-muted-foreground:is(a):hover{color:var(--muted-foreground)}:is(.\*\:\[img\:first-child\]\:rounded-t-xl>*):is(img:first-child){border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}:is(.\*\:\[img\:last-child\]\:rounded-b-xl>*):is(img:last-child){border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}.\[\&\>\*\]\:px-6>*{padding-inline:calc(var(--spacing) * 6)}.\[\&\>\*\]\:py-5>*{padding-block:calc(var(--spacing) * 5)}@media(max-width:700px){.mobile\:\[\&\>\*\]\:px-4>*{padding-inline:calc(var(--spacing) * 4)}}.\[\&\>\*\+\*\]\:border-t>*+*{border-top-style:var(--tw-border-style);border-top-width:1px}.\[\&\>\*\+\*\]\:border-t-line>*+*{border-top-color:var(--color-line)}.\[\&\>li\+li\]\:border-t>li+li{border-top-style:var(--tw-border-style);border-top-width:1px}.\[\&\>li\+li\]\:border-t-line>li+li{border-top-color:var(--color-line)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3\!>svg{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media(hover:hover){.\[\@media\(hover\:hover\)\]\:opacity-0{opacity:0}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --scroll-fade-t{syntax:"";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media(prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}:root{--background:var(--color-surface);--foreground:var(--color-ink);--card:var(--color-surface);--card-foreground:var(--color-ink);--popover:var(--color-surface);--popover-foreground:var(--color-ink);--primary:var(--color-action);--primary-foreground:var(--color-action-text);--secondary:var(--color-subtle);--secondary-foreground:var(--color-ink);--muted:var(--color-tint-hover);--muted-foreground:var(--color-muted);--accent:var(--color-subtle);--accent-foreground:var(--color-ink);--destructive:var(--color-bad);--border:var(--color-line);--input:var(--color-line-strong);--ring:var(--color-ink);--radius:0px}:root[data-theme=dark]{color-scheme:dark;--color-paper:#111;--color-surface:#1b1b1b;--color-subtle:#242424;--color-ink:#f2f2f2;--color-ink-soft:#d4d4d4;--color-muted:#b2b2b2;--color-quiet:#b2b2b2;--color-line:#393939;--color-line-strong:#737373;--color-action:#ededed;--color-action-text:#171717;--color-action-hover:#d2d2d2;--color-bay-deep:#f2f2f2;--color-bridge:#ec7a68;--color-tint-hover:#f2f2f20f;--color-tint-active:#f2f2f21a;--color-good:#8cc69e;--color-good-soft:#1e3125;--color-warn:#d7ba79;--color-warn-soft:#372d18;--color-bad:#e8a0ab;--color-bad-soft:#3c2127}.scroll-fade-x,.console-table>[data-slot=table-container]{--scroll-fade-size:2.5rem;--scroll-fade-reveal:3rem;scrollbar-width:none}@supports not (animation-timeline:scroll()){.scroll-fade-x,.console-table>[data-slot=table-container]{--scroll-fade-s:0px;--scroll-fade-e:0px}}html:has(#console-main){scroll-padding-top:calc(var(--console-bar-h,0px) + 3rem)}@property --console-head-pinned{syntax:"";inherits:true;initial-value:0}@keyframes console-head-pin{0%{--console-head-pinned:0}to{--console-head-pinned:1}}@media(max-width:860px){.console-table>[data-slot=table-container]{--_scroll-fade-size-s:var(--scroll-fade-s-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))));--_scroll-fade-size-e:var(--scroll-fade-e-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))));--scroll-fade-inline:linear-gradient(to right, transparent 0, #000 var(--scroll-fade-s,0px), #000 calc(100% - var(--scroll-fade-e,0px)), transparent 100%)}.console-table>[data-slot=table-container]:where([dir=rtl],[dir=rtl] *){--scroll-fade-inline:linear-gradient(to left, transparent 0, #000 var(--scroll-fade-s,0px), #000 calc(100% - var(--scroll-fade-e,0px)), transparent 100%)}.console-table>[data-slot=table-container]{-webkit-mask-image:var(--scroll-fade-mask,var(--scroll-fade-inline));mask-image:var(--scroll-fade-mask,var(--scroll-fade-inline));-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-composite:source-in;mask-composite:intersect}@supports (animation-timeline:scroll()){.console-table>[data-slot=table-container]{animation:1ms ease-in-out scroll-fade-reveal-s,1ms ease-in-out scroll-fade-reveal-e;animation-timeline:scroll(self inline),scroll(self inline);animation-range:0 var(--scroll-fade-reveal,calc(var(--spacing) * 24)),calc(100% - var(--scroll-fade-reveal,calc(var(--spacing) * 24))) 100%;animation-fill-mode:both}}@supports not (animation-timeline:scroll()){.console-table>[data-slot=table-container]{--scroll-fade-s:var(--_scroll-fade-size-s);--scroll-fade-e:var(--_scroll-fade-size-e)}}}@media(min-width:861px){.console-table>[data-slot=table-container]{overflow:visible}.console-table table{view-timeline:--console-table block;view-timeline-inset:var(--console-bar-h,0px) 0px}.console-table thead tr{border-bottom-width:0}.console-table th{top:var(--console-bar-h,0px);z-index:30;background:var(--color-surface);box-shadow:inset 0 -1px 0 var(--color-line),0 -1px #e5e5e5;position:sticky}@supports (color:color-mix(in lab,red,red)){.console-table th{box-shadow:inset 0 -1px 0 var(--color-line),0 -1px color-mix(in oklab,var(--color-line) calc(var(--console-head-pinned) * 100%),transparent)}}.console-table th:after{content:"";pointer-events:none;background:linear-gradient(to bottom,var(--color-surface),transparent);height:2.5rem;opacity:var(--console-head-pinned);inset-inline:0;position:absolute;top:100%}@supports (animation-timeline:view()){.console-table th{animation:1ms linear both console-head-pin;animation-timeline:--console-table;animation-range:exit-crossing 0 exit-crossing 1px}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}@keyframes scroll-fade-reveal-s{0%{--scroll-fade-s:0px}to{--scroll-fade-s:var(--_scroll-fade-size-s,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))))}}@keyframes scroll-fade-reveal-e{0%{--scroll-fade-e:var(--_scroll-fade-size-e,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))))}to{--scroll-fade-e:0px}}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-variable.woff2) format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-mono-variable.woff2) format("woff2")}.fw-site{color-scheme:light;--light-paper: #ffffff;--light-ink: #171717;--light-muted: #606060;--light-line: #e5e5e5;--paper: var(--light-paper);--canvas: #f2f2f2;--surface: #f5f5f5;--ink: var(--light-ink);--muted: var(--light-muted);--line: var(--light-line);--accent: var(--light-ink);--accent-text: #ffffff;--accent-hover: #353535;--accent-active: #000000;--panel: #171717;--panel-text: #ffffff;--panel-dim: #b8b8b8;--panel-line: #3a3a3a;--admit: #287247;--defer: #85600f;--reject: #8a2533;--bridge: #b8392e;--scroll-thumb: #8a8a8a;--drawing-edge: #575757;--drawing-mid: #a3a3a3;--drawing-lo: #d4d4d4;--platform-side: #e5e5e5;--platform-top: #f7f7f7;--platform-edge: #8a8a8a;--guide-rail: #b5b5b5;--production-fill: #d6ebcd;--production-edge: #2f673a;--production-detail: #719268;--production-mark: #24562f;--hold-fill: #f1e5c6;--hold-edge: #8a692f;--hold-detail: #b6a276;--release-fill: #ead8aa;--release-hover: #efcd83;--release-edge: #80632e;--release-text: #49340f;--release-guide: #b08038;--reject-fill: #f1d9dd;--reject-edge: var(--reject);--reject-detail: #c4909a;--flood-lane: #dcdcdc;--zone-label: #333333;--zone-secondary: #636363;--footer-artwork-filter: none;--footer-artwork-blend: normal;--footer-artwork-opacity: 1;--footer-artwork-wash: none;--footer-fog-filter: none;--footer-fog-height: 1;--footer-fog-high-opacity: .4;--footer-fog-bridge-opacity: .62;--footer-fog-low-opacity: .3;--display: Geist, ui-sans-serif, sans-serif;--body: Geist, ui-sans-serif, sans-serif;--mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-sans: var(--body);--font-mono: var(--mono);--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 24px;--display-md: clamp(32px, 3.3vw, 48px);--leading-body: 1.55;--label-size: 11px;--label-tracking: .08em;--content-width: 1280px;--gutter: clamp(20px, 4vw, 64px);--header-height: 80px;--ease-out: cubic-bezier(.25, 1, .5, 1);--motion-fast: .16s;--motion-move: .26s;--motion-reveal: .56s;--section-space: clamp(32px, 4vw, 64px);--deck-gutter: clamp(12px, 2.2vw, 32px);--slide-gap: 24px;--slide-radius: 0px;--header-offset: var(--header-height);--slide-height: min(780px, calc(100svh - var(--header-offset) - 48px));--radius: 0px;font-family:var(--body);background:var(--canvas);color:var(--ink)}.fw-site[data-theme=dark]{color-scheme:dark;--paper: #1b1b1b;--canvas: #111111;--surface: #242424;--ink: #f2f2f2;--muted: #b2b2b2;--line: #393939;--accent: #ededed;--accent-text: #171717;--accent-hover: #d2d2d2;--accent-active: #ffffff;--panel: #242424;--panel-text: #f2f2f2;--panel-dim: #b2b2b2;--panel-line: #494949;--admit: #8cc69e;--defer: #d7ba79;--reject: #e8a0ab;--bridge: #ec7a68;--scroll-thumb: #737373;--drawing-edge: #b9b9b9;--drawing-mid: #858585;--drawing-lo: #4c4c4c;--platform-side: #303030;--platform-top: #242424;--platform-edge: #777777;--guide-rail: #626262;--production-fill: #243d2b;--production-edge: #83bb8b;--production-detail: #63866c;--production-mark: #b5dfbc;--hold-fill: #44381f;--hold-edge: #cfab68;--hold-detail: #a48c60;--release-fill: #c7a366;--release-hover: #debd83;--release-edge: #eed3a3;--release-text: #221b11;--release-guide: #cfab68;--reject-fill: #43222a;--reject-edge: var(--reject);--reject-detail: #9c6670;--flood-lane: #3a3a3a;--zone-label: #dedede;--zone-secondary: #b2b2b2;--footer-artwork-filter: invert(1) hue-rotate(180deg);--footer-artwork-blend: screen;--footer-artwork-opacity: .82;--footer-artwork-wash: linear-gradient(180deg, transparent, color-mix(in srgb, var(--paper) 80%, transparent) 14%, color-mix(in srgb, var(--paper) 58%, transparent) 40%, color-mix(in srgb, var(--paper) 34%, transparent) 66%, color-mix(in srgb, var(--paper) 20%, transparent));--footer-fog-filter: brightness(0) invert(.9) blur(8px);--footer-fog-height: .55;--footer-fog-high-opacity: .1;--footer-fog-bridge-opacity: .14;--footer-fog-low-opacity: .06}html.fw-site,.fw-site body,.fw-site:not(html){overscroll-behavior:auto}@media(hover:hover)and (pointer:fine){html.fw-site,.fw-site body,.fw-site:not(html){overscroll-behavior:none}}html.fw-site{scroll-behavior:smooth;scroll-padding-top:var(--header-offset);scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--canvas)}@media(forced-colors:active){html.fw-site{scrollbar-width:auto;scrollbar-color:auto}}.fw-site body,.fw-site:not(html){min-width:320px;margin:0;background:var(--canvas);color:var(--ink);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased}.fw-site a{color:inherit;text-decoration:none;text-underline-offset:5px}.fw-site button,.fw-site a{-webkit-tap-highlight-color:transparent}.fw-site :focus-visible{outline:2px solid var(--accent);outline-offset:5px}.fw-site .skip-link{position:fixed;inset-block-start:12px;inset-inline-start:var(--deck-gutter);z-index:100;padding:12px 16px;background:var(--ink);color:var(--paper);transform:translateY(calc(-100% - 24px))}.fw-site .skip-link:focus-visible{transform:translateY(0)}.fw-site [tabindex="-1"]:focus{outline:none}.fw-site ::selection{background:var(--accent);color:var(--accent-text)}.fw-site main{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--slide-gap);width:min(1440px,100% - 2 * var(--deck-gutter));margin-inline:auto;padding-block:0 var(--slide-gap)}.fw-site main>section{width:100%;margin:0;padding:var(--section-space) var(--gutter);border:1px solid var(--line);border-radius:var(--slide-radius);background:var(--paper)}@media(min-width:1100px){.fw-site main>section{min-height:var(--slide-height)}}.fw-site .page-width{width:min(var(--content-width),100% - 2 * var(--gutter));margin-inline:auto}.fw-site h1,.fw-site h2,.fw-site h3,.fw-site p{margin:0;overflow-wrap:anywhere}.fw-site h1,.fw-site h2{text-wrap:balance}.fw-site p{text-wrap:pretty}.fw-site .display-heading{font-size:var(--display-md);letter-spacing:-.04em;line-height:1.08}.fw-site .staccato-heading{font-weight:350}.fw-site .staccato-heading strong{font-weight:650}.fw-site .logo{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-size:25px;font-weight:600;letter-spacing:-.04em;line-height:1}.fw-site .logo sup{margin-left:3px;font-size:9px;vertical-align:super}.fw-site .brand-mark{width:34px;height:34px;flex:none}.fw-site .brand-mark rect,.fw-site .brand-mark path{fill:none;stroke:currentColor;stroke-width:2.4}.fw-site .button{display:inline-flex;align-items:center;justify-content:center;gap:20px;border:1px solid transparent;border-radius:var(--radius);background:var(--accent);color:var(--accent-text);font-weight:500;white-space:nowrap;transition:background var(--motion-fast) var(--ease-out)}@media(hover:hover)and (pointer:fine){.fw-site .button:hover{background:var(--accent-hover)}}.fw-site .button .button-brand{margin-inline-end:-8px}.fw-site .button:active{background:var(--accent-active)}.fw-site .button-sm{min-height:44px;padding:0 20px;font-size:var(--text-sm)}.fw-site .button-lg{min-height:52px;padding:0 24px;font-size:var(--text-sm)}.fw-site .button svg,.fw-site .hero-link svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5}.fw-site .card{min-width:0}.fw-site .ui-icon{flex:none;vertical-align:middle}@media(max-width:700px){.fw-site .logo{font-size:23px}}@media(prefers-reduced-motion:reduce){html.fw-site{scroll-behavior:auto}.fw-site *,.fw-site *:before,.fw-site *:after{animation:none!important;transition:none!important}}.fw-site .site-header{position:sticky;top:0;z-index:50;background:var(--canvas)}.fw-site .nav-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:var(--header-height)}.fw-site .nav-links{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;align-self:stretch}.fw-site .nav-links>a,.fw-site .nav-menu-button{position:relative;display:inline-flex;align-items:stretch;justify-content:center;min-height:44px;padding:0;color:var(--muted);font-size:15px;font-weight:500;transition:color var(--motion-fast) var(--ease-out)}.fw-site .nav-links>a[data-current],.fw-site .nav-menu-button[data-current],.fw-site .nav-menu-button[aria-expanded=true],.fw-site .nav-links>a[data-fluid-hover-active],.fw-site .nav-links>a:has([data-fluid-hover-active]),.fw-site .nav-menu-button:has([data-fluid-hover-active]){color:var(--ink)}.fw-site .nav-item{display:inline-flex;align-items:center;align-self:stretch;gap:6px;padding:0 24px}.fw-site .nav-hover{z-index:0;border:1px solid var(--line);background:var(--paper)}.fw-site .nav-indicator{position:absolute;left:0;bottom:0;width:1px;height:2px;background:var(--ink);transform-origin:left center;visibility:hidden;pointer-events:none;transition:transform var(--motion-move) var(--ease-out)}.fw-site .nav-links>a:focus-visible,.fw-site .nav-menu-button:focus-visible{outline-offset:-4px}.fw-site .nav-menu{position:relative;display:flex;align-self:stretch}.fw-site .nav-menu-button{border:0;background:none;font-family:inherit;cursor:pointer}.fw-site .nav-menu-chevron{transition:transform var(--motion-fast) var(--ease-out)}.fw-site .nav-menu-button[aria-expanded=true] .nav-menu-chevron{transform:rotate(180deg)}.fw-site .nav-menu-panel{position:absolute;top:100%;left:0;z-index:10;width:720px;border:1px solid var(--line);background:var(--paper);transform-origin:top left}.fw-site .nav-menu-grid{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;padding:0;background:var(--line);list-style:none}.fw-site .nav-menu-grid>li{background:var(--paper)}.fw-site .nav-menu-hover{z-index:0;background:var(--surface)}.fw-site .nav-menu-grid a{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:start;gap:18px;height:100%;padding:24px;color:var(--ink)}.fw-site .nav-menu-grid a:focus-visible{outline-offset:-4px}.fw-site .nav-menu-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);background:var(--paper);color:var(--ink);transition:background var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out)}.fw-site .nav-menu-grid a[aria-current] .nav-menu-icon{border-color:var(--ink);background:var(--ink);color:var(--paper)}.fw-site .nav-menu-text{display:grid;gap:6px;padding-top:2px}.fw-site .nav-menu-label{font-size:var(--text-lg);font-weight:550;letter-spacing:-.01em;line-height:1.3}.fw-site .nav-menu-copy{color:var(--muted);font-size:15px;line-height:1.45}@media(forced-colors:active){.fw-site .nav-hover,.fw-site .nav-menu-hover{forced-color-adjust:none;outline:1px solid CanvasText;outline-offset:-1px}.fw-site .nav-menu-grid a[aria-current] .nav-menu-icon{forced-color-adjust:none;background:CanvasText;color:Canvas}}@media(forced-colors:active){.fw-site .nav-indicator{forced-color-adjust:none;background:CanvasText}}.fw-site .site-header .button{gap:12px}.fw-site .site-header .button svg{width:16px;height:16px}@media(max-width:1100px){.fw-site .nav-bar{gap:16px}}@media(max-width:850px){.fw-site{--header-height: 128px}.fw-site .nav-bar{flex-wrap:wrap;gap:12px;padding-block:16px 0}.fw-site .nav-links{order:3;flex-wrap:wrap;width:100%;justify-content:space-between}.fw-site .nav-links>a,.fw-site .nav-menu-button{font-size:var(--text-sm)}.fw-site .nav-item{padding:0 12px}.fw-site .nav-menu{position:static}.fw-site .nav-menu-panel{right:0;left:0;width:auto;transform-origin:top center}.fw-site .site-header .button{padding-inline:14px;font-size:var(--text-xs)}}@media(max-width:600px){.fw-site .nav-menu-grid{grid-template-columns:minmax(0,1fr)}.fw-site .nav-menu-grid a{gap:14px;padding:18px 16px}}@media(max-width:380px){.fw-site .site-header .button .button-arrow{display:none}.fw-site .logo{font-size:20px}.fw-site .site-header .button{padding-inline:10px}}.fw-site main>.hero{--hero-inset: 24px;position:relative;display:grid;place-items:center;padding:clamp(72px,12vw,128px) var(--hero-inset);border-color:transparent;background:transparent;isolation:isolate}.fw-site .halftone-field{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;pointer-events:none;-webkit-mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent),linear-gradient(to bottom,transparent,#000 96px,#000 calc(100% - 160px),transparent);mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent),linear-gradient(to bottom,transparent,#000 96px,#000 calc(100% - 160px),transparent);-webkit-mask-composite:source-in;mask-composite:intersect}.fw-site main>.hero+section{position:relative}.fw-site .hero-intro{display:flex;flex-direction:column;align-items:center;max-width:1040px;min-width:0;text-align:center;overflow-wrap:anywhere}.fw-site .hero-intro h1{font-size:clamp(40px,6.4vw,88px);line-height:1.02;letter-spacing:-.045em;text-wrap:balance}.fw-site .hero-lead{max-width:56ch;margin-top:28px;color:var(--muted);font-size:var(--text-lg);line-height:var(--leading-body)}.fw-site .hero-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:16px 24px;margin-top:36px}.fw-site .hero-actions>*{max-width:100%;white-space:normal}.fw-site .hero-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-size:var(--text-sm);font-weight:600}@media(hover:hover)and (pointer:fine){.fw-site .hero-link:hover{text-decoration:underline}}.fw-site .line-diagram{display:flex;flex:1;flex-direction:column;min-width:0;margin:0;padding-top:var(--diagram-gap);--diagram-gap: 24px}.fw-site .line-diagram .diagram-scene{width:calc(100% - 2 * var(--diagram-gap));margin:auto}.fw-site .line-diagram .diagram-drawing-block{margin-top:var(--diagram-gap)}.fw-site .isometric-stage{--hairline-plate: var(--paper);--hairline-hi: var(--ink);--hairline-edge: var(--drawing-edge);--hairline-mid: var(--drawing-mid);--hairline-lo: var(--drawing-lo);--hairline-stroke: 1;width:100%;aspect-ratio:5 / 4}.fw-site .isometric-stage .sil{stroke-width:1.8}.fw-site .isometric-stage .lo{stroke-width:.7}.fw-site .isometric-stage .hi{stroke-width:2}.fw-site .isometric-stage[data-hairline=processing-line]{aspect-ratio:409 / 225}.fw-site .isometric-stage[data-hairline=processing-line] .sil{stroke-width:1.25}.fw-site .isometric-stage[data-hairline=processing-line] .hi{stroke-width:1.5}.fw-site .isometric-stage[data-hairline=processing-line] .lo{stroke-width:.5}.fw-site .diagram-caption{display:grid;grid-template-columns:minmax(0,1fr) 48px;align-items:stretch;border-top:1px solid var(--line);color:var(--muted);font-size:var(--text-xs)}.fw-site .diagram-motion-control{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:48px;align-self:stretch;border:0;border-left:1px solid var(--line);padding:0;color:var(--ink);background:transparent;font:inherit;cursor:pointer;touch-action:manipulation}.fw-site .diagram-motion-control:disabled{color:var(--muted);cursor:default}.fw-site .diagram-drawing-block{border-top:1px solid var(--line);background:var(--paper)}.fw-site .diagram-error{padding:12px;border-bottom:1px solid var(--line)}.fw-site .diagram-title-block{display:grid;grid-template-columns:repeat(3,minmax(min-content,1fr));gap:1px;margin:0;background:var(--line)}.fw-site .diagram-title-block>div{min-width:0;padding:12px;background:var(--paper)}.fw-site .diagram-hold-block{grid-column:1 / -1}.fw-site .diagram-title-block dt{color:var(--muted);font:500 var(--label-size)/1.4 var(--mono);text-transform:uppercase;letter-spacing:var(--label-tracking);overflow-wrap:anywhere}.fw-site .diagram-title-block dd{margin:6px 0 0;color:var(--ink);font-size:var(--text-lg);font-weight:550;line-height:1.2;font-variant-numeric:tabular-nums}.fw-site[data-count-up=pending] .count-up{animation:count-up-fallback 0s 2.5s both}@keyframes count-up-fallback{0%{opacity:0}to{opacity:1}}.fw-site .diagram-title-block .diagram-stat,.fw-site .diagram-hold-block dd>span:first-child{font-family:var(--mono);font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums slashed-zero}.fw-site .diagram-hold-block dd{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.fw-site .diagram-title-block .diagram-hold-instruction{color:var(--muted);font-size:var(--label-size);font-weight:400;line-height:1.5}@media(max-width:600px){.fw-site .hero-lead{font-size:var(--text-base)}.fw-site .hero-actions{gap:12px;margin-top:28px}}@media(max-width:500px){.fw-site .diagram-title-block>div{padding:10px 8px}.fw-site .diagram-title-block{grid-template-columns:minmax(min-content,.9fr) minmax(min-content,1.2fr) minmax(min-content,.9fr)}.fw-site .diagram-title-block dt{font-size:10px;letter-spacing:.06em}.fw-site .diagram-caption{font-size:var(--label-size)}}.fw-site .diagram-scene{position:relative;container-type:inline-size}@container (width < 580px){.fw-site .isometric-stage[data-hairline=processing-line]{aspect-ratio:300 / 305}}.fw-site .diagram-breadcrumb{position:relative;min-width:0;padding:8px 4px;isolation:isolate}.fw-site .diagram-stage-highlight{position:absolute;top:0;left:0;width:1px;height:1px;transform-origin:top left;background:var(--canvas);visibility:hidden;pointer-events:none;transition:transform var(--motion-move) var(--ease-out)}@media(forced-colors:active){.fw-site .diagram-stage-highlight{outline:1px solid CanvasText;outline-offset:-1px}}.fw-site .diagram-stages{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:0;padding:0;list-style:none;line-height:16px}.fw-site .diagram-stages li{display:inline-flex;align-items:center;gap:4px}.fw-site .diagram-stages .ui-icon{color:var(--muted)}.fw-site .diagram-stage-label{position:relative;display:grid;align-items:center;padding:6px 8px;font-weight:450}.fw-site button.diagram-stage-label{border:0;border-radius:0;background:transparent;color:inherit;font:inherit;font-weight:450;cursor:pointer;touch-action:manipulation}.fw-site button.diagram-stage-label[aria-pressed=true]>span{color:var(--bridge);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--bridge)}.fw-site button.diagram-stage-label:focus-visible{outline-offset:2px}.fw-site .diagram-stage-label>span,.fw-site .diagram-stage-label:after{grid-area:1 / 1}.fw-site .diagram-stage-label:after{content:attr(data-label);font-weight:650;visibility:hidden}.fw-site .diagram-stages [aria-current=step] .diagram-stage-label{color:var(--bridge);font-weight:650}.fw-site .diagram-note{margin:0;padding:12px;border-top:1px solid var(--line);color:var(--muted);font-size:var(--text-xs);line-height:var(--leading-body)}.fw-site .isometric-stage .platform-side{fill:var(--platform-side);stroke:none}.fw-site .isometric-stage .platform-top{fill:var(--platform-top);stroke:var(--platform-edge);stroke-width:1.2}.fw-site .isometric-stage .platform-bottom{stroke:var(--drawing-mid);stroke-width:1}.fw-site .isometric-stage[data-hairline=processing-line] .platform-top{stroke-width:1.2}.fw-site .isometric-stage[data-hairline=processing-line] .platform-bottom{stroke-width:1}.fw-site .isometric-stage .production-box .sil,.fw-site .isometric-stage .recorded-intent .sil{fill:var(--production-fill);stroke:var(--production-edge);stroke-width:1.35}.fw-site .isometric-stage .production-box .lo,.fw-site .isometric-stage .recorded-intent .lo{stroke:var(--production-detail);stroke-width:.55}.fw-site .isometric-stage .production-check{stroke:var(--production-mark);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.fw-site .isometric-stage[data-hairline=processing-line] .production-box .sil,.fw-site .isometric-stage[data-hairline=processing-line] .recorded-intent .sil{stroke-width:1.25}.fw-site .isometric-stage .production-destination .sil{fill:var(--paper);stroke:var(--drawing-edge);stroke-width:1.4}.fw-site .isometric-stage .production-destination .lo{stroke:var(--drawing-mid);stroke-width:.7}.fw-site .isometric-stage[data-hairline=processing-line] .production-check{stroke-width:1.9}.fw-site .isometric-stage .guide-rail{stroke:var(--guide-rail);stroke-width:.65;stroke-linecap:round;stroke-linejoin:round}.fw-site .isometric-stage .held-intent .sil,.fw-site .isometric-stage .deferred-intent .sil{fill:var(--hold-fill);stroke:var(--hold-edge);stroke-width:1.5}.fw-site .isometric-stage .held-intent .lo,.fw-site .isometric-stage .deferred-intent .lo{stroke:var(--hold-detail);stroke-width:.55}.fw-site .isometric-stage[data-hairline=processing-line] .held-intent .sil,.fw-site .isometric-stage[data-hairline=processing-line] .deferred-intent .sil{stroke-width:1.2}.fw-site .isometric-stage [data-flow-route] .sil{transition:fill var(--motion-move) var(--ease-out),stroke var(--motion-move) var(--ease-out)}@media(prefers-reduced-motion:reduce){.fw-site .isometric-stage [data-flow-route] .sil{transition:none}}.fw-site .hold-release-control{position:absolute;width:max(44px,7%);height:44px;transform:translate(-50%,-50%);border:0;border-radius:0;background:transparent;cursor:pointer;touch-action:manipulation}.fw-site .hold-release-control:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.fw-site .hold-release-control:active{background:transparent}.fw-site .hold-release-control:is(:disabled,[aria-disabled=true]){cursor:default}@media(hover:hover)and (pointer:fine){.fw-site .diagram-motion-control:not(:disabled):hover{color:var(--accent);background:var(--canvas)}.fw-site button.diagram-stage-label:not([aria-pressed=true]):hover>span{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--drawing-mid)}.fw-site li:not([aria-current])>button.diagram-stage-label:not([aria-pressed=true]):hover>span{color:var(--ink)}.fw-site .diagram-scene:has(.hold-release-control:not(:disabled,[aria-disabled=true]):hover) .release-button-face .sil{fill:var(--release-hover)}}.fw-site .isometric-stage .release-button-face .sil{fill:var(--release-fill);stroke:var(--release-edge);stroke-width:1.7}.fw-site .isometric-stage[data-hairline=processing-line] .release-button-face .sil{stroke-width:1.25}.fw-site .isometric-stage .release-button-text{fill:var(--release-text);stroke:none;font-family:var(--mono);font-weight:600;pointer-events:none}.fw-site .isometric-stage .human-released-intent .sil{stroke-width:2.3}.fw-site .isometric-stage.manual-release-active .release-guide{stroke:var(--release-guide);stroke-width:1.2}@media(max-width:500px){.fw-site .isometric-stage .release-button-text{font-size:8px}}.fw-site .isometric-stage .callout{pointer-events:none}.fw-site .isometric-stage .callout text{fill:var(--zone-label);stroke:none;font-family:var(--mono);font-weight:500;letter-spacing:.08em;transition:fill var(--motion-move) var(--ease-out)}.fw-site .isometric-stage .callout .callout-index,.fw-site .isometric-stage .callout .callout-sub{fill:var(--zone-secondary)}.fw-site .isometric-stage .callout-leader{stroke:var(--drawing-lo);stroke-width:.75;transition:stroke var(--motion-move) var(--ease-out)}.fw-site .isometric-stage .callout-dot{fill:var(--paper);stroke:var(--drawing-edge);stroke-width:1;transition:fill var(--motion-move) var(--ease-out),stroke var(--motion-move) var(--ease-out)}.fw-site .isometric-stage .callout.is-active text,.fw-site .isometric-stage .callout.is-active .callout-index{fill:var(--bridge)}.fw-site .isometric-stage .callout.is-active .callout-leader{stroke:var(--bridge)}.fw-site .isometric-stage .callout.is-active .callout-dot{fill:var(--bridge);stroke:var(--bridge)}.fw-site .isometric-stage .is-selected .sil{stroke:var(--bridge);stroke-width:1.6}.fw-site .isometric-stage .is-selected .lo{stroke:var(--bridge)}.fw-site .isometric-stage .flood-lane{stroke:var(--flood-lane);stroke-width:.6}.fw-site .isometric-stage .floor-edge{stroke:var(--drawing-mid);stroke-width:.8;stroke-linecap:butt}.fw-site .isometric-stage .floor-mark{stroke:var(--drawing-mid);stroke-width:1.1;stroke-linecap:butt;stroke-linejoin:miter}.fw-site .isometric-stage .rejected-intent .sil{fill:var(--reject-fill);stroke:var(--reject-edge);stroke-width:1.2}.fw-site .isometric-stage .rejected-intent .lo{stroke:var(--reject-detail);stroke-width:.55}@media(max-width:600px){.fw-site main>.hero{--hero-inset: 16px}.fw-site .line-diagram{--diagram-gap: 16px}}.fw-site .isometric-stage .is-recording .sil,.fw-site .isometric-stage .ledger-recording .sil{stroke:var(--ink);stroke-width:1.6}.fw-site .isometric-stage .ledger-chain-link{stroke-width:1.35}@media(min-width:1100px){.fw-site main>.hero{--hero-inset: 32px}.fw-site .line-diagram{--diagram-gap: 32px}.fw-site .line-diagram .diagram-scene{max-width:min(100%,calc((var(--slide-height) - 256px) * 5 / 4))}.fw-site .line-diagram:has([data-hairline=processing-line]) .diagram-scene{max-width:min(100%,calc((var(--slide-height) - 256px) * 409 / 225))}.fw-site .diagram-title-block[data-has-hold=true]{grid-template-columns:minmax(0,1.8fr) repeat(3,minmax(0,1fr))}.fw-site .diagram-hold-block{grid-column:auto}}.fw-site .isometric-stage .flood-intent .sil{stroke:var(--drawing-mid)}.fw-site .isometric-stage .flood-intent .lo{stroke:var(--drawing-lo)}.fw-site .section{--section-inset: 24px;display:flex;flex-direction:column;padding:var(--section-inset)}.fw-site .section-drawing{display:flex;flex:1;flex-direction:column;min-width:0;border:1px solid var(--line);background:var(--paper)}.fw-site .section-heading{display:flex;flex:none;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.fw-site .section-heading h2{max-width:min(900px,100%);padding:20px 24px 24px}.fw-site .section-heading .kicker{display:flex;align-items:center;min-height:28px;margin:0;padding:0 16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font:500 var(--label-size)/1.5 var(--mono);letter-spacing:var(--label-tracking);text-transform:uppercase}.fw-site .tag{margin:0;color:var(--ink);font-size:var(--text-xl);font-weight:550;letter-spacing:-.025em;line-height:1.2}.fw-site .card-copy{color:var(--muted);font-size:var(--text-base);line-height:var(--leading-body)}.fw-site .model-rail,.fw-site .roadmap-grid{display:grid;flex:1;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:0;padding:0;background:var(--line);list-style:none}.fw-site .model-stage{display:flex;min-width:0;flex-direction:column;gap:12px;padding:24px;background:var(--paper)}.fw-site .section-body{display:grid;flex:1;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.fw-site .feature-card{display:flex;min-width:0;flex-direction:column;border-right:1px solid var(--line)}.fw-site .feature-copy{max-width:68ch;margin:0;padding:24px;color:var(--muted);font-size:var(--text-base);line-height:var(--leading-body)}.fw-site .feature-points{display:grid;flex:1;grid-auto-rows:1fr;margin:0;padding:0;border-top:1px solid var(--line);list-style:none}.fw-site .feature-points li{display:grid;grid-template-columns:16px minmax(0,1fr);align-items:start;gap:12px;padding:16px 24px;border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--text-sm);line-height:var(--leading-body)}.fw-site .feature-points li:last-child{border-bottom:0}.fw-site .feature-points .ui-icon{margin-top:3px;color:var(--admit)}.fw-site .evidence-panel{display:flex;min-width:0;flex-direction:column;background:var(--paper);color:var(--ink)}.fw-site .panel-head,.fw-site .panel-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:16px 24px;color:var(--muted);font:500 var(--label-size)/1.5 var(--mono)}.fw-site .panel-head{border-bottom:1px solid var(--line)}.fw-site .panel-foot{border-top:1px solid var(--line)}.fw-site .panel-head>span,.fw-site .panel-foot>span{text-transform:uppercase;letter-spacing:var(--label-tracking)}.fw-site .panel-foot code{color:var(--ink);font-family:var(--mono);font-size:var(--label-size)}.fw-site .panel-status{display:inline-flex;align-items:center;gap:6px;color:var(--admit)}.fw-site .panel-rows{display:grid;flex:1;grid-auto-rows:1fr;margin:0;padding:0;list-style:none}.fw-site .policy-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line)}.fw-site .policy-row:last-child{border-bottom:0}.fw-site .policy-row code{color:var(--ink);font:400 12px/1.5 var(--mono);overflow-wrap:anywhere}.fw-site .policy-row p{max-width:48ch;margin:8px 0 0;color:var(--muted);font-size:var(--text-sm);line-height:var(--leading-body)}.fw-site .verdict-admit{--verdict: var(--admit)}.fw-site .verdict-defer{--verdict: var(--defer)}.fw-site .verdict-reject{--verdict: var(--reject)}.fw-site .verdict{color:var(--verdict)}.fw-site .verdict-badge{display:inline-flex;align-items:center;gap:6px;color:var(--verdict);font:450 11px/1.6 var(--mono)}.fw-site .ledger-row{display:grid;grid-template-columns:80px minmax(0,1fr) minmax(0,1.15fr);border-bottom:1px solid var(--line)}.fw-site .ledger-row:last-child{border-bottom:0}.fw-site .ledger-row>span{min-width:0;padding:14px 16px;color:var(--muted);font-size:var(--text-sm);line-height:1.5;overflow-wrap:anywhere}.fw-site .ledger-row>span+span{border-left:1px solid var(--line)}.fw-site .ledger-row>span:nth-child(2){color:var(--ink)}.fw-site .ledger-row>.verdict{color:var(--verdict);font:450 11px/1.9 var(--mono);white-space:nowrap}.fw-site .roadmap-card{display:grid;min-width:0;grid-row:span 3;grid-template-rows:subgrid;row-gap:0;background:var(--paper)}.fw-site .roadmap-grid{grid-auto-rows:max-content}@media(min-width:901px){.fw-site .roadmap-grid{grid-template-rows:max-content max-content minmax(0,1fr)}}.fw-site .roadmap-card>.tag{display:block;flex:none;padding:20px 24px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:32px;font-weight:450;letter-spacing:-.04em;line-height:1.1;font-variant-numeric:tabular-nums}.fw-site .roadmap-copy{display:grid;grid-row:span 2;grid-template-rows:subgrid;row-gap:0;padding:24px}.fw-site .roadmap-copy h3{margin:0 0 12px;font-size:var(--text-xl);font-weight:550;letter-spacing:-.025em;line-height:1.2}.fw-site .roadmap-copy .card-copy{align-self:start}.fw-site .waitlist-card{display:flex;min-width:0;flex-direction:column;justify-content:center;align-items:flex-start;gap:16px;padding:24px}.fw-site .waitlist-fallback{margin:0;color:var(--muted);font-size:var(--text-sm)}.fw-site .waitlist-fallback a,.fw-site .noscript-note a{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:3px}.fw-site .noscript-note{margin-block:var(--section-space);color:var(--muted);font-size:var(--text-lg);line-height:var(--leading-body)}@media(max-width:900px){.fw-site .model-rail,.fw-site .roadmap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fw-site .section-body{grid-template-columns:minmax(0,1fr)}.fw-site .feature-card{border-right:0;border-bottom:1px solid var(--line)}}@media(max-width:600px){.fw-site .section{--section-inset: 16px}.fw-site .section-heading h2{padding:16px 16px 20px;font-size:32px}.fw-site .section-heading .kicker{padding:0 12px}.fw-site .model-rail,.fw-site .roadmap-grid{grid-template-columns:minmax(0,1fr)}.fw-site .model-stage{padding:20px 16px}.fw-site .model-stage .tag,.fw-site .roadmap-copy h3{font-size:22px}.fw-site .roadmap-card>.tag{padding:16px;font-size:28px}.fw-site .roadmap-copy,.fw-site .feature-copy{padding:20px 16px}.fw-site .waitlist-card,.fw-site .feature-points li,.fw-site .panel-head,.fw-site .panel-foot{padding:16px}.fw-site .policy-row{padding:20px 16px;gap:12px}.fw-site .policy-row code{font-size:var(--label-size)}.fw-site .ledger-row{grid-template-columns:80px minmax(0,1fr)}.fw-site .ledger-row>.verdict{grid-row:1 / 3}.fw-site .ledger-row>span:nth-child(2){grid-column:2;padding-bottom:4px}.fw-site .ledger-row>span:last-child{grid-column:2;padding-top:0}}@media(min-width:1100px){.fw-site .section{--section-inset: 32px;min-height:min(480px,var(--slide-height))}.fw-site #gate{min-height:min(560px,var(--slide-height))}.fw-site #ledger{min-height:min(640px,var(--slide-height))}}.fw-site .section-drawing[data-reveal]{transition:opacity var(--motion-reveal) var(--ease-out),transform var(--motion-reveal) var(--ease-out)}.fw-site .section-drawing[data-reveal] :is(.model-stage,.roadmap-card,.policy-row,.ledger-row,.feature-points li){transition:opacity calc(var(--motion-reveal) * .75) var(--ease-out) var(--reveal-delay, 0ms),transform calc(var(--motion-reveal) * .75) var(--ease-out) var(--reveal-delay, 0ms)}@media screen{.fw-site .section-drawing[data-reveal=pending]{opacity:0;transform:translateY(8px)}.fw-site .section-drawing[data-reveal=pending] :is(.model-stage,.roadmap-card,.policy-row,.ledger-row,.feature-points li){opacity:0;transform:translateY(6px)}}.fw-site .section-drawing[data-reveal] :is(.model-stage,.roadmap-card,.policy-row,.ledger-row,.feature-points li):nth-child(2){--reveal-delay: .16s}.fw-site .section-drawing[data-reveal] :is(.model-stage,.roadmap-card,.policy-row,.ledger-row,.feature-points li):nth-child(3){--reveal-delay: .22s}.fw-site .section-drawing[data-reveal] :is(.model-stage,.roadmap-card,.policy-row,.ledger-row,.feature-points li):nth-child(4){--reveal-delay: .28s}.fw-site .section-drawing[data-reveal] :is(.model-stage,.roadmap-card,.policy-row,.ledger-row,.feature-points li):nth-child(5){--reveal-delay: .34s}.fw-site .section-drawing[data-reveal] :is(.model-stage,.roadmap-card,.policy-row,.ledger-row,.feature-points li):nth-child(n+6){--reveal-delay: .4s}.fw-site .section-drawing[data-reveal] :is(.model-stage,.roadmap-card,.policy-row,.ledger-row,.feature-points li):first-child{--reveal-delay: .1s}.fw-site .site-footer{--footer-inset: 24px;width:min(1440px,100% - 2 * var(--deck-gutter));margin:0 auto var(--slide-gap);padding:var(--footer-inset);background:var(--paper);border:1px solid var(--line)}.fw-site .footer-content{position:relative;min-width:0;border:1px solid var(--line)}.fw-site .footer-scene{position:relative;isolation:isolate;padding-bottom:clamp(144px,20vw,280px)}.fw-site .footer-heading{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);border-bottom:1px solid var(--line)}.fw-site .footer-brand{display:flex;grid-column:1;grid-row:1;align-items:center;padding:24px 24px 0;border-right:1px solid var(--line)}.fw-site .footer-heading h2{grid-column:2;grid-row:1 / 3;align-self:center;padding:24px}.fw-site .footer-body{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.fw-site .footer-lead{grid-column:1;grid-row:2;padding:16px 24px 24px;border-right:1px solid var(--line);color:var(--muted);font-size:var(--text-base);line-height:var(--leading-body)}.fw-site .footer-links{display:grid;grid-column:2;grid-template-columns:minmax(0,.8fr) minmax(0,.8fr) minmax(0,1.4fr)}.fw-site .footer-links ul:before{content:"";position:absolute;inset:-12px -20px;z-index:-1;background:color-mix(in srgb,var(--paper) 96%,transparent);filter:blur(12px);pointer-events:none}.fw-site .footer-links>div{min-width:0;padding:24px}.fw-site .footer-links>div+div{border-left:1px solid var(--line)}.fw-site .footer-links h3{position:relative;z-index:1;margin-bottom:12px;color:var(--muted);font:500 var(--label-size)/1.5 var(--mono);letter-spacing:var(--label-tracking);text-transform:uppercase}.fw-site .footer-links ul{position:relative;isolation:isolate;display:grid;width:fit-content;max-width:100%;gap:4px;list-style:none;padding:0;margin:0}.fw-site .footer-links a{display:flex;align-items:center;width:fit-content;min-height:32px;margin-inline:-4px;padding:4px;background:transparent;color:var(--muted);font-size:var(--text-sm);line-height:1.5}@media(hover:hover)and (pointer:fine){.fw-site .footer-links a:hover,.fw-site .footer-bottom a:hover{color:var(--ink);text-decoration:underline}.fw-site .footer-control:hover{background:var(--canvas)}}.fw-site .footer-panorama{position:absolute;inset:0 calc(-1 * (var(--footer-inset) + 1px));z-index:-1;display:flex;align-items:end;pointer-events:none}.fw-site .footer-panorama:after{content:"";position:absolute;inset:auto 0 0;aspect-ratio:2164 / 727;background:var(--footer-artwork-wash);pointer-events:none}.fw-site .footer-artwork{position:relative;width:100%;aspect-ratio:2164 / 727;overflow:hidden;mix-blend-mode:var(--footer-artwork-blend);opacity:var(--footer-artwork-opacity)}.fw-site .footer-water{display:block;width:100%;height:auto;object-fit:contain}.fw-site .footer-water,.fw-site .footer-boat image{filter:var(--footer-artwork-filter)}.fw-site .footer-fog image{filter:var(--footer-fog-filter);transform:scaleY(var(--footer-fog-height));transform-box:fill-box;transform-origin:center}.fw-site .footer-atmosphere{position:absolute;inset:0;width:100%;height:100%}.fw-site .footer-animated{animation-play-state:paused!important}.fw-site .footer-artwork[data-running=true] .footer-animated{animation-play-state:running!important}.fw-site .footer-fog--high{opacity:var(--footer-fog-high-opacity);transform:translate(1040px,80px);animation:footer-fog-high 82s linear -51s infinite}.fw-site .footer-fog--bridge{opacity:var(--footer-fog-bridge-opacity);transform:translate(80px,210px);animation:footer-fog-bridge 64s linear -26s infinite}.fw-site .footer-fog--low{opacity:var(--footer-fog-low-opacity);transform:translate(760px,360px);animation:footer-fog-low 73s linear -44s infinite}.fw-site .footer-boat--far{animation:footer-boat-far 62s linear -14s infinite}.fw-site .footer-boat--middle{animation:footer-boat-middle 52s linear -24s infinite}.fw-site .footer-boat--near{animation:footer-boat-near 44s linear -30s infinite}@keyframes footer-fog-high{0%{transform:translate(-920px,80px)}to{transform:translate(2184px,88px)}}@keyframes footer-fog-bridge{0%{transform:translate(-1120px,210px)}to{transform:translate(2184px,222px)}}@keyframes footer-fog-low{0%{transform:translate(-1020px,360px)}to{transform:translate(2184px,352px)}}@keyframes footer-boat-far{0%{transform:translate(-140px,1px);opacity:0}8%,92%{opacity:1}50%{transform:translate(280px,-1px)}to{transform:translate(700px,1px);opacity:0}}@keyframes footer-boat-middle{0%{transform:translate(-260px,2px);opacity:0}8%,92%{opacity:1}50%{transform:translate(110px,-2px)}to{transform:translate(480px,2px);opacity:0}}@keyframes footer-boat-near{0%{transform:translate(-440px,2px);opacity:0}8%,92%{opacity:1}50%{transform:translate(-130px,-2px)}to{transform:translate(180px,2px);opacity:0}}.fw-site .footer-bottom{display:grid;grid-template-columns:max-content minmax(0,1fr) 48px 48px;border-top:1px solid var(--line);background:var(--paper);color:var(--muted);font-size:var(--text-xs);line-height:1.6}.fw-site .footer-bottom>span{padding:16px 24px}.fw-site .footer-copyright{white-space:nowrap}.fw-site .footer-bottom>span+span{border-left:1px solid var(--line)}.fw-site .footer-bottom a{text-decoration:underline}.fw-site .footer-control{display:grid;place-items:center;min-height:48px;padding:0;border:0;border-left:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;touch-action:manipulation}.fw-site .footer-control:disabled{color:var(--muted);cursor:default}.fw-site .footer-control:focus-visible{outline-offset:-5px}@media(prefers-reduced-motion:reduce){.fw-site .footer-animated{animation:none!important}}@media(min-width:1100px){.fw-site .site-footer{--footer-inset: 32px}}@media(max-width:900px){.fw-site .footer-body{grid-template-columns:1fr}.fw-site .footer-links{grid-column:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr)}}@media(max-width:600px){.fw-site .site-footer{--footer-inset: 16px}.fw-site .footer-heading{grid-template-columns:1fr}.fw-site .footer-bottom{grid-template-columns:minmax(0,1fr) 48px 48px}.fw-site .footer-copyright{grid-column:1;grid-row:1}.fw-site .footer-credit{grid-column:1 / -1;grid-row:2}.fw-site .footer-motion-control{grid-column:2;grid-row:1}.fw-site .footer-theme-control{grid-column:3;grid-row:1}.fw-site .footer-brand{padding:16px;border-right:0;border-bottom:1px solid var(--line)}.fw-site .footer-heading h2{grid-column:1;grid-row:2;padding:20px 16px;font-size:32px}.fw-site .footer-lead{grid-row:3;padding:20px 16px;border-right:0;border-top:1px solid var(--line)}.fw-site .footer-links{grid-template-columns:repeat(2,minmax(0,1fr))}.fw-site .footer-links>div{padding:16px}.fw-site .footer-links>:last-child{grid-column:1 / -1;border-left:0;border-top:1px solid var(--line)}.fw-site .footer-bottom>span{padding:12px 16px}.fw-site .footer-bottom>span+span{border-left:0;border-top:1px solid var(--line)}}.fw-site .section-heading h1{max-width:min(900px,100%);padding:20px 24px 24px}.fw-site .pricing-intro .section-drawing{flex:none}.fw-site .pricing-lead{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);border-bottom:1px solid var(--line)}.fw-site .pricing-actions{display:flex;min-width:0;flex-direction:column;justify-content:space-between;gap:16px;padding:24px;border-left:1px solid var(--line)}.fw-site .pricing-note{margin:0;color:var(--muted);font:500 var(--label-size)/1.5 var(--mono);letter-spacing:var(--label-tracking);text-transform:uppercase}.fw-site .pricing-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px}.fw-site .plan-rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:auto;gap:1px;margin:0;padding:0;background:var(--line);list-style:none}.fw-site .plan{display:grid;min-width:0;grid-row:span 5;grid-template-rows:subgrid;row-gap:0;background:var(--paper)}.fw-site .plan-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:20px 24px;border-bottom:1px solid var(--line)}.fw-site .plan[data-featured] .plan-head{border-bottom-color:var(--ink);background:var(--ink)}.fw-site .plan[data-featured] .plan-head .tag{color:var(--paper)}.fw-site .plan-mark{color:var(--paper);font:500 var(--label-size)/1.5 var(--mono);letter-spacing:var(--label-tracking);text-transform:uppercase}.fw-site .plan-price{display:flex;flex-direction:column;gap:6px;margin:0;padding:24px 24px 0}.fw-site .plan-amount{color:var(--ink);font-family:var(--mono);font-size:32px;font-weight:450;font-variant-numeric:tabular-nums slashed-zero;letter-spacing:-.04em;line-height:1.1}.fw-site .plan-unit{color:var(--muted);font-size:var(--text-sm)}.fw-site .plan-body{display:flex;flex-direction:column;gap:12px;padding:16px 24px 24px}.fw-site .plan-typical{margin:0;color:var(--muted);font-size:var(--text-sm);line-height:1.5}.fw-site .plan-typical strong{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.fw-site .plan-features{margin:0;padding:0;border-top:1px solid var(--line);list-style:none}.fw-site .plan-features li{padding:12px 24px;border-bottom:1px solid var(--line);color:var(--ink);font-size:var(--text-sm);line-height:1.5}.fw-site .plan-cta{display:flex;align-items:flex-end;padding:24px}.fw-site .plan-cta .button{width:100%;justify-content:space-between}.fw-site .plan-enterprise{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 32px;padding:24px;border-top:1px solid var(--line)}.fw-site .plan-enterprise>div{display:flex;max-width:68ch;flex-direction:column;gap:8px}.fw-site .compare-scroll{overflow-x:auto;overscroll-behavior-x:contain}.fw-site .compare-scroll:focus-visible{outline-offset:-4px}.fw-site .compare-table{width:100%;min-width:760px;border-collapse:collapse;font-size:var(--text-sm);line-height:1.5}.fw-site .compare-table th,.fw-site .compare-table td{padding:14px 24px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.fw-site .compare-table tbody tr:last-child>*{border-bottom:0}.fw-site .compare-table :is(th,td)+:is(th,td){border-left:1px solid var(--line)}.fw-site .compare-table thead th{color:var(--muted);font:500 var(--label-size)/1.5 var(--mono);letter-spacing:var(--label-tracking);text-transform:uppercase}.fw-site .compare-table thead th[data-featured]{color:var(--ink)}.fw-site .compare-table tbody th{position:sticky;left:0;z-index:1;width:22%;background:var(--paper);color:var(--ink);font-weight:500}.fw-site .compare-table td{color:var(--ink);font-variant-numeric:tabular-nums}.fw-site .compare-table td[data-empty]{color:var(--muted)}.fw-site .program-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.fw-site .program-apply{margin-top:auto;align-self:flex-start}.fw-site .faq-grid{display:grid;flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;background:var(--line)}.fw-site .faq-item{display:flex;min-width:0;flex-direction:column;gap:12px;padding:24px;background:var(--paper)}.fw-site .faq-question{color:var(--ink);font-size:var(--text-lg);font-weight:550;letter-spacing:-.015em;line-height:1.3}.fw-site .faq-item dd{max-width:60ch;margin:0}@media(max-width:1099px){.fw-site .plan-rail{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.fw-site .pricing-lead{grid-template-columns:minmax(0,1fr)}.fw-site .pricing-actions{border-top:1px solid var(--line);border-left:0}.fw-site .faq-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:600px){.fw-site .section-heading h1{padding:16px 16px 20px;font-size:32px}.fw-site .plan-rail,.fw-site .program-rail{grid-template-columns:minmax(0,1fr)}.fw-site .plan-head,.fw-site .plan-features li{padding-inline:16px}.fw-site .plan-price{padding:20px 16px 0}.fw-site .plan-body{padding:12px 16px 20px}.fw-site .plan-cta,.fw-site .plan-enterprise,.fw-site .pricing-actions,.fw-site .faq-item{padding:20px 16px}.fw-site .compare-table th,.fw-site .compare-table td{padding:12px 16px}.fw-site .compare-table tbody th{width:9rem}} +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--shimmer-angle:20deg;--console-head-pinned:0}*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-content:"";--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--spacing:4px;--font-weight-medium:500;--leading-snug:1.375;--leading-normal:1.5;--radius-md:calc(var(--radius) * .8);--radius-lg:0px;--radius-xl:0px;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-paper:#f2f2f2;--color-ink:#171717;--color-ink-soft:#404040;--color-muted:#606060;--color-line:#e5e5e5;--color-line-strong:#8a8a8a;--color-action:#171717;--color-action-text:#fff;--color-action-hover:#353535;--color-tint-hover:#1717170a;--color-surface:#fff;--color-subtle:#f5f5f5;--color-good:#287247;--color-good-soft:#e4efe8;--color-warn:#85600f;--color-warn-soft:#f4ecda;--color-bad:#8a2533;--color-bad-soft:#f3e3e6;--color-info:var(--color-ink);--color-info-soft:var(--color-subtle);--font-body:Geist, ui-sans-serif, sans-serif;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:18px;--text-xl:24px;--leading-body:1.55;--container-content:1160px;--spacing-gutter:clamp(16px, 4vw, 32px);--spacing-header:72px;--spacing-section:clamp(56px, 7vw, 88px)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--color-ink);outline-offset:3px}[tabindex="-1"]:focus{outline:none}::selection{background:var(--color-ink);color:var(--color-surface)}@media(max-width:700px){:root{--spacing-header:64px;--spacing-card:24px;--spacing-card-lg:24px}}@media(prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation:none!important}}:where([data-slot],[data-slot] *){border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){:where([data-slot],[data-slot] *){outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}button:not(:disabled),[role=button]:not(:disabled){cursor:pointer}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-0{top:0}.right-2{right:calc(var(--spacing) * 2)}.bottom-0{bottom:0}.left-0{left:0}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-10{margin-inline:calc(var(--spacing) * -10)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.-me-px{margin-inline-end:-1px}.-mt-7{margin-top:calc(var(--spacing) * -7)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.-mb-5{margin-bottom:calc(var(--spacing) * -5)}.-mb-px{margin-bottom:-1px}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-auto{height:auto}.h-px{height:1px}.h-screen{height:100vh}.max-h-\(--available-height\){max-height:var(--available-height)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-13{min-height:calc(var(--spacing) * 13)}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-\(--anchor-width\){width:var(--anchor-width)}.w-0{width:0}.w-8{width:calc(var(--spacing) * 8)}.w-\[min\(var\(--container-content\)\,100\%-2\*var\(--spacing-gutter\)\)\]{width:min(var(--container-content),100% - 2 * var(--spacing-gutter))}.w-fit{width:fit-content}.w-full{width:100%}.max-w-140{max-width:calc(var(--spacing) * 140)}.max-w-180{max-width:calc(var(--spacing) * 180)}.max-w-\[46ch\]{max-width:46ch}.max-w-\[60ch\]{max-width:60ch}.max-w-\[65ch\]{max-width:65ch}.max-w-\[1200px\]{max-width:1200px}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-\[320px\]{min-width:320px}.flex-1{flex:1}.flex-none{flex:none}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.origin-\(--transform-origin\){transform-origin:var(--transform-origin)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.scroll-fade-x{--_scroll-fade-size-s:var(--scroll-fade-s-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))));--_scroll-fade-size-e:var(--scroll-fade-e-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))));--scroll-fade-inline:linear-gradient(to right, transparent 0, #000 var(--scroll-fade-s,0px), #000 calc(100% - var(--scroll-fade-e,0px)), transparent 100%)}.scroll-fade-x:where([dir=rtl],[dir=rtl] *){--scroll-fade-inline:linear-gradient(to left, transparent 0, #000 var(--scroll-fade-s,0px), #000 calc(100% - var(--scroll-fade-e,0px)), transparent 100%)}.scroll-fade-x{-webkit-mask-image:var(--scroll-fade-mask,var(--scroll-fade-inline));mask-image:var(--scroll-fade-mask,var(--scroll-fade-inline));-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-composite:source-in;mask-composite:intersect}@supports (animation-timeline:scroll()){.scroll-fade-x{animation:1ms ease-in-out scroll-fade-reveal-s,1ms ease-in-out scroll-fade-reveal-e;animation-timeline:scroll(self inline),scroll(self inline);animation-range:0 var(--scroll-fade-reveal,calc(var(--spacing) * 24)),calc(100% - var(--scroll-fade-reveal,calc(var(--spacing) * 24))) 100%;animation-fill-mode:both}}@supports not (animation-timeline:scroll()){.scroll-fade-x{--scroll-fade-s:var(--_scroll-fade-size-s);--scroll-fade-e:var(--_scroll-fade-size-e)}}.cursor-default{cursor:default}.resize{resize:both}.scroll-my-1{scroll-margin-block:var(--spacing)}.scroll-pt-header{scroll-padding-top:var(--spacing-header)}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[240px_minmax\(0\,1fr\)\]{grid-template-columns:240px minmax(0,1fr)}.grid-cols-\[repeat\(auto-fill\,minmax\(160px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-\(--card-spacing\){gap:var(--card-spacing)}.gap-0{gap:0}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-px{gap:1px}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1{row-gap:var(--spacing)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.rounded-4xl{border-radius:calc(var(--radius) * 2.6)}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md),10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md),12px)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:calc(var(--radius) * .8)}.rounded-none{border-radius:0}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.rounded-b-xl{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-border{border-color:var(--border)}.border-current\/25{border-color:currentColor}@supports (color:color-mix(in lab,red,red)){.border-current\/25{border-color:color-mix(in oklab,currentcolor 25%,transparent)}}.border-input{border-color:var(--input)}.border-line{border-color:var(--color-line)}.border-line-strong{border-color:var(--color-line-strong)}.border-transparent{border-color:#0000}.border-b-line{border-bottom-color:var(--color-line)}.bg-action{background-color:var(--color-action)}.bg-background{background-color:var(--background)}.bg-bad-soft{background-color:var(--color-bad-soft)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.bg-good-soft{background-color:var(--color-good-soft)}.bg-info-soft{background-color:var(--color-info-soft)}.bg-line{background-color:var(--color-line)}.bg-muted,.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.bg-paper{background-color:var(--color-paper)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-subtle{background-color:var(--color-subtle)}.bg-surface{background-color:var(--color-surface)}.bg-tint-hover{background-color:var(--color-tint-hover)}.bg-transparent{background-color:#0000}.bg-warn-soft{background-color:var(--color-warn-soft)}.bg-clip-border{background-clip:border-box}.bg-clip-padding{background-clip:padding-box}.fill-none{fill:none}.stroke-current{stroke:currentColor}.stroke-\[2\.4\]{stroke-width:2.4px}.p-\(--card-spacing\){padding:var(--card-spacing)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-\[3px\]{padding:3px}.px-\(--card-spacing\){padding-inline:var(--card-spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-10{padding-inline:calc(var(--spacing) * 10)}.py-\(--card-spacing\){padding-block:var(--card-spacing)}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-section{padding-block:var(--spacing-section)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-body,.font-heading{font-family:var(--font-body)}.font-mono{font-family:var(--font-mono)}.text-\[0\.8rem\]{font-size:.8rem}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-\[23px\]{font-size:23px}.text-\[28px\]{font-size:28px}.text-\[30px\]{font-size:30px}.text-\[clamp\(30px\,3vw\,40px\)\]{font-size:clamp(30px,3vw,40px)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-\[1\.08\]{--tw-leading:1.08;line-height:1.08}.leading-body{--tw-leading:var(--leading-body);line-height:var(--leading-body)}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-\[450\]{--tw-font-weight:450;font-weight:450}.font-\[550\]{--tw-font-weight:550;font-weight:550}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-\[-0\.03em\]{--tw-tracking:-.03em;letter-spacing:-.03em}.tracking-\[-0\.035em\]{--tw-tracking:-.035em;letter-spacing:-.035em}.tracking-\[0\.4em\]{--tw-tracking:.4em;letter-spacing:.4em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.whitespace-nowrap{white-space:nowrap}.text-action-text{color:var(--color-action-text)}.text-bad{color:var(--color-bad)}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-good{color:var(--color-good)}.text-info{color:var(--color-info)}.text-ink{color:var(--color-ink)}.text-ink-soft{color:var(--color-ink-soft)}.text-muted{color:var(--color-muted)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-warn{color:var(--color-warn)}.uppercase{text-transform:uppercase}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.decoration-line-strong{-webkit-text-decoration-color:var(--color-line-strong);text-decoration-color:var(--color-line-strong)}.underline-offset-4{text-underline-offset:4px}.\[-webkit-font-smoothing\:antialiased\]{-webkit-font-smoothing:antialiased}.scheme-light{color-scheme:light}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-foreground\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background\,border-color\]{transition-property:background,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background\]{transition-property:background;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,background-color\,border-color\]{transition-property:color,background-color,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-160{--tw-duration:.16s;transition-duration:.16s}.ease-\[cubic-bezier\(\.25\,1\,\.5\,1\)\]{--tw-ease:cubic-bezier(.25,1,.5,1);transition-timing-function:cubic-bezier(.25,1,.5,1)}.outline-none{--tw-outline-style:none;outline-style:none}.select-auto{-webkit-user-select:auto;user-select:auto}.select-none{-webkit-user-select:none;user-select:none}.\!paused{animation-play-state:paused!important}.\[--card-spacing\:--spacing\(4\)\]{--card-spacing:calc(var(--spacing) * 4)}.paused{animation-play-state:paused}.running{animation-play-state:running}:is(.\*\:min-w-40>*){min-width:calc(var(--spacing) * 40)}.group-focus-within\/row\:opacity-100:is(:where(.group\/row):focus-within *){opacity:1}.group-hover\/button\:translate-x-0\.5:is(:where(.group\/button):hover *){--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\/row\:opacity-100:is(:where(.group\/row):hover *){opacity:1}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[size\=sm\]\/card\:text-sm:is(:where(.group\/card)[data-size=sm] *){font-size:var(--text-sm)}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}.group-data-horizontal\/tabs\:h-8:is(:where(.group\/tabs):where([data-orientation=horizontal]) *){height:calc(var(--spacing) * 8)}.group-data-horizontal\/tabs\:h-9:is(:where(.group\/tabs):where([data-orientation=horizontal]) *){height:calc(var(--spacing) * 9)}.group-data-vertical\/tabs\:h-fit:is(:where(.group\/tabs):where([data-orientation=vertical]) *){height:fit-content}.group-data-vertical\/tabs\:w-full:is(:where(.group\/tabs):where([data-orientation=vertical]) *){width:100%}.group-data-vertical\/tabs\:flex-col:is(:where(.group\/tabs):where([data-orientation=vertical]) *){flex-direction:column}.group-data-vertical\/tabs\:justify-start:is(:where(.group\/tabs):where([data-orientation=vertical]) *){justify-content:flex-start}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-6::file-selector-button{height:calc(var(--spacing) * 6)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm)}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-x-0:after{content:var(--tw-content);inset-inline:0}.after\:top-full:after{content:var(--tw-content);top:100%}.after\:h-10:after{content:var(--tw-content);height:calc(var(--spacing) * 10)}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:bg-linear-to-b:after{content:var(--tw-content);--tw-gradient-position:to bottom}@supports (background-image:linear-gradient(in lab,red,red)){.after\:bg-linear-to-b:after{--tw-gradient-position:to bottom in oklab}}.after\:bg-linear-to-b:after{background-image:linear-gradient(var(--tw-gradient-stops))}.after\:from-paper:after{content:var(--tw-content);--tw-gradient-from:var(--color-paper);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.after\:to-transparent:after{content:var(--tw-content);--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:duration-150:after{content:var(--tw-content);--tw-duration:.15s;transition-duration:.15s}.group-data-horizontal\/tabs\:after\:inset-x-0:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);inset-inline:0}.group-data-horizontal\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);bottom:-5px}.group-data-horizontal\/tabs\:after\:h-0\.5:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);height:calc(var(--spacing) * .5)}.group-data-vertical\/tabs\:after\:inset-y-0:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);inset-block:0}.group-data-vertical\/tabs\:after\:-right-1:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);right:calc(var(--spacing) * -1)}.group-data-vertical\/tabs\:after\:w-0\.5:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);width:calc(var(--spacing) * .5)}.empty\:hidden:empty{display:none}.hover\:border-ink:hover{border-color:var(--color-ink)}.hover\:border-line-strong:hover{border-color:var(--color-line-strong)}.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:color-mix(in oklch,var(--secondary),var(--foreground) 5%)}}.hover\:bg-action-hover:hover{background-color:var(--color-action-hover)}.hover\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.hover\:bg-muted:hover,.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.hover\:bg-primary\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab,var(--primary) 80%,transparent)}}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-ink:hover{color:var(--color-ink)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:underline:hover{text-decoration-line:underline}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:fixed:focus{position:fixed}.focus\:top-3:focus{top:calc(var(--spacing) * 3)}.focus\:left-3:focus{left:calc(var(--spacing) * 3)}.focus\:z-50:focus{z-index:50}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus,:is(.not-data-\[variant\=destructive\]\:focus\:\*\*\:text-accent-foreground:not([data-variant=destructive]):focus *){color:var(--accent-foreground)}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab,var(--destructive) 40%,transparent)}}.focus-visible\:border-ink:focus-visible{border-color:var(--color-ink)}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-3:focus-visible,.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-3:focus-visible{outline-offset:3px}.focus-visible\:outline-ink:focus-visible{outline-color:var(--color-ink)}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.focus-visible\:outline-solid:focus-visible{--tw-outline-style:solid;outline-style:solid}.active\:not-aria-\[haspopup\]\:translate-y-0:active:not([aria-haspopup]){--tw-translate-y:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-input\/50:disabled{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.disabled\:bg-input\/50:disabled{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-55:disabled{opacity:.55}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius-lg)}.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.has-data-\[icon\=inline-end\]\:pr-1:has([data-icon=inline-end]){padding-right:var(--spacing)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 2)}.has-data-\[icon\=inline-start\]\:pl-1:has([data-icon=inline-start]){padding-left:var(--spacing)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 2)}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[slot\=card-description\]\:grid-rows-\[auto_auto\]:has([data-slot=card-description]){grid-template-rows:auto auto}.has-data-\[slot\=card-footer\]\:pb-0:has([data-slot=card-footer]){padding-bottom:0}.has-\[\>img\:first-child\]\:pt-0:has(>img:first-child){padding-top:0}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-placeholder\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-stuck\:after\:opacity-100[data-stuck]:after{content:var(--tw-content);opacity:1}.data-\[align-trigger\=true\]\:animate-none[data-align-trigger=true]{animation:none}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=inline-end\]\:slide-in-from-left-2[data-side=inline-end]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=inline-start\]\:slide-in-from-right-2[data-side=inline-start],.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-8[data-size=default]{height:calc(var(--spacing) * 8)}.data-\[size\=sm\]\:h-7[data-size=sm]{height:calc(var(--spacing) * 7)}.data-\[size\=sm\]\:rounded-\[min\(var\(--radius-md\)\,10px\)\][data-size=sm]{border-radius:min(var(--radius-md),10px)}.data-\[size\=sm\]\:\[--card-spacing\:--spacing\(3\)\][data-size=sm]{--card-spacing:calc(var(--spacing) * 3)}.data-\[size\=sm\]\:has-data-\[slot\=card-footer\]\:pb-0[data-size=sm]:has([data-slot=card-footer]){padding-bottom:0}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-1\.5>*)[data-slot=select-value]{gap:calc(var(--spacing) * 1.5)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}@media(prefers-reduced-motion:reduce){.motion-reduce\:scroll-auto{scroll-behavior:auto}}@media(min-width:48rem){.md\:text-base{font-size:var(--text-base)}.md\:text-sm{font-size:var(--text-sm)}}.dark\:border-input:where([data-theme=dark],[data-theme=dark] *){border-color:var(--input)}.dark\:bg-destructive\/20:where([data-theme=dark],[data-theme=dark] *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/20:where([data-theme=dark],[data-theme=dark] *){background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.dark\:bg-input\/30:where([data-theme=dark],[data-theme=dark] *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:where([data-theme=dark],[data-theme=dark] *){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}.dark\:text-muted-foreground:where([data-theme=dark],[data-theme=dark] *){color:var(--muted-foreground)}.dark\:hover\:bg-destructive\/30:where([data-theme=dark],[data-theme=dark] *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-destructive\/30:where([data-theme=dark],[data-theme=dark] *):hover{background-color:color-mix(in oklab,var(--destructive) 30%,transparent)}}.dark\:hover\:bg-input\/50:where([data-theme=dark],[data-theme=dark] *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:where([data-theme=dark],[data-theme=dark] *):hover{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}.dark\:hover\:bg-muted\/50:where([data-theme=dark],[data-theme=dark] *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-muted\/50:where([data-theme=dark],[data-theme=dark] *):hover{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.dark\:hover\:text-foreground:where([data-theme=dark],[data-theme=dark] *):hover{color:var(--foreground)}.dark\:focus-visible\:ring-destructive\/40:where([data-theme=dark],[data-theme=dark] *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:where([data-theme=dark],[data-theme=dark] *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:disabled\:bg-input\/80:where([data-theme=dark],[data-theme=dark] *):disabled{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:disabled\:bg-input\/80:where([data-theme=dark],[data-theme=dark] *):disabled{background-color:color-mix(in oklab,var(--input) 80%,transparent)}}.dark\:aria-invalid\:border-destructive\/50:where([data-theme=dark],[data-theme=dark] *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:border-destructive\/50:where([data-theme=dark],[data-theme=dark] *)[aria-invalid=true]{border-color:color-mix(in oklab,var(--destructive) 50%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:where([data-theme=dark],[data-theme=dark] *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:where([data-theme=dark],[data-theme=dark] *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.data-open\:animate-in:where([data-state=open]),.data-open\:animate-in:where([data-open]:not([data-open=false])){animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-open\:fade-in-0:where([data-state=open]),.data-open\:fade-in-0:where([data-open]:not([data-open=false])){--tw-enter-opacity:0}.data-open\:zoom-in-95:where([data-state=open]),.data-open\:zoom-in-95:where([data-open]:not([data-open=false])){--tw-enter-scale:.95}.data-closed\:animate-out:where([data-state=closed]),.data-closed\:animate-out:where([data-closed]:not([data-closed=false])){animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:fade-out-0:where([data-state=closed]),.data-closed\:fade-out-0:where([data-closed]:not([data-closed=false])){--tw-exit-opacity:0}.data-closed\:zoom-out-95:where([data-state=closed]),.data-closed\:zoom-out-95:where([data-closed]:not([data-closed=false])){--tw-exit-scale:.95}.data-disabled\:pointer-events-none:where([data-disabled=true]),.data-disabled\:pointer-events-none:where([data-disabled]:not([data-disabled=false])){pointer-events:none}.data-disabled\:opacity-50:where([data-disabled=true]),.data-disabled\:opacity-50:where([data-disabled]:not([data-disabled=false])){opacity:.5}.data-active\:bg-background:where([data-state=active]),.data-active\:bg-background:where([data-active]:not([data-active=false])){background-color:var(--background)}.data-active\:text-foreground:where([data-state=active]),.data-active\:text-foreground:where([data-active]:not([data-active=false])){color:var(--foreground)}.group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}:is(.group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false]))):after{content:var(--tw-content);opacity:1}.dark\:data-active\:border-input:where([data-theme=dark],[data-theme=dark] *):where([data-state=active]),.dark\:data-active\:border-input:where([data-theme=dark],[data-theme=dark] *):where([data-active]:not([data-active=false])){border-color:var(--input)}.dark\:data-active\:bg-input\/30:where([data-theme=dark],[data-theme=dark] *):where([data-state=active]),.dark\:data-active\:bg-input\/30:where([data-theme=dark],[data-theme=dark] *):where([data-active]:not([data-active=false])){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-active\:bg-input\/30:where([data-theme=dark],[data-theme=dark] *):where([data-state=active]),.dark\:data-active\:bg-input\/30:where([data-theme=dark],[data-theme=dark] *):where([data-active]:not([data-active=false])){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}.dark\:data-active\:text-foreground:where([data-theme=dark],[data-theme=dark] *):where([data-state=active]),.dark\:data-active\:text-foreground:where([data-theme=dark],[data-theme=dark] *):where([data-active]:not([data-active=false])){color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:where([data-theme=dark],[data-theme=dark] *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:where([data-theme=dark],[data-theme=dark] *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:where([data-theme=dark],[data-theme=dark] *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:where([data-theme=dark],[data-theme=dark] *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){background-color:#0000}.data-horizontal\:flex-col:where([data-orientation=horizontal]){flex-direction:column}@media(max-width:860px){.console-narrow\:static{position:static}.console-narrow\:order-last{order:9999}.console-narrow\:-mx-4{margin-inline:calc(var(--spacing) * -4)}.console-narrow\:mt-0{margin-top:0}.console-narrow\:ml-auto{margin-left:auto}.console-narrow\:hidden{display:none}.console-narrow\:h-auto{height:auto}.console-narrow\:w-full{width:100%}.console-narrow\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.console-narrow\:grid-cols-\[minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr)}.console-narrow\:flex-row{flex-direction:row}.console-narrow\:flex-wrap{flex-wrap:wrap}.console-narrow\:items-center{align-items:center}.console-narrow\:gap-3{gap:calc(var(--spacing) * 3)}.console-narrow\:gap-x-3{column-gap:calc(var(--spacing) * 3)}.console-narrow\:gap-y-2{row-gap:calc(var(--spacing) * 2)}.console-narrow\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.console-narrow\:border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.console-narrow\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.console-narrow\:px-0{padding-inline:0}.console-narrow\:px-4{padding-inline:calc(var(--spacing) * 4)}.console-narrow\:py-3{padding-block:calc(var(--spacing) * 3)}.console-narrow\:pt-0{padding-top:0}.console-narrow\:pt-3{padding-top:calc(var(--spacing) * 3)}.console-narrow\:pb-12{padding-bottom:calc(var(--spacing) * 12)}.console-narrow\:text-\[26px\]{font-size:26px}}@media(max-width:700px){.mobile\:mb-6{margin-bottom:calc(var(--spacing) * 6)}.mobile\:size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.mobile\:px-4{padding-inline:calc(var(--spacing) * 4)}.mobile\:py-8{padding-block:calc(var(--spacing) * 8)}.mobile\:text-xl{font-size:var(--text-xl)}}.\[\&_\:is\(th\,td\)\]\:h-11 :is(th,td){height:calc(var(--spacing) * 11)}.\[\&_\:is\(th\,td\)\]\:px-3 :is(th,td){padding-inline:calc(var(--spacing) * 3)}.\[\&_\:is\(th\,td\)\]\:py-0 :is(th,td){padding-block:0}.\[\&_\:is\(th\,td\)\:first-child\]\:pl-5 :is(th,td):first-child{padding-left:calc(var(--spacing) * 5)}.\[\&_\:is\(th\,td\)\:last-child\]\:pr-5 :is(th,td):last-child{padding-right:calc(var(--spacing) * 5)}.\[\&_a\:not\(\[data-slot\]\)\]\:font-medium a:not([data-slot]){--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_a\:not\(\[data-slot\]\)\]\:text-ink a:not([data-slot]){color:var(--color-ink)}.\[\&_a\:not\(\[data-slot\]\)\]\:underline-offset-4 a:not([data-slot]){text-underline-offset:4px}.\[\&_a\:not\(\[data-slot\]\)\:hover\]\:underline a:not([data-slot]):hover{text-decoration-line:underline}.\[\&_code\]\:font-mono code{font-family:var(--font-mono)}.\[\&_code\]\:text-\[13px\] code{font-size:13px}.\[\&_p\>a\]\:font-medium p>a{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_p\>a\]\:text-ink p>a{color:var(--color-ink)}.\[\&_p\>a\]\:underline p>a{text-decoration-line:underline}.\[\&_p\>a\]\:decoration-line p>a{-webkit-text-decoration-color:var(--color-line);text-decoration-color:var(--color-line)}.\[\&_p\>a\]\:underline-offset-4 p>a{text-underline-offset:4px}.hover\:\[\&_p\>a\]\:decoration-ink:hover p>a{-webkit-text-decoration-color:var(--color-ink);text-decoration-color:var(--color-ink)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_tbody_tr\]\:hover\:bg-tint-hover tbody tr:hover{background-color:var(--color-tint-hover)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\.border-b\]\:pb-\(--card-spacing\).border-b{padding-bottom:var(--card-spacing)}.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.\[a\]\:hover\:bg-muted:is(a):hover{background-color:var(--muted)}.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:color-mix(in oklab,var(--primary) 80%,transparent)}}.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:color-mix(in oklab,var(--secondary) 80%,transparent)}}.\[a\]\:hover\:text-muted-foreground:is(a):hover{color:var(--muted-foreground)}:is(.\*\:\[img\:first-child\]\:rounded-t-xl>*):is(img:first-child){border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}:is(.\*\:\[img\:last-child\]\:rounded-b-xl>*):is(img:last-child){border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}.\[\&\>\*\]\:px-6>*{padding-inline:calc(var(--spacing) * 6)}.\[\&\>\*\]\:py-5>*{padding-block:calc(var(--spacing) * 5)}@media(max-width:700px){.mobile\:\[\&\>\*\]\:px-4>*{padding-inline:calc(var(--spacing) * 4)}}.\[\&\>\*\+\*\]\:border-t>*+*{border-top-style:var(--tw-border-style);border-top-width:1px}.\[\&\>\*\+\*\]\:border-t-line>*+*{border-top-color:var(--color-line)}.\[\&\>li\+li\]\:border-t>li+li{border-top-style:var(--tw-border-style);border-top-width:1px}.\[\&\>li\+li\]\:border-t-line>li+li{border-top-color:var(--color-line)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3\!>svg{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media(hover:hover){.\[\@media\(hover\:hover\)\]\:opacity-0{opacity:0}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --scroll-fade-t{syntax:"";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media(prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}:root{--background:var(--color-surface);--foreground:var(--color-ink);--card:var(--color-surface);--card-foreground:var(--color-ink);--popover:var(--color-surface);--popover-foreground:var(--color-ink);--primary:var(--color-action);--primary-foreground:var(--color-action-text);--secondary:var(--color-subtle);--secondary-foreground:var(--color-ink);--muted:var(--color-tint-hover);--muted-foreground:var(--color-muted);--accent:var(--color-subtle);--accent-foreground:var(--color-ink);--destructive:var(--color-bad);--border:var(--color-line);--input:var(--color-line-strong);--ring:var(--color-ink);--radius:0px}:root[data-theme=dark]{color-scheme:dark;--color-paper:#111;--color-surface:#1b1b1b;--color-subtle:#242424;--color-ink:#f2f2f2;--color-ink-soft:#d4d4d4;--color-muted:#b2b2b2;--color-quiet:#b2b2b2;--color-line:#393939;--color-line-strong:#737373;--color-action:#ededed;--color-action-text:#171717;--color-action-hover:#d2d2d2;--color-bay-deep:#f2f2f2;--color-bridge:#ec7a68;--color-tint-hover:#f2f2f20f;--color-tint-active:#f2f2f21a;--color-good:#8cc69e;--color-good-soft:#1e3125;--color-warn:#d7ba79;--color-warn-soft:#372d18;--color-bad:#e8a0ab;--color-bad-soft:#3c2127}.scroll-fade-x,.console-table>[data-slot=table-container]{--scroll-fade-size:2.5rem;--scroll-fade-reveal:3rem;scrollbar-width:none}@supports not (animation-timeline:scroll()){.scroll-fade-x,.console-table>[data-slot=table-container]{--scroll-fade-s:0px;--scroll-fade-e:0px}}html:has(#console-main){scroll-padding-top:calc(var(--console-bar-h,0px) + 3rem)}@property --console-head-pinned{syntax:"";inherits:true;initial-value:0}@keyframes console-head-pin{0%{--console-head-pinned:0}to{--console-head-pinned:1}}@media(max-width:860px){.console-table>[data-slot=table-container]{--_scroll-fade-size-s:var(--scroll-fade-s-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))));--_scroll-fade-size-e:var(--scroll-fade-e-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))));--scroll-fade-inline:linear-gradient(to right, transparent 0, #000 var(--scroll-fade-s,0px), #000 calc(100% - var(--scroll-fade-e,0px)), transparent 100%)}.console-table>[data-slot=table-container]:where([dir=rtl],[dir=rtl] *){--scroll-fade-inline:linear-gradient(to left, transparent 0, #000 var(--scroll-fade-s,0px), #000 calc(100% - var(--scroll-fade-e,0px)), transparent 100%)}.console-table>[data-slot=table-container]{-webkit-mask-image:var(--scroll-fade-mask,var(--scroll-fade-inline));mask-image:var(--scroll-fade-mask,var(--scroll-fade-inline));-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-composite:source-in;mask-composite:intersect}@supports (animation-timeline:scroll()){.console-table>[data-slot=table-container]{animation:1ms ease-in-out scroll-fade-reveal-s,1ms ease-in-out scroll-fade-reveal-e;animation-timeline:scroll(self inline),scroll(self inline);animation-range:0 var(--scroll-fade-reveal,calc(var(--spacing) * 24)),calc(100% - var(--scroll-fade-reveal,calc(var(--spacing) * 24))) 100%;animation-fill-mode:both}}@supports not (animation-timeline:scroll()){.console-table>[data-slot=table-container]{--scroll-fade-s:var(--_scroll-fade-size-s);--scroll-fade-e:var(--_scroll-fade-size-e)}}}@media(min-width:861px){.console-table>[data-slot=table-container]{overflow:visible}.console-table table{view-timeline:--console-table block;view-timeline-inset:var(--console-bar-h,0px) 0px}.console-table thead tr{border-bottom-width:0}.console-table th{top:var(--console-bar-h,0px);z-index:30;background:var(--color-surface);box-shadow:inset 0 -1px 0 var(--color-line),0 -1px #e5e5e5;position:sticky}@supports (color:color-mix(in lab,red,red)){.console-table th{box-shadow:inset 0 -1px 0 var(--color-line),0 -1px color-mix(in oklab,var(--color-line) calc(var(--console-head-pinned) * 100%),transparent)}}.console-table th:after{content:"";pointer-events:none;background:linear-gradient(to bottom,var(--color-surface),transparent);height:2.5rem;opacity:var(--console-head-pinned);inset-inline:0;position:absolute;top:100%}@supports (animation-timeline:view()){.console-table th{animation:1ms linear both console-head-pin;animation-timeline:--console-table;animation-range:exit-crossing 0 exit-crossing 1px}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}@keyframes scroll-fade-reveal-s{0%{--scroll-fade-s:0px}to{--scroll-fade-s:var(--_scroll-fade-size-s,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))))}}@keyframes scroll-fade-reveal-e{0%{--scroll-fade-e:var(--_scroll-fade-size-e,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))))}to{--scroll-fade-e:0px}}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-variable.woff2) format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-mono-variable.woff2) format("woff2")}.fw-site{color-scheme:light;--light-paper: #ffffff;--light-ink: #171717;--light-muted: #606060;--light-line: #e5e5e5;--paper: var(--light-paper);--canvas: #f2f2f2;--surface: #f5f5f5;--ink: var(--light-ink);--muted: var(--light-muted);--line: var(--light-line);--accent: var(--light-ink);--accent-text: #ffffff;--accent-hover: #353535;--accent-active: #000000;--panel: #171717;--panel-text: #ffffff;--panel-dim: #b8b8b8;--panel-line: #3a3a3a;--admit: #287247;--defer: #85600f;--reject: #8a2533;--bridge: #b8392e;--scroll-thumb: #8a8a8a;--drawing-edge: #575757;--drawing-mid: #a3a3a3;--drawing-lo: #d4d4d4;--platform-side: #e5e5e5;--platform-top: #f7f7f7;--platform-edge: #8a8a8a;--guide-rail: #b5b5b5;--production-fill: #d6ebcd;--production-edge: #2f673a;--production-detail: #719268;--production-mark: #24562f;--hold-fill: #f1e5c6;--hold-edge: #8a692f;--hold-detail: #b6a276;--release-fill: #ead8aa;--release-hover: #efcd83;--release-edge: #80632e;--release-text: #49340f;--release-guide: #b08038;--reject-fill: #f1d9dd;--reject-edge: var(--reject);--reject-detail: #c4909a;--flood-lane: #dcdcdc;--zone-label: #333333;--zone-secondary: #636363;--footer-artwork-filter: none;--footer-artwork-blend: normal;--footer-artwork-opacity: 1;--footer-artwork-wash: none;--footer-fog-filter: none;--footer-fog-height: 1;--footer-fog-high-opacity: .4;--footer-fog-bridge-opacity: .62;--footer-fog-low-opacity: .3;--display: Geist, ui-sans-serif, sans-serif;--body: Geist, ui-sans-serif, sans-serif;--mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-sans: var(--body);--font-mono: var(--mono);--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 24px;--display-md: clamp(32px, 3.3vw, 48px);--leading-body: 1.55;--label-size: 11px;--label-tracking: .08em;--content-width: 1280px;--gutter: clamp(20px, 4vw, 64px);--header-height: 80px;--ease-out: cubic-bezier(.25, 1, .5, 1);--motion-fast: .16s;--motion-move: .26s;--motion-reveal: .56s;--section-space: clamp(32px, 4vw, 64px);--deck-gutter: clamp(12px, 2.2vw, 32px);--slide-gap: 24px;--slide-radius: 0px;--header-offset: var(--header-height);--slide-height: min(780px, calc(100svh - var(--header-offset) - 48px));--radius: 0px;font-family:var(--body);background:var(--canvas);color:var(--ink)}.fw-site[data-theme=dark]{color-scheme:dark;--paper: #1b1b1b;--canvas: #111111;--surface: #242424;--ink: #f2f2f2;--muted: #b2b2b2;--line: #393939;--accent: #ededed;--accent-text: #171717;--accent-hover: #d2d2d2;--accent-active: #ffffff;--panel: #242424;--panel-text: #f2f2f2;--panel-dim: #b2b2b2;--panel-line: #494949;--admit: #8cc69e;--defer: #d7ba79;--reject: #e8a0ab;--bridge: #ec7a68;--scroll-thumb: #737373;--drawing-edge: #b9b9b9;--drawing-mid: #858585;--drawing-lo: #4c4c4c;--platform-side: #303030;--platform-top: #242424;--platform-edge: #777777;--guide-rail: #626262;--production-fill: #243d2b;--production-edge: #83bb8b;--production-detail: #63866c;--production-mark: #b5dfbc;--hold-fill: #44381f;--hold-edge: #cfab68;--hold-detail: #a48c60;--release-fill: #c7a366;--release-hover: #debd83;--release-edge: #eed3a3;--release-text: #221b11;--release-guide: #cfab68;--reject-fill: #43222a;--reject-edge: var(--reject);--reject-detail: #9c6670;--flood-lane: #3a3a3a;--zone-label: #dedede;--zone-secondary: #b2b2b2;--footer-artwork-filter: invert(1) hue-rotate(180deg);--footer-artwork-blend: screen;--footer-artwork-opacity: .82;--footer-artwork-wash: linear-gradient(180deg, transparent, color-mix(in srgb, var(--paper) 80%, transparent) 14%, color-mix(in srgb, var(--paper) 58%, transparent) 40%, color-mix(in srgb, var(--paper) 34%, transparent) 66%, color-mix(in srgb, var(--paper) 20%, transparent));--footer-fog-filter: brightness(0) invert(.9) blur(8px);--footer-fog-height: .55;--footer-fog-high-opacity: .1;--footer-fog-bridge-opacity: .14;--footer-fog-low-opacity: .06}html.fw-site,.fw-site body,.fw-site:not(html){overscroll-behavior:auto}@media(hover:hover)and (pointer:fine){html.fw-site,.fw-site body,.fw-site:not(html){overscroll-behavior:none}}html.fw-site{scroll-behavior:smooth;scroll-padding-top:var(--header-offset);scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--canvas)}@media(forced-colors:active){html.fw-site{scrollbar-width:auto;scrollbar-color:auto}}.fw-site body,.fw-site:not(html){min-width:320px;margin:0;background:var(--canvas);color:var(--ink);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased}.fw-site a{color:inherit;text-decoration:none;text-underline-offset:5px}.fw-site button,.fw-site a{-webkit-tap-highlight-color:transparent}.fw-site :focus-visible{outline:2px solid var(--accent);outline-offset:5px}.fw-site .skip-link{position:fixed;inset-block-start:12px;inset-inline-start:var(--deck-gutter);z-index:100;padding:12px 16px;background:var(--ink);color:var(--paper);transform:translateY(calc(-100% - 24px))}.fw-site .skip-link:focus-visible{transform:translateY(0)}.fw-site [tabindex="-1"]:focus{outline:none}.fw-site ::selection{background:var(--accent);color:var(--accent-text)}.fw-site main{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--slide-gap);width:min(1440px,100% - 2 * var(--deck-gutter));margin-inline:auto;padding-block:0 var(--slide-gap)}.fw-site main>section{width:100%;margin:0;padding:var(--section-space) var(--gutter);border:1px solid var(--line);border-radius:var(--slide-radius);background:var(--paper)}@media(min-width:1100px){.fw-site main>section{min-height:var(--slide-height)}}.fw-site .page-width{width:min(var(--content-width),100% - 2 * var(--gutter));margin-inline:auto}.fw-site h1,.fw-site h2,.fw-site h3,.fw-site p{margin:0;overflow-wrap:anywhere}.fw-site h1,.fw-site h2{text-wrap:balance}.fw-site p{text-wrap:pretty}.fw-site .display-heading{font-size:var(--display-md);letter-spacing:-.04em;line-height:1.08}.fw-site .staccato-heading{font-weight:350}.fw-site .staccato-heading strong{font-weight:650}.fw-site .logo{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-size:25px;font-weight:600;letter-spacing:-.04em;line-height:1}.fw-site .logo sup{margin-left:3px;font-size:9px;vertical-align:super}.fw-site .brand-mark{width:34px;height:34px;flex:none}.fw-site .brand-mark rect,.fw-site .brand-mark path{fill:none;stroke:currentColor;stroke-width:2.4}.fw-site .button{display:inline-flex;align-items:center;justify-content:center;gap:20px;border:1px solid transparent;border-radius:var(--radius);background:var(--accent);color:var(--accent-text);font-weight:500;white-space:nowrap;transition:background var(--motion-fast) var(--ease-out)}@media(hover:hover)and (pointer:fine){.fw-site .button:hover{background:var(--accent-hover)}}.fw-site .button .button-brand{margin-inline-end:-8px}.fw-site .button:active{background:var(--accent-active)}.fw-site .button-sm{min-height:44px;padding:0 20px;font-size:var(--text-sm)}.fw-site .button-lg{min-height:52px;padding:0 24px;font-size:var(--text-sm)}.fw-site .button svg,.fw-site .hero-link svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5}.fw-site .card{min-width:0}.fw-site .ui-icon{flex:none;vertical-align:middle}@media(max-width:700px){.fw-site .logo{font-size:23px}}@media(prefers-reduced-motion:reduce){html.fw-site{scroll-behavior:auto}.fw-site *,.fw-site *:before,.fw-site *:after{animation:none!important;transition:none!important}}.fw-site .site-header{position:sticky;top:0;z-index:50;background:var(--canvas)}.fw-site .nav-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:var(--header-height)}.fw-site .nav-links{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;align-self:stretch}.fw-site .nav-links>a,.fw-site .nav-menu-button{position:relative;display:inline-flex;align-items:stretch;justify-content:center;min-height:44px;padding:0;color:var(--muted);font-size:15px;font-weight:500;transition:color var(--motion-fast) var(--ease-out)}.fw-site .nav-links>a[data-current],.fw-site .nav-menu-button[data-current],.fw-site .nav-menu-button[aria-expanded=true],.fw-site .nav-links>a[data-fluid-hover-active],.fw-site .nav-links>a:has([data-fluid-hover-active]),.fw-site .nav-menu-button:has([data-fluid-hover-active]){color:var(--ink)}.fw-site .nav-item{display:inline-flex;align-items:center;align-self:stretch;gap:6px;padding:0 24px}.fw-site .nav-hover{z-index:0;border:1px solid var(--line);background:var(--paper)}.fw-site .nav-indicator{position:absolute;left:0;bottom:0;width:1px;height:2px;background:var(--ink);transform-origin:left center;visibility:hidden;pointer-events:none;transition:transform var(--motion-move) var(--ease-out)}.fw-site .nav-links>a:focus-visible,.fw-site .nav-menu-button:focus-visible{outline-offset:-4px}.fw-site .nav-menu{position:relative;display:flex;align-self:stretch}.fw-site .nav-menu-button{border:0;background:none;font-family:inherit;cursor:pointer}.fw-site .nav-menu-chevron{transition:transform var(--motion-fast) var(--ease-out)}.fw-site .nav-menu-button[aria-expanded=true] .nav-menu-chevron{transform:rotate(180deg)}.fw-site .nav-menu-panel{position:absolute;top:100%;left:0;z-index:10;width:720px;border:1px solid var(--line);background:var(--paper);transform-origin:top left}.fw-site .nav-menu-grid{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;padding:0;background:var(--line);list-style:none}.fw-site .nav-menu-grid>li{background:var(--paper)}.fw-site .nav-menu-hover{z-index:0;background:var(--surface)}.fw-site .nav-menu-grid a{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:start;gap:18px;height:100%;padding:24px;color:var(--ink)}.fw-site .nav-menu-grid a:focus-visible{outline-offset:-4px}.fw-site .nav-menu-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);background:var(--paper);color:var(--ink);transition:background var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out)}.fw-site .nav-menu-grid a[aria-current] .nav-menu-icon{border-color:var(--ink);background:var(--ink);color:var(--paper)}.fw-site .nav-menu-text{display:grid;gap:6px;padding-top:2px}.fw-site .nav-menu-label{font-size:var(--text-lg);font-weight:550;letter-spacing:-.01em;line-height:1.3}.fw-site .nav-menu-copy{color:var(--muted);font-size:15px;line-height:1.45}@media(forced-colors:active){.fw-site .nav-hover,.fw-site .nav-menu-hover{forced-color-adjust:none;outline:1px solid CanvasText;outline-offset:-1px}.fw-site .nav-menu-grid a[aria-current] .nav-menu-icon{forced-color-adjust:none;background:CanvasText;color:Canvas}}@media(forced-colors:active){.fw-site .nav-indicator{forced-color-adjust:none;background:CanvasText}}.fw-site .site-header .button{gap:12px}.fw-site .site-header .button svg{width:16px;height:16px}.fw-site .nav-actions{display:flex;align-items:stretch;align-self:stretch;gap:8px}.fw-site .nav-actions>.button{align-self:center}.fw-site .nav-account{--account-slot: 200px;position:relative;display:flex;align-items:center;justify-content:flex-end;width:var(--account-slot)}.fw-site .nav-sign-in,.fw-site .nav-account-button{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;color:var(--ink);font-size:15px;font-weight:500}@media(hover:hover)and (pointer:fine){.fw-site .nav-sign-in:hover{text-decoration:underline;text-underline-offset:4px}.fw-site .nav-account-button:hover .nav-account-name{color:var(--ink)}}.fw-site .nav-account-button{gap:8px;max-width:100%;border:0;background:none;font-family:inherit;cursor:pointer}.fw-site .nav-avatar{display:grid;flex:none;place-items:center;width:30px;height:30px;background:var(--ink);color:var(--paper);font-size:13px;font-weight:600;line-height:1}.fw-site .nav-account-name{min-width:0;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;transition:color var(--motion-fast) var(--ease-out)}.fw-site .nav-account-button[aria-expanded=true] .nav-account-name{color:var(--ink)}.fw-site .nav-account-button[aria-expanded=true] .nav-menu-chevron{transform:rotate(180deg)}.fw-site .nav-account-panel{position:absolute;top:100%;right:0;z-index:10;width:min(300px,calc(100vw - 32px));border:1px solid var(--line);background:var(--paper);transform-origin:top right}.fw-site .nav-account-who{margin:0;padding:16px 20px;border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--text-sm);overflow-wrap:anywhere}.fw-site .nav-account-who strong{display:block;margin-top:2px;color:var(--ink);font-weight:600}.fw-site .nav-account-links{margin:0;padding:0;list-style:none}.fw-site .nav-account-links li:last-child{border-top:1px solid var(--line)}.fw-site .nav-account-links a,.fw-site .nav-account-links button{display:flex;align-items:center;width:100%;min-height:44px;padding:0 20px;border:0;background:none;color:var(--ink);font:inherit;font-size:15px;text-align:start;cursor:pointer;transition:background var(--motion-fast) var(--ease-out)}.fw-site .nav-account-links button[aria-disabled=true]{color:var(--muted);cursor:default}@media(hover:hover)and (pointer:fine){.fw-site .nav-account-links a:hover,.fw-site .nav-account-links button:not([aria-disabled=true]):hover{background:var(--surface)}}.fw-site .nav-account-links a:focus-visible,.fw-site .nav-account-links button:focus-visible,.fw-site .nav-sign-in:focus-visible,.fw-site .nav-account-button:focus-visible{outline-offset:-4px}.fw-site .nav-account-status{margin:0;padding:0 20px 14px;color:var(--muted);font-size:var(--text-sm)}.fw-site .nav-account-status:empty{display:none}@media(max-width:1100px){.fw-site .nav-bar{gap:16px}.fw-site .nav-account{--account-slot: 84px}.fw-site .nav-account-name{display:none}.fw-site .site-header .nav-crate{padding-inline:13px}.fw-site .nav-crate .button-arrow{display:none}.fw-site .nav-crate .button-brand{margin:0}.fw-site .nav-crate-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}@media(max-width:850px){.fw-site{--header-height: 128px}.fw-site .nav-bar{flex-wrap:wrap;gap:12px;padding-block:16px 0}.fw-site .nav-links{order:3;flex-wrap:wrap;width:100%;justify-content:space-between}.fw-site .nav-links>a,.fw-site .nav-menu-button{font-size:var(--text-sm)}.fw-site .nav-item{padding:0 12px}.fw-site .nav-menu{position:static}.fw-site .nav-menu-panel{right:0;left:0;width:auto;transform-origin:top center}.fw-site .nav-account{position:static}.fw-site .site-header .button{padding-inline:14px;font-size:var(--text-xs)}.fw-site .nav-sign-in{font-size:var(--text-sm)}}@media(max-width:600px){.fw-site .nav-menu-grid{grid-template-columns:minmax(0,1fr)}.fw-site .nav-menu-grid a{gap:14px;padding:18px 16px}}@media(max-width:380px){.fw-site .site-header .button .button-arrow{display:none}.fw-site .logo{font-size:20px}.fw-site .site-header .button{padding-inline:10px}}.fw-site main>.hero{--hero-inset: 24px;position:relative;display:grid;place-items:center;padding:clamp(72px,12vw,128px) var(--hero-inset);border-color:transparent;background:transparent;isolation:isolate}.fw-site .halftone-field{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;pointer-events:none;-webkit-mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent),linear-gradient(to bottom,transparent,#000 96px,#000 calc(100% - 160px),transparent);mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent),linear-gradient(to bottom,transparent,#000 96px,#000 calc(100% - 160px),transparent);-webkit-mask-composite:source-in;mask-composite:intersect}.fw-site main>.hero+section{position:relative}.fw-site .hero-intro{display:flex;flex-direction:column;align-items:center;max-width:1040px;min-width:0;text-align:center;overflow-wrap:anywhere}.fw-site .hero-intro h1{font-size:clamp(40px,6.4vw,88px);line-height:1.02;letter-spacing:-.045em;text-wrap:balance}.fw-site .hero-lead{max-width:56ch;margin-top:28px;color:var(--muted);font-size:var(--text-lg);line-height:var(--leading-body)}.fw-site .hero-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:16px 24px;margin-top:36px}.fw-site .hero-actions>*{max-width:100%;white-space:normal}.fw-site .hero-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-size:var(--text-sm);font-weight:600}@media(hover:hover)and (pointer:fine){.fw-site .hero-link:hover{text-decoration:underline}}.fw-site .line-diagram{display:flex;flex:1;flex-direction:column;min-width:0;margin:0;padding-top:var(--diagram-gap);--diagram-gap: 24px}.fw-site .line-diagram .diagram-scene{width:calc(100% - 2 * var(--diagram-gap));margin:auto}.fw-site .line-diagram .diagram-drawing-block{margin-top:var(--diagram-gap)}.fw-site .isometric-stage{--hairline-plate: var(--paper);--hairline-hi: var(--ink);--hairline-edge: var(--drawing-edge);--hairline-mid: var(--drawing-mid);--hairline-lo: var(--drawing-lo);--hairline-stroke: 1;width:100%;aspect-ratio:5 / 4}.fw-site .isometric-stage .sil{stroke-width:1.8}.fw-site .isometric-stage .lo{stroke-width:.7}.fw-site .isometric-stage .hi{stroke-width:2}.fw-site .isometric-stage[data-hairline=processing-line]{aspect-ratio:409 / 225}.fw-site .isometric-stage[data-hairline=processing-line] .sil{stroke-width:1.25}.fw-site .isometric-stage[data-hairline=processing-line] .hi{stroke-width:1.5}.fw-site .isometric-stage[data-hairline=processing-line] .lo{stroke-width:.5}.fw-site .diagram-caption{display:grid;grid-template-columns:minmax(0,1fr) 48px;align-items:stretch;border-top:1px solid var(--line);color:var(--muted);font-size:var(--text-xs)}.fw-site .diagram-motion-control{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:48px;align-self:stretch;border:0;border-left:1px solid var(--line);padding:0;color:var(--ink);background:transparent;font:inherit;cursor:pointer;touch-action:manipulation}.fw-site .diagram-motion-control:disabled{color:var(--muted);cursor:default}.fw-site .diagram-drawing-block{border-top:1px solid var(--line);background:var(--paper)}.fw-site .diagram-error{padding:12px;border-bottom:1px solid var(--line)}.fw-site .diagram-title-block{display:grid;grid-template-columns:repeat(3,minmax(min-content,1fr));gap:1px;margin:0;background:var(--line)}.fw-site .diagram-title-block>div{min-width:0;padding:12px;background:var(--paper)}.fw-site .diagram-hold-block{grid-column:1 / -1}.fw-site .diagram-title-block dt{color:var(--muted);font:500 var(--label-size)/1.4 var(--mono);text-transform:uppercase;letter-spacing:var(--label-tracking);overflow-wrap:anywhere}.fw-site .diagram-title-block dd{margin:6px 0 0;color:var(--ink);font-size:var(--text-lg);font-weight:550;line-height:1.2;font-variant-numeric:tabular-nums}.fw-site[data-count-up=pending] .count-up{animation:count-up-fallback 0s 2.5s both}@keyframes count-up-fallback{0%{opacity:0}to{opacity:1}}.fw-site .diagram-title-block .diagram-stat,.fw-site .diagram-hold-block dd>span:first-child{font-family:var(--mono);font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums slashed-zero}.fw-site .diagram-hold-block dd{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.fw-site .diagram-title-block .diagram-hold-instruction{color:var(--muted);font-size:var(--label-size);font-weight:400;line-height:1.5}@media(max-width:600px){.fw-site .hero-lead{font-size:var(--text-base)}.fw-site .hero-actions{gap:12px;margin-top:28px}}@media(max-width:500px){.fw-site .diagram-title-block>div{padding:10px 8px}.fw-site .diagram-title-block{grid-template-columns:minmax(min-content,.9fr) minmax(min-content,1.2fr) minmax(min-content,.9fr)}.fw-site .diagram-title-block dt{font-size:10px;letter-spacing:.06em}.fw-site .diagram-caption{font-size:var(--label-size)}}.fw-site .diagram-scene{position:relative;container-type:inline-size}@container (width < 580px){.fw-site .isometric-stage[data-hairline=processing-line]{aspect-ratio:300 / 305}}.fw-site .diagram-breadcrumb{position:relative;min-width:0;padding:8px 4px;isolation:isolate}.fw-site .diagram-stage-highlight{position:absolute;top:0;left:0;width:1px;height:1px;transform-origin:top left;background:var(--canvas);visibility:hidden;pointer-events:none;transition:transform var(--motion-move) var(--ease-out)}@media(forced-colors:active){.fw-site .diagram-stage-highlight{outline:1px solid CanvasText;outline-offset:-1px}}.fw-site .diagram-stages{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:0;padding:0;list-style:none;line-height:16px}.fw-site .diagram-stages li{display:inline-flex;align-items:center;gap:4px}.fw-site .diagram-stages .ui-icon{color:var(--muted)}.fw-site .diagram-stage-label{position:relative;display:grid;align-items:center;padding:6px 8px;font-weight:450}.fw-site button.diagram-stage-label{border:0;border-radius:0;background:transparent;color:inherit;font:inherit;font-weight:450;cursor:pointer;touch-action:manipulation}.fw-site button.diagram-stage-label[aria-pressed=true]>span{color:var(--bridge);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--bridge)}.fw-site button.diagram-stage-label:focus-visible{outline-offset:2px}.fw-site .diagram-stage-label>span,.fw-site .diagram-stage-label:after{grid-area:1 / 1}.fw-site .diagram-stage-label:after{content:attr(data-label);font-weight:650;visibility:hidden}.fw-site .diagram-stages [aria-current=step] .diagram-stage-label{color:var(--bridge);font-weight:650}.fw-site .diagram-note{margin:0;padding:12px;border-top:1px solid var(--line);color:var(--muted);font-size:var(--text-xs);line-height:var(--leading-body)}.fw-site .isometric-stage .platform-side{fill:var(--platform-side);stroke:none}.fw-site .isometric-stage .platform-top{fill:var(--platform-top);stroke:var(--platform-edge);stroke-width:1.2}.fw-site .isometric-stage .platform-bottom{stroke:var(--drawing-mid);stroke-width:1}.fw-site .isometric-stage[data-hairline=processing-line] .platform-top{stroke-width:1.2}.fw-site .isometric-stage[data-hairline=processing-line] .platform-bottom{stroke-width:1}.fw-site .isometric-stage .production-box .sil,.fw-site .isometric-stage .recorded-intent .sil{fill:var(--production-fill);stroke:var(--production-edge);stroke-width:1.35}.fw-site .isometric-stage .production-box .lo,.fw-site .isometric-stage .recorded-intent .lo{stroke:var(--production-detail);stroke-width:.55}.fw-site .isometric-stage .production-check{stroke:var(--production-mark);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.fw-site .isometric-stage[data-hairline=processing-line] .production-box .sil,.fw-site .isometric-stage[data-hairline=processing-line] .recorded-intent .sil{stroke-width:1.25}.fw-site .isometric-stage .production-destination .sil{fill:var(--paper);stroke:var(--drawing-edge);stroke-width:1.4}.fw-site .isometric-stage .production-destination .lo{stroke:var(--drawing-mid);stroke-width:.7}.fw-site .isometric-stage[data-hairline=processing-line] .production-check{stroke-width:1.9}.fw-site .isometric-stage .guide-rail{stroke:var(--guide-rail);stroke-width:.65;stroke-linecap:round;stroke-linejoin:round}.fw-site .isometric-stage .held-intent .sil,.fw-site .isometric-stage .deferred-intent .sil{fill:var(--hold-fill);stroke:var(--hold-edge);stroke-width:1.5}.fw-site .isometric-stage .held-intent .lo,.fw-site .isometric-stage .deferred-intent .lo{stroke:var(--hold-detail);stroke-width:.55}.fw-site .isometric-stage[data-hairline=processing-line] .held-intent .sil,.fw-site .isometric-stage[data-hairline=processing-line] .deferred-intent .sil{stroke-width:1.2}.fw-site .isometric-stage [data-flow-route] .sil{transition:fill var(--motion-move) var(--ease-out),stroke var(--motion-move) var(--ease-out)}@media(prefers-reduced-motion:reduce){.fw-site .isometric-stage [data-flow-route] .sil{transition:none}}.fw-site .hold-release-control{position:absolute;width:max(44px,7%);height:44px;transform:translate(-50%,-50%);border:0;border-radius:0;background:transparent;cursor:pointer;touch-action:manipulation}.fw-site .hold-release-control:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.fw-site .hold-release-control:active{background:transparent}.fw-site .hold-release-control:is(:disabled,[aria-disabled=true]){cursor:default}@media(hover:hover)and (pointer:fine){.fw-site .diagram-motion-control:not(:disabled):hover{color:var(--accent);background:var(--canvas)}.fw-site button.diagram-stage-label:not([aria-pressed=true]):hover>span{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--drawing-mid)}.fw-site li:not([aria-current])>button.diagram-stage-label:not([aria-pressed=true]):hover>span{color:var(--ink)}.fw-site .diagram-scene:has(.hold-release-control:not(:disabled,[aria-disabled=true]):hover) .release-button-face .sil{fill:var(--release-hover)}}.fw-site .isometric-stage .release-button-face .sil{fill:var(--release-fill);stroke:var(--release-edge);stroke-width:1.7}.fw-site .isometric-stage[data-hairline=processing-line] .release-button-face .sil{stroke-width:1.25}.fw-site .isometric-stage .release-button-text{fill:var(--release-text);stroke:none;font-family:var(--mono);font-weight:600;pointer-events:none}.fw-site .isometric-stage .human-released-intent .sil{stroke-width:2.3}.fw-site .isometric-stage.manual-release-active .release-guide{stroke:var(--release-guide);stroke-width:1.2}@media(max-width:500px){.fw-site .isometric-stage .release-button-text{font-size:8px}}.fw-site .isometric-stage .callout{pointer-events:none}.fw-site .isometric-stage .callout text{fill:var(--zone-label);stroke:none;font-family:var(--mono);font-weight:500;letter-spacing:.08em;transition:fill var(--motion-move) var(--ease-out)}.fw-site .isometric-stage .callout .callout-index,.fw-site .isometric-stage .callout .callout-sub{fill:var(--zone-secondary)}.fw-site .isometric-stage .callout-leader{stroke:var(--drawing-lo);stroke-width:.75;transition:stroke var(--motion-move) var(--ease-out)}.fw-site .isometric-stage .callout-dot{fill:var(--paper);stroke:var(--drawing-edge);stroke-width:1;transition:fill var(--motion-move) var(--ease-out),stroke var(--motion-move) var(--ease-out)}.fw-site .isometric-stage .callout.is-active text,.fw-site .isometric-stage .callout.is-active .callout-index{fill:var(--bridge)}.fw-site .isometric-stage .callout.is-active .callout-leader{stroke:var(--bridge)}.fw-site .isometric-stage .callout.is-active .callout-dot{fill:var(--bridge);stroke:var(--bridge)}.fw-site .isometric-stage .is-selected .sil{stroke:var(--bridge);stroke-width:1.6}.fw-site .isometric-stage .is-selected .lo{stroke:var(--bridge)}.fw-site .isometric-stage .flood-lane{stroke:var(--flood-lane);stroke-width:.6}.fw-site .isometric-stage .floor-edge{stroke:var(--drawing-mid);stroke-width:.8;stroke-linecap:butt}.fw-site .isometric-stage .floor-mark{stroke:var(--drawing-mid);stroke-width:1.1;stroke-linecap:butt;stroke-linejoin:miter}.fw-site .isometric-stage .rejected-intent .sil{fill:var(--reject-fill);stroke:var(--reject-edge);stroke-width:1.2}.fw-site .isometric-stage .rejected-intent .lo{stroke:var(--reject-detail);stroke-width:.55}@media(max-width:600px){.fw-site main>.hero{--hero-inset: 16px}.fw-site .line-diagram{--diagram-gap: 16px}}.fw-site .isometric-stage .is-recording .sil,.fw-site .isometric-stage .ledger-recording .sil{stroke:var(--ink);stroke-width:1.6}.fw-site .isometric-stage .ledger-chain-link{stroke-width:1.35}@media(min-width:1100px){.fw-site main>.hero{--hero-inset: 32px}.fw-site .line-diagram{--diagram-gap: 32px}.fw-site .line-diagram .diagram-scene{max-width:min(100%,calc((var(--slide-height) - 256px) * 5 / 4))}.fw-site .line-diagram:has([data-hairline=processing-line]) .diagram-scene{max-width:min(100%,calc((var(--slide-height) - 256px) * 409 / 225))}.fw-site .diagram-title-block[data-has-hold=true]{grid-template-columns:minmax(0,1.8fr) repeat(3,minmax(0,1fr))}.fw-site .diagram-hold-block{grid-column:auto}}.fw-site .isometric-stage .flood-intent .sil{stroke:var(--drawing-mid)}.fw-site .isometric-stage .flood-intent .lo{stroke:var(--drawing-lo)}.fw-site .section{--section-inset: 24px;display:flex;flex-direction:column;padding:var(--section-inset)}.fw-site .section-drawing{display:flex;flex:1;flex-direction:column;min-width:0;border:1px solid var(--line);background:var(--paper)}.fw-site .section-heading{display:flex;flex:none;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.fw-site .section-heading h2{max-width:min(900px,100%);padding:20px 24px 24px}.fw-site .section-heading .kicker{display:flex;align-items:center;min-height:28px;margin:0;padding:0 16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font:500 var(--label-size)/1.5 var(--mono);letter-spacing:var(--label-tracking);text-transform:uppercase}.fw-site .tag{margin:0;color:var(--ink);font-size:var(--text-xl);font-weight:550;letter-spacing:-.025em;line-height:1.2}.fw-site .card-copy{color:var(--muted);font-size:var(--text-base);line-height:var(--leading-body)}.fw-site .model-rail,.fw-site .roadmap-grid{display:grid;flex:1;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:0;padding:0;background:var(--line);list-style:none}.fw-site .model-stage{display:flex;min-width:0;flex-direction:column;gap:12px;padding:24px;background:var(--paper)}.fw-site .section-body{display:grid;flex:1;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.fw-site .feature-card{display:flex;min-width:0;flex-direction:column;border-right:1px solid var(--line)}.fw-site .feature-copy{max-width:68ch;margin:0;padding:24px;color:var(--muted);font-size:var(--text-base);line-height:var(--leading-body)}.fw-site .feature-points{display:grid;flex:1;grid-auto-rows:1fr;margin:0;padding:0;border-top:1px solid var(--line);list-style:none}.fw-site .feature-points li{display:grid;grid-template-columns:16px minmax(0,1fr);align-items:start;gap:12px;padding:16px 24px;border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--text-sm);line-height:var(--leading-body)}.fw-site .feature-points li:last-child{border-bottom:0}.fw-site .feature-points .ui-icon{margin-top:3px;color:var(--admit)}.fw-site .evidence-panel{display:flex;min-width:0;flex-direction:column;background:var(--paper);color:var(--ink)}.fw-site .panel-head,.fw-site .panel-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:16px 24px;color:var(--muted);font:500 var(--label-size)/1.5 var(--mono)}.fw-site .panel-head{border-bottom:1px solid var(--line)}.fw-site .panel-foot{border-top:1px solid var(--line)}.fw-site .panel-head>span,.fw-site .panel-foot>span{text-transform:uppercase;letter-spacing:var(--label-tracking)}.fw-site .panel-foot code{color:var(--ink);font-family:var(--mono);font-size:var(--label-size)}.fw-site .panel-status{display:inline-flex;align-items:center;gap:6px;color:var(--admit)}.fw-site .panel-rows{display:grid;flex:1;grid-auto-rows:1fr;margin:0;padding:0;list-style:none}.fw-site .policy-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line)}.fw-site .policy-row:last-child{border-bottom:0}.fw-site .policy-row code{color:var(--ink);font:400 12px/1.5 var(--mono);overflow-wrap:anywhere}.fw-site .policy-row p{max-width:48ch;margin:8px 0 0;color:var(--muted);font-size:var(--text-sm);line-height:var(--leading-body)}.fw-site .verdict-admit{--verdict: var(--admit)}.fw-site .verdict-defer{--verdict: var(--defer)}.fw-site .verdict-reject{--verdict: var(--reject)}.fw-site .verdict{color:var(--verdict)}.fw-site .verdict-badge{display:inline-flex;align-items:center;gap:6px;color:var(--verdict);font:450 11px/1.6 var(--mono)}.fw-site .ledger-row{display:grid;grid-template-columns:80px minmax(0,1fr) minmax(0,1.15fr);border-bottom:1px solid var(--line)}.fw-site .ledger-row:last-child{border-bottom:0}.fw-site .ledger-row>span{min-width:0;padding:14px 16px;color:var(--muted);font-size:var(--text-sm);line-height:1.5;overflow-wrap:anywhere}.fw-site .ledger-row>span+span{border-left:1px solid var(--line)}.fw-site .ledger-row>span:nth-child(2){color:var(--ink)}.fw-site .ledger-row>.verdict{color:var(--verdict);font:450 11px/1.9 var(--mono);white-space:nowrap}.fw-site .roadmap-card{display:grid;min-width:0;grid-row:span 3;grid-template-rows:subgrid;row-gap:0;background:var(--paper)}.fw-site .roadmap-grid{grid-auto-rows:max-content}@media(min-width:901px){.fw-site .roadmap-grid{grid-template-rows:max-content max-content minmax(0,1fr)}}.fw-site .roadmap-card>.tag{display:block;flex:none;padding:20px 24px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:32px;font-weight:450;letter-spacing:-.04em;line-height:1.1;font-variant-numeric:tabular-nums}.fw-site .roadmap-copy{display:grid;grid-row:span 2;grid-template-rows:subgrid;row-gap:0;padding:24px}.fw-site .roadmap-copy h3{margin:0 0 12px;font-size:var(--text-xl);font-weight:550;letter-spacing:-.025em;line-height:1.2}.fw-site .roadmap-copy .card-copy{align-self:start}.fw-site .waitlist-card{display:flex;min-width:0;flex-direction:column;justify-content:center;align-items:flex-start;gap:16px;padding:24px}.fw-site .waitlist-fallback{margin:0;color:var(--muted);font-size:var(--text-sm)}.fw-site .waitlist-fallback a,.fw-site .noscript-note a{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:3px}.fw-site .noscript-note{margin-block:var(--section-space);color:var(--muted);font-size:var(--text-lg);line-height:var(--leading-body)}@media(max-width:900px){.fw-site .model-rail,.fw-site .roadmap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fw-site .section-body{grid-template-columns:minmax(0,1fr)}.fw-site .feature-card{border-right:0;border-bottom:1px solid var(--line)}}@media(max-width:600px){.fw-site .section{--section-inset: 16px}.fw-site .section-heading h2{padding:16px 16px 20px;font-size:32px}.fw-site .section-heading .kicker{padding:0 12px}.fw-site .model-rail,.fw-site .roadmap-grid{grid-template-columns:minmax(0,1fr)}.fw-site .model-stage{padding:20px 16px}.fw-site .model-stage .tag,.fw-site .roadmap-copy h3{font-size:22px}.fw-site .roadmap-card>.tag{padding:16px;font-size:28px}.fw-site .roadmap-copy,.fw-site .feature-copy{padding:20px 16px}.fw-site .waitlist-card,.fw-site .feature-points li,.fw-site .panel-head,.fw-site .panel-foot{padding:16px}.fw-site .policy-row{padding:20px 16px;gap:12px}.fw-site .policy-row code{font-size:var(--label-size)}.fw-site .ledger-row{grid-template-columns:80px minmax(0,1fr)}.fw-site .ledger-row>.verdict{grid-row:1 / 3}.fw-site .ledger-row>span:nth-child(2){grid-column:2;padding-bottom:4px}.fw-site .ledger-row>span:last-child{grid-column:2;padding-top:0}}@media(min-width:1100px){.fw-site .section{--section-inset: 32px;min-height:min(480px,var(--slide-height))}.fw-site #gate{min-height:min(560px,var(--slide-height))}.fw-site #ledger{min-height:min(640px,var(--slide-height))}}.fw-site .section-drawing[data-reveal]{transition:opacity var(--motion-reveal) var(--ease-out),transform var(--motion-reveal) var(--ease-out)}.fw-site .section-drawing[data-reveal] :is(.model-stage,.roadmap-card,.policy-row,.ledger-row,.feature-points li){transition:opacity calc(var(--motion-reveal) * .75) var(--ease-out) var(--reveal-delay, 0ms),transform calc(var(--motion-reveal) * .75) var(--ease-out) var(--reveal-delay, 0ms)}@media screen{.fw-site .section-drawing[data-reveal=pending]{opacity:0;transform:translateY(8px)}.fw-site .section-drawing[data-reveal=pending] :is(.model-stage,.roadmap-card,.policy-row,.ledger-row,.feature-points li){opacity:0;transform:translateY(6px)}}.fw-site .section-drawing[data-reveal] :is(.model-stage,.roadmap-card,.policy-row,.ledger-row,.feature-points li):nth-child(2){--reveal-delay: .16s}.fw-site .section-drawing[data-reveal] :is(.model-stage,.roadmap-card,.policy-row,.ledger-row,.feature-points li):nth-child(3){--reveal-delay: .22s}.fw-site .section-drawing[data-reveal] :is(.model-stage,.roadmap-card,.policy-row,.ledger-row,.feature-points li):nth-child(4){--reveal-delay: .28s}.fw-site .section-drawing[data-reveal] :is(.model-stage,.roadmap-card,.policy-row,.ledger-row,.feature-points li):nth-child(5){--reveal-delay: .34s}.fw-site .section-drawing[data-reveal] :is(.model-stage,.roadmap-card,.policy-row,.ledger-row,.feature-points li):nth-child(n+6){--reveal-delay: .4s}.fw-site .section-drawing[data-reveal] :is(.model-stage,.roadmap-card,.policy-row,.ledger-row,.feature-points li):first-child{--reveal-delay: .1s}.fw-site .site-footer{--footer-inset: 24px;width:min(1440px,100% - 2 * var(--deck-gutter));margin:0 auto var(--slide-gap);padding:var(--footer-inset);background:var(--paper);border:1px solid var(--line)}.fw-site .footer-content{position:relative;min-width:0;border:1px solid var(--line)}.fw-site .footer-scene{position:relative;isolation:isolate;padding-bottom:clamp(144px,20vw,280px)}.fw-site .footer-heading{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);border-bottom:1px solid var(--line)}.fw-site .footer-brand{display:flex;grid-column:1;grid-row:1;align-items:center;padding:24px 24px 0;border-right:1px solid var(--line)}.fw-site .footer-heading h2{grid-column:2;grid-row:1 / 3;align-self:center;padding:24px}.fw-site .footer-body{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.fw-site .footer-lead{grid-column:1;grid-row:2;padding:16px 24px 24px;border-right:1px solid var(--line);color:var(--muted);font-size:var(--text-base);line-height:var(--leading-body)}.fw-site .footer-links{display:grid;grid-column:2;grid-template-columns:minmax(0,.8fr) minmax(0,.8fr) minmax(0,1.4fr)}.fw-site .footer-links ul:before{content:"";position:absolute;inset:-12px -20px;z-index:-1;background:color-mix(in srgb,var(--paper) 96%,transparent);filter:blur(12px);pointer-events:none}.fw-site .footer-links>div{min-width:0;padding:24px}.fw-site .footer-links>div+div{border-left:1px solid var(--line)}.fw-site .footer-links h3{position:relative;z-index:1;margin-bottom:12px;color:var(--muted);font:500 var(--label-size)/1.5 var(--mono);letter-spacing:var(--label-tracking);text-transform:uppercase}.fw-site .footer-links ul{position:relative;isolation:isolate;display:grid;width:fit-content;max-width:100%;gap:4px;list-style:none;padding:0;margin:0}.fw-site .footer-links a{display:flex;align-items:center;width:fit-content;min-height:32px;margin-inline:-4px;padding:4px;background:transparent;color:var(--muted);font-size:var(--text-sm);line-height:1.5}@media(hover:hover)and (pointer:fine){.fw-site .footer-links a:hover,.fw-site .footer-bottom a:hover{color:var(--ink);text-decoration:underline}.fw-site .footer-control:hover{background:var(--canvas)}}.fw-site .footer-panorama{position:absolute;inset:0 calc(-1 * (var(--footer-inset) + 1px));z-index:-1;display:flex;align-items:end;pointer-events:none}.fw-site .footer-panorama:after{content:"";position:absolute;inset:auto 0 0;aspect-ratio:2164 / 727;background:var(--footer-artwork-wash);pointer-events:none}.fw-site .footer-artwork{position:relative;width:100%;aspect-ratio:2164 / 727;overflow:hidden;mix-blend-mode:var(--footer-artwork-blend);opacity:var(--footer-artwork-opacity)}.fw-site .footer-water{display:block;width:100%;height:auto;object-fit:contain}.fw-site .footer-water,.fw-site .footer-boat image{filter:var(--footer-artwork-filter)}.fw-site .footer-fog image{filter:var(--footer-fog-filter);transform:scaleY(var(--footer-fog-height));transform-box:fill-box;transform-origin:center}.fw-site .footer-atmosphere{position:absolute;inset:0;width:100%;height:100%}.fw-site .footer-animated{animation-play-state:paused!important}.fw-site .footer-artwork[data-running=true] .footer-animated{animation-play-state:running!important}.fw-site .footer-fog--high{opacity:var(--footer-fog-high-opacity);transform:translate(1040px,80px);animation:footer-fog-high 82s linear -51s infinite}.fw-site .footer-fog--bridge{opacity:var(--footer-fog-bridge-opacity);transform:translate(80px,210px);animation:footer-fog-bridge 64s linear -26s infinite}.fw-site .footer-fog--low{opacity:var(--footer-fog-low-opacity);transform:translate(760px,360px);animation:footer-fog-low 73s linear -44s infinite}.fw-site .footer-boat--far{animation:footer-boat-far 62s linear -14s infinite}.fw-site .footer-boat--middle{animation:footer-boat-middle 52s linear -24s infinite}.fw-site .footer-boat--near{animation:footer-boat-near 44s linear -30s infinite}@keyframes footer-fog-high{0%{transform:translate(-920px,80px)}to{transform:translate(2184px,88px)}}@keyframes footer-fog-bridge{0%{transform:translate(-1120px,210px)}to{transform:translate(2184px,222px)}}@keyframes footer-fog-low{0%{transform:translate(-1020px,360px)}to{transform:translate(2184px,352px)}}@keyframes footer-boat-far{0%{transform:translate(-140px,1px);opacity:0}8%,92%{opacity:1}50%{transform:translate(280px,-1px)}to{transform:translate(700px,1px);opacity:0}}@keyframes footer-boat-middle{0%{transform:translate(-260px,2px);opacity:0}8%,92%{opacity:1}50%{transform:translate(110px,-2px)}to{transform:translate(480px,2px);opacity:0}}@keyframes footer-boat-near{0%{transform:translate(-440px,2px);opacity:0}8%,92%{opacity:1}50%{transform:translate(-130px,-2px)}to{transform:translate(180px,2px);opacity:0}}.fw-site .footer-bottom{display:grid;grid-template-columns:max-content minmax(0,1fr) 48px 48px;border-top:1px solid var(--line);background:var(--paper);color:var(--muted);font-size:var(--text-xs);line-height:1.6}.fw-site .footer-bottom>span{padding:16px 24px}.fw-site .footer-copyright{white-space:nowrap}.fw-site .footer-bottom>span+span{border-left:1px solid var(--line)}.fw-site .footer-bottom a{text-decoration:underline}.fw-site .footer-control{display:grid;place-items:center;min-height:48px;padding:0;border:0;border-left:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;touch-action:manipulation}.fw-site .footer-control:disabled{color:var(--muted);cursor:default}.fw-site .footer-control:focus-visible{outline-offset:-5px}@media(prefers-reduced-motion:reduce){.fw-site .footer-animated{animation:none!important}}@media(min-width:1100px){.fw-site .site-footer{--footer-inset: 32px}}@media(max-width:900px){.fw-site .footer-body{grid-template-columns:1fr}.fw-site .footer-links{grid-column:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr)}}@media(max-width:600px){.fw-site .site-footer{--footer-inset: 16px}.fw-site .footer-heading{grid-template-columns:1fr}.fw-site .footer-bottom{grid-template-columns:minmax(0,1fr) 48px 48px}.fw-site .footer-copyright{grid-column:1;grid-row:1}.fw-site .footer-credit{grid-column:1 / -1;grid-row:2}.fw-site .footer-motion-control{grid-column:2;grid-row:1}.fw-site .footer-theme-control{grid-column:3;grid-row:1}.fw-site .footer-brand{padding:16px;border-right:0;border-bottom:1px solid var(--line)}.fw-site .footer-heading h2{grid-column:1;grid-row:2;padding:20px 16px;font-size:32px}.fw-site .footer-lead{grid-row:3;padding:20px 16px;border-right:0;border-top:1px solid var(--line)}.fw-site .footer-links{grid-template-columns:repeat(2,minmax(0,1fr))}.fw-site .footer-links>div{padding:16px}.fw-site .footer-links>:last-child{grid-column:1 / -1;border-left:0;border-top:1px solid var(--line)}.fw-site .footer-bottom>span{padding:12px 16px}.fw-site .footer-bottom>span+span{border-left:0;border-top:1px solid var(--line)}}.fw-site .section-heading h1{max-width:min(900px,100%);padding:20px 24px 24px}.fw-site .pricing-intro .section-drawing{flex:none}.fw-site .pricing-lead{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);border-bottom:1px solid var(--line)}.fw-site .pricing-actions{display:flex;min-width:0;flex-direction:column;justify-content:space-between;gap:16px;padding:24px;border-left:1px solid var(--line)}.fw-site .pricing-note{margin:0;color:var(--muted);font:500 var(--label-size)/1.5 var(--mono);letter-spacing:var(--label-tracking);text-transform:uppercase}.fw-site .pricing-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px}.fw-site .plan-rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:auto;gap:1px;margin:0;padding:0;background:var(--line);list-style:none}.fw-site .plan{display:grid;min-width:0;grid-row:span 5;grid-template-rows:subgrid;row-gap:0;background:var(--paper)}.fw-site .plan-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:20px 24px;border-bottom:1px solid var(--line)}.fw-site .plan[data-featured] .plan-head{border-bottom-color:var(--ink);background:var(--ink)}.fw-site .plan[data-featured] .plan-head .tag{color:var(--paper)}.fw-site .plan-mark{color:var(--paper);font:500 var(--label-size)/1.5 var(--mono);letter-spacing:var(--label-tracking);text-transform:uppercase}.fw-site .plan-price{display:flex;flex-direction:column;gap:6px;margin:0;padding:24px 24px 0}.fw-site .plan-amount{color:var(--ink);font-family:var(--mono);font-size:32px;font-weight:450;font-variant-numeric:tabular-nums slashed-zero;letter-spacing:-.04em;line-height:1.1}.fw-site .plan-unit{color:var(--muted);font-size:var(--text-sm)}.fw-site .plan-body{display:flex;flex-direction:column;gap:12px;padding:16px 24px 24px}.fw-site .plan-typical{margin:0;color:var(--muted);font-size:var(--text-sm);line-height:1.5}.fw-site .plan-typical strong{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.fw-site .plan-features{margin:0;padding:0;border-top:1px solid var(--line);list-style:none}.fw-site .plan-features li{padding:12px 24px;border-bottom:1px solid var(--line);color:var(--ink);font-size:var(--text-sm);line-height:1.5}.fw-site .plan-cta{display:flex;align-items:flex-end;padding:24px}.fw-site .plan-cta .button{width:100%;justify-content:space-between}.fw-site .plan-enterprise{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 32px;padding:24px;border-top:1px solid var(--line)}.fw-site .plan-enterprise>div{display:flex;max-width:68ch;flex-direction:column;gap:8px}.fw-site .compare-scroll{overflow-x:auto;overscroll-behavior-x:contain}.fw-site .compare-scroll:focus-visible{outline-offset:-4px}.fw-site .compare-table{width:100%;min-width:760px;border-collapse:collapse;font-size:var(--text-sm);line-height:1.5}.fw-site .compare-table th,.fw-site .compare-table td{padding:14px 24px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.fw-site .compare-table tbody tr:last-child>*{border-bottom:0}.fw-site .compare-table :is(th,td)+:is(th,td){border-left:1px solid var(--line)}.fw-site .compare-table thead th{color:var(--muted);font:500 var(--label-size)/1.5 var(--mono);letter-spacing:var(--label-tracking);text-transform:uppercase}.fw-site .compare-table thead th[data-featured]{color:var(--ink)}.fw-site .compare-table tbody th{position:sticky;left:0;z-index:1;width:22%;background:var(--paper);color:var(--ink);font-weight:500}.fw-site .compare-table td{color:var(--ink);font-variant-numeric:tabular-nums}.fw-site .compare-table td[data-empty]{color:var(--muted)}.fw-site .program-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.fw-site .program-apply{margin-top:auto;align-self:flex-start}.fw-site .faq-grid{display:grid;flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;background:var(--line)}.fw-site .faq-item{display:flex;min-width:0;flex-direction:column;gap:12px;padding:24px;background:var(--paper)}.fw-site .faq-question{color:var(--ink);font-size:var(--text-lg);font-weight:550;letter-spacing:-.015em;line-height:1.3}.fw-site .faq-item dd{max-width:60ch;margin:0}@media(max-width:1099px){.fw-site .plan-rail{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.fw-site .pricing-lead{grid-template-columns:minmax(0,1fr)}.fw-site .pricing-actions{border-top:1px solid var(--line);border-left:0}.fw-site .faq-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:600px){.fw-site .section-heading h1{padding:16px 16px 20px;font-size:32px}.fw-site .plan-rail,.fw-site .program-rail{grid-template-columns:minmax(0,1fr)}.fw-site .plan-head,.fw-site .plan-features li{padding-inline:16px}.fw-site .plan-price{padding:20px 16px 0}.fw-site .plan-body{padding:12px 16px 20px}.fw-site .plan-cta,.fw-site .plan-enterprise,.fw-site .pricing-actions,.fw-site .faq-item{padding:20px 16px}.fw-site .compare-table th,.fw-site .compare-table td{padding:12px 16px}.fw-site .compare-table tbody th{width:9rem}} diff --git a/docs/assets/index-BJroA_4L.js b/docs/assets/index-BJroA_4L.js new file mode 100644 index 0000000..4d89af8 --- /dev/null +++ b/docs/assets/index-BJroA_4L.js @@ -0,0 +1,67 @@ +function xM(e,t){for(var r=0;ra[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))a(o);new MutationObserver(o=>{for(const c of o)if(c.type==="childList")for(const u of c.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&a(u)}).observe(document,{childList:!0,subtree:!0});function r(o){const c={};return o.integrity&&(c.integrity=o.integrity),o.referrerPolicy&&(c.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?c.credentials="include":o.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function a(o){if(o.ep)return;o.ep=!0;const c=r(o);fetch(o.href,c)}})();function SM(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Dp={exports:{}},sc={};var Xb;function wM(){if(Xb)return sc;Xb=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function r(a,o,c){var u=null;if(c!==void 0&&(u=""+c),o.key!==void 0&&(u=""+o.key),"key"in o){c={};for(var f in o)f!=="key"&&(c[f]=o[f])}else c=o;return o=c.ref,{$$typeof:e,type:a,key:u,ref:o!==void 0?o:null,props:c}}return sc.Fragment=t,sc.jsx=r,sc.jsxs=r,sc}var $b;function EM(){return $b||($b=1,Dp.exports=wM()),Dp.exports}var y=EM(),Np={exports:{}},rt={};var Wb;function RM(){if(Wb)return rt;Wb=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),u=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),v=Symbol.for("react.activity"),S=Symbol.iterator;function x(M){return M===null||typeof M!="object"?null:(M=S&&M[S]||M["@@iterator"],typeof M=="function"?M:null)}var E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,R={};function T(M,z,I){this.props=M,this.context=z,this.refs=R,this.updater=I||E}T.prototype.isReactComponent={},T.prototype.setState=function(M,z){if(typeof M!="object"&&typeof M!="function"&&M!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,M,z,"setState")},T.prototype.forceUpdate=function(M){this.updater.enqueueForceUpdate(this,M,"forceUpdate")};function O(){}O.prototype=T.prototype;function k(M,z,I){this.props=M,this.context=z,this.refs=R,this.updater=I||E}var j=k.prototype=new O;j.constructor=k,w(j,T.prototype),j.isPureReactComponent=!0;var L=Array.isArray;function P(){}var D={H:null,A:null,T:null,S:null},A=Object.prototype.hasOwnProperty;function F(M,z,I){var B=I.ref;return{$$typeof:e,type:M,key:z,ref:B!==void 0?B:null,props:I}}function H(M,z){return F(M.type,z,M.props)}function X(M){return typeof M=="object"&&M!==null&&M.$$typeof===e}function $(M){var z={"=":"=0",":":"=2"};return"$"+M.replace(/[=:]/g,function(I){return z[I]})}var W=/\/+/g;function ee(M,z){return typeof M=="object"&&M!==null&&M.key!=null?$(""+M.key):z.toString(36)}function ie(M){switch(M.status){case"fulfilled":return M.value;case"rejected":throw M.reason;default:switch(typeof M.status=="string"?M.then(P,P):(M.status="pending",M.then(function(z){M.status==="pending"&&(M.status="fulfilled",M.value=z)},function(z){M.status==="pending"&&(M.status="rejected",M.reason=z)})),M.status){case"fulfilled":return M.value;case"rejected":throw M.reason}}throw M}function V(M,z,I,B,Z){var re=typeof M;(re==="undefined"||re==="boolean")&&(M=null);var fe=!1;if(M===null)fe=!0;else switch(re){case"bigint":case"string":case"number":fe=!0;break;case"object":switch(M.$$typeof){case e:case t:fe=!0;break;case g:return fe=M._init,V(fe(M._payload),z,I,B,Z)}}if(fe)return Z=Z(M),fe=B===""?"."+ee(M,0):B,L(Z)?(I="",fe!=null&&(I=fe.replace(W,"$&/")+"/"),V(Z,z,I,"",function(Ae){return Ae})):Z!=null&&(X(Z)&&(Z=H(Z,I+(Z.key==null||M&&M.key===Z.key?"":(""+Z.key).replace(W,"$&/")+"/")+fe)),z.push(Z)),1;fe=0;var pe=B===""?".":B+":";if(L(M))for(var ce=0;ce>>1,_=V[Y];if(0>>1;Yo(I,Q))B<_&&0>o(Z,I)?(V[Y]=Z,V[B]=Q,Y=B):(V[Y]=I,V[z]=Q,Y=z);else if(B<_&&0>o(Z,Q))V[Y]=Z,V[B]=Q,Y=B;else break e}}return K}function o(V,K){var Q=V.sortIndex-K.sortIndex;return Q!==0?Q:V.id-K.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var c=performance;e.unstable_now=function(){return c.now()}}else{var u=Date,f=u.now();e.unstable_now=function(){return u.now()-f}}var d=[],m=[],g=1,v=null,S=3,x=!1,E=!1,w=!1,R=!1,T=typeof setTimeout=="function"?setTimeout:null,O=typeof clearTimeout=="function"?clearTimeout:null,k=typeof setImmediate<"u"?setImmediate:null;function j(V){for(var K=r(m);K!==null;){if(K.callback===null)a(m);else if(K.startTime<=V)a(m),K.sortIndex=K.expirationTime,t(d,K);else break;K=r(m)}}function L(V){if(w=!1,j(V),!E)if(r(d)!==null)E=!0,P||(P=!0,$());else{var K=r(m);K!==null&&ie(L,K.startTime-V)}}var P=!1,D=-1,A=5,F=-1;function H(){return R?!0:!(e.unstable_now()-FV&&H());){var Y=v.callback;if(typeof Y=="function"){v.callback=null,S=v.priorityLevel;var _=Y(v.expirationTime<=V);if(V=e.unstable_now(),typeof _=="function"){v.callback=_,j(V),K=!0;break t}v===r(d)&&a(d),j(V)}else a(d);v=r(d)}if(v!==null)K=!0;else{var M=r(m);M!==null&&ie(L,M.startTime-V),K=!1}}break e}finally{v=null,S=Q,x=!1}K=void 0}}finally{K?$():P=!1}}}var $;if(typeof k=="function")$=function(){k(X)};else if(typeof MessageChannel<"u"){var W=new MessageChannel,ee=W.port2;W.port1.onmessage=X,$=function(){ee.postMessage(null)}}else $=function(){T(X,0)};function ie(V,K){D=T(function(){V(e.unstable_now())},K)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(V){V.callback=null},e.unstable_forceFrameRate=function(V){0>V||125Y?(V.sortIndex=Q,t(m,V),r(d)===null&&V===r(m)&&(w?(O(D),D=-1):w=!0,ie(L,Q-Y))):(V.sortIndex=_,t(d,V),E||x||(E=!0,P||(P=!0,$()))),V},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(V){var K=S;return function(){var Q=S;S=K;try{return V.apply(this,arguments)}finally{S=Q}}}})(zp)),zp}var Jb;function AM(){return Jb||(Jb=1,kp.exports=TM()),kp.exports}var Pp={exports:{}},oi={};var ex;function MM(){if(ex)return oi;ex=1;var e=cu();function t(d){var m="https://react.dev/errors/"+d;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Pp.exports=MM(),Pp.exports}var nx;function jM(){if(nx)return oc;nx=1;var e=AM(),t=cu(),r=$E();function a(n){var i="https://react.dev/errors/"+n;if(1_||(n.current=Y[_],Y[_]=null,_--)}function I(n,i){_++,Y[_]=n.current,n.current=i}var B=M(null),Z=M(null),re=M(null),fe=M(null);function pe(n,i){switch(I(re,i),I(Z,n),I(B,null),i.nodeType){case 9:case 11:n=(n=i.documentElement)&&(n=n.namespaceURI)?yb(n):0;break;default:if(n=i.tagName,i=i.namespaceURI)i=yb(i),n=vb(i,n);else switch(n){case"svg":n=1;break;case"math":n=2;break;default:n=0}}z(B),I(B,n)}function ce(){z(B),z(Z),z(re)}function Ae(n){n.memoizedState!==null&&I(fe,n);var i=B.current,s=vb(i,n.type);i!==s&&(I(Z,n),I(B,s))}function ke(n){Z.current===n&&(z(B),z(Z)),fe.current===n&&(z(fe),nc._currentValue=Q)}var we,Re;function ye(n){if(we===void 0)try{throw Error()}catch(s){var i=s.stack.trim().match(/\n( *(at )?)/);we=i&&i[1]||"",Re=-1)":-1h||q[l]!==se[h]){var me=` +`+q[l].replace(" at new "," at ");return n.displayName&&me.includes("")&&(me=me.replace("",n.displayName)),me}while(1<=l&&0<=h);break}}}finally{ze=!1,Error.prepareStackTrace=s}return(s=n?n.displayName||n.name:"")?ye(s):""}function Qe(n,i){switch(n.tag){case 26:case 27:case 5:return ye(n.type);case 16:return ye("Lazy");case 13:return n.child!==i&&i!==null?ye("Suspense Fallback"):ye("Suspense");case 19:return ye("SuspenseList");case 0:case 15:return Ye(n.type,!1);case 11:return Ye(n.type.render,!1);case 1:return Ye(n.type,!0);case 31:return ye("Activity");default:return""}}function nt(n){try{var i="",s=null;do i+=Qe(n,s),s=n,n=n.return;while(n);return i}catch(l){return` +Error generating stack: `+l.message+` +`+l.stack}}var Ne=Object.prototype.hasOwnProperty,Xe=e.unstable_scheduleCallback,Me=e.unstable_cancelCallback,et=e.unstable_shouldYield,Et=e.unstable_requestPaint,at=e.unstable_now,ue=e.unstable_getCurrentPriorityLevel,be=e.unstable_ImmediatePriority,$e=e.unstable_UserBlockingPriority,Te=e.unstable_NormalPriority,Oe=e.unstable_LowPriority,bt=e.unstable_IdlePriority,Nt=e.log,xt=e.unstable_setDisableYieldValue,Ot=null,Lt=null;function Ft(n){if(typeof Nt=="function"&&xt(n),Lt&&typeof Lt.setStrictMode=="function")try{Lt.setStrictMode(Ot,n)}catch{}}var Yt=Math.clz32?Math.clz32:Gn,mn=Math.log,qn=Math.LN2;function Gn(n){return n>>>=0,n===0?32:31-(mn(n)/qn|0)|0}var vn=256,Rt=262144,un=4194304;function kt(n){var i=n&42;if(i!==0)return i;switch(n&-n){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:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return n&261888;case 262144:case 524288:case 1048576:case 2097152:return n&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return n&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return n}}function jn(n,i,s){var l=n.pendingLanes;if(l===0)return 0;var h=0,p=n.suspendedLanes,C=n.pingedLanes;n=n.warmLanes;var N=l&134217727;return N!==0?(l=N&~p,l!==0?h=kt(l):(C&=N,C!==0?h=kt(C):s||(s=N&~n,s!==0&&(h=kt(s))))):(N=l&~p,N!==0?h=kt(N):C!==0?h=kt(C):s||(s=l&~n,s!==0&&(h=kt(s)))),h===0?0:i!==0&&i!==h&&(i&p)===0&&(p=h&-h,s=i&-i,p>=s||p===32&&(s&4194048)!==0)?i:h}function Pn(n,i){return(n.pendingLanes&~(n.suspendedLanes&~n.pingedLanes)&i)===0}function ct(n,i){switch(n){case 1:case 2:case 4:case 8:case 64:return i+250;case 16:case 32: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 i+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function sn(){var n=un;return un<<=1,(un&62914560)===0&&(un=4194304),n}function Jt(n){for(var i=[],s=0;31>s;s++)i.push(n);return i}function _t(n,i){n.pendingLanes|=i,i!==268435456&&(n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0)}function en(n,i,s,l,h,p){var C=n.pendingLanes;n.pendingLanes=s,n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0,n.expiredLanes&=s,n.entangledLanes&=s,n.errorRecoveryDisabledLanes&=s,n.shellSuspendCounter=0;var N=n.entanglements,q=n.expirationTimes,se=n.hiddenUpdates;for(s=C&~s;0"u")return null;try{return n.activeElement||n.body}catch{return n.body}}var Ue=/[\n"\\]/g;function qe(n){return n.replace(Ue,function(i){return"\\"+i.charCodeAt(0).toString(16)+" "})}function Je(n,i,s,l,h,p,C,N){n.name="",C!=null&&typeof C!="function"&&typeof C!="symbol"&&typeof C!="boolean"?n.type=C:n.removeAttribute("type"),i!=null?C==="number"?(i===0&&n.value===""||n.value!=i)&&(n.value=""+qt(i)):n.value!==""+qt(i)&&(n.value=""+qt(i)):C!=="submit"&&C!=="reset"||n.removeAttribute("value"),i!=null?on(n,C,qt(i)):s!=null?on(n,C,qt(s)):l!=null&&n.removeAttribute("value"),h==null&&p!=null&&(n.defaultChecked=!!p),h!=null&&(n.checked=h&&typeof h!="function"&&typeof h!="symbol"),N!=null&&typeof N!="function"&&typeof N!="symbol"&&typeof N!="boolean"?n.name=""+qt(N):n.removeAttribute("name")}function At(n,i,s,l,h,p,C,N){if(p!=null&&typeof p!="function"&&typeof p!="symbol"&&typeof p!="boolean"&&(n.type=p),i!=null||s!=null){if(!(p!=="submit"&&p!=="reset"||i!=null)){oe(n);return}s=s!=null?""+qt(s):"",i=i!=null?""+qt(i):s,N||i===n.value||(n.value=i),n.defaultValue=i}l=l??h,l=typeof l!="function"&&typeof l!="symbol"&&!!l,n.checked=N?n.checked:!!l,n.defaultChecked=!!l,C!=null&&typeof C!="function"&&typeof C!="symbol"&&typeof C!="boolean"&&(n.name=C),oe(n)}function on(n,i,s){i==="number"&&xe(n.ownerDocument)===n||n.defaultValue===""+s||(n.defaultValue=""+s)}function Mt(n,i,s,l){if(n=n.options,i){i={};for(var h=0;h"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),wi=!1;if(Li)try{var Ei={};Object.defineProperty(Ei,"passive",{get:function(){wi=!0}}),window.addEventListener("test",Ei,Ei),window.removeEventListener("test",Ei,Ei)}catch{wi=!1}var hi=null,so=null,mi=null;function oo(){if(mi)return mi;var n,i=so,s=i.length,l,h="value"in hi?hi.value:hi.textContent,p=h.length;for(n=0;n=El),Rv=" ",Cv=!1;function Tv(n,i){switch(n){case"keyup":return H5.indexOf(i.keyCode)!==-1;case"keydown":return i.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Av(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var lo=!1;function Y5(n,i){switch(n){case"compositionend":return Av(i);case"keypress":return i.which!==32?null:(Cv=!0,Rv);case"textInput":return n=i.data,n===Rv&&Cv?null:n;default:return null}}function q5(n,i){if(lo)return n==="compositionend"||!_h&&Tv(n,i)?(n=oo(),mi=so=hi=null,lo=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(i.ctrlKey||i.altKey||i.metaKey)||i.ctrlKey&&i.altKey){if(i.char&&1=i)return{node:s,offset:i-n};n=l}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=zv(s)}}function _v(n,i){return n&&i?n===i?!0:n&&n.nodeType===3?!1:i&&i.nodeType===3?_v(n,i.parentNode):"contains"in n?n.contains(i):n.compareDocumentPosition?!!(n.compareDocumentPosition(i)&16):!1:!1}function Vv(n){n=n!=null&&n.ownerDocument!=null&&n.ownerDocument.defaultView!=null?n.ownerDocument.defaultView:window;for(var i=xe(n.document);i instanceof n.HTMLIFrameElement;){try{var s=typeof i.contentWindow.location.href=="string"}catch{s=!1}if(s)n=i.contentWindow;else break;i=xe(n.document)}return i}function Ih(n){var i=n&&n.nodeName&&n.nodeName.toLowerCase();return i&&(i==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||i==="textarea"||n.contentEditable==="true")}var J5=Li&&"documentMode"in document&&11>=document.documentMode,co=null,Bh=null,Al=null,Hh=!1;function Uv(n,i,s){var l=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;Hh||co==null||co!==xe(l)||(l=co,"selectionStart"in l&&Ih(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),Al&&Tl(Al,l)||(Al=l,l=mf(Bh,"onSelect"),0>=C,h-=C,Vr=1<<32-Yt(i)+h|s<ht?(Tt=Ie,Ie=null):Tt=Ie.sibling;var Pt=le(ne,Ie,ae[ht],ve);if(Pt===null){Ie===null&&(Ie=Tt);break}n&&Ie&&Pt.alternate===null&&i(ne,Ie),J=p(Pt,J,ht),zt===null?Ge=Pt:zt.sibling=Pt,zt=Pt,Ie=Tt}if(ht===ae.length)return s(ne,Ie),jt&&aa(ne,ht),Ge;if(Ie===null){for(;htht?(Tt=Ie,Ie=null):Tt=Ie.sibling;var ns=le(ne,Ie,Pt.value,ve);if(ns===null){Ie===null&&(Ie=Tt);break}n&&Ie&&ns.alternate===null&&i(ne,Ie),J=p(ns,J,ht),zt===null?Ge=ns:zt.sibling=ns,zt=ns,Ie=Tt}if(Pt.done)return s(ne,Ie),jt&&aa(ne,ht),Ge;if(Ie===null){for(;!Pt.done;ht++,Pt=ae.next())Pt=Se(ne,Pt.value,ve),Pt!==null&&(J=p(Pt,J,ht),zt===null?Ge=Pt:zt.sibling=Pt,zt=Pt);return jt&&aa(ne,ht),Ge}for(Ie=l(Ie);!Pt.done;ht++,Pt=ae.next())Pt=de(Ie,ne,ht,Pt.value,ve),Pt!==null&&(n&&Pt.alternate!==null&&Ie.delete(Pt.key===null?ht:Pt.key),J=p(Pt,J,ht),zt===null?Ge=Pt:zt.sibling=Pt,zt=Pt);return n&&Ie.forEach(function(bM){return i(ne,bM)}),jt&&aa(ne,ht),Ge}function Zt(ne,J,ae,ve){if(typeof ae=="object"&&ae!==null&&ae.type===w&&ae.key===null&&(ae=ae.props.children),typeof ae=="object"&&ae!==null){switch(ae.$$typeof){case x:e:{for(var Ge=ae.key;J!==null;){if(J.key===Ge){if(Ge=ae.type,Ge===w){if(J.tag===7){s(ne,J.sibling),ve=h(J,ae.props.children),ve.return=ne,ne=ve;break e}}else if(J.elementType===Ge||typeof Ge=="object"&&Ge!==null&&Ge.$$typeof===A&&Ds(Ge)===J.type){s(ne,J.sibling),ve=h(J,ae.props),Ll(ve,ae),ve.return=ne,ne=ve;break e}s(ne,J);break}else i(ne,J);J=J.sibling}ae.type===w?(ve=Ts(ae.props.children,ne.mode,ve,ae.key),ve.return=ne,ne=ve):(ve=Ou(ae.type,ae.key,ae.props,null,ne.mode,ve),Ll(ve,ae),ve.return=ne,ne=ve)}return C(ne);case E:e:{for(Ge=ae.key;J!==null;){if(J.key===Ge)if(J.tag===4&&J.stateNode.containerInfo===ae.containerInfo&&J.stateNode.implementation===ae.implementation){s(ne,J.sibling),ve=h(J,ae.children||[]),ve.return=ne,ne=ve;break e}else{s(ne,J);break}else i(ne,J);J=J.sibling}ve=$h(ae,ne.mode,ve),ve.return=ne,ne=ve}return C(ne);case A:return ae=Ds(ae),Zt(ne,J,ae,ve)}if(ie(ae))return _e(ne,J,ae,ve);if($(ae)){if(Ge=$(ae),typeof Ge!="function")throw Error(a(150));return ae=Ge.call(ae),Ze(ne,J,ae,ve)}if(typeof ae.then=="function")return Zt(ne,J,_u(ae),ve);if(ae.$$typeof===k)return Zt(ne,J,Lu(ne,ae),ve);Vu(ne,ae)}return typeof ae=="string"&&ae!==""||typeof ae=="number"||typeof ae=="bigint"?(ae=""+ae,J!==null&&J.tag===6?(s(ne,J.sibling),ve=h(J,ae),ve.return=ne,ne=ve):(s(ne,J),ve=Xh(ae,ne.mode,ve),ve.return=ne,ne=ve),C(ne)):s(ne,J)}return function(ne,J,ae,ve){try{Nl=0;var Ge=Zt(ne,J,ae,ve);return So=null,Ge}catch(Ie){if(Ie===xo||Ie===zu)throw Ie;var zt=Vi(29,Ie,null,ne.mode);return zt.lanes=ve,zt.return=ne,zt}}}var Ls=l1(!0),c1=l1(!1),Ua=!1;function om(n){n.updateQueue={baseState:n.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function lm(n,i){n=n.updateQueue,i.updateQueue===n&&(i.updateQueue={baseState:n.baseState,firstBaseUpdate:n.firstBaseUpdate,lastBaseUpdate:n.lastBaseUpdate,shared:n.shared,callbacks:null})}function Ia(n){return{lane:n,tag:0,payload:null,callback:null,next:null}}function Ba(n,i,s){var l=n.updateQueue;if(l===null)return null;if(l=l.shared,(Vt&2)!==0){var h=l.pending;return h===null?i.next=i:(i.next=h.next,h.next=i),l.pending=i,i=ju(n),Gv(n,null,s),i}return Mu(n,l,i,s),ju(n)}function kl(n,i,s){if(i=i.updateQueue,i!==null&&(i=i.shared,(s&4194048)!==0)){var l=i.lanes;l&=n.pendingLanes,s|=l,i.lanes=s,Kn(n,s)}}function cm(n,i){var s=n.updateQueue,l=n.alternate;if(l!==null&&(l=l.updateQueue,s===l)){var h=null,p=null;if(s=s.firstBaseUpdate,s!==null){do{var C={lane:s.lane,tag:s.tag,payload:s.payload,callback:null,next:null};p===null?h=p=C:p=p.next=C,s=s.next}while(s!==null);p===null?h=p=i:p=p.next=i}else h=p=i;s={baseState:l.baseState,firstBaseUpdate:h,lastBaseUpdate:p,shared:l.shared,callbacks:l.callbacks},n.updateQueue=s;return}n=s.lastBaseUpdate,n===null?s.firstBaseUpdate=i:n.next=i,s.lastBaseUpdate=i}var um=!1;function zl(){if(um){var n=bo;if(n!==null)throw n}}function Pl(n,i,s,l){um=!1;var h=n.updateQueue;Ua=!1;var p=h.firstBaseUpdate,C=h.lastBaseUpdate,N=h.shared.pending;if(N!==null){h.shared.pending=null;var q=N,se=q.next;q.next=null,C===null?p=se:C.next=se,C=q;var me=n.alternate;me!==null&&(me=me.updateQueue,N=me.lastBaseUpdate,N!==C&&(N===null?me.firstBaseUpdate=se:N.next=se,me.lastBaseUpdate=q))}if(p!==null){var Se=h.baseState;C=0,me=se=q=null,N=p;do{var le=N.lane&-536870913,de=le!==N.lane;if(de?(Ct&le)===le:(l&le)===le){le!==0&&le===vo&&(um=!0),me!==null&&(me=me.next={lane:0,tag:N.tag,payload:N.payload,callback:null,next:null});e:{var _e=n,Ze=N;le=i;var Zt=s;switch(Ze.tag){case 1:if(_e=Ze.payload,typeof _e=="function"){Se=_e.call(Zt,Se,le);break e}Se=_e;break e;case 3:_e.flags=_e.flags&-65537|128;case 0:if(_e=Ze.payload,le=typeof _e=="function"?_e.call(Zt,Se,le):_e,le==null)break e;Se=v({},Se,le);break e;case 2:Ua=!0}}le=N.callback,le!==null&&(n.flags|=64,de&&(n.flags|=8192),de=h.callbacks,de===null?h.callbacks=[le]:de.push(le))}else de={lane:le,tag:N.tag,payload:N.payload,callback:N.callback,next:null},me===null?(se=me=de,q=Se):me=me.next=de,C|=le;if(N=N.next,N===null){if(N=h.shared.pending,N===null)break;de=N,N=de.next,de.next=null,h.lastBaseUpdate=de,h.shared.pending=null}}while(!0);me===null&&(q=Se),h.baseState=q,h.firstBaseUpdate=se,h.lastBaseUpdate=me,p===null&&(h.shared.lanes=0),Ga|=C,n.lanes=C,n.memoizedState=Se}}function u1(n,i){if(typeof n!="function")throw Error(a(191,n));n.call(i)}function f1(n,i){var s=n.callbacks;if(s!==null)for(n.callbacks=null,n=0;np?p:8;var C=V.T,N={};V.T=N,jm(n,!1,i,s);try{var q=h(),se=V.S;if(se!==null&&se(N,q),q!==null&&typeof q=="object"&&typeof q.then=="function"){var me=l3(q,l);Ul(n,i,me,Fi(n))}else Ul(n,i,l,Fi(n))}catch(Se){Ul(n,i,{then:function(){},status:"rejected",reason:Se},Fi())}finally{K.p=p,C!==null&&N.types!==null&&(C.types=N.types),V.T=C}}function m3(){}function Am(n,i,s,l){if(n.tag!==5)throw Error(a(476));var h=F1(n).queue;H1(n,h,i,Q,s===null?m3:function(){return Y1(n),s(l)})}function F1(n){var i=n.memoizedState;if(i!==null)return i;i={memoizedState:Q,baseState:Q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ca,lastRenderedState:Q},next:null};var s={};return i.next={memoizedState:s,baseState:s,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ca,lastRenderedState:s},next:null},n.memoizedState=i,n=n.alternate,n!==null&&(n.memoizedState=i),i}function Y1(n){var i=F1(n);i.next===null&&(i=n.alternate.memoizedState),Ul(n,i.next.queue,{},Fi())}function Mm(){return Qn(nc)}function q1(){return Tn().memoizedState}function G1(){return Tn().memoizedState}function p3(n){for(var i=n.return;i!==null;){switch(i.tag){case 24:case 3:var s=Fi();n=Ia(s);var l=Ba(i,n,s);l!==null&&(Mi(l,i,s),kl(l,i,s)),i={cache:im()},n.payload=i;return}i=i.return}}function g3(n,i,s){var l=Fi();s={lane:l,revertLane:0,gesture:null,action:s,hasEagerState:!1,eagerState:null,next:null},Xu(n)?X1(i,s):(s=Gh(n,i,s,l),s!==null&&(Mi(s,n,l),$1(s,i,l)))}function K1(n,i,s){var l=Fi();Ul(n,i,s,l)}function Ul(n,i,s,l){var h={lane:l,revertLane:0,gesture:null,action:s,hasEagerState:!1,eagerState:null,next:null};if(Xu(n))X1(i,h);else{var p=n.alternate;if(n.lanes===0&&(p===null||p.lanes===0)&&(p=i.lastRenderedReducer,p!==null))try{var C=i.lastRenderedState,N=p(C,s);if(h.hasEagerState=!0,h.eagerState=N,_i(N,C))return Mu(n,i,h,0),tn===null&&Au(),!1}catch{}if(s=Gh(n,i,h,l),s!==null)return Mi(s,n,l),$1(s,i,l),!0}return!1}function jm(n,i,s,l){if(l={lane:2,revertLane:op(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},Xu(n)){if(i)throw Error(a(479))}else i=Gh(n,s,l,2),i!==null&&Mi(i,n,2)}function Xu(n){var i=n.alternate;return n===lt||i!==null&&i===lt}function X1(n,i){Eo=Bu=!0;var s=n.pending;s===null?i.next=i:(i.next=s.next,s.next=i),n.pending=i}function $1(n,i,s){if((s&4194048)!==0){var l=i.lanes;l&=n.pendingLanes,s|=l,i.lanes=s,Kn(n,s)}}var Il={readContext:Qn,use:Yu,useCallback:bn,useContext:bn,useEffect:bn,useImperativeHandle:bn,useLayoutEffect:bn,useInsertionEffect:bn,useMemo:bn,useReducer:bn,useRef:bn,useState:bn,useDebugValue:bn,useDeferredValue:bn,useTransition:bn,useSyncExternalStore:bn,useId:bn,useHostTransitionStatus:bn,useFormState:bn,useActionState:bn,useOptimistic:bn,useMemoCache:bn,useCacheRefresh:bn};Il.useEffectEvent=bn;var W1={readContext:Qn,use:Yu,useCallback:function(n,i){return gi().memoizedState=[n,i===void 0?null:i],n},useContext:Qn,useEffect:L1,useImperativeHandle:function(n,i,s){s=s!=null?s.concat([n]):null,Gu(4194308,4,_1.bind(null,i,n),s)},useLayoutEffect:function(n,i){return Gu(4194308,4,n,i)},useInsertionEffect:function(n,i){Gu(4,2,n,i)},useMemo:function(n,i){var s=gi();i=i===void 0?null:i;var l=n();if(ks){Ft(!0);try{n()}finally{Ft(!1)}}return s.memoizedState=[l,i],l},useReducer:function(n,i,s){var l=gi();if(s!==void 0){var h=s(i);if(ks){Ft(!0);try{s(i)}finally{Ft(!1)}}}else h=i;return l.memoizedState=l.baseState=h,n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:h},l.queue=n,n=n.dispatch=g3.bind(null,lt,n),[l.memoizedState,n]},useRef:function(n){var i=gi();return n={current:n},i.memoizedState=n},useState:function(n){n=wm(n);var i=n.queue,s=K1.bind(null,lt,i);return i.dispatch=s,[n.memoizedState,s]},useDebugValue:Cm,useDeferredValue:function(n,i){var s=gi();return Tm(s,n,i)},useTransition:function(){var n=wm(!1);return n=H1.bind(null,lt,n.queue,!0,!1),gi().memoizedState=n,[!1,n]},useSyncExternalStore:function(n,i,s){var l=lt,h=gi();if(jt){if(s===void 0)throw Error(a(407));s=s()}else{if(s=i(),tn===null)throw Error(a(349));(Ct&127)!==0||y1(l,i,s)}h.memoizedState=s;var p={value:s,getSnapshot:i};return h.queue=p,L1(b1.bind(null,l,p,n),[n]),l.flags|=2048,Co(9,{destroy:void 0},v1.bind(null,l,p,s,i),null),s},useId:function(){var n=gi(),i=tn.identifierPrefix;if(jt){var s=Ur,l=Vr;s=(l&~(1<<32-Yt(l)-1)).toString(32)+s,i="_"+i+"R_"+s,s=Hu++,0<\/script>",p=p.removeChild(p.firstChild);break;case"select":p=typeof l.is=="string"?C.createElement("select",{is:l.is}):C.createElement("select"),l.multiple?p.multiple=!0:l.size&&(p.size=l.size);break;default:p=typeof l.is=="string"?C.createElement(h,{is:l.is}):C.createElement(h)}}p[Ce]=i,p[je]=l;e:for(C=i.child;C!==null;){if(C.tag===5||C.tag===6)p.appendChild(C.stateNode);else if(C.tag!==4&&C.tag!==27&&C.child!==null){C.child.return=C,C=C.child;continue}if(C===i)break e;for(;C.sibling===null;){if(C.return===null||C.return===i)break e;C=C.return}C.sibling.return=C.return,C=C.sibling}i.stateNode=p;e:switch(ei(p,h,l),h){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&fa(i)}}return cn(i),Fm(i,i.type,n===null?null:n.memoizedProps,i.pendingProps,s),null;case 6:if(n&&i.stateNode!=null)n.memoizedProps!==l&&fa(i);else{if(typeof l!="string"&&i.stateNode===null)throw Error(a(166));if(n=re.current,go(i)){if(n=i.stateNode,s=i.memoizedProps,l=null,h=Zn,h!==null)switch(h.tag){case 27:case 5:l=h.memoizedProps}n[Ce]=i,n=!!(n.nodeValue===s||l!==null&&l.suppressHydrationWarning===!0||pb(n.nodeValue,s)),n||_a(i,!0)}else n=pf(n).createTextNode(l),n[Ce]=i,i.stateNode=n}return cn(i),null;case 31:if(s=i.memoizedState,n===null||n.memoizedState!==null){if(l=go(i),s!==null){if(n===null){if(!l)throw Error(a(318));if(n=i.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(a(557));n[Ce]=i}else As(),(i.flags&128)===0&&(i.memoizedState=null),i.flags|=4;cn(i),n=!1}else s=Jh(),n!==null&&n.memoizedState!==null&&(n.memoizedState.hydrationErrors=s),n=!0;if(!n)return i.flags&256?(Ii(i),i):(Ii(i),null);if((i.flags&128)!==0)throw Error(a(558))}return cn(i),null;case 13:if(l=i.memoizedState,n===null||n.memoizedState!==null&&n.memoizedState.dehydrated!==null){if(h=go(i),l!==null&&l.dehydrated!==null){if(n===null){if(!h)throw Error(a(318));if(h=i.memoizedState,h=h!==null?h.dehydrated:null,!h)throw Error(a(317));h[Ce]=i}else As(),(i.flags&128)===0&&(i.memoizedState=null),i.flags|=4;cn(i),h=!1}else h=Jh(),n!==null&&n.memoizedState!==null&&(n.memoizedState.hydrationErrors=h),h=!0;if(!h)return i.flags&256?(Ii(i),i):(Ii(i),null)}return Ii(i),(i.flags&128)!==0?(i.lanes=s,i):(s=l!==null,n=n!==null&&n.memoizedState!==null,s&&(l=i.child,h=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(h=l.alternate.memoizedState.cachePool.pool),p=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(p=l.memoizedState.cachePool.pool),p!==h&&(l.flags|=2048)),s!==n&&s&&(i.child.flags|=8192),Ju(i,i.updateQueue),cn(i),null);case 4:return ce(),n===null&&fp(i.stateNode.containerInfo),cn(i),null;case 10:return oa(i.type),cn(i),null;case 19:if(z(Cn),l=i.memoizedState,l===null)return cn(i),null;if(h=(i.flags&128)!==0,p=l.rendering,p===null)if(h)Hl(l,!1);else{if(xn!==0||n!==null&&(n.flags&128)!==0)for(n=i.child;n!==null;){if(p=Iu(n),p!==null){for(i.flags|=128,Hl(l,!1),n=p.updateQueue,i.updateQueue=n,Ju(i,n),i.subtreeFlags=0,n=s,s=i.child;s!==null;)Kv(s,n),s=s.sibling;return I(Cn,Cn.current&1|2),jt&&aa(i,l.treeForkCount),i.child}n=n.sibling}l.tail!==null&&at()>af&&(i.flags|=128,h=!0,Hl(l,!1),i.lanes=4194304)}else{if(!h)if(n=Iu(p),n!==null){if(i.flags|=128,h=!0,n=n.updateQueue,i.updateQueue=n,Ju(i,n),Hl(l,!0),l.tail===null&&l.tailMode==="hidden"&&!p.alternate&&!jt)return cn(i),null}else 2*at()-l.renderingStartTime>af&&s!==536870912&&(i.flags|=128,h=!0,Hl(l,!1),i.lanes=4194304);l.isBackwards?(p.sibling=i.child,i.child=p):(n=l.last,n!==null?n.sibling=p:i.child=p,l.last=p)}return l.tail!==null?(n=l.tail,l.rendering=n,l.tail=n.sibling,l.renderingStartTime=at(),n.sibling=null,s=Cn.current,I(Cn,h?s&1|2:s&1),jt&&aa(i,l.treeForkCount),n):(cn(i),null);case 22:case 23:return Ii(i),dm(),l=i.memoizedState!==null,n!==null?n.memoizedState!==null!==l&&(i.flags|=8192):l&&(i.flags|=8192),l?(s&536870912)!==0&&(i.flags&128)===0&&(cn(i),i.subtreeFlags&6&&(i.flags|=8192)):cn(i),s=i.updateQueue,s!==null&&Ju(i,s.retryQueue),s=null,n!==null&&n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(s=n.memoizedState.cachePool.pool),l=null,i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(l=i.memoizedState.cachePool.pool),l!==s&&(i.flags|=2048),n!==null&&z(Os),null;case 24:return s=null,n!==null&&(s=n.memoizedState.cache),i.memoizedState.cache!==s&&(i.flags|=2048),oa(Dn),cn(i),null;case 25:return null;case 30:return null}throw Error(a(156,i.tag))}function S3(n,i){switch(Zh(i),i.tag){case 1:return n=i.flags,n&65536?(i.flags=n&-65537|128,i):null;case 3:return oa(Dn),ce(),n=i.flags,(n&65536)!==0&&(n&128)===0?(i.flags=n&-65537|128,i):null;case 26:case 27:case 5:return ke(i),null;case 31:if(i.memoizedState!==null){if(Ii(i),i.alternate===null)throw Error(a(340));As()}return n=i.flags,n&65536?(i.flags=n&-65537|128,i):null;case 13:if(Ii(i),n=i.memoizedState,n!==null&&n.dehydrated!==null){if(i.alternate===null)throw Error(a(340));As()}return n=i.flags,n&65536?(i.flags=n&-65537|128,i):null;case 19:return z(Cn),null;case 4:return ce(),null;case 10:return oa(i.type),null;case 22:case 23:return Ii(i),dm(),n!==null&&z(Os),n=i.flags,n&65536?(i.flags=n&-65537|128,i):null;case 24:return oa(Dn),null;case 25:return null;default:return null}}function x2(n,i){switch(Zh(i),i.tag){case 3:oa(Dn),ce();break;case 26:case 27:case 5:ke(i);break;case 4:ce();break;case 31:i.memoizedState!==null&&Ii(i);break;case 13:Ii(i);break;case 19:z(Cn);break;case 10:oa(i.type);break;case 22:case 23:Ii(i),dm(),n!==null&&z(Os);break;case 24:oa(Dn)}}function Fl(n,i){try{var s=i.updateQueue,l=s!==null?s.lastEffect:null;if(l!==null){var h=l.next;s=h;do{if((s.tag&n)===n){l=void 0;var p=s.create,C=s.inst;l=p(),C.destroy=l}s=s.next}while(s!==h)}}catch(N){Kt(i,i.return,N)}}function Ya(n,i,s){try{var l=i.updateQueue,h=l!==null?l.lastEffect:null;if(h!==null){var p=h.next;l=p;do{if((l.tag&n)===n){var C=l.inst,N=C.destroy;if(N!==void 0){C.destroy=void 0,h=i;var q=s,se=N;try{se()}catch(me){Kt(h,q,me)}}}l=l.next}while(l!==p)}}catch(me){Kt(i,i.return,me)}}function S2(n){var i=n.updateQueue;if(i!==null){var s=n.stateNode;try{f1(i,s)}catch(l){Kt(n,n.return,l)}}}function w2(n,i,s){s.props=zs(n.type,n.memoizedProps),s.state=n.memoizedState;try{s.componentWillUnmount()}catch(l){Kt(n,i,l)}}function Yl(n,i){try{var s=n.ref;if(s!==null){switch(n.tag){case 26:case 27:case 5:var l=n.stateNode;break;case 30:l=n.stateNode;break;default:l=n.stateNode}typeof s=="function"?n.refCleanup=s(l):s.current=l}}catch(h){Kt(n,i,h)}}function Ir(n,i){var s=n.ref,l=n.refCleanup;if(s!==null)if(typeof l=="function")try{l()}catch(h){Kt(n,i,h)}finally{n.refCleanup=null,n=n.alternate,n!=null&&(n.refCleanup=null)}else if(typeof s=="function")try{s(null)}catch(h){Kt(n,i,h)}else s.current=null}function E2(n){var i=n.type,s=n.memoizedProps,l=n.stateNode;try{e:switch(i){case"button":case"input":case"select":case"textarea":s.autoFocus&&l.focus();break e;case"img":s.src?l.src=s.src:s.srcSet&&(l.srcset=s.srcSet)}}catch(h){Kt(n,n.return,h)}}function Ym(n,i,s){try{var l=n.stateNode;F3(l,n.type,s,i),l[je]=i}catch(h){Kt(n,n.return,h)}}function R2(n){return n.tag===5||n.tag===3||n.tag===26||n.tag===27&&Za(n.type)||n.tag===4}function qm(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||R2(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.tag===27&&Za(n.type)||n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function Gm(n,i,s){var l=n.tag;if(l===5||l===6)n=n.stateNode,i?(s.nodeType===9?s.body:s.nodeName==="HTML"?s.ownerDocument.body:s).insertBefore(n,i):(i=s.nodeType===9?s.body:s.nodeName==="HTML"?s.ownerDocument.body:s,i.appendChild(n),s=s._reactRootContainer,s!=null||i.onclick!==null||(i.onclick=Di));else if(l!==4&&(l===27&&Za(n.type)&&(s=n.stateNode,i=null),n=n.child,n!==null))for(Gm(n,i,s),n=n.sibling;n!==null;)Gm(n,i,s),n=n.sibling}function ef(n,i,s){var l=n.tag;if(l===5||l===6)n=n.stateNode,i?s.insertBefore(n,i):s.appendChild(n);else if(l!==4&&(l===27&&Za(n.type)&&(s=n.stateNode),n=n.child,n!==null))for(ef(n,i,s),n=n.sibling;n!==null;)ef(n,i,s),n=n.sibling}function C2(n){var i=n.stateNode,s=n.memoizedProps;try{for(var l=n.type,h=i.attributes;h.length;)i.removeAttributeNode(h[0]);ei(i,l,s),i[Ce]=n,i[je]=s}catch(p){Kt(n,n.return,p)}}var da=!1,kn=!1,Km=!1,T2=typeof WeakSet=="function"?WeakSet:Set,$n=null;function w3(n,i){if(n=n.containerInfo,mp=wf,n=Vv(n),Ih(n)){if("selectionStart"in n)var s={start:n.selectionStart,end:n.selectionEnd};else e:{s=(s=n.ownerDocument)&&s.defaultView||window;var l=s.getSelection&&s.getSelection();if(l&&l.rangeCount!==0){s=l.anchorNode;var h=l.anchorOffset,p=l.focusNode;l=l.focusOffset;try{s.nodeType,p.nodeType}catch{s=null;break e}var C=0,N=-1,q=-1,se=0,me=0,Se=n,le=null;t:for(;;){for(var de;Se!==s||h!==0&&Se.nodeType!==3||(N=C+h),Se!==p||l!==0&&Se.nodeType!==3||(q=C+l),Se.nodeType===3&&(C+=Se.nodeValue.length),(de=Se.firstChild)!==null;)le=Se,Se=de;for(;;){if(Se===n)break t;if(le===s&&++se===h&&(N=C),le===p&&++me===l&&(q=C),(de=Se.nextSibling)!==null)break;Se=le,le=Se.parentNode}Se=de}s=N===-1||q===-1?null:{start:N,end:q}}else s=null}s=s||{start:0,end:0}}else s=null;for(pp={focusedElem:n,selectionRange:s},wf=!1,$n=i;$n!==null;)if(i=$n,n=i.child,(i.subtreeFlags&1028)!==0&&n!==null)n.return=i,$n=n;else for(;$n!==null;){switch(i=$n,p=i.alternate,n=i.flags,i.tag){case 0:if((n&4)!==0&&(n=i.updateQueue,n=n!==null?n.events:null,n!==null))for(s=0;s title"))),ei(p,l,s),p[Ce]=n,st(p),l=p;break e;case"link":var C=Nb("link","href",h).get(l+(s.href||""));if(C){for(var N=0;NZt&&(C=Zt,Zt=Ze,Ze=C);var ne=Pv(N,Ze),J=Pv(N,Zt);if(ne&&J&&(de.rangeCount!==1||de.anchorNode!==ne.node||de.anchorOffset!==ne.offset||de.focusNode!==J.node||de.focusOffset!==J.offset)){var ae=Se.createRange();ae.setStart(ne.node,ne.offset),de.removeAllRanges(),Ze>Zt?(de.addRange(ae),de.extend(J.node,J.offset)):(ae.setEnd(J.node,J.offset),de.addRange(ae))}}}}for(Se=[],de=N;de=de.parentNode;)de.nodeType===1&&Se.push({element:de,left:de.scrollLeft,top:de.scrollTop});for(typeof N.focus=="function"&&N.focus(),N=0;Ns?32:s,V.T=null,s=ep,ep=null;var p=Xa,C=ya;if(Bn=0,Oo=Xa=null,ya=0,(Vt&6)!==0)throw Error(a(331));var N=Vt;if(Vt|=4,_2(p.current),k2(p,p.current,C,s),Vt=N,Wl(0,!1),Lt&&typeof Lt.onPostCommitFiberRoot=="function")try{Lt.onPostCommitFiberRoot(Ot,p)}catch{}return!0}finally{K.p=h,V.T=l,tb(n,i)}}function ib(n,i,s){i=nr(s,i),i=Lm(n.stateNode,i,2),n=Ba(n,i,2),n!==null&&(_t(n,2),Br(n))}function Kt(n,i,s){if(n.tag===3)ib(n,n,s);else for(;i!==null;){if(i.tag===3){ib(i,n,s);break}else if(i.tag===1){var l=i.stateNode;if(typeof i.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(Ka===null||!Ka.has(l))){n=nr(s,n),s=r2(2),l=Ba(i,s,2),l!==null&&(a2(s,l,i,n),_t(l,2),Br(l));break}}i=i.return}}function rp(n,i,s){var l=n.pingCache;if(l===null){l=n.pingCache=new C3;var h=new Set;l.set(i,h)}else h=l.get(i),h===void 0&&(h=new Set,l.set(i,h));h.has(s)||(Wm=!0,h.add(s),n=O3.bind(null,n,i,s),i.then(n,n))}function O3(n,i,s){var l=n.pingCache;l!==null&&l.delete(i),n.pingedLanes|=n.suspendedLanes&s,n.warmLanes&=~s,tn===n&&(Ct&s)===s&&(xn===4||xn===3&&(Ct&62914560)===Ct&&300>at()-rf?(Vt&2)===0&&Do(n,0):Zm|=s,jo===Ct&&(jo=0)),Br(n)}function rb(n,i){i===0&&(i=sn()),n=Cs(n,i),n!==null&&(_t(n,i),Br(n))}function D3(n){var i=n.memoizedState,s=0;i!==null&&(s=i.retryLane),rb(n,s)}function N3(n,i){var s=0;switch(n.tag){case 31:case 13:var l=n.stateNode,h=n.memoizedState;h!==null&&(s=h.retryLane);break;case 19:l=n.stateNode;break;case 22:l=n.stateNode._retryCache;break;default:throw Error(a(314))}l!==null&&l.delete(i),rb(n,s)}function L3(n,i){return Xe(n,i)}var ff=null,Lo=null,ap=!1,df=!1,sp=!1,Wa=0;function Br(n){n!==Lo&&n.next===null&&(Lo===null?ff=Lo=n:Lo=Lo.next=n),df=!0,ap||(ap=!0,z3())}function Wl(n,i){if(!sp&&df){sp=!0;do for(var s=!1,l=ff;l!==null;){if(n!==0){var h=l.pendingLanes;if(h===0)var p=0;else{var C=l.suspendedLanes,N=l.pingedLanes;p=(1<<31-Yt(42|n)+1)-1,p&=h&~(C&~N),p=p&201326741?p&201326741|1:p?p|2:0}p!==0&&(s=!0,lb(l,p))}else p=Ct,p=jn(l,l===tn?p:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(p&3)===0||Pn(l,p)||(s=!0,lb(l,p));l=l.next}while(s);sp=!1}}function k3(){ab()}function ab(){df=ap=!1;var n=0;Wa!==0&&q3()&&(n=Wa);for(var i=at(),s=null,l=ff;l!==null;){var h=l.next,p=sb(l,i);p===0?(l.next=null,s===null?ff=h:s.next=h,h===null&&(Lo=s)):(s=l,(n!==0||(p&3)!==0)&&(df=!0)),l=h}Bn!==0&&Bn!==5||Wl(n),Wa!==0&&(Wa=0)}function sb(n,i){for(var s=n.suspendedLanes,l=n.pingedLanes,h=n.expirationTimes,p=n.pendingLanes&-62914561;0N)break;var me=q.transferSize,Se=q.initiatorType;me&&gb(Se)&&(q=q.responseEnd,C+=me*(q"u"?null:document;function Mb(n,i,s){var l=ko;if(l&&typeof i=="string"&&i){var h=qe(i);h='link[rel="'+n+'"][href="'+h+'"]',typeof s=="string"&&(h+='[crossorigin="'+s+'"]'),Ab.has(h)||(Ab.add(h),n={rel:n,crossOrigin:s,href:i},l.querySelector(h)===null&&(i=l.createElement("link"),ei(i,"link",n),st(i),l.head.appendChild(i)))}}function eM(n){va.D(n),Mb("dns-prefetch",n,null)}function tM(n,i){va.C(n,i),Mb("preconnect",n,i)}function nM(n,i,s){va.L(n,i,s);var l=ko;if(l&&n&&i){var h='link[rel="preload"][as="'+qe(i)+'"]';i==="image"&&s&&s.imageSrcSet?(h+='[imagesrcset="'+qe(s.imageSrcSet)+'"]',typeof s.imageSizes=="string"&&(h+='[imagesizes="'+qe(s.imageSizes)+'"]')):h+='[href="'+qe(n)+'"]';var p=h;switch(i){case"style":p=zo(n);break;case"script":p=Po(n)}lr.has(p)||(n=v({rel:"preload",href:i==="image"&&s&&s.imageSrcSet?void 0:n,as:i},s),lr.set(p,n),l.querySelector(h)!==null||i==="style"&&l.querySelector(ec(p))||i==="script"&&l.querySelector(tc(p))||(i=l.createElement("link"),ei(i,"link",n),st(i),l.head.appendChild(i)))}}function iM(n,i){va.m(n,i);var s=ko;if(s&&n){var l=i&&typeof i.as=="string"?i.as:"script",h='link[rel="modulepreload"][as="'+qe(l)+'"][href="'+qe(n)+'"]',p=h;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":p=Po(n)}if(!lr.has(p)&&(n=v({rel:"modulepreload",href:n},i),lr.set(p,n),s.querySelector(h)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(s.querySelector(tc(p)))return}l=s.createElement("link"),ei(l,"link",n),st(l),s.head.appendChild(l)}}}function rM(n,i,s){va.S(n,i,s);var l=ko;if(l&&n){var h=Bt(l).hoistableStyles,p=zo(n);i=i||"default";var C=h.get(p);if(!C){var N={loading:0,preload:null};if(C=l.querySelector(ec(p)))N.loading=5;else{n=v({rel:"stylesheet",href:n,"data-precedence":i},s),(s=lr.get(p))&&wp(n,s);var q=C=l.createElement("link");st(q),ei(q,"link",n),q._p=new Promise(function(se,me){q.onload=se,q.onerror=me}),q.addEventListener("load",function(){N.loading|=1}),q.addEventListener("error",function(){N.loading|=2}),N.loading|=4,yf(C,i,l)}C={type:"stylesheet",instance:C,count:1,state:N},h.set(p,C)}}}function aM(n,i){va.X(n,i);var s=ko;if(s&&n){var l=Bt(s).hoistableScripts,h=Po(n),p=l.get(h);p||(p=s.querySelector(tc(h)),p||(n=v({src:n,async:!0},i),(i=lr.get(h))&&Ep(n,i),p=s.createElement("script"),st(p),ei(p,"link",n),s.head.appendChild(p)),p={type:"script",instance:p,count:1,state:null},l.set(h,p))}}function sM(n,i){va.M(n,i);var s=ko;if(s&&n){var l=Bt(s).hoistableScripts,h=Po(n),p=l.get(h);p||(p=s.querySelector(tc(h)),p||(n=v({src:n,async:!0,type:"module"},i),(i=lr.get(h))&&Ep(n,i),p=s.createElement("script"),st(p),ei(p,"link",n),s.head.appendChild(p)),p={type:"script",instance:p,count:1,state:null},l.set(h,p))}}function jb(n,i,s,l){var h=(h=re.current)?gf(h):null;if(!h)throw Error(a(446));switch(n){case"meta":case"title":return null;case"style":return typeof s.precedence=="string"&&typeof s.href=="string"?(i=zo(s.href),s=Bt(h).hoistableStyles,l=s.get(i),l||(l={type:"style",instance:null,count:0,state:null},s.set(i,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(s.rel==="stylesheet"&&typeof s.href=="string"&&typeof s.precedence=="string"){n=zo(s.href);var p=Bt(h).hoistableStyles,C=p.get(n);if(C||(h=h.ownerDocument||h,C={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},p.set(n,C),(p=h.querySelector(ec(n)))&&!p._p&&(C.instance=p,C.state.loading=5),lr.has(n)||(s={rel:"preload",as:"style",href:s.href,crossOrigin:s.crossOrigin,integrity:s.integrity,media:s.media,hrefLang:s.hrefLang,referrerPolicy:s.referrerPolicy},lr.set(n,s),p||oM(h,n,s,C.state))),i&&l===null)throw Error(a(528,""));return C}if(i&&l!==null)throw Error(a(529,""));return null;case"script":return i=s.async,s=s.src,typeof s=="string"&&i&&typeof i!="function"&&typeof i!="symbol"?(i=Po(s),s=Bt(h).hoistableScripts,l=s.get(i),l||(l={type:"script",instance:null,count:0,state:null},s.set(i,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(a(444,n))}}function zo(n){return'href="'+qe(n)+'"'}function ec(n){return'link[rel="stylesheet"]['+n+"]"}function Ob(n){return v({},n,{"data-precedence":n.precedence,precedence:null})}function oM(n,i,s,l){n.querySelector('link[rel="preload"][as="style"]['+i+"]")?l.loading=1:(i=n.createElement("link"),l.preload=i,i.addEventListener("load",function(){return l.loading|=1}),i.addEventListener("error",function(){return l.loading|=2}),ei(i,"link",s),st(i),n.head.appendChild(i))}function Po(n){return'[src="'+qe(n)+'"]'}function tc(n){return"script[async]"+n}function Db(n,i,s){if(i.count++,i.instance===null)switch(i.type){case"style":var l=n.querySelector('style[data-href~="'+qe(s.href)+'"]');if(l)return i.instance=l,st(l),l;var h=v({},s,{"data-href":s.href,"data-precedence":s.precedence,href:null,precedence:null});return l=(n.ownerDocument||n).createElement("style"),st(l),ei(l,"style",h),yf(l,s.precedence,n),i.instance=l;case"stylesheet":h=zo(s.href);var p=n.querySelector(ec(h));if(p)return i.state.loading|=4,i.instance=p,st(p),p;l=Ob(s),(h=lr.get(h))&&wp(l,h),p=(n.ownerDocument||n).createElement("link"),st(p);var C=p;return C._p=new Promise(function(N,q){C.onload=N,C.onerror=q}),ei(p,"link",l),i.state.loading|=4,yf(p,s.precedence,n),i.instance=p;case"script":return p=Po(s.src),(h=n.querySelector(tc(p)))?(i.instance=h,st(h),h):(l=s,(h=lr.get(p))&&(l=v({},s),Ep(l,h)),n=n.ownerDocument||n,h=n.createElement("script"),st(h),ei(h,"link",l),n.head.appendChild(h),i.instance=h);case"void":return null;default:throw Error(a(443,i.type))}else i.type==="stylesheet"&&(i.state.loading&4)===0&&(l=i.instance,i.state.loading|=4,yf(l,s.precedence,n));return i.instance}function yf(n,i,s){for(var l=s.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),h=l.length?l[l.length-1]:null,p=h,C=0;C title"):null)}function lM(n,i,s){if(s===1||i.itemProp!=null)return!1;switch(n){case"meta":case"title":return!0;case"style":if(typeof i.precedence!="string"||typeof i.href!="string"||i.href==="")break;return!0;case"link":if(typeof i.rel!="string"||typeof i.href!="string"||i.href===""||i.onLoad||i.onError)break;return i.rel==="stylesheet"?(n=i.disabled,typeof i.precedence=="string"&&n==null):!0;case"script":if(i.async&&typeof i.async!="function"&&typeof i.async!="symbol"&&!i.onLoad&&!i.onError&&i.src&&typeof i.src=="string")return!0}return!1}function kb(n){return!(n.type==="stylesheet"&&(n.state.loading&3)===0)}function cM(n,i,s,l){if(s.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(s.state.loading&4)===0){if(s.instance===null){var h=zo(l.href),p=i.querySelector(ec(h));if(p){i=p._p,i!==null&&typeof i=="object"&&typeof i.then=="function"&&(n.count++,n=bf.bind(n),i.then(n,n)),s.state.loading|=4,s.instance=p,st(p);return}p=i.ownerDocument||i,l=Ob(l),(h=lr.get(h))&&wp(l,h),p=p.createElement("link"),st(p);var C=p;C._p=new Promise(function(N,q){C.onload=N,C.onerror=q}),ei(p,"link",l),s.instance=p}n.stylesheets===null&&(n.stylesheets=new Map),n.stylesheets.set(s,i),(i=s.state.preload)&&(s.state.loading&3)===0&&(n.count++,s=bf.bind(n),i.addEventListener("load",s),i.addEventListener("error",s))}}var Rp=0;function uM(n,i){return n.stylesheets&&n.count===0&&Sf(n,n.stylesheets),0Rp?50:800)+i);return n.unsuspend=s,function(){n.unsuspend=null,clearTimeout(l),clearTimeout(h)}}:null}function bf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Sf(this,this.stylesheets);else if(this.unsuspend){var n=this.unsuspend;this.unsuspend=null,n()}}}var xf=null;function Sf(n,i){n.stylesheets=null,n.unsuspend!==null&&(n.count++,xf=new Map,i.forEach(fM,n),xf=null,bf.call(n))}function fM(n,i){if(!(i.state.loading&4)){var s=xf.get(n);if(s)var l=s.get(null);else{s=new Map,xf.set(n,s);for(var h=n.querySelectorAll("link[data-precedence],style[data-precedence]"),p=0;p"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Lp.exports=jM(),Lp.exports}var rx=OM();const I0=b.createContext({});function uu(e){const t=b.useRef(null);return t.current===null&&(t.current=e()),t.current}const DM=typeof window<"u",Vc=DM?b.useLayoutEffect:b.useEffect,Zd=b.createContext(null);function B0(e,t){e.indexOf(t)===-1&&e.push(t)}function xd(e,t){const r=e.indexOf(t);r>-1&&e.splice(r,1)}const Aa=(e,t,r)=>r>t?t:r/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),WE=e=>typeof e=="object"&&e!==null,F0=e=>/^0[^.\s]+$/u.test(e);function NM(e){let t;return()=>(t===void 0&&(t=e()),t)}const Dr=e=>e,il=(...e)=>e.reduce((t,r)=>a=>r(t(a))),Qs=(e,t,r)=>{const a=t-e;return a?(r-e)/a:1};class Sd{constructor(){this.subscriptions=[]}add(t){return B0(this.subscriptions,t),()=>this.remove(t)}remove(t){xd(this.subscriptions,t)}notify(t,r,a){const o=this.subscriptions.length;if(o)if(o===1)this.subscriptions[0](t,r,a);else for(let c=0;ce*1e3,Ki=e=>e/1e3,ZE=(e,t)=>t?e*(1e3/t):0,_p=(e,t,r)=>e*(3*(1-e)*((1-e)*t+e*r)+e*e);function fu(e,t,r,a){return e===t&&r===a?Dr:o=>{let c=0,u=1,f=o;for(let d=0;;d++){f>=c&&f<=u||(f=(c+u)/2);const m=_p(f,e,r)-o;if(m*m<1e-28||d===40)break;m>0?u=f:c=f,f-=m*1e-7/(_p(f+1e-7,e,r)-o-m)}return _p(f,t,a)}}const QE=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,JE=e=>t=>1-e(1-t),eR=fu(.33,1.53,.69,.99),Y0=JE(eR),tR=QE(Y0),nR=e=>e>=1?1:(e*=2)<1?.5*Y0(e):.5*(2-Math.pow(2,-10*(e-1))),q0=e=>1-Math.sin(Math.acos(e)),iR=JE(q0),rR=QE(q0),LM=fu(.42,0,1,1),kM=fu(0,0,.58,1),G0=fu(.42,0,.58,1),aR=e=>Array.isArray(e)&&typeof e[0]!="number",K0=e=>Array.isArray(e)&&typeof e[0]=="number",zM={linear:Dr,easeIn:LM,easeInOut:G0,easeOut:kM,circIn:q0,circInOut:rR,circOut:iR,backIn:Y0,backInOut:tR,backOut:eR,anticipate:nR},PM=e=>typeof e=="string",_g=e=>{if(K0(e)){const[t,r,a,o]=e;return fu(t,r,a,o)}else if(PM(e))return zM[e];return e},An={delta:0,timestamp:0,isProcessing:!1};let ed;function _M(){ed=void 0}const Ut={now:()=>(ed===void 0&&Ut.set(An.isProcessing||kr.useManualTiming?An.timestamp:performance.now()),ed),set:e=>{ed=e,queueMicrotask(_M)}},$o=e=>Math.round(e*1e5)/1e5,sR=e=>t=>typeof t=="string"&&t.startsWith(e),oR=sR("--"),VM=sR("var(--"),Qd=e=>VM(e)?UM.test(e.split("/*")[0].trim()):!1,UM=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function Vp(e){return typeof e!="string"?!1:e.split("/*")[0].includes("var(--")}const yl={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Uc={...yl,transform:e=>Aa(0,1,e)},jf={...yl,default:1},X0=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function IM(e){return e==null}const BM=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,$0=(e,t)=>r=>!!(typeof r=="string"&&BM.test(r)&&r.startsWith(e)||t&&!IM(r)&&Object.prototype.hasOwnProperty.call(r,t)),lR=(e,t,r)=>a=>{if(typeof a!="string")return a;const[o,c,u,f]=a.match(X0);return{[e]:parseFloat(o),[t]:parseFloat(c),[r]:parseFloat(u),alpha:f!==void 0?parseFloat(f):1}},HM=e=>Aa(0,255,e),Up={...yl,transform:e=>Math.round(HM(e))},qs={test:$0("rgb","red"),parse:lR("red","green","blue"),transform:({red:e,green:t,blue:r,alpha:a=1})=>"rgba("+Up.transform(e)+", "+Up.transform(t)+", "+Up.transform(r)+", "+$o(Uc.transform(a))+")"},Of=(e,t,r)=>{const a=e.substring(1+t*r,1+(t+1)*r);return r>1?a:a+a};function FM(e){const t=e.length>5?2:1,r=Of(e,3,t);return{red:parseInt(Of(e,0,t),16),green:parseInt(Of(e,1,t),16),blue:parseInt(Of(e,2,t),16),alpha:r?parseInt(r,16)/255:1}}const Vg={test:$0("#"),parse:FM,transform:qs.transform},du=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),ba=du("deg"),Xr=du("%"),Ve=du("px"),YM=du("vh"),qM=du("vw"),ax={...Xr,parse:e=>Xr.parse(e)/100,transform:e=>Xr.transform(e*100)},Fo={test:$0("hsl","hue"),parse:lR("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:r,alpha:a=1})=>"hsla("+Math.round(e)+", "+Xr.transform($o(t))+", "+Xr.transform($o(r))+", "+$o(Uc.transform(a))+")"},Fn={test:e=>qs.test(e)||Vg.test(e)||Fo.test(e),parse:e=>qs.test(e)?qs.parse(e):Fo.test(e)?Fo.parse(e):Vg.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?qs.transform(e):Fo.transform(e),getAnimatableNone:e=>{const t=Fn.parse(e);return t.alpha=0,Fn.transform(t)}},GM=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu,cR=new RegExp(X0.source),uR=new RegExp(GM.source,"i");function KM(e){return isNaN(e)&&typeof e=="string"&&(cR.test(e)||uR.test(e))}const fR="number",dR="color",XM="var",$M="var(",sx="${}",WM=/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+)(?![a-z]*\()/giu;function ZM(e){const t=e.toString();return cR.test(t)||uR.test(t)}function Ic(e){const t=e.toString(),r=[],a={color:[],number:[],var:[]},o=[];let c=0;const f=t.replace(WM,d=>(Fn.test(d)?(a.color.push(c),o.push(dR),r.push(Fn.parse(d))):d.startsWith($M)?(a.var.push(c),o.push(XM),r.push(d)):(a.number.push(c),o.push(fR),r.push(parseFloat(d))),++c,sx)).split(sx);return{values:r,split:f,indexes:a,types:o}}function QM(e){return Ic(e).values}function W0({split:e,types:t}){const r=e.length;return a=>{let o="";for(let c=0;ctypeof e=="number"?0:Fn.test(e)?Fn.getAnimatableNone(e):e,t4=(e,t)=>typeof e=="number"?t?.trim().endsWith("/")?e:0:e4(e);function n4(e){const t=Ic(e);return W0(t)(t.values.map((a,o)=>t4(a,t.split[o])))}const hr={test:KM,parse:QM,createTransformer:JM,getAnimatableNone:n4};function Ip(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+(t-e)*6*r:r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function i4({hue:e,saturation:t,lightness:r,alpha:a}){e/=360,t/=100,r/=100;let o=0,c=0,u=0;if(!t)o=c=u=r;else{const f=r<.5?r*(1+t):r+t-r*t,d=2*r-f;o=Ip(d,f,e+1/3),c=Ip(d,f,e),u=Ip(d,f,e-1/3)}return{red:Math.round(o*255),green:Math.round(c*255),blue:Math.round(u*255),alpha:a}}function wd(e,t){return r=>r>0?t:e}const rn=(e,t,r)=>e+(t-e)*r,Bp=(e,t,r)=>{const a=e*e,o=r*(t*t-a)+a;return o<0?0:Math.sqrt(o)},r4=[Vg,qs,Fo],a4=e=>r4.find(t=>t.test(e));function ox(e){const t=a4(e);if(!t)return!1;let r=t.parse(e);return t===Fo&&(r=i4(r)),r}const lx=(e,t)=>{const r=ox(e),a=ox(t);if(!r||!a)return wd(e,t);const o={...r};return c=>(o.red=Bp(r.red,a.red,c),o.green=Bp(r.green,a.green,c),o.blue=Bp(r.blue,a.blue,c),o.alpha=rn(r.alpha,a.alpha,c),qs.transform(o))},Ug=new Set(["none","hidden"]);function s4(e,t){return Ug.has(e)?r=>r<=0?e:t:r=>r>=1?t:e}function o4(e,t){return r=>rn(e,t,r)}function Z0(e){return typeof e=="number"?o4:typeof e=="string"?Qd(e)?wd:Fn.test(e)?lx:u4:Array.isArray(e)?hR:typeof e=="object"?Fn.test(e)?lx:l4:wd}function hR(e,t){const r=[...e],a=r.length,o=e.map((c,u)=>Z0(c)(c,t[u]));return c=>{for(let u=0;u{for(const c in a)r[c]=a[c](o);return r}}function c4(e,t){const r=[],a={color:0,var:0,number:0};for(let o=0;o{const r=Ic(e),a=Ic(t);return r.indexes.var.length===a.indexes.var.length&&r.indexes.color.length===a.indexes.color.length&&r.indexes.number.length>=a.indexes.number.length?Ug.has(e)&&!a.values.length||Ug.has(t)&&!r.values.length?s4(e,t):il(hR(c4(r,a),a.values),W0(a)):wd(e,t)},cx=/^(-?(?:\d+(?:\.\d*)?|\.\d+))([a-z%]*)$/iu;function f4(e,t){const r=cx.exec(e);if(!r)return;const a=cx.exec(t);if(!a||r[2]!==a[2])return;const o=r[2],c=parseFloat(r[1]),u=parseFloat(a[1]);return f=>$o(rn(c,u,f))+o}function Q0(e,t,r){if(typeof e=="number"&&typeof t=="number"&&typeof r=="number")return rn(e,t,r);if(typeof e=="string"&&typeof t=="string"){const o=f4(e,t);if(o)return o}return Z0(e)(e,t)}const Df=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function d4(e){let t=new Set,r=new Set,a=!1,o=!1,c;const u=new Set;let f={delta:0,timestamp:0,isProcessing:!1};function d(g){u.has(g)&&(r.add(g),e()),(c=g)(f)}const m={schedule:(g,v=!1,S=!1)=>{const x=S&&a,E=x?t:r;return v&&u.add(g),x&&g!==c&&E.delete(g),E.add(g),g},cancel:g=>{r.delete(g),u.delete(g)},process:g=>{if(f=g,a){o=!0;return}a=!0;const v=t;t=r,r=v,t.forEach(d),t.clear(),c=void 0,a=!1,o&&(o=!1,m.process(g))}};return m}const h4=40;function mR(e,t,r={delta:0,timestamp:0,isProcessing:!1}){let a=!1,o=!0;const c=()=>a=!0,u=Df.reduce((k,j)=>(k[j]=d4(c),k),{}),{setup:f,read:d,resolveKeyframes:m,preUpdate:g,update:v,preRender:S,render:x,postRender:E}=u,w=()=>{const k=kr.useManualTiming,j=k?r.timestamp:performance.now();a=!1,k||(r.delta=o?1e3/60:Math.max(Math.min(j-r.timestamp,h4),1)),r.timestamp=j,r.isProcessing=!0,f.process(r),d.process(r),m.process(r),g.process(r),v.process(r),S.process(r),x.process(r),E.process(r),r.isProcessing=!1,a&&t&&(o=!1,e(w))},R=()=>{a=!0,o=!0,r.isProcessing||e(w)};return{schedule:Df.reduce((k,j)=>{const L=u[j];return k[j]=(P,D=!1,A=!1)=>(a||R(),L.schedule(P,D,A)),k},{}),cancel:k=>{for(let j=0;j{const t=({timestamp:r})=>e(r);return{start:(r=!0)=>Xt.update(t,r),stop:()=>Gi(t),now:()=>An.isProcessing?An.timestamp:Ut.now()}},pR=(e,t,r=10)=>{let a="";const o=Math.max(Math.round(t/r),2);for(let c=0;c=r?1/0:o}function m4(e,t=100,r){const{keyframes:a,velocity:o}=e,c=a&&a[a.length-1]-a[0],u=r({...e,velocity:o&&c?o*t/c:o,keyframes:[0,t]}),f=Math.min(ty(u),ey);return{type:"keyframes",ease:d=>u.next(f*d).value/t,duration:Ki(f)}}const ux=100,fx=10,p4=1,g4=800,gR=.3,y4=.3,v4=.01,b4=2,x4=.005,S4=.5,w4=.01,E4=10,dx=.05,yR=e=>e<0?1/Math.max(1+e,dx):Math.max(1-e,dx);function vR(e,t){if(!(e>1))return 1;const r=Math.sqrt(e*e-1),a=e-r,o=e+r,c=2*r*Math.exp(-t)*(1+t);return bR(u=>o*Math.exp(-a*u)-a*Math.exp(-o*u)-c,u=>Math.exp(-o*u)-Math.exp(-a*u),t)/t}function Ig(e,t){return e*Math.sqrt(1-t*t)}const R4=12;function bR(e,t,r){let a=r;for(let o=1;o{const g=m*o,v=g*e,S=Ig(m,o),x=Math.exp(-v);return Fp-g/S*x},a=m=>{const v=m*o*e,S=o*o*m*m*e,x=Math.exp(-v),E=Ig(m*m,o);return(-r(m)+Fp>0?-1:1)*-S*x/E}):(r=m=>{const g=Math.exp(-m*e),v=m*e+1;return-Fp+g*v},a=m=>{const g=Math.exp(-m*e),v=-m*(e*e);return g*v});const c=5/e,u=bR(r,a,c),f=u*vR(o,u*e),d=f*f;return{stiffness:d,damping:o*2*Math.sqrt(d),duration:bi(e)}}const Bg=(e,t)=>(t?e>=0:e>0)&&e<1/0;function Yp(e,t){if(Bg(e,t))return e}function T4(e){const t=Yp(e.stiffness),r=Yp(e.damping,!0),a=Yp(e.mass),o={...e,stiffness:t??ux,damping:r??fx,mass:a??p4,isResolvedFromDuration:!1,isTimeDefined:(t??r??a)===void 0&&(e.duration!==void 0||e.bounce!==void 0)};if(o.isTimeDefined){if(e.visualDuration){const c=yR(e.bounce||0),u=2*Math.PI/(e.visualDuration*1.2)*vR(c,2*Math.PI/1.2);o.stiffness=u*u,o.damping=2*c*Math.sqrt(o.stiffness)}else Object.assign(o,C4(o)),o.isResolvedFromDuration=!0;(!Bg(o.stiffness)||!Bg(o.damping,!0))&&(o.stiffness=ux,o.damping=fx)}return o}function hx(e=y4,t=gR){const r=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e,a=r.keyframes[0],o=r.keyframes[r.keyframes.length-1],c={done:!1,value:a},{stiffness:u,damping:f,mass:d,duration:m,isResolvedFromDuration:g,isTimeDefined:v}=T4({...r}),S=D=>v?0:-Ki(D),x=f/(2*Math.sqrt(u*d)),E=Ki(Math.sqrt(u/d)),w=x*E,R={target:o,delta:o-a,velocity:S(r.velocity||0)||0,restSpeed:0,restDelta:0},T=()=>{const D=Math.abs(R.delta)<5;R.restSpeed=r.restSpeed||(D?v4:b4),R.restDelta=r.restDelta||(D?x4:S4)};T();let O,k,j;if(x<1){const D=Ig(E,x),A={A:0,sinC:0,cosC:0,t:-1,env:0,sin:0,cos:0};j=()=>{A.A=(R.velocity+w*R.delta)/D,A.sinC=w*A.A+R.delta*D,A.cosC=w*R.delta-A.A*D};const F=H=>{H!==A.t&&(A.t=H,A.env=Math.exp(-w*H),A.sin=Math.sin(D*H),A.cos=Math.cos(D*H))};O=H=>(F(H),R.target-A.env*(A.A*A.sin+R.delta*A.cos)),k=H=>(F(H),A.env*(A.sinC*A.sin+A.cosC*A.cos))}else if(x===1){O=A=>R.target-Math.exp(-E*A)*(R.delta+(R.velocity+E*R.delta)*A);const D={C:0};j=()=>{D.C=R.velocity+E*R.delta},k=A=>Math.exp(-E*A)*(E*D.C*A-R.velocity)}else{const D=E*Math.sqrt(x*x-1),A=w-D,F=w+D,H=D<1||v?1/0:300/D,X=(W,ee)=>Math.exp(ee>H?(w-W)*H-w*ee:-W*ee),$={S:0,F:0};j=()=>{const W=(R.velocity+w*R.delta)/D;$.S=(R.delta+W)/2,$.F=(R.delta-W)/2},O=W=>R.target-$.S*X(A,W)-$.F*X(F,W),k=W=>A*$.S*X(A,W)+F*$.F*X(F,W)}j();const L=g&&m||null,P={calculatedDuration:L,retarget:(D,A)=>{R.target=D[D.length-1],R.delta=R.target-D[0],R.velocity=S(A),r.restSpeed&&r.restDelta||T(),P.calculatedDuration=L,c.done=!1,j()},velocity:D=>bi(k(D)),next:D=>{const A=O(D);if(g)c.done=D>=m;else{const F=bi(k(D));c.done=Math.abs(F)<=R.restSpeed&&Math.abs(R.target-A)<=R.restDelta}return c.value=c.done?R.target:A,c},toString:()=>{const D=Math.min(ty(P),ey),A=pR(F=>P.next(D*F).value,D,30);return D+"ms "+A},toTransition:()=>{}};return P}const xR=Object.assign(hx,{applyToOptions:e=>{const t=m4(e,100,hx);return e.ease=t.ease,e.duration=bi(t.duration),e.type="keyframes",e}});function Ed({keyframes:e,velocity:t=0,power:r=.8,timeConstant:a=325,bounceDamping:o=10,bounceStiffness:c=500,modifyTarget:u,min:f,max:d,restDelta:m=.5,restSpeed:g}){const v=e[0],S={done:!1,value:v},x=D=>Dd,E=D=>f===void 0?d:d===void 0||Math.abs(f-D)-w*Math.exp(-D/a),k=D=>{const A=O(D);S.done=Math.abs(A)<=m,S.value=S.done?T:D?T+A:v};let j,L;const P=D=>{x(S.value)&&(j=D,L=xR({keyframes:[S.value,E(S.value)],velocity:-O(D)/a*1e3,damping:o,stiffness:c,restDelta:m,restSpeed:g}))};return P(0),{calculatedDuration:null,next:D=>{let A=!1;return!L&&j===void 0&&(A=!0,k(D),P(D)),j!==void 0&&D>=j?L.next(D-j):(!A&&k(D),S)}}}function A4(e,t,r){const a=[],o=kr.mix||Q0,c=e.length-1;for(let u=0;ut[0];if(c===2&&t[0]===t[1])return()=>t[1];const u=e[0]===e[1];e[0]>e[c-1]&&(e=[...e].reverse(),t=[...t].reverse());const f=A4(t,a,o),d=f.length,m=g=>{if(u&&g1)for(;vm(Aa(e[0],e[c-1],g)):m}function j4(e,t){const r=e[e.length-1];for(let a=1;a<=t;a++){const o=Qs(0,t,a);e.push(rn(r,1,o))}}function Bc(e){const t=[0];return j4(t,e.length-1),t}function O4(e,t){return e.map(r=>r*t)}function D4(e,t){return e.map(()=>t||G0).splice(0,e.length-1)}function cs({duration:e=300,keyframes:t,times:r,ease:a="easeInOut",mixer:o}){const c=typeof t[0]=="number"?void 0:o,u=aR(a)?a.map(_g):_g(a)||G0,f={done:!1,value:t[0]};let d=-1;if(!c){for(let v=1;v=0){d=-2;break}d=v-1}}if(d>=0){const v=r&&r.length===t.length?r:Bc(t),S=v[d]*e,x=v[d+1]*e,E=t[d],w=t[d+1],R=Array.isArray(u)?u[d]:u,T=(kr.mix||Q0)(E,w),O=t.length-2;return{calculatedDuration:e,next:k=>(f.value=d&&k=x||!e)?typeof w=="number"?w:T(1):T(R(k>=x||!e?1:k<=S?0:(k-S)/(x-S))),f.done=k>=e,f)}}const m=O4(r&&r.length===t.length?r:Bc(t),e),g=M4(m,t,{ease:Array.isArray(u)?u:D4(t,u),mixer:c});return{calculatedDuration:e,next:v=>(f.value=g(v),f.done=v>=e,f)}}const N4=5;function L4(e,t,r){const a=Math.max(t-N4,0);return ZE(r-e(a),t-a)}function k4(e,t,r=0){return t<=0?r:e.velocity?e.velocity(t):L4(a=>e.next(a).value,t,e.next(t).value)}function Hc(e,{repeat:t,repeatType:r="loop"},a,o=1){let c,u,f=0;for(let g=0;gt-e>P4&&!kr.useManualTiming?t:e;function ER(e,t){return{kind:e,animation:t,timestamp:Ut.now(),frameTimestamp:An.timestamp,frameIsProcessing:An.isProcessing}}function RR(e,t,r){const a=globalThis.__MOTION_INSPECT__;if(a)try{a({...ER("animation-start",e),options:r?{...t,...r}:t})}catch{}}function _4(e,t){const r=globalThis.__MOTION_INSPECT__;if(r)try{r({...ER("layout-animation-start",e),node:t})}catch{}}class ny{constructor(){this.isResolved=!1}get finished(){return this._finished||(this._finished=this.isResolved?Promise.resolve():new Promise(t=>{this._resolve=t})),this._finished}updateFinished(){this._finished=this._resolve=void 0,this.isResolved=!1}notifyFinished(){this.isResolved=!0,this._resolve?.()}then(t,r){return this.finished.then(t,r)}}const V4=e=>e/100,Fc=e=>Math.round(e*1e4)/1e4;class rl extends ny{constructor(t){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=()=>{const{motionValue:r}=this.options;r&&r.updatedAt!==Ut.now()&&this.tick(Ut.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=t,this.initAnimation(),this.play(),t.autoplay===!1&&this.pause(),RR(this,this.options)}initAnimation(){const{options:t}=this;SR(t);const{type:r=cs,repeat:a=0,repeatDelay:o=0,repeatType:c,velocity:u=0}=t;let{keyframes:f}=t;const d=r||cs;this.mixKeyframes=void 0,d!==cs&&typeof f[0]!="number"&&(this.mixKeyframes=il(V4,t.mixer?.(f[0],f[1])||Q0(f[0],f[1])),f=[0,100]);const m=d(f===t.keyframes?t:{...t,keyframes:f});c==="mirror"&&(this.mirroredGenerator=d({...t,keyframes:[...f].reverse(),velocity:-u})),m.calculatedDuration===null&&(m.calculatedDuration=ty(m));const{calculatedDuration:g}=m;this.calculatedDuration=g,this.resolvedDuration=g+o,this.totalDuration=this.resolvedDuration*(a+1)-o,this.generator=m}updateTime(t){this.currentTime=this.holdTime??Math.round(t-this.startTime)*this.playbackSpeed}tick(t,r=!1){const{generator:a,totalDuration:o,calculatedDuration:c}=this;if(this.startTime===null)return a.next(0);const{delay:u=0,keyframes:f,type:d,onUpdate:m,finalKeyframe:g}=this.options;this.startTime===this.pendingStartTime&&(this.startTime=wR(this.startTime,t)),this.pendingStartTime=void 0,this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-o/this.speed,this.startTime)),r?this.currentTime=t:this.updateTime(t);const v=this.currentTime-u*(this.playbackSpeed>=0?1:-1),S=this.playbackSpeed>=0?v<0:v>o;this.currentTime=Math.max(v,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=o);const x=this.generate(this.currentTime,S);let{done:E}=x;S||(E=this.playbackSpeed>=0?c<1/0?this.currentTime>=o:E:this.currentTime<=0);const w=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&E);return w&&d!==Ed&&(x.value=Hc(f,this.options,g,this.speed)),m&&m(x.value),w&&this.finish(),x}at(t){return this.holdTime??Fc((t-this.startTime)*this.playbackSpeed)}sampleAt(t,r){const{options:a,totalDuration:o}=this,c=this.at(t)-(a.delay||0);return c>=o&&a.type!==Ed?Hc(a.keyframes,a,r?void 0:a.finalKeyframe):this.generate(Math.max(c,0),c<0).value}generate(t,r){const{generator:a,totalDuration:o,mixKeyframes:c,mirroredGenerator:u,resolvedDuration:f}=this,{keyframes:d,repeat:m,repeatType:g,repeatDelay:v}=this.options;let S=t,x=a;if(m){const w=Math.min(t,o)/f;let R=Math.floor(w),T=w%1;!T&&w>=1&&(T=1),T===1&&R--,R=Math.min(R,m+1),R%2&&(g==="reverse"?(T=1-T,v&&(T-=v/f)):g==="mirror"&&(x=u)),S=Aa(0,1,T)*f}let E;return r?(this.delayState.value=d[0],E=this.delayState):E=x.next(S),c&&!r&&(E.value=c(E.value)),E}get duration(){return Ki(this.calculatedDuration)}get iterationDuration(){return this.duration+Ki(this.options.delay??0)}get time(){return Ki(this.currentTime)}set time(t){this.state==="finished"&&this.updateFinished(),t=bi(t),this.currentTime=t,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=t,this.tick(t))}getGeneratorVelocity(){return k4(this.generator,this.currentTime,this.options.velocity)}get speed(){return this.playbackSpeed}set speed(t){const r=this.playbackSpeed!==t;r&&this.driver&&this.updateTime(Ut.now()),this.playbackSpeed=t,r&&this.driver&&(this.time=Ki(this.currentTime))}play(){if(this.isStopped)return;const{driver:t=J0,startTime:r}=this.options;this.driver||(this.driver=t(o=>this.tick(o))),this.options.onPlay?.();const a=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=a):this.holdTime!==null?this.startTime=a-this.holdTime/(this.playbackSpeed||1):this.startTime||(this.startTime=r??(this.pendingStartTime=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(Ut.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.driver?.stop(),this.driver=void 0,this.startTime=this.holdTime=null}sample(t){return this.startTime=0,this.tick(t,!0)}attachTimeline(t){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),t.observe(this)}}const U4=new Set(["brightness","contrast","saturate","opacity"]);function I4(e){const[t,r]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[a]=r.match(X0)||[];if(!a)return e;const o=r.replace(a,"");let c=U4.has(t)?1:0;return a!==r&&(c*=100),t+"("+c+o+")"}const B4=/\b([a-z-]*)\(.*?\)/gu,Hg={...hr,getAnimatableNone:e=>{const t=e.match(B4);return t?t.map(I4).join(" "):e}},Fg={...hr,getAnimatableNone:e=>{const t=hr.parse(e);return hr.createTransformer(e)(t.map(a=>typeof a=="number"?0:typeof a=="object"?{...a,alpha:1}:a))}},mx={...yl,transform:Math.round},CR={rotate:ba,pathRotation:ba,rotateX:ba,rotateY:ba,rotateZ:ba,scale:jf,scaleX:jf,scaleY:jf,scaleZ:jf,skew:ba,skewX:ba,skewY:ba,distance:Ve,translateX:Ve,translateY:Ve,translateZ:Ve,x:Ve,y:Ve,z:Ve,perspective:Ve,transformPerspective:Ve,opacity:Uc,originX:ax,originY:ax,originZ:Ve},iy={borderWidth:Ve,borderTopWidth:Ve,borderRightWidth:Ve,borderBottomWidth:Ve,borderLeftWidth:Ve,borderRadius:Ve,borderTopLeftRadius:Ve,borderTopRightRadius:Ve,borderBottomRightRadius:Ve,borderBottomLeftRadius:Ve,width:Ve,maxWidth:Ve,height:Ve,maxHeight:Ve,top:Ve,right:Ve,bottom:Ve,left:Ve,inset:Ve,insetBlock:Ve,insetBlockStart:Ve,insetBlockEnd:Ve,insetInline:Ve,insetInlineStart:Ve,insetInlineEnd:Ve,padding:Ve,paddingTop:Ve,paddingRight:Ve,paddingBottom:Ve,paddingLeft:Ve,paddingBlock:Ve,paddingBlockStart:Ve,paddingBlockEnd:Ve,paddingInline:Ve,paddingInlineStart:Ve,paddingInlineEnd:Ve,margin:Ve,marginTop:Ve,marginRight:Ve,marginBottom:Ve,marginLeft:Ve,marginBlock:Ve,marginBlockStart:Ve,marginBlockEnd:Ve,marginInline:Ve,marginInlineStart:Ve,marginInlineEnd:Ve,fontSize:Ve,backgroundPositionX:Ve,backgroundPositionY:Ve,...CR,zIndex:mx,fillOpacity:Uc,strokeOpacity:Uc,numOctaves:mx},H4={...iy,color:Fn,backgroundColor:Fn,outlineColor:Fn,fill:Fn,stroke:Fn,borderColor:Fn,borderTopColor:Fn,borderRightColor:Fn,borderBottomColor:Fn,borderLeftColor:Fn,filter:Hg,WebkitFilter:Hg,mask:Fg,WebkitMask:Fg},TR=e=>H4[e],F4=new Set([Hg,Fg]);let px,gx,qp;function ry(e,t){if(e===px&&t===gx)return qp;let r=TR(e);return F4.has(r)||(r=hr),qp=r.getAnimatableNone?r.getAnimatableNone(t):void 0,px=e,gx=t,qp}function Y4(e){for(let t=1;te*180/Math.PI,Yg=e=>{const t=Gs(Math.atan2(e[1],e[0]));return qg(t)},q4={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scaleZ:()=>1,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:Yg,rotateZ:Yg,skewX:e=>Gs(Math.atan(e[1])),skewY:e=>Gs(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},qg=e=>(e=e%360,e<0&&(e+=360),e),yx=Yg,vx=e=>Math.hypot(e[0],e[1]),bx=e=>Math.hypot(e[4],e[5]),G4={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:vx,scaleY:bx,scaleZ:e=>Math.hypot(e[8],e[9],e[10]),scale:e=>(vx(e)+bx(e))/2,rotateX:e=>qg(Gs(Math.atan2(e[6],e[5]))),rotateY:e=>qg(Gs(Math.atan2(-e[2],e[0]))),rotateZ:yx,rotate:yx,skewX:e=>Gs(Math.atan(e[4])),skewY:e=>Gs(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function Yc(e){return e.includes("scale")?1:0}function ay(e,t){if(!e||e==="none")return Yc(t);const r=e.match(/^matrix(3d)?\(([-\d.e\s,]+)\)$/u);if(!r)return Yc(t);const a=(r[1]?G4:q4)[t],o=r[2].split(",").map(c=>parseFloat(c));return typeof a=="function"?a(o):o[a]}const K4=(e,t)=>{const{transform:r="none"}=getComputedStyle(e);return ay(r,t)},Ra=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","scaleZ","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],us=new Set([...Ra,"pathRotation"]),xx=e=>e===yl||e===Ve,X4=new Set(["x","y","z"]),$4=Ra.filter(e=>!X4.has(e));function W4(e){const t=[];return $4.forEach(r=>{const a=e.getValue(r);if(a!==void 0){const o=a.get(),c=r.startsWith("scale")?1:0;if(o===c)return;t.push([r,o]),a.set(c)}}),t}const Z4=new Set(["bottom","right"]);function Sx(e,t,r,a,o,c){const u=parseFloat(e);if(!isNaN(u))return u;const{min:f,max:d}=t()[r],m=d-f;return c==="border-box"?m:m-parseFloat(a)-parseFloat(o)}const wx=({transform:e})=>ay(e,"x"),Ex=({transform:e})=>ay(e,"y"),Gp={width:({width:e,paddingLeft:t="0",paddingRight:r="0",boxSizing:a},o)=>Sx(e,o,"x",t,r,a),height:({height:e,paddingTop:t="0",paddingBottom:r="0",boxSizing:a},o)=>Sx(e,o,"y",t,r,a),top:({top:e})=>parseFloat(e),left:({left:e})=>parseFloat(e),bottom:({top:e},t)=>{const{y:r}=t();return parseFloat(e)+(r.max-r.min)},right:({left:e},t)=>{const{x:r}=t();return parseFloat(e)+(r.max-r.min)},x:wx,y:Ex,translateX:wx,translateY:Ex},$s=new Set;let Gg=!1,Kg=!1,Xg=!1;function AR(){if(Kg){const e=[],t=new Set,r=new Set;$s.forEach(o=>{o.needsMeasurement&&(e.push(o),t.add(o.element),Z4.has(o.name)&&r.add(o.element))});const a=new Map;r.forEach(o=>{const c=W4(o);c.length&&(a.set(o,c),o.render())}),e.forEach(o=>o.measureInitialState()),t.forEach(o=>{o.render();const c=a.get(o);c&&c.forEach(([u,f])=>{o.getValue(u)?.set(f)})}),e.forEach(o=>o.measureEndState()),e.forEach(o=>{o.suspendedScrollY!==void 0&&window.scrollTo(0,o.suspendedScrollY)})}Kg=!1,Gg=!1,$s.forEach(e=>e.complete(Xg)),$s.clear()}function MR(){$s.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(Kg=!0)})}function Q4(){Xg=!0,MR(),AR(),Xg=!1}function J4(e,t,r){if(typeof e=="string"){if(H0(e)||F0(e))return parseFloat(e);if(!hr.test(e)&&hr.test(r))return ry(t,r)}return e??void 0}class sy{constructor(t,r,a,o,c,u=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...t],this.onComplete=r,this.name=a,this.motionValue=o,this.element=c,this.isAsync=u}scheduleResolve(){this.state="scheduled",this.isAsync?($s.add(this),Gg||(Gg=!0,Xt.read(MR),Xt.resolveKeyframes(AR))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:r,element:a,motionValue:o}=this;if(t[0]===null){const c=o?.get(),u=t[t.length-1];if(c!==void 0)t[0]=c;else if(a&&r){const f=J4(a.readValue(r,u),r,u);f!==void 0&&(t[0]=f)}t[0]===void 0&&(t[0]=u),o&&c===void 0&&o.set(t[0])}Y4(t)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(t=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,t),$s.delete(this)}cancel(){this.state==="scheduled"&&($s.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const e6=e=>e.startsWith("--");function jR(e,t,r){e6(t)?e.style.setProperty(t,r):e.style[t]=r}const t6={};function OR(e,t){const r=NM(e);return()=>t6[t]??r()}const n6=OR(()=>window.ScrollTimeline!==void 0,"scrollTimeline"),oy=OR(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),Yo=([e,t,r,a])=>`cubic-bezier(${e}, ${t}, ${r}, ${a})`,$g={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:Yo([0,.65,.55,1]),circOut:Yo([.55,0,1,.45]),backIn:Yo([.31,.01,.66,-.59]),backOut:Yo([.33,1.53,.69,.99])};function DR(e,t){if(e)return typeof e=="function"?oy()?pR(e,t):"ease-out":K0(e)?Yo(e):Array.isArray(e)?e.map(r=>DR(r,t)||$g.easeOut):$g[e]}function i6(e,t,r,{delay:a=0,duration:o=300,repeat:c=0,repeatType:u="loop",ease:f="easeOut",times:d}={},m=void 0){const g={[t]:r};d&&(g.offset=d);const v=DR(f,o);Array.isArray(v)&&(g.easing=v);const S={delay:a,duration:o,easing:Array.isArray(v)?"linear":v,fill:"both",iterations:c+1,direction:u==="reverse"?"alternate":"normal"};return m&&(S.pseudoElement=m),e.animate(g,S)}function NR(e){return typeof e=="function"&&"applyToOptions"in e}function r6({type:e,...t}){return NR(e)&&oy()?e.applyToOptions(t):(t.duration??(t.duration=300),t.ease??(t.ease="easeOut"),t)}class LR extends ny{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!t)return;const{element:r,name:a,keyframes:o,pseudoElement:c,allowFlatten:u=!1,finalKeyframe:f,onComplete:d}=t;this.isPseudoElement=!!c,this.allowFlatten=u,this.options=t;const m=r6(t);this.animation=i6(r,a,o,m,c),m.autoplay===!1&&this.animation.pause(),this.animation.onfinish=this.onFinish=()=>{if(this.animation.onfinish=null,this.finishedTime=this.time,!c){const g=Hc(o,this.options,f,this.speed);this.updateMotionValue?.(g),jR(r,a,g),this.animation.cancel()}d?.(),this.notifyFinished()},RR(this,t,m)}play(){this.isStopped||(this.manualStartTime=null,this.animation.onfinish=this.onFinish,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.isStopped||(this.animation.onfinish=this.onFinish),this.animation.finish?.()}cancel(){this.animation.onfinish=null;try{this.animation.cancel()}catch{}}stop(){this.isStopped||(this.isStopped=!0,!(this.state==="idle"||this.finishedTime!==null)&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel()))}commitStyles(){const t=this.options?.element;!this.isPseudoElement&&t?.isConnected&&this.animation.commitStyles?.()}get duration(){const t=this.animation.effect?.getComputedTiming?.().duration||0;return Ki(Number(t))}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Ki(t)}get time(){return Ki(Number(this.animation.currentTime)||0)}set time(t){const r=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=bi(t),r&&(this.animation.pause(),this.updateFinished())}get speed(){return this.animation.playbackRate}set speed(t){t<0&&(this.finishedTime=null),this.animation.playbackRate=t}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(t){this.manualStartTime=this.animation.startTime=t}attachTimeline({timeline:t,onAttach:r,observe:a}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=this.onFinish=null,t&&n6()?(this.animation.timeline=t,r?.(this.animation),Dr):a(this)}}const kR={anticipate:nR,backInOut:tR,circInOut:rR};function a6(e){return e in kR}function s6(e){typeof e.ease=="string"&&a6(e.ease)&&(e.ease=kR[e.ease])}const Rd=10;class o6 extends LR{constructor(t){s6(t),SR(t),super(t),t.startTime!==void 0&&t.autoplay!==!1&&(this.startTime=t.startTime),this.options=t}elapsed(){return this.state==="running"?(Ut.now()-this.startTime)*this.speed:this.time*1e3}sample(t){if(!this.sampler){const{motionValue:r,onUpdate:a,onComplete:o,onPlay:c,onStop:u,element:f,...d}=this.options;this.sampler=new rl({...d,autoplay:!1}),this.sampler.stop()}return this.sampler.sample(Math.max(0,t)).value}liveValue(){const{state:t}=this;if(t==="running"||t==="paused")return this.sample(this.elapsed())}updateMotionValue(t){const{motionValue:r,element:a,name:o}=this.options;if(!r)return;if(t!==void 0){r.set(t);return}const{speed:c}=this,u=this.elapsed(),f=this.state==="running"&&c?Aa(0,Rd,u):0,d=this.sample(u);a&&o&&jR(a,o,d),r.setWithVelocity(this.sample(u-f*Math.sign(c)),d,f/Math.abs(c||1))}}const Rx=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(hr.test(e)||e==="0")&&!e.startsWith("url("));function l6(e){const t=e[0];if(e.length===1)return!0;for(let r=0;re&&typeof t[0]!="number"&&t.some((r,a)=>a&&e(t[a-1],r)),Cx=new Set(["color","backgroundColor","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"]),PR=()=>!kr.useManualTiming&&Object.hasOwnProperty.call(Element.prototype,"animate");function d6(e){const{motionValue:t,name:r,repeatDelay:a,repeatType:o,damping:c,type:u,keyframes:f}=e;if(!r||!(Zg.has(r)||Cx.has(r)))return!1;const d=t?.owner?.current;if(!(d instanceof HTMLElement)&&!(d instanceof SVGElement))return!1;const{onUpdate:m,transformTemplate:g}=t.owner.getProps();return PR()&&(Zg.has(r)||Cx.has(r)&&f6(f))&&(r!=="transform"||!g)&&!m&&!a&&o!=="mirror"&&c!==0&&u!=="inertia"&&!zR(e)}const ly=(e,t)=>t&&typeof e=="number"?t.transform(e):e,h6={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},m6=Ra.length,Tx={},Qg=(e,t,r=ly(t,CR[e]))=>(Tx[e]||(Tx[e]=(h6[e]||e)+"("))+r+")",Jg=(e,t)=>(typeof t=="number"?t:parseFloat(t))===(e.startsWith("scale")?1:0);function p6(e,t,r){let a="";for(let c=0;cx6.has(e),Mx=new WeakMap,w6=(e,t)=>{let r=Mx.get(e);return r?.[0]!==t&&(r=[t,"linear("+Bc(Array(t+1)).map(a=>Fc(e(a))+" "+Fc(a*100)+"%")+")"],Mx.set(e,r)),r[1]},jx=(e,t)=>Math.min(g6,Math.max(2,Math.ceil((t-e)/Rd))),Oc=(e,t)=>Math.abs(e-t)<=_R,Kp=(e,t)=>e-t,Ox=(e,t,r)=>Bc(Array(r+1)).map(a=>rn(e,t,a)),td=e=>e.motionValue.owner,Cd=e=>al.get(e),Dx=({state:e})=>e==="idle"||e==="finished",qo=(e,t)=>e.latestValues?e.latestValues[t]:e.getValue(t)?.get(),E6=({name:e,motionValue:t})=>e&&Ra.includes(e)&&t?.owner?.current instanceof HTMLElement&&PR()&&oy();function R6(e){const t=td(e),{onUpdate:r,transformTemplate:a}=t.getProps();return!e.isHandoff&&!r&&!e.hasOnUpdate&&!a&&e.type!=="inertia"&&(qo(t,"transform")||"none")==="none"&&!qo(t,"pathRotation")&&!t.projection?.isProjecting()&&!zR(e)}class C6{constructor(t,r,a,o){this.element=t,this.update=r,this.makeDriver=a,this.animation=o}get js(){return this.driver||(this.driver=this.makeDriver(this.update))}now(){return this.driver||this.makeDriver!==J0?this.js.now():An.isProcessing?An.timestamp:Ut.now()}start(t=!0){const r=Cd(this.element);!r||r.isJS?this.js.start(t):r.schedule(!1,!t)}stopJS(){this.driver?.stop()}stop(){this.stopJS();const t=Cd(this.element);t&&!t.isFinishing&&t.release(this.animation)}}let Nx;class T6 extends rl{constructor(t){const r=td(t).current,{driver:a=J0}=t;let o;const c=R6(t);t.driver=d=>new C6(r,d,a,o),super(t),o=this;const u=this.driver;u&&(u.animation=this),this.canAccelerate=c;const{stop:f}=this;this.stop=()=>{this.isAccelerated()&&this.sync(),f()}}offsets(){const{keyframes:t,times:r}=this.options;return r||(this.offsetsOf!==t&&(this.offsetsOf=t,this.cachedOffsets=Bc(t)),this.cachedOffsets)}get group(){return Cd(td(this.options).current)}get js(){return this.driver?.js}stopJS(){this.driver?.stopJS()}get name(){return this.options.name}timing(){const{startTime:t,speed:r,totalDuration:a}=this,{delay:o=0,repeatType:c}=this.options;return this.holdTime!==null?[1/0,0]:a===1/0?[t+o/r,this.resolvedDuration*(c==="loop"?1:2)/r||1]:[t+(o+a)/r,0]}isAccelerated(){const{group:t,state:r}=this;return t?.tracks.has(this)&&!t.isJS&&this.canAccelerate&&(r==="running"||r==="paused")}liveValue(){return this.isAccelerated()?this.sampleAt(Ut.now()):void 0}tween(){const{keyframes:t,type:r,repeat:a,delay:o=0}=this.options;let c=-1;if(a||r!==cs||this.holdTime!==null)return;for(let m=1;m=0)return;c=m-1}let{ease:u}=this.options;aR(u)&&(u=u[c]);const f=this.offsets(),d=m=>this.startTime+(o+f[m]*this.totalDuration)/this.speed;if(c>=0){const m=K0(u)?Yo(u):S6(u)?$g[u]:_g(u);return[d(c),d(c+1),typeof m=="string"||Oc(m(0),0)&&Oc(m(1),1)?m:void 0]}}boundaries(t,r){const{startTime:a,speed:o,resolvedDuration:c,options:u}=this,{delay:f=0,repeat:d=0,repeatDelay:m=0,repeatType:g,type:v}=u,S=(v||cs)===cs?this.offsets():[0,1],x=a+f/o,E=[];if(this.holdTime!==null||!(c>0))return E;for(let w=Math.max(0,Math.floor((t-x)*o/c));w<=d;w++){const R=x+w*c/o;if(R>r)break;for(const T of S){const O=R+(w%2&&g&&g!=="loop"?1-T:T)*(c-m)/o;O>t&&O{lc||queueMicrotask(()=>{const t=lc;lc=void 0,t.forEach(r=>r())}),(lc||(lc=[])).push(e)};function M6(e){const t=e.current,r=new Set,a=new Map;let o={},c=[],u=new Map,f=[],d=!1,m=!1,g=!1,v=!1,S=-1/0,x,E=1/0,w;const R=_=>{for(const M of r)if(M.name===_)return!0},T=(_,M)=>{const z={};for(const I of _===void 0?Ra:c){const B=a.get(I),Z=_===void 0?qo(e,I):B?B.sampleAt(M>_&&!B.timing()[1]?M:_):o[I];Z!==void 0&&(z[I]=Z)}return z},O=(_,M)=>{let z="";for(const I in _){const B=_[I];(!M||!Jg(I,B))&&(z+=Qg(I,B)+" ")}return(M?z.trim():z)||"none"},k=(_,M)=>O(T(_,M)),j=(_=T())=>{t.style.transform=O(_,!0)},L=_=>{_.onfinish=_.oncancel=null,_.cancel()},P=(_=!0)=>{clearTimeout(x),E=1/0,w=void 0,_&&j(),f.forEach(({animation:M})=>L(M)),f=[]},D=(_,M)=>new Animation(new KeyframeEffect(t,_,M)),A=(_,M,z=1/0)=>{const I={animation:_,offset:M,end:z};_.startTime=Ut.now()+M,z<1/0&&(_.onfinish=()=>{I.isDone=!0,f.some(B=>B.end===1/0)&&(L(_),f=f.filter(B=>B!==I)),Y.schedule(!1)}),_.oncancel=()=>f.includes(I)&&Y.demote(),f.push(I)},F=(_,M,z)=>{const I=(Z,re)=>Math.abs(_(re)-_(Z)),B=I(M,z);for(;z-M>.01;){const Z=(M+z)/2;I(M,Z)>I(Z,z)?z=Z:M=Z}return I(M,z)>B/2?[M,z]:[]},H=(_,M,z,I)=>{const B=jx(M,z);if(I.length*4>B)return;let Z;for(const we of _){const Re=we.numberAt(M),ye=(we.numberAt((M+z)/2)-Re)/(we.numberAt(z)-Re);if(ye===ye){if(Z===void 0)Z=ye;else if(!Oc(ye,Z))return}}const re=Ox(M,z,B).concat(I).sort(Kp),fe=we=>Qs(M,z,we);let pe,ce;for(const we of _){const Re=we.numberAt(M),ye=re.map(nt=>we.numberAt(nt)-Re),ze=ye[ye.length-1],Ye=ye.some(nt=>Math.abs(nt)*_R>Math.abs(ze))?0:ze,Qe=ye.map(nt=>Ye?nt/Ye:nt);if(Ye&&!pe)pe=Qe,ce=nt=>(we.numberAt(nt)-Re)/Ye;else if(Qe.some((nt,Ne)=>!Oc(nt,Ye&&pe[Ne])))return}if(!pe||pe.every((we,Re)=>Oc(we,fe(re[Re]))))return"linear";const Ae=[],ke=(we,Re=ce(we))=>Ae.push(Fc(Re)+" "+Fc(fe(we)*100)+"%");return pe.forEach((we,Re)=>{Re&&Math.abs(we-pe[Re-1])>.2&&F(ce,re[Re-1],re[Re]).forEach(ye=>ke(ye)),ke(re[Re],we)}),"linear("+Ae+")"},X=(_,M,z,I)=>{const B=[M],Z=[];let re=z,fe=M;for(const we of _){const Re=we.tween();if(Re?.[2]!=="linear"){const[ye,ze]=we.timing(),[Ye,Qe]=Re||[M,ze?z:ye];re=Math.min(re,Ye),fe=Math.max(fe,Qe),Z.push(we)}}re=Math.max(M,re),fe=Math.min(z,fe);const pe=(we,Re)=>Z.every(ye=>!(Math.abs(ye.numberAt((we+Re)/2)-(ye.numberAt(we)+ye.numberAt(Re))/2)>(ye.name.startsWith("scale")?v6:y6))),ce=(we,Re,ye)=>{if(Re-we<1||pe(we,Re))B.push(Re);else if(ye<4)ce(we,(we+Re)/2,ye+1),ce((we+Re)/2,Re,ye+1);else{for(const ze of _)B.push(...F(Ye=>ze.numberAt(Ye),we,Re));B.push(Re)}},Ae=fe>re?Ox(re,fe,Math.ceil((fe-re)/100)):[];Ae.push(z);for(const we of I)Ae.push(we,Math.min(we+.01,z));let ke=M;for(const we of Ae.sort(Kp))we>ke&&ce(ke,we,0),ke=we;return B.sort(Kp)},$=_=>{let M;for(const z of _){const I=z.tween();if(!I||M&&(Math.abs(I[0]-M[0])>1||Math.abs(I[1]-M[1])>1))return;M=[I[0],I[1],!M||I[2]===M[2]?I[2]:void 0]}return M},W=(_,M,z,I,B={fill:"both"},Z)=>{const re=I?[]:_.flatMap(ke=>ke.boundaries(M,z)),fe=I||H(_,M,z,re),pe=fe?[M,z]:X(_,M,z,re),ce=pe.map(ke=>k(ke,Z));let Ae={transform:ce};return fe||(Ae.offset=pe.map(ke=>Qs(M,z,ke))),ce.every(ke=>ke===ce[0])&&(j(T(M,Z)),Ae=null),D(Ae,{...B,duration:z-M,easing:fe||"linear"})},ee=_=>{const M=Ut.now()+_;M{E=1/0,Y.schedule(!1)},_))},ie=_=>{let M=_,z=0,I=0;const B=[],Z=[],re=new Set;a.clear(),u=new Map;for(const pe of r){a.set(pe.name,pe);const[ce,Ae]=pe.timing(),ke=ce===1/0;if(u.set(pe,[pe.at(_),pe.speed,ke]),!ke){if(pe.speed<0)return;if(Ae){if(z){const we=(ce-I)/Ae;if(Math.abs(Ae-z)>1||Math.abs(we-Math.round(we))*z>1)return}else z=Ae,I=ce;Z.push(pe)}else re.add(ce);B.push(pe),M=Math.max(M,ce)}}o={},c=Ra.filter(pe=>{if(a.has(pe))return!0;const ce=o[pe]=qo(e,pe);return ce!==void 0&&!Jg(pe,ce)}),P(!1);const fe=!z&&$(B);try{if(M>_){let pe;if(fe&&fe[1]>_){const[ce,Ae,ke]=fe;if(ce-_>Ax)return B.forEach(we=>we.sync()),ee(w=ce-_-Ax),!0;pe=typeof ke=="string"?ke:ke?w6(ke,jx(ce,Ae)):H(B,ce,Ae,[]),pe&&A(W(B,ce,Ae,pe,{fill:"both",endDelay:M-Ae}),ce-_,M-ce)}pe||A(W(B,_,M),0,M-_),re.forEach(ce=>ce{let z,I=0;for(const B of r){const Z=u.get(B);if(!Z)return!1;const[re,fe,pe]=Z,ce=B.at(_),Ae=B.timing()[0]===1/0;if(pe){if(Ae&&(ce===re||!f.length))continue;return!1}const ke=(ce-re)/fe,we=Ae?0:B.speed/fe;if(z===void 0)z=ke,I=we;else if(Math.abs(ke-z)>1||we!==I)return!1}if(z===void 0)return!0;if(!f.length){if(w===void 0||M&&I)return!1;if(I){const B=(w-z)/I;if(B<1)return!1;ee(B)}return!0}for(const{offset:B,end:Z,isDone:re}of f){const fe=z-B;if(Z<1/0&&(re?fe=Z))return!1}for(const{animation:B,offset:Z,isDone:re}of f){if(re)continue;const fe=z-Z;I&&B.updatePlaybackRate&&B.playState==="running"&&Math.abs(Number(B.currentTime)-fe)<20?B.playbackRate!==I&&B.updatePlaybackRate(I):I?(B.playbackRate!==I&&(B.playbackRate=I),B.startTime=_-fe/I):(B.startTime=null,B.currentTime=fe)}return!0},K=()=>r.size?!1:(g=!0,Cd(t)===Y&&al.delete(t),Y.isJS||P(),!0),Q=()=>{const _=Ut.now();if(Y.isJS||(Y.isFinishing=!0,r.forEach(I=>{const[B,Z]=I.timing();I.state==="running"&&I.speed>0&&!Z&&B<=_+1&&(I.complete(),o[I.name]=qo(e,I.name),u.has(I)||(d=!0))}),Y.isFinishing=!1),m=!1,g||(r.forEach(I=>Dx(I)&&r.delete(I)),K()))return;for(const I of r)if(!I.canAccelerate)return Y.demote(!0);Y.isJS&&(Y.isJS=!1,d=!0,r.forEach(I=>I.stopJS()));const M=d,z=v;if(d=v=!1,M||!V(_,z)){if(z){if(_-SI.timing()[0]===1/0&&I.sync())},Y={tracks:r,isJS:!1,isFinishing:!1,schedule(_,M){g||(d||(d=_),v||(v=!!M),m||(m=!0,An.isProcessing?Xt.render(Q,!1,!0):A6(Q)))},release(_){Dx(_)&&r.delete(_),K()||Y.schedule(!0)},check(){if(!Y.isJS){for(const _ in o)if(qo(e,_)!==o[_]&&!R(_))return Y.schedule(!0,!0)}},demote(_){if(!(Y.isJS||g))return r.forEach(M=>{M.isAccelerated()&&M.sync(),_||(M.canAccelerate=!1)}),Y.isJS=!0,u=new Map,P(),r.forEach(M=>M.state==="running"&&M.js?.start()),!0}};return al.set(t,Y),Y}class j6 extends ny{constructor(t){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=Ut.now();const{keyframes:r,name:a,motionValue:o,element:c}=t,u=t;u.autoplay??(u.autoplay=!0),u.delay??(u.delay=0),u.type??(u.type="keyframes"),u.repeat??(u.repeat=0),u.repeatDelay??(u.repeatDelay=0),u.repeatType??(u.repeatType="loop");const f=c?.KeyframeResolver||sy;this.keyframeResolver=new f(r,(d,m,g)=>this.onKeyframesResolved(d,m,u,!g),a,o,c),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(t,r,a,o){this.keyframeResolver=void 0;const{name:c,type:u,velocity:f,delay:d,isHandoff:m,onUpdate:g}=a;this.resolvedAt=Ut.now();const v=c6(t,c,u,f);v||((kr.instantAnimations||!d)&&g?.(Hc(t,a,r)),t[0]=t[t.length-1],Wg(a),a.repeat=0);const{onComplete:S}=a;a.finalKeyframe=r,a.keyframes=t,a.onComplete=()=>{S?.(),this.notifyFinished()};const x=v&&!m&&d6(a),E=!x&&E6(a);o&&(x||E||this.resolvedAt!==this.createdAt)&&(a.startTime??(a.startTime=wR(this.createdAt,this.resolvedAt)));let w;if(x){a.element=a.motionValue?.owner?.current;try{w=new o6(a)}catch{w=new rl(a)}}else E?w=new T6(a):w=new rl(a);this.pendingTimeline&&(this.stopTimeline=w.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=w}get finished(){return this._animation?this._animation.finished:super.finished}then(t,r){return this.finished.finally(t).then(()=>{})}liveValue(){return this._animation?.liveValue?.()}get animation(){return this._animation||(this.keyframeResolver?.resume(),Q4()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(t){this.animation.time=t}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(t){this.animation.speed=t}get startTime(){return this.animation.startTime}attachTimeline(t){return this._animation?this.stopTimeline=this.animation.attachTimeline(t):this.pendingTimeline=t,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation?.cancel(),this.keyframeResolver?.cancel()}}function VR(e,t,r,a=0,o=1){const c=Array.from(e).sort((m,g)=>m.sortNodePosition(g)).indexOf(t),u=e.size,f=(u-1)*a;return typeof r=="function"?r(c,u):o===1?c*a:f-c*a}const Lx=30,O6=e=>!isNaN(parseFloat(e));class D6{constructor(t,r={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=a=>{const o=Ut.now();if(this.updatedAt!==o&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(a),this.current!==this.prev&&(this.dirty(),this.dependents))for(const c of this.dependents)c.dirty()},this.hasAnimated=!1,this.setCurrent(t),this.owner=r.owner}setCurrent(t){this.current=t,this.updatedAt=Ut.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=O6(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,r){var a;return t==="change"?this.onChangeSubscribe(r):((a=this.events)[t]||(a[t]=new Sd)).add(r)}onChangeSubscribe(t){const{events:r}=this;return!r.change&&!this.changeSubscriber?this.changeSubscriber=t:(r.change||(r.change=new Sd,r.change.add(this.changeSubscriber),this.changeSubscriber=void 0),r.change.add(t)),()=>{this.changeSubscriber===t?this.changeSubscriber=void 0:r.change?.remove(t),this.stopIfUnobserved()}}stopIfUnobserved(){Xt.read(()=>{!this.changeSubscriber&&!this.events.change?.getSize()&&this.stop()})}clearListeners(){this.changeSubscriber=void 0;for(const t in this.events)this.events[t].clear()}attach(t,r){this.passiveEffect=t,this.stopPassiveEffect=r}set(t){this.passiveEffect?this.passiveEffect(t,this.updateAndNotify):this.updateAndNotify(t)}setWithVelocity(t,r,a){this.set(r),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-a}jump(t,r=!0){r&&(this.updatedAt=Ut.now(),this.stop()),this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,this.stopPassiveEffect?.()}dirty(){const{current:t,changeSubscriber:r}=this;r?r(t):this.events.change?.notify(t)}addDependent(t){(this.dependents||(this.dependents=new Set)).add(t)}removeDependent(t){this.dependents?.delete(t)}get(){const t=this.animation?.liveValue?.();return t===void 0?this.current:t}getCurrent(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Ut.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>Lx)return 0;const r=Math.min(this.updatedAt-this.prevUpdatedAt,Lx);return ZE(parseFloat(this.current)-parseFloat(this.prevFrameValue),r)}start(t){return new Promise(r=>this.run(t,r))}run(t,r){this.stop(),this.hasAnimated=!0;let a=!1,o;o=t(()=>{a=!0,this.events.animationComplete?.notify(),this.animation===o&&(this.animation=void 0),r?.()}),a||(this.animation=o),this.events.animationStart?.notify()}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel?.notify()),this.animation=void 0}isAnimating(){return!!this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect?.()}}function sl(e,t){return new D6(e,t)}function cy(e,t){if(e?.inherit&&t){const{inherit:r,...a}=e;return{...t,...a}}return e}function uy(e,t){const r=e?.[t]??e?.default??e;return r!==e?cy(r,e):r}const N6={type:"spring",stiffness:500,damping:25,restSpeed:10},L6=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),k6={type:"keyframes",duration:.8},z6={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},P6=(e,{keyframes:t})=>t.length>2?k6:us.has(e)?e.startsWith("scale")?L6(t[1]):N6:z6,_6=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed","out","mixer"]);function V6(e){for(const t in e)if(!_6.has(t))return!0;return!1}const fy=(e,t,r,a={},o,c)=>u=>{const f=uy(a,e)||{},d=f.delay||a.delay||0;let{elapsed:m=0}=a;m=m-bi(d);const g={keyframes:Array.isArray(r)?r:[null,r],ease:"easeOut",velocity:t.getVelocity(),...f,delay:-m,onUpdate:S=>{t.set(S),f.onUpdate&&f.onUpdate(S)},onComplete:()=>{u(),f.onComplete&&f.onComplete()},name:e,motionValue:t,element:c?void 0:o,hasOnUpdate:!!f.onUpdate};V6(f)||Object.assign(g,P6(e,g)),g.duration&&(g.duration=bi(g.duration)),g.repeatDelay&&(g.repeatDelay=bi(g.repeatDelay)),g.from!==void 0&&(g.keyframes[0]=g.from);let v=!1;if((g.type===!1||g.duration===0&&!g.repeatDelay)&&(Wg(g),g.delay===0&&(v=!0)),(kr.instantAnimations||kr.skipAnimations||o?.shouldSkipAnimations||f.skipAnimations)&&(v=!0,Wg(g),g.delay=0),g.allowFlatten=!f.type&&!f.ease,v&&!c&&t.get()!==void 0){const S=Hc(g.keyframes,f);if(S!==void 0){Xt.update(()=>{g.onUpdate(S),g.onComplete()});return}}return f.isSync?new rl(g):new j6(g)},U6=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function I6(e){const t=U6.exec(e);if(!t)return[,];const[,r,a,o]=t;return[`--${r??a}`,o]}function dy(e,t,r=1){const[a,o]=I6(e);if(!a)return;const c=window.getComputedStyle(t).getPropertyValue(a);if(c){const u=c.trim();return H0(u)?parseFloat(u):u}return Qd(o)?dy(o,t,r+1):o}function B6(e){const t=[{},{}];return e?.values.forEach((r,a)=>{t[0][a]=r.get(),t[1][a]=r.getVelocity()}),t}function UR(e,t,r,a){const o=c=>typeof c=="function"?c(r!==void 0?r:e.custom,...B6(a)):c;return t=o(t),typeof t=="string"&&(t=e.variants&&e.variants[t]),o(t)}function Ws(e,t,r){return UR(e.getProps(),t,r,e)}const IR=(e,t)=>t==="exit"?e.presenceContext?.custom:void 0,BR=new Set(["width","height","top","left","right","bottom",...Ra]),H6=e=>Array.isArray(e);function F6(e,t,r){e.hasValue(t)?e.getValue(t).set(r):e.addValue(t,sl(r))}function Y6(e){return H6(e)?e[e.length-1]||0:e}function q6(e,t){const r=Ws(e,t);let{transitionEnd:a={},transition:o={},...c}=r||{};c={...c,...a};for(const u in c){const f=Y6(c[u]);F6(e,u,f)}}const ri=e=>!!(e&&e.getVelocity);function G6(e){return!!(ri(e)&&e.add)}function e0(e,t){const r=e.getValue("willChange");if(G6(r))return r.add(t);if(!r&&kr.WillChange){const a=new kr.WillChange("auto");e.addValue("willChange",a),a.add(t)}}const HR="data-framer-appear-id";function FR(e){return e.props[HR]}const K6=typeof window<"u";function X6({protectedKeys:e,needsAnimating:t},r){const a=r in e&&!t[r];return t[r]=!1,a}function YR(e,t,{delay:r=0,transitionOverride:a,type:o}={}){let{transition:c,transitionEnd:u,...f}=t;const d=e.getDefaultTransition();c=c?cy(c,d):d;const m=c?.reduceMotion,g=c?.skipAnimations;a&&(c=a);const v=[],S=o&&e.animationState?.getState()[o],x=c?.path;x&&(x.animateValues?x.animateValues(E=>e.getValue(E,e.latestValues[E]??0),f,c,r,v):x.animateVisualElement?.(e,f,c,r,v));for(const E in f){const w=e.getValue(E,e.latestValues[E]??null),R=f[E];if(R===void 0||S&&X6(S,E))continue;const T={delay:r,...uy(S?.out[E]||c||{},E)};g&&(T.skipAnimations=!0);const O=w.get();if(O!==void 0&&!w.isAnimating()&&!Array.isArray(R)&&R===O&&!T.velocity){Xt.update(()=>w.set(R));continue}let k=!1;if(K6&&window.MotionHandoffAnimation){const P=FR(e);if(P){const D=window.MotionHandoffAnimation(P,E,Xt);D!==null&&(T.startTime=D,k=!0)}}e0(e,E);const j=m??e.shouldReduceMotion;w.run(fy(E,w,R,j&&BR.has(E)?{type:!1}:T,e,k));const L=w.animation;L&&v.push(L)}if(u){const E=()=>Xt.update(()=>{u&&q6(e,u)});v.length?Promise.all(v).then(E):E()}return v}function t0(e,t,r={}){const a=Ws(e,t,IR(e,r.type)),o=r.transitionOverride||(a?.transition??(e.getDefaultTransition()||{})),c=()=>Promise.all(a?YR(e,a,r):[]),u=(d=0)=>{const{variantChildren:m}=e,{delayChildren:g=0,staggerChildren:v,staggerDirection:S}=o,x=[];return m?.forEach(E=>{E.notify("AnimationStart",t),x.push(t0(E,t,{...r,delay:d+(typeof g=="function"?0:g)+VR(m,E,g,v,S)}).then(()=>E.notify("AnimationComplete",t)))}),Promise.all(x)},{when:f}=o;return f?f==="beforeChildren"?c().then(()=>u()):u().then(c):Promise.all([c(),u(r.delay)])}function $6(e,t,r={}){return e.notify("AnimationStart",t),(Array.isArray(t)?Promise.all(t.map(o=>t0(e,o,r))):typeof t=="string"?t0(e,t,r):Promise.all(YR(e,Ws(e,t,r.custom),r))).then(()=>{e.notify("AnimationComplete",t)})}const W6={test:e=>e==="auto",parse:e=>e},Z6=e=>t=>t.test(e),Q6=[yl,Ve,Xr,ba,qM,YM,W6],kx=e=>Q6.find(Z6(e));function J6(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||F0(e):!0}const ej=new Set(["auto","none","0"]);function tj(e,t,r){let a=0,o;for(;at.measureViewportBox())}measureInitialState(){const{element:t,unresolvedKeyframes:r,name:a}=this;if(!t?.current)return;a==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=this.measure(),r[0]=this.measuredOrigin;const o=r[r.length-1];o!==void 0&&this.motionValue?.jump(o,!1)}measureEndState(){const{element:t,unresolvedKeyframes:r}=this;if(!t?.current)return;this.motionValue?.jump(this.measuredOrigin,!1);const a=r.length-1,o=r[a];r[a]=this.measure(),o!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=o),this.resolveNoneKeyframes()}}const hy=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"];function nd(e){return WE(e)&&"offsetHeight"in e&&!("ownerSVGElement"in e)}function my(e){return WE(e)&&"ownerSVGElement"in e}const Td={};function py(e){return Td.current?.add(e),e}const gy=e=>Td.current?Td.current.bind(e):e;function qR(e,t,r){if(e==null)return[];if(e instanceof EventTarget)return[e];if(typeof e=="string"){const a=t?t.current:Td.current?.root||document,o=r?.[e]??a.querySelectorAll(e);return o?Array.from(o):[]}return Array.from(e).filter(a=>a!=null)}function GR(e){return e.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`)}function yy(e,t,r){const{style:a,vars:o,transformOrigin:c}=e;let u=!1,f=!1;for(const d in t){const m=t[d];if(us.has(d)){u=!0;continue}else if(oR(d)){o[d]=m;continue}else{const g=ly(m,iy[d]);d.startsWith("origin")?(f=!0,c[d]=g):a[d]=g}}if(t.transform||(u||r?a.transform=p6(t,e.transform,r):a.transform&&(a.transform="none")),f){const{originX:d="50%",originY:m="50%",originZ:g=0}=c;a.transformOrigin=`${d} ${m} ${g}`}}const ij={offset:"stroke-dashoffset",array:"stroke-dasharray"},rj={offset:"strokeDashoffset",array:"strokeDasharray"};function aj(e,t,r=1,a=0,o=!0){e.pathLength=1;const c=o?ij:rj;e[c.offset]=`${-a}`,e[c.array]=`${t} ${r}`}const KR=["transform","opacity","clipPath","filter","offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function XR(e,{attrX:t,attrY:r,attrScale:a,pathLength:o,pathSpacing:c=1,pathOffset:u=0,...f},d,m,g){if(yy(e,f,m),d){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:v,style:S}=e;for(const x of KR)v[x]!==void 0&&(S[x]=v[x],delete v[x]);(S.transform||v.transformOrigin)&&(S.transformOrigin=v.transformOrigin??"50% 50%",delete v.transformOrigin),S.transform&&(S.transformBox=g?.transformBox??"fill-box",delete v.transformBox),t!==void 0&&(v.x=t),r!==void 0&&(v.y=r),a!==void 0&&(v.scale=a),o!==void 0&&aj(v,o,c,u,!1)}function $R({top:e,left:t,right:r,bottom:a}){return{x:{min:t,max:r},y:{min:e,max:a}}}function sj({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function oj(e,t){if(!t)return e;const r=t({x:e.left,y:e.top}),a=t({x:e.right,y:e.bottom});return{top:r.y,left:r.x,bottom:a.y,right:a.x}}function Xp(e){return e===void 0||e===1}function n0({scale:e,scaleX:t,scaleY:r}){return!Xp(e)||!Xp(t)||!Xp(r)}const ol=["rotate","rotateX","rotateY","rotateZ","skewX","skewY"];function Hs(e){return n0(e)||ZR(e)||WR(e)}function WR(e){return e.z||e.rotate||e.rotateX||e.rotateY||e.rotateZ||e.skewX||e.skewY}function ZR(e){return zx(e.x)||zx(e.y)}function zx(e){return e&&e!=="0%"}function Ad(e,t,r){const a=e-r,o=t*a;return r+o}function Px(e,t,r,a,o){return o!==void 0&&(e=Ad(e,o,a)),Ad(e,r,a)+t}function i0(e,t=0,r=1,a,o){e.min=Px(e.min,t,r,a,o),e.max=Px(e.max,t,r,a,o)}function QR(e,{x:t,y:r}){i0(e.x,t.translate,t.scale,t.originPoint),i0(e.y,r.translate,r.scale,r.originPoint)}const _x=.999999999999,Vx=1.0000000000001;function lj(e,t,r,a=!1){const o=r.length;if(!o)return;t.x=t.y=1;let c,u;for(let f=0;f_x&&(t.x=1),t.y_x&&(t.y=1)}function Or(e,t){e.min+=t,e.max+=t}function Ux(e,t,r,a,o=.5){const c=rn(e.min,e.max,o);i0(e,t,r,c,a)}function Ix(e,t){return typeof e=="string"?parseFloat(e)/100*(t.max-t.min):e}function id(e,t,r){const a=r??e;Ux(e.x,Ix(t.x,a.x),t.scaleX,t.scale,t.originX),Ux(e.y,Ix(t.y,a.y),t.scaleY,t.scale,t.originY)}function JR(e,t){return $R(oj(e.getBoundingClientRect(),t))}function cj(e,t,r){const a=JR(e,r),{scroll:o}=t;return o&&(Or(a.x,o.offset.x),Or(a.y,o.offset.y)),a}const uj=()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),{schedule:qc}=mR(queueMicrotask,!1);function fj(e,t,r){const a=ri(e)?e:sl(e);return a.run(fy("",a,t,r)),a.animation}const Rc={};function dj(e,t){const r=Ut.now();e=gy(e);const a=({timestamp:o})=>{const c=o-r;c>=t&&(Gi(a),e(c-t))};return Xt.setup(a,!0),py(()=>Gi(a))}function hj(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function mj(e){return my(e)&&e.tagName==="svg"}function rd(e){return ri(e)?e.get():e}const Bx=e=>typeof e=="number"?e:parseFloat(e),pj=hy.length,Hx=e=>typeof e=="number"||Ve.test(e);function gj(e,t,r,a,o,c){o?(e.opacity=rn(0,r.opacity??1,yj(a)),e.opacityExit=rn(t.opacity??1,0,vj(a))):c&&(e.opacity=rn(t.opacity??1,r.opacity??1,a));for(let u=0;uat?1:r(Qs(e,t,a))}function r0(e,t){e.min=t.min,e.max=t.max}function Cr(e,t){r0(e.x,t.x),r0(e.y,t.y)}function Yx(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}const tC=1e-4,bj=1-tC,xj=1+tC,nC=.01,Sj=0-nC,wj=0+nC;function ji(e){return e.max-e.min}function Ej(e,t,r){return Math.abs(e-t)<=r}function qx(e,t,r,a=.5){e.origin=a,e.originPoint=rn(t.min,t.max,e.origin),e.scale=ji(r)/ji(t),e.translate=rn(r.min,r.max,e.origin)-e.originPoint,(e.scale>=bj&&e.scale<=xj||isNaN(e.scale))&&(e.scale=1),(e.translate>=Sj&&e.translate<=wj||isNaN(e.translate))&&(e.translate=0)}function Md(e,t,r,a){qx(e.x,t.x,r.x,a?.originX),qx(e.y,t.y,r.y,a?.originY)}function Gx(e,t,r,a=0){const o=a?rn(r.min,r.max,a):r.min;e.min=o+t.min,e.max=e.min+ji(t)}function Rj(e,t,r,a){Gx(e.x,t.x,r.x,a?.x),Gx(e.y,t.y,r.y,a?.y)}function Kx(e,t,r,a=0){const o=a?rn(r.min,r.max,a):r.min;e.min=t.min-o,e.max=e.min+ji(t)}function jd(e,t,r,a){Kx(e.x,t.x,r.x,a?.x),Kx(e.y,t.y,r.y,a?.y)}function Xx(e,t,r,a,o){return e-=t,e=Ad(e,1/r,a),o!==void 0&&(e=Ad(e,1/o,a)),e}function Cj(e,t=0,r=1,a=.5,o,c=e,u=e){if(Xr.test(t)&&(t=parseFloat(t),t=rn(u.min,u.max,t/100)-u.min),typeof t!="number")return;let f=rn(c.min,c.max,a);e===c&&(f-=t),e.min=Xx(e.min,t,r,f,o),e.max=Xx(e.max,t,r,f,o)}function $x(e,t,[r,a,o],c,u){Cj(e,t[r],t[a],t[o],t.scale,c,u)}const Tj=["x","scaleX","originX"],Aj=["y","scaleY","originY"];function Wx(e,t,r,a){$x(e.x,t,Tj,r?.x,a?.x),$x(e.y,t,Aj,r?.y,a?.y)}const Zx=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Qx=Zx("applewebkit/")&&!Zx("chrome/")?Math.round:Dr;function Jx(e){e.min=Qx(e.min),e.max=Qx(e.max)}function Mj(e){Jx(e.x),Jx(e.y)}const eS=()=>({translate:0,scale:1,origin:0,originPoint:0}),Go=()=>({x:eS(),y:eS()}),tS=()=>({min:0,max:0}),Hn=()=>({x:tS(),y:tS()});function nS(e){return e.translate===0&&e.scale===1}function iC(e){return nS(e.x)&&nS(e.y)}function iS(e,t){return e.min===t.min&&e.max===t.max}function jj(e,t){return iS(e.x,t.x)&&iS(e.y,t.y)}function rS(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function rC(e,t){return rS(e.x,t.x)&&rS(e.y,t.y)}function aS(e){return ji(e.x)/ji(e.y)}function sS(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class Oj{constructor(){this.members=[]}add(t){B0(this.members,t);for(let r=this.members.length-1;r>=0;r--){const a=this.members[r];if(a===t||a===this.lead||a===this.prevLead)continue;const o=a.instance;(!o||o.isConnected===!1)&&!a.snapshot&&(xd(this.members,a),a.unmount())}t.scheduleRender()}remove(t){if(xd(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const r=this.members[this.members.length-1];r&&this.promote(r)}}relegate(t){for(let r=this.members.indexOf(t)-1;r>=0;r--){const a=this.members[r];if(a.isPresent!==!1&&a.instance?.isConnected!==!1)return this.promote(a),!0}return!1}promote(t,r){const a=this.lead;if(t!==a&&(this.prevLead=a,this.lead=t,t.show(),a)){a.updateSnapshot(),t.scheduleRender();const{layoutDependency:o}=a.options,{layoutDependency:c}=t.options;(o===void 0||o!==c)&&(t.resumeFrom=a,r&&(a.preserveOpacity=!0),a.snapshot&&(t.snapshot=a.snapshot,t.snapshot.latestValues=a.animationValues||a.latestValues),t.root?.isUpdating&&(t.isLayoutDirty=!0)),t.options.crossfade===!1&&a.hide()}}exitAnimationComplete(){this.members.forEach(t=>{t.options.onExitComplete?.(),t.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(t=>t.instance&&t.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}}function oS(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const cc={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Ve.test(e))e=parseFloat(e);else return e;const r=oS(e,t.target.x),a=oS(e,t.target.y);return`${r}% ${a}%`}},Dj={correct:(e,{treeScale:t,projectionDelta:r})=>{const a=e,o=hr.parse(e);if(o.length>5)return a;const c=hr.createTransformer(e),u=typeof o[0]!="number"?1:0,f=r.x.scale*t.x,d=r.y.scale*t.y;o[0+u]/=f,o[1+u]/=d;const m=rn(f,d,.5);return typeof o[2+u]=="number"&&(o[2+u]/=m),typeof o[3+u]=="number"&&(o[3+u]/=m),c(o)}},Nj={borderRadius:Object.assign({},cc,{applyTo:hy.slice()}),borderTopLeftRadius:cc,borderTopRightRadius:cc,borderBottomLeftRadius:cc,borderBottomRightRadius:cc,boxShadow:Dj};function Lj(e,t,r){let a="";const o=e.x.translate/t.x,c=e.y.translate/t.y,u=r?.z||0;(o||c||u)&&(a=`translate3d(${o}px, ${c}px, ${u}px) `);let f="";if(r){const{transformPerspective:d}=r;d&&(a=`perspective(${d}px) ${a}`);for(let m=0;me.depth-t.depth;class zj{constructor(){this.children=[],this.isDirty=!1}add(t){B0(this.children,t),this.isDirty=!0}remove(t){xd(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(kj),this.isDirty=!1,this.children.forEach(t)}}const ad={hasAnimatedSinceResize:!0,hasEverUpdated:!1},lS=["z","skew","skewZ"],Pj=1e3;let _j=0;function cS(e,t,r,a){const{latestValues:o}=t;o[e]&&(r[e]=o[e],t.setStaticValue(e,0),a&&(a[e]=0))}const $p=e=>e.instance&&al.get(e.instance)?.demote()&&e.resetSkewAndRotation();function aC(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const r=FR(t);if(window.MotionHasOptimisedAnimation(r,"transform")){const{layout:o,layoutId:c}=e.options;window.MotionCancelOptimisedAnimation(r,"transform",Xt,!(o||c))}const{parent:a}=e;a&&!a.hasCheckedOptimisedAppear&&aC(a)}function sC(e){if(e)return e.options.allowProjection!==!1?e.projection:sC(e.parent)}function oC({attachResizeListener:e,defaultParent:t,measureScroll:r,checkIsScrollRoot:a,resetTransform:o}){return Object.assign(Rc,{...Nj,...Rc}),class{static create(u,f,d){const{layoutId:m,layout:g,drag:v,dragConstraints:S,layoutScroll:x,layoutRoot:E,layoutAnchor:w,layoutCrossfade:R}=f,T=u.projection=new this(u.latestValues,f["data-framer-portal-id"]?void 0:sC(u.parent));T.setOptions({layoutId:m,layout:g,alwaysMeasureLayout:!!v||S&&hj(S),visualElement:u,animationType:typeof g=="string"?g:"both",initialPromotionConfig:d,crossfade:R,layoutScroll:x,layoutRoot:E,layoutAnchor:w});const O=T.getStack()?.lead;O&&!T.root.isUpdateBlocked()&&(O.willUpdate(),O.scheduleCheckAfterUnmount())}constructor(u={},f=t?.()){this.id=_j++,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.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(Ij),this.nodes.forEach(Xj),this.nodes.forEach($j),this.nodes.forEach(Bj)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=u,this.root=f?f.root||f:this,this.path=f?[...f.path,f]:[],this.parent=f,this.depth=f?f.depth+1:0;for(let d=0;dthis.root.updateBlockedByResize=!1;Xt.read(()=>{v=window.innerWidth}),e(u,()=>{const x=window.innerWidth;x!==v&&(v=x,this.root.updateBlockedByResize=!0,g?.(),g=dj(S,250),ad.hasAnimatedSinceResize&&(ad.hasAnimatedSinceResize=!1,this.nodes.forEach(dS)))})}f&&this.root.registerSharedNode(f,this),this.addLayoutListener()}addLayoutListener(){const{layoutId:u,layout:f,visualElement:d,animate:m}=this.options;!this.instance||this.hasLayoutListener||m===!1||!d||!(u||f)||(this.hasLayoutListener=!0,this.addEventListener("didUpdate",({delta:g,hasLayoutChanged:v,hasRelativeLayoutChanged:S,layout:x})=>{if(this.isAnimationBlocked){this.target=void 0,this.relativeTarget=void 0;return}const E=this.options.transition||d.getDefaultTransition()||Jj,{onLayoutAnimationStart:w,onLayoutAnimationComplete:R}=d.getProps(),T=!this.targetLayout||!rC(this.targetLayout,x),O=!v&&S;if(this.options.layoutRoot||this.resumeFrom||O||v&&(T||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const k={...uy(E,"layout"),onPlay:w,onComplete:R};(d.shouldReduceMotion||this.options.layoutRoot)&&(k.delay=0,k.type=!1),this.startAnimation(k),this.setAnimationOrigin(g,O,k.path)}else v||dS(this),this.isLead()&&this.options.onExitComplete?.();this.targetLayout=x}))}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this),this.getStack()?.remove(this),this.parent?.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),this.hasLayoutListener=!1,Gi(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes?.forEach(Wj),this.animationId++)}getTransformTemplate(){const{visualElement:u}=this.options;return u&&u.getProps().transformTemplate}willUpdate(u=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete?.();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&aC(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;$p(this),this.isLayoutDirty=!0;for(let g=0;gu.members.length?u.removeLeadSnapshot():this.sharedNodes.delete(f))}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,Xt.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){Xt.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!ji(this.snapshot.measuredBox.x)&&!ji(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 d=0;d{const L=j/1e3,P=k?.(L);hS(S.x,u.x,L),hS(S.y,u.y,L),P&&(S.x.translate=P.x,S.y.translate=P.y),this.setTargetDelta(S),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(jd(x,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),Zj(this.relativeTarget,this.relativeTargetOrigin,x,L),O&&jj(this.relativeTarget,O)&&(this.isProjectionDirty=!1),O||(O=Hn()),Cr(O,this.relativeTarget)),E&&(this.animationValues=v,gj(v,g,this.latestValues,L,T,R)),P?.rotate!==void 0&&(this.animationValues||(this.animationValues=v),this.animationValues.pathRotation=P.rotate),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=L},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(u){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(Gi(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Xt.update(()=>{ad.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=sl(0)),this.motionValue.jump(0,!1),this.currentAnimation=fj(this.motionValue,[0,1e3],{...u,velocity:0,isSync:!0,onUpdate:f=>{this.mixTargetDelta(f),u.onUpdate&&u.onUpdate(f)},onComplete:()=>{u.onComplete&&u.onComplete(),this.completeAnimation()}}),_4(this.currentAnimation,this),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 u=this.getStack();u&&u.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta?.(Pj),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const u=this.getLead(),{targetWithTransforms:f,layout:d,latestValues:m}=u;let{target:g}=u;if(!(!f||!g||!d)){if(this!==u&&this.layout&&d&&lC(this.options.animationType,this.layout.layoutBox,d.layoutBox)){const{layoutBox:v}=this.layout,S=g;g=this.target||Hn(),pS(g.x,S.x,v.x),pS(g.y,S.y,v.y)}Cr(f,g),id(f,m),Md(this.projectionDeltaWithTransform,this.layoutCorrected,f,m)}}registerSharedNode(u,f){this.sharedNodes.has(u)||this.sharedNodes.set(u,new Oj),this.sharedNodes.get(u).add(f);const m=f.options.initialPromotionConfig;f.promote({transition:m?.transition,preserveFollowOpacity:m?.shouldPreserveFollowOpacity?m.shouldPreserveFollowOpacity(f):void 0})}isLead(){const u=this.getStack();return u?u.lead===this:!0}getLead(){const{layoutId:u}=this.options;return u?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:u}=this.options;return u?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:u}=this.options;if(u)return this.root.sharedNodes.get(u)}promote({needsReset:u,transition:f,preserveFollowOpacity:d}={}){this.getStack()?.promote(this,d),u&&(this.projectionDelta=void 0,this.needsReset=!0),f&&this.setOptions({transition:f})}relegate(){return this.getStack()?.relegate(this)||!1}resetSkewAndRotation(){const{visualElement:u}=this.options;if(!u)return;const{latestValues:f}=u;if(!WR(f))return;const d={};for(let m=0;mu.currentAnimation?.stop()),this.root.nodes.forEach(uS),this.root.sharedNodes.clear()}}}function Vj(e){e.updateLayout(),Yj(e)}function Uj(e){const t=e.resumeFrom?.snapshot||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:a}=e.layout,{animationType:o}=e.options,c=t.source!==e.layout.source,u=(x,E)=>{if(o==="size")Mr(w=>{const R=ji(x[w]);x[w].min=E[w].min,x[w].max=x[w].min+R});else if(o==="x"||o==="y"){const w=o==="x"?"y":"x";r0(x[w],E[w])}else lC(o,t.layoutBox,r)&&Mr(w=>{const R=ji(E[w]);x[w].max=x[w].min+R,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[w].max=e.relativeTarget[w].min+R)})},f=c?t.measuredBox:t.layoutBox;u(f,r);const d=Go();Md(d,r,t.layoutBox);const m=Go();Md(m,c?e.applyTransform(a,!0):r,f);const g=!iC(d);let v=!1;const S=e.getClosestProjectingParent();if((!c||S?.options.layoutRoot&&e.resumeFrom?.path.includes(S))&&S&&!S.resumeFrom){const{snapshot:x,layout:E}=S;if(x&&E){const w=e.options.layoutAnchor||void 0,R=Hn();jd(R,c?e.resumeFrom.applyTransform(t.layoutBox,!0,void 0,!0,S.depth+1):t.layoutBox,x.layoutBox,w);const T=Hn();jd(T,r,E.layoutBox,w),c&&u(R,T),rC(R,T)||(v=!0),S.options.layoutRoot&&(e.relativeTarget=T,e.relativeTargetOrigin=R,e.relativeParent=S)}}e.notifyListeners("didUpdate",{layout:r,snapshot:t,delta:m,layoutDelta:d,hasLayoutChanged:g,hasRelativeLayoutChanged:v})}else e.isLead()&&e.options.onExitComplete?.();e.options.transition=void 0}function Ij(e){e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function Bj(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function Hj(e){e.clearSnapshot()}function uS(e){e.clearMeasurements()}function Fj(e){e.isLayoutDirty=!0,e.updateLayout()}function fS(e){e.isLayoutDirty=!1}function Yj(e){const{snapshot:t,dragAncestor:r}=e,a=r?.isAnimationBlocked&&r.layout;if(!t||!a||e.resumeFrom||e.isAnimationBlocked)return;const o=r.dragSnapshot;Mr(c=>Or(t.layoutBox[c],a.layoutBox[c].min-o.layoutBox[c].min))}function qj(e){e.isAnimationBlocked&&e.layout&&!e.isLayoutDirty&&(e.snapshot=e.dragSnapshot||e.layout,e.isLayoutDirty=!0)}function Gj(e){e.relativeTarget&&e.relativeParent?.isLayoutDirty&&(e.currentAnimation?e.isLayoutDirty=!0:(e.targetDelta=void 0,e.removeRelativeTarget()))}function Kj(e){const{visualElement:t}=e.options;t?.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function dS(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function Xj(e){e.resolveTargetDelta()}function $j(e){e.calcProjection()}function Wj(e){e.resetSkewAndRotation()}function hS(e,t,r){e.translate=rn(t.translate,0,r),e.scale=rn(t.scale,1,r),e.origin=t.origin,e.originPoint=t.originPoint}function mS(e,t,r,a){e.min=rn(t.min,r.min,a),e.max=rn(t.max,r.max,a)}function Zj(e,t,r,a){mS(e.x,t.x,r.x,a),mS(e.y,t.y,r.y,a)}function Qj(e){return e.animationValues?.opacityExit!==void 0}const Jj={duration:.45,ease:[.4,0,.1,1]};function pS(e,t,r){e.max=ji(r)+(e.min=t.min)}function lC(e,t,r){return e==="position"||e==="preserve-aspect"&&!Ej(aS(t),aS(r),.2)}function e8(e){return e!==e.root&&e.scroll?.wasRoot}function Js(e,t,r,a={passive:!0}){return e.addEventListener(t,r,a),()=>e.removeEventListener(t,r,a)}const t8=oC({attachResizeListener:(e,t)=>Js(e,"resize",t),measureScroll:uj,checkIsScrollRoot:()=>!0}),sd={current:void 0},cC=oC({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!sd.current){const e=new t8({});e.mount(window),e.setOptions({layoutScroll:!0}),sd.current=e}return sd.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),n8=new WeakMap;function Jd(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}function Gc(e){return typeof e=="string"||Array.isArray(e)}const eh=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],gS=["initial"].concat(eh);function th(e){if(Jd(e.animate))return!0;for(let t=0;tOd.current=e.matches;e.addEventListener("change",t),t()}else Od.current=!1}const yS=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];let Dd={};function dC(e){Dd=e}function a8(){return Dd}class s8{scrapeMotionValuesFromProps(t,r,a){return{}}constructor({parent:t,props:r,presenceContext:a,reducedMotionConfig:o,skipAnimations:c,blockInitialAnimation:u,visualState:f},d={}){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=sy,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 x=Ut.now();this.renderScheduledAto.delete(this)}}this.values.forEach((a,o)=>this.bindToMotionValue(o,a)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(vy.current||fC(),this.shouldReduceMotion=Od.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){this.projection?.unmount(),Gi(this.notifyUpdate),Gi(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree?.(),this.parent?.removeChild(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const r=this.features[t];r&&(r.unmount(),r.isMounted=!1)}this.current=null}addChild(t){this.children.add(t),(this.enteringChildren||(this.enteringChildren=new Set)).add(t)}removeChild(t){this.children.delete(t),this.enteringChildren?.delete(t)}bindToMotionValue(t,r){if(this.valueSubscriptions.get(t)?.(),r.accelerate&&Zg.has(t)&&this.current instanceof HTMLElement){const{factory:u,keyframes:f,times:d,ease:m,duration:g}=r.accelerate,v=new LR({element:this.current,name:t,keyframes:f,times:d,ease:m,duration:bi(g)}),S=u(v);this.valueSubscriptions.set(t,()=>{S(),v.cancel()});return}const a=us.has(t);a&&this.onBindTransform&&this.onBindTransform();const o=r.on("change",u=>{this.latestValues[t]=u,this.props.onUpdate&&Xt.preRender(this.notifyUpdate),a&&(this.projection&&(this.projection.isTransformDirty=!0),al.get(this.current)?.check()),this.scheduleRender()});let c;typeof window<"u"&&window.MotionCheckAppearSync&&(c=window.MotionCheckAppearSync(this,t,r)),this.valueSubscriptions.set(t,()=>{o(),c?.()})}sortNodePosition(t){return!this.current||!t.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Dd){const r=Dd[t];if(!r)continue;const{isEnabled:a,Feature:o}=r;if(!this.features[t]&&o&&a(this.props)&&(this.features[t]=new o(this)),this.features[t]){const c=this.features[t];c.isMounted?c.update():(c.mount(),c.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Hn()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,r){this.latestValues[t]=r}update(t,r){const{transformTemplate:a,onUpdate:o}=this.props;(t.transformTemplate||a)&&this.scheduleRender(),(t.transformTemplate&&!a||t.onUpdate&&!o)&&al.get(this.current)?.demote(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=r;for(let c=0;c{this.current&&(this.current.textContent=`${r}`)}))}}function mC(e,{style:t,vars:r},a,o){const c=e.style;let u;for(u in t)c[u]=t[u];o?.applyProjectionStyles(c,a);for(u in r)c.setProperty(u,r[u])}function pC(e,{layout:t,layoutId:r}){return us.has(e)||e.startsWith("origin")||(t||r!==void 0)&&(!!Rc[e]||e==="opacity")}function by(e,t,r){const a=e.style,o=t?.style,c={};if(!a)return c;for(const u in a)(ri(a[u])||o&&ri(o[u])||pC(u,e)||r?.getValue(u)?.liveStyle!==void 0)&&(c[u]=a[u]);return c}function o8(e){return window.getComputedStyle(e)}class l8 extends hC{constructor(){super(...arguments),this.type="html",this.renderInstance=mC}mount(t){super.mount(t)}readValueFromInstance(t,r){if(us.has(r))return this.projection?.isProjecting?Yc(r):K4(t,r);{const a=o8(t),o=(oR(r)?a.getPropertyValue(r):a[r])||0;return typeof o=="string"?o.trim():o}}measureInstanceViewportBox(t,{transformPagePoint:r}){return JR(t,r)}build(t,r,a){yy(t,r,a.transformTemplate)}scrapeMotionValuesFromProps(t,r,a){return by(t,r,a)}}const Kc=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1;function xy(e){return{point:{x:e.pageX,y:e.pageY}}}const c8=e=>t=>Kc(t)&&e(t,xy(t));function Dc(e,t,r,a){return Js(e,t,c8(r),a)}const od=new WeakMap;let ld;const gC=(e,t,r)=>(a,o)=>o&&o[0]?o[0][e+"Size"]:my(a)&&"getBBox"in a?a.getBBox()[t]:a[r],u8=gC("inline","width","offsetWidth"),f8=gC("block","height","offsetHeight");function d8({target:e,borderBoxSize:t}){od.get(e)?.forEach(r=>{r(e,{get width(){return u8(e,t)},get height(){return f8(e,t)}})})}function h8(e){e.forEach(d8)}function m8(){typeof ResizeObserver>"u"||(ld=new ResizeObserver(h8))}function p8(e,t){ld||m8();const r=qR(e);return r.forEach(a=>{let o=od.get(a);o||(o=new Set,od.set(a,o)),o.add(t),ld?.observe(a)}),()=>{r.forEach(a=>{const o=od.get(a);o?.delete(t),o?.size||ld?.unobserve(a)})}}const cd=new Set;let Ko;function g8(){Ko=()=>{const e={get width(){return window.innerWidth},get height(){return window.innerHeight}};cd.forEach(t=>t(e))},window.addEventListener("resize",Ko)}function y8(e){return cd.add(e),Ko||g8(),()=>{cd.delete(e),!cd.size&&typeof Ko=="function"&&(window.removeEventListener("resize",Ko),Ko=void 0)}}function vS(e,t){return py(typeof e=="function"?y8(e):p8(e,t))}const bS=(e,t)=>Math.abs(e-t);function v8(e,t){const r=bS(e.x,t.x),a=bS(e.y,t.y);return Math.sqrt(r**2+a**2)}const xS=new Set(["auto","scroll"]);class yC{constructor(t,r,{transformPagePoint:a,contextWindow:o=window,dragSnapToOrigin:c=!1,distanceThreshold:u=3,element:f,immediate:d}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.onElementScroll=E=>{this.handleScroll(E.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.hasPendingMove=!1,this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=Nf(this.lastRawMoveEventInfo,this.transformPagePoint));const E=Zp(this.lastMoveEventInfo,this.history),w=this.startEvent!==null,R=v8(E.offset,{x:0,y:0})>=this.distanceThreshold;if(!w&&!R)return;const{point:T}=E;this.history.push({...T,timestamp:Ut.now()});const{onStart:O,onMove:k}=this.handlers;w||(O?.(this.lastMoveEvent,E),this.startEvent=this.lastMoveEvent),k?.(this.lastMoveEvent,E)},this.handlePointerMove=(E,w)=>{this.handleScroll(window),this.lastMoveEvent=E,this.lastRawMoveEventInfo=w,this.lastMoveEventInfo=Nf(w,this.transformPagePoint),this.hasPendingMove=!0,Xt.update(this.updatePoint,!0)},this.handlePointerUp=(E,w)=>{this.hasPendingMove&&this.updatePoint(),this.end();const{onEnd:R,onSessionEnd:T,resumeAnimation:O}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&O?.(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const k=Zp(E.type==="pointercancel"?this.lastMoveEventInfo:Nf(w,this.transformPagePoint),this.history);this.startEvent&&R?.(E,k),T?.(E,k)},!Kc(t))return;this.dragSnapToOrigin=c,this.handlers=r,this.transformPagePoint=a,this.distanceThreshold=d?0:u,this.contextWindow=o||window;const m=xy(t),g=Nf(m,this.transformPagePoint),{point:v}=g;this.history=[{...v,timestamp:Ut.now()}];const{onSessionStart:S}=r;S&&S(t,Zp(g,this.history));const x={passive:!0,capture:!0};this.removeListeners=il(Dc(this.contextWindow,"pointermove",this.handlePointerMove,x),Dc(this.contextWindow,"pointerup",this.handlePointerUp,x),Dc(this.contextWindow,"pointercancel",this.handlePointerUp,x)),f&&this.startScrollTracking(f),d&&(this.handlePointerMove(t,m),this.updatePoint())}startScrollTracking(t){let r=t.parentElement;for(;r;){const a=getComputedStyle(r);(xS.has(a.overflowX)||xS.has(a.overflowY))&&this.scrollPositions.set(r,Wp(r)),r=r.parentElement}this.scrollPositions.set(window,Wp(window)),this.removeScrollListeners=il(Js(window,"scroll",this.onElementScroll,{capture:!0}),Js(window,"scroll",this.onWindowScroll,{}))}handleScroll(t){const r=this.scrollPositions.get(t);if(!r)return;const a=t===window,o=Wp(t),c={x:o.x-r.x,y:o.y-r.y};c.x===0&&c.y===0||(a?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=c.x,this.lastMoveEventInfo.point.y+=c.y):this.history.length>0&&(this.history[0].x-=c.x,this.history[0].y-=c.y),this.scrollPositions.set(t,o),Xt.update(this.updatePoint,!0))}updateHandlers(t){this.handlers=t}end(){this.removeListeners?.(),this.removeScrollListeners?.(),this.scrollPositions.clear(),Gi(this.updatePoint)}}const Wp=e=>e===window?{x:window.scrollX,y:window.scrollY}:{x:e.scrollLeft,y:e.scrollTop};function Nf(e,t){return t?{point:t(e.point)}:e}function SS(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Zp({point:e},t){return{point:e,delta:SS(e,vC(t)),offset:SS(e,b8(t)),velocity:x8(t,.1)}}function b8(e){return e[0]}function vC(e){return e[e.length-1]}function x8(e,t){if(e.length<2)return{x:0,y:0};let r=e.length-1,a=null;const o=vC(e);for(;r>=0&&(a=e[r],!(o.timestamp-a.timestamp>bi(t)));)r--;if(!a)return{x:0,y:0};a===e[0]&&e.length>2&&o.timestamp-a.timestamp>bi(t)*2&&(a=e[1]);const c=Ki(o.timestamp-a.timestamp);if(c===0)return{x:0,y:0};const u={x:(o.x-a.x)/c,y:(o.y-a.y)/c};return u.x===1/0&&(u.x=0),u.y===1/0&&(u.y=0),u}const S8=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function w8(e){return S8.has(e.tagName)||e.isContentEditable===!0}const E8=new Set(["INPUT","SELECT","TEXTAREA"]);function R8(e){return E8.has(e.tagName)||e.isContentEditable===!0}const Tr={x:!1,y:!1};function Nd(){return Tr.x||Tr.y}function C8(e){return e==="x"||e==="y"?Tr[e]?null:(Tr[e]=!0,()=>{Tr[e]=!1}):Tr.x||Tr.y?null:(Tr.x=Tr.y=!0,()=>{Tr.x=Tr.y=!1})}function T8(e,{min:t,max:r},a){return t!==void 0&&er&&(e=a?rn(r,e,a.max):Math.min(e,r)),e}function wS(e,t,r){return{min:t!==void 0?e.min+t:void 0,max:r!==void 0?e.max+r-(e.max-e.min):void 0}}function A8(e,{top:t,left:r,bottom:a,right:o}){return{x:wS(e.x,r,o),y:wS(e.y,t,a)}}function ES(e,t){let r=t.min-e.min,a=t.max-e.max;return t.max-t.mina?r=Qs(t.min,t.max-a,e.min):a>o&&(r=Qs(e.min,e.max-o,t.min)),Aa(0,1,r)}function O8(e,t){const r={};return t.min!==void 0&&(r.min=t.min-e.min),t.max!==void 0&&(r.max=t.max-e.min),r}const a0=.35;function D8(e=a0){return e===!1?e=0:e===!0&&(e=a0),{x:RS(e,"left","right"),y:RS(e,"top","bottom")}}function RS(e,t,r){return{min:CS(e,t),max:CS(e,r)}}function CS(e,t){return typeof e=="number"?e:e[t]||0}function TS(e){let t="";for(const r of e.path){r.scroll=void 0,r.updateScroll();const{scroll:a}=r;r!==e.root&&a&&(t+=a.offset.x+","+a.offset.y+",")}return t}const N8=new WeakMap;class L8{constructor(t,r=()=>t.getProps()){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Hn(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=t,this.readProps=r}start(t,r={}){if(this.visualElement.presenceContext?.isPresent===!1)return;const a=m=>{r.snapToCursor&&this.snapToCursor(m),this.stopAnimation()},o=(m,g)=>{const{drag:v,dragConstraints:S,dragPropagation:x,onDragStart:E}=this.getProps();if(v&&!x&&(this.openDragLock?.(),this.openDragLock=C8(v),!this.openDragLock))return;this.latestPointerEvent=m,this.latestPanInfo=g,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints();const{projection:w}=this.visualElement;w&&(w.isAnimationBlocked=!0,w.target=void 0),Mr(R=>{let T=this.getAxisMotionValue(R).get()||0;if(Qd(T)&&(T=dy(T,this.visualElement.current)||0),Ve.test(T))T=parseFloat(T);else if(Xr.test(T)){const O=w?.layout?.layoutBox[R];O&&(T=ji(O)*(parseFloat(T)/100))}this.originPoint[R]=T}),this.point=typeof S=="function"&&S(this),E&&Xt.update(()=>E(m,g),!1,!0),e0(this.visualElement,"transform"),this.visualElement.animationState?.setActive("whileDrag",!0)},c=(m,g)=>{this.latestPointerEvent=m,this.latestPanInfo=g;const{dragPropagation:v,dragDirectionLock:S,onDirectionLock:x,onDrag:E}=this.getProps();if(!v&&!this.openDragLock)return;const{offset:w}=g;if(S&&this.currentDirection===null){if(this.currentDirection=z8(w),this.currentDirection===null)return;x&&x(this.currentDirection)}this.updateAxis("x",w),this.updateAxis("y",w),this.point&&this.point.move(),this.visualElement.render(),E&&Xt.update(()=>E(m,g),!1,!0)},u=(m,g)=>{this.latestPointerEvent=m,this.latestPanInfo=g,this.stop(m,g),this.latestPointerEvent=null,this.latestPanInfo=null},f=()=>{const{dragSnapToOrigin:m}=this.getProps();(m||this.constraints||this.point)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:d}=this.getProps();this.panSession=new yC(t,{onSessionStart:a,onStart:o,onMove:c,onSessionEnd:u,resumeAnimation:f},{...r,transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:d,contextWindow:this.visualElement.current?.ownerDocument.defaultView,element:this.visualElement.current})}stop(t,r,a){const o=t||this.latestPointerEvent,c=r||this.latestPanInfo,u=this.isDragging;if(this.cancel(),!u||!c||!o)return;const{velocity:f}=c;this.startAnimation(f,a);const{onDragEnd:d}=this.getProps();d&&Xt.postRender(()=>d(o,c))}cancel(){this.isDragging=!1;const{projection:t,animationState:r}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.endPanSession(),!this.getProps().dragPropagation&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),r?.setActive("whileDrag",!1)}endPanSession(){this.panSession?.end(),this.panSession=void 0}updateAxis(t,r){const{drag:a}=this.readProps();if(!r||!Vo(t,a,this.currentDirection))return;const o=this.getAxisMotionValue(t);let c=this.originPoint[t]+r[t];const u=this.constraints&&this.constraints[t];u&&(c=T8(c,u,this.elastic[t])),this.point?this.point[t]=c:o.set(c)}resolveConstraints(){const{dragConstraints:t,dragElastic:r}=this.getProps(),{projection:a}=this.visualElement,o=a&&(a.layout||a.measure(!1)),c=this.constraints;uc(t)?(!this.constraints||this.scroll!==TS(a))&&(this.constraints=this.resolveRefConstraints()):t&&o&&typeof t=="object"?this.constraints=A8(o.layoutBox,t):this.constraints=!1,this.elastic=D8(r),c!==this.constraints&&!uc(t)&&o&&this.constraints&&!this.hasMutatedConstraints&&Mr(u=>{this.constraints!==!1&&this.getAxisMotionValue(u)&&(this.constraints[u]=O8(o.layoutBox[u],this.constraints[u]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:r}=this.getProps();if(!uc(t))return!1;const a=AS(t),{projection:o}=this.visualElement;if(!o||!o.layout)return!1;this.scroll=TS(o);const c=cj(a,o.root,this.visualElement.getTransformPagePoint());let u=M8(o.layout.layoutBox,o.removeElementScroll(c));if(r){const f=r(sj(u));this.hasMutatedConstraints=!!f,f&&(u=$R(f))}return u}startAnimation(t,r){const{drag:a,dragMomentum:o,dragElastic:c,dragTransition:u,dragSnapToOrigin:f,onDragTransitionEnd:d}=this.getProps(),m={bounceStiffness:c?200:1e6,bounceDamping:c?40:1e7,timeConstant:750,restDelta:1,restSpeed:10,...u},g=x=>o&&!(this.point&&f)&&Vo(x,r||a,this.currentDirection)?t[x]:0;if(this.point&&!f)return this.point.release({x:g("x"),y:g("y")},m).then(d);const v=this.constraints||{},S=Mr(x=>{if(!Vo(x,r||a,this.currentDirection))return;let E=v[x]||{};(f===!0||f===x)&&(E={min:0,max:0});const w={type:"inertia",velocity:g(x),...m,...E};return this.startAxisValueAnimation(x,w)});return Promise.all(S).then(d)}startAxisValueAnimation(t,r){const a=this.getAxisMotionValue(t);return e0(this.visualElement,t),a.start(fy(t,a,0,r,this.visualElement,!1))}stopAnimation(){Mr(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){const r=`_drag${t.toUpperCase()}`,o=this.readProps()[r];return o||this.visualElement.getValue(t,this.visualElement.latestValues[t]??0)}snapToCursor({clientX:t,clientY:r}){const{drag:a}=this.getProps(),o={x:t,y:r},c=this.visualElement.getTransformPagePoint()?.(o)||o,u=this.visualElement.measureViewportBox();Mr(f=>{if(!Vo(f,a,this.currentDirection))return;const d=this.getAxisMotionValue(f),{min:m,max:g}=u[f];d.set((d.get()||0)+c[f]-rn(m,g,.5))})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:r}=this.getProps(),{projection:a}=this.visualElement;if(!uc(r)||!a||!this.constraints)return;this.stopAnimation();const o=this.constraints,c={x:0,y:0};Mr(f=>{const d=this.getAxisMotionValue(f).get();c[f]=j8({min:d,max:d},o[f])});const{transformTemplate:u}=this.visualElement.getProps();this.visualElement.current.style.transform=u?u({},""):"none",a.root?.updateScroll(),a.updateLayout(),this.constraints=!1,this.resolveConstraints(),Mr(f=>{const d=this.getAxisMotionValue(f);if(!Vo(f,t,null)||!d.get())return;const{min:m,max:g}=this.constraints[f];d.set(rn(m,g,c[f]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;N8.set(this.visualElement,this);const t=this.visualElement.current,r=Dc(t,"pointerdown",m=>{const{drag:g,dragListener:v=!0}=this.getProps(),S=m.target,x=S!==t&&R8(S);g&&v&&!x&&this.start(m)});let a;const o=()=>{const{dragConstraints:m}=this.getProps(),g=uc(m)&&AS(m);g&&(this.constraints=this.resolveRefConstraints(),a||(a=k8(t,g,()=>this.scalePositionWithinConstraints())))},{projection:c}=this.visualElement,u=c.addEventListener("measure",o);c.layout||(c.root?.updateScroll(),c.updateLayout()),Xt.read(o);const f=Js(window,"resize",()=>this.scalePositionWithinConstraints()),d=c.addEventListener("didUpdate",(({delta:m,hasLayoutChanged:g})=>{this.isDragging&&g&&(Mr(v=>{if(!Vo(v,this.getProps().drag,this.currentDirection))return;const S=this.getAxisMotionValue(v);this.originPoint[v]+=m[v].translate,S.set(S.get()+m[v].translate)}),this.visualElement.render())}));return()=>{f(),r(),u(),d(),a?.()}}getProps(){const t=this.readProps(),{dragElastic:r=a0,dragMomentum:a=!0}=t;return{...t,dragElastic:r,dragMomentum:a}}}function uc(e){return!!e&&typeof e=="object"&&("current"in e||"nodeType"in e)}const AS=e=>"current"in e?e.current:e;function MS(e){let t=!0;return()=>{if(t){t=!1;return}e()}}function k8(e,t,r){const a=vS(e,MS(r)),o=vS(t,MS(r));return()=>{a(),o()}}function Vo(e,t,r){return(t===!0||t===e)&&(r===null||r===e)}function z8(e,t=10){let r=null;return Math.abs(e.y)>t?r="y":Math.abs(e.x)>t&&(r="x"),r}function bC(e,t){const r=qR(e),a=new AbortController,o={passive:!0,...t,signal:a.signal},c=py(()=>a.abort());return[r,o,c]}function P8(e){return!(e.pointerType==="touch"||Nd())}function _8(e,t,r={}){t=gy(t);const[a,o,c]=bC(e,r);return a.forEach(u=>{let f=!1,d=!1,m;const g=()=>{u.removeEventListener("pointerleave",E)},v=R=>{m&&(m(R),m=void 0),g()},S=R=>{f=!1,window.removeEventListener("pointerup",S),window.removeEventListener("pointercancel",S),d&&(d=!1,v(R))},x=()=>{f=!0,window.addEventListener("pointerup",S,o),window.addEventListener("pointercancel",S,o)},E=R=>{if(R.pointerType!=="touch"){if(f){d=!0;return}v(R)}},w=R=>{if(!P8(R))return;d=!1;const T=t(u,R);typeof T=="function"&&(m=T,u.addEventListener("pointerleave",E,o))};u.addEventListener("pointerenter",w,o),u.addEventListener("pointerdown",x,o)}),c}const xC=(e,t)=>t?e===t?!0:xC(e,t.parentElement):!1,s0=new WeakSet;function jS(e){return t=>{t.key==="Enter"&&e(t)}}function Qp(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const V8=(e,t)=>{let r=!1;const a=jS(()=>{r||s0.has(e)||(r=!0,Qp(e,"down"))}),o=jS(()=>{r&&(r=!1,Qp(e,"up"))});e.addEventListener("keydown",a,t),e.addEventListener("keyup",o,t),e.addEventListener("blur",()=>{e.removeEventListener("keydown",a),e.removeEventListener("keyup",o),r&&Qp(e,"cancel")},{...t,once:!0})};function U8(e){return Kc(e)&&!Nd()}const OS=new WeakSet,I8=100,B8=8,DS=(e,t,r)=>Math.hypot(e.clientX-t.clientX,e.clientY-t.clientY)>r,NS=e=>e.preventDefault();function H8(e,t,r={}){t=gy(t);const[a,o,c]=bC(e,r),u=new WeakMap,f=d=>{const m=d.currentTarget;if(!U8(d)||OS.has(d))return;r.stopPropagation&&OS.add(d);const{count:g=1,countTimeout:v=.3,hold:S=0,repeat:x}=r,E=Ut.now(),w=bi(S),R=bi(v);let T=u.get(m);T?.expire(DS(T.event,d,I8))?T=void 0:T&&(Gi(T.expire),u.delete(m));const O=T?T.count+1:1,k=O>=g,j=k&&(S||x);let L=!S,P=0,D;if(s0.add(m),T)D=T.handlers;else{const Q=t(m,d);D=typeof Q=="function"?{onComplete:Q}:Q||{}}k&&L&&D.onActive?.();const A=bi(x);let F=w||A,H=E+F,X=!0;const $=()=>{if(o.signal.aborted)return Gi($);let Q=Math.min(1-(H-Ut.now())/F,1);X&&Q<1&&(Q=0),X=!1,D.onHold?.(Q),!(Q<1)&&(L?D.onRepeat?.(++P):(L=!0,D.onActive?.()),x?(X=!0,H+=F=A):Gi($))},W={...o,capture:!0},ee=(Q,Y)=>{if(window.removeEventListener("pointerup",ie,W),window.removeEventListener("pointercancel",V,W),window.removeEventListener("pointermove",K,W),m.removeEventListener("contextmenu",NS),Gi($),s0.delete(m),!!Kc(Q))if(Nd()&&(Y=!1),Y&&!k){const _=Ut.now(),M=z=>{const I=o.signal.aborted;if(I||z===!0||Ut.now()-_>R)return Gi(M),u.delete(m),I||D.onComplete?.(Q,{success:!1}),!0};u.set(m,{count:O,event:d,handlers:D,expire:M}),Xt.update(M,!0)}else D.onComplete?.(Q,{success:Y&&L})},ie=Q=>{ee(Q,m===window||m===document||r.useGlobalTarget||xC(m,Q.target))},V=Q=>{ee(Q,!1)},K=Q=>{Kc(Q)&&((x||!L)&&DS(d,Q,B8)||g>1&&Nd())&&V(Q)};window.addEventListener("pointerup",ie,W),window.addEventListener("pointercancel",V,W),(j||g>1)&&window.addEventListener("pointermove",K,W),j&&(Xt.update($,!0),m.addEventListener("contextmenu",NS,{...o,passive:!1}))};return a.forEach(d=>{(r.useGlobalTarget?window:d).addEventListener("pointerdown",f,o),nd(d)&&(d.addEventListener("focus",()=>V8(d,o),o),!w8(d)&&!d.hasAttribute("tabindex")&&(d.tabIndex=0))}),c}class vs{constructor(t){this.isMounted=!1,this.node=t}update(){}}const SC=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"]),wC=e=>typeof e=="string"&&e.toLowerCase()==="svg";function F8(e,t,r,a){mC(e,t,void 0,a);for(const o in t.attrs)e.setAttribute(SC.has(o)?o:GR(o),t.attrs[o])}function EC(e,t,r){const a=by(e,t,r);for(const o in e)if(o!=="children"&&(ri(e[o])||ri(t[o]))){const c=Ra.indexOf(o)!==-1?"attr"+o.charAt(0).toUpperCase()+o.substring(1):o;a[c]=e[o]}return a}class Y8 extends hC{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Hn}getBaseTargetFromProps(t,r){return us.has(r)?super.getBaseTargetFromProps(t,r)??Yc(r):t[r]}getDefaultValue(t){return us.has(t)?this.latestValues[t]??Yc(t):void 0}readValueFromInstance(t,r){if(us.has(r)){const a=TR(r);return a&&a.default||0}if(KR.includes(r)){const o=getComputedStyle(t)[r];if(typeof o=="string"&&o)return o.trim()}return r=SC.has(r)?r:GR(r),t.getAttribute(r)}scrapeMotionValuesFromProps(t,r,a){return EC(t,r,a)}build(t,r,a){XR(t,r,this.isSVGTag,a.transformTemplate,a.style)}renderInstance(t,r,a,o){F8(t,r,a,o)}mount(t){this.isSVGTag=wC(t.tagName),super.mount(t)}}function RC(e,t){if(!Array.isArray(t))return!1;const r=t.length;if(r!==e.length)return!1;for(let a=0;ae?.out===!0?e:e?.out;function G8(e){let t=f=>Promise.all(f.map(({animation:d,options:m})=>$6(e,d,m))),r=kS(),a=!0,o=!1;function c(f){const{props:d,parent:m,manuallyAnimateOnMount:g}=e,{initial:v}=d,S=a||o,x=[],E=(L=v)=>typeof L!="boolean"&&Ws(e,Array.isArray(L)?L[0]:L,e.presenceContext?.custom)||void 0,w=new Map;let R={},T=1/0,O=e;do O=O.props.inherit!==!1&&O.parent;while(O&&!O.isControllingVariants);const k=S&&LS(E(v??(O&&O.props.initial))?.transition);if(q8.forEach((L,P)=>{const D=r[L],A=d[L],F=O&&O.props[L],H=A!==void 0?A:Gc(F)||F===!1?F:void 0,X=Gc(H),$=L===f?D.isActive:null,W=X&&A===void 0&&!(S&&g);if(D.protectedKeys={...R},!D.isActive&&$===null||!H&&!D.prevProp||Jd(H)||typeof H=="boolean")return;if($===!1&&(T=P),L==="exit"&&D.isActive&&$!==!0){R={...R,...D.prevResolvedValues};return}const ee=K8(D.prevProp,H);let ie=ee||X&&($&&!W||P>T),V=!1;const K=Array.isArray(H)?H:[H];let Q={},Y;if($!==!1)for(const M of K){const{transition:z,transitionEnd:I,...B}=Ws(e,M,IR(e,L))||{};Q={...Q,...B,...I},Y=LS(z)||Y}const{prevResolvedValues:_}=D;for(const M in{..._,...Q}){if(M in R)continue;const z=Q[M],I=_[M],B=Array.isArray(z)&&Array.isArray(I)?!RC(z,I)||ee:z!==I;let Z;if(B&&z==null)w.has(M)||w.set(M,D.prevOut);else if(B||z!==void 0&&w.has(M)){ie=!0,Z=w.get(M)||k,w.delete(M)&&(V=!0),D.needsAnimating[M]=!0;const re=e.getValue(M);re&&(re.liveStyle=!1)}else D.protectedKeys[M]=!0;D.out[M]=Z}if(D.prevProp=H,D.prevResolvedValues=Q,D.prevOut=Y,D.isActive&&(R={...R,...Q}),ie&&(!(W&&ee)||V))for(const M of K){const z={type:L};if(typeof M=="string"&&S&&g&&m?.enteringChildren){const I=Ws(m,M)?.transition?.delayChildren;z.delay=VR(m.enteringChildren,e,I)}x.push({animation:M,options:z})}}),w.size){const L={},P=E();let D=P?.transition;w.forEach((A,F)=>{A&&(D={...D||e.getDefaultTransition(),[F]:A});const H=e.getValue(F);H&&(H.liveStyle=!0);const X=P&&!Array.isArray(v)?P[F]:void 0,$=e.getBaseTargetFromProps(d,F);L[F]=(X!==void 0?X:$!==void 0&&!ri($)?$:e.initialValues[F]===void 0?e.baseTarget[F]:void 0)??null}),D&&(L.transition=D),x.push({animation:L})}const j=S&&e.blockInitialAnimation||a&&!g&&(d.initial===!1||d.initial===d.animate);return a=o=!1,!j&&x.length?t(x):Promise.resolve()}function u(f,d){if(r[f].isActive===d)return Promise.resolve();e.variantChildren?.forEach(g=>g.animationState?.setActive(f,d)),r[f].isActive=d;const m=c(f);for(const g in r)r[g].protectedKeys={};return m}return{animateChanges:c,setActive:u,setAnimateFunction:f=>{t=f(e)},getState:()=>r,reset:()=>{r=kS(),o=!0}}}function K8(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!RC(t,e):!1}function kS(){const e={};for(const t of eh)e[t]={isActive:t==="animate",protectedKeys:{},needsAnimating:{},prevResolvedValues:{},out:{}};return e}const Xc=b.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});function zS(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function X8(...e){return t=>{let r=!1;const a=e.map(o=>{const c=zS(o,t);return!r&&typeof c=="function"&&(r=!0),c});if(r)return()=>{for(let o=0;o{const{width:t,height:r}=e?.getBoundingClientRect()||{};return[t/e?.offsetWidth||1,r/e?.offsetHeight||1]},CC=e=>{let{left:t,top:r}=e.getBoundingClientRect(),a=e;for(;a=a.parentElement||a.parentNode?.host;){const{scrollLeft:u,scrollTop:f}=a;if(u||f){const[d,m]=PS(a);t+=u*d,r+=f*m}if(getComputedStyle(a).position==="fixed")break}const[o,c]=PS(e.offsetParent);return[t/o,r/c]};class W8 extends b.Component{getSnapshotBeforeUpdate(t){const r=this.props.getElement();if(nd(r)&&t.isPresent&&!this.props.isPresent&&this.props.pop!==!1){const a=r.offsetParent,o=nd(a)&&a.offsetWidth||0,c=nd(a)&&a.offsetHeight||0,u=getComputedStyle(r),f=this.props.sizeRef.current;f.height=parseFloat(u.height),f.width=parseFloat(u.width),f.top=r.offsetTop,f.left=r.offsetLeft,f.right=o-f.width-f.left,f.bottom=c-f.height-f.top,f.direction=u.direction,f.point=CC(r)}return null}componentDidUpdate(){}render(){return this.props.children}}function Z8({children:e,isPresent:t,anchorX:r,anchorY:a,root:o,pop:c,popNode:u}){const f=b.useId(),d=b.useRef(null),m=b.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0,direction:"ltr"}),{nonce:g}=b.useContext(Xc),v=c!==!1?e.props?.ref??e?.ref:void 0,S=$8(d,v),x=()=>d.current||u?.current?.current,E=w=>{const{width:R,height:T,top:O,left:k,right:j,bottom:L,direction:P}=m.current,D=P==="rtl",A=r==="left"?D?`right:${j}`:`left:${k}`:D?`left:${k}`:`right:${j}`,F=a==="bottom"?`bottom:${L}`:`top:${O}`;w?.insertRule(`[data-motion-pop-id="${f}"]{position:absolute!important;width:${R}px!important;height:${T}px!important;${A}px!important;${F}px!important}`)};return b.useInsertionEffect(()=>{const{width:w,height:R}=m.current,T=x();if(t||c===!1||!T||!w||!R)return;T.dataset.motionPopId=f;const O=T.ownerDocument,k=O.createElement("style");g&&(k.nonce=g);const j=o??O.head;j.appendChild(k),E(k.sheet);let L=0,P=0;return qc.setup(()=>{const[D,A]=CC(T);L=m.current.point[0]-D,P=m.current.point[1]-A}),qc.read(()=>{const{sheet:D}=k;if(!D||!L&&!P)return;const A=m.current;A.left+=L,A.right-=L,A.top+=P,A.bottom-=P,D.deleteRule(0),E(D)}),()=>{T.removeAttribute("data-motion-pop-id"),j.contains(k)&&j.removeChild(k)}},[t]),y.jsx(W8,{isPresent:t,getElement:x,sizeRef:m,pop:c,children:c===!1?e:b.cloneElement(e,{ref:S})})}const Q8=({children:e,initial:t,isPresent:r,onExitComplete:a,custom:o,presenceAffectsLayout:c,mode:u,anchorX:f,anchorY:d,root:m})=>{const g=uu(J8),v=b.useId(),S=b.useRef(),x=b.useRef(r),E=b.useRef(a);Vc(()=>{x.current=r,E.current=a});let w=!0,R=b.useMemo(()=>(w=!1,{id:v,initial:t,isPresent:r,custom:o,onExitComplete:T=>{g.set(T,!0);for(const O of g.values())if(!O)return;a&&a()},register:(T,O)=>(g.set(T,!1),O&&O.parent?.presenceContext?.id!==v&&(S.current=O),()=>{g.delete(T),!x.current&&!g.size&&E.current?.()})}),[r,g,a]);return c&&w&&(R={...R}),b.useMemo(()=>{g.forEach((T,O)=>g.set(O,!1))},[r]),b.useEffect(()=>{!r&&!g.size&&a&&a()},[r]),e=y.jsx(Z8,{pop:u==="popLayout",isPresent:r,anchorX:f,anchorY:d,root:m,popNode:S,children:e}),y.jsx(Zd.Provider,{value:R,children:e})};function J8(){return new Map}function TC(e=!0){const t=b.useContext(Zd);if(t===null)return[!0,null];const{isPresent:r,onExitComplete:a,register:o}=t,c=b.useId();b.useEffect(()=>{if(e)return o(c)},[e]);const u=b.useCallback(()=>e&&a&&a(c),[c,a,e]);return!r&&a?[!1,u]:[!0]}const fc=e=>e.key||"";function _S(e){const t=[];return b.Children.forEach(e,r=>{b.isValidElement(r)&&t.push(r)}),t}const Sy=({children:e,custom:t,initial:r=!0,onExitComplete:a,presenceAffectsLayout:o=!0,mode:c="sync",propagate:u=!1,anchorX:f="left",anchorY:d="top",root:m})=>{const[g,v]=TC(u),S=b.useMemo(()=>_S(e),[e]),x=u&&!g?[]:S.map(fc),E=b.useRef(!0),w=uu(()=>new Map),R=b.useRef(new Set),[T,O]=b.useState(S),[k,j]=b.useState(S);Vc(()=>{u&&!g&&!k.length&&v?.()},[g,u,k.length,v]);const L=b.useRef();b.useEffect(()=>()=>{const A=L.current;L.current=void 0,A?.()},[k]),Vc(()=>{E.current=!1;for(let A=0;Aw.get(fc(H)))?A=S:c==="wait"&&(A=P),j(_S(A)),O(S),null}const{forceRender:D}=b.useContext(I0);return y.jsx(y.Fragment,{children:k.map(A=>{const F=fc(A),H=u&&!g?!1:S===k||x.includes(F),X=()=>{if(R.current.has(F))return;if(w.has(F))R.current.add(F),w.set(F,!0);else return;let $=!0;w.forEach(W=>{W||($=!1)}),$&&(D?.(),O([]),u&&v?.(),L.current=a)};return y.jsx(Q8,{isPresent:H,initial:!E.current||r?void 0:!1,custom:t,presenceAffectsLayout:o,mode:c,root:m,onExitComplete:H?void 0:X,anchorX:f,anchorY:d,children:A},F)})})},AC=b.createContext({strict:!1}),VS={animation:["variants",...eh],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 US=!1;function eO(){if(US)return;const e={};for(const t in VS)e[t]={isEnabled:r=>VS[t].some(a=>!!r[a])};dC(e),US=!0}function MC(){return eO(),a8()}function tO(e){const t=MC();for(const r in e)t[r]={...t[r],...e[r]};dC(t)}function nO({children:e,...t}){const r=b.useContext(Xc);t={...r,...t},t.transition=cy(t.transition,r.transition),t.isStatic=uu(()=>t.isStatic);const a=b.useMemo(()=>t,[JSON.stringify(t.transition),t.transformPagePoint,t.reducedMotion,t.skipAnimations,t.isValidProp]);return y.jsx(Xc.Provider,{value:a,children:e})}const nh=b.createContext({});function iO(e,t){if(th(e)){const{initial:r,animate:a}=e;return{initial:r===!1||Gc(r)?r:void 0,animate:Gc(a)?a:void 0}}return e.inherit!==!1?t:{}}function rO(e){const{initial:t,animate:r}=iO(e,b.useContext(nh));return b.useMemo(()=>({initial:t,animate:r}),[IS(t),IS(r)])}function IS(e){return Array.isArray(e)?e.join(" "):e}const wy=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function jC(e,t,r){for(const a in t)!ri(t[a])&&!pC(a,r)&&(e[a]=t[a])}function aO({transformTemplate:e},t){return b.useMemo(()=>{const r=wy();return yy(r,t,e),Object.assign({},r.vars,r.style)},[t])}function sO(e,t){const r=e.style||{},a={};return jC(a,r,e),Object.assign(a,aO(e,t)),a}function oO(e,t){const r={},a=sO(e,t);return e.drag&&e.dragListener!==!1&&(r.draggable=!1,a.userSelect=a.WebkitUserSelect=a.WebkitTouchCallout="none",a.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(r.tabIndex=0),r.style=a,r}const OC=()=>({...wy(),attrs:{}});function lO(e,t,r,a){const o=b.useMemo(()=>{const c=OC();return XR(c,t,wC(a),e.transformTemplate,e.style),{...c.attrs,style:{...c.style}}},[t]);if(e.style){const c={};return jC(c,e.style,e),{...o,style:{...c,...o.style}}}return o}const cO=new Set(["animate","exit","variants","initial","style","values","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","tap","propagate","ignoreStrict","viewport"]);function Ld(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||cO.has(e)}function uO(e,t){return e.startsWith("on")?!Ld(e):t?.(e)??!Ld(e)}function fO(e,t,r,a){const o={};for(const c in e)c==="values"&&typeof e.values=="object"||ri(e[c])||(uO(c,a)||r===!0&&Ld(c)||!t&&!Ld(c)||e.draggable&&c.startsWith("onDrag"))&&(o[c]=e[c]);return o}const dO=["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 Ey(e){return typeof e!="string"||e.includes("-")?!1:!!(dO.indexOf(e)>-1||/[A-Z]/u.test(e))}function hO(e,t,r,{latestValues:a},o,c=!1,u,f){const m=(u??Ey(e)?lO:oO)(t,a,o,e),g=fO(t,typeof e=="string",c,f),v=e!==b.Fragment?{...g,...m,ref:r}:{},{children:S}=t,x=b.useMemo(()=>ri(S)?S.get():S,[S]);return b.createElement(e,{...v,children:x})}function mO({scrapeMotionValuesFromProps:e,createRenderState:t},r,a,o){return{latestValues:pO(r,a,o,e),renderState:t()}}function pO(e,t,r,a){const o={},c=a(e,{});for(const S in c)o[S]=rd(c[S]);let{initial:u,animate:f}=e;const d=th(e),m=uC(e);t&&m&&!d&&e.inherit!==!1&&(u===void 0&&(u=t.initial),f===void 0&&(f=t.animate));let g=r?r.initial===!1:!1;g=g||u===!1;const v=g?f:u;if(v&&typeof v!="boolean"&&!Jd(v)){const S=Array.isArray(v)?v:[v];for(let x=0;x(t,r)=>{const a=b.useContext(nh),o=b.useContext(Zd),c=()=>mO(e,t,a,o);return r?c():uu(c)},gO=DC({scrapeMotionValuesFromProps:by,createRenderState:wy}),yO=DC({scrapeMotionValuesFromProps:EC,createRenderState:OC}),vO=Symbol.for("motionComponentSymbol");function bO(e,t,r){const a=b.useRef(r);b.useInsertionEffect(()=>{a.current=r});const o=b.useRef(null);return b.useCallback(c=>{c&&e.onMount?.(c),t&&(c?t.mount(c):t.unmount());const u=a.current;if(typeof u=="function")if(c){const f=u(c);typeof f=="function"&&(o.current=f)}else o.current?(o.current(),o.current=null):u(c);else u&&(u.current=c)},[t])}const NC=b.createContext({});function xO(e,t,r,a,o,c){const{visualElement:u}=b.useContext(nh),f=b.useContext(AC),d=b.useContext(Zd),m=b.useContext(Xc),g=m.reducedMotion,v=m.skipAnimations,S=b.useRef(null),x=b.useRef(!1);a=a||f.renderer,!S.current&&a&&(S.current=a(e,{visualState:t,parent:u,props:r,presenceContext:d,blockInitialAnimation:d?d.initial===!1:!1,reducedMotionConfig:g,skipAnimations:v,isSVG:c}),x.current&&S.current&&(S.current.manuallyAnimateOnMount=!0));const E=S.current,w=b.useContext(NC);E&&!E.projection&&o&&(E.type==="html"||E.type==="svg")&&o.create(E,r,w),b.useInsertionEffect(()=>{E&&E.props!==r&&E.update(r,d)});const R=r[HR],T=b.useRef(!!R&&typeof window<"u"&&!window.MotionHandoffIsComplete?.(R)&&window.MotionHasOptimisedAnimation?.(R));return Vc(()=>{!x.current||!E||(E.animationState?.animateChanges(),E.enteringChildren=void 0)},[]),Vc(()=>{x.current=!0,E&&(window.MotionIsMounted=!0,E.updateFeatures(),E.scheduleRenderMicrotask(),T.current&&E.animationState&&E.animationState.animateChanges())}),b.useEffect(()=>{E&&(!T.current&&E.animationState&&E.animationState.animateChanges(),T.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(R)}),T.current=!1),E.enteringChildren=void 0)}),E}function Jp(e,{forwardMotionProps:t=!1,type:r}={},a,o){a&&tO(a);const c=r?r==="svg":Ey(e),u=c?yO:gO;function f(m,g){let v;const S=SO(m);uu(()=>!!sd.current?.sharedNodes.get(S)?.lead&&m.initial)&&(m={...m,initial:!1});const x={...b.useContext(Xc),...m,layoutId:S},{isStatic:E,isValidProp:w}=x,R=rO(m),T=u(m,E);if(!E&&typeof window<"u"){wO();const O=EO(x);R.visualElement=xO(e,T,x,o,O.ProjectionNode,c),(O.isEnabled||R.visualElement?.projection?.options.layoutId)&&(v=O.MeasureLayout)}return y.jsxs(nh.Provider,{value:R,children:[v&&R.visualElement?y.jsx(v,{visualElement:R.visualElement,...x}):null,hO(e,m,bO(T,R.visualElement,g),T,E,t,c,w)]})}f.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;const d=b.forwardRef(f);return d[vO]=e,d}function SO({layoutId:e}){const t=b.useContext(I0).id;return t&&e!==void 0?t+"-"+e:e}function wO(e,t){b.useContext(AC).strict}function EO(e){const t=MC(),{drag:r,layout:a}=t;if(!r&&!a)return{};const o={...r,...a};return{MeasureLayout:o.MeasureLayout,isEnabled:r?.isEnabled(e)||a?.isEnabled(e),ProjectionNode:o.ProjectionNode}}function RO(e,t){if(typeof Proxy>"u")return Jp;const r=new Map,a=(c,u)=>Jp(c,u,e,t),o=(c,u)=>a(c,u);return new Proxy(o,{get:(c,u)=>u==="create"?a:(r.has(u)||r.set(u,Jp(u,void 0,e,t)),r.get(u))})}const CO=(e,t)=>t.isSVG??Ey(e)?new Y8(t):new l8(t,{allowProjection:e!==b.Fragment});class TO extends vs{constructor(t){super(t),t.animationState||(t.animationState=G8(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();Jd(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){this.node.getProps().animate!==this.node.prevProps?.animate&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let AO=0;class MO extends vs{constructor(){super(...arguments),this.id=AO++}update(){const{presenceContext:t,animationState:r}=this.node;if(!t||!r)return;const{isPresent:a,onExitComplete:o}=t;if(a===!this.exit)return;if(a){if(this.exit===!0){const{initial:u}=this.node.getProps();if(u&&!Array.isArray(u)){const{transition:f,transitionEnd:d,...m}=Ws(this.node,u)||{};for(const g in m)this.node.getValue(g)?.jump(m[g])}this.node.blockInitialAnimation=!1,r.reset(),r.animateChanges()}else r.setActive("exit",!1);this.exit=void 0;return}const c=this.exit=r.setActive("exit",!0);o&&c.then(()=>{this.exit===c&&(this.exit=!0,o(this.id))})}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id,this.node)),this.update()}unmount(){}}const jO={animation:{Feature:TO},exit:{Feature:MO}};class OO extends vs{constructor(t){super(t),this.removeGroupControls=Dr,this.removeListeners=Dr,this.controls=new L8(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Dr}update(){const{dragControls:t,drag:r}=this.node.getProps(),{dragControls:a,drag:o}=this.node.prevProps||{};t!==a&&(this.removeGroupControls(),t&&(this.removeGroupControls=t.subscribe(this.controls))),o&&!r&&this.controls.stop(void 0,void 0,o)}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const eg=e=>(t,r)=>{e&&Xt.update(()=>e(t,r),!1,!0)};class DO extends vs{constructor(){super(...arguments),this.removePointerDownListener=Dr}onPointerDown(t){this.session=new yC(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:this.node.current?.ownerDocument.defaultView})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:r,onPan:a,onPanEnd:o}=this.node.getProps();return{onSessionStart:eg(t),onStart:eg(r),onMove:eg(a),onEnd:(c,u)=>{delete this.session,o&&Xt.postRender(()=>o(c,u))}}}mount(){this.removePointerDownListener=Dc(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session?.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session?.end()}}let tg=!1;const BS=({layout:e,layoutDependency:t,layoutAnchor:r})=>({layout:e,layoutDependency:t,layoutAnchor:r,animationType:typeof e=="string"?e:"both"}),HS=(e,t)=>{const{snapshot:r}=e,a=e.getStack();a?.remove(e);const o=a?.lead;if(a?.prevLead===e&&o.resumeFrom===e&&(o.resumeFrom=o.currentAnimation=e.resumingFrom=void 0),e.options.layoutId=t,!t){e.needsShow=!0;return}return e.root.registerSharedNode(t,e),()=>{const{resumeFrom:c}=e;c?.isPresent!==!1&&e.getStack().members.includes(c)&&(c.hide(),e.resumeFrom=void 0,e.snapshot=r)}};class NO extends b.Component{componentDidMount(){const{visualElement:t,layoutGroup:r,switchLayoutGroup:a,layoutId:o}=this.props,{projection:c}=t;c&&(r.group?.add(c),o&&a?.register?.(c),tg&&c.root.didUpdate(),c.options.layoutId!==o&&HS(c,o)?.(),c.addEventListener("animationComplete",()=>this.safeToRemove()),c.setOptions({...c.options,...BS(this.props),onExitComplete:()=>this.safeToRemove()})),ad.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:r,layoutId:a,visualElement:o,drag:c,isPresent:u}=this.props,{projection:f}=o;return f&&(f.isPresent=u,this.takeOver=t.layoutId!==a?(f.willUpdate(),HS(f,a)):void 0,f.setOptions({...f.options,...BS(this.props)}),tg=!0,c||t.layoutDependency!==r||r===void 0||t.isPresent!==u?f.willUpdate():this.safeToRemove(),t.isPresent!==u&&(u?f.promote():f.relegate()||Xt.postRender(()=>{f.getStack()?.members.length||this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(this.takeOver?.(),t.root.didUpdate(),qc.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:r,switchLayoutGroup:a}=this.props,{projection:o}=t;tg=!0,o&&(o.scheduleCheckAfterUnmount(),r.group?.remove(o),a?.deregister?.(o))}safeToRemove(){this.props.safeToRemove?.()}render(){return null}}function LC(e){const[t,r]=TC(),a=b.useContext(I0);return y.jsx(NO,{...e,layoutGroup:a,switchLayoutGroup:b.useContext(NC),isPresent:t,safeToRemove:r})}const LO={pan:{Feature:DO},drag:{Feature:OO,ProjectionNode:cC,MeasureLayout:LC}};function o0(e,t,r,a,o){const{props:c}=e,u="while"+r;!o&&e.animationState&&c[u]&&e.animationState.setActive(u,a==="Start");const f=c["on"+r+a];f&&Xt.postRender(()=>f(t,xy(t)))}class kO extends vs{mount(){const{current:t}=this.node;t&&(this.unmount=_8(t,(r,a)=>(o0(this.node,a,"Hover","Start"),o=>o0(this.node,o,"Hover","End"))))}unmount(){}}class zO extends vs{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=il(Js(this.node.current,"focus",()=>this.onFocus()),Js(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function ng(e,t,r,a){e.current instanceof HTMLButtonElement&&e.current.disabled||o0(e,t,"Tap",r,a)}class PO extends vs{constructor(){super(...arguments),this.options={}}mount(){const{current:t}=this.node;t&&(this.update(),this.unmount=H8(t,(r,a)=>(ng(this.node,a,"Start"),{onComplete:(o,{success:c})=>ng(this.node,o,c?"":"Cancel"),onRepeat:()=>ng(this.node,a,"",!0)}),this.options))}update(){const{options:t,node:r}=this,{globalTapTarget:a,propagate:o,tap:c}=r.props;for(const u in t)delete t[u];Object.assign(t,c,{useGlobalTarget:a,stopPropagation:o?.tap===!1})}unmount(){}}const l0=new WeakMap,ig=new WeakMap,_O=e=>{const t=l0.get(e.target);t&&t(e)},VO=e=>{e.forEach(_O)};function UO({root:e,...t}){const r=e||document;ig.has(r)||ig.set(r,{});const a=ig.get(r),o=JSON.stringify(t);return a[o]||(a[o]=new IntersectionObserver(VO,{root:e,...t})),a[o]}function IO(e,t,r){const a=UO(t);return l0.set(e,r),a.observe(e),()=>{l0.delete(e),a.unobserve(e)}}const BO={some:0,all:1};class HO extends vs{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.stopObserver?.();const{viewport:t={}}=this.node.getProps(),{root:r,margin:a,amount:o="some",once:c}=t,u={root:r?r.current:void 0,rootMargin:a,threshold:typeof o=="number"?o:BO[o]},f=d=>{const{isIntersecting:m}=d;if(this.isInView===m||(this.isInView=m,c&&!m&&this.hasEnteredView))return;m&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",m);const{onViewportEnter:g,onViewportLeave:v}=this.node.getProps(),S=m?g:v;S&&S(d)};this.stopObserver=IO(this.node.current,u,f)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:r}=this.node;["amount","margin","root"].some(FO(t,r))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}}function FO({viewport:e={}},{viewport:t={}}={}){return r=>e[r]!==t[r]}const YO={inView:{Feature:HO},tap:{Feature:PO},focus:{Feature:zO},hover:{Feature:kO}},qO={layout:{ProjectionNode:cC,MeasureLayout:LC}},GO=Object.assign({},jO,YO,LO,qO),KO=RO(GO,CO);function XO(){!vy.current&&fC();const[e]=b.useState(Od.current);return e}const $c=KO;var kC=e=>{throw TypeError(e)},zC=(e,t,r)=>t.has(e)||kC("Cannot "+r),cr=(e,t,r)=>(zC(e,t,"read from private field"),r?r.call(e):t.get(e)),Cc=(e,t,r)=>t.has(e)?kC("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),Hr=(e,t,r,a)=>(zC(e,t,"write to private field"),t.set(e,r),r),ih=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,rh=/^[\\/]{2}/;function PC(e,t){return t+e.replace(/\\/g,"/")}var FS="popstate";function YS(e){return typeof e=="object"&&e!=null&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function $O(e={}){function t(a,o){let c=o.state?.masked,{pathname:u,search:f,hash:d}=c||a.location;return Wc("",{pathname:u,search:f,hash:d},o.state&&o.state.usr||null,o.state&&o.state.key||"default",c?{pathname:a.location.pathname,search:a.location.search,hash:a.location.hash}:void 0)}function r(a,o){return typeof o=="string"?o:xi(o)}return ZO(t,r,null,e)}function gt(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Sn(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function WO(){return Math.random().toString(36).substring(2,10)}function qS(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function Wc(e,t,r=null,a,o){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?Zr(t):t,state:r,key:t&&t.key||a||WO(),mask:o}}function xi({pathname:e="/",search:t="",hash:r=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function Zr(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let a=e.indexOf("?");a>=0&&(t.search=e.substring(a),e=e.substring(0,a)),e&&(t.pathname=e)}return t}function ZO(e,t,r,a={}){let{window:o=document.defaultView,v5Compat:c=!1}=a,u=o.history,f="POP",d=null,m=g();m==null&&(m=0,u.replaceState({...u.state,idx:m},""));function g(){return(u.state||{idx:null}).idx}function v(){f="POP";let R=g(),T=R==null?null:R-m;m=R,d&&d({action:f,location:w.location,delta:T})}function S(R,T){f="PUSH";let O=YS(R)?R:Wc(w.location,R,T);m=g()+1;let k=qS(O,m),j=w.createHref(O.mask||O);try{u.pushState(k,"",j)}catch(L){if(L instanceof DOMException&&L.name==="DataCloneError")throw L;o.location.assign(j)}c&&d&&d({action:f,location:w.location,delta:1})}function x(R,T){f="REPLACE";let O=YS(R)?R:Wc(w.location,R,T);m=g();let k=qS(O,m),j=w.createHref(O.mask||O);u.replaceState(k,"",j),c&&d&&d({action:f,location:w.location,delta:0})}function E(R){return _C(o,R)}let w={get action(){return f},get location(){return e(o,u)},listen(R){if(d)throw new Error("A history only accepts one active listener");return o.addEventListener(FS,v),d=R,()=>{o.removeEventListener(FS,v),d=null}},createHref(R){return t(o,R)},createURL:E,encodeLocation(R){let T=E(R);return{pathname:T.pathname,search:T.search,hash:T.hash}},push:S,replace:x,go(R){return u.go(R)}};return w}function _C(e,t,r=!1){let a="http://localhost";e&&(a=e.location.origin!=="null"?e.location.origin:e.location.href),gt(a,"No window.location.(origin|href) available to create URL");let o=typeof t=="string"?t:xi(t);return o=o.replace(/ $/,"%20"),!r&&rh.test(o)&&(o=a+o),new URL(o,a)}var Tc,GS=class{constructor(e){if(Cc(this,Tc,new Map),e)for(let[t,r]of e)this.set(t,r)}get(e){if(cr(this,Tc).has(e))return cr(this,Tc).get(e);if(e.defaultValue!==void 0)return e.defaultValue;throw new Error("No value found for context")}set(e,t){cr(this,Tc).set(e,t)}};Tc=new WeakMap;var QO=new Set(["lazy","caseSensitive","path","id","index","children"]);function JO(e){return QO.has(e)}var eD=new Set(["lazy","caseSensitive","path","id","index","middleware","children"]);function tD(e){return eD.has(e)}function nD(e){return e.index===!0}function Zc(e,t,r=[],a={},o=!1){return e.map((c,u)=>{let f=[...r,String(u)],d=typeof c.id=="string"?c.id:f.join("-");if(gt(c.index!==!0||!c.children,"Cannot specify children on an index route"),gt(o||!a[d],`Found a route id collision on id "${d}". Route id's must be globally unique within Data Router usages`),nD(c)){let m={...c,id:d};return a[d]=KS(m,t(m)),m}else{let m={...c,id:d,children:void 0};return a[d]=KS(m,t(m)),c.children&&(m.children=Zc(c.children,t,f,a,o)),m}})}function KS(e,t){return Object.assign(e,{...t,...typeof t.lazy=="object"&&t.lazy!=null?{lazy:{...e.lazy,...t.lazy}}:{}})}function VC(e,t,r="/"){return Ar(e,t,r,!1)}function Ar(e,t,r,a,o){let c=typeof t=="string"?Zr(t):t,u=gr(c.pathname||"/",r);if(u==null)return null;let f=o??ud(e),d=null,m=mD(u);for(let g=0;d==null&&g{let g={relativePath:m===void 0?u.path||"":m,caseSensitive:u.caseSensitive===!0,childrenIndex:f,route:u};if(g.relativePath.startsWith("/")){if(!g.relativePath.startsWith(a)&&d)return;gt(g.relativePath.startsWith(a),`Absolute route path "${g.relativePath}" nested under path "${a}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),g.relativePath=g.relativePath.slice(a.length)}let v=mr([a,g.relativePath]),S=r.concat(g);u.children&&u.children.length>0&&(gt(u.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${v}".`),UC(u.children,t,S,v,d)),!(u.path==null&&!u.index)&&t.push({path:v,score:fD(v,u.index),routesMeta:S.map((x,E)=>{let[w,R]=HC(x.relativePath,x.caseSensitive,E===S.length-1);return{...x,matcher:w,compiledParams:R}})})};return e.forEach((u,f)=>{if(u.path===""||!u.path?.includes("?"))c(u,f);else for(let d of IC(u.path))c(u,f,!0,d)}),t}function IC(e){let t=e.split("/");if(t.length===0)return[];let[r,...a]=t,o=r.endsWith("?"),c=r.replace(/\?$/,"");if(a.length===0)return o?[c,""]:[c];let u=IC(a.join("/")),f=[];return f.push(...u.map(d=>d===""?c:[c,d].join("/"))),o&&f.push(...u),f.map(d=>e.startsWith("/")&&d===""?"/":d)}function rD(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:dD(t.routesMeta.map(a=>a.childrenIndex),r.routesMeta.map(a=>a.childrenIndex)))}var aD=/^:[\w-]+$/,sD=3,oD=2,lD=1,cD=10,uD=-2,XS=e=>e==="*";function fD(e,t){let r=e.split("/"),a=r.length;return r.some(XS)&&(a+=uD),t&&(a+=oD),r.filter(o=>!XS(o)).reduce((o,c)=>o+(aD.test(c)?sD:c===""?lD:cD),a)}function dD(e,t){return e.length===t.length&&e.slice(0,-1).every((a,o)=>a===t[o])?e[e.length-1]-t[t.length-1]:0}function hD(e,t,r=!1){let{routesMeta:a}=e,o={},c="/",u=[];for(let f=0;f{if(g==="*"){let E=f[S]||"";u=ll(c.slice(0,c.length-E.length),1)}const x=f[S];return v&&!x?m[g]=void 0:m[g]=(x||"").replace(/%2F/g,"/"),m},{}),pathname:c,pathnameBase:u,pattern:e}}function HC(e,t=!1,r=!0){Sn(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let a=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(u,f,d,m,g)=>{if(a.push({paramName:f,isOptional:d!=null}),d){let v=g.charAt(m+u.length);return v&&v!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(a.push({paramName:"*"}),o+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?o+="\\/*$":e!==""&&e!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,t?void 0:"i"),a]}function mD(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Sn(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function gr(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,a=e.charAt(r);return a&&a!=="/"?null:e.slice(r)||"/"}function pD({basename:e,pathname:t}){return t==="/"?e:mr([e,t])}var Ry=e=>ih.test(e);function gD(e,t="/"){let{pathname:r,search:a="",hash:o=""}=typeof e=="string"?Zr(e):e,c;return r?(r=Cy(r),r.startsWith("/")||r.startsWith("\\")?c=$S(r.substring(1),"/"):c=$S(r,t)):c=t,{pathname:c,search:vD(a),hash:bD(o)}}function $S(e,t){let r=ll(t).split("/");return e.split("/").forEach(o=>{o===".."?r.length>1&&r.pop():o!=="."&&r.push(o)}),r.length>1?r.join("/"):"/"}function rg(e,t,r,a){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(a)}]. Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function FC(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function ah(e){let t=FC(e);return t.map((r,a)=>a===t.length-1?r.pathname:r.pathnameBase)}function hu(e,t,r,a=!1){let o;typeof e=="string"?o=Zr(e):(o={...e},gt(!o.pathname||!o.pathname.includes("?"),rg("?","pathname","search",o)),gt(!o.pathname||!o.pathname.includes("#"),rg("#","pathname","hash",o)),gt(!o.search||!o.search.includes("#"),rg("#","search","hash",o)));let c=e===""||o.pathname==="",u=c?"/":o.pathname,f;if(u==null)f=r;else{let v=t.length-1;if(!a&&u.startsWith("..")){let S=u.split("/");for(;S[0]==="..";)S.shift(),v-=1;o.pathname=S.join("/")}f=v>=0?t[v]:"/"}let d=gD(o,f),m=u&&u!=="/"&&u.endsWith("/"),g=(c||u===".")&&r.endsWith("/");return!d.pathname.endsWith("/")&&(m||g)&&(d.pathname+="/"),d}var Cy=e=>e.replace(/[\\/]{2,}/g,"/"),mr=e=>Cy(e.join("/"));function ll(e,t=0){let r=e.length;for(;r>t&&e.charCodeAt(r-1)===47;)r--;return r===e.length?e:e.slice(0,r)}var yD=e=>ll(e).replace(/^\/*/,"/"),vD=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,bD=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,xD=["EvalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],mu=class{constructor(e,t,r,a=!1){this.status=e,this.statusText=t||"",this.internal=a,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}};function Qc(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function pu(e){let t=e.map(r=>r.route.path).filter(Boolean);return mr(t)||"/"}var YC=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function qC(e,t){let r=e;if(typeof r!="string"||!ih.test(r))return{absoluteURL:void 0,isExternal:!1,to:r};let a=r,o=!1;if(YC)try{let c=new URL(window.location.href),u=rh.test(r)?new URL(PC(r,c.protocol)):new URL(r),f=gr(u.pathname,t);u.origin===c.origin&&f!=null?r=f+u.search+u.hash:o=!0}catch{Sn(!1,` contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:a,isExternal:o,to:r}}var os=Symbol("Uninstrumented");function SD(e,t){let r={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};e.forEach(o=>o({id:t.id,index:t.index,path:t.path,instrument(c){let u=Object.keys(r);for(let f of u)c[f]&&r[f].push(c[f])}}));let a={};if(typeof t.lazy=="function"&&r.lazy.length>0){let o=Xo(r.lazy,t.lazy,()=>{});o&&(a.lazy=o)}if(typeof t.lazy=="object"){let o=t.lazy;["middleware","loader","action"].forEach(c=>{let u=o[c],f=r[`lazy.${c}`];if(typeof u=="function"&&f.length>0){let d=Xo(f,u,()=>{});d&&(a.lazy=Object.assign(a.lazy||{},{[c]:d}))}})}return["loader","action"].forEach(o=>{let c=t[o];if(typeof c=="function"&&r[o].length>0){let u=c[os]??c,f=Xo(r[o],u,(...d)=>WS(d[0]));f&&(o==="loader"&&u.hydrate===!0&&(f.hydrate=!0),f[os]=u,a[o]=f)}}),t.middleware&&t.middleware.length>0&&r.middleware.length>0&&(a.middleware=t.middleware.map(o=>{let c=o[os]??o,u=Xo(r.middleware,c,(...f)=>WS(f[0]));return u?(u[os]=c,u):o})),a}function wD(e,t){let r={navigate:[],fetch:[]};if(t.forEach(a=>a({instrument(o){let c=Object.keys(o);for(let u of c)o[u]&&r[u].push(o[u])}})),r.navigate.length>0){let a=e.navigate[os]??e.navigate,o=Xo(r.navigate,a,(...c)=>{let[u,f]=c;return{to:typeof u=="number"||typeof u=="string"?u:u?xi(u):".",...ZS(e,f??{})}});o&&(o[os]=a,e.navigate=o)}if(r.fetch.length>0){let a=e.fetch[os]??e.fetch,o=Xo(r.fetch,a,(...c)=>{let[u,,f,d]=c;return{href:f??".",fetcherKey:u,...ZS(e,d??{})}});o&&(o[os]=a,e.fetch=o)}return e}function Xo(e,t,r){return e.length===0?null:async(...a)=>{let o=await GC(e,r(...a),()=>t(...a),e.length-1);if(o.type==="error")throw o.value;return o.value}}async function GC(e,t,r,a){let o=e[a],c;if(o){let u,f=async()=>(u?console.error("You cannot call instrumented handlers more than once"):u=GC(e,t,r,a-1),c=await u,gt(c,"Expected a result"),c.type==="error"&&c.value instanceof Error?{status:"error",error:c.value}:{status:"success",error:void 0});try{await o(f,t)}catch(d){console.error("An instrumentation function threw an error:",d)}u||await f(),await u}else try{c={type:"success",value:await r()}}catch(u){c={type:"error",value:u}}return c||{type:"error",value:new Error("No result assigned in instrumentation chain.")}}function WS(e){let{request:t,context:r,params:a,pattern:o}=e;return{request:ED(t),params:{...a},pattern:o,context:RD(r)}}function ZS(e,t){return{currentUrl:xi(e.state.location),..."formMethod"in t?{formMethod:t.formMethod}:{},..."formEncType"in t?{formEncType:t.formEncType}:{},..."formData"in t?{formData:t.formData}:{},..."body"in t?{body:t.body}:{}}}function ED(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function RD(e){if(TD(e)){let t={...e};return Object.freeze(t),t}else return{get:t=>e.get(t)}}var CD=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function TD(e){if(e===null||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getOwnPropertyNames(t).sort().join("\0")===CD}var QS=new URL("http://localhost");function Ty(e){if(e.createURL)return e.createURL("/");try{return new URL(e.createHref("/"),QS)}catch{return QS}}function ag(e,t){return e.origin===t.origin&&(e.origin!=="null"||e.protocol===t.protocol&&e.host===t.host)}function AD(e,t){if(e.startsWith("//"))return!0;let r=t.protocol.toLowerCase();return e.toLowerCase().startsWith(r)?t.host===""||e.slice(r.length).startsWith("//"):!1}function Wo(e,t,r,a){let o=null;try{o=e==null?null:new URL(e,r)}catch{}let c=new URL(t,r),u=o!=null&&!ag(o,r),f=!ag(c,r);if(a==="reject"){if(u||f)throw new Error("External navigation is not allowed")}else if(f&&(o==null||!AD(e,o)||!ag(o,c)))throw new Error("External navigation is not allowed")}var KC=["POST","PUT","PATCH","DELETE"],MD=new Set(KC),jD=["GET",...KC],OD=new Set(jD),XC=new Set([301,302,303,307,308]),DD=new Set([307,308]),sg={state:"idle",location:void 0,matches:void 0,historyAction:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},ND={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},dc={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},LD=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),$C="remix-router-transitions",WC=Symbol("ResetLoaderData"),Fs,Uo,as,Io,kD=class{constructor(e){Cc(this,Fs),Cc(this,Uo),Cc(this,as),Cc(this,Io),Hr(this,Fs,e),Hr(this,Uo,ud(e))}get stableRoutes(){return cr(this,Fs)}get activeRoutes(){return cr(this,as)??cr(this,Fs)}get branches(){return cr(this,Io)??cr(this,Uo)}get hasHMRRoutes(){return cr(this,as)!=null}setRoutes(e){Hr(this,Fs,e),Hr(this,Uo,ud(e))}setHmrRoutes(e){Hr(this,as,e),Hr(this,Io,ud(e))}commitHmrRoutes(){cr(this,as)&&(Hr(this,Fs,cr(this,as)),Hr(this,Uo,cr(this,Io)),Hr(this,as,void 0),Hr(this,Io,void 0))}};Fs=new WeakMap;Uo=new WeakMap;as=new WeakMap;Io=new WeakMap;function zD(e){const t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u";gt(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let a=e.hydrationRouteProperties||[],o=e.mapRouteProperties||LD,c=o;if(e.instrumentations){let U=e.instrumentations;c=G=>({...o(G),...SD(U.map(te=>te.route).filter(Boolean),G)})}let u={},f=new kD(Zc(e.routes,c,void 0,u)),d=e.basename||"/";d.startsWith("/")||(d=`/${d}`);let m=e.dataStrategy||ID,g={...e.future},v=null,S=new Set,x=null,E=null,w=null,R=null,T=e.hydrationData!=null,O=Ar(f.activeRoutes,e.history.location,d,!1,f.branches),k=!1,j=null,L,P;if(O==null&&!e.patchRoutesOnNavigation){let U=ur(404,{pathname:e.history.location.pathname}),{matches:G,route:te}=Lf(f.activeRoutes);L=!0,P=!L,O=G,j={[te.id]:U}}else if(O&&!e.hydrationData&&Jt(O,f.activeRoutes,e.history.location.pathname).active&&(O=null),O)if(O.some(U=>U.route.lazy))L=!1,P=!L;else if(!O.some(U=>Ay(U.route)))L=!0,P=!L;else{let U=e.hydrationData?e.hydrationData.loaderData:null,G=e.hydrationData?e.hydrationData.errors:null,te=O;if(G){let he=O.findIndex(ge=>G[ge.route.id]!==void 0);te=te.slice(0,he+1)}P=!1,L=!0,te.forEach(he=>{let ge=ZC(he.route,U,G);P=P||ge.renderFallback,L=L&&!ge.shouldLoad})}else{L=!1,P=!L,O=[];let U=Jt(null,f.activeRoutes,e.history.location.pathname);U.active&&U.matches&&(k=!0,O=U.matches)}let D,A={historyAction:e.history.action,location:e.history.location,matches:O,initialized:L,renderFallback:P,navigation:sg,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||j,fetchers:new Map,blockers:new Map},F="POP",H=null,X=!1,$,W=!1,ee=new Map,ie=null,V=!1,K=!1,Q=new Set,Y=new Map,_=0,M=-1,z=new Map,I=new Set,B=new Map,Z=new Map,re=new Set,fe=new Map,pe,ce=null;function Ae(){if(v=e.history.listen(({action:U,location:G,delta:te})=>{if(pe){pe(),pe=void 0;return}Sn(fe.size===0||te!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let he=un({currentLocation:A.location,nextLocation:G,historyAction:U});if(he&&te!=null){let ge=new Promise(Le=>{pe=Le});e.history.go(te*-1),Rt(he,{state:"blocked",location:G,proceed(){Rt(he,{state:"proceeding",proceed:void 0,reset:void 0,location:G}),ge.then(()=>e.history.go(te))},reset(){let Le=new Map(A.blockers);Le.set(he,dc),Re({blockers:Le})}}),H?.resolve(),H=null;return}return Qe(U,G)}),r){aN(t,ee);let U=()=>sN(t,ee);t.addEventListener("pagehide",U),ie=()=>t.removeEventListener("pagehide",U)}return A.initialized||Qe("POP",A.location,{initialHydration:!0}),D}function ke(){v&&v(),ie&&ie(),S.clear(),$&&$.abort(),A.fetchers.forEach((U,G)=>Ot(A.fetchers,G)),A.blockers.forEach((U,G)=>vn(G))}function we(U){if(S.add(U),x){let{newErrors:G}=x;x=null,U(A,{deletedFetchers:[],newErrors:G,viewTransitionOpts:void 0,flushSync:!1})}return()=>S.delete(U)}function Re(U,G={}){U.matches&&(U.matches=U.matches.map(ge=>{let Le=u[ge.route.id],Ce=ge.route;return Ce.element!==Le.element||Ce.errorElement!==Le.errorElement||Ce.hydrateFallbackElement!==Le.hydrateFallbackElement?{...ge,route:Le}:ge})),A={...A,...U};let te=[],he=[];A.fetchers.forEach((ge,Le)=>{ge.state==="idle"&&(re.has(Le)?te.push(Le):he.push(Le))}),re.forEach(ge=>{!A.fetchers.has(ge)&&!Y.has(ge)&&te.push(ge)}),S.size===0&&(x={newErrors:U.errors??null}),[...S].forEach(ge=>ge(A,{deletedFetchers:te,newErrors:U.errors??null,viewTransitionOpts:G.viewTransitionOpts,flushSync:G.flushSync===!0})),te.forEach(ge=>Ot(A.fetchers,ge)),he.forEach(ge=>A.fetchers.delete(ge))}function ye(U,G,{flushSync:te}={}){let he=A.actionData!=null&&A.navigation.formMethod!=null&&li(A.navigation.formMethod)&&A.navigation.state==="loading"&&U.state?._isRedirect!==!0,ge;G.actionData?Object.keys(G.actionData).length>0?ge=G.actionData:ge=null:he?ge=A.actionData:ge=null;let Le=G.loaderData?lw(A.loaderData,G.loaderData,G.matches||[],G.errors):A.loaderData,Ce=A.blockers;Ce.size>0&&(Ce=new Map(Ce),Ce.forEach((Pe,tt)=>Ce.set(tt,dc)));let je=V?!1:sn(U,G.matches||A.matches),De=X===!0||A.navigation.formMethod!=null&&li(A.navigation.formMethod)&&U.state?._isRedirect!==!0;f.commitHmrRoutes(),V||F==="POP"||(F==="PUSH"?e.history.push(U,U.state):F==="REPLACE"&&e.history.replace(U,U.state));let Be;if(F==="POP"&&!V&&U!==A.location){let Pe=ee.get(A.location.pathname);Pe&&Pe.has(U.pathname)?Be={currentLocation:A.location,nextLocation:U}:ee.has(U.pathname)&&(Be={currentLocation:U,nextLocation:A.location})}else if(W){let Pe=ee.get(A.location.pathname);Pe?Pe.add(U.pathname):(Pe=new Set([U.pathname]),ee.set(A.location.pathname,Pe)),Be={currentLocation:A.location,nextLocation:U}}Re({...G,actionData:ge,loaderData:Le,historyAction:F,location:U,initialized:!0,renderFallback:!1,navigation:sg,revalidation:"idle",restoreScrollPosition:je,preventScrollReset:De,blockers:Ce},{viewTransitionOpts:Be,flushSync:te===!0}),F="POP",X=!1,W=!1,V=!1,K=!1,H?.resolve(),H=null,ce?.resolve(),ce=null}async function ze(U,G){if(H?.resolve(),H=null,typeof U=="number"){H||(H=dw());let pt=H.promise;return e.history.go(U),pt}let te=c0(A.location,A.matches,d,U,G?.fromRouteId,G?.relative),{path:he,submission:ge,error:Le}=JS(!1,te,G),Ce;if(G?.mask){let pt=typeof G.mask=="string"?Zr(G.mask):{...A.location.mask,...G.mask};if(Ce={pathname:pt.pathname??"",search:pt.search??"",hash:pt.hash??""},rh.test(Ce.pathname))throw new Error("External navigation is not allowed");Ce.pathname.startsWith("\\")&&(Ce.pathname=Ce.pathname.replace(/^\\+/,"/")),Wo(typeof G.mask=="string"?G.mask:xi(G.mask),xi(Ce),e.history.createURL("/"),"reject")}let je=A.location,De=Wc(je,he,G&&G.state,void 0,Ce);De={...De,...e.history.encodeLocation(De)},Wo(U==null?e.history.createHref(A.location):typeof U=="string"?U:xi(U),e.history.createHref(De.mask||De),e.history.createURL("/"),"reject");let Be=G&&G.replace!=null?G.replace:void 0,Pe="PUSH";Be===!0?Pe="REPLACE":Be===!1||ge!=null&&li(ge.formMethod)&&ge.formAction===A.location.pathname+A.location.search&&(Pe="REPLACE");let tt=G&&"preventScrollReset"in G?G.preventScrollReset===!0:void 0,Ke=(G&&G.flushSync)===!0,ut=un({currentLocation:je,nextLocation:De,historyAction:Pe});if(ut){Rt(ut,{state:"blocked",location:De,proceed(){Rt(ut,{state:"proceeding",proceed:void 0,reset:void 0,location:De}),ze(U,G)},reset(){let pt=new Map(A.blockers);pt.set(ut,dc),Re({blockers:pt})}});return}await Qe(Pe,De,{submission:ge,pendingError:Le,preventScrollReset:tt,replace:G&&G.replace,enableViewTransition:G&&G.viewTransition,flushSync:Ke,callSiteDefaultShouldRevalidate:G&&G.defaultShouldRevalidate})}function Ye(){ce||(ce=dw()),Te(),Re({revalidation:"loading"});let U=ce.promise;return A.navigation.state==="submitting"?U:A.navigation.state==="idle"?(Qe(A.historyAction,A.location,{startUninterruptedRevalidation:!0}),U):(Qe(F||A.historyAction,A.navigation.location,{overrideNavigation:A.navigation,enableViewTransition:W===!0}),U)}async function Qe(U,G,te){$&&$.abort(),$=null,F=U,V=(te&&te.startUninterruptedRevalidation)===!0,ct(A.location,A.matches),X=(te&&te.preventScrollReset)===!0,W=(te&&te.enableViewTransition)===!0;let he=f.activeRoutes,ge=te?.initialHydration&&A.matches&&A.matches.length>0&&!k?A.matches:Ar(he,G,d,!1,f.branches),Le=(te&&te.flushSync)===!0;if(ge&&A.initialized&&!K&&$D(A.location,G)&&!(te&&te.submission&&li(te.submission.formMethod))){ye(G,{matches:ge},{flushSync:Le});return}let Ce=Jt(ge,he,G.pathname);if(Ce.active&&Ce.matches&&(ge=Ce.matches),!ge){let{error:ft,notFoundMatches:dt,route:Bt}=kt(G.pathname);ye(G,{matches:dt,loaderData:{},errors:{[Bt.id]:ft}},{flushSync:Le});return}let je=te&&te.overrideNavigation?{...te.overrideNavigation,matches:ge,historyAction:U}:void 0;$=new AbortController;let De=Bo(e.history,G,$.signal,te&&te.submission),Be=e.getContext?await e.getContext():new GS,Pe;if(te&&te.pendingError)Pe=[ss(ge).route.id,{type:"error",error:te.pendingError}];else if(te&&te.submission&&li(te.submission.formMethod)){let ft=await nt(De,G,te.submission,ge,U,Be,Ce.active,te&&te.initialHydration===!0,{replace:te.replace,flushSync:Le});if(ft.shortCircuited)return;if(ft.pendingActionResult){let[dt,Bt]=ft.pendingActionResult;if(qi(Bt)&&Qc(Bt.error)&&Bt.error.status===404){$=null,ye(G,{matches:ft.matches,loaderData:{},errors:{[dt]:Bt.error}});return}}ge=ft.matches||ge,Pe=ft.pendingActionResult,je=og(G,ge,U,te.submission),Le=!1,Ce.active=!1,De=Bo(e.history,De.url,De.signal)}let{shortCircuited:tt,matches:Ke,loaderData:ut,errors:pt,workingFetchers:It}=await Ne(De,G,ge,U,Be,Ce.active,je,te&&te.submission,te&&te.fetcherSubmission,te&&te.replace,te&&te.initialHydration===!0,Le,Pe,te&&te.callSiteDefaultShouldRevalidate);tt||($=null,ye(G,{matches:Ke||ge,...cw(Pe),loaderData:ut,errors:pt,...It?{fetchers:It}:{}}))}async function nt(U,G,te,he,ge,Le,Ce,je,De={}){Te();let Be=iN(G,he,ge,te);if(Re({navigation:Be},{flushSync:De.flushSync===!0}),Ce){let Ke=await _t(he,G.pathname,U.signal);if(Ke.type==="aborted")return{shortCircuited:!0};if(Ke.type==="error"){if(Ke.partialMatches.length===0){let{matches:pt,route:It}=Lf(f.activeRoutes);return{matches:pt,pendingActionResult:[It.id,{type:"error",error:Ke.error}]}}let ut=ss(Ke.partialMatches).route.id;return{matches:Ke.partialMatches,pendingActionResult:[ut,{type:"error",error:Ke.error}]}}else if(Ke.matches)he=Ke.matches;else{let{notFoundMatches:ut,error:pt,route:It}=kt(G.pathname);return{matches:ut,pendingActionResult:[It.id,{type:"error",error:pt}]}}}let Pe,tt=fd(he,G);if(!tt.route.action&&!tt.route.lazy)Pe={type:"error",error:ur(405,{method:U.method,pathname:G.pathname,routeId:tt.route.id})};else{let Ke=Zo(c,u,U,G,he,tt,je?[]:a,Le),ut=await be(U,G,Ke,Le,null);if(Pe=ut[tt.route.id],!Pe){for(let pt of he)if(ut[pt.route.id]){Pe=ut[pt.route.id];break}}if(U.signal.aborted)return{shortCircuited:!0}}if(Ks(Pe)){let Ke;return De&&De.replace!=null?Ke=De.replace:Ke=aw(Pe.response.headers.get("Location"),new URL(U.url),d,e.history)===A.location.pathname+A.location.search,await ue(U,Pe,!0,{submission:te,replace:Ke}),{shortCircuited:!0}}if(qi(Pe)){let Ke=ss(he,tt.route.id);return(De&&De.replace)!==!0&&(F="PUSH"),{matches:he,pendingActionResult:[Ke.route.id,Pe,tt.route.id]}}return{matches:he,pendingActionResult:[tt.route.id,Pe]}}async function Ne(U,G,te,he,ge,Le,Ce,je,De,Be,Pe,tt,Ke,ut){let pt=Ce||og(G,te,he,je),It=je||De||fw(pt),ft=!V&&!Pe;if(Le){if(ft){let qt=Xe(Ke);Re({navigation:pt,...qt!==void 0?{actionData:qt}:{}},{flushSync:tt})}let it=await _t(te,G.pathname,U.signal);if(it.type==="aborted")return{shortCircuited:!0};if(it.type==="error"){if(it.partialMatches.length===0){let{matches:Wn,route:Qi}=Lf(f.activeRoutes);return{matches:Wn,loaderData:{},errors:{[Qi.id]:it.error}}}let qt=ss(it.partialMatches).route.id;return{matches:it.partialMatches,loaderData:{},errors:{[qt]:it.error}}}else if(it.matches)te=it.matches;else{let{error:qt,notFoundMatches:Wn,route:Qi}=kt(G.pathname);return{matches:Wn,loaderData:{},errors:{[Qi.id]:qt}}}}let dt=f.activeRoutes,{dsMatches:Bt,revalidatingFetchers:st}=ew(U,ge,c,u,e.history,A,te,It,G,Pe?[]:a,Pe===!0,K,Q,re,B,I,dt,d,e.patchRoutesOnNavigation!=null,f.branches,Ke,ut);if(M=++_,!e.dataStrategy&&!Bt.some(it=>it.shouldLoad)&&!Bt.some(it=>it.route.middleware&&it.route.middleware.length>0)&&st.length===0){let it=new Map(A.fetchers),qt=mn(it);return ye(G,{matches:te,loaderData:{},errors:Ke&&qi(Ke[1])?{[Ke[0]]:Ke[1].error}:null,...cw(Ke),...qt?{fetchers:it}:{}},{flushSync:tt}),{shortCircuited:!0}}if(ft){let it={};if(!Le){it.navigation=pt;let qt=Xe(Ke);qt!==void 0&&(it.actionData=qt)}st.length>0&&(it.fetchers=Me(st)),Re(it,{flushSync:tt})}st.forEach(it=>{Ft(it.key),it.controller&&Y.set(it.key,it.controller)});let Oi=()=>st.forEach(it=>Ft(it.key));$&&$.signal.addEventListener("abort",Oi);let{loaderResults:pn,fetcherResults:On}=await $e(Bt,st,U,G,ge);if(U.signal.aborted)return{shortCircuited:!0};$&&$.signal.removeEventListener("abort",Oi),st.forEach(it=>Y.delete(it.key));let Xn=kf(pn);if(Xn)return await ue(U,Xn.result,!0,{replace:Be}),{shortCircuited:!0};if(Xn=kf(On),Xn)return I.add(Xn.key),await ue(U,Xn.result,!0,{replace:Be}),{shortCircuited:!0};let _n=new Map(A.fetchers),{loaderData:ea,errors:si}=ow(A,te,pn,Ke,st,On,_n);Pe&&A.errors&&(si={...A.errors,...si});let br=mn(_n),fi=qn(M,_n),xr=br||fi||st.length>0;return{matches:te,loaderData:ea,errors:si,...xr?{workingFetchers:_n}:{}}}function Xe(U){if(U&&!qi(U[1]))return{[U[0]]:U[1].data};if(A.actionData)return Object.keys(A.actionData).length===0?null:A.actionData}function Me(U){let G=new Map(A.fetchers);return U.forEach(te=>{let he=G.get(te.key),ge=hc(void 0,he?he.data:void 0);G.set(te.key,ge)}),G}async function et(U,G,te,he){Ft(U);let ge=(he&&he.flushSync)===!0,Le=f.activeRoutes,Ce=c0(A.location,A.matches,d,te,G,he?.relative),je=Ar(Le,Ce,d,!1,f.branches),De=Jt(je,Le,Ce);if(De.active&&De.matches&&(je=De.matches),!je){bt(U,G,ur(404,{pathname:Ce}),{flushSync:ge});return}let{path:Be,submission:Pe,error:tt}=JS(!0,Ce,he);if(tt){bt(U,G,tt,{flushSync:ge});return}let Ke=e.getContext?await e.getContext():new GS,ut=(he&&he.preventScrollReset)===!0;if(Pe&&li(Pe.formMethod)){await Et(U,G,Be,je,Ke,De.active,ge,ut,Pe,he&&he.defaultShouldRevalidate);return}B.set(U,{routeId:G,path:Be}),await at(U,G,Be,je,Ke,De.active,ge,ut,Pe)}async function Et(U,G,te,he,ge,Le,Ce,je,De,Be){Te(),B.delete(U);let Pe=A.fetchers.get(U);Oe(U,rN(De,Pe),{flushSync:Ce});let tt=new AbortController,Ke=Bo(e.history,te,tt.signal,De);if(Le){let xe=await _t(he,new URL(Ke.url).pathname,Ke.signal,U);if(xe.type==="aborted")return;if(xe.type==="error"){bt(U,G,xe.error,{flushSync:Ce});return}else if(xe.matches)he=xe.matches;else{bt(U,G,ur(404,{pathname:te}),{flushSync:Ce});return}}let ut=fd(he,te);if(!ut.route.action&&!ut.route.lazy){let xe=ur(405,{method:De.formMethod,pathname:te,routeId:G});bt(U,G,xe,{flushSync:Ce});return}Y.set(U,tt);let pt=_,It=Zo(c,u,Ke,te,he,ut,a,ge),ft=await be(Ke,te,It,ge,U),dt=ft[ut.route.id];if(!dt){for(let xe of It)if(ft[xe.route.id]){dt=ft[xe.route.id];break}}if(Ke.signal.aborted){Y.get(U)===tt&&Y.delete(U);return}if(re.has(U)){if(Ks(dt)||qi(dt)){Oe(U,Yr(void 0));return}}else{if(Ks(dt))if(Y.delete(U),M>pt){Oe(U,Yr(void 0));return}else return I.add(U),Oe(U,hc(De)),ue(Ke,dt,!1,{fetcherSubmission:De,preventScrollReset:je});if(qi(dt)){bt(U,G,dt.error);return}}let Bt=A.navigation.location||A.location,st=Bo(e.history,Bt,tt.signal),Oi=f.activeRoutes,pn=A.navigation.state!=="idle"?Ar(Oi,A.navigation.location,d,!1,f.branches):A.matches;gt(pn,"Didn't find any matches after fetcher action");let On=++_;z.set(U,On);let{dsMatches:Xn,revalidatingFetchers:_n}=ew(st,ge,c,u,e.history,A,pn,De,Bt,a,!1,K,Q,re,B,I,Oi,d,e.patchRoutesOnNavigation!=null,f.branches,[ut.route.id,dt],Be),ea=hc(De,dt.data),si=new Map(A.fetchers);si.set(U,ea),_n.filter(xe=>xe.key!==U).forEach(xe=>{let Ue=xe.key,qe=si.get(Ue),Je=hc(void 0,qe?qe.data:void 0);si.set(Ue,Je),Ft(Ue),xe.controller&&Y.set(Ue,xe.controller)}),Re({fetchers:si});let br=()=>_n.forEach(xe=>Ft(xe.key));tt.signal.addEventListener("abort",br);let{loaderResults:fi,fetcherResults:xr}=await $e(Xn,_n,st,Bt,ge);if(tt.signal.aborted)return;tt.signal.removeEventListener("abort",br),z.delete(U),Y.delete(U),_n.forEach(xe=>Y.delete(xe.key));let it=A.fetchers.has(U),qt=xe=>{if(!it)return xe;let Ue=new Map(xe.fetchers);return Ue.set(U,Yr(dt.data)),{...xe,fetchers:Ue}},Wn=kf(fi);if(Wn)return A=qt(A),ue(st,Wn.result,!1,{preventScrollReset:je});if(Wn=kf(xr),Wn)return I.add(Wn.key),A=qt(A),ue(st,Wn.result,!1,{preventScrollReset:je});let Qi=new Map(A.fetchers);it&&Qi.set(U,Yr(dt.data));let{loaderData:oe,errors:Ee}=ow(A,pn,fi,void 0,_n,xr,Qi);qn(On,Qi),A.navigation.state==="loading"&&On>M?(gt(F,"Expected pending action"),$&&$.abort(),ye(A.navigation.location,{matches:pn,loaderData:oe,errors:Ee,fetchers:Qi})):(Re({errors:Ee,loaderData:lw(A.loaderData,oe,pn,Ee),fetchers:Qi}),K=!1)}async function at(U,G,te,he,ge,Le,Ce,je,De){let Be=A.fetchers.get(U);Oe(U,hc(De,Be?Be.data:void 0),{flushSync:Ce});let Pe=new AbortController,tt=Bo(e.history,te,Pe.signal);if(Le){let dt=await _t(he,new URL(tt.url).pathname,tt.signal,U);if(dt.type==="aborted")return;if(dt.type==="error"){bt(U,G,dt.error,{flushSync:Ce});return}else if(dt.matches)he=dt.matches;else{bt(U,G,ur(404,{pathname:te}),{flushSync:Ce});return}}let Ke=fd(he,te);Y.set(U,Pe);let ut=_,pt=Zo(c,u,tt,te,he,Ke,a,ge),It=await be(tt,te,pt,ge,U),ft=It[Ke.route.id];if(!ft){for(let dt of he)if(It[dt.route.id]){ft=It[dt.route.id];break}}if(Y.get(U)===Pe&&Y.delete(U),!tt.signal.aborted){if(re.has(U)){Oe(U,Yr(void 0));return}if(Ks(ft))if(M>ut){Oe(U,Yr(void 0));return}else{I.add(U),await ue(tt,ft,!1,{preventScrollReset:je});return}if(qi(ft)){bt(U,G,ft.error);return}Oe(U,Yr(ft.data))}}async function ue(U,G,te,{submission:he,fetcherSubmission:ge,preventScrollReset:Le,replace:Ce}={}){te||(H?.resolve(),H=null),G.response.headers.has("X-Remix-Revalidate")&&(K=!0);let je=G.response.headers.get("Location");gt(je,"Expected a Location header on the redirect Response");let De=je,Be=new URL(U.url);je=aw(je,Be,d,e.history),Wo(De,je,Be,"allow-explicit");let Pe=Wc(A.location,je,{_isRedirect:!0});if(r){let ft=!1;if(G.response.headers.has("X-Remix-Reload-Document"))ft=!0;else if(Ry(je)){const dt=_C(t,je,!0);ft=dt.origin!==t.location.origin||gr(dt.pathname,d)==null}if(ft){Ce?t.location.replace(je):t.location.assign(je);return}}$=null;let tt=Ce===!0||G.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:Ke,formAction:ut,formEncType:pt}=A.navigation;!he&&!ge&&Ke&&ut&&pt&&(he=fw(A.navigation));let It=he||ge;if(DD.has(G.response.status)&&It&&li(It.formMethod))await Qe(tt,Pe,{submission:{...It,formAction:je},preventScrollReset:Le||X,enableViewTransition:te?W:void 0});else{let ft=og(Pe,[],tt,he);await Qe(tt,Pe,{overrideNavigation:ft,fetcherSubmission:ge,preventScrollReset:Le||X,enableViewTransition:te?W:void 0})}}async function be(U,G,te,he,ge){let Le,Ce={};try{Le=await HD(m,U,G,te,ge,he,!1)}catch(je){return te.filter(De=>De.shouldLoad).forEach(De=>{Ce[De.route.id]={type:"error",error:je}}),Ce}if(U.signal.aborted)return Ce;if(!li(U.method))for(let je of te){if(Le[je.route.id]?.type==="error")break;!Le.hasOwnProperty(je.route.id)&&!A.loaderData.hasOwnProperty(je.route.id)&&(!A.errors||!A.errors.hasOwnProperty(je.route.id))&&je.shouldCallHandler()&&(Le[je.route.id]={type:"error",result:new Error(`No result returned from dataStrategy for route ${je.route.id}`)})}for(let[je,De]of Object.entries(Le))if(JD(De)){let Be=De.result;Ce[je]={type:"redirect",response:GD(Be,U,je,te,d)}}else Ce[je]=await qD(De);return Ce}async function $e(U,G,te,he,ge){let Le=be(te,he,U,ge,null),Ce=Promise.all(G.map(async Be=>{if(Be.matches&&Be.match&&Be.request&&Be.controller){let tt=(await be(Be.request,Be.path,Be.matches,ge,Be.key))[Be.match.route.id];return{[Be.key]:tt}}else return Promise.resolve({[Be.key]:{type:"error",error:ur(404,{pathname:Be.path})}})})),je=await Le,De=(await Ce).reduce((Be,Pe)=>Object.assign(Be,Pe),{});return{loaderResults:je,fetcherResults:De}}function Te(){K=!0,B.forEach((U,G)=>{Y.has(G)&&Q.add(G),Ft(G)})}function Oe(U,G,te={}){let he=new Map(A.fetchers);he.set(U,G),Re({fetchers:he},{flushSync:(te&&te.flushSync)===!0})}function bt(U,G,te,he={}){let ge=ss(A.matches,G),Le=new Map(A.fetchers);Ot(Le,U),Re({errors:{[ge.route.id]:te},fetchers:Le},{flushSync:(he&&he.flushSync)===!0})}function Nt(U){return Z.set(U,(Z.get(U)||0)+1),re.has(U)&&re.delete(U),A.fetchers.get(U)||ND}function xt(U,G){Ft(U,G?.reason),Oe(U,Yr(null))}function Ot(U,G){let te=A.fetchers.get(G);Y.has(G)&&!(te&&te.state==="loading"&&z.has(G))&&Ft(G),B.delete(G),z.delete(G),I.delete(G),re.delete(G),Q.delete(G),U.delete(G)}function Lt(U){let G=(Z.get(U)||0)-1;G<=0?(Z.delete(U),re.add(U)):Z.set(U,G),Re({fetchers:new Map(A.fetchers)})}function Ft(U,G){let te=Y.get(U);te&&(te.abort(G),Y.delete(U))}function Yt(U,G){for(let te of U){let he=G.get(te);gt(he,`Expected fetcher: ${te}`);let ge=Yr(he.data);G.set(te,ge)}}function mn(U){let G=[],te=!1;for(let he of I){let ge=U.get(he);gt(ge,`Expected fetcher: ${he}`),ge.state==="loading"&&(I.delete(he),G.push(he),te=!0)}return Yt(G,U),te}function qn(U,G){let te=[];for(let[he,ge]of z)if(ge0}function Gn(U,G){let te=A.blockers.get(U)||dc;return fe.get(U)!==G&&fe.set(U,G),te}function vn(U){A.blockers.delete(U),fe.delete(U)}function Rt(U,G){let te=A.blockers.get(U)||dc;gt(te.state==="unblocked"&&G.state==="blocked"||te.state==="blocked"&&G.state==="blocked"||te.state==="blocked"&&G.state==="proceeding"||te.state==="blocked"&&G.state==="unblocked"||te.state==="proceeding"&&G.state==="unblocked",`Invalid blocker state transition: ${te.state} -> ${G.state}`);let he=new Map(A.blockers);he.set(U,G),Re({blockers:he})}function un({currentLocation:U,nextLocation:G,historyAction:te}){if(fe.size===0)return;fe.size>1&&Sn(!1,"A router only supports one blocker at a time");let he=Array.from(fe.entries()),[ge,Le]=he[he.length-1],Ce=A.blockers.get(ge);if(!(Ce&&Ce.state==="proceeding")&&Le({currentLocation:U,nextLocation:G,historyAction:te}))return ge}function kt(U){let G=ur(404,{pathname:U}),te=f.activeRoutes,{matches:he,route:ge}=Lf(te);return{notFoundMatches:he,route:ge,error:G}}function jn(U,G,te){if(E=U,R=G,w=te||null,!T&&A.navigation===sg){T=!0;let he=sn(A.location,A.matches);he!=null&&Re({restoreScrollPosition:he})}return()=>{E=null,R=null,w=null}}function Pn(U,G){return w&&w(U,G.map(he=>iD(he,A.loaderData)))||U.key}function ct(U,G){if(E&&R){let te=Pn(U,G);E[te]=R()}}function sn(U,G){if(E){let te=Pn(U,G),he=E[te];if(typeof he=="number")return he}return null}function Jt(U,G,te){if(e.patchRoutesOnNavigation){let he=f.branches;if(U){if(Object.keys(U[0].params).length>0)return{active:!0,matches:Ar(G,te,d,!0,he)}}else return{active:!0,matches:Ar(G,te,d,!0,he)||[]}}return{active:!1,matches:null}}async function _t(U,G,te,he){if(!e.patchRoutesOnNavigation)return{type:"success",matches:U};let ge=U;for(;;){let Le=u;try{await e.patchRoutesOnNavigation({signal:te,path:G,matches:ge,fetcherKey:he,patch:(Be,Pe)=>{te.aborted||tw(Be,Pe,f,Le,c,!1)}})}catch(Be){return{type:"error",error:Be,partialMatches:ge}}if(te.aborted)return{type:"aborted"};let Ce=f.branches,je=Ar(f.activeRoutes,G,d,!1,Ce),De=null;if(je){if(Object.keys(je[0].params).length===0)return{type:"success",matches:je};if(De=Ar(f.activeRoutes,G,d,!0,Ce),!(De&&ge.lengthte.route.id===G[he].route.id)}function fn(U){u={},f.setHmrRoutes(Zc(U,c,void 0,u))}function Kn(U,G,te=!1){tw(U,G,f,u,c,te),f.hasHMRRoutes||Re({})}return D={get basename(){return d},get future(){return g},get state(){return A},get routes(){return f.stableRoutes},get branches(){return f.branches},get manifest(){return u},get window(){return t},initialize:Ae,subscribe:we,enableScrollRestoration:jn,navigate:ze,fetch:et,revalidate:Ye,createHref:U=>e.history.createHref(U),createURL:U=>e.history.createURL(U),encodeLocation:U=>e.history.encodeLocation(U),getFetcher:Nt,resetFetcher:xt,deleteFetcher:Lt,dispose:ke,getBlocker:Gn,deleteBlocker:vn,patchRoutes:Kn,_internalFetchControllers:Y,_internalSetRoutes:fn,_internalSetStateDoNotUseOrYouWillBreakYourApp(U){Re(U)}},e.instrumentations&&(D=wD(D,e.instrumentations.map(U=>U.router).filter(Boolean))),D}function PD(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function c0(e,t,r,a,o,c){let u,f;if(o){u=[];for(let m of t)if(u.push(m),m.route.id===o){f=m;break}}else u=t,f=t[t.length-1];let d=hu(a||".",ah(u),gr(e.pathname,r)||e.pathname,c==="path");if(a==null&&(d.search=e.search,d.hash=e.hash),(a==null||a===""||a===".")&&f){let m=jy(d.search);if(f.route.index&&!m)d.search=d.search?d.search.replace(/^\?/,"?index&"):"?index";else if(!f.route.index&&m){let g=new URLSearchParams(d.search),v=g.getAll("index");g.delete("index"),v.filter(x=>x).forEach(x=>g.append("index",x));let S=g.toString();d.search=S?`?${S}`:""}}return r!=="/"&&(d.pathname=pD({basename:r,pathname:d.pathname})),xi(d)}function JS(e,t,r){if(!r||!PD(r))return{path:t};if(r.formMethod&&!nN(r.formMethod))return{path:t,error:ur(405,{method:r.formMethod})};let a=()=>({path:t,error:ur(400,{type:"invalid-body"})}),c=(r.formMethod||"get").toUpperCase(),u=rT(t);if(r.body!==void 0){if(r.formEncType==="text/plain"){if(!li(c))return a();let v=typeof r.body=="string"?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((S,[x,E])=>`${S}${x}=${E} +`,""):String(r.body);return{path:t,submission:{formMethod:c,formAction:u,formEncType:r.formEncType,formData:void 0,json:void 0,text:v}}}else if(r.formEncType==="application/json"){if(!li(c))return a();try{let v=typeof r.body=="string"?JSON.parse(r.body):r.body;return{path:t,submission:{formMethod:c,formAction:u,formEncType:r.formEncType,formData:void 0,json:v,text:void 0}}}catch{return a()}}}gt(typeof FormData=="function","FormData is not available in this environment");let f,d;if(r.formData)f=d0(r.formData),d=r.formData;else if(r.body instanceof FormData)f=d0(r.body),d=r.body;else if(r.body instanceof URLSearchParams)f=r.body,d=sw(f);else if(r.body==null)f=new URLSearchParams,d=new FormData;else try{f=new URLSearchParams(r.body),d=sw(f)}catch{return a()}let m={formMethod:c,formAction:u,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:d,json:void 0,text:void 0};if(li(m.formMethod))return{path:t,submission:m};let g=Zr(t);return e&&g.search&&jy(g.search)&&f.append("index",""),g.search=`?${f}`,{path:xi(g),submission:m}}function ew(e,t,r,a,o,c,u,f,d,m,g,v,S,x,E,w,R,T,O,k,j,L){let P=j?qi(j[1])?j[1].error:j[1].data:void 0,D=o.createURL(c.location),A=o.createURL(d),F;if(g&&c.errors){let V=Object.keys(c.errors)[0];F=u.findIndex(K=>K.route.id===V)}else if(j&&qi(j[1])){let V=j[0];F=u.findIndex(K=>K.route.id===V)-1}let H=j?j[1].statusCode:void 0,X=H&&H>=400,$={currentUrl:D,currentParams:c.matches[0]?.params||{},nextUrl:A,nextParams:u[0].params,...f,actionResult:P,actionStatus:H},W=pu(u),ee=u.map((V,K)=>{let{route:Q}=V,Y=null;if(F!=null&&K>F)Y=!1;else if(Q.lazy)Y=!0;else if(!Ay(Q))Y=!1;else if(g){let{shouldLoad:I}=ZC(Q,c.loaderData,c.errors);Y=I}else _D(c.loaderData,c.matches[K],V)&&(Y=!0);if(Y!==null)return u0(r,a,e,d,W,V,m,t,Y);let _=!1;typeof L=="boolean"?_=L:X?_=!1:(v||D.pathname+D.search===A.pathname+A.search||D.search!==A.search||VD(c.matches[K],V))&&(_=!0);let M={...$,defaultShouldRevalidate:_},z=Nc(V,M);return u0(r,a,e,d,W,V,m,t,z,M,L)}),ie=[];return E.forEach((V,K)=>{if(g||!u.some(Z=>Z.route.id===V.routeId)||x.has(K))return;let Q=c.fetchers.get(K),Y=Q&&Q.state!=="idle"&&Q.data===void 0,_=Ar(R,V.path,T??"/",!1,k);if(!_){if(O&&Y)return;ie.push({key:K,routeId:V.routeId,path:V.path,matches:null,match:null,request:null,controller:null});return}if(w.has(K))return;let M=fd(_,V.path),z=new AbortController,I=Bo(o,V.path,z.signal),B=null;if(S.has(K))S.delete(K),B=Zo(r,a,I,V.path,_,M,m,t);else if(Y)v&&(B=Zo(r,a,I,V.path,_,M,m,t));else{let Z;typeof L=="boolean"?Z=L:X?Z=!1:Z=v;let re={...$,defaultShouldRevalidate:Z};Nc(M,re)&&(B=Zo(r,a,I,V.path,_,M,m,t,re))}B&&ie.push({key:K,routeId:V.routeId,path:V.path,matches:B,match:M,request:I,controller:z})}),{dsMatches:ee,revalidatingFetchers:ie}}function Ay(e){return e.loader!=null||e.middleware!=null&&e.middleware.length>0}function ZC(e,t,r){if(e.lazy)return{shouldLoad:!0,renderFallback:!0};if(!Ay(e))return{shouldLoad:!1,renderFallback:!1};let a=t!=null&&e.id in t,o=r!=null&&r[e.id]!==void 0;if(!a&&o)return{shouldLoad:!1,renderFallback:!1};if(typeof e.loader=="function"&&e.loader.hydrate===!0)return{shouldLoad:!0,renderFallback:!a};let c=!a&&!o;return{shouldLoad:c,renderFallback:c}}function _D(e,t,r){let a=!t||r.route.id!==t.route.id,o=!e.hasOwnProperty(r.route.id);return a||o}function VD(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function Nc(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}function tw(e,t,r,a,o,c){let u;if(e){let m=a[e];gt(m,`No route found to patch children into: routeId = ${e}`),m.children||(m.children=[]),u=m.children}else u=r.activeRoutes;let f=[],d=[];if(t.forEach(m=>{let g=u.find(v=>QC(m,v));g?d.push({existingRoute:g,newRoute:m}):f.push(m)}),f.length>0){let m=Zc(f,o,[e||"_","patch",String(u?.length||"0")],a);u.push(...m)}if(c&&d.length>0)for(let m=0;mt.children?.some(o=>QC(r,o)))??!1:!1}var nw=new WeakMap,JC=({key:e,route:t,manifest:r,mapRouteProperties:a})=>{let o=r[t.id];if(gt(o,"No route found in manifest"),!o.lazy||typeof o.lazy!="object")return;let c=o.lazy[e];if(!c)return;let u=nw.get(o);u||(u={},nw.set(o,u));let f=u[e];if(f)return f;let d=(async()=>{let m=JO(e),v=o[e]!==void 0&&e!=="hasErrorBoundary";if(m)Sn(!m,"Route property "+e+" is not a supported lazy route property. This property will be ignored."),u[e]=Promise.resolve();else if(v)Sn(!1,`Route "${o.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let S=await c();S!=null&&(Object.assign(o,{[e]:S}),Object.assign(o,a(o)))}typeof o.lazy=="object"&&(o.lazy[e]=void 0,Object.values(o.lazy).every(S=>S===void 0)&&(o.lazy=void 0))})();return u[e]=d,d},iw=new WeakMap;function UD(e,t,r,a,o){let c=r[e.id];if(gt(c,"No route found in manifest"),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof e.lazy=="function"){let g=iw.get(c);if(g)return{lazyRoutePromise:g,lazyHandlerPromise:g};let v=(async()=>{gt(typeof e.lazy=="function","No lazy route function found");let S=await e.lazy(),x={};for(let E in S){let w=S[E];if(w===void 0)continue;let R=tD(E),O=c[E]!==void 0&&E!=="hasErrorBoundary";R?Sn(!R,"Route property "+E+" is not a supported property to be returned from a lazy route function. This property will be ignored."):O?Sn(!O,`Route "${c.id}" has a static property "${E}" defined but its lazy function is also returning a value for this property. The lazy route property "${E}" will be ignored.`):x[E]=w}Object.assign(c,x),Object.assign(c,{...a(c),lazy:void 0})})();return iw.set(c,v),v.catch(()=>{}),{lazyRoutePromise:v,lazyHandlerPromise:v}}let u=Object.keys(e.lazy),f=[],d;for(let g of u){if(o&&o.includes(g))continue;let v=JC({key:g,route:e,manifest:r,mapRouteProperties:a});v&&(f.push(v),g===t&&(d=v))}let m=f.length>0?Promise.all(f).then(()=>{}):void 0;return m?.catch(()=>{}),d?.catch(()=>{}),{lazyRoutePromise:m,lazyHandlerPromise:d}}async function rw(e){let t=e.matches.filter(o=>o.shouldLoad),r={};return(await Promise.all(t.map(o=>o.resolve()))).forEach((o,c)=>{r[t[c].route.id]=o}),r}async function ID(e){return e.matches.some(t=>t.route.middleware)?eT(e,()=>rw(e)):rw(e)}function eT(e,t){return BD(e,t,a=>{if(tN(a))throw a;return a},ZD,r);function r(a,o,c){if(c)return Promise.resolve(Object.assign(c.value,{[o]:{type:"error",result:a}}));{let{matches:u}=e,f=Math.min(Math.max(u.findIndex(m=>m.route.id===o),0),Math.max(u.findIndex(m=>m.shouldCallHandler()),0)),d=ss(u,u[f].route.id).route.id;return Promise.resolve({[d]:{type:"error",result:a}})}}}async function BD(e,t,r,a,o){let{matches:c,...u}=e,f=c.flatMap(m=>m.route.middleware?m.route.middleware.map(g=>[m.route.id,g]):[]);return await tT(u,f,t,r,a,o)}async function tT(e,t,r,a,o,c,u=0){let{request:f}=e;if(f.signal.aborted)throw f.signal.reason??new Error(`Request aborted: ${f.method} ${f.url}`);let d=t[u];if(!d)return await r();let[m,g]=d,v,S=async()=>{if(v)throw new Error("You may only call `next()` once per middleware");try{return v={value:await tT(e,t,r,a,o,c,u+1)},v.value}catch(x){return v={value:await c(x,m,v)},v.value}};try{let x=await g(e,S),E=x!=null?a(x):void 0;return o(E)?E:v?E??v.value:(v={value:await S()},v.value)}catch(x){return await c(x,m,v)}}function nT(e,t,r,a,o){let c=JC({key:"middleware",route:a.route,manifest:t,mapRouteProperties:e}),u=UD(a.route,li(r.method)?"action":"loader",t,e,o);return{middleware:c,route:u.lazyRoutePromise,handler:u.lazyHandlerPromise}}function u0(e,t,r,a,o,c,u,f,d,m=null,g){let v=!1,S=nT(e,t,r,c,u);return{...c,_lazyPromises:S,shouldLoad:d,shouldRevalidateArgs:m,shouldCallHandler(x){return v=!0,m?typeof g=="boolean"?Nc(c,{...m,defaultShouldRevalidate:g}):typeof x=="boolean"?Nc(c,{...m,defaultShouldRevalidate:x}):Nc(c,m):d},resolve(x){let{lazy:E,loader:w,middleware:R}=c.route,T=v||d||x&&!li(r.method)&&(E||w),O=R&&R.length>0&&!w&&!E;return T&&(li(r.method)||!O)?FD({request:r,path:a,pattern:o,match:c,lazyHandlerPromise:S?.handler,lazyRoutePromise:S?.route,handlerOverride:x,scopedContext:f}):Promise.resolve({type:"data",result:void 0})}}}function Zo(e,t,r,a,o,c,u,f,d=null){return o.map(m=>m.route.id!==c.route.id?{...m,shouldLoad:!1,shouldRevalidateArgs:d,shouldCallHandler:()=>!1,_lazyPromises:nT(e,t,r,m,u),resolve:()=>Promise.resolve({type:"data",result:void 0})}:u0(e,t,r,a,pu(o),m,u,f,!0,d))}async function HD(e,t,r,a,o,c,u){a.some(g=>g._lazyPromises?.middleware)&&await Promise.all(a.map(g=>g._lazyPromises?.middleware));let f={request:t,url:iT(t,r),pattern:pu(a),params:a[0].params,context:c,matches:a},m=await e({...f,fetcherKey:o,runClientMiddleware:g=>{let v=f;return eT(v,()=>g({...v,fetcherKey:o,runClientMiddleware:()=>{throw new Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}}))}});try{await Promise.all(a.flatMap(g=>[g._lazyPromises?.handler,g._lazyPromises?.route]))}catch{}return m}async function FD({request:e,path:t,pattern:r,match:a,lazyHandlerPromise:o,lazyRoutePromise:c,handlerOverride:u,scopedContext:f}){let d,m,g=li(e.method),v=g?"action":"loader",S=x=>{let E,w=new Promise((O,k)=>E=k);m=()=>E(),e.signal.addEventListener("abort",m);let R=O=>typeof x!="function"?Promise.reject(new Error(`You cannot call the handler for a route which defines a boolean "${v}" [routeId: ${a.route.id}]`)):x({request:e,url:iT(e,t),pattern:r,params:a.params,context:f},...O!==void 0?[O]:[]),T=(async()=>{try{return{type:"data",result:await(u?u(k=>R(k)):R())}}catch(O){return{type:"error",result:O}}})();return Promise.race([T,w])};try{let x=g?a.route.action:a.route.loader;if(o||c)if(x){let E,[w]=await Promise.all([S(x).catch(R=>{E=R}),o,c]);if(E!==void 0)throw E;d=w}else{await o;let E=g?a.route.action:a.route.loader;if(E)[d]=await Promise.all([S(E),c]);else if(v==="action"){let w=new URL(e.url),R=w.pathname+w.search;throw ur(405,{method:e.method,pathname:R,routeId:a.route.id})}else return{type:"data",result:void 0}}else if(x)d=await S(x);else{let E=new URL(e.url),w=E.pathname+E.search;throw ur(404,{pathname:w})}}catch(x){return{type:"error",result:x}}finally{m&&e.signal.removeEventListener("abort",m)}return d}async function YD(e){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?e.body==null?null:e.json():e.text()}async function qD(e){let{result:t,type:r}=e;if(My(t)){let a;try{a=await YD(t)}catch(o){return{type:"error",error:o}}return r==="error"?{type:"error",error:new mu(t.status,t.statusText,a),statusCode:t.status,headers:t.headers}:{type:"data",data:a,statusCode:t.status,headers:t.headers}}return r==="error"?uw(t)?t.data instanceof Error?{type:"error",error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:WD(t),statusCode:Qc(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:t,statusCode:Qc(t)?t.status:void 0}:uw(t)?{type:"data",data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"data",data:t}}function GD(e,t,r,a,o){let c=e.headers.get("Location");if(gt(c,"Redirects returned/thrown from loaders/actions must have a Location header"),!Ry(c)){let u=a.slice(0,a.findIndex(f=>f.route.id===r)+1);c=c0(new URL(t.url),u,o,c),e.headers.set("Location",c)}return e}var KD=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];function f0(e){try{return KD.includes(new URL(e).protocol)}catch{return!1}}function aw(e,t,r,a){if(Ry(e)){let o=e,c=rh.test(o)?new URL(PC(o,t.protocol)):new URL(o);if(f0(c.toString()))throw new Error("Invalid redirect location");let u=gr(c.pathname,r)!=null;if(c.origin===t.origin&&u)return Cy(c.pathname)+c.search+c.hash}try{let o=a.createURL(e);if(f0(o.toString()))throw new Error("Invalid redirect location")}catch{}return e}function Bo(e,t,r,a){let o=e.createURL(rT(t)).toString(),c={signal:r};if(a&&li(a.formMethod)){let{formMethod:u,formEncType:f}=a;c.method=u.toUpperCase(),f==="application/json"?(c.headers=new Headers({"Content-Type":f}),c.body=JSON.stringify(a.json)):f==="text/plain"?c.body=a.text:f==="application/x-www-form-urlencoded"&&a.formData?c.body=d0(a.formData):c.body=a.formData}return new Request(o,c)}function iT(e,t){let r=new URL(e.url),a=typeof t=="string"?Zr(t):t;if(r.pathname=a.pathname||"/",a.search){let o=new URLSearchParams(a.search),c=o.getAll("index");o.delete("index");for(let u of c.filter(Boolean))o.append("index",u);r.search=o.size?`?${o.toString()}`:""}else r.search="";return r.hash=a.hash||"",r}function d0(e){let t=new URLSearchParams;for(let[r,a]of e.entries())t.append(r,typeof a=="string"?a:a.name);return t}function sw(e){let t=new FormData;for(let[r,a]of e.entries())t.append(r,a);return t}function XD(e,t,r,a=!1,o=!1){let c={},u=null,f,d=!1,m={},g=r&&qi(r[1])?r[1].error:void 0;return e.forEach(v=>{if(!(v.route.id in t))return;let S=v.route.id,x=t[S];if(gt(!Ks(x),"Cannot handle redirect results in processLoaderData"),qi(x)){let E=x.error;if(g!==void 0&&(E=g,g=void 0),u=u||{},o)u[S]=E;else{let w=ss(e,S);u[w.route.id]==null&&(u[w.route.id]=E)}a||(c[S]=WC),d||(d=!0,f=Qc(x.error)?x.error.status:500),x.headers&&(m[S]=x.headers)}else c[S]=x.data,x.statusCode&&x.statusCode!==200&&!d&&(f=x.statusCode),x.headers&&(m[S]=x.headers)}),g!==void 0&&r&&(u={[r[0]]:g},r[2]&&(c[r[2]]=void 0)),{loaderData:c,errors:u,statusCode:f||200,loaderHeaders:m}}function ow(e,t,r,a,o,c,u){let{loaderData:f,errors:d}=XD(t,r,a);return o.filter(m=>!m.matches||m.matches.some(g=>g.shouldLoad)).forEach(m=>{let{key:g,match:v,controller:S}=m;if(S&&S.signal.aborted)return;let x=c[g];if(gt(x,"Did not find corresponding fetcher result"),qi(x)){let E=ss(e.matches,v?.route.id);d&&d[E.route.id]||(d={...d,[E.route.id]:x.error}),u.delete(g)}else if(Ks(x))gt(!1,"Unhandled fetcher revalidation redirect");else{let E=Yr(x.data);u.set(g,E)}}),{loaderData:f,errors:d}}function lw(e,t,r,a){let o=Object.entries(t).filter(([,c])=>c!==WC).reduce((c,[u,f])=>(c[u]=f,c),{});for(let c of r){let u=c.route.id;if(!t.hasOwnProperty(u)&&e.hasOwnProperty(u)&&c.route.loader&&(o[u]=e[u]),a&&a.hasOwnProperty(u))break}return o}function cw(e){return e?qi(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function ss(e,t){return(t?e.slice(0,e.findIndex(a=>a.route.id===t)+1):[...e]).reverse().find(a=>a.route.hasErrorBoundary===!0)||e[0]}function Lf(e){let t=e.length===1?e[0]:e.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function ur(e,{pathname:t,routeId:r,method:a,type:o,message:c}={}){let u="Unknown Server Error",f="Unknown @remix-run/router error";return e===400?(u="Bad Request",a&&t&&r?f=`You made a ${a} request to "${t}" but did not provide a \`loader\` for route "${r}", so there is no way to handle the request.`:o==="invalid-body"&&(f="Unable to encode submission body")):e===403?(u="Forbidden",f=`Route "${r}" does not match URL "${t}"`):e===404?(u="Not Found",f=`No route matches URL "${t}"`):e===405&&(u="Method Not Allowed",a&&t&&r?f=`You made a ${a.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${r}", so there is no way to handle the request.`:a&&(f=`Invalid request method "${a.toUpperCase()}"`)),new mu(e||500,u,new Error(f),!0)}function kf(e){let t=Object.entries(e);for(let r=t.length-1;r>=0;r--){let[a,o]=t[r];if(Ks(o))return{key:a,result:o}}}function rT(e){let t=typeof e=="string"?Zr(e):e;return xi({...t,hash:""})}function $D(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function WD(e){return new mu(e.init?.status??500,e.init?.statusText??"Internal Server Error",e.data)}function ZD(e){return e!=null&&typeof e=="object"&&Object.entries(e).every(([t,r])=>typeof t=="string"&&QD(r))}function QD(e){return e!=null&&typeof e=="object"&&"type"in e&&"result"in e&&(e.type==="data"||e.type==="error")}function JD(e){return My(e.result)&&XC.has(e.result.status)}function qi(e){return e.type==="error"}function Ks(e){return(e&&e.type)==="redirect"}function uw(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function My(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function eN(e){return XC.has(e)}function tN(e){return My(e)&&eN(e.status)&&e.headers.has("Location")}function nN(e){return OD.has(e.toUpperCase())}function li(e){return MD.has(e.toUpperCase())}function jy(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function fd(e,t){let r=typeof t=="string"?Zr(t).search:t.search;if(e[e.length-1].route.index&&jy(r||""))return e[e.length-1];let a=FC(e);return a[a.length-1]}function fw(e){let{formMethod:t,formAction:r,formEncType:a,text:o,formData:c,json:u}=e;if(!(!t||!r||!a)){if(o!=null)return{formMethod:t,formAction:r,formEncType:a,formData:void 0,json:void 0,text:o};if(c!=null)return{formMethod:t,formAction:r,formEncType:a,formData:c,json:void 0,text:void 0};if(u!==void 0)return{formMethod:t,formAction:r,formEncType:a,formData:void 0,json:u,text:void 0}}}function og(e,t,r,a){return a?{state:"loading",location:e,matches:t,historyAction:r,formMethod:a.formMethod,formAction:a.formAction,formEncType:a.formEncType,formData:a.formData,json:a.json,text:a.text}:{state:"loading",location:e,matches:t,historyAction:r,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function iN(e,t,r,a){return{state:"submitting",location:e,matches:t,historyAction:r,formMethod:a.formMethod,formAction:a.formAction,formEncType:a.formEncType,formData:a.formData,json:a.json,text:a.text}}function hc(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function rN(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function Yr(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function aN(e,t){try{let r=e.sessionStorage.getItem($C);if(r){let a=JSON.parse(r);for(let[o,c]of Object.entries(a||{}))c&&Array.isArray(c)&&t.set(o,new Set(c||[]))}}catch{}}function sN(e,t){if(t.size>0){let r={};for(let[a,o]of t)r[a]=[...o];try{e.sessionStorage.setItem($C,JSON.stringify(r))}catch(a){Sn(!1,`Failed to save applied view transitions in sessionStorage (${a}).`)}}}function dw(){let e,t,r=new Promise((a,o)=>{e=async c=>{a(c);try{await r}catch{}},t=async c=>{o(c);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}var ro=b.createContext(null);ro.displayName="DataRouter";var gu=b.createContext(null);gu.displayName="DataRouterState";var aT=b.createContext(!1);function sT(){return b.useContext(aT)}var Oy=b.createContext({isTransitioning:!1});Oy.displayName="ViewTransition";var oT=b.createContext(new Map);oT.displayName="Fetchers";var oN=b.createContext(null);oN.displayName="Await";var Wi=b.createContext(null);Wi.displayName="Navigation";var sh=b.createContext(null);sh.displayName="Location";var vr=b.createContext({outlet:null,matches:[],isDataRoute:!1});vr.displayName="Route";var Dy=b.createContext(null);Dy.displayName="RouteError";var lT="REACT_ROUTER_ERROR",lN="REDIRECT",cN="ROUTE_ERROR_RESPONSE";function uN(e){if(e.startsWith(`${lT}:${lN}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function fN(e){if(e.startsWith(`${lT}:${cN}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new mu(t.status,t.statusText,t.data)}catch{}}function dN(e,{relative:t}={}){gt(vl(),"useHref() may be used only in the context of a component.");let{basename:r,navigator:a}=b.useContext(Wi),{hash:o,pathname:c,search:u}=yu(e,{relative:t}),f=c;return r!=="/"&&(f=c==="/"?r:mr([r,c])),a.createHref({pathname:f,search:u,hash:o})}function vl(){return b.useContext(sh)!=null}function Zi(){return gt(vl(),"useLocation() may be used only in the context of a component."),b.useContext(sh).location}var cT="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function uT(e){b.useContext(Wi).static||b.useLayoutEffect(e)}function ao(){let{isDataRoute:e}=b.useContext(vr);return e?MN():hN()}function hN(){gt(vl(),"useNavigate() may be used only in the context of a component.");let e=b.useContext(ro),{basename:t,navigator:r}=b.useContext(Wi),{matches:a}=b.useContext(vr),{pathname:o}=Zi(),c=JSON.stringify(ah(a)),u=b.useRef(!1);return uT(()=>{u.current=!0}),b.useCallback((d,m={})=>{if(Sn(u.current,cT),!u.current)return;if(typeof d=="number"){r.go(d);return}let g=hu(d,JSON.parse(c),o,m.relative==="path");e==null&&t!=="/"&&(g.pathname=g.pathname==="/"?t:mr([t,g.pathname])),Wo(typeof d=="string"?d:xi(d),r.createHref(g),Ty(r),"reject"),(m.replace?r.replace:r.push)(g,m.state,m)},[t,r,c,o,e])}var mN=b.createContext(null);function pN(e){let t=b.useContext(vr).outlet;return b.useMemo(()=>t&&b.createElement(mN.Provider,{value:e},t),[t,e])}function gN(){let{matches:e}=b.useContext(vr);return e[e.length-1]?.params??{}}function yu(e,{relative:t}={}){let{matches:r}=b.useContext(vr),{pathname:a}=Zi(),o=JSON.stringify(ah(r));return b.useMemo(()=>hu(e,JSON.parse(o),a,t==="path"),[e,o,a,t])}function yN(e,t,r){gt(vl(),"useRoutes() may be used only in the context of a component.");let{navigator:a}=b.useContext(Wi),{matches:o}=b.useContext(vr),c=o[o.length-1],u=c?c.params:{},f=c?c.pathname:"/",d=c?c.pathnameBase:"/",m=c&&c.route;{let R=m&&m.path||"";dT(f,!m||R.endsWith("*")||R.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${f}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. + +Please change the parent to .`)}let g=Zi(),v;v=g;let S=v.pathname||"/",x=S;if(d!=="/"){let R=d.replace(/^\//,"").split("/");x="/"+S.replace(/^\//,"").split("/").slice(R.length).join("/")}let E=r&&r.state.matches.length?r.state.matches.map(R=>Object.assign(R,{route:r.manifest[R.route.id]||R.route})):VC(e,{pathname:x});return Sn(m||E!=null,`No routes matched location "${v.pathname}${v.search}${v.hash}" `),Sn(E==null||E[E.length-1].route.element!==void 0||E[E.length-1].route.Component!==void 0||E[E.length-1].route.lazy!==void 0,`Matched leaf route at location "${v.pathname}${v.search}${v.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`),wN(E&&E.map(R=>Object.assign({},R,{params:Object.assign({},u,R.params),pathname:mr([d,a.encodeLocation?a.encodeLocation(R.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:R.pathname]),pathnameBase:R.pathnameBase==="/"?d:mr([d,a.encodeLocation?a.encodeLocation(R.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:R.pathnameBase])})),o,r)}function vN(){let e=AN(),t=Qc(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,a="rgba(200,200,200, 0.5)",o={padding:"0.5rem",backgroundColor:a},c={padding:"2px 4px",backgroundColor:a},u=null;return console.error("Error handled by React Router default ErrorBoundary:",e),u=b.createElement(b.Fragment,null,b.createElement("p",null,"💿 Hey developer 👋"),b.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",b.createElement("code",{style:c},"ErrorBoundary")," or"," ",b.createElement("code",{style:c},"errorElement")," prop on your route.")),b.createElement(b.Fragment,null,b.createElement("h2",null,"Unexpected Application Error!"),b.createElement("h3",{style:{fontStyle:"italic"}},t),r?b.createElement("pre",{style:o},r):null,u)}var bN=b.createElement(vN,null),fT=class extends b.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){const r=fN(e.digest);r&&(e=r)}let t=e!==void 0?b.createElement(vr.Provider,{value:this.props.routeContext},b.createElement(Dy.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?b.createElement(xN,{error:e},t):t}};fT.contextType=aT;var lg=new WeakMap;function xN({children:e,error:t}){let{basename:r,navigator:a}=b.useContext(Wi);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let o=uN(t.digest);if(o){let c=lg.get(t);if(c)throw c;let u=qC(o.location,r),f=u.absoluteURL||u.to;if(Wo(o.location,f,Ty(a),"allow-explicit"),f0(f))throw new Error("Invalid redirect location");if(YC&&!lg.get(t))if(u.isExternal||o.reloadDocument)window.location.href=f;else{const d=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(u.to,{replace:o.replace}));throw lg.set(t,d),d}return b.createElement("meta",{httpEquiv:"refresh",content:`0;url=${f}`})}}return e}function SN({routeContext:e,match:t,children:r}){let a=b.useContext(ro);return a&&a.static&&a.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=t.route.id),b.createElement(vr.Provider,{value:e},r)}function wN(e,t=[],r){let a=r?.state;if(e==null){if(!a)return null;if(a.errors)e=a.matches;else if(t.length===0&&!a.initialized&&a.matches.length>0)e=a.matches;else return null}let o=e,c=a?.errors;if(c!=null){let g=o.findIndex(v=>v.route.id&&c?.[v.route.id]!==void 0);gt(g>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(c).join(",")}`),o=o.slice(0,Math.min(o.length,g+1))}let u=!1,f=-1;if(r&&a){u=a.renderFallback;for(let g=0;g=0?o=o.slice(0,f+1):o=[o[0]];break}}}}let d=r?.onError,m=a&&d?(g,v)=>{d(g,{location:a.location,params:a.matches?.[0]?.params??{},pattern:pu(a.matches),errorInfo:v})}:void 0;return o.reduceRight((g,v,S)=>{let x,E=!1,w=null,R=null;a&&(x=c&&v.route.id?c[v.route.id]:void 0,w=v.route.errorElement||bN,u&&(f<0&&S===0?(dT("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),E=!0,R=null):f===S&&(E=!0,R=v.route.hydrateFallbackElement||null)));let T=t.concat(o.slice(0,S+1)),O=()=>{let k;return x?k=w:E?k=R:v.route.Component?k=b.createElement(v.route.Component,null):v.route.element?k=v.route.element:k=g,b.createElement(SN,{match:v,routeContext:{outlet:g,matches:T,isDataRoute:a!=null},children:k})};return a&&(v.route.ErrorBoundary||v.route.errorElement||S===0)?b.createElement(fT,{location:a.location,revalidation:a.revalidation,component:w,error:x,children:O(),routeContext:{outlet:null,matches:T,isDataRoute:!0},onError:m}):O()},null)}function Ny(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function EN(e){let t=b.useContext(ro);return gt(t,Ny(e)),t}function RN(e){let t=b.useContext(gu);return gt(t,Ny(e)),t}function CN(e){let t=b.useContext(vr);return gt(t,Ny(e)),t}function Ly(e){let t=CN(e),r=t.matches[t.matches.length-1];return gt(r.route.id,`${e} can only be used on routes that contain a unique "id"`),r.route.id}function TN(){return Ly("useRouteId")}function AN(){let e=b.useContext(Dy),t=RN("useRouteError"),r=Ly("useRouteError");return e!==void 0?e:t.errors?.[r]}function MN(){let{router:e}=EN("useNavigate"),t=Ly("useNavigate"),r=b.useRef(!1);return uT(()=>{r.current=!0}),b.useCallback(async(o,c={})=>{Sn(r.current,cT),r.current&&(typeof o=="number"?await e.navigate(o):await e.navigate(o,{fromRouteId:t,...c}))},[e,t])}var hw={};function dT(e,t,r){!t&&!hw[e]&&(hw[e]=!0,Sn(!1,r))}var mw={};function pw(e,t){!e&&!mw[t]&&(mw[t]=!0,console.warn(t))}var jN="useOptimistic",gw=XE[jN],ON=()=>{};function DN(e){return gw?gw(e):[e,ON]}function NN(e){let t={hasErrorBoundary:e.hasErrorBoundary||e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&(e.element&&Sn(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:b.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&Sn(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:b.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&Sn(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:b.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var LN=["HydrateFallback","hydrateFallbackElement"],kN=class{constructor(){this.status="pending",this.promise=new Promise((e,t)=>{this.resolve=r=>{this.status==="pending"&&(this.status="resolved",e(r))},this.reject=r=>{this.status==="pending"&&(this.status="rejected",t(r))}})}};function zN({router:e,flushSync:t,onError:r,useTransitions:a}){a=sT()||a;let[c,u]=b.useState(e.state),[f,d]=DN(c),[m,g]=b.useState(),[v,S]=b.useState({isTransitioning:!1}),[x,E]=b.useState(),[w,R]=b.useState(),[T,O]=b.useState(),k=b.useRef(new Map),j=b.useCallback((A,{deletedFetchers:F,newErrors:H,flushSync:X,viewTransitionOpts:$})=>{H&&r&&Object.values(H).forEach(ee=>r(ee,{location:A.location,params:A.matches[0]?.params??{},pattern:pu(A.matches)})),A.fetchers.forEach((ee,ie)=>{ee.data!==void 0&&k.current.set(ie,ee.data)}),F.forEach(ee=>k.current.delete(ee)),pw(X===!1||t!=null,'You provided the `flushSync` option to a router update, but you are not using the `` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let W=e.window!=null&&e.window.document!=null&&typeof e.window.document.startViewTransition=="function";if(pw($==null||W,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!$||!W){t&&X?t(()=>u(A)):a===!1?u(A):b.startTransition(()=>{a===!0&&d(ee=>yw(ee,A)),u(A)});return}if(t&&X){t(()=>{w&&(x?.resolve(),w.skipTransition()),S({isTransitioning:!0,flushSync:!0,currentLocation:$.currentLocation,nextLocation:$.nextLocation})});let ee=e.window.document.startViewTransition(()=>{t(()=>u(A))});ee.finished.finally(()=>{t(()=>{E(void 0),R(void 0),g(void 0),S({isTransitioning:!1})})}),t(()=>R(ee));return}w?(x?.resolve(),w.skipTransition(),O({state:A,currentLocation:$.currentLocation,nextLocation:$.nextLocation})):(g(A),S({isTransitioning:!0,flushSync:!1,currentLocation:$.currentLocation,nextLocation:$.nextLocation}))},[e.window,t,w,x,a,d,r]);b.useLayoutEffect(()=>e.subscribe(j),[e,j]),b.useEffect(()=>{v.isTransitioning&&!v.flushSync&&E(new kN)},[v]),b.useEffect(()=>{if(x&&m&&e.window){let A=m,F=x.promise,H=e.window.document.startViewTransition(async()=>{a===!1?u(A):b.startTransition(()=>{a===!0&&d(X=>yw(X,A)),u(A)}),await F});H.finished.finally(()=>{E(void 0),R(void 0),g(void 0),S({isTransitioning:!1})}),R(H)}},[m,x,e.window,a,d]),b.useEffect(()=>{x&&m&&f.location.key===m.location.key&&x.resolve()},[x,w,f.location,m]),b.useEffect(()=>{!v.isTransitioning&&T&&(g(T.state),S({isTransitioning:!0,flushSync:!1,currentLocation:T.currentLocation,nextLocation:T.nextLocation}),O(void 0))},[v.isTransitioning,T]);let L=b.useMemo(()=>({createHref:e.createHref,createURL:e.createURL,encodeLocation:e.encodeLocation,go:A=>e.navigate(A),push:(A,F,H)=>e.navigate(A,{state:F,preventScrollReset:H?.preventScrollReset}),replace:(A,F,H)=>e.navigate(A,{replace:!0,state:F,preventScrollReset:H?.preventScrollReset})}),[e]),P=e.basename||"/",D=b.useMemo(()=>({router:e,navigator:L,static:!1,basename:P,onError:r}),[e,L,P,r]);return b.createElement(b.Fragment,null,b.createElement(ro.Provider,{value:D},b.createElement(gu.Provider,{value:f},b.createElement(oT.Provider,{value:k.current},b.createElement(Oy.Provider,{value:v},b.createElement(VN,{basename:P,location:f.location,navigationType:f.historyAction,navigator:L,useTransitions:a},b.createElement(PN,{routes:e.routes,manifest:e.manifest,future:e.future,state:f,isStatic:!1,onError:r})))))),null)}function yw(e,t){return{...e,navigation:t.navigation.state!=="idle"?t.navigation:e.navigation,revalidation:t.revalidation!=="idle"?t.revalidation:e.revalidation,actionData:t.navigation.state!=="submitting"?t.actionData:e.actionData,fetchers:t.fetchers}}var PN=b.memo(_N);function _N({routes:e,manifest:t,future:r,state:a,isStatic:o,onError:c}){return yN(e,void 0,{manifest:t,state:a,isStatic:o,onError:c})}function Ca({to:e,replace:t,state:r,relative:a}){gt(vl()," may be used only in the context of a component.");let{static:o,navigator:c}=b.useContext(Wi);Sn(!o," must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.");let{matches:u}=b.useContext(vr),{pathname:f}=Zi(),d=ao(),m=hu(e,ah(u),f,a==="path");Wo(typeof e=="string"?e:xi(e),c.createHref(m),Ty(c),"reject");let g=JSON.stringify(m);return b.useEffect(()=>{d(JSON.parse(g),{replace:t,state:r,relative:a})},[d,g,a,t,r]),null}function hT(e){return pN(e.context)}function VN({basename:e="/",children:t=null,location:r,navigationType:a="POP",navigator:o,static:c=!1,useTransitions:u}){gt(!vl(),"You cannot render a inside another . You should never have more than one in your app.");let f=e.replace(/^\/*/,"/"),d=b.useMemo(()=>({basename:f,navigator:o,static:c,useTransitions:u,future:{}}),[f,o,c,u]);typeof r=="string"&&(r=Zr(r));let{pathname:m="/",search:g="",hash:v="",state:S=null,key:x="default",mask:E}=r,w=b.useMemo(()=>{let R=gr(m,f);return R==null?null:{location:{pathname:R,search:g,hash:v,state:S,key:x,mask:E},navigationType:a}},[f,m,g,v,S,x,a,E]);return Sn(w!=null,` is not able to match the URL "${m}${g}${v}" because it does not start with the basename, so the won't render anything.`),w==null?null:b.createElement(Wi.Provider,{value:d},b.createElement(sh.Provider,{children:t,value:w}))}var dd="get",hd="application/x-www-form-urlencoded";function oh(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function UN(e){return oh(e)&&e.tagName.toLowerCase()==="button"}function IN(e){return oh(e)&&e.tagName.toLowerCase()==="form"}function BN(e){return oh(e)&&e.tagName.toLowerCase()==="input"}function HN(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function FN(e,t){return e.button===0&&(!t||t==="_self")&&!HN(e)}function h0(e=""){return new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let a=e[r];return t.concat(Array.isArray(a)?a.map(o=>[r,o]):[[r,a]])},[]))}function YN(e,t){let r=h0(e);return t&&t.forEach((a,o)=>{r.has(o)||t.getAll(o).forEach(c=>{r.append(o,c)})}),r}var zf=null;function qN(){if(zf===null)try{new FormData(document.createElement("form"),0),zf=!1}catch{zf=!0}return zf}var GN=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function cg(e){return e!=null&&!GN.has(e)?(Sn(!1,`"${e}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${hd}"`),null):e}function KN(e,t){let r,a,o,c,u;if(IN(e)){let f=e.getAttribute("action");a=f?gr(f,t):null,r=e.getAttribute("method")||dd,o=cg(e.getAttribute("enctype"))||hd,c=new FormData(e)}else if(UN(e)||BN(e)&&(e.type==="submit"||e.type==="image")){let f=e.form;if(f==null)throw new Error('Cannot submit a RoadmapPricingWaitlistView the Crate

When agents flood production, hold the line.

Floodwall meters agent-generated infrastructure changes, verifies each intent at a policy gate, and records every admit, defer, and reject in a tamper-evident ledger.

The processing line

Every intent gets a verdict. Production only sees the admitted ones.

On hold
0Deferred intents wait here
shipped
0.1
dependencies
0
tests
267

  1. Intents
  2. Admission
  3. Scheduler
  4. Gate
  5. Ledger
  6. Production

Hold: deferred intents wait for human release or expiry. The ledger records every verdict and outcome. Green boxes show checked, recorded changes in production.

The model

Agents submit intents. Floodwall governs.

Admission

Per-agent token buckets and a bounded priority queue keep one loop from taking the whole lane.

Scheduler

Wide changes run alone, narrow ones run in parallel per resource, and a waiting change is never overtaken by lower-priority work.

Gate

A deny-overrides policy stack and a conflict check rule on every intent. Deferred changes wait on hold for a human.

Ledger

Every verdict is appended to a hash chain so retroactive edits break verification.

Policy gate

Many policies. One verdict.

Reference policies cover global destructive actions, blast-radius urgency, and resource allowlists. The policy trait stays small so teams can add rules that match their own release discipline. A deferred change is held, not dropped, until a human releases or expires it.

Reference policiesHarshest verdict wins
  • no-global-destroy

    Destructive global changes need human sign-off.

    reject
  • blast-needs-priority

    The wider the blast radius, the more urgent a change must be.

    reject
  • resource-allowlist

    Resources off the list wait on hold for a human.

    defer
Add your ownimpl Policy for YourRule

Tamper-evident ledger

Chained records. Independent proof.

Every decision, release, expiry, and outcome is appended with its evidence: the action, the reason, and each policy’s verdict. A retroactive edit anywhere in history breaks the chain.

  • SHA-256 hash chain: each record folds in the previous digest.
  • With a keyring, Ed25519 signatures prove which agent asked for what.
  • verify() replays the chain; verify_signatures() checks every signer.
Recent recordsValid chain
  1. admitreconciler-7scale web
  2. deferdeployerbilling off allowlist
  3. rejectchaos-loopglobal destroy
  4. admitautoscalercache replicas
  5. rejectcost-botbulk region drain
  6. admitmigratorapi schema v12
Head digest189f5d55…0f84c3ca

Roadmap

Ledger on disk. Replay comes next.

  1. 0.1

    The wall

    Intent model, admission control, policy gate, ledger, and demo.

  2. 0.2

    Scheduler

    Wide changes serialize, narrow work runs in parallel per resource, and contradictions wait for a human.

  3. 0.3

    Trustworthy ledger

    SHA-256 chain, signed records, and Merkle checkpoints.

  4. 0.4

    Replay

    Durable append-only state that rebuilds the plane after restart.

Early access

Gate your agents. Join the waitlist.

Sign up with your email, and we will let you in as early access opens.

Join the waitlist

Already have an account? Sign in.

+

When agents flood production, hold the line.

Floodwall meters agent-generated infrastructure changes, verifies each intent at a policy gate, and records every admit, defer, and reject in a tamper-evident ledger.

The processing line

Every intent gets a verdict. Production only sees the admitted ones.

On hold
0Deferred intents wait here
shipped
0.1
dependencies
0
tests
267

  1. Intents
  2. Admission
  3. Scheduler
  4. Gate
  5. Ledger
  6. Production

Hold: deferred intents wait for human release or expiry. The ledger records every verdict and outcome. Green boxes show checked, recorded changes in production.

The model

Agents submit intents. Floodwall governs.

Admission

Per-agent token buckets and a bounded priority queue keep one loop from taking the whole lane.

Scheduler

Wide changes run alone, narrow ones run in parallel per resource, and a waiting change is never overtaken by lower-priority work.

Gate

A deny-overrides policy stack and a conflict check rule on every intent. Deferred changes wait on hold for a human.

Ledger

Every verdict is appended to a hash chain so retroactive edits break verification.

Policy gate

Many policies. One verdict.

Reference policies cover global destructive actions, blast-radius urgency, and resource allowlists. The policy trait stays small so teams can add rules that match their own release discipline. A deferred change is held, not dropped, until a human releases or expires it.

Reference policiesHarshest verdict wins
  • no-global-destroy

    Destructive global changes need human sign-off.

    reject
  • blast-needs-priority

    The wider the blast radius, the more urgent a change must be.

    reject
  • resource-allowlist

    Resources off the list wait on hold for a human.

    defer
Add your ownimpl Policy for YourRule

Tamper-evident ledger

Chained records. Independent proof.

Every decision, release, expiry, and outcome is appended with its evidence: the action, the reason, and each policy’s verdict. A retroactive edit anywhere in history breaks the chain.

  • SHA-256 hash chain: each record folds in the previous digest.
  • With a keyring, Ed25519 signatures prove which agent asked for what.
  • verify() replays the chain; verify_signatures() checks every signer.
Recent recordsValid chain
  1. admitreconciler-7scale web
  2. deferdeployerbilling off allowlist
  3. rejectchaos-loopglobal destroy
  4. admitautoscalercache replicas
  5. rejectcost-botbulk region drain
  6. admitmigratorapi schema v12
Head digest189f5d55…0f84c3ca

Roadmap

Ledger on disk. Replay comes next.

  1. 0.1

    The wall

    Intent model, admission control, policy gate, ledger, and demo.

  2. 0.2

    Scheduler

    Wide changes serialize, narrow work runs in parallel per resource, and contradictions wait for a human.

  3. 0.3

    Trustworthy ledger

    SHA-256 chain, signed records, and Merkle checkpoints.

  4. 0.4

    Replay

    Durable append-only state that rebuilds the plane after restart.

Early access

Gate your agents. Join the waitlist.

Sign up with your email, and we will let you in as early access opens.

Join the waitlist

Already have an account? Sign in.

diff --git a/site/src/components/shared/HeaderAccount.tsx b/site/src/components/shared/HeaderAccount.tsx new file mode 100644 index 0000000..47d1771 --- /dev/null +++ b/site/src/components/shared/HeaderAccount.tsx @@ -0,0 +1,118 @@ +import { useCallback, useEffect, useId, useRef, useState } from "react"; +import { AnimatePresence, motion } from "motion/react"; +import { ArrowDown01Icon } from "@hugeicons/core-free-icons"; +import { AUTH_COPY, AUTH_PATHS } from "../../constants/auth"; +import { CONSOLE_PATHS } from "../../constants/console"; +import { accountInitials } from "../../helpers/auth"; +import { useDismiss } from "../../hooks/useDismiss"; +import { useSession } from "../../hooks/useSession"; +import { panelMotion } from "../../lib/panel"; +import { Icon } from "./Icon"; + +const COPY = AUTH_COPY.header; + +/** + * The header's account slot, beside the GitHub button: Sign in for a visitor, or the signed-in + * account's initials and address, with a menu of Account, Console and Sign out. The landing page + * is prerendered with no session, so until the service answers the slot holds its width and shows + * nothing: someone signed in never sees Sign in flash by. If the service can't be asked, it offers + * Sign in. Plain links, not router ones: the landing page renders without the router. + */ +export function HeaderAccount() { + const { session, signOut } = useSession(); + const [open, setOpen] = useState(false); + const [leaving, setLeaving] = useState(false); + const [status, setStatus] = useState(""); + const slotRef = useRef(null); + const buttonRef = useRef(null); + const signInRef = useRef(null); + const panelId = useId(); + const close = useCallback(() => setOpen(false), []); + const onBlur = useDismiss(open, close, slotRef, buttonRef); + + // Signing out from the menu replaces it with Sign in; the keyboard focus goes there, not to the page. + const focusSignIn = useRef(false); + useEffect(() => { + if (session.status !== "signedOut" || !focusSignIn.current) return; + focusSignIn.current = false; + signInRef.current?.focus(); + }, [session.status]); + + async function onSignOut() { + if (leaving) return; + setLeaving(true); + setStatus(""); + focusSignIn.current = true; + try { + await signOut(); + setOpen(false); + } catch { + focusSignIn.current = false; + setStatus(AUTH_COPY.signOutFailed); + } finally { + setLeaving(false); + } + } + + if (session.status === "loading") return
; + if (session.status !== "signedIn") { + return ( + + ); + } + + const { user } = session; + return ( +
+ + + {open && ( + +

+ {COPY.signedInAs} {user.email} +

+
    +
  • + {COPY.account} +
  • +
  • + {/* A waiting account's console is the waitlist page, so the menu says so. */} + {user.waiting ? ( + {COPY.waitlist} + ) : ( + {COPY.console} + )} +
  • +
  • + {/* aria-disabled, not disabled: disabling the focused button would drop focus, and with + it the menu, before a failure could be shown in it. */} + +
  • +
+

+ {status} +

+
+ )} +
+
+ ); +} diff --git a/site/src/components/shared/SiteHeader.tsx b/site/src/components/shared/SiteHeader.tsx index 99a8e43..8b3de3f 100644 --- a/site/src/components/shared/SiteHeader.tsx +++ b/site/src/components/shared/SiteHeader.tsx @@ -1,4 +1,4 @@ -import { useCallback, useEffect, useId, useLayoutEffect, useRef, useState, type FocusEvent, type RefObject } from "react"; +import { useCallback, useId, useLayoutEffect, useRef, useState, type RefObject } from "react"; import { AnimatePresence, motion } from "motion/react"; import { ArrowDown01Icon, @@ -11,9 +11,11 @@ import { } from "@hugeicons/core-free-icons"; import { NAV_EXPLAINERS, NAV_LINKS, NAV_SECTION_IDS, REPO_URL } from "../../constants/links"; import { useActiveSection } from "../../hooks/useActiveSection"; +import { useDismiss } from "../../hooks/useDismiss"; import { useFluidHover, useRegisterFluidHoverItem } from "../../hooks/use-fluid-hover"; -import { spring } from "../../lib/springs"; +import { panelMotion } from "../../lib/panel"; import { FluidHoverHighlight } from "../fluid-hover-highlight"; +import { HeaderAccount } from "./HeaderAccount"; import { Icon } from "./Icon"; import { SiteBrandMark } from "./SiteBrandMark"; @@ -27,13 +29,6 @@ const EXPLAINER_ICONS = { ledger: Link04Icon, } as const; -/** - * The panel's entrance: it drops 4px into place and grows from 98% at its top edge. A spring, so a - * close that interrupts an open reverses from where it is; the close is the tier's quicker tween. - */ -const PANEL_SHOWN = { opacity: 1, y: 0, scale: 1 }; -const PANEL_HIDDEN = { opacity: 0, y: -4, scale: 0.98 }; - type RegisterItem = (index: number, element: HTMLElement | null) => void; /** A top-level item's hover box: the element the rubber-band highlight springs to. */ @@ -49,7 +44,8 @@ function NavItemBox({ index, registerItem, label }: { index: number; registerIte /** * The sticky header on the landing page and /pricing: the logo (which goes home), a "How it works" - * menu over the sections that explain the wall, then Roadmap, Pricing and Waitlist. One hover + * menu over the sections that explain the wall, then Roadmap, Pricing and Waitlist, and at the + * right the account (Sign in, or who is signed in: HeaderAccount) and the GitHub button. One hover * highlight glides between the top-level items, and another between the panel's sections. On the * landing page the current item follows the section in view; /pricing (`onLanding` false) is the * only other page with this header, so there Pricing is current and section links lead to "/#…". @@ -64,28 +60,9 @@ export function SiteHeader({ onLanding = true }: { onLanding?: boolean }) { const menuButtonRef = useRef(null); const menuId = useId(); - // An outside press or Escape closes the menu; Escape hands focus back to its button. - useEffect(() => { - if (!menuOpen) return; - const onPointerDown = (event: PointerEvent) => { - if (!menuRef.current?.contains(event.target as Node)) setMenuOpen(false); - }; - const onKeyDown = (event: KeyboardEvent) => { - if (event.key !== "Escape") return; - setMenuOpen(false); - menuButtonRef.current?.focus(); - }; - document.addEventListener("pointerdown", onPointerDown); - document.addEventListener("keydown", onKeyDown); - return () => { - document.removeEventListener("pointerdown", onPointerDown); - document.removeEventListener("keydown", onKeyDown); - }; - }, [menuOpen]); - // Tabbing out of the menu closes it too. - const onMenuBlur = (event: FocusEvent) => { - if (!event.currentTarget.contains(event.relatedTarget as Node | null)) setMenuOpen(false); - }; + // An outside press, Escape or tabbing out closes the menu; Escape hands focus back to its button. + const closeMenu = useCallback(() => setMenuOpen(false), []); + const onMenuBlur = useDismiss(menuOpen, closeMenu, menuRef, menuButtonRef); // The top-level strip: its items' hover boxes touch, so the highlight glides from one to the next. const linksRef = useRef(null); @@ -186,14 +163,7 @@ export function SiteHeader({ onLanding = true }: { onLanding?: boolean }) { {menuOpen && ( - + setMenuOpen(false)} /> )} @@ -215,11 +185,14 @@ export function SiteHeader({ onLanding = true }: { onLanding?: boolean }) { })}
- - - View the Crate - - + ); diff --git a/site/src/constants/auth.ts b/site/src/constants/auth.ts index 1660f75..a938368 100644 --- a/site/src/constants/auth.ts +++ b/site/src/constants/auth.ts @@ -84,6 +84,18 @@ export const AUTH_COPY = { checking: "Checking…", stillWaiting: "Still waiting for approval. We'll email you when it's done.", }, + /** The account slot in the header of the landing page and /pricing. */ + header: { + signIn: "Sign in", + /** The account button's name: it shows only the initials and, on wide screens, the address. */ + menu: (email: string) => `Your account, signed in as ${email}`, + signedInAs: "Signed in as", + account: "Account", + console: "Console", + waitlist: "Waitlist", + signOut: "Sign out", + signingOut: "Signing out…", + }, /** On a signed-in page, when the service couldn't say who is signed in. */ unavailable: { title: "We couldn't check your sign-in.", diff --git a/site/src/helpers/auth.ts b/site/src/helpers/auth.ts index a69b87f..93cb4dc 100644 --- a/site/src/helpers/auth.ts +++ b/site/src/helpers/auth.ts @@ -31,6 +31,11 @@ export function safeNext(page: keyof typeof DEFAULT_NEXT, next: string | null) { return allowed ? next! : DEFAULT_NEXT[page]; } +/** The letter on an account's avatar: its address's first letter or digit, capitalised. */ +export function accountInitials(user: AuthUser) { + return (user.email.match(/[a-z0-9]/i)?.[0] ?? "?").toUpperCase(); +} + /** The sign-in page, coming back to `next` afterwards. */ export function loginPath(next: string) { return `${AUTH_PATHS.login}?${new URLSearchParams({ [NEXT_PARAM]: next })}`; diff --git a/site/src/hooks/useDismiss.ts b/site/src/hooks/useDismiss.ts new file mode 100644 index 0000000..b138b30 --- /dev/null +++ b/site/src/hooks/useDismiss.ts @@ -0,0 +1,38 @@ +import { useCallback, useEffect, type FocusEvent, type RefObject } from "react"; + +/** + * Closes an open disclosure (a button and the panel it shows, both inside `ref`) when the reader + * presses outside it or presses Escape, which hands focus back to `button`. Returns the onBlur + * handler for `ref`'s element, so tabbing out of it closes it too. `close` should be stable. + */ +export function useDismiss( + open: boolean, + close: () => void, + ref: RefObject, + button: RefObject, +) { + useEffect(() => { + if (!open) return; + const onPointerDown = (event: PointerEvent) => { + if (!ref.current?.contains(event.target as Node)) close(); + }; + const onKeyDown = (event: KeyboardEvent) => { + if (event.key !== "Escape") return; + close(); + button.current?.focus(); + }; + document.addEventListener("pointerdown", onPointerDown); + document.addEventListener("keydown", onKeyDown); + return () => { + document.removeEventListener("pointerdown", onPointerDown); + document.removeEventListener("keydown", onKeyDown); + }; + }, [open, close, ref, button]); + + return useCallback( + (event: FocusEvent) => { + if (!event.currentTarget.contains(event.relatedTarget as Node | null)) close(); + }, + [close], + ); +} diff --git a/site/src/lib/panel.ts b/site/src/lib/panel.ts new file mode 100644 index 0000000..588e95b --- /dev/null +++ b/site/src/lib/panel.ts @@ -0,0 +1,15 @@ +import { spring } from "./springs"; + +/** + * A header panel's motion: it drops 4px into place and grows from 98% at its top edge. A spring, + * so a close that interrupts an open reverses from where it is; the close is the tier's quicker + * tween. Spread it onto a motion element inside AnimatePresence. + */ +const PANEL_HIDDEN = { opacity: 0, y: -4, scale: 0.98 }; + +export const panelMotion = { + initial: PANEL_HIDDEN, + animate: { opacity: 1, y: 0, scale: 1 }, + exit: { ...PANEL_HIDDEN, transition: spring.moderate.exit }, + transition: spring.moderate, +}; diff --git a/site/src/styles/landing/header.css b/site/src/styles/landing/header.css index 69725de..71bfe97 100644 --- a/site/src/styles/landing/header.css +++ b/site/src/styles/landing/header.css @@ -149,8 +149,136 @@ } .site-header .button { gap: 12px; } .site-header .button svg { width: 16px; height: 16px; } + +/* The right of the bar: the account slot, then the GitHub button. */ +.nav-actions { + display: flex; + align-items: stretch; + align-self: stretch; + gap: 8px; +} +.nav-actions > .button { align-self: center; } +/* The slot keeps one width whatever it holds (nothing while the session loads, Sign in, or the + account), so the links don't move when the service answers. */ +.nav-account { + --account-slot: 200px; + position: relative; + display: flex; + align-items: center; + justify-content: flex-end; + width: var(--account-slot); +} +.nav-sign-in, +.nav-account-button { + display: inline-flex; + align-items: center; + min-height: 44px; + padding: 0 12px; + color: var(--ink); + font-size: 15px; + font-weight: 500; +} +@media (hover: hover) and (pointer: fine) { + .nav-sign-in:hover { text-decoration: underline; text-underline-offset: 4px; } + .nav-account-button:hover .nav-account-name { color: var(--ink); } +} +.nav-account-button { + gap: 8px; + max-width: 100%; + border: 0; + background: none; + font-family: inherit; + cursor: pointer; +} +/* The initials on the ink square, the system's one emphasis. */ +.nav-avatar { + display: grid; + flex: none; + place-items: center; + width: 30px; + height: 30px; + background: var(--ink); + color: var(--paper); + font-size: 13px; + font-weight: 600; + line-height: 1; +} +.nav-account-name { + min-width: 0; + overflow: hidden; + color: var(--muted); + text-overflow: ellipsis; + white-space: nowrap; + transition: color var(--motion-fast) var(--ease-out); +} +.nav-account-button[aria-expanded="true"] .nav-account-name { color: var(--ink); } +.nav-account-button[aria-expanded="true"] .nav-menu-chevron { transform: rotate(180deg); } +/* The account menu: one ruled white sheet under the header, against the right edge of the slot. */ +.nav-account-panel { + position: absolute; + top: 100%; + right: 0; + z-index: 10; + width: min(300px, calc(100vw - 32px)); + border: 1px solid var(--line); + background: var(--paper); + transform-origin: top right; +} +.nav-account-who { + margin: 0; + padding: 16px 20px; + border-bottom: 1px solid var(--line); + color: var(--muted); + font-size: var(--text-sm); + overflow-wrap: anywhere; +} +.nav-account-who strong { display: block; margin-top: 2px; color: var(--ink); font-weight: 600; } +.nav-account-links { margin: 0; padding: 0; list-style: none; } +.nav-account-links li:last-child { border-top: 1px solid var(--line); } +.nav-account-links a, +.nav-account-links button { + display: flex; + align-items: center; + width: 100%; + min-height: 44px; + padding: 0 20px; + border: 0; + background: none; + color: var(--ink); + font: inherit; + font-size: 15px; + text-align: start; + cursor: pointer; + transition: background var(--motion-fast) var(--ease-out); +} +.nav-account-links button[aria-disabled="true"] { color: var(--muted); cursor: default; } +@media (hover: hover) and (pointer: fine) { + .nav-account-links a:hover, + .nav-account-links button:not([aria-disabled="true"]):hover { background: var(--surface); } +} +.nav-account-links a:focus-visible, +.nav-account-links button:focus-visible, +.nav-sign-in:focus-visible, +.nav-account-button:focus-visible { outline-offset: -4px; } +.nav-account-status { margin: 0; padding: 0 20px 14px; color: var(--muted); font-size: var(--text-sm); } +.nav-account-status:empty { display: none; } + @media (max-width: 1100px) { .nav-bar { gap: 16px; } + /* The slot narrows to the initials, and the GitHub button to its mark (the label stays its name). */ + .nav-account { --account-slot: 84px; } + .nav-account-name { display: none; } + .site-header .nav-crate { padding-inline: 13px; } + .nav-crate .button-arrow { display: none; } + .nav-crate .button-brand { margin: 0; } + .nav-crate-label { + position: absolute; + width: 1px; + height: 1px; + overflow: hidden; + clip-path: inset(50%); + white-space: nowrap; + } } @media (max-width: 850px) { :root { --header-height: 128px; } @@ -162,7 +290,10 @@ /* The panel spans the links row, under the whole header. */ .nav-menu { position: static; } .nav-menu-panel { right: 0; left: 0; width: auto; transform-origin: top center; } + /* The account menu hangs from the header's right edge, under both rows, not from the narrow slot. */ + .nav-account { position: static; } .site-header .button { padding-inline: 14px; font-size: var(--text-xs); } + .nav-sign-in { font-size: var(--text-sm); } } @media (max-width: 600px) { .nav-menu-grid { grid-template-columns: minmax(0, 1fr); }