:root{--bg: #f5f6f8;--ink: #16202e;--muted: #5b6676;--line: #d5dae2;--accent: #2b4bff;--font: "Bricolage Grotesque", system-ui, sans-serif;--max: 760px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:1.05rem;line-height:1.65}a{color:inherit}a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}h1,h2,h3{line-height:1.1;margin:0}.header,main{max-width:var(--max);margin-inline:auto;padding-inline:1.25rem}.header{display:flex;justify-content:space-between;align-items:center;padding-block:1.25rem}.brand{font-weight:800;text-decoration:none}.header nav{display:flex;gap:1.25rem}.header nav a{text-decoration:none;color:var(--muted)}.header nav a:hover{color:var(--accent)}.hero{padding-block:5rem 4rem}.hero h1{font-size:clamp(3rem,12vw,6.5rem);font-weight:800;letter-spacing:-.03em}.role{font-size:1.35rem;font-weight:600;margin:1rem 0 0;color:var(--accent)}.intro{max-width:52ch;color:var(--muted);margin:1rem 0 2rem}.button{display:inline-block;padding:.75rem 1.4rem;border-radius:999px;background:var(--ink);color:var(--bg);text-decoration:none;font-weight:600}.button:hover{background:var(--accent)}.section{padding-block:3rem;border-top:1px solid var(--line)}.section h2{font-size:1.8rem;font-weight:800;margin-bottom:1.5rem}.about{display:grid;gap:2rem;grid-template-columns:1fr}.about p{margin:0 0 1rem;max-width:60ch}.skills{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}.skills li{border:1px solid var(--line);padding:.25rem .8rem;border-radius:999px}.projects{list-style:none;padding:0;margin:0}.project{display:grid;grid-template-columns:4rem 1fr;gap:1rem;padding-block:1.25rem;border-top:1px solid var(--line)}.project:first-child{border-top:0;padding-top:0}.year{color:var(--muted)}.project h3{font-size:1.35rem;font-weight:600}.project h3 a{text-decoration-color:var(--accent);text-underline-offset:4px}.project p{margin:.4rem 0 .6rem;color:var(--muted)}.tags{list-style:none;padding:0;margin:0;display:flex;gap:.5rem;flex-wrap:wrap;font-size:.9rem}.tags li{color:var(--accent)}.mail{font-size:clamp(1.3rem,5vw,2rem);font-weight:600;color:var(--accent)}.links{list-style:none;padding:0;margin:1.5rem 0;display:flex;gap:1.25rem}.copy{color:var(--muted);font-size:.9rem;margin-top:3rem}@media (min-width: 720px){.about{grid-template-columns:1.4fr 1fr}.skills{align-content:flex-start}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
