/* 姚大志 · 图版：一册《百科全书》式的图版。书页是暖白的纸，图版印在更白的厚纸上，四周压出铜版的压痕；
   只有墨色，悬停时器物上淡淡刷一层藤黄（工程图的“淡彩”），唯一的暖色是夏普塔尔炉膛里的一点火。 */
.c-yao-dazhi {
  --bg: #ece6d9; --paper: #f8f5ee; --ink: #221f1a; --ink-2: #48423a; --ink-3: #635b4f; --rule: rgba(34, 31, 26, .2);
  --acc: #93302f; --acc-ink: #f8f5ee; --wash: #efd798; --wash-2: rgba(222, 178, 66, .32); --ember: #d2702a;
  --head: "Noto Serif SC", "Songti SC", serif; --body: "Noto Serif SC", "Songti SC", serif;
  --lat: "Baskervville", "Noto Serif SC", Georgia, serif;
  --bar-bg: rgba(236, 230, 217, .94); --chip-bg: rgba(248, 245, 238, .92); --chip-ring: #f8f5ee;
  background: var(--bg);
}
.c-yao-dazhi .dlg { --dlg-bg: #ebe5d8; --dlg-paper: #fbf9f4; --dlg-ink: #221f1a; --dlg-ink-2: #48423a; --dlg-ink-3: #635b4f;
  --dlg-me: #221f1a; --dlg-me-ink: #f8f5ee; --dlg-acc: #93302f; }
.yd-defs { position: absolute; width: 0; height: 0; overflow: hidden; }

/* 页头与目录 */
.c-yao-dazhi .c3bar { border-bottom: 0; box-shadow: 0 1px 0 var(--ink), 0 4px 0 -2px var(--ink); }
.c-yao-dazhi .c3bar__prog { bottom: -5px; height: 2px; background: var(--acc); }
.c-yao-dazhi .c3toc a { font-family: var(--lat); font-size: 13px; color: var(--ink-3); }
.c-yao-dazhi .c3toc a b { min-width: 2.2em; text-align: right; font-style: italic; font-weight: 400; }
.c-yao-dazhi .c3toc a span { font-family: var(--body); font-size: 12.5px; }
.c-yao-dazhi .c3toc a::after { width: 12px; height: 9px; border: 1px solid currentColor; border-radius: 0; box-shadow: inset 0 0 0 1.5px var(--bg); }
.c-yao-dazhi .c3toc a[aria-current="true"] { color: var(--ink); }
.c-yao-dazhi .c3toc a[aria-current="true"]::after { background: var(--wash); border-color: var(--ink); }

/* ---------------- 图版 ---------------- */
.yd-plate { margin: 0; }
.yd-sheet { position: relative; padding: 26px 26px 12px; background: var(--paper);
  box-shadow: 0 1px 1px rgba(34, 31, 26, .12), 0 18px 34px -22px rgba(34, 31, 26, .5); }
/* 铜版压痕 */
.yd-sheet::before { content: ""; position: absolute; inset: 11px; pointer-events: none;
  box-shadow: inset 1px 1px 0 rgba(34, 31, 26, .09), inset -1px -1px 0 rgba(255, 255, 255, .9), 1px 1px 0 rgba(255, 255, 255, .8), -1px -1px 0 rgba(34, 31, 26, .07); }
.yd-pno { position: absolute; top: 4px; right: 28px; font-family: var(--lat); font-style: italic; font-size: 15px; color: var(--ink); }
.yd-frame { position: relative; border: 2px solid var(--ink); padding: 6px; box-shadow: inset 0 0 0 3px var(--paper), inset 0 0 0 4px var(--ink); }
.yd-sig { display: flex; justify-content: space-between; gap: 12px; margin: 5px 2px 0; font-family: var(--lat); font-style: italic; font-size: 12px; line-height: 1.4; color: var(--ink-2); }
.yd-pt { margin: 4px 0 0; text-align: center; font-family: var(--body); font-size: 15px; letter-spacing: .06em; color: var(--ink); }
.yd-pt i { margin-right: .5em; font-family: var(--lat); font-size: 19px; letter-spacing: 0; }
.yd-cap { margin: 10px 2px 0; font-size: 12.5px; line-height: 1.65; color: var(--ink-3); }
.yd-plate img { display: block; width: 100%; height: auto; mix-blend-mode: multiply; }
.yd-vig { border-bottom: 2px solid var(--ink); }

/* SVG 刻线 */
.yd-s { fill: none; stroke: var(--ink); stroke-width: 1.4; stroke-linejoin: round; stroke-linecap: round; }
.yd-s2 { fill: none; stroke: var(--ink); stroke-width: .9; stroke-linecap: round; }
.yd-pf { fill: var(--paper); transition: fill .35s; }
.yd-l { font-family: var(--lat); font-style: italic; font-size: 13px; fill: var(--ink); }
.yd-fn { font-family: var(--lat); font-style: italic; font-size: 14px; fill: var(--ink); }
.yd-t { font-family: var(--body); font-size: 13px; fill: var(--ink); }
.yd-t--s { font-size: 11.5px; fill: var(--ink-2); }
.yd-t--in { font-size: 17px; }
.yd-t--ch { font-size: 15px; fill: var(--ink-2); }
.yd-t--yr { font-family: var(--lat); font-size: 14px; letter-spacing: .06em; fill: var(--ink-2); }
.yd-t--g { font-size: 15px; font-weight: 700; }
.yd-t--q { font-size: 22px; font-weight: 700; fill: var(--acc); }
.yd-t--gl { font-size: 19px; font-weight: 700; }
.yd-t--gl2 { font-size: 16px; fill: var(--ink-2); }
.yd-th { fill: none; stroke: var(--ink); stroke-width: 2.6; stroke-linecap: round; }
.yd-tha { fill: none; stroke: var(--paper); stroke-width: 6; }
.yd-thb { fill: none; stroke: var(--ink); stroke-width: 3.8; stroke-linecap: round; }
.yd-thb2 { fill: none; stroke: var(--paper); stroke-width: 1.6; stroke-linecap: round; }
.yd-pinb { stroke: var(--ink); stroke-width: 3.4; stroke-linecap: round; }
.yd-door { fill: var(--ink); }
.yd-flame { fill: var(--ember); }
.yd-beam { stroke: var(--ink); stroke-width: 3; stroke-linecap: round; }

/* ---------------- 首屏：第一图版 ---------------- */
.c-yao-dazhi .c3hero { padding: calc(var(--bar) + 26px) clamp(16px, 4vw, 64px) 40px; }
.yd-hero { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); grid-template-areas: "id pl" "rel pl" "bk pl" "lg pl" "go pl" ". pl";
  grid-template-rows: auto auto auto auto auto 1fr; column-gap: clamp(28px, 4vw, 64px); align-items: start; max-width: 1300px; margin: 0 auto; }
.yd-id { grid-area: id; padding-top: 14px; }
.yd-hero > .yd-rel { grid-area: rel; }
.yd-hero > .yd-lg { grid-area: lg; }
.yd-hero > .yd-bk { grid-area: bk; }
.yd-hero > .yd-go { grid-area: go; margin: 14px 0 0; }
.yd-hero > .yd-plate { grid-area: pl; }
.yd-kick { margin: 0; font-size: 13px; letter-spacing: .14em; color: var(--ink-3); }
.yd-name { margin: 4px 0 0; font-family: var(--head); font-weight: 900; font-size: clamp(60px, 7vw, 100px); line-height: 1; letter-spacing: .08em; }
.yd-en { margin: 10px 0 14px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; font-family: var(--lat); font-size: 24px; }
.yd-who { margin: 0 0 4px; font-size: 18.5px; font-weight: 700; line-height: 1.55; }
.yd-now { margin: 0 0 14px; font-size: 14px; line-height: 1.65; color: var(--ink-2); }
.yd-rel { margin: 0 0 12px; padding: 10px 14px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--rule), inset 3px 0 0 var(--ink); }
.yd-rel p { margin: 0; font-size: 14px; line-height: 1.75; }
.yd-rel .mk { margin-bottom: 2px; color: var(--ink); font-weight: 700; letter-spacing: .1em; }
.yd-bk { margin: 0 0 14px; font-size: 14px; line-height: 1.8; }
.yd-bk .mk { display: inline; margin-right: 8px; font-weight: 700; color: var(--ink); }
.yd-bk small { margin-left: 4px; font-family: var(--lat); font-size: 13px; color: var(--ink-3); }
.c-yao-dazhi .c3-btn { border-radius: 0; font-family: var(--body); min-height: 42px; }
.c-yao-dazhi .c3-btn--go { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.c-yao-dazhi .c3-btn--deep { background: transparent; color: var(--ink); border-color: var(--ink); box-shadow: inset 0 0 0 2px var(--bg), inset 0 0 0 3px var(--ink); }
.c-yao-dazhi .c3-btn:hover { background: var(--wash); color: var(--ink); }

.yd-plate--hero .yd-sheet { padding: 24px 22px 10px; }
.yd-vigw { border-bottom: 2px solid var(--ink); box-shadow: 0 3px 0 var(--paper), 0 4px 0 var(--ink); margin-bottom: 4px; }
.yd-bas { display: block; width: 100%; height: auto; overflow: visible; }
.yd-hf { cursor: pointer; outline: none; }
.yd-hf__bg { fill: transparent; transition: fill .3s; }
.yd-hf:hover .yd-hf__bg, .yd-hf:focus-visible .yd-hf__bg, .yd-hf.is-hot .yd-hf__bg { fill: rgba(222, 178, 66, .1); }
.yd-hf:hover .yd-pf, .yd-hf:focus-visible .yd-pf, .yd-hf.is-hot .yd-pf { fill: var(--wash); }
.yd-hf:focus-visible .yd-hf__bg { stroke: var(--acc); stroke-width: 2; }
.yd-hf .yd-fn { transition: fill .3s; }
.yd-hf:hover .yd-fn, .yd-hf:focus-visible .yd-fn, .yd-hf.is-hot .yd-fn { fill: var(--acc); }
.yd-hf:hover .yd-flame, .yd-hf.is-hot .yd-flame { animation: yd-flick .5s ease-in-out infinite alternate; transform-box: fill-box; transform-origin: 50% 100%; }
@keyframes yd-flick { from { transform: scale(1, .92); } to { transform: scale(.94, 1.08); } }

.yd-lg { margin: 0; }
.yd-lg__h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; margin: 0 0 2px; padding-bottom: 4px; font-size: 12.5px; color: var(--ink-3); border-bottom: 1px solid var(--ink); }
.yd-lg__h span { font-family: var(--lat); font-variant: small-caps; font-size: 16px; letter-spacing: .08em; color: var(--ink); }
.yd-lg ol { list-style: none; margin: 0; padding: 0; }
.yd-lg a { display: grid; grid-template-columns: 3.4em 2.9em minmax(0, 1fr) auto; column-gap: 6px; align-items: baseline;
  min-height: 40px; padding: 7px 6px 5px; text-decoration: none; border-bottom: 1px dotted var(--rule); transition: background .25s; }
.yd-lg a i { font-family: var(--lat); font-size: 14px; color: var(--ink-2); }
.yd-lg a b { font-family: var(--lat); font-weight: 400; font-size: 15px; color: var(--ink-2); }
.yd-lg__q { font-size: 15px; line-height: 1.45; }
.yd-lg__o { font-size: 12px; color: var(--ink-3); }
.yd-lg a:hover, .yd-lg a:focus-visible, .yd-lg a.is-hot { background: var(--wash-2); }
.yd-lg a:hover .yd-lg__q, .yd-lg a.is-hot .yd-lg__q { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }

/* 首屏下面的两栏“正文页” */
.yd-band { max-width: 1300px; margin: 44px auto 0; padding-top: 22px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 44px;
  box-shadow: 0 -1px 0 var(--ink), 0 -5px 0 -3px var(--ink); position: relative; }
.yd-band::before { content: ""; position: absolute; top: 22px; bottom: 0; left: 50%; border-left: 1px solid var(--rule); }
.yd-band .mk { margin: 0 0 6px; font-size: 12.5px; font-weight: 700; letter-spacing: .14em; color: var(--ink); }
.yd-mk2 { margin-top: 20px !important; }
.yd-facts { margin: 0; font-size: 14.5px; line-height: 1.9; text-indent: 2em; text-align: justify; color: var(--ink-2); }
.c-yao-dazhi .c3-feats { margin: 0; padding: 0; list-style: none; counter-reset: f; }
.c-yao-dazhi .c3-feats li { counter-increment: f; position: relative; padding: 4px 0 4px 2.4em; font-size: 14.5px; line-height: 1.65; border-bottom: 1px dotted var(--rule); }
.c-yao-dazhi .c3-feats li::before { content: counter(f) "."; position: absolute; left: 0; font-family: var(--lat); font-style: italic; color: var(--ink-2); }
.c-yao-dazhi .c3-books li, .c-yao-dazhi .c3-links li { font-size: 14.5px; border-bottom-style: dotted; }

/* ---------------- 每一问：一页图版说明＋一幅图版 ---------------- */
.c-yao-dazhi .c3q { display: block; padding: calc(var(--bar) + 30px) clamp(16px, 4vw, 64px) 56px; }
.yd-spread { position: relative; display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); grid-template-areas: "hd art" "tx art";
  grid-template-rows: auto 1fr; gap: 0 clamp(36px, 5vw, 80px); max-width: 1300px; margin: 0 auto; }
/* 书脊：两页之间的一道折痕阴影 */
.yd-spread::before { content: ""; position: absolute; top: -10px; bottom: -10px; left: calc(46% - 1px); width: 2px; pointer-events: none;
  background: linear-gradient(180deg, transparent, rgba(34, 31, 26, .12) 12%, rgba(34, 31, 26, .12) 88%, transparent); }
.yd-hd { grid-area: hd; }
.yd-art { grid-area: art; align-self: start; }
.yd-tx { grid-area: tx; }
.yd-qk { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 0 0 14px; padding-bottom: 6px;
  border-bottom: 1px solid var(--ink); box-shadow: 0 3px 0 -2px var(--ink); font-size: 12.5px; color: var(--ink-3); }
.yd-qk span:first-child { font-family: var(--lat); font-variant: small-caps; font-size: 18px; letter-spacing: .08em; color: var(--ink); }
.c-yao-dazhi .c3q__when { margin: 0; gap: 4px; }
.c-yao-dazhi .c3q__when b { font-family: var(--lat); font-weight: 400; font-size: 40px; line-height: 1; color: var(--ink); }
.c-yao-dazhi .c3q__when span { font-size: 14px; color: var(--ink-2); }
.c-yao-dazhi .c3q__q { margin: 8px 0 18px; font-size: clamp(30px, 3.3vw, 44px); line-height: 1.28; letter-spacing: .02em; }
.c-yao-dazhi .c3q__lede { margin: 0 0 16px; font-size: 16.5px; line-height: 1.95; text-indent: 2em; text-align: justify; }
.c-yao-dazhi .c3-quote { margin: 18px 0; padding: 12px 0 12px 0; border-left: 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--rule); }
.c-yao-dazhi .c3-quote blockquote p { font-size: 18px; font-weight: 700; line-height: 1.75; }
.c-yao-dazhi .c3-quote figcaption { color: var(--ink-3); }
.c-yao-dazhi .c3-orig { font-family: var(--lat); font-size: 15px; color: var(--ink-2); }
.c-yao-dazhi .c3-tags li { border-radius: 0; border-color: var(--ink-3); color: var(--ink-2); font-size: 13px; }
.c-yao-dazhi .c3-works .mk, .c-yao-dazhi .c3-talk .mk { font-weight: 700; color: var(--ink); }
.c-yao-dazhi .c3-works li { border-bottom: 1px dotted var(--rule); padding: 5px 0; }
.c-yao-dazhi .c3-works a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
.c-yao-dazhi .talk { border-radius: 2px; border-color: var(--ink); background: var(--paper); }
.c-yao-dazhi .c3-ask { border-radius: 0; border: 1px solid var(--ink-3); background: var(--paper); }
.c-yao-dazhi .c3-deeplink { text-decoration-thickness: 1px; text-underline-offset: 4px; }

/* 图版下的控件、读数、注 */
.yd-ctl { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 14px 0 0; }
.yd-ctl__k { margin-right: 4px; font-size: 14px; font-weight: 700; }
.yd-st { display: inline-flex; align-items: center; gap: 6px; min-height: 42px; padding: 6px 13px; border: 1px solid var(--ink); border-radius: 0;
  background: var(--paper); color: var(--ink); font: inherit; font-size: 14px; line-height: 1.3; cursor: pointer; transition: background .2s, color .2s; }
.yd-st i { font-family: var(--lat); font-size: 15px; }
.yd-st:hover { background: var(--wash); }
.yd-st[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.yd-st--go { box-shadow: inset 0 0 0 2px var(--paper), inset 0 0 0 3px var(--ink); font-weight: 700; }
.yd-out { margin: 10px 0 0; min-height: 3.6em; padding: 10px 14px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--rule), inset 3px 0 0 var(--wash);
  font-size: 14.5px; line-height: 1.8; color: var(--ink); }
.yd-note { margin: 10px 0 0; font-size: 13px; line-height: 1.75; color: var(--ink-3); }

/* 一、一只编了号的手 */
.yd-dr { position: relative; }
.yd-dr__ov { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.yd-dr__wash { fill: #e9c56a; opacity: 0; mix-blend-mode: multiply; transition: opacity 1.2s; }
.yd-dr__patch rect { fill: var(--paper); }
.yd-dr__patch { opacity: 0; transition: opacity 1s; }
.yd-dr__rule { stroke: var(--acc); stroke-width: 2.4; stroke-dasharray: 10 8; fill: none; transition: opacity .8s; }
.yd-dr__rule .yd-dr__arc { stroke-dasharray: 4 5; }
.yd-dr__rule text { stroke: none; fill: var(--acc); font-family: var(--lat); font-style: italic; font-size: 30px; }
.yd-dr__ring { fill: none; stroke: var(--acc); stroke-width: 2.4; transition: opacity .8s; }
.yd-dr[data-st="2"] .yd-dr__rule { opacity: .6; }
.yd-dr[data-st="3"] .yd-dr__rule { opacity: .22; }
.yd-dr[data-st="3"] .yd-dr__ring { opacity: .45; }
.yd-dr[data-st="4"] .yd-dr__rule, .yd-dr[data-st="5"] .yd-dr__rule, .yd-dr[data-st="4"] .yd-dr__ring, .yd-dr[data-st="5"] .yd-dr__ring { opacity: 0; }
.yd-dr[data-st="4"] .yd-dr__patch { opacity: .6; }
.yd-dr[data-st="5"] .yd-dr__patch { opacity: 1; }
.yd-dr[data-st="5"] .yd-dr__wash { opacity: .62; }

/* 二、两股丝线 */
.yd-gl__svg { display: block; width: 100%; height: auto; margin-top: 6px; }
.yd-gl__a, .yd-gl__b, .yd-gl__c { transition: opacity .6s; }
.yd-gl[data-gm="a"] .yd-gl__b, .yd-gl[data-gm="a"] .yd-gl__c { opacity: 0; }
.yd-gl[data-gm="b"] .yd-gl__a, .yd-gl[data-gm="c"] .yd-gl__a { opacity: 0; }
.yd-gl[data-gm="b"] .yd-gl__c { opacity: 0; }
.yd-gl__after { stroke-dasharray: 3 7; opacity: .7; }
.yd-q { fill: none; stroke: var(--acc); stroke-width: 1.6; stroke-dasharray: 4 4; }
.yd-gl[data-gm="c"] .yd-gl__blk { opacity: .35; }

/* 三、读一幅图版 */
.yd-plate--full .yd-sheet { padding: 28px 14px 14px; }
.yd-plate--own .yd-pno { display: none; }
.yd-plate--own .yd-sheet { padding-top: 14px; }
.yd-plate--full .yd-frame { border: 0; padding: 0; box-shadow: none; }
.yd-ar { position: relative; }
.yd-ar__veil { position: absolute; left: 0; right: 0; top: 41.5%; bottom: 7%; display: flex; align-items: center; justify-content: flex-start; padding-left: 12%; pointer-events: none;
  background: rgba(248, 245, 238, .84); box-shadow: 0 -1px 0 rgba(34, 31, 26, .25), 0 6px 20px rgba(34, 31, 26, .18);
  backdrop-filter: blur(2.5px); -webkit-backdrop-filter: blur(2.5px); transform-origin: 50% 0; transform: scaleY(0); opacity: 0;
  transition: transform .8s cubic-bezier(.5, 0, .2, 1), opacity .6s; }
.yd-ar__veil span { padding: 6px 16px; border: 2px solid var(--acc); color: var(--acc); font-size: 18px; font-weight: 900; letter-spacing: .4em; transform: rotate(-6deg);
  box-shadow: inset 0 0 0 2px var(--paper), inset 0 0 0 3px var(--acc); }
.yd-ar[data-veil="1"] .yd-ar__veil { transform: scaleY(1); opacity: 1; }
.yd-pin { position: absolute; width: 40px; height: 40px; margin: -20px 0 0 -20px; padding: 0; border: 0; background: transparent; cursor: pointer; display: grid; place-items: center; z-index: 2; }
.yd-pin span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--ink); color: var(--paper);
  font-family: var(--lat); font-style: italic; font-size: 14px; line-height: 1; box-shadow: 0 0 0 2px var(--paper), 0 2px 8px rgba(0, 0, 0, .3); transition: transform .2s, background .2s; }
.yd-pin:hover span, .yd-pin:focus-visible span, .yd-pin.is-on span { background: var(--acc); transform: scale(1.18); }
.yd-pin:focus-visible { outline: none; }
.yd-ar__hl { position: absolute; z-index: 1; display: block; pointer-events: none; border: 2px solid var(--acc); box-shadow: 0 0 0 3px rgba(248, 245, 238, .8), inset 0 0 0 2000px rgba(222, 178, 66, .14);
  opacity: 0; transition: opacity .25s, left .3s, top .3s, width .3s, height .3s; }
.yd-ar__hl.is-on { opacity: 1; }
.yd-pin:focus-visible span { outline: 2px solid var(--acc); outline-offset: 3px; }
.yd-pins { list-style: none; margin: 12px 0 0; padding: 0; columns: 2; column-gap: 20px; font-size: 13px; line-height: 1.6; color: var(--ink-2); }
.yd-pins li { break-inside: avoid; display: grid; grid-template-columns: 1.6em minmax(0, 1fr); column-gap: 6px; padding: 4px 6px; transition: background .25s; }
.yd-pins li b { grid-row: span 2; font-family: var(--lat); font-style: italic; font-weight: 400; font-size: 15px; color: var(--ink); }
.yd-pins li i { font-family: var(--lat); font-size: 14px; color: var(--ink); }
.yd-pins li.is-on { background: var(--wash-2); color: var(--ink); }

/* 四、造工程师的机器 */
.yd-plate--tall .yd-frame { padding: 10px 12px 8px; }
.yd-eg { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 4px 16px; align-items: center; }
.yd-eg__svg { display: block; width: 100%; height: auto; max-height: 66vh; margin: 0 auto; }
.yd-eg__h { margin: 0 0 4px; padding-bottom: 3px; border-bottom: 1px solid var(--ink); font-family: var(--lat); font-variant: small-caps; font-size: 15px; letter-spacing: .08em; }
.yd-eg__n { margin: 10px 0 0; font-size: 12.5px; line-height: 1.7; color: var(--ink-2); }
.yd-chan { fill: none; stroke: var(--ink); stroke-width: 1.4; }
.yd-route { fill: none; stroke: none; }
.yd-sw { transition: transform .5s cubic-bezier(.5, 0, .2, 1); transform-origin: 260px 318px; }
.yd-sw__f { fill: none; stroke: var(--ink); stroke-width: 5; stroke-linecap: round; }
.yd-eg[data-sw="r"] .yd-sw { transform: rotate(104deg); }
.yd-roll__s { transform-box: fill-box; transform-origin: 50% 50%; }
.yd-eg.is-run .yd-roll__s { animation: yd-spin 1.4s linear infinite; }
@keyframes yd-spin { to { transform: rotate(360deg); } }
.yd-balls circle { fill: var(--paper); stroke: var(--ink); stroke-width: 1.4; }
.yd-balls circle.is-done { fill: var(--wash); }
.yd-co__c { fill: var(--paper); stroke: var(--ink); stroke-width: 1.1; transition: fill .25s; }
.yd-co__n { font-family: var(--lat); font-style: italic; font-size: 17px; fill: var(--ink); }
.yd-co.is-on .yd-co__c { fill: var(--wash); }
.yd-parts { list-style: none; margin: 0; padding: 0; font-size: 13.5px; }
.yd-parts li { display: flex; gap: 6px; align-items: baseline; padding: 3px 4px; border-bottom: 1px dotted var(--rule); cursor: default; transition: background .25s; }
.yd-parts li b { font-family: var(--lat); font-style: italic; font-weight: 400; color: var(--ink-2); min-width: 1.3em; }
.yd-parts li.is-on { background: var(--wash-2); }

/* 五、两只齿轮 */
.yd-ch { position: relative; }
.yd-ch__svg { display: block; width: 100%; height: auto; touch-action: none; }
.yd-gr { cursor: grab; outline: none; }
.yd-gr.is-drag { cursor: grabbing; }
.yd-gr:focus-visible .yd-gr__body { stroke: var(--acc); stroke-width: 2.6; }
.yd-gr:hover .yd-gr__body, .yd-gr.is-on .yd-gr__body { fill: var(--wash); }
.yd-gr__plate { fill: var(--paper); stroke: var(--ink); stroke-width: 1.1; }
.yd-ch__tp { position: absolute; right: 0; bottom: 0; width: 23%; padding: 4px; background: var(--paper); box-shadow: 0 0 0 1px var(--rule); }
.c-yao-dazhi .yd-echo { display: flex; align-items: center; gap: 12px; margin: 12px 0 0; padding: 10px 14px; min-height: 44px; text-decoration: none; color: #f3e7d6;
  background: radial-gradient(120% 140% at 0% 50%, #3a1d10, #160f0b 70%); box-shadow: inset 0 0 0 1px rgba(255, 154, 61, .35); }
.yd-echo span:last-child { font-size: 13px; line-height: 1.6; }
.yd-echo b { display: block; font-size: 14px; color: #ffb36b; }
.yd-echo__f { flex: none; width: 18px; height: 28px; border-radius: 50% 50% 46% 46% / 62% 62% 38% 38%;
  background: radial-gradient(60% 50% at 50% 72%, #fff3c4, #ffb347 46%, #e0561e 78%, transparent 80%); filter: blur(.3px); transform-origin: 50% 90%;
  animation: yd-flick 1.3s ease-in-out infinite alternate; }
.c-yao-dazhi .yd-echo:hover { box-shadow: inset 0 0 0 1px #ff9a3d; }

/* 六、三本账 */
.yd-fd { display: grid; grid-template-columns: 30% minmax(0, 1fr); gap: 18px; align-items: center; }
.yd-fd__svg { display: block; width: 100%; height: auto; }
.yd-fd__svg [data-fund] { transition: opacity .5s; opacity: 0; }
.yd-fd[data-fund="uk"] .yd-fd__svg [data-fund="uk"], .yd-fd[data-fund="de"] .yd-fd__svg [data-fund="de"], .yd-fd[data-fund="cn"] .yd-fd__svg [data-fund="cn"] { opacity: 1; }
.yd-ghost rect { stroke-dasharray: 4 4; }
.yd-ghost text { fill: var(--ink-2); }
.yd-fd__tp { margin: 0; }
.yd-fd__tp img { box-shadow: 0 0 0 1px var(--rule); }
.yd-fd__tp figcaption { margin-top: 8px; font-size: 12px; line-height: 1.6; color: var(--ink-3); }
.yd-t--f { font-size: 16px; }
.yd-t--fs { font-size: 13.5px; fill: var(--ink-2); }
.yd-t--pd { font-family: var(--lat); font-size: 13px; fill: var(--ink); }

/* ---------------- 书末 ---------------- */
.c-yao-dazhi .c3end { padding: calc(var(--bar) + 30px) clamp(16px, 4vw, 64px) 64px; }
.yd-end { max-width: 1100px; margin: 0 auto; }
.c-yao-dazhi .c3end h2 { margin: 0 0 18px; font-weight: 900; }
.c-yao-dazhi .c3-lin li { border-radius: 0; background: var(--paper); border-color: var(--rule); box-shadow: inset 0 3px 0 -2px var(--ink); }
.yd-tail { margin: 36px 0 18px; padding: 18px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); box-shadow: 0 3px 0 -2px var(--ink), 0 -3px 0 -2px var(--ink); }
.yd-jt { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 20px; align-items: center; }
.yd-jt__svg { display: block; width: 100%; height: auto; }
.yd-hid { fill: none; stroke: var(--ink); stroke-width: 1; stroke-dasharray: 4 3; }
.yd-jt__rail { transition: transform .9s cubic-bezier(.5, 0, .2, 1); transform: translateX(-24px); }
.yd-jt[data-join="1"] .yd-jt__rail { transform: translateX(54px); }
.yd-jt__t p { margin: 10px 0 0; font-size: 14px; line-height: 1.8; color: var(--ink-2); }

@media (max-width: 1100px) {
  .yd-hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); }
  .yd-name { font-size: clamp(56px, 7vw, 90px); }
}
@media (max-width: 960px) {
  .yd-hero { grid-template-columns: minmax(0, 1fr); grid-template-areas: "id" "rel" "bk" "lg" "go" "pl"; grid-template-rows: auto; }
  .yd-hero > .yd-plate { margin: 26px 0 0; }
  .yd-id { padding-top: 0; }
  .yd-band { grid-template-columns: minmax(0, 1fr); }
  .yd-band::before { display: none; }
  .yd-band__c + .yd-band__c { margin-top: 22px; }
  .yd-spread { grid-template-columns: minmax(0, 1fr); grid-template-areas: "hd" "art" "tx"; grid-template-rows: auto; }
  .yd-spread::before { display: none; }
  .yd-art { position: static; margin: 4px 0 24px; }
  .yd-eg__svg { max-height: none; }
}
@media (max-width: 600px) {
  .yd-sheet { padding: 22px 12px 10px; }
  .yd-sheet::before { inset: 6px; }
  .yd-pno { right: 14px; top: 2px; font-size: 13px; }
  .yd-frame { padding: 5px; }
  .yd-plate--hero .yd-sheet { padding: 22px 10px 8px; }
  .yd-pins { columns: 1; }
  .yd-sig { font-size: 11px; }
  .yd-ch__tp { width: 30%; }
  .yd-fd { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .yd-fd__d { order: -1; }
  .yd-fd__tp { display: grid; grid-template-columns: 36% minmax(0, 1fr); gap: 12px; align-items: end; }
  .yd-fd__tp figcaption { margin: 0; }
  .yd-eg { grid-template-columns: minmax(0, 1fr); }
  .yd-eg__svg { max-height: 60vh; }
  .yd-parts { columns: 2; column-gap: 14px; }
  .yd-parts li { break-inside: avoid; }
  .yd-jt { grid-template-columns: minmax(0, 1fr); }
  .yd-pin { width: 40px; height: 40px; }
  .yd-pin span { width: 20px; height: 20px; font-size: 12px; }
  .c-yao-dazhi .c3q__lede { font-size: 16px; }
  .yd-st { padding: 6px 10px; font-size: 13.5px; }
}

.c-yao-dazhi .rel { white-space: nowrap; }
