@font-face{font-family:"Latin Modern Roman";src:url("assets/fonts/latin-modern/lmroman10-regular.otf") format("opentype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Latin Modern Roman";src:url("assets/fonts/latin-modern/lmroman10-bold.otf") format("opentype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Latin Modern Roman";src:url("assets/fonts/latin-modern/lmroman10-italic.otf") format("opentype");font-weight:400;font-style:italic;font-display:swap}
*{box-sizing:border-box}
body{margin:0;background:#f5f7fa;color:#111;font:11pt/13pt "Latin Modern Roman","Times New Roman",serif}
a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px}
a:focus-visible,button:focus-visible{outline:2px solid #002d72;outline-offset:3px}
.cv-nav{flex-wrap:wrap;max-width:8.5in;margin:20px auto 0;padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;font:13px/1.4 Arial,sans-serif;color:#002d72}
.language-switch{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font:13px/1.4 Arial,sans-serif}.language-switch [aria-current="page"]{font-weight:700;text-decoration:underline;text-underline-offset:4px}.cv-nav button{font:inherit;color:inherit;background:white;border:1px solid #c9d2dc;border-radius:3px;padding:6px 12px;cursor:pointer}
.resume{max-width:8.5in;margin:16px auto 28px;padding:0.6in;background:white;box-shadow:0 1px 8px #162c4310}
h1,h2,h3,p,ul{margin:0}
.resume-header{text-align:center;margin-bottom:9pt}
h1{font-size:15pt;line-height:17pt;font-weight:700;margin-bottom:3pt}
.contact{font-size:10.5pt;line-height:13pt}.contact+p{margin-top:2pt}
.contact .separator{padding:0 5pt}
h2{font-size:12pt;line-height:14pt;font-weight:400;font-variant:small-caps;border-bottom:0.5pt solid #111;padding-bottom:1pt;margin:7pt 0 3pt;break-after:avoid}
h3{font-size:11pt;line-height:13pt;font-weight:700}
.entry{margin-top:3pt;break-inside:avoid}.entry:first-of-type{margin-top:0}
.entry-row{display:flex;justify-content:space-between;align-items:baseline;gap:10pt}.entry-row>p:first-child,.entry-row>h3{min-width:0}
.date{white-space:nowrap;flex:none}.entry-subtitle{font-style:italic}
ul{padding-left:12pt;list-style-type:disc;margin-top:2pt}li+li{margin-top:1pt}
.publication{margin-top:3pt;break-inside:avoid}.publication:first-of-type{margin-top:0}
.skill-row+.skill-row{margin-top:1pt}.software-row+.software-row{margin-top:3pt}
@page{size:letter;margin:0.6in}
@media print{body{background:white}.cv-nav{display:none}.resume{max-width:none;margin:0;padding:0;box-shadow:none}a{text-decoration:none}section{break-inside:auto}}
@media screen and (max-width:700px){.resume{margin:14px 12px 20px;padding:22px}.entry-row{display:block}.date{margin-top:1pt}.contact .separator{padding:0 3pt}}

@font-face{font-family:"Resume CJK";src:url("assets/fonts/noto-serif-sc/resume-cjk.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
body:lang(zh-Hans){font-family:"Latin Modern Roman","Resume CJK","Songti SC",SimSun,serif;line-height:15pt}
:lang(zh-Hans) h2{font-variant:normal;font-weight:700;line-height:16pt}
:lang(zh-Hans) .entry-subtitle{font-style:normal}
