
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Noto+Serif+TC:wght@300;400;500;600&family=Raleway:wght@300;400;500;600&display=swap');
:root{
  --paper:#ffffff;
  --cream:#fbf8f3;
  --cream-2:#f3ede5;
  --ink:#1b1714;
  --text:#2c2520;
  --muted:#4f4740;
  --brown:#765039;
  --brown-deep:#3d281e;
  --clay:#a87555;
  --sage:#58694f;
  --sage-pale:#edf1e7;
  --line:rgba(64,41,29,.18);
  --line-strong:rgba(64,41,29,.30);
  --shadow:0 16px 38px rgba(45,31,22,.08);
  --serif:'Cormorant Garamond','Noto Serif TC',Georgia,serif;
  --tc:'Noto Serif TC','Times New Roman',serif;
  --sans:'Raleway',Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper); color:var(--text); font-family:var(--tc); line-height:1.72; overflow-x:hidden; font-size:16px}
a{color:inherit;text-decoration:none}
a.link{color:var(--brown-deep);border-bottom:1px solid rgba(118,80,57,.35)}
a.link:hover{color:var(--brown);border-bottom-color:var(--brown)}
img{max-width:100%;display:block}
.nav{position:sticky;top:0;z-index:40;backdrop-filter:blur(14px);background:rgba(255,255,255,.94);border-bottom:1px solid var(--line)}
.nav-inner{max-width:1180px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:14px 28px;gap:20px}
.brand{font-family:var(--serif);font-size:1.05rem;letter-spacing:.035em;color:var(--brown-deep);font-weight:500;line-height:1.05}
.brand span{font-family:var(--sans);font-size:.58rem;letter-spacing:.20em;text-transform:uppercase;color:var(--sage);display:block;margin-top:2px}
.nav-links{display:flex;gap:18px;align-items:center;font-family:var(--sans);font-size:.70rem;letter-spacing:.15em;text-transform:uppercase;color:#51443b;flex-wrap:wrap;justify-content:flex-end}
.nav-links a{position:relative;padding:6px 0;color:#51443b}
.nav-links a::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--brown);transform:scaleX(0);transform-origin:right;transition:.25s}
.nav-links a:hover,.nav-links a.active{color:var(--brown-deep)}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1);transform-origin:left}
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.hero::before{content:'';position:absolute;inset:-20%;background:radial-gradient(circle at 78% 24%,rgba(168,117,85,.10),transparent 30%),radial-gradient(circle at 12% 78%,rgba(88,105,79,.09),transparent 36%);pointer-events:none}
.hero-inner{position:relative;max-width:1180px;margin:auto;display:grid;grid-template-columns:minmax(0,1.4fr) 320px;gap:40px;padding:44px 28px 38px;align-items:center}
.eyebrow{font-family:var(--sans);font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;color:var(--brown);font-weight:500;margin-bottom:10px}
h1{font-family:var(--serif);font-weight:400;line-height:1.05;font-size:clamp(2.45rem,4.7vw,4.55rem);letter-spacing:.01em;color:#211b17}
h1.name-title{font-size:clamp(2.35rem,4.4vw,4.25rem);font-weight:400;color:#211b17}
h1 em{font-style:italic;color:var(--brown);font-weight:400}.subtitle{max-width:720px;margin-top:16px;color:#352e29;font-size:1.02rem;line-height:1.85;letter-spacing:.01em}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--brown);color:var(--brown-deep);padding:10px 18px;font-family:var(--sans);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;background:#fff;transition:.25s}.button:hover{background:var(--brown-deep);color:#fff;border-color:var(--brown-deep)}.button.soft{border-color:rgba(88,105,79,.38);color:var(--sage);background:rgba(237,241,231,.48)}.button.soft:hover{background:var(--sage);color:#fff}.profile-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:18px}.profile-img{width:132px;height:132px;object-fit:cover;border-radius:50%;margin:0 auto 16px;border:1px solid var(--line)}.profile-card h2{font-family:var(--serif);font-size:1.55rem;font-weight:500;line-height:1.1;text-align:center;color:var(--brown-deep)}.profile-card p{text-align:center;font-size:.86rem;color:var(--muted);line-height:1.65;margin-top:10px}.mini-list{margin-top:14px;border-top:1px solid var(--line);padding-top:12px;display:grid;gap:8px}.mini-list a{font-family:var(--sans);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brown-deep);text-align:center}.mini-list a:hover{color:var(--sage)}
main,.section{max-width:1180px;margin:0 auto;padding:40px 28px}.section.alt{max-width:none;background:var(--cream);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.section.alt>.inner{max-width:1180px;margin:auto}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:24px}.section-label{font-family:var(--sans);font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--brown);font-weight:500;margin-bottom:7px}.section-title{font-family:var(--serif);font-size:clamp(1.95rem,3.2vw,2.7rem);font-weight:500;line-height:1.15;color:#201a16}.section-note{max-width:580px;color:var(--muted);font-size:.93rem;line-height:1.75}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.info-card,.book-card,.content-card{background:#fff;border:1px solid var(--line);box-shadow:0 10px 24px rgba(45,31,22,.04);padding:24px}.info-card h3,.content-card h3{font-family:var(--serif);font-size:1.55rem;color:var(--brown-deep);font-weight:500;margin-bottom:10px}.info-card p{color:#3c332c}.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.tag{font-family:var(--sans);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;padding:5px 9px;border:1px solid rgba(88,105,79,.30);color:var(--sage);background:rgba(237,241,231,.38)}.book-card{display:grid;grid-template-columns:124px 1fr;gap:20px;align-items:center}.book-card img{border:1px solid var(--line);box-shadow:0 12px 22px rgba(45,31,22,.10)}.book-card h3{font-family:var(--serif);font-size:1.55rem;line-height:1.2;color:var(--brown-deep);font-weight:500}.book-card p{font-size:.92rem;color:#3e362f;margin-top:8px}.book-eval{margin-top:11px;max-width:250px;opacity:.92}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.quick-card{border:1px solid var(--line);padding:20px;background:#fff;transition:.25s}.quick-card:hover{border-color:var(--line-strong);transform:translateY(-2px);box-shadow:var(--shadow)}.quick-card .zh{display:block;font-size:1.02rem;font-weight:500;color:#241c17}.quick-card .en{display:block;font-family:var(--sans);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brown);margin-top:3px}.quick-card p{font-size:.82rem;color:var(--muted);margin-top:10px}.highlight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.research-card{border:1px solid var(--line);background:#fff;overflow:hidden;box-shadow:0 10px 22px rgba(45,31,22,.04);display:flex;flex-direction:column}.research-card .thumb{height:158px;background:var(--cream);display:flex;align-items:center;justify-content:center;overflow:hidden;border-bottom:1px solid var(--line)}.research-card .thumb img{width:100%;height:100%;object-fit:cover}.research-card.book .thumb img{width:auto;height:100%;object-fit:contain;padding:12px}.research-card .body{padding:18px;display:flex;flex-direction:column;gap:9px;flex:1}.research-card .meta{font-family:var(--sans);font-size:.62rem;letter-spacing:.17em;text-transform:uppercase;color:var(--brown)}.research-card h3{font-family:var(--serif);font-weight:500;line-height:1.24;font-size:1.28rem;color:#211b17}.research-card p{font-size:.88rem;color:#433a32;line-height:1.65}.card-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:8px}.text-link{font-family:var(--sans);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brown-deep);border-bottom:1px solid rgba(118,80,57,.35);padding-bottom:2px}.text-link:hover{color:var(--sage);border-bottom-color:var(--sage)}.page-hero{background:linear-gradient(180deg,#fff 0%,#fbf8f3 100%);border-bottom:1px solid var(--line)}.page-hero .hero-inner{grid-template-columns:1fr;padding:36px 28px 30px}.page-hero h1{font-size:clamp(2.4rem,4.6vw,4.2rem)}.anchor-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.anchor-tabs a{font-family:var(--sans);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--line);padding:8px 11px;background:#fff;color:var(--brown-deep)}.anchor-tabs a:hover{border-color:var(--brown);color:var(--brown)}.timeline{display:grid;gap:14px}.entry{display:grid;grid-template-columns:190px 1fr;gap:22px;border-bottom:1px solid var(--line);padding:16px 0}.entry .date{font-family:var(--sans);font-size:.72rem;letter-spacing:.12em;color:var(--brown);text-transform:uppercase;padding-top:2px}.entry h3{font-family:var(--tc);font-size:1.02rem;line-height:1.55;font-weight:500;color:#201a16}.entry p{font-size:.9rem;color:var(--muted);line-height:1.65;margin-top:3px}.entry .sub{font-family:var(--serif);font-style:italic;color:#50463e}.list-columns{display:grid;grid-template-columns:1fr 1fr;gap:26px}.service-list{display:grid;gap:11px}.service-list li{list-style:none;padding-left:18px;position:relative;color:#302822;line-height:1.65}.service-list li::before{content:'•';position:absolute;left:0;color:var(--brown)}.pub-list{display:grid;gap:0}.pub-item{border-bottom:1px solid var(--line);padding:15px 0}.pub-item p{font-size:.94rem;line-height:1.72;color:#2d251f}.pub-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px}.pub-tag{font-family:var(--sans);font-size:.58rem;letter-spacing:.13em;text-transform:uppercase;color:var(--sage);border:1px solid rgba(88,105,79,.30);padding:3px 7px}.pub-actions{display:flex;gap:11px;flex-wrap:wrap;margin-top:8px}.project-list{display:grid;gap:0}.project-item{display:grid;grid-template-columns:78px 1fr;gap:18px;border-bottom:1px solid var(--line);padding:14px 0}.project-year{font-family:var(--sans);font-size:.76rem;letter-spacing:.14em;color:var(--brown)}.project-title-zh{font-size:.98rem;font-weight:500;color:#211b17;line-height:1.55}.project-title-en{font-family:var(--serif);font-style:italic;font-size:.96rem;color:#4e443c;line-height:1.5;margin-top:3px}.project-period{font-family:var(--sans);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sage);margin-top:5px}.pdf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.pdf-card{border:1px solid var(--line);background:#fff;padding:15px}.pdf-card h3{font-family:var(--serif);font-size:1.12rem;font-weight:500;color:var(--brown-deep);line-height:1.25}.pdf-card p{font-family:var(--sans);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);margin-top:7px}.image-archive{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.image-archive a{border:1px solid var(--line);background:#fff;padding:8px;display:flex;align-items:center;justify-content:center;min-height:90px}.image-archive img{max-height:100px;object-fit:contain}.cert-card{display:grid;grid-template-columns:150px 1fr;gap:22px;align-items:center}.cert-card img{border:1px solid var(--line);background:#fff;box-shadow:0 10px 20px rgba(45,31,22,.08)}.site-footer{border-top:1px solid var(--line);background:var(--cream);margin-top:30px}.footer-inner{max-width:1180px;margin:auto;padding:28px;display:flex;justify-content:space-between;gap:20px;color:#3b312b;font-size:.86rem}.footer-links{display:flex;gap:15px;font-family:var(--sans);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase}.footer-links a{color:var(--brown-deep)}.backtop{position:fixed;right:18px;bottom:18px;width:40px;height:40px;border:1px solid var(--line);background:rgba(255,255,255,.86);display:grid;place-items:center;color:var(--brown-deep);font-family:var(--sans)}.backtop:hover{background:var(--brown-deep);color:#fff}.small-note{font-size:.85rem;color:var(--muted);margin-top:8px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px}.spacer{height:18px}
@media(max-width:980px){.hero-inner{grid-template-columns:1fr;gap:28px}.profile-card{max-width:360px}.highlight-grid{grid-template-columns:1fr 1fr}.quick-grid{grid-template-columns:1fr 1fr}.intro-grid,.list-columns,.two-col{grid-template-columns:1fr}.pdf-grid{grid-template-columns:1fr 1fr}.image-archive{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.nav-inner{align-items:flex-start;flex-direction:column}.nav-links{justify-content:flex-start}.hero-inner,.page-hero .hero-inner,main,.section{padding-left:20px;padding-right:20px}.section-head{display:block}.highlight-grid,.quick-grid,.pdf-grid{grid-template-columns:1fr}.entry{grid-template-columns:1fr;gap:4px}.project-item{grid-template-columns:1fr;gap:4px}.book-card,.cert-card{grid-template-columns:1fr}.footer-inner{flex-direction:column}.image-archive{grid-template-columns:repeat(2,1fr)}h1.name-title{font-size:2.5rem}}

/* 2026 bilingual refresh: warm-white foundation with restrained deep-blue accents. */
:root{
  --navy:#20364b;
  --navy-soft:#eaf0f4;
  --warm-white:#fdfbf7;
}
body{background:var(--warm-white)}
.nav{border-top:4px solid var(--navy);background:rgba(253,251,247,.95)}
.brand,.section-title,.info-card h3,.content-card h3,.research-card h3,.book-card h3{color:var(--navy)}
.nav-links a.active{color:var(--navy);font-weight:600}
.nav-links a.active::after,.nav-links a:hover::after{background:var(--navy)}
.nav-links a.language-link{padding:7px 11px;border:1px solid var(--navy);color:var(--navy);letter-spacing:.08em;border-radius:999px}
.nav-links a.language-link::after{display:none}
.nav-links a.language-link:hover{background:var(--navy);color:#fff}
.page-hero{background:linear-gradient(180deg,var(--warm-white) 0%,#f6f0e7 100%)}
.anchor-tabs a{background:var(--warm-white)}
.anchor-tabs a:hover{border-color:var(--navy);color:var(--navy)}
.button:hover,.backtop:hover{background:var(--navy);border-color:var(--navy)}
.site-footer{background:#f6f0e7;border-top:3px solid var(--navy)}
.footer-links a{color:var(--navy)}
.recent-pub{background:linear-gradient(90deg,rgba(32,54,75,.07),rgba(253,251,247,.12));border-left:3px solid var(--navy);padding-left:16px;padding-right:12px}
.latest-chip{display:inline-block;font-family:var(--sans);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:var(--navy);padding:3px 8px;margin-bottom:7px}
.translation-note{font-size:.86rem;color:var(--muted);margin-top:5px}
@media(max-width:720px){.nav-links a.language-link{padding:6px 10px}}
