:root {
  --ink:#111416;
  --muted:#5b666d;
  --quiet:#7a858b;
  --line:#e2e6e8;
  --line-strong:#aeb7bb;
  --canvas:#ffffff;
  --rail:#f7f8f8;
  --rail-strong:#edf0f1;
  --focus:#08749a;
  --mono:"SFMono-Regular","Roboto Mono","Noto Sans Mono CJK SC",monospace;
  --serif:"Iowan Old Style","Songti SC","STSong","Noto Serif CJK SC",serif;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Noto Sans SC","PingFang SC",sans-serif;
}

* { box-sizing:border-box; }
html { background:var(--canvas); scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--canvas); font-family:var(--sans); line-height:1.65; }
a { color:inherit; text-decoration-thickness:1px; text-underline-offset:3px; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline:2px solid var(--focus); outline-offset:3px; }
.skip-link { position:fixed; z-index:30; top:6px; left:8px; transform:translateY(-150%); padding:7px 10px; color:#000; background:#fff; font:12px var(--mono); }
.skip-link:focus { transform:none; }

.topbar { position:sticky; z-index:20; top:0; display:flex; align-items:center; gap:10px; min-height:40px; padding:0 16px; overflow:hidden; color:#aeb6b9; background:#050606; font:11px var(--mono); white-space:nowrap; }
.wordmark { color:#fff; font:700 14px var(--sans); text-decoration:none; letter-spacing:.02em; }
.topbar-divider { width:1px; height:14px; background:#3d4345; }
.topbar-link { text-decoration:none; }
.topbar-link:hover { color:#fff; }
.topbar-file { min-width:0; overflow:hidden; color:#737d81; text-overflow:ellipsis; }
.view-switch { display:flex; align-items:center; gap:8px; margin-left:auto; }
.view-switch a { color:#9ca5a8; text-decoration:none; }
.view-switch a:hover { color:#fff; }
.view-switch span { color:#fff; }
.topbar-action { color:#cbd2d4; text-decoration:none; }
.topbar-action:hover { color:#fff; }
.topbar-status { color:#d8df5d; font-size:10px; }

.wide-shell { width:min(100%,1680px); min-height:calc(100vh - 96px); margin:0 auto; padding:30px clamp(24px,3.2vw,56px) 96px; background:var(--canvas); }
.loading { padding:80px 0; color:var(--muted); font:12px var(--mono); text-align:center; }
.reading-layout { display:grid; grid-template-columns:minmax(0,760px) minmax(300px,400px); justify-content:center; gap:clamp(44px,6vw,110px); align-items:start; }
.reading-column { min-width:0; font-kerning:normal; text-rendering:optimizeLegibility; }
.reading-head { padding:2px 0 0; }
.eyebrow { margin:0 0 12px; color:#54646c; font:10px var(--mono); letter-spacing:.06em; text-transform:uppercase; }
h1 { max-width:800px; margin:0; font:500 clamp(36px,3.8vw,48px)/1.14 var(--serif); letter-spacing:-.016em; text-wrap:balance; }
.subtitle { max-width:680px; margin:12px 0 0; color:#4b575d; font-size:15px; line-height:1.58; }
.trust-signal { display:inline-flex; align-items:baseline; gap:9px; margin-top:12px; color:#2f444c; text-decoration:none; border-bottom:1px solid #a8b3b7; font:9px var(--mono); }
.trust-signal span { color:#1d333b; font-weight:700; }
.trust-signal small { color:#69767b; font:9px var(--mono); }
.chapter { margin-top:36px; padding-top:15px; border-top:1px solid var(--line); scroll-margin-top:64px; }
.chapter:first-of-type { margin-top:28px; padding-top:0; border-top:0; }
.chapter-index { margin:0 0 6px; color:#69767c; font:10px var(--mono); }
.chapter h2 { max-width:720px; margin:0 0 14px; font:500 25px/1.36 var(--serif); letter-spacing:-.012em; }
.chapter > p:not(.chapter-index) { max-width:74ch; margin:0 0 14px; font:16.5px/1.82 var(--serif); }
.chapter-trust-link { display:inline-block; margin-top:1px; color:#47565d; font:10px var(--mono); }

.reference-rail { position:sticky; top:56px; max-height:calc(100vh - 76px); overflow:auto; scrollbar-gutter:stable; scrollbar-width:thin; background:var(--rail); border-left:1px solid var(--line); }
.rail-passport { padding:14px 18px 13px; color:var(--ink); background:var(--rail-strong); border-top:3px solid var(--ink); }
.rail-kicker { margin:0 0 9px; color:#5f6b70; font:9.5px var(--mono); letter-spacing:.05em; }
.passport-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.82fr); gap:9px 18px; margin:0; }
.passport-grid > div:first-child { grid-column:1 / -1; }
.passport-grid div { min-width:0; }
.passport-grid dt { color:#5f6b70; font:9px var(--mono); }
.passport-grid dd { margin:2px 0 0; overflow-wrap:anywhere; color:#2f393d; font:10.5px/1.45 var(--mono); }
.rail-section { padding:16px 18px; border-top:1px solid var(--line); }
.rail-section > h2 { margin:0 0 9px; font:700 10.5px var(--mono); letter-spacing:.04em; }
.rail-section p,.rail-section li,.rail-section dd { color:#3d494f; font-size:12.5px; line-height:1.58; }
.rail-section p { margin:0 0 9px; }
.rail-section p:last-child { margin-bottom:0; }
.rail-section dl { margin:0; }
.rail-meta { display:grid; gap:9px; }
.rail-meta div { padding:0; }
.rail-meta dt { color:#536267; font:9px var(--mono); }
.rail-meta dd { margin:2px 0 0; }
.rail-label { display:block; margin-bottom:3px; color:#647178; font:9px var(--mono); }
.trust-rail { padding-top:13px; }
.trust-disclosure { border-top:2px solid var(--ink); scroll-margin-top:64px; }
.trust-disclosure summary { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; padding:11px 0; color:#20282c; cursor:pointer; }
.trust-disclosure summary span,.trust-disclosure summary strong,.trust-disclosure summary small { display:block; }
.trust-disclosure summary strong { font-size:12.5px; line-height:1.48; }
.trust-disclosure summary small { margin-top:4px; color:#59666c; font:11.5px/1.5 var(--sans); }
.trust-disclosure summary em { color:#4d5f67; font:8.5px/1.45 var(--mono); font-style:normal; white-space:nowrap; }
.trust-body { padding:2px 0 12px; border-top:1px solid var(--line); }
.trust-statement { margin-top:11px !important; color:#273338 !important; font-weight:650; }
.trust-facts { display:grid; gap:9px; margin:12px 0; }
.trust-facts div { padding-top:7px; border-top:1px solid var(--line); }
.trust-facts dt { color:#68757b; font:8.5px var(--mono); }
.trust-facts dd { margin:2px 0 0; color:#3d494f; font-size:11.5px; line-height:1.55; }
.trust-evidence,.trust-positions { margin:10px 0; padding-left:18px; }
.trust-evidence li,.trust-positions li { padding:7px 0; border-top:1px solid var(--line); color:#3d494f; font-size:11.5px; line-height:1.5; }
.trust-evidence span,.trust-evidence a,.trust-evidence small { display:block; }
.trust-evidence span { color:#68757b; font:8.5px var(--mono); }
.trust-evidence a { margin:2px 0; color:#1c272b; font-weight:650; }
.trust-evidence small { color:#657178; font:9px/1.5 var(--mono); }
.trust-caution { color:#56636a !important; font-size:11px !important; }
.trust-byline { color:#6a767b !important; font:8.5px var(--mono) !important; }
.trust-progress { margin-top:13px; padding-top:11px; border-top:1px solid #9eabad; }
.trust-progress h3 { margin:0 0 8px; color:#314047; font:700 9.5px var(--mono); letter-spacing:.04em; }
.material-path { border-top:3px solid var(--ink); background:#f1f4f4; }
.material-path > h2 { font-size:12.5px; line-height:1.45; }
.material-figure { margin:10px 0 12px; }
.material-figure img { display:block; width:100%; max-height:360px; object-fit:contain; object-position:left center; background:#111; }
.material-figure figcaption { display:grid; gap:3px; padding-top:7px; }
.material-figure figcaption strong { color:#24343a; font:700 10.5px/1.45 var(--sans); }
.material-figure figcaption span,.material-figure figcaption small { color:#4e5d62; font:8px/1.5 var(--mono); }
.material-path-list { margin:10px 0 0; padding:0; list-style:none; }
.material-path-list li { padding:8px 0; border-top:1px solid var(--line); }
.material-path-list small,.material-path-list a,.material-path-list span { display:block; }
.material-path-list small { color:#4e5d62; font:8.5px var(--mono); }
.material-path-list a,.material-path-list span { margin-top:3px; color:#35454b; font:11.5px/1.52 var(--sans); }
.material-records { margin-bottom:12px; border-bottom:1px solid var(--line); }
.material-records a { color:#17272d; font-weight:700; }
.material-records span { color:#4f6067; }
.material-storage { margin-top:9px !important; color:#4e5d62 !important; font:8.5px var(--mono) !important; }
.history-end { margin-top:46px; padding-top:18px; border-top:3px solid var(--ink); }
.end-kicker { margin:0 0 9px; color:#657278; font:9px var(--mono); letter-spacing:.05em; }
.next-reading { display:block; padding:17px 18px; color:var(--ink); border-top:1px solid var(--ink); background:#eef2f3; text-decoration:none; }
.next-reading span,.next-reading strong,.next-reading small { display:block; }
.next-reading span { color:#4b6069; font:9px var(--mono); }
.next-reading strong { margin:7px 0 6px; font:500 23px/1.3 var(--serif); }
.next-reading small { color:#526169; font:12px/1.55 var(--sans); }
.next-reading:not(.is-planned):hover { background:#e3e9eb; }
.local-error { max-width:650px; padding:24px; border-top:3px solid var(--ink); background:var(--rail); font:14px var(--sans); }
.alternatives { display:grid; }
.alternative { display:block; padding:9px 0; border-top:1px solid var(--line); color:#192226; text-decoration:none; }
.alternative:last-child { border-bottom:1px solid var(--line); }
.alternative:hover { color:#000; }
.alternative span { display:block; margin-top:3px; color:#637077; font-size:12px; }
.source-list { list-style:none; padding:0; margin:0; }
.source-list li { padding:9px 0; border-top:1px solid var(--line); }
.source-list li:last-child { border-bottom:1px solid var(--line); }
.source-id { display:block; color:#52636b; font:9px var(--mono); }
.source-title { display:block; margin:2px 0; color:#1e292d; font-weight:650; }
.source-note { display:block; font-size:12px; }
.correction { width:100%; padding:10px 11px; border:1px solid #111416; color:#fff; background:#111416; cursor:pointer; font:11px var(--mono); text-align:left; }
.correction:hover { background:#2b3235; }
.correction-note { margin-top:9px !important; font-size:12px !important; }
.correction-result { margin-top:10px !important; padding:9px 10px; border:1px solid var(--line-strong); background:var(--rail-strong); }
.related-list { margin:0; padding-left:18px; }
.mobile-info-link { display:none; }

.site-footer { padding:20px clamp(24px,3.2vw,56px) 34px; color:#58666b; border-top:1px solid var(--line); background:#fff; font:11px/1.6 var(--mono); }
.site-footer p { max-width:820px; margin:0 auto; }

@media (max-width:1180px) {
  .topbar { padding:0 12px; }
  .topbar-link,.topbar-divider,.topbar-file { display:none; }
  .view-switch { margin-left:auto; }
  .topbar-status { font-size:9px; }
  .wide-shell { padding:26px 18px 64px; }
  .reading-layout { grid-template-columns:1fr; gap:42px; }
  .reading-head { padding-top:0; }
  h1 { font-size:clamp(32px,9vw,44px); }
  .subtitle { font-size:15px; }
  .mobile-info-link { display:inline-block; margin-top:12px; color:#57656c; font:11px var(--mono); }
  .chapter h2 { font-size:23px; }
  .chapter > p:not(.chapter-index) { font-size:16px; line-height:1.82; }
  .reference-rail { position:static; max-height:none; overflow:visible; border-top:1px solid var(--line); border-left:0; }
}

@media (max-width:520px) {
  .passport-grid { grid-template-columns:1fr; }
  .passport-grid > div:first-child { grid-column:auto; }
  .trust-disclosure summary { grid-template-columns:1fr; gap:6px; }
  .trust-disclosure summary em { white-space:normal; }
}

@media print {
  .topbar,.site-footer,.skip-link,.correction,.mobile-info-link { display:none; }
  .wide-shell { width:auto; padding:0; }
  .reading-layout { display:block; }
  .reference-rail { position:static; max-height:none; margin-top:36px; border:1px solid var(--line); }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
}
