body{font-size:var(--text-body);line-height:var(--leading-body)}.nav-links{font-size:var(--text-ui)}.wordmark{font-size:var(--text-body);min-width:0;gap:var(--space-3)}.site-header .wordmark>span:last-child{font-size:var(--text-body);white-space:nowrap}.wordmark .monogram{flex-shrink:0}.wordmark-note{font-size:var(--text-caption);line-height:var(--leading-label)}.wordmark .wordmark-note{white-space:normal}.button,.text-link{font-size:var(--text-ui);line-height:1.5;min-height:48px}.button{padding:var(--space-3) var(--space-5);gap:var(--space-5)}.text-link{gap:var(--space-4)}.career-projects a,.delivery-links a,.expertise-preview a{font-size:var(--text-ui);line-height:1.5;min-height:44px}.contact-links a,.hero-bottom a,.metric a{min-height:44px}.actions{gap:var(--space-4) var(--space-5);flex-wrap:wrap}.annotation,.career-period,.client-visual figcaption,.delivery-industry,.education,.fieldbook-caption,.hero-bottom,.hero-meta,.project-caption,.project-tech,.project-visual figcaption,.section-kicker,.signal-hint,.site-footer,.source-note,.visual-top{font-size:var(--text-caption);line-height:var(--leading-label);letter-spacing:0}.section-kicker{margin-bottom:var(--space-5)}.section-heading{gap:var(--space-6);margin-bottom:var(--space-7)}.section-heading>p{max-width:44ch;font-size:var(--text-body);line-height:var(--leading-body)}.page-intro{padding-block:var(--section-space) var(--space-7)}.page-intro-grid{align-items:start;gap:var(--space-7)}.page-intro-grid>p{font-size:var(--text-lead);line-height:var(--leading-body)}.breadcrumbs,.page-label{font-size:var(--text-ui);line-height:var(--leading-label)}.breadcrumbs{flex-wrap:wrap;gap:var(--space-2) var(--space-3)}.section-space{padding-block:var(--section-space)}.interior-page .about,.interior-page .experience,.interior-page .route-collection{padding-top:var(--section-space)}.unified-project-grid{gap:var(--space-7) var(--space-6)}.project-overview-copy>p.project-summary{font-size:var(--text-body);line-height:var(--leading-body);max-width:65ch}.archive-filters,.capability-filters,.project-tabs,.project-tech{gap:var(--space-2) var(--space-3);flex-wrap:wrap}.archive-filters button,.capability-filters button,.project-tabs button{font-size:var(--text-ui);padding:var(--space-3) var(--space-5);min-height:48px;line-height:1.5}.client-visual figcaption,.project-visual figcaption,.visual-top{flex-wrap:wrap;gap:var(--space-2) var(--space-4)}.project-overview .client-visual,.project-overview .project-visual{aspect-ratio:auto;min-block-size:300px}.project-overview .project-screenshot{min-block-size:0}.project-screenshot{padding:var(--card-space)}.project-screenshot>img{margin-block:var(--space-4)}.architecture-art{container:project-diagram/inline-size}@container project-diagram (max-width: 559px){svg text{display:none}}.career-row{gap:var(--space-6);padding-block:var(--space-7)}.career-copy>p:not(.annotation){font-size:var(--text-body);line-height:var(--leading-body);margin-bottom:var(--space-5)}.career-copy .annotation{font-size:var(--text-caption);line-height:var(--leading-label)}.career-role{font-size:var(--text-ui);line-height:var(--leading-label)}.about{gap:var(--space-8)}.about-copy>p{max-width:65ch}.about-copy>p:not(.large-copy){font-size:var(--text-body);line-height:var(--leading-body);margin-top:var(--space-5)}.about-copy .large-copy{font-size:var(--text-lead);line-height:1.5}.portrait>span{font-size:var(--text-caption);line-height:var(--leading-label)}.education{flex-wrap:wrap;gap:var(--space-3) var(--space-5);padding-top:var(--space-5)}.capability-grid{gap:var(--space-7) var(--space-8)}.capability-grid article{margin:0;min-width:0}.capability-grid .capability-ai,.capability-grid article{padding:var(--card-space)}.capability-grid article>div>p:not(.capability-note){font-size:var(--text-body);line-height:var(--leading-body);margin-top:var(--space-4)}.capability-grid .skill-list{font-size:var(--text-caption);line-height:var(--leading-label);gap:var(--space-2);margin-block:var(--space-5)}.skill-list li{padding:var(--space-2) var(--space-3)}.ai-workflow,.capability-note,.capability-scope{font-size:var(--text-caption);line-height:var(--leading-label)}.workflow-step{width:28px;height:28px;flex-shrink:0;font-size:var(--text-caption)}.contact-grid{gap:var(--space-8);margin-top:var(--space-7);padding-top:var(--space-6)}.contact-grid p:not(.form-note){font-size:var(--text-body);line-height:var(--leading-body)}.email-link{overflow-wrap:anywhere;line-height:1.4}.contact-links{gap:var(--space-3) var(--space-5);font-size:var(--text-ui)}.contact-form>summary{font-size:var(--text-body);min-height:48px;gap:var(--space-4);align-items:baseline}.contact-form>summary>span{flex-shrink:0}.contact-form label{font-size:var(--text-ui);line-height:1.5;margin-block:var(--space-5) var(--space-2)}.contact-form input,.contact-form textarea{font-size:var(--text-body);line-height:1.5;padding:var(--space-3) var(--space-4);min-height:48px}.contact-form .form-note{font-size:var(--text-caption);line-height:var(--leading-label)}.site-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-4) var(--space-6);align-items:center;padding-block:var(--space-6)}.site-footer>*{min-width:0}.site-footer>p:nth-child(2),.site-footer>p:nth-child(3){order:0}.site-footer .footer-navigation{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5)}.site-footer .footer-navigation a{min-height:44px;font-size:var(--text-ui)}.site-footer .motion-toggle{justify-self:start;font-size:var(--text-caption);min-height:44px}.site-footer>a:last-child{justify-self:end}@media (max-width:1100px){.site-header .nav-inner{height:88px}.site-header .menu-toggle{display:flex;align-items:center;gap:var(--space-4);min-height:48px;padding:var(--space-3);font-size:var(--text-ui);background:none;border:0}.site-header .menu-toggle>span{font-size:24px}.site-header .nav-links{position:absolute;top:100%;inset-inline:0;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:var(--space-4) var(--space) var(--space-5);background:var(--paper);border-bottom:1px solid var(--line);visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-8px);clip-path:none;transition:opacity .18s ease,transform .24s var(--motion-ease),visibility .24s}.site-header .nav-links.is-open{visibility:visible;opacity:1;pointer-events:auto;transform:none}.site-header .nav-links a{font-size:var(--text-lead);margin:0;padding:var(--space-2) 0;min-height:48px}.site-header .nav-links a:after{display:none}.career-row{grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr)}.career-period{grid-column:1/-1}.contact-grid{gap:var(--space-7)}}@media (max-width:700px){.page-intro-grid{grid-template-columns:1fr;gap:var(--space-5)}.section-heading{align-items:start;flex-wrap:wrap;gap:var(--space-5);margin-bottom:var(--space-6)}.career-row{grid-template-columns:1fr;gap:var(--space-5);padding-block:var(--space-6)}.career-period{grid-column:1}.about,.contact-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-7)}.capability-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}.capability-ai>div{grid-template-columns:1fr}.capability-ai .skill-list{grid-column:1;grid-row:auto}.site-footer{grid-template-columns:minmax(0,1fr)}.site-footer>*,.site-footer>a:last-child{grid-column:1;justify-self:start;order:0}.site-footer .footer-navigation{grid-column:1;gap:var(--space-2) var(--space-5)}}@media (max-width:400px){.site-header .nav-inner{height:auto;min-height:88px;padding-block:var(--space-2);flex-wrap:wrap;-moz-column-gap:var(--space-2);column-gap:var(--space-2)}.site-header .wordmark{gap:var(--space-2);flex:1 1 0%}.site-header .wordmark>span:last-child{min-width:0}.site-header .menu-toggle{gap:var(--space-2);padding:var(--space-2) 0 var(--space-2) var(--space-2);flex-shrink:0;margin-left:auto}}:where(a,button,input,textarea,select,summary){-webkit-tap-highlight-color:#b83d2526}:where(a,button,summary):focus-visible{outline:2px solid var(--accent);outline-offset:5px}:where(.text-link,.footer-navigation a,.breadcrumbs a,.contact-links a,.hero-bottom a,.career-projects a,.capability-grid a,.blog-contents a,.project-overview h3 a,.next-project a,.delivery-project-links a){text-decoration-thickness:1px;text-underline-offset:.25em;transition:color var(--interaction-fast) ease,border-color var(--interaction-fast) ease}.button,.capability-filters button,.menu-toggle,.motion-toggle,.project-tabs button{transition:transform var(--interaction-duration) var(--interaction-ease),background-color var(--interaction-fast) ease,border-color var(--interaction-fast) ease,color var(--interaction-fast) ease}.blog-read-link>span[aria-hidden=true],.button span,.text-link>span[aria-hidden=true]{display:inline-block;transition:transform var(--interaction-duration) var(--interaction-ease)}.project-overview .project-image{outline-offset:5px;transition:transform var(--interaction-duration) var(--interaction-ease)}.project-overview:focus-within h3 a{color:var(--accent);text-decoration:underline}.button:focus-visible{background-color:var(--accent);border-color:var(--accent);color:white}.text-link:focus-visible{color:var(--accent)}.button:disabled{cursor:wait;transform:none}.button:not(:disabled):active,.capability-filters button:active,.project-tabs button:active{transform:translateY(1px)}@media (hover:hover) and (pointer:fine){.button:not(:disabled):hover{transform:translateY(-2px)}.blog-read-link:hover>span[aria-hidden=true],.button:hover span,.text-link:hover>span[aria-hidden=true]{transform:translate(2px,-2px)}.project-overview:hover h3 a{color:var(--accent);text-decoration:underline;text-underline-offset:.2em}.project-overview .project-image:hover{transform:translateY(-3px)}:where(.footer-navigation a,.breadcrumbs a,.contact-links a,.hero-bottom a,.career-projects a,.capability-grid a,.next-project a):hover{color:var(--accent);text-decoration:underline}}@media (hover:none),(pointer:coarse){.button:hover span,.site-header .nav-links a:focus-visible,.site-header .nav-links a:hover{transform:none}.client-preview:hover img{scale:1}.project-image:hover .screenshot-frame{transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.blog-read-link>span,.button,.button span,.capability-filters button,.project-overview .project-image,.project-tabs button,.site-header .nav-links a,.text-link>span{transform:none!important;transition:none!important}}html[data-motion=reduced] :is(.button,.button span,.text-link>span,.blog-read-link>span,.project-overview .project-image,.site-header .nav-links a,.project-tabs button,.capability-filters button){transform:none!important}.project-notes{max-width:76rem;margin-block:var(--section-space);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--space-6) var(--space-8);border-top:1px solid var(--line);padding-top:var(--space-6)}.project-notes h2{font-size:var(--text-heading);line-height:var(--leading-heading)}.project-notes h3{font-size:var(--text-subheading);margin-bottom:var(--space-3)}.project-notes section+section{margin-top:var(--space-7)}.project-notes li,.project-notes p{max-width:66ch;line-height:var(--leading-body)}.project-notes ul{padding-left:var(--space-5)}.project-notes li+li{margin-top:var(--space-2)}.project-notes .project-role{color:var(--muted);margin-top:var(--space-4)}.project-notes .text-link{margin-top:var(--space-5)}@media (max-width:700px){.project-notes{grid-template-columns:minmax(0,1fr);gap:var(--space-5)}}