@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";
:root{--bg:#f5f4ef;--ink:#11110f;--muted:#6c6b64;--line:#d9d7cf;--card:#fffef9;--accent:#ff4d00;--soft:#eceae2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);margin:0;font-family:Manrope,system-ui,sans-serif}a{color:inherit;text-decoration:none}.shell{width:min(1160px,100% - 48px);margin:auto}.nav{border-bottom:1px solid var(--line);z-index:5;justify-content:space-between;align-items:center;height:78px;display:flex;position:relative}.brand{letter-spacing:-.05em;font-size:20px;font-weight:800}.brand span{color:var(--accent)}.navlinks{color:var(--muted);gap:28px;font-size:13px;display:flex}.navlinks a{transition:color .2s}.navlinks a:hover{color:var(--ink)}.nav-cta{align-items:center;gap:4px;font-size:13px;font-weight:700;display:flex}.hero{padding:105px 0 92px}.hero-grid{grid-template-columns:minmax(0,1fr) 260px;align-items:end;gap:90px;display:grid}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);align-items:center;gap:8px;font:500 12px DM Mono,monospace;display:flex}.dot{background:var(--accent);border-radius:50%;width:7px;height:7px;display:inline-block}.hero h1{letter-spacing:-.078em;max-width:960px;margin:26px 0;font-size:clamp(56px,8vw,102px);line-height:.91}.hero h1 em{color:var(--accent);font-style:normal}.hero-copy{color:#55544e;max-width:730px;margin-bottom:0;font-size:18px;line-height:1.72}.hero-copy strong{color:var(--ink)}.hero-actions,.contact-actions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.button{border:1px solid var(--ink);border-radius:999px;justify-content:center;align-items:center;gap:9px;padding:13px 17px;font-size:13px;font-weight:700;transition:transform .18s,background .18s,color .18s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--ink);color:#fff}.button.primary:hover{background:var(--accent);border-color:var(--accent)}.button.secondary{background:0 0}.button.secondary:hover{background:var(--soft)}.hero-meta{color:var(--muted);text-transform:uppercase;flex-wrap:wrap;gap:25px;margin-top:46px;font:500 11px DM Mono,monospace;display:flex}.hero-meta span{align-items:center;gap:7px;display:flex}.available i{background:#2f9b55;border-radius:50%;width:6px;height:6px;display:inline-block}.hero-aside{border-left:1px solid var(--line);flex-direction:column;gap:7px;margin-bottom:4px;padding-left:25px;display:flex}.aside-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font:500 10px DM Mono,monospace}.hero-aside strong{letter-spacing:-.035em;margin-top:2px;font-size:19px}.hero-aside>span:not(.aside-label){color:var(--muted);font-size:12px}.aside-line{background:var(--line);height:1px;margin:18px 0}.focus-list{flex-direction:column;gap:7px;font-size:12px;display:flex}.focus-list span{color:#45443e}.signal{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.signal-grid{grid-template-columns:repeat(4,1fr);display:grid}.signal-grid>div{border-right:1px solid var(--line);flex-direction:column;gap:4px;padding:27px 0 27px 25px;display:flex}.signal-grid>div:first-child{padding-left:0}.signal-grid>div:last-child{border:0}.signal-number{letter-spacing:-.04em;font-size:21px;font-weight:800}.signal-grid span:last-child{color:var(--muted);text-transform:uppercase;font:500 10px DM Mono,monospace}.section{padding:125px 0}.section-head{border-top:1px solid var(--line);grid-template-columns:180px 1fr;gap:30px;padding-top:20px;display:grid}.section-head>span{color:var(--muted);text-transform:uppercase;font:500 11px DM Mono,monospace}.section-head h2{letter-spacing:-.057em;max-width:790px;margin:0;font-size:clamp(34px,4.5vw,60px);line-height:1.02}.timeline{margin-top:75px}.experience{border-top:1px solid var(--line);grid-template-columns:180px 1fr;gap:30px;padding:38px 0;display:grid}.period{color:var(--muted);font:500 11px DM Mono,monospace}.role-row{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.experience h3,.project h3,.stack-group h3,.education-item h3{letter-spacing:-.04em;margin:0;font-size:24px}.company{color:var(--accent);margin:6px 0 24px;font-size:13px;font-weight:700}.role-tag{color:var(--muted);border:1px solid var(--line);white-space:nowrap;padding:5px 7px;font:500 9px DM Mono,monospace}.experience ul{max-width:790px;margin:0;padding:0;list-style:none}.experience li{color:#5f5e58;margin:10px 0;padding-left:19px;font-size:14px;line-height:1.75;position:relative}.experience li:before{content:"—";color:var(--ink);position:absolute;left:0}.projects{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:70px;display:grid}.project{background:var(--card);border:1px solid var(--line);flex-direction:column;min-height:350px;padding:28px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex}.project:hover{border-color:#c7c4ba;transform:translateY(-5px);box-shadow:0 18px 45px #0000000b}.project.featured{background:var(--ink);color:#fff;border-color:var(--ink)}.project.featured .project-top,.project.featured .project-label{color:#ff7b43}.project.featured p:not(.project-label){color:#aaa}.project.featured .tags span{color:#aaa;border-color:#383833}.project-top{color:var(--muted);justify-content:space-between;display:flex}.project-index{font:500 11px DM Mono,monospace}.project h3{margin:60px 0 5px;font-size:42px}.project-label{text-transform:uppercase;color:var(--accent);margin:0;font:500 10px DM Mono,monospace}.project p:not(.project-label){color:var(--muted);font-size:14px;line-height:1.65}.tags{flex-wrap:wrap;gap:7px;margin-top:auto;display:flex}.tags span,.stack-group span{border:1px solid var(--line);color:var(--muted);padding:6px 8px;font:500 10px DM Mono,monospace}.stack-grid{border-top:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:0;margin-top:70px;display:grid}.stack-group{border-bottom:1px solid var(--line);padding:27px 0}.stack-group:nth-child(odd){border-right:1px solid var(--line);padding-right:40px}.stack-group:nth-child(2n){padding-left:40px}.stack-group h3{margin-bottom:18px;font-size:16px}.stack-group>div{flex-wrap:wrap;gap:7px;display:flex}.about-section{padding-top:40px}.about-copy{grid-template-columns:1fr 1fr;gap:45px;max-width:720px;margin:70px 0 0 210px;display:grid}.about-copy p{color:#5f5e58;margin:0;font-size:16px;line-height:1.8}.education-list{border-top:1px solid var(--line);margin-top:55px}.education-item{border-bottom:1px solid var(--line);grid-template-columns:180px 1fr;gap:30px;padding:28px 0;display:grid}.education-item h3{font-size:20px}.education-item p{color:var(--muted);margin:7px 0 0;font-size:13px}.writing-card{border:1px solid var(--line);background:var(--ink);color:#fff;justify-content:space-between;align-items:flex-end;gap:40px;padding:48px;display:flex}.writing-card .eyebrow{color:#aaa}.writing-card h2{letter-spacing:-.05em;max-width:650px;margin:18px 0 12px;font-size:35px;line-height:1.05}.writing-card p{color:#aaa;max-width:620px;line-height:1.6}.writing-card>a{white-space:nowrap;color:#fff;align-items:center;gap:5px;font-size:13px;font-weight:700;display:flex}.contact{padding:130px 0}.contact h2{letter-spacing:-.068em;max-width:950px;margin:22px 0;font-size:clamp(48px,6.5vw,82px);line-height:.96}.contact>p{max-width:600px;color:var(--muted);line-height:1.7}.footer{border-top:1px solid var(--line);color:var(--muted);text-transform:uppercase;justify-content:space-between;gap:20px;padding:25px 0 40px;font:500 10px DM Mono,monospace;display:flex}.resume-page{background:#e9e7df;min-height:100vh;padding:32px 20px}.resume-toolbar{justify-content:space-between;align-items:center;max-width:850px;margin:0 auto 20px;font-size:13px;display:flex}.resume-toolbar button{border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:10px 14px;font:600 12px Manrope,cursive;display:flex}.resume{background:#fff;max-width:850px;margin:0 auto;padding:52px 58px;font-family:Manrope,system-ui,sans-serif;box-shadow:0 18px 60px #00000012}.resume header{border-bottom:2px solid var(--ink);justify-content:space-between;gap:30px;padding-bottom:22px;display:flex}.resume h1{letter-spacing:-.05em;margin:0 0 5px;font-size:34px}.resume header p{color:var(--accent);margin:0;font-size:13px;font-weight:700}.resume-contact{color:var(--muted);flex-direction:column;align-items:flex-end;gap:4px;font-size:10px;display:flex}.resume section{margin-top:28px}.resume h2{text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--line);margin:0 0 13px;padding-bottom:7px;font:500 10px DM Mono,monospace}.resume p,.resume li{color:#40403b;font-size:10.5px;line-height:1.65}.resume-entry{margin-bottom:20px}.resume-entry>div{justify-content:space-between;gap:20px;display:flex}.resume-entry strong,.resume-projects strong{font-size:12px}.resume-entry span,.resume-projects span{color:var(--muted);font:500 9px DM Mono,monospace}.resume ul{margin:7px 0 0;padding-left:18px}.resume-projects{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.resume-projects>div{flex-direction:column;gap:5px;display:flex}@media (max-width:900px){.hero-grid{grid-template-columns:1fr;gap:55px}.hero-aside{border-left:0;border-top:1px solid var(--line);padding:22px 0 0}.projects{grid-template-columns:1fr}.project{min-height:300px}.about-copy{margin-left:0}.stack-group:nth-child(odd){padding-right:20px}.stack-group:nth-child(2n){padding-left:20px}}@media (max-width:800px){.navlinks{display:none}.hero{padding:80px 0 70px}.hero h1{font-size:56px}.signal-grid{grid-template-columns:repeat(2,1fr)}.signal-grid>div:nth-child(2){border-right:0}.section{padding:90px 0}.section-head,.experience,.education-item{grid-template-columns:1fr;gap:15px}.role-row{display:block}.role-tag{margin-top:15px;display:inline-block}.stack-grid{grid-template-columns:1fr}.stack-group:nth-child(n){border-right:0;padding-left:0;padding-right:0}.writing-card{padding:30px;display:block}.writing-card>a{margin-top:30px}.footer{display:block}.footer span{margin:8px 0;display:block}.about-copy{grid-template-columns:1fr;gap:25px;margin-top:50px}.resume{padding:35px 25px}.resume header{display:block}.resume-contact{align-items:flex-start;margin-top:15px}.resume-projects{grid-template-columns:1fr}}@media (max-width:480px){.shell{width:min(100% - 28px,1160px)}.hero h1{font-size:48px}.hero-copy{font-size:16px}.hero-meta{gap:13px;line-height:1.5}.signal-grid>div{padding-left:15px}.signal-grid>div:first-child{padding-left:0}.section-head h2{font-size:35px}.project h3{font-size:38px}.contact h2{font-size:49px}.writing-card h2{font-size:30px}}
