/* Alliance / Business intelligence edition. Shared across every public page. */
:root[data-theme="light"] {
  --paper:#f6f7f5; --surface:#fff; --ink:#142c35; --ink-soft:#52646b;
  --line:#dce3e1; --fern:#176555; --fern-tint:#eaf1ed; --kowhai:#d4ae64;
  --panel:#142c35; --panel-fg:#f4f8f6; --panel-soft:#bccdc9;
  --series-1:#2478a1; --series-2:#be673e; --series-3:#28705c;
  --viz-neg:#be673e; --viz-grid:#e5ebed;
  --radius:5px; --wrap:1400px; --gutter:clamp(20px,4.5vw,64px);
  --step-4:clamp(2.8rem,5vw,4.6rem);
}
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { font-size:1rem; }
button,a,input,summary { -webkit-tap-highlight-color:transparent; }
button,a { transition:color .2s,background .2s,border-color .2s,transform .2s; }
:focus-visible { outline:3px solid #268a79; outline-offset:4px; }
h1,h2,h3 { letter-spacing:-.035em; }
h2 { font-weight:500; }
.btn { border-radius:4px; padding:16px 23px; font-size:.86rem; min-height:46px; }
.btn:active,button:active { transform:translateY(1px); }
.btn:hover { background:#104b40; border-color:#104b40; }
.text-link { align-self:center; font-size:.9rem; font-weight:600; text-decoration:none; padding:12px 0; }
.site-head { background:rgba(255,255,255,.96); backdrop-filter:blur(12px); }
.site-head .wrap { min-height:92px; }
.brand { gap:12px; flex-shrink:0; }
.brand img { width:44px; height:44px; }
.brand span { font-family:var(--font-body); font-weight:700; font-size:1.03rem; letter-spacing:-.035em; }
.brand small { margin-top:7px; font-size:.57rem; letter-spacing:.15em; font-weight:500; }
.nav { gap:12px; }
.nav a { font-size:.82rem; padding:10px 8px; border-radius:0; }
.nav a[aria-current="page"] { background:transparent; color:var(--fern); box-shadow:inset 0 -2px var(--fern); }
.nav .btn { border-radius:4px; padding:13px 18px; box-shadow:none; }
.eyebrow { font-size:.67rem; letter-spacing:.18em; line-height:1.5; }
.lede { font-size:1.1rem; line-height:1.75; }
.home-page .hero { background:#fff; padding-block:72px 76px; border-bottom:1px solid var(--line); }
.hero .wrap { grid-template-columns:1.12fr 1fr; gap:80px; }
.hero h1 { font-size:clamp(3.5rem,5.5vw,5.5rem); line-height:1.01; letter-spacing:-.045em; }
.hero h1 em { color:var(--fern); font-weight:500; }
.hero-copy { gap:27px; }
.hero-copy .lede { max-width:34em; }
.hero-meta { border-top:1px solid var(--line); padding-top:24px; font-size:.75rem; gap:20px; }
.hero-meta b { font-family:var(--font-body); }
.home-feature { min-width:0; position:relative; aspect-ratio:1/1.05; background:var(--panel); overflow:hidden; }
.home-feature img { width:100%; height:100%; object-fit:cover; opacity:.9; }
.home-feature::after { content:''; position:absolute; inset:25% 0 0; background:linear-gradient(transparent,rgba(11,34,40,.94)); pointer-events:none; }
.feature-caption { position:absolute; z-index:1; bottom:30px; left:32px; right:32px; color:white; }
.feature-caption>span { font-size:.65rem; text-transform:uppercase; letter-spacing:.17em; }
.feature-caption a { display:block; margin-top:14px; color:white; text-decoration:none; font:500 2rem/1.08 var(--font-display); letter-spacing:-.025em; }
.feature-caption a span { float:right; }
.section { padding-block:72px; }
.section.tint { background:#edf2ef; }
.section-head { max-width:56em; gap:14px; margin-bottom:34px; }
.section-head h2 { font-size:clamp(2.2rem,3vw,3rem); }
.tools { gap:0; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--line); }
.tool-card { border:0; border-bottom:1px solid var(--line); border-radius:0; padding:30px 28px 30px 0; background:transparent; position:relative; gap:12px; }
.tool-card:nth-child(even) { padding-left:32px; border-left:1px solid var(--line); }
.tool-card:hover { transform:none; background:color-mix(in srgb,var(--fern-tint) 65%,transparent); }
.tool-card .figure { font:500 2.8rem/1 var(--font-display); letter-spacing:-.04em; }
.tool-card h3 { font-family:var(--font-body); font-size:1.05rem; letter-spacing:-.02em; }
.tool-card p { max-width:44em; font-size:.9rem; }
.tool-card .go { margin-top:6px; font-size:.78rem; }
.tool-card.soon { order:10; }
.join-band { border-radius:6px; box-shadow:none; padding:42px; }
.page-head { padding-block:65px 38px; }
.article-head { padding-top:64px; }
.site-foot { background:#fff; padding-block:52px; margin-top:0; }
.site-foot .wrap { grid-template-columns:2fr 1fr 1fr 1fr; gap:40px; }
.site-foot p,.site-foot li { font-size:.8rem; }
.site-foot h4 { font-size:.65rem; }
.site-foot .brand span { font-size:.95rem; }
.launcher { font-size:.78rem; padding:13px 18px; border-radius:5px; box-shadow:0 5px 20px #142c3520; }
.launcher .dot { background:#86bda0; width:6px; height:6px; }
/* Compact editorial mastheads place the data ahead of decorative imagery. */
.masthead { min-height:0; background:#fff; color:var(--ink); display:block; border-bottom:1px solid var(--line); }
.masthead-img { left:auto; width:29%; opacity:1; object-fit:cover; }
.masthead-shade { display:none; }
.masthead-text { padding-block:54px 45px; gap:20px; }
.masthead-text>* { max-width:65%; }
.masthead-kicker { color:var(--fern); font-size:.65rem; letter-spacing:.17em; }
.masthead h1 { color:var(--ink); font-size:clamp(2.8rem,4.6vw,4.5rem); line-height:1.03; font-weight:500; text-shadow:none; max-width:65%; }
.masthead-lede { color:var(--ink-soft); font-size:.98rem; line-height:1.75; }
.masthead-meta { color:var(--ink-soft); font:400 .65rem/1.4 var(--font-body); border:0; padding:0; align-items:center; gap:10px; }
.edition-dot { width:6px; height:6px; background:var(--fern); border-radius:50%; }
.masthead-meta span:last-child { margin-left:12px; border-left:1px solid var(--line); padding-left:18px; }
.data-nav { background:#fff; border-bottom:1px solid var(--line); }
.data-nav .wrap { display:flex; gap:25px; align-items:center; overflow-x:auto; scrollbar-width:thin; }
.data-nav a { flex-shrink:0; font-size:.76rem; text-decoration:none; color:var(--ink-soft); padding:17px 0; }
.data-nav a[aria-current] { color:var(--fern); box-shadow:inset 0 -2px var(--fern); font-weight:600; }
.data-nav-label { text-transform:uppercase; font-size:.62rem; letter-spacing:.14em; white-space:nowrap; margin-right:auto; color:var(--ink); font-weight:700; }
.data-asof { font-size:.72rem; line-height:1.6; }
.stats { grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr)); gap:0; border:1px solid var(--line); background:var(--surface); border-radius:5px; margin:28px 0 36px; overflow:hidden; }
.stat { border:0; border-radius:0; padding:23px 22px; border-right:1px solid var(--line); gap:12px; }
.stat:last-child { border-right:0; }
.stat:first-child { background:#edf4f0; }
.stat-label { font-size:.62rem; line-height:1.55; letter-spacing:.08em; min-height:2.8em; }
.stat-value { font-family:var(--font-body); font-size:clamp(1.8rem,2.7vw,2.7rem); letter-spacing:-.065em; font-weight:500; white-space:nowrap; font-variant-numeric:tabular-nums; }
.stat-note { font-size:.68rem; line-height:1.65; }
.viz-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-bottom:24px; }
.viz-grid-one { grid-template-columns:1fr; }
.viz { padding:28px; margin:0; border:1px solid var(--line); border-radius:5px; gap:10px; box-shadow:0 3px 8px #142c3503; }
.viz h2 { font:600 1.14rem/1.3 var(--font-body); letter-spacing:-.035em; }
.viz-sub { font-size:.78rem; line-height:1.65; min-height:2.8em; max-width:75em; }
.viz-plot { min-width:0; margin-top:12px; }
.viz-plot.tall,.viz-wide .viz-plot { min-height:0; }
.chart-canvas { position:relative; min-width:0; }
.viz-svg { overflow:visible; }
.viz-tick { font:400 11px var(--font-body); fill:#64757c; }
.viz-line { stroke-width:2.6; }
.viz-gl { stroke-dasharray:3 5; }
.viz-zero { opacity:.35; }
.viz-cross { stroke:#82969c; stroke-dasharray:4 4; }
.viz-dot { fill:var(--series-1); }
.viz-area { fill:color-mix(in srgb,var(--series-1) 7%,transparent); }
.viz-legend { font-size:.68rem; gap:8px 20px; margin:0 0 18px; }
.viz-legend span { display:inline-flex; align-items:center; }
.viz-legend i { width:17px; height:3px; border-radius:0; }
.viz-ann { font-size:10px; }
.viz-tip { border:1px solid #ffffff20; box-shadow:0 6px 20px #142c3520; border-radius:5px; padding:12px 15px; font-size:.72rem; max-width:100%; white-space:normal; min-width:130px; width:max-content; }
.viz-tip small { margin-bottom:5px; font-size:.65rem; }
.viz-tip b { font-variant-numeric:tabular-nums; }
.viz-read { font-size:.76rem; line-height:1.75; padding-top:18px; margin-top:8px; }
.viz-bars { gap:12px; padding:6px 0 16px; }
.bar-row { grid-template-columns:minmax(7em,1.2fr) 1.6fr 4.2em; font-size:.73rem; gap:12px; }
.bar-track { height:9px; background:#edf2f4; border-radius:2px; }
.bar { border-radius:2px; }
.bar-val { font:500 .72rem var(--font-body); font-variant-numeric:tabular-nums; }
.chart-actions { display:flex; justify-content:space-between; align-items:center; border-top:1px solid #e7edeb; margin-top:18px; padding-top:12px; font-size:.65rem; color:var(--ink-soft); }
.chart-actions button { font:600 .68rem var(--font-body); background:none; color:var(--fern); padding:6px 0 6px 12px; cursor:pointer; border:0; }
.chart-data { margin-top:2px; font-size:.7rem; }
.chart-data summary { color:var(--ink-soft); cursor:pointer; padding:8px 0; width:fit-content; }
.table-scroll { max-height:300px; overflow:auto; border:1px solid var(--line); border-radius:3px; }
.chart-data table { width:100%; border-collapse:collapse; text-align:left; font-variant-numeric:tabular-nums; }
.chart-data caption { padding:12px; text-align:left; font-weight:600; }
.chart-data th,.chart-data td { padding:8px 12px; border-top:1px solid var(--line); white-space:nowrap; }
.chart-data thead { background:var(--fern-tint); position:sticky; top:0; }
.chart-error { padding:25px; background:var(--fern-tint); font-size:.85rem; }
.viz-plot[aria-busy="true"] { height:280px; background:repeating-linear-gradient(to bottom,transparent 0,transparent 53px,#e5ebed 54px,transparent 55px); }
.viz-plot[aria-busy="true"]::after { content:'Loading official data…'; position:absolute; top:45%; left:0; right:0; text-align:center; font-size:.8rem; color:var(--ink-soft); }
.section-plain { max-width:100%; border-top:1px solid var(--line); padding-top:34px; margin-top:42px; margin-bottom:42px; gap:18px; }
.section-plain h2 { font-size:2rem; }
.section-plain>p,.means { max-width:76ch; font-size:.91rem; line-height:1.8; }
.section-plain table { max-width:100%; background:#fff; font-size:.8rem; }
.section-plain th,.section-plain td { padding:13px 16px; }
.section-plain thead { background:#eaf0ed; font-size:.7rem; }
.section-plain details { padding:14px 0; border-bottom:1px solid var(--line); }
.section-plain details p { font-size:.88rem; max-width:78ch; }
.section-plain.sources { display:block; }
.section-plain.sources h2 { font:600 .75rem var(--font-body); margin-bottom:14px; }
.section-plain.sources p { font-size:.75rem; max-width:100%; }
.section-plain.sources a { color:var(--fern); border:0; border-radius:0; padding:0; text-decoration:underline; font-size:inherit; }
@media(min-width:1100px) { .home-page .section.tint .tools { grid-template-columns:repeat(3,minmax(0,1fr)); } .home-page .section.tint .tool-card { border-left:0; padding-right:30px; padding-left:0; } .home-page .section.tint .tool-card+.tool-card { padding-left:30px; border-left:1px solid var(--line); } }
@media(max-width:1100px) { .nav { gap:2px; } .hero .wrap { gap:35px; } .stat { padding:20px 16px; } .brand small { max-width:24em; letter-spacing:.08em; } }
@media(max-width:900px) { .hero .wrap { grid-template-columns:1fr 1fr; } .hero h1 { font-size:3.3rem; } .site-head .wrap { gap:12px; } .nav a { font-size:.75rem; } .viz-grid { grid-template-columns:1fr; } .data-nav-label { display:none; } .stats { grid-template-columns:repeat(3,minmax(0,1fr)); } .stat { border-bottom:1px solid var(--line); } .masthead-text>* { max-width:67%; } .masthead h1 { max-width:67%; } }
@media(max-width:820px) { .site-head .wrap { min-height:76px; } .nav a { padding:13px 8px; font-size:.9rem; } .nav { background:white; } .menu-btn { font-size:.75rem; border-radius:4px; } }
@media(max-width:640px) {
  .brand span { font-size:.9rem; } .brand small { font-size:.47rem; margin-top:5px; } .brand img { width:34px; height:34px; }
  .hero .wrap { grid-template-columns:1fr; gap:32px; } .home-page .hero { padding-block:40px; } .hero h1 { font-size:3.5rem; } .hero-copy { gap:22px; } .hero .lede { font-size:.98rem; } .home-feature { aspect-ratio:1.5; } .feature-caption { left:22px; bottom:22px; } .feature-caption a { font-size:1.8rem; }
  .hero-meta { gap:8px 16px; font-size:.65rem; } .section { padding-block:44px; } .tools { grid-template-columns:1fr; } .tool-card,.tool-card:nth-child(even) { padding:25px 0; border-left:0; } .tool-card .figure { font-size:2.3rem; } .join-band { padding:25px; }
  .masthead-img { width:100%; height:125px; position:relative; opacity:1; } .masthead-text { padding-block:30px; gap:16px; } .masthead-text>*,.masthead h1 { max-width:100%; } .masthead h1 { font-size:2.9rem; } .masthead-lede { font-size:.88rem; line-height:1.75; } .masthead-meta { font-size:.6rem; } .masthead-meta span:last-child { display:none; }
  .data-nav .wrap { gap:22px; } .data-nav a { font-size:.7rem; padding:15px 0; } .data-asof { font-size:.67rem; }
  .stats { grid-template-columns:repeat(2,minmax(0,1fr)); margin:22px 0; } .stat { padding:18px 14px; gap:9px; } .stat-label { font-size:.56rem; } .stat-value { font-size:1.9rem; } .stat-note { font-size:.61rem; } .stat:last-child:nth-child(odd) { grid-column:1/-1; } .stat:last-child:nth-child(odd) .stat-label { min-height:0; }
  .viz { padding:20px 14px; } .viz h2 { font-size:1.05rem; } .viz-sub { font-size:.72rem; } .viz-legend { font-size:.62rem; gap:8px 13px; } .viz-plot { overflow-x:auto; overflow-y:hidden; } .chart-canvas { min-width:320px; } .viz-tip { font-size:.66rem; } .bar-row { grid-template-columns:1fr 1fr 3.7em; font-size:.67rem; gap:8px; } .bar-track { grid-column:auto; order:0; } .bar-val { font-size:.67rem; } .heat-label { font-size:8px; } .section-plain h2 { font-size:1.8rem; } .section-plain th,.section-plain td { padding:10px 7px; font-size:.7rem; } .section-plain { margin-top:32px; padding-top:28px; } .site-foot .wrap { grid-template-columns:1fr 1fr; gap:30px; } .site-foot .wrap>div:first-child { grid-column:1/-1; } .launcher { padding:11px 13px; font-size:.7rem; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

.level-bars { gap:5px; }
@media(max-width:640px) { .chart-canvas { min-width:280px; } [data-chart="heat"] .chart-canvas { min-width:340px; } }
