  :root{
    --ink:#1f2e2b;--ink-2:#4a5753;--ink-3:#6f7a76;
    --paper:#f6f5ee;--line:#d9dfd8;--accent:#174f43;--tint:#eef0e7;
    --serif:Georgia,"Times New Roman",serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  }
  *{box-sizing:border-box}
  body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.75 var(--sans);-webkit-font-smoothing:antialiased}
  a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:4px;text-decoration-thickness:1px}
  a:hover{text-decoration-thickness:2px}
  h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--ink);margin:0}
  .eyebrow{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 10px;line-height:1.6}
  .wrap{max-width:1440px;margin:0 auto;padding:0 58px}

  /* top strip + masthead */
  .strip{border-bottom:1px solid var(--line)}
  .strip .wrap{display:flex;justify-content:space-between;align-items:center;height:40px;font-size:11px;letter-spacing:.1em;text-transform:uppercase}
  .strip .date{text-transform:none;letter-spacing:.04em}
  .mast{border-bottom:1px solid var(--line)}
  .mast .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding-top:28px;padding-bottom:28px}
  .brand{text-decoration:none;color:var(--ink)}
  .brand b{display:block;font-family:var(--serif);font-size:26px;font-weight:700;letter-spacing:-.01em;line-height:1.2}
  .brand span{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-top:6px}
  .mast nav{display:flex;gap:26px;font-size:14px}
  .mast nav a{color:var(--ink);text-decoration:none}
  .mast nav a:hover{text-decoration:underline}
  .partner{justify-self:end;font-size:14px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:6px}
  .crumb{font-size:12px;color:var(--ink-2);padding:30px 0 40px}
  .crumb a{color:var(--ink-2);text-decoration:none}

  /* three-column layout */
  .layout{display:grid;grid-template-columns:160px minmax(0,1fr) 226px;gap:0 44px;align-items:start}
  .leftnav{position:sticky;top:24px;border-right:1px solid var(--line);padding-right:20px;min-height:600px}
  .leftnav ul{list-style:none;margin:0;padding:0;font-size:13px}
  .leftnav li{margin:0 0 9px}
  .leftnav a{color:var(--ink);text-decoration:none}
  .leftnav a:hover{text-decoration:underline}
  .leftnav hr{border:0;border-top:2px solid var(--line);margin:18px 0}
  .rail{position:sticky;top:24px;border-top:3px solid var(--ink);padding-top:20px;font-size:13px}
  .rail .eyebrow{color:var(--ink-2);margin-bottom:2px}
  .rail .ent{font-family:var(--serif);font-size:36px;line-height:1.1;letter-spacing:-.02em;margin:0 0 22px}
  .rail dl{margin:0}
  .rail dd{margin:0 0 20px}
  .rail .links{border-top:2px solid var(--line);padding-top:12px;margin-top:-10px}
  .rail .links a{display:block;margin:8px 0}
  .rail .first a{display:inline-block;margin:0 0 8px}

  /* article */
  main{min-width:0}
  article h1{font-size:clamp(36px,4.3vw,62px);line-height:1.06;letter-spacing:-.035em;padding-bottom:30px;border-bottom:3px solid var(--accent);margin-bottom:36px}
  .brief{font-size:20px;line-height:1.55;margin:0 0 30px}
  .note{font-size:13px;color:var(--ink-2);margin:0 0 30px}
  .toc{border:1px solid var(--line);padding:20px 24px;margin:0 0 50px}
  .toc b{display:block;font-size:13px;margin-bottom:14px}
  .toc ol{columns:2;column-gap:40px;margin:0;padding-left:18px;font-size:13px}
  .toc li{margin-bottom:6px;break-inside:avoid}
  .chain{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 18px}
  .chain div{border:1px solid var(--accent);height:90px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;padding:0 10px;position:relative}
  .chain div+div::before{content:"";position:absolute;left:-11px;top:50%;width:10px;border-top:1px solid var(--accent)}
  .chain-cap{font-size:13px;text-align:center;color:var(--ink);margin:0 0 50px}
  section{border-top:1px solid var(--line);padding:32px 0 40px}
  section h2{font-size:30px;line-height:1.2;letter-spacing:-.02em;margin:0 0 22px}
  section h3{font-size:22px;line-height:1.25;margin:0 0 14px;color:var(--accent)}
  section p{margin:0 0 18px}
  section ul,section ol{margin:0 0 18px;padding-left:22px}
  section li{margin-bottom:6px}
  .small{font-size:13px;color:var(--ink-2)}

  /* key figures */
  .figures{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);margin:0 0 50px}
  .figures div{padding:18px 18px 16px;border-left:1px solid var(--line)}
  .figures div:first-child{border-left:0}
  .figures b{display:block;font-family:var(--serif);font-weight:500;font-size:32px;line-height:1;margin-bottom:10px}
  .figures span{display:block;font-size:12.5px;line-height:1.5;color:var(--ink-2)}

  /* ranking table */
  .table-wrap{overflow-x:auto;margin:0 0 18px}
  table{width:100%;border-collapse:collapse;font-size:14px;min-width:680px}
  th{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:400;text-align:left;padding:0 12px 10px 0;border-bottom:2px solid var(--ink)}
  td{padding:14px 12px 14px 0;border-bottom:1px solid var(--line);vertical-align:top}
  td.n{font-family:var(--serif);font-size:18px;width:44px}
  td.co{font-family:var(--serif);font-size:17px}
  td.co a{display:block;font-family:var(--sans);font-size:12px;margin-top:2px}
  tr.top td{background:var(--tint)}
  td:first-child,th:first-child{padding-left:10px}

  /* timeline */
  .tl{display:grid;grid-template-columns:130px 1fr;gap:4px 24px;padding:14px 0;border-top:1px solid var(--line);margin:0}
  .tl:first-of-type{border-top:0}
  .tl dt{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);padding-top:6px}
  .tl dd{margin:0}

  /* status boxes */
  .two{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 18px}
  .box{border:1px solid var(--line);padding:24px}
  .box ul{list-style:none;padding:0;margin:0;font-size:14px}
  .box li{padding:9px 0;border-top:1px solid var(--line);margin:0}
  .box li:first-child{border-top:0;padding-top:0}

  /* company entries */
  .entry{border:1px solid var(--line);padding:28px 26px 26px;margin:0 0 16px}
  .entry.featured{border:1px solid var(--accent);border-top:3px solid var(--accent)}
  .entry h3{font-size:26px}
  .entry .facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:18px 0;font-size:13px}
  .entry .facts div{padding:12px 14px 10px 0}
  .entry .facts .eyebrow{color:var(--ink-2);margin:0}
  .catalog{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);margin:0 0 18px;font-size:13px}
  .catalog div{padding:10px 12px 10px 0;border-bottom:1px solid var(--line)}
  .catalog b{font-weight:600;display:block}
  .catalog span{color:var(--ink-2)}
  .pc{display:grid;grid-template-columns:1fr 1fr;gap:24px;font-size:14px}
  .pc ul{margin:0;padding-left:18px}
  .go{display:inline-block;margin-top:6px}

  /* checklist */
  .check{list-style:none;padding:0;counter-reset:c;margin:0 0 20px}
  .check li{counter-increment:c;display:grid;grid-template-columns:34px 1fr;padding:14px 0;border-top:1px solid var(--line);margin:0}
  .check li::before{content:counter(c) ".";font-family:var(--serif);font-size:18px;color:var(--accent)}
  .flags{border-left:3px solid var(--accent);padding:4px 0 4px 18px;margin:0}

  /* faq */
  details{border-bottom:1px solid var(--line)}
  summary{cursor:pointer;font-weight:600;font-size:15px;padding:14px 0}
  details p{margin:0 0 18px}

  .path{display:flex;flex-wrap:wrap;gap:10px}
  .path a{border:1px solid var(--line);padding:10px 15px;font-size:13px;text-decoration:none;color:var(--accent)}
  .path a:hover{border-color:var(--accent)}
  .cite{border:1px solid var(--line);padding:18px 22px;font-size:14px}
  footer{border-top:1px solid var(--line);margin-top:60px}
  footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-top:26px;padding-bottom:50px;font-size:12px;color:var(--ink-2)}

  @media (max-width:1180px){
    .layout{grid-template-columns:150px minmax(0,1fr);gap:0 36px}
    .rail{position:static;grid-column:2;margin-top:30px}
  }
  @media (max-width:820px){
    .wrap{padding:0 16px}
    .mast .wrap{grid-template-columns:1fr auto}
    .mast nav{display:none}
    .layout{grid-template-columns:minmax(0,1fr)}
    .leftnav{display:none}
    .rail{grid-column:1}
    .toc ol{columns:1}
    .figures{grid-template-columns:1fr 1fr}
    .figures div:nth-child(3){border-left:0}
    .figures div:nth-child(n+3){border-top:1px solid var(--line)}
    .chain{grid-template-columns:1fr 1fr}
    .chain div:nth-child(3)::before{display:none}
    .two,.pc{grid-template-columns:1fr}
    .entry .facts{grid-template-columns:1fr}
    .catalog{grid-template-columns:1fr 1fr}
    .tl{grid-template-columns:1fr}
    .strip .wrap > span:first-child{display:none}
    .strip .wrap{justify-content:flex-end}
    .brief{font-size:18px}
  }

  /* cluster pages */
  main{min-width:0}
  .cards{display:grid;grid-template-columns:1fr 1fr;gap:26px 26px;margin:0 0 8px}
  .card{display:block;border-top:1px solid var(--line);padding-top:22px;color:var(--ink);text-decoration:none}
  .card h3{font-size:20px;line-height:1.3;color:var(--ink);margin:0 0 10px}
  .card p{font-size:14px;line-height:1.6;margin:0 0 12px;color:var(--ink)}
  .card span{font-size:15px;color:var(--ink)}
  .card .eyebrow{font-size:10px;line-height:1.6;color:var(--accent);margin:0 0 10px}
  .card:hover h3{text-decoration:underline;text-underline-offset:4px}
  .card[hidden]{display:none}
  .res-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .res{border:1px solid var(--line);padding:26px 24px}
  .res h3{font-size:24px;color:var(--accent);margin:0 0 12px}
  .res p{margin:0 0 14px}
  .search{width:100%;font:16px var(--sans);color:var(--ink);background:transparent;border:0;border-bottom:2px solid var(--ink);padding:10px 0;margin:0 0 8px;outline:none}
  .search-status{font-size:12px;color:var(--ink-2);margin:0 0 26px}
  .def{font-family:var(--serif);font-size:22px;line-height:1.45;margin:0 0 30px}
  @media (max-width:820px){.cards,.res-grid{grid-template-columns:1fr}}
