:root{color-scheme:light;--ink:#152a38;--muted:#51616d;--teal:#0f766e;--line:#d4e1e5;--soft:#e1f3ee}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#edf5f4;color:var(--ink);font:17px/1.65 system-ui,-apple-system,"Segoe UI",sans-serif}a{color:var(--teal);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--teal);outline-offset:4px}.skip{position:absolute;top:-80px;left:1rem;padding:.6rem;background:white}.skip:focus{top:1rem}header{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:1rem max(1.2rem,calc((100vw - 1120px)/2));background:white;border-bottom:3px solid #2dd4bf}header nav,.jump,.related{display:flex;gap:.6rem 1.4rem;flex-wrap:wrap}.brand{text-decoration:none;font-weight:700;color:var(--ink);font-size:1.15rem}.brand span{color:var(--teal)}.brand sup{font-size:.65em}header nav{font-size:.9rem}main{max-width:1120px;margin:auto;padding:0 1.2rem}.intro{padding:3rem 0 1rem}h1{font-size:clamp(2.1rem,5vw,3.6rem);line-height:1.12;letter-spacing:-.045em;max-width:22ch;margin:.5rem 0 1.1rem}h2{font-size:clamp(1.3rem,3vw,1.8rem);line-height:1.3;margin:0 0 .8rem}p{margin:.6rem 0 1rem}.lead{font-size:1.17rem;max-width:72ch;color:var(--muted)}.eyebrow{font-size:.77rem;letter-spacing:.07em;text-transform:uppercase;color:var(--teal);font-weight:750}.status{padding:.85rem 1rem;background:#fff3dd;border-left:3px solid #925713}.jump{font-size:.95rem;margin:1.3rem 0}section{background:white;border:1px solid var(--line);border-radius:15px;padding:clamp(1.1rem,3vw,2rem);margin:1.3rem 0;scroll-margin-top:1rem;box-shadow:0 4px 16px #19394506}.chain{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;counter-reset:step;list-style:none;padding:0}.chain li{counter-increment:step;background:#eff7f5;border:1px solid #d0e4dd;border-radius:9px;padding:1rem}.chain li:before{content:counter(step) ' →';display:block;color:var(--teal);font-weight:750;margin-bottom:.4rem}.experiment{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem;align-items:center;margin:1.5rem 0}fieldset{margin:0;padding:0;border:0;min-width:0}legend{font-weight:700;font-size:.95rem}.control{margin:.9rem 0 1.4rem}.control label{font-weight:650;display:block}.control output{display:block;color:var(--teal);font-variant-numeric:tabular-nums}.control input{width:100%;min-height:38px;accent-color:var(--teal)}.control small{display:block;color:var(--muted)}input:disabled{opacity:.55}.formula{padding:.8rem;background:#f4f7fa;border-radius:7px;font-size:.86rem;overflow-wrap:anywhere}.result{padding:1rem 1.1rem;background:var(--soft);border-left:3px solid var(--teal);border-radius:0 8px 8px 0}#example-chart{min-width:0}#example-chart svg{max-width:100%;height:auto}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:610px;text-align:left;font-size:.9rem}th,td{vertical-align:top;border-bottom:1px solid var(--line);padding:.75rem .7rem}th{font-weight:650}thead{background:#f4f8fa}li{margin:.5rem 0}.related{font-size:.95rem}.related [aria-current=page]{font-weight:700;text-decoration:none;color:var(--ink)}footer{max-width:1120px;margin:auto;padding:1.5rem 1.2rem 3rem;color:var(--muted);font-size:.85rem}@media(max-width:650px){.experiment,.chain{grid-template-columns:1fr}.chain{gap:.4rem}.experiment{gap:1rem}body{font-size:16px}.intro{padding-top:2rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Macro lessons: readable values first, then assumptions and exact tables. */
.anchors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.4rem 0}.anchor{border:1px solid #cddfe1;border-top:3px solid #16847c;border-radius:9px;padding:1rem;background:#f6fbfa}.anchor p{margin:.3rem 0}.anchor strong{display:block;font-size:1.35rem;color:#14566a}.anchor small{display:block;line-height:1.6}.anchor a{display:inline-block;margin-top:.6rem}.macro-flow,.reading-rules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.macro-flow article{padding:.9rem 1rem;background:#edf6f5;border-radius:8px;border-left:3px solid #17857c}.macro-flow h3,.reading-rules h3{font-size:1rem;margin:0}.macro-flow p,.reading-rules p{font-size:.94rem;margin:.45rem 0}.reading-rules{grid-template-columns:repeat(3,minmax(0,1fr));margin:1rem 0}.reading-rules article{padding:.8rem;background:#f5f7fa}.macro-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem}.phase-list{padding-left:1.3rem}.phase-list li{padding:.3rem 0}.macro-chart,.macro-bars,.network{border:1px solid #d4e0e5;border-radius:10px;padding:1rem;margin:1.25rem 0;min-width:0}.macro-chart h3,.macro-bars h3{margin:.2rem 0;font-size:1.08rem}.macro-chart svg{width:100%;display:block}.chart-unit,.stress-caption{font-size:.83rem;color:#526b7b;margin:.3rem 0 .6rem}.chart-legend{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.88rem;margin:.5rem 0 1rem}.chart-legend span{display:inline-flex;gap:.45rem;align-items:center}.chart-legend i{display:inline-block;width:18px;height:4px;flex-shrink:0}.macro-chart details,.assumptions{font-size:.9rem;margin-top:.7rem}.macro-chart summary,.assumptions summary{cursor:pointer;color:#116971;padding:.4rem 0}.bar-row{margin:.65rem 0}.bar-row>div:first-child{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem}.bar-row strong{font-variant-numeric:tabular-nums;white-space:nowrap}.bar-track{height:16px;background:#edf2f4;border-radius:4px;margin-top:.25rem;overflow:hidden}.bar-track span{height:100%;display:block;min-width:0}.stacked-bar{display:flex;height:36px;border-radius:5px;overflow:hidden;margin:1rem 0}.stacked-bar span{height:100%}.network-nodes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.network-node{background:#f5f8fa;border:1px solid #dbe5e8;border-radius:6px;padding:.8rem}.network-node h4{margin:0 0 .5rem}.network-node p,.node-value,.network-arrow{font-size:.83rem}.node-balance{height:25px;display:flex;min-width:1px}.network-arrow{color:#8a5422;border-top:1px dashed #bcced1;padding-top:.5rem}.network-arrow:before{content:'Borrower → creditor';display:block;font-weight:600}button,select{font:inherit;border:1px solid #187b80;border-radius:6px;background:#eff9f7;color:#164c59;padding:.5rem .8rem}button{cursor:pointer}select{max-width:100%;margin:.7rem 0 1rem}#macro-audit{overflow-wrap:anywhere;font-size:.8rem}#macro-lab fieldset{margin:1rem 0}.intro .jump{gap:.6rem 1.2rem}h3{line-height:1.4}@media(max-width:700px){.anchors,.macro-flow,.reading-rules,.macro-controls,.network-nodes{grid-template-columns:1fr}.macro-controls{gap:0}.macro-chart,.macro-bars,.network{padding:.7rem}.anchor strong{font-size:1.18rem}.macro-chart h3{font-size:1rem}.network-nodes{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:360px){.network-nodes{grid-template-columns:1fr}}

/* Shared progressive dashboard: content stays readable without JavaScript. */
.fg-chart-workspace-ready{width:min(1800px,calc(100vw - 2.4rem));max-width:none;position:relative;left:50%;transform:translateX(-50%)}
.fg-chart-workspace-ready>p,.fg-chart-workspace-ready>ol,.fg-chart-workspace-ready>details{max-width:75ch}
.fg-workspace-layout{display:grid;grid-template-columns:minmax(220px,260px) minmax(0,1fr);gap:1.35rem;align-items:start;margin:1.4rem 0;min-width:0}
.fg-workspace-sidebar{position:sticky;top:1rem;max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);overflow-y:auto;overscroll-behavior:contain;border:1px solid #c8dcd9;border-radius:10px;background:#f2f9f7;padding:.85rem;scrollbar-gutter:stable;min-width:0}
.fg-workspace-sidebar details{margin:0;padding:0}
.fg-workspace-sidebar summary{font-weight:700;cursor:pointer;padding:.45rem 0;color:#155a5c}
.fg-workspace-selection{border-top:1px solid #c8dcd9;margin-top:.65rem!important;padding-top:.35rem!important}
.fg-workspace-control-body{padding-top:.6rem}
.fg-workspace-sidebar .macro-controls{display:block}
.fg-workspace-sidebar .control{margin:.55rem 0 1rem}
.fg-workspace-sidebar .control label,.fg-workspace-sidebar legend{font-size:.86rem;line-height:1.45}
.fg-workspace-sidebar .control output{font-size:.86rem}
.fg-workspace-sidebar .control input{min-height:34px}
.fg-workspace-sidebar button,.fg-workspace-sidebar select{max-width:100%;font-size:.86rem}
.fg-workspace-sidebar select{width:100%}
.fg-workspace-sidebar fieldset{margin:0!important}
.fg-workspace-hint{font-size:.79rem;color:#52666b;line-height:1.5;margin:.35rem 0 .6rem}
.fg-workspace-choice{display:flex;align-items:flex-start;gap:.55rem;padding:.38rem .1rem;font-size:.83rem;line-height:1.45;cursor:pointer;overflow-wrap:anywhere}
.fg-workspace-choice input{width:17px;height:17px;flex:0 0 17px;margin:.12rem 0 0;accent-color:#0f766e}
.fg-workspace-main{min-width:0}
.fg-workspace-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;background:#fff;border:1px solid #d0e0e2;border-radius:8px;padding:.5rem .65rem}
.fg-workspace-toolbar button{font-size:.82rem;line-height:1.4;padding:.35rem .6rem;min-height:34px}
.fg-workspace-column-options{display:flex;align-items:center;gap:.3rem;margin-right:auto}
.fg-workspace-toolbar-label{font-size:.8rem;font-weight:650;margin-right:.25rem}
.fg-workspace-column-options button[aria-pressed=true]{background:#0f766e;color:#fff;border-color:#0f766e}
.fg-workspace-status{font-size:.8rem;line-height:1.5;color:#526b70;margin:.4rem 0 .65rem}
.fg-workspace-main>.result{font-size:.9rem;line-height:1.55;margin:.7rem 0 1rem;padding:.8rem 1rem}
.fg-workspace-grid{display:grid;grid-template-columns:repeat(var(--fg-workspace-columns,1),minmax(0,1fr));gap:16px;align-items:start;min-width:0}
.fg-workspace-grid>.macro-results,.fg-workspace-grid>.macro-charts,.fg-workspace-grid .macro-results>.macro-charts{display:contents}
.fg-workspace-grid .fg-workspace-panel{margin:0;padding:.85rem;min-width:0;overflow-wrap:anywhere;align-self:start;background:#fff}
.fg-workspace-grid .network{grid-column:1/-1}
.fg-workspace-grid .network-nodes{grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr))}
.fg-workspace-panel-actions{display:flex;justify-content:flex-end;gap:.4rem;margin:-.15rem -.1rem .5rem}
.fg-workspace-panel-actions button{font-size:.75rem;line-height:1.35;padding:.25rem .5rem;min-height:30px;background:#f4f8f8}
.fg-workspace-panel-actions button[aria-pressed=true]{background:#d9eeea;border-color:#0f766e}
.fg-workspace-panel h3{font-size:.98rem;line-height:1.4}
.fg-workspace-panel .chart-unit,.fg-workspace-panel .stress-caption{font-size:.77rem;line-height:1.5}
.fg-workspace-panel .chart-legend{font-size:.78rem;line-height:1.5;gap:.4rem .75rem}
.fg-workspace-panel .bar-row>div:first-child{font-size:.8rem;line-height:1.45}
.fg-workspace-panel .bar-row strong{align-self:flex-start}
.fg-workspace-panel .table-wrap{max-width:100%;overscroll-behavior-inline:contain}
.fg-workspace-panel details{font-size:.8rem}
.fg-workspace-panel svg{width:100%;max-width:100%;height:auto}
.fg-workspace-grid [hidden],.fg-workspace-toolbar [hidden],.fg-workspace-empty[hidden]{display:none!important}
.fg-workspace-empty{border:1px dashed #a5c4bd;border-radius:8px;padding:1rem;background:#f4faf7;color:#425e5b}
@media(max-width:1100px){.fg-workspace-layout{grid-template-columns:minmax(210px,235px) minmax(0,1fr);gap:1rem}}
@media(max-width:850px){
 .fg-workspace-layout{display:block;margin:1rem 0}
 .fg-workspace-sidebar{position:sticky;top:.35rem;z-index:5;max-height:70vh;max-height:70dvh;margin-bottom:.8rem;padding:.5rem .75rem;box-shadow:0 4px 12px #173e3514;scrollbar-gutter:auto}
 .fg-workspace-sidebar .fg-workspace-selection{margin-top:.2rem!important;padding-top:.2rem!important}
 .fg-workspace-control-body{padding-bottom:.4rem}
 .fg-workspace-sidebar summary{font-size:.87rem;padding:.35rem 0}
 .fg-workspace-sidebar .macro-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:0 1rem}
 .fg-workspace-sidebar .control{margin:.5rem 0}
 .fg-workspace-grid .fg-workspace-panel{padding:.7rem}
}
@media(max-width:420px){
 .fg-chart-workspace-ready{width:calc(100vw - 1rem);padding:.9rem}
 .fg-workspace-toolbar{gap:.4rem;padding:.45rem}
 .fg-workspace-toolbar button{padding:.35rem .5rem}
 .fg-workspace-panel h3{font-size:.94rem}
 .fg-workspace-grid{gap:12px}
 .fg-workspace-panel .bar-row>div:first-child{gap:.6rem}
}
.macro-chart-native{border-left:4px solid #b46628;background:#fffaf3}
.chart-caveat{font-size:.83rem;font-weight:700;letter-spacing:.02em;color:#8c531c;background:#fff0dd;border-left:3px solid #b46628;border-radius:0 4px 4px 0;padding:.35rem .6rem;margin:.3rem 0 .6rem}
