:root{--paper:#ffffff;--white:#fff;--ink:#252525;--muted:#666666;--line:#e3e3e3;--accent:#a34436;--pale:#f8efed;--sans:'Microsoft YaHei','PingFang SC','Noto Sans CJK SC','Heiti SC',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px}a{color:inherit;text-underline-offset:4px}button,input,select{font:inherit}button,a,select,input{outline-offset:5px}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent)}::selection{background:#f0d9d4;color:#6d2c22}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{background:#c9b4af}::-webkit-scrollbar-track{background:var(--paper)}[hidden]{display:none!important}.skip{position:absolute;top:-100px;background:var(--paper);z-index:5;padding:16px}.skip:focus{top:0}.masthead{height:104px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 48px}.brand{display:flex;gap:17px;align-items:center;text-decoration:none;font-family:var(--sans);font-size:23px;letter-spacing:2px}.brand small{display:block;font:11px var(--sans);letter-spacing:2.3px;margin-top:9px;color:var(--muted)}.mast-right{display:flex;gap:40px;color:var(--muted);font-size:12px}#sync::before{content:'';display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-right:8px}#sync.offline::before{background:#a66a37}.shell{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:calc(100vh - 104px)}.sidebar{border-right:1px solid var(--line);padding:35px 24px 28px 32px}.side-title{font-size:12px;color:var(--muted);margin-bottom:22px}.side-title span{display:block;font-size:11px;letter-spacing:1.8px;margin-top:7px}nav{display:grid;gap:5px}.nav-item{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:0;padding:11px 12px;text-align:left;color:var(--muted);font-size:13px}.nav-item.active{background:var(--pale);color:var(--accent)}.nav-item:hover{color:var(--ink);background:#f8f4f3}.nav-item span{font-size:11px;font-variant-numeric:tabular-nums}.tree-label{border-top:1px solid var(--line);padding-top:26px;margin-top:30px;font-size:11px;color:var(--muted)}#tree{margin-top:15px}details{font-size:12px;color:var(--muted)}summary{padding:7px 0;cursor:pointer}details details{margin-left:11px}.tree-file{display:block;width:100%;border:0;background:none;color:var(--muted);text-align:left;padding:6px 3px 6px 12px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:11px}.tree-file:hover,.tree-file.selected{color:var(--accent);background:var(--pale)}.sidebar footer{border-top:1px solid var(--line);margin-top:35px;padding-top:20px;font:12px/2 var(--sans);color:var(--muted)}.sidebar footer span{font:11px var(--sans)}.text-button{background:none;border:0;padding:6px 0;color:var(--accent);font-size:12px}.text-button:hover{text-decoration:underline;text-underline-offset:4px}main{padding:32px 40px 36px;min-width:0}.page-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px}h1{font:500 32px/1.3 var(--sans);margin:0;letter-spacing:1px}.summary{font:12px/1.9 var(--sans);color:var(--muted);text-align:right;white-space:pre-line}.toolbar{display:flex;gap:20px;align-items:center;padding:12px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}.search{display:flex;align-items:center;gap:12px;flex:1;min-width:120px}.search svg{width:18px;fill:none;stroke:var(--muted);stroke-width:1.5}.search input{border:0;background:none;min-width:0;width:100%;padding:8px 0;color:var(--ink);font-size:13px}.search input::placeholder{color:var(--muted)}kbd{border:1px solid var(--line);padding:2px 6px;color:var(--muted)}.filter-label{color:var(--muted);font-size:11px;display:flex;align-items:center;gap:8px}.filter-label select{color:var(--ink);background:none;border:0;max-width:145px;padding:7px 0;font-size:12px}.section-line{display:flex;justify-content:space-between;align-items:center;margin:22px 0 3px}.section-line h2{font:normal 16px var(--sans);margin:0}.section-line span{font-size:11px;color:var(--muted)}.entry{display:grid;grid-template-columns:48px minmax(0,1fr) 100px;gap:16px;border-bottom:1px solid var(--line);padding:14px 0}.entry-id{color:var(--muted);font-size:11px;letter-spacing:1px;padding-top:7px;font-variant-numeric:tabular-nums}.entry h3{font:500 18px/1.4 var(--sans);margin:0 0 5px}.entry h3 button{font:inherit;background:none;border:0;text-align:left;padding:0;color:var(--ink)}.entry h3 button:hover{color:var(--accent);text-decoration:underline;text-underline-offset:6px}.entry p{color:var(--muted);line-height:1.65;margin:0;max-width:none;font-size:13px}.entry-meta{display:flex;gap:16px;flex-wrap:wrap;margin-top:6px;color:var(--muted);font-size:11px}.entry-action{text-align:right;padding-top:7px}.status{display:block;font-size:11px;color:var(--muted);margin-bottom:6px}.has-pitch{color:var(--accent)}.file-row{padding:22px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px}.file-row button{border:0;background:none;padding:0;font:18px var(--sans);text-align:left;color:var(--ink)}.file-row p{font-size:11px;color:var(--muted);margin:9px 0 0;overflow-wrap:anywhere}.file-row time{font-size:11px;color:var(--muted);white-space:nowrap}.empty{padding:65px 0;text-align:center;color:var(--muted);line-height:2}.reader-bar{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 0 18px}.reader-bar>div{display:flex;gap:24px}.file-path{font-size:11px;color:var(--muted);overflow-wrap:anywhere;margin-top:27px}.read-meta{font-size:11px;color:var(--muted);margin:15px 0 36px}article{max-width:780px;margin:auto;font:16px/2 var(--sans);overflow-wrap:anywhere}article h1{font-size:34px;margin:30px 0}article h2{font:normal 25px/1.5 var(--sans);margin:44px 0 20px}article h3{font-size:19px;line-height:1.6;margin:32px 0 14px}article h4{font-size:17px}article p{margin:0 0 20px}article table{border-collapse:collapse;display:block;overflow-x:auto;font:13px/1.8 var(--sans);margin:25px 0;width:100%}article th,article td{border-bottom:1px solid var(--line);padding:12px 16px;text-align:left;min-width:90px}article th{background:var(--pale);font-weight:500}article pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f6f6f6;padding:20px;font:12px/1.8 var(--sans)}article code{font-size:.86em}article blockquote{margin:24px 0;padding:0 22px;border-left:1px solid var(--accent);color:var(--muted)}article a{color:var(--accent)}article li{margin:7px 0}#read-end{max-width:780px;margin:65px auto 0;border-top:1px solid var(--line);padding-top:20px;color:var(--muted);font-size:11px}#message{color:#8a4a2a;font-size:12px;line-height:1.8}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:12px 22px;display:none;font-size:12px}@media(min-width:1600px){main{padding-left:48px;padding-right:48px}}@media(max-width:1000px){.masthead{padding:0 25px}.mast-right>span:first-child{display:none}.shell{grid-template-columns:195px minmax(0,1fr)}.sidebar{padding:30px 16px}main{padding:35px 28px}.entry{grid-template-columns:48px minmax(0,1fr);gap:12px}.entry-action{grid-column:2;text-align:left;padding-top:0;display:flex;gap:18px;align-items:center}.status{margin:0}.entry-action button{padding:0}.toolbar{gap:10px}.filter-label{display:block}.filter-label select{display:block}.summary{font-size:11px}}@media(max-width:650px){.masthead{height:83px;padding:0 19px}.brand{font-size:18px;gap:12px}.brand small{font-size:11px;letter-spacing:1.1px}.mast-right{font-size:11px}.shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:12px 18px}.side-title,.tree-label,#tree,.sidebar footer{display:none}nav{display:flex;overflow:auto;gap:8px}.nav-item{white-space:nowrap;gap:12px;width:auto;font-size:12px;padding:9px}.page-top{display:block;margin-bottom:25px}main{padding:30px 21px}h1{font-size:32px}.summary{text-align:left;margin-top:17px}.toolbar{flex-wrap:wrap}.search{flex-basis:100%}.filter-label{display:flex}.filter-label select{max-width:155px}.entry{padding:12px 0}.entry h3{font-size:18px}.entry p{font-size:12px}.entry-id{font-size:11px}.reader-bar>div{gap:16px}article{font-size:15px}article h1{font-size:27px}.file-row time{display:none}.file-row button{font-size:17px}}

/* All text, including raw-source view, follows the requested sans-serif family. */
kbd,code,pre{font-family:var(--sans)}

/* User refinement: title, quiet navigation, and direction-based browsing. */
.brand{font-size:28px;font-weight:500;letter-spacing:.4px}
.page-top{justify-content:flex-end;margin-bottom:8px}
.page-top .summary{margin:0 0 12px}
.toolbar{border-top:0}
.direction-option{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:9px 10px;background:none;border:0;text-align:left;color:var(--muted);font-size:12px;line-height:1.5}
.direction-option span:last-child{font-size:11px;font-variant-numeric:tabular-nums}
.direction-option:hover{background:#faf7f6;color:var(--accent)}
.direction-option.active{background:var(--pale);color:var(--accent)}
@media(max-width:650px){
 .brand{font-size:23px}
 .brand small{font-size:10px;letter-spacing:.8px}
 nav{flex-wrap:wrap;overflow:visible;gap:4px}
 .page-top{display:flex;margin-bottom:6px}
 .page-top .summary{margin:0 0 10px;text-align:left;width:100%}
}

@media(min-width:651px){.shell{align-items:start}.sidebar{position:sticky;top:0;height:calc(100vh - 104px);overflow-y:auto}}

/* Download and browser-local favorites */
.entry-tools{display:flex;justify-content:flex-end;gap:14px;align-items:center;margin-top:5px}
.entry-tools .text-button{white-space:nowrap;padding:3px 0;font-size:11px}
.favorite-button[aria-pressed="true"]{font-weight:600;text-decoration:underline;text-underline-offset:4px}
.text-button:disabled{opacity:.5;cursor:wait}
.reader-bar{flex-wrap:wrap;gap:12px}.reader-bar>div{flex-wrap:wrap;align-items:center;gap:18px}
#topic-actions .entry-tools{margin:0;gap:18px}
@media(max-width:1000px){.entry-action{flex-wrap:wrap;gap:10px 18px}.entry-tools{margin-top:0;justify-content:flex-start}}

.brief-filters{display:flex;flex-wrap:wrap;gap:10px 26px;padding:20px 0 14px;border-bottom:1px solid var(--line)}
.brief-tab{display:flex;align-items:center;gap:9px;border:0;background:none;color:var(--muted);padding:5px 0;font-size:13px;line-height:1.6}
.brief-tab span{font-size:11px;font-variant-numeric:tabular-nums}
.brief-tab:hover,.brief-tab.active{color:var(--accent)}
.brief-tab.active{font-weight:600;text-decoration:underline;text-underline-offset:7px}
@media(max-width:650px){.brief-filters{gap:10px 20px}.brief-tab{font-size:12px}}

/* Academic refinement: hairline states, Song-style headings, unchanged body face. */
:root{--heading:'STZhongsong','Noto Serif SC','Songti SC','SimSun',serif;--line:#e2dedb}
.brand,h1,h2,h3,h4,h5,h6,.entry h3,.section-line h2,.file-row button,article h2{font-family:var(--heading);font-weight:700}
.brand{font-size:30px;letter-spacing:1px;line-height:1.35}
.brand small{font-family:var(--sans);font-weight:400;letter-spacing:1.7px;margin-top:7px}
.masthead{border-bottom-color:#c9c2bd}
.side-title{margin-bottom:18px}.side-title span{letter-spacing:1.1px;color:#77706b}
.nav-item{position:relative;padding:10px 0;border-bottom:1px solid transparent}
.nav-item.active,.nav-item:hover{background:transparent;color:var(--accent)}
.nav-item.active{border-bottom-color:var(--accent)}
.nav-item span{color:var(--muted)}
.direction-option{position:relative;padding:8px 0;border-bottom:1px solid transparent}
.direction-option:hover,.direction-option.active{background:transparent;color:var(--accent)}
.direction-option.active{border-bottom-color:var(--accent)}
.direction-option.active span:first-child{font-weight:500}
.direction-option span:last-child{color:var(--muted)}
.tree-file:hover,.tree-file.selected{background:transparent;text-decoration:underline;text-decoration-thickness:1px}
.tree-label{padding-top:22px;margin-top:24px;letter-spacing:.4px}
.sidebar footer{font-size:11px;line-height:2.1}
.toolbar{border-bottom-color:#c9c2bd;padding-top:8px;padding-bottom:10px}
.search svg{stroke-width:1}
kbd{background:transparent;border-color:#ded9d5;font-size:11px;padding:1px 6px}
.brief-filters{padding:13px 0 0;gap:8px 26px}
.brief-tab{padding:8px 0 12px;border-bottom:1px solid transparent;margin-bottom:-1px}
.brief-tab.active{font-weight:500;text-decoration:none;border-bottom-color:var(--accent)}
.section-line{margin:22px 0 5px}.section-line h2{font-size:17px;letter-spacing:.5px}
.entry h3{font-size:20px;line-height:1.4;margin-bottom:5px}
.entry h3 button:hover{text-decoration-thickness:1px}
.entry{padding:15px 0;border-bottom-color:var(--line)}
.entry-id{letter-spacing:.6px;color:#77706b}
.entry-meta{column-gap:14px;row-gap:4px;line-height:1.7}
.text-button:hover,.favorite-button[aria-pressed="true"]{text-decoration-thickness:1px}
article h1{letter-spacing:.6px}article h2{letter-spacing:.3px}
article th{background:transparent;font-weight:600;border-top:1px solid #c9c2bd}
article pre{background:transparent;border:1px solid var(--line)}
article blockquote{border-left-color:#c9c2bd}
#toast{background:#fff;color:var(--ink);border:1px solid #c9c2bd}
::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{background:#c9c2bd}
@media(max-width:650px){.brand{font-size:25px}.brand small{font-size:10px;letter-spacing:1px}.nav-item{padding:8px 0;margin-right:18px}.entry h3{font-size:19px}.section-line{margin-top:20px}.brief-filters{gap:8px 20px}.brief-tab{padding-bottom:11px}}

/* Same typeface and weight as yashi.genle.win headings; self-hosted. */
@font-face{font-family:ResearchSerif;src:url('./fonts/SourceHanSerifCN-Heavy.woff2') format('woff2');font-weight:900;font-style:normal;font-display:swap}
:root{--heading:ResearchSerif,'Source Han Serif SC','Source Han Serif CN','Noto Serif CJK SC',SimSun,serif}
.brand,h1,h2,h3,h4,h5,h6,.entry h3,.section-line h2,.file-row button,article h2{font-family:var(--heading);font-weight:900}
