/* Soundings. Deep-water navy, warm bone ink, editorial serif over tabular numerals.
   One spacing scale, one content width, two typefaces. Hue is reserved for direction of change. */
@font-face{font-family:"Playfair Display";src:url(fonts/playfair.woff2) format("woff2");font-weight:400 500;font-display:swap}
@font-face{font-family:Inter;src:url(fonts/inter.woff2) format("woff2");font-weight:300 500;font-display:swap}

:root{
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;
  --sans:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --s1:4px;--s2:8px;--s3:16px;--s4:24px;--s5:32px;--s6:48px;
  --max:1320px;--gutter:var(--s3);--pad:max(var(--gutter),calc((100% - var(--max))/2));
  --measure:68ch;--bar:56px;--tap:44px;
  --t-label:.75rem;--t-small:.875rem;--t-body:1rem;--t-data:1.125rem;--t-h3:1.25rem;--t-h2:1.5rem;
  --fast:200ms;
}
:root,[data-theme=dark]{
  color-scheme:dark;
  --bg:#0b1017;--bg-2:#101820;--surface:#121c27;--glow:rgba(38,78,142,.26);--seabed:#3d6fb8;
  --ink:#d7d2cb;--ink-strong:#f4f1eb;--ink-2:#aab2ba;--ink-3:#9aa3ac;
  --rule:rgba(215,210,203,.13);--rule-2:rgba(215,210,203,.28);--grid:rgba(215,210,203,.02);
  --fill:#f4f1eb;--on-fill:#0b1017;--hover:rgba(215,210,203,.07);
  --up:#7cc0ff;--down:#ffb066;--warn:#f0d264;--danger:#ff9d7a;
  --sk:rgba(215,210,203,.1);--sk-2:rgba(215,210,203,.18);
}
[data-theme=light]{
  color-scheme:light;
  --bg:#f4f1ea;--bg-2:#ece8df;--surface:#fbf9f4;--glow:rgba(96,134,196,.12);--seabed:#5d86c4;
  --ink:#1b2632;--ink-strong:#0d1620;--ink-2:#434e5a;--ink-3:#525d69;
  --rule:rgba(23,34,48,.14);--rule-2:rgba(23,34,48,.32);--grid:rgba(23,34,48,.025);
  --fill:#0d1620;--on-fill:#fbf9f4;--hover:rgba(23,34,48,.06);
  --up:#0a5cad;--down:#a4470a;--warn:#6f5800;--danger:#a4340f;
  --sk:rgba(23,34,48,.08);--sk-2:rgba(23,34,48,.15);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--bar) + var(--s2))}
body{margin:0;background:var(--bg);color:var(--ink);font:400 var(--t-body)/1.6 var(--sans);font-variant-numeric:tabular-nums lining-nums;overflow-x:hidden;min-height:100vh;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(62% 52% at 62% 30%,var(--glow),transparent 72%),
    repeating-linear-gradient(90deg,var(--grid) 0 1px,transparent 1px 96px),
    var(--bg)}
a{color:inherit;text-decoration-color:var(--rule-2);text-underline-offset:.2em}
a:hover{color:var(--ink-strong);text-decoration-color:currentColor}
:focus-visible{outline:2px solid var(--ink-strong);outline-offset:2px;border-radius:2px}
h1,h2,h3,p,ul,ol,figure,dl{margin:0;padding:0}
ul,ol{list-style:none}
small{font-size:var(--t-label);color:var(--ink-3);display:block;font-weight:400;line-height:1.4}
time{white-space:nowrap}
button,input,select,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:var(--s3);top:-60px;background:var(--fill);color:var(--on-fill);padding:var(--s2) var(--s3);z-index:50}
.skip:focus{top:var(--s2)}
.link-btn{background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-decoration-color:var(--rule-2);text-underline-offset:.2em;min-height:var(--tap);font-size:var(--t-small)}
.link-btn:hover{color:var(--ink-strong);text-decoration-color:currentColor}

/* Loading skeletons */
.skeleton{display:block;background:var(--sk);border-radius:2px}
.js .skeleton{background:linear-gradient(90deg,var(--sk) 25%,var(--sk-2) 50%,var(--sk) 75%);background-size:200% 100%;animation:sheen 1.2s linear infinite}
.sk-line{height:12px;margin:var(--s2) 0;width:100%}
.sk-short{width:40%}
.sk-title{height:32px;width:80%;margin:var(--s2) 0 var(--s3)}

/* Scroll progress */
.progress{position:fixed;right:0;top:0;bottom:0;width:2px;z-index:30}
.progress span{display:block;width:100%;height:100%;background:var(--ink-3);transform-origin:top;transform:scaleY(0)}

/* Header */
.bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--s3);min-height:var(--bar);padding:0 var(--pad);background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.brand{display:flex;align-items:center;gap:var(--s2);text-decoration:none;color:var(--ink-strong);min-height:var(--tap);flex:none}
.mark{width:28px;height:28px;flex:none;fill:none;stroke:currentColor;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round}
.mark .lead{fill:currentColor;stroke:none}
.word{font:400 1rem/1 var(--serif);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-strong)}
.word small{display:none}
.stamp{font-size:var(--t-small);color:var(--ink);display:flex;gap:var(--s2);align-items:baseline;white-space:nowrap;margin-left:auto}
.stamp-k{font-size:var(--t-label);color:var(--ink-3)}
.stamp-note{font-size:var(--t-label);color:var(--ink-3)}
.stamp-note.warn{color:var(--warn)}
.stamp.is-late time{color:var(--warn)}
.top-nav ul{display:flex;gap:var(--s1)}
.top-nav a{display:flex;align-items:center;min-height:var(--tap);padding:0 var(--s2);font-size:var(--t-small);text-decoration:none;color:var(--ink-2);border-bottom:2px solid transparent}
.top-nav a:hover{color:var(--ink-strong)}
.top-nav a[aria-current]{color:var(--ink-strong);border-bottom-color:var(--ink-strong)}
.research .top-nav,.bar:not(:has(.stamp)) .top-nav{margin-left:auto}
.bar-actions{display:flex;align-items:center;gap:var(--s2)}
.icon-btn,.menu-btn{width:var(--tap);height:var(--tap);background:none;border:0;cursor:pointer;display:grid;place-items:center;padding:0}
.theme-dot{width:16px;height:16px;border-radius:50%;background:linear-gradient(90deg,var(--ink-strong) 50%,transparent 50%);border:1px solid var(--ink-strong)}
.menu-btn{display:none}
.menu-lines{display:block;width:24px;height:8px;border-top:1px solid currentColor;border-bottom:1px solid currentColor}

/* Compact menu */
.menu{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;border:0;padding:var(--s2) var(--s3) var(--s5);background:var(--bg-2);color:var(--ink);overflow:auto}
.menu[open]{display:flex;flex-direction:column;gap:var(--s4);animation:fade var(--fast) ease-out}
.menu::backdrop{background:var(--bg)}
.menu-top{display:flex;justify-content:space-between;align-items:center}
.menu-pages li,.menu-list li{border-top:1px solid var(--rule)}
.menu-pages li:last-child,.menu-list li:last-child{border-bottom:1px solid var(--rule)}
.menu-pages a{display:flex;align-items:center;min-height:56px;font:400 var(--t-h2)/1.2 var(--serif);text-decoration:none;color:var(--ink-strong)}
.menu-pages a[aria-current]{text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:1px}
.menu-list a{display:flex;align-items:center;gap:var(--s3);min-height:var(--tap);text-decoration:none;color:var(--ink)}

/* Top strip and hero */
.hero{padding:var(--s2) var(--pad) 0}
.tape{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-bottom:1px solid var(--rule)}
.tile{border-left:1px solid var(--rule)}
.tile:first-child{border-left:0}
.tile:first-child a{padding-left:0}
.tile:last-child a{padding-right:0}
.tile a{display:flex;flex-direction:column;align-items:flex-end;padding:var(--s2) var(--s3);min-height:var(--tap);text-decoration:none;color:inherit;transition:background var(--fast)}
.tile a:hover{background:var(--hover);color:inherit}
.t-name{align-self:flex-start;font-size:var(--t-small);color:var(--ink-2);display:flex;flex-wrap:wrap;gap:var(--s1) var(--s2);align-items:center}
.t-val{font-size:1.75rem;font-weight:300;color:var(--ink-strong);line-height:1.3;white-space:nowrap}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s5);align-items:center;padding:var(--s4) 0}
.hero h1{font:400 clamp(2.25rem,3.6vw,3.25rem)/1.08 var(--serif);letter-spacing:-.015em;color:var(--ink-strong)}
.hero h1 em{display:block;font-style:normal;color:var(--ink)}
.hero-copy p{max-width:var(--measure);margin-top:var(--s2);color:var(--ink-2)}
.curve svg{display:block;width:100%;height:auto;overflow:visible}
.curve .bed-a{stop-color:var(--seabed);stop-opacity:.5}
.curve .bed-b{stop-color:var(--seabed);stop-opacity:0}
.curve .line{fill:none;stroke:var(--ink-strong);stroke-width:1.75;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.curve .depth{stroke:var(--rule-2);stroke-width:1;stroke-dasharray:1 4}
.curve .node{fill:var(--bg);stroke:var(--ink-strong);stroke-width:1.25;pointer-events:none}
.curve .tenor{font:400 12px var(--sans);fill:var(--ink-2)}
.curve .yld{font:400 14px var(--sans);fill:var(--ink-strong);font-variant-numeric:tabular-nums}
.curve .hit{fill:transparent}
.curve .hit:hover{fill:var(--hover)}
.curve figcaption{font-size:var(--t-label);color:var(--ink-3);margin-top:var(--s1)}
.curve-inline{display:none}
.jump{border-top:1px solid var(--rule)}
.jump ul{display:flex;flex-wrap:wrap;gap:0 var(--s3)}
.jump a{display:flex;align-items:center;min-height:var(--tap);font-size:var(--t-small);color:var(--ink-2);text-decoration:none}
.jump a:hover{color:var(--ink-strong);text-decoration:underline}

/* Panels */
.panel{display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,3.6fr);gap:var(--s5);padding:var(--s5) var(--pad);border-top:1px solid var(--rule);scroll-margin-top:var(--bar)}
.js .reveal{opacity:0;transition:opacity var(--fast) ease-out}
.js .reveal.in{opacity:1}
.side{position:sticky;top:calc(var(--bar) + var(--s3));align-self:start}
.idx{font-size:var(--t-label);color:var(--ink-3);margin-bottom:var(--s1)}
.side h2{font:400 var(--t-h2)/1.2 var(--serif);color:var(--ink-strong)}
.toggle{all:unset;display:flex;align-items:center;justify-content:space-between;gap:var(--s2);width:100%;box-sizing:border-box;cursor:default}
.toggle:focus-visible{outline:2px solid var(--ink-strong);outline-offset:2px}
.chev{display:none;width:10px;height:10px;border-right:1px solid var(--ink-2);border-bottom:1px solid var(--ink-2);transform:rotate(45deg);flex:none;transition:transform var(--fast)}
.prov{margin-top:var(--s2);font-size:var(--t-label);color:var(--ink-3);line-height:1.5}
.prov li{padding:2px 0}
.prov a{color:var(--ink-2)}
.prov a,.ev-meta a,.ev-body a,.curve figcaption a,.cb-date a,.cal-notes a,.nodata a{display:inline-flex;align-items:center;min-height:24px}
.prov time{display:block}
.prov p{margin-top:var(--s1)}
.prov p time{display:inline}
.linked{margin-top:var(--s3);font-size:var(--t-small)}
.linked h3{font-size:var(--t-label);font-weight:400;color:var(--ink-3)}
.linked li a,.linked .add{display:inline-flex;align-items:center;min-height:32px}
.linked .add{color:var(--ink-2)}

/* Data tables */
.tbl{width:100%;border-collapse:collapse}
.tbl thead th{font-size:var(--t-label);font-weight:400;color:var(--ink-3);text-align:left;padding:0 0 var(--s2);border-bottom:1px solid var(--rule-2)}
.tbl thead th.r{text-align:right}
.tbl tbody tr{border-bottom:1px solid var(--rule);transition:background var(--fast)}
.tbl tbody tr:target,.tbl tbody tr.flash{background:var(--hover)}
.tbl tbody th{text-align:left;font-weight:400;padding:var(--s2) var(--s3) var(--s2) 0;vertical-align:middle}
.s-name{display:block;color:var(--ink-strong);font-weight:400}
.tbl td{padding:var(--s2) 0 var(--s2) var(--s3);vertical-align:middle}
.val{text-align:right;font-size:var(--t-data);color:var(--ink-strong);white-space:nowrap}
.chg{text-align:right;font-size:var(--t-small);white-space:nowrap;width:88px}
.chg .l{display:none}
.chg.up .v{color:var(--up)}
.chg.down .v{color:var(--down)}
.chg.flat .v,.chg.na .v{color:var(--ink-3)}
.chg.up .v::before,.chg.down .v::before{font-size:.6em;margin-right:var(--s1);vertical-align:.12em}
.chg.up .v::before{content:"\25B2"}
.chg.down .v::before{content:"\25BC"}
.spk{width:152px}
.spark{display:block;width:136px;height:36px;margin-left:auto;overflow:visible;cursor:crosshair;touch-action:pan-y}
.spark path{fill:none;stroke:var(--ink-2);stroke-width:1.5;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.spark circle{fill:var(--ink-3);stroke:var(--bg);stroke-width:1;vector-effect:non-scaling-stroke}
.spark circle.up{fill:var(--up)}
.spark circle.down{fill:var(--down)}
.spark .x{stroke:var(--ink-3);stroke-width:1;vector-effect:non-scaling-stroke}
.tag{display:inline-block;font-size:var(--t-label);border:1px solid var(--rule-2);color:var(--ink-2);padding:0 var(--s1);margin-top:var(--s1);margin-right:var(--s1);line-height:1.5}
.tag.warn{color:var(--warn);border-color:var(--warn)}
.tag.warn::before{content:"! ";font-weight:500}
.t-name .tag{margin:0}
.note{margin-top:var(--s1);max-width:32rem}
.nodata{font-size:var(--t-small);color:var(--ink-2)}
.nodata strong{font-weight:500;color:var(--warn);font-size:var(--t-label);margin-right:var(--s1);border:1px solid var(--warn);padding:0 var(--s1)}
td.nodata{padding-left:var(--s3)}

/* Central banks */
.tbl-cb td,.tbl-cb tbody th{vertical-align:top;padding-top:var(--s3);padding-bottom:var(--s3)}
.tbl-cb tbody th{width:150px}
.cb-val{display:block;color:var(--ink-strong);font-size:var(--t-data);white-space:nowrap}
.cb-rate{width:170px;text-align:right}
.cb-date{display:block;color:var(--ink-strong);white-space:nowrap}
.cb-text{margin-top:var(--s1);color:var(--ink-2);max-width:60ch;font-size:var(--t-small);line-height:1.5}
.cb-next{width:200px}
.tbl-cb .l{display:none}

/* Calendar */
.events{border-top:1px solid var(--rule-2)}
.ev{display:grid;grid-template-columns:112px minmax(0,1fr) auto;gap:var(--s3);padding:var(--s2) 0;border-bottom:1px solid var(--rule);align-items:center}
.ev-date{display:flex;align-items:baseline;gap:var(--s1);white-space:nowrap}
.by{font-size:var(--t-label);color:var(--warn)}
.ev-day{font:400 var(--t-h2)/1 var(--serif);font-feature-settings:"lnum";color:var(--ink-strong)}
.ev-mon{font-size:var(--t-label);color:var(--ink-2)}
.ev-type{font-size:var(--t-label);color:var(--ink-3)}
.ev-title{color:var(--ink-strong);line-height:1.35}
.ev-meta{text-align:right;font-size:var(--t-label);color:var(--ink-3)}
.ev-meta small{color:var(--ink-2);font-size:var(--t-small)}
.cal-notes{margin-top:var(--s2);font-size:var(--t-label);color:var(--ink-3)}
.cal-notes li{padding:2px 0}

.tip{position:fixed;z-index:40;pointer-events:none;background:var(--surface);color:var(--ink-strong);border:1px solid var(--rule-2);padding:var(--s1) var(--s2);font-size:var(--t-label);white-space:nowrap;transform:translate(-50%,-130%)}

/* Footer */
.foot{border-top:1px solid var(--rule);padding:var(--s5) var(--pad) var(--s4);font-size:var(--t-small);color:var(--ink-2)}
.foot-grid{display:grid;grid-template-columns:1.1fr 1.6fr .8fr;gap:var(--s5)}
.foot h2{font-size:var(--t-label);font-weight:400;color:var(--ink-3);margin-bottom:var(--s2)}
.foot li{padding:2px 0}
.foot li a{display:inline-flex;align-items:center;min-height:32px}
.foot-mark{display:flex;align-items:center;gap:var(--s2);color:var(--ink-strong);margin-bottom:var(--s2)}
.foot-legal{margin-top:var(--s4);padding-top:var(--s2);border-top:1px solid var(--rule);font-size:var(--t-label);color:var(--ink-3)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);padding:var(--s2) var(--s3);background:none;border:1px solid var(--rule-2);font-size:var(--t-small);cursor:pointer;color:var(--ink-strong);text-decoration:none;transition:background var(--fast),border-color var(--fast)}
.btn:hover{border-color:var(--ink);background:var(--hover);color:var(--ink-strong)}
.btn.primary{background:var(--fill);border-color:var(--fill);color:var(--on-fill);font-weight:500}
.btn.primary:hover{opacity:.9;background:var(--fill);color:var(--on-fill)}
.btn.danger{color:var(--danger);border-color:var(--danger)}
.btn.ghost{border-color:transparent}
.btn[aria-disabled=true]{color:var(--ink-3);border-color:var(--rule);cursor:default;pointer-events:none}

/* Research library */
.research{padding:var(--s4) var(--pad) var(--s6);min-height:70vh}
.lib-head{display:flex;justify-content:space-between;gap:var(--s3);align-items:flex-end;flex-wrap:wrap;margin-bottom:var(--s4)}
.lib-head h1{font:400 2.25rem/1.15 var(--serif);color:var(--ink-strong);outline:0}
.lib-actions{display:flex;gap:var(--s2);flex-wrap:wrap}
.ledger-status{font-size:var(--t-small);color:var(--ink-2);margin-top:var(--s1);max-width:var(--measure)}
.ledger-status .pending{color:var(--warn)}
.latest{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--s5);padding:var(--s4) 0;border-top:1px solid var(--rule-2);border-bottom:1px solid var(--rule-2);margin-bottom:var(--s5);align-items:center}
.latest-cover{aspect-ratio:210/297;width:100%;display:block;background:var(--surface);border:1px solid var(--rule-2);overflow:hidden}
.latest-cover img{display:block;width:100%;height:100%;object-fit:cover}
.text-cover{display:flex;flex-direction:column;justify-content:space-between;height:100%;padding:var(--s3);background:var(--bg-2);color:var(--ink-strong);font:400 var(--t-h3)/1.25 var(--serif)}
.text-cover small{font-family:var(--sans)}
.kicker{font-size:var(--t-small);color:var(--ink-2)}
.latest h2{font:400 clamp(2rem,4vw,3rem)/1.1 var(--serif);letter-spacing:-.012em;color:var(--ink-strong);margin:var(--s1) 0 var(--s2)}
.meta-line{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s2);align-items:center;font-size:var(--t-small);color:var(--ink-2)}
.latest-summary{max-width:var(--measure);margin:var(--s3) 0 var(--s4)}
.badge{display:inline-block;font-size:var(--t-label);color:var(--ink-2);border:1px solid var(--rule-2);padding:0 var(--s1);line-height:1.5}
.badge.local{color:var(--warn);border-color:var(--warn)}
.empty-state{padding:var(--s5) 0;max-width:var(--measure);grid-column:1/-1}
.empty-state h2,.empty-state h3{font:400 var(--t-h2)/1.2 var(--serif);color:var(--ink-strong);margin-bottom:var(--s2)}
.empty-state p{color:var(--ink-2);margin-bottom:var(--s3)}

/* Archive */
.archive-controls{position:sticky;top:var(--bar);z-index:10;background:var(--bg);padding:var(--s2) 0;border-bottom:1px solid var(--rule)}
.controls-top{display:flex;justify-content:space-between;align-items:center;gap:var(--s3)}
.controls-top h2{font:400 var(--t-h2)/1.2 var(--serif);color:var(--ink-strong)}
.count-line{display:flex;align-items:center;gap:var(--s3);font-size:var(--t-small);color:var(--ink-2);min-height:var(--tap)}
.controls-row{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3);align-items:center}
.search{flex:1 1 240px}
.search input{width:100%;background:none;border:0;border-bottom:1px solid var(--rule-2);padding:var(--s1) 0;min-height:var(--tap);border-radius:0}
.search input::placeholder{color:var(--ink-3)}
.chips{display:flex;flex-wrap:wrap;gap:var(--s1)}
.chip{min-height:var(--tap);padding:0 var(--s2);background:none;border:1px solid var(--rule);font-size:var(--t-small);cursor:pointer;color:var(--ink-2);display:inline-flex;gap:var(--s1);align-items:center}
.chip:hover{border-color:var(--ink-2)}
.chip[aria-pressed=true]{background:var(--fill);border-color:var(--fill);color:var(--on-fill)}
.chip .count{opacity:.85;font-size:var(--t-label)}
.row-head,.note-btn{display:grid;grid-template-columns:48px minmax(0,1fr) 112px 112px;gap:var(--s2);align-items:center}
.row-head{font-size:var(--t-label);color:var(--ink-3);padding:var(--s2) var(--s2);border-bottom:1px solid var(--rule-2)}
.note-list li{border-bottom:1px solid var(--rule)}
.row-skeleton{padding:var(--s2)}
.note-btn{min-height:var(--tap);padding:var(--s2);text-decoration:none;color:var(--ink);font-size:var(--t-small);transition:background var(--fast)}
.note-btn:hover{background:var(--hover);color:var(--ink)}
.n-no,.n-date{color:var(--ink-2)}
.n-title{font:400 var(--t-h3)/1.3 var(--serif);color:var(--ink-strong);min-width:0}
.n-title small{font-family:var(--sans);margin-top:2px}
.list-empty{color:var(--ink-2);font-size:var(--t-small);padding:var(--s3) var(--s2)}

/* Report page */
.report{outline:0}
.back{display:inline-flex;align-items:center;min-height:var(--tap);font-size:var(--t-small);color:var(--ink-2)}
.report h1{font:400 clamp(2rem,4vw,3rem)/1.1 var(--serif);letter-spacing:-.012em;color:var(--ink-strong);margin-bottom:var(--s2);outline:0}
.report-links{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--s2);font-size:var(--t-small);margin-top:var(--s1)}
.report-links span{color:var(--ink-3)}
.report-links a{display:inline-flex;align-items:center;min-height:var(--tap)}
.report-actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin:var(--s2) 0 var(--s3)}
.report-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:var(--s5);align-items:start;border-top:1px solid var(--rule);padding-top:var(--s3)}
.report-grid.no-pdf{grid-template-columns:minmax(0,1fr)}
.notes summary{min-height:var(--tap);display:flex;align-items:center;cursor:pointer;font:400 var(--t-h3)/1.3 var(--serif);color:var(--ink-strong)}
.md{max-width:var(--measure);overflow-wrap:anywhere}
.md h1,.md h2,.md h3,.md h4{font-family:var(--serif);font-weight:400;color:var(--ink-strong);line-height:1.2;margin:var(--s4) 0 var(--s2)}
.md h1{font-size:1.75rem}.md h2{font-size:var(--t-h2)}.md h3{font-size:var(--t-h3)}.md h4{font-size:var(--t-body)}
.notes .md h2{font-size:var(--t-h3)}
.md p,.md ul,.md ol,.md pre,.md blockquote,.md table{margin:0 0 var(--s3)}
.md ul{list-style:disc;padding-left:var(--s4)}.md ol{list-style:decimal;padding-left:var(--s4)}
.md strong{font-weight:500;color:var(--ink-strong)}
.md code{font-size:.92em;background:var(--hover);padding:0 var(--s1)}
.md pre{background:var(--hover);padding:var(--s2) var(--s3);overflow:auto}
.md pre code{background:none;padding:0}
.md blockquote{border-left:2px solid var(--rule-2);padding-left:var(--s3);color:var(--ink-2)}
.md hr{border:0;border-top:1px solid var(--rule-2);margin:var(--s4) 0}
.md table{border-collapse:collapse;display:block;overflow-x:auto;overflow-wrap:normal}
.md th,.md td{border-bottom:1px solid var(--rule);padding:var(--s1) var(--s2) var(--s1) 0;text-align:left;vertical-align:top}
.md th{font-weight:400;color:var(--ink-strong);border-bottom-color:var(--rule-2)}

/* PDF viewer */
.viewer{min-width:0}
.viewer-bar{position:sticky;top:var(--bar);z-index:5;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0 var(--s3);background:var(--bg);border-bottom:1px solid var(--rule);font-size:var(--t-small);min-height:var(--tap)}
.viewer-bar .acts{display:flex;align-items:center;gap:var(--s3)}
.viewer-bar .acts a,.viewer-bar .acts button{display:inline-flex;align-items:center;min-height:var(--tap)}
.page-count{color:var(--ink-2)}
.pdf-pages{display:grid;gap:var(--s3);padding-top:var(--s3);touch-action:pan-x pan-y pinch-zoom}
.pdf-page{margin:0}
.pdf-sheet{background:#fff;border:1px solid var(--rule-2);width:100%;position:relative;overflow:hidden}
.pdf-sheet.is-loading{background:var(--sk)}
.js .pdf-sheet.is-loading{background:linear-gradient(90deg,var(--sk) 25%,var(--sk-2) 50%,var(--sk) 75%);background-size:200% 100%;animation:sheen 1.2s linear infinite}
.pdf-sheet canvas{display:block;width:100%;height:100%}
.pdf-page figcaption{text-align:right;font-size:var(--t-label);color:var(--ink-3);padding-top:var(--s1)}
.viewer-state{padding:var(--s3) 0;font-size:var(--t-small);color:var(--ink-2)}
.viewer-state .sheet{aspect-ratio:210/297;margin-top:var(--s2)}
.viewer-error{padding:var(--s3);border:1px solid var(--warn);margin-top:var(--s3);font-size:var(--t-small)}
.viewer-error strong{display:block;color:var(--warn);font-weight:500;margin-bottom:var(--s1)}
.attachment-list{display:flex;flex-wrap:wrap;gap:var(--s1);padding-top:var(--s2)}
.issue-nav{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2);margin-top:var(--s5);padding-top:var(--s3);border-top:1px solid var(--rule-2)}
.issue-nav .btn{flex-direction:column;align-items:flex-start;text-align:left;padding:var(--s2) var(--s3);min-width:0}
.issue-nav .next{align-items:flex-end;text-align:right}
.issue-nav small{color:var(--ink-3)}
.related{margin-top:var(--s5)}
.related h2{font:400 var(--t-h2)/1.2 var(--serif);color:var(--ink-strong);margin-bottom:var(--s3)}
.related-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--s3)}
.related-card{display:grid;grid-template-columns:72px minmax(0,1fr);gap:var(--s2);padding:var(--s2);border:1px solid var(--rule);text-decoration:none;min-height:var(--tap)}
.related-card:hover{background:var(--hover);color:inherit}
.related-card .latest-cover{border-color:var(--rule)}
.related-card .text-cover{padding:var(--s1);font-size:var(--t-label)}
.related-card strong{font:400 var(--t-body)/1.3 var(--serif);color:var(--ink-strong);display:block}
.related-none{color:var(--ink-2);font-size:var(--t-small)}

/* About */
.about{padding:var(--s5) var(--pad) var(--s6);min-height:60vh}
.about h1{font:400 2.25rem/1.15 var(--serif);color:var(--ink-strong)}
.about-name{font:400 var(--t-h3)/1.3 var(--serif);color:var(--ink);margin:var(--s2) 0 var(--s3)}
.about h2{font:400 var(--t-h2)/1.2 var(--serif);color:var(--ink-strong);margin:var(--s5) 0 var(--s2)}
.prose{max-width:var(--measure)}
.prose p{margin-bottom:var(--s3)}
.about-links li{min-height:var(--tap);display:flex;align-items:center}
.noscript{padding:var(--s3) var(--pad)}

/* Editor */
.editor{width:min(1080px,calc(100vw - var(--s5)));max-height:calc(100dvh - var(--s5));border:1px solid var(--rule-2);background:var(--bg-2);color:var(--ink);padding:0;overflow:auto}
.editor::backdrop{background:rgba(5,8,12,.72)}
.editor[open]{animation:fade var(--fast) ease-out}
.editor form{padding:var(--s3) var(--s4) var(--s4);display:grid;gap:var(--s3)}
.editor-top{display:flex;justify-content:space-between;align-items:center}
.editor-top h2{font:400 var(--t-h2)/1.2 var(--serif);color:var(--ink-strong)}
.editor-fields{display:grid;grid-template-columns:minmax(0,1fr) 176px 176px;gap:var(--s3)}
.field{display:flex;flex-direction:column;gap:var(--s1);min-width:0;border:0;padding:0;margin:0}
.field>span,.field legend{font-size:var(--t-label);color:var(--ink-2);padding:0}
.field input:not([type=checkbox]):not([type=file]),.field select,.field textarea{width:100%;background:var(--bg);border:1px solid var(--rule-2);padding:var(--s2);min-height:var(--tap);border-radius:0}
.field textarea{line-height:1.6;resize:vertical;min-height:280px}
.checks{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s3);margin-top:var(--s1)}
.check{display:inline-flex;gap:var(--s2);align-items:center;font-size:var(--t-small);min-height:var(--tap);cursor:pointer}
.check input{width:16px;height:16px;accent-color:var(--fill)}
.editor-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.preview{border:1px solid var(--rule);padding:var(--s2) var(--s3);height:100%;min-height:280px;max-height:420px;overflow:auto;font-size:var(--t-small)}
.preview:empty::before{content:"Nothing to preview yet.";color:var(--ink-3)}
.drop{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;border:1px dashed var(--rule-2);padding:var(--s2);font-size:var(--t-small);color:var(--ink-2);transition:background var(--fast)}
.drop.over{background:var(--hover)}
.files li{display:flex;justify-content:space-between;gap:var(--s3);align-items:center;min-height:var(--tap);border-bottom:1px solid var(--rule);font-size:var(--t-small)}
.form-error{color:var(--danger);font-size:var(--t-small);margin-top:var(--s1)}
.editor-foot{display:flex;justify-content:flex-end;gap:var(--s2);flex-wrap:wrap}
.editor-foot .danger{margin-right:auto}

.lost{min-height:80vh;display:flex;flex-direction:column;justify-content:center;padding:var(--s4) var(--pad)}
.lost h1{font:400 clamp(2.25rem,6vw,3rem)/1.1 var(--serif);color:var(--ink-strong);margin-bottom:var(--s3)}

@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes sheen{from{background-position:200% 0}to{background-position:-200% 0}}

@media (min-width:761px){
  :root{--gutter:var(--s5)}
  .word small{display:block;font:400 .75rem/1 var(--sans);letter-spacing:0;text-transform:none;margin-top:var(--s1);color:var(--ink-3)}
}
@media (max-width:1100px){
  .tape{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tile:nth-child(4){border-left:0}
  .tile:nth-child(4) a{padding-left:0}
  .tile:nth-child(3) a{padding-right:0}
  .tile:nth-child(n+4){border-top:1px solid var(--rule)}
  .panel{grid-template-columns:minmax(0,1fr);gap:var(--s3)}
  .side{position:static}
  .hero-grid{grid-template-columns:minmax(0,1fr)}
  .stamp-k{display:none}
  .prov time{display:inline}
  .prov li{display:inline-block;margin-right:var(--s2);padding:0}
  .report-grid{grid-template-columns:minmax(0,1fr)}
  .report-grid .notes{order:-1}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  :root{--bar:52px}
  .word small{display:none}
  .word{font-size:.875rem;letter-spacing:.14em}
  .mark{width:24px;height:24px}
  .bar{gap:var(--s2)}
  .top-nav{display:none}
  .menu-btn{display:grid}
  .stamp-date{display:none}
  .stamp{margin-left:auto;font-size:var(--t-label)}
  .stamp-note{display:none}
  .stamp-note.warn{display:inline}
  .bar-actions{gap:0}
  .tape{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tile:nth-child(odd){border-left:0}
  .tile:nth-child(4){border-left:1px solid var(--rule)}
  .tile:nth-child(n+3){border-top:1px solid var(--rule)}
  .tile a,.tile:nth-child(3) a,.tile:nth-child(4) a{padding:var(--s2)}
  .tile:nth-child(odd) a{padding-left:0}
  .tile:nth-child(even) a{padding-right:0}
  .t-val{font-size:1.5rem}
  .hero-grid{padding:var(--s3) 0}
  .hero h1{font-size:1.625rem}
  .hero h1 em{display:inline}
  .hero-copy p{font-size:var(--t-small);margin-top:var(--s1)}
  .curve-hero,.jump{display:none}
  .curve-inline{display:block;margin-top:var(--s3)}
  .curve .tenor{font-size:20px}
  .curve .yld{font-size:24px}

  /* Collapsible panels */
  .panel{display:flex;flex-direction:column;gap:0;padding:var(--s2) var(--pad)}
  .js .reveal{opacity:1}
  .side{display:contents}
  .idx{display:none}
  .side h2{order:1}
  .toggle{min-height:var(--tap);cursor:pointer}
  .js .chev{display:block}
  .js .panel.open .chev{transform:rotate(225deg)}
  .prov{order:2;margin:0 0 var(--s2)}
  .main{order:3;min-width:0}
  .linked{order:4}
  .linked li a,.linked .add{min-height:var(--tap)}
  .js .panel:not(.open) .main,.js .panel:not(.open) .linked{display:none}

  .tbl,.tbl tbody{display:block}
  .tbl thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .tbl tbody tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 96px;column-gap:var(--s2);row-gap:var(--s1);padding:var(--s2) 0}
  .tbl tbody th{grid-column:1/3;grid-row:1;padding:0;display:block}
  .tbl td{padding:0}
  .val{grid-column:3/5;grid-row:1;font-size:1.25rem}
  .chg{width:auto;text-align:right}
  .chg .l{display:block;font-size:var(--t-label);color:var(--ink-3)}
  .spk{width:auto;grid-column:4;align-self:end}
  .spark{width:96px;height:32px}
  .tbl tbody tr.is-empty{grid-template-columns:minmax(0,1fr)}
  .tbl tbody tr.is-empty th,.nodata{grid-column:1/-1}
  td.nodata{padding-left:0}

  .tbl-cb tbody tr{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--s2)}
  .tbl-cb tbody th{grid-column:1;width:auto}
  .tbl-cb td,.tbl-cb tbody th{padding:0}
  .cb-rate{grid-column:2;grid-row:1;width:auto}
  .cb-last,.cb-next{grid-column:1/-1;width:auto}
  .tbl-cb .l{display:block;font-size:var(--t-label);color:var(--ink-3)}

  .ev{grid-template-columns:72px minmax(0,1fr);gap:0 var(--s2);align-items:start}
  .ev-date{flex-direction:column;gap:0}
  .ev-meta{grid-column:2;text-align:left;display:flex;gap:var(--s2);flex-wrap:wrap;align-items:baseline;margin-top:var(--s1)}
  .foot-grid{grid-template-columns:minmax(0,1fr)}
  .foot{padding-top:var(--s4)}

  .research{padding-top:var(--s3)}
  .lib-head{margin-bottom:var(--s3)}
  .lib-actions{width:100%}
  .lib-actions .btn{flex:1}
  .latest{grid-template-columns:112px minmax(0,1fr);gap:var(--s3);padding:var(--s3) 0;align-items:start}
  .latest h2{font-size:1.625rem}
  .latest-summary{grid-column:1/-1;margin:var(--s2) 0}
  .latest-copy{display:contents}
  .latest-title{grid-column:2}
  .latest .btn.primary{grid-column:1/-1;width:100%}
  .archive-controls{padding-top:0}
  .chips{flex-wrap:nowrap;overflow-x:auto;margin:0 calc(var(--s3) * -1);padding:0 var(--s3);scrollbar-width:none;width:calc(100% + var(--s5))}
  .chip{flex:none}
  .row-head{display:none}
  .note-btn{grid-template-columns:32px minmax(0,1fr) auto;padding:var(--s2) 0;row-gap:0}
  .n-title{grid-column:2/4;grid-row:1}
  .n-no{grid-row:1/3;align-self:start;padding-top:2px}
  .n-date{grid-column:2;grid-row:2}
  .n-tag{grid-column:3;grid-row:2;justify-self:end}
  .editor{width:100%;max-width:100%;max-height:100dvh;height:100dvh;margin:0;border:0}
  .editor form{padding:var(--s2) var(--s3) var(--s3)}
  .editor-fields,.editor-split{grid-template-columns:minmax(0,1fr)}
  .preview{min-height:144px;height:auto}
  .field textarea{min-height:192px}
  .issue-nav .btn{padding:var(--s2)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .reveal{opacity:1}
  .progress{display:none}
}
@media (forced-colors:active){
  .chg.up .v::before,.chg.down .v::before{forced-color-adjust:none}
  .spark path{stroke:CanvasText}
}
