/* Dongjing Meng Hua Lu — city-memory reading system, 2026-08-31 */
:root{--dj-paper:#f2ede2;--dj-ink:#181613;--dj-muted:#746a57;--dj-rule:#cbc0a8;--dj-red:#9d3320;--dj-jade:#4d473c;--dj-gold:#a2957a;--dj-soft:#e6ddcc;--dj-night:#181613}
.dongjing-page{margin:0;background:var(--dj-paper);color:var(--dj-ink);font-family:var(--dj-serif)}
.dongjing-page *{box-sizing:border-box}.dongjing-page ::selection{background:var(--dj-red);color:#ffffff}.dongjing-page a{color:inherit}.dongjing-page .site-nav{background:rgba(242,237,226,.96);border-bottom:1px solid var(--dj-rule);color:var(--dj-ink);backdrop-filter:blur(12px)}
.dj-shell{width:min(1480px,calc(100% - 64px));margin:0 auto;padding-bottom:100px}.dj-kicker,.dj-meta,.dj-label{font:760 .75rem/1.25 var(--dj-mono);letter-spacing:.11em;text-transform:uppercase}.dj-kicker,.dj-label{color:var(--dj-red)}
.dj-title-zh{font-family:var(--dj-song);font-weight:400;font-synthesis:none}.dj-serif{font-family:var(--dj-song);font-weight:400;font-synthesis:none}

/* room hero */
.dj-room-hero{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(420px,.78fr);min-height:78svh;border-bottom:1px solid var(--dj-ink)}.dj-room-copy{display:flex;flex-direction:column;padding:38px 58px 50px 0;border-right:1px solid var(--dj-ink)}.dj-room-meta{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:15px;border-bottom:1px solid var(--dj-rule)}.dj-room-meta span:nth-child(2){color:var(--dj-red)}.dj-room-title{margin:auto 0 36px}.dj-room-title p{margin:0 0 22px;color:var(--dj-red);font:760 .75rem/1.2 var(--dj-mono);letter-spacing:.13em}.dj-room-title h1{margin:0;font-size:clamp(5.5rem,10.7vw,11.5rem);line-height:.78;letter-spacing:.065em}.dj-room-title h2{margin:28px 0 0;max-width:820px;font-size:clamp(2.4rem,4.8vw,5.4rem);font-weight:610;line-height:.88;letter-spacing:-.055em}.dj-room-deck{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:34px;align-items:end;padding-top:24px;border-top:1px solid var(--dj-rule)}.dj-room-deck p{max-width:63ch;margin:0;color:var(--dj-muted);font-family:var(--dj-serif);font-size:clamp(1.02rem,1.28vw,1.24rem);line-height:1.62}.dj-room-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}.dj-room-actions a{padding:8px 0 5px;border-bottom:1px solid;text-decoration:none;font-size:.75rem;font-weight:800;letter-spacing:.08em}.dj-room-actions a:hover{color:var(--dj-red)}
.dj-room-art{position:relative;min-width:0;margin:0;overflow:hidden;background:#cfc3ad}.dj-room-art img{width:100%;height:100%;object-fit:cover;object-position:67% center;filter:saturate(.72) contrast(.96)}.dj-room-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(16,14,12,.48))}.dj-room-art figcaption{position:absolute;z-index:2;left:22px;right:22px;bottom:20px;padding-top:14px;border-top:1px solid rgba(255,255,255,.7);color:#ffffff;font:700 .75rem/1.45 var(--dj-mono);letter-spacing:.06em}.dj-room-art figcaption a{text-decoration:none}.dj-room-art figcaption a:hover{text-decoration:underline}

/* room sections */
.dj-section{padding:clamp(78px,8vw,126px) 0;border-bottom:1px solid var(--dj-ink)}.dj-section-head{display:grid;grid-template-columns:180px minmax(0,1fr);gap:48px;margin-bottom:40px}.dj-section-head>p{margin:0;color:var(--dj-red);font:760 .75rem/1.2 var(--dj-mono);letter-spacing:.12em}.dj-section-head>div{display:grid;grid-template-columns:minmax(0,.86fr) minmax(260px,.42fr);gap:42px;align-items:end}.dj-section-head h2{margin:0;font-size:clamp(2.8rem,5vw,5.8rem);font-weight:590;line-height:.9;letter-spacing:-.058em}.dj-section-head span{color:var(--dj-muted);font-family:var(--dj-serif);font-size:1rem;line-height:1.6}
.dj-volume-toc{border-top:1px solid var(--dj-ink)}.dj-toc-row{display:grid;grid-template-columns:62px minmax(260px,1.1fr) minmax(250px,.8fr) 110px 92px;gap:20px;align-items:center;min-height:104px;padding:14px 0;border-bottom:1px solid var(--dj-rule);text-decoration:none}.dj-toc-row>span:first-child{color:var(--dj-red);font:760 .75rem/1 var(--dj-mono)}.dj-toc-row h3{margin:0;font-size:1.12rem;line-height:1.28}.dj-toc-row h3 small{display:block;margin-top:7px;color:var(--dj-muted);font-family:var(--dj-song);font-size:.92rem;font-weight:400}.dj-toc-row .dj-note{color:var(--dj-muted);font-family:var(--dj-serif);font-size:.87rem;line-height:1.48}.dj-toc-row .dj-state,.dj-toc-row .dj-time{font:760 .75rem/1.3 var(--dj-mono);letter-spacing:.08em}.dj-toc-row.is-live .dj-state{color:var(--dj-red)}.dj-toc-row.is-live:hover{background:rgba(255,255,255,.22)}.dj-toc-row.is-pending{color:#60584a}.dj-toc-row.is-pending .dj-state{color:var(--dj-muted)}
.dj-book-map{display:block;border-top:1px solid var(--dj-ink)}.dj-book-map article{display:grid;grid-template-columns:145px minmax(0,1fr) 112px;gap:24px;align-items:center;padding:17px 0;border-bottom:1px solid var(--dj-rule)}.dj-book-map small{color:var(--dj-red);font:760 .75rem/1.2 var(--dj-mono);letter-spacing:.09em}.dj-book-map h3{margin:0;font-size:1rem;font-weight:720;letter-spacing:.025em}.dj-book-map p{margin:0;text-align:right;color:var(--dj-muted);font:760 .75rem/1.3 var(--dj-mono);letter-spacing:.06em}.dj-book-map article.is-active{position:relative}.dj-book-map article.is-active:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;background:var(--dj-red)}.dj-book-map article.is-active small{padding-left:14px}.dj-book-map article.is-active p{color:var(--dj-red)}
.dj-scroll-window{border-top:1px solid var(--dj-ink);border-bottom:1px solid var(--dj-ink);background:#c6baa1;overflow:hidden}.dj-scroll-window img{display:block;width:220%;max-width:none;height:300px;object-fit:cover;object-position:center;transform:translateX(-31%);filter:saturate(.72) contrast(.96)}.dj-scroll-caption{display:grid;grid-template-columns:180px 1fr;gap:48px;padding:18px 0}.dj-scroll-caption p{margin:0;color:var(--dj-red);font:760 .75rem/1.2 var(--dj-mono);letter-spacing:.1em}.dj-scroll-caption div{display:flex;justify-content:space-between;gap:28px;color:var(--dj-muted);font-family:var(--dj-serif);font-size:.88rem;line-height:1.5}.dj-scroll-caption a{text-decoration:none}.dj-scroll-caption a:hover{color:var(--dj-red)}
.dj-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--dj-ink);border-left:1px solid var(--dj-rule)}.dj-source-card{min-height:210px;padding:24px;border-right:1px solid var(--dj-rule);border-bottom:1px solid var(--dj-rule);text-decoration:none}.dj-source-card small{color:var(--dj-red);font:760 .75rem/1.2 var(--dj-mono);letter-spacing:.08em}.dj-source-card h3{margin:48px 0 10px;font-family:var(--dj-serif);font-size:clamp(1.65rem,2.7vw,3rem);font-weight:400;line-height:1}.dj-source-card p{max-width:58ch;margin:0;color:var(--dj-muted);font-family:var(--dj-serif);line-height:1.55}.dj-source-card:hover{background:rgba(255,255,255,.2)}
.dj-term-note{display:grid;grid-template-columns:180px minmax(0,1fr);gap:48px;padding:28px 0;border-top:1px solid var(--dj-ink)}.dj-term-note>small{color:var(--dj-red);font:760 .75rem/1.2 var(--dj-mono);letter-spacing:.1em}.dj-term-note p{max-width:82ch;margin:0;color:var(--dj-muted);font-family:var(--dj-serif);font-size:.95rem;line-height:1.65}.dj-footer{display:flex;justify-content:space-between;gap:24px;padding:40px 0;font:760 .75rem/1.3 var(--dj-mono);letter-spacing:.08em}.dj-footer a{text-decoration:none}.dj-footer a:hover{color:var(--dj-red)}

/* entry hero */
.dj-entry-hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.62fr);min-height:68svh;border-bottom:1px solid var(--dj-ink)}.dj-entry-copy{display:flex;flex-direction:column;padding:38px 54px 48px 0;border-right:1px solid var(--dj-ink)}.dj-entry-meta{display:flex;gap:14px;justify-content:space-between;flex-wrap:wrap;padding-bottom:15px;border-bottom:1px solid var(--dj-rule)}.dj-entry-meta span:nth-child(2){color:var(--dj-red)}.dj-entry-title{margin:auto 0 36px}.dj-entry-title p{margin:0 0 18px;color:var(--dj-red);font:760 .75rem/1.2 var(--dj-mono);letter-spacing:.12em}.dj-entry-title h1{margin:0;font-size:clamp(5rem,9vw,10rem);line-height:.82;letter-spacing:.06em}.dj-entry-title h2{margin:22px 0 0;font-size:clamp(2.8rem,5.2vw,6rem);font-weight:610;line-height:.9;letter-spacing:-.055em}.dj-entry-deck{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:end;padding-top:22px;border-top:1px solid var(--dj-rule)}.dj-entry-deck p{max-width:63ch;margin:0;color:var(--dj-muted);font-family:var(--dj-serif);font-size:1.08rem;line-height:1.62}.dj-entry-deck a{text-decoration:none;font-size:.75rem;font-weight:800;letter-spacing:.08em}.dj-entry-source{position:relative;margin:0;background:#d2c7b0;overflow:hidden}.dj-entry-source .dj-paper{position:absolute;inset:0;display:grid;place-items:center;padding:50px 36px}.dj-entry-source .dj-columns{display:flex;flex-direction:row-reverse;gap:22px;height:min(51vh,520px);font-family:var(--dj-song);writing-mode:vertical-rl;color:#2b2721}.dj-entry-source .dj-columns span{font-size:clamp(1rem,1.35vw,1.3rem);letter-spacing:.15em;line-height:1.45}.dj-entry-source .dj-columns span:first-child{font-family:var(--dj-song);font-size:clamp(1.8rem,2.7vw,3rem)}.dj-entry-source img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s}.dj-entry-source.is-loaded img{opacity:1}.dj-entry-source figcaption{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:17px 20px;background:rgba(242,237,226,.95);border-top:1px solid var(--dj-ink);font:700 .75rem/1.45 var(--dj-mono);letter-spacing:.06em}.dj-entry-source figcaption b{color:var(--dj-red)}.dj-entry-source figcaption span,.dj-entry-source figcaption a{display:block}.dj-entry-source figcaption a{margin-top:4px;color:var(--dj-muted);text-decoration:none}
.dj-entry-body{display:grid;grid-template-columns:180px minmax(0,800px) minmax(250px,1fr);gap:48px;padding:clamp(76px,8vw,126px) 0;border-bottom:1px solid var(--dj-ink)}.dj-entry-side{position:sticky;top:110px;align-self:start}.dj-entry-side p{margin:0 0 10px;color:var(--dj-red);font:760 .75rem/1.2 var(--dj-mono);letter-spacing:.1em}.dj-entry-side span{display:block;color:var(--dj-muted);font-size:.75rem;line-height:1.5}.dj-entry-side a{display:inline-block;margin-top:20px;text-decoration:none;font:760 .75rem/1.3 var(--dj-mono);letter-spacing:.08em}.dj-entry-side a:hover{color:var(--dj-red)}.dj-prose{min-width:0}.dj-prose>p:first-child{margin:0 0 58px;font-family:var(--dj-serif);font-size:clamp(1.35rem,1.9vw,1.8rem);line-height:1.53}.dj-prose h2{margin:84px 0 26px;font-size:clamp(2.5rem,4.5vw,5rem);font-weight:590;line-height:.92;letter-spacing:-.052em}.dj-prose h2:first-of-type{margin-top:0}.dj-text-unit{margin:28px 0 22px;border-top:1px solid var(--dj-ink);border-bottom:1px solid var(--dj-ink)}.dj-text-unit header{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--dj-rule);font:760 .75rem/1.3 var(--dj-mono);letter-spacing:.09em}.dj-text-unit header span:first-child{color:var(--dj-red)}.dj-text-unit blockquote{margin:0;padding:30px 0 26px;font-family:var(--dj-song);font-size:clamp(1.48rem,2.25vw,2.4rem);font-weight:400;line-height:1.64;letter-spacing:.018em;font-synthesis:none}.dj-translation{padding:22px 0;border-top:1px solid var(--dj-rule);font-family:var(--dj-serif)}.dj-translation small{display:block;margin-bottom:12px;color:var(--dj-red);font:760 .75rem/1.2 var(--dj-mono);letter-spacing:.1em}.dj-translation p{margin:0;color:#3f3a31;font-size:1.05rem;line-height:1.76}.dj-text-unit footer{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:11px 0;border-top:1px solid var(--dj-rule);color:var(--dj-muted);font:700 .75rem/1.45 var(--dj-mono);letter-spacing:.06em}.dj-text-unit footer a{text-decoration:none}.dj-analysis{margin:0 0 58px;padding:24px 28px 8px;border-left:2px solid var(--dj-red);background:rgba(255,255,255,.12)}.dj-analysis small{display:block;margin-bottom:16px;color:var(--dj-red);font:760 .75rem/1.2 var(--dj-mono);letter-spacing:.1em}.dj-analysis p{margin:0 0 18px;font-family:var(--dj-serif);font-size:1.08rem;line-height:1.82}
.dj-entry-notes{align-self:start}.dj-entry-note{padding:21px;border:1px solid var(--dj-rule);margin-bottom:18px}.dj-entry-note small{display:block;margin-bottom:14px;color:var(--dj-red);font:760 .75rem/1.2 var(--dj-mono);letter-spacing:.09em}.dj-entry-note p{margin:0;color:var(--dj-muted);font-family:var(--dj-serif);font-size:.85rem;line-height:1.58}.dj-entry-note b{color:var(--dj-ink)}
.dj-visual-witness{grid-column:1/-1;margin:12px 0 70px;border-top:1px solid var(--dj-ink);border-bottom:1px solid var(--dj-ink)}.dj-visual-witness-head{display:grid;grid-template-columns:180px 1fr;gap:48px;padding:17px 0;border-bottom:1px solid var(--dj-rule)}.dj-visual-witness-head p{margin:0;color:var(--dj-red);font:760 .75rem/1.2 var(--dj-mono);letter-spacing:.1em}.dj-visual-witness-head span{color:var(--dj-muted);font-family:var(--dj-serif);font-size:.88rem}.dj-visual-witness figure{margin:0}.dj-visual-witness img{display:block;width:100%;max-height:620px;object-fit:cover;object-position:center}.dj-visual-witness figcaption{display:grid;grid-template-columns:180px 1fr;gap:48px;padding:15px 0}.dj-visual-witness figcaption b{color:var(--dj-red);font:760 .75rem/1.3 var(--dj-mono);letter-spacing:.08em}.dj-visual-witness figcaption div{display:flex;justify-content:space-between;gap:24px;color:var(--dj-muted);font-family:var(--dj-serif);font-size:.85rem;line-height:1.5}.dj-visual-witness figcaption a{text-decoration:none}.dj-visual-witness figcaption a:hover{color:var(--dj-red)}
.dj-entry-nav{display:grid;grid-template-columns:1fr auto;gap:24px;padding:34px 0;border-bottom:1px solid var(--dj-ink)}.dj-entry-nav a{text-decoration:none}.dj-entry-nav small{display:block;margin-bottom:6px;color:var(--dj-muted);font:760 .75rem/1.2 var(--dj-mono);letter-spacing:.08em}.dj-entry-nav strong{font-family:var(--dj-song);font-size:clamp(1rem,1.45vw,1.3rem);font-weight:400;letter-spacing:.025em;font-synthesis:none}.dj-entry-nav a:hover strong{color:var(--dj-red)}

@media(max-width:1080px){.dj-shell{width:min(100% - 40px,1200px)}.dj-room-hero,.dj-entry-hero{grid-template-columns:minmax(0,1fr) minmax(310px,.6fr)}.dj-section-head{grid-template-columns:130px 1fr;gap:34px}.dj-toc-row{grid-template-columns:52px minmax(220px,1fr) 1fr 92px}.dj-toc-row .dj-time{display:none}.dj-entry-body{grid-template-columns:130px minmax(0,1fr);gap:36px}.dj-entry-notes{grid-column:2}.dj-visual-witness{grid-column:1/-1}}
@media(max-width:760px){.dj-shell{width:calc(100% - 28px);padding-bottom:70px}.dj-room-hero,.dj-entry-hero{display:block;min-height:0}.dj-room-copy,.dj-entry-copy{min-height:68svh;padding:24px 0 34px;border-right:0}.dj-room-title,.dj-entry-title{margin:72px 0 34px}.dj-room-title h1{font-size:clamp(5rem,25vw,8.2rem)}.dj-entry-title h1{font-size:clamp(4.6rem,22vw,7.5rem)}.dj-room-title h2,.dj-entry-title h2{font-size:clamp(2.6rem,11vw,4.2rem)}.dj-room-deck,.dj-entry-deck{display:block}.dj-room-actions{justify-content:flex-start;margin-top:22px}.dj-room-art,.dj-entry-source{height:66svh;border-top:1px solid var(--dj-ink)}.dj-section{padding:68px 0}.dj-section-head{display:block;margin-bottom:30px}.dj-section-head>p{margin-bottom:22px}.dj-section-head>div{display:block}.dj-section-head span{display:block;margin-top:18px}.dj-toc-row{grid-template-columns:42px 1fr 80px;gap:13px;min-height:108px}.dj-toc-row .dj-note,.dj-toc-row .dj-time{display:none}.dj-book-map article{grid-template-columns:96px 1fr 72px;gap:13px}.dj-scroll-window img{height:210px;width:330%;transform:translateX(-38%)}.dj-scroll-caption,.dj-term-note{display:block}.dj-scroll-caption>p,.dj-term-note>small{display:block;margin-bottom:13px}.dj-scroll-caption div{display:block}.dj-source-grid{grid-template-columns:1fr}.dj-entry-body{display:block;padding:68px 0}.dj-entry-side{position:static;margin-bottom:36px;padding-bottom:15px;border-bottom:1px solid var(--dj-rule)}.dj-entry-notes{margin-top:50px}.dj-visual-witness-head,.dj-visual-witness figcaption{display:block}.dj-visual-witness-head p,.dj-visual-witness figcaption b{display:block;margin-bottom:10px}.dj-visual-witness figcaption div{display:block}.dj-entry-nav{grid-template-columns:1fr}}
@media(max-width:460px){.dj-shell{width:calc(100% - 22px)}.dj-room-title h1{font-size:clamp(4.3rem,23vw,6.6rem)}.dj-entry-title h1{font-size:clamp(4rem,21vw,6rem)}.dj-text-unit blockquote{font-size:clamp(1.4rem,6.7vw,2rem)}.dj-analysis{padding:20px 18px 6px}.dj-book-map article{grid-template-columns:82px 1fr 60px}}
@media(prefers-reduced-motion:reduce){.dj-entry-source img{transition:none}}

/* Reading cover sharpness fix — the temporary v2 asset is 300px wide, so never upscale it. */
.dongjing-page .dj-room-cover-frame{
  display:grid;
  place-items:center;
  padding:28px 28px 92px;
  background:#27241f;
}
.dongjing-page .dj-room-cover-frame:after{display:none}
.dongjing-page .dj-room-cover-frame img{
  width:auto;
  height:auto;
  max-width:min(100%,300px);
  max-height:calc(78svh - 118px);
  object-fit:contain;
  object-position:center;
  filter:none;
  transform:none;
}
@media(max-width:760px){
  .dongjing-page .dj-room-cover-frame{padding:24px 20px 90px}
  .dongjing-page .dj-room-cover-frame img{
    max-width:min(100%,300px);
    max-height:calc(68svh - 112px);
  }
}

/* 2026-09-02 Reading navigation normalization: old entry templates use the same display hierarchy as Volume III. */
.dj-entry-nav small{
  font-family:var(--dj-song);
  font-size:clamp(.75rem,.8vw,.78rem);
  font-weight:400;
  line-height:1.2;
  letter-spacing:.07em;
  font-synthesis:none;
}
.dj-entry-nav a:hover small{color:var(--dj-red)}