@import "https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=IBM+Plex+Sans+Condensed:wght@400;500;600&display=swap";:root{--green:#18aa00;--dark:#161616;--muted:#6d6d6d;--line:#d4d4d4;--bg:#fff;--text:#161616}[data-theme=dark]{--green:#4db881;--bg:#1a1a1a;--text:#e0e0e0;--muted:#999;--line:#333}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);letter-spacing:-.012em;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font:16px DM Sans,Arial,sans-serif;transition:background-color .3s,color .3s}header,main,footer{max-width:1250px;margin:0 auto}header{padding:20px 0 0}.header-top{justify-content:space-between;align-items:center;margin-bottom:5px;display:flex}.name{letter-spacing:.012em;text-transform:uppercase;margin:0;font:400 33px/.98 IBM Plex Sans Condensed,Arial,sans-serif}.name strong{font-weight:400}.name+h1{color:var(--green);letter-spacing:.005em;margin:0 0 13px;font:400 36px/1 IBM Plex Sans Condensed,Arial,sans-serif}.nav-row{border-bottom:6px solid var(--line);align-items:flex-end;display:flex}.nav-row nav{flex:1;gap:28px;display:flex}.nav-row a{color:inherit;padding:8px 0 13px;font-size:19px;text-decoration:none}.download-cv{color:var(--green);white-space:nowrap;margin-left:auto;padding:8px 0 13px;font-size:19px;text-decoration:none}.download-cv:hover{color:var(--text);border-bottom:6px solid var(--green);margin-bottom:-6px}.nav-row .active{border-bottom:6px solid var(--green);margin-bottom:-6px}.theme-toggle{--switch-width:62px;width:var(--switch-width);border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 88%, var(--text) 12%);cursor:pointer;height:32px;color:inherit;border-radius:999px;justify-content:space-between;align-items:center;padding:4px;transition:border-color .2s,background-color .2s;display:flex;position:relative}.theme-toggle:hover{border-color:var(--green)}.theme-toggle:focus-visible{outline:3px solid color-mix(in srgb, var(--green) 40%, transparent);outline-offset:3px}.theme-symbol{fill:none;width:14px;height:14px;stroke:var(--muted);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;z-index:1}.theme-thumb{background:var(--green);border-radius:50%;width:24px;height:24px;transition:transform .22s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0000002e}[data-theme=dark] .theme-thumb{transform:translate(30px)}[data-theme=light] .theme-symbol--sun,:root:not([data-theme]) .theme-symbol--sun{stroke:var(--dark)}[data-theme=dark] .theme-symbol--moon{stroke:var(--text)}.inline-icon,.link-icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px;width:17px;height:17px}.contact-button .inline-icon{margin-right:9px}.quick-links .link-icon,footer .link-icon{width:14px;height:14px;margin-left:3px}.resume:hover,nav a:hover,.quick-links a:hover{color:var(--green)}main{grid-template-columns:250px minmax(0,1fr);gap:54px;padding-top:35px;display:grid}aside{font-size:15px;line-height:1.48}.portrait{border-bottom:5px solid var(--green);background:linear-gradient(135deg,#e5e5e5,#fafafa);place-items:center;width:245px;height:305px;display:grid;position:relative;overflow:hidden}[data-theme=dark] .portrait{background:linear-gradient(135deg,#2a2a2a,#1f1f1f)}.portrait:before,.portrait:after{content:"";background:#18aa001f;border-radius:50%;position:absolute}.portrait:before{width:220px;height:220px;top:-110px;right:-80px}.portrait:after{width:175px;height:175px;bottom:-85px;left:-65px}.portrait img{object-fit:cover;z-index:1;width:100%;height:100%}.availability{margin:18px 0 30px}.contact-button{background:var(--green);color:#fff;margin-bottom:35px;padding:13px 18px;font-size:19px;font-weight:500;text-decoration:none;display:block}.contact-button span{margin-right:12px}aside section{margin:0 0 35px}aside h2{color:var(--green);text-transform:uppercase;margin:0 0 17px;font:500 21px/1 IBM Plex Sans Condensed,sans-serif}aside p{margin:0 0 8px}.dot{border-radius:50%;width:13px;height:13px;margin-right:5px;display:inline-block}.employed{background:#202020;border-radius:2px}[data-theme=dark] .employed{background:#505050}.open{background:#ff9d00}.quick-links a{color:var(--text);overflow-wrap:anywhere;margin:8px 0;display:block}.content{min-width:0}.intro{border-bottom:1px solid var(--line);padding:0 0 34px}.label,.date{text-transform:uppercase;color:var(--muted);letter-spacing:.03em;font:500 12px/1.2 DM Sans,sans-serif}.intro h2{color:var(--text);margin:7px 0 14px;font:500 34px/1.05 IBM Plex Sans Condensed,sans-serif}.intro>p:last-child{max-width:780px;margin:0;line-height:1.56}.section-title{text-transform:uppercase;margin:44px 0 20px;font:400 34px/1 IBM Plex Sans Condensed,sans-serif}.job{border-bottom:1px solid var(--line);margin-bottom:26px;padding:0 0 29px}.job .date{margin:0 0 5px}.job h3{color:var(--green);margin:0;font:500 25px/1.05 IBM Plex Sans Condensed,sans-serif}.job h4{margin:0;font-size:16px;line-height:1.35}.company-header{align-items:center;gap:16px;min-height:58px;margin:9px 0 17px;display:flex}.company-icon{object-fit:contain;flex-shrink:0;width:58px;height:58px}.job-intro{margin:0 0 8px;line-height:1.5}.job ul{margin:0;padding-left:20px;line-height:1.48}.job li{margin:5px 0}.project{border-bottom:1px solid var(--line);margin-bottom:26px;padding:0 0 29px}.project h3{color:var(--green);margin:0;font:500 25px/1.05 IBM Plex Sans Condensed,sans-serif}.education-item{border-top:1px solid var(--line);padding:16px 0}.education-item .date{margin:0 0 5px}.education-item h3{color:var(--green);margin:0 0 6px;font:500 22px/1.1 IBM Plex Sans Condensed,sans-serif}.education-item>p:last-child{margin:0}.skill-category{margin-bottom:24px}.skill-category:first-child .skills{border-top:1px solid var(--line);padding-top:18px}.skill-category h3{color:var(--green);text-transform:uppercase;letter-spacing:.005em;margin:0 0 12px;font:500 18px/1 IBM Plex Sans Condensed,sans-serif}.skills{flex-wrap:wrap;gap:9px;display:flex}.skills span{border-left:3px solid var(--green);background:#f2f2f2;padding:8px 10px;font-size:14px}[data-theme=dark] .skills span{background:#2a2a2a}.interest-grid{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:20px;padding-top:16px;line-height:1.5;display:grid}.interest-grid p{margin:0}.interest-grid b{color:var(--green);margin-bottom:5px;font:500 20px/1.05 IBM Plex Sans Condensed,sans-serif;display:block}.contact{background:var(--green);color:#fff;margin:55px 0;padding:28px 30px}.contact h2{text-transform:uppercase;margin:0 0 10px;font:400 32px/1 IBM Plex Sans Condensed,sans-serif}.contact p{margin:0 0 15px}.contact a{color:#fff;font-weight:700}footer{border-top:1px solid var(--line);color:var(--muted);padding:22px 0 40px;font-size:13px}footer a{float:right;color:var(--green);text-decoration:none}@media (width<=1280px){header,main,footer{margin-left:4%;margin-right:4%}}@media (width<=760px){header{padding-top:17px}.name{font-size:28px}.name+h1{font-size:30px;line-height:1.05}.nav-row{flex-wrap:wrap;align-items:stretch;display:flex}.nav-row nav{flex-basis:100%;order:3;gap:17px;overflow-x:auto}.nav-row a{white-space:nowrap;font-size:16px}.theme-toggle{transform-origin:100%;transform:scale(.92)}main{padding-top:25px;display:block}aside{grid-template-columns:1fr 1fr;gap:22px;display:grid}.portrait{width:100%;height:220px}.availability,.contact-button{margin:0}.contact-button{align-self:start}.quick-links{grid-column:span 2}.content{margin-top:35px}.section-title{font-size:29px}.job h3{font-size:23px}.company-header{min-height:48px}.company-icon{width:48px;height:48px}.interest-grid{grid-template-columns:1fr}.contact{padding:25px 20px}footer a{float:none;margin-top:8px;display:block}}
