*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 222.2 47.4% 11.2%;--primary-foreground: 210 40% 98%;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 40% 98%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 222.2 84% 4.9%;--radius: .5rem;--sidebar-background: 0 0% 98%;--sidebar-foreground: 240 5.3% 26.1%;--sidebar-primary: 240 5.9% 10%;--sidebar-primary-foreground: 0 0% 98%;--sidebar-accent: 240 4.8% 95.9%;--sidebar-accent-foreground: 240 5.9% 10%;--sidebar-border: 220 13% 91%;--sidebar-ring: 217.2 91.2% 59.8%}.dark{--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--card: 222.2 84% 4.9%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 98%;--primary: 210 40% 98%;--primary-foreground: 222.2 47.4% 11.2%;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 217.2 32.6% 17.5%;--accent-foreground: 210 40% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 212.7 26.8% 83.9%;--sidebar-background: 240 5.9% 10%;--sidebar-foreground: 240 4.8% 95.9%;--sidebar-primary: 224.3 76.3% 48%;--sidebar-primary-foreground: 0 0% 100%;--sidebar-accent: 240 3.7% 15.9%;--sidebar-accent-foreground: 240 4.8% 95.9%;--sidebar-border: 240 3.7% 15.9%;--sidebar-ring: 217.2 91.2% 59.8%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-bottom-12{bottom:-3rem}.-left-12{left:-3rem}.-right-12{right:-3rem}.-top-12{top:-3rem}.bottom-0{bottom:0}.bottom-1\/3{bottom:33.333333%}.bottom-16{bottom:4rem}.bottom-3{bottom:.75rem}.bottom-4{bottom:1rem}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-1\/3{left:33.333333%}.left-1\/4{left:25%}.left-2{left:.5rem}.left-4{left:1rem}.left-5{left:1.25rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-1\/3{right:33.333333%}.right-1\/4{right:25%}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-1\/3{top:33.333333%}.top-16{top:4rem}.top-2{top:.5rem}.top-3{top:.75rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[1\]{z-index:1}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-ml-4{margin-left:-1rem}.-mt-4{margin-top:-1rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-14{margin-bottom:3.5rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-7{margin-bottom:1.75rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-14{margin-top:3.5rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-44{height:11rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-72{height:18rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-0{max-height:0px}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[300px\]{max-height:300px}.max-h-\[90vh\]{max-height:90vh}.max-h-screen{max-height:100vh}.min-h-0{min-height:0px}.min-h-\[1\.75rem\]{min-height:1.75rem}.min-h-\[80px\]{min-height:80px}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-0{width:0px}.w-1{width:.25rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[100px\]{width:100px}.w-\[1px\]{width:1px}.w-auto{width:auto}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-5{min-width:1.25rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-2xl{max-width:42rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-\[--skeleton-width\]{max-width:var(--skeleton-width)}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-14{gap:3.5rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-\[1\.5px\]{border-width:1.5px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-blue-500\/20{border-color:#3b82f633}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/50{border-color:hsl(var(--destructive) / .5)}.border-emerald-500\/20{border-color:#10b98133}.border-emerald-500\/25{border-color:#10b98140}.border-emerald-500\/30{border-color:#10b9814d}.border-input{border-color:hsl(var(--input))}.border-orange-500\/20{border-color:#f9731633}.border-pink-500\/20{border-color:#ec489933}.border-primary{border-color:hsl(var(--primary))}.border-purple-500\/20{border-color:#a855f733}.border-red-500\/25{border-color:#ef444440}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-sky-500\/20{border-color:#0ea5e933}.border-slate-600{--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity, 1))}.border-slate-700{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.border-slate-700\/60{border-color:#33415599}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.border-slate-800\/60{border-color:#1e293b99}.border-slate-800\/80{border-color:#1e293bcc}.border-transparent{border-color:transparent}.border-yellow-500\/20{border-color:#eab30833}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-black\/70{background-color:#000000b3}.bg-black\/80{background-color:#000c}.bg-blue-400\/25{background-color:#60a5fa40}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-blue-600\/10{background-color:#2563eb1a}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-500\/15{background-color:#10b98126}.bg-foreground{background-color:hsl(var(--foreground))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.bg-indigo-600\/10{background-color:#4f46e51a}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-500\/15{background-color:#f9731626}.bg-pink-500\/15{background-color:#ec489926}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-purple-500\/15{background-color:#a855f726}.bg-red-500\/10{background-color:#ef44441a}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-sky-500\/15{background-color:#0ea5e926}.bg-slate-500{--tw-bg-opacity: 1;background-color:rgb(100 116 139 / var(--tw-bg-opacity, 1))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-800\/70{background-color:#1e293bb3}.bg-slate-800\/80{background-color:#1e293bcc}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-slate-900\/80{background-color:#0f172acc}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity, 1))}.bg-slate-950\/50{background-color:#02061780}.bg-slate-950\/95{background-color:#020617f2}.bg-transparent{background-color:transparent}.bg-yellow-500\/15{background-color:#eab30826}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-blue-600{--tw-gradient-from: #2563eb var(--tw-gradient-from-position);--tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-600\/15{--tw-gradient-from: rgb(37 99 235 / .15) var(--tw-gradient-from-position);--tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-600\/20{--tw-gradient-from: rgb(37 99 235 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-900\/80{--tw-gradient-from: rgb(15 23 42 / .8) var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-indigo-600{--tw-gradient-to: #4f46e5 var(--tw-gradient-to-position)}.to-indigo-600\/15{--tw-gradient-to: rgb(79 70 229 / .15) var(--tw-gradient-to-position)}.to-indigo-600\/20{--tw-gradient-to: rgb(79 70 229 / .2) var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-yellow-400{fill:#facc15}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-0\.5{padding-bottom:.125rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-2\.5{padding-left:.625rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-12{padding-top:3rem}.pt-16{padding-top:4rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.8rem\]{font-size:.8rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-500\/40{color:#3b82f666}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-pink-400{--tw-text-opacity: 1;color:rgb(244 114 182 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.text-sky-400{--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-violet-400{--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.placeholder-slate-500::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}.placeholder-slate-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/20{--tw-shadow-color: rgb(0 0 0 / .2);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-ring{--tw-ring-color: hsl(var(--ring))}.ring-sidebar-ring{--tw-ring-color: hsl(var(--sidebar-ring))}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.blur-3xl{--tw-blur: blur(64px);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)}.brightness-75{--tw-brightness: brightness(.75);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\,opa\]{transition-property:margin,opa;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.fade-in-80{--tw-enter-opacity: .8}.zoom-in-95{--tw-enter-scale: .95}.duration-1000{animation-duration:1s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-700{animation-duration:.7s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}@keyframes fade-in-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes float-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes breathe{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.08);opacity:1}}@keyframes glow-pulse{0%,to{box-shadow:0 0 #3b82f600}50%{box-shadow:0 0 28px 6px #3b82f638}}@keyframes gradient-flow{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes shimmer-sweep{0%{transform:translate(-100%)}to{transform:translate(400%)}}@keyframes twinkle{0%,to{opacity:.15;transform:scale(1)}40%{opacity:.8;transform:scale(1.6)}60%{opacity:.5;transform:scale(1.2)}}@keyframes slide-up{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes border-spin{0%{--border-angle: 0deg}to{--border-angle: 360deg}}@keyframes underline-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes blob-drift-1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(32px,-28px) scale(1.06)}66%{transform:translate(-18px,22px) scale(.96)}}@keyframes blob-drift-2{0%,to{transform:translate(0) scale(1)}40%{transform:translate(-38px,22px) scale(1.09)}80%{transform:translate(18px,-32px) scale(.93)}}@keyframes blob-drift-3{0%,to{transform:translate(0) scale(1);opacity:.07}50%{transform:translate(24px,28px) scale(1.12);opacity:.14}}@keyframes blob-drift-4{0%,to{transform:translate(0) scale(1);opacity:.05}50%{transform:translate(-28px,-22px) scale(1.07);opacity:.11}}@keyframes particle-float{0%,to{transform:translateY(0) scale(1);opacity:.3}50%{transform:translateY(-20px) scale(1.3);opacity:.65}}@keyframes grid-shimmer{0%,to{opacity:.5}50%{opacity:1}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.anim-fade-up{animation:fade-in-up .6s cubic-bezier(.16,1,.3,1) both}.anim-fade-down{animation:fade-in-down .55s cubic-bezier(.16,1,.3,1) both}.anim-fade-left{animation:fade-in-left .6s cubic-bezier(.16,1,.3,1) both}.anim-fade-right{animation:fade-in-right .6s cubic-bezier(.16,1,.3,1) both}.anim-fade{animation:fade-in .5s ease-out both}.anim-scale{animation:scale-in .55s cubic-bezier(.16,1,.3,1) both}.anim-glow{animation:glow-pulse 2.8s ease-in-out infinite}.anim-float{animation:float-bob var(--float-dur, 4s) ease-in-out var(--float-delay, 0s) infinite}.anim-spin{animation:spin-slow var(--spin-dur, 12s) linear infinite}.anim-breathe{animation:breathe var(--breathe-dur, 3.5s) ease-in-out infinite}.anim-twinkle{animation:twinkle var(--twinkle-dur, 3s) ease-in-out var(--twinkle-delay, 0s) infinite}.anim-slide-up{animation:slide-up .25s cubic-bezier(.16,1,.3,1) both}.reveal{opacity:0}.gradient-text{background:linear-gradient(270deg,#60a5fa,#818cf8,#a78bfa,#38bdf8,#60a5fa);background-size:300% 300%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradient-flow 6s ease infinite}.nav-underline{position:relative}.nav-underline:after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:2px;background:#3b82f6;transform:scaleX(0);transform-origin:left;transition:transform .25s cubic-bezier(.16,1,.3,1);border-radius:2px}.nav-underline:hover:after,.nav-underline.active:after{transform:scaleX(1)}.perspective-card{perspective:1000px;transform-style:preserve-3d}.shimmer-bar{position:relative;overflow:hidden}.shimmer-bar:after{content:"";position:absolute;top:0;left:0;height:100%;width:30%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.35) 50%,transparent 100%);animation:shimmer-sweep 2.2s ease-in-out 1.2s both}.bg-blob-1{animation:blob-drift-1 9s ease-in-out infinite}.bg-blob-2{animation:blob-drift-2 12s ease-in-out infinite}.bg-blob-3{animation:blob-drift-3 16s ease-in-out infinite}.bg-blob-4{animation:blob-drift-4 11s ease-in-out infinite}.bg-particle{animation:particle-float var(--particle-dur, 4s) ease-in-out var(--particle-delay, 0s) infinite}.bg-grid-animated{animation:grid-shimmer 6s ease-in-out infinite}.scroll-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,#3b82f6,#6366f1,#8b5cf6,#a78bfa);background-size:200% 100%;animation:gradient-flow 3s ease infinite;z-index:9999;transition:width .08s linear;pointer-events:none;border-radius:0 2px 2px 0}.cursor-spotlight{background-image:radial-gradient(600px circle at var(--mx, -9999px) var(--my, -9999px),rgba(59,130,246,.07),transparent 40%)}.marquee-track{display:flex;width:-moz-max-content;width:max-content;animation:marquee 22s linear infinite}.marquee-track:hover{animation-play-state:paused}@keyframes scan-y{0%{transform:translateY(-220px)}to{transform:translateY(110vh)}}.grid-scan-line{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:1}.grid-scan-line:before{content:"";position:absolute;left:0;right:0;height:220px;background:linear-gradient(to bottom,transparent 0%,rgba(59,130,246,.025) 25%,rgba(99,102,241,.045) 50%,rgba(59,130,246,.025) 75%,transparent 100%);animation:scan-y 9s linear infinite;will-change:transform}@media (max-width: 767px){.bg-blob-1,.bg-blob-2{opacity:.06!important}.bg-blob-3,.bg-blob-4{display:none}.marquee-track{animation-duration:14s}.anim-fade-up,.anim-fade-down,.anim-fade-left,.anim-fade-right{animation-duration:.45s}}@media (prefers-reduced-motion: reduce){.anim-fade-up,.anim-fade-down,.anim-fade-left,.anim-fade-right,.anim-fade,.anim-scale,.anim-glow,.anim-float,.anim-spin,.anim-breathe,.anim-twinkle,.anim-slide-up,.bg-blob-1,.bg-blob-2,.bg-blob-3,.bg-blob-4,.bg-particle,.bg-grid-animated,.marquee-track,.gradient-text,.scroll-progress,.shimmer-bar:after{animation:none!important;opacity:1!important;transform:none!important;background-position:0% 50%!important;-webkit-text-fill-color:currentColor!important}.grid-scan-line:before{display:none}.gradient-text{background:none;color:#fff}.reveal{opacity:1!important}}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);top:-.5rem;right:-.5rem;bottom:-.5rem;left:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-width:1px}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-blue-500\/40:hover{border-color:#3b82f666}.hover\:border-blue-500\/50:hover{border-color:#3b82f680}.hover\:border-indigo-500\/40:hover{border-color:#6366f166}.hover\:border-sky-500\/40:hover{border-color:#0ea5e966}.hover\:border-slate-500:hover{--tw-border-opacity: 1;border-color:rgb(100 116 139 / var(--tw-border-opacity, 1))}.hover\:border-slate-600:hover{--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity, 1))}.hover\:border-slate-700:hover{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.hover\:border-violet-500\/40:hover{border-color:#8b5cf666}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-blue-500:hover{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:bg-slate-700:hover{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-800:hover{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-800\/50:hover{background-color:#1e293b80}.hover\:bg-slate-800\/70:hover{background-color:#1e293bb3}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-blue-300:hover{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.hover\:text-blue-400:hover{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-red-300:hover{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-primary:focus{background-color:hsl(var(--primary))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:text-primary-foreground:focus{color:hsl(var(--primary-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-sidebar-ring:focus-visible{--tw-ring-color: hsl(var(--sidebar-ring))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.active\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.group\/menu-item:hover .group-hover\/menu-item\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color: hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.group\/menu-item:has([data-sidebar=menu-action]) .group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8{padding-right:2rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:bg-accent\/50[aria-selected=true]{background-color:hsl(var(--accent) / .5)}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.aria-selected\:opacity-30[aria-selected=true]{opacity:.3}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[active\]\:bg-accent\/50[data-active]{background-color:hsl(var(--accent) / .5)}.data-\[selected\=\'true\'\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsl(var(--accent) / .5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on],.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity: 0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity: .8}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open],.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale: .9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x: 13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x: -13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x: 13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x: -13rem}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed],.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:.25rem}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!size-8{width:2rem!important;height:2rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[--sidebar-width-icon\]{width:var(--sidebar-width-icon)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\]{width:calc(var(--sidebar-width-icon) + 1rem)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180,.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-0{padding:0!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-2{padding:.5rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:hover\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer[data-variant=inset]~.peer-data-\[variant\=inset\]\:min-h-\[calc\(100svh-theme\(spacing\.4\)\)\]{min-height:calc(100svh - 1rem)}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}@media (min-width: 640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:mb-10{margin-bottom:2.5rem}.sm\:mb-14{margin-bottom:3.5rem}.sm\:mb-5{margin-bottom:1.25rem}.sm\:mb-8{margin-bottom:2rem}.sm\:mt-0{margin-top:0}.sm\:mt-16{margin-top:4rem}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:h-16{height:4rem}.sm\:h-80{height:20rem}.sm\:h-96{height:24rem}.sm\:max-h-\[85vh\]{max-height:85vh}.sm\:min-h-\[2rem\]{min-height:2rem}.sm\:w-80{width:20rem}.sm\:w-96{width:24rem}.sm\:max-w-sm{max-width:24rem}.sm\:basis-1\/2{flex-basis:50%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-2\.5{gap:.625rem}.sm\:gap-4{gap:1rem}.sm\:gap-5{gap:1.25rem}.sm\:gap-6{gap:1.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.sm\:rounded-2xl{border-radius:1rem}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-4{padding:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:p-7{padding:1.75rem}.sm\:p-8{padding:2rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:py-2{padding-top:.5rem;padding-bottom:.5rem}.sm\:py-20{padding-top:5rem;padding-bottom:5rem}.sm\:py-24{padding-top:6rem;padding-bottom:6rem}.sm\:py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.sm\:pt-10{padding-top:2.5rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y: 100%}}@media (min-width: 768px){.md\:absolute{position:absolute}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\[420px\]{max-width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-7xl{font-size:4.5rem;line-height:1}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:opacity-0{opacity:0}.after\:md\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-state=collapsed][data-variant=inset]~.md\:peer-data-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media (min-width: 1024px){.lg\:basis-1\/3{flex-basis:33.333333%}.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\:gap-16{gap:4rem}.lg\:gap-8{gap:2rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-24{padding-top:6rem;padding-bottom:6rem}}@media (min-width: 1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:hsl(var(--accent))}.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:has([aria-selected]):first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:has([aria-selected]):last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:bg-accent\/50:has([aria-selected].day-outside){background-color:hsl(var(--accent) / .5)}.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right] .\[\[data-side\=right\]_\&\]\:cursor-e-resize{cursor:e-resize}:root{--ink: #14213d;--ink-2: #1d2d50;--signal: #1f6fc5;--signal-ink: #165aa3;--paper: #ffffff;--mist: #eef2f7;--line: #d9e0ea;--text: #1b2433;--slate: #4a5568;--turf: #1e8a5a;--amber: #b26a00;--display: "Bricolage Grotesque", "IBM Plex Sans", system-ui, sans-serif;--body: "IBM Plex Sans", system-ui, sans-serif}html{scroll-behavior:smooth;scroll-padding-top:72px}body{background:var(--ink)}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}.site{background:var(--paper);color:var(--text);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}.site ::-moz-selection{background:#cfe1f6;color:var(--ink)}.site ::selection{background:#cfe1f6;color:var(--ink)}.site a{color:inherit}.site :focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:4px}.wrap{max-width:1120px;margin:0 auto;padding:0 24px}@media (max-width: 640px){.wrap{padding:0 16px}}.h-display{font-family:var(--display);font-weight:700;letter-spacing:-.02em;line-height:1.04}.h-section{font-family:var(--display);font-weight:700;font-size:clamp(30px,4vw,42px);letter-spacing:-.015em;line-height:1.1;color:var(--ink)}.lede{color:var(--slate);max-width:62ch}.sec{padding:104px 0}.sec+.sec{border-top:1px solid var(--line)}@media (max-width: 640px){.sec{padding:72px 0}}.sec-head{display:grid;gap:12px;margin-bottom:48px}.btn{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;line-height:1;padding:14px 20px;border-radius:10px;text-decoration:none;transition:background .15s,color .15s,border-color .15s}.btn-solid{background:var(--signal);color:#fff!important}.btn-solid:hover{background:var(--signal-ink)}.btn-ghost-dark{border:1px solid rgba(255,255,255,.28);color:#fff!important}.btn-ghost-dark:hover{border-color:#fff;background:#ffffff0f}.btn-ghost{border:1px solid var(--line);color:var(--ink)!important;background:#fff}.btn-ghost:hover{border-color:var(--ink)}.nav{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .2s,box-shadow .2s}.nav.solid{background:#fffffff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line)}.nav-inner{height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px}.nav-name{font-family:var(--display);font-weight:700;font-size:18px;text-decoration:none}.nav-links{display:flex;gap:28px;font-size:15px}.nav-links a{text-decoration:none;opacity:.82}.nav-links a:hover{opacity:1}.nav:not(.solid){color:#fff}.nav.solid{color:var(--ink)}@media (max-width: 860px){.nav-links{display:none}}.hero{background:var(--ink);color:#fff;padding:136px 0 0;overflow:hidden;position:relative}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px) 0 0 / 100% 88px,linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px) 0 0 / 88px 100%;-webkit-mask-image:linear-gradient(to bottom,#000 30%,transparent 95%);mask-image:linear-gradient(to bottom,#000 30%,transparent 95%);pointer-events:none}.hero-grid{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}@media (max-width: 960px){.hero-grid{grid-template-columns:1fr;gap:48px}}.hero-name{font-size:17px;color:#a9c4e8;margin-bottom:18px}.hero h1{font-size:clamp(36px,4.4vw,56px);max-width:17ch}.hero-intro{margin-top:24px;color:#d3dceb;max-width:54ch}.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.hero-meta{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:36px;padding-bottom:80px;font-size:14px;color:#a9c4e8}.hero-meta strong{color:#fff;font-weight:600}.frags-wrap{margin-bottom:72px}.frags{display:grid}.frags>.frag{grid-area:1 / 1;position:relative}.frag{position:absolute;background:#fff;color:var(--text);border-radius:12px;box-shadow:0 24px 60px -20px #0000008c;font-size:12.5px;overflow:hidden}.frag-a{margin-right:12%;align-self:start}.frag-b{margin-left:36%;margin-top:196px;align-self:start;z-index:1}@media (max-width: 520px){.frag-a{margin-right:0}.frag-b{margin-left:8%;margin-top:226px}}.frag-bar{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--mist);border-bottom:1px solid var(--line);font-size:11.5px;color:var(--slate)}.frag-dots{display:flex;gap:5px}.frag-dots i{width:8px;height:8px;border-radius:50%;background:#c9d2df;display:block}.frag-body{padding:14px 16px 16px}.frag-title{font-weight:600;font-size:14px;color:var(--ink);display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px}.frag-title span{font-weight:400;font-size:12px;color:var(--slate)}.ftable{width:100%;border-collapse:collapse}.ftable th{text-align:left;font-weight:500;color:var(--slate);font-size:11.5px;padding:6px 0;border-bottom:1px solid var(--line)}.ftable td{padding:7px 0;border-bottom:1px solid var(--mist);white-space:nowrap}.ftable td.num,.ftable th.num{text-align:right;font-variant-numeric:tabular-nums}.pill{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px}.pill-paid{background:#e3f4ec;color:var(--turf)}.pill-due{background:#fdf0dc;color:var(--amber)}.pill-info{background:#e4eefa;color:var(--signal-ink)}.frag-caption{margin-top:14px;text-align:right;font-size:12px;color:#8ea6c9}@media (prefers-reduced-motion: no-preference){.frag-a{animation:rise .7s cubic-bezier(.16,1,.3,1) .15s both}.frag-b{animation:rise .7s cubic-bezier(.16,1,.3,1) .35s both}@keyframes rise{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}}.work-list{display:grid;gap:96px}.work{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:start}.work.flip .work-visual{order:-1}@media (max-width: 960px){.work{grid-template-columns:1fr;gap:28px}.work.flip .work-visual{order:0}}.work-company{font-size:14px;color:var(--slate);margin-bottom:6px}.work h3{font-family:var(--display);font-weight:700;font-size:clamp(26px,3vw,32px);line-height:1.15;color:var(--ink);letter-spacing:-.01em}.work-link{display:inline-block;margin-top:8px;color:var(--signal-ink)!important;font-weight:500;font-size:15px}.work p.sum{margin-top:18px;color:var(--slate)}.work-built{margin-top:22px;display:grid;gap:8px;padding:0;list-style:none}.work-built li{padding-left:22px;position:relative}.work-built li:before{content:"";position:absolute;left:4px;top:.7em;width:8px;height:2px;background:var(--signal)}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.chip{font-size:13px;padding:4px 10px;border-radius:6px;background:var(--mist);color:var(--ink)}.work-visual{background:var(--mist);border-radius:16px;padding:28px;position:relative}@media (max-width: 520px){.work-visual{padding:16px}}.work-visual .frag{position:static;box-shadow:0 18px 40px -22px #14213d73}.work-visual .note{margin-top:12px;font-size:12.5px;color:var(--slate)}.shots{display:grid;gap:14px}.shots img{width:100%;border-radius:10px;border:1px solid var(--line);display:block}.phone{width:250px;margin:0 auto;border:8px solid var(--ink);border-radius:30px;background:#fff;overflow:hidden;box-shadow:0 18px 40px -22px #14213d80;font-size:12.5px}.phone-top{padding:14px 16px 10px;border-bottom:1px solid var(--line)}.phone-body{padding:12px 16px 16px;display:grid;gap:10px}.slot{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px 10px}.slot.on{border-color:var(--signal);background:#f1f6fd}.paybtn{background:var(--signal);color:#fff;text-align:center;padding:10px;border-radius:8px;font-weight:600}.more{display:grid;grid-template-columns:repeat(2,1fr);gap:0 48px}@media (max-width: 760px){.more{grid-template-columns:1fr}}.more-item{padding:18px 0;border-bottom:1px solid var(--line)}.more-item h4{font-weight:600;color:var(--ink);font-size:17px;display:flex;justify-content:space-between;gap:12px}.more-item h4 span{font-weight:400;color:var(--slate);font-size:14px}.more-item p{color:var(--slate);font-size:15.5px;margin-top:2px}.more-item small{display:block;margin-top:4px;font-size:13.5px;color:var(--signal-ink)}.tl{position:relative;display:grid;gap:40px;padding-left:28px}.tl:before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:var(--line)}.tl-item{position:relative;display:grid;grid-template-columns:200px 1fr;gap:24px}.tl-item:before{content:"";position:absolute;left:-28px;top:7px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--signal)}@media (max-width: 760px){.tl-item{grid-template-columns:1fr;gap:6px}}.tl-when{font-size:15px;color:var(--slate)}.tl-role{font-family:var(--display);font-weight:700;font-size:21px;color:var(--ink);line-height:1.25}.tl-org{color:var(--signal-ink);font-weight:500;margin-bottom:10px}.tl-org span{color:var(--slate);font-weight:400}.tl ul{display:grid;gap:6px;padding-left:18px;color:var(--slate);list-style:disc}.tl ul li::marker{color:var(--signal)}.skills{display:grid;border-top:1px solid var(--line)}.skill-row{display:grid;grid-template-columns:220px 1fr;gap:24px;padding:16px 0;border-bottom:1px solid var(--line)}.skill-row dt{font-weight:600;color:var(--ink)}.skill-row dd{color:var(--slate)}@media (max-width: 640px){.skill-row{grid-template-columns:1fr;gap:4px}}.certs{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media (max-width: 760px){.certs{grid-template-columns:1fr}}.cert{border:1px solid var(--line);border-radius:14px;padding:28px;display:grid;gap:10px;align-content:start}.cert-top{display:flex;justify-content:space-between;gap:12px;font-size:14px;color:var(--slate)}.cert h3{font-family:var(--display);font-weight:700;font-size:22px;line-height:1.2;color:var(--ink)}.cert p{color:var(--slate);font-size:15.5px}.cert a{color:var(--signal-ink)!important;font-weight:600;font-size:15px}.contact{background:var(--ink);color:#fff}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px}@media (max-width: 860px){.contact-grid{grid-template-columns:1fr}}.contact-links{display:grid;gap:2px;margin-top:28px}.contact-links a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.14);text-decoration:none}.contact-links a span{color:#a9c4e8;font-size:15px;overflow-wrap:anywhere;text-align:right}.contact-links a:hover strong{text-decoration:underline;text-underline-offset:4px}.form{display:grid;gap:14px}.form label{display:grid;gap:6px;font-size:14px;color:#d3dceb}.form input,.form textarea{font:inherit;font-size:16px;color:#fff;background:var(--ink-2);border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:12px 14px}.form input:focus,.form textarea:focus{outline:2px solid #6aa5e6;outline-offset:1px;border-color:transparent}.form-msg{font-size:14px}.form-msg.ok{color:#7fd6ac}.form-msg.err{color:#ffb4a8}.foot{background:var(--ink);color:#8ea6c9;font-size:14px;border-top:1px solid rgba(255,255,255,.1)}.foot .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:24px;padding-bottom:24px}.foot a{text-decoration:none}.foot a:hover{color:#fff}.courses-head{font-family:var(--display);font-weight:700;font-size:20px;color:var(--ink);margin:48px 0 8px}.courses{list-style:none;padding:0;border-top:1px solid var(--line)}.courses li{display:grid;grid-template-columns:1fr 200px 140px;gap:16px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line)}.courses .c-name{font-weight:600;color:var(--ink)}.courses .c-meta{color:var(--slate);font-size:15px}.courses a{color:var(--signal-ink)!important;font-weight:600;font-size:15px;text-align:right}@media (max-width: 760px){.courses li{grid-template-columns:1fr;gap:2px}.courses a{text-align:left}}.work-visual.v-club{background:#e8f0fb}.work-visual.v-athlete{background:#e2f2ea}.work-visual.v-thangam{background:#f7efdc}.work-visual.v-video{background:var(--ink)}.sched{display:grid;grid-template-columns:40px repeat(6,minmax(0,1fr));gap:6px}.sched-times{display:grid;grid-template-rows:22px repeat(4,46px);font-size:10.5px;color:var(--slate)}.sched-col{display:grid;grid-template-rows:22px auto;min-width:0}.sched-day{font-size:11.5px;font-weight:600;color:var(--ink);text-align:center}.sched-track{display:grid;grid-template-rows:repeat(4,46px);gap:3px;background:repeating-linear-gradient(to bottom,transparent 0 48px,var(--mist) 48px 49px)}.sess{border-radius:6px;padding:5px 6px;font-size:10.5px;line-height:1.25;display:flex;flex-direction:column;justify-content:space-between;min-width:0;overflow:hidden}.sess b{font-weight:600}.sess small{font-size:10px;opacity:.8;font-variant-numeric:tabular-nums}.sess-a{background:#dbe8f8;color:#134a85;border-left:3px solid #1f6fc5}.sess-b{background:#d9f0ec;color:#0e5e55;border-left:3px solid #17907f}.sess-c{background:#ece4f7;color:#4b2d7f;border-left:3px solid #7b4fc0}.sess-d{background:#e3f4ec;color:#145c3c;border-left:3px solid var(--turf)}.sess-e{background:#fdf0dc;color:#7a4a00;border-left:3px solid var(--amber)}@media (max-width: 520px){.sched{grid-template-columns:36px repeat(4,minmax(0,1fr))}.sched-col:nth-child(n+6){display:none}}.loancard{background:#fff;border-radius:14px;padding:22px;box-shadow:0 18px 40px -22px #5a3c0059;font-size:13px;display:grid;gap:20px}.lc-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.lc-label{color:var(--slate);font-size:12.5px}.lc-amt{font-family:var(--display);font-weight:700;font-size:30px;color:var(--ink);line-height:1.1;font-variant-numeric:tabular-nums}.lc-sub{color:var(--slate);font-size:12px;margin-top:2px}.journey{list-style:none;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));position:relative;font-size:11px;color:var(--slate);text-align:center}.journey:before{content:"";position:absolute;top:6px;left:8%;right:8%;height:2px;background:#c08a1e}.journey li{display:grid;justify-items:center;gap:6px;position:relative}.journey li i{width:14px;height:14px;border-radius:50%;background:#c08a1e;border:3px solid #fff;box-shadow:0 0 0 1px #c08a1e}.lc-repay{display:grid;gap:8px}.lc-row{display:flex;justify-content:space-between;font-size:12.5px;color:var(--slate)}.lc-row span:last-child{font-variant-numeric:tabular-nums}.lc-bar{height:10px;border-radius:99px;background:#f1e6cc;overflow:hidden}.lc-bar span{display:block;height:100%;background:#c08a1e;border-radius:99px}.lc-next{color:var(--ink);font-weight:600}@media (max-width: 520px){.journey{font-size:9.5px}}.board{background:#0d1830;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px;color:#d3dceb;font-size:12px;display:grid;gap:14px}.board-head{display:flex;justify-content:space-between;gap:8px;font-weight:600;color:#fff}.board-live{color:#7fd6ac;font-weight:500}.board-live:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#7fd6ac;margin-right:6px;vertical-align:1px}.frames{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.frame{margin:0;display:grid;gap:6px}.frame-art{aspect-ratio:16 / 10;border-radius:6px;position:relative;overflow:hidden;max-width:100%}.frame figcaption{display:grid;font-size:10.5px;color:#8ea6c9;line-height:1.3}.frame figcaption b{color:#d3dceb;font-weight:600}.sc-dawn .frame-art{background:linear-gradient(#f7b267 0,#f7b267 55%,#5a7d4f 55%)}.sc-dawn .frame-art:after{content:"";position:absolute;left:58%;top:28%;width:18%;aspect-ratio:1;border-radius:50%;background:#fde6a8}.sc-kite .frame-art{background:linear-gradient(#7cc4f0,#c9e8fb)}.sc-kite .frame-art:after{content:"";position:absolute;left:40%;top:18%;width:22%;aspect-ratio:1;background:#e4572e;transform:rotate(45deg);box-shadow:-14px 14px 0 -9px #fff}.sc-race .frame-art{background:linear-gradient(#2b3a67 0,#2b3a67 45%,#3d3d3d 45%);outline:2px solid #f6c445;outline-offset:-2px}.sc-race .frame-art:before{content:"";position:absolute;left:0;right:0;top:70%;height:2px;background:repeating-linear-gradient(90deg,#fff 0 10px,transparent 10px 20px)}.sc-race .frame-art:after{content:"";position:absolute;left:30%;top:52%;width:34%;height:18%;border-radius:6px 10px 4px 4px;background:#e4572e}.sc-night .frame-art{background:linear-gradient(#141c3a 0,#141c3a 62%,#24304f 62%);opacity:.55}.sc-night .frame-art:after{content:"";position:absolute;right:22%;top:20%;width:14%;aspect-ratio:1;border-radius:50%;background:#e8edf7}.tracks{position:relative;display:grid;gap:6px}.track{display:grid;grid-template-columns:40px 1fr;gap:8px;align-items:center;font-size:10.5px;color:#8ea6c9}.clips{display:flex;gap:3px;height:18px}.clips i{border-radius:3px;background:#2f5f9e}.clips i.cur{background:#1f6fc5;box-shadow:inset 0 0 0 1px #8fbcef}.clips i.todo{background:#22304f}.wave{height:18px;border-radius:3px;background:repeating-linear-gradient(90deg,#7fd6ac 0 2px,transparent 2px 5px);-webkit-mask-image:linear-gradient(90deg,#000 70%,transparent 70%),radial-gradient(ellipse at center,#000 30%,transparent 70%);mask-image:linear-gradient(90deg,#000 70%,transparent 70%),radial-gradient(ellipse at center,#000 30%,transparent 70%);opacity:.8}.playhead{position:absolute;left:calc(48px + 62%);top:-4px;bottom:-4px;width:2px;background:#f6c445}.chipbar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.fchip{font:inherit;font-size:11.5px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--slate);cursor:pointer}.fchip:hover{border-color:var(--signal);color:var(--signal-ink)}.fchip.on{background:var(--ink);border-color:var(--ink);color:#fff}.sess{transition:opacity .2s,filter .2s}.sess.dim{opacity:.22;filter:grayscale(1)}.ph-title{font-weight:600;color:var(--ink);font-size:14px}.ph-sub{color:var(--slate);font-size:12px}button.slot{font:inherit;font-size:12.5px;width:100%;background:#fff;color:var(--text);cursor:pointer;text-align:left}button.slot:hover:not(:disabled){border-color:var(--signal)}button.slot:disabled{cursor:default;color:var(--slate);background:var(--mist)}.slot.on .slot-state{color:var(--signal-ink);font-weight:600}.slot-state{color:var(--slate)}button.paybtn{font:inherit;font-size:12.5px;border:0;cursor:pointer;width:100%}button.paybtn:hover:not(:disabled){background:var(--signal-ink)}button.paybtn:disabled{opacity:.75;cursor:progress}.ph-done{text-align:center;justify-items:center;padding-top:24px;padding-bottom:20px}.ph-check{width:44px;height:44px;border-radius:50%;background:#e3f4ec;color:var(--turf);display:grid;place-items:center;font-size:22px;font-weight:700}@media (prefers-reduced-motion: no-preference){.ph-done{animation:rise .35s cubic-bezier(.16,1,.3,1) both}}.journey li{display:block}.journey button{font:inherit;font-size:inherit;color:var(--slate);background:none;border:0;padding:0;cursor:pointer;display:grid;justify-items:center;gap:6px;width:100%}.journey button i{width:14px;height:14px;border-radius:50%;background:#c08a1e;border:3px solid #fff;box-shadow:0 0 0 1px #c08a1e;transition:transform .15s}.journey button:hover i{transform:scale(1.2)}.journey button.on{color:var(--ink);font-weight:600}.journey button.on i{background:#fff;box-shadow:0 0 0 2px #c08a1e;transform:scale(1.25)}.lc-step{margin-top:12px;font-size:12.5px;color:var(--text);background:#fbf6ea;border-radius:8px;padding:8px 10px;min-height:2.6em}.lc-bar span{transition:width .35s cubic-bezier(.16,1,.3,1)}.lc-actions{display:flex;align-items:center;gap:12px;margin-top:4px}.lc-btn{font:inherit;font-size:12.5px;font-weight:600;background:#8a6212;color:#fff;border:0;border-radius:8px;padding:8px 12px;cursor:pointer}.lc-btn:hover:not(:disabled){background:#6f4e0d}.lc-btn:disabled{opacity:.5;cursor:default}.lc-link{font:inherit;font-size:12.5px;background:none;border:0;color:var(--slate);text-decoration:underline;cursor:pointer;padding:0}.frame{transition:opacity .2s}.frame .frame-art{transition:box-shadow .2s}.frame.cur .frame-art{box-shadow:0 0 0 2px #f6c445}.sc-race .frame-art{outline:none}.clips i{flex:1;transition:background .2s}.board-ctl{display:flex}.play{font:inherit;font-size:12px;font-weight:600;background:#f6c445;color:#1b1405;border:0;border-radius:8px;padding:8px 14px;cursor:pointer}.play:hover{background:#ffd666}.playhead{left:48px}.tz{display:grid;gap:4px}.tz-scale,.tz-row{display:grid;grid-template-columns:170px 1fr 170px;gap:20px;align-items:center}.tz-ticks{position:relative;height:20px;font-size:12px;color:var(--pg-muted)}.tz-ticks i{position:absolute;font-style:normal;transform:translate(-2px)}.tz-row{padding:14px 0;border-top:1px solid var(--pg-line)}.tz-city b,.tz-hours b{display:block;color:var(--pg-heading);font-weight:600}.tz-city span,.tz-hours span{font-size:14px;color:var(--pg-muted);font-variant-numeric:tabular-nums}.tz-bar{position:relative;height:18px;border-radius:999px;background:var(--pg-tint);overflow:hidden}.tz-work{position:absolute;top:0;bottom:0;background:var(--pg-work)}.tz-over{position:absolute;top:0;bottom:0;background:var(--signal)}.tz-key{display:flex;gap:20px;font-size:13px;color:var(--pg-muted);padding-top:12px;border-top:1px solid var(--pg-line)}.tz-key i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}.k-work{background:var(--pg-work)}.k-over{background:var(--signal)}@media (max-width: 760px){.tz-scale{display:none}.tz-row{grid-template-columns:1fr auto;gap:8px 16px}.tz-bar{grid-column:1 / -1;grid-row:2}.tz-hours{text-align:right}}.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 48px;margin-top:48px}.facts dt{font-weight:600;color:var(--pg-heading)}.facts dd{color:var(--pg-muted)}@media (max-width: 640px){.facts{grid-template-columns:1fr}}.case-link{margin-top:24px}.nav-right{display:flex;align-items:center;gap:8px}.theme-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:10px;border:1px solid currentColor;border-color:color-mix(in srgb,currentColor 30%,transparent);background:none;color:inherit;cursor:pointer}.theme-btn:hover{border-color:currentColor}.case{background:var(--pg-bg);color:var(--pg-text);padding:120px 0 104px}.case-wrap{max-width:880px}.case-back{display:inline-flex;align-items:center;gap:6px;font-size:15px;color:var(--pg-link)!important;text-decoration:none;font-weight:500}.case-head{margin-top:28px;display:grid;gap:16px}.case-title{font-size:clamp(34px,4.6vw,52px);color:var(--pg-heading);text-wrap:balance}.case-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:12px;padding-top:20px;border-top:1px solid var(--pg-line)}.case-meta dt{font-size:14px;color:var(--pg-muted)}.case-meta dd{color:var(--pg-heading);font-weight:500}@media (max-width: 640px){.case-meta{grid-template-columns:1fr}}.case-visual{margin-top:48px;background:var(--ink);border-radius:16px;padding:28px}@media (max-width: 520px){.case-visual{padding:14px}}.case-sec{margin-top:72px}.case-sec p{max-width:68ch}.case-h2{font-family:var(--display);font-weight:700;font-size:clamp(24px,3vw,30px);color:var(--pg-heading);margin-bottom:16px;letter-spacing:-.01em}.steps{counter-reset:step;list-style:none;padding:0;display:grid;gap:0}.steps li{counter-increment:step;display:grid;grid-template-columns:44px 1fr;gap:4px 12px;padding:16px 0;border-top:1px solid var(--pg-line)}.steps li:before{content:counter(step);grid-row:span 2;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:14px;color:var(--signal-ink);background:var(--pg-tint)}.steps b{color:var(--pg-heading)}.steps span{color:var(--pg-muted)}.arch{display:grid;grid-template-columns:1fr 28px 1fr 28px 1fr;align-items:stretch;gap:0}.arch-col{display:grid;gap:10px;align-content:start}.arch-label{font-size:14px;color:var(--pg-muted)}.arch-box{border:1px solid var(--pg-line);background:var(--pg-bg);border-radius:10px;padding:12px 14px;display:grid;gap:2px}.arch-box b{color:var(--pg-heading);font-weight:600;font-size:15.5px}.arch-box span{color:var(--pg-muted);font-size:13.5px}.arch-box.hl{border-color:var(--signal);box-shadow:inset 3px 0 0 var(--signal)}.arch-arrow{position:relative}.arch-arrow:before{content:"";position:absolute;top:50%;left:6px;right:6px;height:2px;background:var(--pg-muted);opacity:.6}.arch-arrow:after{content:"";position:absolute;top:calc(50% - 4px);right:4px;border:5px solid transparent;border-left-color:var(--pg-muted);border-right:0;opacity:.6}@media (max-width: 760px){.arch{grid-template-columns:1fr}.arch-arrow{height:28px}.arch-arrow:before{top:6px;bottom:6px;left:50%;right:auto;width:2px;height:auto}.arch-arrow:after{top:auto;bottom:2px;left:calc(50% - 4px);right:auto;border:5px solid transparent;border-top-color:var(--pg-muted);border-bottom:0}}.case-note{margin-top:12px;font-size:14px;color:var(--pg-muted)}.decisions{display:grid;gap:28px}.decisions h3{font-weight:600;font-size:18px;color:var(--pg-heading);margin-bottom:4px}.decisions p{color:var(--pg-muted)}.case-cta{margin-top:64px}:root{--pg-bg: #ffffff;--pg-heading: #14213d;--pg-text: #1b2433;--pg-muted: #4a5568;--pg-line: #d9e0ea;--pg-tint: #eef2f7;--pg-work: #c9d8ec;--pg-link: #165aa3;--pg-nav: rgba(255,255,255,.94);--p-club: #e8f0fb;--p-athlete: #e2f2ea;--p-thangam: #f7efdc;--p-video: #14213d}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--pg-bg: #0c1424;--pg-heading: #eef3fb;--pg-text: #d6deea;--pg-muted: #9fb0c8;--pg-line: #22314d;--pg-tint: #16223a;--pg-work: #2a3d60;--pg-link: #7fb3ec;--pg-nav: rgba(12,20,36,.92);--p-club: #142640;--p-athlete: #12291f;--p-thangam: #2a2210;--p-video: #070d1a;color-scheme:dark}}:root[data-theme=dark]{--pg-bg: #0c1424;--pg-heading: #eef3fb;--pg-text: #d6deea;--pg-muted: #9fb0c8;--pg-line: #22314d;--pg-tint: #16223a;--pg-work: #2a3d60;--pg-link: #7fb3ec;--pg-nav: rgba(12,20,36,.92);--p-club: #142640;--p-athlete: #12291f;--p-thangam: #2a2210;--p-video: #070d1a;color-scheme:dark}.site{background:var(--pg-bg);color:var(--pg-text)}.h-section,.work h3,.more-item h4,.tl-role,.skill-row dt,.cert h3,.courses-head,.courses .c-name{color:var(--pg-heading)}.contact .h-section{color:#fff}.lede,.work-company,.work p.sum,.more-item h4 span,.more-item p,.tl-when,.tl-org span,.tl ul,.skill-row dd,.cert-top,.cert p,.courses .c-meta{color:var(--pg-muted)}.contact .lede{color:#d3dceb}.cert p[style]{color:var(--pg-text)!important}.work-link,.more-item small,.tl-org,.cert a,.courses a{color:var(--pg-link)!important}.sec+.sec,.more-item,.skills,.skill-row,.cert,.courses,.courses li{border-color:var(--pg-line)}.tl:before{background:var(--pg-line)}.tl-item:before{background:var(--pg-bg)}.tl-item:first-child:before{background:var(--signal)}.chip{background:var(--pg-tint);color:var(--pg-heading)}.btn-ghost{background:var(--pg-bg);border-color:var(--pg-line);color:var(--pg-heading)!important}.btn-ghost:hover{border-color:var(--pg-heading)}.nav.solid{background:var(--pg-nav);color:var(--pg-heading);box-shadow:0 1px 0 var(--pg-line)}.work-visual{background:var(--pg-tint)}.work-visual .note{color:var(--pg-muted)}.work-visual.v-club{background:var(--p-club)}.work-visual.v-athlete{background:var(--p-athlete)}.work-visual.v-thangam{background:var(--p-thangam)}.work-visual.v-video{background:var(--p-video)}.work-visual.v-video .note{color:#a9c4e8}.shots img{border-color:var(--pg-line)}.site ::-moz-selection{background:#cfe1f6;color:#14213d}.site ::selection{background:#cfe1f6;color:#14213d}.core{background:var(--pg-bg);padding:64px 0 8px}.core-h{font-family:var(--display);font-weight:700;font-size:20px;color:var(--pg-heading);margin-bottom:16px}.core-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--pg-line);border-left:1px solid var(--pg-line)}.core-grid li{border-right:1px solid var(--pg-line);border-bottom:1px solid var(--pg-line);min-width:0}.core-item{display:grid;gap:4px;align-content:start;padding:18px 20px;height:100%;text-decoration:none;transition:background .15s}.core-item b{font-family:var(--display);font-weight:700;font-size:20px;color:var(--pg-heading);letter-spacing:-.01em}.core-item span{font-size:14.5px;line-height:1.45;color:var(--pg-muted)}.core-item:hover{background:var(--pg-tint)}.core-item:hover b{color:var(--pg-link)}@media (max-width: 860px){.core-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 400px){.core-item{padding:14px}.core-item b{font-size:18px}}.core+.sec{border-top:0}:root{--hw-bg: #f4f7fb;--hw-surface: #ffffff;--hw-surface-2: #f6f8fc;--hw-line: #d8e1ee;--hw-head: #14213d;--hw-text: #2a3445;--hw-muted: #56657d;--hw-accent: #1f6fc5;--hw-ok: #1a7f52;--hw-glow: rgba(31,111,197,.22);--hw-code-bg: #f3f6fb;--tk-key: #1f5fa8;--tk-str: #8a4b00;--tk-num: #6d28d9;--hw-grad: linear-gradient(90deg, #1f5fbf 0%, #6d28d9 100%);--acc-frontend: #2f6fd6;--acc-middleware: #198a5c;--acc-backend: #7c4dd8;--acc-data: #0f8aa8;--acc-deploy: #4f52d6;--acc-mix: 7%}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--hw-bg: #070f1f;--hw-surface: #0d1a30;--hw-surface-2: #11213b;--hw-line: #213458;--hw-head: #f3f6fc;--hw-text: #cfd9e8;--hw-muted: #9aacc8;--hw-accent: #4c94ee;--hw-ok: #4cc38a;--hw-glow: rgba(76,148,238,.45);--hw-code-bg: #08121f;--tk-key: #8cc2ff;--tk-str: #f5c37a;--tk-num: #c4a7ff;--hw-grad: linear-gradient(90deg, #5aa2ff 0%, #b18cff 100%);--acc-frontend: #4c94ee;--acc-middleware: #34c48a;--acc-backend: #a07cf5;--acc-data: #32bcdc;--acc-deploy: #7a7df5;--acc-mix: 14%}}:root[data-theme=dark]{--hw-bg: #070f1f;--hw-surface: #0d1a30;--hw-surface-2: #11213b;--hw-line: #213458;--hw-head: #f3f6fc;--hw-text: #cfd9e8;--hw-muted: #9aacc8;--hw-accent: #4c94ee;--hw-ok: #4cc38a;--hw-glow: rgba(76,148,238,.45);--hw-code-bg: #08121f;--tk-key: #8cc2ff;--tk-str: #f5c37a;--tk-num: #c4a7ff;--hw-grad: linear-gradient(90deg, #5aa2ff 0%, #b18cff 100%);--acc-frontend: #4c94ee;--acc-middleware: #34c48a;--acc-backend: #a07cf5;--acc-data: #32bcdc;--acc-deploy: #7a7df5;--acc-mix: 14%}.hw{background:var(--hw-bg);color:var(--hw-text);padding:96px 0;border-top:1px solid var(--hw-line);border-bottom:1px solid var(--hw-line)}@media (max-width: 640px){.hw{padding:64px 0}}.hw-wrap{max-width:1520px;margin:0 auto;padding:0 24px}@media (max-width: 640px){.hw-wrap{padding:0 16px}}.hw-head{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;align-items:start;margin-bottom:36px}@media (max-width: 1023px){.hw-head{grid-template-columns:1fr;gap:20px}}.hw-eyebrow{font-size:14px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--hw-accent)}.hw-title{margin-top:6px;font-family:var(--display);font-weight:700;font-size:clamp(32px,4.4vw,56px);line-height:1.05;letter-spacing:-.02em;background:var(--hw-grad);-webkit-background-clip:text;background-clip:text;color:transparent;width:-moz-fit-content;width:fit-content;max-width:100%}.hw-intro{margin-top:14px;max-width:80ch;color:var(--hw-text)}.hw-values{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 0;font-size:15px;color:var(--hw-head)}.hw-values li:not(.hw-values-ico)+li:not(.hw-values-ico):before{content:"•";color:var(--hw-muted);margin:0 12px}.hw-values-ico{color:var(--hw-accent);display:grid;margin-right:8px}.hw-note{display:flex;gap:12px;align-items:flex-start;background:var(--hw-surface);border:1px solid var(--hw-line);border-radius:14px;padding:16px}.hw-note>span{color:#e0a412;flex:none}.hw-note b{color:var(--hw-head)}.hw-note p{font-size:14px;color:var(--hw-muted);margin-top:2px}.hw-main{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;align-items:start}.hw-left{display:grid;gap:20px;min-width:0}@media (max-width: 1399px){.hw-main{grid-template-columns:1fr}}.sysarch{background:var(--hw-surface);border:1px solid var(--hw-line);border-radius:18px;padding:20px}.arch-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.arch-h h3{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:700;font-size:21px;color:var(--hw-head)}.arch-h h3 svg{color:var(--hw-accent)}.arch-legend{display:flex;gap:18px;font-size:13.5px;color:var(--hw-muted)}.arch-legend i{display:inline-block;width:22px;height:0;margin-right:8px;vertical-align:middle}.lg-req{border-top:2px solid var(--acc-frontend)}.lg-res{border-top:2px dashed var(--acc-middleware)}.arch-row{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr) 34px minmax(0,1fr) 34px minmax(0,1fr) 44px minmax(0,1fr);align-items:stretch}.arch-card{--acc: var(--hw-accent);display:flex;flex-direction:column;gap:12px;min-width:0;border-radius:14px;padding:14px 12px;border:1px solid color-mix(in srgb,var(--acc) 45%,var(--hw-line));background:color-mix(in srgb,var(--acc) var(--acc-mix),var(--hw-surface));transition:opacity .25s,box-shadow .25s,transform .25s,border-color .25s}.acc-frontend{--acc: var(--acc-frontend)}.acc-middleware{--acc: var(--acc-middleware)}.acc-backend{--acc: var(--acc-backend)}.acc-data{--acc: var(--acc-data)}.acc-deploy{--acc: var(--acc-deploy)}.arch-card-h{display:flex;gap:10px;align-items:center}.arch-card-ico{flex:none;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:#fff;background:var(--acc)}.arch-card-h h4{font-weight:600;font-size:15px;line-height:1.25;color:var(--hw-head)}.arch-card-h p{font-size:13px;color:var(--acc);font-weight:500;filter:saturate(1.1)}.arch-card-list{list-style:none;padding:0;margin:0;display:grid;gap:6px}.arch-card-list li{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--hw-text);padding:7px 9px;border-radius:8px;background:var(--hw-surface);border:1px solid color-mix(in srgb,var(--acc) 18%,var(--hw-line));min-width:0;overflow-wrap:anywhere;transition:background .25s,border-color .25s}.arch-card-list li.on{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 18%,var(--hw-surface));color:var(--hw-head);font-weight:500}.tech-ico{flex:none;width:26px;height:26px;border-radius:7px;display:grid;place-items:center;color:var(--acc);background:color-mix(in srgb,var(--acc) 14%,transparent)}.arch-card-role{margin-top:auto;text-align:center;font-size:12.5px;line-height:1.4;color:var(--hw-head);padding:9px 8px;border-radius:10px;border:1px solid color-mix(in srgb,var(--acc) 40%,var(--hw-line));background:color-mix(in srgb,var(--acc) 10%,var(--hw-surface))}.sysarch.tracing .arch-card:not(.lit){opacity:.72}.arch-card.lit{opacity:1;border-color:var(--acc);box-shadow:0 0 0 1px var(--acc),0 14px 34px -14px color-mix(in srgb,var(--acc) 70%,transparent)}@media (prefers-reduced-motion: no-preference){.arch-card.lit{transform:translateY(-2px)}}.arch-card:hover{border-color:var(--acc)}.arch-conn{position:relative;display:grid;align-content:center;gap:14px;padding:0 3px}.conn-req,.conn-res{position:relative;display:block;height:2px;opacity:.55;transition:opacity .25s}.conn-req{background:var(--acc-frontend)}.conn-res{background:repeating-linear-gradient(90deg,var(--acc-middleware) 0 5px,transparent 5px 9px);background-size:18px 2px}.conn-req:after{content:"";position:absolute;right:-2px;top:-5px;border:6px solid transparent;border-left-color:var(--acc-frontend);border-right:0}.conn-res:after{content:"";position:absolute;left:-2px;top:-5px;border:6px solid transparent;border-right-color:var(--acc-middleware);border-left:0}.conn-req.on,.conn-res.on{opacity:1;height:3px}.conn-req.on{background:repeating-linear-gradient(90deg,var(--acc-frontend) 0 8px,color-mix(in srgb,var(--acc-frontend) 40%,transparent) 8px 12px);background-size:24px 3px}@media (prefers-reduced-motion: no-preference){.conn-req.on{animation:flow-r .7s linear infinite}.conn-res.on{animation:flow-l .7s linear infinite}@keyframes flow-r{to{background-position:24px 0}}@keyframes flow-l{to{background-position:-18px 0}}}.arch-runs{display:grid;place-items:center;position:relative}.arch-runs:before{content:"";position:absolute;top:8px;bottom:8px;left:50%;border-left:1px dashed var(--hw-line)}.arch-runs span{position:relative;writing-mode:vertical-rl;transform:rotate(180deg);font-size:11.5px;letter-spacing:.06em;color:var(--hw-muted);background:var(--hw-surface);padding:6px 0}@media (max-width: 1023px){.arch-row{grid-template-columns:1fr}.arch-card-list{grid-template-columns:repeat(2,minmax(0,1fr))}.arch-conn{grid-auto-flow:column;justify-content:center;align-content:stretch;gap:22px;height:44px;padding:6px 0}.conn-req,.conn-res{width:2px;height:auto}.conn-req{background:var(--acc-frontend)}.conn-res{background:repeating-linear-gradient(180deg,var(--acc-middleware) 0 5px,transparent 5px 9px);background-size:2px 18px}.conn-req.on,.conn-res.on{width:3px;height:auto}.conn-req.on{background:repeating-linear-gradient(180deg,var(--acc-frontend) 0 8px,color-mix(in srgb,var(--acc-frontend) 40%,transparent) 8px 12px);background-size:3px 24px}.conn-req:after{right:auto;left:-5px;top:auto;bottom:-2px;border:6px solid transparent;border-top-color:var(--acc-frontend);border-bottom:0}.conn-res:after{left:-5px;top:-2px;border:6px solid transparent;border-bottom-color:var(--acc-middleware);border-top:0}@keyframes flow-r{to{background-position:0 24px}}@keyframes flow-l{to{background-position:0 -18px}}.arch-runs{height:44px}.arch-runs:before{top:50%;bottom:auto;left:8px;right:8px;border-left:0;border-top:1px dashed var(--hw-line)}.arch-runs span{writing-mode:horizontal-tb;transform:none;padding:0 10px}}@media (max-width: 420px){.arch-card-list{grid-template-columns:1fr}.sysarch{padding:14px}}.jr{background:var(--hw-surface);border:1px solid var(--hw-line);border-radius:18px;padding:18px;position:sticky;top:80px}@media (max-width: 1399px){.jr{position:static}}.jr-h{display:flex;gap:12px;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--hw-line)}.jr-h-ico{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--hw-accent);flex:none}.jr-h h3{font-family:var(--display);font-weight:700;font-size:21px;color:var(--hw-head)}.jr-h p{font-size:13.5px;color:var(--hw-muted)}.jr-ctl{display:flex;align-items:center;gap:8px;padding:14px 0;flex-wrap:wrap}.jr-btn{font:inherit;font-size:14px;font-weight:600;min-height:40px;min-width:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;border-radius:10px;border:1px solid var(--hw-line);background:var(--hw-surface-2);color:var(--hw-head);cursor:pointer}.jr-btn:hover:not(:disabled){border-color:var(--hw-accent)}.jr-btn:disabled{opacity:.45;cursor:default}.jr-play{background:var(--hw-accent);border-color:var(--hw-accent);color:#fff}.jr-play:hover:not(:disabled){filter:brightness(1.08)}.jr-pos{margin-left:auto;font-size:13px;color:var(--hw-muted);font-variant-numeric:tabular-nums}.jr-list{list-style:none;padding:0;margin:0;display:grid;gap:0;position:relative}@media (min-width: 700px) and (max-width: 1399px){.jr-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}}.jr-step{position:relative}.jr-step:not(:last-child):before{content:"";position:absolute;left:27px;top:44px;bottom:-8px;width:2px;background:var(--hw-line)}@media (min-width: 700px) and (max-width: 1399px){.jr-step:before{display:none}}.jr-step button{font:inherit;color:inherit;text-align:left;width:100%;background:none;border:1px solid transparent;border-radius:14px;padding:8px 10px;display:grid;grid-template-columns:36px 38px minmax(0,1fr);gap:10px;cursor:pointer;transition:background .2s,border-color .2s,box-shadow .2s}.jr-step button:hover{background:var(--hw-surface-2)}.jr-n{position:relative;z-index:1;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:15px;color:var(--hw-accent);background:var(--hw-surface);border:2px solid color-mix(in srgb,var(--hw-accent) 50%,var(--hw-line))}.jr-ico{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:var(--hw-head);background:var(--hw-surface-2);border:1px solid var(--hw-line)}.jr-body{display:grid;gap:4px;min-width:0}.jr-body b{color:var(--hw-head);font-weight:600;font-size:15.5px;line-height:1.3}.jr-badge{justify-self:start;font-size:12px;font-weight:600;color:var(--hw-accent);background:color-mix(in srgb,var(--hw-accent) 12%,transparent);border-radius:999px;padding:2px 9px}.jr-text{font-size:13px;line-height:1.45;color:var(--hw-muted)}.jr-step.on button{background:color-mix(in srgb,var(--hw-accent) 10%,var(--hw-surface));border-color:var(--hw-accent);box-shadow:0 10px 28px -16px var(--hw-glow)}.jr-step.on .jr-n{background:var(--hw-accent);color:#fff;border-color:var(--hw-accent)}.jr-step.on .jr-text{color:var(--hw-text)}@media (max-width: 400px){.jr-step button{grid-template-columns:34px minmax(0,1fr)}.jr-ico{display:none}.jr-step:not(:last-child):before{left:26px}.jr-pos{margin-left:0;width:100%}}.hw-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}@media (max-width: 1399px){.hw-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 767px){.hw-cards{grid-template-columns:1fr}}.tc{background:var(--hw-surface);border:1px solid var(--hw-line);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0;transition:border-color .2s}.tc:hover{border-color:color-mix(in srgb,var(--hw-accent) 50%,var(--hw-line))}.tc-h{display:flex;align-items:center;gap:10px}.tc-h h4{font-weight:600;font-size:15.5px;color:var(--hw-head)}.tc-ico{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:var(--hw-accent);background:color-mix(in srgb,var(--hw-accent) 12%,transparent);flex:none}.tc-method{margin-left:auto;font-size:11.5px;font-weight:700;letter-spacing:.04em;padding:3px 8px;border-radius:6px;color:var(--hw-accent);background:color-mix(in srgb,var(--hw-accent) 14%,transparent)}.tc-endpoint{font-family:IBM Plex Mono,ui-monospace,Menlo,monospace;font-size:13.5px;color:var(--hw-head)}.tc-code{position:relative}.tc-code pre{margin:0;overflow-x:auto;background:var(--hw-code-bg);border:1px solid var(--hw-line);border-radius:10px;padding:12px;font-size:12px;line-height:1.6;color:var(--hw-text)}.tc-code code{font-family:IBM Plex Mono,ui-monospace,Menlo,monospace;white-space:pre}.tk-key{color:var(--tk-key)}.tk-str{color:var(--tk-str)}.tk-num{color:var(--tk-num)}.tc-copy{position:static;font:inherit;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:0 10px;border-radius:8px;border:1px solid var(--hw-line);background:var(--hw-surface);color:var(--hw-head);cursor:pointer}.tc-copy:hover{border-color:var(--hw-accent)}.tc-resp{font-size:14px;color:var(--hw-head);display:flex;align-items:center;gap:8px}.tc-201{font-size:12.5px;font-weight:600;color:var(--hw-ok);background:color-mix(in srgb,var(--hw-ok) 14%,transparent);border:1px solid color-mix(in srgb,var(--hw-ok) 40%,transparent);border-radius:999px;padding:2px 10px}.tc-note{font-size:13px;color:var(--hw-muted);line-height:1.5}.tc-table{border:1px solid var(--hw-line);border-radius:10px;overflow:hidden;font-family:IBM Plex Mono,ui-monospace,Menlo,monospace;font-size:12.5px}.tc-table-name{padding:8px 12px;font-weight:600;color:var(--hw-head);background:color-mix(in srgb,var(--hw-accent) 10%,var(--hw-surface));border-bottom:1px solid var(--hw-line)}.tc-col{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 26px;gap:8px;padding:6px 12px;color:var(--hw-text)}.tc-col+.tc-col{border-top:1px solid color-mix(in srgb,var(--hw-line) 60%,transparent)}.tc-type{color:var(--hw-muted)}.tc-key{font-size:11px;font-weight:600;color:var(--hw-accent);text-align:right}.tc-deploy{list-style:none;padding:0;margin:0;display:grid;gap:14px}.tc-deploy li{display:flex;gap:12px;align-items:center;position:relative}.tc-deploy li:not(:last-child):after{content:"";position:absolute;left:17px;top:38px;height:12px;border-left:2px solid color-mix(in srgb,var(--hw-accent) 55%,transparent)}.tc-dico{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;color:var(--hw-accent);background:color-mix(in srgb,var(--hw-accent) 12%,var(--hw-surface));border:1px solid color-mix(in srgb,var(--hw-accent) 30%,var(--hw-line))}.tc-deploy b{display:block;font-size:14px;font-weight:600;color:var(--hw-head)}.tc-deploy small{display:block;font-size:12.5px;color:var(--hw-muted)}.tc-int{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;text-align:center}.tc-int li{display:grid;justify-items:center;gap:3px;min-width:0}.tc-iico{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;color:var(--acc-data);background:color-mix(in srgb,var(--acc-data) 12%,var(--hw-surface));border:1px solid color-mix(in srgb,var(--acc-data) 30%,var(--hw-line))}.tc-int b{font-size:12.5px;font-weight:600;color:var(--hw-head)}.tc-int small{font-size:11.5px;color:var(--hw-muted)}.tc-sub{margin-top:4px;padding-top:12px;border-top:1px solid var(--hw-line);font-size:14px;font-weight:600;color:var(--hw-head)}.tc-focus{list-style:none;padding:0;margin:0;display:grid;gap:8px}.tc-focus li{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;color:var(--hw-text);line-height:1.45}.tc-focus svg{flex:none;color:var(--hw-ok);margin-top:1px}.hw :focus-visible{outline:2px solid var(--hw-accent);outline-offset:2px}.tc-endrow{display:flex;align-items:center;justify-content:space-between;gap:8px}@media (max-width: 640px){.hw-values{gap:8px 16px}.hw-values li:not(.hw-values-ico)+li:not(.hw-values-ico):before{display:none}.hw-values-ico{margin-right:-8px}}
