:root {
 --paper:#f9f9f4;--ink:#262d29;--muted:#5d655f;--line:#dadfd5;--accent:#984c39;
 --serif:"Noto Serif SC","Songti SC",SimSun,serif;--sans:"Noto Sans SC","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:32px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-weight:500;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button{color:inherit;font:inherit;cursor:pointer}
button,a{-webkit-tap-highlight-color:transparent}
button{border:0;background:none}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:500}
img{display:block;max-width:100%}button,a,summary{touch-action:manipulation}
[hidden]{display:none!important}
a:focus-visible,button:focus-visible,summary:focus-visible,.sidenote:focus{outline:2px solid var(--accent);outline-offset:6px}
::selection{background:#dee6d6}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.skip-link{position:fixed;top:-100px;left:24px;z-index:40;padding:12px;background:var(--paper)}
.skip-link:focus{top:12px}
.masthead{max-width:1600px;margin:auto;padding:34px 48px 0;display:flex;justify-content:space-between;align-items:center}
.signature{font-size:24px;letter-spacing:.08em}
.masthead-right{display:flex;align-items:center;gap:27px;font:12px var(--sans);color:var(--muted)}
.about-trigger{font:inherit;padding:7px 0}
.masthead a:hover,.about-trigger:hover{color:var(--accent)}
main{max-width:1600px;margin:auto;padding:54px 48px 0;min-height:70vh}
.collection-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:70px 34px;align-items:start}
.index{grid-column:1/3;padding-top:5px}
.index nav{display:flex;flex-direction:column;align-items:flex-start;gap:15px}
.index nav a{font:20px/1.45 var(--sans);position:relative;transition:color .18s}
.index nav a:before{position:absolute;content:"";height:2px;width:11px;left:-24px;top:50%;background:var(--accent);opacity:0;transform:scaleX(.4);transform-origin:left;transition:opacity .18s,transform .18s}
.index nav a[aria-current=page]:before{opacity:1;transform:scaleX(1)}
.index nav a:hover{color:var(--accent)}
.entry{min-width:0}
.model{grid-column:3/7}
.reading{grid-column:7/10;padding-top:24px}
.music{grid-column:10/13;padding-top:62px;max-width:228px;justify-self:end}
.proof{grid-column:2/7;padding-right:40px}
.walk{grid-column:7/10;max-width:290px;padding-top:9px}
.fragment{grid-column:10/13;padding-top:74px}
.entry-link{display:block;width:100%;text-align:left;padding:0}
.image-wrap{overflow:hidden;border-radius:2px}
.image-wrap img{width:100%;height:auto;transition:transform .5s}
.entry-link:hover .image-wrap img{transform:scale(1.012)}
.model-image{background:#eef4f6}
.entry-meta{font:11px/1.7 var(--sans);letter-spacing:.05em;color:var(--muted);margin:16px 0 9px}
.entry h2{font-size:25px;line-height:1.6;letter-spacing:.005em;text-wrap:pretty}
.entry .description{font:14px/1.85 var(--sans);color:var(--muted);margin-top:10px}
.entry-arrow{display:inline-block;opacity:0;font:16px var(--sans);margin-left:10px;color:var(--accent);transform:translateX(-4px);transition:opacity .18s,transform .18s}
.entry-link:hover .entry-arrow,.entry-link:focus-visible .entry-arrow{opacity:1;transform:none}
.reading .entry-meta{margin-top:0}
.reading h2{font-size:26px;line-height:1.7;text-wrap:balance}
.excerpt{font-size:22px;line-height:1.9;margin-top:32px}
.reading .description{font-size:13px;margin-top:20px}
.text-link{display:inline-flex;align-items:center;gap:17px;font:12px/1.8 var(--sans);margin-top:21px;padding-bottom:3px;border-bottom:1px solid var(--line)}
.text-link span{color:var(--accent)}
.music .text-link{margin-top:13px}
.music h2{font-size:23px}
.music .description{font-size:13px}
.proof .entry-meta{margin-top:0}
.proof-image{margin:22px 0 14px}
.proof-image img{object-fit:contain}
.proof .description{font-size:13px}
.photo-caption{display:flex;align-items:center;justify-content:space-between;margin-top:14px}
.photo-caption h2{font-size:22px}
.photo-zoom{font:17px var(--sans);color:var(--accent);padding-left:10px}
.walk .entry-meta{margin:7px 0 0}
.fragment .entry-meta{margin-top:0}
.fragment h2{font-size:23px}
.fragment-lead{font-size:18px;line-height:1.9;margin-top:19px}
.inline-note{margin-top:18px}
.inline-note summary{list-style:none;cursor:pointer;font:12px/1.8 var(--sans);color:var(--muted);display:inline-flex;align-items:center;gap:15px;padding:5px 0}
.inline-note summary::-webkit-details-marker{display:none}
.toggle-mark{font-size:15px;color:var(--accent)}
.when-open{display:none}
.inline-note[open] .when-open{display:inline}
.inline-note[open] .when-closed{display:none}
.inline-note[open] .toggle-mark{transform:rotate(45deg)}
.inline-body{margin-top:14px}
.inline-body p{font:14px/1.9 var(--sans);margin:13px 0;color:var(--muted)}
.inline-body .text-link{margin-top:3px}
.collection-grid.is-filtered .index{grid-column:1/3;grid-row:1/span 3}
.collection-grid.is-filtered .entry{grid-column:span 5;grid-row:auto;padding:0;max-width:none;justify-self:stretch}
.collection-grid.is-filtered .reading,.collection-grid.is-filtered .fragment{padding:20px 28px 35px 0}
.collection-grid.is-filtered .music .image-wrap{max-width:330px}
.collection-grid.is-filtered .walk .image-wrap{max-width:460px}
.now-panel{grid-column:4/12;max-width:640px;padding-bottom:50px}
.eyebrow{font:12px/1.8 var(--sans);color:var(--muted);letter-spacing:.04em}
.now-panel h1{font-size:37px;line-height:1.7;margin:24px 0}
.now-panel>p:not(.eyebrow){font-size:17px;line-height:2}
.now-lines{display:grid;grid-template-columns:90px 1fr;gap:24px 16px;border-top:1px solid var(--line);padding-top:28px;margin:35px 0}
.now-lines dt{font:12px/1.9 var(--sans);color:var(--muted)}
.now-lines dd{font-size:15px;line-height:1.9;margin:0}
.sample-note{font:12px/1.8 var(--sans)!important;color:var(--muted)}
.footer{max-width:1600px;margin:86px auto 0;padding:24px 48px 30px;display:flex;gap:28px;align-items:center;font:11px/1.8 var(--sans);color:var(--muted);position:relative}
.footer:before{content:"";position:absolute;top:0;left:48px;right:48px;border-top:1px solid var(--line)}
.footer-home{margin-left:auto}.footer a:hover{color:var(--accent)}
.prototype-label{font-size:10px}
/* Reading: each note shares the row of the passage it comments on. */
.reader-layout{display:grid;grid-template-columns:150px minmax(0,1fr);gap:58px;max-width:1350px;margin:auto}
.reader-index{position:sticky;top:35px;align-self:start;font:12px/1.8 var(--sans)}
.back-link{color:var(--muted);display:inline-block;margin-bottom:36px}
.reader-index nav{display:flex;flex-direction:column;gap:15px}
.reader-index nav a{position:relative;padding-left:15px;display:flex;gap:10px;color:var(--muted)}
.reader-index nav a:before{content:"";position:absolute;width:5px;height:1px;left:0;top:11px;background:#a2aa9c}
.reader-index nav a[aria-current=location]{color:var(--ink)}
.reader-index nav a[aria-current=location]:before{width:8px;height:2px;background:var(--accent)}
.reader-index nav a span{font-size:10px;line-height:22px;flex-shrink:0}
.article-sheet{--note:190px;--gutter:40px;min-width:0}
.article-heading,.article-cover,.article-bottom{width:calc(100% - var(--note) - var(--gutter))}
.article-heading .eyebrow{margin-bottom:19px}
.article-heading h1{font-size:36px;line-height:1.65;text-wrap:pretty}
.article-deck{font:15px/1.9 var(--sans);color:var(--muted);margin-top:19px}
.article-heading{padding-bottom:30px}
.article-cover{margin:7px 0 36px}
.article-cover img{width:100%;height:auto;border-radius:2px}
.article-cover figcaption{font:11px/1.8 var(--sans);color:var(--muted);margin-top:10px}
.section-row{display:grid;grid-template-columns:minmax(0,1fr) var(--note);gap:var(--gutter);scroll-margin-top:32px;margin:27px 0 43px}
.section-copy{min-width:0}
.section-copy h2{font-size:23px;line-height:1.65;margin-bottom:23px}
.section-number{font:12px "EB Garamond",serif;margin-right:13px;color:var(--accent)}
.section-copy p{font-size:16px;line-height:2.05;margin:19px 0;overflow-wrap:anywhere}
.formula{font-family:"EB Garamond",var(--serif);font-size:25px!important;text-align:center;padding:17px 0;overflow-x:auto}
.note-ref{font:11px var(--sans);vertical-align:super;color:var(--accent);text-decoration:underline;text-underline-offset:3px;padding:3px 5px;margin-left:2px}
.sidenote{font:13px/1.9 var(--sans);color:var(--muted);align-self:start;margin-top:72px;padding:11px 0 0;border-top:1px solid #b5bda9;scroll-margin-top:30px}
.sidenote small{font-size:10px;letter-spacing:.04em;color:var(--accent)}
.sidenote p{margin:12px 0}
.note-return{font:11px/1.8 var(--sans);padding:6px 0;color:var(--accent)}
.article-bottom{border-top:1px solid var(--line);padding-top:22px;margin-top:40px;font:12px/1.9 var(--sans);display:flex;justify-content:space-between;gap:20px}
.article-bottom a:hover,.back-link:hover{color:var(--accent)}
dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:42px;width:520px;max-width:calc(100% - 32px);max-height:90dvh;overflow:auto}
dialog::backdrop{background:#19201db3;backdrop-filter:blur(4px)}
dialog h2{font-size:26px;line-height:1.6;margin:17px 0}
dialog p{font:14px/1.95 var(--sans);color:var(--muted);margin:17px 0}
.dialog-close{position:absolute;right:13px;top:10px;padding:8px;font:25px var(--sans)}
.dialog-done{margin-top:12px;font:13px var(--sans);border-bottom:1px solid var(--accent);padding:9px 0}
#media-dialog{width:min(1140px,calc(100% - 64px));padding:58px 28px 26px;border:0}
.media-close{position:absolute;top:15px;right:26px;display:flex;gap:20px;align-items:center;font:12px var(--sans);padding:7px}
.media-close span{font-size:22px}
#media-image{max-height:66dvh;max-width:100%;width:auto;margin:auto;object-fit:contain}
.media-copy{max-width:800px;margin:22px auto 0;display:grid;grid-template-columns:190px 1fr;gap:30px}
.media-copy h2{font-size:22px;margin:0}
.media-copy p{font:13px/1.85 var(--sans);margin:0}
#media-dialog[data-kind=music]{width:780px;max-width:calc(100% - 32px);padding:62px 32px 32px}
#media-dialog[data-kind=music] .media-content{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;align-items:center}
#media-dialog[data-kind=music] .media-copy{display:block;margin:0}
#media-dialog[data-kind=music] .media-copy h2{margin-bottom:20px}
body:has(dialog[open]){overflow:hidden}
.noscript{margin:25px;font:14px var(--sans)}
@media(min-width:1500px){
 .entry h2{font-size:28px}.reading h2{font-size:29px}.excerpt{font-size:24px}
 .entry .description{font-size:15px}.music{max-width:270px}.walk{max-width:350px}.fragment{padding-top:100px}
 .article-sheet{--note:220px;--gutter:55px}.article-heading h1{font-size:42px}
}
@media(max-width:1100px){
 .masthead{padding:28px 32px 0}main{padding:44px 32px 0}.collection-grid{gap:55px 25px}
 .index nav a{font-size:18px}.entry h2,.reading h2{font-size:22px}.excerpt{font-size:19px}.entry .description{font-size:13px}
 .proof{padding-right:15px}.fragment{padding-top:52px}.fragment h2{font-size:21px}
 .reader-layout{grid-template-columns:125px minmax(0,1fr);gap:34px}.article-sheet{--note:155px;--gutter:28px}
 .article-heading h1{font-size:31px}.sidenote{font-size:12px}.footer{padding-left:32px;padding-right:32px}
 .footer:before{left:32px;right:32px}
}
@media(max-width:900px){
 .article-heading,.article-cover,.article-bottom{width:100%}
 .section-row{grid-template-columns:1fr;gap:0}
 .sidenote{margin-top:6px;max-width:480px;padding-top:12px;font-size:13px;border-top:1px solid var(--line)}
 .sidenote p{margin:8px 0}
 .section-row{margin-bottom:38px}
}
@media(max-width:760px){
 .masthead{padding:25px 23px 0}.signature{font-size:22px}.masthead-right{font-size:11px;gap:20px}
 main{padding:35px 23px 0}.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 25px}
 .index,.collection-grid.is-filtered .index{grid-column:1/-1;grid-row:auto;padding:0 0 20px;border-bottom:1px solid var(--line)}
 .index nav{flex-direction:row;flex-wrap:wrap;gap:18px 23px}.index nav a{font-size:17px}
 .index nav a:before{left:0;top:auto;bottom:-9px}
 .entry.model,.entry.reading,.entry.music,.entry.proof,.entry.walk,.entry.fragment,.collection-grid.is-filtered .entry{grid-column:span 1;grid-row:auto;padding:0;justify-self:stretch;max-width:none}
 .entry.model{grid-column:1/-1}.model-image img{max-height:320px;object-fit:contain}
 .entry h2,.reading h2{font-size:23px}.entry .description{font-size:13px}.excerpt{font-size:20px;margin-top:22px}
 .entry.music{padding-top:35px}.proof-image{margin-top:18px}.fragment-lead{font-size:18px}
 .collection-grid.is-filtered .reading,.collection-grid.is-filtered .fragment{padding:0}
 .now-panel{grid-column:1/-1}.now-panel h1{font-size:31px}
 .footer{padding:23px;gap:18px;flex-wrap:wrap;margin-top:55px}.footer:before{left:23px;right:23px}
 .prototype-label{width:100%;font-size:10px}
 .reader-layout{display:block}
 .reader-index{position:static;margin-bottom:33px}.back-link{margin-bottom:18px}
 .reader-index nav{flex-direction:row;flex-wrap:wrap;gap:13px 22px}.reader-index nav a{font-size:11px;padding-left:12px;gap:8px}
 .article-heading h1{font-size:31px}.article-heading{padding-bottom:20px}.section-copy p{font-size:16px}
 .sidenote{max-width:none;padding-left:15px;border-left:2px solid #b5bda9;border-top:none;margin-top:10px}
 #media-dialog{width:calc(100% - 24px);max-width:none;padding:54px 15px 24px}
 .media-copy{display:block;margin-top:20px}.media-copy h2{font-size:22px;margin-bottom:13px}
 .media-close{right:14px}#media-image{max-height:65dvh}
 dialog{padding:34px 24px}
 #media-dialog[data-kind=music]{padding:55px 23px 26px}
 #media-dialog[data-kind=music] .media-content{display:block}
 #media-dialog[data-kind=music] .media-copy{margin-top:22px}
}
@media(max-width:480px){
 .entry.model,.entry.reading,.entry.music,.entry.proof,.entry.walk,.entry.fragment,.collection-grid.is-filtered .entry{grid-column:1/-1}
 .entry.music{padding-top:0;width:80%;justify-self:end;margin:8px 0}
 .entry.walk{width:92%}
 .entry.proof{padding:0}
 .reading{max-width:290px}.entry h2,.reading h2{font-size:25px}
 .entry .description{font-size:14px}
 .excerpt{font-size:23px}.fragment-lead{font-size:20px}
 .fragment{padding:8px 0!important}
 .entry-arrow{display:none}
 .collection-grid.is-filtered .entry{width:100%}
 .now-panel h1{font-size:29px}.now-lines{grid-template-columns:72px 1fr}
 .article-heading h1{font-size:29px}.article-bottom{font-size:11px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}
}


.launch-note{font:12px/1.9 var(--sans);color:var(--muted);margin:-17px 0 34px;max-width:70em}
@media(max-width:760px){.launch-note{margin:0 0 28px;font-size:11px}}

/* The URL carries the language; the root remains the Chinese edition. */
.language-switch{display:flex;gap:9px;align-items:center;white-space:nowrap;font:12px/1.8 var(--sans)}
.language-switch>span{color:#a0a89d}
.language-switch a[aria-current=true]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:5px}
html[lang=en]{--serif:"EB Garamond",Georgia,"Times New Roman",serif}
html[lang=en] body,html[lang=en] h1,html[lang=en] h2,html[lang=en] h3{font-weight:400}
html[lang=en] .signature{font-size:28px;letter-spacing:.01em}
html[lang=en] .entry h2{font-size:29px;line-height:1.14;letter-spacing:0}
html[lang=en] .reading h2{font-size:30px;line-height:1.2}
html[lang=en] .entry h2 i{font-style:normal}
html[lang=en] .excerpt{font-size:26px;line-height:1.35}
html[lang=en] .fragment-lead{font-size:24px;line-height:1.4}
html[lang=en] .entry .description{line-height:1.7}
html[lang=en] .article-heading h1{font-size:43px;line-height:1.15}
html[lang=en] .section-copy h2{font-size:28px;line-height:1.3}
html[lang=en] .section-copy p{font-size:20px;line-height:1.65;overflow-wrap:break-word}
html[lang=en] .sidenote{line-height:1.75}
html[lang=en] .reader-index nav a{font-size:12px;line-height:1.6}
html[lang=en] .now-panel h1{font-size:45px;line-height:1.2}
html[lang=en] .now-panel>p:not(.eyebrow){font-size:23px;line-height:1.6}
@media(max-width:1100px){html[lang=en] .entry h2{font-size:26px}html[lang=en] .reading h2{font-size:27px}html[lang=en] .article-heading h1{font-size:37px}}
@media(max-width:760px){.masthead{flex-wrap:wrap;gap:17px}.masthead-right{flex-wrap:wrap;gap:17px}.language-switch{font-size:11px}html[lang=en] .entry h2{font-size:28px}html[lang=en] .article-heading h1{font-size:35px}html[lang=en] .section-copy p{font-size:20px}html[lang=en] .now-panel h1{font-size:38px}}
