:root{--ink: #2c3e50;--muted: #9e9e9e;--paper: #fafafa;--blue: #1e88e5;--green: #66bb6a;--success: #4caf50;--primary: #1976d2;--chip: #e0e0e0;--line: rgba(0, 0, 0, .12);--footer: #424242;--track: #e0e0e0;--media: #546e7a;--shadow: 0 7px 8px -4px rgba(0, 0, 0, .2), 0 12px 17px 2px rgba(0, 0, 0, .14), 0 5px 22px 4px rgba(0, 0, 0, .12);font-family:Avenir,Avenir Next,Nunito,sans-serif;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-weight:400}.resume{max-width:1185px;margin:0 auto;padding:24px 16px 64px}.resume-top{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,2fr) minmax(0,5fr);column-gap:16px}.identity{text-align:center}.portrait{width:125px;height:125px;border-radius:50%;object-fit:cover;box-shadow:var(--shadow);margin-bottom:8px}.name{font-size:24px;line-height:32px;margin:0}.name strong{font-weight:700}.position{color:var(--muted);margin:4px 0 12px}.contact-row,.social-row{display:flex;justify-content:space-between;gap:12px;align-items:center}.social-row{margin-top:16px}.contact-row a,.contact-row>div,.social-row a{display:inline-flex;align-items:center;gap:6px;min-height:44px}.icon{width:16px;height:16px;flex:none}blockquote{margin:16px 0 0;padding:8px 0 8px 16px;border-left:4px solid var(--line);text-align:left}.skills{margin-top:16px;text-align:left}.skills h2,.employment h2,.project-section h2{font-size:1.17em;margin:0 0 8px}.skill-grid{display:grid;grid-template-columns:1fr;gap:8px 16px}.skill h3{font-size:.85rem;margin:0 0 4px;font-weight:500}.bar{height:4px;background:var(--track);overflow:hidden}.bar i{display:block;height:100%;background:var(--success)}.employment{margin-top:48px}.rule{border:0;border-top:1px solid var(--line);margin:0 0 16px}.role{padding:8px 0 16px}.role+.role{border-top:1px solid var(--line)}.role-title{color:var(--blue);font-size:1.1rem;margin:12px 0 4px}.role-company{margin:0;font-size:1rem;font-weight:500}.role-time{color:var(--green);margin:4px 0 8px;font-weight:500}.role p{margin:8px 0;line-height:1.5}.chips{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:8px 0 0;list-style:none}.chips li{background:var(--chip);border-radius:16px;padding:0 12px;min-height:24px;line-height:24px;font-size:13px}.project-section{margin-top:40px}.project-section blockquote{margin-bottom:16px}.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 40px;margin-left:8%}.project-card{background:#fff;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.project-media{position:relative;height:200px;background:var(--media) center/cover no-repeat}.project-media span{position:absolute;left:16px;right:16px;bottom:12px;color:#fff;font-size:24px;line-height:1.2;text-shadow:0 0 4px #000}.project-body{padding:16px}.project-completed{color:var(--green);margin:0 0 8px}.project-body p{margin:0 0 12px;line-height:1.5}.project-link{display:flex;align-items:center;justify-content:center;min-height:44px;font-weight:500;letter-spacing:.02em}.site-footer{background:var(--footer);color:#fff;text-align:center;padding:16px}.site-footer p{margin:0}@media(max-width:959px){.resume-top{grid-template-columns:1fr}.employment{margin-top:32px}.skill-grid{grid-template-columns:1fr 1fr}.projects{grid-template-columns:1fr;margin-left:0}.contact-row,.social-row{flex-wrap:wrap}}
