.about{max-width:var(--w-read);margin-inline:auto}.about-intro{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px 20px;padding-top:24px;display:grid}.about-intro__avatar{border:1px solid var(--line);background:var(--surface-2);object-fit:cover;border-radius:9999px;flex-shrink:0;width:72px;height:72px}.about-intro__name{letter-spacing:-.03em;font-size:clamp(1.5rem,1.3rem + 1vw,2rem);font-weight:700;line-height:1.2}.about-intro__name small{font-family:var(--font-mono);font-size:var(--text-meta);letter-spacing:0;color:var(--mute);margin-left:4px;font-weight:400}.about-intro__role{font-size:var(--text-body);color:var(--fg);margin-top:4px;font-weight:500;line-height:1.5}@media (max-width:479px){.about-intro>div:first-of-type{display:contents}.about-intro__name{grid-column:2;align-self:center}.about-intro__role{grid-column:1/-1;margin-top:0}}@media (max-width:340px){.about-intro__role>span{display:block}.about-intro__role>span[aria-hidden]{display:none}}.about-intro__contact{flex-wrap:wrap;grid-column:1/-1;gap:12px;display:flex}.about-intro__headline{letter-spacing:-.025em;grid-column:1/-1;margin-top:16px;font-size:clamp(1.25rem,1.05rem + 1vw,1.75rem);font-weight:600;line-height:1.45}.about-intro__headline strong{font-weight:700}.about-intro__body{max-width:65ch;font-size:var(--text-body);line-height:var(--leading-body);color:var(--mute);grid-column:1/-1;gap:12px;margin-top:8px;display:grid}.link-ext{align-items:center;gap:6px;display:inline-flex}.link-ext:after{content:"";width:14px;height:14px;transition:transform var(--dur) var(--ease);background:currentColor;flex-shrink:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E") 50%/contain no-repeat}.link-ext:hover:after{transform:translate(2px,-2px)}.link-row{min-height:var(--tap);font-family:var(--font-mono);font-size:var(--text-meta);color:var(--mute);transition:color var(--dur) var(--ease);align-items:center;display:inline-flex}.link-row:hover{color:var(--accent)}.about-section{margin-top:64px}.about-section>.sec-gap{margin-bottom:8px}.jump{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.jump a{min-height:var(--tap);border:1px solid var(--line-strong);border-radius:var(--radius-md);font-size:var(--text-small);color:var(--fg);transition:border-color var(--dur) var(--ease), color var(--dur) var(--ease);align-items:center;padding-inline:16px;display:inline-flex}.jump a:hover{border-color:var(--accent);color:var(--accent)}.tl-org{border-bottom:1px solid var(--line);padding-block:32px}.tl-org__period{font-family:var(--font-mono);font-size:var(--text-cap);color:var(--mute);font-variant-numeric:tabular-nums}.tl-org__name{font-size:var(--text-h3);letter-spacing:-.02em;flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px;font-weight:700;display:flex}.tl-org__role{font-size:var(--text-small);color:var(--mute);margin-top:2px}.badge-now{border-radius:var(--radius-sm);height:20px;font-family:var(--font-mono);letter-spacing:.01em;color:var(--accent);border:1px solid;align-items:center;padding-inline:7px;font-size:11px;font-weight:500;display:inline-flex}.proj-list{margin-top:16px;display:grid}.proj{border-top:1px solid var(--line);min-width:0;padding-block:12px}.proj:first-child{border-top:0;padding-top:0}.proj__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:0 16px;display:flex}.proj__title{font-size:var(--text-small);letter-spacing:-.01em;flex:min(18rem,100%);font-weight:600;line-height:1.5}.proj__period{font-family:var(--font-mono);font-size:var(--text-cap);color:var(--mute);font-variant-numeric:tabular-nums;white-space:normal}.proj__desc{font-size:var(--text-small);color:var(--mute);margin-top:4px;line-height:1.6}.proj__points{font-size:var(--text-small);grid-template-columns:minmax(0,1fr);gap:4px;margin-top:8px;line-height:1.6;display:grid}.proj__points li{overflow-wrap:anywhere;padding-left:12px;position:relative}.proj__points li:before{content:"";background:var(--line-strong);width:5px;height:1px;position:absolute;top:.8em;left:0}.oss-list{border-top:1px solid var(--line);margin-top:8px}.oss-row{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:baseline;gap:2px 16px;padding-block:16px;display:grid}.oss-row__title{min-width:0;font-weight:600}.oss-row__aside{min-width:0;font-family:var(--font-mono);font-size:var(--text-cap);color:var(--mute);text-align:right;white-space:normal}.oss-row__sub{font-size:var(--text-small);color:var(--mute);grid-column:1/-1;line-height:1.7}.oss-row__act{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:12px;display:flex}.skills{border-top:1px solid var(--line);margin-top:8px;display:grid}.skills>div{border-bottom:1px solid var(--line);gap:8px;padding-block:16px;display:grid}.skills dt{font-family:var(--font-mono);font-size:var(--text-meta);color:var(--mute)}.stack-list{flex-wrap:wrap;gap:6px;display:flex}.stack-token{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);height:24px;font-family:var(--font-mono);font-size:var(--text-cap);color:var(--mute);align-items:center;padding-inline:8px;display:inline-flex}@media (min-width:640px){.skills>div{grid-template-columns:160px 1fr;align-items:baseline}}.def-list{border-top:1px solid var(--line);margin-top:8px}.def-list>li{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:baseline;gap:4px 16px;min-width:0;padding-block:16px;display:grid}.def-list__title{font-size:var(--text-body);font-weight:600}.def-list__sub{font-size:var(--text-small);color:var(--mute);grid-column:1}.def-list__title,.def-list__sub{min-width:0}.def-list__aside{min-width:0;font-family:var(--font-mono);font-size:var(--text-cap);color:var(--mute);text-align:right;white-space:normal;font-variant-numeric:tabular-nums;grid-area:1/2}.def-list__action{text-align:right;grid-column:2}@media print{.about{max-width:none;padding-bottom:0}.about-intro{padding-top:0;display:block}.about-intro__name{font-size:20pt}.about-intro__role{font-size:10.5pt}.about-intro__contacts{font-family:var(--font-mono);color:var(--mute);margin-top:3pt;font-size:8.5pt}.about-intro__headline{margin-top:8pt;font-size:12pt}.about-intro__body{gap:3pt;max-width:none;margin-top:4pt;font-size:9pt;line-height:1.55}.about-section{margin-top:12pt}.about-section h2{break-after:avoid;margin-bottom:4pt;font-size:8.5pt}.tl-org{border-bottom:0;padding-block:6pt}.tl-org__period{font-size:8.5pt}.tl-org__name{break-after:avoid;font-size:11.5pt}.proj-list{margin-top:4pt}.proj{break-inside:avoid;padding-block:5pt}.proj__title,.proj__desc,.proj__points{font-size:9pt}.proj__desc,.proj__points{line-height:1.45}.proj__points{gap:1pt}.oss-row,.def-list>li{break-inside:avoid;padding-block:3pt}.oss-row__act{gap:6pt;margin-top:1pt}.def-list__action{text-align:left;grid-column:1/-1}.skills>div{grid-template-columns:90pt 1fr;padding-block:2pt}.stack-list{display:block}.stack-token{height:auto;font-family:var(--font-sans);color:var(--fg);background:0 0;border:0;margin-right:3pt;padding:0;font-size:9pt;display:inline}.stack-token:not(:last-child):after{content:","}a{color:inherit;text-decoration:none}a[href^=http]:after,.link-ext:after{content:" (" attr(href) ")";width:auto;height:auto;color:var(--mute);font-family:var(--font-sans);word-break:break-all;background:0 0;margin:0;font-size:8pt;display:inline;transform:none;-webkit-mask:none;mask:none}.link-ext{font-family:var(--font-sans);display:inline}.link-row{min-height:0;font-size:inherit}}
