:root{--paper:#f4f6f8;--white:#fff;--ink:#122033;--muted:#586575;--accent-ink:#2b48c8;--accent-hover:#233ca9;--highlight:#dff592;--surface-muted:#e9edf3;--line:#ccd3dd;--amber:#79501a;--mono:ui-monospace,"SFMono-Regular",Consolas,"Liberation Mono",monospace;--sans:Arial,"Helvetica Neue",Helvetica,sans-serif;--serif:Georgia,"Times New Roman",serif;--gutter:clamp(1.25rem,5vw,5.5rem);--radius:6px;color-scheme:light}:root[data-theme="dark"]{--paper:#101923;--white:#172330;--ink:#f0f3f8;--muted:#adb9c9;--accent-ink:#b0c2ff;--accent-hover:#d4dfff;--surface-muted:#213142;--line:#35485d;--amber:#f1c786;color-scheme:dark}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:7rem}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.75 var(--sans);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{font-weight:500;line-height:1.14;text-wrap:balance}h1{font-size:clamp(2.75rem,5.8vw,5.75rem);letter-spacing:-.055em}h2{font-size:clamp(2rem,3.7vw,3.75rem);letter-spacing:-.045em}h3{font-size:1.5rem;letter-spacing:-.025em}h4{font-size:1.0625rem}em{font-family:var(--serif);font-weight:400;color:var(--accent-ink)}p{max-width:70ch;text-wrap:pretty}p+p{margin-top:1rem}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{border:0;color:inherit}button,summary,select{cursor:pointer}a,button,summary{touch-action:manipulation}a,button,summary,input,select,textarea{scroll-margin-block:7rem 1.5rem;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:disabled:active{transform:none}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--accent-ink);outline-offset:4px}::selection{background:var(--highlight);color:#122033}img,svg{max-width:100%}svg{vertical-align:middle}ul{padding-left:1.2em}[hidden]{display:none!important}.wrap,.header-inner,.footer-top,.footer-bottom,.footer-signature{width:min(1320px,calc(100% - var(--gutter)*2));margin-inline:auto}.icon{display:inline-block;width:1.25rem;height:1.25rem;flex:none}.eyebrow{font:.75rem/1.65 var(--mono);text-transform:uppercase;letter-spacing:.09em;color:var(--accent-ink)}.small-note{font-size:.8125rem;line-height:1.7;color:var(--muted)}.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}.skip-link{position:fixed;z-index:200;top:1rem;left:1rem;padding:.75rem 1rem;background:var(--highlight);color:#122033;transform:translateY(-200%)}.skip-link:focus{transform:none}.button-row,.button,.text-link,.text-button,.copy-button{display:inline-flex;align-items:center;gap:1rem}.button-row{display:flex;flex-wrap:wrap;gap:.75rem}.button{justify-content:space-between;min-height:3.25rem;padding:.875rem 1.375rem;border:1px solid var(--ink);border-radius:var(--radius);font-size:.875rem;line-height:1.5;background:var(--ink);color:var(--paper);font-weight:600;transition:background .2s,transform .2s}.button--outline{background:transparent;color:var(--ink);border-color:var(--line)}.button--outline:hover{background:var(--surface-muted);border-color:var(--ink)}.button:not(.button--outline):hover{background:var(--accent-ink);border-color:var(--accent-ink)}.text-link,.text-button,.copy-button{min-height:2.75rem;background:transparent;color:var(--accent-ink);font-size:.875rem;text-align:left;line-height:1.6}.text-link{text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--line);text-underline-offset:.3em}.text-link:hover{text-decoration-color:currentColor}.text-button,.copy-button{padding:.375rem 0}.section{padding-block:5.5rem}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2.5rem}.section-heading .eyebrow{margin-bottom:1rem}.badge{display:inline-flex;align-items:center;gap:.5rem;font-size:.75rem;line-height:1.5;padding:.375rem .625rem;border:1px solid var(--line);border-radius:4px;background:var(--surface-muted);color:var(--ink);width:fit-content}.badge-dot{width:5px;height:5px;background:currentColor;border-radius:50%;flex:none}.badge--concept{color:var(--amber)}.tags{display:flex;flex-wrap:wrap;gap:.375rem;list-style:none;margin:1rem 0 0;padding:0}.tags li{font-size:.8125rem;color:var(--muted);padding:.3rem .5rem;border:1px solid var(--line);border-radius:3px;line-height:1.55}.site-header{position:sticky;top:0;z-index:30;background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{min-height:5.5rem;display:flex;align-items:center;gap:1.5rem;padding-block:.75rem}.brand{display:inline-flex;align-items:center;gap:.75rem;flex:none}.brand-symbol{width:2.625rem;height:2.625rem;flex:none}.brand-name{font-size:.875rem;font-weight:600;line-height:1.4}.brand-name>span{display:block;font-size:.75rem;font-weight:400;color:var(--muted);margin-top:.25rem}.site-nav{margin-left:auto;display:flex;align-items:center;gap:1.375rem}.site-nav a{display:inline-flex;align-items:center;min-height:2.75rem;font-size:.875rem;gap:.5rem}.site-nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:.4rem}.site-nav .nav-resume{padding-left:1.25rem;border-left:1px solid var(--line)}.site-nav .nav-contact{background:var(--ink);color:var(--paper);padding:.65rem 1rem;border-radius:var(--radius)}.site-nav a:hover{color:var(--accent-ink)}.site-nav .nav-contact:hover{background:var(--accent-ink);color:var(--paper)}.menu-toggle{display:none;align-items:center;gap:.5rem;min-height:2.75rem;padding:.5rem;background:transparent;font-size:.875rem}.breadcrumb{display:flex;flex-wrap:wrap;gap:.75rem;padding-top:2rem;font-size:.8125rem;color:var(--muted)}.breadcrumb a{color:var(--accent-ink);padding-block:.25rem}.page-intro{padding-block:3rem 4rem}.page-intro .eyebrow{margin-bottom:1.25rem}.page-intro>p{margin-top:1.5rem;max-width:58ch;font-size:1.125rem;color:var(--muted)}.page-intro--split{display:grid;grid-template-columns:1.15fr 1fr;align-items:end;gap:4rem}.intro-aside p{color:var(--muted)}.intro-aside .button{margin-top:1.5rem}.filter-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.75rem}.filter-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.filter{display:inline-flex;align-items:center;gap:.75rem;min-height:2.75rem;padding:.5rem .875rem;border:1px solid var(--line);background:transparent;border-radius:4px;font-size:.875rem}.filter span{font:.75rem/1.5 var(--mono);opacity:.8}.filter.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.filter-status{font:.75rem/1.6 var(--mono);color:var(--muted)}.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.75rem}.project-card{position:relative;overflow:hidden;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--white)}.project-card-body{padding:1.75rem}.project-card h3{margin-block:1rem;font-size:1.65rem;line-height:1.25}.project-card h3 a{display:flex;justify-content:space-between;gap:1rem}.project-card h3 a::after{content:"";position:absolute;inset:0}.project-card:focus-within{outline:3px solid var(--accent-ink);outline-offset:4px}.project-card h3 a:focus-visible{outline:none}.project-card-body>p{color:var(--muted)}.project-card-link{display:flex;align-items:center;gap:.625rem;margin-top:1.5rem;color:var(--accent-ink);font-size:.875rem}.work-note{display:flex;align-items:flex-start;gap:1.5rem;padding-block:2rem;border-top:1px solid var(--line);margin-block:3rem 4rem}.work-note>span{color:var(--accent-ink)}.work-note h2{font-size:1.375rem}.work-note p{margin-top:.75rem;color:var(--muted)}.project-header{padding-block:3rem 2.5rem;max-width:1000px}.project-header-meta{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.project-header h1{margin-block:1.5rem;max-width:20ch}.project-header>p{font-size:1.125rem;color:var(--muted);max-width:62ch}.project-facts{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:2rem;border-top:1px solid var(--line);padding-block:2rem}.project-facts .eyebrow{margin-bottom:.75rem}.project-facts p{font-size:1rem}.project-facts>div:last-child p{color:var(--accent-ink)}.workflow-figure{background:var(--surface-muted);border:1px solid var(--line);border-radius:8px;padding:2rem}.workflow-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3rem}.workflow-step{display:flex;flex-direction:column;gap:.625rem;position:relative}.step-index{font:.75rem/1.5 var(--mono);color:var(--accent-ink)}.workflow-step strong{font-size:1.125rem;line-height:1.5;font-weight:500}.workflow-step>span:not(.step-index){font-size:.875rem;color:var(--muted)}.flow-arrow{position:absolute;right:-1.75rem;top:2rem;color:var(--accent-ink)}.workflow-figure figcaption{padding-top:1.25rem;margin-top:1.5rem;border-top:1px solid var(--line);font-size:.8125rem;line-height:1.7;color:var(--muted)}.case-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:5rem;padding-block:4rem}.case-aside>div{position:sticky;top:8rem}.case-aside nav{display:flex;flex-direction:column;margin-top:1rem;border-left:1px solid var(--line)}.case-aside nav a{padding:.6rem 1rem;min-height:2.75rem;font-size:.875rem;color:var(--muted);border-left:2px solid transparent;margin-left:-1px}.case-aside nav a[aria-current="location"]{color:var(--accent-ink);background:var(--surface-muted);border-color:var(--accent-ink)}.aside-tools{margin-block:1.75rem}.case-aside .text-link{align-items:flex-start}.case-content section{scroll-margin-top:8rem;margin-bottom:3.5rem}.case-content .eyebrow{margin-bottom:1rem}.case-content h2{font-size:clamp(1.875rem,3vw,2.75rem);margin-bottom:1.25rem;max-width:26ch}.case-content p:not(.eyebrow){font-size:1.0625rem;line-height:1.9;color:var(--muted)}.next-case{display:flex;justify-content:space-between;align-items:center;gap:2rem;border-top:1px solid var(--line);padding-block:3rem 4rem}.next-case .eyebrow{margin-bottom:1rem}.next-case h2{font-size:clamp(1.75rem,3vw,2.75rem);margin-bottom:1rem}.next-case h2 a{display:flex;align-items:center;gap:1rem}.reading-progress{position:fixed;top:0;left:0;z-index:100;width:100%;height:3px;appearance:none;border:0;background:transparent;color:var(--accent-ink);pointer-events:none}.reading-progress::-webkit-progress-bar{background:transparent}.reading-progress::-webkit-progress-value{background:var(--accent-ink)}.reading-progress::-moz-progress-bar{background:var(--accent-ink)}.experience-summary{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;border-block:1px solid var(--line);padding-block:1.75rem}.experience-summary>span{color:var(--muted);font-size:.875rem}.experience-summary strong{display:block;color:var(--ink);font-size:1.125rem;margin-bottom:.375rem}.experience-summary>p{grid-column:1/-1;max-width:none;color:var(--muted);font-size:.8125rem;border-top:1px solid var(--line);padding-top:1rem}.career-section{padding-top:5rem}.career-entry{display:grid;grid-template-columns:220px minmax(0,1fr);gap:4rem;border-top:1px solid var(--line);padding-block:2.5rem}.career-entry-date{display:flex;align-items:flex-start;flex-direction:column;gap:1rem}.career-entry h3{font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.3}.career-entry p{color:var(--muted);margin-top:1rem}.career-entry .company-name{color:var(--accent-ink);font-size:1.125rem}.career-highlights{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem}.career-highlights h4{font-weight:600}.career-highlights p{margin-top:.625rem}.career-entry .text-link{margin-top:1.5rem}.capabilities-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.capabilities-grid article{border-top:1px solid var(--line);padding-top:1.5rem}.capability-number{font:.8125rem/1.5 var(--mono);color:var(--accent-ink)}.capabilities-grid h3{margin-block:1rem}.capabilities-grid p{color:var(--muted)}.cert-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.cert-card{padding:1.375rem;border:1px solid var(--line);border-top:3px solid var(--accent-ink);background:var(--white);display:flex;flex-direction:column;align-items:flex-start}.cert-card h3{font-size:1.375rem;margin-block:1rem;line-height:1.3}.cert-card p{font-size:.875rem;color:var(--muted);margin-bottom:1rem}.cert-card a,.cert-note{font-size:.8125rem;color:var(--accent-ink);margin-top:auto;padding-block:.5rem;min-height:2.75rem}.cert-card a{text-decoration:underline;text-underline-offset:.25em}.training-line{display:flex;justify-content:space-between;align-items:center;gap:2rem;margin-top:1.5rem}.training-line p{font-size:.875rem;color:var(--muted)}.training-line strong{display:block;color:var(--ink)}.education-section{display:grid;grid-template-columns:1fr 1fr;gap:4rem;padding-block:4rem 5rem;border-top:1px solid var(--line)}.education-section h2{margin-block:1rem 1.5rem}.education-section h3{margin-block:.75rem;font-size:1.5rem}.education-section p{color:var(--muted)}.education-section article+article,.language-note{margin-top:2rem}.education-section .text-link{margin-top:1rem}.language-note{border-top:1px solid var(--line);padding-top:1rem;font-size:.875rem}.services-note{display:flex;gap:1.25rem;align-items:flex-start;border-block:1px solid var(--line);padding-block:1.75rem;color:var(--muted)}.services-note>span{color:var(--accent-ink)}.offers{padding-top:4rem}.offer{display:grid;grid-template-columns:3rem minmax(0,1.3fr) minmax(0,.8fr);gap:2.5rem;padding-block:2.75rem;border-bottom:1px solid var(--line)}.offer-number{font:.875rem/1.7 var(--mono);color:var(--muted)}.offer h2{font-size:clamp(1.75rem,3vw,2.5rem);margin-block:1rem}.offer p{color:var(--muted)}.offer .offer-problem{color:var(--ink);font-size:1.125rem}.offer aside{border-left:1px solid var(--line);padding-left:2rem}.offer aside p:not(.eyebrow){margin-block:1rem;font-size:.875rem}.discovery-section{padding-block:4rem}.discovery-section h2{margin-top:1rem}.discovery-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;margin-top:2.5rem}.discovery-steps h3{margin-block:1rem;font-size:1.375rem}.discovery-steps p{color:var(--muted)}.boundary-note{border-top:1px solid var(--line);margin-top:2rem;padding-top:1.5rem;color:var(--muted);font-size:.875rem}.project-invitation{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:3rem;padding-block:3rem 4rem}.project-invitation h2{margin-block:1rem}.project-invitation p:not(.eyebrow){color:var(--muted)}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:4rem;padding-bottom:5rem;align-items:start}.contact-layout .page-intro{padding-bottom:2rem}.contact-info h2{font-size:1.5rem;margin-block:.625rem 1rem}.contact-address{display:flex;align-items:center;gap:.875rem;font-size:clamp(1.125rem,2.2vw,1.875rem);letter-spacing:-.03em;overflow-wrap:anywhere}.copy-button{margin-top:.5rem}.contact-facts{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:1.5rem}.contact-facts p{color:var(--muted);font-size:.875rem}.contact-facts .icon{margin-right:.625rem}.direct-options{margin-block:1.5rem}.direct-options h3{font-size:.875rem;margin-bottom:.5rem}.direct-options a{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.75rem;color:var(--accent-ink);font-size:.875rem;border-bottom:1px solid var(--line);padding-block:.5rem}.brief-builder{border:1px solid var(--line);border-top:3px solid var(--accent-ink);border-radius:8px;padding:2rem;background:var(--white);margin-top:3rem;min-width:0}.builder-heading h2{font-size:1.875rem;margin-top:.75rem;line-height:1.25}.brief-builder fieldset{border:0;padding:0;margin:1.5rem 0}.brief-builder legend,.input-label{font-size:.875rem;margin-bottom:.75rem}.topic-options{display:grid;grid-template-columns:1fr 1fr;gap:.625rem}.topic-options label{position:relative;cursor:pointer}.topic-options input{position:absolute;width:1px;height:1px;opacity:0}.topic-options input+span{display:flex;align-items:center;gap:.5rem;padding:.75rem;min-height:3.25rem;border:1px solid var(--line);border-radius:4px;font-size:.875rem;line-height:1.5}.topic-options input:checked+span{background:var(--surface-muted);border-color:var(--accent-ink)}.topic-options input:focus-visible+span{outline:3px solid var(--accent-ink);outline-offset:3px}.input-label{display:block}.input-label>span{color:var(--muted);margin-left:.5rem;font-size:.8125rem}.field-help{font-size:.8125rem;color:var(--muted);margin-bottom:.75rem}.brief-builder textarea{display:block;width:100%;resize:vertical;min-height:10rem;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);padding:1rem;font-size:1rem;line-height:1.7}.brief-builder textarea::placeholder{color:var(--muted);opacity:1}.context-footer{display:flex;justify-content:space-between;gap:.75rem;margin-top:.5rem;font-size:.75rem;color:var(--muted)}.related-work{padding:.875rem;border-left:2px solid var(--accent-ink);margin-bottom:1.5rem;background:var(--surface-muted);font-size:.875rem}.related-work strong{display:block;margin-bottom:.25rem}.draft-preview{border:1px solid var(--line);border-radius:4px;margin-block:1.5rem}.draft-preview summary{display:flex;align-items:center;justify-content:space-between;list-style:none;min-height:2.75rem;padding:.75rem;font-size:.875rem}.draft-preview summary::-webkit-details-marker{display:none}.draft-preview[open] .icon{transform:rotate(45deg)}.draft-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:20rem;overflow:auto;margin:0;padding:0 1rem 1rem;font:.8125rem/1.8 var(--mono);color:var(--muted)}.builder-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1rem}.no-js-note{padding:2rem;border:1px solid var(--line);margin-top:3rem}.no-js-note h2{font-size:1.5rem;margin-bottom:1rem}.resume-header{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:end;padding-block:3rem}.resume-header h1{margin-top:1rem}.resume-downloads{justify-self:end}.resume-downloads>div{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.75rem}.resume-downloads .small-note{margin-top:.75rem}.resume-paper{max-width:1040px;margin-inline:auto;border:1px solid var(--line);padding:clamp(1.5rem,5vw,4rem);background:var(--white)}.resume-paper>header{padding-bottom:1.75rem;border-bottom:2px solid var(--ink)}.resume-paper>header h2{font-size:2.5rem;margin-bottom:.75rem}.resume-position{color:var(--accent-ink);font-size:1.125rem}.resume-paper>header p:last-child{font-size:.875rem;margin-top:.75rem}.resume-section{padding-top:1.75rem}.resume-section>h2{font:.8125rem/1.5 var(--mono);text-transform:uppercase;letter-spacing:.08em;margin-bottom:1rem;color:var(--accent-ink)}.resume-section p,.resume-section li{font-size:1rem;color:var(--muted);line-height:1.8}.resume-section strong{color:var(--ink)}.resume-cert-list{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 2rem}.resume-cert-list p{margin:0}.resume-cert-list strong,.resume-cert-list span{display:block}.resume-cert-list span{font-size:.8125rem}.resume-role-title{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.resume-role-title h3{font-size:1.375rem;line-height:1.4}.resume-role-title>span{font-size:.8125rem;color:var(--muted);flex:none}.resume-section .resume-job{color:var(--ink);font-weight:600;margin-top:.5rem}.resume-role+.resume-role{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line)}.resume-section li{padding-left:.25rem;margin-bottom:.625rem}.resume-education+.resume-education{margin-top:1.25rem}.resume-education h3{font-size:1.25rem}.resume-education p{margin-top:.5rem}.resume-bottom{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding-block:2rem 4rem}.demo-section{padding-block:0 4rem;scroll-margin-top:7rem}.demo-disclaimer{color:var(--muted);margin-block:1rem 2rem}.demo-board{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--white)}.demo-board-heading{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem;background:#142538;color:#f1f5fa}.demo-board-heading .eyebrow{color:#c3d49d}.demo-board-heading h3{margin-top:.5rem;font-size:1.5rem}.demo-total{font:.8125rem/1.6 var(--mono);max-width:12ch}.demo-total b{font-size:1.5rem;display:block;font-weight:400}.demo-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:1rem 1.5rem;border-bottom:1px solid var(--line)}.demo-toolbar label{display:flex;align-items:center;gap:.625rem;font-size:.875rem}.demo-toolbar select{max-width:100%;min-height:2.75rem;padding:.5rem 2rem .5rem .75rem;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);font-size:1rem}.demo-column-labels,.demo-job summary{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) .65fr 1fr 1.25rem;gap:1.25rem;align-items:center;padding:1rem 1.5rem}.demo-column-labels{background:var(--surface-muted);color:var(--muted);font-size:.75rem}.demo-job{border-top:1px solid var(--line)}.demo-job summary{list-style:none;min-height:5rem}.demo-job summary::-webkit-details-marker{display:none}.demo-job summary:hover,.demo-job[open] summary{background:var(--surface-muted)}.demo-job[open] summary>.icon{transform:rotate(45deg)}.job-id{display:block;font:.75rem/1.6 var(--mono);color:var(--muted);margin-bottom:.25rem}.job-title strong{font-size:.9375rem;font-weight:500;line-height:1.6;display:block}.job-team,.job-age{font-size:.875rem}.job-status{font-size:.75rem;line-height:1.5;color:var(--accent-ink);background:var(--surface-muted);padding:.4rem .625rem;border:1px solid var(--line);border-radius:3px;width:fit-content}.job-status--attention{color:var(--amber)}.job-detail{display:grid;grid-template-columns:1fr 1fr;gap:2rem;padding:1.5rem;background:var(--surface-muted)}.job-detail p{font-size:.875rem;color:var(--muted);margin:0}.job-detail strong{display:block;color:var(--ink);margin-bottom:.5rem}.demo-bottom{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.5rem;border-top:1px solid var(--line)}.demo-result{font-size:.8125rem;color:var(--muted)}.demo-empty{padding:2rem;color:var(--muted)}.demo-section>.small-note{margin-top:1rem}.not-found{text-align:center;padding-block:6rem}.not-found h1{margin-block:1rem}.not-found p{margin:1.5rem auto}.not-found .button-row{justify-content:center}.toast{position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%,1rem);width:max-content;max-width:calc(100% - 2rem);padding:.875rem 1.25rem;border:1px solid var(--line);background:var(--ink);color:var(--paper);border-radius:6px;font-size:.875rem;box-shadow:0 8px 30px #0002;opacity:0;pointer-events:none;z-index:120;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}:root{--control-line:#738094}:root[data-theme="dark"]{--control-line:#788da8}.button--outline,.filter,.topic-options input+span,.brief-builder textarea,.demo-toolbar select,.draft-preview{border-color:var(--control-line)}.breadcrumb{align-items:center}.breadcrumb a{display:inline-flex;align-items:center;min-width:2.75rem;min-height:2.75rem}.brand,.contact-address{min-height:2.75rem}.brand,.text-link,.text-button,.copy-button,.cert-card a{min-width:2.75rem}.cert-card-logo{display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:5.5rem;margin-bottom:.5rem}.cert-card-logo img{display:block;width:5.5rem;height:5.5rem;padding:.5rem;object-fit:contain;background:#fff;border-radius:4px}.cert-card-logo--wide img{width:min(100%,10rem);height:auto;max-height:3.5rem;padding:.75rem;object-fit:contain;object-position:left center}.resume-paper>header p:last-child a{display:inline-flex;align-items:center;min-height:2.75rem}a:active,button:not(:disabled):active,summary:active{filter:brightness(.88)}h1,h2,h3,h4,p{overflow-wrap:break-word}.header-inner,.site-nav{flex-wrap:wrap}@media(max-width:1200px){.header-inner{flex-wrap:wrap;gap:.75rem}.brand{margin-right:auto}.js .menu-toggle{display:inline-flex}.site-nav{width:100%;margin:0;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:.75rem}.js .site-nav{display:none}.js .site-nav.is-open{display:flex}.site-nav .nav-resume{border:0;padding-left:0}.cert-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.case-layout,.career-entry{gap:2.5rem;grid-template-columns:180px minmax(0,1fr)}.contact-layout{gap:2.5rem}}@media(max-width:900px){.page-intro--split,.contact-layout{grid-template-columns:minmax(0,1fr);gap:2rem}.page-intro--split h1{max-width:20ch}.contact-layout{max-width:720px;margin-inline:auto}.brief-builder{margin-top:0}.offer{grid-template-columns:2rem minmax(0,1fr);gap:1.5rem}.offer aside{grid-column:2;padding:1.25rem 0 0;border-left:0;border-top:1px solid var(--line)}.education-section{gap:2rem}.resume-header{grid-template-columns:1fr;gap:2rem}.resume-downloads{justify-self:start}.resume-role-title{flex-wrap:wrap;gap:.5rem}.case-layout{grid-template-columns:160px minmax(0,1fr);gap:2rem}.workflow-steps{gap:2rem}.flow-arrow{right:-1.25rem;width:1rem}}@media(max-width:640px){:root{--gutter:1.25rem}.section{padding-block:3.5rem}.header-inner{min-height:4.5rem;gap:.5rem}.brand-name{display:none}.brand-symbol{width:2.25rem;height:2.25rem}.site-nav{gap:.5rem 1.5rem}.site-nav a{min-height:3rem}.section-heading,.next-case,.project-invitation,.resume-bottom,.training-line{flex-direction:column;align-items:flex-start;gap:1.5rem}.page-intro{padding-block:2rem 2.5rem}.page-intro>p,.project-header>p{font-size:1rem}.projects-grid,.capabilities-grid,.education-section,.career-highlights,.discovery-steps,.case-layout{grid-template-columns:minmax(0,1fr)}.project-card-body{padding:1.5rem}.project-facts{grid-template-columns:1fr;gap:1.25rem}.project-facts>div{display:grid;grid-template-columns:5rem minmax(0,1fr);gap:1rem}.project-facts .eyebrow{margin-top:.25rem}.workflow-figure{padding:1.25rem}.workflow-steps{grid-template-columns:1fr;gap:1.5rem}.workflow-step{padding-left:2rem}.workflow-step .step-index{position:absolute;left:0;top:.2rem}.flow-arrow{display:none}.case-layout{padding-block:2.5rem;gap:2rem}.case-aside>div{position:static}.case-aside nav{flex-direction:row;flex-wrap:wrap;gap:.25rem;border:0}.case-aside nav a{padding:.5rem .75rem}.aside-tools{margin-block:1rem}.case-content p:not(.eyebrow){font-size:1rem}.career-entry{grid-template-columns:minmax(0,1fr);gap:1.25rem;padding-block:2rem}.career-entry-date{flex-direction:row;flex-wrap:wrap;align-items:center}.career-section{padding-top:3.5rem}.experience-summary{gap:1rem}.experience-summary>span{font-size:.8125rem}.cert-grid{gap:.75rem}.cert-card{padding:1rem}.cert-card h3{font-size:1.2rem}.education-section{padding-block:3rem}.offer{grid-template-columns:1fr}.offer aside{grid-column:auto}.offer-number{margin-bottom:-1rem}.discovery-section{padding-block:3rem}.discovery-steps{gap:1.5rem}.discovery-steps article{border-top:1px solid var(--line);padding-top:1rem}.contact-layout{padding-bottom:3rem}.brief-builder{padding:1.25rem}.topic-options{grid-template-columns:1fr}.resume-cert-list{grid-template-columns:1fr}.resume-paper{padding:1.25rem}.resume-paper>header h2{font-size:2rem}.demo-column-labels{display:none}.demo-job summary{grid-template-columns:minmax(0,1fr) auto auto;gap:.625rem;padding:1rem}.job-title{grid-column:1/-1}.job-team,.job-age{font-size:.8125rem}.demo-job summary>.icon{grid-column:3;grid-row:2}.job-status{grid-column:1/-1}.job-detail{grid-template-columns:1fr;gap:1rem;padding:1rem}.demo-board-heading,.demo-toolbar,.demo-bottom{padding:1rem;flex-wrap:wrap}.demo-total{max-width:none}.demo-total b{display:inline;font-size:1rem}.demo-toolbar label{flex-wrap:wrap}.demo-bottom{align-items:flex-start}.not-found{padding-block:4rem}}@media(max-width:360px){.cert-grid,.experience-summary{grid-template-columns:1fr}.brand-symbol{width:2rem;height:2rem}.button-row>.button{width:100%}.project-facts>div{grid-template-columns:1fr;gap:.25rem}}@media(hover:hover) and (prefers-reduced-motion:no-preference){.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(0)}.button .icon,.text-link .icon{transition:transform .2s}.button:hover .icon,.text-link:hover .icon{transform:translateX(3px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}html.theme-changing *,html.theme-changing *::before,html.theme-changing *::after{transition:none!important}@media(max-height:500px){.site-header{position:static}.search-results{max-height:32dvh}}@media print{:root,:root[data-theme="dark"]{color-scheme:light;--paper:#fff;--white:#fff;--ink:#000;--muted:#222;--accent-ink:#000;--line:#bbb;--control-line:#777;}html{scroll-behavior:auto}body{background:white;color:black;font-size:10pt}.site-header,.site-footer,.skip-link,.breadcrumb,.resume-header,.resume-bottom,.toast,.case-aside{display:none!important}.wrap{width:100%;margin:0}.resume-paper{border:0;padding:0;max-width:none}.resume-paper>header h2{font-size:24pt}.resume-paper>header p{font-size:10pt!important}.resume-position{font-size:11pt!important}.resume-section{margin-top:15pt}.resume-section>h2{font-size:9pt;margin-bottom:8pt}.resume-section p,.resume-section li{font-size:9pt;line-height:1.45}.resume-role-title h3{font-size:13pt}.resume-role-title>span{font-size:8pt}.resume-role p,.resume-role .resume-job,.resume-role li{font-size:9pt}.resume-role li{margin-bottom:4pt}.resume-cert-list{grid-template-columns:1fr 1fr;gap:7pt 15pt}.resume-cert-list strong{font-size:9pt}.resume-cert-list span{font-size:8pt}.resume-section .text-link{display:none}.resume-education h3{font-size:11pt}.resume-role+.resume-role{margin-top:15pt;padding-top:12pt}.resume-education p{font-size:9pt}.resume-role-title,h2,h3{break-after:avoid}li,.resume-education,.resume-cert-list{break-inside:avoid}p{orphans:3;widows:3}a{text-decoration:none;color:inherit}.resume-paper>header{padding-bottom:12pt}.resume-section ul{padding-left:13pt}.resume-education+.resume-education{margin-top:12pt}@page{size:A4;margin:16mm}}.header-tools{display:flex;align-items:center;gap:.125rem;flex:none}.utility-button{display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem;min-height:2.75rem;padding:.5rem;gap:.5rem;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--ink);font-size:.875rem;line-height:1.4}.utility-button:hover{background:var(--surface-muted);border-color:var(--line)}.utility-button .icon{width:1.125rem;height:1.125rem}.search-trigger{border-color:var(--line);margin-right:.25rem}.search-trigger>span{display:none}kbd{font:.75rem/1.4 var(--mono);border:1px solid var(--line);border-radius:3px;padding:.125rem .25rem;color:var(--muted);white-space:nowrap}.language-switch{font:.875rem/1 var(--mono)}.theme-sun{display:none}[data-theme="dark"] .theme-moon{display:none}[data-theme="dark"] .theme-sun{display:block}html.search-open{overflow:hidden}.search-dialog{width:min(660px,calc(100% - 2rem));max-height:calc(100dvh - 3rem);padding:0;margin:clamp(1rem,8vh,6rem) auto auto;background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 24px 80px #0004;overflow:auto}.search-dialog::backdrop{background:rgb(8 18 30 / 75%)}.search-dialog-inner{padding:1.75rem}.search-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.search-heading .eyebrow{margin-bottom:.5rem}.search-heading h2{font-size:1.75rem;letter-spacing:-.035em}.search-heading button{flex:none}.search-field{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--paper);border:1px solid var(--line);border-radius:4px}.search-field:focus-within{outline:2px solid var(--accent-ink);outline-offset:2px}.search-field>.icon{color:var(--accent-ink)}.search-field input{min-width:0;width:100%;background:transparent;border:0;color:var(--ink);outline:none;font-size:1rem;padding:0}.search-field input::placeholder{color:var(--muted);opacity:1}.search-help{color:var(--muted);font-size:.875rem;margin:.875rem 0 1.25rem}.search-status{font-size:.8125rem;color:var(--muted);margin-bottom:.5rem}.search-results{max-height:45dvh;overflow:auto;overscroll-behavior:contain;display:grid;gap:.25rem}.search-result{display:block;padding:1rem;border-radius:4px;border:1px solid transparent}.search-result[aria-selected="true"]{background:var(--surface-muted);border-color:var(--line)}.search-result strong{display:block;font-size:1rem;font-weight:500;line-height:1.5}.search-result span{display:block;color:var(--muted);font-size:.875rem;line-height:1.6;margin-top:.375rem}.search-empty{color:var(--muted);padding:1.5rem .5rem}.search-shortcuts{display:flex;flex-wrap:wrap;gap:1rem;border-top:1px solid var(--line);padding-top:1rem;margin-top:1rem;color:var(--muted);font-size:.75rem}.search-shortcuts span{display:flex;align-items:center;gap:.5rem}.search-field,.search-trigger{border-color:var(--control-line)}.search-field input{min-height:2.75rem}.search-result[aria-selected="true"]{border-color:var(--control-line)}@media(max-width:700px){.search-trigger kbd{display:none}.search-trigger{border-color:transparent;margin:0}.search-dialog-inner{padding:1.25rem}.search-heading h2{font-size:1.5rem}.search-results{max-height:44dvh}}@media print{.header-tools,.search-dialog{display:none!important}}@media screen{.hero{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,5vw,5rem);padding-block:3rem 3.5rem}.hero-copy{min-width:0}.hero-name{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;font-size:.9375rem;font-weight:600;margin-bottom:2rem}.hero-edition{font:.8125rem/1.5 var(--sans);color:var(--muted);padding-left:1.25rem;border-left:1px solid var(--control-line)}.hero-eyebrow{margin-bottom:1.25rem;max-width:42ch;font-size:.8125rem;line-height:1.7;letter-spacing:.025em;text-transform:none}.hero-mark{display:none}.hero h1{font-size:clamp(3.5rem,5.25vw,5.25rem);line-height:1.04;letter-spacing:-.045em;font-weight:600}.hero h1 em{display:inline-block;margin-top:.12em;font-size:1.03em;line-height:1.16;letter-spacing:-.05em;font-weight:400}.hero-description{font-size:1.0625rem;line-height:1.8;color:var(--muted);margin:1.5rem 0 1.75rem;max-width:47ch}.hero .button-row{gap:1rem 1.5rem}.hero-location{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-size:.8125rem;color:var(--muted);margin-top:1.75rem}.hero-location .icon{width:.875rem;height:.875rem}.location-divider{margin-inline:.25rem;color:var(--muted)}.selected-section{padding-block:3rem 4.5rem;border-top:1px solid var(--line)}.selected-section .section-heading{margin-bottom:2.5rem;gap:2rem;align-items:end}.selected-section h2{font-size:clamp(2.5rem,4vw,3.75rem);line-height:1.1;max-width:23ch}.selected-section h2 em{color:var(--ink)}.selected-intro{max-width:360px;color:var(--muted)}.selected-intro>p{font-size:1rem;line-height:1.8}.section-index{display:block;font:.75rem/1.6 var(--mono);margin-top:1.5rem;color:var(--muted)}.selected-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:3rem;border-top:1px solid var(--ink)}.selected-project{min-width:0;border-bottom:1px solid var(--line)}.selected-project-link{display:grid;grid-template-columns:minmax(0,1fr) 8.5rem;gap:1.5rem;align-items:start;padding-block:2rem;height:100%}.selected-visual{border-radius:6px;min-width:0;overflow:hidden}.selected-project-body{min-width:0}.selected-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.625rem;font-size:.8125rem;line-height:1.6;color:var(--muted);margin-bottom:1rem}.project-sequence{font:.8125rem/1.5 var(--mono);color:var(--accent-ink);flex:none}.selected-project h3{font-size:clamp(1.5rem,2.1vw,1.875rem);line-height:1.25;max-width:25ch}.selected-project-body>p:not(.selected-meta){font-size:1rem;line-height:1.8;margin-top:1rem;color:var(--muted);max-width:50ch}.selected-tools{display:block;font:.8125rem/1.7 var(--sans);color:var(--muted);margin-top:1.25rem;overflow-wrap:anywhere}.selected-result{display:block;font-size:.875rem;line-height:1.7;margin-top:1rem;color:var(--ink)}.selected-read{display:inline-flex;align-items:center;gap:.75rem;margin-top:1.5rem;min-height:2.75rem;color:var(--accent-ink);font-size:.875rem;text-decoration:underline;text-underline-offset:.3em}.selected-read>.icon{width:1.125rem;height:1.125rem;transition:transform .2s}.selected-project-link:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}.selected-project-link:hover .selected-read>.icon{transform:translateX(4px)}.selected-project--featured{grid-column:1/-1}.selected-project--featured .selected-project-link{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,6vw,6rem);padding-block:2.5rem 3rem}.selected-project--featured h3{font-size:clamp(2rem,3vw,2.75rem);max-width:22ch}.selected-project:not(.selected-project--featured) .project-art{min-height:8.5rem;padding:.875rem;justify-content:center}.selected-project:not(.selected-project--featured) :is(.art-caption,.art-foot,.diagram-labels,.test-ring){display:none}.selected-project:not(.selected-project--featured) .diagram{height:5.5rem}.selected-project:not(.selected-project--featured) .test-visual{min-height:0}.selected-project:not(.selected-project--featured) .test-item{flex-wrap:wrap;gap:.125rem;padding:.375rem;font-size:.75rem}.selected-project:not(.selected-project--featured) .test-item:last-child{margin:0}.selected-more{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-top:1.75rem}.selected-more>p{font-size:1rem;color:var(--muted)}.project-art{display:flex;flex-direction:column;justify-content:space-between;min-height:300px;padding:1.75rem;background:#182d48;color:#d5e0f6}.art-caption{display:flex;align-items:center;justify-content:space-between;gap:1rem;font:.75rem/1.6 var(--mono)}.art-caption>span:last-child{display:flex;align-items:center;gap:.5rem;flex:none}.art-foot{font:.75rem/1.6 var(--mono);letter-spacing:0;margin-top:.75rem}.art--sync,.art--erp{background:#dfe9f4;color:#244465}.art--lab{background:#243348;color:#d5e1f2}.art--concept{background:#e9edf3;color:#354c67}.diagram{display:block;width:100%;height:142px;overflow:visible}.diagram-guide{display:none}.diagram-frame{stroke:#7b91b0;stroke-width:1.2;fill:#11263e}.diagram-signal{stroke:#cadbff;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}.diagram-connector,.diagram-arrow{stroke:currentColor;stroke-width:1.3;stroke-linecap:round}.diagram-target{fill:#cadbff;stroke:#cadbff;stroke-width:1.2}.diagram-message{stroke:#244465;stroke-width:2;stroke-linecap:round}.diagram-dot{fill:#244465}.diagram-folder{fill:#f2f6fd;stroke:#687d9a;stroke-width:1.3}.diagram-shield{fill:#dfe9f4;stroke:#49698f;stroke-width:1.3}.diagram-labels{display:flex;justify-content:space-between;gap:1rem;padding-inline:.875rem;font:.75rem/1.5 var(--mono);margin-bottom:.5rem}.test-visual{display:flex;align-items:center;justify-content:center;gap:1.25rem;min-height:140px}.test-ring{display:grid;place-items:center;width:3.75rem;height:3.75rem;border:1px solid #687d9a;border-radius:50%;flex:none}.test-ring .icon{width:1.5rem;height:1.5rem}.test-visual>div{min-width:0;flex:1;max-width:220px}.test-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.625rem;border:1px solid #687d9a;background:#f2f6fd;font-size:.75rem;line-height:1.5;margin-bottom:.5rem}.test-item--active{background:#244465;color:#f0f4fa}.test-item .icon{width:1rem;height:1rem}.lab-stack{display:flex;flex-direction:column;gap:.5rem;padding-block:1rem}.lab-stack span{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem;font-size:.75rem;line-height:1.6;padding:.625rem;background:#2a405d;border:1px solid #6a7b96}.lab-stack i{font-style:normal}.concept-visual{display:flex;flex-wrap:wrap;gap:.75rem;padding-block:1.5rem}.concept-visual>span{flex:1;font:.875rem/1.6 var(--sans);padding:.75rem .5rem;border-bottom:2px solid #687d9a;min-width:5rem}.projects-grid--work{display:block;border-top:1px solid var(--ink)}.projects-grid--work .project-card{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(1.5rem,4vw,4rem);align-items:center;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding-block:2rem;overflow:visible}.project-card-figure{min-width:0;overflow:hidden;border-radius:6px}.projects-grid--work .project-card-body{padding:0;min-width:0}.project-card-meta{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.projects-grid--work .project-card h3{font-size:clamp(1.75rem,3vw,2.5rem);max-width:27ch}.projects-grid--work .project-card-body>p{max-width:60ch}.projects-grid--work .project-card-result{color:var(--ink);font-size:.9375rem}.projects-grid--work .project-card-link{min-height:2.75rem;margin-top:1rem;text-decoration:underline;text-underline-offset:.3em}.projects-grid--work .project-card:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}.background-section{background:#172c41;color:#f1f5fa;padding-top:4rem;--muted:#b9c8d8;--accent-ink:#cadbff;--line:#4e6277}.background-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(3rem,8vw,8rem);padding-bottom:3.5rem}.background-grid>div{min-width:0}.background-grid h2{margin-block:1.25rem 1.75rem;line-height:1.1}.background-grid>div>p:not(.eyebrow){font-size:1rem;color:var(--muted);line-height:1.9}.background-grid .text-link{margin-top:1.5rem}.career-preview{align-self:center;border-left:1px solid var(--line);padding-left:2rem}.career-preview article{position:relative;padding-bottom:2.5rem}.career-preview article:last-child{padding-bottom:0}.career-preview article::before{content:"";position:absolute;width:7px;height:7px;top:.375rem;left:calc(-2rem - 4px);background:#cadbff;box-shadow:0 0 0 5px #172c41}.career-preview article:last-child::before{background:#172c41;border:1px solid #b9c8d8}.career-date{font:.75rem/1.5 var(--mono);color:#cadbff}.career-preview h3{font-size:1.5rem;line-height:1.4;margin-top:1rem}.career-preview p{font-size:.875rem;color:var(--muted);margin-top:.75rem}.career-note{display:block;font-size:.8125rem;color:var(--muted);margin-top:.625rem}.background-foot{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:1.5rem;border-top:1px solid var(--line);font:.75rem/1.7 var(--mono);color:var(--muted)}.background-foot>span:first-child{font:italic 1.25rem/1.5 var(--serif);color:#f1f5fa}.credentials-strip{display:grid;grid-template-columns:200px minmax(0,1fr);align-items:center;gap:2rem;padding-block:3rem}.credentials-note{font-size:.8125rem;color:var(--muted);margin-top:.5rem}.credentials-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.credentials-links a{display:flex;align-items:center;gap:.625rem;min-width:0;font-size:.875rem;line-height:1.5;min-height:3.5rem}.credential-code{display:grid;place-items:center;flex:none;width:2rem;height:2.25rem;border:1px solid var(--line);border-radius:3px;font:.75rem/1 var(--mono);color:var(--muted)}.credential-logo{display:grid;place-items:center;flex:none;width:3rem;height:3rem;padding:.35rem;border:1px solid var(--line);border-radius:3px;background:#fff}.credential-logo img{display:block;width:100%;height:100%;object-fit:contain}.credential-logo--wide{width:4.25rem;padding:.5rem}.credentials-strip>div:first-child .text-link{display:inline-flex;margin-top:1rem}.credentials-links a>.icon{display:none}.credentials-links a:hover{text-decoration:underline;text-underline-offset:.25em}.credential-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.cert-card-links{display:flex;flex-direction:column;align-items:flex-start;gap:.125rem;margin-top:auto}.cert-card-links a{margin-top:0}.credential-collection{padding-block:4rem}.credential-collection .section-heading{margin-bottom:1.5rem}.credential-collection .section-heading h2{max-width:24ch}.credential-collection-intro{color:var(--muted);max-width:60ch;margin-bottom:2rem}.badge-collection{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.badge-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:1rem;border:1px solid var(--line);background:var(--white)}.badge-card-logo{display:grid;place-items:center;width:6rem;height:6rem;padding:.5rem;border:1px solid var(--line);border-radius:4px;background:#fff}.badge-card-logo img{display:block;width:100%;height:100%;object-fit:contain}.badge-card h3{font-size:1.1rem;line-height:1.3;margin-block:.625rem .375rem}.badge-card p:not(.eyebrow){font-size:.8125rem;color:var(--muted);margin-bottom:.75rem}.badge-card .text-link{margin-top:auto}.credential-archive{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2rem;padding:2rem;background:var(--surface-muted);border-top:3px solid var(--accent-ink);margin-block:4rem}.credential-archive h2{font-size:clamp(1.75rem,3vw,2.75rem);margin-block:.75rem 1rem}.credential-archive p:not(.eyebrow){color:var(--muted);max-width:60ch}.contact-band{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3rem;align-items:center;background:#dff592;color:#15262e;padding:3rem 3.5rem;border:1px solid #c3d775;border-radius:8px;margin-bottom:1rem}.contact-band .eyebrow{color:#40542a;margin-bottom:1.25rem}.contact-band h2{font-size:clamp(2.25rem,4vw,3.75rem);line-height:1.1;max-width:20ch}.contact-band em{color:#344b27}.contact-band p:not(.eyebrow){font-size:1rem;color:#425333;line-height:1.8;max-width:48ch;margin-top:1.5rem}.contact-band-actions{display:flex;flex-direction:column;gap:1rem;align-items:stretch}.contact-band .button{background:#142c39;color:#f6f8f4;border-color:#142c39;min-width:200px}.contact-band .button:hover{background:#263f4d;border-color:#263f4d}.contact-band .text-link{color:#294523;align-self:flex-end;text-decoration-color:currentColor}.contact-band--small h2{font-size:clamp(2rem,3.3vw,3.25rem)}.site-footer{padding-top:2rem;background:var(--paper)}.footer-top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr);align-items:start;gap:2rem;border-top:1px solid var(--line);padding-block:2rem}.footer-top>div{min-width:0}.footer-name{display:inline-flex;align-items:center;max-width:100%;min-height:2.75rem;font-size:1.375rem;font-weight:600;line-height:1.4;letter-spacing:0}.footer-top p,.footer-email,.footer-top nav a{font-size:.875rem;line-height:1.7}.footer-top p{color:var(--muted);max-width:34ch;margin-top:.25rem}.footer-email{display:inline-flex;align-items:center;gap:.5rem;min-height:2.75rem;max-width:100%}.footer-email>span{min-width:0;overflow-wrap:anywhere}.footer-email .icon{flex:none;width:1rem;height:1rem}.footer-top nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem;min-width:0}.footer-top nav a{display:flex;align-items:center;min-height:2.75rem;padding-block:.5rem;overflow-wrap:anywhere}.footer-top a:hover{color:var(--accent-ink);text-decoration:underline;text-underline-offset:.2em}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:1rem;font:.75rem/1.5 var(--mono);color:var(--muted);border-top:1px solid var(--line);padding-block:1rem}.footer-bottom a{display:inline-flex;align-items:center;gap:.5rem;min-height:2.75rem}.footer-bottom .icon{transform:rotate(-90deg);width:1rem;height:1rem}@media(max-width:1100px){.hero{gap:2rem}.hero h1{font-size:clamp(2.75rem,4.6vw,4.25rem)}.selected-list{column-gap:2rem}.selected-project-link{grid-template-columns:minmax(0,1fr);gap:1rem}.selected-project:not(.selected-project--featured) .selected-visual{display:none}.credentials-strip{grid-template-columns:minmax(0,1fr);gap:1rem}.credentials-strip>div:first-child{display:flex;gap:1rem;align-items:center}.credentials-strip>div:first-child .text-link{margin-top:0}.credentials-note{margin:0}.badge-collection{grid-template-columns:repeat(3,minmax(0,1fr))}.credential-archive{grid-template-columns:1fr;gap:1rem}.contact-band{padding:2.5rem}.project-art{padding:1.25rem}}@media(max-width:850px){.hero{grid-template-columns:minmax(0,1fr);gap:2.5rem;padding-block:2.5rem}.hero-copy{max-width:680px}.hero h1{font-size:clamp(3rem,7.3vw,4.75rem)}.hero-name{margin-bottom:1.5rem}.hero-description{max-width:54ch}.selected-section .section-heading{flex-direction:column;align-items:flex-start;gap:1.25rem}.selected-intro{max-width:55ch}.selected-project--featured .selected-project-link{gap:2rem}.selected-project h3{font-size:1.75rem}.art-caption{flex-wrap:wrap;gap:.25rem}.art-caption>span:last-child{display:none}.background-grid{gap:3rem}.background-grid h2{font-size:2.5rem}.career-preview h3{font-size:1.25rem}.contact-band{grid-template-columns:1fr;gap:1.75rem}.contact-band-actions{flex-direction:row;align-items:center;flex-wrap:wrap}.contact-band .text-link{align-self:center}.footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 2rem}.footer-top nav{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:640px){.site-header{position:static}.hero{padding-top:1.75rem;gap:2rem}.hero-name{padding-bottom:0;font-size:.875rem;gap:.5rem .75rem}.hero-edition{padding-left:.75rem;font-size:.75rem}.hero-eyebrow{margin-bottom:1.25rem;max-width:35ch}.hero h1{font-size:clamp(2.75rem,9.75vw,3.75rem);line-height:1.08}.hero-description{font-size:1rem;margin-block:1.5rem}.hero .button-row{gap:.625rem}.hero .button{padding:.8125rem 1rem}.hero-location{margin-top:1.5rem;gap:.375rem}.selected-section{padding-block:3rem}.selected-section .section-heading{flex-direction:column;gap:1.25rem;margin-bottom:2rem}.selected-section h2{font-size:2.5rem}.selected-intro{max-width:none}.section-index{margin-top:1rem}.selected-list{grid-template-columns:1fr}.selected-project-link{grid-template-columns:minmax(0,1fr);gap:1.5rem;padding-block:1.5rem 2rem}.selected-project--featured .selected-project-link{grid-template-columns:1fr;gap:1.75rem;padding-block:1.75rem 2rem}.selected-project--featured h3{font-size:2.125rem}.projects-grid--work .project-card{grid-template-columns:minmax(0,1fr);gap:1.5rem}.projects-grid--work .project-card h3{font-size:1.875rem}.selected-more{flex-direction:column;align-items:flex-start;gap:.75rem}.selected-more>p{font-size:1rem}.project-art{min-height:250px;padding:1.25rem}.art-caption>span:last-child{display:flex}.background-section{padding-top:3rem}.background-grid{grid-template-columns:minmax(0,1fr);gap:2.5rem;padding-bottom:2.5rem}.background-foot{flex-direction:column;align-items:flex-start;gap:.75rem}.background-foot>span:first-child{font-size:1.125rem}.career-preview h3{font-size:1.375rem}.credentials-strip{padding-block:2rem}.credentials-strip>div:first-child{flex-wrap:wrap;gap:.5rem 1rem}.credentials-links{grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:.5rem 1rem}.credentials-links a{font-size:.8125rem}.credential-logo--wide{width:4rem}.credential-actions{flex-direction:column;align-items:flex-start}.credential-collection{padding-block:3rem}.badge-collection{grid-template-columns:minmax(0,1fr)}.badge-card-logo{width:5rem;height:5rem}.credential-archive{margin-block:3rem;padding:1.25rem}.contact-band{padding:1.75rem 1.25rem;gap:1.5rem;border-radius:6px}.contact-band h2{font-size:2.3rem}.contact-band .button{min-width:0}.contact-band-actions{gap:.75rem 1.25rem}.contact-band .text-link{align-self:flex-start}.site-footer{padding-top:1.5rem}.footer-top{grid-template-columns:minmax(0,1fr);gap:1.25rem;padding-block:1.5rem}.footer-top nav{grid-column:auto;grid-template-columns:repeat(2,minmax(0,1fr))}.footer-bottom{flex-wrap:wrap}}@media(max-width:360px){.header-inner{gap:.25rem}.menu-toggle{gap:.25rem;padding-inline:.25rem}.hero-edition{display:none}.hero .button-row>.button{width:100%}.hero-location .location-divider{display:none}.hero-location>span:last-child{flex-basis:100%;margin-left:1.25rem}.test-ring{width:3rem;height:3rem}.contact-band h2{font-size:2rem}}}.portfolio-terminal{--terminal-bg:#111e2e;--terminal-text:#edf2fb;--terminal-muted:#aabbd0;--terminal-accent:#cadbff;min-width:0;position:relative}.console-label{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;margin-bottom:.875rem;color:var(--muted);font:.75rem/1.7 var(--sans)}.terminal-window{position:relative;color:var(--terminal-text);background:var(--terminal-bg);border:1px solid #607991;border-radius:6px;overflow:hidden}.terminal-chrome{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.25rem .75rem;padding:.5rem .75rem .5rem 1.25rem;border-bottom:1px solid #435b75}.terminal-window-title{color:var(--terminal-text);font:600 .9375rem/1.5 var(--sans);letter-spacing:0}.terminal-window-controls{display:flex;gap:.25rem;margin-left:auto}.terminal-window-control{display:grid;place-items:center;width:2.75rem;min-height:2.75rem;padding:0;background:transparent;color:var(--terminal-muted);border-radius:4px}.terminal-window-control svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.3}.terminal-window-control:hover{color:var(--terminal-text);background:#29415b}.terminal-window-control:disabled{display:none}.terminal-tabs{display:flex;flex-wrap:wrap;align-items:stretch;gap:.25rem;padding-inline:.75rem;border-bottom:1px solid #435b75;background:#182a40}.terminal-tab{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.625rem .75rem;min-width:2.75rem;min-height:2.875rem;font:.8125rem/1.5 var(--sans);color:var(--terminal-muted);background:transparent;border-bottom:2px solid transparent}.terminal-tab[aria-pressed="true"]{color:var(--terminal-text);border-color:var(--terminal-accent)}.terminal-tab:hover{color:var(--terminal-text);background:#29415b}.terminal-tab--help{margin-left:auto}.terminal-tab--help>span:first-child,.terminal-tab:disabled{display:none}.terminal-screen{display:flex;flex-direction:column;position:relative;height:24rem;overflow:hidden;font:1rem/1.8 var(--sans);overflow-wrap:anywhere;outline-offset:-4px}.terminal-output{flex:1;min-height:0;overflow:auto;padding:1.25rem 1.5rem;scrollbar-width:thin;scrollbar-color:#607991 var(--terminal-bg);scroll-behavior:auto;outline-offset:-4px}.terminal-screen p{max-width:none;margin:0}.terminal-welcome{color:var(--terminal-muted);font-size:.8125rem;margin-bottom:1rem!important}.terminal-welcome>span{display:none}.terminal-entry+.terminal-entry{border-top:1px solid #435b75;margin-top:1.5rem;padding-top:1.25rem}.terminal-echo{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem;font:.8125rem/1.7 var(--mono);color:var(--terminal-text);margin-bottom:.875rem!important}.terminal-prompt{white-space:nowrap;flex:none;font:inherit}.terminal-user{color:var(--terminal-muted)}.terminal-percent{color:var(--terminal-accent)}.terminal-echo code{min-width:0;overflow-wrap:anywhere;font:inherit}.terminal-response{padding-bottom:.25rem;font-size:1rem;line-height:1.8}.terminal-response>p+p{margin-top:.5rem}.terminal-comment{color:var(--terminal-muted);font-size:.8125rem;line-height:1.65;margin-bottom:.75rem!important}.terminal-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1rem 0 1.25rem}.terminal-stats>div{display:flex;flex-direction:column-reverse;gap:.5rem;border-right:1px solid #435b75;padding-right:.75rem}.terminal-stats>div:last-child{border:0;padding:0}.terminal-stats dt{font-size:.8125rem;color:var(--terminal-muted);line-height:1.5;max-width:11ch}.terminal-stats dd{margin:0;color:var(--terminal-text);font:400 2.625rem/1.05 var(--sans);letter-spacing:-.045em}.terminal-sites{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:1rem 0 .625rem;gap:.75rem;padding-top:.875rem;border-top:1px solid #435b75}.terminal-sites>span{min-width:0;display:flex;flex-direction:column;gap:.25rem;color:var(--terminal-text)}.terminal-sites i{display:none}.terminal-sites b{font:500 .8125rem/1.5 var(--sans)}.terminal-sites small{font:.75rem/1.4 var(--mono);color:var(--terminal-muted)}.terminal-meta{font-size:.8125rem!important;line-height:1.8;color:var(--terminal-muted);margin-top:.875rem!important}.terminal-person{color:var(--terminal-text);font-weight:600!important}.terminal-role{margin-top:1rem!important}.terminal-role>span{color:var(--terminal-muted)}.terminal-timeline{margin:1.25rem 0 .75rem}.terminal-timeline>div{margin-bottom:1rem}.terminal-timeline dt{color:var(--terminal-text)}.terminal-timeline dd{margin:0;color:var(--terminal-muted)}.terminal-link{display:block;width:fit-content;max-width:100%;overflow-wrap:anywhere;color:var(--terminal-accent);font-size:.875rem;min-height:2.75rem;padding-block:.625rem;text-decoration:underline;text-underline-offset:4px}.terminal-link:hover{color:#fff}.terminal-link-list{margin-top:.5rem}.terminal-work{padding:0;margin:0;list-style:none}.terminal-work li{padding-bottom:.75rem;margin-bottom:.75rem;border-bottom:1px solid #435b75}.terminal-project{display:flex;align-items:baseline;gap:.75rem;min-height:2.75rem;padding:.5rem 0;font-size:.9375rem;color:var(--terminal-text);text-decoration:underline;text-underline-offset:4px}.terminal-project:hover{color:var(--terminal-accent)}.terminal-project-index{color:var(--terminal-muted);font:.75rem/1.5 var(--mono);flex:none}.terminal-project>.icon{width:.875rem;height:.875rem;margin-left:auto}.terminal-project-status{display:block;font-size:.8125rem;color:var(--terminal-muted);padding-left:1.875rem}.terminal-stack{margin:.75rem 0}.terminal-stack>div{padding:.75rem 0;border-bottom:1px solid #435b75}.terminal-stack dt{color:var(--terminal-muted);font-size:.8125rem}.terminal-stack dd{margin:.25rem 0 0;color:var(--terminal-text);font-size:.9375rem;line-height:1.8}.terminal-open-list .terminal-link{display:grid;grid-template-columns:8.5rem minmax(0,1fr) 1rem;gap:.625rem;align-items:center;width:100%;text-decoration:none;border-bottom:1px solid #435b75;font-size:.875rem}.terminal-open-list code{color:var(--terminal-accent);font:.8125rem/1.6 var(--mono)}.terminal-open-list span{color:var(--terminal-muted)}.terminal-open-list .icon{width:1rem;height:1rem}.terminal-form{display:flex;align-items:center;flex:none;gap:.625rem;min-height:4rem;padding:.5rem .875rem .5rem 1.5rem;background:#192c43;border-top:1px solid #6c839d;font:.8125rem/1.5 var(--mono);margin:0}.terminal-input-wrap{display:flex;flex:1;position:relative;min-width:0}.terminal-form input{display:block;width:100%;min-width:0;min-height:2.75rem;padding:.625rem .25rem;background:transparent;border:0;border-radius:2px;color:var(--terminal-text);caret-color:var(--terminal-accent);font:1rem/1.4 var(--mono)}.terminal-form input::placeholder{font-size:.8125rem;color:var(--terminal-muted);opacity:1}.terminal-cursor{display:none}.terminal-run{display:grid;place-items:center;flex:none;width:2.75rem;min-height:2.75rem;padding:0;background:transparent;color:var(--terminal-accent);border-radius:4px}.terminal-run:hover{background:#324966}.terminal-run .icon{width:1.25rem;height:1.25rem}.terminal-completions{display:flex;flex-wrap:wrap;gap:.5rem;padding:.5rem 1rem;background:#182a40;border-top:1px solid #435b75;flex:none;max-height:7rem;overflow:auto;overscroll-behavior:contain}.terminal-completion{padding:.375rem .625rem;min-width:2.75rem;min-height:2.75rem;border:1px solid #849bb4;border-radius:4px;background:#22374c;color:var(--terminal-accent);font:.8125rem/1.5 var(--mono)}.terminal-completion:hover{background:#344f6a;border-color:var(--terminal-accent)}.terminal-history{margin:.5rem 0;padding-left:2rem;color:var(--terminal-text);font:.875rem/2 var(--mono)}.terminal-history li::marker{color:var(--terminal-muted)}.terminal-statusbar{display:flex;justify-content:space-between;align-items:center;gap:.625rem;padding:.625rem 1rem;color:var(--terminal-muted);border-top:1px solid #435b75;background:var(--terminal-bg);font:.75rem/1.5 var(--sans)}.terminal-statusbar>span:last-child{flex:none}.terminal-dock{padding-top:.625rem}.terminal-shortcuts{display:flex;flex-wrap:wrap;gap:.5rem}.terminal-command{display:inline-flex;align-items:center;gap:.75rem;min-width:2.75rem;min-height:2.75rem;padding:.375rem .625rem;background:transparent;color:var(--muted);border:1px solid transparent;border-radius:4px;font:.8125rem/1.5 var(--mono);text-align:left;text-decoration:underline;text-decoration-color:var(--control-line);text-underline-offset:.3em}.terminal-command code{font:inherit}.terminal-command:hover,.terminal-command[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.terminal-screen .terminal-suggestion{flex:none;font:.75rem/1.6 var(--mono);color:var(--terminal-muted);padding:.5rem 1.25rem;background:#182a40}.terminal-suggestion:empty{display:none}.terminal-key-hint{display:inline-flex;align-items:center;gap:.375rem}.terminal-key-hint kbd{color:var(--terminal-muted);border-color:#6c839d}.portfolio-terminal:not([data-terminal-initialized]) .terminal-key-hint{display:none}.terminal-zoom-dialog .terminal-key-hint{display:none}.terminal-help-list{display:grid;gap:.375rem}.terminal-help-list .terminal-command{display:grid;grid-template-columns:5rem minmax(0,1fr);background:transparent;color:var(--terminal-accent);border-color:transparent;padding:.5rem;min-height:2.75rem}.terminal-help-list .terminal-command:hover{background:#253950}.terminal-help-list .terminal-command span{color:var(--terminal-muted);font:.875rem/1.6 var(--sans)}.terminal-response--error>.terminal-command{margin-top:.75rem;background:#243950;border-color:#849bb4;color:var(--terminal-accent)}.terminal-fallback{display:flex;flex-wrap:wrap;gap:.5rem 1rem}.terminal-fallback .terminal-link{color:var(--accent-ink);font-size:.875rem}.terminal-reopen{display:flex;align-items:center;gap:.75rem;width:100%;min-height:6rem;padding:1.5rem;border:1px solid var(--control-line);border-radius:6px;background:var(--white);color:var(--ink)}.terminal-reopen .terminal-app-icon{width:1.75rem;height:1.75rem}.terminal-reopen>.icon{margin-left:auto}.terminal-zoom-dialog{width:min(960px,calc(100% - 2rem));height:min(800px,calc(100dvh - 2rem));max-height:calc(100dvh - 2rem);padding:0;border:0;border-radius:8px;background:var(--terminal-bg);color:var(--terminal-text);overflow:hidden}.terminal-zoom-dialog::backdrop{background:rgb(7 17 31 / 80%)}.terminal-zoom-dialog .terminal-window{height:100%;display:flex;flex-direction:column;border-color:#849bb4;border-radius:8px}.terminal-zoom-dialog .terminal-screen{height:auto;min-height:0;flex:1}.terminal-zoom-dialog .terminal-output{padding:1.75rem 2rem}.terminal-zoom-dialog :is(.terminal-chrome,.terminal-tabs,.terminal-statusbar){flex:none}.terminal-zoom-dialog :is(.terminal-stats,.terminal-sites){max-width:550px}.terminal-zoom-dialog .terminal-form{padding-inline:2rem}html.terminal-open{overflow:hidden}.portfolio-terminal :is(button,a,input):focus-visible{outline:3px solid var(--accent-ink);outline-offset:3px}.terminal-window :is(button,a,input):focus-visible{outline-color:var(--terminal-accent);outline-offset:-3px}.terminal-output:focus-visible{outline:3px solid var(--terminal-accent);outline-offset:-4px}.terminal-form[inert],.terminal-tools[inert]{display:none}@media(prefers-reduced-motion:no-preference){.terminal-entry--new{animation:terminal-arrive .2s ease-out}@keyframes terminal-arrive{from{transform:translateY(4px)}to{transform:translateY(0)}}}@media(max-width:1100px){.terminal-output{padding-inline:1.125rem}.terminal-form{padding-left:1.125rem}.terminal-tabs{gap:.25rem;padding-inline:.5rem}.terminal-tab{padding-inline:.5rem}}@media(max-width:850px){.terminal-output{padding-inline:1.5rem}.terminal-tab{padding-inline:1rem;font-size:.875rem}}@media(max-width:560px){.terminal-screen{height:25rem}.terminal-chrome{padding:.375rem .5rem .375rem 1rem}.terminal-window-title{font-size:.8125rem}.terminal-window-controls{gap:.125rem}.terminal-output{padding:1rem 1.125rem}.terminal-tabs{padding-inline:.375rem;gap:.125rem}.terminal-tab{padding-inline:.5rem;font-size:.8125rem}.terminal-form{padding-inline:1rem .5rem}.terminal-form .terminal-user{display:none}.terminal-stats{gap:.5rem}.terminal-stats>div{padding-right:.5rem}.terminal-stats dd{font-size:2.375rem}.terminal-statusbar{padding:.625rem .875rem}.terminal-statusbar>span:last-child{display:none}.terminal-zoom-dialog{width:calc(100% - 1rem);height:calc(100dvh - 1rem);max-height:calc(100dvh - 1rem)}.terminal-zoom-dialog .terminal-output{padding:1.25rem 1rem}.terminal-zoom-dialog .terminal-form{padding-inline:1rem .5rem}.terminal-open-list .terminal-link{grid-template-columns:7.75rem minmax(0,1fr)}.terminal-open-list .terminal-link>.icon{display:none}}@media(max-width:360px){.terminal-output{padding-inline:.875rem}.terminal-stats dd{font-size:2rem}.terminal-help-list .terminal-command{grid-template-columns:4.5rem minmax(0,1fr)}.terminal-open-list .terminal-link{grid-template-columns:1fr;gap:.25rem}}@media print{.portfolio-terminal{display:none!important}}