:root {
  color-scheme: dark;
  --ground:#0A1220; --ground-2:#0D1727;
  --line:#22334E; --line-2:#2F4361;
  --ink:#EAF0F8; --ink-2:#A6B5C9; --ink-3:#74879F;
  --accent:#4FE3D6;
  --good:#48CC8E; --warn:#E9B655; --crit:#F4796A;
  --mk-bg:#111D35; --mk-bar:#0D1727; --mk-panel:#0D1727;
  --mk-line:#22334E; --mk-line-soft:#1A2942; --mk-line-2:#2F4361;
  --mk-ink:#EAF0F8; --mk-ink-2:#A6B5C9; --mk-ink-3:#74879F; --mk-accent:#2FC3B6;
  --mark-1:#5A708F; --mark-2:#7C94B4; --mark-3:#A1B9DB; --mark-4:#34F0E6;
  --ph-bg:rgba(233,182,85,.16); --ph-ink:#F2CE83; --ph-line:rgba(233,182,85,.5);
  --s--1:.75rem; --s-0:.9375rem; --s-1:1.0625rem;
  --s-2:1.3125rem; --s-3:1.75rem; --s-4:2.375rem; --s-5:3.25rem;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
html, body { margin:0; background:var(--ground); }
body { color:var(--ink); font-family:"IBM Plex Sans",ui-sans-serif,system-ui,-apple-system,sans-serif;
  font-size:var(--s-0); line-height:1.62; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
h1,h2,h3,h4 { font-family:Archivo,ui-sans-serif,system-ui,sans-serif; margin:0;
  text-wrap:balance; letter-spacing:-.018em; }
p { margin:14px 0 0; max-width:70ch; color:var(--ink-2); }
ul,ol { margin:14px 0 0; padding-left:20px; max-width:70ch; color:var(--ink-2); }
li { margin-bottom:8px; }
strong { color:var(--ink); font-weight:600; }
a { color:var(--accent); text-underline-offset:3px; }
.mono { font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace; font-variant-numeric:tabular-nums; }
.wrap { max-width:1140px; margin:0 auto; padding-inline:22px; }
.eyebrow { font-family:"IBM Plex Mono",monospace; font-size:.6875rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--accent); display:flex; align-items:center; gap:8px; }
.eyebrow.mute { color:var(--ink-3); }

html.anim .rv { opacity:0; transform:translateY(16px);
  transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
html.anim .rv.in { opacity:1; transform:none; }
html.anim .rv.d1{transition-delay:.07s} html.anim .rv.d2{transition-delay:.14s}
@media (prefers-reduced-motion:reduce) {
  html.anim .rv { opacity:1!important; transform:none!important; transition:none!important; }
  html { scroll-behavior:auto; } }

.notice { background:var(--ph-bg); border-bottom:1px solid var(--ph-line); color:var(--ph-ink); }
.notice .wrap { display:flex; gap:12px; align-items:baseline; flex-wrap:wrap; padding-block:9px; }
.notice b { font-family:"IBM Plex Mono",monospace; font-size:.6875rem; letter-spacing:.1em;
  text-transform:uppercase; border:1px solid currentColor; border-radius:3px; padding:1px 6px; }
.notice p { margin:0; font-size:var(--s--1); color:var(--ph-ink); max-width:none; }
.ph { background:var(--ph-bg); color:var(--ph-ink); border-bottom:1px dashed var(--ph-line);
  padding:0 3px; font-family:"IBM Plex Mono",monospace; font-size:.92em; }

header.site { position:sticky; top:0; z-index:40; background:rgba(17,29,53,.9);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); }
.brandrow { display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding-block:11px; flex-wrap:wrap; }
.logo { display:flex; align-items:center; gap:11px; line-height:0; }
.logo .mark { height:25px; width:auto; display:block; flex:none; }
.logo .wordmark { height:19px; width:auto; display:block; }
.mark .c1 { fill:var(--mark-1); }
.mark .c2 { fill:var(--mark-2); }
.mark .c3 { fill:var(--mark-3); }
.mark .c4 { fill:var(--mark-4); }
nav.tabs { display:flex; gap:1px; overflow-x:auto; scrollbar-width:none; }
nav.tabs::-webkit-scrollbar { display:none; }
nav.tabs a { font-size:var(--s--1); font-weight:500; color:var(--ink-2); text-decoration:none;
  padding:8px 12px; border-radius:6px; white-space:nowrap; transition:background .15s,color .15s; }
nav.tabs a:hover { background:#16243F; color:var(--ink); }
nav.tabs a[aria-current="page"] { color:var(--accent); background:#16243F; font-weight:600; }
@media (max-width:900px) { nav.tabs { -webkit-mask-image:linear-gradient(to right,#000 86%,transparent);
  mask-image:linear-gradient(to right,#000 86%,transparent); } }

.panel { display:none; }
.panel.on { display:block; }

.hero { position:relative; padding-block:84px 60px; overflow:hidden; }
.hero::before { content:""; position:absolute; inset:-30% -10% auto -10%; height:600px;
  background:radial-gradient(60% 60% at 30% 25%, rgba(79,227,214,.16), transparent 70%);
  pointer-events:none; }
.hero-in { position:relative; max-width:880px; }
.hero h1 { font-size:var(--s-5); font-weight:800; line-height:1.06; margin-top:16px; }
.hero h1 em { font-style:normal; color:var(--accent); }
.hero .sub { font-size:var(--s-1); margin-top:20px; max-width:60ch; }
.hero.small { padding-block:54px 24px; }
.hero.small h1 { font-size:var(--s-4); }

.ctas { display:grid; gap:14px; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:36px; }
.cta {
  display:block; text-decoration:none; color:inherit;
  background:linear-gradient(180deg,#111D35,#0D1727); border:1px solid var(--line);
  border-radius:10px; padding:20px; transition:border-color .18s, transform .18s, background .18s;
}
.cta:hover { border-color:var(--accent); transform:translateY(-2px); background:#16243F; }
.cta .k { font-family:"IBM Plex Mono",monospace; font-size:.6875rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--accent); }
.cta h3 { font-size:var(--s-1); font-weight:600; margin-top:9px; }
.cta p { font-size:var(--s--1); margin-top:6px; color:var(--ink-3); }
.cta .go { display:inline-block; margin-top:12px; font-size:var(--s--1); color:var(--accent);
  font-weight:600; }
.cta.primary { background:linear-gradient(135deg,#123A44,#0F2D3A); border-color:#2A6B72; }
.cta.primary:hover { border-color:var(--accent); }

section.band { padding-block:56px; border-top:1px solid var(--line); }
section.band.alt { background:var(--ground-2); }
.shead { max-width:64ch; }
.shead h2 { font-size:var(--s-3); font-weight:700; margin-top:10px; padding-bottom:14px;
  position:relative; }
.shead h2::after { content:""; position:absolute; left:0; bottom:0; width:56px; height:2px;
  background:var(--accent); }
h3.sub { font-size:var(--s-1); font-weight:600; margin-top:30px; }

.mock { background:var(--mk-bg); border:1px solid var(--line-2); border-radius:10px;
  overflow:hidden; margin-top:28px; box-shadow:0 30px 70px -40px rgba(0,0,0,.9); }
.mock-bar { display:flex; align-items:center; gap:8px; padding:11px 15px;
  background:var(--mk-bar); border-bottom:1px solid var(--mk-line); }
.dot { width:8px; height:8px; border-radius:50%; background:var(--mk-line-2); }
.mock-bar .ttl { font-size:var(--s--1); color:var(--mk-ink-3); margin-left:8px;
  font-family:"IBM Plex Mono",monospace; }
.mock-body { padding:18px; }
.kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.kpi { background:var(--mk-panel); border:1px solid var(--mk-line); border-radius:6px; padding:13px 15px; }
.kpi .lab { font-size:.6875rem; text-transform:uppercase; letter-spacing:.09em;
  color:var(--mk-ink-3); font-family:"IBM Plex Mono",monospace; }
.kpi .val { font-family:Archivo,sans-serif; font-size:var(--s-2); font-weight:700; margin-top:5px;
  color:var(--mk-ink); }
.kpi .dlt { font-size:var(--s--1); margin-top:2px; }
.up{color:var(--good)} .down{color:var(--crit)} .flat{color:var(--mk-ink-3)}
table.loc { width:100%; border-collapse:collapse; margin-top:16px; }
table.loc th { font-family:"IBM Plex Mono",monospace; font-size:.6875rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--mk-ink-3); text-align:left; padding:8px 10px;
  border-bottom:1px solid var(--mk-line-2); font-weight:500; }
table.loc td { padding:11px 10px; border-bottom:1px solid var(--mk-line-soft);
  font-size:var(--s-0); color:var(--mk-ink-2); }
table.loc tr:last-child td { border-bottom:0; }
table.loc .nm { font-weight:600; color:var(--mk-ink); }
table.loc .mt { font-size:var(--s--1); color:var(--mk-ink-3); }
.rat .rv2 { font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:var(--s-0);
  color:var(--mk-ink); font-variant-numeric:tabular-nums; }
.rat .mt { font-variant-numeric:tabular-nums; }
.score { font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:var(--s-1); }
.score.g{color:var(--good)} .score.w{color:var(--warn)} .score.c{color:var(--crit)}
.pill { display:inline-flex; font-size:var(--s--1); padding:3px 9px; border-radius:20px;
  white-space:nowrap; font-weight:500; }
.pill.g{background:rgba(72,204,142,.13);color:var(--good)}
.pill.w{background:rgba(233,182,85,.13);color:var(--warn)}
.pill.c{background:rgba(244,121,106,.13);color:var(--crit)}
.bars { display:flex; flex-direction:column; gap:11px; }
.bar-row { display:grid; grid-template-columns:140px 1fr 54px; gap:12px; align-items:center; }
.bar-row .bl { font-size:var(--s-0); color:var(--mk-ink-2); }
.rail { height:6px; background:var(--mk-bar); border:1px solid var(--mk-line);
  border-radius:3px; overflow:hidden; }
.rail i { display:block; height:100%; }
.rail i.g{background:var(--good)} .rail i.w{background:var(--warn)} .rail i.c{background:var(--crit)}
.bar-row .bn { font-size:var(--s--1); color:var(--mk-ink-3); text-align:right;
  font-family:"IBM Plex Mono",monospace; }
.keys { display:grid; gap:24px; grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:30px; padding-top:26px; border-top:1px solid var(--line); }
.key .n { display:block; font-family:"IBM Plex Mono",monospace; font-size:.6875rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--accent); margin-bottom:8px; }
.key p { font-size:var(--s--1); margin:0; color:var(--ink-3); max-width:none; }

.mixleg { display:flex; gap:14px; margin-top:9px; font-size:var(--s--1);
  color:var(--mk-ink-3); flex-wrap:wrap; }
.mixleg span { display:inline-flex; align-items:center; gap:5px; }
.mixleg i { width:9px; height:9px; border-radius:2px; display:inline-block; }
.mixleg i.pos { background:var(--accent); }
.mixleg i.neu { background:var(--mk-line-2); }
.mixleg i.neg { background:var(--crit); }

.sent { margin-top:18px; padding:15px 16px 13px; background:var(--mk-panel);
  border:1px solid var(--mk-line); border-radius:6px; }
.shd { display:flex; justify-content:space-between; align-items:baseline; gap:14px;
  flex-wrap:wrap; margin-bottom:13px; font-family:"IBM Plex Mono",monospace;
  font-size:.6875rem; letter-spacing:.09em; text-transform:uppercase; color:var(--mk-ink-3); }
.sleg { display:flex; align-items:center; gap:5px; letter-spacing:.04em; text-transform:none; }
.sleg i { width:9px; height:9px; border-radius:2px; display:inline-block; }
.sleg i + * { margin-right:4px; }
.srow { display:grid; grid-template-columns:150px 1fr 42px 40px; gap:12px;
  align-items:center; padding:4px 0; }
.sl { font-size:var(--s-0); color:var(--mk-ink-2); }
.strack { position:relative; height:9px; }
/* the neutral midpoint of the diverging scale */
/* the neutral zero line, and a recessive baseline behind it */
.strack::after { content:""; position:absolute; left:0; right:0; top:4px; height:1px;
  background:var(--mk-line-soft); }
.strack::before { content:""; position:absolute; left:50%; top:-4px; bottom:-4px;
  width:1px; background:var(--mk-line-2); z-index:2; }
.strack i { position:absolute; top:0; bottom:0; display:block; z-index:1; }
/* 4px rounded end away from the baseline, square against it */
.strack i.pos { background:var(--accent); border-radius:0 4px 4px 0; }
.strack i.neg { background:var(--crit); border-radius:4px 0 0 4px; }
.sleg i.pos { background:var(--accent); }
.sleg i.neg { background:var(--crit); }
.sv { font-family:"IBM Plex Mono",monospace; font-size:var(--s-0); font-weight:600;
  color:var(--mk-ink); text-align:right; font-variant-numeric:tabular-nums; }
.sd { font-family:"IBM Plex Mono",monospace; font-size:var(--s--1);
  color:var(--mk-ink-3); text-align:right; }

.panes { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:16px; }
.pane { background:var(--mk-panel); border:1px solid var(--mk-line); border-radius:6px; padding:16px; }
.pane h4 { font-size:var(--s-0); font-weight:600; color:var(--mk-ink); }
.pane .note { font-size:var(--s--1); color:var(--mk-ink-3); margin-top:3px; }

.call { border:1px solid var(--line-2); border-left:3px solid var(--accent);
  background:#111D35; border-radius:8px; padding:18px 20px; margin-top:26px; }
.call.warn{border-left-color:var(--warn)} .call.good{border-left-color:var(--good)}
.call.crit{border-left-color:var(--crit)}
.call h4 { font-size:var(--s-0); font-weight:600; }
.call p { font-size:var(--s-0); margin-top:7px; }
.dont { list-style:none; padding-left:0; }
.dont li { display:flex; gap:10px; align-items:flex-start; }
.dont li::before { content:"\00d7"; color:var(--crit); font-weight:700; flex:none; line-height:1.5; }

.tbl { overflow-x:auto; margin-top:20px; }
.tbl table { width:100%; border-collapse:collapse; font-size:var(--s-0); }
.tbl th { font-family:"IBM Plex Mono",monospace; font-size:.6875rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-3); text-align:left; padding:10px 12px;
  border-bottom:1px solid var(--line-2); font-weight:500; }
.tbl td { padding:11px 12px; border-bottom:1px solid var(--line); vertical-align:top; color:var(--ink-2); }

.bios { display:grid; gap:20px; grid-template-columns:1fr 1fr; margin-top:28px; }
.bio { background:linear-gradient(180deg,#111D35,#0D1727); border:1px solid var(--line);
  border-radius:10px; padding:24px; }
.bio h3 { font-size:var(--s-2); font-weight:700; }
.bio .role { font-family:"IBM Plex Mono",monospace; font-size:.6875rem; letter-spacing:.11em;
  text-transform:uppercase; color:var(--accent); margin-top:5px; }
.bio p { font-size:var(--s-0); }

.legal { max-width:74ch; }
.legal h1 { font-size:var(--s-3); font-weight:700; }
.legal h2 { font-size:var(--s-1); font-weight:600; margin-top:30px; color:var(--ink); }
.legal h3 { font-size:var(--s-0); font-weight:600; margin-top:20px; color:var(--ink); }
.legal .meta { color:var(--ink-3); font-size:var(--s--1); margin-top:8px; }

footer.site { border-top:1px solid var(--line); background:#111D35; margin-top:60px; }
footer.site .wrap { padding-block:30px 36px; }
.frow { display:flex; gap:26px; flex-wrap:wrap; justify-content:space-between; align-items:flex-start; }
.flinks { display:flex; gap:16px; flex-wrap:wrap; }
.flinks a { font-size:var(--s--1); color:var(--ink-2); text-decoration:none; }
.flinks a:hover { color:var(--accent); }
.fnote { font-size:var(--s--1); color:var(--ink-3); margin-top:20px; max-width:74ch; }

@media (max-width:900px) {
  .ctas { grid-template-columns:1fr; }
  .kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .panes { grid-template-columns:1fr; }
  .bios { grid-template-columns:1fr; }
  .keys { grid-template-columns:1fr; gap:18px; }
}
@media (max-width:640px) {
  .hero h1 { font-size:var(--s-4); }
  .hero { padding-block:52px 40px; }
  .bar-row { grid-template-columns:106px 1fr 44px; }
  .srow { grid-template-columns:104px 1fr 36px 34px; gap:9px; }
  .sl { font-size:var(--s--1); }
  table.loc .hide-s { display:none; }
}


/* ============================= light theme ============================= */
:root{
  color-scheme:light;
  --ground:#FFFFFF; --ground-2:#F8FAFC;
  --line:#E2E8F0; --line-2:#CAD5E2;
  --ink:#0F172B; --ink-2:#45556C; --ink-3:#62748E;
  --accent:#0B7A6F;
  --good:#15785A; --warn:#8A6309; --crit:#B23B2C;
  --mark-1:#CBD5E1; --mark-2:#94A3B8; --mark-3:#51637C;
  --mark-4:#0E9C8D;
  --ph-bg:rgba(160,112,10,.10); --ph-ink:#7A5505; --ph-line:rgba(160,112,10,.35);
}
.call{ background:#F8FAFC; border-color:var(--line); }
.bio{ background:#F8FAFC; border-color:var(--line); }
.mock{ box-shadow:0 26px 60px -34px rgba(13,23,38,.5); border-color:#20304A; }
.tbl th{ border-bottom-color:var(--line-2); }
/* The footer's top margin shows the page ground, which on a light theme puts a
   stray pale strip between the last band and the footer. The band's own
   padding already supplies the breathing room. */
footer.site{ margin-top:0; }
a{ text-decoration-color:color-mix(in srgb, currentColor 40%, transparent); }
a:hover{ text-decoration-color:currentColor; }

header.site, .hero, .mock, footer.site{
  --ink:#EAF0F8; --ink-2:#A6B5C9; --ink-3:#74879F;
  --accent:#4FE3D6; --good:#48CC8E; --warn:#E9B655; --crit:#F4796A;
  --line:#22334E; --line-2:#2F4361;
  --mark-1:#5A708F; --mark-2:#7C94B4; --mark-3:#A1B9DB; --mark-4:#34F0E6;
  color:var(--ink);
}

.hero{ background:#0B1424; }
.hero::before{ background:radial-gradient(60% 60% at 30% 25%,
  rgba(79,227,214,.20), transparent 70%); }

