:root{--ink:#16202c;--slate:#2b3a4a;--mute:#5b6b7c;--line:#d5dce4;--line2:#e6ebf0;--bg:#f2f5f8;--panel:#fff;--sig:#ff5a1f;--sigd:#c93d08;--sigt:#fff1ea;--ok:#1e9e5c;--teal:#1f6f8b;--amber:#f2a516;
--rail:272px;--f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--f-head:"IBM Plex Sans Condensed","IBM Plex Sans",system-ui,sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace}
*{box-sizing:border-box;border-radius:0!important}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg) url(/assets/grid.svg);color:var(--ink);font:400 16px/1.65 var(--f-body);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:#17508f;text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--sigd)}
h1,h2,h3{font-family:var(--f-head);font-weight:700;line-height:1.1;letter-spacing:-.01em;margin:0;color:var(--ink)}
.shell{display:block}
/* rail */
.rail{background:var(--ink);color:#c9d3de;padding:20px 18px;display:flex;flex-direction:column;gap:18px}
.brand{display:block;background:#fff;padding:10px 12px}
.brand img{width:100%;max-width:208px;height:auto}
.rl{font:600 12px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:#8fa1b4;margin:0 0 6px;display:none}
.rail nav{display:flex;flex-direction:column;border-top:1px solid #34475a;margin-top:6px}
.rail nav a{display:grid;grid-template-columns:30px 1fr auto;gap:6px;align-items:baseline;color:#d7e0ea;text-decoration:none;padding:11px 10px 11px 8px;border-bottom:1px solid #2a3b4d;border-left:3px solid transparent;font:500 14.5px/1.3 var(--f-body)}
.rail nav a b{font:600 11px var(--f-mono);color:#6f8398}
.rail nav a em{font:600 11px var(--f-mono);font-style:normal;color:#8fa1b4;background:#243649;padding:1px 6px}
.rail nav a:hover{background:#1f2e3e;color:#fff}
.rail nav a.on{background:#243649;color:#fff;border-left-color:var(--sig)}
.rail nav a.on b{color:var(--sig)}
.rail nav{overflow-x:auto}
.railfoot{display:none;font-size:12.5px;color:#8fa1b4;line-height:1.5}
.railfoot p{margin:0 0 8px}
.status{font:600 11.5px var(--f-mono)!important;letter-spacing:.06em;text-transform:uppercase;color:#c9d3de}
.dot{display:inline-block;width:9px;height:9px;background:var(--ok);margin-right:8px;vertical-align:1px;box-shadow:0 0 0 3px rgba(30,158,92,.25)}
.dot.warn{background:var(--sig);box-shadow:0 0 0 3px rgba(255,90,31,.25)}
/* main */
.main{min-width:0}
.topbar{display:none}
main{padding:0 16px 8px;max-width:1240px}
.eyebrow{font:600 12px var(--f-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--mute);margin:0 0 14px}
.lead{font-size:18px;line-height:1.55;color:var(--slate);margin:16px 0 0;max-width:62ch}
.btn{display:inline-block;background:var(--sig);color:#16202c;font:600 15px var(--f-body);padding:13px 22px;text-decoration:none;border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);transition:transform .12s,box-shadow .12s}
.btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink);color:#16202c}
.btn.ghost{background:#fff}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}
/* hero */
.hero{display:grid;gap:26px;padding:30px 0 10px}
.hero h1{font-size:clamp(36px,9vw,66px);max-width:14ch}
.scope{margin:0;background:var(--panel);border:1px solid var(--ink);box-shadow:6px 6px 0 var(--ink)}
.scope-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--ink);font:600 12px var(--f-mono);text-transform:uppercase;letter-spacing:.08em;background:var(--bg)}
.chips{display:flex;align-items:center;gap:6px;color:var(--mute)}
.chips i{width:10px;height:10px;display:inline-block}.chips .c1{background:var(--sig)}.chips .c2{background:var(--teal);margin-left:8px}
.scope-body{position:relative;aspect-ratio:2/1;overflow:hidden;background:#fff url(/assets/grid.svg)}
.scope-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.9}
.scope-body svg{position:absolute;inset:0;width:100%;height:100%}
.callout{position:absolute;left:54%;top:10%;max-width:190px;background:var(--ink);color:#fff;padding:8px 10px;font-size:12px;line-height:1.35;border-left:4px solid var(--sig)}
.callout b{display:block;font:600 11px var(--f-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--sig)}
.scope figcaption{padding:8px 14px;font-size:12px;color:var(--mute);border-top:1px solid var(--line)}
/* kpis */
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--ink);border:1px solid var(--ink);margin:30px 0 8px}
.kpi{background:var(--panel);padding:16px 16px 14px;display:flex;flex-direction:column;gap:2px}
.k-label{font:600 11px var(--f-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--mute)}
.kpi strong{font:700 44px/1 var(--f-head);margin-top:6px}
.kpi strong.txt{font-size:22px;line-height:1.15}
.k-sub{font-size:13px;color:var(--mute);margin-top:6px;line-height:1.35}
.kpi.pick{background:var(--sigt)}.sq{display:inline-block;width:9px;height:9px;background:var(--sig);margin-right:7px}
/* blocks */
.block{padding:38px 0 0}
.block-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:0}
.block-head h2{font-size:26px}
.block-head p{margin:0;color:var(--mute);font-size:14.5px}
.board{background:var(--panel);border:1px solid var(--line);border-top:0}
.row{display:grid;grid-template-columns:34px 1fr;gap:4px 12px;padding:16px 14px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);position:relative}
.row:hover{background:var(--sigt)}
.r-no{font:600 13px var(--f-mono);color:var(--sig);padding-top:3px}
.r-main strong{display:block;font:700 20px/1.2 var(--f-head)}
.r-main span{display:block;font-size:14.5px;color:var(--mute);margin-top:3px;line-height:1.45}
.r-bar{grid-column:2;height:8px;background:var(--line2);margin-top:8px;display:block}
.r-bar i{display:block;height:100%;background:var(--slate)}
.row:hover .r-bar i{background:var(--sig)}
.r-n{grid-column:2;font:500 12.5px var(--f-mono);color:var(--mute)}.r-n b{font-size:15px;color:var(--ink)}
/* latest */
.latest{display:grid;gap:0;background:var(--panel);border:1px solid var(--line);border-top:0}
.lead-card{border-bottom:1px solid var(--line)}
.lc-img{display:block;aspect-ratio:3/2;background:var(--slate) url(/assets/grid.svg);position:relative;overflow:hidden}
.lc-img::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#2b3a4a 0 60%,#3a5068);}
.lc-img::after{content:"";position:absolute;left:12%;right:12%;bottom:18%;height:38%;background:
 linear-gradient(var(--sig),var(--sig)) 8% 100%/9% 90% no-repeat,linear-gradient(#8fa1b4,#8fa1b4) 28% 100%/9% 45% no-repeat,linear-gradient(#8fa1b4,#8fa1b4) 48% 100%/9% 62% no-repeat,linear-gradient(#8fa1b4,#8fa1b4) 68% 100%/9% 30% no-repeat,linear-gradient(#8fa1b4,#8fa1b4) 88% 100%/9% 52% no-repeat}
.lc-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.lc-txt{padding:20px 18px 22px}
.lc-txt h3{font-size:28px;margin:12px 0 10px}
.lc-txt h3 a{color:var(--ink);text-decoration:none}.lc-txt h3 a:hover{color:var(--sigd)}
.lc-txt p{color:var(--slate);margin:0 0 12px}
.tag{display:inline-block;font:600 11px var(--f-mono);text-transform:uppercase;letter-spacing:.08em;background:var(--ink);color:#fff;padding:3px 8px;text-decoration:none}
a.tag:hover{background:var(--sigd);color:#fff}
.meta{font:500 12.5px var(--f-mono);color:var(--mute)}.meta i{font-style:normal;margin:0 4px;color:var(--sig)}
.feed-head{display:none}
.feed-row{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:14px 16px;border-bottom:1px solid var(--line2);text-decoration:none;color:var(--ink)}
.feed-row:last-child{border-bottom:0}
.feed-row:hover{background:var(--sigt)}
.f-date{grid-column:1/-1;font:500 12px var(--f-mono);color:var(--mute)}
.f-title{font-weight:500;line-height:1.35}
.f-title em{display:block;font:600 11px var(--f-mono);font-style:normal;text-transform:uppercase;letter-spacing:.07em;color:var(--sigd);margin-bottom:2px}
.f-min{font:500 12.5px var(--f-mono);color:var(--mute);align-self:end}
/* panels */
.panels{display:grid;gap:0;background:var(--panel);border:1px solid var(--line);border-top:0}
.panel{padding:20px 18px;border-bottom:1px solid var(--line)}
.p-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.p-no{font:600 13px var(--f-mono);color:var(--sig)}
.p-head h3{font-size:21px}.p-head a{color:var(--ink);text-decoration:none}.p-head a:hover{color:var(--sigd)}
.panel ul{list-style:none;margin:0 0 12px;padding:0}
.panel li{padding:9px 0;border-top:1px solid var(--line2);font-size:15px;line-height:1.4}
.panel li a{color:var(--slate);text-decoration:none}.panel li a:hover{color:var(--sigd);text-decoration:underline}
.panel .soon{color:var(--mute)}
.p-more{font:600 12.5px var(--f-mono);text-transform:uppercase;letter-spacing:.06em;text-decoration:none;color:var(--ink);border-bottom:2px solid var(--sig)}
/* category head */
.cat-head{display:grid;gap:22px;padding:30px 0 6px}
.cat-head h1{font-size:clamp(34px,8vw,58px);max-width:18ch}
.stats{display:flex;flex-wrap:wrap;gap:0;margin:24px 0 0;border:1px solid var(--ink);background:var(--panel);width:max-content;max-width:100%}
.stats div{padding:10px 18px;border-right:1px solid var(--line)}.stats div:last-child{border-right:0}
.stats dt{font:600 10.5px var(--f-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--mute)}
.stats dd{margin:0;font:700 22px var(--f-head)}
.ch-art{position:relative;aspect-ratio:3/2;background:var(--slate) url(/assets/grid.svg);border:1px solid var(--ink);box-shadow:6px 6px 0 var(--ink);overflow:hidden}
.ch-art::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#2b3a4a,#3a5068)}
.ch-art svg{position:absolute;inset:8% 6%;width:88%;height:84%}
.ch-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.cat-head.plain{padding-bottom:0}
.index{background:var(--panel);border:1px solid var(--line);border-top:0}
.ix-row{display:grid;grid-template-columns:30px 1fr;gap:6px 10px;padding:18px 14px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.ix-row:hover{background:var(--sigt)}
.ix-no{font:600 13px var(--f-mono);color:var(--sig);padding-top:4px}
.ix-main strong{display:block;font:700 21px/1.2 var(--f-head)}
.ix-main span{display:block;color:var(--mute);font-size:14.5px;margin-top:5px;line-height:1.5}
.ix-meta{grid-column:2;font:500 12px var(--f-mono);color:var(--mute)}.ix-meta b{color:var(--ink);margin-right:10px}
.empty{padding:22px;background:#fff;border:1px solid var(--line);color:var(--mute)}
.chiprow{display:flex;flex-wrap:wrap;gap:10px;padding-top:18px}
.chiprow a{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--ink);padding:9px 14px 9px 0;text-decoration:none;color:var(--ink);font-weight:500;font-size:14.5px}
.chiprow a b{font:600 12px var(--f-mono);background:var(--ink);color:#fff;padding:4px 9px;align-self:stretch;display:flex;align-items:center}
.chiprow a:hover{background:var(--sigt)}
/* article */
.art-wrap{display:grid;gap:26px;padding-top:24px}
.art{min-width:0}
.breadcrumb{font:500 12.5px var(--f-mono);color:var(--mute);margin-bottom:14px;display:flex;flex-wrap:wrap;gap:6px}
.breadcrumb a{color:var(--mute);text-decoration:none}
.art-head h1{font-size:clamp(32px,7vw,50px);margin:14px 0 14px;max-width:22ch}
.art-meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;font:500 12.5px var(--f-mono);color:var(--mute);padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.readout{margin:24px 0 8px;background:var(--panel);border:1px solid var(--ink);border-top:6px solid var(--sig);box-shadow:5px 5px 0 var(--ink)}
.ro-head{font:600 11.5px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;padding:10px 16px 0;color:var(--sigd)}
.readout p{margin:0;padding:6px 16px 16px;font-size:17px;line-height:1.55;color:var(--ink);font-weight:500}
.prose{max-width:74ch;font-size:17px;line-height:1.75;color:#232f3c;padding-top:10px}
.prose.narrow{padding:24px 0}
.prose h2{font-size:30px;margin:2.1em 0 .5em;padding-top:.5em;border-top:2px solid var(--ink)}
.prose h3{font-size:22px;margin:1.7em 0 .4em;color:var(--slate)}
.prose p{margin:0 0 1.1em}
.prose ul,.prose ol{padding-left:0;list-style:none;margin:0 0 1.3em;counter-reset:li}
.prose li{position:relative;padding:8px 0 8px 30px;border-bottom:1px solid var(--line2)}
.prose ul li::before{content:"";position:absolute;left:4px;top:1.05em;width:10px;height:10px;background:var(--sig)}
.prose ol li{counter-increment:li}
.prose ol li::before{content:counter(li);position:absolute;left:0;top:.7em;font:600 12px var(--f-mono);color:#fff;background:var(--ink);width:22px;height:22px;display:grid;place-items:center}
.prose blockquote{margin:1.6em 0;padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-left:6px solid var(--teal);font-size:18px;color:var(--slate)}
.prose blockquote p:last-child{margin:0}
.prose table{width:100%;border-collapse:collapse;margin:1.6em 0;background:var(--panel);border:1px solid var(--ink);font-size:15px;line-height:1.45;display:block;overflow-x:auto}
.prose thead th{background:var(--ink);color:#fff;text-align:left;font:600 12px var(--f-mono);text-transform:uppercase;letter-spacing:.07em;padding:11px 14px;white-space:nowrap}
.prose td,.prose tbody th{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}
.prose tbody tr:nth-child(even){background:#f7f9fb}
.prose tbody tr:hover{background:var(--sigt)}
.prose tbody td:first-child,.prose tbody th:first-child{font-weight:600;color:var(--ink)}
.prose td:not(:first-child){font-variant-numeric:tabular-nums}
.prose a{font-weight:500}
.prose hr{border:0;border-top:1px solid var(--line);margin:2em 0}
.prose strong{color:var(--ink)}
.faq{margin-top:46px}
.faq h2,.related h2{font-size:28px;border-bottom:2px solid var(--ink);padding-bottom:10px}
.faq details{background:var(--panel);border:1px solid var(--line);border-top:0}
.faq summary{cursor:pointer;list-style:none;padding:16px 50px 16px 16px;font-weight:600;position:relative;line-height:1.4}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:14px;top:10px;width:26px;height:26px;display:grid;place-items:center;background:var(--ink);color:#fff;font:600 16px var(--f-mono)}
.faq details[open] summary::after{content:"\2212";background:var(--sig);color:var(--ink)}
.faq details p{margin:0;padding:0 16px 18px;color:var(--slate)}
.related{margin-top:46px}
.rel-grid{display:grid;gap:0;background:var(--panel);border:1px solid var(--line);border-top:0}
.rel-grid a{display:flex;flex-direction:column;gap:8px;align-items:flex-start;padding:16px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.rel-grid a:hover{background:var(--sigt)}
.rel-grid strong{font:700 19px/1.25 var(--f-head)}
.rel-grid em{font:500 12px var(--f-mono);font-style:normal;color:var(--mute)}
.side{display:none}
.sidecard{background:var(--panel);border:1px solid var(--line);margin-bottom:16px}
.sidecard h2{font:600 11.5px var(--f-mono);text-transform:uppercase;letter-spacing:.12em;padding:10px 14px;background:var(--bg);border-bottom:1px solid var(--line);color:var(--mute)}
.sidecard dl{margin:0;padding:4px 14px}
.sidecard dl div{padding:9px 0;border-bottom:1px solid var(--line2)}.sidecard dl div:last-child{border:0}
.sidecard dt{font:500 11px var(--f-mono);color:var(--mute);text-transform:uppercase;letter-spacing:.08em}
.sidecard dd{margin:2px 0 0;font-weight:500;font-size:14.5px}
.sidecard nav a{display:flex;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line2);text-decoration:none;color:var(--slate);font-size:14px;line-height:1.35;border-left:3px solid transparent}
.sidecard nav a.on{border-left-color:var(--sig);font-weight:600;color:var(--ink);background:var(--sigt)}
.sidecard nav a:hover{background:var(--bg)}
.sidecard nav em{font:600 11px var(--f-mono);font-style:normal;color:var(--mute)}
/* footer */
.foot{margin-top:60px;background:#fff;border-top:2px solid var(--ink);padding:28px 16px 40px;display:grid;gap:22px}
.foot p{font-size:14px;color:var(--mute);max-width:46ch;margin:12px 0 0}
.foot nav{display:flex;flex-wrap:wrap;gap:8px 20px}
.foot nav a{font-size:14px;color:var(--slate);text-decoration:none;border-bottom:1px solid var(--line)}
.foot nav a:hover{border-color:var(--sig);color:var(--ink)}
.hero,.cat-head,.art-wrap,.latest,.panels,.foot,.rel-grid{grid-template-columns:minmax(0,1fr)}
main,.main{max-width:100%}
/* tablet and up */
@media (min-width:700px){
 main{padding:0 28px 8px}
 .kpis{grid-template-columns:repeat(4,1fr)}
 .row{grid-template-columns:40px 1.6fr 1fr 90px;align-items:center;gap:18px;padding:18px 20px}
 .r-bar,.r-n{grid-column:auto}.r-bar{margin:0}.r-n{text-align:right}
 .panels{grid-template-columns:1fr 1fr}.panel{border-right:1px solid var(--line)}.panel:nth-child(2n){border-right:0}
 .latest{grid-template-columns:1.05fr 1fr}
 .lead-card{border-bottom:0;border-right:1px solid var(--line)}
 .feed-head{display:grid;grid-template-columns:96px 1fr auto;gap:12px;padding:10px 16px;font:600 11px var(--f-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--mute);background:var(--bg);border-bottom:1px solid var(--line)}
 .feed-row{grid-template-columns:96px 1fr auto;align-items:start;padding:14px 16px}.f-date{grid-column:auto;padding-top:3px}.f-min{align-self:start;padding-top:3px}
 .ix-row{grid-template-columns:44px 1fr 120px;gap:18px;padding:22px 20px}.ix-meta{grid-column:auto;text-align:right}.ix-meta b{display:block;margin:0 0 4px}
 .foot{grid-template-columns:1fr 1fr;padding:34px 28px 44px}
 .rel-grid{grid-template-columns:1fr 1fr}.rel-grid a:nth-child(odd){border-right:1px solid var(--line)}
}
/* desktop dashboard */
@media (min-width:1040px){
 .shell{display:grid;grid-template-columns:var(--rail) 1fr;min-height:100vh}
 .rail{position:sticky;top:0;height:100vh;overflow-y:auto;padding:24px 18px}
 .rl{display:block}
 .railfoot{display:block;margin-top:auto}
 .topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 40px;background:#fff;border-bottom:1px solid var(--line);font:500 12.5px var(--f-mono);color:var(--mute);position:sticky;top:0;z-index:5}
 .topbar a{color:var(--mute);text-decoration:none}.sep{margin:0 8px;color:var(--sig)}
 .tb-tag{text-transform:uppercase;letter-spacing:.1em;font-weight:600;color:var(--ink)}
 main{padding:0 40px 8px}
 .hero{grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:44px;align-items:center;padding:52px 0 14px}
 .hero h1{font-size:clamp(52px,5vw,72px)}
 .cat-head{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:48px;align-items:center;padding-top:48px}
 .cat-head.plain{grid-template-columns:1fr}
 .art-wrap{grid-template-columns:minmax(0,1fr) 280px;gap:48px;padding-top:40px}
 .side{display:block;position:sticky;top:70px;align-self:start}
 .panels{grid-template-columns:repeat(3,1fr)}.panel:nth-child(2n){border-right:1px solid var(--line)}.panel:nth-child(3n){border-right:0}
 .panel{border-bottom:1px solid var(--line)}
 .foot{padding:34px 40px 44px}
}
@media (min-width:1500px){main{padding-left:56px}.art-wrap{grid-template-columns:minmax(0,1fr) 300px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
:focus-visible{outline:3px solid var(--sig);outline-offset:2px}

@media (max-width:1039px){
 .rail{padding:12px 16px 0;gap:10px}
 .brand{padding:8px 10px;width:max-content}
 .rail nav{flex-direction:row;border-top:0;margin:0 -16px;padding:0 16px;gap:0;scrollbar-width:none}
 .rail nav a{display:flex;flex:none;gap:8px;border-bottom:3px solid transparent;border-left:0;padding:11px 14px;white-space:nowrap}
 .rail nav a em{display:none}
 .rail nav a.on{border-bottom-color:var(--sig);background:#243649}
}
