:root{--charcoal: #141313;--black: #0e0e0e;--gray: #222222;--paper: #e5e2e1;--muted: #aaa6a4;--dim: #777473;--line: #444140;--orange: #ff4f00;--blue: #2e5bff;--shell: 1160px;color-scheme:dark;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--charcoal);color:var(--paper);font-family:Hanken Grotesk,Arial,sans-serif;line-height:1.55}body,button,a{-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}img,svg{display:block;max-width:100%}::selection{background:var(--orange);color:var(--black)}.shell{width:min(calc(100% - 5rem),var(--shell));margin-inline:auto}.section{padding:7rem 0}.eyebrow{margin:0 0 1.25rem;color:var(--orange);font-family:JetBrains Mono,monospace;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.035em}h2{margin-bottom:0;font-size:clamp(2.25rem,4vw,3.1rem);line-height:1}h1 em{color:var(--orange);font-style:normal}.button{display:inline-flex;min-height:48px;padding:.8rem 1.1rem;border:1px solid var(--paper);align-items:center;justify-content:center;gap:.7rem;font-size:.82rem;font-weight:700}.button-primary{background:var(--paper);color:var(--black)}.button:hover,.button:focus-visible{border-color:var(--orange);background:var(--orange);color:var(--black)}.text-action{display:inline-flex;padding-bottom:.2rem;border-bottom:1px solid currentColor;align-items:center;gap:.5rem;font-size:.8rem;font-weight:700}.text-action:hover,.text-action:focus-visible{color:var(--orange)}:focus-visible{outline:2px solid var(--orange);outline-offset:4px}.skip-link{position:fixed;z-index:100;top:0;left:1rem;padding:.7rem 1rem;background:var(--paper);color:var(--black);transform:translateY(-120%)}.skip-link:focus{transform:translateY(0)}.site-header{position:sticky;z-index:40;top:0;border-bottom:1px solid var(--line);background:var(--black)}.header-inner{display:flex;min-height:68px;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:.75rem;font-weight:700;letter-spacing:-.02em}.brand:before{width:8px;height:8px;background:var(--orange);content:""}.primary-nav{display:flex;align-items:center;gap:1.8rem;font-size:.72rem;font-weight:600}.primary-nav a{padding:.4rem 0;border-bottom:2px solid transparent}.primary-nav a:hover,.primary-nav a.active,.primary-nav a:focus-visible{border-color:var(--orange);color:var(--orange)}.primary-nav .nav-email{padding:.6rem .8rem;border:1px solid var(--paper)}.primary-nav .nav-email:hover,.primary-nav .nav-email:focus-visible{border-color:var(--orange);background:var(--orange);color:var(--black)}.site-footer{border-top:1px solid var(--line);background:var(--black)}.footer-inner{display:flex;min-height:80px;align-items:center;justify-content:space-between;color:var(--dim);font-size:.68rem}.footer-links{display:flex;gap:1.5rem}.footer-links a:hover,.footer-links a:focus-visible{color:var(--orange)}.hero{padding:7.5rem 0 6.5rem;background:var(--black)}.hero-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:2rem;align-items:center}.hero-copy{grid-column:1 / span 7;min-width:0}.hero h1{max-width:760px;margin:0 0 1.7rem;font-size:clamp(3rem,5vw,4rem);font-weight:800;line-height:.96}.hero-summary{max-width:630px;margin-bottom:2rem;color:var(--muted);font-size:1.08rem}.actions{display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center}.direct-email{display:inline-block;margin-top:1.3rem;color:var(--muted);font-size:.78rem}.direct-email:hover,.direct-email:focus-visible{color:var(--orange)}.simple-flow{grid-column:8 / -1;min-width:0;margin:0;padding:1.75rem 0 1.2rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.simple-flow svg{width:100%}.flow-node rect{fill:var(--charcoal);stroke:var(--line);stroke-width:1}.flow-node text{fill:var(--paper);font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;text-anchor:middle}.work-node rect{stroke:var(--paper)}.result-node rect{stroke:var(--blue)}.result-node circle{fill:var(--blue)}.flow-line{fill:none;stroke:var(--line);stroke-width:2}.flow-packet{fill:var(--orange);animation:packet-travel 4s ease-in-out infinite}.simple-flow figcaption{margin-top:.2rem;color:var(--muted);font-size:.74rem;text-align:center}.services-section{background:var(--paper);color:var(--black)}.simple-heading{display:grid;grid-template-columns:1fr 1.6fr;gap:3rem;margin-bottom:3.5rem;align-items:start}.simple-heading .eyebrow{color:#6b6765}.service-list{border-top:2px solid var(--black)}.service-item{display:grid;grid-template-columns:.85fr 1.15fr 1fr;gap:3rem;padding:2.3rem 0;border-bottom:1px solid #aaa6a3;align-items:start}.service-item h3{margin:0;font-size:1.55rem;line-height:1.08}.service-copy p{margin-bottom:.65rem;color:#5a5755;font-size:.9rem}.service-copy .service-problem{color:var(--black);font-size:1rem;font-weight:650}.service-item ul{margin:0;padding:0;list-style:none;color:#4f4c4a;font-family:JetBrains Mono,monospace;font-size:.66rem}.service-item li{position:relative;margin-bottom:.5rem;padding-left:1rem}.service-item li:before{position:absolute;left:0;color:var(--orange);content:">"}.proof-section{background:var(--charcoal)}.proof-intro{display:grid;grid-template-columns:1fr 1.15fr;gap:7rem;padding-bottom:5rem}.proof-copy>p{color:var(--muted)}.proof-copy>p:first-child{color:var(--paper);font-size:1.15rem}.technology-line{padding-top:1rem;border-top:1px solid var(--line);font-family:JetBrains Mono,monospace;font-size:.66rem;line-height:1.8}.public-work{padding-top:3rem;border-top:1px solid var(--line)}.public-work-heading{display:flex;margin-bottom:2rem;align-items:start;justify-content:space-between}.public-work-heading .eyebrow{margin:0}.public-work-heading>a{color:var(--muted);font-size:.75rem}.public-work-heading>a:hover,.public-work-heading>a:focus-visible{color:var(--orange)}.project-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.project-card{min-width:0;padding:1.4rem 0;border-top:2px solid var(--paper)}.project-card small,.project-card>span{color:var(--dim);font-family:JetBrains Mono,monospace;font-size:.58rem}.project-card h3{margin:.75rem 0;font-size:1.45rem}.project-card p{min-height:4.5rem;margin-bottom:1.2rem;color:var(--muted);font-size:.82rem}.project-card:hover,.project-card:focus-visible{border-color:var(--orange)}.project-card:hover h3,.project-card:focus-visible h3{color:var(--orange)}.contact-section{padding:0 0 7rem;background:var(--black)}.contact-panel{display:grid;grid-template-columns:1.15fr .85fr;gap:5rem;padding:3.5rem;background:var(--orange);color:var(--black)}.contact-panel .eyebrow{color:var(--black)}.contact-copy>p{margin-bottom:1.5rem;font-size:.95rem}.contact-button{border-color:var(--black);background:var(--black);color:var(--paper)}.contact-button:hover,.contact-button:focus-visible{border-color:var(--black);background:var(--paper);color:var(--black)}.contact-email{display:block;width:max-content;margin-top:1.4rem;border-bottom:1px solid currentColor;font-weight:700}.social-links{display:flex;gap:1.25rem;margin-top:1rem;font-size:.72rem}.contact-email:hover,.contact-email:focus-visible,.social-links a:hover,.social-links a:focus-visible{color:var(--paper)}.resume-page{min-height:100vh;padding:4rem 0 7rem;background:var(--charcoal)}.resume-shell{max-width:1050px}.resume-actions{display:flex;margin-bottom:2.5rem;align-items:center;justify-content:space-between}.back-link{color:var(--muted);font-family:JetBrains Mono,monospace;font-size:.66rem;font-weight:700;text-transform:uppercase}.back-link:hover,.back-link:focus-visible{color:var(--orange)}.resume-masthead{display:grid;grid-template-columns:148px 1fr auto;gap:2rem;padding:2rem;border:1px solid var(--paper);background:var(--black);align-items:end}.resume-portrait-wrap{position:relative;min-height:172px;border:1px solid var(--line);background:var(--gray);overflow:hidden}.resume-portrait{width:100%;height:100%;position:absolute;object-fit:cover;object-position:center top}.resume-portrait-wrap>span{position:absolute;right:0;bottom:0;width:24px;height:24px;border-top:2px solid var(--orange);border-left:2px solid var(--orange)}.resume-identity h1{margin:0 0 .65rem;font-size:clamp(3rem,6vw,4.8rem);font-weight:800;line-height:.82}.resume-positioning{margin:0;color:var(--muted);font-family:JetBrains Mono,monospace;font-size:.7rem}.resume-contact{display:grid;gap:.32rem;margin:0;color:var(--muted);font-family:JetBrains Mono,monospace;font-size:.62rem;font-style:normal;text-align:right}.resume-contact span{color:var(--orange)}.resume-contact a:hover,.resume-contact a:focus-visible{color:var(--orange)}.resume-block{display:grid;grid-template-columns:135px minmax(0,1fr);gap:2rem;padding:2.7rem 0;border-bottom:1px solid var(--line)}.resume-block-label span{display:block;margin-bottom:.5rem;color:var(--orange);font-family:JetBrains Mono,monospace;font-size:.62rem;font-weight:700}.resume-block-label h2{font-family:JetBrains Mono,monospace;font-size:.65rem;letter-spacing:.08em;text-transform:uppercase}.resume-profile-copy>p{max-width:720px;margin-bottom:1.5rem;font-size:1.05rem}.resume-highlights{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:0;background:var(--line);border:1px solid var(--line)}.resume-highlights div{padding:1rem;background:var(--gray)}.resume-highlights dt{color:var(--orange);font-family:JetBrains Mono,monospace;font-size:.58rem;font-weight:700;text-transform:uppercase}.resume-highlights dd{margin:.35rem 0 0;color:var(--muted);font-size:.8rem}.resume-timeline{display:grid}.resume-entry{display:grid;grid-template-columns:minmax(210px,.72fr) minmax(0,1.28fr);gap:2.8rem;padding-bottom:2.5rem}.resume-entry+.resume-entry{padding-top:2.5rem;border-top:1px solid var(--line)}.resume-entry:last-child{padding-bottom:0}.resume-entry-meta>span{color:var(--dim);font-family:JetBrains Mono,monospace;font-size:.6rem;font-weight:700}.resume-entry-meta h3{margin:.55rem 0 .25rem;font-size:1.15rem;line-height:1.1}.resume-entry-meta p{margin:0;color:var(--orange);font-family:JetBrains Mono,monospace;font-size:.63rem;font-weight:650}.role-summary{margin-bottom:1rem;color:var(--paper);font-size:.9rem}.resume-entry-copy ul{margin:0;padding:0;list-style:none;color:var(--muted);font-family:JetBrains Mono,monospace;font-size:.68rem}.resume-entry-copy li{position:relative;margin-bottom:.5rem;padding-left:1rem}.resume-entry-copy li:before{position:absolute;left:0;color:var(--orange);content:">"}.resume-bottom-grid{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.resume-bottom-grid .resume-block{grid-template-columns:110px minmax(0,1fr);border-bottom:0}.resume-bottom-grid .resume-capabilities{padding-right:2rem;border-right:1px solid var(--line)}.resume-bottom-grid .resume-education{padding-left:2rem}.resume-tags{display:flex;flex-wrap:wrap;gap:1px;align-content:start}.resume-tags span{padding:.35rem .5rem;border:1px solid var(--line);color:var(--muted);font-family:JetBrains Mono,monospace;font-size:.56rem}.education-list{display:grid;gap:1.2rem}.education-list article+article{padding-top:1.2rem;border-top:1px solid var(--line)}.education-list h3{margin-bottom:.2rem;font-size:.95rem}.education-list p{margin-bottom:.15rem;color:var(--orange);font-family:JetBrains Mono,monospace;font-size:.6rem}.education-list small{display:block;color:var(--muted);line-height:1.5}.resume-training{border-bottom:0}.resume-training>p{margin:0;color:var(--muted);font-family:JetBrains Mono,monospace;font-size:.68rem}@keyframes packet-travel{0%{transform:translate(0);opacity:0}10%,82%{opacity:1}to{transform:translate(365px);opacity:0}}@media (max-width: 900px){.hero-grid{grid-template-columns:1fr}.hero-copy,.simple-flow{grid-column:1}.simple-flow{width:min(100%,650px);margin-top:2rem}.service-item{grid-template-columns:1fr 1.25fr;gap:1.5rem 2.5rem}.service-item ul{grid-column:2}.proof-intro{gap:4rem}.resume-masthead{grid-template-columns:125px 1fr}.resume-contact{grid-column:2;text-align:left}.resume-bottom-grid{grid-template-columns:1fr}.resume-bottom-grid .resume-capabilities{padding-right:0;border-right:0;border-bottom:1px solid var(--line)}.resume-bottom-grid .resume-education{padding-left:0}}@media (max-width: 680px){.shell{width:min(calc(100% - 2rem),var(--shell))}.site-header{position:static}.header-inner{min-height:60px}.brand{font-size:.88rem}.primary-nav{gap:.8rem}.primary-nav a:nth-child(1),.primary-nav a:nth-child(2){display:none}.primary-nav .nav-email{padding:.5rem .55rem}.section,.hero{padding:4.75rem 0}.hero h1{font-size:clamp(2.45rem,11vw,2.85rem)}h2{font-size:clamp(2rem,9vw,2.5rem)}.hero-summary{font-size:1rem}.actions{align-items:flex-start;flex-direction:column}.button-primary{width:100%}.simple-flow{padding-top:1rem}.simple-flow svg{min-height:185px}.simple-heading,.service-item,.proof-intro,.contact-panel{grid-template-columns:1fr}.simple-heading{gap:.5rem;margin-bottom:2.5rem}.service-item{gap:1rem;padding:2rem 0}.service-item ul{grid-column:1}.proof-intro{gap:2rem;padding-bottom:4rem}.project-cards{grid-template-columns:1fr;gap:1rem}.project-card p{min-height:0}.contact-section{padding-bottom:4rem}.contact-panel{gap:2rem;padding:2rem 1.25rem}.contact-button{width:100%}.footer-inner{align-items:flex-start;flex-direction:column;justify-content:center;gap:.6rem}.resume-page{padding:2.5rem 0 5rem}.resume-actions{margin-bottom:2rem}.resume-masthead{grid-template-columns:92px 1fr;gap:1.2rem;padding:1rem;align-items:start}.resume-portrait-wrap{min-height:118px}.resume-identity h1{font-size:clamp(2.5rem,14vw,3.35rem)}.resume-contact{grid-column:1 / -1;padding-top:1rem;border-top:1px solid var(--line)}.resume-block,.resume-bottom-grid .resume-block{grid-template-columns:1fr;gap:1.2rem;padding:2.2rem 0}.resume-highlights{grid-template-columns:1fr}.resume-entry{grid-template-columns:1fr;gap:1rem}.resume-bottom-grid .resume-education{padding-left:0}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.flow-packet{transform:translate(365px);opacity:1}}@media (forced-colors: active){.brand:before,.result-node circle{border:1px solid CanvasText}.flow-node rect,.flow-line{stroke:CanvasText}}@media print{@page{size:A4;margin:10mm 11mm}:root{color-scheme:light}body{background:#fff;color:#111;font-family:Arial,sans-serif;font-size:8.1pt;line-height:1.35}.site-header,.site-footer,.no-print{display:none!important}.resume-page{min-height:0;padding:0!important;background:#fff!important}.resume-shell{width:100%;max-width:none}.resume-masthead{grid-template-columns:25mm 1fr auto;gap:5mm;padding:0 0 5mm;border:0;border-bottom:1.5pt solid #111;background:#fff;align-items:end}.resume-portrait-wrap{min-height:30mm;border-color:#777}.resume-portrait-wrap>span{display:none}.resume-identity .eyebrow{margin-bottom:1.5mm;color:#555;font-size:5.5pt}.resume-identity h1{margin-bottom:1.5mm;color:#111;font-size:26pt;line-height:.83}.resume-positioning{color:#333;font-family:Arial,sans-serif;font-size:7.5pt}.resume-contact{color:#333;font-family:Arial,sans-serif;font-size:6.7pt}.resume-masthead .resume-contact{grid-column:auto;grid-row:auto;text-align:right}.resume-contact span{color:#222}.resume-block{grid-template-columns:25mm 1fr;gap:5mm;padding:4.2mm 0;border-color:#ccc}.resume-block-label span{margin-bottom:1mm;color:#555;font-size:5.3pt}.resume-block-label h2{color:#111;font-family:Arial,sans-serif;font-size:6pt}.resume-profile-copy>p{margin-bottom:2.5mm;color:#222;font-size:8.5pt}.resume-highlights{gap:3mm;border:0;background:#fff}.resume-highlights div{padding:2mm 2.5mm;border-left:1.5pt solid #333;background:#f3f3f3}.resume-highlights dt{color:#222;font-family:Arial,sans-serif;font-size:5.2pt}.resume-highlights dd{color:#444;font-size:6.6pt}.resume-entry{grid-template-columns:36mm 1fr;gap:5mm;padding-bottom:4mm;break-inside:avoid}.resume-entry+.resume-entry{padding-top:4mm;border-color:#d2d2d2}.resume-entry-meta>span{color:#666;font-family:Arial,sans-serif;font-size:6.1pt}.resume-entry-meta h3{color:#111;font-size:9.3pt}.resume-entry-meta p{color:#333;font-family:Arial,sans-serif;font-size:6pt}.role-summary{margin-bottom:2mm;color:#222;font-size:7.5pt}.resume-entry-copy ul{color:#333;font-family:Arial,sans-serif;font-size:7pt}.resume-entry-copy li{margin-bottom:1mm;padding-left:3mm}.resume-entry-copy li:before{color:#222;content:"\2022"}.resume-bottom-grid{grid-template-columns:1fr 1fr;border-color:#ccc;break-inside:avoid}.resume-bottom-grid .resume-block{grid-template-columns:20mm 1fr;gap:3.5mm;padding:4mm 0}.resume-bottom-grid .resume-capabilities{padding-right:4mm;border-right-color:#ccc}.resume-bottom-grid .resume-education{padding-left:4mm}.resume-tags{gap:1mm}.resume-tags span{padding:.8mm 1.2mm;border-color:#aaa;color:#333;font-family:Arial,sans-serif;font-size:5.3pt}.education-list{gap:2mm}.education-list article+article{padding-top:2mm;border-color:#ddd}.education-list h3{color:#111;font-size:7.4pt}.education-list p{color:#333;font-family:Arial,sans-serif;font-size:5.8pt}.education-list small{color:#444;font-size:5.9pt}.resume-training{padding-bottom:0;break-inside:avoid}.resume-training>p{color:#333;font-family:Arial,sans-serif;font-size:6.8pt}a{color:#111}}
