@font-face{font-family:__Inter_3eb911;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Inter_3eb911;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Inter_3eb911;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Inter_3eb911;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__Inter_3eb911;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Inter_3eb911;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Inter_3eb911;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Inter_3eb911;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Inter_3eb911;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Inter_3eb911;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Inter_3eb911;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__Inter_3eb911;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Inter_3eb911;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Inter_3eb911;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Inter_Fallback_3eb911;src:local("Arial");ascent-override:90.49%;descent-override:22.56%;line-gap-override:0.00%;size-adjust:107.06%}.__className_3eb911{font-family:__Inter_3eb911,__Inter_Fallback_3eb911;font-style:normal}.__variable_3eb911{--font-sans:"__Inter_3eb911","__Inter_Fallback_3eb911"}@font-face{font-family:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__IBM_Plex_Mono_46fe82;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/98e207f02528a563-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__IBM_Plex_Mono_Fallback_46fe82;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_46fe82{font-family:__IBM_Plex_Mono_46fe82,__IBM_Plex_Mono_Fallback_46fe82;font-style:normal}.__variable_46fe82{--font-mono:"__IBM_Plex_Mono_46fe82","__IBM_Plex_Mono_Fallback_46fe82"}

/*
! tailwindcss v3.4.4 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:var(--font-sans),system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--font-mono),JetBrains Mono,Fira Code,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.block{display:block}.uppercase{text-transform:uppercase}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--paper:#fff;--ink:#17171a;--muted:#6b6b73;--faint:#9a9aa2;--rule:#e4e4e8;--rule-soft:#f0f0f3;--tint:#f7f7f8;--accent:#17171a;--measure:44rem;--gap:1rem;--pad:1.75rem}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0d0d0f;--ink:#ededf0;--muted:#9a9aa4;--faint:#6d6d76;--rule:#26262b;--rule-soft:#1a1a1e;--tint:#141417;--accent:#ededf0}}:root[data-theme=dark]{--paper:#0d0d0f;--ink:#ededf0;--muted:#9a9aa4;--faint:#6d6d76;--rule:#26262b;--rule-soft:#1a1a1e;--tint:#141417;--accent:#ededf0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:4.5rem;-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans),ui-sans-serif,system-ui,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}h1,h2,h3,h4{margin:0;font-weight:500;letter-spacing:-.02em;line-height:1.2}p,ul{margin:0}ul{padding:0;list-style:none}::selection{background:var(--ink);color:var(--paper)}.wrap{width:100%;max-width:62rem;margin:0 auto;padding:0 var(--pad)}.mono{font-family:var(--font-mono),ui-monospace,monospace;font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase}.muted{color:var(--muted)}.rule{height:1px;background:var(--rule);border:0;margin:0}.link-underline{border-bottom:1px solid var(--rule);transition:border-color .15s ease}.link-underline:hover{border-color:var(--ink)}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--rule)}.site-header .wrap{display:flex;align-items:center;gap:1rem;height:3.25rem}.header-bar{display:contents}.site-header .wordmark{order:1;white-space:nowrap}.site-header nav{order:2;margin-left:auto;display:flex;align-items:center;gap:1.25rem;overflow-x:auto;scrollbar-width:none}.site-header .theme-toggle{order:3}.site-header nav::-webkit-scrollbar{display:none}.site-header nav a{color:var(--muted);white-space:nowrap;transition:color .15s ease}.site-header nav a:hover{color:var(--ink)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;flex:none;padding:0;border:1px solid var(--rule);background:transparent;color:var(--muted);cursor:pointer;transition:border-color .15s ease,color .15s ease}.theme-toggle:hover{border-color:var(--ink);color:var(--ink)}.theme-toggle svg{width:13px;height:13px}.site-footer{border-top:1px solid var(--rule);margin-top:5rem;padding:2rem 0 3rem;color:var(--muted)}.site-footer .wrap{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:space-between;align-items:baseline}.section{padding:3.5rem 0 0}.section-head{display:flex;align-items:baseline;gap:.75rem;padding-bottom:.9rem;margin-bottom:1.75rem;border-bottom:1px solid var(--ink)}.section-head h2{font-size:1rem;font-weight:500}.section-head .count{margin-left:auto;color:var(--faint)}.masthead{padding:4.5rem 0 0}.masthead h1{font-size:clamp(2rem,7vw,3rem);letter-spacing:-.035em}.masthead .role{margin-top:.6rem;font-size:1.0625rem;color:var(--ink)}.masthead .where{margin-top:.25rem;color:var(--muted)}.masthead .summary{margin-top:1.5rem;max-width:var(--measure);color:var(--muted);font-size:.9375rem}.actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.75rem}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;border:1px solid var(--rule);font-size:.8125rem;color:var(--muted);transition:border-color .15s ease,color .15s ease}.btn:hover{color:var(--ink)}.btn-solid,.btn:hover{border-color:var(--ink)}.btn-solid{background:var(--ink);color:var(--paper)}.btn-solid:hover{color:var(--paper);opacity:.85}.availability{margin-top:1.25rem;color:var(--faint)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:3rem;background:var(--rule);border:1px solid var(--rule)}.stats>div{display:flex;flex-direction:column;background:var(--paper);padding:1.1rem 1rem}.stats .value{font-size:1.375rem;letter-spacing:-.03em}.stats .label{margin-top:.3rem;color:var(--muted);font-size:.8125rem;line-height:1.4}.stats .stat-note{margin-top:auto;padding-top:.75rem;color:var(--faint)}.project-list{border-top:1px solid var(--rule-soft)}.project-row{display:grid;grid-template-columns:2.5rem 1fr auto;gap:1.25rem;align-items:baseline;padding:1.15rem .5rem 1.15rem 0;border-bottom:1px solid var(--rule-soft);transition:background .15s ease,padding .15s ease}.project-row:hover{background:var(--tint);padding-left:.5rem;padding-right:.25rem}.project-row .idx{color:var(--faint)}.project-row h3{font-size:1.0625rem}.project-row .kind{color:var(--faint);white-space:nowrap}.project-row .blurb{margin-top:.35rem;color:var(--muted);font-size:.875rem;max-width:var(--measure)}.tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.6rem}.tag{font-family:var(--font-mono),ui-monospace,monospace;font-size:.6875rem;letter-spacing:.04em;color:var(--muted);border:1px solid var(--rule);padding:.1rem .4rem}.job{display:grid;grid-template-columns:11rem 1fr;grid-template-areas:"meta role" "meta bullets";gap:.6rem 1.5rem;padding:1.5rem 0;border-bottom:1px solid var(--rule-soft)}.job:first-child{padding-top:0}.job-role{grid-area:role;font-size:1.0625rem}.job-meta{grid-area:meta;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;color:var(--muted)}.job-meta .company{color:var(--ink)}.job .bullets{grid-area:bullets}.now{display:inline-block;margin-top:.25rem;padding:.05rem .4rem;border:1px solid var(--rule)}.bullets li,.now{color:var(--muted)}.bullets li{position:relative;padding-left:1rem;margin-bottom:.4rem;font-size:.9062rem}.bullets li:before{content:"";position:absolute;left:0;top:.65em;width:5px;height:1px;background:var(--faint)}.skill-row{display:grid;grid-template-columns:11rem 1fr;gap:1.5rem;padding:1.1rem 0;border-bottom:1px solid var(--rule-soft)}.skill-row:first-child{padding-top:0}.skill-row ul{display:flex;flex-wrap:wrap;gap:.3rem .55rem}.skill-row li{font-size:.875rem;color:var(--muted)}.skill-row li:not(:last-child):after{content:" ·";color:var(--faint)}.contact-grid{display:grid;grid-template-columns:11rem 1fr;gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--rule-soft)}.contact-grid:last-of-type{border-bottom:0}.back{display:inline-block;margin:2.5rem 0 0;color:var(--muted);transition:color .15s ease}.back:hover{color:var(--ink)}.detail-head{padding:1.5rem 0 2.5rem;border-bottom:1px solid var(--ink)}.detail-head h1{font-size:clamp(1.75rem,5.5vw,2.5rem);letter-spacing:-.035em}.detail-head .lede{margin-top:.9rem;max-width:var(--measure);color:var(--muted);font-size:1rem}.meta-line{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;margin-bottom:.9rem;color:var(--faint)}.meta-line .dot{color:var(--rule)}.prose{max-width:var(--measure);color:var(--muted);font-size:.9375rem}.prose+.prose{margin-top:.9rem}.users{border-top:1px solid var(--rule-soft)}.user-row{display:grid;grid-template-columns:13rem 1fr;gap:1.5rem;padding:.95rem 0;border-bottom:1px solid var(--rule-soft)}.user-row .who{color:var(--ink);font-size:.9375rem}.user-row .need{color:var(--muted);font-size:.9062rem}.flow{display:flex;flex-wrap:wrap;align-items:stretch;gap:.5rem;margin-bottom:2rem}.flow-node{flex:1 1 8rem;min-width:8rem;border:1px solid var(--rule);padding:.65rem .7rem;background:var(--paper)}.flow-node .n{color:var(--faint);display:block;margin-bottom:.3rem}.flow-node .t{font-size:.8125rem;line-height:1.35;color:var(--ink)}.flow-arrow{align-self:center;color:var(--faint);font-size:.75rem}.chart{border-top:1px solid var(--ink)}.chart-head,.chart-row{display:grid;grid-template-columns:9rem 1fr 1fr 1fr;gap:1.25rem;padding:.75rem 0;border-bottom:1px solid var(--rule-soft)}.chart-head{color:var(--faint);border-bottom-color:var(--rule)}.chart-row .stage{color:var(--ink);font-family:var(--font-mono),ui-monospace,monospace;font-size:.75rem;letter-spacing:.02em}.chart-row .cell{color:var(--muted);font-size:.875rem;line-height:1.5}.chart-row .cell strong{display:none;font-weight:400;color:var(--faint);font-family:var(--font-mono),ui-monospace,monospace;font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.2rem}.steps{counter-reset:step;border-top:1px solid var(--rule-soft)}.step{display:grid;grid-template-columns:2.5rem 1fr;gap:1.25rem;padding:1.25rem 0;border-bottom:1px solid var(--rule-soft)}.step .num{counter-increment:step;color:var(--faint)}.step .num:before{content:counter(step,decimal-leading-zero)}.step h3{font-size:.9375rem;margin-bottom:.4rem}.step p{color:var(--muted);font-size:.9062rem;max-width:var(--measure)}.toolkit{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}.toolkit>div{background:var(--paper);padding:1rem}.toolkit h3{font-family:var(--font-mono),ui-monospace,monospace;font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:400;margin-bottom:.6rem}.toolkit li{font-size:.875rem;color:var(--muted);padding:.12rem 0}.outcomes li{display:grid;grid-template-columns:1.25rem 1fr;gap:.5rem;padding:.55rem 0;border-bottom:1px solid var(--rule-soft);color:var(--muted);font-size:.9062rem}.outcomes li:before{content:"→";color:var(--faint)}.pager{display:flex;justify-content:space-between;gap:1rem;margin-top:3.5rem;padding-top:1.25rem;border-top:1px solid var(--rule)}.pager a{color:var(--muted);max-width:45%;transition:color .15s ease}.pager a:hover{color:var(--ink)}.pager .label{display:block;color:var(--faint);margin-bottom:.2rem}.pager .name{font-size:.9375rem;color:var(--ink)}@media (max-width:860px){.chart-head{display:none}.chart-row{grid-template-columns:1fr;gap:.65rem;padding:1.1rem 0}.chart-row .cell strong{display:block}}@media (max-width:720px){:root{--pad:1.25rem}html{scroll-padding-top:6rem}.site-header .wrap{flex-direction:column;align-items:stretch;gap:0;height:auto}.header-bar{display:flex;align-items:center;gap:1rem;height:2.9rem}.header-bar,.site-header nav{justify-content:space-between}.site-header nav{order:2;margin-left:0;gap:.5rem;padding-bottom:.65rem;font-size:.625rem;letter-spacing:.06em;-webkit-overflow-scrolling:touch}.stats{grid-template-columns:repeat(2,1fr)}.job{grid-template-columns:1fr;grid-template-areas:"role" "meta" "bullets";gap:.5rem}.job-meta{flex-direction:row;flex-wrap:wrap;align-items:center;gap:.2rem .45rem}.job-meta span:first-child:after,.job-meta span:nth-child(2):after{content:" ·";color:var(--faint)}.now{margin-top:0}.contact-grid,.skill-row,.user-row{grid-template-columns:1fr;gap:.6rem}.project-row{grid-template-columns:1.75rem 1fr;row-gap:.4rem}.project-row .kind{grid-column:2}.step{grid-template-columns:1fr;gap:.35rem}.masthead{padding-top:3rem}.flow-arrow{display:none}}