*,: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: 226 71% 8%;--foreground: 210 40% 98%;--card: 224 71% 4%;--card-foreground: 213 31% 91%;--popover: 224 71% 4%;--popover-foreground: 215 20.2% 65.1%;--primary: 262.1 83.3% 57.8%;--primary-foreground: 210 40% 98%;--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: 316 70% 50%;--accent-foreground: 210 40% 98%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 263.4 70% 50.4%;--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%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));font-family:"Exo 2",sans-serif;color:hsl(var(--foreground))}code,pre{font-family:Roboto Mono,monospace}.nav-link{position:relative;display:inline-block;padding-top:.5rem;padding-bottom:.5rem;color:hsl(var(--foreground));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;animation-duration:.3s}.nav-link:after{position:absolute;bottom:0;left:0;height:.125rem;width:100%;transform-origin:bottom right;--tw-scale-x: 0;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));background-color:hsl(var(--primary));transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;--tw-content: "";content:var(--tw-content);animation-duration:.3s}.nav-link:hover{color:hsl(var(--primary))}.nav-link:hover:after{transform-origin:bottom left;content:var(--tw-content);--tw-scale-x: 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))}.btn-primary{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));border-radius:calc(var(--radius) - 2px);background-color:hsl(var(--primary));padding:.75rem 1.5rem;color:hsl(var(--primary-foreground));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;animation-duration:.3s}.btn-primary:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));background-color:hsl(var(--primary) / .9);--tw-shadow: 0 0 15px rgba(139,92,246,.5);--tw-shadow-colored: 0 0 15px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.btn-primary:focus{outline:2px solid transparent;outline-offset:2px;--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);--tw-ring-color: hsl(var(--primary) / .7);--tw-ring-offset-width: 2px;--tw-ring-offset-color: hsl(var(--background))}@keyframes flow-right{0%{transform:translate(-100%)}to{transform:translate(200%)}}@keyframes pulse-glow{0%,to{opacity:.3}50%{opacity:1}}.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}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.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-2{top:.5rem}.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-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[1\]{z-index:1}.-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-1{margin-bottom:.25rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-14{margin-top:3.5rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.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\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.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-96{max-height:24rem}.max-h-\[300px\]{max-height:300px}.max-h-screen{max-height:100vh}.min-h-0{min-height:0px}.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-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-5{width:1.25rem}.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-\[--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-md{max-width:28rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.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-\[-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 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{resize:both}.list-none{list-style-type:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.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-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-1{row-gap:.25rem}.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-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))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.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-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-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-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-tech-purple\/20{border-color:#8b5cf633}.border-tech-purple\/30{border-color:#8b5cf64d}.border-transparent{border-color:transparent}.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\/80{background-color:#000c}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.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-tech-dark{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-tech-dark\/80{background-color:#0f172acc}.bg-tech-neon{--tw-bg-opacity: 1;background-color:rgb(0 255 153 / var(--tw-bg-opacity, 1))}.bg-tech-pink{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-tech-purple{--tw-bg-opacity: 1;background-color:rgb(139 92 246 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.fill-current{fill:currentColor}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.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-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-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.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-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.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-8xl{font-size:6rem;line-height:1}.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-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.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}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-\[color\:var\(--green\)\]{color:var(--green)}.text-\[color\:var\(--violet\)\]{color:var(--violet)}.text-accent-foreground{color:hsl(var(--accent-foreground))}.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-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.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-tech-lightBlue{--tw-text-opacity: 1;color:rgb(97 218 251 / var(--tw-text-opacity, 1))}.text-tech-neon{--tw-text-opacity: 1;color:rgb(0 255 153 / var(--tw-text-opacity, 1))}.text-tech-pink{--tw-text-opacity: 1;color:rgb(236 72 153 / var(--tw-text-opacity, 1))}.text-tech-purple{--tw-text-opacity: 1;color:rgb(139 92 246 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.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)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.\!ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)!important}.ring{--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(3px + 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-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))}.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-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-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}@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-500{animation-duration:.5s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.running{animation-play-state:running}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-up{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes blink{0%,to{opacity:.3}50%{opacity:1}}[class*=animate-]{animation-fill-mode:forwards!important}.scroll-progress{background:linear-gradient(90deg,#8b5cf6,#61dafb,#0f9);height:3px;left:0;position:fixed;top:0;transform:scaleX(0);transform-origin:0 50%;width:100%;z-index:80}.cursor-glow{background:radial-gradient(circle,rgba(139,92,246,.22),transparent 62%);height:440px;left:0;opacity:0;pointer-events:none;position:fixed;top:0;transition:opacity .3s ease;width:440px;z-index:1}.spot{position:relative}.spot:before{background:radial-gradient(360px circle at var(--mx, 50%) var(--my, 50%),rgba(139,92,246,.16),transparent 60%);border-radius:inherit;content:"";top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none;position:absolute;transition:opacity .25s ease}.spot:hover:before{opacity:1}.tilt{transition:transform .16s ease-out;will-change:transform}.type-caret{animation:caret-blink 1s steps(2) infinite;background:#0f9;display:inline-block;height:1.05em;margin-left:3px;transform:translateY(.18em);width:2px}@keyframes caret-blink{50%{opacity:0}}[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}[data-reveal].is-visible{opacity:1;transform:none}.to-top{align-items:center;background:#0f172a;border:0;border-radius:999px;bottom:1.25rem;box-shadow:0 8px 24px #0006;color:#fff;cursor:pointer;display:grid;height:3rem;opacity:0;padding:0;place-items:center;pointer-events:none;position:fixed;right:1.25rem;transform:translateY(12px);transition:opacity .22s ease,transform .22s ease;width:3rem;z-index:70}.to-top.show{opacity:1;pointer-events:auto;transform:none}.to-top:hover{transform:translateY(-3px)}.to-top svg:first-child{grid-area:1 / 1;height:100%;transform:rotate(-90deg);width:100%}.to-top-arrow{grid-area:1 / 1}.to-top-track{fill:none;stroke:#ffffff26;stroke-width:3}.to-top-ring{fill:none;stroke:#8b5cf6;stroke-linecap:round;stroke-width:3;transition:stroke-dashoffset .12s linear}.marquee{-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);overflow:hidden}.marquee-track{animation:marquee 40s linear infinite;display:flex;gap:.75rem;width:-moz-max-content;width:max-content}.marquee:hover .marquee-track{animation-play-state:paused}.marquee-item{background:#0f172acc;border:1px solid rgba(139,92,246,.25);border-radius:999px;color:#cbd5e1;font-family:ui-monospace,monospace;font-size:.78rem;font-weight:600;padding:.45rem .95rem;white-space:nowrap}@keyframes marquee{to{transform:translate(-50%)}}.stat-strip{background:#0f172ab3;border:1px solid rgba(139,92,246,.2);border-radius:14px;display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr);padding:1.75rem}@media (min-width: 768px){.stat-strip{grid-template-columns:repeat(4,1fr)}}.stat-num{background:linear-gradient(90deg,#8b5cf6,#61dafb);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:2.4rem;font-weight:800;line-height:1}.stat-label{color:#94a3b8;font-size:.78rem;letter-spacing:.12em;margin-top:.5rem;text-transform:uppercase}.project-card{transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.project-card:hover{border-color:#8b5cf699;box-shadow:0 18px 45px #8b5cf62e;transform:translateY(-5px)}.project-card:after{background:#8b5cf6;content:"";height:3px;left:0;position:absolute;top:0;transform:scaleX(.25);transform-origin:0 50%;transition:transform .32s ease;width:100%}.project-card[data-cat=electronics]:after{background:#ec4899}.project-card[data-cat=tools]:after{background:#0f9}.project-card:hover:after{transform:scaleX(1)}.featured-pill{background:#61dafb26;border-radius:999px;color:#61dafb;display:inline-block;font-size:.65rem;font-weight:700;letter-spacing:.1em;margin-top:.35rem;padding:.1rem .55rem;text-transform:uppercase}.card-link{align-items:center;background:none;border:0;cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:600;gap:.35rem;padding:0;transition:opacity .14s ease,transform .14s ease}.card-link:hover{opacity:.8;transform:translate(2px)}.project-search-wrap{min-width:min(22rem,100%);position:relative}.project-search{background:#0f172ab3;border:1px solid rgba(139,92,246,.3);border-radius:999px;color:#fff;font-size:.9rem;padding:.6rem 2.4rem .6rem 2.3rem;width:100%}.project-search:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf640;outline:none}.project-search-icon{color:#94a3b8;left:.85rem;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search-clear{background:#ffffff14;border:0;border-radius:999px;color:#cbd5e1;cursor:pointer;display:grid;height:1.4rem;place-items:center;position:absolute;right:.55rem;top:50%;transform:translateY(-50%);width:1.4rem}.search-clear:hover{color:#fff}.preview-back{align-items:center;animation:fade-in .16s ease;background:#020617bf;display:grid;top:0;right:0;bottom:0;left:0;padding:1rem;place-items:center;position:fixed;z-index:90}.preview-modal{background:#0f172a;border:1px solid rgba(139,92,246,.3);border-radius:16px;box-shadow:0 40px 100px #0009;display:grid;grid-template-rows:auto auto 1fr;height:min(88vh,860px);overflow:hidden;width:min(1200px,100%)}.preview-bar{align-items:center;background:#111c33;border-bottom:1px solid rgba(255,255,255,.08);display:flex;gap:.8rem;padding:.55rem .8rem}.preview-dots{display:flex;gap:.35rem}.preview-dots i{background:#fff3;border-radius:999px;height:.6rem;width:.6rem}.preview-url{color:#94a3b8;flex:1;font-family:ui-monospace,monospace;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-actions{align-items:center;display:flex;gap:.3rem}.preview-actions button,.preview-actions a{background:transparent;border:0;border-radius:8px;color:#94a3b8;cursor:pointer;display:grid;height:2rem;place-items:center;width:2rem}.preview-actions button:hover,.preview-actions a:hover,.preview-actions .on{background:#ffffff14;color:#fff}.preview-hint{background:#0b1326;color:#94a3b8;font-size:.72rem;margin:0;padding:.35rem .9rem}.preview-stage{background:repeating-linear-gradient(45deg,#0b1326,#0b1326 10px,#0f172a 10px,#0f172a 20px);display:grid;overflow:auto;place-items:center;position:relative}.preview-frame-desktop{background:#fff;border:0;height:100%;width:100%}.preview-frame-mobile{background:#fff;border:8px solid #000;border-radius:28px;height:min(720px,96%);max-width:96%;width:390px}.preview-loading{color:#94a3b8;font-size:.85rem;position:absolute}@keyframes fade-in{0%{opacity:0}}@media (prefers-reduced-motion: reduce){[data-reveal]{opacity:1;transform:none}.marquee-track,.type-caret{animation:none}}.skip-link{background:#8b5cf6;border-radius:0 0 8px;color:#fff;left:0;padding:.6rem 1rem;position:fixed;top:0;transform:translateY(-120%);transition:transform .16s ease;z-index:100}.skip-link:focus{transform:none}:focus-visible{outline:2px solid #61dafb;outline-offset:2px}.route-loading{height:60vh}.project-art{background:radial-gradient(120% 90% at 50% 0%,rgba(139,92,246,.14),transparent 70%),#ffffff05;border-bottom:1px solid rgba(139,92,246,.15);height:8.2rem;padding:.6rem 1rem;transition:transform .4s ease}.project-card:hover .project-art svg{transform:scale(1.06)}.project-art svg{transition:transform .4s ease}.project-art-lg{height:10rem}.status-pill{background:#94a3b826;border-radius:999px;color:#94a3b8;display:inline-block;font-size:.65rem;font-weight:700;letter-spacing:.1em;padding:.1rem .55rem;text-transform:uppercase}.status-pill.live{background:#00ff9924;color:#0f9}.project-select{background:#0f172ab3;border:1px solid rgba(139,92,246,.3);border-radius:999px;color:#fff;font-size:.85rem;padding:.55rem 1rem}.project-select:focus{border-color:#8b5cf6;outline:none}.try-box{background:#61dafb14;border-left:3px solid #61dafb;border-radius:6px;color:#cbd5e1;font-size:.9rem;margin-top:1.1rem;padding:.8rem 1rem}.try-title{color:#61dafb;font-size:.7rem;font-weight:700;letter-spacing:.12em;margin-bottom:.25rem;text-transform:uppercase}.dialog-btn{align-items:center;border:1px solid rgba(139,92,246,.35);border-radius:6px;color:#e2e8f0;cursor:pointer;display:inline-flex;font-size:.85rem;gap:.4rem;padding:.5rem .9rem;transition:background .14s ease,border-color .14s ease;background:transparent}.dialog-btn:hover{background:#8b5cf626;border-color:#8b5cf6}.skill-group{background:#0f172ab3;border:1px solid rgba(139,92,246,.2);border-radius:14px;padding:1.5rem;transition:transform .2s ease,border-color .2s ease}.skill-group:hover{border-color:#8b5cf68c;transform:translateY(-4px)}.skill-group[data-tone=pink] h3{color:#ec4899}.skill-group[data-tone=purple] h3{color:#a78bfa}.skill-group[data-tone=neon] h3{color:#0f9}.skill-chip{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:999px;color:#cbd5e1;font-size:.8rem;padding:.3rem .8rem;transition:all .14s ease}.skill-chip:hover{background:#8b5cf638;border-color:#8b5cf6;color:#fff;transform:translateY(-2px)}.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\:bottom-0:after{content:var(--tw-content);bottom:0}.after\:left-0:after{content:var(--tw-content);left:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:h-0\.5:after{content:var(--tw-content);height:.125rem}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:w-full:after{content:var(--tw-content);width:100%}.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))}.after\:scale-x-0:after{content:var(--tw-content);--tw-scale-x: 0;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))}.after\:bg-tech-purple:after{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(139 92 246 / var(--tw-bg-opacity, 1))}.after\:transition-transform:after{content:var(--tw-content);transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:duration-300:after{transition-duration:.3s;content:var(--tw-content);animation-duration:.3s}.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\:bg-accent:hover{background-color:hsl(var(--accent))}.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\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.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-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\: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\: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}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{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],.data-\[state\=inactive\]\:pointer-events-none[data-state=inactive]{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\=active\]\:translate-y-0[data-state=active]{--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))}.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\=inactive\]\:translate-y-4[data-state=inactive]{--tw-translate-y: 1rem;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-tech-purple\/20[data-state=active]{background-color:#8b5cf633}.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\=active\]\:opacity-100[data-state=active]{opacity:1}.data-\[state\=inactive\]\:opacity-0[data-state=inactive]{opacity:0}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow-\[0_0_15px_rgba\(139\,92\,246\,0\.3\)\][data-state=active]{--tw-shadow: 0 0 15px rgba(139,92,246,.3);--tw-shadow-colored: 0 0 15px 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\=active\]\:after\:scale-x-100[data-state=active]:after{content:var(--tw-content);--tw-scale-x: 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))}.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\:mt-0{margin-top:0}.sm\:flex{display:flex}.sm\:max-w-sm{max-width:24rem}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:.625rem}.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-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}.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\: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\:text-sm{font-size:.875rem;line-height:1.25rem}.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)}}.\[\&\: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{--bg: #070b14;--bg-2: #0b1220;--card: rgba(16, 24, 44, .72);--line: rgba(148, 163, 184, .16);--line-strong: rgba(139, 92, 246, .4);--txt: #e2e8f0;--muted: #94a3b8;--violet: #8b5cf6;--cyan: #61dafb;--pink: #ec4899;--green: #00ff99}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{background:var(--bg);color:var(--txt);font-family:"Exo 2",system-ui,sans-serif}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}.wrap{margin-inline:auto;max-width:72rem;padding-inline:1.25rem;position:relative;z-index:2}@media (min-width: 768px){.wrap{padding-inline:2rem}}.site-bg{top:0;right:0;bottom:0;left:0;pointer-events:none;position:fixed;z-index:0}.site-bg:before{background-image:radial-gradient(rgba(148,163,184,.09) 1px,transparent 1px);background-size:28px 28px;content:"";top:0;right:0;bottom:0;left:0;mask-image:radial-gradient(ellipse 80% 60% at 50% 20%,#000 20%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 20%,#000 20%,transparent 75%);position:absolute}.orb{border-radius:999px;filter:blur(110px);opacity:.35;position:absolute}.orb-a{background:var(--violet);height:26rem;right:-8rem;top:-6rem;width:26rem}.orb-b{background:var(--pink);bottom:10%;height:22rem;left:-10rem;opacity:.16;width:22rem}.orb-c{background:var(--cyan);height:20rem;opacity:.12;right:10%;top:55%;width:20rem}.nav{left:0;position:fixed;right:0;top:0;transition:background .2s ease,border-color .2s ease;z-index:60;border-bottom:1px solid transparent}.nav.scrolled{background:#070b14d1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-color:var(--line)}.nav-inner{align-items:center;display:flex;gap:1.5rem;height:4rem;justify-content:space-between}.logo{align-items:baseline;display:flex;font-weight:800;font-size:1.25rem;gap:2px;letter-spacing:.02em}.logo span{color:var(--cyan)}.nav-links{display:none;gap:.25rem}@media (min-width: 900px){.nav-links{display:flex}}.nav-link{border-radius:8px;color:var(--muted);font-size:.9rem;font-weight:500;padding:.45rem .8rem;position:relative;transition:color .14s ease}.nav-link:hover,.nav-link.active{color:#fff}.nav-link.active:after{background:linear-gradient(90deg,var(--violet),var(--cyan));border-radius:2px;bottom:0;content:"";height:2px;left:.8rem;position:absolute;right:.8rem}.nav-cta{display:none}@media (min-width: 900px){.nav-cta{display:inline-flex}}.menu-btn{background:none;border:1px solid var(--line);border-radius:10px;color:#fff;display:grid;height:2.5rem;place-items:center;width:2.5rem}@media (min-width: 900px){.menu-btn{display:none}}.mobile-menu{background:#070b14f7;display:flex;flex-direction:column;gap:.25rem;top:4rem;right:0;bottom:0;left:0;padding:1.25rem;position:fixed;z-index:59}.mobile-menu a{border-bottom:1px solid var(--line);font-size:1.15rem;padding:.9rem .25rem}.btn{align-items:center;border:1px solid transparent;border-radius:10px;cursor:pointer;display:inline-flex;font-size:.92rem;font-weight:600;gap:.5rem;justify-content:center;padding:.7rem 1.25rem;transition:transform .14s ease,box-shadow .14s ease,background .14s ease,border-color .14s ease}.btn:hover{transform:translateY(-2px)}.btn-primary{background:linear-gradient(135deg,var(--violet),#6d5df5);box-shadow:0 8px 28px #8b5cf659;color:#fff}.btn-primary:hover{box-shadow:0 12px 34px #8b5cf680}.btn-ghost{background:#ffffff08;border-color:var(--line);color:var(--txt)}.btn-ghost:hover{border-color:var(--line-strong);background:#8b5cf61a}.btn-sm{font-size:.82rem;padding:.5rem .9rem}.section{padding-block:5rem;position:relative}@media (min-width: 768px){.section{padding-block:6.5rem}}.eyebrow{align-items:center;color:var(--cyan);display:inline-flex;font-family:Roboto Mono,monospace;font-size:.75rem;gap:.6rem;letter-spacing:.16em;text-transform:uppercase}.eyebrow:before{background:var(--cyan);content:"";height:1px;width:1.6rem}.h2{font-size:clamp(1.9rem,4vw,2.75rem);font-weight:800;letter-spacing:-.01em;line-height:1.1;margin-top:.7rem}.lead{color:var(--muted);font-size:1.05rem;line-height:1.7;margin-top:.9rem;max-width:42rem}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.hero{align-items:center;display:flex;min-height:100svh;padding-block:7rem 4rem}.hero-grid{align-items:center;display:grid;gap:3rem;grid-template-columns:1fr}@media (min-width: 900px){.hero-grid{grid-template-columns:1.25fr .75fr}}.badge-live{align-items:center;background:#00ff9914;border:1px solid rgba(0,255,153,.25);border-radius:999px;color:var(--green);display:inline-flex;font-size:.78rem;font-weight:600;gap:.5rem;padding:.35rem .85rem}.badge-live i{animation:pulse-dot 1.8s ease-in-out infinite;background:var(--green);border-radius:999px;height:.5rem;width:.5rem}@keyframes pulse-dot{50%{box-shadow:0 0 0 6px #0f90;opacity:.6}}.hero h1 .hello{color:#cbd5e1;display:inline-block;font-size:.42em;font-weight:300;letter-spacing:0;margin-bottom:.25em}.hero-intro{color:#b6c2d4;font-size:1.02rem;line-height:1.75;margin-top:1.1rem;max-width:38rem}.lyra-link{background:none;border:0;border-bottom:1px dashed var(--cyan);color:var(--cyan);cursor:pointer;font:inherit;font-weight:700;padding:0}.lyra-link:hover{color:#fff}.hero h1{font-size:clamp(2.6rem,7vw,4.9rem);font-weight:800;letter-spacing:-.02em;line-height:1.02;margin-top:1.4rem}.grad{background:linear-gradient(90deg,#a78bfa,var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}.hero-role{color:#cbd5e1;font-size:clamp(1.05rem,2.2vw,1.4rem);font-weight:300;margin-top:1rem}.hero-type{color:var(--muted);font-family:Roboto Mono,monospace;font-size:.95rem;margin-top:1.2rem;min-height:1.6em}.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}.hero-links{display:flex;gap:.7rem;margin-top:1.8rem}.icon-btn{border:1px solid var(--line);border-radius:10px;color:var(--muted);display:grid;height:2.5rem;place-items:center;transition:all .14s ease;width:2.5rem}.icon-btn:hover{border-color:var(--line-strong);color:#fff;transform:translateY(-2px)}.portrait{margin-inline:auto;max-width:21rem;position:relative;width:100%}.portrait-frame{aspect-ratio:4 / 5;background:linear-gradient(160deg,#8b5cf699,#61dafb59);border-radius:28px;padding:3px}.portrait-frame img{background:#05070d;border-radius:25px;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.portrait:before{background:conic-gradient(from 90deg,var(--violet),var(--cyan),var(--pink),var(--violet));border-radius:34px;content:"";filter:blur(34px);top:-10px;right:-10px;bottom:-10px;left:-10px;opacity:.35;position:absolute;z-index:-1}.chip-float{background:#0a1020eb;border:1px solid var(--line-strong);border-radius:12px;font-family:Roboto Mono,monospace;font-size:.72rem;padding:.45rem .75rem;position:absolute}.chip-float b{color:var(--cyan);font-weight:500}.chip-a{left:-1.2rem;top:12%}.chip-b{animation-delay:-2s;bottom:26%;right:-1.2rem}.chip-c{animation-delay:-4s;bottom:6%;left:-.6rem}@keyframes float{50%{transform:translateY(-9px)}}@media (max-width: 480px){.chip-a{left:0}.chip-b{right:0}}.stat-row{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);margin-top:3.2rem}@media (min-width: 640px){.stat-row{grid-template-columns:repeat(4,1fr)}}.stat{border-left:2px solid var(--violet);padding-left:.9rem}.stat-num{font-size:2rem;font-weight:800;line-height:1}.stat-label{color:var(--muted);font-size:.78rem;letter-spacing:.06em;margin-top:.4rem;text-transform:uppercase}.wave{bottom:0;height:5rem;left:0;opacity:.55;pointer-events:none;position:absolute;width:100%}.wave path{animation:wave-dash 6s linear infinite;fill:none;stroke:url(#wavegrad);stroke-dasharray:12 10;stroke-width:2}@keyframes wave-dash{to{stroke-dashoffset:-220}}.about-grid{display:grid;gap:2rem;margin-top:2.5rem}@media (min-width: 900px){.about-grid{grid-template-columns:1.4fr .8fr}}.about-text p{color:#cbd5e1;font-size:1.02rem;line-height:1.8}.about-text p+p{margin-top:1.1rem}.facts{display:grid;gap:1rem;padding:1.5rem}.fact dt{color:var(--muted);font-family:Roboto Mono,monospace;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}.fact dd{font-size:1.02rem;font-weight:600;margin-top:.2rem}.filters{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;margin-top:2rem}.seg{background:#ffffff08;border:1px solid var(--line);border-radius:12px;display:inline-flex;flex-wrap:wrap;padding:4px}.seg button{background:none;border:0;border-radius:9px;color:var(--muted);cursor:pointer;font-size:.88rem;font-weight:600;padding:.5rem 1rem;transition:all .14s ease}.seg button:hover{color:#fff}.seg button[aria-pressed=true]{background:var(--violet);color:#fff}.proj-grid{display:grid;gap:1.25rem;grid-template-columns:1fr;margin-top:1.25rem}@media (min-width: 720px){.proj-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1060px){.proj-grid{grid-template-columns:repeat(3,1fr)}}.proj-card{display:flex;flex-direction:column;overflow:hidden;position:relative;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.proj-card:hover{border-color:var(--line-strong);box-shadow:0 18px 48px #8b5cf62e;transform:translateY(-5px)}.proj-body{display:flex;flex:1;flex-direction:column;padding:1.1rem 1.4rem .6rem}.proj-title{font-size:1.15rem;font-weight:700;line-height:1.3}.proj-desc{color:var(--muted);font-size:.88rem;line-height:1.65;margin-top:.6rem}.proj-foot{align-items:center;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;padding:.85rem 1.4rem}.tag{background:#ffffff0d;border:0;border-radius:999px;color:#cbd5e1;cursor:pointer;font-size:.72rem;padding:.22rem .65rem;transition:background .14s ease}.tag:hover{background:#8b5cf64d}.tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto;padding-top:.9rem}.skill-grid{display:grid;gap:1.25rem;margin-top:2.5rem}@media (min-width: 900px){.skill-grid{grid-template-columns:repeat(2,1fr)}}.skill-card{padding:1.6rem}.skill-card h3{font-size:1.1rem;font-weight:700}.skill-row+.skill-row{margin-top:1.05rem}.skill-row header{display:flex;font-size:.88rem;justify-content:space-between;margin-bottom:.4rem}.skill-row header span:last-child{color:var(--muted);font-family:Roboto Mono,monospace;font-size:.78rem}.meter{background:#ffffff12;border-radius:999px;height:6px;overflow:hidden}.meter i{background:var(--tone);border-radius:inherit;display:block;height:100%;width:0}[data-tone=purple]{--tone: linear-gradient(90deg, #7c5cf0, #a78bfa)}[data-tone=pink]{--tone: linear-gradient(90deg, #db2777, #f472b6)}[data-tone=blue]{--tone: linear-gradient(90deg, #22b8e6, var(--cyan))}[data-tone=green]{--tone: linear-gradient(90deg, #00c97a, var(--green))}.skill-card[data-tone=green] h3{color:var(--green)}.skill-card[data-tone=purple] h3{color:#a78bfa}.skill-card[data-tone=pink] h3{color:#f472b6}.skill-card[data-tone=blue] h3{color:var(--cyan)}.chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.chip{background:#ffffff0a;border:1px solid var(--line);border-radius:999px;font-size:.85rem;padding:.4rem .95rem;transition:all .14s ease}.chip:hover{border-color:var(--line-strong);color:#fff;transform:translateY(-2px)}.timeline{border-left:2px solid var(--line);margin-top:2.5rem;margin-left:.5rem}.t-item{padding:0 0 2.2rem 1.9rem;position:relative}.t-item:last-child{padding-bottom:0}.t-item:before{background:var(--bg);border:2px solid var(--violet);border-radius:999px;content:"";height:.9rem;left:-.56rem;position:absolute;top:.3rem;width:.9rem}.t-item.current:before{background:var(--green);border-color:var(--green);box-shadow:0 0 0 5px #00ff9926}.t-period{color:var(--cyan);font-family:Roboto Mono,monospace;font-size:.75rem;letter-spacing:.06em}.t-title{font-size:1.2rem;font-weight:700;margin-top:.25rem}.t-org{color:#cbd5e1;font-size:.95rem}.t-text{color:var(--muted);font-size:.93rem;line-height:1.7;margin-top:.6rem;max-width:46rem}.two-col{display:grid;gap:2.5rem}@media (min-width: 900px){.two-col{grid-template-columns:1fr 1fr;gap:3.5rem}}.cert-grid{display:grid;gap:1rem;margin-top:2.5rem}.cert{padding:1.2rem 1.3rem;transition:border-color .2s ease,transform .2s ease}.cert:hover{border-color:var(--line-strong);transform:translateY(-3px)}.cert h4{font-size:1rem;font-weight:700}.cert p{color:var(--muted);font-size:.85rem;line-height:1.6;margin-top:.4rem}.cert .meta{color:var(--cyan);font-family:Roboto Mono,monospace;font-size:.72rem;letter-spacing:.06em;margin-top:.15rem}.contact-grid{display:grid;gap:2rem;margin-top:2.5rem}@media (min-width: 900px){.contact-grid{grid-template-columns:.9fr 1.1fr}}.contact-card{padding:1.6rem}.contact-row{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:.9rem;padding:.9rem 0}.contact-row:last-of-type{border-bottom:0}.contact-row .ico{background:#8b5cf626;border-radius:10px;color:#a78bfa;display:grid;flex:none;height:2.5rem;place-items:center;width:2.5rem}.contact-row small{color:var(--muted);display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.field{display:block}.field+.field{margin-top:1rem}.field span{color:#cbd5e1;display:block;font-size:.85rem;font-weight:600;margin-bottom:.35rem}.input{background:#050810b3;border:1px solid var(--line);border-radius:10px;color:#fff;font:inherit;padding:.75rem .95rem;width:100%}.input:focus{border-color:var(--violet);box-shadow:0 0 0 3px #8b5cf640;outline:none}.input.bad{border-color:#f87171}.err{color:#f87171;font-size:.8rem;margin-top:.3rem}.hp{height:0;left:-9999px;opacity:0;position:absolute;width:0}.form-note{color:var(--muted);font-size:.78rem;margin-top:.8rem}.ok-box{background:#00ff9912;border:1px solid rgba(0,255,153,.25);border-radius:12px;padding:1.4rem;text-align:center}.fail-box{background:#f8717114;border:1px solid rgba(248,113,113,.3);border-radius:12px;color:#fecaca;font-size:.88rem;margin-top:1rem;padding:.9rem 1rem}.fail-box a{text-decoration:underline}.footer{border-top:1px solid var(--line);padding-block:2.2rem;position:relative;z-index:2}.footer-inner{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:.85rem;gap:1rem;justify-content:space-between}.to-top{bottom:5.4rem!important;right:1.35rem!important}.lyra-fab{align-items:center;background:linear-gradient(135deg,var(--violet),#6d5df5);border:0;border-radius:999px;bottom:1.25rem;box-shadow:0 10px 30px #8b5cf673;color:#fff;cursor:pointer;display:flex;gap:.5rem;padding:.85rem 1.1rem;position:fixed;right:1.25rem;z-index:75;font-weight:700;font-size:.9rem;transition:transform .14s ease}.lyra-fab:hover{transform:translateY(-2px)}.lyra-panel{background:#0b1220;border:1px solid var(--line-strong);border-radius:18px;bottom:5rem;box-shadow:0 24px 70px #0009;display:flex;flex-direction:column;height:min(32rem,70vh);max-width:calc(100vw - 2rem);position:fixed;right:1.25rem;width:23rem;z-index:76;animation:pop .16s ease;overflow:hidden}@keyframes pop{0%{opacity:0;transform:translateY(10px) scale(.98)}}.lyra-head{align-items:center;background:linear-gradient(90deg,#8b5cf647,#61dafb1f);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:.85rem 1rem}.lyra-log{display:flex;flex:1;flex-direction:column;gap:.6rem;overflow-y:auto;padding:1rem}.msg{border-radius:14px;font-size:.88rem;line-height:1.55;max-width:88%;padding:.6rem .85rem;white-space:pre-line}.msg.bot{background:#ffffff0f;border-bottom-left-radius:4px}.msg.me{align-self:flex-end;background:var(--violet);border-bottom-right-radius:4px}.msg a{color:var(--cyan);text-decoration:underline}.lyra-chips{display:flex;flex-wrap:wrap;gap:.4rem;padding:0 1rem .6rem}.lyra-form{border-top:1px solid var(--line);display:flex;gap:.5rem;padding:.7rem}.fade-swap{animation:fade-in .24s ease}[data-reveal]{opacity:0;transition:none;transform:none}[data-reveal].is-visible{opacity:1}[data-stagger]:not(.is-visible)>*{opacity:0}[data-heading]{display:block}.w{display:inline-block;overflow:hidden;padding-bottom:.12em;vertical-align:top}.w-i{display:inline-block}[data-heading]:not(.is-visible) .w-i{transform:translateY(115%)}.cw{display:inline-block;white-space:nowrap}.char{display:inline-block;will-change:transform,opacity}.hero-pre .badge-live,.hero-pre .hello,.hero-pre .char,.hero-pre .hero-role,.hero-pre .hero-intro,.hero-pre .hero-type,.hero-pre .hero-cta>*,.hero-pre .hero-links>*,.hero-pre .portrait-wrap,.hero-pre .chip-float,.hero-pre .stat{opacity:0}@media (prefers-reduced-motion: reduce){[data-reveal],[data-stagger]>*,.w-i,.char{opacity:1!important;transform:none!important}}.btn,.icon-btn{will-change:transform}[data-tilt]{transform-style:preserve-3d;will-change:transform}.cursor-dot,.cursor-ring{border-radius:999px;left:0;opacity:0;pointer-events:none;position:fixed;top:0;z-index:200}.cursor-dot{background:var(--cyan);height:6px;margin:-3px 0 0 -3px;width:6px}.cursor-ring{border:1.5px solid rgba(97,218,251,.7);height:34px;margin:-17px 0 0 -17px;transition:width .2s ease,height .2s ease,margin .2s ease,background .2s ease,border-color .2s ease;width:34px}.cursor-ring.hot{background:#8b5cf629;border-color:var(--violet);height:54px;margin:-27px 0 0 -27px;width:54px}@media (hover: none),(pointer: coarse){.cursor-dot,.cursor-ring{display:none}}.timeline{position:relative}.timeline:after{background:linear-gradient(180deg,var(--violet),var(--cyan));border-radius:2px;content:"";height:calc(var(--p, 0) * 100%);left:-2px;position:absolute;top:0;width:2px}.skill-card{position:relative}.skill-primary{border-color:#00ff9959;box-shadow:0 0 0 1px #00ff9914,0 20px 60px #00ff990f}.skill-badge{background:#00ff991f;border-radius:999px;color:var(--green);font-size:.65rem;font-weight:700;letter-spacing:.12em;padding:.15rem .6rem;position:absolute;right:1.2rem;text-transform:uppercase;top:1.3rem}.pillars{display:grid;gap:1.25rem;margin-top:2.5rem}@media (min-width: 700px){.pillars{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1100px){.pillars{grid-template-columns:repeat(4,1fr)}}.pillar{color:inherit;cursor:pointer;font:inherit;text-align:left}.pillar-go{color:var(--cyan);display:inline-block;font-size:.78rem;font-weight:600;margin-top:.9rem;opacity:.75;transition:transform .16s ease,opacity .16s ease}.pillar:hover .pillar-go{opacity:1;transform:translateY(3px)}.pillar{padding:1.7rem}.pillar h3{font-size:1.15rem;font-weight:700;margin-top:1rem}.pillar p{color:var(--muted);font-size:.92rem;line-height:1.7;margin-top:.5rem}.pillar-ico{background:#8b5cf629;border-radius:12px;color:#a78bfa;display:grid;height:2.8rem;place-items:center;width:2.8rem}.fb{padding:1.6rem}.fb-head{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.fb-title{font-size:1.2rem;font-weight:800}.fb-sub{color:var(--muted);font-size:.9rem;margin-top:.25rem}.fb-readout{align-items:baseline;display:flex;flex-wrap:wrap;gap:.5rem 2rem;margin-top:1.4rem}.fb-fps{font-size:3rem;font-weight:800;line-height:1}.fb-fps.good,.fb-status.good{color:var(--green)}.fb-fps.bad,.fb-status.bad{color:#f87171}.fb-ms{font-family:Roboto Mono,monospace;font-size:1.05rem}.fb-unit{color:var(--muted);font-size:.85rem}.fb-status{font-size:.9rem;font-weight:600}.fb-bar{background:#ffffff0d;border-radius:12px;display:flex;height:2.4rem;margin-top:2.1rem;overflow:visible;position:relative}.fb-seg{height:100%;transition:none}.fb-seg:first-child{border-radius:12px 0 0 12px}.fb-line{border-left:2px dashed #fff;bottom:-.5rem;position:absolute;top:-.5rem}.fb-line i{background:#fff;border-radius:4px;color:#0b1220;font-size:.65rem;font-style:normal;font-weight:700;left:4px;padding:.05rem .4rem;position:absolute;top:-1.15rem;white-space:nowrap}.fb-legend{display:grid;gap:.4rem 1.5rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));list-style:none;margin:1.6rem 0 0;padding:0}.fb-legend li{align-items:center;color:#cbd5e1;display:flex;font-size:.82rem;gap:.55rem}.fb-legend li i{border-radius:3px;height:.65rem;width:.65rem}.fb-legend li b{color:var(--muted);font-family:Roboto Mono,monospace;font-weight:500;margin-left:auto}.fb-controls{display:grid;gap:1.5rem;margin-top:1.6rem}@media (min-width: 900px){.fb-controls{grid-template-columns:1.3fr 1fr}}.fb-techs{display:flex;flex-wrap:wrap;gap:.6rem}.fb-tech{align-items:center;background:#ffffff0a;border:1px solid var(--line);border-radius:999px;color:#cbd5e1;cursor:pointer;display:inline-flex;font-size:.82rem;gap:.5rem;padding:.45rem .95rem;transition:all .16s ease}.fb-tech:hover{border-color:var(--line-strong);color:#fff}.fb-dot{background:#fff3;border-radius:999px;height:.6rem;transition:all .16s ease;width:.6rem}.fb-tech.on{background:#00ff991a;border-color:#00ff9980;color:#fff}.fb-tech.on .fb-dot{background:var(--green);box-shadow:0 0 10px var(--green)}.fb-sliders{display:grid;gap:1rem}.fb-sliders label span{color:#cbd5e1;display:flex;font-size:.85rem;justify-content:space-between;margin-bottom:.35rem}.fb-sliders input[type=range]{accent-color:var(--violet);width:100%}.fb-foot{align-items:center;color:var(--muted);display:flex;font-size:.82rem;justify-content:space-between;margin-top:1.3rem}.fb-note{color:var(--muted);font-size:.74rem;margin-top:.6rem;opacity:.8}.ue-console{background:#05070d;border-color:#61dafb40;overflow:hidden}.ue-bar{align-items:center;background:#0d1424;display:flex;gap:.4rem;padding:.6rem .9rem}.ue-bar i{border-radius:999px;height:.65rem;width:.65rem}.ue-bar i:nth-child(1){background:#ff6b5f}.ue-bar i:nth-child(2){background:#ffbd3f}.ue-bar i:nth-child(3){background:#3ecf6d}.ue-bar span{color:#7f8ab0;font-family:Roboto Mono,monospace;font-size:.72rem;margin-left:.6rem}.ue-body{font-family:Roboto Mono,monospace;font-size:.82rem;height:16rem;overflow-y:auto;padding:.9rem 1rem}.ue-line{line-height:1.65;white-space:pre-wrap;word-break:break-word}.ue-line.out{color:#cbd5e1}.ue-line.err{color:#ff8a8a}.ue-line.in{color:#fff}.ue-prompt{color:var(--green);margin-right:.5rem}.ue-row{align-items:center;display:flex}.ue-row input{background:transparent;border:0;caret-color:#fbbf24;color:#fff;flex:1;font:inherit;outline:none}.ue-chips{border-top:1px solid #1a2238;display:flex;flex-wrap:wrap;gap:.4rem;padding:.6rem .9rem}code{background:#ffffff14;border-radius:5px;color:var(--cyan);font-family:Roboto Mono,monospace;font-size:.85em;padding:.1rem .4rem}.fb-sliders input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(90deg,var(--violet) var(--fill, 50%),rgba(255,255,255,.13) var(--fill, 50%));border-radius:999px;cursor:pointer;height:6px;margin:.35rem 0;outline:none;width:100%}.fb-sliders input[type=range]::-webkit-slider-runnable-track{background:transparent;border-radius:999px;height:6px}.fb-sliders input[type=range]::-moz-range-track{background:#ffffff21;border-radius:999px;height:6px}.fb-sliders input[type=range]::-moz-range-progress{background:var(--violet);border-radius:999px;height:6px}.fb-sliders input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;border:3px solid var(--violet);border-radius:999px;box-shadow:0 0 0 5px #8b5cf638,0 3px 10px #00000080;height:20px;margin-top:-7px;-webkit-transition:transform .14s ease,box-shadow .14s ease;transition:transform .14s ease,box-shadow .14s ease;width:20px}.fb-sliders input[type=range]::-moz-range-thumb{background:#fff;border:3px solid var(--violet);border-radius:999px;box-shadow:0 0 0 5px #8b5cf638,0 3px 10px #00000080;height:14px;-moz-transition:transform .14s ease,box-shadow .14s ease;transition:transform .14s ease,box-shadow .14s ease;width:14px}.fb-sliders input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.15)}.fb-sliders input[type=range]:active::-webkit-slider-thumb{box-shadow:0 0 0 9px #8b5cf647,0 3px 10px #00000080;transform:scale(1.2)}.fb-sliders input[type=range]:focus-visible::-webkit-slider-thumb{outline:2px solid var(--cyan);outline-offset:3px}.fb-sliders input[type=range]:hover::-moz-range-thumb{transform:scale(1.15)}.btn{overflow:hidden;position:relative}.ripple{background:#fff;border-radius:999px;opacity:0;pointer-events:none;position:absolute}.confetti{border-radius:2px;height:8px;pointer-events:none;position:fixed;width:5px;z-index:300}.marquee{will-change:transform}.char{cursor:default}.side-dots{display:none}@media (min-width: 1180px){.side-dots{display:flex;flex-direction:column;gap:.2rem;position:fixed;right:1.1rem;top:50%;transform:translateY(-50%);z-index:55}.side-dots a{align-items:center;display:flex;justify-content:flex-end;padding:.35rem .2rem}.side-dots i{background:#94a3b866;border-radius:999px;height:8px;transition:all .22s ease;width:8px}.side-dots a:hover i{background:var(--cyan);transform:scale(1.35)}.side-dots a.on i{background:var(--green);box-shadow:0 0 0 4px #00ff992e;height:22px}.side-dots span{background:#0a1020f2;border:1px solid var(--line-strong);border-radius:6px;font-size:.7rem;margin-right:.6rem;opacity:0;padding:.15rem .5rem;pointer-events:none;transform:translate(6px);transition:all .18s ease;white-space:nowrap}.side-dots a:hover span,.side-dots a.on span{opacity:1;transform:none}}.skill-pick{background:none;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:left;transition:color .14s ease}.skill-pick span{color:var(--cyan);display:inline-block;opacity:.6;transition:transform .16s ease,opacity .16s ease}.skill-pick:hover{color:#fff}.skill-pick:hover span{opacity:1;transform:translate(2px,-2px)}.games-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.games-hint{align-items:center;color:var(--muted);display:inline-flex;font-size:.78rem;gap:.4rem}.games-rail{cursor:grab;display:flex;gap:1rem;overflow-x:auto;padding-bottom:.5rem;scrollbar-width:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-overflow-scrolling:touch}.games-rail::-webkit-scrollbar{display:none}.games-rail.dragging{cursor:grabbing}.games-rail.dragging .game-card{pointer-events:none}.game-card{background:var(--card);border:1px solid var(--line);border-radius:16px;color:inherit;cursor:inherit;flex:0 0 15.5rem;overflow:hidden;padding:0;text-align:left;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.game-card:hover{border-color:var(--line-strong);box-shadow:0 16px 40px #8b5cf633;transform:translateY(-6px)}.game-body{padding:1rem 1.1rem 1.1rem}.game-body h4{font-size:1.05rem;font-weight:800}.game-body p{color:var(--muted);font-size:.82rem;margin-top:.15rem;min-height:1.2em}.game-more{align-items:center;color:var(--cyan);display:inline-flex;font-size:.8rem;font-weight:600;gap:.3rem;margin-top:.7rem;transition:gap .16s ease}.game-card:hover .game-more{gap:.6rem}.games-track{background:#ffffff12;border-radius:999px;height:3px;margin-top:.8rem;overflow:hidden}.games-track i{background:linear-gradient(90deg,var(--violet),var(--cyan));border-radius:inherit;display:block;height:100%;transition:width .12s linear}.cert-grid{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}.cert-flip{background:none;border:0;color:inherit;cursor:pointer;height:11rem;padding:0;perspective:1000px;text-align:left}.cert-inner{height:100%;position:relative;transform-style:preserve-3d;width:100%}.cert-face{backface-visibility:hidden;background:var(--card);border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column;gap:.35rem;height:100%;top:0;right:0;bottom:0;left:0;justify-content:center;padding:1.2rem 1.3rem;position:absolute;transition:border-color .2s ease}.cert-flip:hover .cert-face{border-color:var(--line-strong)}.cert-face h4{font-size:1rem;font-weight:700;margin-top:.4rem}.cert-back{background:linear-gradient(160deg,#8b5cf62e,#10182ce6);transform:rotateY(180deg)}.cert-text{color:#cbd5e1;font-size:.86rem;line-height:1.6}.flip-hint{align-items:center;bottom:.9rem;color:var(--muted);display:inline-flex;font-size:.7rem;gap:.3rem;position:absolute;right:1.1rem}.check-svg{display:block;height:3.4rem;margin:0 auto .5rem;width:3.4rem}.check-ring,.check-path{fill:none;stroke:var(--green);stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.counter{color:var(--muted);font-family:Roboto Mono,monospace;font-size:.7rem;margin-top:.3rem;text-align:right}.t-item.is-visible:before{animation:dotpop .7s cubic-bezier(.2,1.4,.4,1) both}@keyframes dotpop{0%{transform:scale(0)}60%{transform:scale(1.7)}to{transform:scale(1)}}.t-item{transition:transform .2s ease}.t-item:hover{transform:translate(6px)}@media (prefers-reduced-motion: reduce){.t-item.is-visible:before{animation:none}.t-item:hover{transform:none}}.circuit{top:-4%;right:0;bottom:-4%;left:0;pointer-events:none;position:fixed;transform:translate3d(0,calc(var(--sy, 0) * -.035px),0);z-index:0}.circuit svg{display:block;height:100%;width:100%}.cb-base{--trace: rgba(97, 218, 251, .14)}.cb-trace{fill:none;stroke:var(--trace);stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.cb-pad{fill:#070b14;stroke:var(--trace);stroke-width:2}.cb-via{fill:none;stroke:var(--trace);stroke-width:2}.cb-via-dot{fill:var(--trace)}.cb-chip rect{fill:#0b1220e6;stroke:var(--trace);stroke-width:2}.cb-chip .cb-die{fill:#8b5cf612;stroke-dasharray:3 5}.cb-chip line{stroke:var(--trace);stroke-width:3;stroke-linecap:round}.cb-pin1{fill:var(--trace)}.cb-bright{--trace: rgba(0, 255, 153, .75);-webkit-mask-image:radial-gradient(220px circle at var(--mx, 50%) var(--my, 40%),#000,transparent 72%);mask-image:radial-gradient(220px circle at var(--mx, 50%) var(--my, 40%),#000,transparent 72%)}@media (max-width: 700px){.circuit{opacity:.8}.cb-bright{display:none}}.fparts{top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;position:absolute;z-index:1}.fp{pointer-events:auto;position:absolute;transform:translate3d(0,var(--py, 0px),0)}.fp-mid,.fp-in{display:block}.fp svg{display:block;opacity:.8;transition:opacity .2s ease}.fp:hover svg{filter:drop-shadow(0 0 14px rgba(97,218,251,.75));opacity:1}.fp{cursor:pointer}.led-glow{animation:ledpulse 2.4s ease-in-out infinite;transform-origin:center;transform-box:fill-box}@keyframes ledpulse{50%{opacity:.05;transform:scale(.7)}}@media (max-width: 900px){.fp-extra{display:none}.fp{pointer-events:none}.fp svg{opacity:.5}}@media (max-width: 600px){.fp{width:56px!important}.fp:nth-child(2n){display:none}}@media (prefers-reduced-motion: reduce){.led-glow{animation:none}}.seg{position:relative}.seg button{position:relative;z-index:1}.seg button[aria-pressed=true]{background:transparent}.seg-ind{background:linear-gradient(135deg,var(--violet),#6d5df5);border-radius:9px;bottom:4px;box-shadow:0 6px 20px #8b5cf666;left:0;position:absolute;top:4px;width:0;z-index:0}.shine{border-radius:inherit;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;position:absolute;z-index:4}.shine i{background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.16) 50%,transparent 70%);display:block;height:100%;transform:translate(-140%);width:60%}.cnt{display:inline-block}.proj-card .project-art svg{transform:translate(calc(var(--px, 0) * -16px),calc(var(--py, 0) * -10px)) scale(1.03);transition:transform .16s ease-out}.status-pill.live:before{animation:livepulse 1.8s ease-in-out infinite;background:var(--green);border-radius:999px;content:"";display:inline-block;height:.42rem;margin-right:.35rem;vertical-align:middle;width:.42rem}@keyframes livepulse{50%{box-shadow:0 0 0 5px #0f90;opacity:.55}}.proj-title{background:linear-gradient(90deg,var(--cyan),var(--cyan)) 0 100% / 0 2px no-repeat;transition:background-size .32s ease;width:-moz-fit-content;width:fit-content}.proj-card:hover .proj-title{background-size:100% 2px}.card-link svg{transition:transform .2s ease}.card-link:hover svg{transform:scale(1.2) rotate(-6deg)}@media (prefers-reduced-motion: reduce){.status-pill.live:before{animation:none}}.uew{background:#070b14;border:1px solid rgba(97,218,251,.22);border-radius:18px;box-shadow:0 30px 80px #00000073;overflow:hidden}.uew-chrome{align-items:center;background:#0d1424;border-bottom:1px solid var(--line);display:flex;gap:.8rem;padding:.6rem 1rem}.uew-dots{display:inline-flex;gap:.4rem}.uew-dots i{border-radius:999px;height:.65rem;width:.65rem}.uew-dots i:nth-child(1){background:#ff6b5f}.uew-dots i:nth-child(2){background:#ffbd3f}.uew-dots i:nth-child(3){background:#3ecf6d}.uew-title{color:#7f8ab0;font-family:Roboto Mono,monospace;font-size:.74rem}.uew-tabs{background:#0a101e;border-bottom:1px solid var(--line);display:flex;gap:.25rem;overflow-x:auto;padding:.5rem .6rem 0}.uew-tab{align-items:center;background:transparent;border:1px solid transparent;border-bottom:0;border-radius:10px 10px 0 0;color:var(--muted);cursor:pointer;display:inline-flex;font-size:.86rem;font-weight:600;gap:.45rem;padding:.6rem 1.1rem;transition:color .14s ease,background .14s ease;white-space:nowrap}.uew-tab:hover{color:#fff}.uew-tab.on{background:#070b14;border-color:var(--line);color:#fff;box-shadow:inset 0 2px 0 var(--green)}.uew-blurb{color:var(--muted);font-size:.88rem;padding:1rem 1.2rem 0}.uew-panel{padding:1rem 1.2rem 1.4rem}.uew-stack{display:grid;gap:1.25rem}.uew .card{background:#10182cb8}.bp-tools{align-items:center;display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:.9rem}.bp-check{align-items:center;color:#e2e8f0;cursor:pointer;display:inline-flex;font-size:.85rem;gap:.5rem}.bp-check input{accent-color:#dc2626;height:1rem;width:1rem}.bp-hint{color:var(--muted);font-size:.76rem;margin-left:auto}.bp-scroll{border-radius:12px;overflow-x:auto}.bp-board{background-color:#0b0f1a;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:24px 24px;border:1px solid #1c2540;border-radius:12px;height:340px;min-width:940px;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.bp-wires{top:0;right:0;bottom:0;left:0;overflow:visible;pointer-events:none;position:absolute}.bp-wire{fill:none;stroke-linecap:round;stroke-width:2.6}.bp-wire.exec{stroke:#ffffffb8}.bp-wire.bool{stroke:#dc2626}.bp-wire.lit{filter:drop-shadow(0 0 5px currentColor);stroke:#fff;stroke-width:3.2}.bp-wire.bool.lit{stroke:#ff5a5a}.bp-pulse{fill:#fff;filter:drop-shadow(0 0 8px #61dafb);opacity:0}.bp-node{background:#141824f5;border:1px solid #2b3550;border-radius:8px;box-shadow:0 8px 24px #00000080;position:absolute;transition:box-shadow .22s ease,border-color .22s ease}.bp-node.on{border-color:#ffd54a;box-shadow:0 0 0 1px #ffd54a,0 0 22px #ffd54a59}.bp-head{border-radius:7px 7px 0 0;cursor:grab;font-size:.78rem;font-weight:700;height:30px;letter-spacing:.01em;line-height:30px;overflow:hidden;padding:0 .7rem;text-overflow:ellipsis;white-space:nowrap}.bp-head:active{cursor:grabbing}.bp-node.event .bp-head{background:linear-gradient(90deg,#b91c1c,#7f1d1d)}.bp-node.func .bp-head{background:linear-gradient(90deg,#1d4ed8,#1e3a8a)}.bp-node.flow .bp-head{background:linear-gradient(90deg,#52525b,#3f3f46)}.bp-node.var .bp-head{background:linear-gradient(90deg,#15803d,#14532d)}.bp-body{align-items:flex-start;display:flex;justify-content:space-between;padding:.35rem 0}.bp-col{display:flex;flex-direction:column}.bp-col.out{align-items:flex-end}.bp-pin{align-items:center;color:#cbd5e1;display:flex;font-size:.74rem;gap:.4rem;height:26px;padding:0 .6rem}.bp-pin.out{justify-content:flex-end}.pin{display:inline-block;flex:none;height:11px;width:11px}.pin.exec{background:#fff;clip-path:polygon(0 0,65% 0,100% 50%,65% 100%,0 100%)}.pin.bool{background:#dc2626;border-radius:999px;box-shadow:0 0 0 2px #dc262640}.bp-var{align-self:center;padding:0 .3rem}.bp-bool{border-radius:4px;font-family:Roboto Mono,monospace;font-size:.7rem;font-weight:700;padding:.15rem .45rem}.bp-bool.yes{background:#00ff9926;color:var(--green)}.bp-bool.no{background:#f8717126;color:#f87171}.bp-bottom{display:grid;gap:1rem;margin-top:1rem}@media (min-width: 800px){.bp-bottom{grid-template-columns:.9fr 1.1fr}}.bp-view{background:#0a1020;border:1px solid #1c2540;border-radius:12px;overflow:hidden}.bp-cap{color:var(--muted);font-family:Roboto Mono,monospace;font-size:.72rem;padding:.4rem .8rem}.bp-log{background:#05070d;border:1px solid #1c2540;border-radius:12px;color:#cbd5e1;font-family:Roboto Mono,monospace;font-size:.78rem;line-height:1.7;min-height:9rem;padding:.8rem 1rem}.ld-tools{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:.9rem}.ld-score{align-items:baseline;display:flex;gap:.6rem}.ld-num{color:var(--cyan);font-size:1.8rem;font-weight:800;line-height:1}.ld-cap{color:var(--muted);font-size:.78rem}.ld-map{background:#080d18;border:1px solid #1c2540;border-radius:12px;display:block;touch-action:none;width:100%}.ld-bound{fill:none;stroke:#475569;stroke-width:3}.ld-block{fill:#1a2238;stroke:#64748b;stroke-width:2}.ld-sight{fill:#61dafb29;stroke:#61dafb8c;stroke-width:1.5}.ld-route{fill:none;stroke:var(--green);stroke-dasharray:8 8;stroke-linecap:round;stroke-linejoin:round;stroke-width:3;animation:routeflow 1.6s linear infinite}.ld-route.off{opacity:0}@keyframes routeflow{to{stroke-dashoffset:-32}}.ld-runner{fill:#fff;filter:drop-shadow(0 0 8px var(--green))}.ld-beat{cursor:pointer;outline:none}.ld-beat circle{fill:#f59e0b;stroke:#fff;stroke-width:2;transition:transform .16s ease;transform-box:fill-box;transform-origin:center}.ld-beat:hover circle,.ld-beat:focus circle{transform:scale(1.25)}.ld-beat text{fill:#0b0f1a;font-size:13px;font-weight:800;pointer-events:none}.ld-eye-ring{fill:#00ff991f;stroke:var(--green);stroke-width:2}.ld-eye-dot{fill:var(--green)}.ld-note{color:#cbd5e1;font-size:.86rem;margin-top:.8rem;min-height:2.6em}@media (prefers-reduced-motion: reduce){.ld-route{animation:none}}.lod{padding:1.4rem}.lod-badge{background:#61dafb1f;border:1px solid rgba(97,218,251,.4);border-radius:999px;color:var(--cyan);font-family:Roboto Mono,monospace;font-size:.8rem;font-weight:700;padding:.3rem .9rem}.lod-grid{display:grid;gap:1.4rem;margin-top:1.2rem}@media (min-width: 800px){.lod-grid{grid-template-columns:.8fr 1.2fr;align-items:center}}.lod-stage{align-items:center;background:radial-gradient(circle at 50% 40%,rgba(139,92,246,.16),transparent 70%),#05070d;border:1px solid #1c2540;border-radius:14px;display:grid;height:15rem;place-items:center}.lod-mesh{transition:transform .22s ease-out;width:12rem}.lod-outline{fill:#8b5cf614;stroke:#a78bfab3;stroke-width:1.5}.lod-lines ellipse{fill:none;stroke:var(--cyan);stroke-width:1.1}.lod-stat{color:var(--muted);font-size:.86rem}.lod-stat span{color:#fff;font-size:1.5rem;font-weight:800;margin-right:.4rem}.lod-save{color:var(--muted);font-size:.82rem;margin-top:.5rem}.lod-save.good{color:var(--green)}.lod-range{display:block;margin-top:1.1rem}.lod-range span{color:#cbd5e1;display:flex;font-size:.85rem;justify-content:space-between;margin-bottom:.35rem}.lod-range input[type=range],.fb-sliders input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(90deg,var(--violet) var(--fill, 50%),rgba(255,255,255,.13) var(--fill, 50%));border-radius:999px;cursor:pointer;height:6px;outline:none;width:100%}.lod-range input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;border:3px solid var(--violet);border-radius:999px;box-shadow:0 0 0 5px #8b5cf638,0 3px 10px #00000080;height:20px;width:20px}.lod-range input[type=range]::-moz-range-thumb{background:#fff;border:3px solid var(--violet);border-radius:999px;height:14px;width:14px}.lod-steps{display:grid;gap:.5rem;grid-template-columns:repeat(4,1fr);margin-top:1rem}.lod-step{background:#ffffff0a;border:1px solid var(--line);border-radius:10px;color:var(--muted);cursor:pointer;display:flex;flex-direction:column;font-size:.72rem;gap:.15rem;padding:.5rem;transition:all .16s ease}.lod-step b{color:#fff;font-family:Roboto Mono,monospace;font-size:.9rem}.lod-step.on{background:#00ff991a;border-color:#00ff9980;color:#fff}.cb-game{fill:none;stroke:var(--trace);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6}.cb-game circle{fill:none}.pop-text{font-family:Roboto Mono,monospace;font-size:.95rem;font-weight:800;letter-spacing:.06em;margin-left:-1.6rem;pointer-events:none;position:fixed;text-shadow:0 2px 10px rgba(0,0,0,.8);white-space:nowrap;z-index:320}.fp[data-part=dice],.fp[data-part=coin],.fp[data-part=heart],.fp[data-part=crosshair],.fp[data-part=sword],.fp[data-part=gamepad],.fp[data-part=joystick]{cursor:crosshair}.coin-spin{transform-box:fill-box;transform-origin:center}.skills-head{align-items:flex-end;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between}.skills-avg{border-left:2px solid var(--violet);padding-left:1rem;text-align:left}.skills-tools{align-items:center;display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem}.skills-tools .seg button{align-items:center;display:inline-flex;gap:.35rem}.skill-pick{align-items:center;background:none;border:0;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:.3rem;padding:0;text-align:left;transition:color .14s ease}.skill-pick:disabled{cursor:default}.skill-pick:not(:disabled):hover{color:#fff}.skill-chevron{color:var(--cyan);opacity:.7;transition:transform .2s ease,opacity .2s ease}.skill-row.open .skill-chevron{transform:rotate(180deg)}.skill-pick:not(:disabled):hover .skill-chevron{opacity:1}.skill-row.dim{opacity:.28}.skill-row{transition:opacity .22s ease}.skill-related{display:flex;flex-direction:column;gap:.35rem;margin:.6rem 0 .9rem;padding-left:.1rem}.skill-related button{background:#ffffff0a;border:1px solid var(--line);border-radius:8px;color:#cbd5e1;cursor:pointer;font-size:.8rem;padding:.4rem .7rem;text-align:left;transition:all .14s ease}.skill-related button:hover{border-color:var(--line-strong);color:#fff}.skill-related-all{color:var(--cyan)!important;font-weight:600}.radar-wrap{display:grid;margin-top:1rem;place-items:center}.radar{max-width:15rem;width:100%}.radar-ring{fill:none;stroke:#ffffff1a;stroke-width:1}.radar-shape{stroke-width:2;transition:stroke .2s ease}.radar-label{fill:var(--muted);font-size:6.5px;font-family:Roboto Mono,monospace}
