:root { --ink: #121212; --copy: #484848; --muted: #696969; --faint: #a1a1a1; --hairline: #e5e5e5; --frame: #d3d3d3; --wash: #f3f3f3; --mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif; --sans: "Inter", "Helvetica Neue", Arial, ui-sans-serif, system-ui, sans-serif; } * { box-sizing: border-box; } html, body, #root, .gradio-container { min-height: 100%; margin: 0 !important; color: var(--ink) !important; background: #fff !important; font-family: var(--sans) !important; -webkit-font-smoothing: antialiased; } .gradio-container { max-width: none !important; padding: 0 !important; /* Gradio ships overflow:hidden here, which defeats every position:sticky descendant (site header, sidebar); the page scrolls on the document. */ overflow: visible !important; } .gradio-container > .main, .gradio-container .contain { max-width: none !important; padding: 0 !important; } .gradio-container .contain > .column { gap: 0 !important; } .gradio-container .prose { color: inherit !important; } .gradio-container button { font-family: inherit !important; } footer { display: none !important; } /* Suppress Gradio's processing flash (spinner + "x.x/y.ys" text) on re-renders. */ .gradio-container .wrap.default.full, .gradio-container .progress-text, .gradio-container .eta-bar, .gradio-container .meta-text, .gradio-container .meta-text-center { display: none !important; } #hidden-controls { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; } .site-header-wrap { position: sticky !important; top: 0; z-index: 50; margin: 0 !important; padding: 0 !important; border: 0 !important; background: #fff !important; } .site-header-wrap .html-container { padding: 0 !important; } .site-header { height: 53px; padding: 0 24px; /* wordmark shares the 24px gridline with sidebar labels */ display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--hairline); background: #fff; } .wordmark { color: var(--ink) !important; font-family: var(--serif); font-size: 18px; line-height: 24px; font-weight: 500; letter-spacing: -.01em; text-decoration: none !important; white-space: nowrap; } .top-nav { display: flex; align-items: center; gap: 4px; } .top-nav a, .top-nav span { padding: 4px 6px; color: var(--copy) !important; font-size: 12px; line-height: 18px; letter-spacing: .3px; text-decoration: none !important; white-space: nowrap; } .top-nav .active { color: var(--ink) !important; background: var(--wash); } .top-nav .search { padding-right: 0; } .ot-main { min-height: calc(100vh - 53px); margin: 0 !important; gap: 0 !important; align-items: stretch !important; flex-wrap: nowrap !important; } .ot-sidebar { position: sticky; top: 53px; width: 285px !important; min-width: 285px !important; max-width: 285px !important; height: calc(100vh - 53px); padding: 0 8px !important; flex: 0 0 285px !important; overflow-y: auto; background: #fff !important; } .sidebar-inner { margin: 0 !important; padding: 0 !important; } /* Gradio's html-container injects 12px that knocks nav text off the 24px gridline. */ .ot-sidebar .html-container { padding: 0 !important; } .side-section { margin: 0 8px 0 5px; padding: 12px 0; } .side-heading { height: 26px; padding: 4px 8px 4px 11px; /* text lands on the 24px gridline (8+5+11) */ display: flex; align-items: center; justify-content: space-between; color: var(--copy); font-size: 12px; line-height: 18px; font-weight: 600; letter-spacing: .2px; } .side-list { margin-top: 4px; } .side-link { width: 100%; min-height: 37px; margin: 0 !important; padding: 8px 8px 8px 9px !important; /* 8+5+2+9 = 24px gridline */ display: flex; align-items: flex-start; border: 0 !important; border-left: 2px solid var(--hairline) !important; border-radius: 0 !important; color: var(--copy) !important; background: #fff !important; font-size: 14px !important; line-height: 21px !important; font-weight: 400 !important; text-align: left; cursor: pointer; } .side-link:hover { color: var(--ink) !important; } .side-link.active { border-left-color: var(--ink) !important; color: var(--ink) !important; background: var(--wash) !important; } .ot-content { min-width: 0 !important; padding: 40px !important; gap: 0 !important; flex: 1 1 auto !important; overflow-x: hidden; background: #fff !important; } /* Overall header + table fill the full content width (fluid with the window). */ .ot-hero-wrap, .ot-display { width: 100% !important; max-width: none !important; margin: 0 !important; } /* Benchmark detail (prose + chart) fills the width too, like Scale; capped so the chart column keeps a real right gutter at 1512+. */ .bm-detail-row { width: 100% !important; max-width: 1400px !important; margin: 0 !important; } .ot-hero-wrap { padding: 0 !important; border: 0 !important; } .ot-hero-wrap:has(.prose:empty) { display: none !important; } .ov-header { padding: 4px 0 0; } .gradio-container .ov-title { margin: 0 0 10px !important; color: var(--ink) !important; font-family: var(--serif) !important; font-size: 34px !important; line-height: 36px !important; font-weight: 500 !important; letter-spacing: -.8px !important; } .gradio-container .ov-desc { margin: 0 0 16px !important; max-width: 760px; color: var(--copy) !important; font-size: 14px !important; line-height: 22px !important; } .ov-toolbar { margin-top: 22px; display: flex; align-items: center; justify-content: space-between; gap: 12px; } .ov-search { flex: 1; max-width: 300px; height: 40px; display: flex; align-items: center; gap: 8px; padding: 0 11px; border: 1px solid var(--hairline); border-radius: 8px; color: var(--muted); } .ov-search svg { flex: 0 0 auto; } .ov-search input { width: 100%; border: 0; outline: none; background: transparent; color: var(--ink) !important; font-family: inherit !important; font-size: 13px; } .ov-rankby { display: inline-flex; align-items: center; gap: 8px; color: var(--copy); font-size: 12.5px; white-space: nowrap; } .ov-rankby select { height: 40px; padding: 0 9px; border: 1px solid var(--hairline); border-radius: 8px; color: var(--ink); background: #fff; font-family: inherit; font-size: 12.5px; cursor: pointer; } .ot-display { margin-top: 16px !important; padding: 0 !important; border: 0 !important; } .table-wrapper { width: 100%; max-width: 100%; /* Page owns vertical scroll (Scale-style one long page); only x scrolls here. The old inner max-height double-scroll clipped rows and ate column width. */ overflow-x: auto; border: 1px solid var(--frame); border-radius: 8px; } /* Scroll affordances, classes toggled by _updateScrollHints() in app.py JS: fade at the cut edge says "more columns", so nothing reads as clipped glyphs. */ .table-wrapper.more-x { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 24px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 24px), transparent); } .leaderboard-table { width: 100%; min-width: 900px; border-collapse: collapse; table-layout: fixed; color: var(--ink); font-size: 14px; line-height: 20px; font-variant-numeric: tabular-nums; white-space: nowrap; } /* Scale-style header: white with a hairline rule, no gray band. */ .leaderboard-table thead tr { background: #fff; } /* _pinThead() translates the whole thead to keep headers in view; the row needs its own stacking level above the sticky identity td cells (z 2). */ .leaderboard-table thead { position: relative; z-index: 5; } .leaderboard-table th, .leaderboard-table td { height: 56px; padding: 10px 10px; overflow: hidden; border-bottom: 1px solid var(--hairline); color: var(--ink); background: transparent; /* Grotesk sans for headers and numbers; mono is model identity ONLY. */ font-family: var(--sans) !important; text-align: right; text-overflow: clip; } /* Single vertical rule at the identity | scores boundary; a second rule after AVG boxed it into an island, so it whispers with one. */ .leaderboard-table .col-model { border-right: 1px solid var(--hairline); } /* One header voice across the full row (identity + benchmark columns alike); sticky within the wrapper so column context survives long scrolls. */ .leaderboard-table th { position: sticky; top: 0; z-index: 3; color: #6b7280; background: #fff; font-size: 11px; line-height: 16px; font-weight: 500; letter-spacing: .02em; cursor: pointer; user-select: none; box-shadow: 0 1px 0 var(--hairline); } .leaderboard-table tbody tr:last-child td { border-bottom: 0; } .leaderboard-table tbody tr:hover td { background: #fafafa; } /* Identity columns stay frozen while the score columns scroll under them. */ .leaderboard-table .col-rank, .leaderboard-table .col-spread, .leaderboard-table .col-model { position: sticky; z-index: 2; background: #fff; } .leaderboard-table .col-rank { left: 0; width: 44px; text-align: left; } .leaderboard-table .col-spread { left: 44px; width: 67px; text-align: center; } .leaderboard-table .col-model { left: 111px; width: 240px; text-align: left; } .leaderboard-table th.col-rank, .leaderboard-table th.col-spread, .leaderboard-table th.col-model { z-index: 4; background: #fff; } /* Sorted column header carries the ink, not just the arrow. */ .leaderboard-table th.col-active { color: #111827; font-weight: 600; } /* Sticky Model seam: elevation cue appears only once content actually slides underneath (scrollLeft > 0), so the resting table stays flat and editorial. */ .table-wrapper.scrolled-x .leaderboard-table td.col-model { border-right-color: var(--frame); box-shadow: 10px 0 12px -6px rgba(0, 0, 0, .22); } .table-wrapper.scrolled-x .leaderboard-table th.col-model { border-right-color: var(--frame); box-shadow: 10px 0 12px -6px rgba(0, 0, 0, .22), 0 1px 0 var(--hairline); } .leaderboard-table thead th.col-spread { cursor: default; } @media (max-width: 900px) { .leaderboard-table .col-spread { display: none; } .leaderboard-table .col-model { left: 44px; } .model-name { font-size: 12.5px; } } .rspread { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; } /* 44+67+240+140 + 7x88 = 1107px: fits the measured 1115px wrapper at 1512 (Gradio chrome eats ~32px beyond the raw padding math); 88px keeps the srsRANBench header clear (probe had it overflowing at 84); 240px Model shows the longest model IDs without ellipsis. */ .leaderboard-table .col-avg { width: 140px; text-align: left; } .leaderboard-table .col-score { width: 88px; } /* Header digits share one right edge with the values below (same 10px inset). */ .leaderboard-table th.col-score { padding-left: 2px; padding-right: 10px; } .leaderboard-table th.col-spread { padding-left: 4px; padding-right: 4px; } .rank-num { color: var(--ink); font-size: 14px; font-weight: 500; } .rank-num.rank-1, .rank-num.rank-2, .rank-num.rank-3 { color: var(--ink); } .model-cell { min-width: 0; display: flex; align-items: center; gap: 8px; } .model-logo { width: 24px; height: 24px; flex: 0 0 24px; overflow: hidden; border: 1px solid var(--hairline); border-radius: 50%; object-fit: cover; } .model-meta { min-width: 0; display: flex; flex-direction: column; line-height: 1.25; } .model-name { min-width: 0; overflow: hidden; padding-right: 12px; color: var(--ink); font-family: var(--mono) !important; font-size: 13px; line-height: 20px; font-weight: 500; text-overflow: ellipsis; } .model-sub { margin-top: 1px; overflow: hidden; color: var(--muted); font-size: 12px; line-height: 16px; text-overflow: ellipsis; } .avg-wrap { display: flex; align-items: center; justify-content: flex-start; gap: 10px; } /* Quiet 6px bar; the 13px/500 number is the dominant ink (Scale's restraint). Detail-page chart bars stay 14px, locked. */ .avg-track { position: relative; flex: 1 1 auto; min-width: 48px; height: 6px; overflow: visible; border-radius: 2px; background: #f1f2f4; } .avg-fill { height: 100%; border-radius: 2px; opacity: .8; } .avg-num { flex: 0 0 auto; display: inline-flex; align-items: baseline; } .avg-score, .score-main { color: var(--ink); font-size: 13px; line-height: 20px; font-weight: 500; font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1; } /* Column leader's score in arena's signal green. */ .score-main.score-lead, .avg-score.score-lead { color: #38a341; } .score-stderr { margin-left: 6px; color: #9ca3af; font-size: 11px; line-height: 16px; font-variant-numeric: tabular-nums; } .sort-arrow { margin-left: 3px; color: var(--ink); } .bm-detail-row { gap: 64px !important; align-items: flex-start !important; flex-wrap: nowrap !important; } .bm-detail-row:has(.bm-prose-inner div:empty) { display: none !important; } .bm-prose-inner:empty, .bm-chart-inner:empty { display: none; } .bm-prose-wrap { min-width: 0 !important; max-height: none !important; padding: 0 !important; flex: 1 1 auto !important; overflow: visible !important; border: 0 !important; } .bm-chart-wrap { width: 430px !important; min-width: 430px !important; max-width: 430px !important; max-height: none !important; padding: 0 !important; flex: 0 0 430px !important; overflow: visible !important; border: 0 !important; } .bm-prose-inner, .bm-chart-inner { margin: 0 !important; padding: 0 !important; border: 0 !important; } .gradio-container .bm-title { margin: 0 0 12px !important; color: var(--ink) !important; font-family: var(--serif) !important; font-size: 34px !important; line-height: 36px !important; font-weight: 500 !important; letter-spacing: -.8px !important; } .gradio-container .bm-metrics { margin: 0 0 16px !important; display: flex; flex-wrap: wrap; gap: 8px; } .gradio-container .bm-pill { padding: 5px 10px; border: 1px solid var(--hairline); border-radius: 0; color: var(--copy); background: #fff; font-size: 12px !important; line-height: 16px; font-weight: 500; letter-spacing: .35px; text-transform: uppercase; } .gradio-container .bm-description, .gradio-container .bm-section-content { margin: 0 0 20px !important; max-width: 640px; color: #374151 !important; font-size: 14px !important; line-height: 22px !important; } .gradio-container .bm-section-heading { margin: 24px 0 10px !important; padding-top: 12px; color: var(--ink) !important; font-size: 13px !important; line-height: 20px !important; font-weight: 600 !important; letter-spacing: .8px; text-transform: uppercase; } .gradio-container .bm-separator { margin: 28px 0 !important; border: 0; border-top: 1px solid var(--hairline); } .gradio-container .bm-artifacts { margin-bottom: 32px !important; display: flex; flex-wrap: wrap; gap: 8px; } .gradio-container .bm-artifact-link { padding: 6px 12px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--hairline); border-radius: 0; color: var(--ink) !important; background: #fff; font-size: 12px !important; line-height: 18px; font-weight: 500; letter-spacing: .35px; text-decoration: none !important; } .bm-artifact-link:hover { background: var(--wash); } .bm-artifact-icon { width: 14px; height: 14px; } .bar-chart { padding: 0; } .bar-title { margin: 0 0 20px; color: var(--ink); font-size: 13px; line-height: 20px; font-weight: 600; letter-spacing: .8px; text-transform: uppercase; } .bar-list { display: flex; flex-direction: column; gap: 18px; } .bar-entry { min-height: 42px; display: flex; align-items: center; gap: 10px; } .bar-rank-badge { width: 28px; height: 28px; flex: 0 0 28px; display: grid; place-items: center; border-radius: 50%; color: var(--muted); background: transparent; font-size: 12px; font-weight: 500; font-variant-numeric: tabular-nums; } .bar-rank-badge.tied-top { color: #fff; background: var(--ink); } .bar-entry-content { min-width: 0; flex: 1; } .bar-header { min-height: 22px; padding-bottom: 4px; display: flex; align-items: center; gap: 7px; color: var(--copy); font-size: 14px; line-height: 20px; } .bar-model-info { min-width: 0; display: flex; align-items: center; gap: 7px; flex: 1; } .bar-model-info .model-logo { width: 20px; height: 20px; flex-basis: 20px; } .bar-model-name { min-width: 0; overflow: hidden; color: var(--ink); font-family: var(--mono); font-size: 13px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; } .bar-score-label { margin-left: auto; color: var(--ink); white-space: nowrap; font-variant-numeric: tabular-nums; } .bar-score-label .score-main { font-size: 14px; } .bar-track-wrapper, .bar-track { position: relative; height: 14px; } .bar-track { overflow: visible; border-radius: 3px; background: var(--wash); } .bar-fill { height: 100%; border-radius: 3px; opacity: .88; } /* CI whisker: thin Scale-style I-beam, centered inside the 14px track. Pure strokes only; the old white halo box-shadow punched a notch into the bar fill and read as a paint artifact. */ .ci-tick { position: absolute; top: 4px; width: 1px; height: 6px; background: rgba(15, 23, 42, .55); z-index: 3; } .ci-connector { position: absolute; top: 6.5px; height: 1px; background: rgba(15, 23, 42, .55); z-index: 3; } .bar-empty { padding: 48px; color: var(--muted); text-align: center; font-size: 14px; } ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #d4d4d8; border-radius: 3px; } @media (max-width: 1279px) { .bm-detail-row { flex-direction: column-reverse !important; gap: 40px !important; } .bm-chart-wrap { width: 100% !important; min-width: 0 !important; max-width: none !important; flex-basis: auto !important; } } /* Below the desktop rail width the sidebar becomes a horizontal chip bar under the header; hiding it entirely left phones with no way to reach benchmarks. */ @media (max-width: 1023px) { .ot-content { padding: 24px !important; } .ot-main { flex-direction: column !important; } .ot-sidebar { display: block !important; position: static !important; width: 100% !important; min-width: 0 !important; max-width: none !important; height: auto !important; padding: 10px 12px !important; flex: 0 0 auto !important; overflow: visible; border-bottom: 1px solid var(--hairline); } .ot-sidebar .html-container > .sidebar-inner { display: flex; align-items: center; gap: 8px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; } .ot-sidebar .html-container > .sidebar-inner::-webkit-scrollbar { display: none; } .side-section, .side-list { display: contents; } .side-heading { display: none; } .side-link { width: auto; min-height: 32px; padding: 5px 12px !important; flex: 0 0 auto; border: 1px solid var(--hairline) !important; border-radius: 8px !important; font-size: 13px !important; line-height: 20px !important; white-space: nowrap; } .side-link.active { border-color: var(--ink) !important; color: var(--ink) !important; background: var(--wash) !important; } } @media (max-width: 767px) { .top-nav a, .top-nav > span:not(.search) { display: none; } .top-nav .search { font-size: 0; } .top-nav .search::first-letter { font-size: 16px; } .wordmark { font-size: 14px; } .ot-content { padding: 24px 12px !important; } } /* Phones: a 240px frozen Model column would leave almost no scrollable data. */ @media (max-width: 640px) { .leaderboard-table .col-model { width: 180px; } .ot-content { padding: 16px 10px !important; } } @media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; } }