:root { --red: #da001b; --red-deep: #a80015; --red-wash: #fdecee; --ink: #1d1f23; --graphite: #4a4f57; --graphite-wash: #eceef0; --muted: #6c7179; --line: #e4e2e0; --paper: #ffffff; --wash: #f6f6f5; --ok: #1f7a4d; --n-models: 3; /* set from the server's model list */ --display: "Futura PT", Futura, "Century Gothic", "Avenir Next", "Segoe UI", system-ui, sans-serif; --body: "Avenir Next", "Segoe UI", system-ui, -apple-system, sans-serif; --code: "SFMono-Regular", Consolas, "Liberation Mono", monospace; --radius-s: 4px; --radius-m: 10px; } * { box-sizing: border-box; } html { scroll-behavior: smooth; scroll-padding-top: 76px; } body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.55 var(--body); font-variant-numeric: tabular-nums; } a { color: var(--red-deep); } code { font-family: var(--code); font-size: .88em; background: var(--wash); padding: .1em .35em; border-radius: var(--radius-s); } :focus-visible { outline: 3px solid var(--red); outline-offset: 2px; } /* ---------- top bar */ .topbar { position: sticky; top: 0; z-index: 10; display: flex; align-items: center; gap: 28px; padding: 14px clamp(16px, 4vw, 48px); background: rgba(255, 255, 255, .96); border-bottom: 1px solid var(--line); backdrop-filter: blur(6px); } .brand { display: flex; align-items: center; gap: 14px; text-decoration: none; color: var(--ink); } .brand-logo { height: 20px; width: auto; display: block; } .brand-name { font: 500 18px/1 var(--display); letter-spacing: .02em; padding-left: 14px; border-left: 1px solid var(--line); } .nav { display: flex; gap: 22px; margin-left: auto; } .nav a { color: var(--graphite); text-decoration: none; font-size: 15px; } .nav a:hover { color: var(--red); } .readiness { font-size: 14px; color: var(--muted); white-space: nowrap; } .readiness.ready { color: var(--ok); } /* ---------- hero */ main { padding: 0 clamp(16px, 4vw, 48px); max-width: 1320px; margin: 0 auto; } .hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 48px; align-items: center; padding: 72px 0 64px; border-bottom: 1px solid var(--line); } .kicker { color: var(--red); font-weight: 600; margin: 0 0 14px; } .hero h1 { font: 500 clamp(40px, 5.6vw, 72px)/1.02 var(--display); letter-spacing: -.01em; margin: 0 0 22px; } .lede { font-size: 19px; color: var(--graphite); max-width: 58ch; margin: 0 0 30px; } .hero-actions { display: flex; gap: 12px; flex-wrap: wrap; } .versus { display: flex; flex-wrap: wrap; align-items: stretch; row-gap: 10px; } .versus.many { gap: 10px; } .versus-side { flex: 1 0 auto; display: flex; flex-direction: column; padding: 24px 16px; border-radius: var(--radius-m); } .versus-side.side-laya { background: var(--graphite-wash); color: var(--ink); } .versus-mid { display: grid; place-items: center; padding: 0 8px; font: 500 22px var(--display); color: var(--muted); background: var(--paper); } .versus-name { font: 500 18px/1.2 var(--display); white-space: nowrap; } .versus-figure { font: 500 clamp(28px, 3vw, 44px)/1.05 var(--display); margin-top: 16px; white-space: nowrap; } .versus-unit { font-size: 14px; opacity: .85; } /* ---------- buttons */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 999px; padding: 11px 22px; font: 600 15px var(--body); text-decoration: none; cursor: pointer; border: 1.5px solid transparent; } .btn-primary { background: var(--red); color: #fff; } .btn-primary:hover { background: var(--red-deep); } .btn-primary:disabled { background: #d9b7bb; cursor: progress; } .btn-quiet { border-color: var(--ink); color: var(--ink); background: transparent; } .btn-quiet:hover { border-color: var(--red); color: var(--red); } .btn-small { padding: 6px 14px; font-size: 13px; } /* ---------- sections */ .section { padding: 64px 0; border-bottom: 1px solid var(--line); } .section-head { max-width: 760px; margin-bottom: 32px; } .step { font: 500 15px var(--display); color: var(--red); margin: 0 0 6px; letter-spacing: .03em; } .section h2 { font: 500 clamp(28px, 3.2vw, 38px)/1.15 var(--display); margin: 0 0 12px; } .section-note { color: var(--graphite); margin: 0; max-width: 72ch; } /* ---------- setup */ .models { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 24px; } .model-card { border: 1px solid var(--line); border-radius: var(--radius-m); padding: 24px; background: var(--paper); } .model-card.side-laya, .sum-card.side-laya { border-top: 4px solid var(--graphite); } .model-card h3 { font: 500 24px var(--display); margin: 0; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 12px; } .model-card .repo { color: var(--muted); font-size: 14px; margin: 4px 0 18px; } .state-tag { font: 600 13px var(--body); padding: 3px 10px; border-radius: 999px; background: var(--wash); color: var(--graphite); } .state-tag.ready { background: #e6f4ec; color: var(--ok); } .state-tag.error { background: var(--red-wash); color: var(--red-deep); } .state-tag.loading::after { content: ""; display: inline-block; width: 7px; height: 7px; margin-left: 7px; border-radius: 50%; background: currentColor; animation: pulse 1.2s infinite ease-in-out; } @keyframes pulse { 50% { opacity: .2; } } .facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 20px; margin: 0; } .facts div { border-top: 1px solid var(--line); padding-top: 10px; } .facts dt { font-size: 13px; color: var(--muted); } .facts dd { margin: 2px 0 0; font-weight: 600; font-size: 17px; overflow-wrap: anywhere; } .model-error { color: var(--red-deep); font-size: 14px; margin: 16px 0 0; overflow-wrap: anywhere; } .env { color: var(--muted); font-size: 14px; margin: 18px 0 0; } /* ---------- decision */ .demo-blurb { margin: 0; font-size: 16px; color: var(--graphite); } .field { display: block; margin-bottom: 18px; } .field > span { display: block; font-weight: 600; font-size: 14px; margin-bottom: 6px; } .field small { font-weight: 400; color: var(--muted); } textarea { width: 100%; resize: vertical; font: 13.5px/1.5 var(--code); color: var(--ink); padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius-s); background: var(--wash); } textarea:focus { background: var(--paper); border-color: var(--red); outline: none; } .controls { display: grid; grid-template-columns: 1fr 1fr auto; gap: 20px; align-items: end; } .control span { display: block; font-size: 14px; font-weight: 600; margin-bottom: 8px; } .control output { color: var(--red); } input[type="range"] { width: 100%; accent-color: var(--red); } select { width: 100%; font: 14px var(--body); padding: 9px 10px; border: 1px solid var(--line); border-radius: var(--radius-s); background: var(--paper); color: var(--ink); } .run { min-width: 190px; } .form-error { color: var(--red-deep); font-weight: 600; margin: 14px 0 0; min-height: 1.2em; } /* ---------- verdicts */ .timing { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0; border: 1px solid var(--line); border-radius: var(--radius-m); margin-bottom: 28px; overflow: hidden; } .timing div { padding: 16px 20px; border-right: 1px solid var(--line); } .timing div:last-child { border-right: 0; } .timing b { display: block; font: 500 28px/1.1 var(--display); } .timing span { font-size: 13px; color: var(--muted); } .empty { color: var(--muted); padding: 36px 0; } .verdict { border: 1px solid var(--line); border-radius: var(--radius-m); padding: 22px 24px; margin-bottom: 20px; } .verdict-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; margin-bottom: 16px; } .verdict-q { font: 500 20px/1.3 var(--display); margin: 0; } .verdict-meta { font-size: 13px; color: var(--muted); margin: 2px 0 0; } .agree { align-self: flex-start; font-weight: 600; font-size: 13px; padding: 4px 12px; border-radius: 999px; } .agree.yes { background: #e6f4ec; color: var(--ok); } .agree.no { background: var(--red-wash); color: var(--red-deep); } .agree.part { background: #fff4e0; color: #8a5300; } .answers { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 16px; margin-bottom: 18px; } .answer { padding: 12px 16px; border-radius: var(--radius-s); background: var(--wash); border-left: 4px solid var(--graphite); } .answer .who { font-size: 13px; color: var(--muted); } .answer .what { font: 500 21px/1.25 var(--display); margin: 2px 0 6px; overflow-wrap: anywhere; } .answer .how { font-size: 13px; color: var(--graphite); } .badge { display: inline-block; font-weight: 700; font-size: 12px; padding: 1px 9px; border-radius: 999px; margin: 0 4px; } .badge.act { background: var(--ink); color: #fff; } .badge.defer { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--ink); } .ref { font-size: 13px; } .ref.hit { color: var(--ok); } .ref.miss { color: var(--red-deep); } .answer .err { color: var(--red-deep); font-size: 14px; } .bars { display: grid; grid-template-columns: minmax(120px, 34%) minmax(0, 1fr); gap: 8px 14px; align-items: center; } .bar-stack { display: grid; gap: 3px; } .bar-cell { position: relative; height: 16px; background: var(--wash); border-radius: var(--radius-s); overflow: hidden; } /* DL1: bars grow with transform (compositor only), never width */ .bar-cell i { position: absolute; inset: 0; transform-origin: left center; transition: transform .45s ease; background: #b8bcc2; } .bar-cell.top i { background: var(--graphite); } .bar-cell span { position: absolute; left: 0; top: 0; line-height: 16px; font-size: 11px; font-weight: 600; padding: 0 6px; color: var(--ink); } .bar-cell.top span { color: #fff; } .bar-label { font-size: 13.5px; line-height: 1.25; overflow-wrap: anywhere; } .bar-label.is-ref { font-weight: 700; } .bar-label.is-ref::after { content: " (reference)"; font-weight: 400; color: var(--muted); font-size: 12px; } .raw { margin-top: 8px; } .raw summary { cursor: pointer; font-weight: 600; } .raw pre { background: var(--wash); padding: 16px; border-radius: var(--radius-s); overflow: auto; max-height: 420px; font: 12.5px/1.45 var(--code); } /* ---------- scoreboard */ .score-actions { display: flex; align-items: center; gap: 18px; margin-bottom: 24px; } .progress { color: var(--muted); } .summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 24px; margin-bottom: 28px; } .sum-card { border: 1px solid var(--line); border-radius: var(--radius-m); padding: 20px 22px; } .sum-card h3 { font: 500 22px var(--display); margin: 0 0 12px; } .sum-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; margin: 0; } .sum-card dt { font-size: 13px; color: var(--muted); } .sum-card dd { margin: 0; font: 500 26px/1.15 var(--display); } .sum-both { grid-column: 1 / -1; color: var(--graphite); margin: 0; } .table-wrap { overflow-x: auto; } .score-table { width: 100%; border-collapse: collapse; font-size: 14px; } .score-table th { text-align: left; font-weight: 600; color: var(--muted); border-bottom: 2px solid var(--ink); padding: 8px 10px; white-space: nowrap; } .score-table td { border-bottom: 1px solid var(--line); padding: 9px 10px; vertical-align: top; } .score-table td.hit { color: var(--ok); } .score-table td.miss { color: var(--red-deep); } .score-table small { display: block; color: var(--muted); } /* ---------- notes + footer */ .footer { display: flex; align-items: center; gap: 14px; padding: 28px clamp(16px, 4vw, 48px); color: var(--muted); font-size: 14px; } .footer-logo { height: 14px; } /* ---------- responsive + motion */ @media (max-width: 1000px) { .hero { grid-template-columns: 1fr; padding-top: 48px; } .controls { grid-template-columns: 1fr; } } @media (max-width: 720px) { .nav { display: none; } .models, .summary, .answers { grid-template-columns: 1fr; } .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .bars { grid-template-columns: 1fr; gap: 4px; } .bar-stack { margin-bottom: 8px; } .versus { flex-direction: column; } .versus-mid { padding: 4px 0; } .readiness { display: none; } } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .bar-cell i, .aus-bar i { transition: none; } .state-tag.loading::after { animation: none; } } /* ---------- narrow screens: never scroll sideways */ .hero > *, .workbench > *, .models > * { min-width: 0; } @media (max-width: 720px) { .hero h1 { font-size: 34px; } .lede { font-size: 17px; } .versus-side { padding: 20px 14px; } .versus-figure { font-size: 38px; } .bar-label { font-size: 12px; } } /* ---------- per-metric winners + Agentic Use Score */ :root { --win: #16a34a; --win-wash: #eaf7ee; } .sum-card dl > div { padding: 6px 8px; border-radius: var(--radius-s); border: 2px solid transparent; } .sum-card dl > div.win { border-color: var(--win); background: var(--win-wash); } .sum-card.winner { box-shadow: 0 0 0 3px var(--win); } .sum-card h3 { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 12px; } .win-tag { font: 700 12px var(--body); color: #fff; background: var(--win); padding: 3px 10px; border-radius: 999px; } .sum-card dl { grid-template-columns: repeat(2, minmax(0, 1fr)); } .aus { grid-column: 1 / -1; border: 1px solid var(--line); border-radius: var(--radius-m); padding: 22px 24px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px 40px; } .aus-head { grid-column: 1 / -1; } .aus-head h3 { font: 500 24px var(--display); margin: 0 0 4px; } .aus-head p { margin: 0; color: var(--graphite); max-width: 80ch; } .aus-rank { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 10px; align-content: start; } .aus-rank li { display: grid; grid-template-columns: 34px auto minmax(60px, 1fr) 56px; align-items: center; gap: 12px; padding: 10px 12px; border-radius: var(--radius-s); border: 2px solid transparent; background: var(--wash); } .aus-rank li.first { border-color: var(--win); background: var(--win-wash); } .aus-pos { font: 500 26px var(--display); color: var(--muted); } .aus-rank li.first .aus-pos { color: var(--win); } .aus-name { font: 500 18px/1.2 var(--display); } .aus-bar { height: 12px; background: #fff; border-radius: 999px; overflow: hidden; } .aus-bar i { display: block; height: 100%; background: var(--graphite); transform-origin: left center; transition: transform .45s ease; } .aus-val { font: 500 24px var(--display); text-align: right; } .aus-table { width: 100%; border-collapse: collapse; font-size: 14px; align-self: start; margin-top: 8px; } .aus-table th { text-align: left; color: var(--muted); font-weight: 600; border-bottom: 2px solid var(--ink); padding: 6px 8px; } .aus-table td { border-bottom: 1px solid var(--line); padding: 7px 8px; } .aus-table td.win { background: var(--win-wash); color: var(--win); font-weight: 700; box-shadow: inset 0 0 0 2px var(--win); } .score-table .stakes { color: var(--red-deep); font-weight: 600; } @media (max-width: 900px) { .aus { grid-template-columns: 1fr; } .aus-rank li { grid-template-columns: 30px auto minmax(40px, 1fr) 48px; } .aus-name { font-size: 16px; } } .table-scroll { overflow-x: auto; min-width: 0; } /* ---------- demo picker: tabs + tiles above side-by-side editors */ .visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } .picker { border: 1px solid var(--line); border-radius: var(--radius-m); padding: 16px; margin-bottom: 20px; } .picker-bar { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; margin-bottom: 14px; } .tabs { display: inline-flex; background: var(--wash); border-radius: 999px; padding: 4px; gap: 2px; flex-wrap: wrap; } .tab { border: 0; background: transparent; font: 600 14px var(--body); color: var(--graphite); padding: 8px 16px; border-radius: 999px; cursor: pointer; } .tab:hover { color: var(--ink); } .tab[aria-selected="true"] { background: var(--paper); color: var(--red); box-shadow: 0 1px 3px rgba(0, 0, 0, .12); } .tab-count { font-weight: 500; color: var(--muted); margin-left: 4px; } .search input { width: min(280px, 100%); font: 14px var(--body); padding: 9px 14px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink); } .search input:focus { border-color: var(--red); outline: none; } .tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; } .tile { display: grid; grid-template-columns: 30px 1fr; align-items: center; gap: 0 6px; text-align: left; cursor: pointer; font: inherit; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-s); padding: 9px 12px; } .tile:hover { border-color: var(--graphite); } .tile .n { font: 500 16px var(--display); color: var(--muted); grid-row: span 2; } .tile .t { font-weight: 600; font-size: 14px; line-height: 1.25; } .tile .g { font-size: 12px; color: var(--muted); } .tile[aria-selected="true"] { border-color: var(--red); background: var(--red-wash); box-shadow: inset 3px 0 0 var(--red); } .tile[aria-selected="true"] .n { color: var(--red); } .tiles .none { color: var(--muted); padding: 8px 4px; grid-column: 1 / -1; } .current { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin: 4px 0 16px; } .current-title { font: 500 24px/1.2 var(--display); margin: 0 0 4px; } .current-title .num { color: var(--red); margin-right: 10px; } .current-nav { display: flex; gap: 8px; flex-shrink: 0; } .editors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } .editors .field { margin-bottom: 0; display: flex; flex-direction: column; } .editors textarea { flex: 1; min-height: 300px; } .controls { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--line); } /* ---------- notes */ .aus-guide { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 32px 56px; padding: 28px 0 36px; border-bottom: 1px solid var(--line); } .aus-intro h3, .note h3 { font: 500 22px/1.25 var(--display); margin: 0 0 12px; } .aus-intro p, .note p { margin: 0 0 12px; color: var(--graphite); line-height: 1.6; } .aus-intro p:first-of-type { font-size: 17px; color: var(--ink); } .aus-footnote { font-size: 14px; } .weights { list-style: none; margin: 0; padding: 0; } .weights li { display: grid; grid-template-columns: 52px 88px minmax(0, 1fr); gap: 16px; align-items: baseline; padding: 14px 0; border-top: 1px solid var(--line); } .weights li:first-child { border-top: 0; padding-top: 4px; } .w-pct { font: 500 22px var(--display); color: var(--red); text-align: right; } .w-bar { height: 8px; background: var(--wash); border-radius: 999px; overflow: hidden; align-self: center; } .w-bar i { display: block; height: 100%; background: var(--red); } .w-text { color: var(--graphite); line-height: 1.55; } .w-text b { display: block; color: var(--ink); font-weight: 600; margin-bottom: 2px; } .note-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; padding-top: 32px; } .note { max-width: 46ch; } .note p:last-child { margin-bottom: 0; } @media (max-width: 1000px) { .aus-guide, .note-grid { grid-template-columns: 1fr; } .editors { grid-template-columns: 1fr; } .editors textarea { min-height: 220px; } .note { max-width: none; } } @media (max-width: 720px) { .picker-bar { flex-direction: column; align-items: stretch; } .search input { width: 100%; } .tiles { grid-template-columns: 1fr 1fr; } .current { flex-direction: column; align-items: flex-start; } .weights li { grid-template-columns: 48px minmax(0, 1fr); } .w-bar { display: none; } } .btn-quiet:disabled { opacity: .35; cursor: default; border-color: var(--ink); color: var(--ink); } /* score table: points earned per component, summing to the total */ .aus-table td b { font-weight: 700; font-size: 15px; } .aus-table td small { display: block; font-size: 12px; color: var(--muted); font-weight: 400; } .aus-table td.win small { color: var(--win); } .aus-table tfoot th, .aus-table tfoot td { border-top: 2px solid var(--ink); border-bottom: 0; padding: 10px 8px; text-align: left; font-weight: 700; } .aus-table tfoot td b { font: 500 22px var(--display); } /* ------------------------------------------------------------------ demo groups (families of tabs) */ .tabs-wrap { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: flex-end; } .tab-family { display: grid; gap: 4px; } .family-label { font: 600 11px var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); padding-left: 12px; } .picker-bar { align-items: flex-end; } .group-blurb { margin: 0 0 12px; color: var(--graphite); font-size: 14px; min-height: 1.4em; } .tile .g { color: var(--muted); font-size: 12px; } .scope { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--graphite); } .scope select { width: auto; min-width: 260px; } .group-board { grid-column: 1 / -1; border: 1px solid var(--line); border-radius: var(--radius-m); padding: 18px 22px; } .group-board h3 { font: 500 20px var(--display); margin: 0 0 4px; } .group-board td small { display: block; font-size: 12px; color: var(--muted); font-weight: 400; } @media (max-width: 720px) { .score-actions { flex-wrap: wrap; } .scope, .scope select { width: 100%; min-width: 0; } } /* ---------- DL1: rendering containment. Off-screen sections skip layout and paint until scrolled to, and a change inside one section never re-lays out the others. */ #verdicts, #scoreboard, .notes { content-visibility: auto; contain-intrinsic-size: auto 900px; } .verdict, .summary, .table-wrap { contain: layout paint; } /* ---------- model colours. Discovered models take slots c0..c5 in folder order; Laya keeps graphite. Every model-coloured element reads --mc (strong) and --mc-soft (bar fill). */ .side-c0 { --mc: #da001b; --mc-soft: #f2a6ae; --mc-ink: #fff; } .side-c1 { --mc: #0b6f78; --mc-soft: #9fcfd3; --mc-ink: #fff; } .side-c2 { --mc: #5b3fa8; --mc-soft: #c3b6e6; --mc-ink: #fff; } .side-c3 { --mc: #9a5200; --mc-soft: #f0c895; --mc-ink: #fff; } .side-c4 { --mc: #1f5f9e; --mc-soft: #a9c6e6; --mc-ink: #fff; } .side-c5 { --mc: #4f6f16; --mc-soft: #c3d99a; --mc-ink: #fff; } .side-c6 { --mc: #a0306b; --mc-soft: #e8b3cf; --mc-ink: #fff; } .side-c7 { --mc: #2c6e5a; --mc-soft: #a8d5c6; --mc-ink: #fff; } .side-laya { --mc: var(--graphite); --mc-soft: #b8bcc2; --mc-ink: var(--ink); } .versus-side[class*="side-c"] { background: var(--mc); color: var(--mc-ink); } .versus-side.side-laya { background: var(--graphite-wash); color: var(--ink); } .model-card[class*="side-"], .sum-card[class*="side-"] { border-top: 4px solid var(--mc, var(--graphite)); } .answer[class*="side-"] { border-left-color: var(--mc, var(--graphite)); } .timing [class*="side-c"] b { color: var(--mc); } .bar-cell[class*="side-"] i { background: var(--mc-soft, #b8bcc2); } .bar-cell[class*="side-"].top i { background: var(--mc, var(--graphite)); } .aus-rank li[class*="side-"] .aus-bar i { background: var(--mc, var(--graphite)); } .no-models { border: 1px dashed var(--line); border-radius: var(--radius-m); padding: 18px 22px; color: var(--graphite); } /* ---------- intro weight bars (class widths: no inline styles under the CSP) */ .w-bar i.w-100 { width: 100%; } .w-bar i.w-71 { width: 71%; } .w-bar i.w-43 { width: 43%; } .w-bar i.w-29 { width: 29%; } /* ---------- Responsive: phones, tablets and laptops (1.10.2). Checked with a device audit at 320-1440 px. */ /* Text never goes below 12 px. */ .bar-cell span { font-size: 12px; } .family-label { font-size: 12px; } small { font-size: max(12px, .85em); } /* Grid children may shrink: a wide table scrolls inside its own box instead of widening the page. */ .summary > *, .models > *, .answers > *, .verdict > *, .aus > * { min-width: 0; } /* Every control is at least 24 px in both directions (WCAG 2.5.8), on any device. */ .brand { min-height: 32px; } input[type="range"] { height: 28px; } .repo a { display: inline-block; padding: 4px 0; } /* Tablets: brand, section links and the readiness badge no longer fit on one line; the setup cards show status. */ @media (max-width: 960px) { .readiness { display: none; } .nav { gap: 16px; } } /* Small phones: a long model name wraps at spaces, never inside a word. */ @media (max-width: 520px) { .versus-name { white-space: normal; } } /* Touch screens: 44 px tap targets, and 16 px form text so iPhones do not zoom in when a field is tapped. */ @media (pointer: coarse) { .btn, .tab, .tile, select, .search input, summary, .nav a, .brand { min-height: 44px; } .nav a, .brand { display: inline-flex; align-items: center; } summary { padding: 10px 0; box-sizing: border-box; } input, select, textarea { font-size: 16px; } input[type="range"] { height: 44px; } .repo a { padding: 10px 0; } } /* Section links in the header: at least 24 px tall with a mouse too. */ .nav a { padding: 4px 0; } /* Small phones: in the score ranking the name gets its own line and the bar runs underneath it. */ @media (max-width: 520px) { .aus-rank li { grid-template-columns: 30px minmax(0, 1fr) 48px; row-gap: 6px; } .aus-rank li .aus-name { grid-column: 2; grid-row: 1; } .aus-rank li .aus-val { grid-column: 3; grid-row: 1; } .aus-rank li .aus-bar { grid-column: 2 / 4; grid-row: 2; } } @media (pointer: coarse) { .repo a { padding: 12px 0; } .search input { font-size: 16px; } } /* ---------- runs with no reference answers: no score, a plain note instead */ .unscored-note { grid-column: 1 / -1; border: 1px dashed var(--line); border-radius: var(--radius-m); padding: 18px 22px; } .unscored-note h3 { font: 500 22px var(--display); margin: 0 0 6px; } .unscored-note p { margin: 0; color: var(--graphite); max-width: 70ch; }