@font-face{font-family:inter;src:url(../media/inter_latin_wght_normal-s.p.0gsaq8ukbf34m.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:inter Fallback;src:local(Arial);ascent-override:89.79%;descent-override:22.36%;line-gap-override:0.0%;size-adjust:107.89%}.inter_14dddf9b-module__JNtDAG__className{font-family:inter,inter Fallback}.inter_14dddf9b-module__JNtDAG__variable{--font-inter:"inter", "inter Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid}}}@layer theme{:root,:host{--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-inter);--default-mono-font-family:var(--font-inter)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);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}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.sticky{position:sticky}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.grid{display:grid}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.lowercase{text-transform:lowercase}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#161616;--sidebar:#1a1a1a;--surface:#1d1d1d;--surface-raised:#232323;--text-primary:#f6f6f6;--text-secondary:#c7c7c7;--muted:#858585;--border:#303030;--border-strong:#444;--accent:#46faac;--accent-ink:#09271a;--accent-soft:var(--accent)}@supports (color:color-mix(in lab, red, red)){:root{--accent-soft:color-mix(in srgb, var(--accent) 16%, transparent)}}:root{--focus:var(--accent);--radius-compact:.375rem;--radius-panel:.625rem;--motion-fast:.14s ease;--sidebar-width:16rem;--max-width:76rem;--ink:var(--text-primary);--charcoal:var(--text-secondary);--line:var(--border);--warm:var(--canvas);--paper:var(--surface);--cobalt:var(--accent);--cobalt-dark:var(--accent)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{background:var(--warm);min-width:20rem;color:var(--ink);font-family:var(--font-inter), Arial, sans-serif;margin:0;line-height:1.5}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.site-shell{min-height:100svh;overflow:clip}.site-shell__content{isolation:isolate;min-width:0;min-height:100svh;position:relative}.particle-background{z-index:0;pointer-events:none;width:100vw;height:calc(100svh - 4rem);display:block;position:fixed;inset:4rem 0 0}.route-transition__content{z-index:1;min-width:0;position:relative}.route-transition__content[data-transition-state=entering][data-transition-direction=forward]{animation:.22s cubic-bezier(.22,1,.36,1) both route-enter-forward}.route-transition__content[data-transition-state=entering][data-transition-direction=backward]{animation:.22s cubic-bezier(.22,1,.36,1) both route-enter-backward}.route-transition__content[data-transition-state=entering][data-transition-direction=neutral]{animation:.22s ease-out both route-enter-neutral}@keyframes route-enter-forward{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}@keyframes route-enter-backward{0%{opacity:0;transform:translate(-1rem)}to{opacity:1;transform:translate(0)}}@keyframes route-enter-neutral{0%{opacity:0}to{opacity:1}}.destination-navigator{border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding-block:1.5rem clamp(3rem,7vw,5rem);display:grid}.destination-navigator__link{color:var(--text-secondary);grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:.55rem;font-size:.78rem;text-decoration:none;display:grid}.destination-navigator__link--next{text-align:right;grid-template-columns:minmax(0,1fr) auto auto;justify-items:end}.destination-navigator__direction{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:100;border-radius:var(--radius-compact);background:var(--text-primary);color:var(--canvas);transition:transform var(--motion-fast);padding:.7rem .9rem;font-size:.875rem;text-decoration:none;position:fixed;top:.75rem;left:.75rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.portfolio-mobile-header{z-index:50;border-bottom:1px solid var(--border);background:var(--canvas);justify-content:space-between;align-items:center;gap:1rem;min-height:4rem;padding-inline:1rem;display:flex;position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.portfolio-mobile-header{background:color-mix(in srgb, var(--canvas) 94%, transparent)}}.portfolio-mobile-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.section-wrap{width:min(calc(100% - 2rem), var(--max-width));margin-inline:auto}.portfolio-brand{color:var(--text-primary);align-items:center;gap:.7rem;font-size:.82rem;font-weight:550;text-decoration:none;display:inline-flex}.portfolio-brand:hover{color:var(--text-primary)}.portfolio-brand__mark{border-radius:var(--radius-compact);justify-content:center;align-items:center;width:6rem;height:6rem;display:flex;overflow:hidden}.portfolio-brand__logo{object-fit:contain;width:100%;height:100%}.portfolio-brand__name{letter-spacing:-.02em}.portfolio-menu-button,.portfolio-drawer__close{border:1px solid var(--border-strong);border-radius:var(--radius-compact);background:var(--surface);min-height:2.5rem;color:var(--text-primary);font:inherit;cursor:pointer;align-items:center;gap:.5rem;padding:.55rem 1.2rem;font-size:.72rem;display:flex}.portfolio-menu-button>svg,.portfolio-drawer__close>svg,.portfolio-nav__external,.contact-links a>svg,.project-links a>svg,.text-link>svg,.destination-navigator__link>svg,.resume-actions button>svg,.resume-actions a>svg,.not-found__action>svg,.breadcrumb>svg,.process-grid h2>svg{flex-shrink:0}.portfolio-sidebar{display:none}.portfolio-drawer-layer{z-index:45;grid-template-columns:minmax(0,1fr) min(22rem,100% - 1rem);display:grid;position:fixed;inset:4rem 0 0}.portfolio-drawer-layer[hidden]{display:none}.portfolio-drawer__backdrop{cursor:pointer;background:#000000a6;border:0}.portfolio-drawer{border-left:1px solid var(--border);background:var(--sidebar);padding:1rem;overflow-y:auto;box-shadow:-1rem 0 3rem #0000003d}.portfolio-drawer__close{margin:0 0 1rem auto}.portfolio-nav__panel{flex-direction:column;min-height:100%;display:flex}.portfolio-nav__identity{border-bottom:1px solid var(--border);padding:.5rem .5rem 1.5rem}.portfolio-nav__identity>p{color:var(--muted);margin:1rem 0 0;font-size:.7rem;line-height:1.55}.portfolio-nav{flex-direction:column;flex:1;padding-top:1.25rem;display:flex}.portfolio-nav__group+.portfolio-nav__group{margin-top:1.35rem}.portfolio-nav__group--contact{padding-top:2rem;margin-top:auto!important}.portfolio-nav__label{color:var(--muted);letter-spacing:.11em;text-transform:uppercase;margin:0 0 .45rem;padding-inline:.65rem;font-size:.58rem;font-weight:600}.portfolio-nav ul{margin:0;padding:0;list-style:none}.portfolio-nav__link{border-radius:var(--radius-compact);min-height:2.45rem;color:var(--muted);transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast);border:1px solid #0000;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:.5rem .65rem;font-size:.72rem;line-height:1.3;text-decoration:none;display:grid}.portfolio-nav__link:hover{background:var(--surface);color:var(--text-primary)}.portfolio-nav__link--active{border-color:var(--border-strong);background:var(--surface-raised);color:var(--text-primary)}.portfolio-nav__content{align-items:center;gap:.625rem;min-width:0;display:inline-flex}.portfolio-nav__icon{color:var(--text-secondary);transition:color var(--motion-fast);flex-shrink:0}.portfolio-nav__link:hover .portfolio-nav__icon,.portfolio-nav__link--active .portfolio-nav__icon{color:var(--accent)}.portfolio-nav__external{color:#929292;font-size:.68rem}.section-wrap{padding-block:clamp(4.25rem,9vw,8rem)}.eyebrow,.project-card__organization,.timeline__date,.hero__positioning,.case-period{color:var(--cobalt-dark);font-family:var(--font-inter), Arial, sans-serif;letter-spacing:.075em;text-transform:uppercase;margin-block:0 .5rem;margin-inline:0;font-size:.7rem;font-weight:600;line-height:1.4}.hero{border-bottom:1px solid var(--line);align-content:center;gap:2.5rem;min-height:calc(100svh - 4.25rem);display:grid}.hero__meta{justify-content:space-between;align-items:center;gap:1rem;display:flex}.hero__availability{color:var(--muted);font-family:var(--font-inter), Arial, sans-serif;margin:0;font-size:.68rem}.hero__content{max-width:61rem}.hero__positioning{max-width:37rem;color:var(--cobalt);margin-bottom:1.25rem;font-size:.73rem;line-height:1.65}h1,h2,h3,p{margin-top:0}h1,h2,h3{text-wrap:balance}h1{letter-spacing:-.075em;margin-bottom:1.35rem;font-size:clamp(2.325rem,7.5vw,5.7rem);font-weight:560;line-height:1.05}h2{letter-spacing:-.065em;max-width:20ch;margin-bottom:1rem;font-size:clamp(1.6125rem,3.9vw,3.1875rem);font-weight:560;line-height:1.05}h3{letter-spacing:-.045em;margin-bottom:.75rem;font-size:clamp(.9375rem,1.5vw,1.3125rem);font-weight:560;line-height:1.08}.hero__summary{max-width:46rem;color:var(--charcoal);margin-bottom:2rem;font-size:clamp(1.03rem,2vw,1.34rem);line-height:1.65}.contact-links,.project-links{flex-wrap:wrap;gap:.6rem;display:flex}.contact-links a,.project-links a{border:1px solid var(--ink);min-height:2.65rem;font-family:var(--font-inter), Arial, sans-serif;background:0 0;align-items:center;gap:.625rem;padding:.65rem 1.35rem;font-size:.73rem;font-weight:600;text-decoration:none;transition:background .16s,color .16s,transform .16s;display:inline-flex}.contact-links a:not(:first-child),.project-links a{gap:.5rem}.contact-links a:first-child{background:var(--ink);color:var(--paper)}.contact-links a:hover,.project-links a:hover{background:var(--cobalt);border-color:var(--cobalt);color:var(--canvas);transform:translateY(-2px)}.hero__signal{border-top:1px solid var(--line);color:var(--muted);font-family:var(--font-inter), Arial, sans-serif;flex-wrap:wrap;gap:.5rem;padding-top:1rem;font-size:.7rem;display:flex}.hero__signal span:not(:last-child):after{color:var(--cobalt);content:"+";margin-left:.5rem}.section-grid,.expertise-section,.experience-section,.process-section{border-bottom:1px solid var(--line)}.section-heading{margin-bottom:2.5rem}.section-heading__body{max-width:42rem;color:var(--muted);font-size:1rem;line-height:1.65}.section-heading__body p:last-child{margin-bottom:0}.featured-grid{border:1px solid var(--line);background:var(--line);gap:1px;display:grid}.project-card{background:var(--paper);flex-direction:column;min-width:0;padding:1.5rem;display:flex}.project-card__topline{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:2.75rem;display:flex}.project-card__organization{color:var(--muted);text-align:right}.project-card__summary,.supporting-brief>p,.contact-section>p{color:var(--muted);line-height:1.6}.project-card__summary{margin-bottom:1.5rem}.stack-list{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.stack-list li{border:1px solid var(--line);color:var(--charcoal);font-family:var(--font-inter), Arial, sans-serif;padding:.53rem .92rem;font-size:.64rem;line-height:1.25}.project-card__scale{gap:.8rem;margin-block:1.5rem;display:grid}.project-card__scale div,.scope-list div{flex-direction:column;gap:.12rem;display:flex}.project-card__scale dt,.scope-list dt{color:var(--muted);font-family:var(--font-inter), Arial, sans-serif;font-size:.65rem;line-height:1.25}.project-card__scale dd,.scope-list dd{color:var(--cobalt-dark);font-family:var(--font-inter), Arial, sans-serif;margin:0;font-size:1.25rem;font-weight:650}.text-link{color:var(--cobalt-dark);font-family:var(--font-inter), Arial, sans-serif;align-items:center;gap:.5rem;margin-top:auto;padding-top:2rem;font-size:.75rem;font-weight:650;text-decoration:none;display:inline-flex}.text-link svg{transition:transform .16s}.text-link:hover svg{transform:translate(.25rem)}.supporting-section{border-bottom:1px solid var(--line)}.supporting-grid,.expertise-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);background:var(--line);gap:1px;display:grid}.supporting-brief,.skill-group{background:var(--warm);padding:1.5rem}.supporting-brief .stack-list{margin-top:1.25rem}.skill-group h3{font-size:.825rem}.timeline{border-top:1px solid var(--line);margin:0;padding:0;list-style:none;display:grid}.timeline li{border-bottom:1px solid var(--line);gap:.75rem;padding-block:1.1rem;display:grid}.timeline h2{margin-bottom:.25rem;font-size:.78rem}.timeline li div p{color:var(--muted);margin:0;font-size:.9rem}.process-grid{background:var(--line);gap:1px;margin:0;padding:1px;list-style:none;display:grid}.process-grid li{background:var(--paper);padding:1.5rem}.process-grid span{color:var(--cobalt-dark);font-family:var(--font-inter), Arial, sans-serif;margin-bottom:2.5rem;font-size:.72rem;font-weight:600;display:block}.process-grid p{color:var(--muted);margin-bottom:0;font-size:.93rem;line-height:1.6}.contact-section h2{max-width:13ch}.contact-section>p{max-width:39rem;margin-bottom:1.5rem}.breadcrumb{color:var(--muted);font-family:var(--font-inter), Arial, sans-serif;flex-wrap:wrap;gap:.55rem;margin-bottom:clamp(3rem,8vw,6rem);font-size:.68rem;display:flex}.case-study{padding-top:clamp(3rem,7vw,6rem)}.case-hero{border-bottom:1px solid var(--line);gap:2rem;padding-bottom:clamp(3.5rem,8vw,7rem);display:grid}.case-hero h1{max-width:12ch;margin-top:1rem;margin-bottom:0;font-size:clamp(2.4rem,6.75vw,5.25rem)}.case-hero__details{max-width:34rem;color:var(--charcoal);align-self:end;font-size:clamp(1.1rem,2.1vw,1.35rem);line-height:1.6}.case-hero__details p:last-child{margin-bottom:0}.case-period{margin-top:1.5rem}.case-layout{gap:3rem;padding-block:clamp(3.5rem,8vw,7rem);display:grid}.case-main{gap:clamp(3.5rem,7vw,6.5rem);display:grid}.case-section h2{max-width:15ch;font-size:clamp(1.3875rem,3vw,2.25rem)}.case-lead{max-width:45rem;margin-bottom:0;font-size:clamp(1.1rem,2vw,1.32rem);line-height:1.65}.evidence-list,.systems-list{border-top:1px solid var(--line);gap:0;margin:0;padding:0;list-style:none;display:grid}.evidence-list li,.systems-list li{border-bottom:1px solid var(--line);padding:1rem 0;line-height:1.6}.evidence-list li:before{color:var(--cobalt);content:"↳";margin-right:.75rem}.case-sidebar{align-content:start;gap:1.5rem;display:grid}.case-sidebar__block,.project-links{border:1px solid var(--line);padding:1.25rem}.case-sidebar__block .stack-list{margin-top:.75rem}.scope-list{gap:1rem;margin:.75rem 0 0;display:grid}.project-links{align-items:stretch}.project-links a{flex:9rem;justify-content:space-between}.case-media{padding-top:0;padding-bottom:clamp(3.5rem,8vw,7rem)}.media-grid{gap:1rem;display:grid}.media-frame{border:1px solid var(--line);background:var(--paper);margin:0;padding:.75rem}.media-frame img{width:100%;height:auto;display:block}.media-frame figcaption{color:var(--muted);padding-top:.65rem;font-size:.82rem}.not-found{align-content:center;min-height:calc(100svh - 4.25rem);padding-block:5rem;display:grid}.not-found h1{max-width:11ch;font-size:clamp(2.4rem,6.75vw,4.5rem)}.not-found p:not(.eyebrow){max-width:35rem;color:var(--muted);font-size:1.12rem}.resume-page{width:min(100% - 2rem,70rem);margin:0 auto;padding-block:clamp(2rem,6vw,4rem)}.resume-page__controls{justify-content:flex-end;margin-bottom:1.25rem;display:flex}.resume-actions{flex-wrap:wrap;gap:.6rem;display:flex}.resume-actions button,.resume-actions a{border:1px solid var(--ink);background:var(--ink);min-height:2.5rem;color:var(--paper);font:600 .72rem/1 var(--font-inter), Arial, sans-serif;padding:.55rem 1.3rem;text-decoration:none}.resume-actions a{background:var(--paper);color:var(--ink)}.resume-document{border:1px solid var(--line);background:var(--paper);padding:clamp(1.5rem,5vw,4rem)}.resume-header{border-bottom:2px solid var(--ink);gap:1.5rem;padding-bottom:1.75rem;display:grid}.resume-header h1{max-width:none;margin-bottom:.45rem;font-size:clamp(1.95rem,5.25vw,3.3rem)}.resume-header__headline,.resume-contact,.resume-entry__skills,.resume-projects__organization{color:var(--muted);font-family:var(--font-inter), Arial, sans-serif;font-size:.74rem;line-height:1.55}.resume-header__headline{color:var(--cobalt-dark);margin-bottom:0;font-weight:600}.resume-contact{flex-wrap:wrap;gap:.35rem .8rem;font-style:normal;display:flex}.resume-contact>:not(:last-child):after{color:var(--line);content:"|";margin-left:.8rem}.resume-section{border-bottom:1px solid var(--line);padding-block:1.45rem}.resume-section:last-child{border-bottom:0;padding-bottom:0}.resume-section h2{max-width:none;font-family:var(--font-inter), Arial, sans-serif;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.85rem;font-size:.57rem;font-weight:700;line-height:1.3}.resume-summary p{max-width:66rem;margin-bottom:0;line-height:1.6}.resume-experience{gap:0;margin:0;padding:0;list-style:none;display:grid}.resume-experience li,.resume-projects article{break-inside:avoid;padding-block:.75rem}.resume-experience li+li,.resume-projects article+article{border-top:1px solid var(--line)}.resume-entry__heading{gap:.3rem;display:grid}.resume-entry__heading h3,.resume-projects h3,.resume-education h3{letter-spacing:-.025em;margin-bottom:.2rem;font-size:.75rem}.resume-entry__heading p,.resume-projects p,.resume-education p{margin-bottom:0}.resume-entry__skills{margin-top:.45rem;margin-bottom:0}.resume-projects{display:grid}.resume-projects__organization{color:var(--cobalt-dark);font-weight:600;margin-bottom:.35rem!important}.resume-projects article>p:not(.resume-projects__organization,.resume-entry__skills){line-height:1.5}.resume-skills{gap:.65rem;margin:0;display:grid}.resume-skills div{gap:.25rem;display:grid}.resume-skills dt{font-weight:650}.resume-skills dd{color:var(--muted);margin:0;line-height:1.5}.resume-education{gap:.35rem;display:grid}@media (min-width:44rem){.resume-header{grid-template-columns:1fr auto;align-items:end}.resume-contact{justify-content:flex-end;max-width:25rem}.resume-entry__heading{grid-template-columns:1fr auto;gap:1rem}.resume-projects{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.resume-projects article+article{border-top:0;border-left:1px solid var(--line);padding-left:1rem}.resume-skills div{grid-template-columns:11rem 1fr;gap:1rem}}@media print{@page{size:letter;margin:.45in}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#171817;--charcoal:#272925;--muted:#5f625c;--line:#d4d0c6;--warm:#fff;--paper:#fff;--cobalt:#2456c7;--cobalt-dark:#123b99}html,body{background:#fff}.portfolio-mobile-header,.portfolio-sidebar,.portfolio-drawer-layer,.skip-link,.particle-background,.destination-navigator{display:none!important}.site-shell{overflow:visible}.site-shell__content{min-height:0;margin-left:0!important}.resume-page{width:auto;margin:0;padding:0}.resume-page__controls{display:none}.resume-document{background:#fff;border:0;padding:0;font-size:9.25pt;line-height:1.35}.resume-header{gap:.8rem;padding-bottom:.6rem}.resume-header h1{font-size:27pt}.resume-header__headline,.resume-contact,.resume-entry__skills,.resume-projects__organization{font-size:7.5pt}.resume-section{padding-block:.6rem}.resume-section h2{margin-bottom:.35rem;font-size:8pt}.resume-experience li,.resume-projects article{padding-block:.3rem}.resume-entry__heading h3,.resume-projects h3,.resume-education h3{font-size:9.5pt}.resume-entry__skills{margin-top:.2rem}.resume-projects{gap:.6rem}.resume-projects article+article{padding-left:.6rem}a{color:inherit;text-decoration:none}}@media (min-width:40rem){.section-wrap{width:min(calc(100% - 3rem), var(--max-width))}.timeline li{grid-template-columns:minmax(10rem,.3fr) 1fr;gap:2rem}.supporting-grid,.expertise-grid,.process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:60rem){.section-wrap{width:min(calc(100% - 5rem), var(--max-width))}.hero{grid-template-columns:minmax(10rem,.25fr) minmax(0,1fr);column-gap:4rem}.hero__content,.hero__signal{grid-column:2}.section-grid{grid-template-columns:minmax(16rem,.42fr) minmax(0,1fr);gap:5rem;display:grid}.section-grid .section-heading{margin-bottom:0}.featured-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.supporting-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.expertise-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.process-section{grid-template-columns:minmax(16rem,.42fr) minmax(0,1fr);gap:5rem;display:grid}.process-section .section-heading{margin-bottom:0}.process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.case-hero{grid-template-columns:minmax(0,1fr) minmax(18rem,.45fr);gap:5rem}.case-layout{grid-template-columns:minmax(0,1fr) 17rem;gap:6rem}.case-sidebar{height:fit-content;position:sticky;top:6.5rem}.media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:64rem){html{scroll-padding-top:1.5rem}.portfolio-mobile-header,.portfolio-drawer-layer{display:none!important}.portfolio-sidebar{z-index:40;width:var(--sidebar-width);border-right:1px solid var(--border);background:var(--sidebar);padding:1rem;display:block;position:fixed;inset:0 auto 0 0;overflow-y:auto}.portfolio-sidebar .portfolio-nav__panel{min-height:calc(100svh - 2rem)}.site-shell__content{margin-left:var(--sidebar-width)}.particle-background{inset:0 0 0 var(--sidebar-width);width:calc(100vw - var(--sidebar-width));height:100svh}}.home-hero{gap:2rem;min-height:auto;padding-block:clamp(3.25rem,7vw,5.5rem)}.overview-hero,.process-page .process-section,.contact-page .contact-section{min-height:min(68svh,46rem)}.home-hero h1{margin-bottom:1.5rem;font-size:clamp(2.025rem,6vw,4.3125rem);line-height:1.05}.home-hero__primary{min-width:0}.home-hero__secondary{gap:2rem;min-width:0;display:grid}.home-hero__secondary>.home-hero__graphic{justify-self:center;width:min(100%,24rem)}.home-hero__meta{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--surface);align-content:start;gap:1rem;padding:1rem;display:grid}.home-hero__meta .eyebrow{color:var(--text-secondary)}.hero__availability{align-items:center;gap:.45rem;display:flex}.hero__availability:before{background:var(--text-primary);content:"";border-radius:999px;width:.45rem;height:.45rem}.home-hero .hero__signal{grid-column:auto;gap:.35rem .55rem;padding-top:1rem;font-size:.65rem}.home-hero .hero__signal span:not(:last-child):after{color:var(--muted);content:"/";margin-left:.55rem}.contact-links--compact a{border-radius:var(--radius-compact);min-height:2.45rem;padding:.55rem 1.25rem}.work-section,.supporting-section,.expertise-section,.experience-section,.process-section,.contact-section{padding-block:clamp(3.25rem,6vw,5.5rem)}.work-section .section-heading,.supporting-section .section-heading,.expertise-section .section-heading,.experience-section .section-heading,.process-section .section-heading{max-width:44rem;margin-bottom:1.75rem}.section-heading h1,.section-heading h2{max-width:17ch;font-size:clamp(1.5rem,3.375vw,2.7rem)}.featured-grid{background:0 0;border:0;gap:1rem}.project-card{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--surface);padding:0;overflow:hidden}.project-visual{isolation:isolate;background:linear-gradient(135deg,#2b2b2b,#121212);min-height:11rem;padding:1rem;display:grid;position:relative;overflow:hidden}.project-visual:after{z-index:-1;content:"";background:linear-gradient(120deg,#0000 44%,#f6f6f61a,#0000 62%);position:absolute;inset:0}.project-visual__grid{opacity:.3;background-image:linear-gradient(#f6f6f621 1px,#0000 1px),linear-gradient(90deg,#f6f6f621 1px,#0000 1px);background-size:1.5rem 1.5rem;position:absolute;inset:0}.project-visual__shape{border:1px solid #f6f6f6a3;display:block;position:absolute}.project-visual__shape--one{border-radius:50%;width:8rem;height:8rem;bottom:-2.75rem;right:10%}.project-visual__shape--two{background:#f6f6f614;width:56%;height:2.25rem;top:23%;right:-8%;transform:rotate(-28deg)}.project-visual__code{z-index:1;color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.09em;align-self:end;max-width:5ch;font-size:clamp(2.5rem,9vw,4.75rem);font-weight:520;line-height:.8;position:relative}.project-visual--patriot-fire{background:linear-gradient(135deg,#322925,#171717 58%,#31221f)}.project-visual--patriot-fire .project-visual__shape--one{border-radius:0;width:11rem;height:4rem;bottom:1.2rem;right:-1rem;transform:skew(-24deg)}.project-visual--patriot-fire .project-visual__shape--two{width:3.5rem;height:3.5rem;top:auto;bottom:1.3rem;right:31%;transform:rotate(45deg)}.project-visual--rxsense{background:linear-gradient(135deg,#1e2d2c,#141616 62%,#252a2a)}.project-visual--rxsense .project-visual__shape--one{border-radius:var(--radius-panel);width:9rem;height:9rem;bottom:-4rem;right:18%;transform:rotate(28deg)}.project-visual--rxsense .project-visual__shape--two{width:72%;height:1px;top:45%;right:-10%;transform:rotate(18deg)}.project-card__content{flex-direction:column;min-height:0;padding:1.15rem;display:flex}.project-card__topline{margin-bottom:1.4rem}.project-card h2{max-width:15ch;font-size:clamp(.9375rem,1.5vw,1.2375rem)}.project-card__summary{margin-bottom:1.2rem;font-size:.9rem}.stack-list li{color:var(--text-secondary);border-radius:999px}.project-card__scale{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.75rem;margin-block:1.25rem}.project-card__scale div{border-top:1px solid var(--border);padding-top:.75rem}.project-card__scale dd{color:var(--text-primary);font-size:1rem}.project-card .text-link{color:var(--text-primary);padding-top:1.25rem}.service-grid,.tools-grid{gap:.75rem;display:grid}.service-card,.tool-group{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--surface);min-width:0;padding:1.15rem}.service-card{position:relative}.service-card .eyebrow{margin-bottom:.65rem}.service-card h3,.tool-group h3{font-size:.84rem}.service-card>p:not(.eyebrow){color:var(--muted);margin-bottom:1rem;font-size:.9rem;line-height:1.55}.service-card .stack-list{margin-top:auto}.tool-group{gap:1rem;display:grid}.tool-group .stack-list{align-content:flex-start}.tool-group h3{margin:0}.experience-panel{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--surface);overflow:hidden}.experience-panel .timeline{border-top:0}.experience-panel .timeline li{gap:.45rem;padding:1rem 1.15rem}.experience-panel .timeline li:last-child{border-bottom:0}.timeline h2{font-size:.735rem}.timeline li div p{font-size:.8rem}.process-section{display:block}.process-grid{background:0 0;gap:.75rem;padding:0}.process-grid li{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--surface);min-width:0;padding:1.15rem}.process-grid span{color:var(--muted);margin-bottom:1.75rem}.process-grid h2{align-items:center;gap:.625rem;margin-bottom:.75rem;font-size:.84rem;display:flex}.process-grid p{font-size:.86rem}.contact-section{padding-bottom:clamp(3.5rem,7vw,6rem)}.contact-section h1{max-width:11ch;margin-bottom:1.25rem;font-size:clamp(2.25rem,6vw,4.6875rem)}.contact-section>p{margin-bottom:1.75rem}.contact-section__location{color:var(--muted);font-size:.8rem}.contact-section .contact-links{margin-top:1.5rem}.contact-section__cta{color:var(--text-primary);letter-spacing:-.075em;align-items:center;gap:.75rem;font-size:clamp(2.35rem,7vw,5.5rem);font-weight:460;line-height:.95;text-decoration:none;display:inline-flex}.contact-section__cta span{transition:transform var(--motion-fast)}.contact-section__cta:hover span{transform:translate(.2em)}@media (min-width:40rem){.home-hero__meta{grid-template-columns:1fr auto;align-items:start}.home-hero__meta .hero__signal{grid-column:1/-1}.service-grid,.tools-grid,.process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:52rem){.home-hero{grid-template-columns:minmax(0,1fr) minmax(18rem,.5fr);align-items:stretch;gap:clamp(2rem,3vw,3.5rem)}.home-hero__secondary{align-content:space-between;align-self:stretch;gap:2rem}.home-hero__secondary>.home-hero__graphic{justify-self:stretch;width:100%;max-width:24rem}.home-hero__meta{grid-template-columns:1fr;display:grid}.home-hero__meta .hero__signal{grid-column:auto}.experience-panel .timeline li{grid-template-columns:minmax(8rem,.28fr) 1fr;gap:1.5rem}}@media (min-width:64rem){.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.featured-grid .project-card:nth-child(3){grid-column:1/-1;grid-template-columns:minmax(18rem,.9fr) minmax(0,1.1fr);display:grid}.featured-grid .project-card:nth-child(3) .project-visual{min-height:100%}.tools-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.process-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.route-transition__content{opacity:1!important;transition-delay:0s!important;animation:none!important;transform:none!important}}.case-study{padding-top:clamp(2rem,5vw,4rem);padding-bottom:clamp(3.5rem,7vw,6rem)}.breadcrumb{margin-bottom:1.25rem;font-size:.65rem}.case-hero{border:0;gap:1rem;padding:0;display:grid}.case-hero__visual{border:1px solid var(--border);border-radius:var(--radius-panel);overflow:hidden}.case-hero__visual .project-visual{border-radius:0;min-height:clamp(13rem,34vw,22rem)}.case-hero__content{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--surface);padding:clamp(1.25rem,3vw,2rem)}.case-hero__badge{border:1px solid var(--border-strong);width:fit-content;color:var(--text-secondary);border-radius:999px;margin-bottom:1.1rem;padding:.57rem .98rem;font-size:.65rem;line-height:1.2}.case-hero h1{max-width:15ch;margin:0 0 1rem;font-size:clamp(1.6875rem,4.05vw,3.45rem)}.case-hero__content>p:not(.case-hero__badge,.case-period){max-width:45rem;color:var(--text-secondary);margin-bottom:0;font-size:clamp(1rem,1.8vw,1.2rem);line-height:1.6}.case-period{color:var(--muted);margin:1.15rem 0 0;font-size:.72rem}.case-overview{gap:1rem;padding-block:1rem;display:grid}.case-overview__context,.case-sidebar,.case-section,.case-media{min-width:0}.case-overview__context,.case-sidebar__block,.project-links,.case-section,.case-media{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--surface)}.case-overview__context,.case-section,.case-media{padding:clamp(1.25rem,3vw,2rem)}.case-overview__context h2,.case-section h2,.case-media h2{max-width:18ch;margin-bottom:1rem;font-size:clamp(1.0875rem,2.25vw,1.65rem)}.case-lead{max-width:48rem;color:var(--text-secondary);font-size:1rem;line-height:1.65}.case-sidebar{gap:.75rem;display:grid}.case-sidebar__block,.project-links{padding:1rem}.case-sidebar__block .eyebrow{margin-bottom:.7rem}.case-sidebar__block .stack-list{margin:0}.case-sidebar__value{color:var(--text-primary);margin:0;font-size:.9rem}.scope-list{margin:0}.scope-list dd,.project-card__scale dd{color:var(--text-primary)}.project-links{display:flex}.project-links a{border-color:var(--border-strong);border-radius:var(--radius-compact);min-height:2.3rem;color:var(--text-primary)}.case-modules{gap:1rem;padding-block:1rem;display:grid}.case-section .eyebrow,.case-media .eyebrow{margin-bottom:.7rem}.evidence-list,.systems-list{border-color:var(--border)}.evidence-list li,.systems-list li{border-color:var(--border);color:var(--text-secondary);padding:.8rem 0;font-size:.9rem}.evidence-list li:before{color:var(--text-primary)}.case-media{margin-top:1rem}.media-frame{border-color:var(--border);border-radius:var(--radius-compact);background:var(--surface-raised)}.not-found{min-height:calc(100svh - 4rem);padding-block:clamp(2rem,7vw,6rem)}.not-found__panel{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--surface);max-width:48rem;padding:clamp(1.5rem,5vw,4rem)}.not-found h1{margin-bottom:1rem;font-size:clamp(1.875rem,4.5vw,3.75rem)}.not-found p:not(.eyebrow){color:var(--text-secondary)}.not-found__action{border:1px solid var(--border-strong);border-radius:var(--radius-compact);min-height:2.6rem;color:var(--text-primary);align-items:center;gap:1rem;padding:.6rem 1.3rem;font-size:.75rem;font-weight:600;text-decoration:none;display:inline-flex}.not-found__action:hover{background:var(--surface-raised)}.resume-page{width:min(100% - 2rem,62rem);padding-block:clamp(1.5rem,5vw,4rem)}.resume-page__controls{margin-bottom:.75rem}.resume-actions button,.resume-actions a{border-color:var(--border-strong);border-radius:var(--radius-compact);background:var(--surface-raised);color:var(--text-primary);align-items:center;gap:.625rem;display:inline-flex}.resume-actions a{background:0 0}.resume-actions button:hover,.resume-actions a:hover{background:var(--text-primary);color:var(--canvas)}.resume-document{border-radius:var(--radius-panel);color:#1b1b1b;background:#f7f7f4;border-color:#d7d7d2;box-shadow:0 1rem 3rem #0003}.resume-document a{color:inherit}.resume-header{border-color:#1b1b1b}.resume-header__headline,.resume-projects__organization{color:#3d3d3d}.resume-contact,.resume-entry__skills,.resume-skills dd{color:#646464}.resume-contact>:not(:last-child):after,.resume-section,.resume-experience li+li,.resume-projects article+article{border-color:#d7d7d2}a:hover{color:var(--accent)}::selection,.skip-link{background:var(--accent);color:var(--accent-ink)}.portfolio-menu-button,.portfolio-drawer__close{transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast)}.portfolio-menu-button:hover,.portfolio-drawer__close:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.portfolio-nav__link:hover{color:var(--accent)}.portfolio-nav__link--active{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.portfolio-nav__link--active{border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}}.portfolio-nav__link--active{background:var(--accent-soft)}.portfolio-nav__external,.hero__availability:before,.process-grid span,.evidence-list li:before{color:var(--accent)}.hero__availability:before{background:var(--accent);box-shadow:0 0 0 .2rem var(--accent-soft)}.contact-links a:first-child,.not-found__action,.resume-actions button{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.contact-links a:not(:first-child),.project-links a,.resume-actions a{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.contact-links a:not(:first-child),.project-links a,.resume-actions a{border-color:color-mix(in srgb, var(--accent) 60%, var(--border))}}.contact-links a:not(:first-child),.project-links a,.resume-actions a{color:var(--accent)}.contact-links a:hover,.project-links a:hover,.not-found__action:hover,.resume-actions button:hover,.resume-actions a:hover{border-color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.contact-links a:hover,.project-links a:hover,.not-found__action:hover,.resume-actions button:hover,.resume-actions a:hover{background:color-mix(in srgb, var(--accent) 88%, white)}}.contact-links a:hover,.project-links a:hover,.not-found__action:hover,.resume-actions button:hover,.resume-actions a:hover{color:var(--accent-ink)}.text-link,.project-card .text-link,.destination-navigator__link:hover,.contact-section__cta:hover,.contact-section__cta span{color:var(--accent)}.project-visual__shape{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.project-visual__shape{border-color:color-mix(in srgb, var(--accent) 68%, transparent)}}.project-visual__grid{background-image:linear-gradient(var(--accent) 1px, transparent 1px), linear-gradient(90deg, var(--accent) 1px, transparent 1px)}@supports (color:color-mix(in lab, red, red)){.project-visual__grid{background-image:linear-gradient(color-mix(in srgb, var(--accent) 14%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--accent) 14%, transparent) 1px, transparent 1px)}}@media (min-width:52rem){.case-hero{grid-template-columns:minmax(0,1.05fr) minmax(19rem,.95fr);align-items:stretch}.case-hero__visual .project-visual{min-height:100%}.case-overview{grid-template-columns:minmax(0,1fr) minmax(15rem,.46fr);align-items:start;gap:1rem;padding-block:1rem}.case-sidebar{position:sticky;top:1rem}.case-modules{grid-template-columns:repeat(3,minmax(0,1fr))}}@media print{.resume-document{box-shadow:none;border:0;border-radius:0}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
