:root{--paper:#faf8f3;--panel:#f2efe6;--ink:#2b3230;--muted:#656d6a;--faint:#949c98;--hairline:#e5e1d6;--green:#4f8377;--green-soft:#dcebe5;--sky:#5a7f9c;--sky-soft:#dde7ef;--clay:#c07b58;--clay-soft:#f6e4d8;--accent:var(--green);--accent-soft:var(--green-soft);--sans:"Zen Kaku Gothic New", -apple-system, "Hiragino Sans", sans-serif;--serif:"Zen Old Mincho", serif}html[lang=zh-Hant]{--sans:"Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;--serif:"Noto Serif TC", "PingFang TC", serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;font-size:18px;font-weight:300;line-height:1.85}img{max-width:100%;height:auto;display:block}.wrap{max-width:900px;margin:0 auto;padding-left:2rem;padding-right:2rem}.topnav{z-index:20;backdrop-filter:blur(12px);border-bottom:1px solid var(--hairline);background:#faf8f3eb;position:sticky;top:0}.nav-inner{justify-content:space-between;align-items:center;gap:1.5rem;max-width:1180px;height:74px;margin:0 auto;padding:0 1.75rem;display:flex}.brand{flex-shrink:0;align-items:center;display:flex}.brand-logo{width:auto;height:54px}.nav-links{scrollbar-width:none;gap:1.3rem;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.nav-links::-webkit-scrollbar{display:none}.nav-links a{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);white-space:nowrap;border-bottom:2px solid #0000;padding:.35rem 0;font-size:.78rem;text-decoration:none;transition:color .25s,border-color .25s}html[lang=zh-Hant] .nav-links{gap:2rem}html[lang=zh-Hant] .nav-links a{letter-spacing:.12em;text-transform:none;align-items:center;gap:.4rem;font-size:1.02rem;display:flex}.nav-ico{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:16px;height:16px}.nav-links a:hover{color:var(--ink)}.nav-links a.is-current{color:var(--green);border-bottom-color:var(--green)}.lang-switch{letter-spacing:.08em;color:var(--green);border:1px solid var(--green-soft);background:var(--green-soft);border-radius:999px;flex-shrink:0;padding:.3rem .85rem;font-size:.78rem;text-decoration:none;transition:background .25s}.lang-switch:hover{background:0 0}.hero-band{background:radial-gradient(120% 90% at 12% 0%, var(--green-soft) 0%, transparent 58%), radial-gradient(90% 80% at 92% 18%, var(--clay-soft) 0%, transparent 55%), var(--panel);border-bottom:1px solid var(--hairline)}.hero{grid-template-columns:1fr 270px;grid-template-areas:"text portrait""lower lower";align-items:center;column-gap:3rem;padding-top:4.5rem;padding-bottom:4.5rem;scroll-margin-top:90px;display:grid}.hero-text{grid-area:text}.hero-lower{grid-area:lower}.portrait{border-radius:6px;grid-area:portrait;margin:0;overflow:hidden;box-shadow:0 12px 32px #2b32301f}.portrait img{width:100%}.eyebrow{font-family:var(--serif);letter-spacing:.06em;color:var(--green);margin:0 0 1.25rem;font-size:.95rem;line-height:1.5}h1{font-family:var(--serif);letter-spacing:.03em;margin:0;font-size:clamp(2.6rem,6.5vw,3.9rem);font-weight:400;line-height:1.2}html[lang=zh-Hant] h1{font-size:clamp(2.1rem,5vw,3rem)}.name-sub{white-space:nowrap;color:var(--muted);letter-spacing:.01em;font-size:.66em}.role{color:var(--muted);letter-spacing:.02em;margin:1rem 0 0;font-size:1.02rem;line-height:1.75}.role.secondary{color:var(--faint);margin-top:.4rem;font-size:.92rem}.bio{color:#3c4341;max-width:66ch;margin:3rem 0 0;font-size:1.02rem}.tags{flex-wrap:wrap;gap:.55rem;margin:2.25rem 0 0;padding:0;list-style:none;display:flex}.tag{letter-spacing:.02em;border-radius:999px;padding:.35rem .95rem;font-size:.86rem}.tag.tint-0{background:var(--green-soft);color:#3d6b60}.tag.tint-1{background:var(--clay-soft);color:#9c5f3f}.tag.tint-2{background:var(--sky-soft);color:#43647e}.contact{color:var(--muted);border-top:1px solid #00000014;margin:2.5rem 0 0;padding:2rem 0 0;font-size:.92rem;list-style:none}.contact li{align-items:center;gap:.65rem;margin:.5rem 0;display:flex}.ico{fill:none;width:17px;height:17px;stroke:var(--green);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}section{padding-top:5.5rem;scroll-margin-top:90px}h2{font-family:var(--serif);letter-spacing:.05em;border-top:2px solid var(--accent);align-items:baseline;gap:.7rem;margin:0 0 2.25rem;padding-top:1.3rem;font-size:1.6rem;font-weight:400;display:flex}h2:before{content:"";background:var(--accent);border-radius:2px;flex-shrink:0;width:9px;height:9px}h3{font-family:var(--serif);letter-spacing:.04em;color:var(--muted);margin:3.5rem 0 1.75rem;font-size:1.18rem;font-weight:400}.c-green{--accent:var(--green);--accent-soft:var(--green-soft)}.c-sky{--accent:var(--sky);--accent-soft:var(--sky-soft)}.c-clay{--accent:var(--clay);--accent-soft:var(--clay-soft)}.rows{margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--hairline);grid-template-columns:10.5rem 1fr;gap:1.6rem;padding:1.5rem 0;display:grid}.row:last-child{border-bottom:none}.row[hidden]{display:none}.row-when{font-family:var(--serif);letter-spacing:.03em;color:var(--accent);padding-top:.2rem;font-size:.94rem;line-height:1.7}.row-what{min-width:0}.row-title{margin:0;font-size:1.05rem;font-weight:500;line-height:1.65}.row-sub{color:var(--muted);margin:.2rem 0 0;font-size:.95rem;line-height:1.7}.cards .row{background:var(--accent-soft);border-bottom:none;border-radius:4px;margin-bottom:1rem;padding:1.5rem 1.6rem}.cards .row-when{color:#3d6b60}.timeline{margin:0;padding:0 0 0 2.1rem;list-style:none;position:relative}.timeline:before{content:"";background:linear-gradient(to bottom, var(--accent) 0%, var(--accent) 55%, var(--hairline) 100%);width:2px;position:absolute;top:.7rem;bottom:.7rem;left:6px}.tl-item{padding-bottom:2.1rem;position:relative}.tl-item:last-child{padding-bottom:0}.tl-item:before{content:"";background:var(--paper);border:2px solid var(--accent);border-radius:50%;width:10px;height:10px;margin-left:2px;position:absolute;top:.85rem;left:-2.1rem}.tl-item.is-current:before{background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.tl-when{font-family:var(--serif);letter-spacing:.03em;color:var(--accent);font-size:.88rem}.tl-title{margin:.1rem 0 0;font-size:1.05rem;font-weight:500;line-height:1.6}.tl-org{color:var(--muted);margin:.1rem 0 0;font-size:.95rem;line-height:1.7}.filters{flex-wrap:wrap;gap:.5rem;margin:-.75rem 0 2rem;display:flex}.filter{letter-spacing:.03em;color:var(--muted);border:1px solid var(--hairline);cursor:pointer;background:0 0;border-radius:999px;padding:.35rem 1.05rem;font-family:inherit;font-size:.85rem;transition:background .2s,color .2s,border-color .2s}.filter:hover{border-color:var(--accent);color:var(--accent)}.filter.is-on{background:var(--accent);border-color:var(--accent);color:#fff}.cites .row{padding:1.7rem 0}.cite{color:#3c4341;margin:0;font-size:.99rem;line-height:1.78}.cite b{color:var(--ink);font-weight:500}.cite em{font-style:italic}html[lang=zh-Hant] .cite em{color:var(--ink);font-style:normal;font-weight:500}.cite-zh{color:var(--faint);margin:.35rem 0 0;font-size:.92rem;line-height:1.7}.badges{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.8rem 0 0;display:flex}.badges:empty{display:none}.doi{letter-spacing:.09em;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:.2rem .65rem;font-size:.74rem;text-decoration:none;transition:opacity .25s}.doi:hover{opacity:.65}.mark{letter-spacing:.05em;color:var(--muted);border:1px solid var(--hairline);border-radius:999px;padding:.2rem .65rem;font-size:.74rem}.mark.accentuate{color:#9c5f3f;background:var(--clay-soft);border-color:#0000}.mark.solid{color:#fff;background:var(--accent);border-color:#0000}.metrics{color:var(--faint);font-size:.8rem}a{color:var(--green)}.contact a{text-decoration:none}.contact a:hover{text-decoration:underline}.booklist{margin:0;padding:0;list-style:none}.book{background:var(--accent-soft);border-radius:6px;grid-template-columns:108px 1fr;align-items:start;gap:1.75rem;margin-bottom:1rem;padding:1.75rem;display:grid}.book-cover{border-radius:3px;width:108px;box-shadow:0 6px 18px #2b32302e}.book-year{font-family:var(--serif);letter-spacing:.04em;color:var(--accent);font-size:.9rem}.book-title{margin:.2rem 0 .7rem;font-size:1.05rem;font-weight:500;line-height:1.6}.book .cite{color:#46504d;font-size:.93rem}.gallery{grid-template-columns:repeat(2,1fr);gap:1.25rem;max-width:620px;margin:2.5rem 0 0;display:grid}.photo{margin:0}.photo img{aspect-ratio:3/2;object-fit:cover;border-radius:6px;width:100%}.photo figcaption{color:var(--faint);margin-top:.6rem;font-size:.8rem;line-height:1.6}.site-footer{background:var(--green-soft);border-top:1px solid #cfe0d9;margin-top:7rem}.foot-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 2rem;padding-top:1.6rem;padding-bottom:1.6rem;display:flex}.foot-inner p{color:#40655b;margin:0;font-size:.85rem}.foot-right{color:#4f8377}.to-top{z-index:30;background:var(--green);color:#fff;cursor:pointer;opacity:0;visibility:hidden;border:none;border-radius:50%;place-items:center;width:46px;height:46px;transition:opacity .3s,transform .3s,visibility .3s;display:grid;position:fixed;bottom:1.75rem;right:1.75rem;transform:translateY(10px);box-shadow:0 6px 20px #2b323038}.to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}.to-top:hover{background:#45746a}.to-top svg{fill:none;stroke:#fff;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}@media (width<=820px){.hero{grid-template-columns:1fr;grid-template-areas:"portrait""text""lower";justify-items:start;row-gap:2rem}.portrait{width:200px}.gallery{grid-template-columns:1fr;gap:1.75rem}}@media (width<=720px){body{font-size:17px}.wrap{padding-left:1.2rem;padding-right:1.2rem}.nav-inner{gap:.9rem;height:64px;padding:0 1.2rem}.brand-logo{height:42px}.hero{padding-top:3rem;padding-bottom:3.5rem}main{padding-bottom:3rem}section{padding-top:3.75rem}.row{grid-template-columns:1fr;gap:.45rem}.row-when{padding-top:0}.cards .row{padding:1.25rem 1.2rem}.book{grid-template-columns:84px 1fr;gap:1.15rem;padding:1.25rem}.book-cover{width:84px}.to-top{width:42px;height:42px;bottom:1.1rem;right:1.1rem}.lang-switch{padding:.25rem .7rem;font-size:.74rem}}@media (width>=721px){main{padding-bottom:6rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
