:root{color-scheme:dark;--bg:#10100f;--text:#e9e6dd;--muted:#a4a29b;--line:#2e2e2a;--accent:#b4bd8d}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.6}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.skip{position:absolute;left:20px;top:-80px;background:var(--text);color:var(--bg);padding:8px}.skip:focus{top:10px}header{max-width:1280px;margin:auto;padding:36px 6%;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-size:16px;font-weight:600}nav{display:flex;gap:25px;font-size:12px;color:var(--muted)}main{max-width:1160px;margin:auto;padding:0 5%}.intro{padding:105px 0 95px}.label{color:var(--accent);font-size:10px;letter-spacing:2px;margin:0 0 20px}h1{font-size:clamp(54px,7vw,96px);letter-spacing:-5px;line-height:1.05;font-weight:500;margin:0 0 33px}h1 span{color:var(--accent)}.bio{font-size:clamp(24px,3vw,38px);line-height:1.35;letter-spacing:-1px;margin:0;max-width:900px}.sub{max-width:650px;color:var(--muted);font-size:14px;margin:25px 0 0}.jump{display:flex;gap:28px;font-size:12px;color:var(--muted);margin-top:35px}section:not(.intro){padding:48px 0;border-top:1px solid var(--line)}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.heading span{font-size:11px;color:var(--muted)}h2{font-size:24px;font-weight:500;letter-spacing:-.6px;margin:0}.projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.preview{display:block;border:1px solid var(--line);border-radius:5px;position:relative;transition:transform .25s ease;overflow:hidden}.preview img{display:block;width:100%;height:auto;aspect-ratio:1348/926;object-fit:contain}.preview span{position:absolute;right:10px;bottom:10px;background:#10100fe8;padding:7px 10px;border-radius:3px;font-size:10px;opacity:0;transition:opacity .2s}.preview:focus-visible span{opacity:1}.project-title{display:flex;justify-content:space-between;align-items:center;margin:22px 0 8px}.project-title h3{font-size:20px;letter-spacing:-.5px;font-weight:500;margin:0}.project-title>a{color:var(--muted)}.projects article>p{font-size:13px;color:var(--muted);margin:0 0 14px;line-height:1.7}.projects article>.tech{font-size:10px;color:#84847c;min-height:16px}.links{display:flex;gap:18px;font-size:11px;margin:20px 0;color:var(--accent)}details{border-top:1px solid var(--line);padding-top:13px}summary{font-size:11px;color:var(--muted);cursor:pointer}details p{font-size:12px;line-height:1.8;color:var(--muted)}.entry{display:grid;grid-template-columns:200px 1fr;gap:30px;padding:25px 0}.entry+.entry{border-top:1px solid var(--line)}.date{color:#8c8c83;font-size:12px;margin:2px 0}.entry h3{font-size:20px;letter-spacing:-.4px;font-weight:500;margin:0 0 5px}.entry p:not(.date){color:var(--muted);font-size:13px;max-width:680px;margin:8px 0}.entry .company{color:var(--accent)!important}.contact{padding:65px 0!important}.contact h2{font-size:34px;margin-bottom:20px}.email{font-size:clamp(17px,2.8vw,28px);letter-spacing:-.5px;border-bottom:1px solid #686b50;padding-bottom:8px;overflow-wrap:anywhere}.contact>p:last-child{color:#83847b;font-size:12px;margin-top:32px}footer{max-width:1160px;margin:auto;padding:20px 5% 35px;display:flex;justify-content:space-between;border-top:1px solid var(--line);font-size:11px;color:#83847b}@media(hover:hover){.preview:hover{transform:scale(1.045);z-index:2}.preview:hover span{opacity:1}}@media(max-width:760px){header{padding:24px 6%;align-items:flex-start;flex-wrap:wrap}nav{gap:20px}.intro{padding:70px 0 60px}h1{letter-spacing:-3px}.desktop{display:none}.projects{grid-template-columns:1fr;gap:45px}.preview{max-width:600px}.entry{grid-template-columns:1fr;gap:8px}.heading{margin-bottom:20px}.bio{font-size:27px}.contact h2{font-size:28px}.preview span{opacity:1}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.preview,.preview span{transition:none}.preview:hover{transform:none}}
