Spaces:
Running
Running
Map guide lines on hover and selection, Inspect links to model pages, game result links fixed
Browse files- assets/render.js +1 -1
- assets/space.css +1 -1
- assets/space.js +3 -3
- data/snapshot.json +0 -0
- index.html +0 -0
assets/render.js
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
const
|
|
|
|
| 1 |
+
const v="https://stealthmodels.com",l=e=>String(e??"").replace(/[&<>"']/g,t=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[t]),p=(e,t)=>String(e).replace(/\{(\w+)\}/g,(a,s)=>t[s]??""),g=(e,t)=>Number.isFinite(e)?e.toFixed(1):t.notScored,I=e=>{const t=new Date(/^\d{4}-\d{2}-\d{2}$/.test(e)?`${e}T00:00:00Z`:e);return Number.isNaN(t.getTime())?"":new Intl.DateTimeFormat("en-GB",{day:"numeric",month:"long",year:"numeric",timeZone:"UTC"}).format(t)},b=e=>{try{const t=new URL(e,v);return t.hostname!=="stealthmodels.com"?e:(t.searchParams.set("utm_source","huggingface"),t.searchParams.set("utm_medium","referral"),t.searchParams.set("utm_campaign","stealthmark-space"),t.toString())}catch{return e}},x='target="_blank" rel="noopener noreferrer"',_=e=>String(e).split("/").pop(),f=e=>`<span class="sr-only"> \xB7 ${l(e)}</span>`,T='<svg class="arrow" viewBox="0 0 14 14" width="14" height="14" aria-hidden="true"><path d="M4 10 10 4M5 4h5v5" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>',$=(e,t,a="",s="")=>`<a${a?` class="${a}"`:""} href="${l(b(e))}" ${x}${s}>${t}</a>`,O=e=>e?.favicon||e?.logo||"",P=(e,t)=>e?t&&t.length&&!t.includes(e)?v+e:e:"",R=(e,t)=>{const a=O(e);return`<span class="mount">${a?`<img src="${l(P(a,t))}" alt="" loading="lazy" decoding="async" width="40" height="40">`:'<i class="dot" aria-hidden="true"></i>'}</span>`},h=(e,t,a,s,n=!1)=>$(t||e.detailUrl,`${R(e,s)}<span class="lname" title="${l(e.name)}">${l(e.name)}</span>${T}`,`lockup lockup--${a}`,` data-model="${l(e.id)}"`);function U(e,t){const a=[];return e.router==="confirmed"&&a.push(t.router),e.router==="suspected"&&a.push(t.suspectedRouter),e.estimated&&a.push(t.estimated),e.partial&&a.push(t.partialCoverage),a.map(s=>`<span class="tag">${l(s)}</span>`).join("")}function w(e,t){const a=[];return e.officialHfUrl&&a.push($(e.officialHfUrl,l(t.weights)+f(`${e.name}, ${t.destWeights}`),"sec")),e.ggufUrl&&a.push($(e.ggufUrl,l(t.gguf)+f(t.destGguf),"sec")),e.cardUrl&&a.push($(e.cardUrl,l(t.hfCard)+f(`${e.name}, ${t.destCard}`),"sec")),a}function F(e){return[e.name,e.revealedName,...e.aliases||[]].filter(Boolean).join(" ")}function k(e,t,a){const s=e.partial&&e.missing?.length?`<details class="lb-cover"><summary>${l(t.partialCoverage)}</summary><p>${l(p(t.notScoredIn,{tasks:e.missing.join(", ")}))}</p></details>`:"";return`<tr data-model="${l(e.id)}" data-open="${e.open?1:0}" data-local="${e.local?1:0}" data-score="${e.score??""}" data-general="${e.general??""}" data-visual="${e.visual??""}" data-name="${l(e.name)}" data-search="${l(F(e))}"><th scope="row" class="lb-model"><div class="lb-id">${h(e,e.detailUrl,"s",a)}${U(e,t)}</div><div class="lb-links">${w(e,t).join("")}<a class="lb-inspect" href="${l(b(e.detailUrl))}" ${x} aria-label="${l(p(t.inspectLink,{model:e.name}))}">${l(t.inspectShort)}</a></div>${s}</th><td class="num num--score" data-label="${l(t.score)}">${g(e.score,t)}</td><td class="num num--gi" data-label="${l(t.general)}">${g(e.general,t)}</td><td class="num num--vi" data-label="${l(t.visual)}">${g(e.visual,t)}</td></tr>`}function A(e,t,a){const s=[...e].sort((n,r)=>(r.score??-1)-(n.score??-1)||n.name.localeCompare(r.name)||n.id.localeCompare(r.id));return{complete:s.filter(n=>!n.partial&&!n.estimated).map(n=>k(n,t,a)).join(""),partial:s.filter(n=>n.partial||n.estimated).map(n=>k(n,t,a)).join("")}}function z(e,t,a,s){return e.map(n=>{const r=n.entries[0]?.score,c=n.entries.map(o=>a.get(o.id)||{id:o.id,name:o.name,detailUrl:o.detailUrl}),i=c.map(o=>`<div class="rail-id">${h(o,o.detailUrl,n.id==="overall"?"l1":"l2",s)}</div>`).join(""),d=n.id==="overall"?"":c.flatMap(o=>w(o,t).filter(m=>!m.includes(">"+t.hfCard))).join("");return`<li class="rail-row rail-row--${n.id}" data-leader="${n.id}"><p class="rail-cat">${l(n.label)}</p><p class="rail-score"><span class="sr-only">${l(t.scoreFull)} </span>${g(r,t)}</p><div class="rail-ids">${i}</div>${d?`<p class="rail-links">${d}</p>`:""}</li>`}).join("")}function B(e,t){const a=t.find(i=>i.id==="overall")?.entries[0]?.id,s=t.find(i=>i.id==="open")?.entries[0]?.id,n=[...e].sort((i,d)=>(d.score??-1)-(i.score??-1)),r=a??n[0]?.id,c=s&&s!==r?s:n.find(i=>i.id!==r)?.id;return[r,c]}const G=(e,t)=>b(`${v}/compare/${e}-vs-${t}`);function Z(e,t,a){return`<div class="cmp-lock">${h(e,e.detailUrl,"xl",a)}</div><button type="button" class="change" data-change>${l(t.change)}</button><p class="cmp-status">${U(e,t)}</p><p class="cmp-sec">${w(e,t).join("")}</p>`}const q=(e,t,a,s)=>`<li data-model="${l(e.id)}"><div class="pk-id">${h(e,e.detailUrl,"s",s)}</div><button type="button" class="pk-select" data-select="${l(e.id)}" aria-label="${l(p(a.selectAs,{model:e.name,which:t==="a"?a.firstWord:a.secondWord}))}">${l(a.select)}</button></li>`,j=(e,t,a)=>{const s=t?.get(e.modelId)||{id:e.modelId,name:e.modelName,detailUrl:e.modelUrl};return`<div class="plate-id">${h(s,s.detailUrl||e.modelUrl,"m",a)}</div>`},L={cleared:"Cleared","out-of-turns":"Out of turns","out-of-lives":"Out of lives","ended-early":"Finished early","no-valid-move":"No valid move"},W=(e,t)=>e==="cleared"&&/^foresight/.test(t)?"Survived":L[e]||"",C=(e,t)=>{const[a,s]=t.scoreLine.split("{score}");return`<p class="plate-score"><span class="ps-label">${l(a.trim())}</span> <span class="ps-num">${g(e.score,t)}</span> <span class="ps-of">${l((s||"").trim())}</span></p>`};function D(e,t,a,s,n,r,c){const i=a==="high"?s.high:s.low,o=n?.get(t.modelId)?.name||t.modelName,m=t.media?.width?` width="${t.media.width}" height="${t.media.height}"`:"",u=t.resultDate?`<span>${l(p(s.recorded,{date:I(t.resultDate)}))}</span>`:"";return`<figure class="plate" data-slot="${a}" data-result="${l(t.resultId)}"><p class="plate-label">${l(i)}</p>${j(t,n,r)}<div class="plate-media"><img src="${l(c+t.media.src)}" alt="${l(p(s.resultAlt,{model:o,task:e.name}))}"${m} loading="lazy" decoding="async"></div><figcaption>${C(t,s)}<p class="plate-meta">${u}${$(t.detailUrl,l(s.viewResult)+f(`${o}, ${e.name}`),"plain")}</p></figcaption></figure>`}function M(e,t,a,s,n,r){const c=a==="high"?s.highChain:s.lowChain,i=n?.get(t.modelId)?.name||t.modelName,d=(t.levels||[]).map((u,N)=>{const H=u.available===!1?s.notStarted:W(u.outcome,t.chainId),S=Number.isFinite(u.points)?p(s.points,{points:Math.round(u.points*100)/100}):"";return`<li>${l([p(s.levelN,{level:N+1}),H,S].filter(Boolean).join(" \xB7 "))}</li>`}).join(""),o=t.coverage?.selected?`<p class="plate-cov">${l(p(s.coverageLine,t.coverage))}</p>`:`<p class="plate-cov">${l(s.noOutcome)}</p>`,m=t.poster?`<div class="plate-media plate-media--game"><img src="${l(t.poster)}" alt="${l(p(s.replayAlt,{model:i,game:e.name,level:t.coverage?.selected??""}))}" width="600" height="400" loading="lazy" decoding="async"></div>`:"";return`<figure class="plate plate--game" data-slot="${a}"><p class="plate-label">${l(c)}</p>${j(t,n,r)}${m}<figcaption>${C(t,s)}${o}${d?`<ul class="levels">${d}</ul>`:""}<p class="plate-meta">${$(t.detailUrl,l(s.watchReplay)+f(`${i}, ${e.name}`),"btn btn-outline")}</p></figcaption></figure>`}function E(e,t,a,s,n=v){const r=(i,d)=>i?e.kind==="game"?M(e,i,d,t,a,s):D(e,i,d,t,a,s,n):"";return`${e.differingBriefs?`<p class="pair-note">${l(t.differingBriefs)}</p>`:""}<div class="pair">${r(e.high,"high")}${r(e.low,"low")}</div>`}export{x as EXT,v as ORIGIN,P as assetSrc,Z as compareIdentityHtml,G as compareUrl,B as defaultPair,l as esc,p as fill,O as identityPath,z as leadersHtml,h as lockupHtml,I as longDate,A as modelsTbodyHtml,R as mountHtml,g as num,E as pairHtml,q as pickerItemHtml,k as rowHtml,F as searchText,w as secondaryLinks,_ as slugOf,U as statusTags,b as withUtm};
|
assets/space.css
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
@font-face{font-family:DM Sans;src:url(/assets/fonts/dm-sans-latin.woff2) format("woff2");font-weight:100 1000;font-style:normal;font-display:swap}:root{color-scheme:dark;--ground:#10221c;--raised:#18312a;--deep:#0b1813;--ink:#f3efe2;--muted:#a4b3a6;--gold:#e8c27c;--gi:#8cc7b5;--vi:#efa175;--rule:rgba(243,239,226,.16);--warm:#fcfcf5;--sans:"DM Sans",Arial,sans-serif;--gutter:40px;--r-struct:6px;--r-ctl:4px;--r-label:999px;--ease:.14s}*{box-sizing:border-box}html{background:#10221c;-webkit-text-size-adjust:100%}body{margin:0;background:#10221c;color:var(--ink);font:400 18px/1.6 var(--sans);overflow-wrap:break-word}[hidden]{display:none!important}img{max-width:100%}a{color:inherit;transition:color var(--ease),border-color var(--ease),background-color var(--ease)}button,input,select,dialog{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:var(--r-ctl)}p{margin:0}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.025em}.sr-only{position:absolute!important;left:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.wrap{width:100%;max-width:1280px;margin:0 auto;padding-inline:var(--gutter)}.skip{position:absolute;left:var(--gutter);top:-100px;z-index:60;padding:12px 16px;background:var(--gold);color:var(--deep);font-weight:600}.skip:focus{top:8px}.label,.kicker,.plate-label,.slot-label{font-size:14px;line-height:1.4}.muted{color:var(--muted)}.plain{text-decoration:none}a.plain:hover{color:var(--gold);text-decoration:underline}.quiet{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);text-decoration:none;font-size:14px;font-weight:600}.quiet:hover{color:var(--gold)}.sec{display:inline-flex;align-items:center;min-height:32px;font-size:13px;line-height:1.4;color:var(--muted);text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:3px}.sec:hover{color:var(--gold)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border:1px solid transparent;border-radius:var(--r-ctl);font:600 16px/1.2 var(--sans);text-decoration:none;cursor:pointer;background:none}.btn-gold{background:var(--gold);color:var(--deep)}.btn-gold:hover{background:#f1d08f;color:var(--deep)}.btn-outline{border-color:var(--muted);color:var(--ink)}.btn-outline:hover{border-color:var(--gold);color:var(--gold)}.lockup{--mount:40px;--lname:20px;display:inline-flex;align-items:center;gap:12px;max-width:100%;min-width:0;text-decoration:none;color:var(--ink)}.lockup--xl{--mount:64px;--lname:32px}.lockup--l1{--mount:56px;--lname:24px}.lockup--l2{--mount:40px;--lname:20px}.lockup--m{--mount:40px;--lname:24px}.lockup--s{--mount:32px;--lname:18px}.mount{display:inline-grid;place-items:center;flex:none;width:var(--mount);height:var(--mount);background:var(--warm);border-radius:var(--r-struct)}.mount img{width:72%;height:72%;object-fit:contain;display:block}.mount .dot{width:8px;height:8px;border-radius:50%;background:#26392f}.lname{min-width:0;font-size:var(--lname);line-height:1.2;font-weight:600;letter-spacing:-.015em;white-space:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.lname::-webkit-scrollbar{display:none}.lname[data-scroll]{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 20px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 20px),transparent)}.arrow{flex:none;color:var(--muted);transition:color var(--ease)}.lockup:hover .lname{color:var(--gold);text-decoration:underline;text-underline-offset:4px}.lockup:hover .arrow{color:var(--gold)}.tag{display:inline-block;font-size:13px;line-height:1.4;padding:1px 10px;border:1px solid var(--rule);border-radius:var(--r-label);color:var(--muted);white-space:nowrap}.hero{position:relative;background:linear-gradient(135deg,#18312a,#0b1813);padding-bottom:40px}.masthead{height:56px}.masthead .wrap{display:flex;align-items:center;height:56px}.kicker{color:var(--muted)}.kicker a{color:var(--ink);font-weight:600}.prelude{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding-block:40px}.prelude-main{grid-column:span 8}.prelude-side{grid-column:span 4;align-self:end}h1{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 20px;font-size:88px;line-height:1;font-weight:700;letter-spacing:-.04em}.version{font-size:32px;font-weight:600;color:var(--muted);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.hero-line{margin-top:20px;font-size:32px;line-height:1.2;font-weight:400;letter-spacing:-.02em}.hero-lead{max-width:34em}.snapshot{margin-top:12px;font-size:14px;color:var(--muted)}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.scene{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:start}.map-shell{grid-column:span 8;position:relative;min-height:0}.map-shell:before{content:"";position:absolute;left:-8%;top:4%;width:80%;height:88%;background:radial-gradient(closest-side,rgba(255,226,170,.06),transparent);pointer-events:none}.map-note{padding:24px 0;color:var(--muted);font-size:14px}stealthmark-map{display:block;position:relative;--sm-map-accent:#e8c27c;--sm-map-surface:transparent;--sm-map-ink:#f3efe2;--sm-map-muted:#a4b3a6;--sm-map-line:rgba(243,239,226,.16)}.rail{grid-column:span 4;min-width:0}.rail-title{height:32px;font-size:14px;line-height:32px;font-weight:600;letter-spacing:0;color:var(--muted)}.rail-list{list-style:none;margin:0;padding:0}.rail-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"cat score" "ids ids" "links links";align-content:start;gap:0 12px;border-top:1px solid var(--rule);padding-top:12px;min-width:0;overflow:hidden}.rail-row--overall{height:208px}.rail-row--open,.rail-row--local{height:176px}.rail-cat{grid-area:cat;font-size:14px;line-height:1.4;color:var(--muted);align-self:start}.rail-score{grid-area:score;font-weight:400;letter-spacing:-.045em;font-variant-numeric:tabular-nums;line-height:.9;margin:0;text-align:right}.rail-row--overall .rail-score{font-size:104px}.rail-row--open .rail-score,.rail-row--local .rail-score{font-size:72px}.rail-ids{grid-area:ids;display:flex;flex-direction:column;gap:8px;margin-top:12px;max-height:84px;overflow-y:auto;scrollbar-width:thin;min-width:0}.rail-id{min-width:0}.rail-links{grid-area:links;display:flex;flex-wrap:wrap;gap:0 16px;margin-top:2px}section{position:relative}.section-lead{margin-top:12px;max-width:40em;color:var(--muted)}h2{font-size:40px;line-height:1.1}.compare{background:var(--deep);padding-block:64px}.cmp{margin-top:40px}.cmp-grid{display:grid;grid-template-columns:minmax(0,1fr) 128px minmax(0,1fr);column-gap:24px;grid-template-areas:"ida . idb" "sa ms sb" "ga mg gb" "va mv vb"}.cmp-id--a{grid-area:ida}.cmp-id--b{grid-area:idb}.cmp-lab{display:none}[data-cell=score-a]{grid-area:sa}[data-cell=score-m]{grid-area:ms}[data-cell=score-b]{grid-area:sb}[data-cell=gi-a]{grid-area:ga}[data-cell=gi-m]{grid-area:mg}[data-cell=gi-b]{grid-area:gb}[data-cell=vi-a]{grid-area:va}[data-cell=vi-m]{grid-area:mv}[data-cell=vi-b]{grid-area:vb}.cmp-label{font-size:14px;line-height:1.4;color:var(--muted);margin-bottom:12px}.cmp-id--a{text-align:right}.cmp-id--a .cmp-idbox{display:flex;flex-direction:column;align-items:flex-end}.cmp-id--b .cmp-idbox{display:flex;flex-direction:column;align-items:flex-start}.cmp-lock{max-width:100%;min-width:0}.change{margin-top:12px;min-height:44px;padding:0 16px;background:none;border:1px solid var(--muted);border-radius:var(--r-ctl);cursor:pointer;font-size:14px;font-weight:600}.change:hover{border-color:var(--gold);color:var(--gold)}html:not(.js) .change{display:none}.cmp-status{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px;min-height:0}.cmp-id--a .cmp-status,.cmp-id--a .cmp-sec{justify-content:flex-end}.cmp-sec{display:flex;flex-wrap:wrap;gap:0 16px}.cmp-n{font-weight:400;font-variant-numeric:tabular-nums;letter-spacing:-.045em;line-height:1;padding-block:20px 8px;border-bottom:1px solid var(--rule)}.cmp-n--a{text-align:right}.cmp-n--b{text-align:left}.cmp-n--score{font-size:112px;color:var(--ink)}.cmp-n--gi{font-size:56px;color:var(--gi)}.cmp-n--vi{font-size:56px;color:var(--vi)}.cmp-grid[data-wide-score] .cmp-n--score{font-size:96px}.cmp-m{align-self:end;text-align:center;font-size:14px;line-height:1.3;color:var(--muted);padding-bottom:12px;border-bottom:1px solid var(--rule)}.cmp-m--gi{color:var(--gi)}.cmp-m--vi{color:var(--vi)}.cmp-go-wrap{display:flex;justify-content:center;margin-top:32px}.cmp-go{width:360px;max-width:100%;min-height:52px}.cmp-go[aria-disabled=true]{opacity:.45;pointer-events:none}.cmp-note{text-align:center;margin-top:12px;color:var(--gold);font-size:14px}.scores{background:var(--ground);padding-block:64px}.means{margin-top:24px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.means summary{display:flex;align-items:center;min-height:48px;cursor:pointer;font-weight:600;font-size:16px}.definitions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 32px;margin:8px 0 24px}.definitions dt{font-weight:600;margin-bottom:4px}.definitions dd{margin:0;font-size:14px;line-height:1.55;color:var(--muted)}.filters{display:flex;flex-wrap:wrap;gap:16px 32px;align-items:flex-start;margin-top:24px}.filter-types{display:grid;grid-template-columns:repeat(3,minmax(0,208px));gap:8px;flex:0 1 auto}.choice{position:relative;display:grid;align-content:start;min-width:0;max-width:260px}.choice input{position:absolute;opacity:0;inset:0 0 auto;height:48px;width:100%;margin:0;cursor:pointer}.choice-name{display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border:1px solid var(--rule);border-radius:var(--r-ctl);font-weight:600;font-size:16px;transition:var(--ease)}.choice input:checked+.choice-name{background:var(--gold);border-color:var(--gold);color:var(--deep)}.choice input:focus-visible+.choice-name{outline:2px solid var(--gold);outline-offset:3px}.choice small{margin-top:6px;font-size:13px;line-height:1.35;color:var(--muted)}.filter-search{flex:0 1 320px;display:flex;flex-direction:column;gap:8px;min-width:0}input[type=search]{width:100%;height:48px;padding:0 14px;background:var(--deep);border:1px solid var(--rule);border-radius:var(--r-ctl);font-size:16px}input[type=search]::placeholder{color:var(--muted)}.clear{min-height:44px;padding:0 16px;background:none;border:1px solid var(--rule);border-radius:var(--r-ctl);cursor:pointer;font-size:14px;font-weight:600;align-self:flex-start}.clear:hover{border-color:var(--gold);color:var(--gold)}.no-match{margin-top:24px;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;color:var(--muted)}table.lb{width:100%;border-collapse:collapse;margin-top:32px;table-layout:fixed}.lb th,.lb td{text-align:left;vertical-align:middle;border-bottom:1px solid var(--rule)}.lb thead th{height:48px;font-size:14px;font-weight:600;color:var(--muted);padding:0 8px}.lb th.lb-model{width:46%;padding:16px 8px;font-weight:400}.lb th.num,.lb td.num{width:18%;text-align:right}.lb tbody tr:not(.lb-sep):hover{background:#f3efe20a}.lb tbody tr:not(.lb-sep) th.lb-model,.lb tbody tr:not(.lb-sep) td{height:88px}.lb td.num{padding:0 8px;font-size:32px;font-weight:400;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.num--gi{color:var(--gi)}.num--vi{color:var(--vi)}.sort{background:none;border:0;min-height:44px;padding:0 4px;font-weight:600;color:var(--muted);cursor:pointer;font-size:14px}.sort:hover{color:var(--gold)}th[aria-sort] .sort{color:var(--ink)}th[aria-sort=descending] .sort:after{content:" \25be"}th[aria-sort=ascending] .sort:after{content:" \25b4"}.lb-id{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;min-width:0}.lb-links{display:flex;flex-wrap:wrap;align-items:center;gap:0 16px;margin-top:2px;padding-left:44px}.lb-inspect{min-height:44px;padding:0 6px;background:none;border:0;color:var(--gold);font-size:14px;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.lb-cover{padding-left:44px;font-size:13px;color:var(--muted)}.lb-cover summary{cursor:pointer;min-height:32px;display:flex;align-items:center}.lb-sep th{padding:40px 8px 12px;font-size:14px;font-weight:600;color:var(--gold);border-bottom:1px solid var(--ink)}.lb-more{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;margin-top:24px}.evidence{background:var(--ground)}.evidence-head{padding-block:64px 32px}.chapter-index{position:sticky;top:0;z-index:30;background:var(--ground);height:56px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.ci-wrap{height:56px}.ci-desktop{display:flex;align-items:center;gap:0 20px;height:56px;overflow-x:auto;scrollbar-width:none;white-space:nowrap}.ci-group{flex:none;width:180px;font-size:14px;font-weight:600;color:var(--muted)}.ci-desktop a{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 4px;font-size:15px;font-weight:600;text-decoration:none;color:var(--ink);border-bottom:2px solid transparent}.ci-desktop a:hover{color:var(--gold)}.ci-desktop a[aria-current=true],.ci-menu a[aria-current=true]{border-bottom-color:var(--gold);color:var(--gold)}.ci-desktop .ci-group:nth-of-type(2){margin-left:12px}.ci-mobile{display:none}.ci-menu{position:absolute;left:0;right:0;top:56px;background:var(--ground);border-bottom:1px solid var(--rule);max-height:calc(100dvh - 56px);overflow:auto}.ci-menu ol{list-style:none;margin:0 auto;padding:8px 16px;max-width:1280px}.ci-menu a{display:flex;align-items:center;min-height:48px;font-weight:600;text-decoration:none}.chapter{scroll-margin-top:80px;padding-block:96px 80px;--ar:588/392}.chapter .wrap{display:block}.chapter-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:end}.chapter-head h2{grid-column:span 8;font-size:inherit;letter-spacing:-.03em}.chapter-head .meaning{grid-column:span 4;color:var(--muted);font-size:16px}.chapter-name{display:block;font-size:14px;line-height:1.4;font-weight:600;color:var(--gold);margin-bottom:12px;letter-spacing:0}.question{display:block;font-size:56px;line-height:1.08;font-weight:600}.chapter--newtons-mirror{background:var(--ground);--ar:588/441;padding-top:96px}.chapter--newtons-mirror h2{grid-column:span 9}.chapter--newtons-mirror .meaning{grid-column:span 3}.chapter--ground-truth{background:var(--raised);--ar:588/520;padding-block:72px}.chapter--ground-truth .question{font-size:48px}.chapter--ground-truth h2{grid-column:span 7}.chapter--ground-truth .meaning{grid-column:span 5}.chapter--latch{background:var(--deep);padding-top:80px;padding-bottom:96px}.chapter--latch .question{font-size:52px}.chapter--latch h2{grid-column:1/-1}.chapter--latch .meaning{grid-column:1/-1;max-width:64ch;margin-top:-8px}.chapter--foresight{background:var(--deep);padding-top:0}.chapter--foresight .wrap{border-top:1px solid var(--rule);padding-top:96px}.chapter--foresight .question{font-size:64px}.chapter--mona-lisa{background:var(--ground);--ar:588/560;padding-top:96px}.chapter--mona-lisa h2,.chapter--mona-lisa .meaning{grid-column:1/-1}.chapter--mona-lisa .meaning{max-width:44em;margin-top:-8px}.chapter--selfie{background:var(--ground);padding-top:64px;padding-bottom:80px}.chapter--selfie .question{font-size:44px}.chapter--beach{background:var(--raised);padding-block:80px}.chapter--beach h2,.chapter--beach .meaning{grid-column:1/-1}.chapter--beach .meaning{max-width:44em;margin-top:-8px}.chapter--raccoon{background:var(--ground);padding-top:96px}.chapter--raccoon h2,.chapter--raccoon .meaning{grid-column:1/-1}.chapter--raccoon .meaning{max-width:44em;margin-top:-8px}.reference{margin-top:32px}.reference summary{display:inline-flex;align-items:center;min-height:48px;padding:0 16px;border:1px solid var(--muted);border-radius:var(--r-ctl);cursor:pointer;font-weight:600;font-size:14px}.reference[open] summary{border-color:var(--gold);color:var(--gold)}.ref-media{margin-top:16px;background:var(--deep);border-radius:var(--r-struct);padding:16px;text-align:center}.ref-media img{display:block;margin:0 auto;max-height:80vh;width:auto;max-width:100%;height:auto}.pair-note{margin-top:32px;font-size:14px;color:var(--muted)}.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:40px}.plate{margin:0;min-width:0}.plate-label{color:var(--muted);margin-bottom:8px}.plate-id{min-width:0;margin-bottom:16px}.plate-media{width:100%;aspect-ratio:var(--ar);background:var(--deep);border:1px solid rgba(243,239,226,.12);box-shadow:0 16px 28px #0000003d;border-radius:var(--r-struct);overflow:hidden;display:grid;place-items:center;min-width:0}.plate-media img{display:block;width:100%;height:100%;object-fit:contain;min-width:0}.chapter--latch .plate-media,.chapter--foresight .plate-media{--ar:588/392}.chapter--ground-truth .plate-media{background:#0b1813}.plate-score{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 12px;margin-top:12px;min-height:72px}.ps-label,.ps-of{font-size:14px;line-height:1.4;color:var(--muted)}.ps-num{font-size:64px;line-height:1;font-weight:400;letter-spacing:-.045em;font-variant-numeric:tabular-nums}.plate-meta{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center;margin-top:8px;font-size:14px;color:var(--muted)}.plate-meta a.plain{color:var(--gold);font-weight:600;display:inline-flex;align-items:center;min-height:44px}.plate-cov{font-size:14px;color:var(--muted)}.levels{list-style:none;margin:8px 0 0;padding:0;font-size:13px;line-height:1.5;color:var(--muted)}.plate .btn-outline{min-height:48px;font-size:14px}.chapter-links{margin-top:48px}.chapter-links .quiet{color:var(--ink)}.film-row{margin-top:56px}.film{display:flex;gap:48px;align-items:flex-end;max-width:100%}.film-copy{min-width:0;flex:1 1 auto}.film-label{font-size:28px;line-height:1.2;font-weight:600;letter-spacing:-.025em;max-width:14em}.film-yt{margin-top:8px;font-size:14px}.film-yt a{display:inline-flex;align-items:center;min-height:44px;color:var(--muted)}.film-frame{position:relative;flex:none;background:#050c09;border-radius:var(--r-struct);overflow:hidden}.film--tall .film-frame{width:288px;aspect-ratio:9/16}.film--wide .film-frame{width:min(100%,800px);aspect-ratio:16/9}.film-poster,.film-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}.film-poster img{width:100%;height:100%;object-fit:contain;display:block}.film-play{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:var(--gold);transition:transform var(--ease)}.film-play:after{content:"";position:absolute;left:25px;top:19px;border-style:solid;border-width:13px 0 13px 21px;border-color:transparent transparent transparent var(--deep)}.film-poster:hover .film-play{transform:scale(1.06)}.film-row--right .film{justify-content:flex-end}.film-row--left .film{flex-direction:row-reverse;justify-content:flex-end}.film-row--left .film-copy{text-align:left}.film-row--center .film,.film-row--stage .film--wide{display:block;margin:0 auto}.film-row--center .film-copy,.film-row--stage .film--wide .film-copy{margin-bottom:16px}.film-row--center .film-label,.film-row--stage .film-label{max-width:none}.film-row--stage{display:flex;gap:24px;align-items:flex-start}.film-row--stage .film-slot{flex:0 1 800px;min-width:0}.film-row--stage.has-choices .film-slot{min-height:512px}.film-row--stage .film--tall{display:flex;flex-direction:row;gap:24px;align-items:flex-end}.film-choices{flex:1 1 240px;min-width:0}.film-choices-title{font-size:14px;font-weight:600;color:var(--gold)}.film-choice-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column}.film-choice-list button{min-height:48px;padding:8px 0;background:none;border:0;border-top:1px solid var(--rule);text-align:left;cursor:pointer;font-weight:600;font-size:15px;line-height:1.3}.film-choice-list button:hover{color:var(--gold)}.film-row--none{margin-top:48px}.play{background:var(--raised);padding-block:80px}.play h2{font-size:56px;line-height:1.05}.play-line{margin-top:16px;font-size:20px;color:var(--muted);max-width:36em}.play-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:48px}.play-entry{padding-right:48px;min-width:0}.play-entry+.play-entry{padding:0 0 0 48px;border-left:1px solid var(--rule)}.play-entry img{display:block;width:100%;max-width:480px;aspect-ratio:3/2;object-fit:contain;background:var(--deep);border-radius:var(--r-struct)}.play-entry h3{margin-top:24px;font-size:32px;line-height:1.1}.play-entry p{margin-top:8px;font-size:20px;color:var(--muted);max-width:20em}.play-entry .btn-gold{margin-top:24px;min-height:52px;font-size:20px;padding:0 28px}.stealth{background:var(--ground);padding-block:80px}.stealth-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;margin-top:40px;align-items:start}.stealth-grid{grid-column:span 8;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 24px;align-content:start}.stealth-entry{display:flex;flex-direction:column;gap:20px;align-items:flex-start;min-width:0}.stealth-entry .lockup--xl{--mount:40px;--lname:28px}.stealth-entry>img{width:160px;height:160px;object-fit:contain;flex:none}.stealth-id{min-width:0}.stealth-id p{margin-top:4px}.follow{grid-column:1/-1}.stealth .film-row{grid-column:span 4;margin-top:0}.stealth .film{flex-direction:column;align-items:flex-start;gap:16px}.stealth .film-copy{order:2}.stealth .film-label{font-size:18px}.cite{background:var(--deep);padding-block:64px;border-top:1px solid var(--rule)}.cite-grid{display:grid;grid-template-columns:2fr 1fr;gap:32px 72px}.cite h2{font-size:28px}.cite-text{margin-top:16px;max-width:44em;font-size:16px}.cite-actions{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:16px}.copy-status{font-size:14px;color:var(--muted)}.bib{margin-top:16px}.bib summary{display:flex;align-items:center;min-height:44px;cursor:pointer;font-size:14px;font-weight:600;color:var(--muted)}.cite-bibtex{margin:8px 0 0;padding:16px;background:var(--ground);border-radius:var(--r-struct);overflow-x:auto;font:13px/1.5 ui-monospace,Consolas,monospace}.cite-links{list-style:none;margin:0;padding:0;align-content:start}.picker{width:560px;max-width:calc(100vw - 32px);max-height:min(640px,85dvh);padding:0;border:1px solid var(--rule);border-radius:var(--r-struct);background:var(--raised);color:var(--ink);overflow:hidden}.picker[open]{display:flex;flex-direction:column}.picker::backdrop{background:#050c09b8}.pk-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 16px 0 24px}.pk-head h2{font-size:20px;letter-spacing:-.01em}.pk-close{min-height:44px;padding:0 16px;background:none;border:1px solid var(--muted);border-radius:var(--r-ctl);cursor:pointer;font-size:14px;font-weight:600}.pk-search{margin:16px 24px;width:calc(100% - 48px)}.pk-list{list-style:none;margin:0;padding:0 24px 16px;overflow-y:auto;flex:1}.pk-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;border-top:1px solid var(--rule)}.pk-id{min-width:0;flex:1}.pk-select{flex:none;min-height:44px;min-width:76px;padding:0 16px;background:var(--gold);color:var(--deep);border:0;border-radius:var(--r-ctl);cursor:pointer;font-weight:600}.pk-select:hover{background:#f1d08f}.pk-empty{padding:0 24px 24px;color:var(--muted)}@media(max-width:1139px){.prelude-main,.prelude-side,.map-shell,.rail{grid-column:1/-1}.rail-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.rail-row--overall,.rail-row--open,.rail-row--local{height:200px}.rail-row--overall .rail-score,.rail-row--open .rail-score,.rail-row--local .rail-score{font-size:64px}.chapter-head h2,.chapter--newtons-mirror h2,.chapter--ground-truth h2,.chapter-head .meaning,.chapter--newtons-mirror .meaning,.chapter--ground-truth .meaning,.stealth-grid{grid-column:1/-1}.stealth .film-row{grid-column:1/-1;margin-top:32px}.play-entry img{max-width:100%}}@media(max-width:759px){:root{--gutter:16px}body{font-size:16px}.rail-list{display:block}.rail-row--overall{height:auto;min-height:144px}.rail-row--open,.rail-row--local{height:auto;min-height:128px}.rail-row{overflow:visible;padding-bottom:12px}.map-shell{min-height:0}.rail-row--overall .rail-score{font-size:80px}.rail-row--open .rail-score,.rail-row--local .rail-score{font-size:64px}.rail-ids{max-height:none;margin-top:4px}.rail-title{height:40px;line-height:40px}h1{font-size:48px;gap:0 12px}.version{flex-basis:100%;font-size:16px}.hero-line{font-size:24px}.prelude{gap:20px;padding-block:24px}.hero-actions{display:grid;grid-template-columns:178px 178px;gap:12px}.hero-actions .btn{padding:0 8px}h2{font-size:32px}.definitions{grid-template-columns:1fr}.compare{padding-block:48px}.cmp{margin-top:24px}.cmp-grid{grid-template-columns:138px 92px 138px;column-gap:0;grid-template-areas:"ida ida ida" "idb idb idb" "laba . labb" "sa ms sb" "ga mg gb" "va mv vb"}.cmp-id--a,.cmp-id--b{text-align:left;min-height:88px;padding:12px 0;border-bottom:1px solid var(--rule)}.cmp-id--a .cmp-idbox,.cmp-id--b .cmp-idbox{align-items:flex-start;flex-direction:row;flex-wrap:wrap;gap:4px 12px}.cmp-id--a .cmp-status,.cmp-id--a .cmp-sec{justify-content:flex-start}.cmp-label{margin-bottom:6px;font-size:13px}.change{margin-top:0;margin-left:auto}.cmp-lock{--mount:40px;--lname:20px}.cmp-lock .lockup{--mount:40px;--lname:20px;gap:10px}.cmp-lab{display:block;font-size:13px;color:var(--muted);padding:16px 8px 0}.cmp-lab--a{grid-area:laba;text-align:right}.cmp-lab--b{grid-area:labb;text-align:left}.cmp-n{padding:16px 10px 6px}.cmp-n--score{font-size:52px}.cmp-n--gi,.cmp-n--vi{font-size:36px}.cmp-grid[data-wide-score] .cmp-n--score{font-size:48px}.cmp-m{font-size:13px;padding-inline:4px}.cmp-go{width:100%}.scores{padding-block:48px}.filters{gap:16px}.filter-types{width:100%;grid-template-columns:1fr;gap:12px}.choice{max-width:none}.filter-search{flex:1 1 100%}table.lb,.lb tbody,.lb tr,.lb th,.lb td{display:block}.lb thead tr{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--rule)}.lb thead th{padding:0;text-align:center;border:0}.lb thead th.lb-model{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.lb tbody tr:not(.lb-sep){display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--rule);padding-block:16px}.lb tbody tr:not(.lb-sep) th.lb-model{grid-column:1/-1;width:auto;padding:0 0 8px;border:0;height:auto}.lb tbody tr:not(.lb-sep) td{height:auto}.lb td.num{width:auto;padding:0;border:0;text-align:center;font-size:28px}.lb td.num:before{content:attr(data-label);display:block;font-size:13px;font-weight:600;letter-spacing:0;color:var(--muted)}.lb th.num{width:auto}.lb-sep,.lb-sep th{display:block;width:auto}.lockup--s{--mount:28px;--lname:17px}.lb-links,.lb-cover{padding-left:0}.lb-more .btn{width:100%}.evidence-head{padding-block:48px 24px}.ci-desktop{display:none}.ci-mobile{display:flex;align-items:center;justify-content:space-between;height:56px}.ci-current{font-weight:600;font-size:16px}.ci-btn{min-height:44px;padding:0 16px;background:none;border:1px solid var(--muted);border-radius:var(--r-ctl);cursor:pointer;font-size:14px;font-weight:600}.chapter{padding-block:48px}.chapter--newtons-mirror,.chapter--mona-lisa{padding-top:64px}.chapter--foresight{padding-top:0}.chapter--foresight .wrap{padding-top:48px}.chapter-head{display:block}.chapter-head .meaning{margin-top:16px}.question{font-size:34px}.chapter--ground-truth .question,.chapter--latch .question{font-size:32px}.chapter--foresight .question{font-size:36px}.chapter--selfie .question{font-size:30px}.chapter--newtons-mirror{--ar:368/276}.chapter--ground-truth,.chapter--mona-lisa{--ar:368/491}.chapter--selfie{--ar:368/276}.chapter--latch .plate-media,.chapter--foresight .plate-media{--ar:368/245}.pair{grid-template-columns:1fr;gap:32px;margin-top:24px}.ps-num{font-size:48px}.plate-score{min-height:0}.film-row{margin-top:40px}.film{flex-direction:column;align-items:center;gap:16px}.film--tall .film-frame{width:320px;max-width:100%}.film-copy{order:2;text-align:center}.film-label{font-size:20px;max-width:none}.film-row--left .film{flex-direction:column}.film-row--stage{display:block}.film-row--stage.has-choices .film-slot{min-height:0}.film-row--stage .film--tall{flex-direction:column;align-items:center}.film-choices{margin-top:24px}.play{padding-block:48px}.play h2{font-size:36px}.play-grid{grid-template-columns:1fr;margin-top:32px}.play-entry,.play-entry+.play-entry{padding:0;border:0}.play-entry+.play-entry{margin-top:48px}.play-entry img{max-width:100%}.play-entry .btn-gold{width:100%}.stealth{padding-block:48px}.stealth-grid{grid-template-columns:1fr;gap:32px}.stealth-entry{flex-direction:row;align-items:center}.stealth-entry>img{width:112px;height:112px}.stealth-entry .lockup--xl{--mount:40px;--lname:20px}.follow .btn{width:100%;min-height:48px;text-align:center}.cite{padding-block:40px}.cite-grid{grid-template-columns:1fr}.picker{inset:auto 16px 16px;margin:0;width:auto;max-width:none}.pk-head{padding-left:16px}.pk-search{margin:12px 16px;width:calc(100% - 32px)}.pk-list{padding:0 16px 16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
|
|
|
|
| 1 |
+
@font-face{font-family:DM Sans;src:url(/assets/fonts/dm-sans-latin.woff2) format("woff2");font-weight:100 1000;font-style:normal;font-display:swap}:root{color-scheme:dark;--ground:#10221c;--raised:#18312a;--deep:#0b1813;--ink:#f3efe2;--muted:#a4b3a6;--gold:#e8c27c;--gi:#8cc7b5;--vi:#efa175;--rule:rgba(243,239,226,.16);--warm:#fcfcf5;--sans:"DM Sans",Arial,sans-serif;--gutter:40px;--r-struct:6px;--r-ctl:4px;--r-label:999px;--ease:.14s}*{box-sizing:border-box}html{background:#10221c;-webkit-text-size-adjust:100%}body{margin:0;background:#10221c;color:var(--ink);font:400 18px/1.6 var(--sans);overflow-wrap:break-word}[hidden]{display:none!important}img{max-width:100%}a{color:inherit;transition:color var(--ease),border-color var(--ease),background-color var(--ease)}button,input,select,dialog{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:var(--r-ctl)}p{margin:0}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.025em}.sr-only{position:absolute!important;left:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.wrap{width:100%;max-width:1280px;margin:0 auto;padding-inline:var(--gutter)}.skip{position:absolute;left:var(--gutter);top:-100px;z-index:60;padding:12px 16px;background:var(--gold);color:var(--deep);font-weight:600}.skip:focus{top:8px}.label,.kicker,.plate-label,.slot-label{font-size:14px;line-height:1.4}.muted{color:var(--muted)}.plain{text-decoration:none}a.plain:hover{color:var(--gold);text-decoration:underline}.quiet{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);text-decoration:none;font-size:14px;font-weight:600}.quiet:hover{color:var(--gold)}.sec{display:inline-flex;align-items:center;min-height:32px;font-size:13px;line-height:1.4;color:var(--muted);text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:3px}.sec:hover{color:var(--gold)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border:1px solid transparent;border-radius:var(--r-ctl);font:600 16px/1.2 var(--sans);text-decoration:none;cursor:pointer;background:none}.btn-gold{background:var(--gold);color:var(--deep)}.btn-gold:hover{background:#f1d08f;color:var(--deep)}.btn-outline{border-color:var(--muted);color:var(--ink)}.btn-outline:hover{border-color:var(--gold);color:var(--gold)}.lockup{--mount:40px;--lname:20px;display:inline-flex;align-items:center;gap:12px;max-width:100%;min-width:0;text-decoration:none;color:var(--ink)}.lockup--xl{--mount:64px;--lname:32px}.lockup--l1{--mount:56px;--lname:24px}.lockup--l2{--mount:40px;--lname:20px}.lockup--m{--mount:40px;--lname:24px}.lockup--s{--mount:32px;--lname:18px}.mount{display:inline-grid;place-items:center;flex:none;width:var(--mount);height:var(--mount);background:var(--warm);border-radius:var(--r-struct)}.mount img{width:72%;height:72%;object-fit:contain;display:block}.mount .dot{width:8px;height:8px;border-radius:50%;background:#26392f}.lname{min-width:0;font-size:var(--lname);line-height:1.2;font-weight:600;letter-spacing:-.015em;white-space:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.lname::-webkit-scrollbar{display:none}.lname[data-scroll]{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 20px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 20px),transparent)}.arrow{flex:none;color:var(--muted);transition:color var(--ease)}.lockup:hover .lname{color:var(--gold);text-decoration:underline;text-underline-offset:4px}.lockup:hover .arrow{color:var(--gold)}.tag{display:inline-block;font-size:13px;line-height:1.4;padding:1px 10px;border:1px solid var(--rule);border-radius:var(--r-label);color:var(--muted);white-space:nowrap}.hero{position:relative;background:linear-gradient(135deg,#18312a,#0b1813);padding-bottom:40px}.masthead{height:56px}.masthead .wrap{display:flex;align-items:center;height:56px}.kicker{color:var(--muted)}.kicker a{color:var(--ink);font-weight:600}.prelude{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding-block:40px}.prelude-main{grid-column:span 8}.prelude-side{grid-column:span 4;align-self:end}h1{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 20px;font-size:88px;line-height:1;font-weight:700;letter-spacing:-.04em}.version{font-size:32px;font-weight:600;color:var(--muted);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.hero-line{margin-top:20px;font-size:32px;line-height:1.2;font-weight:400;letter-spacing:-.02em}.hero-lead{max-width:34em}.snapshot{margin-top:12px;font-size:14px;color:var(--muted)}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.scene{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:start}.map-shell{grid-column:span 8;position:relative;min-height:0}.map-shell:before{content:"";position:absolute;left:-8%;top:4%;width:80%;height:88%;background:radial-gradient(closest-side,rgba(255,226,170,.06),transparent);pointer-events:none}.map-note{padding:24px 0;color:var(--muted);font-size:14px}stealthmark-map{display:block;position:relative;--sm-map-accent:#e8c27c;--sm-map-surface:transparent;--sm-map-ink:#f3efe2;--sm-map-muted:#a4b3a6;--sm-map-line:rgba(243,239,226,.16)}.rail{grid-column:span 4;min-width:0}.rail-title{height:32px;font-size:14px;line-height:32px;font-weight:600;letter-spacing:0;color:var(--muted)}.rail-list{list-style:none;margin:0;padding:0}.rail-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"cat score" "ids ids" "links links";align-content:start;gap:0 12px;border-top:1px solid var(--rule);padding-top:12px;min-width:0;overflow:hidden}.rail-row--overall{height:208px}.rail-row--open,.rail-row--local{height:176px}.rail-cat{grid-area:cat;font-size:14px;line-height:1.4;color:var(--muted);align-self:start}.rail-score{grid-area:score;font-weight:400;letter-spacing:-.045em;font-variant-numeric:tabular-nums;line-height:.9;margin:0;text-align:right}.rail-row--overall .rail-score{font-size:104px}.rail-row--open .rail-score,.rail-row--local .rail-score{font-size:72px}.rail-ids{grid-area:ids;display:flex;flex-direction:column;gap:8px;margin-top:12px;max-height:84px;overflow-y:auto;scrollbar-width:thin;min-width:0}.rail-id{min-width:0}.rail-links{grid-area:links;display:flex;flex-wrap:wrap;gap:0 16px;margin-top:2px}section{position:relative}.section-lead{margin-top:12px;max-width:40em;color:var(--muted)}h2{font-size:40px;line-height:1.1}.compare{background:var(--deep);padding-block:64px}.cmp{margin-top:40px}.cmp-grid{display:grid;grid-template-columns:minmax(0,1fr) 128px minmax(0,1fr);column-gap:24px;grid-template-areas:"ida . idb" "sa ms sb" "ga mg gb" "va mv vb"}.cmp-id--a{grid-area:ida}.cmp-id--b{grid-area:idb}.cmp-lab{display:none}[data-cell=score-a]{grid-area:sa}[data-cell=score-m]{grid-area:ms}[data-cell=score-b]{grid-area:sb}[data-cell=gi-a]{grid-area:ga}[data-cell=gi-m]{grid-area:mg}[data-cell=gi-b]{grid-area:gb}[data-cell=vi-a]{grid-area:va}[data-cell=vi-m]{grid-area:mv}[data-cell=vi-b]{grid-area:vb}.cmp-label{font-size:14px;line-height:1.4;color:var(--muted);margin-bottom:12px}.cmp-id--a{text-align:right}.cmp-id--a .cmp-idbox{display:flex;flex-direction:column;align-items:flex-end}.cmp-id--b .cmp-idbox{display:flex;flex-direction:column;align-items:flex-start}.cmp-lock{max-width:100%;min-width:0}.change{margin-top:12px;min-height:44px;padding:0 16px;background:none;border:1px solid var(--muted);border-radius:var(--r-ctl);cursor:pointer;font-size:14px;font-weight:600}.change:hover{border-color:var(--gold);color:var(--gold)}html:not(.js) .change{display:none}.cmp-status{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px;min-height:0}.cmp-id--a .cmp-status,.cmp-id--a .cmp-sec{justify-content:flex-end}.cmp-sec{display:flex;flex-wrap:wrap;gap:0 16px}.cmp-n{font-weight:400;font-variant-numeric:tabular-nums;letter-spacing:-.045em;line-height:1;padding-block:20px 8px;border-bottom:1px solid var(--rule)}.cmp-n--a{text-align:right}.cmp-n--b{text-align:left}.cmp-n--score{font-size:112px;color:var(--ink)}.cmp-n--gi{font-size:56px;color:var(--gi)}.cmp-n--vi{font-size:56px;color:var(--vi)}.cmp-grid[data-wide-score] .cmp-n--score{font-size:96px}.cmp-m{align-self:end;text-align:center;font-size:14px;line-height:1.3;color:var(--muted);padding-bottom:12px;border-bottom:1px solid var(--rule)}.cmp-m--gi{color:var(--gi)}.cmp-m--vi{color:var(--vi)}.cmp-go-wrap{display:flex;justify-content:center;margin-top:32px}.cmp-go{width:360px;max-width:100%;min-height:52px}.cmp-go[aria-disabled=true]{opacity:.45;pointer-events:none}.cmp-note{text-align:center;margin-top:12px;color:var(--gold);font-size:14px}.scores{background:var(--ground);padding-block:64px}.means{margin-top:24px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.means summary{display:flex;align-items:center;min-height:48px;cursor:pointer;font-weight:600;font-size:16px}.definitions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 32px;margin:8px 0 24px}.definitions dt{font-weight:600;margin-bottom:4px}.definitions dd{margin:0;font-size:14px;line-height:1.55;color:var(--muted)}.filters{display:flex;flex-wrap:wrap;gap:16px 32px;align-items:flex-start;margin-top:24px}.filter-types{display:grid;grid-template-columns:repeat(3,minmax(0,208px));gap:8px;flex:0 1 auto}.choice{position:relative;display:grid;align-content:start;min-width:0;max-width:260px}.choice input{position:absolute;opacity:0;inset:0 0 auto;height:48px;width:100%;margin:0;cursor:pointer}.choice-name{display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border:1px solid var(--rule);border-radius:var(--r-ctl);font-weight:600;font-size:16px;transition:var(--ease)}.choice input:checked+.choice-name{background:var(--gold);border-color:var(--gold);color:var(--deep)}.choice input:focus-visible+.choice-name{outline:2px solid var(--gold);outline-offset:3px}.choice small{margin-top:6px;font-size:13px;line-height:1.35;color:var(--muted)}.filter-search{flex:0 1 320px;display:flex;flex-direction:column;gap:8px;min-width:0}input[type=search]{width:100%;height:48px;padding:0 14px;background:var(--deep);border:1px solid var(--rule);border-radius:var(--r-ctl);font-size:16px}input[type=search]::placeholder{color:var(--muted)}.clear{min-height:44px;padding:0 16px;background:none;border:1px solid var(--rule);border-radius:var(--r-ctl);cursor:pointer;font-size:14px;font-weight:600;align-self:flex-start}.clear:hover{border-color:var(--gold);color:var(--gold)}.no-match{margin-top:24px;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;color:var(--muted)}table.lb{width:100%;border-collapse:collapse;margin-top:32px;table-layout:fixed}.lb th,.lb td{text-align:left;vertical-align:middle;border-bottom:1px solid var(--rule)}.lb thead th{height:48px;font-size:14px;font-weight:600;color:var(--muted);padding:0 8px}.lb th.lb-model{width:46%;padding:16px 8px;font-weight:400}.lb th.num,.lb td.num{width:18%;text-align:right}.lb tbody tr:not(.lb-sep):hover{background:#f3efe20a}.lb tbody tr:not(.lb-sep) th.lb-model,.lb tbody tr:not(.lb-sep) td{height:88px}.lb td.num{padding:0 8px;font-size:32px;font-weight:400;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.num--gi{color:var(--gi)}.num--vi{color:var(--vi)}.sort{background:none;border:0;min-height:44px;padding:0 4px;font-weight:600;color:var(--muted);cursor:pointer;font-size:14px}.sort:hover{color:var(--gold)}th[aria-sort] .sort{color:var(--ink)}th[aria-sort=descending] .sort:after{content:" \25be"}th[aria-sort=ascending] .sort:after{content:" \25b4"}.lb-id{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;min-width:0}.lb-links{display:flex;flex-wrap:wrap;align-items:center;gap:0 16px;margin-top:2px;padding-left:44px}.lb-inspect{display:inline-flex;align-items:center;min-height:44px;padding:0 6px;color:var(--gold);font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:3px}.lb-cover{padding-left:44px;font-size:13px;color:var(--muted)}.lb-cover summary{cursor:pointer;min-height:32px;display:flex;align-items:center}.lb-sep th{padding:40px 8px 12px;font-size:14px;font-weight:600;color:var(--gold);border-bottom:1px solid var(--ink)}.lb-more{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;margin-top:24px}.evidence{background:var(--ground)}.evidence-head{padding-block:64px 32px}.chapter-index{position:sticky;top:0;z-index:30;background:var(--ground);height:56px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.ci-wrap{height:56px}.ci-desktop{display:flex;align-items:center;gap:0 20px;height:56px;overflow-x:auto;scrollbar-width:none;white-space:nowrap}.ci-group{flex:none;width:180px;font-size:14px;font-weight:600;color:var(--muted)}.ci-desktop a{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 4px;font-size:15px;font-weight:600;text-decoration:none;color:var(--ink);border-bottom:2px solid transparent}.ci-desktop a:hover{color:var(--gold)}.ci-desktop a[aria-current=true],.ci-menu a[aria-current=true]{border-bottom-color:var(--gold);color:var(--gold)}.ci-desktop .ci-group:nth-of-type(2){margin-left:12px}.ci-mobile{display:none}.ci-menu{position:absolute;left:0;right:0;top:56px;background:var(--ground);border-bottom:1px solid var(--rule);max-height:calc(100dvh - 56px);overflow:auto}.ci-menu ol{list-style:none;margin:0 auto;padding:8px 16px;max-width:1280px}.ci-menu a{display:flex;align-items:center;min-height:48px;font-weight:600;text-decoration:none}.chapter{scroll-margin-top:80px;padding-block:96px 80px;--ar:588/392}.chapter .wrap{display:block}.chapter-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:end}.chapter-head h2{grid-column:span 8;font-size:inherit;letter-spacing:-.03em}.chapter-head .meaning{grid-column:span 4;color:var(--muted);font-size:16px}.chapter-name{display:block;font-size:14px;line-height:1.4;font-weight:600;color:var(--gold);margin-bottom:12px;letter-spacing:0}.question{display:block;font-size:56px;line-height:1.08;font-weight:600}.chapter--newtons-mirror{background:var(--ground);--ar:588/441;padding-top:96px}.chapter--newtons-mirror h2{grid-column:span 9}.chapter--newtons-mirror .meaning{grid-column:span 3}.chapter--ground-truth{background:var(--raised);--ar:588/520;padding-block:72px}.chapter--ground-truth .question{font-size:48px}.chapter--ground-truth h2{grid-column:span 7}.chapter--ground-truth .meaning{grid-column:span 5}.chapter--latch{background:var(--deep);padding-top:80px;padding-bottom:96px}.chapter--latch .question{font-size:52px}.chapter--latch h2{grid-column:1/-1}.chapter--latch .meaning{grid-column:1/-1;max-width:64ch;margin-top:-8px}.chapter--foresight{background:var(--deep);padding-top:0}.chapter--foresight .wrap{border-top:1px solid var(--rule);padding-top:96px}.chapter--foresight .question{font-size:64px}.chapter--mona-lisa{background:var(--ground);--ar:588/560;padding-top:96px}.chapter--mona-lisa h2,.chapter--mona-lisa .meaning{grid-column:1/-1}.chapter--mona-lisa .meaning{max-width:44em;margin-top:-8px}.chapter--selfie{background:var(--ground);padding-top:64px;padding-bottom:80px}.chapter--selfie .question{font-size:44px}.chapter--beach{background:var(--raised);padding-block:80px}.chapter--beach h2,.chapter--beach .meaning{grid-column:1/-1}.chapter--beach .meaning{max-width:44em;margin-top:-8px}.chapter--raccoon{background:var(--ground);padding-top:96px}.chapter--raccoon h2,.chapter--raccoon .meaning{grid-column:1/-1}.chapter--raccoon .meaning{max-width:44em;margin-top:-8px}.reference{margin-top:32px}.reference summary{display:inline-flex;align-items:center;min-height:48px;padding:0 16px;border:1px solid var(--muted);border-radius:var(--r-ctl);cursor:pointer;font-weight:600;font-size:14px}.reference[open] summary{border-color:var(--gold);color:var(--gold)}.ref-media{margin-top:16px;background:var(--deep);border-radius:var(--r-struct);padding:16px;text-align:center}.ref-media img{display:block;margin:0 auto;max-height:80vh;width:auto;max-width:100%;height:auto}.pair-note{margin-top:32px;font-size:14px;color:var(--muted)}.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:40px}.plate{margin:0;min-width:0}.plate-label{color:var(--muted);margin-bottom:8px}.plate-id{min-width:0;margin-bottom:16px}.plate-media{width:100%;aspect-ratio:var(--ar);background:var(--deep);border:1px solid rgba(243,239,226,.12);box-shadow:0 16px 28px #0000003d;border-radius:var(--r-struct);overflow:hidden;display:grid;place-items:center;min-width:0}.plate-media img{display:block;width:100%;height:100%;object-fit:contain;min-width:0}.chapter--latch .plate-media,.chapter--foresight .plate-media{--ar:588/392}.chapter--ground-truth .plate-media{background:#0b1813}.plate-score{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 12px;margin-top:12px;min-height:72px}.ps-label,.ps-of{font-size:14px;line-height:1.4;color:var(--muted)}.ps-num{font-size:64px;line-height:1;font-weight:400;letter-spacing:-.045em;font-variant-numeric:tabular-nums}.plate-meta{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center;margin-top:8px;font-size:14px;color:var(--muted)}.plate-meta a.plain{color:var(--gold);font-weight:600;display:inline-flex;align-items:center;min-height:44px}.plate-cov{font-size:14px;color:var(--muted)}.levels{list-style:none;margin:8px 0 0;padding:0;font-size:13px;line-height:1.5;color:var(--muted)}.plate .btn-outline{min-height:48px;font-size:14px}.chapter-links{margin-top:48px}.chapter-links .quiet{color:var(--ink)}.film-row{margin-top:56px}.film{display:flex;gap:48px;align-items:flex-end;max-width:100%}.film-copy{min-width:0;flex:1 1 auto}.film-label{font-size:28px;line-height:1.2;font-weight:600;letter-spacing:-.025em;max-width:14em}.film-yt{margin-top:8px;font-size:14px}.film-yt a{display:inline-flex;align-items:center;min-height:44px;color:var(--muted)}.film-frame{position:relative;flex:none;background:#050c09;border-radius:var(--r-struct);overflow:hidden}.film--tall .film-frame{width:288px;aspect-ratio:9/16}.film--wide .film-frame{width:min(100%,800px);aspect-ratio:16/9}.film-poster,.film-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}.film-poster img{width:100%;height:100%;object-fit:contain;display:block}.film-play{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:var(--gold);transition:transform var(--ease)}.film-play:after{content:"";position:absolute;left:25px;top:19px;border-style:solid;border-width:13px 0 13px 21px;border-color:transparent transparent transparent var(--deep)}.film-poster:hover .film-play{transform:scale(1.06)}.film-row--right .film{justify-content:flex-end}.film-row--left .film{flex-direction:row-reverse;justify-content:flex-end}.film-row--left .film-copy{text-align:left}.film-row--center .film,.film-row--stage .film--wide{display:block;margin:0 auto}.film-row--center .film-copy,.film-row--stage .film--wide .film-copy{margin-bottom:16px}.film-row--center .film-label,.film-row--stage .film-label{max-width:none}.film-row--stage{display:flex;gap:24px;align-items:flex-start}.film-row--stage .film-slot{flex:0 1 800px;min-width:0}.film-row--stage.has-choices .film-slot{min-height:512px}.film-row--stage .film--tall{display:flex;flex-direction:row;gap:24px;align-items:flex-end}.film-choices{flex:1 1 240px;min-width:0}.film-choices-title{font-size:14px;font-weight:600;color:var(--gold)}.film-choice-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column}.film-choice-list button{min-height:48px;padding:8px 0;background:none;border:0;border-top:1px solid var(--rule);text-align:left;cursor:pointer;font-weight:600;font-size:15px;line-height:1.3}.film-choice-list button:hover{color:var(--gold)}.film-row--none{margin-top:48px}.play{background:var(--raised);padding-block:80px}.play h2{font-size:56px;line-height:1.05}.play-line{margin-top:16px;font-size:20px;color:var(--muted);max-width:36em}.play-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:48px}.play-entry{padding-right:48px;min-width:0}.play-entry+.play-entry{padding:0 0 0 48px;border-left:1px solid var(--rule)}.play-entry img{display:block;width:100%;max-width:480px;aspect-ratio:3/2;object-fit:contain;background:var(--deep);border-radius:var(--r-struct)}.play-entry h3{margin-top:24px;font-size:32px;line-height:1.1}.play-entry p{margin-top:8px;font-size:20px;color:var(--muted);max-width:20em}.play-entry .btn-gold{margin-top:24px;min-height:52px;font-size:20px;padding:0 28px}.stealth{background:var(--ground);padding-block:80px}.stealth-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;margin-top:40px;align-items:start}.stealth-grid{grid-column:span 8;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 24px;align-content:start}.stealth-entry{display:flex;flex-direction:column;gap:20px;align-items:flex-start;min-width:0}.stealth-entry .lockup--xl{--mount:40px;--lname:28px}.stealth-entry>img{width:160px;height:160px;object-fit:contain;flex:none}.stealth-id{min-width:0}.stealth-id p{margin-top:4px}.follow{grid-column:1/-1}.stealth .film-row{grid-column:span 4;margin-top:0}.stealth .film{flex-direction:column;align-items:flex-start;gap:16px}.stealth .film-copy{order:2}.stealth .film-label{font-size:18px}.cite{background:var(--deep);padding-block:64px;border-top:1px solid var(--rule)}.cite-grid{display:grid;grid-template-columns:2fr 1fr;gap:32px 72px}.cite h2{font-size:28px}.cite-text{margin-top:16px;max-width:44em;font-size:16px}.cite-actions{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:16px}.copy-status{font-size:14px;color:var(--muted)}.bib{margin-top:16px}.bib summary{display:flex;align-items:center;min-height:44px;cursor:pointer;font-size:14px;font-weight:600;color:var(--muted)}.cite-bibtex{margin:8px 0 0;padding:16px;background:var(--ground);border-radius:var(--r-struct);overflow-x:auto;font:13px/1.5 ui-monospace,Consolas,monospace}.cite-links{list-style:none;margin:0;padding:0;align-content:start}.picker{width:560px;max-width:calc(100vw - 32px);max-height:min(640px,85dvh);padding:0;border:1px solid var(--rule);border-radius:var(--r-struct);background:var(--raised);color:var(--ink);overflow:hidden}.picker[open]{display:flex;flex-direction:column}.picker::backdrop{background:#050c09b8}.pk-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 16px 0 24px}.pk-head h2{font-size:20px;letter-spacing:-.01em}.pk-close{min-height:44px;padding:0 16px;background:none;border:1px solid var(--muted);border-radius:var(--r-ctl);cursor:pointer;font-size:14px;font-weight:600}.pk-search{margin:16px 24px;width:calc(100% - 48px)}.pk-list{list-style:none;margin:0;padding:0 24px 16px;overflow-y:auto;flex:1}.pk-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;border-top:1px solid var(--rule)}.pk-id{min-width:0;flex:1}.pk-select{flex:none;min-height:44px;min-width:76px;padding:0 16px;background:var(--gold);color:var(--deep);border:0;border-radius:var(--r-ctl);cursor:pointer;font-weight:600}.pk-select:hover{background:#f1d08f}.pk-empty{padding:0 24px 24px;color:var(--muted)}@media(max-width:1139px){.prelude-main,.prelude-side,.map-shell,.rail{grid-column:1/-1}.rail-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.rail-row--overall,.rail-row--open,.rail-row--local{height:200px}.rail-row--overall .rail-score,.rail-row--open .rail-score,.rail-row--local .rail-score{font-size:64px}.chapter-head h2,.chapter--newtons-mirror h2,.chapter--ground-truth h2,.chapter-head .meaning,.chapter--newtons-mirror .meaning,.chapter--ground-truth .meaning,.stealth-grid{grid-column:1/-1}.stealth .film-row{grid-column:1/-1;margin-top:32px}.play-entry img{max-width:100%}}@media(max-width:759px){:root{--gutter:16px}body{font-size:16px}.rail-list{display:block}.rail-row--overall{height:auto;min-height:144px}.rail-row--open,.rail-row--local{height:auto;min-height:128px}.rail-row{overflow:visible;padding-bottom:12px}.map-shell{min-height:0}.rail-row--overall .rail-score{font-size:80px}.rail-row--open .rail-score,.rail-row--local .rail-score{font-size:64px}.rail-ids{max-height:none;margin-top:4px}.rail-title{height:40px;line-height:40px}h1{font-size:48px;gap:0 12px}.version{flex-basis:100%;font-size:16px}.hero-line{font-size:24px}.prelude{gap:20px;padding-block:24px}.hero-actions{display:grid;grid-template-columns:178px 178px;gap:12px}.hero-actions .btn{padding:0 8px}h2{font-size:32px}.definitions{grid-template-columns:1fr}.compare{padding-block:48px}.cmp{margin-top:24px}.cmp-grid{grid-template-columns:138px 92px 138px;column-gap:0;grid-template-areas:"ida ida ida" "idb idb idb" "laba . labb" "sa ms sb" "ga mg gb" "va mv vb"}.cmp-id--a,.cmp-id--b{text-align:left;min-height:88px;padding:12px 0;border-bottom:1px solid var(--rule)}.cmp-id--a .cmp-idbox,.cmp-id--b .cmp-idbox{align-items:flex-start;flex-direction:row;flex-wrap:wrap;gap:4px 12px}.cmp-id--a .cmp-status,.cmp-id--a .cmp-sec{justify-content:flex-start}.cmp-label{margin-bottom:6px;font-size:13px}.change{margin-top:0;margin-left:auto}.cmp-lock{--mount:40px;--lname:20px}.cmp-lock .lockup{--mount:40px;--lname:20px;gap:10px}.cmp-lab{display:block;font-size:13px;color:var(--muted);padding:16px 8px 0}.cmp-lab--a{grid-area:laba;text-align:right}.cmp-lab--b{grid-area:labb;text-align:left}.cmp-n{padding:16px 10px 6px}.cmp-n--score{font-size:52px}.cmp-n--gi,.cmp-n--vi{font-size:36px}.cmp-grid[data-wide-score] .cmp-n--score{font-size:48px}.cmp-m{font-size:13px;padding-inline:4px}.cmp-go{width:100%}.scores{padding-block:48px}.filters{gap:16px}.filter-types{width:100%;grid-template-columns:1fr;gap:12px}.choice{max-width:none}.filter-search{flex:1 1 100%}table.lb,.lb tbody,.lb tr,.lb th,.lb td{display:block}.lb thead tr{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--rule)}.lb thead th{padding:0;text-align:center;border:0}.lb thead th.lb-model{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.lb tbody tr:not(.lb-sep){display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--rule);padding-block:16px}.lb tbody tr:not(.lb-sep) th.lb-model{grid-column:1/-1;width:auto;padding:0 0 8px;border:0;height:auto}.lb tbody tr:not(.lb-sep) td{height:auto}.lb td.num{width:auto;padding:0;border:0;text-align:center;font-size:28px}.lb td.num:before{content:attr(data-label);display:block;font-size:13px;font-weight:600;letter-spacing:0;color:var(--muted)}.lb th.num{width:auto}.lb-sep,.lb-sep th{display:block;width:auto}.lockup--s{--mount:28px;--lname:17px}.lb-links,.lb-cover{padding-left:0}.lb-more .btn{width:100%}.evidence-head{padding-block:48px 24px}.ci-desktop{display:none}.ci-mobile{display:flex;align-items:center;justify-content:space-between;height:56px}.ci-current{font-weight:600;font-size:16px}.ci-btn{min-height:44px;padding:0 16px;background:none;border:1px solid var(--muted);border-radius:var(--r-ctl);cursor:pointer;font-size:14px;font-weight:600}.chapter{padding-block:48px}.chapter--newtons-mirror,.chapter--mona-lisa{padding-top:64px}.chapter--foresight{padding-top:0}.chapter--foresight .wrap{padding-top:48px}.chapter-head{display:block}.chapter-head .meaning{margin-top:16px}.question{font-size:34px}.chapter--ground-truth .question,.chapter--latch .question{font-size:32px}.chapter--foresight .question{font-size:36px}.chapter--selfie .question{font-size:30px}.chapter--newtons-mirror{--ar:368/276}.chapter--ground-truth,.chapter--mona-lisa{--ar:368/491}.chapter--selfie{--ar:368/276}.chapter--latch .plate-media,.chapter--foresight .plate-media{--ar:368/245}.pair{grid-template-columns:1fr;gap:32px;margin-top:24px}.ps-num{font-size:48px}.plate-score{min-height:0}.film-row{margin-top:40px}.film{flex-direction:column;align-items:center;gap:16px}.film--tall .film-frame{width:320px;max-width:100%}.film-copy{order:2;text-align:center}.film-label{font-size:20px;max-width:none}.film-row--left .film{flex-direction:column}.film-row--stage{display:block}.film-row--stage.has-choices .film-slot{min-height:0}.film-row--stage .film--tall{flex-direction:column;align-items:center}.film-choices{margin-top:24px}.play{padding-block:48px}.play h2{font-size:36px}.play-grid{grid-template-columns:1fr;margin-top:32px}.play-entry,.play-entry+.play-entry{padding:0;border:0}.play-entry+.play-entry{margin-top:48px}.play-entry img{max-width:100%}.play-entry .btn-gold{width:100%}.stealth{padding-block:48px}.stealth-grid{grid-template-columns:1fr;gap:32px}.stealth-entry{flex-direction:row;align-items:center}.stealth-entry>img{width:112px;height:112px}.stealth-entry .lockup--xl{--mount:40px;--lname:20px}.follow .btn{width:100%;min-height:48px;text-align:center}.cite{padding-block:40px}.cite-grid{grid-template-columns:1fr}.picker{inset:auto 16px 16px;margin:0;width:auto;max-width:none}.pk-head{padding-left:16px}.pk-search{margin:12px 16px;width:calc(100% - 32px)}.pk-list{padding:0 16px 16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
|
assets/space.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
import{ORIGIN as
|
| 2 |
.map{border:0!important;border-radius:0!important;padding:0!important;background:transparent!important;box-shadow:none!important}
|
| 3 |
.top{height:48px;padding:0!important;border:0!important;margin:0!important;display:flex;align-items:center}
|
| 4 |
.top-actions,.title-stack h2,.title-stack .caption,.toolbar,.bottom,.estimate-cta,.share,.inspector,.chooser,.tooltip,.metric-tooltip,.overlay{display:none!important}
|
|
@@ -13,7 +13,7 @@ import{ORIGIN as J,esc as u,fill as K,withUtm as Q,slugOf as pe,assetSrc as Ie,i
|
|
| 13 |
.sl-hit:focus-visible{outline:2px solid #e8c27c;outline-offset:2px}
|
| 14 |
.space-dock{grid-column:1;grid-row:2;width:100%;height:var(--dock-h,120px);overflow-y:auto;border-top:1px solid rgba(243,239,226,.16);padding:12px 0 0;color:#f3efe2;font-family:'DM Sans',sans-serif;scrollbar-width:thin;min-width:0}
|
| 15 |
.dk-hint{font-size:14px;line-height:1.5;color:#a4b3a6;margin:0}
|
| 16 |
-
.dk-model{display:grid;grid-template-columns:minmax(0,1.
|
| 17 |
.dk-id{display:grid;gap:8px;min-width:0;justify-items:start}
|
| 18 |
.dk-act{display:grid;gap:4px;justify-items:start;min-width:0}
|
| 19 |
.dk-scores{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0}
|
|
@@ -39,4 +39,4 @@ import{ORIGIN as J,esc as u,fill as K,withUtm as Q,slugOf as pe,assetSrc as Ie,i
|
|
| 39 |
.dk-list .sc{grid-column:1/-1;font-size:13px;color:#a4b3a6;font-variant-numeric:tabular-nums}
|
| 40 |
.dk-list button{grid-row:1;grid-column:2;min-height:44px;min-width:64px;background:#e8c27c;color:#0b1813;border:0;border-radius:4px;font:600 14px 'DM Sans',sans-serif;cursor:pointer}
|
| 41 |
.sr-only{position:absolute!important;left:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
|
| 42 |
-
@media (max-width:759px){.dk-model{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 12px}.dk-act{grid-column:1/-1;grid-auto-flow:column;justify-content:start;gap:12px}.dk-scores dd{font-size:24px}.dk-scores{gap:4px}.dk-list{grid-template-columns:1fr}.dk-list .sc{display:none}}`;let W=[],w="",C=null,T="",we="",L=null,I=null,A=null,ie=!1;const $={hint:"Select a model to inspect its scores.",view:"View model",clear:"Clear selection",choose:"Choose a model at this position",close:"Close",select:"Select"};function Le(e=!1){if(!ie)return;const t=[f.type,W.join(",")].join("|");if(t===we&&!e)return;we=t;const a={compare:"all",axes:{x:"general",y:"visual"},range:"full",routers:"all",presentation:"embed",theme:"dark",type:f.type};W.length&&(a.exclude=W),k.config=a}function le(){const e=k.clientWidth||600,t=innerWidth<760,a=Math.max(240,Math.min(600,e));return k.style.setProperty("--plot-w",a+"px"),k.style.setProperty("--plot-s",String(a/420)),k.style.setProperty("--dock-h",t?"112px":"120px"),{plotW:a,phone:t}}const $e=new Set,Me=(e,t)=>`<circle cx="${e}" cy="${t}" r="3" fill="#f3efe2" stroke="#0b1813" stroke-width="2"/>`;function Ve(e,t,a,n){const o=Ae(e);if(!o||$e.has(e.id))return`<g data-mk="${u(e.id)}">${Me(t,a)}</g>`;const r=Math.round(n*.72*10)/10;return`<g data-mk="${u(e.id)}"><circle cx="${t}" cy="${a}" r="${n/2}" fill="#fcfcf5" stroke="#0b1813" stroke-width="1.5"/><image href="${u(Ie(o,s.assets))}" x="${t-r/2}" y="${a-r/2}" width="${r}" height="${r}" preserveAspectRatio="xMidYMid meet"/></g>`}let de=[];function B(){if(!ie||!A||!L)return;const{plotW:e,phone:t}=le(),a=L.getBoundingClientRect(),n=t?16:20,o=[];for(const d of x("svg [data-map-point]",A.querySelector(".plot"))){const g=d.querySelector("circle.model-marker"),l=s.byId.get(d.dataset.mapPoint);if(!g||!l)continue;const m=g.getBoundingClientRect();o.push({m:l,x:m.left+m.width/2-a.left,y:m.top+m.height/2-a.top})}o.sort((d,g)=>(d.m.score??-1)-(g.m.score??-1)||(d.m.id<g.m.id?-1:1)),de=o;const r=[...o.filter(d=>d.m.id!==w),...o.filter(d=>d.m.id===w)];let p="",b="";for(const d of r)p+=Ve(d.m,d.x,d.y,n),d.m.id===w&&(p+=`<circle cx="${d.x}" cy="${d.y}" r="${n/2+4}" fill="none" stroke="#e8c27c" stroke-width="2"/>`),b+=`<button type="button" class="sl-hit" style="left:${d.x}px;top:${d.y}px;width:44px;height:44px" data-hit="${u(d.m.id)}" aria-label="${u(d.m.name)}"></button>`;L.innerHTML=`<svg class="sl-svg" viewBox="0 0 ${e} ${e}" aria-hidden="true">${p}</svg>${b}`;for(const d of x(".sl-svg image",L))d.addEventListener("error",()=>{const g=d.parentNode,l=g.dataset.mk;$e.add(l);const m=o.find(c=>c.m.id===l);m&&(g.innerHTML=Me(m.x,m.y))});G()}function We(e,t){const a=(r,p,b="")=>`<a href="${u(Q(r))}" target="_blank" rel="noopener noreferrer"${b?` class="${b}"`:""}>${p}</a>`,n=Se(e,s.L).join(""),o=`${e.router==="confirmed"?`<span class="dk-tag">${u(s.L.router)}</span>`:e.router==="suspected"?`<span class="dk-tag">${u(s.L.suspectedRouter)}</span>`:""}${e.estimated?`<span class="dk-tag">${u(s.L.estimated)}</span>`:""}${e.partial?`<span class="dk-tag">${u(s.L.partialCoverage)}</span>`:""}`;return`<div class="dk-model"><div class="dk-id">${me(e,e.detailUrl,"s",s.assets)}${o?`<div class="dk-tags">${o}</div>`:""}</div><dl class="dk-scores"><div><dt>${u(s.L.score)}</dt><dd>${M(e.score,s.L)}</dd></div><div class="gi"><dt>${u(s.L.general)}</dt><dd>${M(e.general,s.L)}</dd></div><div class="vi"><dt>${u(s.L.visual)}</dt><dd>${M(e.visual,s.L)}</dd></div></dl><div class="dk-act">${e.partial&&e.missing?.length?`<p class="dk-hint">${u(K(s.L.notScoredIn,{tasks:e.missing.join(", ")}))}</p>`:""}<p class="dk-links">${a(e.detailUrl,u($.view),"view")}${n}</p>${t?`<button type="button" class="dk-btn" data-dk-clear>${u($.clear)}</button>`:""}</div></div>`}function G(){if(!I)return;let e;if(C){const t=C.map(a=>s.byId.get(a)).filter(Boolean);e=`<p class="dk-title">${u($.choose)}</p><ul class="dk-list">${t.map(a=>`<li>${me(a,a.detailUrl,"s",s.assets)}<button type="button" data-dk-pick="${u(a.id)}" aria-label="${u($.select+" "+a.name)}">${u($.select)}</button><span class="sc">${u(s.L.score)} ${M(a.score,s.L)} \xB7 ${u(s.L.general)} ${M(a.general,s.L)} \xB7 ${u(s.L.visual)} ${M(a.visual,s.L)}</span></li>`).join("")}</ul><button type="button" class="dk-btn" data-dk-close>${u($.close)}</button>`}else{const t=s.byId.get(T||w);e=t?We(t,t.id===w):`<p class="dk-hint">${u($.hint)}</p>`}I.dataset.html!==e&&(I.dataset.html=e,I.innerHTML=e,F(I))}function Ge(){L.addEventListener("click",e=>{const t=e.target.closest(".sl-hit");if(e.stopPropagation(),!t)return;const a=de.find(l=>l.m.id===t.dataset.hit);if(!a)return;const n=L.getBoundingClientRect(),o=e.detail===0,r=o?a.x:e.clientX-n.left,p=o?a.y:e.clientY-n.top,b=innerWidth<760?12:14,d=de.filter(l=>Math.hypot(l.x-r,l.y-p)<b).map(l=>l.m.id),g=d.length>1?d:[a.m.id];T="",g.length>1?C=g.sort((l,m)=>(s.byId.get(m).score??0)-(s.byId.get(l).score??0)):(w=g[0],C=null),B()});for(const e of["pointerdown","pointerup","pointermove","pointerleave","mousedown","mouseup","touchstart"])L.addEventListener(e,t=>t.stopPropagation());L.addEventListener("pointerover",e=>{const t=e.target.closest(".sl-hit");t&&!C&&(T=t.dataset.hit,G())}),L.addEventListener("pointerout",e=>{e.target.closest(".sl-hit")&&T&&(T="",G())}),L.addEventListener("focusin",e=>{const t=e.target.closest(".sl-hit");t&&!C&&(T=t.dataset.hit,G())}),L.addEventListener("focusout",()=>{T&&(T="",G())})}function Ye(){I.addEventListener("click",e=>{if(e.target.closest("[data-dk-clear]")){w="",B();return}if(e.target.closest("[data-dk-close]")){C=null,B();return}const t=e.target.closest("[data-dk-pick]");t&&(w=t.dataset.dkPick,C=null,B())})}function _e(){const e=k.shadowRoot;if(!e)return;let t=!1;const a=()=>{if(!i("style[data-space]",e)){const p=document.createElement("style");p.dataset.space="",p.textContent=Oe,e.append(p)}if(A=i(".composition",e),!A)return!1;i(".space-layer",A)?L=i(".space-layer",A):(L=document.createElement("div"),L.className="space-layer",A.append(L),Ge()),i(".space-dock",A)?I=i(".space-dock",A):(I=document.createElement("aside"),I.className="space-dock",I.setAttribute("aria-live","polite"),A.append(I),Ye());const o=i(".brand-name",e);o?.firstChild?.nodeType===3&&o.firstChild.textContent!=="StealthMark "&&(o.firstChild.textContent="StealthMark ");const r=i(".plot > p.sr-only",e);if(r){const p=r.textContent.replace(/^\d+\s+models?\s+plotted\.\s*/,"");p!==r.textContent&&(r.textContent=p)}for(const p of x('a[href^="http"]',e))p.target!=="_blank"&&(p.target="_blank",p.rel="noopener noreferrer");return!0},n=()=>{a()&&B()};new MutationObserver(o=>{t||o.every(r=>r.target.nodeType===1&&r.target.closest?.(".space-layer, .space-dock"))||(t=!0,requestAnimationFrame(()=>{try{n()}finally{t=!1}}))}).observe(e,{childList:!0,subtree:!0}),new ResizeObserver(()=>{le(),requestAnimationFrame(n)}).observe(k),k.addEventListener("keydown",o=>{o.key==="Escape"&&(w="",C=null,B())}),document.addEventListener("keydown",o=>{o.key==="Escape"&&(w||C)&&!N.open&&U.hidden&&k.contains(document.activeElement)&&(w="",C=null,B())}),le(),n()}async function Je(e){k.setAttribute("data-feed",e),await import("/shared/v1/stealthmark-map.js"),await customElements.whenDefined("stealthmark-map");for(let t=0;t<30&&!k.shadowRoot?.querySelector(".plot svg");t++)await new Promise(a=>setTimeout(a,400)),t===12&&e!=="/data/stealthmark-map.json"&&k.setAttribute("data-feed","/data/stealthmark-map.json");if(k.shadowRoot?.querySelector(".plot svg"))i(".map-note",k)?.remove(),ie=!0,_e(),Le(!0);else{const t=i(".map-note",k);t&&(t.textContent=`${s.L.mapFailed||"The map could not load."} ${s.L.mapFallback||"Use the results table below."}`)}}function Ke(e,t){const a=new Set(["general","visual","overall"]),n=o=>o?.startsWith("/")?J+o:o;return{schemaVersion:e.schemaVersion,stealthmarkVersion:e.stealthmarkVersion,revision:e.revision,rendererRevision:e.rendererRevision,metrics:e.metrics.filter(o=>a.has(o.id)).map(o=>o.id==="overall"?{...o,name:s.L.scoreFull,shortName:s.L.scoreFull}:o),models:e.models.map(o=>{const r={...o,href:Q(t.get(o.id)?.detailUrl||n(o.href)),galleryHref:Q(n(o.galleryHref)),metrics:Object.fromEntries(Object.entries(o.metrics).filter(([p])=>a.has(p)))};for(const p of["position","total","company","defaultEdition","selectionRevision"])delete r[p];return r}),families:e.families.map(o=>({id:o.id,name:o.name,href:Q(n(o.href)),members:o.members})),pages:e.pages,presets:[]}}const Ce=(e,t,a)=>{const n=b=>Math.round(a(b)*10),o=Math.max(...e.map(n)),r=Math.min(...e.map(n)),p=b=>e.filter(d=>n(d)===b).sort((d,g)=>t(d)<t(g)?-1:1)[0];return{high:p(o),low:p(r)}};function Qe({c:e,d:t,b:a,date:n},o){const r=s.snap,p=new Map(r.models.map(l=>[l.id,l])),b=new Map(a.models.map(l=>[l.id,l])),d=e.models.map(l=>{const m=p.get(l.id),c=b.get(l.id);return{...m||{id:l.id,officialHfUrl:"",cardUrl:"",ggufUrl:""},name:l.name,revealedName:c?.revealedName||m?.revealedName||"",aliases:c?.aliases||m?.aliases||[],logo:c?.logo??m?.logo??"",favicon:c?.favicon??m?.favicon??"",detailUrl:J+l.href,score:l.score,general:l.general,visual:l.visual,estimated:!!l.estimated,open:c?c.access==="open":!!m?.open,local:c?c.local===!0:!!m?.local,router:c?c.routerStatus||"":m?.router||"",partial:c?!!(c.partial?.general||c.partial?.visual):!!m?.partial,missing:c?[...new Set([...c.missing?.general||[],...c.missing?.visual||[]])].map(s.groupName):m?.missing||[]}});s.models=d,s.byId=new Map(d.map(l=>[l.id,l]));const g=l=>{try{l()}catch{}};return g(()=>{const l=e.stealthmarkVersion,m=r.stealthmarkVersion,c=n?new Date(n):new Date;if(i("[data-snapshot]").textContent=K(s.L.pageSnapshot,{date:He(c.toISOString())}),l!==m){i("[data-version]").textContent=l,k.setAttribute("aria-label",K(s.L.mapLabel,{version:l}));const y=String(c.getUTCFullYear());i("[data-cite-text]").textContent=K(s.L.citeText,{year:y,version:l});const S=i("[data-cite-bibtex]");S.textContent=S.textContent.replace(/(version = \{)[^}]*/,`$1${l}`).replace(/(year = \{)[^}]*/,`$1${y}`)}}),g(()=>{const l=["overall","open","local"].map(m=>{const c=e.awards?.categories?.find(y=>y.id===m);return c&&{id:m,label:s.L.leaders[m],entries:c.winners.map(y=>({id:y.id,name:y.name,detailUrl:J+y.href,score:y.score}))}}).filter(Boolean);l.length===3&&(i("[data-leaders]").innerHTML=Ue(l,s.L,s.byId,s.assets),he||(P=ue(d,l))),P.every(m=>s.byId.has(m))||(P=ue(d,[])),ne()}),g(()=>{const l=je(d,s.L,s.assets);i("tbody[data-group=complete]",z).innerHTML=l.complete,i("tbody[data-group=partial]",z).innerHTML=`<tr class="lb-sep"><th colspan="4" scope="colgroup">${u(s.L.partialHeading)}</th></tr>${l.partial}`,H()}),g(()=>{const l=new Map(r.games.map(c=>[`${c.chainId}|${c.modelId}`,c])),m=c=>s.byId.has(c)&&s.byId.get(c).router!=="confirmed";for(const c of r.tasks){const y=i(`.chapter[data-task="${c.id}"] .pair-slot`);if(!y)continue;let S,Y;if(c.kind==="svg"){const R=new Map;for(const h of t.results){if(h.group!==c.group)continue;const E=`${h.group}|${h.model}`;o[E]?h.id===o[E]&&R.set(h.model,h):R.has(h.model)||R.set(h.model,h)}const Z=[...R.values()].filter(h=>m(h.model)&&Number.isFinite(h.score)),{high:ee,low:_}=Ce(Z,h=>h.model,h=>h.score),v=h=>{const E=s.byId.get(h.model),ce=[c.high,c.low].find(Ee=>Ee.resultId===h.id);return{...ce||{kind:"svg",resultId:h.id,resultDate:"",media:{src:h.media}},modelId:h.model,modelName:E.name,modelUrl:E.detailUrl,score:h.score,detailUrl:ce?.detailUrl||`${E.detailUrl}/${c.group}`}};S=v(ee),Y=v(_)}else{const R=t.games.filter(v=>v.group===c.group&&m(v.model)&&Number.isFinite(v.score)&&l.get(`${c.group}|${v.model}`)?.complete===!0);if(!R.length)continue;const{high:Z,low:ee}=Ce(R,v=>v.model,v=>v.score),_=v=>{const h=s.byId.get(v.model),E=l.get(`${c.group}|${v.model}`);return Math.abs(E.score-v.score)<.05&&E.poster?{kind:"game",chainId:c.group,modelId:v.model,modelName:h.name,modelUrl:h.detailUrl,score:v.score,coverage:E.coverage,levels:E.levels,poster:E.poster,detailUrl:`${h.detailUrl}/${c.group}`}:null};if(S=_(Z),Y=_(ee),!S||!Y)continue}y.innerHTML=Ne({...c,high:S,low:Y},s.L,s.byId,s.assets)}}),F(),d}(async()=>{const[e,t,a]=await Promise.all([te("/data/snapshot.json",8e3).then(o=>o.data).catch(()=>null),te("/data/preferred-results.json",8e3).then(o=>o.data).catch(()=>({})),Promise.all(["stealthmark.json","benchmark-scores.json","stealthmark-map.json"].map(o=>te(Fe+o,4500))).then(([o,r,p])=>({c:o.data,d:r.data,b:p.data,date:o.date})).catch(()=>null)]);s.snap=e,e&&(s.L=e.copy,s.assets=e.assets,s.groupName=o=>e.groupNames[o]||o,s.models=e.models,s.byId=new Map(e.models.map(o=>[o.id,o])),Object.assign($,{hint:s.L.hint||$.hint,view:s.L.viewModel||$.view,clear:s.L.clearSelection||$.clear,choose:s.L.chooseAt||$.choose,close:s.L.close||$.close,select:s.L.select||$.select}));let n="/data/stealthmark-map.json";if(e&&a&&Array.isArray(a.c?.models)&&a.c.models.length&&Array.isArray(a.d?.results)&&Array.isArray(a.d?.games)&&Array.isArray(a.b?.models)&&a.c.stealthmarkVersion===a.b.stealthmarkVersion)try{const o=Qe(a,t);n=URL.createObjectURL(new Blob([JSON.stringify(Ke(a.b,new Map(o.map(r=>[r.id,r]))))],{type:"application/json"}))}catch{}else e&&ne();q(),ye(),F(),Je(n)})(),q(),H();
|
|
|
|
| 1 |
+
import{ORIGIN as K,esc as f,fill as Q,withUtm as X,slugOf as ue,assetSrc as je,identityPath as Ue,lockupHtml as fe,secondaryLinks as He,modelsTbodyHtml as Re,pairHtml as Be,leadersHtml as Fe,defaultPair as ge,compareUrl as De,compareIdentityHtml as qe,pickerItemHtml as ze,num as M,longDate as Pe}from"./render.js";const i=(e,t=document)=>t.querySelector(e),x=(e,t=document)=>[...t.querySelectorAll(e)],w=i("stealthmark-map"),Oe=K+"/data/v1/",s={snap:null,L:{},byId:new Map,models:[],assets:[],groupName:e=>e};async function oe(e,t){const a=new AbortController,l=setTimeout(()=>a.abort(),t);try{const o=await fetch(e,{credentials:"omit",signal:a.signal});if(!o.ok)throw new Error(String(o.status));return{data:await o.json(),date:o.headers.get("date")}}finally{clearTimeout(l)}}const se=e=>String(e??"").normalize("NFKD").toLowerCase().replace(/\p{M}/gu,"").replace(/[^\p{L}\p{N}]/gu,""),ne=e=>e.split(/[,\s]+/).map(se).filter(Boolean),We=()=>[...s.models].sort((e,t)=>(t.score??-1)-(e.score??-1)||e.name.localeCompare(t.name));function D(e=document){for(const t of x(".lname",e))t.scrollWidth>t.clientWidth+1?t.setAttribute("data-scroll",""):t.removeAttribute("data-scroll")}document.addEventListener("error",e=>{const t=e.target;t?.tagName==="IMG"&&t.closest(".mount")&&t.replaceWith(Object.assign(document.createElement("i"),{className:"dot"}))},!0);const q=i("[data-lb]"),g={type:"all",q:"",sort:"score",dir:"desc",open:!1},he=(e,t=ne(g.q))=>(g.type!=="open"||e.dataset.open==="1")&&(g.type!=="local"||e.dataset.local==="1")&&t.every(a=>se(e.dataset.search).includes(a)),be=8;function B(){const e=g.dir==="asc"?1:-1,t=ne(g.q);let a=0,l=0;for(const n of x("tbody",q)){const c=n.dataset.group==="partial",b=x("tr[data-model]",n).sort((u,r)=>{const m=parseFloat(u.dataset[g.sort]),d=parseFloat(r.dataset[g.sort]),k=Number.isNaN(m),y=Number.isNaN(d);return k!==y?k?1:-1:m!==d?(m-d)*e:u.dataset.name.localeCompare(r.dataset.name)||u.dataset.model.localeCompare(r.dataset.model)});let p=0;for(const u of b){n.append(u);const r=he(u,t);r&&p++,u.hidden=!r||(c?!g.open:!g.open&&p>be)}c?(l=p,i(".lb-sep",n).hidden=!g.open||!p,n.hidden=!b.length):a=p}i("[data-no-match]").hidden=!(!a&&!l);const o=i("[data-more]");o.hidden=!(a>be||l>0),o.textContent=g.open?o.dataset.fewer:o.dataset.all,o.setAttribute("aria-expanded",String(g.open)),i(".filter-search [data-clear]").hidden=!(g.q||g.type!=="all"),x("th[aria-sort]",q).forEach(n=>n.removeAttribute("aria-sort")),i(`.sort[data-sort="${g.sort}"]`)?.closest("th").setAttribute("aria-sort",g.dir==="asc"?"ascending":"descending"),G=x("tr[data-model]",q).filter(n=>!he(n)).map(n=>n.dataset.model),C&&G.includes(C)&&(C="",A=null),Me(),D(q)}x("input[name=type]").forEach(e=>e.addEventListener("change",()=>{g.type=e.value,B()})),i("#model-search").addEventListener("input",e=>{g.q=e.target.value,B()}),document.addEventListener("click",e=>{if(e.target.closest("[data-clear]")){g.q="",g.type="all",i("#model-search").value="",i("input[name=type][value=all]").checked=!0,B(),i("#model-search").focus();return}const t=e.target.closest(".sort");if(t){const a=t.dataset.sort;g.dir=g.sort===a&&g.dir==="desc"?"asc":"desc",g.sort=a,B();return}if(e.target.closest("[data-more]")){g.open=!g.open,B();return}});const T=i("[data-cmp]"),Z=i("#cmp-go"),N=i("#picker");let z=[T.dataset.a,T.dataset.b],ke=!1,O="a",re=null;function ye(e){const t=s.byId.get(z[e==="a"?0:1]);t&&(i(`[data-side=${e}]`,T).innerHTML=qe(t,s.L,s.assets),D(T))}function ie(){const[e,t]=z.map(o=>s.byId.get(o));if(!e||!t)return;ye("a"),ye("b");const a=(o,n)=>{i(`[data-cell=${o}]`,T).textContent=n};a("score-a",M(e.score,s.L)),a("gi-a",M(e.general,s.L)),a("vi-a",M(e.visual,s.L)),a("score-b",M(t.score,s.L)),a("gi-b",M(t.general,s.L)),a("vi-b",M(t.visual,s.L)),i(".cmp-grid",T).toggleAttribute("data-wide-score",[e.score,t.score].some(o=>String(M(o,s.L)).length>4));const l=e.id===t.id;i("[data-cmp-note]",T).hidden=!l,l?(Z.setAttribute("aria-disabled","true"),Z.removeAttribute("href")):(Z.removeAttribute("aria-disabled"),Z.href=De(ue(e.detailUrl),ue(t.detailUrl)))}function ve(){const e=ne(i("#pk-search").value),t=We().filter(a=>!e.length||e.every(l=>se([a.name,a.revealedName,...a.aliases||[]].join(" ")).includes(l)));i("#pk-list").innerHTML=t.map(a=>ze(a,O,s.L,s.assets)).join(""),i(".pk-empty",N).hidden=t.length>0,D(N)}document.addEventListener("click",e=>{const t=e.target.closest("[data-change]");if(t){O=t.closest("[data-side]").dataset.side,re=t,i("#picker-title").textContent=O==="a"?s.L.first||"First model":s.L.second||"Second model",i("#pk-search").value="",ve(),N.showModal(),i("#pk-search").focus();return}const a=e.target.closest("[data-select]");if(a){z[O==="a"?0:1]=a.dataset.select,ke=!0,N.close(),ie(),i(`[data-side=${O}] [data-change]`,T)?.focus();return}(e.target.closest("[data-pk-close]")||e.target===N)&&N.close()}),i("#pk-search").addEventListener("input",ve),N.addEventListener("close",()=>{re?.isConnected&&re.focus()});const Ve=i("[data-ci-nav]"),W=i(".ci-btn",Ve),j=i("#ci-menu");W.addEventListener("click",()=>{const e=j.hidden;j.hidden=!e,W.setAttribute("aria-expanded",String(e)),e&&i("a",j).focus()}),j.addEventListener("click",e=>{e.target.closest("a")&&(j.hidden=!0,W.setAttribute("aria-expanded","false"))}),document.addEventListener("keydown",e=>{e.key==="Escape"&&!j.hidden&&(j.hidden=!0,W.setAttribute("aria-expanded","false"),W.focus())});const xe=x(".chapter");let le=!1;function we(){le=!1;let e=null;for(const a of xe)a.getBoundingClientRect().top<=140&&(e=a);const t=e&&i("#evidence").getBoundingClientRect().bottom>140;for(const a of x("[data-ci]"))a.toggleAttribute("aria-current",!!t&&a.dataset.ci===e?.dataset.task);for(const a of x("[data-ci]"))a.hasAttribute("aria-current")?a.setAttribute("aria-current","true"):a.removeAttribute("aria-current");i("[data-ci-current]").textContent=(e?i(".chapter-name",e):i(".chapter-name",xe[0])).textContent}addEventListener("scroll",()=>{le||(le=!0,requestAnimationFrame(we))},{passive:!0});const Ge=e=>!e.dataset.publicFrom||Date.now()>=Date.parse(e.dataset.publicFrom);let V=null;function $e(){V&&(V.iframe.remove(),V.poster.hidden=!1,V=null)}function Ye(e){$e();const t=e.closest(".film"),a=e.parentElement,l=document.createElement("iframe");l.src=`https://www.youtube-nocookie.com/embed/${t.dataset.film}?autoplay=1&playsinline=1&rel=0`,l.title=i(".film-label",t).textContent,l.allow="autoplay; fullscreen; encrypted-media; picture-in-picture",l.allowFullscreen=!0,l.referrerPolicy="strict-origin-when-cross-origin",e.hidden=!0,a.append(l),V={iframe:l,poster:e},l.focus()}function P(){for(const e of x(".film-row")){const t=x(".film",e),a=t.filter(Ge);for(const n of a){const c=i("img",n);!c.getAttribute("src")&&c.dataset.src&&(c.loading="lazy",c.src=c.dataset.src)}const l=t.find(n=>n.dataset.current==="1"&&a.includes(n))||a[0];for(const n of t)n.dataset.current=n===l?"1":"",n.hidden=n!==l;e.hidden=!l;const o=i(".film-choices",e);if(o){const n=a.filter(p=>p!==l);o.hidden=!n.length,e.classList.toggle("has-choices",n.length>0);const c=i(".film-choice-list",o),b=n.map(p=>p.dataset.film).join(",");c.dataset.want!==b&&(c.dataset.want=b,c.innerHTML=n.map(p=>`<li><button type="button" data-film-pick="${f(p.dataset.film)}">${f(i(".film-label",p).textContent)}</button></li>`).join(""))}}}document.addEventListener("click",e=>{const t=e.target.closest("[data-film-play]");if(t){e.preventDefault(),Ye(t);return}const a=e.target.closest("[data-film-pick]");if(a){$e();const l=a.closest(".film-row");x(".film",l).forEach(o=>{o.dataset.current=o.dataset.film===a.dataset.filmPick?"1":""}),P(),i(".film-poster",i('.film[data-current="1"]',l))?.focus()}}),setInterval(()=>{document.hidden||P()},6e4),document.addEventListener("visibilitychange",()=>{document.hidden||P()}),addEventListener("pageshow",P),document.addEventListener("click",async e=>{const t=e.target.closest("[data-copy]");if(!t)return;const a=document.getElementById(t.dataset.copy),l=i(".copy-status");let o=!1;try{await navigator.clipboard.writeText(a.textContent.trim()),o=!0}catch{try{const n=a.closest("details");n&&(n.open=!0);const c=document.createRange(),b=getSelection();c.selectNodeContents(a),b.removeAllRanges(),b.addRange(c),o=document.execCommand("copy")}catch{}}l.textContent=o?t.dataset.done:l.dataset.fail});const _e=`
|
| 2 |
.map{border:0!important;border-radius:0!important;padding:0!important;background:transparent!important;box-shadow:none!important}
|
| 3 |
.top{height:48px;padding:0!important;border:0!important;margin:0!important;display:flex;align-items:center}
|
| 4 |
.top-actions,.title-stack h2,.title-stack .caption,.toolbar,.bottom,.estimate-cta,.share,.inspector,.chooser,.tooltip,.metric-tooltip,.overlay{display:none!important}
|
|
|
|
| 13 |
.sl-hit:focus-visible{outline:2px solid #e8c27c;outline-offset:2px}
|
| 14 |
.space-dock{grid-column:1;grid-row:2;width:100%;height:var(--dock-h,120px);overflow-y:auto;border-top:1px solid rgba(243,239,226,.16);padding:12px 0 0;color:#f3efe2;font-family:'DM Sans',sans-serif;scrollbar-width:thin;min-width:0}
|
| 15 |
.dk-hint{font-size:14px;line-height:1.5;color:#a4b3a6;margin:0}
|
| 16 |
+
.dk-model{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1.2fr) minmax(0,.8fr);gap:8px 24px;align-items:center}
|
| 17 |
.dk-id{display:grid;gap:8px;min-width:0;justify-items:start}
|
| 18 |
.dk-act{display:grid;gap:4px;justify-items:start;min-width:0}
|
| 19 |
.dk-scores{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0}
|
|
|
|
| 39 |
.dk-list .sc{grid-column:1/-1;font-size:13px;color:#a4b3a6;font-variant-numeric:tabular-nums}
|
| 40 |
.dk-list button{grid-row:1;grid-column:2;min-height:44px;min-width:64px;background:#e8c27c;color:#0b1813;border:0;border-radius:4px;font:600 14px 'DM Sans',sans-serif;cursor:pointer}
|
| 41 |
.sr-only{position:absolute!important;left:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
|
| 42 |
+
@media (max-width:759px){.dk-model{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 12px}.dk-act{grid-column:1/-1;grid-auto-flow:column;justify-content:start;gap:12px}.dk-scores dd{font-size:24px}.dk-scores{gap:4px}.dk-list{grid-template-columns:1fr}.dk-list .sc{display:none}}`;let G=[],C="",A=null,Y="",Le="",$=null,I=null,S=null,de=!1;const L={hint:"Select a model to inspect its scores.",view:"View model",clear:"Clear selection",choose:"Choose a model at this position",close:"Close",select:"Select"};function Me(e=!1){if(!de)return;const t=[g.type,G.join(",")].join("|");if(t===Le&&!e)return;Le=t;const a={compare:"all",axes:{x:"general",y:"visual"},range:"full",routers:"all",presentation:"embed",theme:"dark",type:g.type};G.length&&(a.exclude=G),w.config=a}function ce(){const e=w.clientWidth||600,t=innerWidth<760,a=Math.max(240,Math.min(600,e));return w.style.setProperty("--plot-w",a+"px"),w.style.setProperty("--plot-s",String(a/420)),w.style.setProperty("--dock-h",t?"112px":"120px"),{plotW:a,phone:t}}const Ee=new Set,Ce=(e,t)=>`<circle cx="${e}" cy="${t}" r="3" fill="#f3efe2" stroke="#0b1813" stroke-width="2"/>`;function Ae(e,t,a,l){const o=Ue(e);if(!o||Ee.has(e.id))return`<g data-mk="${f(e.id)}">${Ce(t,a)}</g>`;const n=Math.round(l*.72*10)/10;return`<g data-mk="${f(e.id)}"><circle cx="${t}" cy="${a}" r="${l/2}" fill="#fcfcf5" stroke="#0b1813" stroke-width="1.5"/><image href="${f(je(o,s.assets))}" x="${t-n/2}" y="${a-n/2}" width="${n}" height="${n}" preserveAspectRatio="xMidYMid meet"/></g>`}let ee=[],U=null,pe=20;function F(){if(!de||!S||!$)return;const{plotW:e,phone:t}=ce(),a=$.getBoundingClientRect(),l=t?16:20;pe=l;const o=S.querySelector(".plot svg"),n=[];for(const p of x("[data-map-point]",o)){const u=p.querySelector("circle.model-marker"),r=s.byId.get(p.dataset.mapPoint);if(!u||!r)continue;const m=u.getBoundingClientRect();n.push({m:r,x:m.left+m.width/2-a.left,y:m.top+m.height/2-a.top})}n.sort((p,u)=>(p.m.score??-1)-(u.m.score??-1)||(p.m.id<u.m.id?-1:1)),ee=n,U=null;try{const p=o.getScreenCTM(),u=(o.querySelector('path[data-map-axis="x"]')?.getAttribute("d")||"").match(/M([\d.]+)[ ,]+([\d.]+)/),r=x("text",o).filter(m=>!m.closest("[data-map-label]"));if(p&&u){const m=new DOMPoint(+u[1],+u[2]).matrixTransform(p),d=r.filter(y=>+y.getAttribute("y")>+u[2]),k=r.filter(y=>+y.getAttribute("x")<+u[1]);U={ox:m.x-a.left,oy:m.y-a.top,xRow:Math.max(...d.map(y=>y.getBoundingClientRect().bottom))-a.top,yLeft:Math.min(...k.map(y=>y.getBoundingClientRect().left))-a.left}}}catch{U=null}let c="",b="";for(const p of n)c+=Ae(p.m,p.x,p.y,l),b+=`<button type="button" class="sl-hit" style="left:${p.x}px;top:${p.y}px;width:44px;height:44px" data-hit="${f(p.m.id)}" aria-label="${f(p.m.name)}"></button>`;$.innerHTML=`<svg class="sl-svg" viewBox="0 0 ${e} ${e}" aria-hidden="true"><g class="sl-guides"></g><g class="sl-marks">${c}</g><g class="sl-top"></g></svg>${b}`;for(const p of x(".sl-svg image",$))p.addEventListener("error",()=>{const u=p.parentNode,r=u.dataset.mk;Ee.add(r);const m=n.find(d=>d.m.id===r);m&&(u.innerHTML=Ce(m.x,m.y))});Se(),Ie()}function Ie(){const e=$?.querySelector(".sl-svg");if(!e)return;const t=i(".sl-guides",e),a=i(".sl-top",e);t.innerHTML="",a.innerHTML="";const l=Y||C,o=ee.find(c=>c.m.id===l);if(!o)return;const n="#e8c27c";if(U&&Number.isFinite(o.m.general)&&Number.isFinite(o.m.visual)){const c=(b,p,u,r)=>`<text x="${b}" y="${p}" text-anchor="${u}" font-family="'DM Sans',sans-serif" font-size="14" font-weight="600" fill="${n}">${r.toFixed(1)}</text>`;t.innerHTML=`<g stroke="${n}" stroke-width="1.5" stroke-dasharray="4 4" fill="none"><line x1="${o.x}" y1="${o.y}" x2="${o.x}" y2="${U.oy}"/><line x1="${o.x}" y1="${o.y}" x2="${U.ox}" y2="${o.y}"/></g>`+c(o.x,U.xRow+20,"middle",o.m.general)+c(U.yLeft-8,o.y+5,"end",o.m.visual)}a.innerHTML=Ae(o.m,o.x,o.y,pe)+`<circle cx="${o.x}" cy="${o.y}" r="${pe/2+4}" fill="none" stroke="${n}" stroke-width="2"/>`}function H(e){A||Y===e||(Y=e,Se(),Ie())}function Je(e,t){const a=(n,c,b="")=>`<a href="${f(X(n))}" target="_blank" rel="noopener noreferrer"${b?` class="${b}"`:""}>${c}</a>`,l=He(e,s.L).join(""),o=`${e.router==="confirmed"?`<span class="dk-tag">${f(s.L.router)}</span>`:e.router==="suspected"?`<span class="dk-tag">${f(s.L.suspectedRouter)}</span>`:""}${e.estimated?`<span class="dk-tag">${f(s.L.estimated)}</span>`:""}${e.partial?`<span class="dk-tag">${f(s.L.partialCoverage)}</span>`:""}`;return`<div class="dk-model"><div class="dk-id">${fe(e,e.detailUrl,"s",s.assets)}${o?`<div class="dk-tags">${o}</div>`:""}</div><dl class="dk-scores"><div><dt>${f(s.L.score)}</dt><dd>${M(e.score,s.L)}</dd></div><div class="gi"><dt>${f(s.L.general)}</dt><dd>${M(e.general,s.L)}</dd></div><div class="vi"><dt>${f(s.L.visual)}</dt><dd>${M(e.visual,s.L)}</dd></div></dl><div class="dk-act">${e.partial&&e.missing?.length?`<p class="dk-hint">${f(Q(s.L.notScoredIn,{tasks:e.missing.join(", ")}))}</p>`:""}<p class="dk-links">${a(e.detailUrl,f(L.view),"view")}${l}</p>${t?`<button type="button" class="dk-btn" data-dk-clear>${f(L.clear)}</button>`:""}</div></div>`}function Se(){if(!I)return;let e;if(A){const t=A.map(a=>s.byId.get(a)).filter(Boolean);e=`<p class="dk-title">${f(L.choose)}</p><ul class="dk-list">${t.map(a=>`<li>${fe(a,a.detailUrl,"s",s.assets)}<button type="button" data-dk-pick="${f(a.id)}" aria-label="${f(L.select+" "+a.name)}">${f(L.select)}</button><span class="sc">${f(s.L.score)} ${M(a.score,s.L)} \xB7 ${f(s.L.general)} ${M(a.general,s.L)} \xB7 ${f(s.L.visual)} ${M(a.visual,s.L)}</span></li>`).join("")}</ul><button type="button" class="dk-btn" data-dk-close>${f(L.close)}</button>`}else{const t=s.byId.get(Y||C);e=t?Je(t,t.id===C):`<p class="dk-hint">${f(L.hint)}</p>`}I.dataset.html!==e&&(I.dataset.html=e,I.innerHTML=e,D(I))}function Ke(){$.addEventListener("click",e=>{const t=e.target.closest(".sl-hit");if(e.stopPropagation(),!t)return;const a=ee.find(r=>r.m.id===t.dataset.hit);if(!a)return;const l=$.getBoundingClientRect(),o=e.detail===0,n=o?a.x:e.clientX-l.left,c=o?a.y:e.clientY-l.top,b=innerWidth<760?12:14,p=ee.filter(r=>Math.hypot(r.x-n,r.y-c)<b).map(r=>r.m.id),u=p.length>1?p:[a.m.id];Y="",u.length>1?A=u.sort((r,m)=>(s.byId.get(m).score??0)-(s.byId.get(r).score??0)):(C=u[0],A=null),F()});for(const e of["pointerdown","pointerup","pointermove","pointerleave","mousedown","mouseup","touchstart"])$.addEventListener(e,t=>t.stopPropagation());$.addEventListener("pointerover",e=>{const t=e.target.closest(".sl-hit");t&&H(t.dataset.hit)}),$.addEventListener("pointerout",e=>{e.target.closest(".sl-hit")&&H("")}),$.addEventListener("focusin",e=>{const t=e.target.closest(".sl-hit");t&&H(t.dataset.hit)}),$.addEventListener("focusout",()=>H(""))}function Qe(){I.addEventListener("click",e=>{if(e.target.closest("[data-dk-clear]")){C="",F();return}if(e.target.closest("[data-dk-close]")){A=null,F();return}const t=e.target.closest("[data-dk-pick]");t&&(C=t.dataset.dkPick,A=null,F())})}function Xe(){const e=w.shadowRoot;if(!e)return;let t=!1;const a=()=>{if(!i("style[data-space]",e)){const c=document.createElement("style");c.dataset.space="",c.textContent=_e,e.append(c)}if(S=i(".composition",e),!S)return!1;i(".space-layer",S)?$=i(".space-layer",S):($=document.createElement("div"),$.className="space-layer",S.append($),Ke()),i(".space-dock",S)?I=i(".space-dock",S):(I=document.createElement("aside"),I.className="space-dock",I.setAttribute("aria-live","polite"),S.append(I),Qe());const o=i(".brand-name",e);o?.firstChild?.nodeType===3&&o.firstChild.textContent!=="StealthMark "&&(o.firstChild.textContent="StealthMark ");const n=i(".plot > p.sr-only",e);if(n){const c=n.textContent.replace(/^\d+\s+models?\s+plotted\.\s*/,"");c!==n.textContent&&(n.textContent=c)}for(const c of x('a[href^="http"]',e))c.target!=="_blank"&&(c.target="_blank",c.rel="noopener noreferrer");return!0},l=()=>{a()&&F()};new MutationObserver(o=>{t||o.every(n=>n.target.nodeType===1&&n.target.closest?.(".space-layer, .space-dock"))||(t=!0,requestAnimationFrame(()=>{try{l()}finally{t=!1}}))}).observe(e,{childList:!0,subtree:!0}),new ResizeObserver(()=>{ce(),requestAnimationFrame(l)}).observe(w),w.addEventListener("keydown",o=>{o.key==="Escape"&&(C="",A=null,F())}),document.addEventListener("keydown",o=>{o.key==="Escape"&&(C||A)&&!N.open&&j.hidden&&w.contains(document.activeElement)&&(C="",A=null,F())}),ce(),l()}async function Ze(e){w.setAttribute("data-feed",e),await import("/shared/v1/stealthmark-map.js"),await customElements.whenDefined("stealthmark-map");for(let t=0;t<30&&!w.shadowRoot?.querySelector(".plot svg");t++)await new Promise(a=>setTimeout(a,400)),t===12&&e!=="/data/stealthmark-map.json"&&w.setAttribute("data-feed","/data/stealthmark-map.json");if(w.shadowRoot?.querySelector(".plot svg"))i(".map-note",w)?.remove(),de=!0,Xe(),Me(!0);else{const t=i(".map-note",w);t&&(t.textContent=`${s.L.mapFailed||"The map could not load."} ${s.L.mapFallback||"Use the results table below."}`)}}{const e=t=>{const a=t.target?.closest?.("a.lockup[data-model]");return a&&!a.closest("dialog")?a:null};document.addEventListener("pointerover",t=>{if(t.pointerType==="touch")return;const a=e(t);a&&s.byId.has(a.dataset.model)&&H(a.dataset.model)}),document.addEventListener("pointerout",t=>{t.pointerType!=="touch"&&e(t)&&!t.relatedTarget?.closest?.("a.lockup[data-model]")&&H("")}),document.addEventListener("focusin",t=>{const a=e(t);a&&s.byId.has(a.dataset.model)&&H(a.dataset.model)}),document.addEventListener("focusout",t=>{e(t)&&H("")})}function et(e,t){const a=new Set(["general","visual","overall"]),l=o=>o?.startsWith("/")?K+o:o;return{schemaVersion:e.schemaVersion,stealthmarkVersion:e.stealthmarkVersion,revision:e.revision,rendererRevision:e.rendererRevision,metrics:e.metrics.filter(o=>a.has(o.id)).map(o=>o.id==="overall"?{...o,name:s.L.scoreFull,shortName:s.L.scoreFull}:o),models:e.models.map(o=>{const n={...o,href:X(t.get(o.id)?.detailUrl||l(o.href)),galleryHref:X(l(o.galleryHref)),metrics:Object.fromEntries(Object.entries(o.metrics).filter(([c])=>a.has(c)))};for(const c of["position","total","company","defaultEdition","selectionRevision"])delete n[c];return n}),families:e.families.map(o=>({id:o.id,name:o.name,href:X(l(o.href)),members:o.members})),pages:e.pages,presets:[]}}const Te=(e,t,a)=>{const l=b=>Math.round(a(b)*10),o=Math.max(...e.map(l)),n=Math.min(...e.map(l)),c=b=>e.filter(p=>l(p)===b).sort((p,u)=>t(p)<t(u)?-1:1)[0];return{high:c(o),low:c(n)}};function tt({c:e,d:t,b:a,date:l},o){const n=s.snap,c=new Map(n.models.map(r=>[r.id,r])),b=new Map(a.models.map(r=>[r.id,r])),p=e.models.map(r=>{const m=c.get(r.id),d=b.get(r.id);return{...m||{id:r.id,officialHfUrl:"",cardUrl:"",ggufUrl:""},name:r.name,revealedName:d?.revealedName||m?.revealedName||"",aliases:d?.aliases||m?.aliases||[],logo:d?.logo??m?.logo??"",favicon:d?.favicon??m?.favicon??"",detailUrl:K+r.href,score:r.score,general:r.general,visual:r.visual,estimated:!!r.estimated,open:d?d.access==="open":!!m?.open,local:d?d.local===!0:!!m?.local,router:d?d.routerStatus||"":m?.router||"",partial:d?!!(d.partial?.general||d.partial?.visual):!!m?.partial,missing:d?[...new Set([...d.missing?.general||[],...d.missing?.visual||[]])].map(s.groupName):m?.missing||[]}});s.models=p,s.byId=new Map(p.map(r=>[r.id,r]));const u=r=>{try{r()}catch{}};return u(()=>{const r=e.stealthmarkVersion,m=n.stealthmarkVersion,d=l?new Date(l):new Date;if(i("[data-snapshot]").textContent=Q(s.L.pageSnapshot,{date:Pe(d.toISOString())}),r!==m){i("[data-version]").textContent=r,w.setAttribute("aria-label",Q(s.L.mapLabel,{version:r}));const k=String(d.getUTCFullYear());i("[data-cite-text]").textContent=Q(s.L.citeText,{year:k,version:r});const y=i("[data-cite-bibtex]");y.textContent=y.textContent.replace(/(version = \{)[^}]*/,`$1${r}`).replace(/(year = \{)[^}]*/,`$1${k}`)}}),u(()=>{const r=["overall","open","local"].map(m=>{const d=e.awards?.categories?.find(k=>k.id===m);return d&&{id:m,label:s.L.leaders[m],entries:d.winners.map(k=>({id:k.id,name:k.name,detailUrl:K+k.href,score:k.score}))}}).filter(Boolean);r.length===3&&(i("[data-leaders]").innerHTML=Fe(r,s.L,s.byId,s.assets),ke||(z=ge(p,r))),z.every(m=>s.byId.has(m))||(z=ge(p,[])),ie()}),u(()=>{const r=Re(p,s.L,s.assets);i("tbody[data-group=complete]",q).innerHTML=r.complete,i("tbody[data-group=partial]",q).innerHTML=`<tr class="lb-sep"><th colspan="4" scope="colgroup">${f(s.L.partialHeading)}</th></tr>${r.partial}`,B()}),u(()=>{const r=new Map(n.games.map(d=>[`${d.chainId}|${d.modelId}`,d])),m=d=>s.byId.has(d)&&s.byId.get(d).router!=="confirmed";for(const d of n.tasks){const k=i(`.chapter[data-task="${d.id}"] .pair-slot`);if(!k)continue;let y,_;if(d.kind==="svg"){const R=new Map;for(const h of t.results){if(h.group!==d.group)continue;const E=`${h.group}|${h.model}`;o[E]?h.id===o[E]&&R.set(h.model,h):R.has(h.model)||R.set(h.model,h)}const te=[...R.values()].filter(h=>m(h.model)&&Number.isFinite(h.score)),{high:ae,low:J}=Te(te,h=>h.model,h=>h.score),v=h=>{const E=s.byId.get(h.model),me=[d.high,d.low].find(Ne=>Ne.resultId===h.id);return{...me||{kind:"svg",resultId:h.id,resultDate:"",media:{src:h.media}},modelId:h.model,modelName:E.name,modelUrl:E.detailUrl,score:h.score,detailUrl:me?.detailUrl||`${E.detailUrl}/${d.group}`}};y=v(ae),_=v(J)}else{const R=t.games.filter(v=>v.group===d.group&&m(v.model)&&Number.isFinite(v.score)&&r.get(`${d.group}|${v.model}`)?.complete===!0);if(!R.length)continue;const{high:te,low:ae}=Te(R,v=>v.model,v=>v.score),J=v=>{const h=s.byId.get(v.model),E=r.get(`${d.group}|${v.model}`);return Math.abs(E.score-v.score)<.05&&E.poster?{kind:"game",chainId:d.group,modelId:v.model,modelName:h.name,modelUrl:h.detailUrl,score:v.score,coverage:E.coverage,levels:E.levels,poster:E.poster,detailUrl:`${h.detailUrl}#game-${d.group}`}:null};if(y=J(te),_=J(ae),!y||!_)continue}k.innerHTML=Be({...d,high:y,low:_},s.L,s.byId,s.assets)}}),D(),p}(async()=>{const[e,t,a]=await Promise.all([oe("/data/snapshot.json",8e3).then(o=>o.data).catch(()=>null),oe("/data/preferred-results.json",8e3).then(o=>o.data).catch(()=>({})),Promise.all(["stealthmark.json","benchmark-scores.json","stealthmark-map.json"].map(o=>oe(Oe+o,4500))).then(([o,n,c])=>({c:o.data,d:n.data,b:c.data,date:o.date})).catch(()=>null)]);s.snap=e,e&&(s.L=e.copy,s.assets=e.assets,s.groupName=o=>e.groupNames[o]||o,s.models=e.models,s.byId=new Map(e.models.map(o=>[o.id,o])),Object.assign(L,{hint:s.L.hint||L.hint,view:s.L.viewModel||L.view,clear:s.L.clearSelection||L.clear,choose:s.L.chooseAt||L.choose,close:s.L.close||L.close,select:s.L.select||L.select}));let l="/data/stealthmark-map.json";if(e&&a&&Array.isArray(a.c?.models)&&a.c.models.length&&Array.isArray(a.d?.results)&&Array.isArray(a.d?.games)&&Array.isArray(a.b?.models)&&a.c.stealthmarkVersion===a.b.stealthmarkVersion)try{const o=tt(a,t);l=URL.createObjectURL(new Blob([JSON.stringify(et(a.b,new Map(o.map(n=>[n.id,n]))))],{type:"application/json"}))}catch{}else e&&ie();P(),we(),D(),Ze(l)})(),P(),B();
|
data/snapshot.json
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
index.html
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|