:root{--ink:#12293d;--ink-soft:#3e5668;--paper:#fbfaf6;--sand:#eee6da;--line:#d6d0c6;--copper:#9b6c42;--muted:#72818a;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Arial,sans-serif;--serif:"Iowan Old Style","Palatino Linotype","Songti SC","STSong",serif;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans);margin:0}a{color:inherit;text-decoration:none}button{font:inherit}.skip-link{z-index:20;background:var(--paper);border:1px solid var(--ink);padding:9px 12px;position:fixed;top:-100px;left:16px}.skip-link:focus{top:16px}.site-header{z-index:10;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fbfaf6f5;align-items:center;height:76px;padding:0 clamp(20px,5vw,88px);display:flex;position:sticky;top:0}.brand{align-items:baseline;gap:9px;font-weight:700;display:flex}.brand span{font:400 26px var(--serif)}.brand i{color:var(--copper);font:500 10px var(--mono);letter-spacing:.16em;font-style:normal}nav{gap:clamp(18px,3vw,44px);margin:auto;display:flex}nav a{color:var(--ink-soft);font-size:13px;font-weight:600;position:relative}nav a:after{content:"";background:var(--copper);height:1px;transition:transform .18s;position:absolute;bottom:-8px;left:0;right:0;transform:scaleX(0)}nav a:hover:after,nav a.current:after{transform:scaleX(1)}nav a.current{color:var(--ink)}.language-toggle{color:var(--muted);font:11px var(--mono);align-items:center;gap:5px;display:flex}.language-toggle button,.menu-button{color:inherit;cursor:pointer;background:0 0;border:0;padding:4px}.language-toggle button.active{color:var(--ink);font-weight:700}.menu-button{margin-left:auto;display:none}.eyebrow{color:var(--copper);font:500 10px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px}h1,h2,h3,p{margin-top:0}.home-compact{background:var(--ink);min-height:calc(100vh - 76px);color:var(--paper);padding:clamp(34px,5vw,72px) clamp(20px,6vw,96px) clamp(42px,5vw,76px)}.home-compact .eyebrow{color:#d6b88e}.profile-row{grid-template-columns:minmax(0,1fr) minmax(190px,300px);align-items:start;gap:clamp(28px,6vw,82px);max-width:1180px;margin:0 auto;display:grid}.home-title h1{align-items:baseline;gap:18px;margin:0 0 10px;line-height:.95;display:flex}.home-title h1 span,.page-header h1{font:400 clamp(56px,7.5vw,106px)/.95 var(--serif);letter-spacing:-.05em}.home-title h1 em{color:#d6b88e;font:500 clamp(15px,1.5vw,22px) var(--sans);letter-spacing:.18em;text-transform:uppercase;font-style:normal}.role{color:#c6d4dc;font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;margin:0 0 14px}.lead{max-width:760px;font:400 clamp(20px,2.2vw,29px)/1.3 var(--serif);margin:0 0 14px}.about-text{color:#d8e0e3;max-width:780px;margin:0 0 16px;font-size:15.5px;line-height:1.8}.text-link{color:var(--paper);font:500 12px var(--mono);border-bottom:1px solid #d6b88e;padding-bottom:3px;display:inline-block}.text-link.dark{border-bottom-color:var(--copper);color:var(--ink)}.portrait{justify-self:end;width:min(100%,285px);margin:0}.portrait>div{border:1px solid #fbfaf675;padding:7px;position:relative}.portrait>div:after{content:"";background:var(--copper);width:64px;height:1px;position:absolute;bottom:32px;right:-30px}.portrait img{aspect-ratio:4/5;object-fit:cover;object-position:center top;width:100%;height:auto;display:block}.portrait figcaption{color:#d6b88e;text-align:right;font:10px var(--mono);letter-spacing:.08em;margin-top:8px}.home-focus{border-top:1px solid #fbfaf647;max-width:1180px;margin:clamp(28px,4vw,46px) auto 0;padding-top:clamp(22px,3vw,34px)}.research-head h2{font:400 clamp(28px,3.5vw,46px)/1 var(--serif);letter-spacing:-.03em;margin:0}.tag{border:1px solid var(--line);color:var(--ink-soft);font:500 10px var(--mono);padding:5px 8px}.research-head{grid-template-columns:auto minmax(0,1fr);align-items:start;column-gap:22px;margin:0 0 20px;display:grid}.research-head .eyebrow{grid-column:1/-1}.research-head>p:not(.eyebrow){color:#d8e0e3;margin:2px 0 0;font-size:14.5px;line-height:1.75}.research-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;display:grid}.research-list article{border-top:1px solid #fbfaf63d;padding:15px 0 16px}.research-list span{color:#d6b88e;font:500 10px var(--mono)}.research-list h3{font:400 clamp(20px,2.1vw,28px)/1.08 var(--serif);margin:12px 0 6px}.research-list p{color:#d8e0e3;margin:0;font-size:14px;line-height:1.65}.content{max-width:1320px;margin:auto;padding-left:clamp(20px,5vw,88px);padding-right:clamp(20px,5vw,88px)}.page-header{border-bottom:1px solid var(--line);max-width:1320px;margin:auto;padding:clamp(75px,10vw,155px) clamp(20px,5vw,88px) clamp(55px,8vw,110px)}.page-header h1{max-width:740px;margin:0}.page-header>p:last-child{max-width:650px;color:var(--ink-soft);margin:35px 0 0;font-size:18px}.content{padding-top:55px;padding-bottom:clamp(85px,12vw,170px)}.pub-toolbar{border-bottom:1px solid var(--line);gap:8px;margin-bottom:18px;padding-bottom:14px;display:flex}.pub-toolbar button{color:var(--muted);cursor:pointer;font:500 11px var(--mono);background:0 0;border:1px solid #0000;padding:7px 8px}.pub-toolbar button.selected{border-color:var(--copper);color:var(--ink)}.pub-toolbar small{color:var(--copper)}.publication{border-bottom:1px solid var(--line);grid-template-columns:85px 1fr;gap:20px;padding:23px 0 28px;display:grid}.pub-year{color:var(--copper);font:500 11px var(--mono);padding-top:5px}.publication h2{max-width:950px;font:400 clamp(23px,2.6vw,37px)/1.08 var(--serif);letter-spacing:-.02em;margin:0}.authors,.venue{margin:10px 0 0;font-size:14px}.authors{color:#486071}.venue{color:#76838c}.pub-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;display:flex}.pub-actions a,.citation-box summary,.citation-box button{color:var(--copper);font:500 10px var(--mono);letter-spacing:.04em;text-transform:uppercase}.pub-actions a:hover{text-underline-offset:3px;text-decoration:underline}.citation-box{width:100%;margin-top:2px}.citation-box summary{cursor:pointer;width:max-content;list-style:none}.citation-box summary::-webkit-details-marker{display:none}.citation-box p{border-left:2px solid var(--copper);max-width:900px;color:var(--ink-soft);font:13px/1.55 var(--sans);background:#d6d0c647;margin:10px 0 8px;padding:12px}.citation-box button{border:1px solid var(--line);cursor:pointer;background:0 0;padding:6px 8px}.teaching-note{max-width:620px;color:var(--ink-soft);font-size:19px}.course-band{margin-top:42px}.course-band+.course-band{border-top:1px solid var(--line);margin-top:58px;padding-top:44px}.course-band-head{justify-content:space-between;align-items:end;gap:28px;display:flex}.course-band-head p:last-child{max-width:650px;color:var(--ink-soft);margin:0;font-size:15px;line-height:1.75}.course-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:38px;display:grid}.course-card{border:1px solid var(--line);background:#eee6da73;flex-direction:column;min-height:360px;padding:24px;display:flex}.course-card h2,.resources-page h2{font:400 clamp(28px,3vw,40px)/1.04 var(--serif);letter-spacing:-.03em;margin:0 0 14px}.course-card p:not(.eyebrow),.resources-page p:not(.eyebrow){color:var(--ink-soft)}.course-topics{flex-wrap:wrap;gap:8px;margin:18px 0 24px;display:flex}.course-topics span{border:1px solid var(--line);color:var(--ink-soft);font:500 10px var(--mono);padding:5px 8px}.course-card .text-link{width:max-content;margin-top:auto}.planned-courses{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px;display:grid}.planned-courses span{border-top:1px solid var(--line);color:var(--ink);font:400 22px/1.15 var(--serif);padding:17px 0}.planned-courses small,.planned-courses em{color:var(--muted);font:500 10px var(--mono);letter-spacing:.05em;display:block}.planned-courses em{margin-top:8px;font-style:normal}.course-detail{grid-template-columns:1fr minmax(280px,.78fr);gap:clamp(34px,8vw,120px);display:grid}.course-topics.large{margin-top:0}.campus-note{max-width:720px;color:var(--muted);margin-top:34px}.campus-note a{color:var(--ink);border-bottom:1px solid var(--copper)}.course-files{border-top:1px solid var(--line)}.course-files a{border-bottom:1px solid var(--line);color:var(--ink);font:500 15px var(--sans);justify-content:space-between;gap:20px;padding:15px 0;display:flex}.course-files span,.course-files a:hover{color:var(--copper)}.placeholder-note{color:var(--muted);margin:12px 0 0;font-size:14px}.course-plan{border-top:1px solid var(--line);margin-top:10px;padding-top:40px}.plan-part{border-bottom:1px solid var(--line);grid-template-columns:minmax(220px,.52fr) minmax(0,1fr);gap:clamp(28px,5vw,70px);padding:34px 0;display:grid}.plan-part-head span{color:var(--copper);font:500 11px var(--mono);letter-spacing:.08em;margin-bottom:12px;display:block}.plan-part-head h2{font:400 clamp(30px,3.5vw,46px)/1.02 var(--serif);letter-spacing:-.03em;margin:0 0 14px}.plan-part-head p{color:var(--ink-soft)}.plan-part ol{counter-reset:chapter;margin:0;padding:0;list-style:none}.plan-part li{counter-increment:chapter;padding:0 0 22px 48px;position:relative}.plan-part li+li{border-top:1px solid #d6d0c6bf;padding-top:22px}.plan-part li:before{content:counter(chapter, decimal-leading-zero);color:var(--copper);font:500 11px var(--mono);position:absolute;top:2px;left:0}.plan-part li+li:before{top:24px}.plan-part h3{font:600 18px/1.25 var(--sans);margin:0 0 7px}.plan-part li p{color:var(--ink-soft);margin:0;font-size:14.5px;line-height:1.75}.resources-page article{border-top:1px solid var(--line);max-width:740px;padding:26px 0}.resource-notice{max-width:900px!important}.resource-notice h2{margin-bottom:16px}.resource-notice a{color:var(--copper);border-bottom:1px solid var(--copper)}.resource-notice code,.resource-card code,.journal-how code{font-family:var(--mono);font-size:.9em}.resource-data-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:8px 0 72px;display:grid}.resource-card{border:1px solid var(--line);background:#eee6da6b;min-height:300px;max-width:none!important;padding:24px!important}.resource-card-head{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.resource-card-head .eyebrow{margin-bottom:7px}.resource-card h3{font:400 clamp(23px,2.6vw,32px)/1.08 var(--serif);margin:0}.resource-path{color:var(--muted);font:500 10px/1.5 var(--mono);overflow-wrap:anywhere}.resource-card>p:not(.eyebrow){color:var(--ink-soft);font-size:14px}.resource-stats{flex-wrap:wrap;gap:8px;margin:18px 0;display:flex}.resource-stats span{border:1px solid var(--line);min-width:82px;color:var(--muted);font:500 10px var(--mono);flex-direction:column;gap:7px;padding:8px 10px;display:flex}.resource-stats b{color:var(--ink);font-size:11px}.resource-access{overflow-wrap:anywhere;background:#fbfaf6b3;padding:10px 12px;color:var(--muted)!important;font:11px/1.6 var(--mono)!important}.resource-card .text-link{margin-top:3px}.skills-intro{margin-top:18px}.skill-groups{margin:10px 0 72px}.skill-group{border-top:1px solid var(--line)}.skill-group:last-child{border-bottom:1px solid var(--line)}.skill-group summary{cursor:pointer;font:500 14px var(--mono);justify-content:space-between;gap:20px;padding:17px 0;list-style:none;display:flex}.skill-group summary::-webkit-details-marker{display:none}.skill-group summary b{color:var(--copper);font-size:11px;font-weight:500}.skill-table{padding:0 0 15px;overflow-x:auto}.skill-row{color:var(--ink-soft);border-top:1px solid #d6d0c6b3;grid-template-columns:190px minmax(0,1fr) 105px;gap:18px;padding:10px 0;font-size:13px;display:grid}.skill-row a{color:var(--ink);font-family:var(--mono);overflow-wrap:anywhere;font-size:12px}.skill-row a:hover{color:var(--copper)}.skill-row em{color:var(--muted);font:11px var(--mono);font-style:normal}.skill-head{color:var(--muted);font:500 10px var(--mono);text-transform:uppercase}.journal-intro{margin-top:18px}.journal-how{color:var(--ink-soft);gap:7px;margin-top:18px;font-size:13px;display:grid}.journal-search{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:14px;margin:20px 0 16px;padding:15px 0;display:flex}.journal-search label{color:var(--copper);font:500 11px var(--mono)}.journal-search input{border:1px solid var(--line);min-width:220px;color:var(--ink);font:14px var(--sans);background:0 0;flex:320px;padding:10px 12px}.journal-search input:focus{outline:1px solid var(--copper)}.journal-search-placeholder input{color:var(--muted);background:#eee6da61}.journal-search-placeholder button{border:1px solid var(--line);color:var(--muted);font:500 11px var(--mono);background:#eee6da80;padding:10px 13px}.journal-results{border-top:1px solid var(--line)}.journal-result-head,.journal-result{grid-template-columns:minmax(220px,1.5fr) minmax(150px,1fr) 120px 70px;align-items:center;gap:18px;display:grid}.journal-result-head{color:var(--muted);font:500 10px var(--mono);text-transform:uppercase;padding:11px 0}.journal-result{border-top:1px solid var(--line);color:var(--ink-soft);padding:15px 0;font-size:13px}.journal-result strong,.journal-result small{display:block}.journal-result strong{color:var(--ink);font:400 19px/1.15 var(--serif)}.journal-result small{color:var(--muted);margin-top:4px;font-size:11px}.journal-result code{color:var(--ink-soft);font:12px var(--mono)}.journal-result a{color:var(--copper);font:500 11px var(--mono)}.placeholder-resources{margin-top:64px}.resource-placeholder-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;margin-top:20px;display:grid}.resource-placeholder-list span{border-top:1px solid var(--line);color:var(--ink-soft);padding:12px 0;font-size:13px}.material-card{border:1px solid var(--line);background:var(--sand);align-self:start;padding:32px}.material-card h2{font:400 38px/1 var(--serif);margin:0 0 16px}.material-card p:not(.eyebrow){color:var(--ink-soft)}.button{border:1px solid var(--ink);align-items:center;gap:12px;margin:8px 6px 0 0;padding:10px 13px;font-size:12px;font-weight:600;display:inline-flex}.button.primary{border-color:var(--copper);background:var(--copper);color:#fff}.button:hover{transform:translateY(-1px)}.cv-layout{grid-template-columns:.85fr 1.15fr;gap:clamp(45px,10vw,160px);display:grid}.cv-links{border-top:1px solid var(--line)}.cv-links a{border-bottom:1px solid var(--line);grid-template-columns:54px 1fr 18px;gap:8px;padding:17px 0;font-size:18px;display:grid}.cv-links a span,.education>p{color:var(--copper);font:500 10px var(--mono);letter-spacing:.08em}.cv-links b{color:var(--copper);font-weight:400}.education article{border-top:1px solid var(--line);grid-template-columns:110px 1fr;gap:15px;padding:17px 0;display:grid}.education article span{color:var(--copper);font:500 11px var(--mono)}.education article p{color:var(--ink-soft);margin:0}.education strong{color:var(--ink);font-size:17px;font-weight:600;display:block}.education strong a:hover{color:var(--copper)}.contact-layout{grid-template-columns:minmax(310px,400px) minmax(0,1fr);align-items:start;gap:clamp(34px,7vw,105px);display:grid}.contact-main{gap:18px;padding-top:2px;display:grid}.contact-card{border-top:1px solid var(--line);padding:22px 0 24px}.contact-card:first-child{border-top-color:#9b5b3761}.contact-card>.eyebrow{color:var(--copper);margin:0 0 14px}.email-link{border-bottom:2px solid var(--copper);max-width:100%;font:400 clamp(17px,1.72vw,24px)/1.18 var(--serif);word-break:break-word;padding-bottom:6px;display:inline-flex}.email-link span{color:var(--copper);font-family:var(--sans);margin-left:11px;font-size:.55em}.unit-link{color:var(--muted);margin:0;line-height:1.85}.unit-link a{color:var(--ink);font-weight:600}.unit-link .map-link{color:var(--muted);margin-top:7px;font-weight:400;display:inline-block}.unit-link .map-link:hover{color:var(--copper)}.social-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;max-width:560px;display:grid}.social-list>*{border-bottom:1px solid var(--line);font:500 14px var(--mono);justify-content:space-between;align-items:center;gap:14px;padding:13px 0;display:flex}.social-list a:hover{color:var(--copper)}.social-list em{color:var(--muted);font-size:11px;font-style:normal}.qr-panel{grid-template-columns:repeat(2,minmax(0,1fr));align-self:start;gap:22px;max-width:400px;display:grid}.qr-card{background:0 0;border:0;margin:0;padding:0}.qr-card img{aspect-ratio:1;object-fit:contain;background:0 0;width:100%;display:block}.qr-card figcaption{color:var(--copper);font:600 11px var(--mono);letter-spacing:.08em;text-align:center;margin-top:12px}.qr-placeholder{aspect-ratio:1;text-align:center;border:1px dashed #fbfaf6a6;place-items:center;width:min(100%,285px);margin:auto;display:grid}.qr-placeholder i{color:#d6b88e;font:400 70px/1 var(--serif)}.qr-placeholder span{color:#d6b88e;font:10px var(--mono);letter-spacing:.09em;text-transform:uppercase;margin-top:-30px}footer{color:#b9c8d0;font:500 10px var(--mono);letter-spacing:.04em;background:#0b1e2d;justify-content:space-between;gap:14px;padding:20px clamp(20px,5vw,88px);display:flex}footer a{color:#d6b88e}@media (width<=920px){.profile-row,.home-focus{grid-template-columns:1fr}.portrait{justify-self:start;width:min(100%,240px)}.research-head{grid-template-columns:1fr}}@media (width<=760px){.resource-data-grid,.resource-placeholder-list{grid-template-columns:1fr}.skill-row{grid-template-columns:150px minmax(260px,1fr) 90px;min-width:560px}.journal-result-head,.journal-result{grid-template-columns:minmax(160px,1.4fr) minmax(120px,1fr) 100px 55px;gap:10px}.journal-result strong{font-size:17px}.site-header{height:65px}.menu-button{display:block}nav{border-bottom:1px solid var(--line);background:var(--paper);flex-direction:column;gap:15px;padding:18px 20px;display:none;position:absolute;top:64px;left:0;right:0;box-shadow:0 8px 18px #10273b14}nav.open{display:flex}.language-toggle{margin-left:13px}.home-compact{min-height:auto;padding:42px 24px 54px}.home-title h1{flex-direction:column;align-items:flex-start;gap:8px}.home-title h1 span,.page-header h1{font-size:72px}.home-title h1 em{margin-left:2px}.lead{font-size:22px}.about-text{font-size:15px}.portrait{max-width:220px}.portrait>div:after{display:none}.home-focus{margin-top:30px;padding-top:26px}.research-list{grid-template-columns:1fr}.page-header{padding:80px 24px 64px}.content{padding-left:24px;padding-right:24px}.publication{grid-template-columns:52px 1fr;gap:12px}.publication h2{font-size:28px}.course-grid,.planned-courses,.course-detail,.teaching-layout,.cv-layout,.contact-layout,.plan-part{grid-template-columns:1fr}.course-band-head{display:block}.course-band-head p:last-child{margin-top:10px}.qr-panel{max-width:390px}.social-list{grid-template-columns:1fr}.education article{grid-template-columns:90px 1fr}footer{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important}}
