@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700&display=swap";:root{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#222a32;background:#f7f7f4;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #222a32;--muted: #68717a;--quiet: #8a9198;--paper: #f7f7f4;--line: #dedfda;--accent: #345b75;--display: "Manrope", "DM Sans", sans-serif;color-scheme:light;scroll-behavior:smooth}*,*:before,*:after{box-sizing:border-box}html{min-width:320px;scroll-padding-top:90px}body{min-width:320px;margin:0;background:var(--paper);color:var(--ink)}::selection{color:#fff;background:#345b75}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.skip-link{position:fixed;z-index:10;top:12px;left:12px;padding:12px 16px;background:#fff;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:min(100% - 96px,1280px);min-height:84px;margin:0 auto;border-bottom:1px solid var(--line)}.name-mark{width:fit-content;font:700 15px var(--display);letter-spacing:-.035em}.site-header nav{display:flex;gap:clamp(22px,4vw,52px);color:var(--muted);font-size:13px}.site-header nav a,.header-resume,.plain-link,.social-links a{transition:color .18s ease}.site-header nav a:hover,.header-resume:hover,.plain-link:hover,.social-links a:hover{color:var(--accent)}.header-resume{justify-self:end;color:var(--muted);font-size:13px}.header-resume span{margin-left:4px}.hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(240px,.55fr);align-items:center;gap:8vw;width:min(100% - 96px,1280px);min-height:min(690px,calc(100svh - 84px));margin:0 auto;padding:95px 0 120px}.hero-copy{max-width:760px}.eyebrow{margin:0;color:var(--muted);font-size:12px;letter-spacing:.005em}.hero h1{margin:25px 0 22px;font:600 clamp(58px,8vw,104px)/.99 var(--display);letter-spacing:-.075em}.hero-summary{max-width:590px;margin:0;color:#59636c;font-size:clamp(17px,1.8vw,20px);line-height:1.7}.hero-links{display:flex;align-items:center;gap:27px;margin-top:32px}.primary-link{display:inline-flex;align-items:center;gap:22px;padding:13px 17px;border-radius:3px;color:#fff;background:#2d5069;font-size:13px;transition:background .18s ease,transform .18s ease}.primary-link:hover{background:#213e54;transform:translateY(-1px)}.primary-link span{font-size:15px}.plain-link{color:var(--muted);font-size:13px}.plain-link span{margin-left:4px}.location-line{margin:38px 0 0;color:var(--quiet);font-size:12px}.location-line span,.recognition span{margin:0 7px}.hero-aside{align-self:end;margin-bottom:24px;padding-left:25px;border-left:1px solid #c7cbc9;color:var(--muted)}.hero-aside p{margin:0 0 13px;color:var(--quiet);font-size:11px}.hero-aside ul{display:grid;gap:10px;margin:0;padding:0;list-style:none;font-size:13px}.section{width:min(100% - 96px,1120px);margin:0 auto}.work{padding-top:70px;padding-bottom:136px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:30px}.section-heading h2,.about-heading h2{margin:10px 0 0;font:600 clamp(34px,5vw,52px)/1.08 var(--display);letter-spacing:-.055em}.github-link{margin-bottom:6px}.project-list{border-top:1px solid var(--line)}.project-row{display:grid;grid-template-columns:65px minmax(0,1fr);gap:15px;padding:29px 0 27px;border-bottom:1px solid var(--line)}.project-number{padding-top:4px;color:var(--quiet);font-size:11px;font-variant-numeric:tabular-nums}.project-main{min-width:0}.project-title-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:12px 18px}.project-title-line h3,.experience-row h3{margin:0;font:600 21px/1.3 var(--display);letter-spacing:-.025em}.project-type{color:var(--quiet);font-size:11px}.project-main>p{max-width:790px;margin:10px 0 14px;color:#59636c;font-size:14px;line-height:1.75}.project-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;color:var(--quiet);font-size:11px}.project-meta a{color:var(--accent);font-size:12px}.project-meta a:hover{text-decoration:underline;text-underline-offset:3px}.skills{display:grid;grid-template-columns:.75fr 1.25fr;gap:9vw;padding:0 0 94px}.skills-heading h2{margin:9px 0 0;font:600 28px/1.1 var(--display);letter-spacing:-.045em}.skills-groups{border-top:1px solid var(--line)}.skills-groups p{display:grid;grid-template-columns:150px 1fr;gap:18px;margin:0;padding:15px 0;border-bottom:1px solid var(--line);color:#59636c;font-size:12px;line-height:1.65}.skills-groups p span{color:var(--quiet);font-size:11px}.about{display:grid;grid-template-columns:.75fr 1.25fr;gap:9vw;padding:86px 0 104px;border-top:1px solid var(--line)}.about-heading{align-self:start}.about-copy{max-width:680px}.about-copy p{margin:0 0 18px;color:#59636c;font-size:15px;line-height:1.85}.about-copy p:last-child{margin-bottom:0}.about-copy em{color:var(--ink)}.experience{padding-top:78px;padding-bottom:102px;border-top:1px solid var(--line)}.experience-heading{margin-bottom:29px}.experience-list{border-top:1px solid var(--line)}.experience-row{display:grid;grid-template-columns:165px minmax(0,1fr) 125px;align-items:start;gap:25px;padding:24px 0;border-bottom:1px solid var(--line)}.experience-date,.experience-place{margin:4px 0 0;color:var(--quiet);font-size:11px}.experience-row h3{font-size:16px}.experience-row div>p{max-width:700px;margin:8px 0 0;color:#59636c;font-size:13px;line-height:1.75}.experience-place{text-align:right}.recognition{margin:20px 0 0 190px;color:var(--quiet);font-size:12px}.contact{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:40px;padding:82px 0 86px;border-top:1px solid var(--line)}.contact h2{margin:12px 0 0;font:600 clamp(48px,7vw,76px)/1 var(--display);letter-spacing:-.07em}.contact-details{justify-self:end;width:min(100%,425px)}.email-link{display:inline-block;margin-bottom:23px;font:500 clamp(22px,3.4vw,38px)/1.2 var(--display);letter-spacing:-.04em}.email-link span{color:var(--accent);font-size:.65em;vertical-align:top}.social-links{display:flex;flex-wrap:wrap;gap:19px;padding-top:17px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.site-footer{display:flex;justify-content:space-between;gap:15px;width:min(100% - 96px,1280px);margin:0 auto;padding:20px 0 26px;border-top:1px solid var(--line);color:var(--quiet);font-size:11px}.site-footer span:first-child{color:var(--ink);font-weight:600}@media(min-width:1600px){.hero{min-height:min(860px,calc(100svh - 84px))}.section{width:min(100% - 160px,1220px)}}@media(max-width:760px){.site-header,.hero,.site-footer{width:calc(100% - 40px)}.site-header{min-height:72px;grid-template-columns:1fr auto}.site-header nav{grid-row:2;grid-column:1 / -1;gap:26px;padding:0 0 15px;font-size:12px}.header-resume{grid-column:2;grid-row:1}.hero{min-height:unset;grid-template-columns:1fr;gap:45px;padding:105px 0 83px}.hero h1{font-size:clamp(58px,15vw,86px)}.hero-summary{max-width:560px;font-size:17px}.hero-aside{align-self:start;margin:0;padding-left:17px}.hero-aside ul{display:flex;flex-wrap:wrap;gap:9px 20px}.section{width:calc(100% - 40px)}.work{padding-top:50px;padding-bottom:88px}.section-heading{align-items:start;flex-direction:column;gap:15px}.github-link{margin-bottom:0}.project-row{grid-template-columns:32px minmax(0,1fr);gap:9px;padding:24px 0}.project-title-line{align-items:start;flex-direction:column;gap:4px}.project-title-line h3{font-size:19px}.project-main>p{font-size:13px}.about{grid-template-columns:1fr;gap:23px;padding:66px 0 72px}.skills{grid-template-columns:1fr;gap:17px;padding-bottom:72px}.skills-groups p{grid-template-columns:120px 1fr;gap:14px}.about-copy p{font-size:14px}.experience{padding-top:65px;padding-bottom:72px}.experience-row{grid-template-columns:1fr auto;gap:9px 15px;padding:20px 0}.experience-date{grid-column:1;grid-row:1}.experience-place{grid-column:2;grid-row:1}.experience-row div{grid-column:1 / -1;grid-row:2}.recognition{margin-left:0;line-height:1.8}.contact{grid-template-columns:1fr;gap:35px;padding:68px 0 72px}.contact-details{justify-self:start}.site-footer{flex-wrap:wrap;font-size:10px}.site-footer span:nth-child(2){order:3;width:100%}}@media(max-width:420px){.hero-links{gap:18px}.location-line{line-height:1.7}.project-meta{align-items:start;flex-direction:column;gap:8px}.social-links{gap:12px 17px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
