*,: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}.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}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset: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\/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-3\.5{top:.875rem}.top-4{top:1rem}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[1\]{z-index:1}.order-first{order:-9999}.order-last{order:9999}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2 / span 2}.row-start-1{grid-row-start:1}.\!m-0{margin:0!important}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.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{margin-top:0;margin-bottom:0}.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-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.ml-1{margin-left:.25rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-10{width:2.5rem;height:2.5rem}.size-2{width:.5rem;height:.5rem}.size-2\.5{width:.625rem;height:.625rem}.size-3{width:.75rem;height:.75rem}.size-3\.5{width:.875rem;height:.875rem}.size-4{width:1rem;height:1rem}.size-6{width:1.5rem;height:1.5rem}.size-7{width:1.75rem;height:1.75rem}.size-8{width:2rem;height:2rem}.size-9{width:2.25rem;height:2.25rem}.size-auto{width:auto;height:auto}.size-full{width:100%;height:100%}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.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-\[1\.15rem\]{height:1.15rem}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 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-\[300px\]{max-height:300px}.min-h-0{min-height:0px}.min-h-16{min-height:4rem}.min-h-4{min-height:1rem}.min-h-svh{min-height:100svh}.w-0{width:0px}.w-1{width:.25rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-5{width:1.25rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[100px\]{width:100px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.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-10{min-width:2.5rem}.min-w-5{min-width:1.25rem}.min-w-8{min-width:2rem}.min-w-9{min-width:2.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-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-sm{max-width:24rem}.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-0\.5{--tw-translate-y: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.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))}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y: calc(-50% - 2px) ;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 caret-blink{0%,70%,to{opacity:1}20%,50%{opacity:0}}.animate-caret-blink{animation:caret-blink 1.25s ease-out infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-text{cursor:text}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.scroll-py-1{scroll-padding-top:.25rem;scroll-padding-bottom:.25rem}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-start{justify-items:start}.gap-0\.5{gap:.125rem}.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-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-\[--spacing\(var\(--gap\)\)\]{gap:var(--spacing(var(--gap)))}.gap-y-0\.5{row-gap:.125rem}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.justify-self-end{justify-self:end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-nowrap{white-space:nowrap}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.rounded-\[2px\]{border-radius:2px}.rounded-\[4px\]{border-radius:4px}.rounded-\[calc\(var\(--radius\)-5px\)\]{border-radius:calc(var(--radius) - 5px)}.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-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:calc(var(--radius) - 6px)}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-0{border-width:0px}.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-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .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-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-black\/50{background-color:#00000080}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{--tw-bg-opacity: 1;background-color:hsl(var(--destructive) / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-input{background-color:hsl(var(--input))}.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-primary\/20{background-color:hsl(var(--primary) / .2)}.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-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.fill-current{fill:currentColor}.fill-foreground{fill:hsl(var(--foreground))}.fill-primary{fill:hsl(var(--primary))}.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-\[3px\]{padding:3px}.p-px{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.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-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-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{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-3{padding-right:.75rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.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}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.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-sm\/relaxed{font-size:.875rem;line-height:1.625}.text-xs{font-size:.75rem;line-height:1rem}.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-normal{line-height:1.5}.leading-snug{line-height:1.375}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-background{color:hsl(var(--background))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-destructive{--tw-text-opacity: 1;color:hsl(var(--destructive) / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.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-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xs{--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)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.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)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;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\,opacity\]{transition-property:margin,opacity;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-none{transition-property:none}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;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-100{transition-duration:.1s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.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}.zoom-in-95{--tw-enter-scale: .95}.duration-100{animation-duration:.1s}.duration-1000{animation-duration:1s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.\!running{animation-play-state:running!important}.running{animation-play-state:running}.\!paused{animation-play-state:paused!important}.paused{animation-play-state:paused}.\[--cell-size\:--spacing\(8\)\]{--cell-size: var(--spacing(8))}:root{--ink-950: oklch(.145 .004 160);--ink-900: oklch(.185 .006 160);--ink-850: oklch(.215 .007 160);--paper: oklch(1 0 0);--muted: oklch(.676 .012 280);--muted-dark: oklch(.48 .012 160);--line: oklch(1 0 0 / .13);--forest: oklch(.438 .083 165);--forest-deep: oklch(.32 .065 165);--mint: oklch(.93 .17 145);--signal: oklch(.9 .18 100);--font-body: "Noto Sans CJK SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-display: Georgia, "Noto Serif CJK SC", "Songti SC", serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--ink-950)}body{margin:0;min-width:320px;background:var(--ink-950);color:var(--paper);font-family:var(--font-body);font-size:16px;line-height:1.7;overflow-x:hidden}html:has(body.dialog-open),body.dialog-open{overflow:hidden;overscroll-behavior:none}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}::-moz-selection{color:var(--ink-950);background:var(--signal)}::selection{color:var(--ink-950);background:var(--signal)}:focus-visible{outline:2px solid var(--mint);outline-offset:4px}.page-width{width:min(calc(100% - 64px),1360px);margin-inline:auto}.meta-label,.section-index{margin:0;color:var(--muted);font-family:var(--font-mono);font-size:11px;line-height:1.5;letter-spacing:.12em;text-transform:uppercase}.status-dot{display:inline-block;width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:var(--mint);box-shadow:0 0 14px #b0ffb273;box-shadow:0 0 14px oklch(.93 .17 145 / .45)}.brand{font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:-.06em}.brand span{margin-left:3px;color:var(--mint);font-family:var(--font-body);font-size:9px;vertical-align:top}.text-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;border:0;border-bottom:1px solid currentColor;background:none;cursor:pointer}.loading-screen{display:flex;min-height:100svh;align-items:center;justify-content:center;gap:14px;background:var(--ink-950);color:var(--muted)}.loading-screen p{margin:0}.site-header{position:fixed;z-index:30;top:0;left:0;right:0;display:flex;height:76px;align-items:center;justify-content:space-between;padding-inline:max(32px,calc((100vw - 1360px)/2));border-bottom:1px solid var(--line);background:#090b09db;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.main-nav{display:flex;align-items:center;gap:34px}.main-nav a{position:relative;display:inline-flex;min-height:44px;align-items:center;gap:6px;color:#ffffffa8;font-size:13px;transition:color .18s ease-out}.main-nav a:hover{color:var(--paper)}.main-nav .admin-link{color:var(--muted)}.header-actions{display:flex;align-items:center;gap:12px}.resume-link{display:inline-flex;min-height:42px;align-items:center;gap:8px;padding:0 17px;border:1px solid oklch(1 0 0 / .24);font-size:12px;transition:background .16s ease-out,color .16s ease-out}.resume-link:hover{background:var(--paper);color:var(--ink-950)}.menu-button{display:none;width:44px;height:44px;align-items:center;justify-content:center;border:0;background:transparent}.hero{position:relative;min-height:100svh;overflow:hidden;border-bottom:1px solid var(--line)}.ambient-glyphs{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,black,transparent 92%);mask-image:linear-gradient(to bottom,black,transparent 92%)}.hero:after{position:absolute;inset:0;background:radial-gradient(circle at 76% 38%,oklch(.438 .083 165 / .18),transparent 34%);content:"";pointer-events:none}.hero-grid{position:relative;z-index:1;display:grid;min-height:100svh;grid-template-columns:repeat(12,1fr);align-content:space-between;gap:24px;padding-top:124px;padding-bottom:64px}.hero-status{display:flex;grid-column:1 / 7;align-items:center;gap:10px;color:#ffffffc2;font-size:13px}.hero-side{grid-column:10 / 13;text-align:right}.hero h1{grid-column:1 / 13;margin:5vh 0;font-family:var(--font-display);font-size:clamp(4.5rem,10.5vw,6rem);font-weight:400;letter-spacing:-.055em;line-height:.9;text-wrap:balance}.hero h1 span,.hero h1 em{display:block}.hero h1 em{margin-left:24%;color:var(--mint);font-weight:400}.hero-bottom{display:grid;grid-column:1 / 13;grid-template-columns:repeat(12,1fr);gap:24px;align-items:end}.hero-kicker{grid-column:1 / 5;margin:0;color:var(--muted);font-family:var(--font-mono);font-size:12px;line-height:1.6;letter-spacing:.08em}.hero-intro{grid-column:6 / 13}.hero-intro h2{max-width:620px;margin:0 0 14px;font-size:clamp(22px,2.4vw,34px);font-weight:500;line-height:1.35;text-wrap:balance}.hero-intro>p{max-width:680px;margin:0;color:#ffffffa3;line-height:1.8}.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.primary-action,.secondary-action{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:10px;padding:0 20px;cursor:pointer;transition:transform .15s ease-out,background .15s ease-out}.primary-action{background:var(--paper);color:var(--ink-950)}.secondary-action{border:1px solid oklch(1 0 0 / .24)}.primary-action:hover,.secondary-action:hover{transform:translateY(-2px)}.secondary-action:hover{background:#ffffff14}.transition-section{padding:128px 0;background:var(--forest-deep)}.transition-heading{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;margin-top:46px}.transition-heading h2{grid-column:1 / 6;margin:0;font-family:var(--font-display);font-size:clamp(36px,4.5vw,64px);font-weight:400;letter-spacing:-.035em;line-height:1.25}.transition-heading>p{grid-column:7 / 13;margin:0;color:#ffffffc7;font-size:17px;line-height:2;white-space:pre-line}.delivery-chain{display:grid;grid-template-columns:repeat(5,1fr);margin-top:78px;border-top:1px solid oklch(1 0 0 / .24);border-bottom:1px solid oklch(1 0 0 / .24)}.chain-step{display:flex;min-height:150px;flex-direction:column;justify-content:space-between;padding:20px;border-right:1px solid oklch(1 0 0 / .18)}.chain-step:first-child{padding-left:0}.chain-step:last-child{border-right:0}.chain-step span{color:#ffffff7a;font-family:var(--font-mono);font-size:11px}.chain-step strong{max-width:150px;font-size:15px;font-weight:500;line-height:1.55}.working-style{max-width:850px;margin:46px 0 0 auto;color:#ffffffa8;font-size:14px}.work-section,.experience-section{padding-top:128px;padding-bottom:140px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:54px}.section-heading h2{margin:10px 0 0;font-family:var(--font-display);font-size:clamp(38px,5vw,68px);font-weight:400;letter-spacing:-.04em;line-height:1.15}.section-heading>p{margin:0;color:var(--muted);font-size:13px;text-align:right}.filter-row{display:flex;flex-wrap:wrap;gap:4px 24px;margin-bottom:40px;border-bottom:1px solid var(--line)}.filter-row button{position:relative;min-height:44px;padding:0;border:0;background:transparent;color:var(--muted);cursor:pointer}.filter-row button.active{color:var(--paper)}.filter-row button.active:after{position:absolute;right:0;bottom:-1px;left:0;height:2px;background:var(--mint);content:""}.project-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:72px 24px}.project-item{grid-column:span 6;min-width:0}.project-item.featured{grid-column:span 7}.project-item.featured+.project-item{grid-column:span 5}.project-open{display:block;width:100%;padding:0;border:0;background:none;text-align:left;cursor:pointer}.project-image-wrap{position:relative;display:block;aspect-ratio:4 / 3;overflow:hidden;background:var(--ink-850)}.project-item.featured .project-image-wrap{aspect-ratio:16 / 11}.project-image-wrap img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .55s cubic-bezier(.23,1,.32,1),filter .3s ease-out}.project-view{position:absolute;right:18px;bottom:18px;display:flex;min-height:46px;align-items:center;gap:10px;padding:0 16px;background:var(--paper);color:var(--ink-950);font-size:12px;opacity:0;transform:translateY(8px);transition:opacity .2s ease-out,transform .2s ease-out}.project-open:hover img{transform:scale(1.025);filter:brightness(.82)}.project-open:hover .project-view{opacity:1;transform:translateY(0)}.project-caption{display:flex;align-items:start;justify-content:space-between;gap:20px;padding-top:18px;border-top:1px solid transparent}.project-caption strong{display:block;font-size:20px;font-weight:500;line-height:1.45}.project-caption small{display:block;margin-top:4px;color:var(--muted);font-size:12px}.project-number{color:var(--muted-dark);font-family:var(--font-mono);font-size:11px}.image-fallback{display:flex;height:100%;align-items:center;justify-content:center;padding:24px;color:var(--muted)}.experience-section{padding-top:0}.experience-list{border-top:1px solid var(--line)}.experience-row{display:grid;grid-template-columns:2fr 4fr 6fr;gap:24px;padding:38px 0 42px;border-bottom:1px solid var(--line)}.experience-period{color:var(--muted);font-family:var(--font-mono);font-size:12px}.experience-title h3{margin:0;font-size:19px;font-weight:500;line-height:1.5}.experience-title>p{margin:2px 0 12px;color:var(--mint);font-size:13px}.experience-title>span{color:var(--muted);font-size:13px}.experience-row ul{margin:0;padding:0;list-style:none}.experience-row li{position:relative;margin-bottom:9px;padding-left:16px;color:#ffffffab;font-size:13px}.experience-row li:before{position:absolute;top:.75em;left:0;width:5px;height:1px;background:var(--muted);content:""}.about-section{padding:120px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--ink-900)}.about-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}.about-grid>div:first-child{grid-column:1 / 6}.about-grid h2{margin:28px 0 0;font-family:var(--font-display);font-size:clamp(36px,4.6vw,62px);font-weight:400;letter-spacing:-.04em;line-height:1.3}.about-details{grid-column:7 / 13}.about-details>p{margin:0;color:#ffffffb3;font-size:17px;line-height:2}.skill-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:36px}.skill-list span{padding:5px 11px;border:1px solid var(--line);color:#ffffffb8;font-size:12px}.education{margin-top:50px;padding-top:24px;border-top:1px solid var(--line)}.education>p:last-child{color:var(--muted);font-size:13px;white-space:pre-line}.site-footer{padding:112px 0 32px}.footer-lead{margin:34px 0 64px;font-family:var(--font-display);font-size:clamp(38px,5.5vw,72px);letter-spacing:-.04em;line-height:1.25}.email-link{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:clamp(22px,4vw,54px);letter-spacing:-.035em;line-height:1.3;overflow-wrap:anywhere;transition:color .18s ease-out}.email-link:hover{color:var(--mint)}.email-link svg{width:.8em;height:.8em;flex:0 0 auto}.footer-bottom{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;margin-top:34px;color:var(--muted);font-size:12px}.footer-bottom>div:first-child{display:flex;align-items:center;gap:9px}.footer-bottom>p{margin:0;text-align:right}.footer-actions{display:flex;gap:10px}.footer-actions button{display:inline-flex;min-height:44px;align-items:center;gap:7px;padding:0 12px;border:0;background:transparent;color:var(--muted);cursor:pointer}.footer-actions button:hover{color:var(--paper)}.project-dialog,.wechat-dialog{padding:0;border:1px solid var(--line);background:var(--ink-950);color:var(--paper)}.project-dialog::backdrop,.wechat-dialog::backdrop{background:#000000d1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.project-dialog{width:min(calc(100% - 32px),1160px);max-width:none;height:92svh;max-height:none;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}.dialog-shell{position:relative;min-height:100%}.icon-button{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--ink-950);cursor:pointer}.dialog-close{position:sticky;z-index:3;top:18px;float:right;margin:18px 18px 0 0}.dialog-heading{padding:64px 64px 46px}.dialog-heading h2{max-width:800px;margin:16px 0 8px;font-family:var(--font-display);font-size:clamp(38px,6vw,68px);font-weight:400;line-height:1.2}.dialog-heading>p:not(.meta-label){color:var(--muted)}.dialog-body{padding:0 64px 80px}.project-story{max-width:720px;margin-bottom:54px;color:#ffffffb8}.project-story p{margin:0 0 8px;white-space:pre-line}.story-space{display:block;height:16px}.project-gallery{display:grid;gap:20px}.project-gallery img{width:100%;height:auto;background:var(--ink-900)}.wechat-dialog{width:min(calc(100% - 32px),390px);max-width:none;padding:36px;text-align:center}.wechat-dialog .icon-button{position:absolute;top:12px;right:12px}.wechat-dialog h2{margin:12px 0 24px;font-family:var(--font-display);font-size:34px;font-weight:400}.wechat-dialog img{width:100%;height:auto}.wechat-dialog>p:last-child{margin-bottom:0;color:var(--muted);font-size:13px}.toast{position:fixed;z-index:100;right:24px;bottom:24px;max-width:min(420px,calc(100vw - 32px));padding:13px 18px;border:1px solid var(--line);background:var(--paper);color:var(--ink-950);box-shadow:0 12px 40px #00000047;font-size:13px}.toast.error{border-color:var(--signal)}.auth-page{display:grid;min-height:100svh;grid-template-columns:minmax(360px,.85fr) 1.15fr}.auth-aside{display:flex;flex-direction:column;justify-content:space-between;padding:42px;background:var(--forest-deep)}.auth-aside h1{margin:22px 0;font-family:var(--font-display);font-size:clamp(42px,5vw,70px);font-weight:400;letter-spacing:-.04em;line-height:1.25}.auth-aside p:not(.meta-label){max-width:420px;color:#ffffffa6}.auth-aside small{color:#ffffff75;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em}.auth-main{display:flex;align-items:center;justify-content:center;padding:48px 28px}.auth-form{width:min(100%,430px)}.auth-form h2{margin:12px 0;font-family:var(--font-display);font-size:40px;font-weight:400}.auth-form>p:not(.meta-label){margin:0 0 34px;color:var(--muted);font-size:14px}.back-link{display:inline-flex;min-height:44px;align-items:center;gap:8px;margin-top:18px;color:var(--muted);font-size:13px}.admin-shell{display:grid;min-height:100svh;grid-template-columns:248px minmax(0,1fr)}.admin-sidebar{position:sticky;top:0;display:flex;height:100svh;flex-direction:column;padding:28px 20px;border-right:1px solid var(--line);background:var(--ink-900)}.admin-sidebar>.brand{padding-inline:10px}.admin-user{display:flex;align-items:center;gap:11px;margin:34px 0 24px;padding:18px 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.admin-user strong,.admin-user small{display:block}.admin-user strong{font-size:13px;font-weight:500}.admin-user small{color:var(--muted);font-size:10px}.admin-sidebar nav{display:grid;gap:4px}.admin-sidebar nav button,.admin-sidebar-bottom a,.admin-sidebar-bottom button{display:flex;min-height:44px;align-items:center;gap:10px;padding:0 12px;border:0;background:transparent;color:var(--muted);font-size:13px;text-align:left;cursor:pointer}.admin-sidebar nav button.active{background:var(--forest);color:var(--paper)}.admin-sidebar nav button:hover:not(.active),.admin-sidebar-bottom a:hover,.admin-sidebar-bottom button:hover{background:#ffffff0d;color:var(--paper)}.admin-sidebar-bottom{display:grid;gap:4px;margin-top:auto;padding-top:18px;border-top:1px solid var(--line)}.admin-main{min-width:0;padding:46px clamp(24px,4vw,64px) 80px}.admin-section{width:min(100%,1280px);margin-inline:auto}.admin-section-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:38px;padding-bottom:24px;border-bottom:1px solid var(--line)}.admin-section-heading h2{margin:7px 0 0;font-family:var(--font-display);font-size:38px;font-weight:400;line-height:1.25}.admin-section-heading>p{max-width:480px;margin:0;color:var(--muted);font-size:12px;text-align:right}.admin-form{display:grid;gap:24px}.admin-form.narrow{max-width:520px}.form-grid{display:grid;gap:20px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-field{display:grid;align-content:start;gap:7px;min-width:0}.admin-field>span{color:#ffffffc7;font-size:12px}.admin-field>span b{color:var(--mint);font-weight:400}.admin-field input,.admin-field textarea,.upload-controls select{width:100%;min-height:46px;padding:11px 13px;border:1px solid var(--line);border-radius:0;outline:0;background:var(--ink-900);color:var(--paper);font-size:13px;transition:border-color .15s ease-out,background .15s ease-out}.admin-field textarea{min-height:100px;resize:vertical;line-height:1.75}.admin-field input:focus,.admin-field textarea:focus,.upload-controls select:focus{border-color:var(--mint);background:var(--ink-850)}.admin-field small,.cover-editor>small{color:var(--muted);font-size:11px}.check-field{display:flex;min-height:44px;align-items:center;gap:10px;color:#ffffffbf;font-size:13px;cursor:pointer}.check-field input{width:17px;height:17px;accent-color:var(--forest)}.form-actions{display:flex;align-items:center;gap:12px;padding-top:8px}.admin-primary,.admin-secondary{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:8px;padding:0 17px;border:1px solid transparent;cursor:pointer;font-size:12px}.admin-primary{background:var(--paper);color:var(--ink-950)}.admin-primary:disabled{cursor:wait;opacity:.55}.admin-secondary{border-color:var(--line);background:transparent;color:var(--paper)}.admin-secondary:hover{background:#ffffff0f}.current-pdf{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.current-pdf a{margin-left:auto;color:var(--mint)}.editor-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:36px;align-items:start}.editor-list{border-top:1px solid var(--line)}.editor-list-item{display:grid;grid-template-columns:minmax(0,1fr) 40px;border-bottom:1px solid var(--line)}.editor-list-item.active{background:var(--forest-deep)}.editor-list-item>button:first-child{min-width:0;padding:16px 12px;border:0;background:transparent;text-align:left;cursor:pointer}.editor-list-item strong,.editor-list-item span,.editor-list-item small{display:block;overflow:hidden;text-overflow:ellipsis}.editor-list-item strong{font-size:13px;font-weight:500;white-space:nowrap}.editor-list-item span{margin-top:3px;color:var(--muted);font-size:11px;white-space:nowrap}.editor-list-item small{margin-top:7px;color:var(--muted-dark);font-size:10px}.delete-button{display:inline-flex;width:40px;min-height:44px;align-items:center;justify-content:center;border:0;background:transparent;color:var(--muted);cursor:pointer}.delete-button:hover{color:var(--signal)}.editor-panel{min-width:0}.editor-panel>h3{margin:0 0 24px;font-size:18px;font-weight:500}.cover-editor{display:grid;grid-template-columns:180px minmax(0,1fr);gap:12px 20px;align-items:center;padding-bottom:24px;border-bottom:1px solid var(--line)}.cover-preview{display:flex;grid-row:span 3;aspect-ratio:4 / 3;align-items:center;justify-content:center;overflow:hidden;background:var(--ink-900);color:var(--muted);font-size:11px;text-align:center}.cover-preview img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.upload-button{position:relative;justify-self:start;overflow:hidden}.upload-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.inline-success{margin:0;color:var(--mint);font-size:11px}.upload-zone{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.upload-zone h3{margin:0;font-size:17px;font-weight:500}.upload-zone p{margin:4px 0 0;color:var(--muted);font-size:12px}.upload-controls{display:flex;gap:10px}.upload-controls select{width:170px}.file-list{margin-top:34px;border-top:1px solid var(--line)}.file-row{display:grid;grid-template-columns:28px minmax(0,1fr) 44px 44px;align-items:center;gap:10px;padding:16px 0;border-bottom:1px solid var(--line)}.file-row strong,.file-row span{display:block}.file-row strong{font-size:13px;font-weight:500;overflow-wrap:anywhere}.file-row span{color:var(--muted);font-size:11px}.file-row>a{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;color:var(--muted)}.file-row>a:hover{color:var(--mint)}.admin-mobile-tabs{display:none}.admin-content-loading{display:flex;align-items:center;gap:12px;color:var(--muted)}.admin-error{padding:20px;border:1px solid var(--signal)}.admin-error button{margin-left:16px;border:0;background:transparent;color:var(--mint);cursor:pointer}@media(max-width:1050px){.main-nav{gap:20px}.main-nav .admin-link{display:none}.experience-row{grid-template-columns:2fr 4fr}.experience-row ul{grid-column:2}.editor-layout{grid-template-columns:230px minmax(0,1fr);gap:24px}.admin-shell{grid-template-columns:218px minmax(0,1fr)}.admin-sidebar{padding-inline:12px}}@media(max-width:780px){.page-width{width:min(calc(100% - 36px),1360px)}.site-header{height:66px;padding-inline:18px}.main-nav{position:absolute;top:66px;right:0;left:0;display:none;flex-direction:column;align-items:stretch;gap:0;padding:14px 18px 22px;border-bottom:1px solid var(--line);background:var(--ink-950)}.main-nav.is-open{display:flex}.main-nav a{min-height:50px;border-bottom:1px solid var(--line)}.main-nav .admin-link{display:flex}.resume-link{min-height:38px;padding-inline:11px;font-size:11px}.menu-button{display:inline-flex}.hero-grid{display:block;min-height:100svh;padding-top:106px;padding-bottom:40px}.hero-side{display:none}.hero-status{font-size:12px}.hero h1{margin:13vh 0 11vh;font-size:clamp(4rem,21vw,5.6rem)}.hero h1 em{margin-left:8%}.hero-bottom{display:block}.hero-kicker{margin-bottom:24px;font-size:10px}.hero-intro h2{font-size:23px}.hero-intro>p{font-size:14px}.hero-ctas{gap:8px}.primary-action,.secondary-action{min-height:46px;padding-inline:15px;font-size:13px}.transition-section{padding:84px 0}.transition-heading{display:block;margin-top:28px}.transition-heading h2{font-size:40px}.transition-heading>p{margin-top:30px;font-size:15px;line-height:1.9}.delivery-chain{display:block;margin-top:48px}.chain-step{min-height:82px;flex-direction:row;align-items:center;padding:16px 0;border-right:0;border-bottom:1px solid oklch(1 0 0 / .15)}.chain-step:last-child{border-bottom:0}.chain-step strong{max-width:75%;text-align:right}.working-style{margin-top:32px;font-size:13px}.work-section,.experience-section{padding-top:84px;padding-bottom:90px}.experience-section{padding-top:0}.section-heading{display:block;margin-bottom:36px}.section-heading h2{font-size:44px}.section-heading>p{margin-top:18px;text-align:left}.filter-row{flex-wrap:nowrap;gap:22px;overflow-x:auto}.filter-row button{flex:0 0 auto}.project-grid{display:block}.project-item{margin-bottom:50px}.project-item.featured .project-image-wrap,.project-image-wrap{aspect-ratio:4 / 3}.project-view{right:10px;bottom:10px;min-height:40px;opacity:1;transform:none}.project-caption strong{font-size:18px}.experience-row{display:block;padding:28px 0}.experience-title{margin:12px 0 22px}.experience-title h3{font-size:18px}.experience-row li{font-size:13px}.about-section{padding:82px 0}.about-grid{display:block}.about-grid h2{font-size:42px}.about-details{margin-top:36px}.about-details>p{font-size:15px}.site-footer{padding-top:80px}.footer-lead{margin-bottom:40px;font-size:42px}.email-link{font-size:22px}.footer-bottom{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.footer-bottom>p{text-align:left}.dialog-heading{padding:68px 22px 30px}.dialog-body{padding:0 22px 50px}.project-dialog{width:calc(100% - 16px);height:95svh}.project-story{font-size:14px}.toast{right:16px;bottom:16px;left:16px;max-width:none;text-align:center}.auth-page{display:block}.auth-aside{min-height:300px;padding:26px 22px}.auth-aside>div{margin:44px 0}.auth-aside h1{margin:12px 0;font-size:40px}.auth-aside p:not(.meta-label){font-size:13px}.auth-main{padding:48px 22px}.admin-shell{display:block}.admin-sidebar{position:static;display:flex;width:100%;height:auto;flex-direction:row;align-items:center;justify-content:space-between;padding:14px 18px;border-right:0;border-bottom:1px solid var(--line)}.admin-user,.admin-sidebar nav{display:none}.admin-sidebar-bottom{display:flex;margin:0;padding:0;border:0}.admin-sidebar-bottom a,.admin-sidebar-bottom button{width:44px;padding:0;justify-content:center;font-size:0}.admin-main{padding:0 18px 60px}.admin-mobile-tabs{display:flex;gap:20px;margin:0 -18px 30px;padding:0 18px;overflow-x:auto;border-bottom:1px solid var(--line)}.admin-mobile-tabs button{min-height:54px;flex:0 0 auto;padding:0;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:12px}.admin-mobile-tabs button.active{border-bottom-color:var(--mint);color:var(--paper)}.admin-section-heading{display:block;margin-bottom:28px}.admin-section-heading>p{margin-top:12px;text-align:left}.admin-section-heading>.admin-secondary{margin-top:18px}.form-grid.two{grid-template-columns:1fr}.editor-layout{display:block}.editor-list{display:flex;gap:8px;margin-bottom:32px;padding-bottom:10px;overflow-x:auto;border-top:0}.editor-list-item{min-width:230px;border:1px solid var(--line)}.cover-editor{grid-template-columns:130px minmax(0,1fr)}.upload-zone{display:block}.upload-controls{margin-top:20px}.upload-controls select{min-width:0;flex:1}}@media(max-width:390px){.resume-link{width:40px;padding:0;justify-content:center;font-size:0}.hero h1{font-size:3.85rem}.hero-ctas{flex-direction:column;align-items:stretch}.primary-action,.secondary-action{width:100%}.cover-editor{display:block}.cover-preview{margin-bottom:16px}.cover-editor>*{margin-bottom:10px}.upload-controls{display:grid}.upload-controls select{width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.case-editor-tools{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:22px}.case-editor-tools select{min-height:44px;min-width:0;max-width:100%;padding:8px 12px;border:1px solid #ffffff26;color:inherit;background:#111a16;font:inherit;font-size:13px}.case-editor-tools button{min-height:44px}.case-editor-preview{--pf-line: #ffffff24;--pf-white: #f0f4f3;--pf-cyan: #66d8f4;--pf-dim: #82958c;margin-bottom:24px;padding:24px;border:1px solid var(--pf-line);background:#091117;color:#bdcbd2;font-size:16px;line-height:1.95}.case-editor-preview img{max-width:100%;height:auto}.case-editor-preview .case-study{max-width:none}.case-editor-preview .case-image img{display:block;width:100%}.case-editor-preview .case-image small{display:block;color:var(--pf-dim);font-size:12px}.case-editor-preview p{white-space:normal}@media(max-width:760px){.case-editor-preview{padding:14px}.case-editor-tools select{width:100%}}.selection\:bg-primary *::-moz-selection{background-color:hsl(var(--primary))}.selection\:bg-primary *::selection{background-color:hsl(var(--primary))}.selection\:text-primary-foreground *::-moz-selection{color:hsl(var(--primary-foreground))}.selection\:text-primary-foreground *::selection{color:hsl(var(--primary-foreground))}.selection\:bg-primary::-moz-selection{background-color:hsl(var(--primary))}.selection\:bg-primary::selection{background-color:hsl(var(--primary))}.selection\:text-primary-foreground::-moz-selection{color:hsl(var(--primary-foreground))}.selection\:text-primary-foreground::selection{color:hsl(var(--primary-foreground))}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:1.75rem}.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);inset:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-width:1px}.last\:mt-0:last-child{margin-top:0}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.last\:border-b-0:last-child{border-bottom-width:0px}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.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\/90:hover{background-color:hsl(var(--primary) / .9)}.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-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.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\:ring-4:hover{--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(4px + 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)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.focus\:z-10:focus{z-index:10}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.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\:z-10:focus-visible{z-index:10}.focus-visible\:border-ring:focus-visible{border-color:hsl(var(--ring))}.focus-visible\:outline-1:focus-visible{outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:hsl(var(--ring))}.focus-visible\:ring-0: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(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)}.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-4: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(4px + 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-\[3px\]: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(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)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color: hsl(var(--destructive) / .2)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color: hsl(var(--ring) / .5)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.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{opacity:1}.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-50{opacity:.5}.has-\[\>button\]\:ml-\[-0\.45rem\]:has(>button){margin-left:-.45rem}.has-\[\>button\]\:mr-\[-0\.45rem\]:has(>button){margin-right:-.45rem}.has-\[\>kbd\]\:ml-\[-0\.35rem\]:has(>kbd){margin-left:-.35rem}.has-\[\>kbd\]\:mr-\[-0\.35rem\]:has(>kbd){margin-right:-.35rem}.has-\[\>\[data-align\=block-end\]\]\:h-auto:has(>[data-align=block-end]){height:auto}.has-\[\>\[data-align\=block-start\]\]\:h-auto:has(>[data-align=block-start]){height:auto}.has-\[\>textarea\]\:h-auto:has(>textarea){height:auto}.has-\[\>\[data-slot\=field\]\]\:w-full:has(>[data-slot=field]){width:100%}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing) * 4) 1fr}.has-\[\>\[data-align\=block-end\]\]\:flex-col:has(>[data-align=block-end]){flex-direction:column}.has-\[\>\[data-align\=block-start\]\]\:flex-col:has(>[data-align=block-start]){flex-direction:column}.has-\[\>\[data-slot\=field\]\]\:flex-col:has(>[data-slot=field]){flex-direction:column}.has-\[\>\[data-slot\=field-content\]\]\:items-start:has(>[data-slot=field-content]){align-items:flex-start}.has-\[\>\[data-slot\=button-group\]\]\:gap-2:has(>[data-slot=button-group]){gap:.5rem}.has-\[\>\[data-slot\=checkbox-group\]\]\:gap-3:has(>[data-slot=checkbox-group]){gap:.75rem}.has-\[\>\[data-slot\=radio-group\]\]\:gap-3:has(>[data-slot=radio-group]){gap:.75rem}.has-\[\>svg\]\:gap-x-3:has(>svg){-moz-column-gap:.75rem;column-gap:.75rem}.has-\[\>\[data-slot\=field\]\]\:rounded-md:has(>[data-slot=field]){border-radius:calc(var(--radius) - 2px)}.has-\[\>\[data-slot\=field\]\]\:border:has(>[data-slot=field]){border-width:1px}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:border-ring:has([data-slot=input-group-control]:focus-visible){border-color:hsl(var(--ring))}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:border-destructive:has([data-slot][aria-invalid=true]){--tw-border-opacity: 1;border-color:hsl(var(--destructive) / var(--tw-border-opacity, 1))}.has-\[\>svg\]\:p-0:has(>svg){padding:0}.has-\[\>svg\]\:px-2:has(>svg){padding-left:.5rem;padding-right:.5rem}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-left:.625rem;padding-right:.625rem}.has-\[\>svg\]\:px-3:has(>svg){padding-left:.75rem;padding-right:.75rem}.has-\[\>svg\]\:px-4:has(>svg){padding-left:1rem;padding-right:1rem}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-\[3px\]:has([data-slot=input-group-control]: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(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)}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-ring\/50:has([data-slot=input-group-control]:focus-visible){--tw-ring-color: hsl(var(--ring) / .5)}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/20:has([data-slot][aria-invalid=true]){--tw-ring-color: hsl(var(--destructive) / .2)}.group\/item:has([data-slot=item-description]) .group-has-\[\[data-slot\=item-description\]\]\/item\:translate-y-0\.5{--tw-translate-y: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/item:has([data-slot=item-description]) .group-has-\[\[data-slot\=item-description\]\]\/item\:self-start{align-self:flex-start}.group\/field:has([data-orientation=horizontal]) .group-has-\[\[data-orientation\=horizontal\]\]\/field\:text-balance{text-wrap:balance}.group\/input-group:has(>input) .group-has-\[\>input\]\/input-group\:pb-2\.5{padding-bottom:.625rem}.group\/input-group:has(>input) .group-has-\[\>input\]\/input-group\:pt-2\.5{padding-top:.625rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[vaul-drawer-direction\=bottom\]\:inset-x-0[data-vaul-drawer-direction=bottom]{left:0;right:0}.data-\[vaul-drawer-direction\=left\]\:inset-y-0[data-vaul-drawer-direction=left],.data-\[vaul-drawer-direction\=right\]\:inset-y-0[data-vaul-drawer-direction=right]{top:0;bottom:0}.data-\[vaul-drawer-direction\=top\]\:inset-x-0[data-vaul-drawer-direction=top]{left:0;right:0}.data-\[vaul-drawer-direction\=bottom\]\:bottom-0[data-vaul-drawer-direction=bottom]{bottom:0}.data-\[vaul-drawer-direction\=left\]\:left-0[data-vaul-drawer-direction=left]{left:0}.data-\[vaul-drawer-direction\=right\]\:right-0[data-vaul-drawer-direction=right]{right:0}.data-\[vaul-drawer-direction\=top\]\:top-0[data-vaul-drawer-direction=top]{top:0}.data-\[active\=true\]\:z-10[data-active=true]{z-index:10}.data-\[vaul-drawer-direction\=bottom\]\:mt-24[data-vaul-drawer-direction=bottom]{margin-top:6rem}.data-\[vaul-drawer-direction\=top\]\:mb-24[data-vaul-drawer-direction=top]{margin-bottom:6rem}.data-\[orientation\=horizontal\]\:h-1\.5[data-orientation=horizontal]{height:.375rem}.data-\[orientation\=horizontal\]\:h-full[data-orientation=horizontal]{height:100%}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=vertical\]\:h-auto[data-orientation=vertical]{height:auto}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[size\=default\]\:h-9[data-size=default]{height:2.25rem}.data-\[size\=sm\]\:h-8[data-size=sm]{height:2rem}.data-\[vaul-drawer-direction\=bottom\]\:max-h-\[80vh\][data-vaul-drawer-direction=bottom],.data-\[vaul-drawer-direction\=top\]\:max-h-\[80vh\][data-vaul-drawer-direction=top]{max-height:80vh}.data-\[orientation\=vertical\]\:min-h-44[data-orientation=vertical]{min-height:11rem}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:w-1\.5[data-orientation=vertical]{width:.375rem}.data-\[orientation\=vertical\]\:w-auto[data-orientation=vertical]{width:auto}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[vaul-drawer-direction\=left\]\:w-3\/4[data-vaul-drawer-direction=left],.data-\[vaul-drawer-direction\=right\]\:w-3\/4[data-vaul-drawer-direction=right]{width:75%}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x: calc(100% - 2px) ;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]{--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))}@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-\[orientation\=vertical\]\:flex-col[data-orientation=vertical],.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[slot\=checkbox-group\]\:gap-3[data-slot=checkbox-group]{gap:.75rem}.data-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[selected\=true\]\:rounded-none[data-selected=true],.data-\[spacing\=0\]\:rounded-none[data-spacing="0"]{border-radius:0}.data-\[range-end\=true\]\:rounded-r-md[data-range-end=true]{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.data-\[range-start\=true\]\:rounded-l-md[data-range-start=true]{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.data-\[vaul-drawer-direction\=bottom\]\:rounded-t-lg[data-vaul-drawer-direction=bottom]{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.data-\[vaul-drawer-direction\=top\]\:rounded-b-lg[data-vaul-drawer-direction=top]{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-l-0[data-variant=outline][data-spacing="0"]{border-left-width:0px}.data-\[vaul-drawer-direction\=bottom\]\:border-t[data-vaul-drawer-direction=bottom]{border-top-width:1px}.data-\[vaul-drawer-direction\=left\]\:border-r[data-vaul-drawer-direction=left]{border-right-width:1px}.data-\[vaul-drawer-direction\=right\]\:border-l[data-vaul-drawer-direction=right]{border-left-width:1px}.data-\[vaul-drawer-direction\=top\]\:border-b[data-vaul-drawer-direction=top]{border-bottom-width:1px}.data-\[active\=true\]\:border-ring[data-active=true]{border-color:hsl(var(--ring))}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:hsl(var(--primary))}.data-\[active\=true\]\:bg-accent\/50[data-active=true]{background-color:hsl(var(--accent) / .5)}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:hsl(var(--primary))}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:hsl(var(--accent))}.data-\[range-start\=true\]\:bg-primary[data-range-start=true],.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:hsl(var(--primary))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsl(var(--accent) / .5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[inset\]\:pl-8[data-inset]{padding-left:2rem}.data-\[variant\=label\]\:text-sm[data-variant=label]{font-size:.875rem;line-height:1.25rem}.data-\[variant\=legend\]\:text-base[data-variant=legend]{font-size:1rem;line-height:1.5rem}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-accent-foreground[data-active=true]{color:hsl(var(--accent-foreground))}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[error\=true\]\:text-destructive[data-error=true],.data-\[invalid\=true\]\:text-destructive[data-invalid=true]{--tw-text-opacity: 1;color:hsl(var(--destructive) / var(--tw-text-opacity, 1))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:hsl(var(--primary-foreground))}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:hsl(var(--accent-foreground))}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true],.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:hsl(var(--primary-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-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-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{--tw-text-opacity: 1;color:hsl(var(--destructive) / var(--tw-text-opacity, 1))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[spacing\=0\]\:shadow-none[data-spacing="0"]{--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)}.data-\[spacing\=default\]\:data-\[variant\=outline\]\:shadow-xs[data-variant=outline][data-spacing=default],.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[active\=true\]\:ring-\[3px\][data-active=true]{--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)}.data-\[active\=true\]\:ring-ring\/50[data-active=true]{--tw-ring-color: hsl(var(--ring) / .5)}.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]{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],.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-right[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\=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-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\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.\*\:data-\[slot\=select-value\]\:line-clamp-1[data-slot=select-value]>*{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\*\:data-\[slot\=select-value\]\:flex[data-slot=select-value]>*{display:flex}.\*\:data-\[slot\=select-value\]\:items-center[data-slot=select-value]>*{align-items:center}.\*\:data-\[slot\=select-value\]\:gap-2[data-slot=select-value]>*{gap:.5rem}.\*\:data-\[slot\=alert-description\]\:text-destructive\/90[data-slot=alert-description]>*{color:hsl(var(--destructive) / .9)}.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-\[spacing\=0\]\:first\:rounded-l-md:first-child[data-spacing="0"]{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-l:first-child[data-variant=outline][data-spacing="0"]{border-left-width:1px}.data-\[spacing\=0\]\:last\:rounded-r-md:last-child[data-spacing="0"]{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.data-\[active\=true\]\:hover\:bg-accent:hover[data-active=true],.data-\[state\=open\]\:hover\:bg-accent:hover[data-state=open]{background-color:hsl(var(--accent))}.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))}.data-\[active\=true\]\:focus\:bg-accent:focus[data-active=true]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:focus\:bg-accent:focus[data-state=open]{background-color:hsl(var(--accent))}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10:focus[data-variant=destructive]{background-color:hsl(var(--destructive) / .1)}.data-\[variant\=destructive\]\:focus\:text-destructive:focus[data-variant=destructive]{--tw-text-opacity: 1;color:hsl(var(--destructive) / var(--tw-text-opacity, 1))}.group[data-disabled=true] .group-data-\[disabled\=true\]\:pointer-events-none{pointer-events:none}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:relative{position:relative}.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\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:top-full{top:100%}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:z-10{z-index:10}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group\/field-group[data-variant=outline] .group-data-\[variant\=outline\]\/field-group\:-mb-2{margin-bottom:-.5rem}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:mt-1\.5{margin-top:.375rem}.group\/drawer-content[data-vaul-drawer-direction=bottom] .group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:block{display:block}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]{width:calc(var(--sidebar-width-icon) + (--spacing(4)))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]{width:calc(var(--sidebar-width-icon) + (--spacing(4)) + 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,.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:rounded-md{border-radius:calc(var(--radius) - 2px)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border,.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\: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\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:border-ring{border-color:hsl(var(--ring))}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:bg-popover{background-color:hsl(var(--popover))}.group\/drawer-content[data-vaul-drawer-direction=bottom] .group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:text-center,.group\/drawer-content[data-vaul-drawer-direction=top] .group-data-\[vaul-drawer-direction\=top\]\/drawer-content\:text-center{text-align:center}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:text-popover-foreground{color:hsl(var(--popover-foreground))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group\/field[data-disabled=true] .group-data-\[disabled\=true\]\/field\:opacity-50,.group\/input-group[data-disabled=true] .group-data-\[disabled\=true\]\/input-group\:opacity-50,.group[data-disabled=true] .group-data-\[disabled\=true\]\:opacity-50{opacity:.5}.group[data-variant=floating] .group-data-\[variant\=floating\]\: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)}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\: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\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-\[3px\]{--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)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:duration-200{transition-duration:.2s;animation-duration:.2s}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:animate-in[data-state=open]{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}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:animate-out[data-state=closed]{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}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.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\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.dark\:border-input:is(.dark *){border-color:hsl(var(--input))}.dark\:bg-destructive\/60:is(.dark *){background-color:hsl(var(--destructive) / .6)}.dark\:bg-input\/30:is(.dark *){background-color:hsl(var(--input) / .3)}.dark\:bg-transparent:is(.dark *){background-color:transparent}.dark\:text-muted-foreground:is(.dark *){color:hsl(var(--muted-foreground))}.dark\:hover\:bg-accent\/50:hover:is(.dark *){background-color:hsl(var(--accent) / .5)}.dark\:hover\:bg-input\/50:hover:is(.dark *){background-color:hsl(var(--input) / .5)}.dark\:hover\:text-accent-foreground:hover:is(.dark *){color:hsl(var(--accent-foreground))}.dark\:focus-visible\:ring-destructive\/40:focus-visible:is(.dark *){--tw-ring-color: hsl(var(--destructive) / .4)}.dark\:has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/40:has([data-slot][aria-invalid=true]):is(.dark *){--tw-ring-color: hsl(var(--destructive) / .4)}.dark\:data-\[state\=active\]\:border-input[data-state=active]:is(.dark *){border-color:hsl(var(--input))}.dark\:data-\[state\=active\]\:bg-input\/30[data-state=active]:is(.dark *){background-color:hsl(var(--input) / .3)}.dark\:data-\[state\=checked\]\:bg-primary[data-state=checked]:is(.dark *){background-color:hsl(var(--primary))}.dark\:data-\[state\=checked\]\:bg-primary-foreground[data-state=checked]:is(.dark *){background-color:hsl(var(--primary-foreground))}.dark\:data-\[state\=unchecked\]\:bg-foreground[data-state=unchecked]:is(.dark *){background-color:hsl(var(--foreground))}.dark\:data-\[state\=unchecked\]\:bg-input\/80[data-state=unchecked]:is(.dark *){background-color:hsl(var(--input) / .8)}.dark\:data-\[state\=active\]\:text-foreground[data-state=active]:is(.dark *){color:hsl(var(--foreground))}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:focus[data-variant=destructive]:is(.dark *){background-color:hsl(var(--destructive) / .2)}@media(min-width:640px){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-sm{max-width:24rem}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:.625rem}.sm\:pl-2\.5{padding-left:.625rem}.sm\:pr-2\.5{padding-right:.625rem}.sm\:text-left{text-align:left}.data-\[vaul-drawer-direction\=left\]\:sm\:max-w-sm[data-vaul-drawer-direction=left],.data-\[vaul-drawer-direction\=right\]\:sm\:max-w-sm[data-vaul-drawer-direction=right]{max-width:24rem}}@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\:flex-row{flex-direction:row}.md\:gap-1\.5{gap:.375rem}.md\:p-12{padding:3rem}.md\:text-left{text-align:left}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:opacity-0{opacity:0}.md\:after\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset][data-state=collapsed]~.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:calc(var(--radius) + 4px)}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\: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)}}.\[\&\+\[data-slot\=item-content\]\]\:flex-none+[data-slot=item-content]{flex:none}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:nth-child\(2\)\[data-selected\=true\]_button\]\:rounded-l-md:nth-child(2)[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\>\*\:not\(\:first-child\)\]\:rounded-l-none>*:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.\[\&\>\*\:not\(\:first-child\)\]\:rounded-t-none>*:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.\[\&\>\*\:not\(\:first-child\)\]\:border-l-0>*:not(:first-child){border-left-width:0px}.\[\&\>\*\:not\(\:first-child\)\]\:border-t-0>*:not(:first-child){border-top-width:0px}.\[\&\>\*\:not\(\:last-child\)\]\:rounded-b-none>*:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0}.\[\&\>\*\:not\(\:last-child\)\]\:rounded-r-none>*:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.\[\&\>\*\]\:w-full>*{width:100%}.\[\&\>\*\]\:focus-visible\:relative:focus-visible>*{position:relative}.\[\&\>\*\]\:focus-visible\:z-10:focus-visible>*{z-index:10}.\[\&\>\*\]\:data-\[slot\=field\]\:p-4[data-slot=field]>*{padding:1rem}.\[\&\>\.sr-only\]\:w-auto>.sr-only{width:auto}.\[\&\>\[data-slot\=field-group\]\]\:gap-4>[data-slot=field-group]{gap:1rem}.\[\&\>\[data-slot\=field-label\]\]\:flex-auto>[data-slot=field-label]{flex:1 1 auto}.has-\[select\[aria-hidden\=true\]\:last-child\]\:\[\&\>\[data-slot\=select-trigger\]\:last-of-type\]\:rounded-r-md>[data-slot=select-trigger]:last-of-type:has(select[aria-hidden=true]:last-child){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\[data-slot\=select-trigger\]\:not\(\[class\*\=\'w-\'\]\)\]\:w-fit>[data-slot=select-trigger]:not([class*=w-]){width:-moz-fit-content;width:fit-content}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;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))}.\[\&\>a\:hover\]\:text-primary>a:hover{color:hsl(var(--primary))}.\[\&\>a\]\:underline>a{text-decoration-line:underline}.\[\&\>a\]\:underline-offset-4>a{text-underline-offset:4px}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>input\]\:flex-1>input{flex:1 1 0%}.has-\[\>\[data-align\=block-end\]\]\:\[\&\>input\]\:pt-3>input:has(>[data-align=block-end]){padding-top:.75rem}.has-\[\>\[data-align\=block-start\]\]\:\[\&\>input\]\:pb-3>input:has(>[data-align=block-start]){padding-bottom:.75rem}.has-\[\>\[data-align\=inline-end\]\]\:\[\&\>input\]\:pr-2>input:has(>[data-align=inline-end]){padding-right:.5rem}.has-\[\>\[data-align\=inline-start\]\]\:\[\&\>input\]\:pl-2>input:has(>[data-align=inline-start]){padding-left:.5rem}.\[\&\>kbd\]\:rounded-\[calc\(var\(--radius\)-5px\)\]>kbd{border-radius:calc(var(--radius) - 5px)}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:text-xs>span{font-size:.75rem;line-height:1rem}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5>svg:not([class*=size-]){width:.875rem;height:.875rem}.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4>svg:not([class*=size-]){width:1rem;height:1rem}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:.75rem;height:.75rem}.\[\&\>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\]\:translate-y-0\.5>svg{--tw-translate-y: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&\>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-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}.\[\&_\[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}.\[\&_img\]\:size-full img{width:100%;height:100%}.\[\&_img\]\:object-cover img{-o-object-fit:cover;object-fit:cover}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:.75rem;height:.75rem}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:1rem;height:1rem}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-6 svg:not([class*=size-]){width:1.5rem;height:1.5rem}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:hsl(var(--muted-foreground))}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_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=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-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:transparent}[data-slot=tooltip-content] .\[\[data-slot\=tooltip-content\]_\&\]\:bg-background\/20{background-color:hsl(var(--background) / .2)}[data-slot=tooltip-content] .\[\[data-slot\=tooltip-content\]_\&\]\:text-background{color:hsl(var(--background))}[data-slot=tooltip-content] .dark\:\[\[data-slot\=tooltip-content\]_\&\]\:bg-background\/10:is(.dark *){background-color:hsl(var(--background) / .1)}[data-variant=legend]+.\[\[data-variant\=legend\]\+\&\]\:-mt-1\.5{margin-top:-.375rem}a.\[a\&\]\:hover\:bg-accent:hover{background-color:hsl(var(--accent))}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:hsl(var(--secondary) / .9)}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.pf-shell,.pf-mobile-drawer{--pf-bg: #05090d;--pf-panel: #0b131a;--pf-white: #f0f4f3;--pf-muted: #abb9bf;--pf-dim: #7d909a;--pf-line: rgba(164, 204, 220, .19);--pf-cyan: #66d8f4;--pf-acid: #d8fa45;--pf-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace}.pf-shell{min-height:100svh;overflow:clip;isolation:isolate;color:var(--pf-white);background:var(--pf-bg);font-family:PingFang SC,Noto Sans CJK SC,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.8}.pf-shell *,.pf-shell *:before,.pf-shell *:after{box-sizing:border-box}html:has(.pf-shell){scroll-behavior:auto;scrollbar-width:none}html:has(.pf-shell)::-webkit-scrollbar{display:none}body:has(.pf-shell):not(.dialog-open){overflow-x:clip}.pf-shell :where(h1,h2,h3,h4,p,ul,ol){margin:0}.pf-shell :where(h1,h2,h3,h4){color:var(--pf-white);font-family:inherit;font-weight:600}.pf-shell :where(a,button){-webkit-tap-highlight-color:transparent}.pf-shell button{font-family:inherit;cursor:pointer}.pf-shell a{text-decoration:none}.pf-shell :focus-visible{outline:2px solid var(--pf-cyan);outline-offset:5px}.pf-shell ::-moz-selection{color:#071013;background:var(--pf-acid)}.pf-shell ::selection{color:#071013;background:var(--pf-acid)}.pf-page{position:relative;z-index:1}.pf-width{width:min(calc(100% - 112px),1240px);margin-inline:auto}.pf-section{padding-block:78px;scroll-margin-top:90px}#main-content{scroll-margin-top:84px}.pf-eyebrow{margin-bottom:12px!important;color:var(--pf-cyan);font-family:var(--pf-mono);font-size:11px;font-weight:400;line-height:1.6;letter-spacing:.12em}.pf-live-dot{display:inline-block;width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:var(--pf-acid);box-shadow:0 0 14px #d8fa4573}.pf-section-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:38px}.pf-section-heading h2{font-size:clamp(28px,3vw,38px);line-height:1.45;letter-spacing:-.03em}.pf-section-heading>p{max-width:400px;color:var(--pf-muted);font-size:15px;line-height:1.9}.pf-section-icon{color:var(--pf-cyan)}.pf-skip-link{position:fixed;z-index:100;top:10px;left:16px;padding:10px 16px;color:#061015;background:var(--pf-acid);transform:translateY(-150%)}.pf-skip-link:focus{transform:none}.tech-scene{position:fixed;z-index:0;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 82% 35%,#093d54,#07141e 40%,#05090d 75%)}.tech-scene canvas{display:block;width:100%;height:100%}.tech-scene[data-fallback=true] canvas{display:none}.pf-header{position:sticky;z-index:40;top:0;display:flex;height:78px;align-items:center;justify-content:space-between;gap:28px;padding-inline:max(56px,calc((100vw - 1240px)/2));border-bottom:1px solid var(--pf-line);background:#040a0fd6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.pf-brand{display:flex;align-items:center;gap:15px;color:var(--pf-white);line-height:1}.pf-brand-wordmark{display:block;flex:0 0 auto;width:104px;height:32px;-o-object-fit:contain;object-fit:contain}.pf-brand>small{padding-left:15px;border-left:1px solid var(--pf-line);color:var(--pf-muted);font-family:var(--pf-mono);font-size:9px;line-height:1.7;letter-spacing:.04em}.pf-nav{display:flex;height:100%;align-items:stretch;gap:30px}.pf-nav a{position:relative;display:flex;align-items:center;gap:7px;color:var(--pf-muted);font-size:14px}.pf-nav a>span{display:none}.pf-nav a>small{display:none}.pf-nav a:after{position:absolute;right:0;bottom:0;left:0;height:2px;background:var(--pf-acid);content:"";transform:scaleX(0);transform-origin:left;transition:transform .18s ease}.pf-nav a.active,.pf-nav a:hover{color:var(--pf-white)}.pf-nav a.active:after{transform:scaleX(1)}.pf-header-code{display:flex;align-items:center;gap:8px;color:var(--pf-dim);font-size:12px}.pf-header-code b{width:5px;height:5px;border-radius:50%;background:var(--pf-acid)}.pf-menu{display:none;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid var(--pf-line);color:var(--pf-white);background:#050c11d9}.pf-motion-toggle{display:inline-flex;min-height:44px;align-items:center;gap:8px;padding:4px 0;border:0;color:var(--pf-dim);background:transparent;font-size:12px}.pf-motion-toggle:hover{color:var(--pf-white)}.pf-motion-toggle:disabled{cursor:default}.pf-shell[data-motion=static] *{animation:none!important;transition:none!important}.pf-scroll-telemetry{position:fixed;top:50%;right:16px;display:flex;align-items:center;flex-direction:column;gap:10px;color:var(--pf-dim);font-family:var(--pf-mono);transform:translateY(-50%);pointer-events:none}.pf-scroll-label{font-size:8px;letter-spacing:.12em;writing-mode:vertical-rl}.pf-scroll-rail{position:relative;width:1px;height:130px;background:var(--pf-line)}.pf-scroll-progress{position:absolute;inset:0;background:linear-gradient(var(--pf-cyan),var(--pf-acid));transform:scaleY(var(--pf-scroll-progress, 0));transform-origin:top}.pf-scroll-cursor{position:absolute;top:calc(var(--pf-scroll-progress, 0) * 100%);left:-3px;width:7px;height:3px;background:var(--pf-acid)}.pf-scroll-rail em{display:none}.pf-scroll-value{display:flex;font-size:8px}.pf-scroll-value small{font-size:inherit}body.dialog-open .pf-scroll-telemetry{visibility:hidden}.pf-hero{position:relative;background:linear-gradient(90deg,#05090ddb,#05090d8a 44%,#05090d05 75%)}.pf-hero-inner{display:grid;min-height:min(650px,calc(100svh - 78px));grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:center;gap:44px;padding-block:clamp(36px,7svh,72px)}.pf-hero-copy{max-width:750px;animation:pf-arrive .7s ease both}.pf-identity{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:25px!important;color:#d1dcdf;font-size:17px;line-height:1.6}.pf-identity-divider{color:var(--pf-dim)}.pf-identity strong{color:var(--pf-white);font-size:24px;font-weight:650}.pf-hero h1{max-width:12em;margin:0 0 26px;font-size:clamp(48px,4.1vw,62px);font-weight:600;line-height:1.4;letter-spacing:-.045em;text-wrap:balance}.pf-hero-introduction{max-width:36em;color:#b9c7ce;font-size:17px;line-height:1.75}.pf-hero-location{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px!important;color:var(--pf-dim);font-size:12px}.pf-hero-location>span{color:#526775}.pf-hero-atmosphere{align-self:end;padding:0 0 20px 12%;color:#8aa4af;opacity:.65}.pf-hero .pf-button-primary{min-height:52px;padding-inline:25px;font-weight:650}.pf-hero .pf-button-ghost{border-color:transparent;color:#b9c7ce;background:transparent}.pf-hero-atmosphere>span{display:block;max-width:200px;color:#84a5b6;font-family:var(--pf-mono);font-size:9px;line-height:1.9;letter-spacing:.1em}.pf-hero-atmosphere p{margin-top:12px;color:#d8e8e8;font-family:var(--pf-mono);font-size:18px}.pf-hero-atmosphere small{display:block;margin-top:7px;color:#9bb5c1;font-size:12px}.pf-hero-resume-link{display:inline-flex;align-items:center;min-height:44px;color:var(--pf-muted);font-size:12px;text-decoration:underline;text-underline-offset:4px}.pf-hero-resume-link:hover{color:var(--pf-white)}.pf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:30px}.pf-button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:16px;padding:10px 21px;border:1px solid var(--pf-line);border-radius:3px;font-size:14px;font-weight:500;line-height:1.5;transition:border-color .18s,background .18s,transform .18s}.pf-button-primary{border-color:var(--pf-acid);color:#111b15;background:var(--pf-acid)}.pf-button-primary:hover{background:#e8ff8a;transform:translateY(-2px)}.pf-button-ghost{color:var(--pf-white);background:#050c1173}.pf-button-ghost:hover{border-color:#8bafba;background:#2c69802e}.pf-case-link{display:inline-flex;min-height:44px;align-items:center;gap:13px;padding:0;border:0;color:var(--pf-cyan);background:transparent;font-size:14px}.pf-case-link svg{transition:transform .18s}.pf-case-link:hover svg{transform:translate(3px)}.pf-work{border-top:1px solid var(--pf-line);background:linear-gradient(90deg,#05090ded,#05090dc7 72%,#05090d61)}@media(min-width:761px){.pf-hero{background:linear-gradient(90deg,#05090da3,#05090d75 44%,#05090d05 75%)}.pf-work{background:linear-gradient(90deg,#05090dd6,#05090dbf 72%,#05090d61)}}.pf-filters{display:flex;flex-wrap:wrap;gap:8px 28px;margin:0 0 34px;border-bottom:1px solid var(--pf-line)}.pf-filters button{min-height:46px;margin-bottom:-1px;padding:6px 0;border:0;border-bottom:2px solid transparent;color:var(--pf-muted);background:transparent;font-size:14px}.pf-filters button.active{border-bottom-color:var(--pf-acid);color:var(--pf-acid)}.pf-featured-list{display:grid;gap:36px}.pf-project{min-width:0}.pf-project.is-featured{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:center;gap:38px;padding-block:4px 34px;border-bottom:1px solid var(--pf-line)}.pf-project-media{position:relative;display:block;width:100%;overflow:hidden;padding:0;border:1px solid var(--pf-line);border-radius:4px;aspect-ratio:16 / 10;color:var(--pf-muted);background:#0b141c;text-align:left}.pf-project-media>picture{display:block;width:100%;height:100%}.pf-project-media img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .25s}.is-featured .pf-project-media{aspect-ratio:16 / 9}.is-featured .pf-project-media img{-o-object-fit:cover;object-fit:cover}.pf-project-media:hover img{transform:scale(1.025);filter:brightness(.85)}.pf-view-case{position:absolute;right:15px;bottom:15px;display:inline-flex;min-height:38px;align-items:center;gap:12px;padding:7px 12px;border:1px solid var(--pf-line);border-radius:2px;color:var(--pf-white);background:#050c11e0;font-size:12px;opacity:0;transform:translateY(5px);transition:opacity .18s,transform .18s}.pf-project-media:hover .pf-view-case,.pf-project-media:focus-visible .pf-view-case{opacity:1;transform:none}.pf-project-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 17px;margin-bottom:11px;color:var(--pf-cyan);font-size:12px}.pf-status{display:inline-flex;align-items:center;gap:6px;color:#b6c7ad}.pf-status i{width:4px;height:4px;border-radius:50%;background:#b6cf75}.pf-project-copy h3{font-size:25px;line-height:1.5;letter-spacing:-.03em}.is-featured .pf-project-copy h3{font-size:clamp(26px,2.5vw,32px)}.pf-project-role{margin-top:10px!important;color:#d1dddf;font-size:14px}.pf-project-description{margin-top:15px!important;color:var(--pf-muted);font-size:16px;line-height:1.9}.pf-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:20px!important;padding:0;list-style:none}.pf-tags li{padding:3px 8px;border:1px solid rgba(131,178,194,.15);border-radius:3px;color:#9db4bf;background:#22415021;font-size:11px;line-height:1.6}.pf-project-copy>.pf-case-link{margin-top:15px}.pf-project-actions{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:15px}.pf-earlier-work{margin-top:50px}.pf-subheading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:25px}.pf-subheading h3{font-size:21px}.pf-subheading>p{color:var(--pf-dim);font-size:13px}.pf-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px}.pf-project-grid .pf-project-media{max-height:300px}.pf-project-grid .pf-project-copy{padding-top:20px}.pf-project-grid .pf-project-copy h3{font-size:23px}.pf-project-grid .pf-project-description{margin-top:12px!important}.pf-process{background:linear-gradient(90deg,#05090ddb,#05090da3 70%,#05090d40)}.pf-process-intro{max-width:54em;color:var(--pf-muted);font-size:17px}.pf-process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-top:42px!important;padding:0;list-style:none}.pf-process-grid>li{padding-top:20px;border-top:1px solid var(--pf-line)}.pf-process-grid>li>span{color:var(--pf-cyan);font-family:var(--pf-mono);font-size:11px}.pf-process-grid h3{margin-top:17px;font-size:21px}.pf-process-grid p{margin-top:12px;color:var(--pf-muted);font-size:15px;line-height:1.9}.pf-growth-link{padding-block:64px;border-block:1px solid var(--pf-line);background:#05090d99}.pf-growth-link>.pf-width{display:flex;align-items:center;justify-content:space-between;gap:40px}.pf-growth-link h2{font-size:30px;line-height:1.6;letter-spacing:-.025em}.pf-growth-link h2+p{margin-top:16px;color:var(--pf-muted);font-size:16px}.pf-growth-link .pf-button{flex:0 0 auto}.pf-growth-hero{padding-block:72px 64px;background:linear-gradient(90deg,#05090deb,#05090db3 65%,#05090d1f)}.pf-growth-hero h1{margin-block:20px 24px;font-size:clamp(44px,4.1vw,58px);line-height:1.5;letter-spacing:-.04em}.pf-growth-hero h1 span{color:#d3e7ec}.pf-growth-identity{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 18px;font-size:18px}.pf-growth-identity span{color:var(--pf-cyan);font-size:16px}.pf-growth-identity small{color:var(--pf-dim);font-size:13px}.pf-growth-introduction{max-width:47em;margin-top:26px;color:var(--pf-muted);font-size:17px;line-height:1.95}.pf-growth-introduction p+p{margin-top:14px}.pf-experience{border-top:1px solid var(--pf-line);background:#05090dd9}.pf-experience-list>article{display:grid;grid-template-columns:200px minmax(0,1fr);gap:38px;padding-block:32px;border-top:1px solid var(--pf-line)}.pf-experience-date{display:flex;flex-direction:column;gap:13px;padding-top:5px;color:var(--pf-dim);font-size:14px}.pf-experience-date small{display:flex;align-items:center;gap:9px;color:var(--pf-acid);font-size:12px}.pf-experience-main{max-width:51em}.pf-experience-main h3{font-size:23px;line-height:1.6}.pf-experience-role{margin-top:7px!important;color:var(--pf-cyan);font-size:15px}.pf-experience-summary{margin-top:18px!important;color:#becbd1;font-size:16px;line-height:1.9}.pf-experience-main ul{margin:18px 0 0;padding-left:1.15em;color:var(--pf-muted);font-size:16px;line-height:1.95}.pf-experience-main li{padding-left:5px}.pf-experience-main li+li{margin-top:10px}.pf-experience-main li::marker{color:#5f8a9a}.pf-experience-details{margin-top:12px}.pf-experience-details summary{display:flex;width:-moz-fit-content;width:fit-content;min-height:44px;align-items:center;gap:9px;color:var(--pf-cyan);font-size:14px;cursor:pointer;list-style:none}.pf-experience-details summary::-webkit-details-marker{display:none}.pf-experience-details[open] summary svg{transform:rotate(90deg)}.pf-toolkit{background:#05090dad}.pf-skill-matrix{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.pf-skill-matrix>article{padding:28px;border:1px solid var(--pf-line);border-radius:4px;background:#08131a94}.pf-skill-matrix h3{margin-bottom:13px;font-size:23px}.pf-skill-matrix h3+p{color:var(--pf-muted);font-size:16px}.pf-skill-matrix ul{margin-top:22px;padding-left:1.1em;color:#cbd6da;font-size:15px;line-height:2}.pf-skill-matrix li::marker{color:#5f8a9a}.pf-other-skills{margin-top:26px!important}.pf-foundation{display:grid;grid-template-columns:1fr 1fr;gap:45px;margin-top:44px;padding-top:30px;border-top:1px solid var(--pf-line)}.pf-foundation h3{font-size:17px;font-weight:500}.pf-foundation p:not(.pf-eyebrow){margin-top:8px;color:var(--pf-muted);font-size:15px}.pf-resume{padding-block:56px;border-block:1px solid var(--pf-line);background:#05090db3}.pf-resume>.pf-width{display:flex;align-items:center;justify-content:space-between;gap:32px}.pf-resume h2{font-size:30px}.pf-resume h2+p{max-width:32em;margin-top:13px;color:var(--pf-muted);font-size:16px}.pf-resume .pf-actions{flex:0 0 auto;margin-top:0}.pf-back-row{padding-block:25px}.pf-footer{padding-block:64px 26px;scroll-margin-top:78px;background:linear-gradient(90deg,#05090de0,#05090d80)}.pf-footer-top{display:flex;align-items:baseline;justify-content:space-between;color:var(--pf-dim);font-family:var(--pf-mono);font-size:11px;letter-spacing:.08em}.pf-footer-top>span:first-child{color:var(--pf-cyan)}.pf-footer-kicker{margin-top:38px!important;color:var(--pf-muted);font-size:14px}.pf-footer h2{margin-top:15px;font-size:clamp(28px,3vw,40px);line-height:1.5;letter-spacing:-.025em}.pf-footer h2 em{color:var(--pf-white);font-style:normal}.pf-email{display:flex;width:-moz-fit-content;width:fit-content;max-width:100%;align-items:center;gap:18px;margin-top:30px;padding-bottom:11px;border-bottom:1px solid #638e9d;color:var(--pf-cyan);font-size:clamp(19px,2.3vw,27px);line-height:1.5;overflow-wrap:anywhere}.pf-email svg{width:22px;height:22px;flex:0 0 auto}.pf-footer-bottom{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-top:50px;padding-top:24px;border-top:1px solid var(--pf-line);color:var(--pf-dim);font-size:12px;line-height:1.8}.pf-footer-bottom p:last-child{text-align:right;font-family:var(--pf-mono);font-size:10px}.pf-footer-bottom>div{display:flex;flex-wrap:wrap;gap:9px}.pf-footer-bottom button{display:inline-flex;min-height:44px;align-items:center;gap:9px;padding:8px 13px;border:1px solid var(--pf-line);border-radius:3px;color:var(--pf-muted);background:#050c1199;font-size:13px}.pf-footer-bottom button svg{width:15px;height:15px}.pf-dialog{position:fixed;inset:0;width:min(1180px,calc(100vw - 64px));max-width:none;height:min(90svh,1000px);max-height:none;margin:auto;padding:0;border:1px solid #2b424d;border-radius:6px;color:var(--pf-white);background:#091117;scrollbar-width:none}.pf-dialog::-webkit-scrollbar{display:none}.pf-dialog::backdrop,.wechat-dialog::backdrop{background:#000509d1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.pf-dialog .dialog-shell{padding:38px}.pf-dialog .dialog-close{position:sticky;z-index:2;top:0;float:right}.pf-dialog .icon-button,.wechat-dialog .icon-button{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid var(--pf-line);color:var(--pf-white);background:#0c1b24}.pf-dialog .dialog-heading{max-width:780px;padding:0 50px 26px 0;border-bottom:1px solid var(--pf-line)}.pf-dialog .meta-label,.wechat-dialog .meta-label{color:var(--pf-cyan);font-family:var(--pf-mono);font-size:11px}.pf-dialog .dialog-heading h2{font-family:inherit;margin:14px 0;font-size:30px;line-height:1.5}.pf-dialog .dialog-heading>p:not(.meta-label){color:var(--pf-muted);font-size:15px}.pf-dialog .text-link{display:inline-flex;align-items:center;gap:10px;margin-top:15px;color:var(--pf-cyan);font-size:14px}.pf-dialog .dialog-body{display:block;margin-top:28px;padding:0 0 18px}.pf-dialog .project-story{min-width:0;color:#bdcbd2;font-size:16px;line-height:1.95;overflow-wrap:anywhere}.pf-dialog .project-story p+p{margin-top:12px}.pf-dialog .project-story h3{margin:25px 0 10px;color:var(--pf-white);font-size:18px}.pf-dialog .project-story h3:first-child{margin-top:0}.pf-dialog .story-space{display:block;height:13px}.pf-dialog .project-gallery{display:flex;flex-direction:column;gap:18px}.pf-dialog .project-gallery img{width:100%;height:auto;border:1px solid var(--pf-line)}.wechat-dialog{position:fixed;inset:0;width:min(420px,calc(100vw - 36px));height:-moz-fit-content;height:fit-content;max-height:90svh;margin:auto;padding:28px;border:1px solid #2b424d;color:var(--pf-white);background:#091117}.wechat-dialog .icon-button{float:right}.wechat-dialog h2{margin:16px 0;font-size:26px}.wechat-dialog img{display:block;width:100%;height:auto}.wechat-dialog p:last-child{margin-top:16px;color:var(--pf-muted);font-size:14px}.pf-shell .toast{position:fixed;z-index:100;bottom:24px;left:50%;padding:12px 20px;border:1px solid var(--pf-line);color:var(--pf-white);background:#10222e;font-size:14px;transform:translate(-50%)}.pf-loading{display:flex;min-height:100svh;align-items:center;justify-content:center;flex-direction:column;gap:20px;color:var(--pf-muted);background:#05090d80}.pf-loader-code{color:var(--pf-cyan);font-family:var(--pf-mono);font-size:20px}.pf-loading p,.pf-loading button{font-size:14px}.pf-loading button{min-height:44px;padding:8px 16px;border:1px solid var(--pf-line);color:var(--pf-white);background:var(--pf-panel)}@keyframes pf-arrive{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media(max-width:1100px){.pf-width{width:calc(100% - 80px)}.pf-header{padding-inline:40px}.pf-header-code{display:none}.pf-hero-inner{gap:20px;grid-template-columns:minmax(0,1.85fr) minmax(0,.8fr)}.pf-hero-atmosphere{padding-left:0}.pf-project.is-featured{gap:28px}.pf-process-grid{gap:22px}.pf-experience-list>article{grid-template-columns:160px minmax(0,1fr);gap:28px}}@media(max-width:760px){.pf-width{width:calc(100% - 40px)}.pf-section{padding-block:48px;scroll-margin-top:80px}.pf-header{height:68px;gap:12px;padding-inline:20px}.pf-brand>small{font-size:8px}.pf-nav{display:none}.pf-menu{display:inline-flex;flex:0 0 52px;width:52px;height:52px;border-radius:14px}.pf-motion-toggle{margin-left:auto}.pf-motion-toggle span{display:none}.pf-motion-toggle{flex:0 0 44px;width:44px;justify-content:center}.pf-scroll-telemetry{display:none}.pf-hero{background:linear-gradient(90deg,#05090de0,#05090d9e 65%,#05090d4d)}.pf-hero-inner{display:block;min-height:0;padding-block:48px 44px}.pf-identity{gap:9px;margin-bottom:20px!important;font-size:16px}.pf-hero h1{max-width:12em;margin-bottom:22px;font-size:clamp(32px,8.8vw,40px);line-height:1.5;letter-spacing:-.04em}.pf-hero-introduction{max-width:33em;font-size:16px;line-height:1.95}.pf-hero-atmosphere{display:none}.pf-hero-location{margin-top:25px!important;font-size:11px}.pf-actions{gap:10px;margin-top:25px}.pf-button{min-height:46px;gap:10px;padding:10px 15px;font-size:13px}.pf-section-heading{display:block;margin-bottom:25px}.pf-section-heading h2{font-size:28px}.pf-section-heading>p{margin-top:16px;font-size:14px}.pf-section-icon{display:none}.pf-filters{gap:7px 24px;margin-bottom:25px}.pf-featured-list{gap:30px}.pf-project.is-featured{display:block;padding-bottom:30px}.is-featured .pf-project-media{aspect-ratio:16 / 9}.pf-project-copy{padding-top:21px}.is-featured .pf-project-copy h3{font-size:25px}.pf-project-role{font-size:14px}.pf-project-description{font-size:16px}.pf-view-case{display:none}.pf-earlier-work{margin-top:34px}.pf-subheading{display:block;margin-bottom:22px}.pf-subheading>p{margin-top:8px}.pf-project-grid{grid-template-columns:minmax(0,1fr);gap:30px}.pf-project-grid .pf-project-media{max-height:none}.pf-project-grid .pf-project-copy h3{font-size:23px}.pf-process-intro{font-size:16px}.pf-process-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 20px;margin-top:28px!important}.pf-process-grid h3{margin-top:12px;font-size:20px}.pf-process-grid p{font-size:15px}.pf-growth-link{padding-block:42px}.pf-growth-link>.pf-width{display:block}.pf-growth-link h2{font-size:27px}.pf-growth-link .pf-button{margin-top:25px}.pf-growth-hero{padding-block:42px;background:linear-gradient(90deg,#05090de6,#05090da1)}.pf-growth-hero h1{font-size:34px}.pf-growth-identity{gap:8px 14px;font-size:17px}.pf-growth-identity small{flex-basis:100%}.pf-growth-introduction{font-size:16px}.pf-experience-list>article{display:block;padding-block:27px}.pf-experience-date{flex-direction:row;flex-wrap:wrap;gap:10px 20px;padding:0 0 14px}.pf-experience-main h3{font-size:22px}.pf-skill-matrix{grid-template-columns:minmax(0,1fr);gap:18px}.pf-skill-matrix>article{padding:23px}.pf-foundation{grid-template-columns:minmax(0,1fr);gap:27px;margin-top:30px}.pf-resume{padding-block:40px}.pf-resume>.pf-width{display:block}.pf-resume h2{font-size:27px}.pf-resume .pf-actions{margin-top:25px}.pf-footer{padding-block:42px 22px}.pf-footer-top{font-size:10px}.pf-footer h2{font-size:30px}.pf-footer-bottom{align-items:start;flex-wrap:wrap;margin-top:35px}.pf-footer-bottom>p:first-child{flex-basis:100%}.pf-footer-bottom p:last-child{margin-left:auto}.pf-dialog{width:calc(100vw - 20px);height:calc(100svh - 24px)}.pf-dialog .dialog-shell{padding:20px}.pf-dialog .dialog-heading{padding-right:40px}.pf-dialog .dialog-heading h2{font-size:25px}.pf-dialog .dialog-body{grid-template-columns:minmax(0,1fr);gap:25px}}@media(max-height:680px)and (min-width:761px){.pf-hero-inner{min-height:0;padding-block:48px}}@media(prefers-reduced-motion:reduce){.pf-shell *,.pf-shell *:before,.pf-shell *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.pf-mobile-overlay{position:fixed;z-index:90;inset:0;background:#000408a3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.pf-mobile-overlay[data-state=open]{animation:pf-overlay-in .22s ease both}.pf-mobile-overlay[data-state=closed]{animation:pf-overlay-out .22s ease both}.pf-mobile-drawer{position:fixed;z-index:100;inset:0 0 0 auto;display:flex;width:min(85vw,384px);height:100dvh;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box;padding:max(20px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom));border-left:1px solid var(--pf-line);color:var(--pf-white);background:#0b131a;box-shadow:-24px 0 80px #0006;font-family:PingFang SC,Noto Sans CJK SC,Microsoft YaHei,sans-serif;line-height:1.5}.pf-mobile-drawer[data-state=open]{animation:pf-drawer-in .32s cubic-bezier(.16,1,.3,1) both}.pf-mobile-drawer[data-state=closed]{animation:pf-drawer-out .22s ease-in both}.pf-drawer-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.pf-drawer-title{margin:0;color:var(--pf-muted);font-size:14px;font-weight:400}.pf-drawer-close{display:inline-flex;width:52px;height:52px;flex:0 0 52px;align-items:center;justify-content:center;border:1px solid var(--pf-line);border-radius:50%;color:var(--pf-white);background:#ffffff0a;cursor:pointer}.pf-drawer-links{display:flex;flex-direction:column;gap:12px;margin-top:clamp(28px,7svh,64px)}.pf-drawer-links a{display:flex;min-height:92px;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--pf-line);color:var(--pf-white);text-decoration:none;-webkit-tap-highlight-color:transparent}.pf-drawer-links strong{display:block;font-size:clamp(28px,8vw,36px);font-weight:600;letter-spacing:-.035em}.pf-drawer-links small{display:block;margin-top:5px;color:var(--pf-dim);font-family:var(--pf-mono);font-size:10px;letter-spacing:.1em}.pf-drawer-links svg{flex-shrink:0;color:var(--pf-dim)}.pf-drawer-links a.active,.pf-drawer-links a.active svg{color:var(--pf-acid)}.pf-drawer-links a:hover,.pf-drawer-links a:active{color:var(--pf-cyan)}.pf-drawer-footer{margin-top:auto;padding-top:32px}.pf-drawer-footer p{margin:0 0 16px;color:var(--pf-dim);font-size:12px}.pf-drawer-motion{display:flex;min-height:52px;width:100%;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--pf-line);color:var(--pf-muted);background:#ffffff06;font:inherit;font-size:14px;text-align:left;cursor:pointer}.pf-drawer-quiet{display:inline-flex;align-items:center;gap:8px;margin-top:14px;color:var(--pf-dim);font-size:13px;font-weight:400;line-height:1.4;text-decoration:none}.pf-drawer-quiet svg{width:14px;height:14px;color:inherit}.pf-drawer-quiet.active,.pf-drawer-quiet:hover,.pf-drawer-quiet:active{color:var(--pf-muted)}.pf-mobile-drawer :is(a,button):focus-visible{outline:2px solid var(--pf-acid);outline-offset:5px}.pf-mobile-drawer :is(a,button):disabled{cursor:default;opacity:.6}.pf-mobile-drawer[data-motion=static],.pf-mobile-overlay[data-motion=static]{animation:none}@keyframes pf-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes pf-drawer-out{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes pf-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes pf-overlay-out{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.pf-mobile-drawer,.pf-mobile-overlay{animation:none!important}}@media(max-height:680px){.pf-drawer-links{gap:8px;margin-top:24px}.pf-drawer-links a{min-height:80px;padding-block:10px}.pf-drawer-links strong{font-size:28px}.pf-drawer-footer{padding-top:24px}.pf-drawer-footer p{margin-bottom:12px}}.pf-footer-guestbook{display:inline-flex;min-height:44px;align-items:center;gap:8px;color:var(--pf-muted);font-size:12px}.pf-footer-guestbook svg{width:16px;height:16px}@media(max-height:760px){.pf-drawer-links{margin-top:20px;gap:6px}.pf-drawer-links a{min-height:72px;padding-block:8px}.pf-drawer-links strong{font-size:28px}.pf-drawer-footer{padding-top:18px}}.pf-dialog .case-study{max-width:none;margin-bottom:0}.case-study>:is(p,ul,ol,blockquote,h2,h3,h4,.case-overview){max-width:800px}.case-study>:is(h2,h3){margin-top:44px;margin-bottom:16px;font-size:22px}.case-study>h4{margin:28px 0 12px;color:var(--pf-cyan);font-size:18px}.case-study>:is(p,ul,ol,blockquote){margin-block:14px}.case-study :is(ul,ol){padding-left:24px}.case-study li{margin-block:8px}.case-study strong{color:var(--pf-white);font-weight:600}.case-study>hr{margin:36px 0;border:0;border-top:1px solid var(--pf-line)}.case-study>blockquote{padding:12px 20px;border-left:2px solid var(--pf-cyan);background:#66d8f408}.case-study p:has(.case-image){max-width:none;margin-block:28px 40px}.case-image{display:block}.case-image img{display:block;width:100%;height:auto;border:1px solid var(--pf-line)}.case-image small{display:block;margin-top:10px;color:var(--pf-dim);font-size:12px}.case-study a{color:var(--pf-cyan);text-decoration:underline;text-underline-offset:3px}.case-study .case-extra-gallery{margin-top:36px}@media(max-width:760px){.pf-dialog .case-study{font-size:16px}.case-study>:is(h2,h3){font-size:20px;margin-top:32px}.case-study p:has(.case-image){margin-block:22px 30px}.case-pdf{margin:22px 0 30px}.case-pdf button,.case-pdf-open,.case-pdf-status{margin-left:0}.case-pdf-frame{height:min(68vh,720px)}}.pf-dialog .case-study>:is(h2,h3){margin-top:44px;margin-bottom:16px;font-size:22px}.pf-dialog .case-study>p:has(.case-image){max-width:none;margin-block:28px 40px}.case-study ul{list-style:disc}.case-study ol{list-style:decimal}.case-pdf{display:block;max-width:800px;margin:28px 0 36px}.project-gallery .case-pdf{max-width:none}.case-pdf-sheet{display:grid;min-height:180px;place-items:center;overflow:hidden;border:1px solid var(--pf-line);background:linear-gradient(160deg,#123746,#091117 62%);color:var(--pf-cyan)}.case-pdf-sheet img{display:block;width:100%;height:auto}.case-pdf-placeholder{display:grid;gap:8px;justify-items:center;padding:42px 16px;font-family:var(--pf-mono, ui-monospace, monospace);letter-spacing:.16em}.case-pdf-placeholder b{font-size:13px;font-weight:500}.case-pdf-placeholder small{color:var(--pf-dim);font-size:11px;letter-spacing:.08em}.case-pdf-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:12px}.case-pdf-meta strong{color:var(--pf-white);font-weight:600}.case-pdf-meta>span:not(.case-pdf-status){color:var(--pf-dim);font-size:13px}.case-study .case-pdf-open{text-decoration:none}.case-pdf button,.case-pdf-open,.case-pdf-status{display:inline-flex;min-height:44px;align-items:center;margin-left:auto;padding:0 14px;border:1px solid var(--pf-line);color:var(--pf-cyan);background:transparent;font:inherit;font-size:14px;text-decoration:none}.case-pdf button{cursor:pointer}.case-pdf-frame{display:block;width:100%;height:min(72vh,820px);margin-top:14px;border:1px solid var(--pf-line);background:#061016}@media(max-width:760px){.pf-dialog .case-study>:is(h2,h3){font-size:20px;margin-top:32px}.pf-dialog .case-study>p:has(.case-image){margin-block:22px 30px}}.case-overview{display:grid;gap:24px;margin:0 0 48px}.pf-dialog .case-overview-step h3{display:flex;align-items:baseline;gap:14px;margin:0 0 10px;color:var(--pf-white);font-size:20px;line-height:1.5}.case-overview-step h3 small{color:#91aab5;font-size:12px;font-weight:400}.case-overview-step+.case-overview-step{padding-top:24px;border-top:1px solid #8bbcca24}.case-overview-step p{color:#c2d0d6;font-size:16px;line-height:1.85;overflow-wrap:anywhere}@media(max-width:760px){.case-overview{gap:20px;margin-bottom:32px}.case-overview-step+.case-overview-step{padding-top:20px}.pf-dialog .dialog-heading h2{text-wrap:balance}}.case-overview-detail summary{width:-moz-fit-content;width:fit-content;margin-top:10px;padding-block:4px;color:var(--pf-cyan);cursor:pointer;font-size:13px}.case-overview-detail[open] summary{margin-bottom:12px}.pf-growth-evidence{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px;padding:0;list-style:none}.pf-growth-evidence li{padding:7px 11px;border:1px solid var(--pf-line);border-radius:4px;background:#0b1c23;color:var(--pf-cyan);font-size:13px}.pf-growth-path{margin-top:24px;color:var(--pf-muted);font-size:15px}.pf-growth-story{max-width:47em;margin-top:12px;color:var(--pf-muted);line-height:1.9}.pf-growth-story summary{width:-moz-fit-content;width:fit-content;cursor:pointer;color:var(--pf-cyan);padding-block:8px}.pf-growth-story p{margin-top:12px}.pf-growth-education{margin-top:28px;color:var(--pf-muted);line-height:1.8}.pf-growth .pf-skill-matrix{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:900px){.pf-growth .pf-skill-matrix{grid-template-columns:1fr}}@media(max-width:760px){.phone-growth-hero .pf-growth-identity{gap:6px 12px;font-size:20px}.phone-growth-hero h1{margin-block:18px;font-size:28px;line-height:1.45}.phone-growth-hero .pf-growth-evidence{gap:6px;margin-bottom:18px}.phone-growth-hero .pf-growth-evidence li{font-size:12px;padding:6px 8px}.phone-growth-hero .pf-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:0}.phone-growth-hero .pf-growth-path{font-size:13px}}@media(max-width:760px),(pointer:coarse)and (max-width:960px)and (max-height:500px){.pf-header{height:64px;padding-inline:20px;-webkit-backdrop-filter:none;backdrop-filter:none;background:#040a0ff5}.pf-brand>small,.pf-header>.pf-motion-toggle{display:none}.pf-menu{display:inline-flex;width:52px;height:52px;flex:0 0 52px;border-radius:15px}.pf-nav,.pf-scroll-telemetry{display:none}.phone-sky-fallback{background:radial-gradient(ellipse at 90% 35%,#075b72 0,transparent 48%),radial-gradient(ellipse at 72% 76%,#07365c 0,transparent 48%),#05090d}.phone-sky-fallback[data-fallback=true]:after{position:absolute;inset:0;content:"";opacity:.55;background-image:radial-gradient(circle,#dfedf9 0 1px,transparent 1.5px),radial-gradient(circle,#63a5b9 0 .6px,transparent 1.3px);background-size:127px 173px,73px 109px;background-position:16px 37px,41px 19px}.phone-poster{position:relative;isolation:isolate;display:flex;min-height:min(760px,calc(100svh - 64px));flex-direction:column;justify-content:space-between;gap:30px;padding:28px 20px 24px}.phone-poster:before{position:absolute;z-index:-1;inset:0;content:"";pointer-events:none;background:radial-gradient(ellipse at 16% 42%,rgba(5,9,13,.72),transparent 73%),linear-gradient(0deg,rgba(5,9,13,.36),transparent 25%)}.phone-poster-id{display:flex;align-items:start;justify-content:space-between;gap:16px}.phone-poster-id p{display:grid;gap:4px}.phone-poster-id strong{color:var(--pf-white);font-size:18px;font-weight:600;line-height:1.4}.phone-poster-id p>span{color:var(--pf-muted);font-size:14px;line-height:1.5}.phone-poster-location{display:flex;min-height:26px;align-items:center;gap:7px;color:var(--pf-dim);font-size:11px}.phone-poster-location i{width:4px;height:4px;border-radius:50%;background:var(--pf-cyan);box-shadow:0 0 12px #66d8f480}.phone-poster-message{padding-block:10px 16px;text-shadow:0 2px 25px #0009}.phone-poster-kicker{display:block;margin-bottom:20px;color:#86a4ae;font-size:10px;letter-spacing:.16em}.phone-poster h1{margin:0;max-width:100%;line-height:1.12;letter-spacing:-.045em;text-wrap:balance}.phone-poster h1>span{display:block;margin-bottom:10px;color:#bfced2;font-size:clamp(20px,5.7vw,24px);font-weight:400;line-height:1.4;letter-spacing:-.035em}.phone-poster h1>strong{display:block;color:#f3f7f6;font-size:clamp(34px,10.5vw,44px);font-weight:700;line-height:1.17}.phone-poster-message>p{margin-top:24px;color:#a7bec8;font-size:16px;font-weight:400;line-height:1.8}.phone-poster-bottom{display:grid;gap:24px}.phone-poster-actions,.phone-growth-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}.phone-poster-actions .pf-button,.phone-growth-actions .pf-button{min-height:48px;padding:11px 17px;font-size:13px}.phone-poster-actions .pf-hero-resume-link{flex-basis:100%}.phone-poster-secondary{display:inline-flex;min-height:48px;align-items:center;gap:9px;color:#b5ced8;font-size:13px}.phone-work-peek{display:flex;min-height:76px;align-items:center;gap:16px;padding:11px 0 0;border-top:1px solid #88b6cc36;color:var(--pf-white)}.phone-work-peek img{width:88px;height:50px;flex:0 0 88px;-o-object-fit:cover;object-fit:cover;border:1px solid #c4d6d72e;border-radius:3px}.phone-work-peek>span{flex:1;display:grid;gap:3px}.phone-work-peek small{color:#8faab7;font-size:10px;letter-spacing:.06em}.phone-work-peek strong{font-size:15px;font-weight:500}.phone-work-peek>svg{color:var(--pf-cyan)}.pf-home .pf-section,.pf-growth .pf-section{padding-block:34px}.pf-home .pf-work{background:linear-gradient(90deg,#05090df0,#05090dc7 68%,#05090d61)}.pf-home .pf-work .pf-section-heading,.pf-growth .pf-experience .pf-section-heading{display:block;margin-bottom:14px}.pf-home .pf-work .pf-section-heading .pf-eyebrow,.pf-home .pf-work .pf-section-heading>p,.pf-growth .pf-experience .pf-section-heading>p{display:none}.pf-home .pf-section-heading h2,.pf-growth .pf-section-heading h2{font-size:23px;line-height:1.4;letter-spacing:-.04em}.pf-home .pf-filters{gap:6px 21px;margin-bottom:18px}.pf-home .pf-filters button{min-height:44px;font-size:12px}.pf-home .pf-featured-list{gap:30px}.pf-home .pf-project.is-featured{display:block;padding-bottom:28px}.pf-home .is-featured .pf-project-media{aspect-ratio:16/9;border-color:#a2c3d02c;border-radius:4px}.pf-home .is-featured .pf-project-copy{padding-top:17px}.pf-home .is-featured .pf-project-copy h3{font-size:24px;line-height:1.4;margin-top:10px}.pf-home .is-featured .pf-project-role{font-size:12px;line-height:1.8}.pf-home .is-featured .pf-project-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-top:12px!important;font-size:16px;line-height:1.85}.pf-home .is-featured .pf-tags{margin-top:14px!important}.pf-home .pf-project-meta{font-size:10px}.pf-home .pf-earlier-work{margin-top:30px}.pf-home .pf-subheading{display:block;margin-bottom:18px}.pf-home .pf-subheading h3{font-size:18px}.pf-home .pf-subheading>p{font-size:12px;margin-top:5px}.pf-home .pf-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 14px}.pf-home .pf-project-grid .pf-project-media{aspect-ratio:4/3;max-height:none;border-radius:3px}.pf-home .pf-project-grid .pf-project-copy{padding-top:12px}.pf-home .pf-project-grid .pf-project-copy h3{margin-top:6px;font-size:16px;line-height:1.5}.pf-home .pf-project-grid :is(.pf-project-role,.pf-project-description,.pf-tags){display:none}.pf-home .pf-project-grid .pf-case-link{min-height:44px;gap:6px;font-size:11px}.pf-home .pf-project-grid .pf-project-actions{gap:4px;margin-top:7px}.pf-home .pf-process{background:linear-gradient(90deg,#05090df5,#05090db8)}.pf-home .pf-process .pf-section-heading{margin-bottom:24px}.pf-home .pf-process-grid{display:block;margin:0 0 0 12px!important;padding-left:25px;border-left:1px solid #66d8f440}.pf-home .pf-process-grid>li{position:relative;padding:0 0 26px}.pf-home .pf-process-grid>li:last-child{padding-bottom:0}.pf-home .pf-process-grid>li>span{position:absolute;top:0;left:-38px;display:grid;width:25px;height:25px;place-items:center;border:1px solid #66d8f45c;border-radius:50%;color:var(--pf-cyan);background:#07141e;font-family:var(--pf-mono);font-size:9px}.pf-home .pf-process-grid h3{margin:0 0 5px;font-size:18px;line-height:1.4}.pf-home .pf-process-grid p{max-width:26em;font-size:15px;line-height:1.8}.phone-method-note{margin-top:22px;border-top:1px solid var(--pf-line);color:var(--pf-muted)}.phone-method-note summary{display:flex;min-height:48px;align-items:center;justify-content:space-between;font-size:13px;cursor:pointer;list-style:none}.phone-method-note summary::-webkit-details-marker,.phone-career-story summary::-webkit-details-marker{display:none}.phone-method-note>p{padding-bottom:16px;font-size:16px;line-height:1.85}.pf-home .pf-growth-link{padding-block:32px;background:#08121acc}.pf-home .pf-growth-link h2{font-size:24px;line-height:1.5}.pf-home .pf-growth-link .pf-eyebrow{font-size:9px}.pf-home .pf-growth-link>.pf-width>div>p:last-child{max-width:24em;font-size:13px;line-height:1.8}.pf-home .pf-growth-link .pf-button{min-height:46px;margin-top:20px}.phone-growth-hero{padding-block:30px 28px;background:linear-gradient(90deg,#05090de0,#05090d65)}.phone-section-tag{color:#8ca6af;font-family:var(--pf-mono);font-size:10px;letter-spacing:.1em}.phone-growth-hero h1{display:grid;gap:9px;margin:20px 0 12px;color:var(--pf-white);font-size:34px;font-weight:600;line-height:1.2;letter-spacing:-.045em}.phone-growth-hero h1>span{color:var(--pf-cyan);font-size:19px;font-weight:400;line-height:1.5;letter-spacing:-.02em}.phone-growth-location{display:flex;gap:10px;color:var(--pf-dim);font-size:12px}.phone-growth-location span{color:#526775}.phone-growth-path{display:flex;align-items:center;gap:9px;margin-top:24px!important;color:#b4c7cd;font-size:12px}.phone-growth-path svg{color:#537885}.phone-current-work{margin-top:24px;padding:19px 18px 0;border:1px solid #87b7c03b;border-radius:4px;background:#06121acc}.phone-current-work>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#91aab4;font-size:10px}.phone-current-work>div:first-child>span{display:flex;align-items:center;gap:7px;color:#b4cbd2}.phone-current-work i{width:4px;height:4px;border-radius:50%;background:var(--pf-acid);box-shadow:0 0 10px #d8fa4530}.phone-current-work time{text-align:right;font-size:9px}.phone-current-work h2{margin-top:17px;font-size:22px;font-weight:600;line-height:1.4}.phone-current-work h2+p{margin-top:5px;color:#b6c9d0;font-size:12px}.phone-current-summary{margin-top:13px!important;color:var(--pf-muted);font-size:14px;line-height:1.85}.phone-current-work>a{display:flex;min-height:49px;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;border-top:1px solid var(--pf-line);color:#c2d5d9;font-family:var(--pf-mono);font-size:11px}.phone-current-work>a>span{display:flex;align-items:center;gap:6px;color:var(--pf-cyan);font-family:inherit;font-size:10px}.phone-growth-actions{gap:12px 18px;margin-top:22px}.phone-career-story{margin-top:20px;border-top:1px solid var(--pf-line);color:var(--pf-muted)}.phone-career-story>summary{display:flex;min-height:48px;align-items:center;justify-content:space-between;font-size:13px;cursor:pointer;list-style:none}.phone-career-story>p{margin-bottom:14px;font-size:16px;line-height:1.85}.phone-career-story[open] summary>svg,.phone-method-note[open] summary>svg{transform:rotate(180deg)}.pf-growth .pf-experience{background:linear-gradient(90deg,#05090df5,#05090dcc)}.pf-growth .pf-experience .pf-eyebrow{display:none}.pf-growth .pf-experience-list>article{padding-block:24px}.pf-growth .pf-experience-main h3{font-size:21px}.pf-growth .pf-experience-main :is(.pf-experience-summary,li){font-size:16px;line-height:1.9}.pf-growth .pf-skill-matrix{gap:14px}.pf-growth .pf-skill-matrix>article{padding:20px;background:#0b151de8}.pf-growth .pf-skill-matrix h3{font-size:18px}.pf-footer{padding-block:34px 22px}.pf-footer h2{font-size:29px;line-height:1.4}.pf-footer .pf-email{font-size:22px}.pf-footer-bottom :is(button,a){min-height:44px}@media(max-height:680px){.phone-poster{gap:24px;padding-block:22px 18px}.phone-poster-message{padding-block:0}.phone-poster-kicker{margin-bottom:12px}.phone-poster-message>p{margin-top:17px}.phone-poster-bottom{gap:18px}}@media(orientation:landscape)and (max-height:500px){.phone-poster{min-height:0;gap:25px;padding-inline:32px}.phone-poster-message{width:70%}.phone-poster-bottom{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:end}.phone-work-peek{padding-top:0}.phone-growth-hero .pf-width{width:calc(100% - 64px)}}}@media(max-width:760px),(pointer:coarse)and (max-width:960px)and (max-height:500px){.phone-poster{gap:22px}.phone-poster-id strong{font-size:22px;font-weight:650}.phone-poster-message{padding-block:4px}.phone-poster-message>p{margin-top:18px;line-height:1.65;text-wrap:pretty}.phone-poster-actions{gap:4px 18px}.phone-poster-actions .pf-button-primary{min-height:50px;font-size:14px;font-weight:650}.phone-poster-secondary{color:#9db5c1}.phone-poster-bottom{gap:14px}@media(max-height:700px){.phone-poster{gap:16px;padding-block:18px}.phone-poster h1>strong{font-size:clamp(32px,9.5vw,40px)}.phone-work-peek{display:none}}}.contact-form{position:relative;max-width:680px;margin:44px 0;padding:24px;border:1px solid #ffffff25;border-radius:12px;background:#08121bd9;color:#edf3f6}.contact-form h3{font-size:24px;margin:0 0 12px}.contact-form p{font-size:14px;line-height:1.6;color:#b2c0c9}.contact-form label{display:grid;gap:8px;margin-top:16px;font-size:16px;min-width:0}.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contact-form input,.contact-form textarea{box-sizing:border-box;width:100%;min-width:0;padding:12px;border:1px solid #ffffff35;border-radius:6px;background:#ffffff08;color:inherit;font:inherit}.contact-form textarea{resize:vertical}.contact-form :focus-visible{outline:2px solid #d8ff36;outline-offset:3px}.contact-form button{margin-top:20px;padding:12px 20px;background:#d8ff36;color:#10160a;border-radius:6px;font-size:16px}.contact-form button:disabled{opacity:.6;cursor:wait}.contact-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}@media(max-width:540px){.contact-form{padding:18px}.contact-fields{grid-template-columns:1fr;gap:0}}.contact-message{padding:20px;margin:16px 0;border:1px solid #ffffff30;border-radius:8px;overflow-wrap:anywhere}.contact-message-body{white-space:pre-wrap;line-height:1.7}.contact-message button{margin:8px 12px 0 0}
