.approach .grid{display:grid;gap:30px;max-width:70ch}.approach .block{padding-left:18px;border-left:1px solid var(--line)}.approach .block-label{margin:0 0 8px;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--acc)}.approach .block-label.tone-root{color:var(--root)}.approach .block-title{margin:0 0 9px;font-size:17.5px;font-weight:600;line-height:1.35;letter-spacing:-.01em;color:var(--head);text-wrap:balance}.approach .block-body{margin:0;font-size:15.5px;line-height:1.75;color:var(--body)}.approach .block-body b{color:var(--head);font-weight:600}.contact{padding-bottom:clamp(80px,13vh,130px)}.contact .links{display:flex;flex-direction:column;align-items:flex-start;gap:32px}.contact .invitation{display:flex;flex-direction:column;gap:16px}.contact .invite{margin:0;max-width:30ch;font-size:20px;line-height:1.45;letter-spacing:-.01em;color:var(--head);font-weight:500;text-wrap:balance}.contact .invite-more{margin:0;max-width:52ch;padding-left:18px;border-left:1px solid var(--acc-line);font-size:15px;line-height:1.75;color:var(--body)}.contact .row{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}.contact .cv{font-family:var(--font-mono);font-size:13px;color:var(--body);margin-right:8px}.contact .cv:hover,.contact .cv:focus-visible{color:var(--acc)}.contact .social{display:inline-flex;padding:4px;color:var(--body)}.contact .social:hover,.contact .social:focus-visible{color:var(--acc)}.focus .focus-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 44px;max-width:820px}.focus .focus-group{padding-top:16px;border-top:1px solid var(--line)}.focus .focus-group h3{margin:0 0 10px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--acc)}.focus .focus-group ul{display:flex;flex-wrap:wrap;gap:7px 9px;margin:0;padding:0;list-style:none}.focus .focus-group li{font-size:15px;line-height:1.45;color:var(--body)}.focus .focus-group li:not(:last-child):after{content:" ·";color:var(--line)}@media(max-width:620px){.focus .focus-grid{grid-template-columns:1fr}}.hero{display:flex;flex-wrap:wrap;gap:44px clamp(36px,6vw,80px);align-items:center;padding:clamp(48px,11vh,120px) 0 clamp(44px,8vh,80px)}.hero .text{flex:1 1 460px;min-width:min(100%,460px)}.hero .greeting{margin:0 0 22px;font-family:var(--font-mono);font-size:15px;color:var(--acc)}.hero .name{margin:0;font-weight:700;font-size:clamp(40px,7vw,72px);line-height:1.05;letter-spacing:-.02em}.hero .tagline{margin:12px 0 0;font-weight:500;font-size:clamp(21px,3.1vw,34px);line-height:1.25;letter-spacing:-.015em;color:var(--body);text-wrap:balance;max-width:24ch}.hero .intro{margin:28px 0 0;font-size:16.5px;line-height:1.7;max-width:56ch}.hero .role{margin:20px 0 0;font-family:var(--font-mono);font-size:13px;color:var(--dim)}.hero .facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:14px 26px;margin:26px 0 0;padding:18px 0 0;border-top:1px solid var(--line);max-width:640px}.hero .fact-k{display:block;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;color:var(--dim)}.hero .fact-v{display:block;margin-top:4px;font-size:14.5px;color:var(--body)}.hero .fact-v.tone-now{color:var(--now)}.hero .fact-v.tone-root{color:var(--root)}.hero .actions{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;margin-top:34px}.hero .cv{font-family:var(--font-mono);font-size:13.5px;color:var(--acc);border:1px solid var(--acc);border-radius:4px;padding:13px 22px;white-space:nowrap;margin-right:8px;transition:background .2s ease}.hero .cv:hover,.hero .cv:focus-visible{background:var(--acc-soft);color:var(--acc)}.hero .social{display:inline-flex;padding:4px;color:var(--body)}.hero .social:hover,.hero .social:focus-visible{color:var(--acc)}.hero .portrait{flex:0 0 auto;align-self:center;margin:0 auto}.hero .portrait img{display:block;width:clamp(150px,19vw,212px);height:clamp(150px,19vw,212px);border-radius:50%;object-fit:cover;outline:2px solid var(--acc);outline-offset:7px}@media(max-width:740px){.hero{gap:24px}.hero .portrait{order:-1;margin:0}.hero .portrait img{width:104px;height:104px;outline-offset:5px}}.loader{position:fixed;inset:0;z-index:60;background:var(--bg);display:flex;align-items:center;justify-content:center;animation:gout .5s ease 1.45s both}.loader .glyph{position:relative;width:104px;height:104px}.loader svg{position:absolute;inset:0;display:block}.loader rect{stroke-dasharray:400;stroke-dashoffset:400;animation:gdraw .85s cubic-bezier(.65,0,.3,1) .1s forwards}.loader .initials{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:600;font-size:34px;letter-spacing:-.03em;color:var(--head);opacity:0;animation:gin .4s ease .7s forwards}.loader .dot{position:absolute;right:-5px;bottom:-5px;width:10px;height:10px;background:var(--acc);opacity:0;animation:gin .25s ease 1.05s forwards}.projects .project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 44px}.projects .project{padding-top:20px;border-top:1px solid var(--line)}.projects .project-kind{margin:0 0 8px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--acc)}.projects h3{font-size:21px;font-weight:600}.projects .project-description{margin:12px 0 0;max-width:48ch;font-size:15px;line-height:1.7}.projects .project-tags{display:flex;flex-wrap:wrap;gap:7px 16px;margin:16px 0 0;padding:0;list-style:none;font-family:var(--font-mono);font-size:11px;color:var(--dim)}.projects .project-tags li:not(:last-child):after{content:" ·";color:var(--line)}.projects code{display:inline-block;margin-top:14px;padding:5px 8px;border:1px solid var(--acc-line);border-radius:3px;font-family:var(--font-mono);font-size:12px;color:var(--acc)}@media(max-width:620px){.projects .project-grid{grid-template-columns:1fr}}.work .job{padding:30px 0 34px;border-top:1px solid var(--line)}.work .job:first-of-type{padding-top:0;border-top:none}.work .job-head{display:flex;flex-wrap:wrap;gap:4px 20px;align-items:baseline}.work .job-title{margin:0;font-size:19.5px;font-weight:600;letter-spacing:-.01em}.work .job-title .at{color:var(--acc)}.work .years{margin-left:auto;font-family:var(--font-mono);font-size:12.5px;color:var(--dim);white-space:nowrap}.work .years.live{color:var(--now)}.work .now{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;color:var(--now);border:1px solid var(--now-line);border-radius:3px;padding:3px 8px}.work .now .pulse{width:6px;height:6px;border-radius:50%;background:var(--now);animation:nowPulse 2.4s ease-in-out infinite}@keyframes nowPulse{0%,to{opacity:1}50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.work .now .pulse{animation:none}}.work .meta{margin:5px 0 16px;font-family:var(--font-mono);font-size:12.5px;color:var(--dim)}.work .duties{display:flex;flex-direction:column;gap:11px;max-width:62ch}.work .duty{display:flex;gap:13px}.work .duty .mark{flex:none;color:var(--acc);font-family:var(--font-mono);font-size:13px;line-height:1.7}.work .duty p{margin:0;font-size:15px;line-height:1.65}.work .duty b{color:var(--head);font-weight:600}.work .chips{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:18px}.work .chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:12px;color:var(--dim)}.work .chip svg{color:var(--body)}.work .closing{margin:34px 0 0;padding-top:30px;border-top:1px solid var(--line);max-width:66ch;font-size:16px;line-height:1.75;color:var(--body)}.work .closing b{color:var(--head);font-weight:600}.work .chip.root svg{color:var(--root)}@media(max-width:620px){.work .job-head{gap:6px 12px}.work .years{margin-left:0}}
