:root{color-scheme:dark;--bg:#0b0b0b;--text:#ededed;--body:#d4d4d4;--muted:#b0b0b0;--soft:#8f8f8f;--rule:#262626;--rule-strong:#3d3d3d;--underline:#5c5c5c;--focus:#fff;--sans:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--gutter:clamp(1.25rem, 5vw, 2.5rem);--rail:15rem;--index-col:6.5rem;--measure:42rem}*,:before,:after{box-sizing:border-box}html{text-size-adjust:100%;background:var(--bg)}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);min-width:0;color:var(--body);font-family:var(--sans);overflow-wrap:break-word;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:1rem;line-height:1.65}h1,h2,h3,p,ul,ol,dl,dd{margin:0}h1,h2,h3{color:var(--text);text-wrap:balance;font-weight:600;line-height:1.2}p,li,dd{text-wrap:pretty}::selection{background:var(--text);color:var(--bg)}a{color:var(--text);text-decoration-line:underline;text-decoration-thickness:1px;text-decoration-color:var(--underline);text-underline-offset:.22em}a:hover{text-decoration-color:currentColor}@media (prefers-reduced-motion:no-preference){a,.action{transition:color .12s,background-color .12s,border-color .12s,text-decoration-color .12s}}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.content:focus{outline:none}.skip-link{z-index:10;background:var(--text);color:var(--bg);font-family:var(--mono);padding:.6rem .9rem;font-size:.8125rem;text-decoration:none;position:absolute;top:.75rem;left:.75rem;transform:translateY(-200%)}.skip-link:focus,.skip-link:focus-visible{outline-color:var(--text);transform:none}.meta-label,.section-index,.entry-index,.rail-sub,.hero-meta,.period,.tech-line span{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--soft);font-size:.75rem;font-weight:400;line-height:1.5}.period{font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:.02em;color:var(--muted)}.page{grid-template-columns:minmax(0,1fr);min-height:100vh;display:grid}.content,.site-footer{min-width:0;padding-inline:var(--gutter)}.rail{border-bottom:1px solid var(--rule)}.rail-inner{padding:1.25rem var(--gutter) .75rem}.rail-brand{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;display:flex}.rail-name{color:var(--text);letter-spacing:-.01em;font-weight:600;text-decoration:none}a.rail-name:hover{text-decoration:underline}.rail-nav{margin-top:.75rem}.rail-nav ol{border-top:1px solid var(--rule);grid-template-columns:repeat(2,minmax(0,1fr));padding:0;list-style:none;display:grid}.rail-nav li{border-bottom:1px solid var(--rule);min-width:0}.rail-nav li:nth-child(odd){border-right:1px solid var(--rule)}.rail-nav li:last-child{border-bottom:0;border-right:0}.rail-nav a{min-height:2.75rem;color:var(--muted);align-items:baseline;gap:.6rem;padding:.65rem .5rem;font-size:.875rem;line-height:1.3;text-decoration:none;display:flex}.rail-nav a:hover{color:var(--text)}.rail-nav .index{font-family:var(--mono);color:var(--soft);flex:none;font-size:.75rem}.rail-contact{display:none}@media (width>=40rem){.rail-nav ol{grid-template-columns:repeat(4,minmax(0,1fr))}.rail-nav li,.rail-nav li:nth-child(odd){border-right:1px solid var(--rule)}.rail-nav li:nth-child(4n),.rail-nav li:last-child{border-right:0}.rail-nav li:last-child{border-bottom:1px solid var(--rule)}.rail-nav li:nth-child(n+5){border-bottom:0}}.hero{max-width:64rem;padding-block:clamp(2.5rem,8vw,6.5rem) clamp(2.5rem,6vw,4.5rem)}.hero-meta{flex-wrap:wrap;gap:.25rem .6rem;display:flex}.hero-title{margin-top:1.25rem}.hero-mark{color:var(--text);letter-spacing:-.05em;margin-left:-.04em;font-size:clamp(3rem,14.5vw,9.5rem);font-weight:650;line-height:.92;display:block}.hero-fullname{border-top:1px solid var(--rule-strong);max-width:30rem;color:var(--muted);letter-spacing:0;margin-top:1.1rem;padding-top:.9rem;font-size:1rem;font-weight:500;line-height:1.4;display:block}.hero-role{max-width:34rem;color:var(--text);letter-spacing:-.015em;margin-top:2rem;font-size:clamp(1.3rem,3.2vw,1.75rem);font-weight:500;line-height:1.25}.hero-tagline{max-width:34rem;color:var(--muted);margin-top:.6rem;font-size:1.0625rem}.hero-actions{flex-wrap:wrap;gap:.5rem;margin-top:2rem;display:flex}.action{border:1px solid var(--rule-strong);max-width:100%;min-height:2.75rem;color:var(--text);font-family:var(--mono);align-items:baseline;gap:.6rem;padding:.7rem 1rem;font-size:.8125rem;line-height:1.3;text-decoration:none;display:inline-flex}.action:hover{border-color:var(--text)}.action-primary{background:var(--text);border-color:var(--text);color:var(--bg)}.action-primary:hover{background:#fff;border-color:#fff}.action-label{text-transform:uppercase;letter-spacing:.06em;color:#3a3a3a;font-size:.75rem}.hero-details{border-top:1px solid var(--rule);gap:1.75rem;margin-top:3rem;padding-top:1.5rem;display:grid}.hero-availability p:not(.meta-label),.profile-list{margin-top:.5rem}.hero-availability p:not(.meta-label){max-width:34rem;color:var(--body)}.profile-list{flex-wrap:wrap;gap:.35rem 1.25rem;padding:0;font-size:.9375rem;list-style:none;display:flex}.profile-list a{padding-block:.2rem;display:inline-block}@media (width>=48rem){.hero-details{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:3rem}.profile-list{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}.section{border-top:1px solid var(--rule);grid-template-columns:minmax(0,1fr);max-width:64rem;padding-block:clamp(2.5rem,6vw,4.5rem);scroll-margin-top:1rem;display:grid}.section-head{align-items:baseline;gap:.9rem;margin-bottom:1.75rem;display:flex}.section-head h2{letter-spacing:-.02em;font-size:clamp(1.4rem,3vw,1.75rem)}.section-body{min-width:0;max-width:var(--measure)}@media (width>=48rem){.section{grid-template-columns:var(--index-col) minmax(0, 1fr)}.section-head{display:contents}.section-index{grid-area:1/1;padding-top:.55rem}.section-head h2{grid-area:1/2;margin-bottom:2rem}.section-body{grid-area:2/2}}.summary{color:var(--text);letter-spacing:-.005em;font-size:clamp(1.125rem,2.2vw,1.3rem);line-height:1.6}.section-intro{color:var(--muted);margin-bottom:1.5rem}.case-study{scroll-margin-top:1rem}.case-study+.case-study{border-top:1px solid var(--rule);margin-top:3rem;padding-top:3rem}.case-study h3{letter-spacing:-.015em;margin-top:.5rem;font-size:clamp(1.2rem,2.4vw,1.4rem)}.entry-meta{color:var(--muted);font-family:var(--mono);margin-top:.6rem;font-size:.8125rem;line-height:1.5}.prose{margin-top:1.25rem}.prose p+p{margin-top:1rem}.tech-line{color:var(--muted);font-family:var(--mono);margin-top:1.25rem;font-size:.8125rem;line-height:1.6}.tech-line span{margin-right:.35rem}.link-list{border-top:1px dashed var(--rule-strong);gap:.35rem;margin-top:1rem;padding:.9rem 0 0;font-size:.9375rem;list-style:none;display:grid}.timeline{padding:0;list-style:none}.experience-item{border-top:1px solid var(--rule);grid-template-columns:minmax(0,1fr);gap:.35rem;padding-block:1.6rem;display:grid}.experience-item:first-child{border-top:0;padding-top:0}.experience-main{min-width:0}.experience-item h3{font-size:1.0625rem}.company{color:var(--muted);margin-top:.2rem;font-size:.9375rem}.job-summary{margin-top:.65rem}.bullets{margin-top:.6rem;padding-left:1.1rem;list-style:square}.bullets li+li{margin-top:.35rem}.bullets li::marker{color:var(--soft)}.experience-item .tech-line{margin-top:.75rem}@media (width>=40rem){.experience-item{grid-template-columns:9.5rem minmax(0,1fr);gap:1.5rem}.experience-item .period{padding-top:.2rem}}.skill-row{border-top:1px solid var(--rule);grid-template-columns:minmax(0,1fr);gap:.3rem;padding-block:1rem;display:grid}.skill-row:first-child{border-top:0;padding-top:0}.skill-row h3{color:var(--muted);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:400;line-height:1.6}@media (width>=40rem){.skill-row{grid-template-columns:11rem minmax(0,1fr);gap:1.5rem}.skill-row h3{padding-top:.2rem}}.index-row{border-top:1px solid var(--rule);grid-template-columns:minmax(0,1fr);gap:.3rem;padding-block:1rem;display:grid}.index-row:last-child{border-bottom:1px solid var(--rule)}.index-row dt{font-weight:600}.index-row dd{color:var(--body)}@media (width>=40rem){.index-row{grid-template-columns:11rem minmax(0,1fr);gap:1.5rem}}.subsection{margin-top:3.5rem;scroll-margin-top:1rem}.subsection h3{margin-bottom:.5rem;font-size:1.125rem}.subsection .section-intro{margin-bottom:1.25rem}.recognition-line{border-left:1px solid var(--rule-strong);color:var(--muted);margin-top:1.5rem;padding-left:.9rem;font-size:.9375rem}.split{gap:2.25rem;display:grid}.split-cell h3{margin-top:.5rem;font-size:1.0625rem}.split-cell h3.meta-label{color:var(--soft);margin-top:0;font-size:.75rem;font-weight:400}.split-cell p:not(.meta-label){margin-top:.4rem}.language-list{margin-top:.5rem}.language-list div{border-bottom:1px solid var(--rule);justify-content:space-between;gap:1rem;padding-block:.55rem;display:flex}.language-list dt{color:var(--text);font-weight:500}.language-list dd{color:var(--muted);font-family:var(--mono);font-size:.8125rem}@media (width>=48rem){.split{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:3rem}}.site-footer{border-top:1px solid var(--rule);max-width:64rem;color:var(--soft);font-family:var(--mono);flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;padding-block:2rem 3rem;font-size:.8125rem;display:flex}.site-footer p:first-child{flex-wrap:wrap;gap:.25rem 1.25rem;display:flex}.content>.section:last-child{border-bottom:0}@media (width>=64rem){.page{grid-template-columns:var(--rail) minmax(0, 1fr);grid-template-rows:1fr auto}.rail{border-bottom:0;border-right:1px solid var(--rule);grid-area:1/1/span 2}.rail-inner{flex-direction:column;gap:2.5rem;max-height:100vh;padding:2.5rem 1.75rem 2rem;display:flex;position:sticky;top:0;overflow-y:auto}.rail-brand{flex-direction:column;gap:.2rem}.rail-nav{margin-top:0}.rail-nav ol,.rail-nav li,.rail-nav li:nth-child(odd),.rail-nav li:last-child,.rail-nav li:nth-child(n+5){border:0;display:block}.rail-nav a{min-height:0;margin-inline:-.25rem;padding:.4rem 0;padding-inline:.25rem}.rail-nav .index{width:1.5rem}.rail-contact{border-top:1px solid var(--rule);flex-direction:column;gap:.3rem;margin-top:auto;padding-top:1.25rem;font-size:.875rem;display:flex}.content,.site-footer{grid-column:2;padding-inline:clamp(2.5rem,6vw,6.5rem)}.content{grid-row:1}.site-footer{grid-row:2}.hero{padding-top:clamp(4rem,10vh,7rem)}.hero-mark{font-size:clamp(5.5rem,10.5vw,9.5rem)}.section,.case-study,.subsection{scroll-margin-top:2rem}}.hero-error .hero-mark{font-family:var(--mono);letter-spacing:-.06em;font-weight:500}.hero-error .hero-fullname{color:var(--text);letter-spacing:-.015em;font-size:clamp(1.3rem,3.2vw,1.75rem)}.page-simple .section-body .hero-actions{margin-top:0}@media print{@page{size:A4;margin:14mm 14mm 16mm}:root{color-scheme:light;--bg:#fff;--text:#000;--body:#1a1a1a;--muted:#333;--soft:#4d4d4d;--rule:#c4c4c4;--rule-strong:#8a8a8a;--underline:#8a8a8a}html,body{color:var(--body);background:#fff!important}body{font-size:9.5pt;line-height:1.45}.skip-link,.rail,.no-print,.hero-actions .action:not(.action-primary){display:none!important}.page{min-height:0;display:block}.content,.site-footer{max-width:none;padding:0}a{color:var(--text);text-decoration:none}.content a[href^=http]:after{content:" (" attr(href) ")";color:var(--soft);font-family:var(--mono);overflow-wrap:anywhere;word-break:break-all;font-size:7.5pt;font-weight:400}.hero{max-width:none;padding:0 0 10pt}.hero-title{margin-top:4pt}.hero-mark{margin-left:0;font-size:30pt}.hero-fullname{max-width:none;margin-top:4pt;padding-top:4pt;font-size:10.5pt}.hero-role{max-width:none;margin-top:8pt;font-size:13pt}.hero-tagline,.hero-availability p:not(.meta-label){max-width:none}.hero-actions{margin-top:6pt}.action,.action-primary{min-height:0;color:var(--text);background:0 0;border:0;padding:0;font-size:9pt}.action-label{color:var(--soft)}.hero-details{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14pt;margin-top:10pt;padding-top:8pt}.profile-list{font-size:8.5pt;display:block}.profile-list li{break-inside:avoid}.section{max-width:none;padding-block:10pt;display:block}.section-head{break-after:avoid;margin-bottom:8pt;display:flex}.section-head h2{margin:0;font-size:13pt}.section-body{max-width:none}.summary{font-size:10.5pt}.case-study+.case-study{margin-top:10pt;padding-top:10pt}.case-study h3{font-size:11pt}h2,h3{break-after:avoid}p,li,dd{orphans:3;widows:3}.experience-item{break-inside:avoid;grid-template-columns:8.5em minmax(0,1fr);gap:10pt;padding-block:7pt}.experience-item:first-child{padding-top:0}.skill-row,.index-row{break-inside:avoid;grid-template-columns:10em minmax(0,1fr);gap:10pt;padding-block:5pt}.subsection{margin-top:12pt}.split{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14pt}.split-cell,.recognition-line{break-inside:avoid}.site-footer{margin-top:6pt;padding-top:6pt;font-size:8.5pt}}
