@font-face{font-family:Newsreader Variable;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/newsreader-latin-wght-normal-CCVVNp6i.woff2)format("woff2")}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/source-sans-3-latin-wght-normal-BqRLTx4X.woff2)format("woff2")}:root{--paper:#f9f8f4;--ink:#282d29;--muted:#6b7265;--accent:#637350;--line:#dddfd5;--serif:"Newsreader Variable", "Songti SC", "Noto Serif CJK SC", serif;--sans:"Source Sans 3 Variable", "PingFang SC", "Microsoft YaHei", sans-serif;--mono:"Geist Mono Variable", monospace}[data-theme=dark]{--paper:#202522;--ink:#e5e5db;--muted:#9fa79b;--accent:#b4c695;--line:#3a4139}body{background:var(--paper);color:var(--ink);font-family:var(--sans);transition:background .25s,color .25s}.resume-topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1136px;margin:0 auto;padding:28px 0 24px;display:flex}.resume-topbar-right{align-items:center;gap:40px;display:flex}.personal-link{color:var(--muted);align-items:center;gap:8px;font-size:13px;text-decoration:none;display:inline-flex}.personal-link svg{width:13px}.preferences{font-family:var(--mono)}.resume-layout{grid-template-columns:228px minmax(0,748px);gap:68px;max-width:1136px;margin:0 auto;padding-top:76px;display:grid}.resume-sidebar{padding-top:9px}.sidebar-inner{position:sticky;top:48px}.index-label{font-family:var(--mono);color:var(--muted);letter-spacing:.12em;font-size:10px}.sidebar-rule{background:var(--accent);width:28px;height:1px;margin:24px 0}.resume-sidebar nav{gap:4px;display:grid}.resume-sidebar nav a{color:var(--muted);align-items:baseline;gap:12px;padding:9px 0;font-size:13px;text-decoration:none;transition:color .2s;display:flex}.resume-sidebar nav a span{font-family:var(--mono);font-size:9px}.resume-sidebar nav a:hover,.resume-sidebar nav a[aria-current]{color:var(--accent)}.print-button{color:var(--muted);background:0 0;border:0;align-items:center;gap:9px;margin-top:40px;padding:0;font-size:12px;display:flex}.print-button svg{width:15px}.sidebar-location{font-family:var(--mono);letter-spacing:.03em;color:var(--muted);margin-top:70px;font-size:8px;line-height:2}.resume-eyebrow{font-family:var(--mono);letter-spacing:.08em;color:var(--accent);align-items:center;gap:8px;margin:0 0 34px;font-size:9px;display:flex}.resume-eyebrow>span{background:var(--accent);border-radius:50%;width:5px;height:5px}.identity-row{justify-content:space-between;align-items:center;gap:28px;display:flex}.identity-row h1{font-family:var(--serif);letter-spacing:-.045em;margin:0 0 25px -4px;font-size:88px;font-weight:400;line-height:.95}.identity-row h1>span{color:var(--accent)}.resume-role{letter-spacing:-.015em;margin:0;font-size:17px;line-height:1.55}.role-break{display:none}.resume-role>span{color:var(--accent);font-weight:500}.portrait-frame{border:1px solid var(--line);background:var(--paper);flex-shrink:0;margin-right:12px;padding:7px 7px 9px;transform:rotate(3deg);box-shadow:0 5px 15px #00000005}.portrait-frame img{object-fit:cover;filter:saturate(.9)contrast(.98);width:112px;height:132px;display:block}.portrait-caption{text-align:center;font-family:var(--mono);letter-spacing:.1em;color:var(--muted);padding-top:9px;font-size:6.5px;display:block}.resume-tagline{font-family:var(--serif);color:var(--muted);white-space:pre-line;letter-spacing:-.015em;margin:38px 0 28px;font-size:27px;font-weight:350;line-height:1.5}.resume-socials{flex-wrap:wrap;gap:24px;display:flex}.resume-socials a{text-transform:capitalize;color:var(--muted);align-items:center;gap:5px;font-size:12px;text-decoration:none;display:inline-flex}.resume-socials svg{width:11px;height:11px}.resume-socials a:hover,.personal-link:hover{color:var(--accent)}.resume-hero{padding-bottom:60px;animation:.7s both paper-enter}.resume-section{padding-bottom:56px;scroll-margin-top:48px}.section-heading{align-items:center;gap:14px;margin-bottom:29px;display:flex}.section-number{font-family:var(--mono);color:var(--accent);font-size:10px}.section-heading h2{text-transform:uppercase;letter-spacing:.09em;margin:0;font-size:12px;font-weight:600}.section-rule{background:var(--line);flex:1;height:1px;margin-left:6px}.resume-prose{max-width:72ch;color:var(--ink);font-size:17px;font-weight:400;line-height:1.8}.resume-prose p{margin:0 0 18px}.resume-prose p:last-child{margin-bottom:0}.resume-prose h3{font-family:var(--serif);letter-spacing:-.02em;margin:36px 0 12px;font-size:26px;font-weight:450;line-height:1.25}.resume-prose h3:first-child{margin-top:0}.resume-prose ul{margin:22px 0 30px;padding-left:17px}.resume-prose li{margin:0 0 12px;padding-left:6px}.resume-prose li::marker{color:var(--accent);font-size:9px}.resume-prose a{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:4px}.section-experience h3+p,.section-education h3+p{margin-bottom:3px}.section-experience h3+p+p,.section-education h3+p+p{font-family:var(--mono);color:var(--muted);margin-top:9px;font-size:11px}.section-summary h3{max-width:560px;margin-bottom:22px;font-size:30px;line-height:1.2}.resume-footer{font-family:var(--mono);color:var(--muted);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:28px 0 36px;font-size:9px;display:flex}.resume-footer a{gap:10px;text-decoration:none;display:flex}html[lang=zh-CN] .resume-prose{letter-spacing:.025em;font-size:15px;line-height:1.95}html[lang=zh-CN] .resume-prose h3{line-height:1.55}html[lang=zh-CN] .resume-tagline{font-size:24px;line-height:1.7}html[lang=zh-CN] .identity-row h1{letter-spacing:-.05em;margin-bottom:30px;font-size:75px}@keyframes paper-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=1240px){.resume-topbar,.resume-layout{margin-left:48px;margin-right:48px}.resume-layout{grid-template-columns:180px minmax(0,1fr);gap:44px}}@media (width<=960px){.resume-layout{grid-template-columns:minmax(0,720px);max-width:720px;margin:auto;padding:54px 32px 0}.resume-sidebar{display:none}.resume-topbar{margin:0 32px}.identity-row h1{font-size:80px}}@media (width<=560px){.resume-topbar{margin:0 24px;padding:21px 0}.resume-topbar-right{gap:16px}.personal-link{gap:0;font-size:0}.personal-link svg{width:16px}.preferences{gap:14px}.resume-layout{padding:38px 24px 0}.resume-eyebrow{letter-spacing:.025em;margin-bottom:30px;font-size:7.5px}.identity-row{align-items:flex-start;gap:12px}.identity-row h1{margin:4px 0 21px -2px;font-size:59px}.resume-role{font-size:14px;line-height:1.6}.role-break{display:block}.portrait-frame{margin:4px 3px 0 0;padding:5px}.portrait-frame img{width:76px;height:94px}.portrait-caption{padding-top:6px;padding-bottom:2px;font-size:5px}.resume-tagline{margin:31px 0 24px;font-size:23px;line-height:1.4}.resume-socials{gap:22px}.resume-hero{padding-bottom:46px}.resume-section{padding-bottom:43px}.section-heading{gap:10px;margin-bottom:25px}.section-heading h2{letter-spacing:.06em;font-size:11px}.resume-prose{font-size:15.5px;line-height:1.8}.resume-prose h3{font-size:25px}.section-summary h3{font-size:28px}.resume-footer{font-size:8px}html[lang=zh-CN] .identity-row h1{font-size:54px}html[lang=zh-CN] .resume-tagline{font-size:21px}html[lang=zh-CN] .resume-prose{font-size:14.5px}}@media print{:root,[data-theme=dark]{--paper:white;--ink:#111;--muted:#555;--accent:#344329;--line:#ccc}body{font-size:10pt}.resume-topbar,.resume-sidebar,.print-button,.resume-footer a{display:none}.resume-layout{max-width:none;margin:0;padding:0;display:block}.resume-hero{padding-bottom:24px;animation:none}.resume-eyebrow{margin-bottom:18px}.identity-row h1{font-size:48pt}.resume-tagline{margin:22px 0 16px;font-size:18pt}.resume-prose,html[lang=zh-CN] .resume-prose{font-size:10pt;line-height:1.6}.resume-section{padding-bottom:24px}.section-heading{break-after:avoid;margin-bottom:18px}h3{break-after:avoid}li{break-inside:avoid}.portrait-frame{box-shadow:none}.resume-footer{padding-bottom:0}@page{size:A4;margin:18mm}}@media (prefers-reduced-motion:reduce){.resume-hero{animation:none}body,.resume-sidebar nav a{transition:none}}@media (width<=360px){.identity-row h1{font-size:48px}.portrait-frame img{width:64px;height:80px}.resume-eyebrow{font-size:6.5px}.resume-socials{gap:18px}}
