:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#111;--ink-2:#5d5d63;--ink-3:#99999f;--hairline:#00000013;--bg:#fbfaf9;--font-sans:"IBM Plex Sans", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Microsoft YaHei", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "PingFang SC", "Microsoft YaHei", monospace;--radius-sm:6px;--ease-out:cubic-bezier(.2, 0, 0, 1);--shadow-avatar:0 0 0 1px #00000014, inset 0 1px 0 #ffffffe6, 0 4px 12px #00000014}*{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px}body{background:var(--bg);min-height:100dvh;color:var(--ink);font:400 14px/1.5 var(--font-sans);font-kerning:normal;font-optical-sizing:auto;font-variant-numeric:tabular-nums;letter-spacing:0;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;overflow-wrap:break-word;place-items:start center;margin:0;display:grid;overflow-x:clip}.cursor-dot{z-index:20;background:color-mix(in srgb, var(--ink) 88%, transparent);opacity:0;pointer-events:none;width:5px;height:5px;transform:translate3d(var(--cursor-x,-24px), var(--cursor-y,-24px), 0) translate(-50%, -50%) scale(var(--cursor-scale,1));transition:opacity .12s var(--ease-out), background .12s var(--ease-out);will-change:transform;border-radius:50%;display:none;position:fixed;top:0;left:0}html.has-dot-cursor,html.has-dot-cursor *{cursor:none!important}html.has-dot-cursor .cursor-dot{display:block}.cursor-dot.is-visible{opacity:.9}.cursor-dot.is-pressed{--cursor-scale:.78;background:var(--ink)}img{display:block}a{color:inherit;text-underline-offset:3px;transition:color .14s var(--ease-out), text-decoration-color .14s var(--ease-out);text-decoration-color:#00000038;text-decoration-thickness:1px}a:hover{color:var(--ink);text-decoration-color:currentColor}a:focus-visible{outline-offset:3px;outline:1px solid #18181b85}.skip-link{z-index:10;border-radius:var(--radius-sm);color:var(--ink);font:500 11px/1 var(--font-mono);background:#fff;padding:5px 9px;text-decoration:none;position:fixed;top:14px;left:14px;transform:translateY(-180%);box-shadow:0 0 0 1px #0000001a,0 2px 5px #00000014}.skip-link:focus{transform:translateY(0)}.resume-shell{width:100%;max-width:540px;padding:56px 24px 64px}.resume-header{border-bottom:1px solid var(--hairline);margin-bottom:22px;padding-bottom:18px}.identity{grid-template-columns:58px minmax(0,1fr);align-items:start;gap:12px;margin-bottom:14px;display:grid}.avatar{object-fit:cover;object-position:center top;border-radius:var(--radius-sm);width:58px;height:58px;box-shadow:var(--shadow-avatar)}.identity__text{min-width:0}h1,h2,h3,p{margin:0}h1{color:var(--ink);letter-spacing:0;font-size:21px;font-weight:600;line-height:23px}.role{color:var(--ink);margin-top:2px;font-size:14px;font-weight:500;line-height:16px}.specialty{color:var(--ink-2);font:400 12px/16px var(--font-mono);margin-top:1px}.contact-list{color:var(--ink-2);font:400 12px/1.35 var(--font-mono);flex-wrap:wrap;gap:6px 12px;margin:0;padding:0;list-style:none;display:flex}.contact-list li{min-width:0}.resume-section{margin-bottom:28px}.resume-section--summary{margin-bottom:30px}.resume-section--last{margin-bottom:0}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.section-head h2{color:var(--ink);font-size:15px;font-weight:600;line-height:21px}.summary{max-width:68ch;color:var(--ink-2);text-wrap:pretty;font-size:14px;line-height:21px}.resume-item{border-top:1px solid var(--hairline);padding:13px 0 15px}.resume-item:last-child{border-bottom:1px solid var(--hairline)}.resume-item--compact{padding-bottom:13px}.item-head{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:12px;margin-bottom:7px;display:grid}.item-head h3{color:var(--ink);font-size:14.5px;font-weight:600;line-height:19px}.project-link{text-underline-offset:3px;text-decoration-line:underline;text-decoration-color:#0000;text-decoration-thickness:1px}.project-link:hover{text-decoration-color:currentColor}.item-head p,.date{color:var(--ink-3);font:400 12px/1.25 var(--font-mono)}.date{white-space:nowrap}.resume-item>p,.skill-list p{color:var(--ink-2);text-wrap:pretty;font-size:14px;line-height:21px}.resume-item ul{color:var(--ink-2);gap:4px;margin:8px 0 0;padding-left:16px;font-size:13.5px;line-height:20px;display:grid}.resume-item li::marker{color:var(--ink-3)}.skill-list{border-top:1px solid var(--hairline);display:grid}.skill-list p{border-bottom:1px solid var(--hairline);padding:10px 0}.skill-list strong{color:var(--ink);font-weight:600}@media (prefers-reduced-motion:no-preference){.resume-shell>*{opacity:0;animation:enter .52s var(--ease-out) forwards}.resume-shell>:first-child{animation-delay:0s}.resume-shell>:nth-child(2){animation-delay:70ms}.resume-shell>:nth-child(3){animation-delay:.14s}.resume-shell>:nth-child(4){animation-delay:.21s}.resume-shell>:nth-child(n+5){animation-delay:.28s}}@keyframes enter{0%{opacity:0;filter:blur(3px);transform:translateY(5px)}to{opacity:1;filter:blur();transform:translateY(0)}}@media (width<=480px){.resume-shell{padding:36px 18px 44px}.identity{grid-template-columns:58px minmax(0,1fr)}.item-head{grid-template-columns:1fr;gap:4px}.date{white-space:normal}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
