:root{--ink:#172a28;--muted:#62726b;--accent:#176955;--line:#dce3db;--paper:#f7f8f3;--white:#fff;--serif:Georgia,'Songti SC','SimSun',serif;--sans:system-ui,-apple-system,'Segoe UI','Microsoft YaHei',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.85}a{color:inherit;text-decoration:none}a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:5px}a:focus-visible,button:focus-visible{outline:3px solid #c78626;outline-offset:5px}.wrap{width:min(1120px,calc(100% - 80px));margin:auto}.skip{position:absolute;left:20px;top:-80px;z-index:20;padding:10px;background:white}.skip:focus{top:12px}.header{display:flex;align-items:center;justify-content:space-between;padding:30px 0;border-bottom:1px solid var(--line)}.brand{font-size:14px;letter-spacing:1.4px;font-weight:700}.brand span{display:block;color:var(--muted);font-size:11px;font-weight:400;letter-spacing:3px}.header nav{display:flex;gap:30px;font-size:13px}.hero{display:grid;grid-template-columns:1.13fr 1fr;gap:70px;padding:80px 0 66px;align-items:center}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:650;color:var(--accent);margin:0 0 20px}h1{font-family:var(--serif);font-size:clamp(40px,4.3vw,58px);line-height:1.3;font-weight:600;letter-spacing:-1px;margin:0 0 27px}h1 span{color:var(--accent)}.intro{font-size:16px;max-width:520px;color:var(--muted);margin:0 0 28px}.actions{display:flex;gap:26px;align-items:center}.button{display:inline-flex;align-items:center;gap:36px;padding:12px 20px;background:var(--accent);color:white;font-size:13px;border:0;border-radius:3px;cursor:pointer;font-family:inherit}.button:hover{background:#10513f;color:white;text-decoration:none}.text-link{font-size:13px}.scene{margin:0}.scene svg{display:block;width:100%;height:auto}.scene figcaption{font-size:11px;color:var(--muted);margin-top:13px;text-align:right}.facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:23px 0;gap:28px}.facts span{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}.facts strong{font-size:13px;font-weight:550}.section{padding:66px 0;border-bottom:1px solid var(--line)}.section-head{margin-bottom:30px}.section-head .eyebrow{margin-bottom:9px}h2{font-family:var(--serif);font-size:29px;line-height:1.5;font-weight:600;margin:0}h3{font-size:17px;line-height:1.6;font-weight:650;margin:0 0 12px}p{margin:0 0 16px}.small,.authors{font-size:12px;color:var(--muted)}.paper{display:grid;grid-template-columns:100px 1fr;gap:35px;padding:30px;background:white;border:1px solid var(--line);border-radius:5px}.paper-label{color:var(--accent);font-size:12px;letter-spacing:2px;padding-top:4px}.paper-label strong{display:block;font-family:var(--serif);font-size:36px;letter-spacing:0}.paper p:last-child{margin-bottom:0}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.project{padding:27px 25px;background:white;border:1px solid var(--line);border-radius:5px}.tag{display:block;font-size:9px;letter-spacing:1.5px;color:var(--accent);margin-bottom:17px}.project h3{font-size:18px}.project p{font-size:13px;color:var(--muted)}dl{font-size:12px;margin:23px 0 0}dt{font-weight:650;margin:14px 0 4px}dd{margin:0;color:var(--muted)}dd a{color:var(--accent)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:70px}.two-col>p{color:var(--muted)}.link-list a{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.education article+article{margin-top:28px}.education .small{margin-bottom:5px}.education h3{margin-bottom:4px}.education p{font-size:13px;color:var(--muted)}.skills h3{font-size:13px;margin-bottom:4px}.skills p{font-size:13px;color:var(--muted);margin-bottom:21px}.footer{display:flex;justify-content:space-between;padding:30px 0 40px;font-size:11px;color:var(--muted)}.resume{max-width:900px;padding:50px 0}.resume-head{border-bottom:2px solid var(--accent);padding-bottom:22px}.resume-head h1{font-size:36px;margin:0 0 8px}.resume-head p{margin:0;color:var(--muted)}.resume-tools{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;font-size:13px}.resume section{margin-top:30px}.resume h2{font-size:21px;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:16px}.resume h3{font-size:16px;margin-bottom:4px}.resume p,.resume li{font-size:13px}.resume ul{padding-left:21px}.resume article+article{margin-top:20px}.resume .date{float:right;font-size:12px;color:var(--muted)}
@media(max-width:900px){.wrap{width:calc(100% - 48px)}.hero{gap:30px;padding:50px 0}.project-grid{grid-template-columns:1fr}.two-col{gap:35px}.project{padding:25px}.scene figcaption{text-align:left}h1{font-size:42px}}
@media(max-width:600px){.wrap{width:calc(100% - 36px)}.header{padding:20px 0;align-items:flex-start}.header nav{gap:15px;font-size:12px}.brand{font-size:11px;letter-spacing:1px}.hero{grid-template-columns:1fr;gap:35px;padding:44px 0}.hero h1{font-size:40px}.hero .intro{font-size:14px}.scene{max-width:440px}.facts{grid-template-columns:1fr;gap:17px;padding:21px 0}.facts span{margin-bottom:1px}.section{padding:42px 0}h2{font-size:25px}.paper{grid-template-columns:1fr;gap:10px;padding:23px}.paper-label strong{display:inline;margin-left:10px;font-size:22px}.two-col{grid-template-columns:1fr;gap:23px}.resume{padding-top:25px}.resume .date{float:none;display:block}.resume-tools{gap:20px}.footer{gap:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{@page{size:A4;margin:15mm}body{background:white;font-size:11px}.wrap{width:100%}.resume{padding:0;max-width:none}.resume-tools,.skip{display:none}.resume-head h1{font-size:26px}.resume section{margin-top:18px}.resume h2{font-size:17px;margin-bottom:10px}.resume p,.resume li{font-size:11px;line-height:1.7}.resume article{break-inside:avoid}.resume .date{float:right}a{color:inherit;text-decoration:none}}
