@charset "UTF-8";
:root{color-scheme:light;--paper:#faf9f6;--ink:#242a26;--muted:#60665f;--line:#d2d3c9;--accent:#a83f2f;--serif:"Noto Serif CJK SC","Source Han Serif SC","Songti SC",STSong,SimSun,"Noto Serif SC",serif;--sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--page:1152px;--reading:680px;--gutter:40px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}::selection{background:#dfe3d4}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.skip{position:absolute;left:20px;top:-100px;background:var(--ink);color:var(--paper);padding:10px;z-index:20}.skip:focus{top:12px}
/* One page rail: rules, masthead, navigation and footer share their edges. */
.site-header,.masthead,.featured,.recent,.page-intro,.archive-list,.site-footer{width:calc(100% - 2 * var(--gutter));max-width:var(--page);margin-inline:auto}.site-header{padding-block:28px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;font:26px/1.1 var(--serif);letter-spacing:-.6px}.seal{font:16px/1.2 var(--serif);writing-mode:vertical-rl;letter-spacing:2px;background:var(--accent);color:var(--paper);padding:6px 4px}.site-header nav{display:flex;gap:28px;align-items:center;font-size:13px}.site-header nav a{padding-block:8px;color:var(--muted)}.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--ink)}.site-header nav a[aria-current]{box-shadow:0 1px var(--accent)}.site-header .rss{margin-left:12px;font-size:12px}
.masthead{padding-block:40px 36px;border-bottom:1px solid var(--ink)}.edition-label{font-size:12px;letter-spacing:1.2px;color:var(--muted)}.masthead h1{font:400 clamp(64px,13.3vw,176px)/1.03 var(--serif);letter-spacing:-.055em;margin:24px 0 0}.masthead-dot{color:var(--accent)}
.featured{display:grid;grid-template-columns:minmax(0,1fr);border-bottom:1px solid var(--line);margin-top:32px}.feature-kicker{grid-column:1/-1;display:flex;justify-content:space-between;font-size:11px;letter-spacing:1.2px;color:var(--accent);padding-bottom:24px}.feature-kicker span:last-child{color:var(--muted)}.feature-link{padding:8px 0 40px}.article-meta{display:flex;align-items:center;flex-wrap:wrap;gap:16px;color:var(--muted);font-size:12px;line-height:1.6;letter-spacing:.04em}.feature-link h2{font:500 40px/1.4 var(--serif);margin:20px 0;max-width:820px}.feature-link>p{max-width:680px;font-size:16px;line-height:1.8;color:var(--muted);margin:0 0 28px}.feature-link>p:empty,.row-main p:empty{display:none}.feature-bottom{display:flex;justify-content:space-between;gap:24px;font-size:12px;align-items:center}.feature-bottom>span:first-child{color:var(--muted)}.read-link{color:var(--accent);font-size:13px}.read-link b{font-weight:400;font-size:20px;margin-left:12px}.feature-margin{border-left:1px solid var(--line);display:flex;align-items:center;flex-direction:column;justify-content:space-between;padding:16px 0 36px}.feature-margin>span{font:19px/1.8 var(--serif);color:var(--muted)}.feature-margin i{font:40px var(--serif);font-style:normal;color:#858c7e}.feature-link:hover h2,.article-row:hover h3{color:var(--accent)}.recent{padding-top:40px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.section-heading h2{font:24px var(--serif);margin:0}.section-heading a{font-size:12px;color:var(--muted)}.article-row{display:flex;align-items:flex-start;gap:24px;padding:32px 0;border-bottom:1px solid var(--line)}.row-number{font:28px var(--serif);color:var(--muted);min-width:48px}.row-main{flex:1;min-width:0}.row-main h3{font:500 26px/1.5 var(--serif);margin:12px 0}.row-main p{color:var(--muted);font-size:14px;line-height:1.8;margin:0;max-width:680px}.row-arrow{font-size:24px;color:var(--accent);align-self:center;padding-inline:12px}.tiny-label{font-size:11px;line-height:1.6;letter-spacing:1.2px;color:var(--muted)}
.site-footer{border-top:1px solid var(--line);margin-top:80px;padding-block:24px 40px;display:flex;justify-content:space-between;align-items:baseline;gap:24px}.footer-wordmark{font:23px/1.3 var(--serif);letter-spacing:-.5px}.footer-wordmark span{font-size:13px;margin-left:12px;letter-spacing:1px}.site-footer>a:last-of-type{font-size:12px;color:var(--muted)}.page-intro{padding-block:56px 32px;border-bottom:1px solid var(--line)}.page-intro h1{font:500 44px/1.3 var(--serif);margin:20px 0}.page-intro p{font-size:13px;color:var(--muted);margin:0}.archive-list{min-height:240px}.about-intro{max-width:var(--reading)}.about-prose{max-width:var(--reading);width:calc(100% - 2 * var(--gutter));margin:48px auto 0;font:19px/1.9 var(--serif)}.about-prose p{margin:0 0 24px;text-wrap:pretty}.about-prose a,.article-body a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;overflow-wrap:anywhere}.empty-state{max-width:var(--reading);width:calc(100% - 2 * var(--gutter));margin:72px auto 88px;text-align:left}.empty-state h1,.empty-state h2{font:500 28px/1.5 var(--serif);margin:0 0 16px}.empty-state p{color:var(--muted);font-size:15px;line-height:1.8}.empty-state>a{display:inline-block;color:var(--accent);font-size:13px;margin-top:12px}
.reading-progress{position:fixed;top:0;inset-inline:0;height:2px;z-index:10}.reading-progress span{display:block;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}
/* The title, reading column and attribution are a single centered measure.
   The optional TOC sits outside it and never moves the article off its axis. */
.reading-layout{--reading:760px;width:calc(100% - 2 * var(--gutter));max-width:var(--reading);margin-inline:auto}.article-header{position:relative;margin:64px 0 0;padding:0 0 32px;border-bottom:1px solid var(--line)}.back-link{display:inline-block;padding-block:4px;font:12px/1.6 var(--sans);color:var(--muted)}.article-header .article-meta{margin-top:32px}.article-header>.article-meta:first-child{margin-top:0}.article-header h1{font:500 44px/1.35 var(--serif);letter-spacing:.01em;margin:20px 0 24px;text-wrap:pretty}.article-header h1:last-child{margin-bottom:0}.standfirst{font:17px/1.8 var(--sans);color:var(--muted);margin:0 0 24px}.byline{font-size:12px;color:var(--muted);display:flex;gap:24px;align-items:center;flex-wrap:wrap}.byline a{color:var(--accent)}.review-notice{font:13px/1.75 var(--sans);color:var(--muted);max-width:100%}.review-notice p{margin:0}.review-notice p+p{margin-top:8px}.reading-grid{position:relative;margin-top:40px}.contents{position:absolute;right:calc(100% + 48px);top:0;width:160px}.contents nav{display:flex;flex-direction:column;gap:12px;margin-top:16px;font-size:12px;line-height:1.7;color:var(--muted)}.contents nav a:hover{color:var(--accent)}.contents .h3{padding-left:12px}.review-layout>.article-body{margin-top:40px}.article-body{font:19px/1.9 var(--serif);letter-spacing:.01em;overflow-wrap:break-word;line-break:strict}.article-body>p{margin:0 0 1.25em}.article-body h1,.article-body h2,.article-body h3{line-height:1.45;font-weight:600;scroll-margin-top:32px;text-wrap:pretty}.article-body h1,.article-body h2{font-size:28px;margin:48px 0 20px}.article-body h3{font-size:23px;margin:36px 0 16px}.article-body>h2:first-child{margin-top:0}.article-body strong{font-weight:700}.article-body blockquote{margin:32px 0;padding:0 0 0 24px;border-left:2px solid var(--accent);color:var(--ink)}.article-body blockquote p{margin:0 0 16px}.article-body blockquote p:last-child{margin-bottom:0}.article-body ul,.article-body ol{padding-left:1.4em;margin:24px 0}.article-body li{padding-left:.2em;margin-bottom:12px}.article-body pre{overflow-x:auto;font:13px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;background:#eaece2;padding:20px;letter-spacing:0;border:1px solid var(--line)}.article-body :not(pre)>code{font:.8em/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;background:#eaece2;padding:2px 4px;letter-spacing:0;overflow-wrap:anywhere}.article-body hr{border:0;border-top:1px solid var(--line);margin:40px 0}.image-reference{display:block;font:12px/1.8 var(--sans);color:var(--muted);padding:20px 0}.article-source{border-top:1px solid var(--line);padding-top:24px;margin-top:48px;font:13px/1.8 var(--sans);color:var(--muted);letter-spacing:0}.article-source p{margin:0 0 8px}.article-source p:last-child{margin-bottom:0}.article-end-nav{margin-top:32px;font:12px/1.6 var(--sans);color:var(--muted)}.article-end-nav a{display:inline-block;padding-block:8px}.article-end-nav a:hover{color:var(--ink)}.article-body table{display:block;overflow-x:auto;border-collapse:collapse;font-size:15px;max-width:100%}.article-body td,.article-body th{border:1px solid var(--line);padding:10px}.article-body sup{line-height:0}
/* Hang the return link beside the issue rail only when the margin can hold it.
   It scrolls with the article; narrow screens keep the normal inline link. */
@media(min-width:1080px){
  .article-header>.back-link{position:absolute;right:calc(100% + 48px);top:-4px;white-space:nowrap}
  .article-header>.back-link+.article-meta{margin-top:0}
}
/* Reserve a 160px contents rail, 48px gap, outer gutter and scrollbar. */
@media(max-width:1279px){.contents{display:none}}
@media(max-width:700px){:root{--gutter:24px}.site-header{padding-block:20px}.brand{font-size:23px;gap:10px}.seal{font-size:14px}.site-header nav{gap:20px;font-size:12px}.site-header .rss{display:none}.masthead{padding-block:32px}.masthead h1{font-size:15vw}.edition-label{font-size:11px}.featured{display:block}.feature-link{display:block;padding:0 0 32px}.feature-margin{display:none}.feature-link h2{font-size:30px}.feature-bottom{font-size:11px}.article-row{gap:16px;padding-block:24px}.row-number{min-width:28px;font-size:24px}.row-main h3{font-size:23px}.row-arrow{padding:0}.site-footer{margin-top:56px;padding-bottom:32px;gap:16px}.footer-wordmark{font-size:21px}.footer-wordmark span{font-size:12px;margin-left:8px}.site-footer>a:last-of-type{font-size:11px}.page-intro{padding-block:40px 24px}.page-intro h1{font-size:34px}.about-prose{font-size:18px;margin-top:32px}.empty-state{margin-block:48px 64px}.empty-state h1,.empty-state h2{font-size:25px}.article-header{margin-top:40px;padding-bottom:24px}.article-header h1{font-size:32px;line-height:1.4;margin:16px 0 24px}.article-meta{font-size:11px;gap:12px}.review-notice{font-size:12px;line-height:1.8}.review-notice p+p{margin-top:12px}.reading-grid,.review-layout>.article-body{margin-top:32px}.article-body{font-size:18px;line-height:1.9;letter-spacing:0}.article-body h1,.article-body h2{font-size:25px;margin-top:40px}.article-body h3{font-size:21px}.article-body blockquote{padding-left:18px;margin-block:28px}.article-source{font-size:12px;margin-top:40px;padding-top:24px}}
@media(max-width:360px){:root{--gutter:20px}.brand{font-size:21px}.site-header nav{gap:14px}.article-header h1{font-size:29px}.footer-wordmark span{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{body{background:white;color:black}.site-header,.site-footer,.contents,.reading-progress,.back-link,.article-end-nav{display:none}.reading-layout,.article-header{width:100%;max-width:100%;margin:0;padding:0}.reading-grid,.review-layout>.article-body{display:block;margin:24px 0 0}.article-body{font-size:12pt;line-height:1.8}.article-header h1{font-size:24pt}.article-body a{color:black}.article-body pre{white-space:pre-wrap}h2,h3{break-after:avoid}p{orphans:3;widows:3}}

/* The home masthead becomes a right-hand spine, leaving the reading first. */
.home-layout{width:calc(100% - 2 * var(--gutter));max-width:var(--page);margin:40px auto 0;display:grid;grid-template-columns:minmax(0,1fr) 144px;gap:48px;min-height:470px}
.home-content{grid-column:1;grid-row:1;min-width:0}
.home-layout .masthead{grid-column:2;grid-row:1;width:100%;height:100%;max-width:none;margin:0;padding:0 0 0 24px;border:0;display:flex;justify-content:center;align-items:flex-start}
.home-layout .masthead h1{writing-mode:vertical-rl;text-orientation:sideways;font-size:96px;line-height:1.05;letter-spacing:-.055em;white-space:nowrap;margin:0}
.home-content .featured,.home-content .recent{width:100%;max-width:none;margin:0}.home-content .featured{border-top:0;padding-top:0}.home-content .feature-kicker{padding-bottom:32px}
.feature-link{display:grid;grid-template-columns:140px minmax(0,1fr);gap:32px;align-items:start}.feature-main{min-width:0}.feature-main h2{margin:16px 0 24px;font-size:36px}.feature-main>p:empty{display:none}.feature-main>p{font:16px/1.8 var(--sans);color:var(--muted);max-width:680px;margin:0 0 28px}.feature-bottom{align-items:flex-start;flex-wrap:wrap;gap:20px}.read-link{white-space:nowrap}
.issue-number{display:flex;flex-direction:column;gap:18px;flex-shrink:0;color:var(--ink);min-width:112px}.issue-number>span{font:10px/1.76 var(--sans);letter-spacing:.12em;color:var(--muted)}.issue-number strong{color:#736e65;font:400 38px/1 var(--serif);letter-spacing:-.045em;font-variant-numeric:lining-nums tabular-nums}.article-row{gap:32px}.article-row .issue-number{width:140px;gap:15px}.article-row h3{font-size:30px;margin-top:12px}
@media(max-width:960px) and (min-width:701px){.home-layout{gap:32px;grid-template-columns:minmax(0,1fr) 104px;min-height:400px}.home-layout .masthead{padding-left:20px}.home-layout .masthead h1{font-size:72px}.feature-link{grid-template-columns:104px minmax(0,1fr);gap:24px}.issue-number{min-width:0}.issue-number strong{font-size:32px}.feature-main h2{font-size:30px}}
@media(max-width:700px){.home-layout{display:flex;flex-direction:column;gap:28px;min-height:0;margin-top:28px}.home-layout .masthead{padding:0 0 28px;border:0;border-bottom:1px solid var(--ink);height:auto;justify-content:flex-start}.home-layout .masthead h1{writing-mode:horizontal-tb;font-size:clamp(48px,13.5vw,90px);line-height:1.1}.home-content .featured{border-top:0;padding-top:0}.home-content .feature-kicker{padding-bottom:24px}.feature-link{display:block}.issue-number{gap:8px;margin-bottom:24px}.issue-number strong{font-size:32px}.feature-main h2{font-size:30px;margin:16px 0 24px}.article-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 16px}.article-row .issue-number{grid-column:1/-1;width:auto;gap:8px;margin-bottom:20px}.article-row .issue-number strong{font-size:30px}.article-row h3{font-size:26px}.row-arrow{grid-column:2;grid-row:2}.home-content .recent{padding-top:32px}}

/* Mobile reading starts with the issue, not a second masthead. */
@media(max-width:700px){
  .home-layout{display:block;margin-top:32px}
  .home-layout .masthead{display:none}
  .home-content .featured{border:0}
  .home-content .feature-link{padding-bottom:0}
  .issue-number,.article-row .issue-number{flex-direction:row;align-items:baseline;gap:7px;min-width:0;margin-bottom:12px}
  .issue-number>span,.issue-number strong,.article-row .issue-number strong{font:500 10px/1.6 var(--sans);letter-spacing:.1em;color:var(--muted)}
  .home-content .feature-main h2{font-size:30px;margin:12px 0 20px}
  body:has(.home-layout) .site-footer{border-top:0;margin-top:40px;padding-top:20px}
  body:has(.home-layout) .site-header{border-bottom:0}
}

/* Compact mobile issue/date rail; the linked title carries the action. */
@media(max-width:700px){
  .feature-link,.article-row{position:relative}
  .feature-link>.issue-number,.article-row>.issue-number{padding-right:100px}
  .feature-main>.article-meta,.row-main>.article-meta{position:absolute;right:0;top:0;line-height:1.6;font-size:10px}
  .article-row .row-main>.article-meta{top:24px}
  .meta-duration,.read-link{display:none}
  .feature-main h2{margin-top:0}
}
/* Keep the mobile title close to its issue rail and byline. */
@media(max-width:700px){
  .feature-link>.issue-number,.article-row>.issue-number{margin-bottom:8px}
  .home-content .feature-main h2{margin-top:8px;margin-bottom:12px}
  .article-row h3{margin-top:8px;margin-bottom:12px}
}
/* A quiet colophon: aligned utility text rather than a second masthead. */
.site-footer{align-items:center}
.footer-wordmark{font:500 13px/1.6 var(--sans);letter-spacing:0;color:var(--muted)}
.footer-wordmark span{font:inherit;margin-left:8px;letter-spacing:0}
/* Shared rows align the issue and headline by their first text baselines.
   Keep the number on the first title line when a headline wraps. */
@media(min-width:701px){
  .home-content .feature-link{grid-template-rows:auto auto auto auto;row-gap:0}
  .home-content .feature-link>.issue-number,.home-content .feature-main{display:contents}
  .home-content .feature-link>.issue-number>span{grid-column:1;grid-row:1;align-self:first baseline}
  .home-content .feature-link>.issue-number>strong{grid-column:1;grid-row:2;align-self:first baseline;margin:16px 0 24px}
  .home-content .feature-main>.article-meta{grid-column:2;grid-row:1;align-self:first baseline}
  .home-content .feature-main>h2{grid-column:2;grid-row:2;align-self:first baseline}
  .home-content .feature-main>p{grid-column:2;grid-row:3}
  .home-content .feature-main>.feature-bottom{grid-column:2;grid-row:4}
}
@media(max-width:700px){
  body:has(.home-layout){min-height:100svh;display:flex;flex-direction:column}
  body:has(.home-layout)>main{flex:1}
  body:has(.home-layout) .site-footer{margin-top:48px;padding-block:20px 28px}
  .footer-wordmark,.footer-wordmark span,.site-footer>a:last-of-type{font:400 11px/1.6 var(--sans);letter-spacing:0}
}
