diff --git a/.gitattributes b/.gitattributes index a6344aac8c09253b3b630fb776ae94478aa0275b..c8d2ccfe5b715ceab69fa2ba1348adaeab7a7d4d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -33,3 +33,41 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text *.zst filter=lfs diff=lfs merge=lfs -text *tfevents* filter=lfs diff=lfs merge=lfs -text +data/demo_sample/korea.mp4 filter=lfs diff=lfs merge=lfs -text +data/demo_sample/video.mp4 filter=lfs diff=lfs merge=lfs -text +data/gallery/alignment.jpg filter=lfs diff=lfs merge=lfs -text +data/gallery/labeler_bbox.jpg filter=lfs diff=lfs merge=lfs -text +data/gallery/labeler_events.jpg filter=lfs diff=lfs merge=lfs -text +data/gallery/labeler_scene.jpg filter=lfs diff=lfs merge=lfs -text +data/gallery/labeler_summary.jpg filter=lfs diff=lfs merge=lfs -text +data/gallery/review_sheet.jpg filter=lfs diff=lfs merge=lfs -text +data/gallery/training_curves.jpg filter=lfs diff=lfs merge=lfs -text +data/hero/64c29833ba07.jpg filter=lfs diff=lfs merge=lfs -text +data/hero/efcfd9036f33.jpg filter=lfs diff=lfs merge=lfs -text +data/hero/f5e31869e42b.jpg filter=lfs diff=lfs merge=lfs -text +data/img/C3896_bg.jpg filter=lfs diff=lfs merge=lfs -text +data/img/C3896_traj.jpg filter=lfs diff=lfs merge=lfs -text +data/img/C3897_bg.jpg filter=lfs diff=lfs merge=lfs -text +data/img/C3897_traj.jpg filter=lfs diff=lfs merge=lfs -text +data/img/C3902_bg.jpg filter=lfs diff=lfs merge=lfs -text +data/img/C3902_traj.jpg filter=lfs diff=lfs merge=lfs -text +data/img/C3905_traj.jpg filter=lfs diff=lfs merge=lfs -text +data/robustness/clean_day.jpg filter=lfs diff=lfs merge=lfs -text +data/robustness/fog.jpg filter=lfs diff=lfs merge=lfs -text +data/robustness/motion_blur.jpg filter=lfs diff=lfs merge=lfs -text +data/robustness/rain.jpg filter=lfs diff=lfs merge=lfs -text +data/unseen/day_crossing_tokyo_shibuya.jpg filter=lfs diff=lfs merge=lfs -text +data/unseen/day_intersection_topdown_drone.jpg filter=lfs diff=lfs merge=lfs -text +data/unseen/day_intersection_trafficlight_nyc.jpg filter=lfs diff=lfs merge=lfs -text +data/unseen/dusk_raised_korea.jpg filter=lfs diff=lfs merge=lfs -text +data/unseen/night_crosswalk_trafficlight_street.jpg filter=lfs diff=lfs merge=lfs -text +data/unseen/night_intersection_topdown_drone.jpg filter=lfs diff=lfs merge=lfs -text +data/unseen/rain_night_crossing_nyc_timessquare.jpg filter=lfs diff=lfs merge=lfs -text +data/unseen/rain_raised_tehran.jpg filter=lfs diff=lfs merge=lfs -text +data/unseen/snow_intersection_ottawa.jpg filter=lfs diff=lfs merge=lfs -text +data/video/C3896.mp4 filter=lfs diff=lfs merge=lfs -text +data/video/C3897.mp4 filter=lfs diff=lfs merge=lfs -text +data/video/C3902.mp4 filter=lfs diff=lfs merge=lfs -text +data/video/C3905.mp4 filter=lfs diff=lfs merge=lfs -text +data/video/explainer.mp4 filter=lfs diff=lfs merge=lfs -text +data/video/hero.mp4 filter=lfs diff=lfs merge=lfs -text diff --git a/README.md b/README.md index 46cf6a86b8bec53def13962c7757ece66f8f2929..d559c20a0640d9ff6c34e23f54022125fe1c66bb 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ ---- -title: Safejunction -emoji: ๐Ÿ  -colorFrom: purple -colorTo: green -sdk: static -pinned: false ---- - -Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference +--- +title: Do'ppiX SafeJunction +emoji: ๐Ÿšฆ +colorFrom: yellow +colorTo: red +sdk: static +pinned: true +short_description: Road-safety auditor for any traffic camera +--- +Built from https://github.com/ubaydullayevgiyosiddin7-eng/doppix-safejunction diff --git a/assets/index-CJUDcY_g.css b/assets/index-CJUDcY_g.css new file mode 100644 index 0000000000000000000000000000000000000000..3a6b71eda588552603c891a518451439b70615c0 --- /dev/null +++ b/assets/index-CJUDcY_g.css @@ -0,0 +1 @@ +/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--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-leading:initial;--tw-font-weight:initial;--tw-tracking: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-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-green-500:oklch(72.3% .219 149.579);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-500:oklch(71.5% .143 215.221);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-xl:36rem;--container-3xl:48rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-2xl:40px;--aspect-video:16 / 9;--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)}}@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%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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:where(:not(iframe)){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]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.-inset-3{inset:calc(var(--spacing) * -3)}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{inset-inline:0}.-top-10{top:calc(var(--spacing) * -10)}.top-0{top:0}.top-1\/2{top:50%}.right-0{right:0}.right-2{right:calc(var(--spacing) * 2)}.bottom-0{bottom:0}.left-0{left:0}.left-2{left:calc(var(--spacing) * 2)}.z-10{z-index:10}.z-30{z-index:30}.z-50{z-index:50}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-1{margin-inline:var(--spacing)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mr-1{margin-right:var(--spacing)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.btn{cursor:pointer;border-radius:.5rem;align-items:center;gap:.5rem;padding:.375rem .75rem;font-size:.875rem;font-weight:500;transition:background-color .15s;display:inline-flex}.chip{border:1px solid var(--color-slate-700);border-radius:9999px;align-items:center;gap:.25rem;padding:.125rem .625rem;font-size:.75rem;line-height:1rem;display:inline-flex}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-video{aspect-ratio:var(--aspect-video)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-4{height:calc(var(--spacing) * 4)}.h-10{height:calc(var(--spacing) * 10)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-36{height:calc(var(--spacing) * 36)}.h-40{height:calc(var(--spacing) * 40)}.h-64{height:calc(var(--spacing) * 64)}.h-full{height:100%}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[440px\]{max-height:440px}.max-h-full{max-height:100%}.min-h-0{min-height:0}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-8{width:calc(var(--spacing) * 8)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-72{width:calc(var(--spacing) * 72)}.w-full{width:100%}.w-px{width:1px}.max-w-3xl{max-width:var(--container-3xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[9rem\]{max-width:9rem}.max-w-md{max-width:var(--container-md)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.min-w-\[420px\]{min-width:420px}.min-w-\[560px\]{min-width:560px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-crosshair{cursor:crosshair}.cursor-pointer{cursor:pointer}.\[scrollbar-width\:none\]{scrollbar-width:none}.\[scrollbar-width\:thin\]{scrollbar-width:thin}.list-decimal{list-style-type:decimal}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[minmax\(0\,1fr\)_8rem_4\.5rem\]{grid-template-columns:minmax(0,1fr) 8rem 4.5rem}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-10{gap:calc(var(--spacing) * 10)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.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-2{row-gap:calc(var(--spacing) * 2)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.card{-webkit-backdrop-filter:blur(14px);background:linear-gradient(#ffffff0e,#ffffff05);border:1px solid #ffffff14;border-radius:1rem;box-shadow:inset 0 1px #ffffff0f,0 12px 32px -16px #000000b3}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-400{border-color:var(--color-amber-400)}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/30{border-color:color-mix(in oklab,var(--color-amber-500) 30%,transparent)}}.border-amber-500\/40{border-color:#f99c0066}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/40{border-color:color-mix(in oklab,var(--color-amber-500) 40%,transparent)}}.border-amber-500\/50{border-color:#f99c0080}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/50{border-color:color-mix(in oklab,var(--color-amber-500) 50%,transparent)}}.border-amber-600{border-color:var(--color-amber-600)}.border-cyan-500\/30{border-color:#00b7d74d}@supports (color:color-mix(in lab,red,red)){.border-cyan-500\/30{border-color:color-mix(in oklab,var(--color-cyan-500) 30%,transparent)}}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500) 30%,transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/40{border-color:color-mix(in oklab,var(--color-emerald-500) 40%,transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500) 30%,transparent)}}.border-red-800{border-color:var(--color-red-800)}.border-red-900\/60{border-color:#82181a99}@supports (color:color-mix(in lab,red,red)){.border-red-900\/60{border-color:color-mix(in oklab,var(--color-red-900) 60%,transparent)}}.border-sky-500\/30{border-color:#00a5ef4d}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/30{border-color:color-mix(in oklab,var(--color-sky-500) 30%,transparent)}}.border-sky-600{border-color:var(--color-sky-600)}.border-slate-600{border-color:var(--color-slate-600)}.border-slate-700{border-color:var(--color-slate-700)}.border-slate-800{border-color:var(--color-slate-800)}.border-slate-800\/80{border-color:#1d293dcc}@supports (color:color-mix(in lab,red,red)){.border-slate-800\/80{border-color:color-mix(in oklab,var(--color-slate-800) 80%,transparent)}}.border-white\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.border-white\/5{border-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.border-white\/15{border-color:#ffffff26}@supports (color:color-mix(in lab,red,red)){.border-white\/15{border-color:color-mix(in oklab,var(--color-white) 15%,transparent)}}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500) 10%,transparent)}}.bg-amber-500\/20{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/20{background-color:color-mix(in oklab,var(--color-amber-500) 20%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black) 80%,transparent)}}.bg-black\/85{background-color:#000000d9}@supports (color:color-mix(in lab,red,red)){.bg-black\/85{background-color:color-mix(in oklab,var(--color-black) 85%,transparent)}}.bg-cyan-500\/5{background-color:#00b7d70d}@supports (color:color-mix(in lab,red,red)){.bg-cyan-500\/5{background-color:color-mix(in oklab,var(--color-cyan-500) 5%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-400\/80{background-color:#00d294cc}@supports (color:color-mix(in lab,red,red)){.bg-emerald-400\/80{background-color:color-mix(in oklab,var(--color-emerald-400) 80%,transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/15{background-color:color-mix(in oklab,var(--color-emerald-500) 15%,transparent)}}.bg-emerald-500\/20{background-color:#00bb7f33}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/20{background-color:color-mix(in oklab,var(--color-emerald-500) 20%,transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-red-400\/80{background-color:#ff6568cc}@supports (color:color-mix(in lab,red,red)){.bg-red-400\/80{background-color:color-mix(in oklab,var(--color-red-400) 80%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/15{background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/20{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.bg-sky-500\/15{background-color:#00a5ef26}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/15{background-color:color-mix(in oklab,var(--color-sky-500) 15%,transparent)}}.bg-slate-500{background-color:var(--color-slate-500)}.bg-slate-700{background-color:var(--color-slate-700)}.bg-slate-800{background-color:var(--color-slate-800)}.bg-slate-800\/60{background-color:#1d293d99}@supports (color:color-mix(in lab,red,red)){.bg-slate-800\/60{background-color:color-mix(in oklab,var(--color-slate-800) 60%,transparent)}}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-950{background-color:var(--color-slate-950)}.bg-slate-950\/80{background-color:#020618cc}@supports (color:color-mix(in lab,red,red)){.bg-slate-950\/80{background-color:color-mix(in oklab,var(--color-slate-950) 80%,transparent)}}.bg-slate-950\/85{background-color:#020618d9}@supports (color:color-mix(in lab,red,red)){.bg-slate-950\/85{background-color:color-mix(in oklab,var(--color-slate-950) 85%,transparent)}}.bg-slate-950\/95{background-color:#020618f2}@supports (color:color-mix(in lab,red,red)){.bg-slate-950\/95{background-color:color-mix(in oklab,var(--color-slate-950) 95%,transparent)}}.bg-white{background-color:var(--color-white)}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.bg-white\/5{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-white\/15{background-color:#ffffff26}@supports (color:color-mix(in lab,red,red)){.bg-white\/15{background-color:color-mix(in oklab,var(--color-white) 15%,transparent)}}.bg-white\/\[0\.015\]{background-color:#ffffff04}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.015\]{background-color:color-mix(in oklab,var(--color-white) 1.5%,transparent)}}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-tr{--tw-gradient-position:to top right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-\[radial-gradient\(ellipse_at_top_right\,rgba\(245\,158\,11\,0\.12\)\,transparent_55\%\)\,radial-gradient\(ellipse_at_bottom_left\,rgba\(239\,68\,68\,0\.08\)\,transparent_50\%\)\]{background-image:radial-gradient(at 100% 0,#f59e0b1f,#0000 55%),radial-gradient(at 0 100%,#ef444414,#0000 50%)}.from-amber-300{--tw-gradient-from:var(--color-amber-300);--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))}.from-amber-500\/20{--tw-gradient-from:#f99c0033}@supports (color:color-mix(in lab,red,red)){.from-amber-500\/20{--tw-gradient-from:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.from-amber-500\/20{--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))}.from-slate-950\/95{--tw-gradient-from:#020618f2}@supports (color:color-mix(in lab,red,red)){.from-slate-950\/95{--tw-gradient-from:color-mix(in oklab, var(--color-slate-950) 95%, transparent)}}.from-slate-950\/95{--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))}.via-transparent{--tw-gradient-via:transparent;--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-red-400{--tw-gradient-to:var(--color-red-400);--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))}.to-red-500\/20{--tw-gradient-to:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.to-red-500\/20{--tw-gradient-to:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.to-red-500\/20{--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))}.to-transparent{--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))}.\[mask-image\:linear-gradient\(90deg\,transparent\,black_5\%\,black_95\%\,transparent\)\]{-webkit-mask-image:linear-gradient(90deg,#0000,#000 5% 95%,#0000);mask-image:linear-gradient(90deg,#0000,#000 5%,#000 95%,#0000)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-amber-400{fill:var(--color-amber-400)}.object-cover{object-fit:cover}.object-top{object-position:top}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-10{padding:calc(var(--spacing) * 10)}.px-1{padding-inline:var(--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-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.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-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-14{padding-block:calc(var(--spacing) * 14)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-14{padding-top:calc(var(--spacing) * 14)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-14{padding-bottom:calc(var(--spacing) * 14)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-display{font-family:Space Grotesk,Inter,ui-sans-serif,system-ui,sans-serif}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.whitespace-nowrap{white-space:nowrap}.text-amber-200{color:var(--color-amber-200)}.text-amber-300{color:var(--color-amber-300)}.text-amber-400{color:var(--color-amber-400)}.text-cyan-300{color:var(--color-cyan-300)}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-400{color:var(--color-emerald-400)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-sky-300{color:var(--color-sky-300)}.text-slate-200{color:var(--color-slate-200)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-950{color:var(--color-slate-950)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.decoration-dotted{text-decoration-style:dotted}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);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-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + 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)}.shadow-black\/50{--tw-shadow-color:#00000080}@supports (color:color-mix(in lab,red,red)){.shadow-black\/50{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-amber-400{--tw-ring-color:var(--color-amber-400)}.ring-amber-400\/40{--tw-ring-color:#fcbb0066}@supports (color:color-mix(in lab,red,red)){.ring-amber-400\/40{--tw-ring-color:color-mix(in oklab, var(--color-amber-400) 40%, transparent)}}.ring-amber-400\/50{--tw-ring-color:#fcbb0080}@supports (color:color-mix(in lab,red,red)){.ring-amber-400\/50{--tw-ring-color:color-mix(in oklab, var(--color-amber-400) 50%, transparent)}}.ring-white\/30{--tw-ring-color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.ring-white\/30{--tw-ring-color:color-mix(in oklab, var(--color-white) 30%, transparent)}}.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,)}.blur-2xl{--tw-blur:blur(var(--blur-2xl));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition-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-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))}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\:bg-black\/20:is(:where(.group):hover *){background-color:#0003}@supports (color:color-mix(in lab,red,red)){.group-hover\:bg-black\/20:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-black) 20%,transparent)}}}.placeholder\:text-slate-500::placeholder{color:var(--color-slate-500)}.first\:border-0:first-child{border-style:var(--tw-border-style);border-width:0}@media(hover:hover){.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-amber-500\/60:hover{border-color:#f99c0099}@supports (color:color-mix(in lab,red,red)){.hover\:border-amber-500\/60:hover{border-color:color-mix(in oklab,var(--color-amber-500) 60%,transparent)}}.hover\:bg-amber-400:hover{background-color:var(--color-amber-400)}.hover\:bg-amber-500\/10:hover{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-amber-500\/10:hover{background-color:color-mix(in oklab,var(--color-amber-500) 10%,transparent)}}.hover\:bg-slate-800:hover{background-color:var(--color-slate-800)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.hover\:text-amber-200:hover{color:var(--color-amber-200)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:block{display:block}.sm\:w-56{width:calc(var(--spacing) * 56)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-\[1fr_1fr\]{grid-template-columns:1fr 1fr}.sm\:grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.sm\:grid-cols-\[minmax\(0\,1fr\)_14rem_5rem\]{grid-template-columns:minmax(0,1fr) 14rem 5rem}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:py-20{padding-block:calc(var(--spacing) * 20)}.sm\:pt-20{padding-top:calc(var(--spacing) * 20)}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}}@media(min-width:64rem){.lg\:absolute{position:absolute}.lg\:inset-0{top:0;right:0;bottom:0;left:0}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:max-h-none{max-height:none}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-\[1\.2fr_1fr\]{grid-template-columns:1.2fr 1fr}.lg\:grid-cols-\[1\.05fr_1fr\]{grid-template-columns:1.05fr 1fr}.lg\:grid-cols-\[1\.6fr_1fr\]{grid-template-columns:1.6fr 1fr}.lg\:grid-cols-\[1\.15fr_1fr\]{grid-template-columns:1.15fr 1fr}.lg\:grid-cols-\[1fr_1\.3fr\]{grid-template-columns:1fr 1.3fr}.lg\:grid-cols-\[1fr_1\.4fr\]{grid-template-columns:1fr 1.4fr}.lg\:grid-cols-\[1fr_2fr\]{grid-template-columns:1fr 2fr}.lg\:grid-cols-\[minmax\(0\,1fr\)_320px\]{grid-template-columns:minmax(0,1fr) 320px}}@media(min-width:80rem){.xl\:flex{display:flex}.xl\:hidden{display:none}}.\[\&_td\]\:py-0\.5 td{padding-block:calc(var(--spacing) * .5)}.\[\&_td\]\:py-1\.5 td{padding-block:calc(var(--spacing) * 1.5)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\]\:border-slate-800 tr{border-color:var(--color-slate-800)}.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}}html{scroll-behavior:smooth;scroll-padding-top:4rem}body{background:#030712;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(40rem 30rem at 85% 10%,#f59e0b1a,#0000 70%),radial-gradient(36rem 28rem at 5% 55%,#3b82f614,#0000 70%),radial-gradient(30rem 24rem at 70% 95%,#ec48990f,#0000 70%);position:fixed;top:0;right:0;bottom:0;left:0}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){[class*="animation:marquee"]{animation:none!important}}@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-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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@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%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{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-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}} diff --git a/assets/index-DZ3tiW8E.js b/assets/index-DZ3tiW8E.js new file mode 100644 index 0000000000000000000000000000000000000000..8d213557f0a48cd6a17d6d4ffb42c014fcaf4fcf --- /dev/null +++ b/assets/index-DZ3tiW8E.js @@ -0,0 +1,317 @@ +(function(){const m=document.createElement("link").relList;if(m&&m.supports&&m.supports("modulepreload"))return;for(const g of document.querySelectorAll('link[rel="modulepreload"]'))o(g);new MutationObserver(g=>{for(const O of g)if(O.type==="childList")for(const U of O.addedNodes)U.tagName==="LINK"&&U.rel==="modulepreload"&&o(U)}).observe(document,{childList:!0,subtree:!0});function d(g){const O={};return g.integrity&&(O.integrity=g.integrity),g.referrerPolicy&&(O.referrerPolicy=g.referrerPolicy),g.crossOrigin==="use-credentials"?O.credentials="include":g.crossOrigin==="anonymous"?O.credentials="omit":O.credentials="same-origin",O}function o(g){if(g.ep)return;g.ep=!0;const O=d(g);fetch(g.href,O)}})();var Hr={exports:{}},ps={};/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var zm;function lv(){if(zm)return ps;zm=1;var u=Symbol.for("react.transitional.element"),m=Symbol.for("react.fragment");function d(o,g,O){var U=null;if(O!==void 0&&(U=""+O),g.key!==void 0&&(U=""+g.key),"key"in g){O={};for(var _ in g)_!=="key"&&(O[_]=g[_])}else O=g;return g=O.ref,{$$typeof:u,type:o,key:U,ref:g!==void 0?g:null,props:O}}return ps.Fragment=m,ps.jsx=d,ps.jsxs=d,ps}var Om;function av(){return Om||(Om=1,Hr.exports=lv()),Hr.exports}var i=av(),Br={exports:{}},ue={};/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Am;function nv(){if(Am)return ue;Am=1;var u=Symbol.for("react.transitional.element"),m=Symbol.for("react.portal"),d=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),g=Symbol.for("react.profiler"),O=Symbol.for("react.consumer"),U=Symbol.for("react.context"),_=Symbol.for("react.forward_ref"),x=Symbol.for("react.suspense"),M=Symbol.for("react.memo"),w=Symbol.for("react.lazy"),f=Symbol.for("react.activity"),N=Symbol.for("react.view_transition"),H=Symbol.iterator;function K(v){return v===null||typeof v!="object"?null:(v=H&&v[H]||v["@@iterator"],typeof v=="function"?v:null)}var q={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,E={};function X(v,B,V){this.props=v,this.context=B,this.refs=E,this.updater=V||q}X.prototype.isReactComponent={},X.prototype.setState=function(v,B){if(typeof v!="object"&&typeof v!="function"&&v!=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,v,B,"setState")},X.prototype.forceUpdate=function(v){this.updater.enqueueForceUpdate(this,v,"forceUpdate")};function $(){}$.prototype=X.prototype;function pe(v,B,V){this.props=v,this.context=B,this.refs=E,this.updater=V||q}var Ne=pe.prototype=new $;Ne.constructor=pe,C(Ne,X.prototype),Ne.isPureReactComponent=!0;var z=Array.isArray;function W(){}var ce={H:null,A:null,T:null,S:null},He=Object.prototype.hasOwnProperty;function _e(v,B,V){var G=V.ref;return{$$typeof:u,type:v,key:B,ref:G!==void 0?G:null,props:V}}function qe(v,B){return _e(v.type,B,v.props)}function Ce(v){return typeof v=="object"&&v!==null&&v.$$typeof===u}function Q(v){var B={"=":"=0",":":"=2"};return"$"+v.replace(/[=:]/g,function(V){return B[V]})}var se=/\/+/g;function ne(v,B){return typeof v=="object"&&v!==null&&v.key!=null?Q(""+v.key):B.toString(36)}function L(v){switch(v.status){case"fulfilled":return v.value;case"rejected":throw v.reason;default:switch(typeof v.status=="string"?v.then(W,W):(v.status="pending",v.then(function(B){v.status==="pending"&&(v.status="fulfilled",v.value=B)},function(B){v.status==="pending"&&(v.status="rejected",v.reason=B)})),v.status){case"fulfilled":return v.value;case"rejected":throw v.reason}}throw v}function I(v,B,V,G,P){var ae=typeof v;(ae==="undefined"||ae==="boolean")&&(v=null);var oe=!1;if(v===null)oe=!0;else switch(ae){case"bigint":case"string":case"number":oe=!0;break;case"object":switch(v.$$typeof){case u:case m:oe=!0;break;case w:return oe=v._init,I(oe(v._payload),B,V,G,P)}}if(oe)return P=P(v),oe=G===""?"."+ne(v,0):G,z(P)?(V="",oe!=null&&(V=oe.replace(se,"$&/")+"/"),I(P,B,V,"",function(Ie){return Ie})):P!=null&&(Ce(P)&&(P=qe(P,V+(P.key==null||v&&v.key===P.key?"":(""+P.key).replace(se,"$&/")+"/")+oe)),B.push(P)),1;oe=0;var Z=G===""?".":G+":";if(z(v))for(var ee=0;ee>>1,me=L[Se];if(0>>1;Seg(Te,le))vg(B,Te)?(L[Se]=B,L[v]=le,Se=v):(L[Se]=Te,L[De]=le,Se=De);else if(vg(B,le))L[Se]=B,L[v]=le,Se=v;else break e}}return I}function g(L,I){var le=L.sortIndex-I.sortIndex;return le!==0?le:L.id-I.id}if(u.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var O=performance;u.unstable_now=function(){return O.now()}}else{var U=Date,_=U.now();u.unstable_now=function(){return U.now()-_}}var x=[],M=[],w=1,f=null,N=3,H=!1,K=!1,q=!1,C=!1,E=typeof setTimeout=="function"?setTimeout:null,X=typeof clearTimeout=="function"?clearTimeout:null,$=typeof setImmediate<"u"?setImmediate:null;function pe(L){for(var I=d(M);I!==null;){if(I.callback===null)o(M);else if(I.startTime<=L)o(M),I.sortIndex=I.expirationTime,m(x,I);else break;I=d(M)}}function Ne(L){if(q=!1,pe(L),!K)if(d(x)!==null)K=!0,z||(z=!0,Ce());else{var I=d(M);I!==null&&ne(Ne,I.startTime-L)}}var z=!1,W=-1,ce=5,He=-1;function _e(){return C?!0:!(u.unstable_now()-HeL&&_e());){var Se=f.callback;if(typeof Se=="function"){f.callback=null,N=f.priorityLevel;var me=Se(f.expirationTime<=L);if(L=u.unstable_now(),typeof me=="function"){f.callback=me,pe(L),I=!0;break t}f===d(x)&&o(x),pe(L)}else o(x);f=d(x)}if(f!==null)I=!0;else{var tt=d(M);tt!==null&&ne(Ne,tt.startTime-L),I=!1}}break e}finally{f=null,N=le,H=!1}I=void 0}}finally{I?Ce():z=!1}}}var Ce;if(typeof $=="function")Ce=function(){$(qe)};else if(typeof MessageChannel<"u"){var Q=new MessageChannel,se=Q.port2;Q.port1.onmessage=qe,Ce=function(){se.postMessage(null)}}else Ce=function(){E(qe,0)};function ne(L,I){W=E(function(){L(u.unstable_now())},I)}u.unstable_IdlePriority=5,u.unstable_ImmediatePriority=1,u.unstable_LowPriority=4,u.unstable_NormalPriority=3,u.unstable_Profiling=null,u.unstable_UserBlockingPriority=2,u.unstable_cancelCallback=function(L){L.callback=null},u.unstable_forceFrameRate=function(L){0>L||125Se?(L.sortIndex=le,m(M,L),d(x)===null&&L===d(M)&&(q?(X(W),W=-1):q=!0,ne(Ne,le-Se))):(L.sortIndex=me,m(x,L),K||H||(K=!0,z||(z=!0,Ce()))),L},u.unstable_shouldYield=_e,u.unstable_wrapCallback=function(L){var I=N;return function(){var le=N;N=I;try{return L.apply(this,arguments)}finally{N=le}}}})(Yr)),Yr}var Dm;function iv(){return Dm||(Dm=1,kr.exports=sv()),kr.exports}var Gr={exports:{}},dt={};/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Rm;function cv(){if(Rm)return dt;Rm=1;var u=Wr();function m(w){var f="https://react.dev/errors/"+w;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(u)}catch(m){console.error(m)}}return u(),Gr.exports=cv(),Gr.exports}/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Hm;function rv(){if(Hm)return gs;Hm=1;var u=iv(),m=Wr(),d=uv();function o(e){var t="https://react.dev/errors/"+e;if(1qt||(e.current=Bt[qt],Bt[qt]=null,qt--)}function je(e,t){qt++,Bt[qt]=e.current,e.current=t}var mt=Qe(null),al=Qe(null),Ml=Qe(null),ws=Qe(null);function _s(e,t){switch(je(Ml,t),je(al,e),je(mt,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Bh(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Bh(t),e=qh(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}Re(mt),je(mt,e)}function Da(){Re(mt),Re(al),Re(Ml)}function lc(e){var t=e.memoizedState;t!==null&&(jn._currentValue=t.memoizedState,je(ws,e)),t=mt.current;var l=qh(t,e.type);t!==l&&(je(al,e),je(mt,l))}function Ts(e){al.current===e&&(Re(mt),Re(al)),ws.current===e&&(Re(ws),jn._currentValue=Ie)}var ac,lo;function Cl(e){if(ac===void 0)try{throw Error()}catch(l){var t=l.stack.trim().match(/\n( *(at )?)/);ac=t&&t[1]||"",lo=-1)":-1n||h[a]!==j[n]){var A=` +`+h[a].replace(" at new "," at ");return e.displayName&&A.includes("")&&(A=A.replace("",e.displayName)),A}while(1<=a&&0<=n);break}}}finally{nc=!1,Error.prepareStackTrace=l}return(l=e?e.displayName||e.name:"")?Cl(l):""}function i0(e,t){switch(e.tag){case 26:case 27:case 5:return Cl(e.type);case 16:return Cl("Lazy");case 13:return e.child!==t&&t!==null?Cl("Suspense Fallback"):Cl("Suspense");case 19:return Cl("SuspenseList");case 0:case 15:return sc(e.type,!1);case 11:return sc(e.type.render,!1);case 1:return sc(e.type,!0);case 31:return Cl("Activity");case 30:return Cl("ViewTransition");default:return""}}function ao(e){try{var t="",l=null;do t+=i0(e,l),l=e,e=e.return;while(e);return t}catch(a){return` +Error generating stack: `+a.message+` +`+a.stack}}var ic=Object.prototype.hasOwnProperty,cc=u.unstable_scheduleCallback,uc=u.unstable_cancelCallback,c0=u.unstable_shouldYield,u0=u.unstable_requestPaint,_t=u.unstable_now,r0=u.unstable_getCurrentPriorityLevel,no=u.unstable_ImmediatePriority,so=u.unstable_UserBlockingPriority,Es=u.unstable_NormalPriority,o0=u.unstable_LowPriority,io=u.unstable_IdlePriority,f0=u.log,d0=u.unstable_setDisableYieldValue,wn=null,Tt=null;function Dl(e){if(typeof f0=="function"&&d0(e),Tt&&typeof Tt.setStrictMode=="function")try{Tt.setStrictMode(wn,e)}catch{}}var Et=Math.clz32?Math.clz32:x0,h0=Math.log,m0=Math.LN2;function x0(e){return e>>>=0,e===0?32:31-(h0(e)/m0|0)|0}var zs=256,Os=262144,As=4194304;function ua(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64: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 e&-e;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ms(e,t,l){var a=e.pendingLanes;if(a===0)return 0;var n=0,s=e.suspendedLanes,c=e.pingedLanes;e=e.warmLanes;var r=a&134217727;return r!==0?(a=r&~s,a!==0?n=ua(a):(c&=r,c!==0?n=ua(c):l||(l=r&~e,l!==0&&(n=ua(l))))):(r=a&~s,r!==0?n=ua(r):c!==0?n=ua(c):l||(l=a&~e,l!==0&&(n=ua(l)))),n===0?0:t!==0&&t!==n&&(t&s)===0&&(s=n&-n,l=t&-t,s>=l||s===32&&(l&4194048)!==0)?t:n}function _n(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function co(e,t){(t&8)!==0&&(t|=t&32);var l=e.entangledLanes;if(l!==0)for(e=e.entanglements,l&=t;0l;l++)t.push(e);return t}function Tn(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function p0(e,t,l,a,n,s){var c=e.pendingLanes;e.pendingLanes=l,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=l,e.entangledLanes&=l,e.errorRecoveryDisabledLanes&=l,e.shellSuspendCounter=0;var r=e.entanglements,h=e.expirationTimes,j=e.hiddenUpdates;for(l=c&~l;0"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),yc=!1;if(pl)try{var An={};Object.defineProperty(An,"passive",{get:function(){yc=!0}}),window.addEventListener("test",An,An),window.removeEventListener("test",An,An)}catch{yc=!1}var Rl=null,bc=null,Bs=null;function Co(){if(Bs)return Bs;var e,t=bc,l=t.length,a,n="value"in Rl?Rl.value:Rl.textContent,s=n.length;for(e=0;e=Dn),qo=" ",ko=!1;function Yo(e,t){switch(e){case"keyup":return P0.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Go(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var La=!1;function tx(e,t){switch(e){case"compositionend":return Go(t);case"keypress":return t.which!==32?null:(ko=!0,qo);case"textInput":return e=t.data,e===qo&&ko?null:e;default:return null}}function lx(e,t){if(La)return e==="compositionend"||!_c&&Yo(e,t)?(e=Co(),Bs=bc=Rl=null,La=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function $o(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Fo(e,t){var l=$o(e);e=0;for(var a;l;){if(l.nodeType===3){if(a=e+l.textContent.length,e<=t&&a>=t)return{node:l,offset:t-e};e=a}e:{for(;l;){if(l.nextSibling){l=l.nextSibling;break e}l=l.parentNode}l=void 0}l=$o(l)}}function Wo(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Wo(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Io(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=zc(e.document);t instanceof e.HTMLIFrameElement;){try{var l=typeof t.contentWindow.location.href=="string"}catch{l=!1}if(l)e=t.contentWindow;else break;t=zc(e.document)}return t}function Oc(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var ox=pl&&"documentMode"in document&&11>=document.documentMode,Xa=null,Ac=null,Bn=null,Mc=!1;function Po(e,t,l){var a=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;Mc||Xa==null||Xa!==zc(a)||(a=Xa,"selectionStart"in a&&Oc(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Bn&&Hn(Bn,a)||(Bn=a,a=Li(Ac,"onSelect"),0>=c,n-=c,sl=1<<32-Et(t)+n|l<ie?(Fe=te,te=null):Fe=te.sibling;var be=y(b,te,S[ie],D);if(be===null){te===null&&(te=Fe);break}e&&te&&be.alternate===null&&t(b,te),p=s(be,p,ie),ye===null?J=be:ye.sibling=be,ye=be,te=Fe}if(ie===S.length)return l(b,te),he&&jl(b,ie),J;if(te===null){for(;ieie?(Fe=te,te=null):Fe=te.sibling;var sa=y(b,te,be.value,D);if(sa===null){te===null&&(te=Fe);break}e&&te&&sa.alternate===null&&t(b,te),p=s(sa,p,ie),ye===null?J=sa:ye.sibling=sa,ye=sa,te=Fe}if(be.done)return l(b,te),he&&jl(b,ie),J;if(te===null){for(;!be.done;ie++,be=S.next())be=R(b,be.value,D),be!==null&&(p=s(be,p,ie),ye===null?J=be:ye.sibling=be,ye=be);return he&&jl(b,ie),J}for(te=a(te);!be.done;ie++,be=S.next())be=T(te,b,ie,be.value,D),be!==null&&(e&&(Fe=be.alternate,Fe!==null&&te.delete(Fe.key===null?ie:Fe.key)),p=s(be,p,ie),ye===null?J=be:ye.sibling=be,ye=be);return e&&te.forEach(function(tv){return t(b,tv)}),he&&jl(b,ie),J}function de(b,p,S,D){if(typeof S=="object"&&S!==null&&S.type===qe&&S.key===null&&S.props.ref===void 0&&(S=S.props.children),typeof S=="object"&&S!==null){switch(S.$$typeof){case He:e:{for(var J=S.key;p!==null;){if(p.key===J){if(J=S.type,J===qe){if(p.tag===7){l(b,p.sibling),D=n(p,S.props.children),Yl(D,S),D.return=b,b=D;break e}}else if(p.elementType===J||typeof J=="object"&&J!==null&&J.$$typeof===me&&ja(J)===p.type){l(b,p.sibling),D=n(p,S.props),Yl(D,S),D.return=b,b=D;break e}l(b,p);break}else t(b,p);p=p.sibling}S.type===qe?(D=ma(S.props.children,b.mode,D,S.key),Yl(D,S),D.return=b,b=D):(D=Ks(S.type,S.key,S.props,null,b.mode,D),Yl(D,S),D.return=b,b=D)}return c(b);case _e:e:{for(J=S.key;p!==null;){if(p.key===J)if(p.tag===4&&p.stateNode.containerInfo===S.containerInfo&&p.stateNode.implementation===S.implementation){l(b,p.sibling),D=n(p,S.children||[]),D.return=b,b=D;break e}else{l(b,p);break}else t(b,p);p=p.sibling}D=qc(S,b.mode,D),D.return=b,b=D}return c(b);case me:return S=ja(S),de(b,p,S,D)}if(oe(S))return Y(b,p,S,D);if(G(S)){if(J=G(S),typeof J!="function")throw Error(o(150));return S=J.call(S),F(b,p,S,D)}if(typeof S.then=="function")return de(b,p,ai(S),D);if(S.$$typeof===ne)return de(b,p,Ps(b,S),D);ni(b,S)}return typeof S=="string"&&S!==""||typeof S=="number"||typeof S=="bigint"?(S=""+S,p!==null&&p.tag===6?(l(b,p.sibling),D=n(p,S),D.return=b,b=D):(l(b,p),D=Bc(S,b.mode,D),D.return=b,b=D),c(b)):l(b,p)}return function(b,p,S,D){try{Xn=0;var J=de(b,p,S,D);return Ia=null,J}catch(te){if(te===Wa||te===ti)throw te;var ye=bt(29,te,null,b.mode);return ye.lanes=D,ye.return=b,ye}finally{}}}var Sa=wf(!0),_f=wf(!1),Gl=!1;function Jc(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function $c(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ll(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Xl(e,t,l){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(Ee&2)!==0){var n=a.pending;return n===null?t.next=t:(t.next=n.next,n.next=t),a.pending=t,t=Zs(e),uf(e,null,l),t}return Qs(e,a,t,l),Zs(e)}function Vn(e,t,l){if(t=t.updateQueue,t!==null&&(t=t.shared,(l&4194048)!==0)){var a=t.lanes;a&=e.pendingLanes,l|=a,t.lanes=l,oo(e,l)}}function Fc(e,t){var l=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,l===a)){var n=null,s=null;if(l=l.firstBaseUpdate,l!==null){do{var c={lane:l.lane,tag:l.tag,payload:l.payload,callback:null,next:null};s===null?n=s=c:s=s.next=c,l=l.next}while(l!==null);s===null?n=s=t:s=s.next=t}else n=s=t;l={baseState:a.baseState,firstBaseUpdate:n,lastBaseUpdate:s,shared:a.shared,callbacks:a.callbacks},e.updateQueue=l;return}e=l.lastBaseUpdate,e===null?l.firstBaseUpdate=t:e.next=t,l.lastBaseUpdate=t}var Wc=!1;function Qn(){if(Wc){var e=Fa;if(e!==null)throw e}}function Zn(e,t,l,a){Wc=!1;var n=e.updateQueue;Gl=!1;var s=n.firstBaseUpdate,c=n.lastBaseUpdate,r=n.shared.pending;if(r!==null){n.shared.pending=null;var h=r,j=h.next;h.next=null,c===null?s=j:c.next=j,c=h;var A=e.alternate;A!==null&&(A=A.updateQueue,r=A.lastBaseUpdate,r!==c&&(r===null?A.firstBaseUpdate=j:r.next=j,A.lastBaseUpdate=h))}if(s!==null){var R=n.baseState;c=0,A=j=h=null,r=s;do{var y=r.lane&-536870913,T=y!==r.lane;if(T?(ge&y)===y:(a&y)===y){y!==0&&y===ya&&(Wc=!0),A!==null&&(A=A.next={lane:0,tag:r.tag,payload:r.payload,callback:null,next:null});e:{var Y=e,F=r;y=t;var de=l;switch(F.tag){case 1:if(Y=F.payload,typeof Y=="function"){R=Y.call(de,R,y);break e}R=Y;break e;case 3:Y.flags=Y.flags&-65537|128;case 0:if(Y=F.payload,y=typeof Y=="function"?Y.call(de,R,y):Y,y==null)break e;R=W({},R,y);break e;case 2:Gl=!0}}y=r.callback,y!==null&&(e.flags|=64,T&&(e.flags|=8192),T=n.callbacks,T===null?n.callbacks=[y]:T.push(y))}else T={lane:y,tag:r.tag,payload:r.payload,callback:r.callback,next:null},A===null?(j=A=T,h=R):A=A.next=T,c|=y;if(r=r.next,r===null){if(r=n.shared.pending,r===null)break;T=r,r=T.next,T.next=null,n.lastBaseUpdate=T,n.shared.pending=null}}while(!0);A===null&&(h=R),n.baseState=h,n.firstBaseUpdate=j,n.lastBaseUpdate=A,s===null&&(n.shared.lanes=0),Fl|=c,e.lanes=c,e.memoizedState=R}}function Tf(e,t){if(typeof e!="function")throw Error(o(191,e));e.call(t)}function Ef(e,t){var l=e.callbacks;if(l!==null)for(e.callbacks=null,e=0;es?s:8;var c=Z.T,r={};r.types=c!==null?c.types:null,Z.T=r,pu(e,!1,t,l);try{var h=n(),j=Z.S;if(j!==null&&j(r,h),h!==null&&typeof h=="object"&&typeof h.then=="function"){var A=jx(h,a);Fn(e,t,A,Rt(e))}else Fn(e,t,a,Rt(e))}catch(R){Fn(e,t,{then:function(){},status:"rejected",reason:R},Rt())}finally{ee.p=s,c!==null&&r.types!==null&&(c.types=r.types),Z.T=c}}function Ex(){}function xu(e,t,l,a){if(e.tag!==5)throw Error(o(476));var n=sd(e).queue;nd(e,n,t,Ie,l===null?Ex:function(){return id(e),l(a)})}function sd(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Ie,baseState:Ie,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:_l,lastRenderedState:Ie},next:null};var l={};return t.next={memoizedState:l,baseState:l,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:_l,lastRenderedState:l},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function id(e){var t=sd(e);t.next===null&&(t=e.alternate.memoizedState),Fn(e,t.next.queue,{},Rt())}function vu(){return ct(jn)}function cd(){return Ze().memoizedState}function ud(){return Ze().memoizedState}function zx(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var l=Rt();e=Ll(l);var a=Xl(t,e,l);a!==null&&(wt(a,t,l),Vn(a,t,l)),t={cache:Vc()},e.payload=t;return}t=t.return}}function Ox(e,t,l){var a=Rt();l={lane:a,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},mi(e)?od(t,l):(l=Uc(e,t,l,a),l!==null&&(wt(l,e,a),fd(l,t,a)))}function rd(e,t,l){var a=Rt();Fn(e,t,l,a)}function Fn(e,t,l,a){var n={lane:a,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null};if(mi(e))od(t,n);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var c=t.lastRenderedState,r=s(c,l);if(n.hasEagerState=!0,n.eagerState=r,Ot(r,c))return Qs(e,t,n,0),Be===null&&Vs(),!1}catch{}finally{}if(l=Uc(e,t,n,a),l!==null)return wt(l,e,a),fd(l,t,a),!0}return!1}function pu(e,t,l,a){if(a={lane:2,revertLane:cr(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},mi(e)){if(t)throw Error(o(479))}else t=Uc(e,l,a,2),t!==null&&wt(t,e,2)}function mi(e){var t=e.alternate;return e===fe||t!==null&&t===fe}function od(e,t){Pa=ci=!0;var l=e.pending;l===null?t.next=t:(t.next=l.next,l.next=t),e.pending=t}function fd(e,t,l){if((l&4194048)!==0){var a=t.lanes;a&=e.pendingLanes,l|=a,t.lanes=l,oo(e,l)}}var xi={readContext:ct,use:oi,useCallback:Xe,useContext:Xe,useEffect:Xe,useImperativeHandle:Xe,useLayoutEffect:Xe,useInsertionEffect:Xe,useMemo:Xe,useReducer:Xe,useRef:Xe,useState:Xe,useDebugValue:Xe,useDeferredValue:Xe,useTransition:Xe,useSyncExternalStore:Xe,useId:Xe,useHostTransitionStatus:Xe,useFormState:Xe,useActionState:Xe,useOptimistic:Xe,useMemoCache:Xe,useCacheRefresh:Xe,useEffectEvent:Xe},dd={readContext:ct,use:oi,useCallback:function(e,t){return vt().memoizedState=[e,t===void 0?null:t],e},useContext:ct,useEffect:$f,useImperativeHandle:function(e,t,l){l=l!=null?l.concat([e]):null,di(4194308,4,Pf.bind(null,t,e),l)},useLayoutEffect:function(e,t){return di(4194308,4,e,t)},useInsertionEffect:function(e,t){di(4,2,e,t)},useMemo:function(e,t){var l=vt();t=t===void 0?null:t;var a=e();if(wa){Dl(!0);try{e()}finally{Dl(!1)}}return l.memoizedState=[a,t],a},useReducer:function(e,t,l){var a=vt();if(l!==void 0){var n=l(t);if(wa){Dl(!0);try{l(t)}finally{Dl(!1)}}}else n=t;return a.memoizedState=a.baseState=n,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},a.queue=e,e=e.dispatch=Ox.bind(null,fe,e),[a.memoizedState,e]},useRef:function(e){var t=vt();return e={current:e},t.memoizedState=e},useState:function(e){e=ou(e);var t=e.queue,l=rd.bind(null,fe,t);return t.dispatch=l,[e.memoizedState,l]},useDebugValue:hu,useDeferredValue:function(e,t){var l=vt();return mu(l,e,t)},useTransition:function(){var e=ou(!1);return e=nd.bind(null,fe,e.queue,!0,!1),vt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,l){var a=fe,n=vt();if(he){if(l===void 0)throw Error(o(407));l=l()}else{if(l=t(),Be===null)throw Error(o(349));(ge&127)!==0||Df(a,t,l)}n.memoizedState=l;var s={value:l,getSnapshot:t};return n.queue=s,$f(Uf.bind(null,a,s,e),[e]),a.flags|=2048,tn(9,{destroy:void 0},Rf.bind(null,a,s,l,t),null),l},useId:function(){var e=vt(),t=Be.identifierPrefix;if(he){var l=il,a=sl;l=(a&~(1<<32-Et(a)-1)).toString(32)+l,t="_"+t+"R_"+l,l=ui++,0<\/script>",s=s.removeChild(s.firstChild);break;case"select":s=typeof a.is=="string"?c.createElement("select",{is:a.is}):c.createElement("select"),a.multiple?s.multiple=!0:a.size&&(s.size=a.size);break;default:s=typeof a.is=="string"?c.createElement(n,{is:a.is}):c.createElement(n)}}s[it]=t,s[yt]=a;e:for(c=t.child;c!==null;){if(c.tag===5||c.tag===6)s.appendChild(c.stateNode);else if(c.tag!==4&&c.tag!==27&&c.child!==null){c.child.return=c,c=c.child;continue}if(c===t)break e;for(;c.sibling===null;){if(c.return===null||c.return===t)break e;c=c.return}c.sibling.return=c.return,c=c.sibling}t.stateNode=s;e:switch(ft(s,n,a),n){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}a&&El(t)}}return Ye(t),t.subtreeFlags&=-33554433,Au(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,l),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&El(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(o(166));if(e=Ml.current,$a(t)){if(e=t.stateNode,l=t.memoizedProps,a=null,n=at,n!==null)switch(n.tag){case 27:case 5:a=n.memoizedProps}e[it]=t,e=!!(e.nodeValue===l||a!==null&&a.suppressHydrationWarning===!0||Uh(e.nodeValue,l)),e||ql(t,!0)}else e=rs(e).createTextNode(a),e[it]=t,t.stateNode=e}return Ye(t),null;case 31:if(l=t.memoizedState,e===null||e.memoizedState!==null){if(a=$a(t),l!==null){if(e===null){if(!a)throw Error(o(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(557));e[it]=t}else xa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ye(t),e=!1}else l=Gc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),e=!0;if(!e)return t.flags&256?(At(t),t):(At(t),null);if((t.flags&128)!==0)throw Error(o(558))}return Ye(t),null;case 13:if(a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(n=$a(t),a!==null&&a.dehydrated!==null){if(e===null){if(!n)throw Error(o(318));if(n=t.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(o(317));n[it]=t}else xa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ye(t),n=!1}else n=Gc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),n=!0;if(!n)return t.flags&256?(At(t),t):(At(t),null)}return At(t),(t.flags&128)!==0?(t.lanes=l,t):(l=a!==null,e=e!==null&&e.memoizedState!==null,l&&(a=t.child,n=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(n=a.alternate.memoizedState.cachePool.pool),s=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(s=a.memoizedState.cachePool.pool),s!==n&&(a.flags|=2048)),l!==e&&l&&(t.child.flags|=8192),ji(t,t.updateQueue),Ye(t),null);case 4:return Da(),e===null&&fr(t.stateNode.containerInfo),t.flags|=67108864,Ye(t),null;case 10:return Sl(t.type),Ye(t),null;case 19:if(tu(t),a=t.memoizedState,a===null)return Ye(t),null;if(n=(t.flags&128)!==0,s=a.rendering,s===null)if(n)In(a,!1);else{if(Ve!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(s=ii(e),s!==null){for(t.flags|=128,In(a,!1),e=s.updateQueue,t.updateQueue=e,ji(t,e),t.subtreeFlags=0,e=l,l=t.child;l!==null;)rf(l,e),l=l.sibling;return Kn(t,rt.current&1|2),he&&jl(t,a.treeForkCount),t.child}e=e.sibling}a.tail!==null&&_t()>Di&&(t.flags|=128,n=!0,In(a,!1),t.lanes=4194304)}else{if(!n)if(e=ii(s),e!==null){if(t.flags|=128,n=!0,e=e.updateQueue,t.updateQueue=e,ji(t,e),In(a,!0),a.tail===null&&a.tailMode!=="collapsed"&&a.tailMode!=="visible"&&!s.alternate&&!he)return Ye(t),null}else 2*_t()-a.renderingStartTime>Di&&l!==536870912&&(t.flags|=128,n=!0,In(a,!1),t.lanes=4194304);a.isBackwards?(s.sibling=t.child,t.child=s):(e=a.last,e!==null?e.sibling=s:t.child=s,a.last=s)}if(a.tail!==null){e=a.tail;e:{for(l=e;l!==null;){if(l.alternate!==null){l=!1;break e}l=l.sibling}l=!0}return a.rendering=e,a.tail=e.sibling,a.renderingStartTime=_t(),e.sibling=null,s=rt.current,s=n?s&1|2:s&1,a.tailMode==="visible"||a.tailMode==="collapsed"||!l||he?Kn(t,s):(l=s,je(ut,t),je(rt,l),ht===null&&(ht=t)),he&&jl(t,a.treeForkCount),e}return Ye(t),null;case 22:case 23:return At(t),Pc(),a=t.memoizedState!==null,e!==null?e.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(l&536870912)!==0&&(t.flags&128)===0&&(Ye(t),t.subtreeFlags&6&&(t.flags|=8192)):Ye(t),l=t.updateQueue,l!==null&&ji(t,l.retryQueue),l=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==l&&(t.flags|=2048),e!==null&&Re(ba),null;case 24:return l=null,e!==null&&(l=e.memoizedState.cache),t.memoizedState.cache!==l&&(t.flags|=2048),Sl(Ke),Ye(t),null;case 25:return null;case 30:return t.flags|=33554432,Ye(t),null}throw Error(o(156,t.tag))}function Hx(e,t){switch(kc(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Sl(Ke),Da(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Ts(t),null;case 31:if(t.memoizedState!==null){if(At(t),t.alternate===null)throw Error(o(340));xa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(At(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(o(340));xa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return tu(t),e=t.flags,e&65536?(t.flags=e&-65537|128,e=t.memoizedState,e!==null&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return Da(),null;case 10:return Sl(t.type),null;case 22:case 23:return At(t),Pc(),e!==null&&Re(ba),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Sl(Ke),null;case 25:return null;default:return null}}function Bd(e,t){switch(kc(t),t.tag){case 3:Sl(Ke),Da();break;case 26:case 27:case 5:Ts(t);break;case 4:Da();break;case 31:t.memoizedState!==null&&At(t);break;case 13:At(t);break;case 19:tu(t);break;case 10:Sl(t.type);break;case 22:case 23:At(t),Pc(),e!==null&&Re(ba);break;case 24:Sl(Ke)}}function Pn(e,t){try{var l=t.updateQueue,a=l!==null?l.lastEffect:null;if(a!==null){var n=a.next;l=n;do{if((l.tag&e)===e){a=void 0;var s=l.create,c=l.inst;a=s(),c.destroy=a}l=l.next}while(l!==n)}}catch(r){Ae(t,t.return,r)}}function Kl(e,t,l){try{var a=t.updateQueue,n=a!==null?a.lastEffect:null;if(n!==null){var s=n.next;a=s;do{if((a.tag&e)===e){var c=a.inst,r=c.destroy;if(r!==void 0){c.destroy=void 0,n=t;var h=l,j=r;try{j()}catch(A){Ae(n,h,A)}}}a=a.next}while(a!==s)}}catch(A){Ae(t,t.return,A)}}function qd(e){var t=e.updateQueue;if(t!==null){var l=e.stateNode;try{Ef(t,l)}catch(a){Ae(e,e.return,a)}}}function kd(e,t,l){l.props=_a(e.type,e.memoizedProps),l.state=e.memoizedState;try{l.componentWillUnmount()}catch(a){Ae(e,t,a)}}function cl(e,t){try{var l=e.ref;if(l!==null){switch(e.tag){case 26:case 27:case 5:var a=e.stateNode;break;case 30:var n=e.stateNode,s=gl(e.memoizedProps,n);(n.ref===null||n.ref.name!==s)&&(n.ref=Zh(s)),a=n.ref;break;case 7:if(e.stateNode===null){var c=new Ut(e);f(e.child,!1,T1,c,void 0,void 0),e.stateNode=c}a=e.stateNode;break;default:a=e.stateNode}typeof l=="function"?e.refCleanup=l(a):l.current=a}}catch(r){Ae(e,t,r)}}function ot(e,t){var l=e.ref,a=e.refCleanup;if(l!==null)if(typeof a=="function")try{a()}catch(n){Ae(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof l=="function")try{l(null)}catch(n){Ae(e,t,n)}else l.current=null}function Ni(e,t){if((e.tag===5||e.tag===27||e.tag===6)&&e.alternate===null&&t!==null)for(var l=0;l title"))),ft(a,t,l),a[it]=e,lt(a),t=a;break e;case"link":if(s=rm("link","href",n).get(t+(l.href||""))){for(c=0;cde&&(c=de,de=F,F=c);var b=Fo(r,F),p=Fo(r,de);if(b&&p&&(T.rangeCount!==1||T.anchorNode!==b.node||T.anchorOffset!==b.offset||T.focusNode!==p.node||T.focusOffset!==p.offset)){var S=R.createRange();S.setStart(b.node,b.offset),T.removeAllRanges(),F>de?(T.addRange(S),T.extend(p.node,p.offset)):(S.setEnd(p.node,p.offset),T.addRange(S))}}}}for(R=[],T=r;T=T.parentNode;)T.nodeType===1&&R.push({element:T,left:T.scrollLeft,top:T.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;rl?32:l,Z.T=null,l=Wu,Wu=null;var s=Pt,c=hl;if(Le=0,Oa=Pt=null,hl=0,(Ee&6)!==0)throw Error(o(331));var r=Ee;if(Ee|=4,uh(s.current),sh(s,s.current,c,l),Ee=r,is(0,!1),Tt&&typeof Tt.onPostCommitFiberRoot=="function")try{Tt.onPostCommitFiberRoot(wn,s)}catch{}return!0}finally{ee.p=n,Z.T=a,Sh(e,t)}}function wh(e,t,l){t=Gt(l,t),t=bu(e.stateNode,t,2),e=Xl(e,t,2),e!==null&&(Tn(e,2),ml(e))}function Ae(e,t,l){if(e.tag===3)wh(e,e,l);else for(;t!==null;){if(t.tag===3){wh(t,e,l);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(Wl===null||!Wl.has(a))){e=Gt(l,e),l=bd(2),a=Xl(t,l,2),a!==null&&(jd(l,a,t,e),Tn(a,2),ml(a));break}}t=t.return}}function nr(e,t,l){var a=e.pingCache;if(a===null){a=e.pingCache=new Yx;var n=new Set;a.set(t,n)}else n=a.get(t),n===void 0&&(n=new Set,a.set(t,n));n.has(l)||(Ju=!0,n.add(l),e=Jx.bind(null,e,t,l),t.then(e,e))}function Jx(e,t,l){var a=e.pingCache;a!==null&&a.delete(t),e.pingedLanes|=e.suspendedLanes&l,e.warmLanes&=~l,Be===e&&(ge&l)===l&&((Ve===4||Ve===3&&(ge&62914560)===ge&&300>_t()-Ci)&&(Ee&2)===0?hn(e,0):Mi|=l,un===ge&&(un=0)),ml(e)}function _h(e,t){t===0&&(t=uo()),e=ha(e,t),e!==null&&(Tn(e,t),ml(e))}function $x(e){var t=e.memoizedState,l=0;t!==null&&(l=t.retryLane),_h(e,l)}function Fx(e,t){var l=0;switch(e.tag){case 31:case 13:var a=e.stateNode,n=e.memoizedState;n!==null&&(l=n.retryLane);break;case 19:a=e.stateNode;break;case 22:a=e.stateNode._retryCache;break;default:throw Error(o(314))}a!==null&&a.delete(t),_h(e,l)}function Wx(e,t){return cc(e,t)}var xn=null,vn=null,sr=!1,Yi=!1,ir=!1,Pl=0;function ml(e){e!==vn&&e.next===null&&(vn===null?xn=vn=e:vn=vn.next=e),Yi=!0,sr||(sr=!0,Px())}function is(e,t){if(!ir&&Yi){ir=!0;do for(var l=!1,a=xn;a!==null;){if(e!==0){var n=a.pendingLanes;if(n===0)var s=0;else{var c=a.suspendedLanes,r=a.pingedLanes;s=(1<<31-Et(42|e)+1)-1,s&=n&~(c&~r),s=s&201326741?s&201326741|1:s?s|2:0}s!==0&&(l=!0,Oh(a,s))}else s=ge,s=Ms(a,a===Be?s:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(s&3)===0||_n(a,s)||(l=!0,Oh(a,s));a=a.next}while(l);ir=!1}}function Ix(){Th()}function Th(){Yi=sr=!1;var e=0;Pl!==0&&o1()&&(e=Pl);for(var t=_t(),l=null,a=xn;a!==null;){var n=a.next,s=Eh(a,t);s===0?(a.next=null,l===null?xn=n:l.next=n,n===null&&(vn=l)):(l=a,(e!==0||(s&3)!==0)&&(Yi=!0)),a=n}Le!==0&&Le!==5||is(e),Pl!==0&&(Pl=0)}function Eh(e,t){for(var l=e.suspendedLanes,a=e.pingedLanes,n=e.expirationTimes,s=e.pendingLanes&-62914561;0r)break;var A=h.transferSize,R=h.initiatorType;A&&Hh(R)&&(h=h.responseEnd,c+=A*(hQi){F.length=Y;break}S=new Promise(v1.bind(S)),F.push(S)}}}if(0"u"?null:document;function sm(e,t,l){var a=gn;if(a&&typeof t=="string"&&t){var n=kt(t);n='link[rel="'+e+'"][href="'+n+'"]',typeof l=="string"&&(n+='[crossorigin="'+l+'"]'),nm.has(n)||(nm.add(n),e={rel:e,crossOrigin:l,href:t},a.querySelector(n)===null&&(t=a.createElement("link"),ft(t,"link",e),lt(t),a.head.appendChild(t)))}}function U1(e){Ol.D(e),sm("dns-prefetch",e,null)}function H1(e,t){Ol.C(e,t),sm("preconnect",e,t)}function B1(e,t,l){Ol.L(e,t,l);var a=gn;if(a&&e&&t){var n='link[rel="preload"][as="'+kt(t)+'"]';t==="image"&&l&&l.imageSrcSet?(n+='[imagesrcset="'+kt(l.imageSrcSet)+'"]',typeof l.imageSizes=="string"&&(n+='[imagesizes="'+kt(l.imageSizes)+'"]')):n+='[href="'+kt(e)+'"]';var s=n;switch(t){case"style":s=yn(e);break;case"script":s=bn(e)}if(!(Kt.has(s)||(e=W({rel:"preload",href:t==="image"&&l&&l.imageSrcSet?void 0:e,as:t},l),Kt.set(s,e),a.querySelector(n)!==null||t==="style"&&a.querySelector(fs(s))||t==="script"&&a.querySelector(ds(s))))){var c=a.createElement("link");ft(c,"link",e),t==="style"&&(c[Cs]=!0,c.onload=c.onerror=function(){po(c)}),lt(c),a.head.appendChild(c)}}}function q1(e,t){Ol.m(e,t);var l=gn;if(l&&e){var a=t&&typeof t.as=="string"?t.as:"script",n='link[rel="modulepreload"][as="'+kt(a)+'"][href="'+kt(e)+'"]',s=n;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":s=bn(e)}if(!Kt.has(s)&&(e=W({rel:"modulepreload",href:e},t),Kt.set(s,e),l.querySelector(n)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(l.querySelector(ds(s)))return}a=l.createElement("link"),ft(a,"link",e),lt(a),l.head.appendChild(a)}}}function k1(e,t,l){Ol.S(e,t,l);var a=gn;if(a&&e){var n=Ha(a).hoistableStyles,s=yn(e);t=t||"default";var c=n.get(s);if(!c){var r={loading:0,preload:null};if(c=a.querySelector(fs(s)))r.loading=5;else{e=W({rel:"stylesheet",href:e,"data-precedence":t},l),(l=Kt.get(s))&&Er(e,l);var h=c=a.createElement("link");lt(h),ft(h,"link",e),h._p=new Promise(function(j,A){h.onload=j,h.onerror=A}),h.addEventListener("load",function(){r.loading|=1}),h.addEventListener("error",function(){r.loading|=2}),r.loading|=4,Xi(c,t,a)}c={type:"stylesheet",instance:c,count:1,state:r},n.set(s,c)}}}function Y1(e,t){Ol.X(e,t);var l=gn;if(l&&e){var a=Ha(l).hoistableScripts,n=bn(e),s=a.get(n);s||(s=l.querySelector(ds(n)),s||(e=W({src:e,async:!0},t),(t=Kt.get(n))&&zr(e,t),s=l.createElement("script"),lt(s),ft(s,"link",e),l.head.appendChild(s)),s={type:"script",instance:s,count:1,state:null},a.set(n,s))}}function G1(e,t){Ol.M(e,t);var l=gn;if(l&&e){var a=Ha(l).hoistableScripts,n=bn(e),s=a.get(n);s||(s=l.querySelector(ds(n)),s||(e=W({src:e,async:!0,type:"module"},t),(t=Kt.get(n))&&zr(e,t),s=l.createElement("script"),lt(s),ft(s,"link",e),l.head.appendChild(s)),s={type:"script",instance:s,count:1,state:null},a.set(n,s))}}function im(e,t,l,a){var n=(n=Ml.current)?os(n):null;if(!n)throw Error(o(446));switch(e){case"meta":case"title":return null;case"style":return typeof l.precedence=="string"&&typeof l.href=="string"?(l=yn(l.href),t=Ha(n).hoistableStyles,a=t.get(l),a||(a={type:"style",instance:null,count:0,state:null},t.set(l,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(l.rel==="stylesheet"&&typeof l.href=="string"&&typeof l.precedence=="string"){e=yn(l.href);var s=Ha(n).hoistableStyles,c=s.get(e);if(c||(n=n.ownerDocument||n,c={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},s.set(e,c),(s=n.querySelector(fs(e)))?s._p||(c.instance=s,c.state.loading=5):(s=Kt.get(e),s||(s={rel:"preload",as:"style",href:l.href,crossOrigin:l.crossOrigin,integrity:l.integrity,media:l.media,hrefLang:l.hrefLang,referrerPolicy:l.referrerPolicy},Kt.set(e,s)),L1(n,e,s,c.state))),t&&a===null)throw Error(o(528,""));return c}if(t&&a!==null)throw Error(o(529,""));return null;case"script":return t=l.async,l=l.src,typeof l=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(l=bn(l),t=Ha(n).hoistableScripts,a=t.get(l),a||(a={type:"script",instance:null,count:0,state:null},t.set(l,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,e))}}function yn(e){return'href="'+kt(e)+'"'}function fs(e){return'link[rel="stylesheet"]['+e+"]"}function cm(e){return W({},e,{"data-precedence":e.precedence,precedence:null})}function L1(e,t,l,a){if(t=e.querySelector('link[rel="preload"][as="style"]['+t+"]")){if(t[Cs]!==!0){a.loading=1;return}}else t=e.createElement("link"),t[Cs]=!0,t.onload=t.onerror=po.bind(null,t),ft(t,"link",l),lt(t),e.head.appendChild(t);a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2})}function bn(e){return'[src="'+kt(e)+'"]'}function ds(e){return"script[async]"+e}function um(e,t,l){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+kt(l.href)+'"]');if(a)return t.instance=a,lt(a),a;var n=W({},l,{"data-href":l.href,"data-precedence":l.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),lt(a),ft(a,"style",n),Xi(a,l.precedence,e),t.instance=a;case"stylesheet":n=yn(l.href);var s=e.querySelector(fs(n));if(s)return t.state.loading|=4,t.instance=s,lt(s),s;a=cm(l),(n=Kt.get(n))&&Er(a,n),s=(e.ownerDocument||e).createElement("link"),lt(s);var c=s;return c._p=new Promise(function(r,h){c.onload=r,c.onerror=h}),ft(s,"link",a),t.state.loading|=4,Xi(s,l.precedence,e),t.instance=s;case"script":return s=bn(l.src),(n=e.querySelector(ds(s)))?(t.instance=n,lt(n),n):(a=l,(n=Kt.get(s))&&(a=W({},l),zr(a,n)),e=e.ownerDocument||e,n=e.createElement("script"),lt(n),ft(n,"link",a),e.head.appendChild(n),t.instance=n);case"void":return null;default:throw Error(o(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,Xi(a,l.precedence,e));return t.instance}function Xi(e,t,l){for(var a=l.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),n=a.length?a[a.length-1]:null,s=n,c=0;c title"):null)}function X1(e,t,l){if(l===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function om(e,t){return e==="img"&&t.src!=null&&t.src!==""&&t.onLoad==null&&t.loading!=="lazy"}function fm(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function dm(e){return(e.width||100)*(e.height||100)*(typeof devicePixelRatio=="number"?devicePixelRatio:1)*.25}function hm(e,t){typeof t.decode=="function"&&(e.imgCount++,t.complete||(e.imgBytes+=dm(t),e.suspenseyImages.push(t)),e=Z1.bind(e),t.decode().then(e,e))}function V1(e,t,l,a){if(l.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(l.state.loading&4)===0){if(l.instance===null){var n=yn(a.href),s=t.querySelector(fs(n));if(s){t=s._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=hs.bind(e),t.then(e,e)),l.state.loading|=4,l.instance=s,lt(s);return}s=t.ownerDocument||t,a=cm(a),(n=Kt.get(n))&&Er(a,n),s=s.createElement("link"),lt(s);var c=s;c._p=new Promise(function(r,h){c.onload=r,c.onerror=h}),ft(s,"link",a),l.instance=s}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(l,t),(t=l.state.preload)&&(l.state.loading&3)===0&&(e.count++,l=hs.bind(e),t.addEventListener("load",l),t.addEventListener("error",l))}}var Qi=0;function Q1(e,t){return e.stylesheets&&e.count===0&&Ki(e,e.stylesheets),0Qi?50:800)+t);return e.unsuspend=l,function(){e.unsuspend=null,clearTimeout(a),clearTimeout(n)}}:null}function mm(e){if(e.count===0&&(e.imgCount===0||!e.waitingForImages)){if(e.stylesheets)Ki(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function hs(){this.count--,mm(this)}function Z1(){this.imgCount--,mm(this)}var Zi=null;function Ki(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Zi=new Map,t.forEach(K1,e),Zi=null,hs.call(e))}function K1(e,t){if(!(t.state.loading&4)){var l=Zi.get(e);if(l)var a=l.get(null);else{l=new Map,Zi.set(e,l);for(var n=e.querySelectorAll("link[data-precedence],style[data-precedence]"),s=0;s"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(u)}catch(m){console.error(m)}}return u(),qr.exports=rv(),qr.exports}var fv=ov();/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const dv=u=>u.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Wm=(...u)=>u.filter((m,d,o)=>!!m&&o.indexOf(m)===d).join(" ");/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var hv={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const mv=k.forwardRef(({color:u="currentColor",size:m=24,strokeWidth:d=2,absoluteStrokeWidth:o,className:g="",children:O,iconNode:U,..._},x)=>k.createElement("svg",{ref:x,...hv,width:m,height:m,stroke:u,strokeWidth:o?Number(d)*24/Number(m):d,className:Wm("lucide",g),..._},[...U.map(([M,w])=>k.createElement(M,w)),...Array.isArray(O)?O:[O]]));/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const re=(u,m)=>{const d=k.forwardRef(({className:o,...g},O)=>k.createElement(mv,{ref:O,iconNode:m,className:Wm(`lucide-${dv(u)}`,o),...g}));return d.displayName=`${u}`,d};/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const xv=re("ArrowDownRight",[["path",{d:"m7 7 10 10",key:"1fmybs"}],["path",{d:"M17 7v10H7",key:"6fjiku"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const vv=re("ArrowDownWideNarrow",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"M11 4h10",key:"1w87gc"}],["path",{d:"M11 8h7",key:"djye34"}],["path",{d:"M11 12h4",key:"q8tih4"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Im=re("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const pv=re("ArrowUpRight",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const gv=re("BookOpen",[["path",{d:"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z",key:"vv98re"}],["path",{d:"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z",key:"1cyq3y"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const yv=re("Box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Pm=re("Building2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const bv=re("Camera",[["path",{d:"M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z",key:"1tc9qg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const e0=re("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const jv=re("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Nv=re("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Sv=re("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const t0=re("CirclePlay",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polygon",{points:"10 8 16 12 10 16 10 8",key:"1cimsy"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const wv=re("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const _v=re("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const qm=re("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Tv=re("Eraser",[["path",{d:"m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21",key:"182aya"}],["path",{d:"M22 21H7",key:"t4ddhn"}],["path",{d:"m5 11 9 9",key:"1mo9qw"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ev=re("EyeOff",[["path",{d:"M9.88 9.88a3 3 0 1 0 4.24 4.24",key:"1jxqfv"}],["path",{d:"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68",key:"9wicm4"}],["path",{d:"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61",key:"1jreej"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const zv=re("Eye",[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ov=re("FileJson",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"1oajmo"}],["path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"mpwhp6"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Av=re("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Mv=re("Film",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 3v18",key:"bbkbws"}],["path",{d:"M3 7.5h4",key:"zfgn84"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 16.5h4",key:"1230mu"}],["path",{d:"M17 3v18",key:"in4fa5"}],["path",{d:"M17 7.5h4",key:"myr1c1"}],["path",{d:"M17 16.5h4",key:"go4c1d"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ir=re("Github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Cv=re("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Dv=re("GraduationCap",[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Rv=re("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Uv=re("Lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Hv=re("Linkedin",[["path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",key:"c2jq9f"}],["rect",{width:"4",height:"12",x:"2",y:"9",key:"mk3on5"}],["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Bv=re("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Pr=re("MapPin",[["path",{d:"M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z",key:"2oe9fu"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const qv=re("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const kv=re("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Yv=re("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Lr=re("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Gv=re("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Lv=re("Smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Xv=re("Star",[["polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2",key:"8f66p6"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Vv=re("Tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Qv=re("TrafficCone",[["path",{d:"M9.3 6.2a4.55 4.55 0 0 0 5.4 0",key:"flyxqv"}],["path",{d:"M7.9 10.7c.9.8 2.4 1.3 4.1 1.3s3.2-.5 4.1-1.3",key:"1nlxxg"}],["path",{d:"M13.9 3.5a1.93 1.93 0 0 0-3.8-.1l-3 10c-.1.2-.1.4-.1.6 0 1.7 2.2 3 5 3s5-1.3 5-3c0-.2 0-.4-.1-.5Z",key:"vz7x1l"}],["path",{d:"m7.5 12.2-4.7 2.7c-.5.3-.8.7-.8 1.1s.3.8.8 1.1l7.6 4.5c.9.5 2.1.5 3 0l7.6-4.5c.7-.3 1-.7 1-1.1s-.3-.8-.8-1.1l-4.7-2.8",key:"1xfzlw"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Zv=re("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Kv=re("Undo2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const $r=re("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** + * @license lucide-react v0.400.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const tc=re("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);let Xr=null;function eo(){return Xr||(Xr=fetch(`./data/api.json?t=${Date.now()}`,{cache:"no-store"}).then(u=>u.ok?u.json():{api:""}).then(u=>(u.api??"").replace(/\/$/,"")).catch(()=>"")),Xr}const Vr=new Map;function tl(u){return Vr.has(u)||Vr.set(u,fetch(u).then(m=>{if(!m.ok)throw new Error(`${m.status} ${u}`);return m.json()})),Vr.get(u)}const Ns={person:"#fbbf24",bicycle:"#38bdf8",car:"#4ade80",motorcycle:"#f472b6",bus:"#a78bfa",truck:"#2dd4bf",light_red:"#ef4444",light_not_red:"#22c55e"},to={red_light:{color:"#ef4444",name:"Red-light running"},stop_line:{color:"#f97316",name:"Stop-line violation"},jaywalking:{color:"#eab308",name:"Jaywalking"},failure_to_yield:{color:"#ec4899",name:"Failure to yield"},stopped_vehicle:{color:"#8b5cf6",name:"Stopped vehicle"},congestion:{color:"#3b82f6",name:"Congestion"},accident:{color:"#dc2626",name:"Accident"},near_miss:{color:"#fb7185",name:"Near miss"},conflict:{color:"#e11d48",name:"Serious conflict (PET < 1.5 s)"},wrong_way:{color:"#14b8a6",name:"Wrong way"},illegal_u_turn:{color:"#06b6d4",name:"Illegal U-turn"},illegal_turn:{color:"#0ea5e9",name:"Illegal turn"},solid_line_crossing:{color:"#84cc16",name:"Solid-line crossing"},road_obstacle:{color:"#a3a3a3",name:"Road obstacle"},fire_smoke:{color:"#f59e0b",name:"Fire / smoke"}},We=u=>{var m;return((m=to[u])==null?void 0:m.color)||"#94a3b8"},et=u=>{var m;return((m=to[u])==null?void 0:m.name)||u};function Al(u){if(!isFinite(u))return"โ€“";const m=Math.floor(u/60),d=u-m*60;return`${m}:${d.toFixed(1).padStart(4,"0")}`}function Jv(u){const m=new Set([...u.events||[],...u.labels||[]].map(d=>d[2]));return Object.keys(to).filter(d=>m.has(d))}function Ss(){const u=k.useRef(null),[m,d]=k.useState(0);return k.useEffect(()=>{if(!u.current)return;const o=new ResizeObserver(([g])=>d(g.contentRect.width));return o.observe(u.current),()=>o.disconnect()},[]),[u,m]}function ll(u,m){const[d,o]=k.useState({data:null,error:null});return k.useEffect(()=>{if(!u)return;let g=!0;return o({data:null,error:null}),m(u).then(O=>g&&o({data:O,error:null}),O=>g&&o({data:null,error:O})),()=>{g=!1}},[u]),d}const Fr="Do'ppiX",Jt="https://github.com/ubaydullayevgiyosiddin7-eng/doppix-safejunction",$v=[{name:"Eldor Musayev",role:"Team captain ยท ML Engineer",photo:"./data/team/eldor.jpg",about:"YOLO detector: dataset, fine-tuning and evaluation; the perception pipeline.",github:"",linkedin:"",portfolio:""},{name:"Shohruh Gulmirodov",role:"Web Developer",photo:"./data/team/shohruh.jpg",about:"Team website and the live demo.",github:"",linkedin:"",portfolio:""},{name:"Berdimurodov Soibnazar",role:"Cybersecurity Engineer ยท Cyber University",photo:"./data/team/soibnazar.jpg",about:"",github:"",linkedin:"",portfolio:""}];function Fv({className:u=""}){const[m,d]=k.useState(!1);return k.useEffect(()=>{if(!m)return;const o=g=>g.key==="Escape"&&d(!1);return window.addEventListener("keydown",o),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",o),document.body.style.overflow=""}},[m]),i.jsxs(i.Fragment,{children:[i.jsxs("button",{onClick:()=>d(!0),className:`group flex items-center gap-2 rounded-lg border border-white/10 bg-white/5 py-1.5 pl-1.5 pr-3 text-left hover:bg-white/10 ${u}`,children:[i.jsxs("span",{className:"relative h-10 w-16 shrink-0 overflow-hidden rounded-md",children:[i.jsx("img",{src:"./data/video/explainer.jpg",alt:"",className:"h-full w-full object-cover"}),i.jsx("span",{className:"absolute inset-0 flex items-center justify-center bg-black/40 text-white group-hover:bg-black/20",children:"โ–ถ"})]}),i.jsxs("span",{children:[i.jsxs("span",{className:"flex items-center gap-1 text-sm font-semibold text-white",children:[i.jsx(Mv,{size:14,className:"text-amber-300"})," Watch the 3-min explainer"]}),i.jsx("span",{className:"block text-[11px] text-slate-400",children:"The problem, the scheme, the live system, the numbers"})]})]}),m&&i.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/85 p-3 backdrop-blur-sm",onClick:()=>d(!1),children:i.jsxs("div",{className:"relative w-full max-w-6xl",onClick:o=>o.stopPropagation(),children:[i.jsxs("button",{onClick:()=>d(!1),"aria-label":"Close",className:"absolute -top-10 right-0 flex items-center gap-1 text-sm text-slate-200 hover:text-white",children:[i.jsx(tc,{size:18})," Close"]}),i.jsx("video",{src:"./data/video/explainer.mp4",poster:"./data/video/explainer.jpg",controls:!0,autoPlay:!0,playsInline:!0,className:"w-full rounded-xl shadow-2xl"})]})})]})}const Wv=[["2ร— real time","on one RTX 3060 next to the video archive; about $13 per camera per month for infrastructure"],["0.83","event score (macro F1, 6 classes) on our own labels of a Tashkent junction"],["9","cameras it had never seen, run live: New York, Tokyo, Tehran, Korea, Ottawa; night, rain, snow, dusk, drone views"],["0.19 โ†’ 0.58","detector mAP50 on 35 REAL night frames from 3 cameras never trained on (our labels): each camera auto-picks the detector that sees it"]],Iv=[[Qv,"Violations + PET conflicts"],[Pr,"Hotspot map + PDF report"],[Im,"City-wide risk ranking"],[Gv,"Faces and plates blurred"]];function Pv(){const[u,m]=k.useState(null);return k.useEffect(()=>{let d=!0;return eo().then(o=>fetch(`${o}/api/health`).then(g=>g.json()).then(g=>d&&m(g)).catch(()=>d&&m(!1))),()=>{d=!1}},[]),u}function ep(){const{data:u}=ll("./data/hero/cameras.json",tl);return u?i.jsxs("div",{className:"relative",children:[i.jsx("div",{className:"absolute -inset-3 rounded-3xl bg-gradient-to-tr from-amber-500/20 via-transparent to-red-500/20 blur-2xl"}),i.jsx("div",{className:"relative grid grid-cols-2 gap-2",children:u.map(m=>i.jsxs("div",{className:"relative overflow-hidden rounded-xl border border-slate-700 shadow-xl shadow-black/50",style:{aspectRatio:m.aspect},children:[i.jsx("img",{src:m.frame,alt:m.label,className:"absolute inset-0 h-full w-full object-cover"}),i.jsx("svg",{viewBox:"0 0 1000 1000",preserveAspectRatio:"none",className:"absolute inset-0 h-full w-full",children:m.hotspots.map(([d,o,g],O)=>i.jsx("ellipse",{cx:d*1e3,cy:o*1e3,rx:"9",ry:9*m.aspect,fill:We(g),stroke:"#0f172a",strokeWidth:"2"},O))}),i.jsxs("div",{className:"absolute inset-x-0 bottom-0 bg-gradient-to-t from-slate-950/95 to-transparent p-2 pt-6",children:[i.jsx("div",{className:"text-xs font-semibold text-white",children:m.label}),i.jsxs("div",{className:"text-[10px] text-slate-300",children:[m.serious," serious conflicts ยท ",m.events," events ยท ",m.minutes," min"]})]})]},m.label))}),i.jsx("p",{className:"relative mt-2 text-center text-[11px] text-slate-400",children:"Real output on four cameras: dots = where events and serious conflicts happened. Faces and plates blurred."})]}):i.jsx("div",{className:"aspect-video animate-pulse rounded-2xl bg-slate-800/60"})}function tp(){const u=Pv(),m=()=>{var d;(d=document.getElementById("analyze"))==null||d.scrollIntoView({behavior:"smooth"}),window.dispatchEvent(new CustomEvent("sj:sample",{detail:"korea"}))};return i.jsxs("section",{className:"relative overflow-hidden border-b border-slate-800",children:[i.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_top_right,rgba(245,158,11,0.12),transparent_55%),radial-gradient(ellipse_at_bottom_left,rgba(239,68,68,0.08),transparent_50%)]"}),i.jsxs("div",{className:"relative mx-auto grid max-w-7xl items-center gap-10 px-4 pb-10 pt-14 sm:pt-20 lg:grid-cols-[1.05fr_1fr]",children:[i.jsxs("div",{children:[i.jsxs("div",{className:"mb-5 flex flex-wrap items-center gap-2",children:[i.jsx("p",{className:"chip border-amber-500/40 text-amber-300",children:"Startup ยท WIUT Hackathon 2026 Final ยท Computer Vision"}),i.jsxs("span",{className:`chip ${u?"border-emerald-500/40 text-emerald-300":"border-white/10 text-slate-400"}`,children:[i.jsx("span",{className:`mr-1.5 inline-block h-2 w-2 rounded-full ${u?"animate-pulse bg-emerald-400":u===!1?"bg-slate-500":"animate-pulse bg-amber-400"}`}),u?`Live ยท ${u.device} online`:u===!1?"GPU server offline ยท recorded results below":"Connecting to the GPU serverโ€ฆ"]})]}),i.jsxs("h1",{className:"font-display text-3xl font-bold leading-[1.1] tracking-tight text-white sm:text-5xl",children:["Turn any traffic camera into a"," ",i.jsx("span",{className:"bg-gradient-to-r from-amber-300 to-red-400 bg-clip-text text-transparent",children:"road-safety auditor"})]}),i.jsx("p",{className:"mt-5 max-w-xl text-lg leading-relaxed text-slate-300",children:"SafeJunction watches the CCTV a city already has, finds red-light running, drivers not yielding to pedestrians, wrong-way driving and near misses, and tells the traffic engineer what to change, before the crash, with faces and plates blurred."}),i.jsx(Fv,{className:"mt-5"}),i.jsx("ul",{className:"mt-5 grid max-w-xl grid-cols-2 gap-2 text-sm text-slate-200",children:Iv.map(([d,o])=>i.jsxs("li",{className:"flex items-center gap-2",children:[i.jsx(d,{size:16,className:"shrink-0 text-amber-300"}),o]},o))}),i.jsxs("div",{className:"mt-7 flex flex-wrap gap-3",children:[i.jsxs("button",{onClick:m,disabled:!u,className:"btn bg-amber-500 px-4 py-2.5 text-slate-950 hover:bg-amber-400 disabled:opacity-50",children:[i.jsx(t0,{size:18})," Live demo: a camera in Korea"]}),i.jsxs("a",{href:"#analyze",className:"btn border border-amber-500/50 px-4 py-2.5 text-amber-200 hover:bg-amber-500/10",children:[i.jsx($r,{size:16})," Upload your video"]}),i.jsxs("a",{href:"#network",className:"btn border border-slate-600 px-4 py-2.5 text-slate-200 hover:bg-slate-800",children:["City dashboard ",i.jsx(Im,{size:16})]}),i.jsx("a",{href:Jt,target:"_blank",rel:"noreferrer",title:"Code on GitHub",className:"btn border border-slate-600 px-3 py-2.5 text-slate-200 hover:bg-slate-800",children:i.jsx(Ir,{size:18})})]})]}),i.jsx(ep,{})]}),i.jsx("div",{className:"relative mx-auto grid max-w-7xl grid-cols-2 gap-3 px-4 pb-14 sm:grid-cols-4",children:Wv.map(([d,o])=>i.jsxs("div",{className:"card p-4",children:[i.jsx("div",{className:"font-display text-2xl font-bold text-white sm:text-3xl",children:d}),i.jsx("div",{className:"mt-1 text-sm text-slate-400",children:o})]},o))})]})}function Ht({id:u,title:m,kicker:d,children:o,intro:g,alt:O=!1}){return i.jsx("section",{id:u,className:O?"border-y border-white/5 bg-white/[0.015]":"",children:i.jsxs("div",{className:"mx-auto max-w-7xl px-4 py-14 sm:py-20",children:[d&&i.jsx("p",{className:"mb-2 font-display text-sm font-semibold uppercase tracking-[0.18em] text-amber-400",children:d}),i.jsx("h2",{className:"font-display text-2xl font-bold tracking-tight text-white sm:text-4xl",children:m}),g&&i.jsx("p",{className:"mt-3 max-w-3xl leading-relaxed text-slate-400",children:g}),i.jsx("div",{className:"mt-8",children:o})]})})}function lp(u){const m=u.classes;return(u.tracks||[]).map(d=>{const o=new Map;for(let g=1;g+5O/1e3)});return{t:d[0],objs:o}})}function ap(u,m){let d=0,o=u.length-1;if(o<0||m>1;u[g].t<=m?d=g:o=g-1}return d}function np(u,m){let d=-1;for(const[o,g]of u||[])if(o<=m)d=g;else break;return d}function sp(u,m){let d=0,o=((u==null?void 0:u.length)||0)-1;if(o<0||m>1;u[g][0]<=m?d=g:o=g-1}return u[d][1]}const ip=["accident","near_miss","red_light","wrong_way","failure_to_yield","jaywalking","illegal_u_turn","illegal_turn","solid_line_crossing","stop_line","stopped_vehicle","road_obstacle","fire_smoke","congestion"],cp={carriageway:{stroke:"rgba(148,163,184,.55)",fill:"rgba(148,163,184,.06)"},islands:{stroke:"rgba(251,191,36,.6)",fill:"rgba(251,191,36,.12)"},crosswalks:{stroke:"rgba(255,255,255,.85)",fill:"rgba(255,255,255,.18)"},lights:{stroke:"rgba(34,197,94,.9)",fill:"rgba(34,197,94,.1)"}},up=k.forwardRef(function({src:m,doc:d,frames:o,layers:g,onTime:O,controls:U=!0,offset:_=0},x){const M=k.useRef(null),w=k.useRef(null),f=k.useRef(0);k.useImperativeHandle(x,()=>({seek(C){const E=M.current;E&&(E.currentTime=Math.max(0,C))},play(){var C;(C=M.current)==null||C.play()},get video(){return M.current}}));const N=k.useMemo(()=>d.events||[],[d]),H=k.useRef(-1),K=()=>{const C=M.current,E=w.current;if(!C||!E)return;const X=C.getBoundingClientRect(),$=window.devicePixelRatio||1,pe=Math.round(X.width*$),Ne=Math.round(X.height*$);(E.width!==pe||E.height!==Ne)&&(E.width=pe,E.height=Ne,E.style.width=`${X.width}px`,E.style.height=`${X.height}px`);const z=E.getContext("2d");z.setTransform(1,0,0,1,0,0),z.clearRect(0,0,pe,Ne);const W=C.videoWidth||16,ce=C.videoHeight||9,He=Math.min(pe/W,Ne/ce),_e=W*He,qe=ce*He;z.translate((pe-_e)/2,(Ne-qe)/2);const Ce=C.currentTime+_;Math.abs(Ce-H.current)>.08&&(H.current=Ce,O==null||O(Ce));const Q=$*Math.max(.7,_e/$/900);if(g.zones&&d.zones){z.lineWidth=1.5*Q;for(const[De,Te]of Object.entries(cp))for(const v of d.zones[De]||[])z.beginPath(),v.forEach(([B,V],G)=>G?z.lineTo(B*_e,V*qe):z.moveTo(B*_e,V*qe)),z.closePath(),z.fillStyle=Te.fill,z.fill(),z.strokeStyle=Te.stroke,z.stroke();z.strokeStyle="#f97316",z.lineWidth=3*Q;for(const De of d.zones.stop_lines||[])z.beginPath(),De.forEach(([Te,v],B)=>B?z.lineTo(Te*_e,v*qe):z.moveTo(Te*_e,v*qe)),z.stroke()}if(g.flow&&d.flow){const{gw:De,gh:Te,cell_w:v,cell_h:B,count:V,dir:G}=d.flow;z.lineWidth=1.6*Q;for(let P=0;P{const v=ip.indexOf(Te);return v<0?99:v};(d.events||[]).forEach(([Te,v,B],V)=>{if(!(Cev))for(const G of d.involved[V]||[])(!se.has(G)||De(B)=0){const De=o[ne],Te=o[ne+1],v=Te&&Te.t>De.t?Math.min(1,(Ce-De.t)/(Te.t-De.t)):0;if(g.trails){const V=new Map;for(let G=Math.max(0,ne-15);G<=ne;G++)for(const[P,ae]of o[G].objs)ae.c.startsWith("light")||(V.has(P)||V.set(P,{c:ae.c,pts:[]}),V.get(P).pts.push([(ae.b[0]+ae.b[2])/2*_e,ae.b[3]*qe]));z.lineWidth=2*Q;for(const{c:G,pts:P}of V.values())P.length<2||(z.strokeStyle=Ns[G]+"99",z.beginPath(),P.forEach(([ae,oe],Z)=>Z?z.lineTo(ae,oe):z.moveTo(ae,oe)),z.stroke())}const B=[];if(g.boxes||se.size){z.font=`${Math.round(11*Q)}px ui-sans-serif, system-ui`,z.textBaseline="bottom";for(const[V,G]of De.objs){let P=G.b;const ae=Te==null?void 0:Te.objs.get(V);ae&&v>0&&(P=P.map((Qe,Re)=>Qe+(ae.b[Re]-Qe)*v));const oe=Ns[G.c]||"#fff",Z=P[0]*_e,ee=P[1]*qe,Ie=(P[2]-P[0])*_e,Bt=(P[3]-P[1])*qe,qt=se.get(V);if(qt){B.push({x:Z,y:ee,w:Ie,h:Bt,label:qt});continue}if(g.boxes&&(z.globalAlpha=se.size?.35:1,z.strokeStyle=oe,z.lineWidth=1.6*Q,z.strokeRect(Z,ee,Ie,Bt),z.globalAlpha=1,g.ids&&!G.c.startsWith("light"))){const Qe=`${G.c==="person"?"ped":G.c} ${V}`,Re=z.measureText(Qe).width+6*Q;z.fillStyle=oe,z.fillRect(Z,ee-13*Q,Re,13*Q),z.fillStyle="#0f172a",z.fillText(Qe,Z+3*Q,ee-1.5*Q)}}z.font=`600 ${Math.round(12*Q)}px ui-sans-serif, system-ui`;for(const{x:V,y:G,w:P,h:ae,label:oe}of B){const Z=We(oe);z.fillStyle=Z+"33",z.fillRect(V,G,P,ae),z.strokeStyle=Z,z.lineWidth=3.5*Q,z.strokeRect(V-2*Q,G-2*Q,P+4*Q,ae+4*Q);const ee=et(oe),Ie=z.measureText(ee).width+10*Q,Bt=Math.max(0,G-20*Q);z.fillStyle=Z,z.beginPath(),z.roundRect(V-2*Q,Bt,Ie,17*Q,4*Q),z.fill(),z.fillStyle="#fff",z.fillText(ee,V+3*Q,Bt+15*Q)}}}const L=N.filter(([De,Te])=>Ce>=De&&Ce<=Te);z.textBaseline="middle",z.font=`600 ${Math.round(13*Q)}px ui-sans-serif, system-ui`;let I=10*Q;for(const[,,De]of L){const Te=et(De),v=z.measureText(Te).width+20*Q;z.fillStyle=We(De),z.globalAlpha=.92,z.beginPath(),z.roundRect(10*Q,I,v,22*Q,6*Q),z.fill(),z.globalAlpha=1,z.fillStyle="#fff",z.fillText(Te,20*Q,I+11*Q),I+=27*Q}const le=np(d.light,Ce),Se=sp(d.risk,Ce),me=_e-150*Q,tt=10*Q;z.fillStyle="rgba(15,23,42,.8)",z.beginPath(),z.roundRect(me,tt,140*Q,52*Q,8*Q),z.fill(),z.fillStyle=le===1?"#ef4444":le===0?"#22c55e":"#64748b",z.beginPath(),z.arc(me+16*Q,tt+16*Q,7*Q,0,7),z.fill(),z.fillStyle="#e2e8f0",z.font=`${Math.round(11*Q)}px ui-sans-serif, system-ui`,z.fillText(le===1?"light: RED":le===0?"light: not red":"light: unknown",me+30*Q,tt+16*Q),z.fillText(`risk ${Se.toFixed(2)}`,me+10*Q,tt+38*Q),z.fillStyle="#334155",z.fillRect(me+68*Q,tt+34*Q,62*Q,8*Q),z.fillStyle=Se>=.5?"#ef4444":Se>=.3?"#f59e0b":"#22c55e",z.fillRect(me+68*Q,tt+34*Q,62*Q*Math.min(1,Se),8*Q)},q=k.useRef(K);return q.current=K,k.useEffect(()=>{requestAnimationFrame(()=>q.current())}),k.useEffect(()=>{const C=M.current;if(!C)return;const E=()=>{q.current(),!C.paused&&!C.ended&&(f.current=requestAnimationFrame(E))},X=()=>{cancelAnimationFrame(f.current),f.current=requestAnimationFrame(E)},$=()=>requestAnimationFrame(()=>q.current()),pe=()=>C.paused&&$();C.addEventListener("play",X),C.addEventListener("seeked",$),C.addEventListener("loadeddata",$),C.addEventListener("timeupdate",pe);const Ne=new ResizeObserver($);return Ne.observe(C),()=>{cancelAnimationFrame(f.current),C.removeEventListener("play",X),C.removeEventListener("seeked",$),C.removeEventListener("loadeddata",$),C.removeEventListener("timeupdate",pe),Ne.disconnect()}},[m]),i.jsxs("div",{className:"relative overflow-hidden rounded-xl bg-black",children:[i.jsx("video",{ref:M,src:m,controls:U,playsInline:!0,muted:!0,preload:"metadata",className:"block w-full"}),i.jsx("canvas",{ref:w,className:"pointer-events-none absolute left-0 top-0"})]})}),Ma=26,rp=132,Qr=20;function op({doc:u,time:m,onSeek:d}){const[o,g]=Ss(),[O,U]=k.useState(null),_=Jv(u),x=u.duration||1,M=g<520,w=M?92:rp,f=Math.max(10,g-w-8),N=E=>w+E/x*f,H=Math.max(1,_.length)*Ma+Qr,K=[],q=x>240?60:x>90?30:10;for(let E=0;E<=x;E+=q)K.push(E);const C=E=>{const X=E.currentTarget.getBoundingClientRect(),$=(E.clientX-X.left-w)/f*x;$>=0&&$<=x&&(d==null||d($))};return i.jsxs("div",{ref:o,className:"relative w-full select-none",children:[g>0&&i.jsxs("svg",{width:g,height:H,onClick:C,className:"cursor-pointer",children:[_.map((E,X)=>i.jsxs("g",{transform:`translate(0 ${X*Ma})`,children:[i.jsx("rect",{x:w,y:3,width:f,height:Ma-6,rx:4,fill:"#0f172a"}),i.jsx("text",{x:w-8,y:Ma/2,textAnchor:"end",dominantBaseline:"middle",fontSize:M?10:12,fill:"#cbd5e1",children:et(E)}),(u.labels||[]).filter($=>$[2]===E).map(($,pe)=>i.jsx("rect",{x:N($[0]),y:Ma-7,width:Math.max(2,N($[1])-N($[0])),height:3,fill:"#e2e8f0",opacity:.7},`l${pe}`)),(u.events||[]).filter($=>$[2]===E).map(($,pe)=>i.jsx("rect",{x:N($[0]),y:5,width:Math.max(3,N($[1])-N($[0])),height:Ma-14,rx:2,fill:We(E),opacity:m>=$[0]&&m<=$[1]?1:.75,onMouseEnter:()=>U({e:$,i:X}),onMouseLeave:()=>U(null)},pe))]},E)),K.map(E=>i.jsxs("g",{children:[i.jsx("line",{x1:N(E),x2:N(E),y1:0,y2:H-Qr+4,stroke:"#1e293b"}),i.jsx("text",{x:N(E),y:H-6,textAnchor:"middle",fontSize:10,fill:"#64748b",children:Al(E).replace(/\.\d$/,"")})]},E)),i.jsx("line",{x1:N(m),x2:N(m),y1:0,y2:H-Qr+4,stroke:"#fbbf24",strokeWidth:2})]}),!_.length&&i.jsx("p",{className:"py-3 text-sm text-slate-400",children:"No events detected."}),O&&i.jsxs("div",{className:"pointer-events-none absolute z-10 rounded-md bg-slate-800 px-2 py-1 text-xs shadow",style:{left:Math.min(N(O.e[0]),g-180),top:O.i*Ma-26},children:[et(O.e[2]),": ",Al(O.e[0])," โ€“ ",Al(O.e[1])]})]})}function fp({risk:u,duration:m,time:d,onSeek:o,height:g=120,theta:O=.5}){const[U,_]=Ss(),[x,M]=k.useState(null),w={l:34,r:8,t:8,b:20},f=_,N=g,H=Math.max(10,f-w.l-w.r),K=N-w.t-w.b,q=m||(u!=null&&u.length?u[u.length-1][0]:1),C=z=>w.l+z/q*H,E=z=>w.t+(1-z)*K;let X="",$="";u!=null&&u.length&&(X=u.map(([z,W],ce)=>`${ce?"L":"M"}${C(z).toFixed(1)},${E(W).toFixed(1)}`).join(""),$=`${X}L${C(u[u.length-1][0]).toFixed(1)},${E(0)}L${C(u[0][0]).toFixed(1)},${E(0)}Z`);const pe=z=>(z.clientX-z.currentTarget.getBoundingClientRect().left-w.l)/H*q,Ne=z=>{if(!(u!=null&&u.length))return 0;let W=0,ce=u.length-1;for(;W>1;u[He][0]<=z?W=He:ce=He-1}return u[W][1]};return i.jsx("div",{ref:U,className:"relative w-full",children:f>0&&i.jsxs("svg",{width:f,height:N,className:"cursor-pointer",onClick:z=>{const W=pe(z);W>=0&&W<=q&&(o==null||o(W))},onMouseMove:z=>M(pe(z)),onMouseLeave:()=>M(null),children:[i.jsx("defs",{children:i.jsxs("linearGradient",{id:"riskfill",x1:"0",x2:"0",y1:"0",y2:"1",children:[i.jsx("stop",{offset:"0%",stopColor:"#ef4444",stopOpacity:"0.55"}),i.jsx("stop",{offset:"50%",stopColor:"#f59e0b",stopOpacity:"0.3"}),i.jsx("stop",{offset:"100%",stopColor:"#22c55e",stopOpacity:"0.08"})]})}),[0,.25,.5,.75,1].map(z=>i.jsxs("g",{children:[i.jsx("line",{x1:w.l,x2:f-w.r,y1:E(z),y2:E(z),stroke:"#1e293b"}),i.jsx("text",{x:w.l-6,y:E(z),textAnchor:"end",dominantBaseline:"middle",fontSize:10,fill:"#64748b",children:z})]},z)),i.jsx("path",{d:$,fill:"url(#riskfill)"}),i.jsx("path",{d:X,fill:"none",stroke:"#f59e0b",strokeWidth:1.5}),i.jsx("line",{x1:w.l,x2:f-w.r,y1:E(O),y2:E(O),stroke:"#ef4444",strokeDasharray:"5 4"}),i.jsxs("text",{x:f-w.r-4,y:E(O)-5,textAnchor:"end",fontSize:10,fill:"#f87171",children:["alarm ฮธ = ",O]}),d!=null&&i.jsx("line",{x1:C(d),x2:C(d),y1:w.t,y2:N-w.b,stroke:"#fbbf24",strokeWidth:2}),x!=null&&x>=0&&x<=q&&i.jsxs("g",{children:[i.jsx("line",{x1:C(x),x2:C(x),y1:w.t,y2:N-w.b,stroke:"#94a3b8",strokeDasharray:"2 3"}),i.jsxs("text",{x:Math.min(C(x)+6,f-90),y:w.t+10,fontSize:11,fill:"#e2e8f0",children:[Al(x)," ยท ",Ne(x).toFixed(2)]})]}),i.jsx("text",{x:w.l,y:N-4,fontSize:10,fill:"#64748b",children:"0:00"}),i.jsx("text",{x:f-w.r,y:N-4,textAnchor:"end",fontSize:10,fill:"#64748b",children:Al(q)})]})})}const dp=[["highlight","Highlight event objects"],["boxes","All boxes"],["ids","Track IDs"],["trails","Trails"],["zones","Scene zones"],["flow","Learned lane directions"]];function l0({doc:u,videoUrl:m,jump:d}){const o=k.useRef(null),[g,O]=k.useState(0),[U,_]=k.useState({highlight:!0,boxes:!0,ids:!1,trails:!0,zones:!1,flow:!1}),x=k.useMemo(()=>lp(u),[u]),M=q=>{var C;(C=o.current)==null||C.seek(q),O(q)},w=u.events||[],[f,N]=k.useState("best"),H=u.quality||[],K=k.useMemo(()=>{const q=w.map((C,E)=>E);return f==="best"?q.sort((C,E)=>(H[E]??0)-(H[C]??0)||w[C][0]-w[E][0]):q},[u,f]);return k.useEffect(()=>{var E;if(!d)return;const q=(E=o.current)==null?void 0:E.video,C=()=>{var X;M(Math.max(0,d.t-1)),(X=o.current)==null||X.play()};q&&q.readyState>=1?C():q==null||q.addEventListener("loadedmetadata",C,{once:!0})},[d]),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-3 lg:grid-cols-[minmax(0,1fr)_320px]",children:[i.jsx("div",{className:"min-w-0",children:i.jsx(up,{ref:o,src:m,doc:u,frames:x,layers:U,onTime:O})}),i.jsx("aside",{className:"card relative flex max-h-80 flex-col lg:max-h-none",children:i.jsxs("div",{className:"flex min-h-0 flex-1 flex-col p-3 lg:absolute lg:inset-0",children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between gap-2",children:[i.jsxs("h4",{className:"text-sm font-semibold text-slate-200",children:["Events ",i.jsx("span",{className:"font-normal text-slate-500",children:w.length})]}),H.length>0&&i.jsx("div",{className:"flex rounded-lg bg-white/5 p-0.5 text-[11px]",children:[["best",vv,"Best"],["time",wv,"Time"]].map(([q,C,E])=>i.jsxs("button",{onClick:()=>N(q),title:q==="best"?"Best examples first":"Chronological",className:`flex items-center gap-1 rounded-md px-2 py-0.5 ${f===q?"bg-white/10 text-white":"text-slate-400 hover:text-white"}`,children:[i.jsx(C,{size:11}),E]},q))})]}),i.jsxs("ul",{className:"-mx-1 min-h-0 flex-1 space-y-0.5 overflow-y-auto px-1 [scrollbar-width:thin]",children:[K.map(q=>{const C=w[q],E=g>=C[0]&&g<=C[1];return i.jsx("li",{children:i.jsxs("button",{onClick:()=>M(Math.max(0,C[0]-1)),className:`flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left text-[13px] transition-colors hover:bg-white/5 ${E?"bg-white/10 ring-1 ring-amber-400/50":""}`,children:[i.jsx("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{background:We(C[2])}}),i.jsx("span",{className:"flex-1 truncate",children:et(C[2])}),H[q]>=2&&i.jsx(Xv,{size:12,className:"shrink-0 fill-amber-400 text-amber-400"}),H[q]>0&&H[q]<2&&i.jsxs("span",{className:"shrink-0 text-[10px] text-emerald-400",children:["โœ“",Math.round(H[q]*100),"%"]}),i.jsx("span",{className:"font-mono text-[11px] text-slate-400",children:Al(C[0]).replace(/\.\d$/,"")})]})},q)}),!w.length&&i.jsx("li",{className:"px-2 text-sm text-slate-500",children:"No events."})]}),H.length>0&&i.jsx("p",{className:"mt-2 border-t border-white/5 pt-2 text-[11px] text-slate-500",children:"โญ best example ยท โœ“ overlap with our label"})]})})]}),i.jsx("div",{className:"flex flex-wrap gap-1.5",children:dp.map(([q,C])=>i.jsxs("button",{onClick:()=>_(E=>({...E,[q]:!E[q]})),className:`btn px-2.5 py-1 text-xs ${U[q]?"bg-white/10 text-white":"border border-white/10 text-slate-400"}`,children:[U[q]?i.jsx(zv,{size:13}):i.jsx(Ev,{size:13})," ",C]},q))}),i.jsxs("div",{className:"card p-3",children:[i.jsxs("div",{className:"mb-1 flex items-baseline justify-between gap-2",children:[i.jsx("h4",{className:"text-sm font-semibold text-slate-200",children:"Event timeline"}),u.labels&&i.jsx("span",{className:"text-[11px] text-slate-500",children:"white line = our manual label"})]}),i.jsx(op,{doc:u,time:g,onSeek:M})]}),i.jsxs("div",{className:"card p-3",children:[i.jsx("h4",{className:"mb-1 text-sm font-semibold text-slate-200",children:"Accident risk, next 5 s"}),i.jsx(fp,{risk:u.risk,duration:u.duration,time:g,onSeek:M,height:110})]})]})}const ia=u=>String(u??"").replace(/[&<>"]/g,m=>({"&":"&","<":"<",">":">",'"':"""})[m]),hp={drawn:"Zones drawn by the engineer",reference:"Known camera (calibrated zones)",learned:"Zero-config (road learned from traffic)"};function mp({doc:u,name:m,frameUrl:d}){const o=u.report||{},g=Object.entries(o.per_class||{}).sort((f,N)=>N[1].count-f[1].count),O=Math.max(u.duration/60,1e-6),U=u.width/u.height,_=(o.hotspots||[]).map(([f,N,H])=>``).join(""),x=[...new Set((o.hotspots||[]).map(f=>f[2]))].map(f=>`${ia(et(f))}`).join(""),M=`SafeJunction report โ€“ ${ia(m)} + +

Road-safety report ยท ${ia(m)}

+
Do'ppiX SafeJunction ยท ${new Date().toLocaleString()} ยท ${ia(hp[u.scene_mode]||u.scene_mode)}
+
${u.duration.toFixed(0)} svideo analysed
${u.events.length}events
+
${o.vehicles_seen??"โ€“"}vehicle tracks
${o.pedestrians_seen??"โ€“"}pedestrian tracks
+

Events

+ +${g.map(([f,N])=>``).join("")||''}
EventCountPer 10 min (this clip)Per hourTotal time
${ia(et(f))}${N.count}${(N.count/O*10).toFixed(1)}${N.per_hour??"needs โ‰ฅ 5 min"}${N.seconds} s
No events in this clip.
+${o.conflicts?`

Conflicts (post-encroachment time)

+ +
Serious < 1.5 sModerate 1.5โ€“3 sInteraction 3โ€“5 sSerious pedestrian conflicts per 1,000 pedestriansExposure (pedestrians / vehicles)
${o.conflicts.counts.serious}${o.conflicts.counts.moderate}${o.conflicts.counts.interaction}${o.conflicts.serious_per_1000_pedestrians??"โ€“"}${o.conflicts.exposure_pedestrians} / ${o.conflicts.exposure_vehicles}
`:""} +${o.speed&&o.speed.vehicles?`

Speeds (4-point calibration)

+ +
VehiclesMedian85th percentileMaxOver limit (${o.speed.limit_kmh} km/h)Over limit + 10
${o.speed.vehicles}${o.speed.median_kmh} km/h${o.speed.p85_kmh} km/h${o.speed.max_kmh} km/h${Math.round(100*o.speed.share_over_limit)} %${Math.round(100*o.speed.share_over_limit_10)} %
`:""} +

Where it happens

+
${d?``:""}${_}
+
${x}
+

What to change

    ${(o.recommendations||[]).map(f=>`
  • ${ia(f)}
  • `).join("")}
+

Event list

+ +${u.events.map((f,N)=>``).join("")}
#StartEndEvent
${N+1}${f[0].toFixed(1)} s${f[1].toFixed(1)} s${ia(et(f[2]))}
+
Faces and number plates were blurred on the server before any frame was shown. Rates from clips shorter than 5 minutes are indicative only. +Events come from fixed, inspectable rules over our own detector and tracker; check each against the video before acting.
+ + + + +
+ +