:root{--ink:#101310;--paper:#f2f0e8;--acid:#d7ff44;--muted:#77796f;--line:#c8c7bd;--white:#fff;--font:'Manrope',sans-serif;--mono:'DM Mono',monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font)}a{color:inherit;text-decoration:none}.site-header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 4.5vw;border-bottom:1px solid var(--line);position:relative;z-index:3}.brand{display:flex;align-items:center;gap:12px;font-weight:700}.brand-mark{display:grid;place-items:center;width:34px;height:34px;background:var(--ink);color:var(--acid);font:500 12px var(--mono)}nav{display:flex;gap:34px;font-size:14px}nav a:hover,.resume-link:hover{opacity:.55}.resume-link{font:500 13px var(--mono)}.hero{min-height:690px;padding:100px 7vw 56px;position:relative;overflow:hidden}.eyebrow,.index{font:500 11px var(--mono);letter-spacing:.13em}.eyebrow span{display:inline-block;width:28px;height:2px;background:var(--acid);vertical-align:middle;margin-right:10px}.hero h1{font-size:clamp(54px,8.2vw,126px);line-height:.92;letter-spacing:-.06em;max-width:1200px;margin:35px 0 55px;font-weight:600}.hero h1 em,.contact h2 em{font-family:Georgia,serif;font-weight:400}.hero-bottom{display:flex;align-items:end;justify-content:space-between;position:relative;z-index:1}.hero-bottom p{max-width:500px;font-size:18px;line-height:1.55;color:#474941}.circle-link{width:58px;height:58px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;font-size:23px;transition:.2s}.circle-link:hover{background:var(--acid);transform:translateY(3px)}.hero-grid{position:absolute;right:-30px;bottom:-85px;width:470px;height:280px;opacity:.22;background-image:linear-gradient(var(--ink) 1px,transparent 1px),linear-gradient(90deg,var(--ink) 1px,transparent 1px);background-size:24px 24px;transform:skewY(-8deg)}section{padding-left:7vw;padding-right:7vw}.work{padding-top:100px;padding-bottom:130px;background:#fff}.section-heading{display:flex;justify-content:space-between;align-items:end;padding-bottom:42px;border-bottom:1px solid var(--line)}.section-heading>div{display:flex;align-items:start;gap:20px}.section-heading h2{font-size:clamp(38px,5vw,70px);letter-spacing:-.045em;margin:0;line-height:1}.section-heading p{max-width:390px;color:var(--muted);line-height:1.6;margin:0}.index{color:var(--muted);padding-top:7px}.filters{display:flex;gap:8px;margin:32px 0}.filters button{border:1px solid var(--line);background:transparent;border-radius:20px;padding:10px 16px;font:500 12px var(--mono);cursor:pointer}.filters button.active,.filters button:hover{background:var(--ink);color:#fff;border-color:var(--ink)}.filters sup{opacity:.6;margin-left:4px}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:54px 24px}.project-card{transition:.25s}.project-card.hidden{display:none}.project-visual{height:330px;padding:25px;background:var(--tone);position:relative;overflow:hidden}.project-visual:before{content:'';position:absolute;inset:18% 22%;border:1px solid rgba(16,19,16,.32);transform:rotate(-7deg)}.project-visual:after{content:'';position:absolute;width:160px;height:160px;border-radius:50%;border:25px solid rgba(255,255,255,.5);right:12%;top:20%}.project-code{font:500 10px var(--mono);letter-spacing:.1em;position:relative;z-index:1}.project-card:hover{transform:translateY(-5px)}.project-meta{display:flex;justify-content:space-between;margin-top:20px;font:500 11px var(--mono);color:var(--muted)}.project-card h3{font-size:25px;margin:10px 0 8px;letter-spacing:-.025em}.project-card p{color:var(--muted);line-height:1.55;margin:0}.process{background:var(--ink);color:#fff;padding-top:110px;padding-bottom:120px}.section-heading.light{border-color:#363a36}.section-heading.light p,.section-heading.light .index{color:#9b9d97}.process-steps{display:grid;grid-template-columns:repeat(3,1fr);margin-top:70px}.process-steps article{padding:0 38px 20px;border-left:1px solid #383b38}.process-steps article:first-child{padding-left:0;border:0}.process-steps span{color:var(--acid);font:500 11px var(--mono)}.process-steps h3{font-size:24px;margin:55px 0 15px}.process-steps p{color:#9b9d97;line-height:1.6;max-width:300px}.about{padding-top:120px;padding-bottom:120px;display:grid;grid-template-columns:.85fr 1.15fr;gap:9vw;background:var(--paper)}.portrait-placeholder{min-height:550px;background:#c7c7bd;display:flex;align-items:end;padding:18px;position:relative;overflow:hidden}.portrait-placeholder:before{content:'';position:absolute;width:75%;height:75%;border-radius:50% 50% 10% 10%;background:#a9aaa1;left:12%;bottom:-8%}.portrait-placeholder span{position:relative;z-index:1;font:500 10px var(--mono)}.about-copy h2{font-size:clamp(40px,5vw,68px);line-height:1.02;letter-spacing:-.05em;margin:25px 0 38px}.about-copy p{line-height:1.7;color:var(--muted);max-width:610px}.about-copy .lead{font-size:21px;color:var(--ink)}.skills{display:grid;grid-template-columns:1fr 1fr;margin-top:42px;border-top:1px solid var(--line)}.skills span{padding:16px 0;border-bottom:1px solid var(--line);font:500 12px var(--mono)}.contact{padding-top:120px;padding-bottom:120px;background:var(--acid)}.contact h2{font-size:clamp(55px,8vw,112px);line-height:.94;letter-spacing:-.06em;margin:40px 0 60px}.contact>a{font:500 15px var(--mono);border-bottom:1px solid;padding-bottom:8px}footer{padding:30px 4.5vw;display:flex;justify-content:space-between;background:var(--ink);color:#b5b7b0;font:400 10px var(--mono);letter-spacing:.08em}footer a{color:#fff}@media(max-width:760px){.site-header{padding:0 20px}.site-header nav{display:none}.hero,section{padding-left:24px;padding-right:24px}.hero{padding-top:70px;min-height:620px}.hero h1{font-size:57px}.hero-bottom{align-items:start}.hero-bottom p{font-size:16px;max-width:75%}.section-heading{display:block}.section-heading p{margin-top:25px}.project-grid{grid-template-columns:1fr}.project-visual{height:260px}.filters{overflow:auto;padding-bottom:4px}.filters button{white-space:nowrap}.process-steps{grid-template-columns:1fr}.process-steps article,.process-steps article:first-child{padding:30px 0;border-left:0;border-top:1px solid #383b38}.process-steps h3{margin-top:25px}.about{grid-template-columns:1fr}.portrait-placeholder{min-height:420px}.skills{grid-template-columns:1fr}footer{gap:20px;flex-wrap:wrap}footer span:nth-child(2){display:none}}
