.approach .grid{display:grid;gap:30px;max-width:70ch}.approach .block{padding-left:18px;border-left:1px solid var(--line)}.approach .block-title.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:16px;line-height:1.75;color:var(--body)}.approach .block-body b{color:var(--head);font-weight:600}.section.contact{margin-top:32px;padding:38px clamp(22px,4vw,40px) 44px;margin-bottom:56px;background:var(--panel);border-top:2px solid var(--acc);border-radius:0 0 5px 5px}.contact .invite{margin:0;max-width:48ch;font-size:clamp(21px,2.6vw,27px);line-height:1.45;color:var(--head);font-weight:500;text-wrap:balance}.contact .invite-more{margin:16px 0 0;max-width:64ch;line-height:1.7}.contact .row{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;margin-top:28px}.contact .contact-email{display:inline-flex;align-items:center;gap:12px;background:var(--acc);color:var(--bg);padding:12px 18px;font-weight:600;border-radius:4px}.contact .contact-email:hover{background:var(--head)}.contact .cv{padding:10px 0;text-decoration:underline;text-underline-offset:5px}.contact .social{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:44px}.focus .focus-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 44px}.focus .focus-group{padding-top:16px;border-top:1px solid var(--line)}.focus .focus-group h3{margin:0 0 10px;font-size:18px;font-weight:600;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:16px;line-height:1.45;color:var(--body)}.focus .focus-group li:not(:last-child):after{content:" ·";color:var(--dim)}@media(max-width:620px){.focus .focus-grid{grid-template-columns:1fr}}.hero{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:48px;align-items:start;padding:62px 0 40px}.hero .greeting{margin:0 0 14px;font-size:16px;color:var(--acc)}.hero .name{font-weight:700;font-size:clamp(44px,7vw,72px);line-height:1.05;letter-spacing:-.035em}.hero .tagline{margin:14px 0 0;font-weight:500;font-size:clamp(22px,3vw,30px);line-height:1.3;color:var(--head)}.hero .specialization{margin:8px 0 0;font-size:17px;line-height:1.5;color:var(--body)}.hero .intro{margin:22px 0 0;font-size:17px;line-height:1.7;max-width:60ch}.hero .facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}.hero .fact-k{display:block;font-size:13px;color:var(--dim)}.hero .fact-v{display:block;margin-top:4px;font-size:15px}.hero .fact-v.tone-now{color:var(--now)}.hero .fact-v.tone-root{color:var(--root)}.hero .actions{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin-top:26px}.hero .cv{font-weight:600;color:var(--bg);background:var(--acc);border:1px solid var(--acc);border-radius:4px;padding:13px 20px;white-space:nowrap}.hero .cv:hover{background:var(--head);border-color:var(--head)}.hero .social{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:44px}.hero .portrait{margin-top:38px}.hero .portrait img{display:block;width:190px;height:190px;border-radius:50%;object-fit:cover;outline:2px solid var(--acc);outline-offset:7px}@media(min-width:741px)and (max-height:700px){.hero{padding-top:32px}.hero .facts{margin-top:22px;padding-top:18px;gap:14px 24px}}@media(max-width:740px){.hero{grid-template-columns:minmax(0,1fr);gap:22px;padding-top:30px}.hero .portrait{order:-1;margin:0}.hero .portrait img{width:72px;height:72px;outline-offset:4px}.hero .intro{font-size:16px;line-height:1.65;margin-top:18px}.hero .actions{gap:10px 16px}}.projects .project-grid{display:grid;gap:36px}.projects .project{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:32px}.projects .project-kind{margin:0 0 10px;font-size:14px;color:var(--acc)}.projects h3{font-size:30px;font-weight:600}.projects .project-description{margin:12px 0 0;line-height:1.7}.projects .project-tags{display:flex;flex-wrap:wrap;gap:6px 14px;margin:18px 0 0;padding:0;list-style:none;font-family:var(--font-mono);font-size:12px;color:var(--dim)}.projects .project-link{display:inline-block;margin-top:20px}.projects .project-preview{min-width:0;margin:0}.projects .project-preview img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:5px}.projects figcaption{margin-top:10px;font-size:13px;line-height:1.5;color:var(--dim)}.projects .project-gallery{display:grid;gap:18px}.projects .preview-trigger{display:block;width:100%;padding:0;border:0;background:none;font-family:inherit;text-align:left;color:var(--acc);font-size:13px;cursor:zoom-in}.projects .preview-trigger:disabled{cursor:default}.projects .project-gallery span{display:inline-block;margin-top:7px;text-decoration:underline;text-underline-offset:3px}.image-preview-open{overflow:hidden}.image-preview{width:min(1500px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:16px;border:1px solid var(--line);border-radius:5px;background:var(--bg);color:var(--body)}.image-preview::backdrop{background:#000000d9}.image-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.image-preview-toolbar button{min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--acc);font:inherit;cursor:pointer}.image-preview-viewport{max-height:max(100px,calc(100dvh - 210px));overflow:auto;overscroll-behavior:contain}.image-preview .image-preview-viewport img{display:block;width:auto;height:auto;max-width:100%;max-height:max(100px,calc(100dvh - 210px));margin-inline:auto}.image-preview.is-zoomed img{max-width:none;max-height:none}.image-preview-caption{margin:12px 0 0;font-size:13px;line-height:1.5}.projects .command-preview{border:1px solid var(--line);border-radius:5px;background:var(--panel);padding:20px 24px 42px;font-family:var(--font-mono)}.projects .terminal-label{display:block;padding-bottom:14px;border-bottom:1px solid var(--line);font-size:12px;color:var(--dim)}.projects .command-line{margin-top:28px;color:var(--acc)}.projects code{font:inherit}@media(max-width:680px){.projects .project{grid-template-columns:minmax(0,1fr);gap:24px}.projects .project-grid{gap:48px}}.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 .job-specialization{margin:7px 0 0;font-size:16px;line-height:1.5;color:var(--body)}.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:80ch}.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:16px;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}}
