/* robouse.ai/hub (built by tools/build_hub.py): index, collections, embodiments, leaderboard, organisations, datasets
   and tasks. Palette and type come from /prose.css; this file is layout only. */
.hub{padding:var(--page-top) 0 8vh}
.scroll,.hub th,.hub td{position:relative}
.muted{color:var(--muted)}
.small{font-size:var(--fs-small);line-height:1.5}
.owner{color:var(--muted);font-weight:400;text-decoration:none}
a.owner:hover{color:var(--accent)}
ul.plain{list-style:none;margin:0;padding:0}
ul.plain li{margin:0 0 var(--sp-6);font:400 var(--fs-small)/1.5 var(--sans)}
.hub h2{scroll-margin-top:20px}

/* skeletons: a quiet shimmer behind media until it loads */
.sk{background:linear-gradient(100deg,var(--sunk) 30%,color-mix(in srgb,var(--line) 70%,var(--sunk)) 50%,var(--sunk) 70%) 0 0/250% 100%;animation:sk 1.3s linear infinite}
.sk.ld{animation:none;background:var(--sunk)}
.js .sk > img,.js .sk > video{opacity:0;transition:opacity var(--t-slow) var(--ease)}
.js .sk.ld > img,.js .sk.ld > video{opacity:1}
@keyframes sk{to{background-position:-250% 0}}
.skl{display:block;height:10px;border-radius:var(--r-xs);background:var(--line)}

/* chips and badges */
.chip{display:inline-flex;align-items:center;gap:var(--sp-6);height:var(--ctl-xs);padding:0 var(--sp-10);border:1px solid var(--line);border-radius:var(--r-pill);
  font:400 var(--fs-meta)/1 var(--sans);color:var(--ink2);background:var(--panel);white-space:nowrap;text-decoration:none}
.chip i{font-style:normal;color:var(--faint);font-variant-numeric:tabular-nums}
.chip.sim,.chip.lic,.chip.tag{color:var(--muted);background:transparent}
.chip.type{color:var(--ink)}
.chip.var{color:var(--ink2)}
.chip.mono{font:400 var(--fs-caption)/1 var(--mono);color:var(--ink2);border-radius:var(--r-sm)}
a.chip.link{height:auto;min-height:var(--ctl-xs);padding-top:var(--sp-4);padding-bottom:var(--sp-4);white-space:normal;overflow-wrap:anywhere;line-height:1.3;color:var(--ink2);transition:border-color var(--t-fast),color var(--t-fast)}
a.chip.link:hover{border-color:var(--line-strong);color:var(--accent)}
.chips{display:flex;flex-wrap:wrap;gap:var(--sp-6);margin:0}
.badges{display:flex;flex-wrap:wrap;gap:var(--sp-6)}
.badge{display:inline-flex;align-items:center;gap:var(--sp-6);height:var(--ctl-xs);padding:0 var(--sp-8);border:1px solid var(--line);border-radius:var(--r-sm);
  font:400 var(--fs-caption)/1 var(--sans);color:var(--muted);background:transparent;white-space:nowrap}
.badge i{font-style:normal}
.badge.ok{color:var(--ink);border-color:var(--line-strong)}
.var{display:inline-block;margin-left:var(--sp-4);padding:1px var(--sp-6);border:1px solid var(--line);border-radius:var(--r-xs);font:400 var(--fs-caption)/1.35 var(--sans);color:var(--muted);vertical-align:1px}
.status{font:400 var(--fs-meta)/1.5 var(--sans);color:var(--muted)}
.count{margin:0;font:400 var(--fs-small)/1.4 var(--sans);color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.count b{color:var(--ink);font-weight:500}
.empty{color:var(--muted)}
.sech{margin:var(--sp-40) 0 var(--sp-16)}
kbd{font:400 var(--fs-caption)/1 var(--mono)}
.use{display:inline-flex;align-items:center;justify-content:center;height:var(--ctl-lg);padding:0 var(--sp-20);border:0;border-radius:var(--ctl-r);background:var(--btn);color:var(--btn-ink);
  font:500 var(--fs-small)/1 var(--sans);cursor:pointer;white-space:nowrap;text-decoration:none;transition:background var(--t-fast)}
.use:hover{background:var(--btn-hover)}
.use:active{transform:translateY(1px)}
.xbtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:var(--ctl-sm);border:1px solid var(--line);border-radius:var(--r-md);background:transparent;color:var(--muted);cursor:pointer}
.xbtn:hover{color:var(--ink);border-color:var(--line-strong)}

/* ---------------- index: hero search */
.hero{margin:0 0 var(--sp-32)}
.hero h1{margin:0 0 var(--sp-12)}
.hero .lede{margin:0 0 var(--sp-24)}
/* the hero search is the shared .search.xl (/ui.css), as wide as the lede; the results pop over the page below it */
.gsearch{position:relative;max-width:var(--measure)}
/* the one line under the search: Leaderboard, Compose */
.hlinks{display:flex;flex-wrap:wrap;gap:var(--sp-6) var(--sp-20);margin:var(--sp-16) 0 0;font:400 var(--fs-small)/1.5 var(--sans)}
.gpop{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:20;max-height:min(70vh,560px);overflow-y:auto;padding:var(--sp-6);border:1px solid var(--line-strong);
  border-radius:var(--r-lg);background:var(--paper);box-shadow:var(--shadow-3);animation:pop var(--t) var(--ease)}
@keyframes pop{from{opacity:0;transform:translateY(-4px)}}
.gpop h3{margin:var(--sp-8) var(--sp-10) var(--sp-4);font:500 var(--fs-caption)/1.4 var(--sans);color:var(--muted)}
.gpop .gopt{display:grid;grid-template-columns:40px minmax(0,1fr);gap:var(--sp-12);align-items:center;padding:var(--sp-8) var(--sp-10);border-radius:var(--r-md);color:var(--ink);text-decoration:none;cursor:pointer}
.gpop .gopt img,.gpop .gsk .sq{display:block;width:40px;height:var(--ctl-lg);object-fit:cover;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--panel)}
.gpop .gopt .gt{display:block;font:500 var(--fs-ui)/1.3 var(--sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gpop .gopt .gs{display:block;margin-top:var(--sp-2);font:400 var(--fs-meta)/1.35 var(--sans);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gpop .gopt .gs code{font-size:var(--fs-caption);color:var(--muted)}
.gpop .gopt mark{background:none;color:var(--accent)}
.gpop .gopt[aria-selected="true"]{background:var(--panel)}
.gpop .gopt[aria-selected="true"]{box-shadow:inset 0 0 0 1px var(--line-strong)}
.gpop .gsk{display:grid;grid-template-columns:40px minmax(0,1fr);gap:var(--sp-12);align-items:center;padding:var(--sp-8) var(--sp-10)}
.gpop .gsk .sq{border:0}
.gpop .gsk .skl + .skl{margin-top:var(--sp-8);width:55%}
.gpop .ghint{margin:var(--sp-4) var(--sp-10) var(--sp-6);font:400 var(--fs-caption)/1.4 var(--sans);color:var(--faint)}
.hubindex section > h2{margin:0 0 var(--sp-16)}
.hubindex section{margin:0 0 var(--sp-64)}

/* featured: large looping media */

/* browse by embodiment */

/* collections */

/* ---------------- faceted browser (fx) */
.fx{position:relative}
.fxopen{display:none;align-items:center;gap:var(--sp-8);height:var(--ctl);padding:0 var(--sp-12);border:var(--border);border-radius:var(--ctl-r);background:var(--panel);color:var(--ink);font:400 var(--fs-small)/1 var(--sans);cursor:pointer;transition:border-color var(--t-fast)}
.fxopen:hover{border-color:var(--faint)}
.fxopen b,.fxk b{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 var(--sp-6);border-radius:var(--r-md);background:var(--ink);color:var(--paper);font:500 var(--fs-micro)/1 var(--sans)}
.fxp{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);margin:0 0 var(--sp-12)}
.fxsh,.fxsf,.fxbd{display:none}
.fxrow{display:flex;align-items:center;gap:var(--sp-12);padding:var(--sp-8) var(--sp-10) var(--sp-8) var(--sp-8);border-bottom:1px solid var(--line)}
.fxks{display:flex;gap:var(--sp-4);flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.fxks::-webkit-scrollbar{display:none}
.fxk{display:inline-flex;align-items:center;gap:var(--sp-8);height:var(--ctl-sm);padding:0 var(--sp-12);border:0;border-radius:var(--r-md);background:transparent;color:var(--muted);font:400 var(--fs-small)/1 var(--sans);
  cursor:pointer;white-space:nowrap;transition:background var(--t-fast),color var(--t-fast)}
.fxk:hover{color:var(--ink)}
.fxk[aria-selected="true"]{background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.fxfind.search{flex:0 0 200px;width:200px;background:var(--paper)}
.fxtray{padding:var(--sp-14) var(--sp-14) var(--sp-12);min-height:58px}
.fxgl{display:none;margin:0 0 var(--sp-8);font:500 var(--fs-caption)/1.4 var(--sans);color:var(--muted)}
.fx.finding .fxgl{display:block}
.fx.finding .fxg + .fxg{margin-top:var(--sp-12)}
/* rows: every kind is one labelled row of pills (the dataset list, three kinds) */
.fx.rows .fxg{display:grid;grid-template-columns:112px minmax(0,1fr);gap:var(--sp-12);align-items:baseline}
.fx.rows .fxg + .fxg{margin-top:var(--sp-10)}
.fx.rows .fxgl{display:block;margin:0;font:400 var(--fs-small)/1.4 var(--sans)}
@media (max-width:640px){.fx.rows .fxg{grid-template-columns:minmax(0,1fr);gap:var(--sp-6)}}
.pill.zero{opacity:.45}
.fxnone{margin:0;color:var(--muted);font:400 var(--fs-small)/1.4 var(--sans)}
.rngs{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-14) var(--sp-32)}
.rngl{display:flex;justify-content:space-between;gap:var(--sp-12);margin:0 0 var(--sp-8);font:400 var(--fs-small)/1.3 var(--sans);color:var(--ink2)}
.rngl output{color:var(--muted);font-variant-numeric:tabular-nums}
.rngt{position:relative;height:var(--ctl-xs);--a:0%;--b:100%}
.rngt::before{content:"";position:absolute;left:0;right:0;top:10px;height:3px;border-radius:var(--r-xs);background:var(--line)}
.rngf{position:absolute;top:10px;height:3px;border-radius:var(--r-xs);left:var(--a);right:calc(100% - var(--b));background:var(--ink2)}
.rngt input{position:absolute;inset:0;width:100%;margin:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none}
.rngt input::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:18px;height:18px;border-radius:50%;background:var(--paper);border:1.5px solid var(--ink2);cursor:grab;box-shadow:var(--shadow-1)}
.rngt input::-moz-range-thumb{pointer-events:auto;width:16px;height:16px;border-radius:50%;background:var(--paper);border:1.5px solid var(--ink2);cursor:grab}
.rngt input:focus-visible{outline:none}
.fxtok{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-6);margin:0 0 var(--sp-12)}
.tok{display:inline-flex;align-items:center;gap:var(--sp-6);height:var(--ctl-sm);padding:0 var(--sp-6) 0 var(--sp-10);border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--panel);color:var(--ink);
  font:400 var(--fs-meta)/1 var(--sans);cursor:pointer;animation:pop var(--t) var(--ease)}
.tok small{color:var(--muted);font-size:var(--fs-caption)}
/* the toolbar: search, count, then sort and layout on the right; one height (--ctl, 44px on touch screens) and one centre line */
.fxhead{margin:0 0 var(--sp-12)}
.fxhead > .count{padding:0 var(--sp-4)}
.fxctl{display:inline-flex;align-items:center;gap:var(--sp-8)}
.sort{display:inline-flex}
@media (pointer:coarse){.fxopen{height:var(--touch)}}
.fxempty{padding:var(--sp-36) var(--sp-20);border:var(--hairline);border-radius:var(--r-lg);text-align:center;color:var(--muted);font:400 var(--fs-ui)/1.6 var(--sans)}
.fxempty p{margin:0 0 var(--sp-6)}
.fxempty b{color:var(--ink);font-weight:500}
.fxempty .sug{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-8);margin-top:var(--sp-12)}
.fxempty .sug button{height:var(--ctl-sm);padding:0 var(--sp-12);border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--panel);color:var(--ink);font:400 var(--fs-small)/1 var(--sans);cursor:pointer}
.fxempty .sug button:hover{border-color:var(--ink2)}
[data-fx-list] > [hidden]{display:none !important}

/* dataset cards: grid and list */
.dcards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:var(--sp-16)}
.dcard a{position:relative;display:grid;grid-template-columns:104px minmax(0,1fr);gap:var(--sp-16);height:100%;padding:var(--sp-16);border:1px solid var(--line);
  border-radius:var(--r-lg);background:var(--panel);color:var(--ink);text-decoration:none;transition:border-color var(--t),box-shadow var(--t) var(--ease)}
.dcard a:hover{border-color:var(--line-strong);box-shadow:var(--shadow-2)}
.dcard a:hover .name{color:var(--accent)}
.dcard .still{display:block;width:104px;height:104px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line)}
.dcard .still img{display:block;width:100%;height:100%;object-fit:cover}
.dcard .body{display:flex;flex-direction:column;gap:var(--sp-8);min-width:0;padding-right:var(--sp-48)}
.dcard .name{display:flex;align-items:flex-start;gap:var(--sp-8);font:500 var(--fs-body)/1.3 var(--sans);overflow-wrap:anywhere;transition:color var(--t-fast)}
.dcard .desc{font:400 var(--fs-small)/1.5 var(--sans);color:var(--ink2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* meta items: every item carries a leading dot; the meta box is shifted left by one dot and clipped, so whichever item starts
   a line shows no dot and no line ends in a dangling separator */
.dcard .meta{display:flex;flex-wrap:wrap;margin:auto 0 0 -14px;clip-path:inset(0 0 0 14px);font:400 var(--fs-meta)/1.45 var(--sans);color:var(--muted)}
.dcard .meta > span{padding-left:14px}
.dcard .meta > span::before{content:"·";display:inline-block;width:14px;margin-left:-14px;text-align:center}  /* an item that wraps continues at the text edge, not in the clipped strip */
.nw{white-space:nowrap}
.dcard .meta > .upd{display:none}
[data-sort-now="updated:desc"] .dcard .meta > .upd{display:inline}  /* the date shows only when the list is sorted by it */
.tn{position:absolute;top:14px;right:16px;display:flex;flex-direction:column;align-items:flex-end;font:400 var(--fs-caption)/1.2 var(--sans);color:var(--muted)}
.tn b{font:500 var(--fs-h3)/1.1 var(--sans);color:var(--ink);font-variant-numeric:tabular-nums}


.adapted{font:400 var(--fs-meta)/1.45 var(--sans);color:var(--muted)}
.ohead{margin:0 0 var(--sp-12)}
.ohead h1{margin:0 0 var(--sp-4)}
.ohead .handle{margin:0 0 var(--sp-14);font:400 var(--fs-small)/1.4 var(--sans);color:var(--muted)}
.ohead .handle code{font-size:var(--fs-meta)}
.ohead .links{margin-top:var(--sp-16)}

/* ---------------- task viewer (a data table: sticky header, sortable columns, expandable rows) */
.dv{border-top:1px solid var(--line)}
.dvh,.dvr{display:grid;grid-template-columns:var(--dvcols);gap:0 var(--sp-14);align-items:center}
.dvh{position:sticky;top:0;z-index:5;padding:0 var(--sp-8);background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line-strong);font:500 var(--fs-meta)/1 var(--sans);color:var(--muted)}
.dvh > div{padding:var(--sp-12) 0}
.dvh button{all:unset;display:inline-flex;align-items:center;gap:var(--sp-4);cursor:pointer;color:var(--muted);border-radius:var(--r-xs)}
.dvh button:hover{color:var(--ink)}
.dvh .sg{width:12px;height:12px;opacity:0;transition:opacity var(--t-fast),transform var(--t) var(--ease)}
.dvh [aria-sort="ascending"] button,.dvh [aria-sort="descending"] button{color:var(--ink)}
.dvh [aria-sort="ascending"] .sg{opacity:1;transform:rotate(180deg)}
.dvh [aria-sort="descending"] .sg{opacity:1}
.dvh .c-b,.dvh .c-o,.dvr .c-b,.dvr .c-o{text-align:right;justify-self:end}
.dvr{position:relative;padding:var(--sp-10) var(--sp-8);border-bottom:1px solid var(--line);cursor:pointer;transition:background var(--t-fast)}
.dvr:hover,.dvr:focus-visible{background:var(--panel)}
.dvr:focus-visible{outline:none;box-shadow:inset 2px 0 0 var(--accent)}
.dvr[aria-expanded="true"]{background:var(--panel)}
.c-th .th{display:block;width:64px;height:64px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line)}
.c-th img{display:block;width:100%;height:100%;object-fit:cover}
.c-t{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}
.ttl{font:500 var(--fs-ui)/1.35 var(--sans);color:var(--ink);text-decoration:none;transition:color var(--t-fast)}
.dvr:hover .ttl{color:var(--accent)}
.tid{font:400 var(--fs-caption)/1.3 var(--mono);color:var(--muted);overflow-wrap:anywhere}
.tds{font:400 var(--fs-caption)/1.3 var(--sans);color:var(--muted)}
.tprev{font:400 var(--fs-meta)/1.45 var(--sans);color:var(--ink2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dvr[aria-expanded="true"] .tprev{display:none}
.c-s,.c-e{font:400 var(--fs-meta)/1.35 var(--sans);color:var(--ink2);min-width:0}
.c-e{display:flex;gap:var(--sp-8);align-items:flex-start}
.c-b{font:400 var(--fs-meta)/1 var(--sans);color:var(--ink2);font-variant-numeric:tabular-nums}
.c-o{font:400 var(--fs-meta)/1 var(--sans)}
.c-o .ok{color:var(--ink)}
.none{color:var(--faint)}
.c-m{display:flex;align-items:center;gap:var(--sp-8);font:400 var(--fs-meta)/1 var(--sans);color:var(--ink2);font-variant-numeric:tabular-nums}
.mbar{display:inline-block;width:48px;height:5px;border-radius:var(--r-xs);background:var(--line);overflow:hidden}
.mbar i{display:block;height:100%;background:var(--ink2)}
.xb{display:inline-flex;align-items:center;justify-content:center;width:30px;height:var(--ctl-sm);border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--muted);cursor:pointer;transition:border-color var(--t-fast),color var(--t-fast)}
.dvr:hover .xb{border-color:var(--line)}
.dvx{grid-column:1/-1;display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--sp-20);margin:var(--sp-12) 0 var(--sp-4);padding:var(--sp-14);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);
  cursor:default;animation:pop var(--t) var(--ease)}
.dvx[hidden]{display:none}
.dvxm{width:240px;aspect-ratio:1/1;border-radius:var(--r-md);overflow:hidden}
.dvxm video,.dvxm img{display:block;width:100%;height:100%;object-fit:cover}
.dvxb{display:flex;flex-direction:column;gap:var(--sp-12);min-width:0}
.xgoal{margin:0;font:400 var(--fs-ui)/1.6 var(--sans);color:var(--ink);max-width:var(--measure)}
.xres{display:flex;flex-wrap:wrap;gap:var(--sp-6);margin:0}
.mo{display:inline-flex;align-items:center;gap:var(--sp-6);height:var(--ctl-xs);padding:0 var(--sp-10);border:1px solid var(--line);border-radius:var(--r-pill);font:400 var(--fs-meta)/1 var(--sans);color:var(--muted);text-decoration:none}
.mo.ok{color:var(--ink);border-color:var(--line-strong);background:color-mix(in srgb,var(--ink) 6%,transparent)}
.mo.infra{font-style:italic}
a.mo:hover{border-color:var(--ink2)}
.xgo{margin:0;font:400 var(--fs-small)/1.4 var(--sans)}
.kbdhint{margin:var(--sp-12) 0 0;font:400 var(--fs-meta)/1.4 var(--sans);color:var(--faint)}
.pager{margin:var(--sp-20) 0 0}
.pager .pinfo{margin-left:auto;font:400 var(--fs-meta)/1 var(--sans);color:var(--muted)}

/* ---------------- dataset page: header and tabs */
.dhead{display:grid;grid-template-columns:120px minmax(0,1fr);gap:var(--sp-8) var(--sp-24);align-items:start;margin:0 0 var(--sp-8)}
.dstill img{display:block;width:120px;height:120px;object-fit:cover;border-radius:var(--r-md);border:1px solid var(--line);background:var(--panel)}
.dmain{min-width:0}
.dmain h1{display:flex;align-items:center;gap:var(--sp-12);margin:0 0 var(--sp-8);overflow-wrap:anywhere}
.dmain .lede{margin:0 0 var(--sp-12)}
.dmain .adapted{margin:calc(-1 * var(--sp-6)) 0 var(--sp-12)}
.dmain .badges{margin:0 0 var(--sp-10)}
.dmain .status{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-6) var(--sp-10);margin:0}
/* the run command under the title; "About this dataset" folds everything else */
.drun{grid-column:2/-1;min-width:0;margin-top:var(--sp-8)}
.drun .code{margin:0}
details.about{margin:var(--sp-16) 0 var(--sp-24)}
details.about > summary{font:400 var(--fs-small)/1.5 var(--sans)}
details.about > .cardgrid{margin-top:var(--sp-16)}
/* About this dataset: one line per fact, then the citation */
.aboutdl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:var(--sp-8) var(--sp-24);margin:var(--sp-16) 0 var(--sp-16);max-width:var(--measure);font:400 var(--fs-small)/1.5 var(--sans)}
.aboutdl > div{display:contents}
.aboutdl dt{color:var(--muted)}
.aboutdl dd{margin:0;color:var(--ink2);min-width:0;overflow-wrap:anywhere}
.aboutdl code{font-size:.875em}
.code.cite{max-width:var(--measure)}
@media (max-width:560px){.aboutdl{grid-template-columns:minmax(0,1fr);gap:var(--sp-2) 0}.aboutdl dd{margin-bottom:var(--sp-8)}}
.cmd pre{white-space:pre;overflow-x:auto;padding-right:var(--sp-72)}
.cmd pre code{width:auto;white-space:pre}
/* a command wraps between its words, never inside a flag; a word longer than the line (a URL on a phone) breaks anywhere */
.cmd .copy{opacity:1}
.js .panel{display:none}
.js .panel.on{display:block;animation:fade var(--t) var(--ease)}
@keyframes fade{from{opacity:0}}
.panel{margin:0 0 var(--sp-40)}
.panel:focus{outline:none}

/* dataset card with a facts sidebar */
.cardgrid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:0 var(--sp-56);align-items:start}
.readme{min-width:0}
.readme > h2:first-of-type{margin-top:0}
.toc{display:flex;flex-wrap:wrap;gap:var(--sp-4) var(--sp-16);margin:0 0 var(--sp-28);padding:0 0 var(--sp-14);border-bottom:1px solid var(--line);font:400 var(--fs-small)/1.6 var(--sans)}
.prose .toc a{color:var(--muted);text-decoration:none}
.prose .toc a:hover{color:var(--accent)}
.side{position:sticky;top:24px;display:flex;flex-direction:column;gap:var(--sp-20);padding:var(--sp-20);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel)}
.side .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:var(--sp-10);padding:0 0 var(--sp-16);border-bottom:1px solid var(--line)}
.side .stats span{display:flex;flex-direction:column;gap:var(--sp-4);font:400 var(--fs-caption)/1.3 var(--sans);color:var(--muted)}
.side .stats b{font:500 var(--fs-h2)/1.1 var(--serif);color:var(--ink);font-variant-numeric:tabular-nums}
.fg h3{margin:0 0 var(--sp-8);font:500 var(--fs-meta)/1.4 var(--sans);color:var(--muted)}
.fg .chip{background:var(--paper)}
.orgl{display:inline-flex;align-items:center;gap:var(--sp-8);font:400 var(--fs-small)/1.3 var(--sans);color:var(--ink);text-decoration:none}
.orgl:hover{color:var(--accent)}
.ecards{list-style:none;margin:0 0 var(--sp-20) !important;padding:0 !important;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-12);max-width:none !important}
.ecards li{margin:0}
.ecard a{height:100%;display:grid;grid-template-columns:64px minmax(0,1fr);gap:var(--sp-12);align-items:center;padding:var(--sp-10);border:1px solid var(--line);border-radius:var(--r-md);
  background:var(--panel);color:var(--ink);text-decoration:none;transition:border-color var(--t-fast)}
.prose .ecard a{text-decoration:none;color:var(--ink)}
.ecard a:hover{border-color:var(--line-strong)}
.ecard img{display:block;width:64px;height:64px;object-fit:cover;border-radius:var(--r-sm);border:1px solid var(--line)}
.eb{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}
.en{font:500 var(--fs-small)/1.3 var(--sans)}
.em,.es{font:400 var(--fs-meta)/1.35 var(--sans);color:var(--muted)}

/* how to use: tabs of copyable snippets */
.usage{margin:0 0 var(--sp-20)}
.utabs{display:flex;gap:var(--sp-4);margin:0 0 var(--sp-10);flex-wrap:wrap}
.utabs button{height:var(--ctl-sm);padding:0 var(--sp-12);border:1px solid var(--line);border-radius:var(--r-sm);background:transparent;color:var(--muted);font:400 var(--fs-small)/1 var(--sans);cursor:pointer}
.utabs button:hover{color:var(--ink)}
.utabs button[aria-selected="true"]{color:var(--ink);border-color:var(--line-strong);background:var(--panel)}
.usage .note{margin:0 0 var(--sp-6)}
.usage .code{margin:0 0 var(--sp-10)}

/* files */
.tabintro{margin:0 0 var(--sp-20);max-width:var(--measure);color:var(--ink2)}
.tabintro code{font-size:.875em}
.files{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--sp-28);align-items:start}
.treebox{position:sticky;top:24px;padding:var(--sp-12) var(--sp-14);border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel)}
.treebox.flat{position:static;max-width:520px}
.tree{list-style:none;margin:0;padding:0;font:400 var(--fs-meta)/1.9 var(--mono)}
.tree li{display:flex;gap:var(--sp-10);padding-left:calc(var(--d) * 14px)}
.tree li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tree li.dir span{color:var(--ink)}
.tree li.file span{color:var(--ink2)}
.tree li i{margin-left:auto;font:400 var(--fs-caption)/1.9 var(--sans);font-style:normal;color:var(--faint);white-space:nowrap}
.filebox{min-width:0;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel)}
.fname{margin:0;padding:var(--sp-10) var(--sp-16);border-bottom:1px solid var(--line);font:400 var(--fs-meta)/1.4 var(--mono);color:var(--muted)}
.fm{margin:var(--sp-16) var(--sp-16) 0;padding:var(--sp-14) var(--sp-16);border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper)}
.fm p{margin:0}
.fmt{font:500 var(--fs-lede)/1.3 var(--serif);color:var(--ink);margin-bottom:var(--sp-10) !important}
.fmd{margin-top:var(--sp-10) !important;font-size:var(--fs-small);line-height:1.6;color:var(--ink2);max-width:var(--measure)}
.fmd code{font-size:.9em}
.fm .tags{margin-top:var(--sp-10)}
.filebox .md{padding:var(--sp-6) var(--sp-16) var(--sp-8)}
.filebox .md h2{margin-top:var(--sp-24)}

/* results, versions */
table.res,table.versions{width:100%;max-width:920px}
td.rate{min-width:190px;white-space:nowrap}
.meter{display:inline-block;width:120px;height:6px;border-radius:var(--r-xs);background:var(--line);vertical-align:middle;margin-right:var(--sp-10);overflow:hidden}
.meter i{display:block;height:100%;background:var(--ink2);border-radius:var(--r-xs)}
td.rate b{font-weight:500;font-variant-numeric:tabular-nums}
td.c,th.c{text-align:center}
td.n,th.n{text-align:right;white-space:nowrap}
td.rank{color:var(--faint);width:28px;padding-right:var(--sp-12)}
table.mx{font-size:var(--fs-small)}
table.mx th[scope=row]{min-width:240px;font-weight:400}
table.mx th[scope=row] .tid{display:block;margin-top:1px}
table.mx thead th.c{vertical-align:bottom;min-width:64px;max-width:92px;padding-right:var(--sp-8);padding-left:var(--sp-8);font-size:var(--fs-caption);line-height:1.3;white-space:normal}
table.mx td.c{padding:var(--sp-6) var(--sp-8)}
.cell{display:inline-flex;align-items:center;justify-content:center;width:26px;height:var(--ctl-xs);border-radius:var(--r-sm);font:500 var(--fs-meta)/1 var(--sans);text-decoration:none}
a.cell:hover{outline:1px solid var(--line-strong)}
.cell.ok{color:var(--ink);background:color-mix(in srgb,var(--ink) 9%,transparent)}
.cell.no{color:var(--muted)}
.cell.infra{color:var(--muted);font-style:italic}
.cell.none{color:var(--faint)}
.cell.stop{color:var(--muted)}
.pill.ok,.pill.no,.pill.infra{cursor:default}
.tres .pill{height:var(--ctl-xs);padding:0 var(--sp-8);font-size:var(--fs-meta);background:transparent}
.tres .pill.ok{color:var(--ink);border-color:var(--line-strong);background:color-mix(in srgb,var(--ink) 6%,transparent)}
.tres .pill.infra{font-style:italic;color:var(--muted)}
.tres .pill.no{color:var(--muted)}
table.tres tr.sub th,table.tres tr.sub td{border-top:0}
.vh2{margin:var(--sp-28) 0 var(--sp-10);font:600 var(--fs-h3)/1.4 var(--sans)}
.vh2:first-child{margin-top:0}
.changelog{list-style:none;margin:0;padding:0;max-width:760px}
.changelog li{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:var(--sp-14);padding:var(--sp-10) 0;border-bottom:1px solid var(--line);font:400 var(--fs-small)/1.5 var(--sans)}
.cl-date{color:var(--muted)}
.changelog code{font-size:var(--fs-meta);color:var(--muted)}
.diffs{margin:0;padding-left:1.2em;font:400 var(--fs-small)/1.6 var(--sans)}

/* ---------------- leaderboard: datasets by harness + model, a quiet heatmap */
.lbwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.lb{width:100%;table-layout:fixed;font-size:var(--fs-small);border-collapse:separate;border-spacing:0}
table.lb th,table.lb td{padding:var(--sp-10) var(--sp-8);border-bottom:1px solid var(--line)}
table.lb thead th{vertical-align:bottom;border-bottom-color:var(--line-strong)}
table.lb th.lbd{width:28%}
table.lb thead button{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:var(--sp-2);width:100%;color:var(--muted);font:500 var(--fs-meta)/1.25 var(--sans)}
table.lb thead th.lbm button{align-items:center;text-align:center}
table.lb thead button:focus-visible{border-radius:var(--r-xs)}
table.lb thead button:hover b,table.lb thead button:hover{color:var(--ink)}
.lbr{font:400 var(--fs-micro)/1 var(--sans);color:var(--faint);margin-bottom:var(--sp-4)}
.lbh{font:400 var(--fs-caption)/1.25 var(--sans);color:var(--faint)}
table.lb thead b{font:500 var(--fs-meta)/1.25 var(--sans);color:var(--ink);overflow-wrap:anywhere}
table.lb thead th[aria-sort="descending"] b::after{content:" ↓"}
table.lb thead th[aria-sort="ascending"] b::after{content:" ↑"}
table.lb thead th.lbd[aria-sort="ascending"] button::after{content:"↑";font-size:var(--fs-micro)}
table.lb thead th.lbd[aria-sort="descending"] button::after{content:"↓";font-size:var(--fs-micro)}
table.lb tbody th{font-weight:400;overflow:hidden}
.lbn{display:block;color:var(--ink);font:500 var(--fs-small)/1.3 var(--sans);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
a.lbn:hover{color:var(--accent)}
.lbs{display:block;margin-top:var(--sp-2);font:400 var(--fs-caption)/1.3 var(--sans);color:var(--muted)}
td.hm{text-align:center;border-left:2px solid var(--paper);transition:filter var(--t-fast)}
td.hm b{display:block;font:500 var(--fs-small)/1.2 var(--sans);font-variant-numeric:tabular-nums;color:var(--ink)}
td.hm span{display:block;margin-top:var(--sp-2);font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums}
td.hm.none{color:var(--faint)}
tr.pin th,tr.pin td{border-bottom:1px solid var(--line-strong)}
tr.pin .lbn{font-weight:600}
.lbfoot{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--sp-12) var(--sp-40);margin-top:var(--sp-16)}
.lbfoot .note{margin:0;flex:1 1 420px}
.lgd{display:inline-flex;align-items:center;gap:var(--sp-4);font:400 var(--fs-caption)/1 var(--sans);color:var(--muted)}
.lgd i{display:block;width:22px;height:12px;border-radius:var(--r-xs)}
.lgd span{margin:0 var(--sp-6)}

/* ---------------- task page */
.thead{margin:0 0 var(--sp-28)}
.thead h1{margin:0 0 var(--sp-10)}
.tline{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-8) var(--sp-12);margin:0}
.tidc{font:400 var(--fs-small)/1 var(--mono);color:var(--ink2);padding:var(--sp-6) var(--sp-8);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel)}
.tgrid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:0 var(--sp-56);align-items:start}
.tleft > section{margin:0 0 var(--sp-40)}
.sh{margin:0 0 var(--sp-14);font:500 var(--fs-h4)/1.3 var(--serif)}
.player{margin:0 0 var(--sp-40)}
.player video,.player img{display:block;width:100%;max-width:480px;height:auto;aspect-ratio:1/1;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--media-bg)}
.player img{background:var(--panel)}
.instr > h2:first-child,.instr > h3:first-child{margin-top:0}
.instr h2{font-size:var(--fs-h4);margin:var(--sp-28) 0 var(--sp-8)}
.instr h3{margin:var(--sp-24) 0 var(--sp-8)}
details.fold{margin:var(--sp-8) 0 0;max-width:var(--measure);border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel)}
details.fold summary{padding:var(--sp-12) var(--sp-14);cursor:pointer;font:400 var(--fs-small)/1.4 var(--sans);color:var(--muted)}
details.fold summary:hover{color:var(--ink)}
details.fold > .prose{padding:0 var(--sp-14) var(--sp-6)}
details.fold h2{font-size:var(--fs-lede);margin:var(--sp-16) 0 var(--sp-8)}
.tright{position:sticky;top:24px;display:flex;flex-direction:column;gap:var(--sp-16)}
.ecard2,.inds{padding:var(--sp-20);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel)}
.ecard2 .sh,.inds .sh{font-size:var(--fs-h3);margin:0 0 var(--sp-10)}
.ecard2 .robot{margin:0 0 var(--sp-2);font:500 var(--fs-body)/1.35 var(--sans)}
.ecard2 > .small{margin:0 0 var(--sp-14)}
.ecard2 .fg{padding:var(--sp-12) 0 0;margin:var(--sp-12) 0 0;border-top:1px solid var(--line)}
.ecard2 .fg p{margin:0}
.ecard2 .chip{background:var(--paper)}
.ags{display:flex;flex-direction:column;gap:var(--sp-6)}
.ag{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:var(--sp-8);align-items:baseline;font:400 var(--fs-meta)/1.35 var(--sans)}
.agl{color:var(--ink2)}
.agn{font:400 var(--fs-caption)/1.35 var(--mono);color:var(--muted);overflow-wrap:anywhere}
.ag i{font-style:normal;color:var(--faint);font-size:var(--fs-caption);font-variant-numeric:tabular-nums}
.adoc{margin:var(--sp-8) 0 0 !important;font:400 var(--fs-meta)/1.5 var(--sans);color:var(--muted)}
.pns{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-14);margin:var(--sp-12) 0 0;padding:var(--sp-20) 0 0;border-top:1px solid var(--line)}
.pn{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-12) var(--sp-14);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);text-decoration:none;font:400 var(--fs-ui)/1.35 var(--sans);transition:border-color var(--t-fast)}
.pn > span:first-child{font-size:var(--fs-meta);color:var(--muted)}
.pn:hover{border-color:var(--line-strong);color:var(--accent)}
.pn.next{grid-column:2;text-align:right;align-items:flex-end}

/* ---------------- responsive */
@media (max-width:1000px){
  .cardgrid,.tgrid{grid-template-columns:minmax(0,1fr)}
  .side,.tright{position:static;margin-top:var(--sp-8)}
}
@media (max-width:900px){
  .files{grid-template-columns:minmax(0,1fr)}
  .treebox{position:static}
  /* filters become a bottom sheet */
  .fxopen{display:inline-flex}
  .fxp{position:fixed;left:0;right:0;bottom:0;z-index:60;margin:0;max-height:82vh;display:flex;flex-direction:column;border-radius:var(--r-xl) var(--r-xl) 0 0;border:1px solid var(--line-strong);
    border-bottom:0;background:var(--paper);box-shadow:var(--shadow-3);transform:translateY(105%);visibility:hidden;transition:transform var(--t-slow) var(--ease),visibility var(--t-fast) var(--t-slow)}
  .fxp.open{transform:none;visibility:visible;transition:transform var(--t-slow) var(--ease)}
  .fxsh{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-14) var(--sp-16) var(--sp-6);font:500 var(--fs-body)/1 var(--sans)}
  .fxsh::before{content:"";position:absolute;left:50%;top:6px;width:36px;height:4px;margin-left:calc(-1 * var(--sp-20));border-radius:var(--r-xs);background:var(--line-strong)}
  .fxrow{flex-direction:column;align-items:stretch;gap:var(--sp-10);padding:var(--sp-8) var(--sp-16) var(--sp-12)}
  .fxfind.search{flex:none;width:100%}
  .fxtray{flex:1;overflow-y:auto;padding:var(--sp-14) var(--sp-16)}
  .fxsf{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-12);padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}
  .fxsf .use{flex:1;max-width:240px}
  .fxbd{display:block;position:fixed;inset:0;z-index:59;background:var(--backdrop);animation:fade var(--t) var(--ease)}
  .fxbd[hidden]{display:none}
  .dvh{display:none}
  .dv{border-top:1px solid var(--line)}
  .dvr{grid-template-columns:64px minmax(0,1fr) auto 32px;grid-template-areas:"th t t x" "th e m x";gap:var(--sp-6) var(--sp-12);align-items:start}
  .dvr .c-th{grid-area:th}.dvr .c-t{grid-area:t}.dvr .c-x{grid-area:x}.dvr .c-e{grid-area:e;font-size:var(--fs-meta);color:var(--muted)}.dvr .c-m{grid-area:m;font-size:var(--fs-meta)}
  .dvr .c-s,.dvr .c-b,.dvr .c-o{display:none}
  .dvr .c-t .tprev{-webkit-line-clamp:2}
  .dvr .c-th .th{width:64px;height:64px}
  .dvx{grid-template-columns:minmax(0,1fr)}
  .dvxm{width:100%;max-width:320px}
  .kbdhint{display:none}
}
@media (max-width:640px){
  .hub{padding-top:var(--sp-36)}
  .hero{margin-bottom:var(--sp-48)}
  .hubindex section{margin-bottom:var(--sp-48)}
  .dcards{grid-template-columns:minmax(0,1fr)}
  .dcard a{grid-template-columns:68px minmax(0,1fr);gap:var(--sp-12);padding:var(--sp-14)}
  .dcard .still{width:68px;height:68px}
  .dcard .body{padding-right:0}
  .tn{display:none}
  .fxhead > .count{order:3;width:100%;padding:0}
  .dhead{grid-template-columns:72px minmax(0,1fr)}
  .drun{grid-column:1/-1}
  .dstill img{width:72px;height:72px}
  .ohead{grid-template-columns:56px minmax(0,1fr);gap:var(--sp-16)}
  .changelog li{grid-template-columns:minmax(0,1fr);gap:var(--sp-2)}
  .pns{grid-template-columns:minmax(0,1fr)}
  .pn.next{grid-column:1}
  table.lb{table-layout:auto;min-width:640px}
}
html.sheet-open{overflow:hidden}
@media (prefers-reduced-motion: reduce){
  .hub *,.hub *::before,.hub *::after{animation:none !important;transition:none !important}
  .sk{background:var(--panel)}
}
.fxk b[hidden],.fxopen b[hidden]{display:none}
/* facet keys: one row that scrolls sideways, fading at the edge; the tag search stays pinned on the right */
@media (min-width:901px){.fxks{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent);padding-right:var(--sp-20)}}
.clear{background:none;border:0;padding:0 var(--sp-2);font:400 var(--fs-small)/1 var(--sans);color:var(--muted);cursor:pointer;text-decoration:underline;text-decoration-color:var(--link-line);text-underline-offset:3px}
.clear:hover{color:var(--accent)}

/* typographic hub: no icons. Controls that had one carry a word; sort direction is an arrow character. */
.dvh .sg::after{content:""}
.dvh [aria-sort="ascending"] .sg::after{content:"↑"}
.dvh [aria-sort="descending"] .sg::after{content:"↓"}
.dvh .sg{opacity:1;transform:none !important;font-size:var(--fs-micro);color:var(--ink)}
.xb{width:auto;height:var(--ctl-xs);padding:0 var(--sp-8);border-color:var(--line);font:400 var(--fs-caption)/1 var(--sans);color:var(--muted)}
.xb:hover{color:var(--ink);border-color:var(--line-strong)}
.dvr[aria-expanded="true"] .xb > span{font-size:0}
.dvr[aria-expanded="true"] .xb > span::after{content:"Less";font-size:var(--fs-caption)}
.xbtn{width:auto;padding:0 var(--sp-12);font:400 var(--fs-small)/1 var(--sans);color:var(--ink)}
.fxk{padding:0 var(--sp-10)}
.tok{padding:0 var(--sp-8) 0 var(--sp-10)}
.tok .x{font-size:var(--fs-ui);line-height:1;color:var(--muted)}
.tok:hover .x{color:var(--ink)}
.c-e{display:block}
.dcard .name,.dmain h1{gap:0}
.dvr .c-x{justify-self:end}
@media (max-width:900px){.dvr{grid-template-columns:64px minmax(0,1fr) auto auto}}

/* high-resolution media: 16:9 clips and posters */

.player.wide video{max-width:760px;aspect-ratio:16/9;background:var(--media-bg)}

/* file trees (/filetree.css): the placeholder reserves the component's height until it mounts */
.ftph:not(.ft){min-height:min(76vh,820px)}
.ftph > select,.ftph > .lb{display:none}
.tfiles{margin:0 0 var(--sp-40)}

/* ---------------- dataset header actions: version (text when there is one) above the primary button, one right edge */

/* ---------------- results at scale: model cells, result marks, tools above tables */
/* a model cell reads "mark Model · Harness" on one line; the harness in the muted grey */
.mdl{display:block;min-width:0;font:500 var(--fs-small)/1.3 var(--sans);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mdl-s,.mdl-h{font-weight:400;color:var(--muted)}
.rs{display:inline-flex;align-items:center;gap:var(--sp-6);font:400 var(--fs-meta)/1.3 var(--sans);color:var(--muted);white-space:nowrap}
.rs::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;box-sizing:border-box;box-shadow:inset 0 0 0 1.2px var(--faint)}
.rs.ok{color:var(--ink)}.rs.ok::before{background:var(--ink2);box-shadow:none}
.rs.some{color:var(--ink2)}.rs.some::before{background:linear-gradient(90deg,var(--ink2) 50%,transparent 50%);box-shadow:inset 0 0 0 1.2px var(--ink2)}
.rs.infra{font-style:italic}.rs.infra::before{border:1px dashed var(--ghost);box-shadow:none}
.rtools{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-8) var(--sp-20);margin:0 0 var(--sp-12)}
.rfind.search{width:220px;flex:none}
.rmore{margin:var(--sp-12) 0 0}
.rnone{margin:0}
table.tres th[scope=row]{min-width:220px}
table.tres thead button,table.mx thead button{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:var(--sp-4);border-radius:var(--r-xs);color:var(--muted);transition:color var(--t-fast)}
table.tres thead button:hover{color:var(--ink)}
table.tres thead button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
table.tres thead th[aria-sort="ascending"] button,table.tres thead th[aria-sort="descending"] button{color:var(--ink)}
table.tres thead th[aria-sort="ascending"] button::after{content:"↑";font-size:var(--fs-micro)}
table.tres thead th[aria-sort="descending"] button::after{content:"↓";font-size:var(--fs-micro)}
table.tres tbody tr{transition:background var(--t-fast)}
table.tres tbody tr:hover{background:var(--hover)}
.c-m [data-res]{flex-wrap:wrap;row-gap:var(--sp-4)}
/* expanded task row: a compact ranked table, scrollable past eight rows */
.xmt{max-height:296px;overflow:auto;overscroll-behavior:contain;border:var(--hairline);border-radius:var(--r-md);background:var(--panel)}
table.mini{width:100%;font-size:var(--fs-meta)}
table.mini th,table.mini td{padding:var(--sp-6) var(--sp-12) var(--sp-6) 0;vertical-align:middle}
table.mini th:first-child,table.mini td:first-child{padding-left:var(--sp-12)}
table.mini thead th{position:sticky;top:0;z-index:1;background:var(--panel);font-size:var(--fs-caption)}
table.mini tbody tr:last-child th,table.mini tbody tr:last-child td{border-bottom:0}
.xgo{display:flex;flex-wrap:wrap;gap:var(--sp-4) var(--sp-20)}
/* dataset Results matrix: sticky task column and header, model heads as two lines */
.matrix{max-height:min(78vh,900px);overflow:auto;border-top:var(--hairline)}
table.mx thead th{position:sticky;top:0;z-index:2;background:var(--paper)}
table.mx th[scope=row]{position:sticky;left:0;z-index:1;background:var(--paper)}
table.mx thead th:first-child{left:0;z-index:3}
table.mx thead th.c .mdl{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);text-align:center;white-space:normal;font-size:var(--fs-caption)}
table.mx thead th.c .mdl-s{display:none}

/* ---------------- leaderboard: metric, ranked bars with interval whiskers, heatmap by dataset */
.lbctl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-12) var(--sp-24);margin:0 0 var(--sp-24);padding:0 0 var(--sp-16);border-bottom:var(--hairline)}
.lbsplits{display:flex;flex-wrap:wrap;gap:var(--sp-8) var(--sp-24);width:100%}
.lbsk{display:flex;flex-direction:column;gap:var(--sp-14);min-height:420px}
.lbsk .skel{height:var(--sp-24)}
.lbsec{margin:0 0 var(--sp-48)}
.lbh2{margin:0 0 var(--sp-16);font:500 var(--fs-h4)/1.3 var(--serif)}
.lbh2 span{margin-left:var(--sp-10);font:400 var(--fs-meta)/1 var(--sans);color:var(--muted)}
.lbbars{list-style:none;margin:0;padding:0}
.lbbars li{display:grid;grid-template-columns:2ch minmax(140px,220px) minmax(0,1fr) 5ch 7ch;align-items:center;gap:var(--sp-16);min-height:var(--sp-40);border-bottom:var(--hairline)}
.lbrk{font:400 var(--fs-caption)/1 var(--mono);color:var(--faint);text-align:right;font-variant-numeric:tabular-nums}
.lbbar{position:relative;height:var(--sp-10);border-radius:var(--r-xs);background:var(--sunk)}
.lbbar > i{position:absolute;left:0;top:0;bottom:0;border-radius:var(--r-xs);background:var(--ink2)}
.lbbar .ci{position:absolute;top:50%;height:1px;background:var(--ink);opacity:.55}
.lbbar .ci::before,.lbbar .ci::after{content:"";position:absolute;top:-4px;width:1px;height:9px;background:var(--ink)}
.lbbar .ci::before{left:0}.lbbar .ci::after{right:0}
.lbv{font:500 var(--fs-small)/1 var(--sans);color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}
.lbn{font:400 var(--fs-caption)/1 var(--mono);color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.lbaxis{position:relative;height:var(--sp-20);margin:var(--sp-4) calc(12ch + 2 * var(--sp-16)) 0 calc(2ch + 220px + 2 * var(--sp-16))}
.lbaxis span{position:absolute;top:0;transform:translateX(-50%);font:400 var(--fs-micro)/1 var(--mono);color:var(--faint)}
.lbbar2{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-8) var(--sp-24);margin:0 0 var(--sp-12)}
.lbbar2 .lbh2{margin:0 auto 0 0}
.seg-l{font:400 var(--fs-caption)/1 var(--sans);color:var(--faint)}
.lbwrap3{max-height:min(80vh,960px);overflow:auto;border:var(--hairline);border-radius:var(--r-lg);background:var(--panel)}
table.lbt{min-width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-meta)}
table.lbt th,table.lbt td{padding:var(--sp-8) var(--sp-10);border-bottom:var(--hairline);white-space:nowrap}
table.lbt thead th{position:sticky;top:0;z-index:2;background:var(--panel);vertical-align:bottom;border-bottom:var(--border)}
table.lbt thead button{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:var(--sp-2);border-radius:var(--r-xs);color:var(--muted)}
table.lbt thead button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
table.lbt thead button b{font:500 var(--fs-meta)/1.25 var(--sans);color:var(--ink2)}
table.lbt thead button span{font:400 var(--fs-micro)/1.2 var(--sans);color:var(--faint)}
table.lbt thead button:hover b{color:var(--ink)}
table.lbt thead th[aria-sort="descending"] b::after{content:" ↓"}
table.lbt thead th[aria-sort="ascending"] b::after{content:" ↑"}
table.lbt .lbp{position:sticky;left:0;z-index:1;min-width:200px;background:var(--panel);border-right:var(--hairline)}
table.lbt thead .lbp{z-index:3}
table.lbt td.hm{min-width:76px;text-align:center;border-left:2px solid var(--panel)}
table.lbt td.hm b{display:block;font:500 var(--fs-small)/1.2 var(--sans);color:var(--ink);font-variant-numeric:tabular-nums}
table.lbt td.hm span{display:block;margin-top:var(--sp-2);font:400 var(--fs-micro)/1 var(--mono);color:var(--muted);font-variant-numeric:tabular-nums}
table.lbt td.hm.none{color:var(--faint);background:none}
table.lbt .lball{border-right:var(--hairline)}
table.lbt tr.lbg th{position:sticky;left:0;padding-top:var(--sp-16);font:500 var(--fs-caption)/1.3 var(--sans);color:var(--muted);background:var(--panel);text-align:left}
table.lbt tr.lbg th span{color:var(--faint);margin-left:var(--sp-4)}
table.lbt tbody tr:hover th.lbp{color:var(--ink)}
.lbsc{display:block;width:100%;max-width:720px;height:auto;font:400 var(--fs-micro) var(--sans)}
.lbsc line{stroke:var(--line)}
.lbsc text{fill:var(--faint)}
.lbsc text.lab{fill:var(--ink2);font-size:var(--fs-caption)}
.lbsc circle{fill:var(--ink2)}
@media (max-width:640px){
  .lbbars li{grid-template-columns:2ch minmax(0,1fr) 5ch;grid-template-areas:"r m v" "r b b";row-gap:var(--sp-6);padding:var(--sp-8) 0}
  .lbbars .lbrk{grid-area:r}.lbbars .mdl{grid-area:m}.lbbars .lbbar{grid-area:b}.lbbars .lbv{grid-area:v}.lbbars .lbn{display:none}
  .lbaxis{display:none}
  .rfind.search{width:100%;flex:1 1 100%}
}
.seeds{display:inline-flex;gap:var(--sp-4)}
.sd{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 var(--sp-4);border-radius:var(--r-xs);font:400 var(--fs-micro)/1 var(--mono);color:var(--muted);text-decoration:none;box-shadow:inset 0 0 0 1px var(--line)}
.sd.ok{color:var(--ink);background:var(--press)}
.sd.infra{font-style:italic}
a.sd:hover{box-shadow:inset 0 0 0 1px var(--ink2);color:var(--ink)}
sup.md{margin-left:2px;font:400 var(--fs-micro)/1 var(--sans);color:var(--faint)}
tr.att th,tr.att td{border-top:0;padding-top:var(--sp-2)}
.pk{margin-left:var(--sp-8);font:400 var(--fs-caption)/1 var(--sans);color:var(--muted);white-space:nowrap}
table.tres td{white-space:nowrap}
@media (max-width:640px){table.tres th[scope=row]{position:sticky;left:0;z-index:1;min-width:160px;background:var(--paper);box-shadow:1px 0 0 var(--line)}}
.cell.seedc{width:auto;min-width:var(--ctl-xs);padding:0 var(--sp-4);font:400 var(--fs-caption)/1 var(--mono);font-variant-numeric:tabular-nums}
.cell.some{color:var(--ink2);background:color-mix(in srgb,var(--ink) 5%,transparent)}
table.mx thead th.c{min-width:76px}
@media (max-width:640px){table.lbt .lbp{min-width:136px}table.lbt td.hm{min-width:64px}.lbctl{align-items:flex-start}}

/* ---------------- review fixes */
.still.none,.dstill.none{display:grid;place-items:center;background:var(--sunk);border:var(--hairline);border-radius:var(--r-md);font:500 var(--fs-h4)/1 var(--serif);color:var(--muted)}
.still.none{width:104px;height:104px}
.dstill.none{width:120px;height:120px}
.tidp{font:400 var(--fs-meta)/1 var(--mono);color:var(--muted);background:none;border:0;padding:0;margin-right:var(--sp-4)}
.player.wide video,.player video{width:100%;max-width:none}
.player:not(.wide) video,.player img{max-width:480px}
table.lbt td.hm{border:2px solid var(--panel)}
table.mx thead th{vertical-align:bottom}
.segw{display:inline-flex;align-items:center;gap:var(--sp-8)}
.seg-l{padding:0}
@media (max-width:640px){
  table.mx th[scope=row]{max-width:52vw;min-width:0}
  table.mx th[scope=row] .tid{display:none}
  table.mx th[scope=row] a{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:var(--fs-meta);line-height:1.35}
  table.mx th[scope=row]{max-width:44vw;padding-right:var(--sp-8)}
  a.cell{position:relative}
  a.cell::before{content:"";position:absolute;inset:-10px}
}
/* leaderboard: filters from the data (mode, placements, gap), tied ranks, cost scatter */
.lbfil{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-8) var(--sp-20);margin:calc(-1 * var(--sp-12)) 0 var(--sp-24)}
.lbfil[hidden]{display:none}
.lbfil > .tbtn{margin:0}
.lbfil > .tbtn[aria-pressed="true"]{color:var(--ink);background:var(--press)}
.lbrk.tie{color:var(--faint)}
.lbrk.tie::before{content:"=";margin-right:1px}
.lbbar > i{left:0}
.lbsc path.front{fill:none;stroke:var(--faint);stroke-width:1;stroke-dasharray:3 3}
.lbsc line.wy,.lbsc line.wx{stroke:var(--ink2);stroke-width:1;opacity:.5}
.lbsc .pt:hover circle{fill:var(--ink)}
.lbsc .pt:hover text.lab{fill:var(--ink)}
/* a long chip wraps inside the column instead of pushing the page wider */
.chip{max-width:100%;white-space:normal;height:auto;min-height:var(--ctl-xs);padding-top:var(--sp-2);padding-bottom:var(--sp-2);line-height:1.3;overflow-wrap:anywhere}
/* partial coverage: a quiet tag, its own group below the ranked rows */
.tagp{display:inline-block;padding:0 var(--sp-4);border:var(--hairline);border-radius:var(--r-xs);font:400 var(--fs-micro)/1.5 var(--sans);color:var(--muted);vertical-align:1px}
tr.lbpart th{padding-top:var(--sp-16);font:500 var(--fs-caption)/1.3 var(--sans);color:var(--muted);text-align:left;border-bottom-color:var(--line)}
tr.lbpart th span,.lbbars li.lbpart{font:400 var(--fs-caption)/1.3 var(--sans);color:var(--faint)}
tr.lbpart th span{margin-left:var(--sp-8)}
.lbbars li.lbpart{display:block;min-height:0;padding:var(--sp-16) 0 var(--sp-6)}
.lbbars li.lbpart b{margin-right:var(--sp-8);font-weight:500;color:var(--muted)}
.lbbars li.partial .lbbar > i{background:var(--faint)}
tr.partial .rate b,tr.partial th a{color:var(--ink2)}

/* ---------------- alignment pass (2026-09-29) */
/* tracks: six tiles, three to a row, so no row is left half empty */

/* collections: nine cards, three to a row (a scrolling row only on phones) */

/* dataset card: the section links are one line that scrolls, fading at the edge */
.toc{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;white-space:nowrap;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);padding-right:var(--sp-24)}
.toc::-webkit-scrollbar{display:none}
/* sidebar stats: one row each, number then label, so labels never wrap in a narrow column */
.side .stats{display:flex;flex-direction:column;gap:var(--sp-6)}
.side .stats span{flex-direction:row;align-items:baseline;gap:var(--sp-8);font-size:var(--fs-small);line-height:1.3}
.side .stats b{min-width:3.2ch;font:500 var(--fs-h3)/1.2 var(--sans)}
/* dataset header: version and the primary button share one width and height */

/* long ids in chips break anywhere and keep their box on every line */
.tidc,.chip.mono,.tline code{overflow-wrap:anywhere;word-break:break-word;-webkit-box-decoration-break:clone;box-decoration-break:clone}
/* sort headers: a 44px hit area on touch screens */
@media (pointer:coarse){table.tres thead button,table.mx thead button,table.lbt thead button{min-height:var(--touch)}}
/* task tables sort from their column heads; the Sort list is for phones, where the heads are hidden */
@media (min-width:901px){.fx.fxtasks .fxctl .sort{display:none}}
/* dataset title: breaks only after the slash (each half stays whole) on wider screens */
@media (min-width:641px){.dmain h1 .nb{white-space:nowrap}}
/* below 960px the actions move under the description so the title and lede keep the width */
@media (max-width:960px) and (min-width:641px){
  .dhead{grid-template-columns:96px minmax(0,1fr)}
  .dstill img,.dstill.none{width:96px;height:96px}
}

/* ---------------- states: hover, press and focus on every hub control */
.fxk{transition:background var(--t-fast),color var(--t-fast),box-shadow var(--t-fast)}
.fxk:hover{background:var(--hover)}
.fxk:active{background:var(--press)}
.fxk[aria-selected="true"]:hover{background:var(--paper)}
.fxopen:active,.xb:active,.tok:active{background:var(--press)}
.fxopen[aria-expanded="true"]{border-color:var(--focus-line);box-shadow:var(--ring)}
.tok{transition:border-color var(--t-fast),background var(--t-fast)}
.tok:hover{border-color:var(--ink2);background:var(--hover)}
.clear:focus-visible{border-radius:var(--r-xs)}
/* sort heads: all:unset drops the site focus ring, so give it back */
.dvh button:focus-visible,table.lb thead button:focus-visible,table.mx thead button:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-xs)}
/* range thumbs: the ring sits on the thumb */
.rngt input:focus-visible::-webkit-slider-thumb{border-color:var(--focus-line);box-shadow:var(--ring)}
.rngt input:focus-visible::-moz-range-thumb{border-color:var(--focus-line);box-shadow:var(--ring)}
.rngt input::-webkit-slider-thumb{transition:transform var(--t-fast)}
.rngt input:active::-webkit-slider-thumb{cursor:grabbing;transform:scale(1.1)}
/* cards: the focus ring follows the card's corners; a press settles the hover lift */
.dcard a:focus-visible{outline-offset:3px;border-radius:var(--r-lg)}
.ecard a:focus-visible,.pn:focus-visible,.clist a:focus-visible,.cgrid a:focus-visible{outline-offset:3px;border-radius:var(--r-md)}
.dcard a:active{box-shadow:none}
/* heatmap cells: the count under the value stays legible on the darkest step */
table.lbt td.hm span{color:var(--ink2)}
/* facet counts: roman figures (the element is an <i>) */
.pill i.n{font-style:normal}
/* inline code in task instructions: each line's fragment keeps its own box */
.hub .instr code,.hub .readme code{-webkit-box-decoration-break:clone;box-decoration-break:clone}
/* narrow phones: the version picker shrinks (its value ellipsed) and wraps under the button rather than widening the page */

@media (max-width:400px){.dhead{grid-template-columns:52px minmax(0,1fr);column-gap:var(--sp-14)}.dstill img,.dstill.none{width:52px;height:52px}}

/* ---------------- results: one ranking per kind (agent harnesses, VLA policies), the matrix key, the leaderboard footnote */
h3.lbk{margin:var(--sp-28) 0 var(--sp-8);font:500 var(--fs-small)/1.4 var(--sans);color:var(--ink)}
.rtools + h3.lbk{margin-top:var(--sp-8)}
.mxkey{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-6) var(--sp-8);margin:0 0 var(--sp-12);font:400 var(--fs-meta)/1.4 var(--sans);color:var(--muted)}
.mxkey .cell{margin-left:var(--sp-8)}
.mxkey .cell:first-child{margin-left:0}
.lbnote{margin-top:var(--sp-24);max-width:none}
.inds a[aria-current]{color:var(--ink);font-weight:500;text-decoration:none}
.fx-none .dvh,.fx-none .kbdhint{display:none}
/* one filter kind: its pills inline beside the count, no panel and no Filters button (phones too) */
.fx.fxone .fxopen,.fx.fxone .fxp,.fx.fxone .fxbd{display:none}
.fxinl{display:flex;flex-wrap:wrap;gap:var(--sp-6);align-items:center}
/* one filter kind: its pills inline beside the count, no panel and no Filters button (phones too) */
.fx.fxone .fxopen,.fx.fxone .fxp,.fx.fxone .fxbd{display:none}
.fxinl{display:flex;flex-wrap:wrap;gap:var(--sp-6);align-items:center}
/* heatmap counts: full ink on every step of the scale (4.5:1 at 11 px, light and dark) */
table.lbt td.hm span{color:var(--ink)}
/* leaderboard names never cut: the harness is what tells rows apart, so a long name wraps to a second line */
.lbbars .mdl,table.lbt .lbp .mdl{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:break-word}
.lbbars .mdl-h,table.lbt .lbp .mdl-h{white-space:nowrap}
