
@font-face{font-family:Zodiak;src:url(/fonts/zodiak-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Zodiak;src:url(/fonts/zodiak-700.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Satoshi;src:url(/fonts/satoshi-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Satoshi;src:url(/fonts/satoshi-500.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Satoshi;src:url(/fonts/satoshi-700.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Noto Sans SC';src:url(/fonts/noto-sans-sc-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Noto Sans SC';src:url(/fonts/noto-sans-sc-700.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Noto Serif SC';src:url(/fonts/noto-serif-sc-400.woff2) format('woff2');font-weight:400;font-display:swap}
:root{--ink:#15171b;--ink-2:#3d434c;--ink-3:#6d7480;--rule:#d8dbe0;--rule-soft:#e8eaee;--gold:#8a6a2f;--gold-soft:#f4efe4}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:Satoshi,'Noto Sans SC',system-ui,sans-serif;color:var(--ink);background:#f2f3f5;font-size:10.5pt;line-height:1.5}
a{color:inherit}
/* 屏幕上的工具栏（打印时隐藏） */
.toolbar{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;
  padding:10px clamp(14px,4vw,32px);background:#15171b;color:#f4f5f7;font-size:12px}
.toolbar a{color:#f4f5f7;text-decoration:none}
.toolbar .brand{font-family:Zodiak,Georgia,serif;font-size:14px}
.toolbar .spacer{flex:1}
.toolbar nav{display:flex;gap:10px;align-items:center}
.toolbar nav a{padding:4px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.28)}
.toolbar nav a.on{background:#f4f5f7;color:#15171b;border-color:#f4f5f7}
.toolbar .act{display:flex;gap:10px;align-items:center}
.toolbar .btn{padding:6px 14px;border-radius:999px;background:#c8a964;color:#1b1a16;font-weight:700}
/* A4 纸张 */
.sheet{max-width:210mm;margin:18px auto 40px;background:#fff;padding:14mm 15mm;box-shadow:0 10px 40px rgba(0,0,0,.12)}
.head{display:flex;gap:10mm;align-items:flex-start;padding-bottom:6mm;border-bottom:2px solid var(--ink)}
.head__photo{width:32mm;height:auto;flex:none;border:1px solid var(--rule)}
h1{font-family:Zodiak,Georgia,serif;font-size:21pt;line-height:1.1;letter-spacing:-.01em;font-weight:700}
h1 .latin{display:block;font-family:Satoshi,sans-serif;font-size:10pt;font-weight:400;color:var(--ink-3);letter-spacing:.02em;margin-top:1.5mm}
.head__role{margin-top:2.5mm;font-size:11pt;color:var(--ink-2);font-weight:500}
.head__contact{margin-top:3mm;display:flex;flex-wrap:wrap;gap:1mm 5mm;font-size:9pt;color:var(--ink-3)}
.head__contact a{text-decoration:none;border-bottom:1px solid var(--rule)}
section{margin-top:6.5mm;break-inside:auto}
h2{font-size:8.5pt;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:700;
   padding-bottom:1.6mm;border-bottom:1px solid var(--rule);margin-bottom:3.2mm}
.summary{font-size:10.5pt;color:var(--ink-2);line-height:1.62}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:3.5mm;margin-top:3.4mm}
.metric b{display:block;font-family:Zodiak,Georgia,serif;font-size:15pt;line-height:1;color:var(--gold)}
.metric span{display:block;margin-top:1.4mm;font-size:8.4pt;color:var(--ink-3);line-height:1.35}
.job,.board{display:grid;grid-template-columns:26mm 1fr;gap:5mm;padding:3mm 0;break-inside:avoid}
.job+.job,.board+.board{border-top:1px solid var(--rule-soft)}
.job__when,.board__when{font-family:'JetBrains Mono','Noto Sans SC',monospace;font-size:8.2pt;color:var(--ink-3);letter-spacing:.04em;padding-top:.6mm}
.job__when b{display:block;color:var(--gold);font-weight:400}
.job__when span,.board__when span{display:block;margin-top:.6mm}
h3{font-family:Zodiak,Georgia,serif;font-size:11.5pt;line-height:1.25}
.job__role,.board__where{font-size:9.4pt;font-weight:700;color:var(--ink-2);margin-top:.6mm}
.board__where{font-weight:400;color:var(--ink-3);font-size:9pt}
.board__desc{margin-top:1.6mm;font-size:9.6pt;color:var(--ink-2);line-height:1.55}
.job ul{margin-top:1.8mm;list-style:none;display:grid;gap:1mm}
.job li{font-size:9.8pt;color:var(--ink-2);padding-left:4mm;position:relative;line-height:1.5}
.job li:before{content:'';position:absolute;left:0;top:2.1mm;width:1.8mm;height:.5mm;background:var(--gold)}
.langs{display:grid;grid-template-columns:repeat(3,1fr);gap:4mm}
.lang b{display:block;font-size:10pt}
.lang span{display:block;margin-top:.8mm;font-size:8.8pt;color:var(--ink-3)}
.foot{margin-top:7mm;padding-top:3mm;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:2mm 6mm;
  justify-content:space-between;font-size:8.4pt;color:var(--ink-3)}
/* 打印：只留纸面，去掉工具栏/阴影/背景；字号略收紧，让 30 年履历控制在 3 页内 */
@page{size:A4;margin:12mm 13mm}
@media print{
  body{background:#fff;font-size:9.4pt;line-height:1.45}
  .toolbar{display:none!important}
  .sheet{max-width:none;margin:0;padding:0;box-shadow:none}
  section{break-inside:auto;margin-top:4.4mm}
  h2{margin-bottom:2.4mm;padding-bottom:1.2mm}
  .summary{font-size:9.8pt;line-height:1.55}
  .metrics{margin-top:2.6mm;gap:3mm}
  .metric b{font-size:13.5pt}
  .metric span{font-size:8pt;margin-top:1mm}
  .job,.board{padding:2.2mm 0}
  .job ul{gap:.7mm;margin-top:1.2mm}
  .job li{font-size:9.2pt;line-height:1.42}
  .board__desc{font-size:9.1pt;margin-top:1mm;line-height:1.45}
  h3{font-size:10.6pt}
  h2{break-after:avoid}
  h3{break-after:avoid}
  .job,.board{break-inside:avoid}
  .foot{margin-top:4mm}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
