*,: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:Space Grotesk,system-ui,sans-serif;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}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.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}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-4{top:1rem}.z-50{z-index:50}.mt-2{margin-top:.5rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-4{height:1rem}.h-9{height:2.25rem}.h-full{height:100%}.min-h-\[80px\]{min-height:80px}.w-10{width:2.5rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-full{width:100%}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-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-input{border-color:hsl(var(--input))}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:#000c}.bg-destructive{background-color:hsl(var(--destructive))}.bg-muted{background-color:hsl(var(--muted))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.p-1{padding:.25rem}.p-6{padding:1.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}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-4{padding-bottom:1rem}.pt-0{padding-top:0}.text-center{text-align:center}.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}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-none{line-height:1}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.underline-offset-4{text-underline-offset:4px}.opacity-70{opacity:.7}.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)}.outline{outline-style:solid}.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,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.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-200{animation-duration:.2s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}@font-face{font-family:Space Grotesk;font-weight:300 700;font-style:normal;font-display:swap;src:url(/fonts/space-grotesk.woff2) format("woff2"),url(/fonts/space-grotesk.ttf) format("truetype")}:root{color-scheme:dark;font-family:Space Grotesk,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--page: #15191c;--surface: #20292e;--surface-soft: #28343a;--ink: #f0f4f2;--ink-muted: #b4c3c7;--muted: 201 18% 15%;--accent-color: #b9f883;--accent-ink: #162319;--line: #43535b;--selected: #304236;--background: 206 14% 10%;--foreground: 150 15% 95%;--card: 201 18% 15%;--card-foreground: 150 15% 95%;--popover: 201 18% 15%;--popover-foreground: 150 15% 95%;--primary: 92 89% 74%;--primary-foreground: 134 24% 11%;--secondary: 201 18% 15%;--secondary-foreground: 150 15% 95%;--muted-foreground: 193 15% 74%;--accent: 137 16% 22%;--accent-foreground: 150 15% 95%;--destructive: 5 90% 78%;--destructive-foreground: 206 14% 10%;--border: 200 15% 31%;--input: 200 15% 31%;--ring: 92 89% 74%;--radius: .375rem;background:var(--page);color:var(--ink)}*,*:before,*:after{box-sizing:border-box}html{min-width:320px;scroll-behavior:auto;scroll-padding-top:24px}body{margin:0;min-width:320px;background:var(--page);color:var(--ink);font:17px/1.6 Space Grotesk,sans-serif}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}a{color:inherit;text-underline-offset:5px}a:hover{text-decoration-thickness:2px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:550;letter-spacing:-.035em;line-height:1.08;text-wrap:balance}h1{font-size:clamp(42px,5.4vw,74px)}h2{font-size:clamp(30px,3.6vw,48px)}h3{font-size:24px}p{color:var(--ink-muted)}svg{flex-shrink:0}img{display:block;max-width:100%;height:auto}::-moz-selection{background:var(--accent-color);color:var(--accent-ink)}::selection{background:var(--accent-color);color:var(--accent-ink)}:focus-visible{outline:3px solid var(--accent-color)!important;outline-offset:5px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.content-width,.header-inner{width:min(1280px,calc(100% - 10vw));margin-inline:auto}.site-main{outline:none;min-height:65vh}.skip-link{position:absolute;top:-100px;left:20px;z-index:100;padding:12px 18px;background:var(--accent-color);color:var(--accent-ink);font-weight:600}.skip-link:focus{top:8px}.site-header{position:relative;z-index:20;background:var(--page)}.header-inner{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:26px}.wordmark{font-size:21px;font-weight:600;letter-spacing:-.04em;text-decoration:none;white-space:nowrap}.wordmark span{color:var(--accent-color)}.desktop-nav,.header-actions{display:flex;align-items:center;gap:24px}.nav-link{font-size:14px;text-decoration:none;min-height:44px;display:flex;align-items:center}.nav-link.active{color:var(--accent-color);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}.nav-link:hover{color:var(--accent-color)}.mobile-menu-trigger{display:none}.mobile-sheet{background:var(--surface);color:var(--ink);width:min(370px,calc(100% - 24px));padding:65px 26px 30px;overflow-y:auto;border-color:var(--line)}.mobile-sheet h2{font-size:26px;line-height:1.2}.mobile-sheet nav{display:grid;margin-top:28px}.mobile-sheet nav a{min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:19px;text-decoration:none}.mobile-sheet nav a[aria-current]{color:var(--accent-color)}.mobile-sheet nav svg{width:20px;height:20px}.mobile-sheet>button{min-height:44px;min-width:44px}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:48px;height:auto;padding:12px 20px;border-radius:6px;border:0;font-size:15px;font-weight:600;text-decoration:none;line-height:1.4;white-space:normal}.button svg,.text-link svg,.preview-heading svg{width:19px;height:19px;flex:none}.button-primary{background:var(--accent-color);color:var(--accent-ink)}.button-primary:hover{background:#a7e672;color:var(--accent-ink)}.button-secondary,.button-outline{background:var(--surface);color:var(--ink)}.button-secondary:hover,.button-outline:hover{background:var(--surface-soft);color:var(--ink)}.button:disabled{cursor:wait;opacity:.65}.button-note{display:block;font-size:12px;font-weight:400;margin-top:4px}.text-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;text-decoration:underline;color:var(--ink);font-size:15px}.text-link:hover{color:var(--accent-color)}.text-button{color:var(--accent-color);min-height:44px;text-decoration:underline;background:none;border:0;padding:0}.page{padding-block:45px 75px}.page-heading{margin-bottom:52px;max-width:880px}.page-heading>p{margin-top:24px;font-size:19px;max-width:62ch}.narrow-page{max-width:900px}.signal-hero{display:grid;grid-template-columns:1.25fr .75fr;gap:36px 7%;align-items:center;padding-block:38px 44px;position:relative}.hero-copy h1{font-size:clamp(48px,5.5vw,78px);white-space:normal}.hero-specialization{font-size:24px;line-height:1.3;color:var(--accent-color);margin-top:20px}.hero-summary{font-size:19px;max-width:48ch;margin-top:22px}.hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:28px}.hero-portrait-composition{width:100%;max-width:330px;justify-self:end}.hero-portrait{border-radius:12px;width:100%;aspect-ratio:1;-o-object-fit:cover;object-fit:cover}.hero-portrait-composition figcaption{display:flex;align-items:start;justify-content:space-between;gap:16px;padding-top:14px;font-size:13px;color:var(--ink-muted)}.hero-portrait-composition strong{font-weight:500;color:var(--ink)}.home-preview{grid-column:1/-1;margin-top:10px}.preview-heading{display:flex;align-items:baseline;justify-content:space-between;gap:25px;margin-bottom:15px}.preview-heading h2{font-size:22px;letter-spacing:-.02em;line-height:1.3}.preview-heading h2 a{text-decoration:none}.preview-heading svg{display:inline-block;vertical-align:middle;margin-left:8px}.preview-heading>p{font-size:12px;max-width:31ch;text-align:right}.preview-tab-list{height:auto;display:flex;justify-content:start;flex-wrap:wrap;gap:4px;background:none;padding:0;margin-bottom:12px}.preview-tab-list button{min-height:44px;padding:10px 17px;color:var(--ink-muted);font-size:14px;font-weight:500;border-radius:6px;box-shadow:none!important}.preview-tab-list button[data-state=active]{background:var(--surface);color:var(--accent-color)}.preview-panel{margin-top:0;background:var(--surface);padding:24px;border-radius:10px}.fragment-trace{display:grid;grid-template-columns:160px minmax(0,1fr);align-items:center;gap:32px}.source-sheet{background:#e1e5df;color:#21312b;padding:13px;border-radius:5px;font-size:11px}.sheet-title{font-weight:600;margin-bottom:13px}.glyph-observations{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:12px}.glyph-observations span{border:1px solid #728778;font-size:13px;padding:0 3px;line-height:1.4}.sheet-row{border-bottom:1px solid #a7b6a9;padding-block:4px;font-size:10px}.sheet-caption{display:block;margin-top:10px;font-size:11px;font-weight:600}.trace-stations{display:grid;grid-template-columns:1fr 20px 1fr 20px 1fr;align-items:center;gap:20px}.trace-stations strong{font-size:18px;line-height:1.3;font-weight:500;display:block}.trace-stations p{margin-top:8px;font-size:13px}.trace-stations>svg{width:20px;height:20px;color:var(--accent-color)}.diagnostic-conclusion{margin-top:17px;font-size:13px;max-width:100ch}.budget-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:50px;min-height:161px;align-items:center}.budget-label{display:flex;justify-content:space-between;gap:16px;font-size:14px}.budget-label span{color:var(--ink-muted)}.span-blocks{display:grid;grid-template-columns:repeat(22,1fr);gap:4px;margin-block:20px 12px}.span-blocks span{height:32px;border-radius:2px;background:var(--accent-color)}.span-blocks .beyond-budget{background:#d59e67}.span-budget p,.bounded-view p{font-size:14px;margin-top:10px}.view-relationship{display:flex;gap:10px;align-items:center;margin-top:16px;font-size:13px;color:var(--accent-color)}.view-relationship svg{width:17px}.section-block,.project-section,.case-section{margin-top:90px}.section-heading-row{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:36px}.section-heading-row p{max-width:38ch}.section-heading-row h2{max-width:21ch}.featured-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;align-items:stretch}.project-card{min-width:0}.is-featured{border-top:2px solid var(--line);padding-top:24px}.project-sketch{background:var(--surface);border-radius:8px;padding:30px 20px 17px;min-height:175px;display:flex;flex-direction:column;justify-content:center;gap:22px}.project-sketch>div{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:10px}.sketch-step{display:inline-flex;align-items:center;gap:10px}.sketch-step>span{padding:9px 10px;background:var(--page);border-radius:4px;font-size:14px}.sketch-step>svg{color:var(--accent-color);width:17px;height:17px}.project-sketch figcaption{font-size:11px;color:var(--ink-muted);text-align:center}.project-card h3{font-size:30px;margin-top:24px;margin-bottom:10px}.project-category{font-size:13px;color:var(--accent-color);margin-bottom:15px}.project-card-copy>p:not(.project-category){font-size:16px;max-width:65ch}.tag-list{list-style:none;padding:0;margin:20px 0 0;display:flex;gap:7px 12px;flex-wrap:wrap}.tag-list li{color:var(--ink-muted);font-size:12px}.tag-list li:not(:last-child):after{content:" /";margin-left:10px;color:var(--line)}.project-card-actions{margin-top:18px}.project-achievement{color:var(--accent-color);margin-top:15px}.link-status{font-size:13px;color:var(--ink-muted)}.home-experience,.career-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:70px;align-items:start}.home-experience h2{max-width:10ch;margin-bottom:24px}.experience-list{list-style:none;padding:0;margin:0;display:grid;gap:34px}.experience-item{display:grid;grid-template-columns:145px minmax(0,1fr);gap:24px}.experience-date{color:var(--ink-muted);font-size:13px;font-variant-numeric:tabular-nums}.experience-item h3{font-size:24px}.experience-org{color:var(--ink);margin:9px 0;font-size:15px}.experience-item p:last-child{color:var(--ink-muted);font-size:15px}.overlap-note{margin-top:30px;font-size:13px;max-width:78ch}.earlier-roles{margin-top:90px;padding-top:35px;border-top:1px solid var(--line)}.capability-list{display:grid}.capability-group{padding-block:30px;display:grid;grid-template-columns:.8fr 1.2fr;gap:65px;border-top:1px solid var(--line)}.capability-copy :is(h2,h3){font-size:26px}.capability-copy p{margin-top:14px;font-size:15px}.capability-items{list-style:none;padding:0;margin:0;display:grid;gap:20px}.capability-items li{display:grid;gap:5px}.capability-items li>span{color:var(--ink);font-size:16px}.capability-items a{display:inline-flex;align-items:center;width:-moz-fit-content;width:fit-content;gap:8px;font-size:12px;color:var(--ink-muted);min-height:28px}.capability-items svg{width:13px;height:13px}.capability-list-compact{grid-template-columns:1fr 1fr;gap:35px 70px}.capability-list-compact .capability-group{display:block;border:0;padding:0 0 0 24px;position:relative}.capability-list-compact .capability-group:before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;border-radius:50%;background:var(--accent-color)}.capability-list-compact .capability-copy :is(h2,h3){font-size:23px}.capability-list-compact .capability-copy p{display:none}.capability-list-compact .capability-items{margin-top:18px;gap:14px}.capability-list-compact .capability-items li>span{font-size:14px}.project-tools{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-top:30px}.project-filters{width:100%}.filter-group{display:flex;height:auto;justify-content:start;flex-wrap:wrap;gap:7px;padding:0;background:none}.filter-group button{min-height:44px;font-weight:400;border-radius:5px;color:var(--ink-muted);background:var(--surface);padding:9px 13px;box-shadow:none!important}.filter-group button[data-state=active]{color:var(--accent-ink);background:var(--accent-color)}.project-search-label{min-width:235px;display:grid;gap:7px;font-size:13px}.project-search-label input{height:46px;border-color:var(--line);background:var(--surface)}.results-count{margin:20px 0;font-size:13px}.project-grid{display:grid;gap:0}.archive-project{border-top:1px solid var(--line);padding:27px 0;display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:35px;align-items:center}.archive-project h3{margin:0 0 9px;font-size:24px}.archive-project .project-card-copy>p:not(.project-category){font-size:15px}.archive-project .project-category{margin-bottom:9px}.archive-project .tag-list{margin-top:12px}.archive-project .project-card-actions{margin:0}.empty-state{padding:30px;margin-top:20px;background:var(--surface);border-radius:8px}.empty-state h3{font-size:24px;margin-bottom:14px}.empty-state .text-button{margin-top:14px}.section-end-link{margin-top:45px}.case-back{margin-bottom:30px}.case-heading{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;margin-bottom:32px}.case-heading h1{font-size:clamp(40px,4.7vw,66px)}.case-proposition{font-size:23px;margin-top:20px;max-width:28ch}.case-opening h2{font-size:21px;margin-bottom:10px}.case-opening h2:not(:first-child){margin-top:24px}.case-opening p{font-size:15px}.case-heading .tag-list{margin-top:22px}.case-preview{margin-top:32px}.case-section h2{margin-bottom:25px}.case-section>p{max-width:85ch;margin-bottom:18px}.case-two-column{display:grid;grid-template-columns:1fr 1fr;gap:65px}.case-two-column h3{margin-bottom:15px}.engineering-note-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}.engineering-note h3{font-size:24px;margin-bottom:16px}.engineering-note p{font-size:15px}.case-result{display:grid;grid-template-columns:.65fr 1.35fr;gap:65px}.case-result strong{color:var(--accent-color);font-size:28px;font-weight:500}.case-result p+p{margin-top:20px}.status-note{margin-top:60px;padding:24px 0;border-block:1px solid var(--line);color:var(--ink);font-size:16px;max-width:90ch}.privacy-note{font-size:13px;margin-top:20px}.case-evidence{margin-top:45px;display:flex;gap:30px;align-items:start;justify-content:space-between}.case-evidence h2{font-size:24px;margin-bottom:15px}.case-evidence p{max-width:65ch;font-size:14px}.evidence-actions{display:flex;flex-wrap:wrap;gap:12px}.architecture{margin-top:75px}.architecture-heading{display:flex;justify-content:space-between;align-items:baseline;gap:30px}.architecture-heading h2{font-size:34px}.architecture-heading p{font-size:13px;white-space:nowrap}.architecture-intro{font-size:14px;margin-top:18px;max-width:80ch}.architecture-map{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 38px;margin-top:26px;isolation:isolate}.architecture-links{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:-1}.architecture-links path{fill:none;stroke:var(--line);stroke-width:2;vector-effect:non-scaling-stroke;transition:stroke .2s}.architecture-links path.relationship-selected{stroke:var(--accent-color)}.links-mobile{display:none}.architecture-node{min-width:0;height:auto;min-height:112px;display:flex;align-items:center;justify-content:start;gap:16px;padding:22px;border:2px solid transparent;background:var(--surface);border-radius:8px;text-align:left;white-space:normal;color:var(--ink);transition:background .18s,border-color .18s}.architecture-node:hover{background:var(--surface-soft);color:var(--ink)}.architecture-node>svg{width:27px!important;height:27px!important;color:var(--ink-muted)}.architecture-node strong{display:block;font-size:16px;font-weight:500;line-height:1.3}.architecture-node small{display:block;color:var(--ink-muted);font-size:12px;margin-top:7px}.architecture-node[aria-pressed=true]{background:var(--selected);border-color:var(--accent-color)}.architecture-node[aria-pressed=true]>svg{color:var(--accent-color)}.architecture-detail{padding:28px;background:var(--surface);border-radius:10px;margin-top:25px}.architecture-detail h3{font-size:25px;margin-bottom:20px}.architecture-detail dl{display:grid;grid-template-columns:.8fr 1fr 1.2fr;gap:35px;margin:0}.architecture-detail dt{font-size:13px;color:var(--accent-color);margin-bottom:8px}.architecture-detail dd{margin:0;font-size:14px;color:var(--ink-muted)}.phase-appendix{margin-top:28px}.phase-appendix>div{border-color:var(--line)}.phase-appendix h3{font-size:18px;font-weight:500;letter-spacing:-.015em}.phase-appendix h3>button{text-align:left;min-height:64px;gap:20px;font-weight:500}.phase-appendix p{margin-bottom:12px;max-width:90ch}.phase-appendix ol{list-style:decimal;padding-left:25px;color:var(--ink-muted)}.phase-appendix li{margin-top:9px}.stage-count{color:var(--ink-muted);font-size:12px;white-space:nowrap;margin-left:auto}.workflow-figure{margin-top:25px}.workflow-figure figcaption{display:grid;gap:8px;margin-bottom:28px}.workflow-figure figcaption strong{font-size:21px}.workflow-figure figcaption span{font-size:13px;color:var(--ink-muted)}.workflow-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.workflow-step{background:var(--surface);padding:24px;border-radius:7px}.workflow-step h3{font-size:21px;margin-bottom:13px}.workflow-step p{font-size:14px}.constraint-list{padding-left:22px;color:var(--ink-muted);max-width:90ch;list-style:disc}.constraint-list li{margin-bottom:16px}.about-opening{display:grid;grid-template-columns:.75fr 1.25fr;gap:75px;align-items:start}.about-portrait{border-radius:12px;max-width:330px;aspect-ratio:1;-o-object-fit:cover;object-fit:cover}.about-opening h2{font-size:30px;margin-bottom:20px}.prose-section p+p{margin-top:20px}.prose-section p{max-width:75ch}.education-panel{display:grid;grid-template-columns:.7fr 1.3fr;gap:60px;margin-block:75px;padding-block:30px;border-block:1px solid var(--line)}.education-panel p{margin-bottom:12px}.education-degree{font-size:24px;color:var(--ink)}.recognition-list{display:grid;grid-template-columns:1fr 1fr;gap:50px;list-style:none;padding:0;margin-top:28px}.recognition-list strong{color:var(--accent-color);font-weight:500}.recognition-list p{font-size:15px;margin-top:12px}.service-topic-list{list-style:none;padding:0;display:grid;gap:0;margin-top:28px}.service-topic-list li{padding:24px 0;border-top:1px solid var(--line);font-size:21px}.prose-section h2{margin-bottom:24px}.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;align-items:start}.contact-direct h2,.contact-form-panel h2{font-size:27px;margin-bottom:22px}.email-address{font-size:clamp(18px,2vw,25px);color:var(--accent-color);overflow-wrap:anywhere}.contact-direct>p{margin-top:22px;margin-bottom:18px}.contact-direct .text-link{display:flex;width:-moz-fit-content;width:fit-content}.contact-form-panel>p{font-size:14px;margin-bottom:25px}.contact-form-panel form{display:grid;gap:21px}.form-field{display:grid;gap:10px}.form-field label{font-size:15px;font-weight:500}.form-field label span{color:var(--accent-color)}.form-field input,.form-field textarea{width:100%;min-height:48px;height:auto;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);padding:13px 14px;font-size:16px}.form-field textarea{min-height:160px;resize:vertical}.form-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.form-submit{justify-self:start;min-width:165px}.form-feedback{min-height:26px;font-size:14px}.feedback-error{color:#ffb9b1}.feedback-success{color:var(--accent-color)}.site-footer{padding-top:80px}.footer-invitation{display:flex;align-items:end;justify-content:space-between;gap:60px;padding-block:30px 65px}.footer-invitation h2{max-width:14ch}.footer-invitation>div>a{font-size:17px;overflow-wrap:anywhere}.footer-invitation p{font-size:13px;margin-top:15px}.footer-social{display:flex;flex-wrap:wrap;gap:20px;margin-top:15px;font-size:14px}.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;padding-block:25px 35px;font-size:12px;color:var(--ink-muted)}.footer-name{text-decoration:none}.footer-links{display:flex;gap:22px}.not-found h1,.not-found p{margin-bottom:25px}@media (max-width: 1100px){.desktop-nav{gap:17px}.nav-link{font-size:13px}.header-inner{gap:20px}.header-resume{padding-inline:15px}.signal-hero{-moz-column-gap:40px;column-gap:40px}.hero-copy h1{font-size:59px}.trace-stations{gap:13px}.trace-stations strong{font-size:16px}.architecture-node{padding:18px}}@media (max-width: 900px){.architecture-map{grid-template-columns:repeat(2,minmax(0,1fr))}.links-desktop{display:none}.links-mobile{display:block}.content-width,.header-inner{width:calc(100% - 56px)}.header-inner{min-height:80px}.desktop-nav{display:none}.mobile-menu-trigger{display:inline-flex;min-height:44px;height:auto;padding:10px 14px;background:var(--surface)}.mobile-menu-trigger svg{width:18px}.signal-hero{grid-template-columns:1.1fr .9fr;gap:30px}.hero-copy h1{font-size:52px}.hero-specialization{font-size:21px}.hero-summary{font-size:17px}.hero-portrait-composition{max-width:285px}.fragment-trace{grid-template-columns:130px 1fr;gap:22px}.trace-stations{grid-template-columns:1fr;gap:8px}.trace-stations>svg{display:none}.trace-stations strong{font-size:15px}.trace-stations p{font-size:12px;margin-top:3px}.featured-grid{gap:30px}.project-card h3{font-size:27px}.home-experience,.career-layout{grid-template-columns:1fr;gap:30px}.home-experience h2{max-width:100%}.capability-group{gap:35px}.case-heading{gap:30px}.architecture-heading{display:block}.architecture-heading p{margin-top:15px}.architecture-map{gap:25px}.architecture-node{display:block}.architecture-node>svg{margin-bottom:13px}.case-result{gap:35px}.contact-layout{gap:45px}.stage-count{display:none}}@media (max-width: 600px){.content-width,.header-inner{width:calc(100% - 40px)}body{font-size:16px}.header-inner{min-height:72px}.wordmark{font-size:20px}.header-resume{display:none}.header-actions{gap:0}.mobile-menu-trigger{font-size:13px}.mobile-menu-trigger svg{display:none}.page{padding-block:28px 45px}.page-heading{margin-bottom:35px}.page-heading h1{font-size:36px}.page-heading>p{font-size:16px;margin-top:20px}h2{font-size:32px}.signal-hero{display:block;padding-block:25px 25px}.hero-copy h1{font-size:40px;max-width:210px;min-height:94px}.hero-portrait-composition{position:absolute;top:25px;right:0;width:104px}.hero-portrait{border-radius:8px}.hero-portrait-composition figcaption{display:none}.hero-specialization{font-size:21px;margin-top:10px}.hero-summary{font-size:16px;margin-top:16px;max-width:100%}.hero-actions{margin-top:22px;gap:9px}.hero-actions .button{padding-inline:12px;font-size:13px;gap:9px}.hero-actions svg{width:17px;height:17px}.home-preview{margin-top:34px}.preview-heading{display:block;margin-bottom:15px}.preview-heading h2{font-size:21px;max-width:25ch}.preview-heading>p{text-align:left;font-size:11px;margin-top:9px;max-width:none}.preview-tab-list{flex-wrap:nowrap;gap:2px}.preview-tab-list button{font-size:12px;padding:9px 12px;white-space:normal;min-height:44px}.preview-panel{padding:16px}.fragment-trace{grid-template-columns:85px minmax(0,1fr);gap:16px;align-items:start}.source-sheet{padding:9px;font-size:10px;margin-top:4px}.sheet-title{font-size:9px;margin-bottom:10px}.glyph-observations{gap:3px}.glyph-observations span{font-size:10px;padding:0 2px}.sheet-row{display:none}.sheet-caption{font-size:9px}.trace-stations{gap:13px}.trace-stations strong{font-size:14px}.trace-stations p{font-size:12px;line-height:1.5}.diagnostic-conclusion{font-size:11px;line-height:1.55;margin-top:16px}.budget-layout{display:block;min-height:260px}.budget-label{font-size:12px}.span-blocks{gap:3px}.span-blocks span{height:25px}.bounded-view{margin-top:24px}.span-budget p,.bounded-view p{font-size:13px}.view-relationship{font-size:11px;gap:6px}.section-block,.project-section,.case-section{margin-top:55px}.section-heading-row{display:block;margin-bottom:25px}.section-heading-row .text-link{margin-top:15px;font-size:13px}.featured-grid{display:block}.featured-grid .is-featured:nth-child(2){margin-top:35px}.project-sketch{min-height:150px;padding:24px 15px 16px}.sketch-step>span{font-size:12px}.sketch-step,.project-sketch>div{gap:7px}.project-card h3{font-size:28px;margin-top:21px}.project-card-copy>p:not(.project-category){font-size:15px}.project-card-actions{margin-top:12px}.experience-item{grid-template-columns:1fr;gap:8px}.experience-item h3{font-size:23px}.experience-item p:last-child{font-size:14px}.experience-date{font-size:12px}.experience-list{gap:30px}.overlap-note{font-size:12px}.earlier-roles{margin-top:55px}.career-layout h2{font-size:27px}.capability-list-compact{grid-template-columns:1fr;gap:32px}.capability-group{grid-template-columns:1fr;gap:24px;padding-block:26px}.capability-copy :is(h2,h3){font-size:26px}.capability-copy p{font-size:14px}.capability-items li>span{font-size:15px}.project-tools{display:block;margin-top:22px}.filter-group{gap:6px}.filter-group button{padding:9px 11px;font-size:12px}.project-search-label{margin-top:24px;width:100%;min-width:0}.archive-project{grid-template-columns:1fr;gap:10px;padding-block:25px}.archive-project h3{font-size:24px}.archive-project .project-card-actions{margin-top:0}.empty-state{padding:22px}.case-heading{display:block}.case-heading h1{font-size:32px}.case-proposition{font-size:21px;margin-top:18px}.case-opening{margin-top:25px}.case-opening h2{font-size:20px}.case-opening p{font-size:14px}.case-back{margin-bottom:20px}.case-back .text-link{font-size:13px}.case-preview{margin-top:25px}.case-two-column{grid-template-columns:1fr;gap:30px}.case-section h2{font-size:30px}.case-section>p{font-size:15px}.engineering-note-list{grid-template-columns:1fr;gap:30px}.engineering-note h3{font-size:24px}.case-result{grid-template-columns:1fr;gap:22px}.case-result strong{font-size:25px}.status-note{margin-top:40px;font-size:14px}.case-evidence{flex-direction:column;gap:20px}.architecture{margin-top:55px}.architecture-heading h2{font-size:29px}.architecture-heading p{font-size:12px;white-space:normal}.architecture-intro{font-size:13px}.architecture-map{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 14px;margin-top:25px}.links-desktop{display:none}.links-mobile{display:block}.architecture-node{padding:16px 13px;min-height:137px}.architecture-node strong{font-size:13px;line-height:1.35}.architecture-node>svg{width:23px!important;height:23px!important;margin-bottom:12px}.architecture-node small{font-size:11px;margin-top:7px}.architecture-detail{padding:22px 19px}.architecture-detail h3{font-size:24px}.architecture-detail dl{grid-template-columns:1fr;gap:22px}.architecture-detail dd{font-size:14px}.phase-appendix h3{font-size:16px}.phase-appendix h3>button{min-height:68px}.phase-appendix p,.phase-appendix li{font-size:13px}.workflow-list{grid-template-columns:1fr 1fr;gap:15px}.workflow-step{padding:18px}.workflow-step h3{font-size:19px}.workflow-step p{font-size:13px}.about-opening{grid-template-columns:1fr;gap:30px}.about-portrait{max-width:225px}.about-opening h2{font-size:28px}.education-panel{grid-template-columns:1fr;gap:25px;margin-block:50px}.education-panel h2{font-size:28px}.education-degree{font-size:22px}.recognition-list{grid-template-columns:1fr;gap:28px}.service-topic-list li{font-size:20px}.contact-layout{grid-template-columns:1fr;gap:40px}.contact-direct h2,.contact-form-panel h2{font-size:25px}.contact-form-panel form{gap:22px}.email-address{font-size:20px}.site-footer{padding-top:45px}.footer-invitation{display:block;padding-block:20px 45px}.footer-invitation h2{font-size:38px;max-width:13ch}.footer-invitation>div{margin-top:25px}.footer-invitation>div>a{font-size:14px}.footer-social{font-size:13px}.footer-bottom{display:grid;gap:18px;font-size:12px}.footer-links{gap:25px}}@media (max-width: 360px){.wordmark{font-size:18px}.hero-copy h1{max-width:180px;font-size:35px}.hero-portrait-composition{width:85px}.hero-specialization{font-size:19px}.hero-actions .button{font-size:12px;padding-inline:10px;gap:8px}.case-heading h1{font-size:28px}.architecture-node{padding:14px 11px;min-height:145px}.architecture-node strong{font-size:12px}.preview-tab-list button{font-size:11px;padding-inline:9px}.fragment-trace{grid-template-columns:67px minmax(0,1fr);gap:12px}.source-sheet{padding:7px}.trace-stations strong{font-size:13px}.trace-stations p{font-size:11px}.footer-invitation h2{font-size:34px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.hero-current-role{margin-top:24px;font-size:14px;color:var(--ink-muted)}.featured-grid .is-featured{display:flex;flex-direction:column}.featured-grid .project-card-copy{flex:1}.featured-grid .project-sketch{height:185px;flex:none;padding:22px 14px 16px}.featured-grid .project-card h3{font-size:clamp(24px,2.2vw,30px)}.featured-grid .is-featured:nth-child(2){margin-top:0}.conveyor-sketch{width:100%;height:110px;color:var(--accent-color)}.engineering-approach{display:grid;grid-template-columns:.7fr 1.3fr;gap:70px}.approach-observations{display:grid;gap:42px}.approach-observation h3{font-size:28px;max-width:25ch}.approach-observation p{margin-block:16px 18px;max-width:60ch}.capability-summary{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:baseline}.capability-evidence{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:24px}.capability-evidence .text-link{font-size:14px;min-height:44px}#more-projects-title{scroll-margin-top:110px}@media (max-width: 1100px) and (min-width: 601px){.featured-grid{grid-template-columns:1fr;gap:40px}.featured-grid .is-featured{display:grid;grid-template-columns:.9fr 1.1fr;gap:0 28px}.featured-grid .project-sketch{grid-row:span 2;height:100%;min-height:220px}.featured-grid .project-card h3{margin-top:0}.featured-grid .project-card-actions{grid-column:2}}@media (max-width: 900px){.engineering-approach{grid-template-columns:1fr;gap:30px}}@media (max-width: 600px){.featured-grid{display:grid;grid-template-columns:1fr;gap:36px}.featured-grid .project-card h3{font-size:28px}.hero-current-role{font-size:13px;max-width:40ch;margin-top:20px}.hero-specialization{max-width:26ch}.approach-observation h3{font-size:26px}.approach-observation p{font-size:15px}.approach-observations{gap:32px}.capability-summary{display:block;font-size:15px}.capability-summary .text-link{margin-top:12px}}.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))}.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}.hover\:opacity-100:hover{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}@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-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.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-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.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}.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}.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\]\: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}@media (min-width: 640px){.sm\:max-w-sm{max-width:24rem}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:text-left{text-align:left}}@media (min-width: 768px){.md\:text-sm{font-size:.875rem;line-height:1.25rem}}.\[\&\[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))}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}
