:root{--paper:#f6f5f0;--ink:#20231f;--muted:#5d6258;--line:#d5d9cd;--green:#4e692f;--lime:#d9ed9c;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid var(--green);outline-offset:5px}::selection{background:var(--lime);color:var(--ink)}.wrap{width:calc(100% - 80px);max-width:1120px;margin-inline:auto}.mono,.eyebrow,.section-note,.hero-meta{font-family:var(--mono)}.accent,.title-dot{color:var(--green)}.muted{color:var(--muted)}.skip{position:fixed;left:16px;top:-80px;z-index:10;padding:12px;background:var(--ink);color:#fff}.skip:focus{top:16px}
.header{min-height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.wordmark{display:flex;gap:12px;align-items:center;font-size:12px;font-weight:700;letter-spacing:1px}.logo{font-size:32px;font-weight:800;letter-spacing:-4px;background:var(--ink);color:var(--paper);width:39px;height:39px;display:flex;align-items:center;padding-left:8px;line-height:1}.logo span{color:var(--lime)}nav{display:flex;gap:24px;font-size:15px}nav a,.header-contact,.contact-links a{transition:color .2s}nav a:hover,.header-contact:hover,.contact-links a:hover{color:var(--green)}.header-contact{font-size:14px;white-space:nowrap}.header-contact span{margin-left:12px}
.hero{padding-top:34px;padding-bottom:44px}.hero-meta{font-size:12px;letter-spacing:.4px;color:var(--muted);margin-bottom:18px}.hero-bottom{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:64px;align-items:start}h1{font-size:clamp(40px,4.5vw,60px);line-height:1.1;letter-spacing:-2px;font-weight:500;margin:0 0 12px}.hero-subtitle{font-size:28px;line-height:1.3;letter-spacing:-.6px;margin:0 0 20px;color:var(--green)}.hero-description{font-size:17px;line-height:1.7;max-width:660px;margin:0}.hero-stack{display:flex;flex-wrap:wrap;gap:8px;margin-top:21px}.hero-stack>span{font:13px/1.4 var(--mono);background:#e7eadf;padding:7px 10px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 17px;min-height:48px;font-size:15px;line-height:1.4;border:1px solid var(--ink);transition:background .2s,color .2s}.primary{background:var(--ink);color:var(--paper)}.primary:hover{background:var(--green);border-color:var(--green)}.secondary:hover{background:var(--line)}.quick-contact{border-left:1px solid var(--line);padding-left:28px;margin-top:5px}.quick-contact h2{font-size:20px;letter-spacing:-.4px;margin:0 0 4px}.location{font-size:15px;color:var(--muted);margin:0 0 13px}.quick-contact dl{margin:0}.quick-contact dl>div{padding:8px 0}.quick-contact dt{font-size:12px;color:var(--muted);line-height:1.4}.quick-contact dd{font-size:16px;line-height:1.5;margin:2px 0 0;overflow-wrap:anywhere}.quick-contact a:hover{color:var(--green);text-decoration:underline;text-underline-offset:4px}
.section-space{padding-top:54px;padding-bottom:54px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:28px}.eyebrow{font-size:12px;letter-spacing:.6px;font-weight:400;margin:0 0 12px;color:var(--muted)}h2{font-size:34px;font-weight:500;letter-spacing:-1px;margin:0;line-height:1.2}.section-note{font-size:12px;letter-spacing:.3px;padding-bottom:4px;color:var(--muted)}
.projects{background:#222820;color:var(--paper);padding:44px 0 46px}.projects .eyebrow,.projects .section-note{color:#b6c0ac}.projects .accent{color:var(--lime)}.project{display:block;border-top:1px solid #485040;padding:28px 0}.project:last-child{padding-bottom:0}.project-body{display:flex;flex-direction:column;align-items:start}.project-top{display:flex;justify-content:space-between;align-items:center;width:100%}.project-top .mono{font-size:12px;color:#c2cbb9;letter-spacing:.2px}.project-arrow{font-size:27px;line-height:1;transition:transform .2s}.project:hover .project-arrow{transform:translate(3px,-3px)}.project h3{font-size:27px;letter-spacing:-.5px;font-weight:500;line-height:1.2;margin:10px 0 12px}.project p{font-size:16px;line-height:1.65;max-width:720px;color:#d2dacb;margin:0 0 17px}.tags{display:flex;flex-wrap:wrap;gap:7px}.tags span{border:1px solid #657159;padding:4px 8px;font-family:var(--mono);font-size:12px;color:#d2dcc9}.project-link{font-size:14px;color:var(--lime);display:block;margin-top:18px}.project-link span{margin-left:10px}
.skill-row{display:grid;grid-template-columns:165px minmax(0,1fr);align-items:baseline;gap:25px;padding:18px 0;border-top:1px solid var(--line)}.skill-row:last-child{border-bottom:1px solid var(--line)}.skill-row h3{font-size:16px;font-weight:500;margin:0}.skill-tags{display:flex;flex-wrap:wrap;gap:7px}.skill-tags>span{font:14px/1.35 var(--mono);background:#e7eadf;padding:7px 10px}.skill-tags .key{background:var(--ink);color:var(--paper)}.skill-row p{margin:0;font-size:16px}.learning{padding-top:0}.learning-list article{border-top:1px solid var(--line);display:grid;grid-template-columns:28px minmax(0,1fr) 150px;gap:18px;padding:21px 0;align-items:baseline}.learning-list article:last-child{border-bottom:1px solid var(--line)}.item-number{font:12px var(--mono);color:var(--muted)}.learning-list h3{font-size:20px;letter-spacing:-.3px;font-weight:500;line-height:1.4;margin:0 0 7px}.learning-list p{font-size:16px;line-height:1.65;color:var(--muted);max-width:750px;margin:0}.learning-list article>.mono{font-size:12px;text-align:right;color:var(--muted)}
.education-section{background:#eceedf}.education-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:70px}.university{border-top:1px solid #cbd0bd;padding:21px 0 24px}.university>.mono{font-size:14px;color:var(--green)}.university h3{font-size:26px;letter-spacing:-.5px;font-weight:500;line-height:1.3;margin:10px 0}.university p{color:var(--muted);font-size:16px;line-height:1.65;margin:0}.course{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #cbd0bd;padding:15px 0}.course h3{font-size:16px;font-weight:500;margin:0 0 5px;line-height:1.4}.course h3 span{margin-left:5px}.course p{font-size:15px;color:var(--muted);margin:0}.course>.mono{font-size:13px;color:var(--muted);line-height:1.8}.course[href]:hover h3{color:var(--green)}.achievements{border-left:1px solid #cbd0bd;padding-left:32px}.achievements>.eyebrow{margin:4px 0 24px}.achievement{display:block;margin-top:24px}.achievement+.achievement{border-top:1px solid #cbd0bd;padding-top:24px}.achievement-value{display:block;font-size:52px;letter-spacing:-2px;line-height:1.1}.achievement-value>span{font-size:24px;letter-spacing:-1px;color:var(--green)}.achievement h3{font-size:16px;font-weight:500;margin:10px 0 5px;line-height:1.5}.achievement p{font-size:14px;margin:0;color:var(--muted)}a.achievement:hover .achievement-value{color:var(--green)}
.contact-description{font-size:16px;color:var(--muted);margin:16px 0 21px}.contact-emails{display:flex;flex-wrap:wrap;gap:14px 32px}.email{font-size:22px;letter-spacing:-.3px;border-bottom:1px solid var(--ink);padding-bottom:3px;overflow-wrap:anywhere}.email:hover{color:var(--green);border-color:var(--green)}.contact-bottom{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:25px}.contact-links{display:flex;flex-wrap:wrap;gap:24px;font-size:15px}.contact-links a span{margin-left:6px}.contact-bottom .mono{font-size:12px}.footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;padding-top:22px;padding-bottom:25px;font-size:12px;color:var(--muted)}
@media(max-width:1000px){.wrap{width:calc(100% - 56px)}.header{gap:16px}nav{gap:16px;font-size:14px}.wordmark{letter-spacing:.4px}.hero-bottom{gap:32px;grid-template-columns:minmax(0,1fr) 220px}.quick-contact{padding-left:22px}.hero-actions{gap:10px}.button{font-size:14px;gap:13px;padding:12px 14px}.section-note{display:none}.education-grid{gap:40px}.achievements{padding-left:25px}.learning-list article{grid-template-columns:24px minmax(0,1fr) 120px;gap:14px}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.header{flex-wrap:wrap;padding-top:16px;padding-bottom:14px;gap:16px}.wordmark{font-size:11px;gap:9px}.logo{width:32px;height:32px;font-size:27px;padding-left:6px}.header-contact{margin-left:auto;font-size:13px}.header-contact span{margin-left:7px}nav{order:3;width:100%;justify-content:space-between;gap:12px;font-size:14px}nav a{padding:4px 0}.hero{padding-top:25px;padding-bottom:32px}.hero-meta{font-size:11px;letter-spacing:0;line-height:1.6;margin-bottom:15px}.hero-bottom{grid-template-columns:minmax(0,1fr);gap:27px}h1{font-size:clamp(36px,8vw,50px);letter-spacing:-1.4px;margin-bottom:10px}.hero-subtitle{font-size:24px;line-height:1.3;margin-bottom:15px}.hero-description{font-size:16px;line-height:1.65}.hero-stack{margin-top:17px;gap:6px}.hero-stack>span{font-size:12px;padding:6px 8px}.hero-actions{gap:10px;margin-top:20px}.button{font-size:14px;padding:12px 14px;gap:12px}.quick-contact{border-left:0;border-top:1px solid var(--line);padding:20px 0 0;margin:0}.quick-contact h2{font-size:20px}.location{font-size:15px;margin-bottom:12px}.quick-contact dl>div{display:grid;grid-template-columns:104px minmax(0,1fr);gap:10px;align-items:baseline;padding:6px 0}.quick-contact dt{font-size:13px}.quick-contact dd{font-size:15px;margin:0}.section-space{padding-top:36px;padding-bottom:36px}.section-heading{margin-bottom:24px;gap:15px}.eyebrow{font-size:11px;letter-spacing:.3px;margin-bottom:10px}h2{font-size:29px;letter-spacing:-.7px}.projects{padding:34px 0}.project{padding:24px 0}.project h3{font-size:25px;margin:10px 0 12px}.project p{font-size:16px;line-height:1.65}.project-top .mono,.tags span{font-size:12px}.project-link{font-size:14px;margin-top:18px}.skill-row{grid-template-columns:minmax(0,1fr);gap:12px;padding:17px 0}.skill-row h3{font-size:16px}.skill-tags{gap:6px}.skill-tags>span{font-size:13px;padding:7px 9px}.skill-row p{font-size:16px}.learning{padding-top:0}.learning-list article{grid-template-columns:22px minmax(0,1fr);column-gap:9px;row-gap:9px;padding:19px 0}.learning-list h3{font-size:19px}.learning-list p{font-size:16px}.learning-list article>.mono{grid-column:2;text-align:left;font-size:12px}.item-number{font-size:12px}.education-grid{grid-template-columns:minmax(0,1fr);gap:25px}.university h3{font-size:25px}.course{padding:16px 0}.achievements{padding:23px 0 0;border-left:0;border-top:1px solid #cbd0bd;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.achievements>.eyebrow{grid-column:1/-1;margin:0}.achievement{margin-top:0}.achievement+.achievement{border-top:0;border-left:1px solid #cbd0bd;padding:0 0 0 18px}.achievement-value{font-size:45px}.achievement-value>span{font-size:22px}.achievement h3{font-size:15px;line-height:1.6}.achievement p{font-size:13px}.contact-description{margin:15px 0 20px}.contact-emails{flex-direction:column;align-items:start;gap:15px}.email{font-size:21px}.contact-bottom{flex-direction:column;align-items:start;gap:22px;margin-top:23px}.contact-links{gap:16px 22px;font-size:15px}.footer{flex-wrap:wrap;row-gap:12px;font-size:12px;padding:20px 0}.footer>span:first-child{width:100%}.footer>a{margin-left:auto}}
@media(max-width:360px){.header-contact{font-size:12px}.wordmark{font-size:10px;gap:7px}nav{font-size:13px;gap:9px}.quick-contact dl>div{grid-template-columns:87px minmax(0,1fr);gap:7px}.quick-contact dd{font-size:14px}.hero-actions .button{width:100%;font-size:15px}.hero-meta{font-size:10px}.email{font-size:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
@media print{body{background:white;color:#111;font-size:11pt}.wrap{width:100%;max-width:none}.header,.hero-actions,.skip,.project-arrow,.contact-bottom .button,.footer>a{display:none}.hero{padding:0 0 16px}.hero-meta{margin-bottom:10px}h1{font-size:30pt}.hero-subtitle{font-size:19pt}.hero-description{font-size:11pt}.hero-bottom{grid-template-columns:1.4fr 1fr;gap:24px}.quick-contact{border-top:0;border-left:1px solid #ccc;padding:0 0 0 18px}.quick-contact dl>div{display:block;padding:3px 0}.quick-contact dd{font-size:10pt}.quick-contact dt{font-size:8pt}.hero-stack>span{font-size:9pt}.projects,.education-section{background:white;color:#111;padding:16px 0}.projects .eyebrow,.project p,.project-top .mono{color:#444}.section-space{padding:16px 0}.section-heading{margin-bottom:12px}h2{font-size:20pt}.project{display:block;break-inside:avoid;padding:14px 0;border-color:#ccc}.project h3{font-size:16pt}.project p,.learning-list p,.university p,.course h3,.skill-row p{font-size:11pt}.project-link{display:none}.tags span{color:#333;border-color:#ccc;font-size:9pt}.skill-row{grid-template-columns:120px 1fr;padding:9px 0}.skill-tags>span{font-size:9pt}.learning-list article{padding:12px 0;break-inside:avoid}.education-grid{grid-template-columns:1.5fr 1fr;gap:30px}.achievements{display:block;border-top:0;border-left:1px solid #ccc;padding:0 0 0 20px}.achievement+.achievement{padding:16px 0 0;border-top:1px solid #ccc;border-left:0}.achievement-value{font-size:32pt}.contact-emails{flex-direction:row}.email{font-size:14pt}.contact-description{font-size:11pt}.contact-bottom{margin-top:12px}.footer{font-size:9pt;padding:12px 0}}
