@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&display=swap";
:root{--paper:#f7f6f2;--surface:#eeeee8;--ink:#242722;--muted:#666960;--line:#d9dad1;--accent:#bb431c;--accent-bright:#f07143;--feature:#232d26;--feature-text:#f2f4ed;--feature-muted:#bac5bc;--sans:"DM Sans", Arial, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root.dark{--paper:#171c18;--surface:#222923;--ink:#f0f1e8;--muted:#b0b8ae;--line:#384037;--accent:#ff9770;--accent-bright:#f58e65;--feature:#252f28;--feature-text:#f2f4ed;--feature-muted:#bac5bc;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.65}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a,summary{touch-action:manipulation}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}::selection{color:#242722;background:#f9b595}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{font-weight:500;line-height:1.1}svg{flex-shrink:0}p{color:var(--muted)}.page-shell{width:min(1180px,100% - 96px);margin-inline:auto}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--ink);color:var(--paper);padding:12px 18px;position:fixed;top:12px;left:12px;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.eyebrow,.small-label{letter-spacing:.115em;font-size:.75rem;font-weight:600;line-height:1.5}.eyebrow{color:var(--muted)}.small-label{color:var(--muted);display:block}.text-link{align-items:center;gap:9px;font-size:.92rem;font-weight:550;line-height:1.5;display:inline-flex}.text-link svg{transition:transform .2s}.text-link:hover svg{transform:translate(2px,-2px)}.text-link:hover{text-underline-offset:5px;text-decoration:underline}.button{border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:18px;min-height:51px;padding:13px 21px;font-size:.88rem;font-weight:550;transition:transform .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--ink);color:var(--paper)}.button-primary:hover{background:var(--accent)}.button-outline{border-color:var(--line)}.button-outline:hover{background:var(--surface)}.round-link{border:1px solid var(--line);border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:background .2s,transform .2s;display:flex}.round-link:hover{background:var(--surface);transform:translate(2px,-2px)}.site-header{border-bottom:1px solid var(--line);background:var(--paper);z-index:40;position:sticky;top:0}.header-inner{align-items:center;gap:32px;width:min(1280px,100% - 96px);min-height:86px;margin:auto;display:flex}.wordmark{letter-spacing:-.025em;white-space:nowrap;margin-right:auto;font-size:1.1rem;font-weight:700;line-height:1}.main-nav{align-items:center;gap:32px;font-size:.85rem;font-weight:500;display:flex}.main-nav a:hover{color:var(--accent)}.nav-contact{align-items:center;gap:6px;display:flex}.header-controls{align-items:center;gap:8px;display:flex}.icon-button{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.icon-button:hover{background:var(--surface)}.menu-toggle{display:none}.hero{grid-template-columns:1.42fr 1fr;align-items:center;gap:68px;min-height:660px;padding:58px 0 55px;display:grid}.hero .eyebrow{letter-spacing:.1em;align-items:center;gap:10px;font-size:.75rem;display:flex}.status-dot{background:#748a53;border-radius:50%;flex-shrink:0;width:7px;height:7px;box-shadow:0 0 0 4px #748a5314}.hero h1{letter-spacing:-.075em;margin:28px 0 25px;font-size:clamp(4rem,6.65vw,6.2rem);font-weight:500;line-height:1.04}.hero h1 .name-accent{color:var(--accent);letter-spacing:-.035em;white-space:nowrap}.hero-description{font-size:1.025rem;line-height:1.8}.hero-actions{flex-wrap:wrap;align-items:center;gap:22px;margin-top:25px;display:flex}.currently{align-items:center;gap:12px;margin-top:38px;display:inline-flex}.currently-icon{background:var(--surface);border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.currently .small-label{letter-spacing:.12em;font-size:.75rem}.currently strong{align-items:center;gap:22px;font-size:.86rem;font-weight:550;display:flex}.currently:hover strong{color:var(--accent)}.hero-photo{padding:0 0 4px;position:relative}.photo-frame{background:#24362b;border-radius:12px;height:480px;overflow:hidden}.photo-frame img{object-fit:cover;object-position:50% 63%;width:100%;height:100%;transition:transform .7s;display:block}.hero-photo:hover img{transform:scale(1.025)}.hero-photo figcaption{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;margin-top:16px;font-size:.75rem;display:flex}.hero-photo figcaption a{white-space:nowrap;text-underline-offset:3px;text-decoration:underline}.section-divider{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);letter-spacing:.12em;justify-content:space-between;align-items:center;padding:18px 0;font-size:.75rem;font-weight:550;display:flex}.work-section{padding-top:65px}.section-heading{justify-content:space-between;align-items:end;gap:30px;margin-bottom:37px;display:flex}.section-heading h2{letter-spacing:-.055em;margin-top:13px;font-size:2.85rem}.section-heading>p{font-size:.9rem;line-height:1.7}.project-feature{border-radius:7px;overflow:hidden}.time2bike{background:var(--feature);color:var(--feature-text);grid-template-columns:1.1fr 1fr;gap:0 50px;padding:39px 42px 0;display:grid}.project-story{padding-bottom:38px}.project-kicker{justify-content:space-between;align-items:center;gap:15px;display:flex}.product-brand{letter-spacing:-.045em;align-items:center;gap:9px;font-size:1.05rem;font-weight:600;display:inline-flex}.project-status{letter-spacing:.055em;color:var(--feature-muted);white-space:nowrap;align-items:center;gap:6px;font-size:.75rem;display:inline-flex}.project-status>span{background:#b4c893;border-radius:50%;width:5px;height:5px}.project-story h3{letter-spacing:-.05em;margin:40px 0 21px;font-size:2.7rem;line-height:1.1}.project-story>p{color:var(--feature-muted);max-width:400px;font-size:.95rem;line-height:1.8}.project-challenge{border-left:2px solid #90a47b;margin:26px 0;padding-left:16px}.project-challenge .small-label{color:#a9be98;margin-bottom:6px;font-size:.75rem}.project-challenge p{color:var(--feature-text);max-width:345px;font-size:.9rem;line-height:1.6}.project-story .text-link{margin-top:7px}.race-story{background:#2b362d;border:1px solid #54604d;border-radius:5px;align-self:center;margin-top:15px;overflow:hidden}.race-story-header{color:#bac8b2;letter-spacing:.09em;border-bottom:1px solid #4b5848;justify-content:space-between;align-items:center;padding:18px 20px;font-size:.75rem;display:flex}.race-timeline{margin:0;padding:26px 20px 20px;list-style:none}.race-timeline li{gap:16px;min-height:110px;display:flex;position:relative}.timeline-marker{color:#d3dfbc;z-index:1;background:#2b362d;border:1px solid #6a795e;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:27px;height:27px;margin-top:1px;font-size:.75rem;display:flex}.race-timeline li:not(:last-child):after{content:"";background:#56634e;width:1px;position:absolute;top:27px;bottom:-1px;left:13px}.race-time{letter-spacing:.07em;color:#aeba9e;margin-bottom:9px;font-size:.75rem;line-height:1.3;display:block}.race-timeline h4{letter-spacing:-.02em;font-size:1rem;font-weight:500}.race-timeline p{color:#b9c3b4;max-width:270px;margin-top:7px;font-size:.76rem}.offline-note{color:#d8e6c8;background:#343f31;border-top:1px solid #54604d;align-items:start;gap:13px;padding:17px 20px;display:flex}.offline-note>svg{margin-top:3px}.offline-note p{color:inherit;font-size:.75rem;line-height:1.6}.offline-note strong{font-weight:500;display:block}.offline-note span{color:#b9c7ae;margin-top:4px;font-size:.75rem;display:block}.project-footer{border-top:1px solid var(--line);color:var(--muted);grid-column:1/-1;justify-content:space-between;align-items:center;gap:20px;padding:21px 0;font-size:.75rem;display:flex}.time2bike .project-footer{color:#acb7a5;letter-spacing:.07em;border-color:#4b5749;font-size:.75rem}.time2bike .project-footer>span:last-child{letter-spacing:0;font-size:.75rem}.readmin{border:1px solid var(--line);margin-top:27px;padding:40px 42px 0}.readmin-heading{justify-content:space-between;align-items:start;gap:30px;display:flex}.readmin .eyebrow{font-size:.75rem}.readmin h3{letter-spacing:-.055em;margin-top:25px;font-size:2.85rem;line-height:1.1}.readmin h3 em{letter-spacing:-.02em;font-size:1.12em}.readmin .round-link{margin-top:3px}.project-intro{max-width:660px;margin-top:22px;font-size:.96rem;line-height:1.8}.readmin-capabilities{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px;margin:30px 0 0;padding:0;list-style:none;display:grid}.readmin-capabilities li{border-top:1px solid var(--line);padding:20px 0}.readmin-capabilities h4{letter-spacing:-.02em;margin-bottom:9px;font-size:1rem;font-weight:550}.readmin-capabilities p{color:var(--muted);font-size:.87rem;line-height:1.8}.metrics{border-block:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin:33px 0;padding:30px 0 34px;display:grid}.metrics>div{border-left:1px solid var(--line);flex-direction:column-reverse;padding-left:25px;display:flex}.metrics>div:first-child{border:0;padding-left:0}.metrics dd{letter-spacing:-.065em;margin:0 0 8px;font-size:3.1rem;font-weight:500;line-height:1.2}.metrics dt{color:var(--muted);font-size:.75rem}.readmin-detail{grid-template-columns:.9fr 1.5fr;gap:56px;margin:33px 0;display:grid}.readmin-detail .small-label{font-size:.75rem}.readmin-detail h4{letter-spacing:-.04em;margin-top:15px;font-size:1.65rem;line-height:1.25}.readmin-detail p{font-size:.87rem;line-height:1.85}.readmin-detail p+p{margin-top:13px}.project-details{border-top:1px solid var(--line);margin-top:20px;padding-top:15px}.project-details summary{cursor:pointer;justify-content:space-between;align-items:center;gap:15px;font-size:.81rem;font-weight:550;list-style:none;display:flex}.project-details summary::-webkit-details-marker{display:none}.project-details summary span{font-size:1.2rem;line-height:1;transition:transform .2s}.project-details[open] summary span{transform:rotate(45deg)}.project-details>div{margin-top:13px}.stack-tags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.stack-tags li{border:1px solid var(--line);color:var(--muted);border-radius:3px;padding:4px 8px;font-size:.75rem;line-height:1.6}.readmin .project-footer .text-link{flex-shrink:0;font-size:.76rem}.bloxlink-project{border-block:1px solid var(--line);grid-template-columns:30px 1fr .9fr 48px;align-items:center;gap:24px;margin-top:33px;padding:32px 0;display:grid}.project-index{color:var(--muted);align-self:start;padding-top:4px;font-size:.75rem}.bloxlink-title .eyebrow{font-size:.75rem}.bloxlink-title h3{letter-spacing:-.045em;margin-top:11px;font-size:1.4rem}.bloxlink-project>p{font-size:.82rem;line-height:1.75}.about-section{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:95px;padding:110px 0 90px;display:grid}.about-heading .eyebrow{font-size:.75rem}.about-heading h2{letter-spacing:-.055em;margin-top:24px;font-size:3.3rem;line-height:1.07}.about-note{margin-top:28px;font-size:.86rem;line-height:1.8}.about-note em{color:var(--accent);font-size:1.4rem}.about-copy{padding-top:8px}.about-copy p{margin-bottom:19px;font-size:.99rem;line-height:1.85}.about-copy p:first-child{color:var(--ink);font-size:1.15rem;line-height:1.7}.interests{flex-wrap:wrap;align-items:center;gap:18px;margin-top:24px;display:flex}.interests span{color:var(--muted);align-items:center;gap:7px;font-size:.75rem;display:inline-flex}.experience-section{border-bottom:1px solid var(--line);grid-template-columns:.8fr 1.2fr;gap:100px;padding:65px 0 60px;display:grid}.experience-heading .eyebrow{font-size:.75rem}.experience-heading h2{letter-spacing:-.05em;margin-top:20px;font-size:2.5rem;line-height:1.15}.toolbox{max-width:290px;margin-top:32px}.toolbox .small-label{margin-bottom:13px;font-size:.75rem}.experience-list>article{border-bottom:1px solid var(--line);padding:25px 0}.experience-list>article:first-child{padding-top:0}.experience-top{justify-content:space-between;align-items:center;gap:20px;display:flex}.experience-top h3{letter-spacing:-.035em;font-size:1.1rem;font-weight:550}.experience-top>span{color:var(--muted);text-align:right;font-size:.75rem}.experience-list h4{color:var(--muted);margin-top:9px;font-size:.83rem;font-weight:500}.experience-list p{margin-top:13px;font-size:.81rem;line-height:1.85}.writing-callout{background:var(--surface);border-radius:5px;justify-content:space-between;align-items:center;gap:35px;padding:42px;display:flex}.writing-callout .eyebrow{font-size:.75rem}.writing-callout h2{letter-spacing:-.055em;margin-top:15px;font-size:2.45rem}.writing-callout p:not(.eyebrow){margin-top:16px;font-size:.87rem;line-height:1.85}.writing-callout .button{border-color:var(--muted);flex-shrink:0;font-size:.8rem}.contact-section{text-align:center;padding:108px 0 93px}.contact-section .eyebrow{font-size:.75rem}.contact-section h2{letter-spacing:-.065em;margin:24px 0;font-size:4.8rem;line-height:1.04}.contact-section h2 em{color:var(--accent);letter-spacing:-.035em;font-size:1.14em}.contact-email{border-bottom:1px solid var(--ink);align-items:center;gap:16px;padding-bottom:7px;font-size:1.1rem;line-height:1.4;display:inline-flex}.contact-email:hover{color:var(--accent);border-color:var(--accent)}.contact-email svg{width:18px}.contact-section>p:last-child{margin-top:15px;font-size:.75rem}.footer-inner{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:28px 0 34px;font-size:.75rem;display:flex}.footer-inner>p{color:var(--ink);font-weight:600}.site-footer nav{flex-wrap:wrap;gap:15px;display:flex}.site-footer nav a{align-items:center;gap:3px;display:inline-flex}.site-footer a:hover{color:var(--accent)}.back-top{white-space:nowrap}.education-section,.person-teaser{border-bottom:1px solid var(--line);grid-template-columns:.8fr 1.2fr;gap:100px;padding-block:65px;display:grid}.education-section h2,.person-teaser h2{letter-spacing:-.045em;margin-top:20px;font-size:2.5rem;line-height:1.15}.education-list article+article{border-top:1px solid var(--line);margin-top:28px;padding-top:28px}.education-list p{margin-top:10px;font-size:.95rem}.education-status{background:var(--surface);color:var(--muted);border-radius:4px;margin-top:12px;padding:3px 9px;font-size:.75rem;display:inline-block}.education-list .education-distinction{color:var(--accent);font-size:.82rem}.person-teaser{margin-bottom:60px}.person-teaser p:not(.eyebrow){font-size:1.05rem;line-height:1.85}.person-teaser .text-link{margin-top:24px}.project-links{flex-wrap:wrap;gap:18px 28px;margin-top:26px;display:flex}.project-story .time2bike-milestone{margin-top:24px}.writing-page,.article-page{min-height:calc(100vh - 186px);padding-top:85px;padding-bottom:100px}.page-title{letter-spacing:-.065em;margin:20px 0;font-size:clamp(3.2rem,7vw,5.5rem)}.page-intro{max-width:680px;font-size:1.1rem;line-height:1.8}.empty-notebook{border-block:1px solid var(--line);max-width:750px;margin-top:65px;padding:35px 0}.empty-notebook h2{letter-spacing:-.04em;margin-bottom:15px;font-size:1.7rem}.empty-notebook p{max-width:600px;margin-bottom:22px}.writing-list{max-width:850px;margin:60px 0 0;padding:0;list-style:none}.writing-entry{border-top:1px solid var(--line);padding:28px 0;display:block}.writing-entry h2{letter-spacing:-.04em;margin:12px 0;font-size:2rem}.writing-entry:hover h2{color:var(--accent)}.writing-entry p{max-width:670px}.writing-meta{color:var(--muted);font-size:.8rem}.article-header{max-width:780px;margin:40px auto}.article-header h1{letter-spacing:-.055em;margin:20px 0;font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.1}.article-header .page-intro{margin-bottom:20px}.article-body{overflow-wrap:break-word;max-width:740px;margin:50px auto 0;font-size:1.05rem;line-height:1.9}.article-body h2{letter-spacing:-.035em;margin:45px 0 20px;font-size:2rem}.article-body h3{margin:35px 0 15px;font-size:1.5rem}.article-body p,.article-body ul,.article-body ol{margin-bottom:23px}.article-body a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.article-body blockquote{border-left:3px solid var(--accent);margin:30px 0;padding-left:25px}.article-body pre{background:var(--surface);border-radius:5px;padding:22px;font-size:.86rem;overflow:auto}.article-body code{background:var(--surface);padding:.15em .3em;font-size:.88em}.article-body pre code{padding:0}.article-body img{border-radius:5px;max-width:100%;height:auto}.article-body hr{border:0;border-top:1px solid var(--line);margin:40px 0}.article-body table{border-collapse:collapse;display:block;overflow:auto}.article-body td,.article-body th{border:1px solid var(--line);padding:10px}.hero-lead{color:var(--ink);margin-bottom:12px;font-size:1.22rem;font-weight:500;line-height:1.5}.employer-link{color:var(--accent);text-underline-offset:5px;font-weight:600;text-decoration:underline;text-decoration-thickness:1px}.project-lifecycle{color:var(--muted);margin-top:9px;font-size:.78rem}.open-source-note{background:var(--surface);border-left:2px solid var(--accent);margin-top:25px;padding:19px 22px}.open-source-note p{color:var(--ink);max-width:760px;margin-top:8px;font-size:.93rem;line-height:1.8}.metric-context{color:var(--muted);margin-top:26px;font-size:.75rem}.metric-context+.metrics{margin-top:12px}.rdc-milestone{grid-template-columns:85px 1fr;align-items:baseline;gap:10px 22px;max-width:740px;margin-top:28px;display:grid}.rdc-milestone p{font-size:.93rem;line-height:1.8}.rdc-milestone .text-link{grid-column:2;font-size:.85rem}.print-contact{display:none}.career-proof{border-block:1px solid var(--line);grid-template-columns:1.2fr 1fr;align-items:center;gap:65px;padding-block:35px;display:grid}.proof-ownership h2{letter-spacing:-.04em;margin-block:10px;font-size:1.65rem}.proof-ownership>p:not(.eyebrow){font-size:.9rem}.proof-ownership .text-link{margin-top:12px;font-size:.8rem}.proof-numbers{grid-template-columns:1fr 1fr;gap:30px;margin:0;display:grid}.proof-numbers>div{border-left:1px solid var(--line);flex-direction:column-reverse;padding-left:30px;display:flex}.proof-numbers dd{letter-spacing:-.06em;margin:0 0 10px;font-size:clamp(2.8rem,4vw,3.8rem);line-height:1.1}.proof-numbers dt{color:var(--muted);font-size:.85rem}.experience-highlights{color:var(--muted);margin:15px 0 0;padding-left:18px;font-size:.94rem;line-height:1.75}.experience-highlights li+li{margin-top:9px}.experience-highlights li::marker{color:var(--accent)}.experience-list h4{color:var(--ink);font-size:.94rem}.race-timeline li{min-height:127px}.race-timeline li:last-child{min-height:115px}.race-timeline li:last-child .timeline-marker{color:#d3dfbc;background:#2b362d;border-color:#6a795e}@media (min-width:1500px){.hero{min-height:770px}.hero h1{font-size:6.5rem}.photo-frame{height:515px}}@media (max-width:1100px){.page-shell,.header-inner{width:calc(100% - 64px)}.hero{gap:40px;min-height:650px;padding-top:65px;padding-bottom:60px}.hero h1{font-size:clamp(3.7rem,7vw,5.5rem)}.hero-description{font-size:.93rem}.photo-frame{height:430px}.hero-photo figcaption{font-size:.75rem}.time2bike{gap:30px;padding:32px 30px 0}.project-story h3{font-size:2.3rem}.project-kicker{flex-wrap:wrap}.readmin{padding:32px 30px 0}.metrics dd{font-size:2.7rem}.about-section,.experience-section{gap:60px}.bloxlink-project{grid-template-columns:20px 1fr .9fr 42px;gap:18px}.bloxlink-title h3{font-size:1.2rem}.footer-inner{justify-content:start}.footer-inner nav{margin-left:auto}.back-top{display:none}}@media (max-width:850px){.education-section,.person-teaser{grid-template-columns:1fr 1.2fr;gap:40px}.header-inner,.main-nav{gap:14px}.main-nav,.header-inner{gap:20px}.hero{grid-template-columns:1.25fr 1fr;gap:30px;min-height:610px}.hero h1{font-size:3.7rem}.hero .eyebrow{font-size:.75rem}.hero-description{font-size:.87rem}.desktop-break{display:none}.hero-actions{gap:18px}.hero-actions .button{gap:12px;padding:12px 15px;font-size:.8rem}.hero-actions .text-link{font-size:.8rem}.photo-frame{height:390px}.hero-photo figcaption{font-size:.75rem}.section-heading h2{font-size:2.5rem}.time2bike{grid-template-columns:1fr 1fr;gap:24px}.project-story h3{font-size:2rem}.project-story>p{font-size:.86rem}.project-challenge p{font-size:.81rem}.race-story-header{padding:15px;font-size:.75rem}.race-timeline{padding:22px 15px 12px}.race-timeline li{gap:11px;min-height:118px}.race-timeline h4{font-size:.9rem}.race-timeline p{font-size:.75rem}.offline-note{gap:10px;padding:15px}.time2bike .project-footer>span:last-child{display:none}.readmin h3{font-size:2.55rem}.metrics dd{font-size:2.45rem}.metrics>div{padding-left:18px}.metrics dt{font-size:.75rem}.readmin-detail{gap:30px}.project-footer{flex-wrap:wrap}.bloxlink-project{grid-template-columns:1fr 48px;gap:16px;padding:25px 0}.project-index{display:none}.bloxlink-title,.bloxlink-project>p{grid-column:1}.bloxlink-project .round-link{grid-area:1/2/3}.about-section{gap:45px}.about-heading h2{font-size:2.7rem}.about-heading .eyebrow{font-size:.75rem}.about-copy p{font-size:.88rem}.about-copy p:first-child{font-size:1.03rem}.experience-section{grid-template-columns:.8fr 1.2fr;gap:45px}.experience-top{align-items:start}.experience-top>span{font-size:.75rem}.writing-callout{flex-direction:column;align-items:start;gap:25px;padding:32px}.writing-callout h2{font-size:2.2rem}}@media (max-width:700px){.career-proof{grid-template-columns:1fr;gap:28px}.proof-numbers{gap:22px}.proof-numbers>div{padding-left:18px}.proof-numbers>div:first-child{border-left:0;padding-left:0}.education-section,.person-teaser{grid-template-columns:1fr;gap:28px;padding-block:45px}.education-section h2,.person-teaser h2{font-size:2.3rem}.hero-photo figcaption{flex-wrap:wrap}html{scroll-padding-top:93px}.page-shell,.header-inner{width:calc(100% - 40px)}.header-inner{min-height:73px}.wordmark{font-size:1.05rem}.menu-toggle{display:flex}.main-nav{background:var(--paper);border-bottom:1px solid var(--line);align-items:stretch;gap:0;padding:18px 20px 25px;font-size:1rem;display:none;position:absolute;top:73px;left:0;right:0;box-shadow:0 10px 20px #00000008}.main-nav.is-open{flex-direction:column;display:flex}.main-nav a{padding:12px 5px}.hero{grid-template-columns:1fr;gap:38px;min-height:0;padding:48px 0 43px}.hero .eyebrow{letter-spacing:.075em;font-size:.75rem}.hero h1{margin:24px 0 22px;font-size:clamp(3.4rem,11.7vw,5.4rem)}.hero-description{max-width:430px;font-size:.98rem}.hero-actions{gap:25px;margin-top:24px}.hero-actions .button{padding:13px 18px;font-size:.85rem}.hero-actions .text-link{font-size:.88rem}.currently{margin-top:29px}.hero-photo{width:88%;margin-inline:auto}.photo-frame{border-radius:140px 140px 5px 5px;height:440px}.photo-frame img{object-position:50% 64%}.hero-photo figcaption{font-size:.75rem}.section-divider{padding:15px 0;font-size:.75rem}.work-section{padding-top:54px}.section-heading{flex-direction:column;align-items:start;gap:15px;margin-bottom:27px}.section-heading h2{margin-top:12px;font-size:2.65rem}.section-heading>p{font-size:.87rem}.section-heading>p br{display:none}.eyebrow{font-size:.75rem}.time2bike{grid-template-columns:1fr;gap:0;padding:26px 23px 0}.project-kicker{flex-wrap:nowrap}.project-status{font-size:.75rem}.project-story{padding-bottom:10px}.project-story h3{margin-top:32px;font-size:2.4rem}.project-story>p{font-size:.94rem}.project-challenge p{font-size:.89rem}.race-story{margin-top:27px;margin-bottom:27px}.race-story-header{padding:17px;font-size:.75rem}.race-timeline{padding:24px 17px 16px}.race-timeline li{gap:14px;min-height:107px}.race-timeline h4{font-size:.98rem}.race-timeline p{font-size:.76rem}.race-time{font-size:.75rem}.offline-note{padding:17px}.offline-note p,.offline-note span{font-size:.75rem}.time2bike .project-footer{letter-spacing:.04em;padding:18px 0;font-size:.75rem}.readmin{margin-top:22px;padding:27px 23px 0}.readmin h3{font-size:2.4rem}.readmin-heading{gap:10px}.readmin-heading .round-link{flex-shrink:0;width:38px;height:38px}.readmin-capabilities{grid-template-columns:1fr;margin-top:24px}.project-intro{font-size:.9rem}.metrics{grid-template-columns:1fr;gap:0;margin:27px 0;padding:6px 0}.metrics>div{border-left:0;border-bottom:1px solid var(--line);flex-direction:row-reverse;justify-content:space-between;align-items:center;gap:20px;padding:15px 0}.metrics>div:nth-child(3){border:0;padding-left:0}.metrics>div:not(:last-child){border-bottom:1px solid var(--line)}.metrics dd{min-width:105px;margin:0;font-size:2.5rem}.metrics dt{text-align:right;font-size:.75rem}.rdc-milestone{grid-template-columns:1fr;gap:8px}.rdc-milestone .text-link{grid-column:1}.readmin-detail{grid-template-columns:1fr;gap:20px;margin:27px 0}.readmin-detail h4{margin-top:12px;font-size:1.65rem}.readmin-detail h4 br{display:none}.readmin-detail p{font-size:.9rem}.project-footer{gap:16px}.stack-tags li{font-size:.75rem}.bloxlink-project{margin-top:26px}.bloxlink-title .eyebrow{font-size:.75rem}.bloxlink-title h3{font-size:1.35rem}.bloxlink-project>p{font-size:.87rem}.about-section{grid-template-columns:1fr;gap:27px;padding:65px 0 52px}.about-heading .eyebrow{font-size:.75rem}.about-heading h2{margin-top:20px;font-size:3rem}.about-note{margin-top:18px}.about-copy{padding-top:0}.about-copy p{font-size:.96rem}.about-copy p:first-child{font-size:1.09rem}.experience-section{grid-template-columns:1fr;gap:36px;padding:54px 0 60px}.experience-heading h2{font-size:2.6rem}.experience-heading h2 br{display:none}.toolbox{max-width:400px;margin-top:24px}.experience-top>span{font-size:.75rem}.experience-list p{font-size:.87rem}.writing-callout{gap:22px;padding:29px 23px}.writing-callout h2{font-size:2.1rem}.writing-callout p:not(.eyebrow){font-size:.9rem}.contact-section{padding:73px 0 60px}.contact-section h2{font-size:3.65rem}.contact-email{gap:10px;font-size:1rem}.contact-section>p:last-child{max-width:270px;margin:16px auto 0;font-size:.75rem}.footer-inner{flex-direction:column;align-items:start;gap:14px;padding-top:25px;font-size:.75rem}.footer-inner nav{gap:11px;margin-left:0}.footer-inner nav a{font-size:.75rem}.writing-page,.article-page{padding-top:50px;padding-bottom:65px}.page-title{font-size:3.7rem}.page-intro{font-size:1rem}.empty-notebook{margin-top:40px;padding:28px 0}.empty-notebook p{font-size:.95rem}.article-header{margin-top:30px}.article-body{margin-top:35px;font-size:1rem}}@media (max-width:370px){.hero h1{font-size:3.2rem}.hero .eyebrow{font-size:.75rem}.photo-frame{height:380px}.project-status{font-size:.75rem}.product-brand{font-size:.96rem}.project-story h3,.readmin h3{font-size:2.1rem}.metrics dd{font-size:2.5rem}.metrics dt{font-size:.75rem}.contact-section h2{font-size:3.1rem}}@media (max-width:700px){.hero-lead{font-size:1.15rem}.experience-highlights{font-size:.95rem}.hero-actions{gap:16px 18px}.hero-actions .button{padding-inline:15px}.race-timeline li{min-height:123px}.race-timeline li:last-child{min-height:112px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@media print{.education-section{break-inside:avoid;gap:30px;padding-block:25px}.person-teaser{display:none}.site-header,.site-footer,.hero-actions,.currently,.hero-photo,.race-story,.round-link,.writing-callout,.contact-section,.skip-link{display:none!important}:root,:root.dark{--paper:#fff;--ink:#111;--muted:#444;--line:#ccc}.page-shell{width:100%}body{font-size:11pt}.hero{min-height:0;padding:20px 0;display:block}.hero h1{font-size:36pt}.hero-description,.hero-lead{font-size:11pt}.print-contact{margin-top:12px;font-size:10pt;display:block}.hero h1 br{display:none}.hero h1 .name-accent{color:#111}.experience-highlights{font-size:10pt}.experience-highlights li+li{margin-top:5px}.section-divider{display:none}.work-section{padding-top:20px}.section-heading h2{font-size:25pt}.time2bike{color:#111;background:#fff;border:1px solid #ccc;padding:20px;display:block}.time2bike p,.time2bike .small-label,.time2bike .project-footer,.project-status{color:#444}.project-story{padding:0}.project-story h3{margin-top:20px}.project-footer{padding-bottom:0}.readmin{padding:20px}.readmin h3,.metrics dd{font-size:25pt}.about-section,.experience-section{gap:30px;padding:25px 0}.about-heading h2,.experience-heading h2{font-size:25pt}.project-feature,.experience-list article{break-inside:avoid}details>div{display:block!important}.writing-page,.article-page{padding:10px 0}@page{margin:.6in}}
