@font-face{font-family:geist;src:url(../media/GeistVF-s.p.5b4cf06f.woff)format("woff");font-display:swap}@font-face{font-family:geist Fallback;src:local(Arial);ascent-override:85.83%;descent-override:20.52%;line-gap-override:9.33%;size-adjust:107.19%}.geist_8938d2c0-module__9OZAbW__className{font-family:geist,geist Fallback}.geist_8938d2c0-module__9OZAbW__variable{--font-geist:"geist", "geist Fallback"}
@font-face{font-family:geistMono;src:url(../media/GeistMonoVF-s.p.f70391df.woff)format("woff");font-display:swap}@font-face{font-family:geistMono Fallback;src:local(Arial);ascent-override:69.97%;descent-override:16.73%;line-gap-override:7.61%;size-adjust:131.49%}.geistmono_a68248ec-module__8mam1q__className{font-family:geistMono,geistMono Fallback}.geistmono_a68248ec-module__8mam1q__variable{--font-geist-mono:"geistMono", "geistMono Fallback"}
*,:before,:after,::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:#3b82f680;--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:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family: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:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-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{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:0 0% 100%;--foreground:222.2 84% 4.9%;--card:0 0% 100%;--card-foreground:222.2 84% 4.9%;--popover:0 0% 100%;--popover-foreground:222.2 84% 4.9%;--primary:222.2 47.4% 11.2%;--primary-foreground:210 40% 98%;--secondary:210 40% 96.1%;--secondary-foreground:222.2 47.4% 11.2%;--muted:210 40% 96.1%;--muted-foreground:215.4 16.3% 46.9%;--accent:210 40% 96.1%;--accent-foreground:222.2 47.4% 11.2%;--destructive:0 84.2% 60.2%;--destructive-foreground:210 40% 98%;--border:214.3 31.8% 91.4%;--input:214.3 31.8% 91.4%;--ring:222.2 84% 4.9%;--chart-1:12 76% 61%;--chart-2:173 58% 39%;--chart-3:197 37% 24%;--chart-4:43 74% 66%;--chart-5:27 87% 67%;--radius:.5rem;--color-1:0 100% 63%;--color-2:270 100% 63%;--color-3:210 100% 63%;--color-4:195 100% 63%;--color-5:90 100% 63%}.dark{--background:222.2 84% 4.9%;--foreground:210 40% 98%;--card:222.2 84% 4.9%;--card-foreground:210 40% 98%;--popover:222.2 84% 4.9%;--popover-foreground:210 40% 98%;--primary:210 40% 98%;--primary-foreground:222.2 47.4% 11.2%;--secondary:217.2 32.6% 17.5%;--secondary-foreground:210 40% 98%;--muted:217.2 32.6% 17.5%;--muted-foreground:215 20.2% 65.1%;--accent:217.2 32.6% 17.5%;--accent-foreground:210 40% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:210 40% 98%;--border:217.2 32.6% 17.5%;--input:217.2 32.6% 17.5%;--ring:212.7 26.8% 83.9%;--chart-1:220 70% 50%;--chart-2:160 60% 45%;--chart-3:30 80% 55%;--chart-4:280 65% 60%;--chart-5:340 75% 55%;--color-1:0 100% 63%;--color-2:270 100% 63%;--color-3:210 100% 63%;--color-4:195 100% 63%;--color-5:90 100% 63%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-px{inset:1px}.-bottom-1\/2{bottom:-50%}.-top-1\/2{top:-50%}.bottom-0{bottom:0}.left-0{left:0}.left-2{left:.5rem}.right-0{right:0}.top-0{top:0}.z-10{z-index:10}.z-30{z-index:30}.z-50{z-index:50}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.ml-auto{margin-left:auto}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.size-full{width:100%;height:100%}.h-10{height:2.5rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1\.2rem\]{height:1.2rem}.h-\[1px\]{height:1px}.h-\[30vw\]{height:30vw}.h-full{height:100%}.h-px{height:1px}.min-h-full{min-height:100%}.w-2{width:.5rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-9{width:2.25rem}.w-\[1\.2rem\]{width:1.2rem}.w-\[1px\]{width:1px}.w-\[30vw\]{width:30vw}.w-full{width:100%}.min-w-\[8rem\]{min-width:8rem}.shrink-0{flex-shrink:0}.rotate-0{--tw-rotate:0deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(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)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-0{--tw-scale-x:0;--tw-scale-y:0;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(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)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes aurora-border{0%,to{border-radius:37% 29% 27% 27%/28% 25% 41% 37%}25%{border-radius:47% 29% 39% 49%/61% 19% 66% 26%}50%{border-radius:57% 23% 47% 72%/63% 17% 66% 33%}75%{border-radius:28% 49% 29% 100%/93% 20% 64% 25%}}@keyframes aurora-1{0%,to{top:0;right:0}50%{top:50%;right:25%}75%{top:25%;right:50%}}.animate-\[aurora-border_6s_ease-in-out_infinite\,aurora-1_12s_ease-in-out_infinite_alternate\]{animation:6s ease-in-out infinite aurora-border,12s ease-in-out infinite alternate aurora-1}@keyframes aurora-2{0%,to{top:0;left:0}60%{top:75%;left:25%}85%{top:50%;left:50%}}.animate-\[aurora-border_6s_ease-in-out_infinite\,aurora-2_12s_ease-in-out_infinite_alternate\]{animation:6s ease-in-out infinite aurora-border,12s ease-in-out infinite alternate aurora-2}@keyframes aurora-3{0%,to{bottom:0;left:0}40%{bottom:50%;left:25%}65%{bottom:25%;left:50%}}.animate-\[aurora-border_6s_ease-in-out_infinite\,aurora-3_12s_ease-in-out_infinite_alternate\]{animation:6s ease-in-out infinite aurora-border,12s ease-in-out infinite alternate aurora-3}@keyframes aurora-4{0%,to{bottom:0;right:0}50%{bottom:25%;right:40%}90%{bottom:50%;right:25%}}.animate-\[aurora-border_6s_ease-in-out_infinite\,aurora-4_12s_ease-in-out_infinite_alternate\]{animation:6s ease-in-out infinite aurora-border,12s ease-in-out infinite alternate aurora-4}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.resize{resize:both}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-input{border-color:hsl(var(--input))}.bg-\[hsl\(var\(--color-1\)\)\]{background-color:hsl(var(--color-1))}.bg-\[hsl\(var\(--color-2\)\)\]{background-color:hsl(var(--color-2))}.bg-\[hsl\(var\(--color-3\)\)\]{background-color:hsl(var(--color-3))}.bg-\[hsl\(var\(--color-4\)\)\]{background-color:hsl(var(--color-4))}.bg-background{background-color:hsl(var(--background))}.bg-border{background-color:hsl(var(--border))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-muted{background-color:hsl(var(--muted))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-gradient-to-tr{background-image:linear-gradient(to top right, var(--tw-gradient-stops))}.from-indigo-500{--tw-gradient-from:#6366f1 var(--tw-gradient-from-position);--tw-gradient-to:#6366f100 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.via-purple-500{--tw-gradient-to:#a855f700 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), #a855f7 var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-pink-500{--tw-gradient-to:#ec4899 var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-current{fill:currentColor}.p-1{padding:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.text-5xl{font-size:3rem;line-height:1}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.italic{font-style:italic}.tracking-widest{letter-spacing:.1em}.text-destructive-foreground{color:hsl(var(--destructive-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-transparent{color:#0000}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-60{opacity:.6}.mix-blend-overlay{mix-blend-mode:overlay}.mix-blend-lighten{mix-blend-mode:lighten}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--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 #0000001a, 0 2px 4px -2px #0000001a;--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-sm{--tw-shadow:0 1px 2px 0 #0000000d;--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-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-\[1rem\]{--tw-blur:blur(1rem);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-lg{--tw-blur:blur(16px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-none{--tw-blur: ;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-1000{transition-duration:1s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0), var(--tw-enter-translate-y,0), 0) scale3d(var(--tw-enter-scale,1), var(--tw-enter-scale,1), var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0), var(--tw-exit-translate-y,0), 0) scale3d(var(--tw-exit-scale,1), var(--tw-exit-scale,1), var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-1000{animation-duration:1s}.duration-300{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}body{font-family:Arial,Helvetica,sans-serif}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:underline:hover{text-decoration-line:underline}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #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-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[state\=closed\]\:animate-out[data-state=closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.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}.dark\:-rotate-90:is(.dark *){--tw-rotate:-90deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:rotate-0:is(.dark *){--tw-rotate:0deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:scale-0:is(.dark *){--tw-scale-x:0;--tw-scale-y:0;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:scale-100:is(.dark *){--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:mix-blend-darken:is(.dark *){mix-blend-mode:darken}@media (min-width:640px){.sm\:text-8xl{font-size:6rem;line-height:1}}@media (min-width:768px){.md\:w-72{width:18rem}}@media (min-width:1024px){.lg\:w-96{width:24rem}}@media (min-width:1280px){.xl\:w-80{width:20rem}}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}
:root{--paper:#f7f6f0;--ink:#293d33;--forest:#314f3d;--muted-ink:#68715f;--line:#dedfd4;--orange:#b9653d;--font-sans:var(--font-geist), Arial, sans-serif;--font-mono:var(--font-geist-mono), monospace}html{scroll-behavior:smooth;scroll-padding-top:0}body{--font-sans:var(--font-geist), Arial, sans-serif;--font-mono:var(--font-geist-mono), monospace;background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}::selection{color:#233c2c;background:#d8dfbd}a,button{-webkit-tap-highlight-color:transparent}button,a,summary{touch-action:manipulation}a{color:inherit;text-decoration:none}button{font:inherit}button,summary{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--orange);outline-offset:5px}svg{flex-shrink:0}#main{scroll-margin-top:88px}section[id]{scroll-margin-top:20px}article[id],footer[id]{scroll-margin-top:110px}.page-width{width:min(1280px,100% - 112px);margin-inline:auto}.section-spacing{padding-block:108px}.eyebrow{font-family:var(--font-mono);letter-spacing:1.5px;align-items:center;gap:12px;margin:0;font-size:10px;font-weight:450;line-height:1.6;display:flex}.section-number{color:var(--orange);font-size:11px}.status-dot{background:var(--orange);border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 4px #b9653d0c}.skip-link{z-index:100;background:var(--forest);color:#fff;border-radius:4px;padding:12px 18px;position:fixed;top:-80px;left:20px}.skip-link:focus{top:12px}.site-header{z-index:40;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f7f6f0ed;position:sticky;top:0}.site-nav{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:88px;display:flex}.wordmark{letter-spacing:-.8px;align-items:center;gap:10px;font-size:21px;font-weight:550;display:inline-flex}.wordmark-symbol{color:var(--orange);place-items:center;margin-right:2px;transition:transform .4s;display:grid}.wordmark:hover .wordmark-symbol{transform:rotate(90deg)}.wordmark-dot{color:var(--orange);margin-left:-10px}.nav-links{align-items:center;gap:37px;font-size:12px;font-weight:450;display:flex}.nav-links>a{padding-block:12px;transition:color .2s}.nav-links>a:hover{color:var(--orange)}.nav-links .nav-contact{border-bottom:1px solid var(--ink);align-items:center;gap:9px;padding-block:8px;display:flex}.hero-main{grid-template-columns:.93fr 1.2fr;align-items:center;gap:12px;min-height:664px;padding-block:25px 15px;display:grid}.hero-copy{z-index:2;padding-bottom:25px;position:relative}.hero-copy>.eyebrow{margin-bottom:30px}h1{letter-spacing:-5px;margin:0;font-size:clamp(55px,5.6vw,80px);font-weight:500;line-height:1.07}h1 em{letter-spacing:-4px;color:var(--forest);white-space:nowrap;font-family:Georgia,Times New Roman,serif;font-size:1.01em;font-weight:400;line-height:1.17;display:inline-block}.hero-description{color:#696f65;max-width:384px;margin:26px 0 28px;font-size:15px;line-height:1.95}.hero-description strong{color:var(--ink);font-weight:550}.hero-description a{color:var(--ink);display:inline-block;position:relative}.hero-description a svg{fill:none;stroke:#c18c51;stroke-width:1.6px;width:100%;height:5px;position:absolute;bottom:1px;left:0}.hero-actions{align-items:center;gap:28px;display:flex}.button{border-radius:5px;justify-content:center;align-items:center;gap:26px;min-height:47px;padding:0 19px;font-size:12px;font-weight:450;transition:background .2s,transform .2s;display:inline-flex}.button-primary{background:var(--forest);color:#f8f8f1}.button-primary:hover{background:#213d2b;transform:translateY(-2px)}.text-link{border-bottom:1px solid #a9b3a1;align-items:center;gap:12px;width:fit-content;padding-block:8px;font-size:12px;line-height:1.5;display:inline-flex}.text-link:hover{color:var(--orange);border-color:var(--orange)}.hero-footnote{color:#68715f;align-items:center;gap:9px;margin:21px 0 0 12px;font-family:Georgia,serif;font-size:13px;font-style:italic;display:flex;transform:rotate(-2deg)}.hand-drawn-arrow{color:#9b9b7d;margin-top:-7px;font-family:Georgia,serif;font-size:24px}.hero-baseline{border-block:1px solid var(--line);color:var(--muted-ink);font-family:var(--font-mono);letter-spacing:.7px;justify-content:space-between;align-items:center;padding:20px 0;font-size:9px;display:flex}.hero-baseline p,.hero-baseline a{align-items:center;gap:8px;margin:0;display:flex}.hero-baseline p:first-child{font-family:var(--font-sans);letter-spacing:.1px;font-size:11px}.hero-baseline a:hover{color:var(--orange)}.studio{align-self:center;width:100%;min-width:0;position:relative}.studio-topline{z-index:3;justify-content:space-between;align-items:center;padding:0 10px 0 24px;display:flex;position:relative}.studio-room-label{color:#68715f;font-family:var(--font-mono);letter-spacing:1.2px;align-items:center;gap:7px;font-size:8px;display:flex}.studio-controls{gap:3px;display:flex}.studio-controls button{color:#747c6b;background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;width:32px;height:34px;transition:background .2s,color .2s;display:grid}.studio-controls button:hover{color:var(--ink);background:#e9ebdf}.studio-controls button:disabled{opacity:.4}.studio-stage{isolation:isolate;background:radial-gradient(at 54% 58%,#dfe4cc70,#eeefdf15 55%,#0000 72%);border-radius:28px;height:478px;position:relative}.studio-stage.is-night{background:radial-gradient(at 54% 55%,#d3d9bf75,#eeefdf20 60%,#0000 75%)}.studio-canvas,.studio-fallback{width:100%;height:100%;position:absolute;inset:0}.studio-canvas{z-index:2}.studio-canvas canvas{touch-action:pan-y;width:100%;height:100%;display:block}.studio-fallback{z-index:1;transition:opacity .35s}.studio-fallback.is-hidden{opacity:0;pointer-events:none}.studio-fallback svg{width:100%;height:100%}.studio-sticker{z-index:3;color:#7b8067;pointer-events:none;font:italic 16px/1.2 Georgia,serif;position:absolute;top:21px;left:30px;transform:rotate(-8deg)}.studio-sticker svg{stroke:#9eaa85;width:45px;height:25px;margin:3px 0 0 16px;display:block}.studio-object-nav{z-index:3;justify-content:center;align-items:center;gap:4px;margin:0 5px 13px;display:flex;position:relative}.studio-object-nav button{color:#68715f;background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:5px;min-height:32px;padding:7px 9px;font-size:10px;transition:background .2s,color .2s;display:inline-flex}.studio-object-nav button span{font-family:var(--font-mono);color:#9b8466;font-size:8px}.studio-object-nav button:hover{background:#eeefe4;border-color:#d9ddcd}.studio-object-nav button[aria-pressed=true]{background:var(--forest);color:#fffef3}.studio-object-nav button[aria-pressed=true] span{color:#ccd6b6}.studio-caption{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:66px;margin:0 24px;padding:13px 0;display:flex}.studio-caption h2{letter-spacing:-.3px;margin:0 0 4px;font:italic 20px/1.3 Georgia,serif}.studio-caption p{color:#68715f;max-width:350px;margin:0;font-size:10px;line-height:1.6}.studio-caption>a{width:32px;height:32px;color:var(--forest);background:#e9ecdf;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.studio-caption>a:hover{background:var(--forest);color:var(--paper)}.studio-hint{font:8px/1.7 var(--font-mono);color:#68715f;text-align:right;letter-spacing:.6px;white-space:nowrap}.studio-hint-mobile{display:none}.studio-loading{font-family:var(--font-mono);color:#68715f;font-size:8px;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.section-topline{justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;display:flex}.section-aside{font-family:var(--font-mono);letter-spacing:1px;color:#68715f;font-size:8px}h2{letter-spacing:-2px;margin:0;font-size:clamp(40px,3.6vw,53px);font-weight:450;line-height:1.12}h2 em{letter-spacing:-1.8px;color:var(--forest);font:italic 1.03em/1.16 Georgia,Times New Roman,serif}.section-heading-row{justify-content:space-between;align-items:flex-end;gap:25px;margin-bottom:44px;display:flex}.section-heading-row>.text-link{white-space:nowrap;margin-bottom:5px}.project-grid{grid-template-columns:1fr 1fr;gap:56px 38px;display:grid}.project{min-width:0}.project-ragbox{grid-column:1/-1;grid-template-columns:1.05fr 1fr;align-items:center;gap:38px;display:grid}.project-ragbox .project-visual{background:#203c35}.project-ragbox .project-information{padding-top:0}.project-ragbox .project-title-row h3{font-size:32px}.project-ragbox .project-description{font-size:13px}.ragbox-preview{background:#29453a;border:1px solid #6b815b;border-radius:6px;transition:transform .5s;position:absolute;inset:44px 34px 65px;overflow:hidden;transform:rotate(-2deg);box-shadow:8px 16px 30px #0c241c55}.project-visual:hover .ragbox-preview{transform:rotate(0)}.ragbox-window-bar{color:#e1e5cb;border-bottom:1px solid #536b4c;justify-content:space-between;align-items:center;height:34px;padding-inline:15px;display:flex}.ragbox-window-bar>span:first-child{align-items:center;gap:7px;font-size:11px;display:flex}.ragbox-window-bar>span:last-child{font:6px var(--font-mono);letter-spacing:.8px;color:#bbcba4}.ragbox-window-content{padding:16px 18px 13px}.ragbox-query{color:#c4d1b0;background:#203c32;border:1px solid #58724e;border-radius:3px;align-items:center;gap:9px;min-height:31px;padding-inline:10px;font-size:9px;display:flex}.ragbox-query>span:last-child{margin-left:auto}.ragbox-pipeline{color:#c0cf9c;grid-template-columns:minmax(0,1fr) 17px minmax(0,1fr);align-items:center;gap:10px;margin-top:14px;display:grid}.ragbox-pipeline>div{background:#35523e;border:1px solid #536e48;border-radius:3px;flex-direction:column;gap:5px;padding:11px;display:flex;position:relative}.ragbox-pipeline>div>svg{opacity:.6;position:absolute;top:11px;right:10px}.ragbox-pipeline>div>span{font:6px var(--font-mono);letter-spacing:.6px}.ragbox-pipeline strong{color:#edf0d6;margin-top:8px;font-size:12px;font-weight:450}.ragbox-pipeline small{color:#c0ccab;font-size:7px;line-height:1.5}.ragbox-device-note{font:7px var(--font-mono);color:#c4d1ac;justify-content:center;align-items:center;gap:6px;margin:12px 0 0;display:flex}.ragbox-device-note>span{background:#b7c889;border-radius:50%;width:4px;height:4px}.project:target .project-visual{outline-offset:5px;outline:3px solid #b9653d80}.project-visual{isolation:isolate;border-radius:8px;height:340px;display:block;position:relative;overflow:hidden}.project-robot .project-visual{background:#203c35}.project-goose .project-visual{background:#d7d9cb}.project-notes .project-visual{background:#e5e7d9}.project-chess .project-visual{background:#d8dfcf}.project-general .project-visual{background:#e3e6d9}.project-general .visual-project-number{color:var(--forest)}.generic-project-preview{color:var(--forest);flex-direction:column;justify-content:center;align-items:center;gap:18px;font-size:22px;display:flex;position:absolute;inset:0}.project-source-links{gap:12px;display:flex}.visual-project-number{z-index:4;color:#d2dcc1;font:9px var(--font-mono);letter-spacing:1px;position:absolute;top:18px;left:22px}.project-notes .visual-project-number,.project-chess .visual-project-number{color:#68735e}.visual-label{z-index:4;color:#bac7b3;font:7px var(--font-mono);letter-spacing:1px;align-items:center;gap:6px;display:flex;position:absolute;top:19px;right:20px}.visual-label>span{background:#c8d895;border-radius:50%;width:4px;height:4px}.project-goose .visual-label{color:#4e5947;background:#f5f3e6ed;border-radius:2px;padding:8px 9px;font-size:6px;top:17px;right:17px}.project-goose .visual-project-number{color:#fff;text-shadow:0 1px 5px #0008}.project-image-wrap{transition:transform .6s cubic-bezier(.2,.6,.2,1);position:absolute;inset:45px 25px 65px}.project-image{object-fit:contain}.project-robot .project-image-wrap{border:1px solid #9dac974d;border-radius:5px;inset:47px 43px 67px;overflow:hidden;transform:perspective(900px)rotateY(-7deg)rotateX(3deg)rotate(-3deg);box-shadow:10px 20px 40px #071c1a66}.project-robot .project-image{object-fit:cover}.project-robot .project-visual:hover .project-image-wrap{transform:perspective(900px)rotateY(0)rotateX(0)rotate(0)scale(1.02)}.project-goose .project-image-wrap{inset:0}.project-goose .project-image{object-fit:cover;filter:brightness(.87)saturate(.75);transition:filter .4s,transform .6s}.project-goose .project-visual:after{content:"";z-index:2;background:linear-gradient(#0000,#14251ab3);position:absolute;inset:45% 0 0}.project-goose .project-visual:hover .project-image{filter:brightness(.97)saturate(.9);transform:scale(1.04)}.visual-caption{z-index:3;color:#f1f2e8;justify-content:space-between;align-items:center;font-size:11px;display:flex;position:absolute;bottom:19px;left:22px;right:19px}.visual-arrow{border:1px solid #f2f2e33d;border-radius:50%;place-items:center;width:29px;height:29px;transition:background .2s;display:grid}.project-visual:hover .visual-arrow{background:#f7f6f029}.project-notes .visual-caption,.project-chess .visual-caption,.project-general .visual-caption{color:#506247}.project-notes .visual-arrow,.project-chess .visual-arrow,.project-general .visual-arrow{border-color:#8e9b8155}.project-information{padding:21px 2px 0}.project-category{text-transform:uppercase;font:8px/1.7 var(--font-mono);letter-spacing:1px;color:#68715f;margin:0 0 9px}.project-title-row{justify-content:space-between;align-items:center;display:flex}.project-title-row h3{letter-spacing:-.7px;margin:0;font-size:23px;font-weight:500}.project-title-row h3 a:hover{color:var(--orange)}.project-github{color:#6d7a65;place-items:center;width:30px;height:30px;display:grid}.project-description{color:#68715f;max-width:485px;margin:12px 0 17px;font-size:12px;line-height:1.9}.project-tags{flex-wrap:wrap;gap:6px;display:flex}.project-tags span{color:#68715f;font:8px/1.3 var(--font-mono);border:1px solid #e0e2d7;border-radius:3px;padding:5px 8px}.project-detail{margin-top:18px;font-size:11px}.project-detail summary{color:#68715f;border-top:1px solid #e6e6dd;justify-content:space-between;align-items:center;width:100%;min-height:34px;padding:7px 0;list-style:none;display:flex}.project-detail summary::-webkit-details-marker{display:none}.project-detail summary:hover{color:var(--ink)}.project-detail summary svg{transition:transform .2s}.project-detail[open] summary svg{transform:rotate(180deg)}.project-detail>p{color:#68715f;margin:0;padding-block:8px;font-size:12px;line-height:1.9}.project-detail>a{align-items:center;gap:8px;padding-block:6px;font-size:11px;display:inline-flex}.workbench-note{border-block:1px solid var(--line);align-items:center;gap:15px;margin-top:48px;padding:22px 0;display:flex}.workbench-icon{color:#6e805b;background:#e9ecdf;border-radius:5px;place-items:center;width:39px;height:39px;display:grid}.workbench-note p{color:#68715f;flex:1;margin:0;font-size:11px;line-height:1.9}.workbench-note p>span{font:7px/1.6 var(--font-mono);letter-spacing:1px;text-transform:uppercase;color:#68715f;margin-bottom:2px;display:block}.workbench-note p strong{color:var(--ink);font-weight:500}.notes-preview{background:#fbfaf5;border:1px solid #e4e4d6;border-radius:6px;transition:transform .5s;position:absolute;inset:43px 42px 65px;overflow:hidden;transform:rotate(-2deg);box-shadow:0 12px 30px #6575571a}.project-visual:hover .notes-preview{transform:rotate(0)translateY(-3px)}.notes-window-bar{color:#566b49;background:#f3f3eb;border-bottom:1px solid #e8e8df;align-items:center;gap:6px;height:29px;padding-inline:12px;font-size:9px;font-weight:500;display:flex}.notes-mark{place-items:center;display:grid}.notes-window-label{font:5px var(--font-mono);color:#919783;letter-spacing:.4px;margin-left:auto}.notes-window-content{padding:19px 23px 15px}.notes-hello{font:6px var(--font-mono);text-transform:uppercase;letter-spacing:.7px;color:#999c86}.notes-window-content>p{letter-spacing:-.9px;color:#435b3c;margin:7px 0 13px;font-size:24px;line-height:1.1}.notes-window-content>p em{font-family:Georgia,serif;font-weight:400}.notes-mini-cards{gap:8px;display:flex}.notes-mini-cards>div{color:#7a816e;background:#edefe5;border:1px solid #e7e9de;border-radius:3px;flex:1;padding:9px;font-size:7px;line-height:1.5}.notes-mini-cards>div:nth-child(2){background:#f2ecdc}.notes-mini-cards>div:nth-child(3){background:#e9eee6}.notes-mini-cards>div>span{color:#5a7250;margin-bottom:3px;font-size:12px;display:block}.notes-input{color:#9ba38e;border-bottom:1px solid #d9decf;justify-content:space-between;align-items:center;margin-top:14px;padding-block:6px;font-size:7px;display:flex}.chess-terminal{background:#253b33;border:1px solid #4f6655;border-radius:6px;transition:transform .5s;position:absolute;inset:38px 47px 62px;transform:rotate(2deg);box-shadow:0 12px 30px #65755724}.project-visual:hover .chess-terminal{transform:rotate(0)translateY(-3px)}.terminal-bar{border-bottom:1px solid #4b5f4f;align-items:center;gap:4px;height:25px;padding-inline:10px;display:flex}.terminal-bar>span{background:#acba8d;border-radius:50%;width:5px;height:5px}.terminal-bar>span:nth-child(2){background:#bd9c70}.terminal-bar>span:nth-child(3){background:#788f70}.terminal-bar p{font:6px var(--font-mono);color:#aebba5;margin:0 auto}.terminal-body{padding:12px 16px}.terminal-command{font:7px var(--font-mono);color:#cfdbc3;margin:0 0 9px}.terminal-command>span{color:#b8be85;margin-right:5px}.chess-board{border:3px solid #7d926c;grid-template-columns:repeat(8,1fr);width:160px;height:160px;margin-inline:auto;display:grid}.chess-board>span{color:#273d2f;place-items:center;font-family:Georgia,serif;font-size:17px;line-height:1;display:grid}.square-light{background:#e2e4c8}.square-dark{background:#829575}.terminal-bottom{font:5px var(--font-mono);color:#afbf9c;justify-content:space-between;align-items:center;margin-top:9px;display:flex}.terminal-cursor{color:#cdd79b;margin-left:4px}.experience-section{background:#eceee5;border-block:1px solid #e4e6d9}.experience-layout{grid-template-columns:.85fr 1.25fr;gap:110px;padding-top:18px;display:grid}.experience-intro>p{color:#626d58;max-width:270px;margin-top:22px;font-size:13px;line-height:1.95}.experience-doodle{color:#abb094;margin:32px 0 0 20px;transform:rotate(-10deg)}.experience-list{border-left:1px solid #cdd3c0;padding-left:28px}.experience-item{padding-bottom:37px;position:relative}.experience-item:last-child{padding-bottom:0}.experience-dot{background:#eceee5;border:1px solid #788d68;border-radius:50%;width:7px;height:7px;position:absolute;top:4px;left:-32px;box-shadow:0 0 0 5px #eceee5}.experience-item:first-child .experience-dot{background:#7c9268}.experience-date{font:9px var(--font-mono);color:#626d58;margin:0 0 12px}.experience-item h3{letter-spacing:-.6px;margin:0 0 5px;font-size:21px;font-weight:500;line-height:1.3}.experience-role{color:#5c6b52;margin:0;font-size:11px;line-height:1.5}.experience-description{color:#626d58;max-width:530px;margin:13px 0 12px;font-size:12px;line-height:1.95}.experience-tags{color:#626d58;font:8px var(--font-mono);gap:13px;display:flex}.about-layout{grid-template-columns:1.1fr .9fr;align-items:start;gap:100px;padding-top:10px;display:grid}.about-copy>p{color:#68715f;max-width:500px;margin:24px 0 0;font-size:13px;line-height:2.1}.about-copy>p+p{margin-top:17px}.about-copy>p>em{color:#5b7052;font-family:Georgia,serif;font-size:15px}.about-copy>.text-link{margin-top:22px}.field-notes{background:#efeee4;border:1px solid #e3e2d4;border-radius:2px;margin:8px 8px 0 0;padding:24px 28px;position:relative;transform:rotate(1.5deg);box-shadow:4px 5px #ecece100}.field-notes:before{content:"";background:#deddb780;border-inline:1px dashed #c1c49b80;width:74px;height:22px;position:absolute;top:-12px;left:calc(50% - 37px);transform:rotate(-5deg)}.field-notes-top{font:7px var(--font-mono);letter-spacing:1px;color:#626d58;border-bottom:1px solid #dcded0;justify-content:space-between;padding-bottom:15px;display:flex}.field-notes-heading{color:#566947;letter-spacing:-.8px;justify-content:space-between;margin-block:19px;font:italic 24px/1.3 Georgia,serif;display:flex}.field-notes-heading>span{color:#919a79;margin-top:-7px;font-size:32px}.interest-item{color:#87946e;border-top:1px solid #dde0cf;align-items:flex-start;gap:12px;padding-block:15px;display:flex}.interest-item>svg{stroke-width:1.4px;margin-top:1px}.interest-item>div{flex:1}.interest-item h3{color:#526446;margin:0 0 4px;font-size:12px;font-weight:500}.interest-item p{color:#626d58;margin:0;font-size:10px;line-height:1.6}.interest-item>span{font:7px var(--font-mono);color:#626d58;padding-top:3px}.education-note{color:#7e8c69;border-top:1px solid #dcded0;align-items:flex-start;gap:12px;margin-top:7px;padding-top:20px;display:flex}.education-note>div{flex-direction:column;gap:4px;display:flex}.education-note strong{color:#5a6c4c;font-size:11px;font-weight:500}.education-note span{color:#626d58;font-size:9px}.train-footnote{color:#626d58;border-top:1px dashed #d3d8c3;margin:20px 0 0;padding-top:14px;font:italic 11px/1.7 Georgia,serif}.site-footer{color:#f0f0df;background:#263e31;padding-block:65px 22px}.contact-topline{color:#a5b595;justify-content:space-between;align-items:center;display:flex}.contact-topline .section-number,.contact-topline>svg{color:#b4bd8c}.contact-topline .eyebrow{letter-spacing:1.1px;font-size:8px}.contact-layout{grid-template-columns:1.15fr 1fr;align-items:center;gap:70px;padding-block:32px 65px;display:grid}.contact-layout h2{font-size:clamp(38px,4vw,58px)}.contact-layout h2 em{color:#dce2be}.contact-copy{padding-top:20px}.contact-copy>p{color:#a7b89a;margin:0 0 19px;font-size:12px;line-height:1.9}.email-row{align-items:center;gap:13px;display:flex}.email-row>a{letter-spacing:-.3px;border-bottom:1px solid #647e5c;align-items:center;gap:14px;padding-block:8px;font-size:17px;font-weight:400;display:flex}.email-row>a:hover{color:#d6dfa9}.copy-email-wrap{position:relative}.copy-email{color:#b2c19c;background:0 0;border:1px solid #576c4d;border-radius:50%;place-items:center;width:38px;height:38px;display:grid}.copy-email:hover{background:#3c5540}.copy-status{color:#bcc7a1;width:max-content;font-size:10px;position:absolute;top:47px;right:0}.footer-bottom{border-top:1px solid #4a6043;justify-content:space-between;align-items:center;gap:24px;padding-top:22px;display:flex}.footer-signature{letter-spacing:-.7px;font-size:18px;font-weight:500}.footer-signature>span{color:#c2c68c}.footer-bottom>p{color:#9dae90;margin:0;font-size:9px}.footer-links{color:#b3c1a4;align-items:center;gap:22px;font-size:10px;display:flex}.footer-links a{align-items:center;gap:5px;display:flex}.footer-links a:hover{color:#f5f5df}.footer-links .back-to-top{border:1px solid #5d7251;border-radius:50%;place-items:center;width:30px;height:30px;margin-left:5px;display:grid}@media (min-width:1500px){.hero-main{min-height:720px}.studio-stage{height:515px}}@media (max-width:1150px){.page-width{width:calc(100% - 80px)}h1{letter-spacing:-3.8px;font-size:62px}h1 em{letter-spacing:-3.5px}.hero-main{grid-template-columns:.96fr 1.1fr;gap:0;min-height:622px}.hero-description{max-width:340px;font-size:13px}.studio-stage{height:425px}.studio-topline{padding-left:12px}.studio-room-label{font-size:6px}.studio-caption{margin-inline:14px}.studio-caption h2{font-size:18px}.studio-hint{font-size:6px}.studio-object-nav button{padding-inline:7px;font-size:8px}.studio-sticker{font-size:13px;top:25px;left:10px}.project-visual{height:300px}.chess-board{width:133px;height:133px}.notes-preview{inset-inline:30px}.notes-window-content{padding:15px 18px}.notes-mini-cards>div{padding:6px}.notes-input{margin-top:8px}.chess-terminal{inset-inline:32px}.experience-layout{gap:70px}.about-layout{gap:65px}.field-notes{padding-inline:22px}.field-notes-heading{font-size:22px}.contact-layout{gap:30px}.email-row>a{font-size:14px}}@media (max-width:850px){.page-width{width:calc(100% - 56px)}.site-nav{min-height:76px}.hero-main{grid-template-columns:1fr;gap:20px;padding-top:50px;padding-bottom:28px}.hero-copy{padding-bottom:0}h1{font-size:clamp(60px,8vw,78px)}.hero-copy>.eyebrow{margin-bottom:24px}.hero-description{max-width:430px;margin-top:22px;font-size:14px}.hero-footnote{margin-top:18px}.studio{max-width:650px;margin-inline:auto}.studio-stage{height:460px}.studio-room-label{font-size:8px}.studio-sticker{font-size:16px;left:35px}.studio-object-nav button{padding-inline:11px;font-size:10px}.studio-hint{font-size:8px}.studio-caption{margin-inline:20px}.studio-caption h2{font-size:21px}.hero-baseline-note{display:none!important}.section-spacing{padding-block:75px}h2{font-size:42px}.section-aside{display:none}.project-grid{gap:42px 26px}.project-visual{height:280px}.project-robot .project-image-wrap{inset-inline:22px}.visual-label{font-size:5px;right:14px}.visual-project-number{left:14px}.visual-caption{font-size:9px;left:14px;right:14px}.project-goose .visual-label{padding-inline:5px;font-size:5px}.notes-preview{inset-inline:18px}.notes-window-content{padding-inline:14px}.notes-window-content>p{font-size:22px}.notes-mini-cards>div{font-size:6px}.notes-mini-cards{gap:4px}.notes-input{display:none}.chess-terminal{inset-inline:22px}.chess-board{width:124px;height:124px}.terminal-body{padding-inline:9px}.project-title-row h3{font-size:21px}.experience-layout{grid-template-columns:.8fr 1.2fr;gap:45px}.experience-item h3{font-size:18px}.about-layout{gap:32px}.field-notes{padding-inline:18px}.field-notes-heading{font-size:19px}.interest-item{gap:8px}.interest-item h3{font-size:10px}.interest-item p{font-size:9px}.contact-layout{grid-template-columns:1fr;gap:22px;padding-bottom:50px}.contact-copy{padding-top:0}.contact-layout h2{font-size:48px}.email-row>a{font-size:17px}.footer-bottom>p{font-size:8px}}@media (max-width:600px){.project-ragbox{grid-template-columns:minmax(0,1fr);gap:0}.project-ragbox .project-information{padding-top:18px}.project-ragbox .project-title-row h3{font-size:26px}.ragbox-preview{inset:42px 20px 65px}.ragbox-window-content{padding-inline:12px}.ragbox-pipeline{gap:7px}.ragbox-pipeline>div{padding:10px 8px}.ragbox-pipeline strong{font-size:10px}.ragbox-pipeline>div>svg{width:13px;right:7px}.page-width{width:calc(100% - 40px)}.site-nav{min-height:70px}.wordmark{gap:7px;font-size:18px}.wordmark-symbol svg{width:21px}.wordmark-dot{margin-left:-7px}.nav-links{gap:18px;font-size:10px}.nav-links>a:nth-child(2){display:none}.nav-links .nav-contact{gap:3px}.nav-contact svg{width:12px}.hero-main{gap:26px;padding-top:42px}.eyebrow{letter-spacing:1.2px;gap:9px;font-size:8px}.hero-copy>.eyebrow{margin-bottom:25px}h1{letter-spacing:-2.7px;font-size:clamp(44px,10.7vw,64px)}h1 em{letter-spacing:-2.4px}.hero-description{max-width:350px;margin-block:20px 24px;font-size:13px;line-height:1.95}.hero-actions{gap:22px}.button{gap:19px;min-height:45px;padding-inline:16px;font-size:11px}.text-link,.hero-footnote{font-size:11px}.studio{width:calc(100% + 20px);margin-left:-10px}.studio-stage{height:clamp(290px,87vw,420px)}.studio-topline{padding-inline:12px}.studio-room-label{letter-spacing:.8px;font-size:6px}.studio-controls button{width:29px;height:32px}.studio-controls svg{width:13px}.studio-sticker{font-size:12px;top:15px;left:24px}.studio-sticker svg{width:30px;height:18px}.studio-object-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;margin-bottom:6px;display:grid}.studio-object-nav button{justify-content:center;min-height:38px;padding:7px;font-size:10px}.studio-object-nav button span{font-size:7px}.studio-caption{min-height:73px;margin-inline:14px}.studio-caption h2{font-size:18px}.studio-caption p{max-width:250px;font-size:9px}.studio-hint{letter-spacing:.2px;font-size:6px}.studio-hint-desktop{display:none}.studio-hint-mobile{display:inline}.hero-baseline{padding-block:17px;font-size:7px}.hero-baseline p:first-child{font-size:9px}.section-spacing{padding-block:62px}h2{letter-spacing:-1.4px;font-size:35px}h2 em{letter-spacing:-1.1px}.section-heading-row{margin-bottom:30px;display:block}.section-heading-row>.text-link{margin-top:18px}.section-topline{gap:8px;margin-bottom:22px}.project-grid{grid-template-columns:1fr;gap:36px}.project-visual{height:310px}.project-robot .project-image-wrap{inset:42px 28px 64px}.visual-project-number{font-size:8px;left:19px}.visual-label{font-size:6px;right:19px}.visual-caption{font-size:10px;left:19px;right:19px}.project-goose .visual-label{font-size:6px}.project-information{padding-top:18px}.project-title-row h3{font-size:23px}.project-category{font-size:7px}.project-description{margin-top:10px;font-size:12px}.project-tags span{font-size:7px}.notes-preview{inset:40px 27px 64px}.notes-window-content{padding:17px 20px}.notes-window-content>p{font-size:26px}.notes-mini-cards>div{padding:7px;font-size:7px}.notes-input{margin-top:12px;display:flex}.chess-terminal{inset:38px 30px 62px}.chess-board{width:141px;height:141px}.terminal-body{padding-inline:14px}.terminal-command{font-size:6px}.workbench-note{gap:12px;margin-top:32px}.workbench-note p{font-size:10px}.workbench-icon{width:32px;height:36px}.experience-layout{grid-template-columns:1fr;gap:33px;padding-top:6px}.experience-intro>p{max-width:310px;margin-top:16px;font-size:12px}.experience-doodle{display:none}.experience-list{margin-left:4px;padding-left:23px}.experience-dot{left:-27px}.experience-item h3{font-size:20px}.experience-item{padding-bottom:32px}.experience-date{font-size:8px}.experience-description{font-size:11px}.experience-role{font-size:10px}.experience-section .section-topline>a{gap:5px;font-size:9px}.about-layout{grid-template-columns:1fr;gap:40px;padding-top:0}.about-copy>p{font-size:12px;line-height:2.05}.field-notes{margin:0 5px;padding:23px 24px}.field-notes-heading{font-size:25px}.interest-item{gap:13px}.interest-item h3{font-size:12px}.interest-item p{font-size:10px}.contact-topline .eyebrow{letter-spacing:.8px;gap:8px;font-size:6px}.contact-topline>svg{width:24px}.site-footer{padding-top:40px}.contact-layout{padding-block:26px 42px}.contact-layout h2{font-size:37px}.contact-copy>p{font-size:11px}.email-row{gap:9px}.email-row>a{gap:8px;font-size:15px}.copy-email{width:33px;height:33px}.copy-email svg{width:15px}.footer-bottom{flex-wrap:wrap;gap:20px}.footer-signature{font-size:17px}.footer-bottom>p{order:3;width:100%;margin-top:-5px}.footer-links{gap:15px;font-size:9px}.footer-links .back-to-top{width:27px;height:27px;margin-left:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
