:root{
  --ink:#141A24; --ink-2:#3D4757; --mute:#66707F;
  --paper:#F5F6F8; --card:#FFFFFF; --line:#DDE1E7; --line-2:#EBEEF1;
  --brass:#9A7333; --brass-soft:#EFE6D5; --ok:#2E7D53; --brand:#025CFE;
  --shadow:0 1px 2px rgba(20,26,36,.05);
  --cta-bg:#EAF1FF; --cta-line:#BFD6FF; --cta-ink:#0D2244;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --ink:#EEF1F5; --ink-2:#B8C7D9; --mute:#8A9BB0;
  --paper:#0E1218; --card:#161C25; --line:#28313D; --line-2:#1E2630;
  --brass:#D6AA5E; --brass-soft:#2A2216; --ok:#5FBF8C; --brand:#5B9BFF;
  --shadow:0 1px 2px rgba(0,0,0,.4);
  --cta-bg:#111C31; --cta-line:#2B4A7D; --cta-ink:#E6EFFF;
}}
:root[data-theme="dark"]{
  --ink:#EEF1F5; --ink-2:#B8C7D9; --mute:#8A9BB0;
  --paper:#0E1218; --card:#161C25; --line:#28313D; --line-2:#1E2630;
  --brass:#D6AA5E; --brass-soft:#2A2216; --ok:#5FBF8C; --brand:#5B9BFF;
  --shadow:0 1px 2px rgba(0,0,0,.4);
  --cta-bg:#111C31; --cta-line:#2B4A7D; --cta-ink:#E6EFFF;
}
*{box-sizing:border-box}
html{color-scheme:light dark}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"Public Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,sans-serif;
  font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
img{max-width:100%}
.wrap{max-width:1140px;margin:0 auto;padding:0 28px}
.masthead{border-bottom:2px solid var(--ink);padding:34px 0 20px}
.brandline{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap}
.logo{font-family:Newsreader,Georgia,serif;font-size:42px;font-weight:600;letter-spacing:-.015em;
  margin:0;line-height:1;text-decoration:none;color:inherit}
.logo em{font-style:italic;color:var(--brass)}
.est{font-size:14px;color:var(--mute);letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.tag{font-family:Newsreader,Georgia,serif;font-size:21px;line-height:1.45;color:var(--ink-2);
  max-width:62ch;margin:18px 0 0;text-wrap:balance}
.method{background:var(--card);border:1px solid var(--line);border-radius:3px;box-shadow:var(--shadow);
  margin:30px 0 8px;padding:24px 26px}
.method h2{font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass);margin:0 0 14px;font-weight:700}
.mgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(238px,1fr));gap:22px 30px}
.mgrid h4{margin:0 0 5px;font-size:15px;font-weight:700}
.mgrid p{margin:0;font-size:14.5px;color:var(--ink-2)}
.sec-h{font-family:Newsreader,Georgia,serif;font-size:28px;font-weight:600;margin:46px 0 18px;
  padding-bottom:10px;border-bottom:2px solid var(--ink)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:16px;margin-bottom:20px}
.card{display:flex;flex-direction:column;gap:7px;text-decoration:none;color:inherit;background:var(--card);
  border:1px solid var(--line);border-left:3px solid var(--brass);border-radius:3px;padding:20px 22px;
  box-shadow:var(--shadow);transition:border-color .15s}
.card:hover{border-color:var(--brass)}
.card h3{font-family:Newsreader,Georgia,serif;font-size:21px;font-weight:600;margin:0;letter-spacing:-.005em}
.card p{margin:0;font-size:14.5px;color:var(--ink-2)}
.card-n{font-size:14px;color:var(--mute);font-weight:600;font-variant-numeric:tabular-nums;margin-top:auto;padding-top:5px}
.layout{display:grid;grid-template-columns:212px 1fr;gap:52px;margin:44px 0 0;align-items:start}
.rail{position:sticky;top:20px}
.rail-h{font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:700;
  margin:0 0 10px;padding-bottom:9px;border-bottom:1px solid var(--line)}
.rail a{display:flex;justify-content:space-between;align-items:baseline;gap:10px;text-decoration:none;
  padding:8px 0;border-bottom:1px solid var(--line-2);font-size:14.5px;color:var(--ink-2)}
.rail a:hover{color:var(--brass)}
.rail em{font-style:normal;font-size:13.5px;color:var(--mute);font-variant-numeric:tabular-nums}
.cat{margin:0 0 44px}
.cat-h{border-bottom:2px solid var(--ink);padding-bottom:11px;margin-bottom:4px}
.cat-h h1{font-family:Newsreader,Georgia,serif;font-size:33px;font-weight:600;margin:0;letter-spacing:-.012em;text-wrap:balance}
.cat-n{margin:6px 0 0;font-size:14px;color:var(--mute);font-variant-numeric:tabular-nums}
.list{list-style:none;margin:0;padding:0}
.row{display:grid;grid-template-columns:56px 1fr auto;gap:18px;align-items:start;padding:19px 0;border-bottom:1px solid var(--line-2)}
.rank{font-size:30px;font-weight:700;color:var(--brass);font-variant-numeric:tabular-nums;line-height:1.05;text-align:right;padding-top:1px}
.firm h3{margin:0;font-family:Newsreader,Georgia,serif;font-size:21px;font-weight:600;line-height:1.25}
.desc{margin:5px 0 0;font-size:15px;color:var(--ink-2);max-width:66ch;line-height:1.5}
.meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:9px}
.site{font-size:14.5px;color:var(--brass);text-decoration:none;font-weight:600;border-bottom:1px solid transparent}
.site:hover{border-bottom-color:var(--brass)}
.ext{font-size:12px;margin-left:3px;opacity:.7}
.site.none{color:var(--mute);font-weight:400;font-style:italic}
.claim{font-family:inherit;font-size:14px;color:var(--mute);background:none;border:0;
  border-bottom:1px dashed var(--line);padding:0 0 1px;cursor:pointer}
.claim:hover{color:var(--ok);border-bottom-color:var(--ok)}
.claim:focus-visible,.site:focus-visible,.rail a:focus-visible,.card:focus-visible,.logo:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.aum{text-align:right;display:flex;flex-direction:column;align-items:flex-end;padding-top:3px}
.num{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap}
.aum-l{font-size:13.5px;color:var(--mute);letter-spacing:.06em;text-transform:uppercase;font-weight:600}
dialog{border:1px solid var(--line);border-radius:4px;background:var(--card);color:var(--ink);
  padding:28px;max-width:430px;box-shadow:0 18px 44px rgba(0,0,0,.22)}
dialog::backdrop{background:rgba(10,14,20,.62)}
dialog h3{font-family:Newsreader,Georgia,serif;font-size:24px;margin:0 0 10px;font-weight:600}
dialog p{font-size:15px;color:var(--ink-2);margin:0 0 18px}
dialog button{font-family:inherit;font-size:15px;font-weight:600;padding:10px 20px;border-radius:3px;
  border:1px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer}
footer{border-top:2px solid var(--ink);margin-top:34px;padding:28px 0 54px;display:flex;
  justify-content:space-between;gap:22px;flex-wrap:wrap;align-items:baseline}
.fnote{font-size:14.5px;color:var(--mute);max-width:58ch;line-height:1.55;margin:0}
.prop{font-size:15px;color:var(--ink-2);font-weight:600;white-space:nowrap;margin:0}
.prop a{color:var(--brand);text-decoration:none;border-bottom:1px solid transparent}
.prop a:hover{border-bottom-color:var(--brand)}
@media (max-width:900px){.layout{grid-template-columns:1fr;gap:26px}.rail{position:static}}
@media (max-width:640px){.row{grid-template-columns:40px 1fr;gap:14px}
  .aum{grid-column:2;align-items:flex-start;text-align:left;padding-top:7px}
  .logo{font-size:34px}.cat-h h1{font-size:27px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ── DEALITHIC referral ──────────────────────────────────────────────────────
   ⭐ THIS BLOCK IS THE ONE THING ON THE PAGE THAT IS NOT WHITE, AND THAT IS THE
   POINT. The register, the method panel and the category cards are all white
   cards on a near-white ground. Painting the CTA to match them made it read as
   one more panel of plain text — it disappeared. It separates by being the only
   coloured ground on the page, in DEALITHIC blue rather than FundRank brass, so
   the commercial ask visibly belongs to a different company than the register.
   Full-bleed row OUTSIDE .layout; inside the grid it was trapped in the 1fr
   content column beside the 212px rail.
   ⛔ No inventory count. 54% of the top 3,000 rows in the source corpus are
   banks, brokerages, index managers or wealth advisers, so "50,000+ funds" is
   not a claim this data supports. Sell the matching, not the pile.          */
.cta{margin:52px 0 0;background:var(--cta-bg);border:1px solid var(--cta-line);
  border-left:4px solid var(--brand);border-radius:4px}
.cta-in{padding:34px 38px;display:flex;align-items:center;justify-content:space-between;gap:40px}
.cta-copy{display:flex;flex-direction:column;gap:10px;min-width:0}
.cta-k{margin:0;font-size:14px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brand)}
.cta h2{margin:0;font-family:Newsreader,Georgia,serif;font-size:29px;font-weight:600;
  line-height:1.18;letter-spacing:-.014em;max-width:23ch;color:var(--cta-ink);text-wrap:balance}
.cta-b{margin:0;font-size:15.5px;color:var(--ink-2);max-width:62ch;line-height:1.55}
.cta-a{display:inline-flex;align-items:center;gap:10px;flex:none;background:var(--brand);color:#fff;
  text-decoration:none;font-size:17px;font-weight:700;letter-spacing:.01em;padding:17px 34px;
  border-radius:3px;border:1px solid var(--brand);white-space:nowrap;
  box-shadow:0 3px 12px rgba(2,92,254,.32);transition:filter .15s,transform .15s,box-shadow .15s}
.cta-a:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 6px 18px rgba(2,92,254,.42)}
.cta-a:active{transform:translateY(0)}
.cta-a:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.cta-arw{font-size:18px;line-height:1}
@media (max-width:820px){
  .cta-in{flex-direction:column;align-items:flex-start;gap:22px;padding:28px 24px}
  .cta h2{font-size:25px;max-width:none}
  .cta-a{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){.cta-a:hover{transform:none}}

/* Deal Map sits in the rail with the registers but is a different kind of thing —
   brass marks it as the one entry that is not a league table. */
.rail-map{border-bottom:0;margin-top:4px;padding-top:12px;border-top:1px solid var(--line);color:var(--brass)!important;font-weight:700}
.rail-map em{color:var(--brass);opacity:.8}
.card-map{border-left-color:var(--brand)}

/* ── Deal map feature ────────────────────────────────────────────────────────
   Sits directly under the masthead, ABOVE the registers. The map is the thing a
   stranger shares; the registers are the reference behind it. Brass-accented,
   not blue — this is FundRank's own work, and the blue band further down is the
   one place another company is speaking.                                     */
.feat{margin:30px 0 0;border:1px solid var(--line);border-left:4px solid var(--brass);
  background:var(--card);border-radius:4px;box-shadow:var(--shadow)}
.feat-in{display:grid;grid-template-columns:1.5fr 1fr;gap:34px;padding:30px 34px;align-items:center}
.feat-copy{display:flex;flex-direction:column;gap:10px;align-items:flex-start;min-width:0}
.feat-k{margin:0;font-size:14px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.feat h2{margin:0;font-family:Newsreader,Georgia,serif;font-size:30px;font-weight:600;
  line-height:1.18;letter-spacing:-.014em;max-width:22ch;text-wrap:balance}
.feat-b{margin:0;font-size:15.5px;color:var(--ink-2);line-height:1.6;max-width:64ch}
.feat-a{display:inline-flex;align-items:center;gap:9px;margin-top:5px;text-decoration:none;
  font-size:15.5px;font-weight:700;color:var(--brass);border-bottom:2px solid var(--brass);padding-bottom:2px}
.feat-a:hover{filter:brightness(1.15)}
.feat-a:focus-visible{outline:2px solid var(--brass);outline-offset:4px}
.feat-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);
  border:1px solid var(--line);margin:0}
.feat-stats div{background:var(--card);padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.feat-stats dt{font-size:14px;color:var(--mute);letter-spacing:.05em;text-transform:uppercase;font-weight:600}
.feat-stats dd{margin:0;font-size:21px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.015em}
@media (max-width:860px){
  .feat-in{grid-template-columns:1fr;gap:24px;padding:26px 24px}
  .feat h2{font-size:26px;max-width:none}
}
