@font-face{font-family:"Source Serif 4";src:url(/fonts/source-serif-4-roman.woff2)format("woff2");font-style:normal;font-weight:200 900;font-display:swap}@font-face{font-family:"Source Serif 4";src:url(/fonts/source-serif-4-italic.woff2)format("woff2");font-style:italic;font-weight:200 900;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-latin.woff2)format("woff2");font-style:normal;font-weight:400 700;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin.woff2)format("woff2");font-style:normal;font-weight:400 700;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f8f7f4;--ink:#282a27;--muted:#646760;--rule:#d6d8d0;--accent:#365b45;--figure-surface:#f0f1eb;--hover-surface:#e7ebe2;--selection:#dce4d8;--figure-border:#bfc6b8;--accent-rule:#a5b39d;--footer-separator:#b1b5aa;--serif:"Source Serif 4", Georgia, serif;--sans:"Inter", sans-serif;--mono:"JetBrains Mono", monospace;--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-6:48px;--space-8:64px;--space-12:96px;--page-width:1184px;--radius:2px}@media screen{:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#20231f;--ink:#e9e8df;--muted:#adb3a7;--rule:#444d40;--accent:#b4cca8;--figure-surface:#282e26;--hover-surface:#343d2f;--selection:#44543b;--figure-border:#66785c;--accent-rule:#829975;--footer-separator:#66785c}}@media screen and (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#20231f;--ink:#e9e8df;--muted:#adb3a7;--rule:#444d40;--accent:#b4cca8;--figure-surface:#282e26;--hover-surface:#343d2f;--selection:#44543b;--figure-border:#66785c;--accent-rule:#829975;--footer-separator:#66785c}}*,:before,:after{box-sizing:border-box}html{scroll-padding-top:32px}body{background:var(--paper);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;margin:0;font-size:18px;line-height:1.65}::selection{background:var(--selection);color:var(--ink)}a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}a:hover{color:var(--accent)}.arrow-link{align-items:center;gap:var(--link-gap,8px);max-width:100%;text-decoration:none;display:inline-flex}.arrow-link:where(:hover,:focus-visible){text-decoration:none}.link-label{min-width:0}.arrow-link:is(:hover,:focus-visible)>.link-label{text-decoration-line:underline}.link-arrow{width:var(--link-arrow-size,14px);height:var(--link-arrow-size,14px);stroke-width:1.6px;flex:none;display:block}.arrow-link:is(:hover,:focus-visible)>.link-arrow[data-direction=up-right],.send-button:enabled:is(:hover,:focus-visible)>.link-arrow{stroke-width:2.6px}a,button,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:var(--radius)}button{font:inherit}button,summary{touch-action:manipulation}[hidden]{display:none!important}h1,h2,h3,h4,p,ol,ul,dl,dd,figure{margin:0}h1,h2,h3,h4{font-weight:500}main{min-width:0}main:focus{outline:none}.page-width{width:min(var(--page-width), calc(100% - 96px));margin-inline:auto}.skip-link{z-index:2;background:var(--ink);color:var(--paper);font-family:var(--sans);padding:10px 16px;font-size:14px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.masthead{border-bottom:1px solid var(--rule);align-items:center;gap:28px;min-height:100px;display:flex}.wordmark{font-family:var(--serif);letter-spacing:-1.4px;font-size:29px;font-weight:650;line-height:1.2;text-decoration:none}.wordmark span{color:var(--accent)}.masthead-description{color:var(--muted);font-family:var(--sans);border-left:1px solid var(--rule);padding-left:27px;font-size:12px}.resume-link{font-family:var(--sans);min-height:44px;margin-left:auto;font-size:12px}.theme-toggle{width:40px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:0 0 40px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.theme-toggle[hidden]{visibility:hidden;display:inline-flex!important}.theme-toggle:before{content:"";border:1px solid var(--rule);background:var(--figure-surface);border-radius:50%;position:absolute;inset:2px 0}.theme-toggle:hover{color:var(--accent)}.theme-toggle:hover:before{background:var(--hover-surface);border-color:var(--accent-rule)}.theme-toggle:focus-visible{border-radius:50%}.theme-icon-stack{pointer-events:none;width:24px;height:24px;display:block;position:relative}.theme-toggle:active .theme-icon-stack{transform:scale(.88)}.theme-icon{stroke-width:1.6px;transform-origin:50%;width:24px;height:24px;position:absolute;inset:0}.theme-icon-sun{opacity:1;transform:translateY(0)rotate(0)scale(1)}.theme-icon-moon{opacity:0;transform:translateY(5px)rotate(-100deg)scale(.45)}:root[data-theme=dark] .theme-icon-sun{opacity:0;transform:translateY(-5px)rotate(100deg)scale(.45)}:root[data-theme=dark] .theme-icon-moon{opacity:1;transform:translateY(0)rotate(0)scale(1)}:root[data-theme-ripple] a,:root[data-theme-ripple] button,:root[data-theme-ripple] .theme-toggle:before{transition:none}:root[data-theme-ripple]::view-transition{pointer-events:none}:root[data-theme-ripple]::view-transition-group(root){animation:none}:root[data-theme-ripple]::view-transition-image-pair(root){isolation:isolate}:root[data-theme-ripple]::view-transition-old(root){mix-blend-mode:normal;animation:none}:root[data-theme-ripple]::view-transition-new(root){mix-blend-mode:normal;animation:none}:root[data-theme-ripple]::view-transition-old(root){z-index:1}:root[data-theme-ripple]::view-transition-new(root){z-index:2;animation:.6s cubic-bezier(.4,0,.2,1) both theme-ripple}@keyframes theme-ripple{0%{clip-path:circle(var(--theme-ripple-start) at var(--theme-ripple-x) var(--theme-ripple-y))}to{clip-path:circle(var(--theme-ripple-radius) at var(--theme-ripple-x) var(--theme-ripple-y))}}@media (prefers-reduced-motion:reduce){:root[data-theme-ripple]::view-transition-new(root){animation:none}}.page-layout{grid-template-columns:178px minmax(0,1fr);align-items:start;gap:70px;display:grid}.contents{font-family:var(--sans);z-index:1;padding-top:64px;position:sticky;top:48px}.contents h2{font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:21px;font-size:11px;font-weight:400}.contents ol{padding:0;list-style:none}.contents li{margin-bottom:4px}.contents li a{min-height:37px;color:var(--muted);align-items:center;gap:14px;font-size:13px;text-decoration:none;display:flex}.contents-number{font-family:var(--mono);color:var(--muted);font-size:11px}.contents li a[aria-current]{color:var(--accent);font-weight:600}.contents li a[aria-current] .contents-number{color:var(--accent)}.contents li a:hover{color:var(--ink)}.elsewhere{border-top:1px solid var(--rule);max-width:130px;margin-top:35px;padding-top:23px;display:grid}.elsewhere a{width:fit-content;min-height:32px;color:var(--muted);font-size:11px}.elsewhere a:hover,.elsewhere .link-arrow{color:var(--accent)}.margin-thought{font-family:var(--serif);color:var(--muted);margin-top:59px;font-size:14px;font-style:italic;line-height:1.6}.paper-header{text-align:center;border-bottom:1px solid var(--ink);padding:59px 0 43px}.document-type{font-family:var(--mono);color:var(--muted);letter-spacing:1.2px;text-transform:uppercase;margin-bottom:25px;font-size:11px}h1{letter-spacing:-2.5px;text-wrap:balance;font-size:clamp(50px,5.1vw,72px);font-weight:550;line-height:1.06}.byline{margin-top:24px}.author{font-size:22px;font-weight:550;line-height:1.4}.author-role{font-family:var(--sans);margin-top:7px;font-size:14px}.author-location{font-family:var(--sans);color:var(--muted);margin-top:3px;font-size:11px}.intro-link{min-height:36px;font-family:var(--sans);color:var(--accent);margin-top:20px;font-size:11px}.paper-section{border-bottom:1px solid var(--rule);padding-block:42px;scroll-margin-top:12px}.section-heading{align-items:baseline;gap:17px;margin-bottom:22px;display:flex}.section-heading>span{font-family:var(--mono);color:var(--accent);font-size:11px}.section-heading h2{letter-spacing:-.65px;font-size:29px;font-weight:550;line-height:1.25}.annotated-text{grid-template-columns:minmax(0,1fr) 158px;gap:44px;display:grid}.prose{font-size:17px;line-height:1.75}.prose p+p{margin-top:14px}.prose a{color:var(--accent)}.sidenote{border-left:1px solid var(--rule);align-self:start;margin-top:5px;padding-left:17px}.note-label{font-family:var(--sans);color:var(--muted);margin-bottom:10px;font-size:11px;line-height:1.5;display:block}.sidenote p{font-family:var(--sans);font-size:11px;line-height:1.95}.delivery-figure{margin-top:30px}.figure-topline{border:1px solid var(--rule);background:var(--figure-surface);font-family:var(--sans);border-bottom:0;justify-content:space-between;align-items:center;padding:14px 24px 0;font-size:11px;display:flex}.figure-type{color:var(--muted);font-family:var(--mono);font-size:11px}.delivery-flow{border-inline:1px solid var(--rule);background:var(--figure-surface);grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;padding:23px 24px 0;list-style:none;display:grid}.delivery-flow li{border:1px solid var(--figure-border);border-radius:var(--radius);background:var(--paper);text-align:center;padding:10px 10px 12px;position:relative}.delivery-flow li:not(:last-child):after{content:"→";font-family:var(--sans);color:var(--accent);font-size:17px;position:absolute;top:50%;right:-22px;transform:translateY(-50%)}.flow-number{font-family:var(--serif);color:var(--muted);margin-bottom:4px;font-size:11px;font-style:italic;line-height:1.5;display:block}.delivery-flow strong{font-family:var(--sans);font-size:12px;font-weight:500;display:block}.delivery-flow li>span:last-child{font-family:var(--sans);color:var(--muted);margin-top:3px;font-size:11px;display:block}.feedback-line{background:var(--figure-surface);border:1px solid var(--rule);text-align:center;border-top:0;height:55px;padding-top:14px;position:relative}.feedback-line:before{content:"";border:1px solid var(--accent-rule);border-top:0;height:25px;position:absolute;top:0;left:12%;right:12%}.feedback-line:after{content:"↑";color:var(--accent);font-size:14px;position:absolute;top:-10px;left:calc(12% - 4px)}.feedback-line span{background:var(--figure-surface);color:var(--accent);font-size:11px;font-family:var(--mono);padding-inline:12px;position:relative}figcaption{color:var(--muted);margin-top:11px;font-size:12px;line-height:1.6}figcaption>span{color:var(--ink);margin-right:4px;font-style:italic}.section-intro{color:var(--muted);margin-top:-9px;margin-bottom:27px;font-size:16px}.project{grid-template-columns:27px minmax(0,1fr) 158px;column-gap:18px;display:grid}.project+.project{border-top:1px solid var(--rule);margin-top:29px;padding-top:29px}.project-index{font-family:var(--mono);color:var(--muted);padding-top:30px;font-size:11px}.project-subtitle{font-family:var(--sans);color:var(--muted);margin-bottom:5px;font-size:11px}.project h3{letter-spacing:-.55px;font-size:26px;line-height:1.3}.project-description{margin-top:12px;font-size:16px;line-height:1.7}.technology-list{flex-wrap:wrap;gap:7px 13px;margin-top:16px;padding:0;list-style:none;display:flex}.technology-list li{font-family:var(--mono);color:var(--muted);font-size:11px}.project-references{margin-top:4px;padding-left:24px}.project-references>p{font-size:13px;line-height:1.5}.reference-links{justify-items:start;gap:7px;margin-top:17px;display:grid}.reference-links a{font-family:var(--sans);color:var(--accent);font-size:11px;line-height:1.8}.project-notes{margin-top:16px}.project-notes summary{cursor:pointer;min-height:36px;font-family:var(--sans);color:var(--accent);align-items:center;gap:14px;font-size:11px;list-style:none;display:inline-flex}.project-notes summary::-webkit-details-marker{display:none}.project-notes summary:hover>span:first-child{text-underline-offset:4px;text-decoration:underline}.disclosure-symbol{width:9px;height:9px;position:relative}.disclosure-symbol:before,.disclosure-symbol:after{content:"";background:currentColor;width:9px;height:1px;position:absolute;top:4px;left:0}.disclosure-symbol:after{transform:rotate(90deg)}.project-notes[open] .disclosure-symbol:after{transform:rotate(0)}.notes-content{background:var(--figure-surface);border-left:2px solid var(--accent-rule);margin-top:9px;padding:17px 20px}.notes-content>div+div{margin-top:15px}.notes-content h4{font-family:var(--sans);font-size:11px;font-weight:600}.notes-content p{margin-top:5px;font-size:14px}.experience-list{margin-top:28px}.experience-entry{grid-template-columns:154px minmax(0,1fr);gap:24px;display:grid}.experience-entry+.experience-entry{margin-top:32px}.experience-period{font-family:var(--mono);color:var(--muted);padding-top:7px;font-size:11px}.experience-entry h3{letter-spacing:-.4px;font-size:22px;line-height:1.4}.company-link{font-family:var(--sans);color:var(--accent);margin-top:2px;font-size:11px}.experience-entry div>p{max-width:65ch;margin-top:10px;font-size:15px;line-height:1.75}.education{border-top:1px solid var(--rule);color:var(--muted);grid-template-columns:154px minmax(0,1fr);gap:24px;margin-top:31px;padding-top:22px;font-size:13px;display:grid}.education .note-label{margin:0;padding-top:5px}.toolkit-list{row-gap:21px;display:grid}.toolkit-list>div{grid-template-columns:154px minmax(0,1fr);gap:24px;display:grid}.toolkit-list dt{font-family:var(--sans);padding-top:3px;font-size:12px;font-weight:500}.toolkit-list dd{font-family:var(--mono);color:var(--muted);font-size:11px;line-height:2.1}.contact-section{padding-block:40px 32px}.contact-section>p{font-size:19px;line-height:1.65}.contact-actions{align-items:center;gap:24px;margin-top:19px;display:flex}.email-link{--link-arrow-size:18px;--link-gap:10px;letter-spacing:-.5px;color:var(--accent);font-size:26px}.copy-email{border:1px solid var(--rule);border-radius:var(--radius);color:var(--muted);font-family:var(--sans);cursor:pointer;white-space:nowrap;background:0 0;padding:10px 13px;font-size:11px}.copy-email:hover{background:var(--hover-surface);color:var(--accent);border-color:var(--accent-rule)}.contact-section .copy-status{font-family:var(--sans);color:var(--accent);min-height:18px;margin-top:10px;font-size:11px}.contact-profiles{font-family:var(--sans);color:var(--accent);gap:24px;margin-top:12px;font-size:12px;display:flex}.contact-profiles a{min-height:32px}.paper-footer{font-family:var(--sans);color:var(--muted);justify-content:space-between;align-items:center;gap:24px;padding:24px 0 45px;font-size:11px;display:flex}.paper-footer p span{color:var(--footer-separator);margin-inline:9px}.paper-footer a{white-space:nowrap}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}a,button{transition:color .16s,background-color .16s}.disclosure-symbol:after{transition:transform .16s}.theme-toggle:before{transition:background-color .18s,border-color .18s}.theme-icon-stack{transition:transform .18s}.theme-icon{transition:transform .52s cubic-bezier(.22,1,.36,1),opacity .32s}.link-arrow{transition:transform .22s cubic-bezier(.22,1,.36,1),stroke-width .18s}.arrow-link:is(:hover,:focus-visible)>.link-arrow[data-direction=right]{transform:translate(3px)}.arrow-link:is(:hover,:focus-visible)>.link-arrow[data-direction=left]{transform:translate(-3px)}.arrow-link:is(:hover,:focus-visible)>.link-arrow[data-direction=down]{transform:translateY(3px)}.arrow-link:is(:hover,:focus-visible)>.link-arrow[data-direction=up]{transform:translateY(-3px)}}@media (width>=1440px){.page-layout{grid-template-columns:188px minmax(0,1fr);gap:80px}}@media (width<=1100px){.page-width{width:calc(100% - 64px)}.page-layout{grid-template-columns:148px minmax(0,1fr);gap:38px}.annotated-text{grid-template-columns:minmax(0,1fr) 136px;gap:26px}.project{grid-template-columns:23px minmax(0,1fr) 136px;column-gap:13px}.project-references{padding-left:12px}.delivery-flow{gap:19px;padding-inline:16px}.delivery-flow li{padding-inline:4px}.delivery-flow li:not(:last-child):after{right:-17px}.delivery-flow li>span:last-child{font-size:11px}}@media (width<=850px){.page-width{width:calc(100% - 48px)}.masthead{min-height:82px}.page-layout{grid-template-columns:minmax(0,1fr);gap:0;max-width:730px}.contents{padding-top:20px;position:static}.contents nav{justify-content:center;align-items:center;display:flex}.contents h2,.contents-number,.elsewhere,.margin-thought{display:none}.contents ol{flex-wrap:wrap;justify-content:center;gap:3px 22px;display:flex}.contents li{margin:0}.contents li a{font-size:11px}.paper-header{padding-top:39px}h1{font-size:64px}}@media (width<=600px){.page-width{width:calc(100% - 40px)}.masthead{gap:10px;min-height:74px}.wordmark{font-size:26px}.masthead-description{display:none}.resume-link{font-size:11px}.contents{padding-top:13px}.contents ol{gap:0 16px}.contents li a{min-height:34px;font-size:11px}.paper-header{padding-top:31px;padding-bottom:30px}.document-type{letter-spacing:.7px;margin-bottom:21px;font-size:11px}h1{letter-spacing:-1.6px;font-size:clamp(43px,11vw,60px)}.byline{margin-top:23px}.author{font-size:21px}.author-role{font-size:12px}.intro-link{margin-top:14px}.paper-section{padding-block:30px}.section-heading{gap:12px;margin-bottom:20px}.section-heading h2{font-size:27px}.annotated-text{grid-template-columns:minmax(0,1fr);gap:20px}.prose{font-size:17px;line-height:1.7}.sidenote{margin-top:0;padding-left:14px}.sidenote .note-label{margin-bottom:5px}.delivery-figure{margin-top:24px}.figure-topline{padding:14px 15px 0}.figure-type{font-size:11px}.delivery-flow{grid-template-columns:minmax(0,1fr);gap:23px;padding:20px 28px}.delivery-flow li{text-align:left;grid-template-columns:18px 1fr;column-gap:11px;padding:10px 17px;display:grid}.flow-number{grid-row:1/3;align-self:center;margin:0}.delivery-flow strong{font-size:12px}.delivery-flow li>span:last-child{margin-top:0;font-size:11px}.delivery-flow li:not(:last-child):after{content:"↓";font-size:17px;inset:auto auto -25px 50%;transform:translate(-50%)}.feedback-line{height:34px;padding-top:0}.feedback-line:before,.feedback-line:after{display:none}.feedback-line span{font-size:11px}figcaption{font-size:12px}.section-intro{margin-bottom:24px;font-size:16px}.project{grid-template-columns:24px minmax(0,1fr);column-gap:10px}.project h3{font-size:25px}.project-description{font-size:16px}.project-references{border-top:1px solid var(--rule);grid-column:2;margin-top:17px;padding:15px 0 0}.project-references .note-label{margin-bottom:5px}.project-references>p{font-size:13px}.reference-links{flex-wrap:wrap;gap:20px;margin-top:9px;display:flex}.reference-links a{min-height:30px;font-size:11px}.project-notes summary{min-height:40px}.project+.project{margin-top:24px;padding-top:24px}.experience-entry{grid-template-columns:minmax(0,1fr);gap:7px}.experience-period{padding:0}.experience-entry h3{font-size:22px}.experience-entry div>p{font-size:16px}.education{grid-template-columns:minmax(0,1fr);gap:6px;font-size:13px}.education .note-label{padding:0}.toolkit-list>div{grid-template-columns:minmax(0,1fr);gap:5px}.toolkit-list dd{font-size:11px}.contact-section>p{font-size:18px}.desktop-break{display:none}.contact-actions{flex-direction:column;align-items:flex-start;gap:13px}.email-link{overflow-wrap:anywhere;font-size:clamp(20px,5.6vw,26px)}.copy-email{min-height:40px}.paper-footer{align-items:flex-start;padding-bottom:30px;font-size:11px}.paper-footer p{max-width:180px}.paper-footer p span{margin-inline:3px}}@media print{:root{--paper:#fff;--ink:#111;--muted:#444;--rule:#ccc;--accent:#222;--figure-surface:#f5f5f5}@page{margin:18mm}body{font-size:11pt}.page-width{width:100%;max-width:none}.page-layout{display:block}.contents,.skip-link,.resume-link,.theme-toggle,.theme-toggle[hidden],.intro-link,.copy-email,.copy-status,.paper-footer a{display:none}.masthead{min-height:46px}.paper-header{padding:24px 0}h1{font-size:38pt}.paper-section{padding-block:22px}.section-heading,h3{break-after:avoid}.project,.experience-entry,figure{break-inside:avoid}.project{grid-template-columns:25px minmax(0,1fr) 120px}.delivery-flow{grid-template-columns:repeat(4,minmax(0,1fr))}details::details-content{content-visibility:visible}.project-notes summary{display:none}a,.arrow-link:is(:hover,:focus-visible)>.link-label{text-decoration:none}.arrow-link>.link-arrow{stroke-width:1.6px!important;transform:none!important}}.site-navigation{border-bottom:1px solid var(--rule);font:12px var(--sans);gap:28px;display:flex}.site-navigation a{min-height:46px;color:var(--muted);align-items:center;text-decoration:none;display:inline-flex;position:relative}.site-navigation a[aria-current]{color:var(--accent)}.site-navigation a[aria-current]:after{content:"";background:var(--accent);height:2px;position:absolute;inset:auto 0 -1px}.site-navigation a:hover{color:var(--ink)}.page-intro{text-align:left;padding-block:60px 40px}.page-intro h1{overflow-wrap:anywhere;font-size:clamp(42px,4.6vw,64px)}.page-intro .document-type{margin-bottom:20px}.page-description{max-width:62ch;color:var(--muted);text-wrap:pretty;margin-top:24px;font-size:19px;line-height:1.75}.back-link{font:12px var(--sans);color:var(--accent);margin-bottom:28px}.text-link{min-height:40px;font:12px/1.6 var(--sans);color:var(--accent)}.section-link{margin-top:25px}.project h3 a{text-decoration:none}.project h3 a:hover{text-decoration:underline}.project-study-link{margin-top:12px;font-size:11px}.project-filters{border-bottom:1px solid var(--rule);flex-wrap:wrap;gap:8px 20px;padding-bottom:17px;display:flex}.project-filters button{min-height:40px;font:12px/1.6 var(--sans);color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:1px solid #0000;padding:5px 0}.project-filters button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.project-filters button:hover{color:var(--ink)}.filter-status{font:11px/1.7 var(--mono);color:var(--muted);margin:16px 0 30px}.project-list>.project{border-top:0;margin-top:0;padding-top:0}.project-list>.project:not([hidden])~.project:not([hidden]){border-top:1px solid var(--rule);margin-top:29px;padding-top:29px}.inline-links{flex-wrap:wrap;gap:12px 28px;margin-top:21px;display:flex}.case-tags{margin-top:25px}.case-flow{border-bottom:1px solid var(--rule);padding-bottom:24px}.case-flow li{padding:14px 8px}.case-flow li>span:last-child{margin-top:8px;line-height:1.65}.decision{grid-template-columns:28px minmax(0,1fr);gap:17px;display:grid}.decision+.decision{border-top:1px solid var(--rule);margin-top:28px;padding-top:28px}.decision-number{font:11px/2 var(--mono);color:var(--muted);padding-top:4px}.decision h3{letter-spacing:-.3px;font-size:24px;line-height:1.4}.decision div>p{max-width:65ch;margin-top:10px;font-size:17px;line-height:1.75}.limitation-note{background:var(--figure-surface);border-left:2px solid var(--accent-rule);margin-top:25px;padding:21px 24px}.limitation-note h3{font:500 12px/1.6 var(--sans)}.limitation-note p{margin-top:10px;font-size:16px;line-height:1.75}.source-list{font:13px/1.8 var(--sans);padding-left:31px;list-style:decimal-leading-zero}.source-list li{padding-left:9px}.source-list li::marker{color:var(--muted);font:11px var(--mono)}.source-list a{color:var(--accent);padding-block:7px}.next-study{border-top:1px solid var(--rule);margin-top:30px;padding-top:25px}.next-study>a{--link-arrow-size:18px;--link-gap:10px;letter-spacing:-.4px;font-size:27px}.next-study .link-arrow{color:var(--accent)}.next-study>p{color:var(--muted);margin-top:7px;font-size:15px}.note-spaced{margin-top:24px}.experience-entry div>.education-score{font-family:var(--mono);color:var(--muted);font-size:12px}.recognition-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px;display:grid}.recognition-list article+article{border-left:1px solid var(--rule);padding-left:36px}.recognition-list h3{font-size:25px;line-height:1.4}.recognition-list p{margin-top:12px;font-size:16px}.recognition-list a{color:var(--accent)}.stack-inventory{flex-wrap:wrap;gap:10px 25px;padding:0;list-style:none;display:flex}.stack-inventory li{font:12px/1.9 var(--mono)}.page-end-link{border-bottom:1px solid var(--rule);padding-block:24px}.contact-profiles{flex-wrap:wrap}.contact-section>.contact-location{font:11px/1.9 var(--sans);color:var(--muted);margin-top:22px}.contact-location span{margin-inline:8px}.error-links{border-bottom:1px solid var(--rule);justify-items:start;padding-block:36px 80px;display:grid}@media (width<=850px){.site-navigation{justify-content:center}.page-intro{padding-top:37px}}@media (width<=600px){.site-navigation{justify-content:space-between;gap:10px;font-size:11px}.page-intro{padding-block:32px}.page-intro h1{font-size:clamp(40px,10.8vw,56px)}.page-description{margin-top:20px;font-size:17px}.case-flow li{padding:12px 17px}.case-flow li>span:last-child{margin-top:3px}.figure-topline{align-items:baseline;gap:16px}.figure-type{text-align:right}.decision{grid-template-columns:24px minmax(0,1fr);gap:10px}.decision h3{font-size:23px}.decision div>p{font-size:16px}.limitation-note{padding:18px}.recognition-list{grid-template-columns:minmax(0,1fr);gap:25px}.recognition-list article+article{border-left:0;border-top:1px solid var(--rule);padding:25px 0 0}.source-list{padding-left:26px}.contents ol{column-gap:18px}.project-list>.project:not([hidden])~.project:not([hidden]){margin-top:24px;padding-top:24px}}@media print{.site-navigation,.project-filters,.filter-status,.back-link,.section-link,.project-study-link,.page-end-link,.next-study,.theme-toggle[hidden]{display:none!important}.project[data-project][hidden]{display:grid!important}.page-intro h1{font-size:32pt}.page-description{font-size:12pt}.decision{break-inside:avoid}.case-flow{grid-template-columns:repeat(4,minmax(0,1fr))}}.resume-label[data-astro-cid-6spv5hax]{white-space:pre;vertical-align:bottom;display:inline-block;position:relative}.resume-label-width[data-astro-cid-6spv5hax]{visibility:hidden}.resume-label-text[data-astro-cid-6spv5hax]{inset-inline-end:0;position:absolute;top:0}.resume-label-text[data-astro-cid-6spv5hax]:after{content:"";inset-inline-start:calc(100% + 2px);opacity:0;background:currentColor;width:1px;height:1em;position:absolute;top:.25em}.resume-label-text[data-astro-cid-6spv5hax][data-typing=true]:after{opacity:.6}.resume-link.arrow-link:is(:hover,:focus-visible)>.link-label{text-decoration:none}.resume-link:is(:hover,:focus-visible) .resume-label-text[data-astro-cid-6spv5hax]{text-underline-offset:4px;text-decoration:underline}@media (prefers-reduced-motion:reduce){.resume-label-text[data-astro-cid-6spv5hax]:after{display:none}}
