:root{
  --bg:#FFFFFF;
  --panel:#F6F6F2;
  --line:#E6E6E0;
  --rule:#D5D5CD;      /* the section divider: one step darker than a hairline */
  --line2:#F0F0EB;
  --ink:#0C0D0E;
  --mut:#5D6167;
  /* THE GREYS HAD DRIFTED TOO PALE.
     --faint was #A0A4A9, which is 2.6:1 on white -- fine for a hairline,
     not for the dates, unit prices, column heads and the whole methodology
     note that were being set in it. It is now the darkest grey that still
     reads as secondary, and clears 4.5:1. */
  --faint:#6F7379;
  --blue:#1B34E0;
  --blue-d:#1226A6;
  --wash:#EEF1FF;
  --amber:#B06A00;
  --amber-w:#FBF3E2;
  --disp:"Bricolage Grotesque",system-ui,sans-serif;
  --ui:"Hanken Grotesk",-apple-system,sans-serif;
  --mono:"IBM Plex Mono","SF Mono",monospace;
  --max:1520px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{background:var(--bg);color:var(--ink);font-family:var(--ui);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 clamp(20px,3.5vw,48px)}
.mono{font-family:var(--mono)}
.hide{display:none!important}

/* ---------- top bar ---------- */
/* the bar is chrome, not page: ink, so it can never be mistaken for the
   content it floats over. Every colour on it is re-chosen for the dark
   ground -- the brand blue reads as mud on ink, so the accent lightens. */
.top{position:sticky;top:0;z-index:30;background:var(--ink)}
/* the sticky bar would otherwise sit on top of whatever we jump to */
[id]{scroll-margin-top:80px}
.topin{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:16px;padding-bottom:16px;flex-wrap:wrap}
.logo{font-family:var(--disp);font-weight:700;font-size:17px;letter-spacing:-.01em;color:#fff}
.logo i{font-style:normal;color:#93A0FF}
.topnav{display:flex;align-items:center;gap:22px;font-size:13.5px;font-weight:600;flex-wrap:wrap}
.topnav a{color:#A9ADB6}
.topnav a:hover{color:#fff;text-decoration:none}
.devtog{font-family:var(--mono);font-size:11.5px;font-weight:500;padding:7px 12px;border:1px dashed #5C6068;border-radius:8px;color:#B4B8C0}
.devtog.on{border-style:solid;border-color:#fff;color:#fff;background:rgba(255,255,255,.09)}
.gopro{font-size:13.5px;font-weight:700;color:#fff;background:var(--blue);border-radius:9px;padding:9px 18px}
.gopro:hover{background:var(--blue-d)}

/* ---------- sections ----------
   THE DIVIDER AND THE TITLE, AND NOTHING ELSE.
   Four attempts got here: a hairline nobody saw, an ink rule that read as
   a hard stop, alternating tone that turned a document into stacked
   panels, and a rule plus a blue tick above each title -- one mark too
   many, once the titles themselves had grown. What is left is the rule at
   2px in a grey one step darker than a hairline (seen, never severe), and
   a heading at a size no sub-heading on the page uses. The air is enough
   to say a section has started and no more: it was near 80px, which read
   as a gap rather than as a join. */
.hero{padding:clamp(40px,6vw,84px) 0 clamp(32px,3.8vw,50px)}
.board,.activitysec,.tablesec,.trends,.perfs{padding:clamp(30px,3.4vw,46px) 0 clamp(28px,3.2vw,42px);
  border-top:2px solid var(--rule)}

/* ---------- hero ---------- */
.hero h1{font-family:var(--disp);font-weight:600;letter-spacing:-.028em;line-height:1.02;font-size:clamp(34px,4.6vw,74px);max-width:22ch}
.hero h1 b{font-weight:700;color:var(--blue)}
/* THE HEADLINE MAKES THE CLAIM; THE STRIP CARRIES THE EVIDENCE.
   Three sizes of grey prose with a mono date wedged mid-sentence buried
   the only numbers worth reading. One quiet line of method, a hairline,
   then the figures at a size that matches their importance. */
.hero .lede{margin-top:18px;max-width:52ch;color:var(--mut);font-size:14.5px;line-height:1.55}
/* THE HERO IN TWO COLUMNS. The sentence keeps a measure a reader can take
   in one glance (22ch); the third of the page that left empty now holds
   the three numbers that back it, with the date beneath. On a phone the
   columns stack back into the row they were. */
.hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:56px;align-items:end}
.herostats{border-left:1px solid var(--line);padding-left:34px;display:flex;flex-direction:column;gap:18px;align-self:stretch;justify-content:flex-end}
@media(max-width:900px){
  .hero .wrap{display:block}
  .herostats{margin-top:26px;padding:20px 0 0;border-left:0;border-top:1px solid var(--line);flex-direction:row;flex-wrap:wrap;gap:20px 36px;align-items:flex-start;justify-content:flex-start}
}
.hstat .n{font-family:var(--disp);font-size:clamp(26px,2.6vw,34px);font-weight:650;
  letter-spacing:-.022em;line-height:1;white-space:nowrap}
.hstat .n.hl{color:var(--blue)}
.hstat .k{font-family:var(--mono);font-size:10px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--faint);margin-top:9px}
.hstat.end{margin-top:6px;padding-top:14px;border-top:1px solid var(--line)}
@media(max-width:900px){.hstat.end{margin-left:auto;text-align:right;border-top:0;padding-top:0;margin-top:0}}
.hstat.end .n{font-family:var(--mono);font-size:12.5px;font-weight:500;color:var(--mut);letter-spacing:0}
@media(max-width:640px){.hstat.end{margin-left:0;text-align:left}}
.valstat{margin-top:14px;font-size:16px;color:var(--mut)}
.valstat b{font-family:var(--mono);font-weight:600;color:var(--ink)}

/* ---------- leaderboard ---------- */
.shead{display:flex;justify-content:space-between;align-items:baseline;gap:18px;margin-bottom:20px;flex-wrap:wrap}
.shead h2{font-family:var(--disp);font-weight:650;letter-spacing:-.025em;font-size:clamp(26px,2.9vw,40px);line-height:1.08}
.shead .r{font-size:13px;color:var(--mut)}
/* Ten bars in the frame, the rest a scroll away -- the ranking runs the
   whole index, so cutting it at ten hid 490 companies behind nothing at
   all. Room is left on the right so the scrollbar does not sit on the
   percentages. */
.bars{display:flex;flex-direction:column;gap:8px;
      max-height:532px;overflow-y:auto;overscroll-behavior:contain;
      padding-right:10px}
.brow{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:16px;align-items:center;cursor:pointer}
.btrack{position:relative;height:46px;background:var(--panel);border-radius:6px;overflow:hidden}
.bfill{position:absolute;inset:0 auto 0 0;background:var(--blue);border-radius:6px;display:flex;align-items:center;min-width:0;transition:background .12s}
.brow:hover .bfill{background:var(--blue-d)}
.blab{display:flex;align-items:baseline;gap:10px;padding:0 14px;white-space:nowrap;overflow:hidden;color:#fff}
.blab .tk{font-family:var(--mono);font-weight:600;font-size:13px}
.blab .nm{font-size:13px;font-weight:600;opacity:.92;overflow:hidden;text-overflow:ellipsis}
.blab.out{color:var(--ink);position:absolute;left:var(--w);top:0;bottom:0;padding-left:12px;align-items:center;display:flex;gap:10px}
.bpct{font-family:var(--mono);font-weight:600;font-size:16px;text-align:right}
.bpct .b2{display:block;font-size:11px;font-weight:500;color:var(--faint)}
.bsub{margin:-10px 0 18px;font-size:13px;color:var(--mut)}

/* ---------- table ---------- */
.controls{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.search{flex:1;min-width:240px;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:9px;padding:9px 13px;background:#fff}
.search svg{flex:none;opacity:.35}
.search input{border:none;outline:none;width:100%;font:inherit;background:none}
.chip{font-size:12.5px;font-weight:600;padding:8px 13px;border:1px solid var(--line);border-radius:99px;color:var(--mut);background:#fff}
.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}
select{font:inherit;font-size:13px;border:1px solid var(--line);border-radius:9px;padding:9px 11px;background:#fff}
select:disabled{opacity:.45;cursor:not-allowed}
/* A WINDOW, NOT A WALL.
   Five hundred rows pushed everything below the table off the page, and the
   Show-all button made the reader choose between a truncated view and an
   unusable one. The body scrolls inside a fixed frame instead, ten rows
   deep, with the column heads pinned so you can still see what you are
   sorting by at row four hundred. */
.tscroll{max-height:660px;overflow:auto;overscroll-behavior:contain;
         border-bottom:1px solid var(--line)}
.tscroll thead th{position:sticky;top:0;z-index:2;background:var(--bg);
  /* a sticky cell cannot carry a collapsed border, so it is drawn inset */
  border-bottom:none;box-shadow:inset 0 -1px 0 var(--ink)}
table{width:100%;border-collapse:collapse}
/* THE SCREENER IS THE WIDTH OF THE PAGE. Fixed layout, every column with a
   width, the two text columns truncating; nothing scrolls sideways. */
table.screen{table-layout:fixed}
table.screen th,table.screen td{overflow:hidden}
table.screen thead th{text-overflow:ellipsis}
.tscroll{overflow-x:hidden}
.w-rk{width:36px}.w-co{width:15.5%}.w-ceo{width:15%}.w-own{width:12.5%}.w-val{width:8%}.w-mc{width:8.5%}.w-d3{width:10%}.w-lt{width:17.5%}.w-ns{width:8.5%}.w-conf{width:9.5%}
table.screen thead th{letter-spacing:.06em}
table.screen thead th .arr{width:auto}
table.screen .c-lt .lt{gap:6px}
thead th.c,td.c{text-align:center}
.c-ns .nsy{display:inline-block;font-weight:700;color:#0b7a4b;font-size:14px}
.c-lt .ltv{font-family:var(--mono);font-weight:600;font-size:12.5px;color:var(--ink)}
table.screen thead th,table.screen tbody td{padding-left:8px;padding-right:8px}
table.screen thead th .arr{width:.7em}
td.c-co .nm,td.ceo .cn{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
td.ceo .fb{vertical-align:2px}
.c-mc{white-space:nowrap}
@media(max-width:1100px){.h-ns,.c-ns,.w-ns{display:none}.w-co{width:22%}}
@media(max-width:980px){.h-mc,.c-mc,.w-mc{display:none}.w-lt{width:16%}}
@media(max-width:760px){.h-conf,.c-conf,.w-conf,.h-lt,.c-lt,.w-lt,.h-d3,.c-d3,.w-d3,.h-ns,.c-ns,.w-ns{display:none}.w-co{width:34%}.w-ceo{width:26%}.w-own{width:20%}.w-val{width:14%}
  table.screen .tbar{display:none}table.screen .tpct{min-width:0}table.screen thead th,table.screen tbody td{padding-left:8px;padding-right:8px}}
thead th{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);text-align:left;padding:10px 12px;border-bottom:1px solid var(--ink);white-space:nowrap}
thead th.sortable{cursor:pointer;user-select:none}
thead th.sortable:hover{color:var(--ink)}
thead th .arr{display:inline-block;width:1em;color:var(--blue)}
thead th.n,td.n{text-align:right}
tbody td{padding:12px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle}
tbody tr{cursor:pointer}
tbody tr:hover{background:var(--wash)}
td.rk{font-family:var(--mono);font-size:12px;color:var(--faint);text-align:right;width:44px}
td .tk{font-family:var(--mono);font-weight:600;font-size:13px}
td .nm{font-size:12px;color:var(--mut)}
td.ceo{white-space:nowrap;overflow:hidden}
td.ceo .ceow{display:flex;align-items:center;gap:8px;min-width:0}
td.ceo .cn{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
td.ceo .fb{flex:none;margin-left:0}
.cell-own{display:flex;align-items:center;gap:10px}
.tbar{flex:1;height:4px;background:var(--line2);border-radius:2px;overflow:hidden;min-width:40px}
.tbar i{display:block;height:100%;background:var(--blue)}
.tpct{font-family:var(--mono);font-weight:600;font-size:13.5px;min-width:64px;text-align:right}
.tarr{font-size:10px;margin-left:6px;vertical-align:1px}.tarr.up{color:#0B8A3E}.tarr.down{color:#C23B3B}.tarr.flat{color:var(--faint)}
td.num{font-family:var(--mono);font-size:12.5px;color:var(--mut)}
td.asof{font-family:var(--mono);font-size:11.5px;color:var(--faint);white-space:nowrap}
.conf{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--mut)}
.dot{width:8px;height:8px;border-radius:50%;flex:none}
.dot.high{background:var(--blue)}
.dot.medium{background:#fff;border:2px solid var(--blue)}
.dot.low{background:#fff;border:2px solid var(--amber)}
td.src a{font-family:var(--mono);font-size:11.5px;color:var(--faint)}
td.src a:hover{color:var(--blue)}
.tfoot{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 4px 0;font-size:12.5px;color:var(--mut);flex-wrap:wrap}
.more{font-weight:700;font-size:13px;border:1px solid var(--ink);border-radius:9px;padding:8px 16px}
.more:hover{background:var(--ink);color:#fff}

/* the screener's two new cells */
.c-d3 .d3{display:inline-flex;align-items:baseline;gap:3px;white-space:nowrap;font-family:var(--mono);font-size:12.5px}
.c-d3 .d3 b{font-weight:600}
.c-d3 .d3 small{font-size:10px;color:var(--faint);margin-left:-4px}
.c-d3 .d3.up b,.c-d3 .d3.up .spark{color:#0b7a4b}
.c-d3 .d3.down b,.c-d3 .d3.down .spark{color:#c22a2a}
.c-d3 .d3.flat b,.c-d3 .d3.flat .spark{color:var(--mut)}
.c-d3 .spark{display:block;flex:none}
.c-lt .ns{display:inline-block;font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);background:var(--wash);border-radius:4px;padding:2px 6px;margin-top:4px}
.c-lt .lt{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.chip.export{margin-left:auto}
.c-lt .ltd{font-family:var(--mono);font-size:11.5px;color:var(--faint)}

/* ---------- trends ---------- */
.protag{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;color:#fff;background:var(--ink);border-radius:5px;padding:4px 8px;vertical-align:middle}
.protag.ghost{color:var(--ink);background:none;border:1px solid var(--ink)}
.chartbox{position:relative}
.chartbox svg{display:block;width:100%;height:auto}
/* ONE LOCK, USED EVERYWHERE.
   There were two: a blurred table with a floating seal, and a bordered box
   over a blurred chart -- so a reader met two different things meaning the
   same thing, and neither said plainly "there is more here". Now every
   locked thing looks identical: the real content behind a blur, a wash of
   the page colour over it so the text underneath cannot be read, and one
   card on top. What is locked is the shape you can still see; what unlocks
   it is the same button every time. */
.locked{position:relative;overflow:hidden;border-radius:12px}
/* A LOCKED TABLE IS THE SAME SIZE AS AN OPEN ONE.
   Blurring nine rows produced a 500px field of haze taller than the table
   it was teasing. The locked block is capped to the height of the tables
   elsewhere on the page, and what does not fit is simply clipped -- the
   point is to show the shape of what is missing, and that reads in 340px
   as well as it does in 900. */
.locked.tablelock{max-height:340px}
.locked .under{filter:blur(7px);opacity:.55;pointer-events:none;user-select:none}
.locked::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.35) 0%,rgba(255,255,255,.8) 62%,#fff 100%)}
.lock{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:11px;text-align:center;padding:20px}
.lock .seal{width:40px;height:40px;border-radius:50%;background:var(--ink);color:#fff;
  display:grid;place-items:center;font-size:15px}
.lock p{font-size:13.5px;color:var(--mut);max-width:34ch;line-height:1.5}
.lockbtn{font-size:13px;font-weight:700;color:#fff;background:var(--blue);border-radius:8px;padding:9px 18px}
.lockbtn:hover{background:var(--blue-d)}
/* a locked block never collapses to nothing: the blur needs room to read as
   content rather than as a smudge */
.locked.tall{min-height:260px}
.freetag{position:absolute;top:6px;right:6px;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.08em;color:var(--blue);background:var(--wash);border-radius:4px;padding:3px 8px}
.tnote{font-size:11.5px;color:var(--faint);margin-top:8px}


/* ---------- recent activity ---------- */
/* THE DAY STRIP. One bordered box, the newest filing day, every filing on
   it. It is the thing a returning reader looks at first and the thing that
   gets screenshotted, so it carries a date a human can read, a count, and
   its own permalink. */
.dayb{border:1px solid var(--line);border-radius:12px;padding:14px 18px 6px;margin-bottom:22px;background:#fff}
.dayh{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.dayh .dt{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.dayh .dt b{color:var(--blue);font-weight:600}
/* the day chips are the section's own chips -- white with a border, the
   chosen one filled ink -- so they read as the filter they are */
.dayh .dn{display:flex;gap:6px;flex-wrap:wrap}
.dayh .dn .chip{cursor:pointer}
.dayh .dn .chip:hover{border-color:var(--ink);color:var(--ink)}
.dayh .dn .chip.on:hover{color:#fff}
.dayrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px 14px;align-items:center;padding:9px 0;border-top:1px solid var(--line2);cursor:pointer;font-size:13.5px}
.dayrow:hover{background:var(--wash)}
.dayrow .drwho{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dayrow .drwho .atk{margin-right:8px}
.dayrow .drv{font-family:var(--mono);font-size:12px;text-align:right;white-space:nowrap;color:var(--mut)}
.dayrow .drv b{font-weight:600;color:var(--ink);margin-right:6px}
.dayrow .drv a{color:var(--faint);text-decoration:none;margin-left:8px}
.dayrow .drv .dtd{color:var(--faint)}
.dayrow .drv a:hover{color:var(--blue)}
.dayempty{padding:14px 24px 10px;font-size:13.5px;color:var(--mut);line-height:1.6;text-align:center}
@media(max-width:640px){.dayrow{grid-template-columns:auto minmax(0,1fr)}.dayrow .drv{grid-column:1/-1;text-align:left;padding-left:2px}}

/* THE TWO COLUMNS. Same frame, same chips, same bar; only the colour and
   the heading differ, so the eye compares them as a pair. Each column
   scales its bars to ITS OWN largest person -- the headline totals carry
   the absolute comparison, the bars carry the ranking within a side. */
/* align-items:start, deliberately: a short buy column beside a long sell
   column is the finding, so neither column is stretched to the other */
.actcols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:6px;align-items:start}
@media(max-width:760px){.actcols{grid-template-columns:1fr}}
.acol{border:1px solid var(--line);border-radius:12px;padding:14px 18px 12px;background:#fff;display:flex;flex-direction:column}
.acol:has(.aempty){min-height:260px}
.acol .ah{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.acol .at{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.acol.sell .at{color:#C13A2E}
.acol .an{font-size:13px;color:var(--mut)}
.acol .an b{font-weight:600;color:var(--ink)}
.acol .achips{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 12px}
.acol .achips .chip{padding:6px 11px;font-size:12px}
.acol .achips .chip i{margin-left:6px}
.abar{display:grid;grid-template-columns:minmax(120px,42%) minmax(0,1fr) 138px;gap:8px 10px;align-items:center;padding:6px 0;cursor:pointer;border-radius:6px}
.abar:hover{background:var(--wash);margin:0 -8px;padding-left:8px;padding-right:8px}
.abar .who{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--disp);font-weight:650;font-size:13px;letter-spacing:-.012em;line-height:1.15}
.abar .who small{display:block;font-family:var(--mono);font-weight:600;font-size:10.5px;color:var(--blue);letter-spacing:.02em;margin-top:2px}
.abar .who{display:block}
.abar .who .nmrow{display:flex;align-items:center;min-width:0}
.acol.sell .abar .who small{color:#C13A2E}
.abar .trk{height:18px;background:var(--panel);border-radius:3px;display:flex;overflow:hidden}
.abar .seg{height:100%;background:var(--blue);flex:none}
/* ONE COLOUR FOR ONE FACT. The badges already say 10b5-1 with a light
   tint of the same colour; the bars said it with stripes, a second
   vocabulary for the same thing. Now the light tint everywhere. */
.abar .seg.plan{background:rgba(27,52,224,.36)}
.abar .seg.unknown{background:rgba(27,52,224,.35)}
.acol.sell .abar .seg{background:#C13A2E}
.acol.sell .abar .seg.plan{background:rgba(193,58,46,.36)}
.acol.sell .abar .seg.unknown{background:rgba(193,58,46,.35)}
.abar .amt{text-align:right;white-space:nowrap;font-family:var(--mono);font-size:12px;line-height:1.3}
.abar .amt b{font-weight:600;color:var(--ink);display:block;font-size:13px}
.abar .amt span{color:var(--faint);font-size:10.5px}
.abar .amt span.q{cursor:help}
.aempty{flex:1;display:grid;place-items:center;text-align:center;font-size:13px;color:var(--mut);line-height:1.6;padding:18px 12px;min-height:140px}
/* on a phone the bar takes its own line beneath the name, full width */
@media(max-width:640px){
  .abar{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;padding:8px 0}
  .abar .trk{grid-column:1/-1;order:3}
  .abar .who{white-space:normal}
}
.acol .af{margin-top:auto;padding-top:12px;display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--faint)}
.acol .af .key{display:flex;gap:10px;align-items:center}
.acol .af .key i{display:inline-block;width:14px;height:9px;border-radius:2px;vertical-align:-1px;margin-right:4px;background:var(--blue)}
.acol .af .key i.plan{background:rgba(27,52,224,.36)}
.acol.sell .af .key i{background:#C13A2E}
.acol.sell .af .key i.plan{background:rgba(193,58,46,.36)}
/* THE FOUNDER MARK. The site exists to tell founders from hired hands, so
   the section says which is which -- quietly, and in the leaderboard's own
   badge: the same ink pill, abbreviated to F, always after the name so
   every name starts at the same edge. The proxy sentence is on hover, and
   an ambiguous proxy gets nothing. In a bar the name is the flexible part
   and the pill is not, so a long name shortens before the pill can go. */
.fm{display:inline-block;flex:none;box-sizing:border-box;width:15px;height:15px;line-height:15px;text-align:center;font-family:var(--ui);font-size:10px;font-weight:700;letter-spacing:0;border-radius:4px;padding:0;margin-left:7px;vertical-align:1px;background:var(--ink);color:#fff;cursor:help}
.abar .who .nm{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.abar .who .fm{margin-top:-1px}
.acol .af .key .fm{margin-left:0;margin-right:4px}
/* the day chips: the last five filing days, newest on the right */
.dayh .dn .chip{padding:5px 10px;font-size:11.5px;font-family:var(--mono);letter-spacing:.02em;font-weight:600}
.dayh .dn .chip i{margin-left:6px}
/* THE STRIP IS A FIXED FRAME. A day of three trades and a day of thirty
   take the same space; the rows scroll inside it, and the page below never
   jumps when a chip is chosen. */
.daylist{height:290px;overflow:auto;overscroll-behavior:contain;margin:0 -18px;padding:0 18px}
.daylist .dayrow:hover{margin:0 -18px;padding-left:18px;padding-right:18px}
.dayempty{height:100%;display:grid;place-items:center}
.acol .af a{color:var(--mut);text-decoration:none;font-weight:600;cursor:pointer}
.acol .af a:hover{color:var(--blue)}
/* SALES THAT DID NOT MOVE A STAKE ARE OFF THE PAGE AND ONE CLICK AWAY.
   The site's question is ownership. Options cashed and units converted
   are real sales of real shares and the measured stake ends where it
   began; they used to earn a paragraph under Sold explaining why they
   were not ranked. Now nothing above ranks, lists or sums them, one
   sentence for the whole section says how many were kept out, and the
   table holds every one -- the record stays complete, the page stops
   explaining. */
.actnote{margin:10px 2px 0;font-size:12.5px;color:var(--mut);line-height:1.6}
.actnote a{color:var(--mut);font-weight:600;text-decoration:none;cursor:pointer}
.actnote a:hover{color:var(--blue)}
.dayalso{padding:9px 0 4px;border-top:1px solid var(--line2);font-size:12.5px;color:var(--faint);cursor:pointer}
.dayalso:hover{color:var(--blue)}
.acttable{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.acttop{justify-content:space-between}
.tview{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.tview em{font-style:normal;color:var(--faint);font-weight:400;letter-spacing:.02em;text-transform:none;margin-left:8px}
.actctl{margin-bottom:14px}
/* THE CONTROLS ARE THE SALES COPY.
   A free reader sees the whole instrument panel -- every chip, the search,
   the window, each carrying its real count of what sits behind the seal --
   and one transparent cover over the lot. Any touch of it opens the Pro
   sheet: the interface explains the paid tier without a sentence of copy,
   and the click arrives at the exact moment of curiosity. */
.controls.gated{position:relative;opacity:.92}
.gatecover{position:absolute;inset:0;z-index:3;cursor:pointer;border-radius:8px}
.gatecover:hover{background:rgba(27,52,224,.035)}
/* TWO KINDS OF CHIP, TOLD APART BY TONE.
   Views and directions are white; the chips after the divider -- the
   manners of selling, the founders-only modifier -- sit on the panel wash,
   so the row reads as two families even before the divider is noticed.
   The divider itself steps up to the section-rule grey. */
.chipdiv{width:2px;align-self:stretch;background:var(--rule);border-radius:1px;margin:2px 5px}
.chip[data-kind]{background:var(--panel)}
.chip[data-kind].on{background:var(--ink)}
.perfctl{display:flex;gap:8px;flex-wrap:wrap}
#perfchart svg{width:100%;height:auto;display:block}
.fsw{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;
  font-family:var(--mono);font-size:11.5px;letter-spacing:.02em;color:var(--faint)}
.fsw .tr{width:34px;height:19px;border-radius:999px;background:var(--line);position:relative;
  transition:background .15s;flex:none}
.fsw .tr i{position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;
  background:#fff;transition:left .15s;box-shadow:0 1px 2px rgba(0,0,0,.25)}
.fsw.on .tr{background:#1B34E0}
.fsw.on .tr i{left:17px}
.fsw.on{color:var(--ink)}
.fsw:hover{color:var(--ink)}
.chip i{font-style:normal;font-family:var(--mono);font-size:10.5px;color:var(--faint);margin-left:7px}
.chip.on i{color:rgba(255,255,255,.62)}
/* the badge in a row is the fastest filter on the page, so it acts like one */
.actf .abadge{cursor:pointer}
.actf .abadge:hover{outline:2px solid var(--blue);outline-offset:1px}
/* the feed is a window, not a wall -- same rule as the company table */
.escroll{max-height:660px;overflow:auto;overscroll-behavior:contain;border-bottom:1px solid var(--line)}
.escroll thead th{position:sticky;top:0;z-index:2;background:var(--bg);border-bottom:none;box-shadow:inset 0 -1px 0 var(--ink)}
.aplan{display:block;font-family:var(--mono);font-size:10px;color:var(--faint);letter-spacing:.05em;margin-top:4px}
.apx{font-family:var(--mono);font-size:11px;color:var(--faint);display:block;font-weight:400;margin-top:2px}
.pwarn{cursor:help;color:var(--amber)}
.apx{cursor:help;color:var(--amber)}
td.asrc a{font-family:var(--mono);font-size:11px;color:var(--faint)}
td.asrc a:hover{color:var(--blue)}
.efoot{padding:12px 2px 0;font-size:13px;color:var(--mut)}
.eempty{height:520px;display:grid;place-items:center;text-align:center;
  font-size:13.5px;color:var(--mut);line-height:1.7;padding:0 24px}
.actf{width:100%;border-collapse:collapse}
.actf thead th{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);text-align:left;padding:9px 12px;border-bottom:1px solid var(--ink);white-space:nowrap}
.actf thead th.sortable{cursor:pointer;user-select:none}
.actf thead th.sortable:hover{color:var(--ink)}
.actf thead th .arr{display:inline-block;width:1em;color:var(--blue)}
.actf thead th.n{text-align:right}
.actf td{padding:11px 12px;border-bottom:1px solid var(--line);font-size:13.5px;vertical-align:middle}
.actf tbody tr{cursor:pointer}
.actf tbody tr:hover{background:var(--wash)}
.adate{font-family:var(--mono);font-size:11.5px;color:var(--faint);white-space:nowrap}
.adate .atd{display:block;font-size:10px;color:var(--faint);margin-top:2px}
.atk{font-family:var(--mono);font-weight:600;font-size:13px}
.aceo{font-size:12px;color:var(--mut);margin-left:9px}
/* ONE BOX FOR EVERY BADGE. BOUGHT is two letters wider than SOLD and a
   column of them raggedly staggered the figures beside them; every badge
   is now the same width, its word centred, wherever it appears. */
.abadge{display:inline-block;box-sizing:border-box;min-width:62px;text-align:center;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.07em;padding:4px 8px;border-radius:5px}
.abadge.up{background:var(--blue);color:#fff}
.abadge.soft{background:var(--wash);color:var(--blue)}
.abadge.down{background:#C13A2E;color:#fff}
.abadge.dsoft{background:#F7E9E6;color:#C13A2E}
.abadge.neu{border:1px solid var(--line);color:var(--mut)}
.adlt{font-family:var(--mono);font-weight:600;font-size:13px}
.adlt.up{color:var(--blue)}
.adlt.down{color:#C13A2E}
.asub{font-family:var(--mono);font-size:12px;color:var(--mut)}
.aval{font-family:var(--mono);font-weight:600;font-size:13px}
.aval.up{color:var(--blue)}
.aval.down{color:#C13A2E}
.nopr{color:var(--faint);font-weight:400}
.actlock{margin-top:16px}
.actfree{margin-bottom:6px}
.drow{display:flex;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line2);flex-wrap:wrap}

.fb{display:inline-block;font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.1em;border-radius:4px;padding:2px 6px;margin-left:8px;vertical-align:1px}
.fb.yes{background:var(--ink);color:#fff}
.fb.unc{border:1px solid var(--faint);color:var(--mut)}
/* ---------- focus view ---------- */
.fscrim{position:fixed;inset:0;background:rgba(12,13,14,.45);opacity:0;pointer-events:none;transition:opacity .18s;z-index:60}
.fscrim.on{opacity:1;pointer-events:auto}
.focus{position:fixed;left:50%;top:50%;transform:translate(-50%,-48%) scale(.985);width:min(980px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px 30px 24px;z-index:61;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;box-shadow:0 24px 80px rgba(12,13,14,.18)}
.focus.on{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.fhead{display:flex;align-items:baseline;gap:14px;margin-bottom:14px}
.fhead .fl{flex:1;min-width:0;display:flex;align-items:baseline;gap:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fhead .tk{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--blue);letter-spacing:.06em}
.fhead .fco{font-size:19px;font-weight:650;letter-spacing:-.01em}
.fhead .fce{font-size:13px;color:var(--mut)}
.fdelta{font-family:var(--mono);font-size:12.5px;color:var(--mut);white-space:nowrap}
.fdelta b{font-weight:600}
.fdelta.up b,.fdelta.up .dir{color:#0b7a4b}.fdelta.down b,.fdelta.down .dir{color:#c22a2a}.fdelta.flat b{color:var(--mut)}
.fx{border:none;background:none;font-size:26px;line-height:1;color:var(--mut);cursor:pointer;padding:0 2px}
.fx:hover{color:var(--ink)}
.fchartwrap{position:relative;border:1px solid var(--line);border-radius:10px;padding:10px 6px 4px;background:#FDFDFB}
.fchartwrap svg{display:block;width:100%;height:auto;cursor:crosshair}
.fcross{position:absolute;top:12px;bottom:10px;width:0;border-left:1px dashed #B9BDF3;pointer-events:none}
.fdot{position:absolute;width:9px;height:9px;border-radius:50%;background:#fff;border:2px solid var(--blue);transform:translate(-50%,-50%);pointer-events:none}
/* THE TOOLTIP IS THE FILING, IN MINIATURE: the date, the stake, and what
   actually moved that day at what it fetched. */
.ftip{position:absolute;min-width:190px;max-width:250px;background:var(--ink);color:#fff;border-radius:8px;padding:10px 12px;font-size:11.5px;line-height:1.5;pointer-events:none;z-index:5;transform:translate(-50%,0)}
.ftip .d{font-family:var(--mono);font-size:10px;color:#B9BDC4;letter-spacing:.05em}
.ftip .p{font-family:var(--mono);font-size:15px;font-weight:600;margin:1px 0 2px}
.ftip .s{color:#D8DADF}
.ftip .ev{margin-top:5px;padding-top:5px;border-top:1px solid rgba(255,255,255,.14)}
.ftip .t{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.1em;padding:1.5px 6px;border-radius:4px;background:rgba(255,255,255,.12)}
.ftip .t.up{background:#0b7a4b}.ftip .t.down{background:#c22a2a}
.ftip .amt{font-family:var(--mono)}
.fhint{font-family:var(--mono);font-size:10.5px;color:var(--faint);margin:8px 2px 0}
.fstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:16px 0 18px}
.fstats .c{background:#fff;padding:11px 14px}
.fstats .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;color:var(--faint);text-transform:uppercase}
.fstats .v{font-family:var(--mono);font-size:14px;font-weight:600;margin-top:3px}
.fstats .v small{font-size:10px;color:var(--mut);font-weight:400;margin-left:5px}
.fevrow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.fevh{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--faint);text-transform:uppercase}
.fevents{display:flex;flex-direction:column}
.fev{display:flex;align-items:baseline;gap:12px;padding:8px 2px;border-top:1px solid var(--line);font-size:12.5px}
.fev .dt{font-family:var(--mono);font-size:11px;color:var(--mut);width:88px;flex:none}
.fev .tag{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.1em;padding:2px 7px;border-radius:4px;flex:none}
.fev .tag.up{background:#E7F3EC;color:#0b7a4b}.fev .tag.down{background:#FBEAEA;color:#c22a2a}
.fev .tag.soft{background:#EEF0FE;color:var(--blue)}.fev .tag.dsoft{background:#F3F3EF;color:var(--mut)}.fev .tag.neu{background:#F3F3EF;color:var(--mut)}
.fev .sh{font-family:var(--mono)}
.fev .val{font-family:var(--mono);margin-left:auto;color:var(--ink)}
.fev .val.dash{color:var(--faint)}

/* ---------- drawer ---------- */
.scrim{position:fixed;inset:0;background:rgba(12,13,14,.4);opacity:0;pointer-events:none;transition:opacity .18s;z-index:40}
.scrim.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(600px,100%);background:var(--bg);border-left:1px solid var(--ink);transform:translateX(103%);transition:transform .24s cubic-bezier(.3,.8,.3,1);z-index:50;overflow-y:auto}
.drawer.on{transform:none}
.dhead{padding:26px 30px 18px;border-bottom:1px solid var(--line);position:relative}
.dclose{position:absolute;top:20px;right:20px;width:34px;height:34px;border:1px solid var(--line);border-radius:9px;display:grid;place-items:center;background:#fff}
.dclose:hover{border-color:var(--ink)}
.dhead .tk{font-family:var(--mono);font-size:12px;color:var(--faint);letter-spacing:.06em}
.dhead h3{font-family:var(--disp);font-weight:600;letter-spacing:-.02em;font-size:30px;margin:4px 0 2px}
.dhead .ce{font-size:14px;color:var(--mut)}
.dpct{padding:22px 30px 6px;display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}
.dpct .p{font-family:var(--mono);font-weight:600;font-size:52px;letter-spacing:-.03em;color:var(--blue);line-height:1}
.dpct .l{font-size:13px;color:var(--mut);max-width:24ch;line-height:1.4}
.dpct.wide{display:block}
.dpct.wide .p{font-size:24px;letter-spacing:0;line-height:1.3;font-weight:600}
.dpct.wide .l{max-width:60ch;margin-top:8px}
.dstats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:18px}
.dstat{padding:14px 30px;border-bottom:1px solid var(--line2)}
.dstat:nth-child(odd){border-right:1px solid var(--line2)}
.dstat .k{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.dstat .v{font-family:var(--mono);font-size:15px;font-weight:500;margin-top:3px}
.dstat .v.s{font-size:12.5px;color:var(--mut)}
.dnote{margin:18px 30px 0;border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:0 9px 9px 0;padding:12px 15px;font-size:13px;color:var(--mut);background:var(--panel)}
.dsec{padding:22px 30px}
.dsec h4{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-bottom:12px;display:flex;gap:10px;align-items:center}
.dflags{margin:14px 30px 0}
.dflags summary{font-family:var(--mono);font-size:11.5px;color:var(--faint);cursor:pointer}
.dflags pre{font-family:var(--mono);font-size:11px;color:var(--mut);white-space:pre-wrap;background:var(--panel);border-radius:8px;padding:12px 14px;margin-top:8px;line-height:1.6}
.dfull{display:inline-block;margin-top:10px;font-family:var(--mono);font-size:12px;color:var(--blue);text-decoration:none}
.dhead h3 a.dco{color:inherit;text-decoration:none}
.dhead h3 a.dco:hover{text-decoration:underline;text-decoration-color:var(--blue)}
a.pglink{color:inherit;text-decoration:none}
a.pglink:hover{text-decoration:underline}
.dfull:hover{text-decoration:underline}
td.c-co .tk a{color:inherit;text-decoration:none}
td.c-co .tk a:hover{text-decoration:underline}
.dsrc{padding:8px 30px 36px;font-size:12.5px;color:var(--mut)}
.dsrc a{font-family:var(--mono);font-size:11.5px}

/* ---------- modal ---------- */
.modal{position:fixed;inset:0;display:none;place-items:center;z-index:60;padding:20px;background:rgba(12,13,14,.4)}
.modal.on{display:grid}
.mcard{position:relative;background:#fff;border:1px solid var(--ink);border-radius:14px;max-width:440px;width:100%;padding:34px}
.mcard .seal{width:48px;height:48px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:18px;margin-bottom:16px}
.mcard h3{font-family:var(--disp);font-weight:600;font-size:26px;letter-spacing:-.02em;margin-bottom:6px}
.mcard>p{font-size:14px;color:var(--mut);margin-bottom:16px}
.mcard ul{list-style:none;margin-bottom:22px}
.mcard li{font-size:13.5px;padding:8px 0;border-bottom:1px solid var(--line2);display:flex;gap:10px}
.mcard li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--blue);flex:none;margin-top:6px}
.mwide{width:100%;text-align:center;font-weight:700;color:#fff;background:var(--ink);border-radius:9px;padding:12px}
.mwide:hover{background:#000}
.mlater{display:block;text-align:center;margin-top:10px;font-size:12.5px;color:var(--faint)}
.mclose{position:absolute;top:14px;right:14px;width:30px;height:30px;color:var(--faint)}

footer{padding:26px 0 48px;font-size:12.5px;color:var(--faint);border-top:2px solid var(--rule)}
footer .row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
footer .legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center}