/* Shared editorial rhythm, distinct technical and literary reading surfaces. */
:root{--reading-width:720px;--page-width:1120px}
html[data-theme=dark]{--bg:#171817;--surface:#20221f;--soft:#282b26;--ink:#e8e7e1;--muted:#b2b3ac;--line:#353731;--accent:#dda68c;--header:rgba(23,24,23,.94)}
main{padding-top:3.5rem;padding-bottom:5rem}
.home,.about-page,.research-page,.projects-page,.writing-page,.blog-page,.technical-page,.teaching-page,.cv-page,.links-page,.policy-page,.literary-page,.project-detail,.research-detail{max-width:var(--page-width)}
.page-heading{margin:0 0 3rem;max-width:880px}
.page-heading h1{font:400 clamp(2.5rem,4.4vw,3.6rem)/1.15 Georgia,'Songti SC',serif;letter-spacing:-1.4px;text-wrap:balance;margin:0 0 1.35rem}
.page-heading .page-lead{font-size:1.125rem;line-height:1.8;max-width:740px;text-wrap:pretty}
html[lang=zh-CN] .page-heading h1{font-family:'Songti SC',Georgia,serif;font-size:clamp(2.35rem,4vw,3.15rem);line-height:1.4;letter-spacing:.3px}
.eyebrow{font-size:12px;line-height:1.6}
.work-meta,.article-meta,.status-label{font-size:13px;line-height:1.75}
.text-link{font-size:14px;line-height:1.6}
.header-controls{gap:18px}
.site-header nav{gap:24px;font-size:14px}
.theme-toggle{width:44px;height:44px;display:grid;place-items:center;flex-shrink:0;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);transition:color .2s,background .2s}
.theme-toggle:hover{color:var(--ink);background:var(--soft)}
.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.theme-glyph{display:block;animation:theme-glyph-in .25s ease-out}
.theme-glyph[hidden]{display:none}
.theme-glyph svg{display:block;width:21px;height:21px}
@keyframes theme-glyph-in{from{opacity:.4;transform:rotate(-12deg) scale(.85)}to{opacity:1;transform:rotate(0) scale(1)}}
.section{margin-top:4rem}
.section-heading{align-items:baseline;margin-bottom:1.8rem}
.section-heading h2{font:400 clamp(1.65rem,2.8vw,2.2rem)/1.35 Georgia,'Songti SC',serif}
.filter-bar{gap:9px;margin:0 0 1.5rem;flex-wrap:wrap}
.filter-button{font-size:14px;line-height:1.6;padding:8px 14px}
.research-row{grid-template-columns:230px minmax(0,1fr);gap:36px;align-items:center;padding:2rem 0}
.research-copy h3{font-size:26px;line-height:1.35;text-wrap:balance}
.research-copy>p:not(.work-meta){font-size:17px;line-height:1.8;max-width:690px}
.research-art{aspect-ratio:16/11;overflow:hidden;border-radius:7px}
.research-art img{aspect-ratio:16/11;height:100%;width:100%;object-fit:cover}
.project-grid{gap:30px}
.project-card{padding:30px;border-radius:8px;box-shadow:none;transition:border-color .25s,background .25s}
.project-card:hover{transform:none;border-color:var(--accent)}
.project-card-art{margin:-30px -30px 24px}
.project-card-art img{aspect-ratio:16/10;height:auto;width:100%;object-fit:cover}
.project-card h2,.project-card h3{font:400 29px/1.3 Georgia,'Songti SC',serif;text-wrap:balance}
.project-card>p{font-size:17px;line-height:1.85}
.about-intro{grid-template-columns:210px minmax(0,1fr);gap:55px;align-items:start;padding-bottom:1rem}
.about-portrait{width:210px;height:260px;border-radius:8px;background:var(--soft);object-fit:cover;object-position:50% 15%}
.about-intro p{font-size:19px;line-height:1.9}
.timeline-row{grid-template-columns:115px minmax(0,1fr);gap:35px;padding:22px 0}
.timeline-row h3{font-size:20px;line-height:1.5}
.timeline-row p{font-size:17px;line-height:1.8}
.note-panel{border-radius:8px;box-shadow:none}
.blog-page>.page-heading{padding-bottom:2rem;border-bottom:1px solid var(--line);margin-bottom:2.5rem}
.blog-feature{display:grid;grid-template-columns:1.05fr 1fr;gap:45px;align-items:center}
.blog-feature-art,.writing-feature-art{display:block;overflow:hidden;border-radius:8px}
.blog-feature-art img{display:block;width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;transition:transform .65s cubic-bezier(.22,1,.36,1)}
.blog-feature-copy .work-meta,.blog-entry .work-meta{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 19px}
.blog-feature-copy h2{font:400 clamp(1.9rem,3.1vw,2.5rem)/1.23 Georgia,'Songti SC',serif;letter-spacing:-.7px;text-wrap:balance;margin:0 0 20px}
.blog-feature-copy>p:not(.work-meta){font-size:18px;line-height:1.85;color:var(--muted);margin:0 0 24px}
.blog-feature-art:hover img{transform:scale(1.025)}
.blog-entry{display:grid;grid-template-columns:140px minmax(0,1fr) 200px;gap:30px;align-items:start;border-top:1px solid var(--line);padding:30px 0}
.blog-entry>div:first-child time{font:13px/1.8 Arial,'PingFang SC',sans-serif;color:var(--muted)}
.blog-entry h2{font:400 29px/1.35 Georgia,'Songti SC',serif;margin:0 0 15px;letter-spacing:-.4px;text-wrap:balance}
.blog-entry p:not(.work-meta){font-size:17px;line-height:1.8;color:var(--muted)}
.blog-entry-art img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:6px}
.technical-digest .essay-list{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.technical-digest .essay-card h3{font:400 27px/1.4 Georgia,'Songti SC',serif}
.literary-links{display:grid;margin-top:22px}
.literary-links a{font:400 22px/1.5 Georgia,'Songti SC',serif;border-top:1px solid var(--line);padding:14px 0}
.writing-feature{display:grid;grid-template-columns:1fr 1.08fr;gap:48px;align-items:center;margin-top:10px}
.writing-feature-copy h2{font:400 clamp(2.6rem,4.4vw,3.6rem)/1.2 Georgia,'Songti SC',serif;letter-spacing:-1px;margin:15px 0 24px}
.writing-feature-copy .novel-lead{font-size:21px;line-height:1.7;color:var(--ink);margin:0 0 20px}
.writing-feature-copy>p:not(.eyebrow):not(.novel-lead){font-size:17px;line-height:1.9;color:var(--muted);margin:0 0 25px}
.writing-feature-art img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.writing-notebook{display:grid;grid-template-columns:210px 1fr;gap:50px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:55px 0 20px;padding:30px 0}
.writing-notebook h2{font:400 30px/1.4 Georgia,'Songti SC',serif;margin:0 0 12px}
.writing-notebook p:not(.work-meta):not(.eyebrow){font-size:18px;line-height:1.85;color:var(--muted);margin:0 0 15px}
.journal-section{margin-top:3.5rem}
.journal-feature{gap:40px}
.journal-card p{font-size:17px;line-height:1.8}
.journal-card-meta,.journal-feature time{font-size:13px;line-height:1.7}
.technical-page{max-width:1100px}
.technical-header{max-width:900px;margin:25px auto 35px;text-align:center}
.technical-header .page-heading{max-width:none;margin-bottom:25px}
.technical-header .page-heading h1{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;font-weight:550;font-size:clamp(2.15rem,3.8vw,3.1rem);line-height:1.18;letter-spacing:-1.25px}
.technical-header .page-lead{margin:20px auto;max-width:720px;font-size:19px}
.technical-byline{display:flex;justify-content:center;gap:8px 17px;flex-wrap:wrap;font:13px/1.8 Arial,'PingFang SC',sans-serif;color:var(--muted)}
.technical-cover{margin:0 0 50px}
.technical-cover img{display:block;width:100%;height:auto;aspect-ratio:2.35/1;object-fit:cover;border-radius:7px}
.technical-cover figcaption{font:12px/1.7 Arial,'PingFang SC',sans-serif;color:var(--muted);margin-top:12px;text-align:right}
.technical-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:65px;align-items:start}
.technical-sidebar{position:sticky;top:104px;padding-top:10px}
.technical-sidebar nav{display:grid;margin:18px 0 24px;gap:3px}
.technical-sidebar nav a{display:flex;gap:12px;padding:11px 0;font:14px/1.65 Arial,'PingFang SC',sans-serif;color:var(--muted);border-bottom:1px solid transparent}
.technical-sidebar nav a:hover,.technical-sidebar nav a[aria-current=location]{color:var(--ink);border-bottom-color:var(--line)}
.technical-sidebar .toc-number{color:var(--accent);font-size:12px}
.technical-content{max-width:var(--reading-width);min-width:0}
.technical-body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif}
.technical-body section{padding:0;scroll-margin-top:110px;margin-bottom:40px}
.technical-body section+section{margin-top:0}
.technical-body section h2{font:550 27px/1.4 -apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;margin:0 0 18px;letter-spacing:-.3px}
.technical-body section p{font-size:18px;line-height:1.9;margin:0}
.technical-content .community-section{scroll-margin-top:110px}
.literary-page>.page-heading{max-width:800px;text-align:center;margin:1rem auto 3rem}
.literary-page>.article-body,.policy-page>.article-body{max-width:var(--reading-width);margin-inline:auto}
.literary-page>.breadcrumb{display:block;margin-bottom:22px}
.literary-page .community-section{max-width:var(--reading-width);margin-inline:auto}
.project-detail .project-cover,.research-detail .project-cover{max-width:none;margin:30px 0 45px}
.project-detail .project-cover img,.research-detail .project-cover img{aspect-ratio:2/1;max-height:500px}
.project-detail>.article-body,.research-detail>.article-body:not(.case-body){margin-inline:auto;max-width:760px}
.project-detail .large-diagram,.research-detail .large-diagram{margin-inline:auto}
.teaching-page .teaching-material{padding:32px 0}
.teaching-page .teaching-material>h3{font-size:28px;line-height:1.4}
.teaching-page .teaching-material>p:not(.work-meta){font-size:17px;line-height:1.9}
.cv-sheet{max-width:940px;margin:0 auto;padding:40px 50px;background:var(--bg);border:1px solid var(--line);border-radius:7px}
.cv-sheet h2{font:400 36px/1.4 Georgia,'Songti SC',serif;margin:0 0 14px}
.cv-sheet h3{border-top:1px solid var(--line);padding-top:23px;margin-top:30px;font:550 19px/1.5 Arial,'PingFang SC',sans-serif}
.cv-sheet li,.cv-sheet p{font-size:16px;line-height:1.9}
.cv-sheet a{overflow-wrap:anywhere}
.cv-actions{margin-bottom:30px}
.links-page .link-list{max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:20px}
.links-page .link-list>a{display:flex;align-items:center;gap:22px;border:1px solid var(--line);border-radius:7px;padding:26px;background:var(--surface)}
.links-page .link-list h2{font:400 26px/1.4 Georgia,'Songti SC',serif;margin:0}
.links-page .link-list p{overflow-wrap:anywhere}
.community-section{scroll-margin-top:105px}
.comment-form label{font-size:14px}
.comment-form input,.comment-form textarea{font-size:16px}
.published-page .essay-header>.eyebrow,.essay-toolbar,.essay-author-card .eyebrow{font-size:12px}
.published-page .essay-sidebar .essay-toc a{font-size:14px}
html[data-theme=dark] .tool-method,html[data-theme=dark] .case-paper{background:var(--surface);color:var(--ink)}
@media(max-width:900px){
  .blog-feature,.writing-feature{gap:28px}
  .blog-entry{grid-template-columns:110px minmax(0,1fr);gap:24px}
  .blog-entry-art{display:none}
  .technical-layout{grid-template-columns:1fr;gap:35px}
  .technical-sidebar{position:static;padding:0;border-bottom:1px solid var(--line)}
  .technical-sidebar nav{display:flex;flex-wrap:wrap;gap:10px 22px;margin:12px 0 22px}
  .technical-sidebar .text-link{display:none}
  .technical-content{max-width:var(--reading-width);margin-inline:auto;width:100%}
}
@media(max-width:640px){
  main{padding:30px 24px 60px}
  .page-heading{margin-bottom:32px}
  .page-heading h1,html[lang=zh-CN] .page-heading h1{font-size:34px;letter-spacing:-.3px;line-height:1.35}
  .page-heading .page-lead{font-size:17px;line-height:1.85}
  .header-controls{gap:7px}
  .theme-toggle{width:40px;height:40px}
  .research-row{grid-template-columns:1fr;gap:21px}
  .research-art{aspect-ratio:16/10}
  .research-copy h3{font-size:25px}
  .project-card-art{margin:-30px -30px 22px}
  .project-card h2,.project-card h3{font-size:28px}
  .about-intro{grid-template-columns:1fr;gap:26px}
  .about-portrait{width:150px;height:190px}
  .about-intro p{font-size:18px}
  .timeline-row{grid-template-columns:1fr;gap:10px}
  .blog-feature,.writing-feature{grid-template-columns:1fr;gap:27px}
  .blog-feature-copy h2{font-size:29px;line-height:1.4}
  .blog-entry{grid-template-columns:1fr;gap:18px;padding:26px 0}
  .blog-entry>div:first-child{display:flex;gap:16px;align-items:baseline}
  .blog-entry>div:first-child .work-meta{margin:0}
  .blog-entry h2{font-size:26px}
  .technical-digest .essay-list{grid-template-columns:1fr;gap:0}
  .writing-feature-copy h2{font-size:39px}
  .writing-feature-copy .novel-lead{font-size:20px}
  .writing-feature-art{grid-row:1}
  .writing-notebook{grid-template-columns:1fr;gap:17px;margin-top:38px;padding:26px 0}
  .writing-notebook .work-meta{margin-bottom:0}
  .journal-feature{gap:25px}
  .technical-header{margin-top:12px}
  .technical-header .page-heading h1{font-size:31px;line-height:1.35;letter-spacing:-.5px}
  .technical-header .page-lead{font-size:17px}
  .technical-cover{margin-bottom:30px}
  .technical-cover img{aspect-ratio:16/10}
  .technical-body section h2{font-size:24px}
  .technical-body section p{font-size:17px;line-height:1.9}
  .technical-sidebar nav a{font-size:13px}
  .project-detail .project-cover img,.research-detail .project-cover img{aspect-ratio:4/3}
  .cv-sheet{padding:25px 22px}
  .cv-sheet h2{font-size:31px}
  .links-page .link-list{grid-template-columns:1fr;gap:15px}
  .links-page .link-list>a{padding:22px}
}
@media(prefers-reduced-motion:reduce){.theme-glyph{animation:none}.theme-toggle,.project-card,.blog-feature-art img{transition:none}}
@media print{.theme-toggle,.technical-sidebar,.technical-cover{display:none}.technical-layout{display:block}.cv-sheet{padding:0;border:0;background:white;color:black}main{padding:0}.page-heading{margin-bottom:25px}}
