
:root{color-scheme:light;--ink:#243f3b;--muted:#64766e;--paper:#f4f1e7;--red:#a94f3d}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 "Microsoft YaHei",sans-serif}button,a,input{touch-action:manipulation}button{font:inherit;cursor:pointer;color:inherit;background:none;border:1px solid #bbc5b9;border-radius:4px;padding:9px 14px}button:hover{background:#e4e8dc}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #ae5a41;outline-offset:4px}a{color:inherit;text-decoration:none}header{height:72px;border-bottom:1px solid #d7dacf;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;font-size:13px;letter-spacing:1px}header i{margin:0 15px;color:#a1aaa0}header button{border:0}main{max-width:1600px;margin:auto;padding:35px 4vw 24px}.intro{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:600;color:var(--muted);margin:0 0 10px}h1{font-family:serif;font-size:38px;letter-spacing:3px;margin:0;font-weight:500}h1 span{font-family:sans-serif;font-size:14px;letter-spacing:1px;color:var(--muted);margin-left:24px}.intro-note{font-size:12px;color:var(--muted);margin:0}.theater{display:grid;grid-template-columns:minmax(0,1fr) 330px;border:1px solid #c9d0c3;min-height:520px}.stage{background:#e9ecdf;position:relative;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.stage-top,.stage-foot{display:flex;justify-content:space-between;padding:20px 25px;font-size:11px;color:#5e7668;gap:10px}.tag{border:1px solid #bdc9b9;padding:1px 7px}.stage svg{width:100%;display:block;max-height:540px}.building-label{font:14px 'Microsoft YaHei',sans-serif;fill:#294d45}.small-label{font:11px 'Microsoft YaHei',sans-serif;fill:#60786a}.narrative{padding:30px 26px;border-left:1px solid #c9d0c3;background:#f8f6ed}h2{font:30px/1.4 serif;letter-spacing:1px;margin:0 0 15px}#narration{font-size:14px;min-height:96px;color:#53685f}.ledger{border-top:1px solid #c6cec0;border-bottom:1px solid #c6cec0;padding:14px 0 10px}.ledger-head{display:flex;justify-content:space-between;font-size:12px}.ledger small{color:var(--muted)}dl{display:flex;justify-content:space-between;margin:14px 0 0}dt{font-size:10px;color:var(--muted)}dd{font:32px/1.5 Georgia,serif;margin:0}#gap{color:var(--red)}#ledgerNote{font-size:11px;color:var(--muted);min-height:38px;margin:4px 0}fieldset{border:0;padding:0;margin:18px 0 10px;display:flex;gap:8px}legend{font-size:11px;margin-bottom:7px}legend span{color:#7b8a80;margin-left:16px}fieldset button{flex:1;font-size:12px;padding:7px}button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.insight{font-size:12px;color:var(--red);margin:10px 0 0}.controls{display:flex;align-items:center;gap:16px;margin-top:20px}.primary{background:var(--ink);color:#fff;min-width:130px}.primary:hover{background:#3c5c51}#clock{font:13px monospace;color:#65776b}.motion{margin-left:auto;font-size:12px}.motion input{accent-color:var(--ink)}.scrub{display:block;margin:12px 0}#seek{width:100%;accent-color:var(--red);cursor:pointer}#chapters{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}#chapters button{border:0;border-top:2px solid #c8d0c1;border-radius:0;text-align:left;font-size:12px;padding:10px 3px;color:#718274}#chapters button[aria-current=true]{border-color:var(--red);color:var(--red)}footer{display:flex;justify-content:space-between;gap:15px;font-size:11px;color:#77867a;margin:25px 0}.transcript{font-size:13px;border-top:1px solid #d4d9cc;padding-top:15px;max-width:900px}.transcript summary{cursor:pointer}dialog{border:1px solid #bdc8b8;background:var(--paper);color:var(--ink);max-width:550px;padding:32px;width:calc(100% - 32px)}dialog::backdrop{background:#16372dcc;backdrop-filter:blur(5px)}#sourceClose{float:right;margin-bottom:15px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.flows{opacity:0;transition:opacity .7s}.flows path{fill:none;stroke:#b4543f;stroke-width:2;stroke-dasharray:7 6;marker-end:url(#arrow);animation:flow 2s linear infinite}.flows rect{fill:#f8efdc;stroke:#d8b79b}.flows text{fill:#9f503b;font:12px 'Microsoft YaHei',sans-serif;text-anchor:middle}.government{opacity:0;transition:opacity .7s}.road-built{opacity:0;transition:opacity 1.5s}.traffic{opacity:0;animation:drive 14s linear infinite}.theater[data-step="1"] .government,.theater[data-step="2"] .government{opacity:1}.theater[data-step="2"] .loan{opacity:1}.theater[data-step="3"] .build{opacity:1}.theater[data-step="3"] .road-built,.theater[data-step="4"] .road-built,.theater[data-step="5"] .road-built{opacity:1}.theater[data-step="4"] .repay{opacity:1}.theater[data-step="5"] .traffic{opacity:1}.theater[data-step="4"].delayed .repay path{stroke:#a94f3d;stroke-dasharray:2 10}.paused *{animation-play-state:paused!important}.quiet *{animation:none!important;transition:none!important}.quiet .traffic{transform:translate(250px,-55px)}@keyframes flow{to{stroke-dashoffset:-26}}@keyframes drive{0%{transform:translate(0,0)}100%{transform:translate(580px,-127px)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:1000px){main{padding:25px 3vw}.theater{grid-template-columns:minmax(0,1fr) 290px}.narrative{padding:24px 20px}.intro-note{display:none}h1 span{display:block;margin:8px 0 0}.stage-top{padding:16px}.stage-top .tag{display:none}}@media(max-width:700px){header{height:58px;padding:0 16px;font-size:11px}header>span{display:none}main{padding:25px 16px}h1{font-size:30px}.intro{margin-bottom:20px}.theater{display:block}.stage svg{min-height:230px}.stage-top,.stage-foot{padding:12px 14px;font-size:10px}.narrative{border-left:0;border-top:1px solid #c9d0c3;padding:22px}.narrative h2{font-size:26px}.narrative h2 br{display:none}#narration{min-height:0}.ledger{padding:10px 0}#ledgerNote{min-height:0}.controls{gap:10px;flex-wrap:wrap}.motion{font-size:11px}#chapters{grid-template-columns:repeat(3,1fr)}footer{flex-direction:column;gap:5px}.eyebrow{font-size:10px}}

/* Seeking while paused should display its keyframe immediately. */
.paused .flows,.paused .government,.paused .road-built{transition:none}
@media(max-width:700px){.building-label{font-size:24px}.small-label{font-size:17px}.flows text{font-size:20px}.flows rect{stroke-width:1.5px}.stage svg{min-height:260px}}
