:root{--font-sans:"Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif:"Noto Serif SC", "Songti SC", "STSong", "SimSun", "Source Han Serif SC", Georgia, serif;--font-mono:ui-monospace, "Cascadia Mono", "SFMono-Regular", Menlo, Consolas, monospace;--measure:40rem;--container:68rem;--gutter:1.25rem;--radius:.5rem;--tap:2.75rem;--reader-size:1.125rem;--reader-leading:1.85;color-scheme:light;--bg:#fbfaf7;--bg-elevated:#fff;--ink:#1b1a17;--ink-soft:#4a4740;--ink-muted:#6b675e;--line:#e2ded4;--line-strong:#c9c3b6;--accent:#8a3b2c;--accent-ink:#fff;--focus:#1f5fbf;--danger:#a12d2d;--danger-bg:#fbeaea;--ok:#2b6a3b;--ok-bg:#e8f3ea;--warn:#7a5a12;--warn-bg:#fbf3dc;--shadow:0 1px 2px #14120c0f}:root[data-theme=sepia]{color-scheme:light;--bg:#f3ead8;--bg-elevated:#f8f1e2;--ink:#2a2118;--ink-soft:#4d4033;--ink-muted:#6f6152;--line:#dccfb6;--line-strong:#c3b393;--accent:#7e3a25;--focus:#1e4f9a}:root[data-theme=dark]{color-scheme:dark;--bg:#15161a;--bg-elevated:#1d1f25;--ink:#e6e3dc;--ink-soft:#c2beb4;--ink-muted:#9b978d;--line:#2c2f37;--line-strong:#414552;--accent:#e08a6a;--accent-ink:#15161a;--focus:#8ab4ff;--danger:#ff8f8f;--danger-bg:#3a2020;--ok:#8fd39f;--ok-bg:#1f3325;--warn:#f2cf6f;--warn-bg:#3a3118;--shadow:none}:root[data-font-size=s]{--reader-size:1rem}:root[data-font-size=m]{--reader-size:1.125rem}:root[data-font-size=l]{--reader-size:1.3125rem}:root[data-font-size=xl]{--reader-size:1.5rem}@media (width>=48rem){:root{--gutter:2rem}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-sans);color:var(--ink);background:var(--bg);overflow-wrap:anywhere;flex-direction:column;min-height:100dvh;margin:0;font-size:1rem;line-height:1.65;display:flex}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}img,svg{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration-color:var(--line-strong);text-underline-offset:.18em}a:hover{text-decoration-color:currentColor}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:2px}.skip-link{background:var(--accent);color:var(--accent-ink);z-index:100;border-radius:var(--radius);padding:.5rem .75rem;position:absolute;top:-100%;left:.5rem}.skip-link:focus{top:.5rem}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.site-header{border-bottom:1px solid var(--line);background:var(--bg);z-index:20;position:sticky;top:0}.site-header .container{justify-content:space-between;align-items:center;gap:1rem;min-height:3.5rem;display:flex}.brand{flex-direction:column;padding-block:.4rem;line-height:1.15;text-decoration:none;display:flex}.brand-zh{font-family:var(--font-serif);letter-spacing:.08em;font-size:1.35rem;font-weight:700}.brand-en{letter-spacing:.22em;color:var(--ink-muted);text-transform:uppercase;font-size:.7rem}.primary-nav ul{gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.primary-nav a{min-height:var(--tap);color:var(--ink-soft);border-radius:var(--radius);align-items:center;padding-inline:.75rem;font-size:1rem;text-decoration:none;display:inline-flex}.primary-nav a:hover{color:var(--ink);background:var(--bg-elevated)}.primary-nav a[aria-current=page]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent);border-radius:0;font-weight:600}.nav-secondary{display:none}@media (width>=40rem){.nav-secondary{display:inline-flex}}@media (width<=39.99rem){.primary-nav a{padding-inline:.55rem;font-size:.95rem}}main{flex:1;padding-block:1.5rem 3rem}.site-footer{border-top:1px solid var(--line);color:var(--ink-muted);padding-block:1.5rem 2.5rem;font-size:.875rem}.site-footer nav ul{flex-wrap:wrap;gap:.25rem 1rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.site-footer a{min-height:var(--tap);align-items:center;display:inline-flex}.site-footer p{margin:.25rem 0}h1,h2,h3,h4{font-family:var(--font-serif);text-wrap:balance;margin:0 0 .5em;font-weight:700;line-height:1.3}h1{font-size:clamp(1.6rem,4.5vw,2.25rem)}h2{font-size:clamp(1.3rem,3.4vw,1.6rem)}h3{font-size:1.15rem}p{margin:0 0 1em}.lede{color:var(--ink-soft);max-width:var(--measure);font-size:1.1rem}.muted{color:var(--ink-muted)}.small{font-size:.875rem}.prose{max-width:var(--measure)}.prose h2{margin-top:2rem}.prose h3{margin-top:1.5rem}.prose ul,.prose ol{padding-left:1.4em}.prose li{margin-bottom:.35em}.prose table{border-collapse:collapse;width:100%;font-size:.95rem}.prose th,.prose td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:.5rem .6rem}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.section{margin-block:2.25rem}.section-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem;padding-bottom:.5rem;display:flex}.section-head h2{margin:0}.section-head a{color:var(--ink-muted);white-space:nowrap;font-size:.9rem}.card-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}@media (width>=48rem){.card-list.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}}.card{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem}.card h3{margin:0 0 .35rem;font-size:1.15rem}.card h3 a{text-decoration:none}.card h3 a:after{content:"";position:absolute;inset:0}.card{position:relative}.card p{color:var(--ink-soft);margin:0 0 .5rem}.card .meta{z-index:1;position:relative}.meta{color:var(--ink-muted);flex-wrap:wrap;align-items:center;gap:.35rem .75rem;font-size:.8125rem;display:flex}.meta .sep:before{content:"·"}.tag{border:1px solid var(--line-strong);letter-spacing:.04em;color:var(--ink-soft);white-space:nowrap;background:0 0;border-radius:999px;align-items:center;gap:.25rem;padding:.05rem .55rem;font-size:.75rem;display:inline-flex}.tag-accent{border-color:var(--accent);color:var(--accent)}.tag-status-draft{border-color:var(--warn);color:var(--warn);background:var(--warn-bg)}.tag-status-published{border-color:var(--ok);color:var(--ok);background:var(--ok-bg)}.tag-status-archived,.tag-status-withdrawn,.tag-status-rejected{border-color:var(--line-strong);color:var(--ink-muted)}.tag-status-new,.tag-status-reviewing,.tag-status-accepted{border-color:var(--focus);color:var(--focus)}.empty-state{border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--ink-soft);background:var(--bg-elevated);padding:1.25rem}.empty-state p:last-child{margin-bottom:0}.notice{border-left:4px solid var(--warn);background:var(--warn-bg);color:var(--ink);border-radius:0 var(--radius) var(--radius) 0;margin-block:1rem;padding:.75rem 1rem}.notice.ok{border-color:var(--ok);background:var(--ok-bg)}.notice.danger{border-color:var(--danger);background:var(--danger-bg)}.notice p:last-child{margin-bottom:0}.btn{min-height:var(--tap);border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--bg-elevated);color:var(--ink);font:inherit;cursor:pointer;touch-action:manipulation;justify-content:center;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.95rem;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--ink-muted)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{filter:brightness(.95)}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn-quiet{color:var(--ink-soft);background:0 0;border-color:#0000}.btn-sm{min-height:2.25rem;padding:.25rem .7rem;font-size:.875rem}.btn[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.field{margin-bottom:1.1rem;display:block}.field>span,.field-label{margin-bottom:.3rem;font-weight:600;display:block}.field .hint{color:var(--ink-muted);margin-top:.3rem;font-size:.85rem;display:block}.field .error{color:var(--danger);margin-top:.3rem;font-size:.875rem;display:block}input[type=text],input[type=email],input[type=password],input[type=url],input[type=number],input[type=date],input[type=search],select,textarea{width:100%;font:inherit;color:var(--ink);background:var(--bg-elevated);border:1px solid var(--line-strong);border-radius:var(--radius);min-height:var(--tap);padding:.6rem .75rem;font-size:1rem}textarea{resize:vertical;min-height:10rem;line-height:1.6}textarea.mono{font-family:var(--font-mono);font-size:.95rem}input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true]{border-color:var(--danger)}.check{cursor:pointer;align-items:flex-start;gap:.6rem;margin-bottom:.9rem;display:flex}.check input{width:1.35rem;height:1.35rem;accent-color:var(--accent);flex:none;margin-top:.15rem}fieldset{border:1px solid var(--line);border-radius:var(--radius);min-width:0;margin:0 0 1.25rem;padding:.75rem 1rem .25rem}legend{padding-inline:.35rem;font-weight:600}.form-grid{gap:0 1rem;display:grid}@media (width>=48rem){.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid .span-2{grid-column:span 2}}.honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.reader{max-width:var(--measure);margin-inline:auto}.reader-head{margin-bottom:1.5rem}.reader-head h1{margin-bottom:.5rem;font-size:clamp(1.5rem,5vw,2.1rem)}.reader-kicker{color:var(--ink-muted);margin-bottom:.4rem;font-size:.875rem}.reader-kicker a{text-decoration:none}.reader-controls{border-block:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-block:1rem 1.5rem;padding-block:.5rem;display:flex}.reader-controls .group{align-items:center;gap:.25rem;display:flex}.reader-controls .group-label{color:var(--ink-muted);margin-right:.25rem;font-size:.8rem}.reader-controls .btn{min-width:var(--tap)}.noscript-hidden{display:none}.article-body{font-family:var(--font-serif);font-size:var(--reader-size);line-height:var(--reader-leading);color:var(--ink)}.article-body p{text-align:justify;text-justify:inter-ideograph;hyphens:auto;margin:0 0 1.1em}.article-body h2,.article-body h3,.article-body h4{margin-top:2em;font-size:1.15em}.article-body h2{font-size:1.3em}.article-body blockquote{border-left:3px solid var(--line-strong);color:var(--ink-soft);margin:1.2em 0;padding:.2em 1em}.article-body hr{border:0;border-top:1px solid var(--line-strong);width:4rem;margin:2em auto}.article-body pre{font-family:var(--font-mono);background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);padding:.8em 1em;font-size:.85em;overflow-x:auto}.article-body code{font-family:var(--font-mono);font-size:.9em}.article-body a{text-decoration-color:var(--accent)}.article-body ul,.article-body ol{padding-left:1.5em}.disclosure{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elevated);margin-block:1.5rem;padding:.9rem 1rem;font-size:.95rem}.disclosure h2{font-size:1rem;font-family:var(--font-sans);margin:0 0 .4rem}.disclosure p{color:var(--ink-soft);margin:0 0 .4rem}.disclosure dl{grid-template-columns:max-content 1fr;gap:.25rem .75rem;margin:.5rem 0 0;font-size:.875rem;display:grid}.disclosure dt{color:var(--ink-muted)}.disclosure dd{margin:0}.toc{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.toc li{border-bottom:1px solid var(--line)}.toc a{justify-content:space-between;align-items:center;gap:1rem;min-height:3rem;padding-block:.6rem;text-decoration:none;display:flex}.toc a:hover{color:var(--accent)}.toc .num{color:var(--ink-muted);font-variant-numeric:tabular-nums;min-width:2ch}.toc .title{flex:1}.toc .when{color:var(--ink-muted);white-space:nowrap;font-size:.8rem}.toc a[aria-current=page]{color:var(--accent);font-weight:700}.chapter-nav{border-top:1px solid var(--line);grid-template-columns:1fr auto 1fr;gap:.5rem;margin-block:2rem 1rem;padding-top:1rem;display:grid}.chapter-nav a,.chapter-nav span{min-height:var(--tap);border:1px solid var(--line-strong);border-radius:var(--radius);text-align:center;justify-content:center;align-items:center;padding:.5rem .75rem;text-decoration:none;display:inline-flex}.chapter-nav span[aria-disabled=true]{color:var(--ink-muted);border-style:dashed}.chapter-nav .prev{justify-self:start}.chapter-nav .next{justify-self:end}.progress{background:var(--accent);z-index:30;pointer-events:none;width:0;height:3px;position:fixed;top:0;left:0}.continue-banner{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:1rem;margin-block:1rem;padding:.75rem 1rem;display:flex}.continue-banner[hidden]{display:none}.start-reading{margin-block:1rem 1.5rem}.start-reading .small{color:var(--ink-muted)}.cover{border-radius:var(--radius);border:1px solid var(--line);object-fit:cover;max-height:22rem;margin-bottom:1rem}.filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.filters input[type=search]{flex:14rem}.filters select{flex:0 10rem;width:auto}.hero{max-width:44rem;padding-block:1rem .5rem}.hero h1{margin-bottom:.4rem;font-size:clamp(1.9rem,6vw,2.8rem)}.hero .tagline{font-family:var(--font-serif);color:var(--ink-soft);margin-bottom:1rem;font-size:1.2rem}.ledger{margin:0;padding:0;list-style:none}.ledger li{border-bottom:1px solid var(--line);padding-block:.8rem}.ledger .ledger-title{font-weight:600}.definition-table th{white-space:nowrap}.error-page{text-align:center;padding-block:3rem}.error-page h1{margin-bottom:.25rem;font-size:3rem}.byline{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.35rem .6rem;margin:.25rem 0 .75rem;font-size:1rem;display:flex}.byline a{color:var(--ink);text-underline-offset:.2em;min-height:var(--tap);align-items:center;font-weight:600;text-decoration-thickness:1px;display:inline-flex}.byline-label,.byline-kind{color:var(--ink-muted);font-size:.85rem}.byline-compact{margin:0 0 .5rem;font-size:.9rem}.byline-compact a{min-height:0}.card .byline{margin:-.25rem 0 .5rem}.reading-numbers{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elevated);gap:.6rem;margin:1.5rem 0 0;padding:.9rem 1rem;font-size:.95rem;display:grid}.reading-numbers>div{grid-template-columns:max-content 1fr;align-items:baseline;gap:.25rem .75rem;display:grid}.reading-numbers dt{color:var(--ink-muted);white-space:nowrap}.reading-numbers dd{overflow-wrap:anywhere;margin:0}.author-head h1{margin-bottom:.25rem}.author-bio{margin-bottom:1.5rem}
