:root{color-scheme:dark;--bg:#181817;--bg-alt:#151514;--text:#eeeae2;--muted:#b2b0ab;--dim:#92918a;--line:#3b3b36;--accent:#ce795f;--axis:31%;font-family:Arial,Helvetica,sans-serif;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}::selection{background:var(--accent);color:#171716}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--accent);outline-offset:7px}a:hover{color:var(--accent)}button,a{-webkit-tap-highlight-color:transparent}p,h1,h2,h3{margin:0}a{transition:color .18s ease}.mono,.eyebrow{font-family:"Courier New",monospace;font-size:12px;line-height:1.6;letter-spacing:.045em}.page{max-width:1600px;margin:auto;position:relative}.page:before{content:"";position:absolute;left:var(--axis);top:0;bottom:75px;width:1px;background:var(--accent);opacity:.46;pointer-events:none;z-index:0}.header,main,footer{position:relative}.header{height:104px;padding:0 5.3%;display:flex;align-items:center;justify-content:space-between}.wordmark{font-size:23px;font-weight:600;letter-spacing:-1px}.wordmark-dot{color:var(--accent)}nav{display:flex;gap:35px;font-size:15px}nav a{padding:12px 0}nav a span{margin-left:4px;color:var(--accent)}.hero{padding:57px 5.3% 0;display:grid;grid-template-columns:53% 47%;position:relative}.eyebrow{color:var(--muted);font-size:12px;letter-spacing:.025em;white-space:nowrap}.eyebrow span{color:var(--accent);padding:0 8px}h1{font-size:clamp(70px,7.9vw,126px);letter-spacing:-.075em;line-height:.97;font-weight:600;margin-top:37px;position:relative;width:max-content;background:var(--bg)}.surname{display:block;font-size:clamp(29px,3vw,45px);letter-spacing:-.045em;line-height:1.25;margin-top:8px}.role{font-size:clamp(24px,2.9vw,40px);letter-spacing:-.03em;margin-top:19px;background:var(--bg);width:fit-content}.intro{font-size:21px;line-height:1.5;color:var(--muted);max-width:465px;margin-top:29px;background:var(--bg);position:relative;padding-right:12px}.hero-links{display:flex;gap:32px;flex-wrap:wrap;margin-top:34px}.text-link{font-size:16px;padding:7px 0 11px;border-bottom:1px solid #77766e;display:inline-flex;gap:19px;align-items:center;background:var(--bg)}.text-link.primary{border-color:var(--accent)}.text-link span{color:var(--accent)}.hero-visual{align-self:center;margin:36px 0 0 8%;position:relative}.hero-visual:before,.hero-visual:after{content:"";position:absolute;width:12px;height:12px;border-color:#77766e;border-style:solid}.hero-visual:before{left:-17px;top:-17px;border-width:1px 0 0 1px}.hero-visual:after{right:-7px;bottom:-17px;border-width:0 1px 1px 0}.diagram-top,.diagram-bottom{display:flex;justify-content:space-between;align-items:center;color:var(--dim)}.diagram-top .mono,.diagram-bottom .mono{font-size:12px;letter-spacing:.04em}.diagram-index{color:var(--accent)}.pipeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:29px;align-items:start}.stage-number{color:var(--dim);display:block;margin-bottom:8px;font-size:12px}.stage-icon{border:1px solid #53534b;aspect-ratio:1;display:grid;place-items:center}.stage-icon svg{width:60%;height:60%;stroke:#d6d2c8;stroke-width:1.15;stroke-linejoin:round;stroke-linecap:round}.stage:nth-of-type(2) .stage-icon{border-color:#b17862}.connector{align-self:start;margin-top:62px;font-size:23px;color:var(--dim)}.stage h2{font-size:15px;margin-top:15px;font-weight:400}.stage p{font-size:12px;color:var(--dim);line-height:1.6;margin-top:8px}.diagram-bottom{margin-top:35px}.small-mark{width:30px;height:1px;background:var(--accent)}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;margin-top:59px;padding:24px 0 29px;font-size:13px;color:var(--dim)}.hero-bottom p{background:var(--bg);position:relative;padding-right:12px}.hero-bottom p span{color:var(--accent);margin:0 9px}.hero-bottom a{display:flex;gap:17px;color:var(--muted)}.section{display:grid;grid-template-columns:var(--axis) 1fr;scroll-margin-top:20px;border-top:1px solid #292925}.section-heading{padding:60px 13% 55px 17.1%;position:relative}.section-index{color:var(--accent);display:flex;align-items:center;gap:23px;font-size:12px;margin-bottom:26px}.section-index span{height:1px;width:31px;background:var(--accent);opacity:.7}.section-heading:after{content:"";position:absolute;width:7px;height:7px;right:-4px;top:65px;background:var(--accent)}.section-heading h2{font-size:clamp(29px,3.4vw,49px);font-weight:500;line-height:1.1;letter-spacing:-.055em}.section-note{font-size:14px;line-height:1.6;color:var(--dim);margin-top:28px}.section-content{padding:60px 7.7% 55px 6.2%}.experience{background:var(--bg-alt)}.experience .section-heading{border-right:1px solid #674a3d}.job-header{display:flex;justify-content:space-between;gap:20px;align-items:baseline}.job-header h3{font-size:30px;font-weight:500;letter-spacing:-.04em}.job-role{color:var(--muted);font-size:16px;margin-top:9px}.job-date{color:var(--dim);white-space:nowrap;font-size:12px}.job-intro{font-size:17px;line-height:1.65;color:var(--muted);margin:26px 0 32px;max-width:680px}.work-item{display:grid;grid-template-columns:32px 1fr;gap:19px;border-top:1px solid var(--line);padding:29px 0 28px}.work-item:last-child{padding-bottom:0}.item-index{color:var(--accent);padding-top:5px;font-size:12px}.work-item h3{font-weight:500;font-size:24px;letter-spacing:-.03em;margin-bottom:13px}.work-item p{font-size:16px;line-height:1.65;color:var(--muted);max-width:640px}.work-item p+p{margin-top:10px}.work-item .tech-line{font-size:12px;line-height:1.8;color:var(--dim);margin-top:17px;letter-spacing:0}.skill-table{padding-top:42px;padding-bottom:42px}.skill-row{display:grid;grid-template-columns:calc(43% - 6px) calc(57% - 6px);gap:12px;padding:24px 0;border-bottom:1px solid var(--line)}.skill-row:last-child{border:0}.skill-row h3{font-size:16px;font-weight:500;line-height:1.6}.skill-row p{font-size:16px;line-height:1.65;color:var(--muted)}.education{background:var(--bg-alt)}.education .section-heading{border-right:1px solid #674a3d}.education-main{position:relative;padding-right:130px}.education-date{position:absolute;right:0;top:5px;color:var(--dim)}.education-main h3{font-size:27px;font-weight:500;letter-spacing:-.03em}.education-main>p:last-child{font-size:16px;color:var(--muted);margin-top:13px;line-height:1.55}.courses{display:grid;grid-template-columns:160px 1fr;gap:20px;border-top:1px solid var(--line);margin-top:29px;padding-top:25px}.courses>.mono{color:var(--dim);font-size:12px;padding-top:5px}.courses div p{font-size:14px;line-height:1.65;margin-bottom:8px}.courses span{color:var(--dim)}.code-copy{font-size:20px;color:var(--muted);line-height:1.5}.github-link{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:23px 0 21px;font-size:42px;letter-spacing:-.04em;margin-top:5px}.github-caption{display:block;font-size:12px;letter-spacing:.06em;color:var(--dim);margin-top:11px}.github-arrow{color:var(--accent);font-size:40px;transition:transform .2s}.github-link:hover .github-arrow{transform:translate(4px,-4px)}.contact{background:#1d1c19;border-top-color:#544237}.contact .section-heading{border-right:1px solid #674a3d}.contact-link{display:flex;align-items:center;justify-content:space-between;font-size:clamp(25px,3vw,42px);letter-spacing:-.04em;padding-bottom:23px}.contact-link small{display:block;font-size:12px;letter-spacing:.09em;color:var(--dim);margin-bottom:10px}.contact-link>span:last-child{color:var(--accent);font-size:30px}.contact-link.email{border-top:1px solid var(--line);padding-top:22px;padding-bottom:0;font-size:clamp(23px,2.7vw,36px)}footer{height:75px;display:flex;align-items:center;justify-content:space-between;padding:0 5.3%;font-size:12px;color:var(--dim)}footer a span{margin-left:12px;color:var(--accent)}.skip{position:absolute;top:-100px;left:20px;background:var(--text);color:var(--bg);padding:12px;z-index:5}.skip:focus{top:15px}@media(min-width:1600px){.hero{padding-top:70px}.hero-visual{margin-left:13%}.hero-bottom{margin-top:75px}}
@media(max-width:1050px){.hero{grid-template-columns:55% 45%;padding-top:40px}.hero-visual{margin-left:7%}.diagram-index{display:none}.pipeline{gap:4px;grid-template-columns:repeat(3,minmax(0,1fr))}.connector{font-size:18px;margin-top:54px}.intro{font-size:19px;max-width:400px}.hero-links{gap:23px}.text-link{font-size:14px;gap:13px}.stage h2{font-size:14px}.stage p{font-size:12px}.diagram-top .mono,.diagram-bottom .mono{font-size:12px}.section-heading{padding-top:48px}.section-heading:after{top:53px}.section-content{padding-top:48px}.job-header{display:block}.job-date{margin-top:16px}.job-header h3{font-size:28px}.skill-row{grid-template-columns:1fr;gap:8px}.skill-row br{display:none}.courses{grid-template-columns:1fr;gap:12px}.section-note{font-size:13px}.education-main{padding-right:0}.education-date{position:static;margin-bottom:10px}.hero-bottom{margin-top:45px}}
@media(max-width:760px){:root{--axis:24px}.page:before{left:24px;bottom:85px;opacity:.32}.header{height:83px;padding:0 25px 0 43px}.wordmark{font-size:21px}nav{gap:20px;font-size:14px}nav a:last-child span{display:none}.hero{display:block;padding:31px 25px 0 43px}.eyebrow{font-size:12px;white-space:normal;letter-spacing:0}.eyebrow span{padding:0 4px}h1{font-size:clamp(65px,13vw,99px);margin-top:30px}.surname{font-size:30px;margin-top:8px}.role{font-size:29px;margin-top:19px}.intro{font-size:18px;max-width:470px;padding:0;margin-top:24px;line-height:1.6}.hero-links{margin-top:25px;gap:26px}.text-link{font-size:14px;gap:11px}.hero-visual{margin:51px 0 0;max-width:470px;padding:0 8px 0 0}.hero-visual:before{left:-11px;top:-13px}.hero-visual:after{right:-1px;bottom:-12px}.diagram-top .mono{font-size:12px}.diagram-index{display:block}.pipeline{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:17px}.stage-icon{max-width:108px}.stage-icon svg{width:55%;height:55%}.stage-number{font-size:12px;margin-bottom:5px}.connector{margin-top:58px;font-size:22px}.stage h2{font-size:14px;margin-top:10px}.stage p{font-size:12px;margin-top:6px}.diagram-bottom{margin-top:21px}.diagram-bottom .mono{font-size:12px}.hero-bottom{margin-top:40px;display:block;padding:21px 0 26px;font-size:12px}.hero-bottom a{display:none}.section{display:block;position:relative;padding:0 25px 0 43px}.section-heading{padding:33px 0 0}.section-heading:after{left:-22px;right:auto;top:40px;width:6px;height:6px}.section-index{font-size:12px;gap:14px;margin-bottom:14px}.section-index span{width:22px}.section-heading h2{font-size:34px;line-height:1.15;letter-spacing:-.045em}.section-heading h2 br{display:none}.section-heading h2 br:after{content:' '}.section-note{display:none}.section-content{padding:29px 0 36px}.experience .section-heading,.education .section-heading,.contact .section-heading{border:0}.experience:before,.education:before,.contact:before{content:"";position:absolute;left:24px;top:0;bottom:0;width:1px;background:#674a3d}.job-header h3{font-size:26px}.job-role{font-size:16px}.job-date{font-size:12px;margin-top:12px}.job-intro{font-size:16px;margin-top:19px;margin-bottom:24px}.work-item{gap:11px;grid-template-columns:22px 1fr;padding:24px 0}.work-item h3{font-size:22px;line-height:1.25;margin-bottom:12px}.work-item p{font-size:16px;line-height:1.6}.work-item .tech-line{font-size:12px;line-height:1.75}.item-index{font-size:12px}.skill-table{padding-top:9px;padding-bottom:20px}.skill-row{padding:20px 0;gap:5px}.skill-row h3{font-size:16px}.skill-row p{font-size:16px}.education-main h3{font-size:26px}.education-main>p:last-child{margin-top:10px}.courses{margin-top:23px;padding-top:19px}.courses div p{font-size:14px}.code-copy{font-size:18px}.github-link{font-size:36px;padding-top:17px}.contact-link{font-size:33px}.contact-link.email{font-size:clamp(21px,5.6vw,32px)}footer{height:85px;padding:0 25px 0 43px;font-size:12px;gap:15px}footer p{max-width:160px;line-height:1.6}footer a{white-space:nowrap}}
@media(max-width:380px){nav{gap:13px;font-size:12px}.header{padding-right:19px}.hero,.section{padding-right:19px}.hero-links{gap:20px}.text-link{font-size:13px}.eyebrow{max-width:280px}.stage p{font-size:12px}.pipeline{gap:4px}.connector{margin-top:51px}.contact-link.email{font-size:21px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}a,.github-arrow{transition:none}}
@media print{:root{--bg:#fff;--bg-alt:#fff;--text:#171717;--muted:#333;--dim:#555;--line:#ccc;--accent:#80533e;color-scheme:light}.page:before,.hero-visual,.header,nav,.hero-bottom,.code-section,footer,.skip{display:none}.hero{display:block;padding:20px 0}.hero h1{font-size:48px}.surname{display:inline;font-size:48px;margin-left:15px}.role{font-size:24px}.intro{max-width:100%;font-size:14px}.hero-links{margin-top:10px}.section{grid-template-columns:24% 1fr;break-inside:avoid}.section-heading,.section-content{padding:20px 12px}.section-heading h2{font-size:24px}.section-heading:after,.section-note,.section-index{display:none}.work-item{padding:13px 0}.work-item h3{font-size:17px}.work-item p,.job-intro,.skill-row p,.skill-row h3{font-size:12px}.contact{background:#fff}.contact-link,.contact-link.email{font-size:20px}.courses{margin-top:12px;padding-top:12px}.skill-row{padding:10px 0}a{color:inherit}}

.pipeline{gap:18px}.stage h2{line-height:1.4}.stage-icon{max-width:118px}.stage:nth-of-type(2) .stage-icon{border-color:#53534b}.stage p{font-size:12px}.document-link{display:flex;justify-content:space-between;align-items:center;gap:18px;border-left:2px solid var(--accent);background:#201e1a;padding:15px 18px;margin-top:21px;font-size:15px;line-height:1.5}.document-link small{color:var(--dim);font-size:12px;white-space:nowrap}.document-link>span>span{color:var(--accent);margin-left:8px}.repo-list{margin-top:25px;border-top:1px solid var(--line)}.repo-link{display:grid;grid-template-columns:32px 1fr 24px;gap:17px;align-items:center;border-bottom:1px solid var(--line);padding:21px 0;font-size:25px;letter-spacing:-.025em}.repo-link .mono{color:var(--dim);font-size:12px;letter-spacing:0}.repo-link>span:last-child{color:var(--accent);font-size:24px;transition:transform .18s}.repo-link:hover>span:last-child{transform:translate(3px,-3px)}.profile-link{margin-top:25px;font-size:14px}.annotation-item .document-link:hover{background:#29241f}
@media(max-width:1050px){.pipeline{gap:12px}.stage h2{font-size:13px}.stage p br{display:none}}
@media(max-width:760px){.pipeline{gap:15px}.stage h2{font-size:14px}.stage-icon{max-width:108px}.document-link{align-items:flex-start;flex-direction:column;gap:5px;padding:13px 15px}.repo-link{font-size:24px;gap:10px;padding:18px 0}.repo-list{margin-top:19px}.profile-link{margin-top:22px}}
@media(prefers-reduced-motion:reduce){.repo-link>span:last-child{transition:none}}
@media print{.document-link{background:none;padding:8px 12px;font-size:12px}.document-link small{font-size:10px}}

.education .section-heading,.education .section-content{padding-top:32px;padding-bottom:32px}.education .section-heading:after{top:37px}.education .section-index{margin-bottom:14px}.education .section-heading h2{font-size:clamp(27px,2.5vw,36px)}
@media(max-width:760px){.education .section-heading{padding-top:26px;padding-bottom:0}.education .section-heading:after{top:33px}.education .section-content{padding-top:20px;padding-bottom:27px}.education .section-heading h2{font-size:30px}}

/* Compact personal introduction. */
.hero-personal{display:grid;grid-template-columns:1.08fr 1fr;gap:7%;padding-top:58px;padding-bottom:64px;align-items:end;background:var(--bg)}
.hero-specialty{font-size:18px;line-height:1.4;color:var(--accent);letter-spacing:-.02em;margin-bottom:24px}
.hero-personal h1{margin:0;font-size:clamp(60px,6.8vw,105px);line-height:1.02;letter-spacing:-.065em;width:auto;background:none}
.hero-personal .surname{font-size:inherit;line-height:inherit;letter-spacing:inherit;margin-top:5px}
.hero-personal .intro{font-size:clamp(19px,1.75vw,25px);line-height:1.5;max-width:480px;margin:0;padding:0;background:none;color:var(--text)}
.hero-current{font-size:15px;line-height:1.65;color:var(--muted);margin-top:21px}
.hero-personal .hero-links{margin-top:26px;gap:28px}
.hero-personal .text-link{background:none;font-size:15px;gap:14px}
.hero-about{padding-bottom:6px}
.header nav{align-items:center}.header nav a{position:relative;line-height:1.2;white-space:nowrap}.header nav a:last-child{padding-right:1.6em}.header nav a span{position:absolute;right:0;top:50%;transform:translateY(-50%);line-height:1;margin:0}@media(max-width:760px){.header nav a:last-child{padding-right:0}}
@media(max-width:1050px){.hero-personal{gap:5%;padding-top:42px;padding-bottom:49px}.hero-personal h1{font-size:clamp(52px,6.8vw,76px)}.hero-personal .hero-links{gap:20px}.hero-personal .text-link{font-size:14px;gap:9px}.hero-current{font-size:14px}}
@media(max-width:760px){.hero-personal{display:block;padding-top:25px;padding-bottom:35px}.hero-specialty{font-size:16px;margin-bottom:20px}.hero-personal h1{font-size:clamp(45px,10.6vw,77px);letter-spacing:-.055em}.hero-personal .surname{margin-top:3px}.hero-about{margin-top:27px;padding:0}.hero-personal .intro{font-size:19px;max-width:480px}.hero-current{font-size:14px;margin-top:17px}.hero-current br{display:none}.hero-personal .hero-links{margin-top:21px;gap:25px}.hero-personal .text-link{font-size:14px}.hero-personal:before{content:"";position:absolute;left:24px;top:0;bottom:0;width:1px;background:#674a3d}}
@media(max-width:380px){.hero-personal .hero-links{gap:20px}.hero-personal .text-link{font-size:13px}.hero-personal .intro{font-size:18px}}
@media print{.hero-personal{display:block;padding:16px 0}.hero-personal h1{font-size:40px}.hero-personal .surname{display:inline;margin-left:12px}.hero-specialty{font-size:17px;margin-bottom:12px}.hero-personal .intro{font-size:14px;margin-top:15px;max-width:100%}.hero-current{font-size:12px;margin-top:8px}.hero-personal .hero-links{margin-top:10px}}
