:root{--paper: #f4f3ed;--ink: #202b27;--muted: #5d6962;--green: #295c43;--line: #d7ddd3;--mint: #dde6d8;--surface: #e5eade;--surface-soft: #e8e6da;--surface-card: #f4f3ed;--serif: Georgia, "Times New Roman", serif;color-scheme:light}html[data-theme=dark]{--paper: #2d353b;--ink: #d3c6aa;--muted: #9aa79d;--green: #a7c080;--line: #4f585e;--mint: #343f44;--surface: #343f44;--surface-soft: #272e33;--surface-card: #343f44;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}a:focus-visible,summary:focus-visible{outline:3px solid #bd692e;outline-offset:6px}img{max-width:100%;display:block}p{line-height:1.7}h1,h2,h3,p,figure{margin:0}em{font-family:var(--serif);font-weight:400}h1,h2{letter-spacing:-.065em;font-weight:500;line-height:1.04}h2{font-size:clamp(38px,4.2vw,60px)}h3{letter-spacing:-.035em}.wrap{width:min(1200px,calc(100% - 96px));margin-inline:auto}.header{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.wordmark{font-size:44px;font-weight:800;letter-spacing:-6px;padding-right:8px;line-height:1}.wordmark span{color:var(--green)}nav{display:flex;gap:32px;font-size:14px}.header-contact{min-height:36px;display:inline-flex;align-items:center;font-size:14px;padding:8px 10px;border-radius:3px}.header-contact:hover{background:var(--surface);color:var(--green);text-decoration:none}.header-actions{display:flex;align-items:center;gap:4px}.theme-toggle{min-height:36px;display:inline-flex;align-items:center;gap:7px;border:0;border-radius:3px;padding:8px 10px;background:transparent;color:var(--muted);font:inherit;font-size:10px;text-transform:capitalize;cursor:pointer}.theme-toggle:hover{background:var(--surface);color:var(--ink)}.theme-toggle:focus-visible{outline:3px solid #e69875;outline-offset:3px}.hero{display:grid;grid-template-columns:1.25fr 1fr;gap:70px;padding-block:72px 76px;align-items:center}.eyebrow{font-size:11px;font-weight:600;letter-spacing:1.6px;line-height:1.6}.hero .eyebrow{display:flex;align-items:center;gap:9px}.dot{width:7px;height:7px;border-radius:50%;background:var(--green)}h1{font-size:clamp(66px,7.6vw,108px);margin:30px 0}.hero h1 em{color:var(--green)}.intro{font-size:19px;max-width:510px;color:var(--muted);line-height:1.65}.actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:30px}.button{padding:17px 21px;display:inline-flex;align-items:center;gap:28px;font-size:13px;font-weight:600}.primary{background:var(--green);color:#fff;border-radius:3px}.primary:hover{background:#204a35;text-decoration:none}.text-link{font-size:13px;font-weight:600;display:inline-block}.text-link span{margin-left:10px}.location{margin-top:45px;font-size:11px;color:var(--muted)}.location span{padding:0 8px}.portrait{position:relative;background:var(--mint);height:485px;overflow:hidden;border-radius:3px 3px 100px}.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 25%;filter:saturate(.65)}.portrait:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#10231ad9)}.portrait figcaption{position:absolute;bottom:38px;left:32px;color:#fff;z-index:1;font-family:var(--serif);font-size:25px;line-height:1.3}.portrait figcaption span{display:block}.portrait-label{position:absolute;right:20px;top:25px;writing-mode:vertical-rl;font-size:10px;letter-spacing:2px}.expertise-strip{border-block:1px solid var(--line)}.expertise-strip .wrap{padding-block:23px;display:flex;justify-content:space-between;align-items:center;gap:20px}.expertise-strip span{font-size:10px;letter-spacing:1px;color:var(--muted)}.expertise-strip p{font-size:13px}.expertise-strip b{font-weight:400;color:#9da89b;margin:0 14px}.section{padding-block:100px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:55px;margin-bottom:40px}.section-heading .eyebrow{margin-bottom:22px}.section-heading>p{max-width:365px;font-size:15px;color:var(--muted)}.featured{display:grid;grid-template-columns:1.05fr 1fr;background:#e5eade;border:1px solid #d4decd;border-radius:5px;overflow:hidden}.featured-copy{padding:38px}.project-meta{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-size:10px;letter-spacing:1px}.status{border:1px solid #8b9d84;border-radius:20px;padding:5px 9px;letter-spacing:0;font-size:10px}.featured h3{font-size:56px;font-weight:500;margin:32px 0 10px}.accent{color:var(--green)}.featured .tagline{font-family:var(--serif);font-size:23px;color:var(--ink);margin-bottom:18px}.featured-copy>p:not(.tagline){color:#4c5c4d;font-size:14px}.tags{display:flex;flex-wrap:wrap;list-style:none;gap:8px;padding:0;margin-top:22px}.tags li{border:1px solid #bfcbb8;border-radius:3px;padding:5px 8px;font-size:10px}.keyboard-visual{background:#d1ddc9;display:flex;flex-direction:column;justify-content:center;padding:36px;gap:30px;overflow:hidden}.type-sample{font-size:20px;line-height:1.55;letter-spacing:-.5px}.type-sample strong{font-weight:500}.type-sample span{color:var(--green)}.keyboard-image{width:100%;height:auto;border-radius:10px;box-shadow:0 15px 35px #253a2420}.keyboard-image-dark{display:none}.keyboard-visual>p{font-size:9px;letter-spacing:2px;text-align:center}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:40px}.project{padding-block:22px 28px;border-block:1px solid var(--line);display:flex;flex-direction:column}.project-number{font-family:monospace;color:var(--muted);font-size:11px}.project h3{font-size:23px;font-weight:500;margin:22px 0 14px}.project h3 a{display:flex;justify-content:space-between}.project p{font-size:14px;color:var(--muted);margin-bottom:25px}.project-kind{font-size:9px;letter-spacing:1px;margin-top:auto}.all-projects{margin-top:25px}.experience{background:#202e27;color:#f3f2e9}.experience-layout{display:grid;grid-template-columns:1fr 1.25fr;gap:95px}.experience .eyebrow{color:#b9cbb0}.experience h2{margin:26px 0}.experience h2 em{color:#bbd3a9}.experience-intro>p:not(.eyebrow){font-size:14px;color:#bec9c0;margin-bottom:20px;max-width:340px}.experience-intro .text-link{margin-top:12px}.role{border-top:1px solid #48564c;padding:26px 0;display:flex;gap:23px}.role-index{font-family:monospace;color:#a9b7a3;font-size:11px;padding-top:5px}.role h3{font-size:25px;font-weight:400}.role>div{min-width:0;flex:1}.role-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px}.role-heading>span{color:#a9b7a3;font:10px monospace;letter-spacing:.6px;white-space:nowrap}.role-label{font-size:9px;letter-spacing:1.1px;color:#b8cba9;margin:10px 0}.role p:last-child{font-size:14px;color:#bec9c0}.earlier{border-block:1px solid #48564c;padding:20px 0;font-size:13px}.earlier summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between}.earlier p{margin-top:15px;color:#bec9c0}.earlier a{text-decoration:underline}.career-history{margin-top:20px}.career-history article{padding:18px 0;border-top:1px solid #48564c}.career-history article>div{display:flex;justify-content:space-between;gap:20px;align-items:baseline}.career-history h4{margin:0;font-size:17px;font-weight:500}.career-history span{color:#a9b7a3;font:10px monospace;white-space:nowrap}.career-history article p{max-width:610px}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:60px}.service-icon{font-size:26px;color:var(--green);display:block;padding-bottom:30px;border-bottom:1px solid var(--line);margin-bottom:24px}.services h3{font-size:23px;font-weight:500;margin-bottom:16px}.services p{font-size:14px;color:var(--muted)}.working-note{border-top:1px solid var(--line);margin-top:55px;padding-top:30px;display:flex;justify-content:space-between;gap:30px}.working-note p{font-size:24px;letter-spacing:-.7px;line-height:1.45;max-width:650px}.personal{padding-block:35px 70px;display:grid;grid-template-columns:1fr 2fr;gap:40px}.personal>p:last-child{font-size:16px;color:var(--muted);max-width:720px}.personal a{text-decoration:underline}.contact{background:#dce5d4;padding-block:72px}.contact h2{font-size:clamp(58px,7vw,96px);margin:25px 0 40px}.contact h2 em{color:var(--green)}.contact-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.contact-bottom p{font-size:14px;color:#485a49}.contact-link{font-size:clamp(17px,2.3vw,30px);letter-spacing:-.7px;border-bottom:1px solid #8a9d82;padding-bottom:10px}.contact-link span{margin-left:25px}.footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:35px}.footer p{font-size:11px;color:var(--muted)}.footer>div{display:flex;gap:22px;font-size:11px}.skip{position:fixed;top:-100px;left:20px;z-index:10;padding:12px;background:var(--ink);color:#fff}.skip:focus{top:15px}@media(min-width:1500px){.hero{padding-block:90px}}@media(max-width:1000px){.wrap{width:calc(100% - 48px)}.hero{gap:30px}.hero h1{font-size:75px}.portrait{height:450px}.actions{gap:20px}.experience-layout{gap:45px}.expertise-strip .wrap{flex-wrap:wrap}.featured-copy{padding:27px}.keyboard-visual{padding:25px}.featured .actions{gap:18px}.services{gap:25px}.location{line-height:1.7}}@media(max-width:700px){.wrap{width:calc(100% - 40px)}.header{height:auto;min-height:104px;gap:18px;flex-wrap:wrap;padding-block:18px}.header .wordmark{font-size:36px}.header nav{order:3;width:100%;justify-content:space-between;gap:12px;font-size:11px}.header-contact{font-size:12px;padding:8px}.header-actions{gap:10px}.hero{grid-template-columns:1fr;padding-block:45px;gap:35px}.hero .eyebrow{font-size:9px;letter-spacing:1px}h1,.hero h1{font-size:clamp(65px,14vw,90px);margin-block:24px}.intro{font-size:17px}.location{margin-top:28px}.portrait{height:400px;max-width:480px;width:100%;justify-self:center}.expertise-strip p{font-size:11px;line-height:2}.expertise-strip b{margin-inline:6px}.section{padding-block:65px}.section-heading{display:block}.section-heading>p{margin-top:25px;max-width:100%}.featured{grid-template-columns:1fr}.featured h3{font-size:50px}.keyboard-visual{padding:30px}.project-grid,.services{grid-template-columns:1fr;gap:20px}.project-grid{margin-top:25px}.project{border-bottom:0}.project:last-child{border-bottom:1px solid var(--line)}.project h3{margin-top:16px}.project p{max-width:480px}.experience-layout{grid-template-columns:1fr;gap:40px}.experience-intro>p:not(.eyebrow){max-width:100%}.role-heading{display:block}.role-heading>span{display:block;margin-top:6px}.services{margin-top:35px;gap:35px}.service-icon{padding-bottom:16px;margin-bottom:20px}.working-note{display:block}.working-note p{font-size:22px;margin-top:18px}.personal{grid-template-columns:1fr;padding-block:0 55px;gap:20px}.contact{padding-block:55px}.contact-bottom{display:block}.contact-link{display:inline-block;margin-top:25px;font-size:18px}.contact-link span{margin-left:8px}.footer{flex-wrap:wrap;padding-block:25px}.footer p{font-size:10px}.footer>div{width:100%;justify-content:flex-end}.portrait figcaption{font-size:24px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.header,.actions,.footer,.keyboard-visual{display:none}.hero,.experience-layout,.featured{display:block}.section{padding-block:25px}.experience,.contact{background:#fff;color:#000}.experience p,.experience .role-label{color:#333}.portrait{display:none}a{text-decoration:underline}}.text-link svg,.header-contact svg,.contact-link svg{display:inline-block;vertical-align:middle;margin-left:8px;flex-shrink:0}.project h3 a svg{flex-shrink:0}.everforest{margin-top:28px;background:var(--surface)}.everforest h3{font-size:clamp(36px,4vw,52px)}.maintenance-note{margin-top:14px}.featured-copy .download-note{font-size:11px;margin-top:24px}.download-note a{text-decoration:underline}.editor-preview{background:#2d353b;color:#d3c6aa;padding:30px;display:flex;flex-direction:column;justify-content:center;min-width:0}.editor-top{display:flex;gap:24px;border-bottom:1px solid #48534d;padding-bottom:20px;font:11px monospace;color:#9da99a}.editor-top span:first-child{letter-spacing:5px;color:#a7c080}.editor-preview pre{overflow-x:auto;font-size:clamp(11px,1.1vw,14px);line-height:2;padding-block:25px}.code-comment{color:#859289}.code-keyword{color:#d699b6}.code-string{color:#a7c080}.editor-palette{display:flex;gap:9px}.editor-palette i{width:20px;height:20px;border-radius:50%;background:#a7c080}.editor-palette i:nth-child(2){background:#dbbc7f}.editor-palette i:nth-child(3){background:#d699b6}.editor-palette i:nth-child(4){background:#7fbbb3}.editor-palette i:nth-child(5){background:#e67e80}.editor-preview>p{font-size:9px;letter-spacing:1px;color:#b6c2b2;margin-top:22px}.community{background:var(--surface-soft)}.community .section-heading>p{max-width:425px}.community-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.community-project{background:var(--surface-card);border:1px solid var(--line);padding:32px;display:flex;flex-direction:column;align-items:flex-start}.community-project .eyebrow{font-size:9px;margin-top:28px;color:var(--green)}.community-project h3{width:100%;font-size:32px;font-weight:500;margin-block:15px}.community-project h3 a{display:flex;align-items:center;justify-content:space-between;gap:15px}.community-project>p:not(.eyebrow){color:var(--muted);font-size:14px;margin-bottom:28px;max-width:430px}.community-project>.text-link{margin-top:auto}@media(max-width:700px){.community-grid{grid-template-columns:1fr}.community-project,.editor-preview{padding:25px}.header nav{font-size:10px;gap:8px}}.portrait img{object-position:center 20%;filter:none}.portrait-label{color:#d6ded2}html[data-theme=dark] .primary{background:#a7c080;color:#2d353b}html[data-theme=dark] .primary:hover{background:#83c092}html[data-theme=dark] .featured{background:var(--surface);border-color:var(--line)}html[data-theme=dark] .featured-copy>p:not(.tagline),html[data-theme=dark] .project p,html[data-theme=dark] .section-heading>p,html[data-theme=dark] .services p,html[data-theme=dark] .community-project>p:not(.eyebrow),html[data-theme=dark] .contact-bottom p{color:var(--muted)}html[data-theme=dark] .keyboard-visual{background:#3d484d}html[data-theme=dark] .keyboard-image-light{display:none}html[data-theme=dark] .keyboard-image-dark{display:block}html[data-theme=dark] .tags li,html[data-theme=dark] .status{border-color:#4f585e}html[data-theme=dark] .experience{background:#272e33}html[data-theme=dark] .contact{background:#343f44}html[data-theme=dark] .contact h2 em,html[data-theme=dark] .hero h1 em,html[data-theme=dark] .wordmark span,html[data-theme=dark] .service-icon,html[data-theme=dark] .community-project .eyebrow{color:#a7c080}html[data-theme=dark] .contact-link{border-color:#4f585e}html[data-theme=dark] .editor-preview{background:#21272b}html[data-theme=dark] .portrait{background:#343f44}html[data-theme=dark] .skip{background:#d3c6aa;color:#2d353b}
