
:root{--paper:#f8f6f0;--ink:#283139;--muted:#737872;--line:#dcded7;--blue:#275585}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:4px}button{font:inherit}a:hover{color:var(--blue)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:10px;background:white;padding:12px;z-index:9}
.top{max-width:1120px;margin:auto;padding:26px 30px;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.top a{text-decoration:none;color:var(--ink)}.hero{max-width:940px;margin:auto;padding:65px 30px 32px}.eyebrow{font-size:12px;color:var(--blue);letter-spacing:.12em;margin:0 0 22px}h1{font-family:"Songti SC",STSong,serif;font-size:clamp(33px,4.2vw,51px);font-weight:600;line-height:1.42;margin:0;letter-spacing:-.025em;text-wrap:balance}.dek{font-size:18px;line-height:1.9;max-width:760px;color:#666e70;margin:24px 0}.meta{display:flex;gap:10px 23px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:27px}.meta time{color:var(--ink)}
.contents{max-width:820px;padding:15px 20px 28px;margin:auto;border-bottom:1px solid var(--line)}.contents summary{font-size:13px;cursor:pointer;color:var(--blue)}.toc{display:grid;grid-template-columns:1fr 1fr;gap:13px 25px;padding:22px 0 0}.toc a{font-size:12px;text-decoration:none;color:#646d73;display:flex;gap:12px;align-items:baseline}.toc small{font:12px Georgia,serif;color:var(--blue)}
.prose{max-width:820px;margin:auto;padding:30px 20px 70px;font-size:18px;line-height:1.98;overflow-wrap:anywhere}.prose p{margin:0 0 21px}.opening{padding:5px 0 4px}.opening p:first-child{font-size:20px;line-height:1.9}.part{padding-top:27px;margin-top:10px;scroll-margin-top:24px}.part h2{font-size:26px;font-weight:600;line-height:1.55;margin:0 0 24px;text-wrap:pretty}.part h2:before{content:"";display:block;width:32px;height:2px;background:var(--blue);margin:0 0 19px}strong{font-weight:620}
.photo{margin:30px -70px 29px}.photo button{display:block;background:none;border:0;padding:0;width:100%;cursor:zoom-in}.photo img{display:block;width:100%;height:auto}.photo figcaption{font-size:12px;line-height:1.75;color:var(--muted);padding-top:12px;display:flex;gap:23px;justify-content:space-between}.zoom-hint{white-space:nowrap;color:var(--blue)}.photo.workbench{padding:14px;background:#ece9e1;border:1px solid #dedacf}.photo.workbench figcaption{padding:11px 3px 0}.photo.connection{margin-top:27px}
table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.85;margin:26px 0}caption{text-align:left;font-size:12px;color:var(--muted);margin-bottom:12px}th,td{text-align:left;padding:13px 17px;border-top:1px solid var(--line);vertical-align:top}th{color:var(--blue);font-size:12px;font-weight:600;background:#eaf0f1}td:first-child{width:31%;font-weight:550}tr:last-child td{border-bottom:1px solid var(--line)}
.receipt{border-top:3px solid var(--blue);border-bottom:1px solid #b7c7d1;background:#edf1f1;padding:25px 28px 22px;margin:30px 0}.receipt-head{display:flex;justify-content:space-between;align-items:baseline;gap:15px}.receipt-head h3{margin:0;font-size:16px;font-weight:550}.receipt-head time{font:12px Georgia,serif;color:var(--blue)}.receipt dl{margin:19px 0 15px}.receipt dl div{display:grid;grid-template-columns:105px 1fr;align-items:baseline;gap:22px;border-top:1px solid #ced7da;padding:12px 0}.receipt dt{font-size:25px;line-height:1.4;color:var(--blue);font-weight:550}.receipt dd{font-size:14px;margin:0}.receipt p{font-size:12px;line-height:1.85;color:#68747b;margin:0}
.command{margin:26px 0 25px}.command pre{margin:0;padding:22px 24px;background:#29343e;color:#ecf0f1;overflow:auto;font:13px/1.85 ui-monospace,SFMono-Regular,Menlo,monospace;tab-size:2}.command figcaption{font-size:12px;color:var(--muted);line-height:1.8;padding-top:11px}.task{margin:26px 0;padding:6px 0 6px 24px;border-left:2px solid var(--blue)}.task span{font-size:12px;color:var(--blue)}.task p{font-size:16px;line-height:1.95;margin:8px 0 0}
.sources{font-size:12px;line-height:1.9;color:var(--muted);border-top:1px solid var(--line);margin-top:45px;padding-top:25px}.sources h2{font-size:15px;color:var(--ink);margin:0 0 17px}.sources ol{padding-left:19px}.sources li{margin-bottom:15px}.sources small{display:block;font-size:11px;margin-top:3px}.bottom{max-width:1120px;margin:auto;border-top:1px solid var(--line);padding:26px 30px 40px;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted)}.bottom a{color:var(--blue);text-decoration:none}
dialog{width:calc(100% - 40px);max-width:1680px;max-height:94vh;border:0;padding:14px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#101820d9}dialog img{display:block;max-width:100%;max-height:calc(90vh - 90px);width:auto;height:auto;margin:auto;object-fit:contain}.dialog-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:12px;font-size:12px}.dialog-bar p{margin:0}.close{border:1px solid #c4ccc9;background:transparent;padding:8px 14px;cursor:pointer;color:var(--ink);white-space:nowrap}
@media(max-width:1040px){.photo{margin-left:0;margin-right:0}.hero{max-width:840px}}@media(max-width:640px){.top{padding:20px 22px;font-size:11px}.top span{max-width:120px;text-align:right}.hero{padding:39px 22px 26px}h1{font-size:34px;line-height:1.43}.eyebrow{font-size:11px}.dek{font-size:17px;margin:20px 0}.meta{font-size:11px;gap:9px 16px}.contents{margin:0 22px;padding:12px 0 23px}.toc{gap:12px 18px}.toc a{font-size:11px;gap:9px}.prose{padding:27px 22px 43px;font-size:17px;line-height:1.95}.opening p:first-child{font-size:19px}.part{padding-top:23px}.part h2{font-size:23px;line-height:1.55;margin-bottom:21px}.photo{margin:25px 0}.photo figcaption{font-size:11px;gap:15px}.zoom-hint{font-size:10px}.photo.workbench{padding:7px}.photo.workbench figcaption{padding:9px 3px 2px}table{font-size:13px}th,td{padding:11px 10px}td:first-child{width:32%}.receipt{padding:20px}.receipt-head{display:block}.receipt-head time{display:block;margin-top:6px}.receipt dl div{grid-template-columns:90px 1fr;gap:15px}.receipt dt{font-size:24px}.receipt dd{font-size:13px}.command pre{font-size:11px;padding:17px 13px}.task{padding-left:18px}.task p{font-size:15px}.bottom{padding:23px 22px 34px;font-size:11px;line-height:1.8}dialog{width:calc(100% - 16px);padding:10px}.dialog-bar{font-size:11px}.close{padding:7px 10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.top,.contents,.bottom,.zoom-hint,dialog{display:none}.hero{padding-top:0}.prose{font-size:12pt}.part h2{font-size:18pt}.photo{break-inside:avoid;margin-left:0;margin-right:0}.receipt,table,.command{break-inside:avoid}body{background:white}}

:root[data-theme="dark"] .dek{color:var(--site-ink,#ededed)}
:root[data-theme="dark"] .toc a{color:var(--site-ink,#ededed)}
:root[data-theme="dark"] .photo.workbench{background:var(--site-surface,#252525)}
:root[data-theme="dark"] th{background:var(--site-surface,#252525)}
:root[data-theme="dark"] .receipt{background:var(--site-surface,#252525)}
:root[data-theme="dark"] .receipt p{color:var(--site-ink,#ededed)}
