:root{
  --bg:#fbfbfd; --surface:#fff; --border:#e4e4e9; --text:#1a1a1f; --muted:#6c6c78;
  --accent:#4338ca; --accent-soft:#eef0ff;
  --match:#0f8a4f; --match-soft:#e6f5ec;
  --close:#a16207; --close-soft:#fdf4e3;
  --differs:#b4451f; --differs-soft:#fdeee8;
  --fail:#8b1a1a; --fail-soft:#fbeaea;
  --radius:10px; --shadow:0 1px 2px rgba(16,16,32,.05),0 4px 16px rgba(16,16,32,.04);
}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){
  --bg:#0f1014; --surface:#17181e; --border:#2a2b33; --text:#e9e9ef; --muted:#9a9aa8;
  --accent:#a5b4fc; --accent-soft:#1e1f3a;
  --match:#4ade80; --match-soft:#12291c;
  --close:#fbbf24; --close-soft:#2a2312;
  --differs:#fb923c; --differs-soft:#2d1c12;
  --fail:#f87171; --fail-soft:#2d1414;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 4px 16px rgba(0,0,0,.3);
}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);
  font:15px/1.6 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",sans-serif;
  -webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.muted{color:var(--muted)}
main{max-width:1180px;margin:0 auto;padding:0 24px 72px}

.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;
  gap:24px;padding:14px 24px;background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--border);margin-bottom:40px}
.wordmark{font-weight:640;letter-spacing:-.02em;font-size:16px;color:var(--text)}
.wordmark span{color:var(--accent)}
.wordmark:hover{text-decoration:none}
.site-header nav{display:flex;gap:20px;font-size:14px}
.site-header nav a{color:var(--muted)}
.site-header nav a:hover{color:var(--text);text-decoration:none}

.hero{padding:24px 0 8px;max-width:760px}
.hero h1{font-size:clamp(30px,4.2vw,42px);line-height:1.15;letter-spacing:-.025em;margin:0 0 16px}
.lede{font-size:17px;color:var(--muted);margin:0 0 28px}
.note{font-size:13.5px;color:var(--muted);border-left:2px solid var(--border);padding-left:14px;margin:28px 0 0}
.stats{display:flex;flex-wrap:wrap;gap:12px}
.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:14px 20px;min-width:112px;box-shadow:var(--shadow)}
.stat b{display:block;font-size:24px;letter-spacing:-.02em}
.stat span{font-size:12.5px;color:var(--muted)}

.section-title{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);
  margin:56px 0 16px;font-weight:600}
.type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.type-card{display:flex;flex-direction:column;gap:7px;padding:16px 18px;background:var(--surface);
  border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);
  transition:transform .12s ease,border-color .12s ease}
.type-card:hover{text-decoration:none;transform:translateY(-2px);border-color:var(--accent)}
.type-name{font-weight:600;color:var(--text);letter-spacing:-.01em}
.type-meta,.type-pct{font-size:12.5px;color:var(--muted)}
.bar{display:block;height:5px;border-radius:3px;background:var(--border);overflow:hidden}
.bar-fill{display:block;height:100%;border-radius:3px}
.bar-match{background:var(--match)} .bar-close{background:var(--close)} .bar-differs{background:var(--differs)}

.crumbs{font-size:13px;color:var(--muted);margin-bottom:20px}
.crumbs span{margin:0 6px}
.page-head{margin-bottom:32px}
.page-head h1{font-size:32px;letter-spacing:-.02em;margin:0 0 8px}
.jump{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}
.jump a{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 8px;
  font-size:12.5px;background:var(--surface);border:1px solid var(--border);border-radius:7px;color:var(--muted)}
.jump a:hover{text-decoration:none;border-color:var(--accent);color:var(--accent)}

.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;
  padding:20px;margin-bottom:22px;box-shadow:var(--shadow);scroll-margin-top:80px}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.card-head h2{font-size:16px;margin:0;letter-spacing:-.01em}
.badge{font-size:11.5px;font-weight:600;padding:3px 10px;border-radius:999px;white-space:nowrap}
.badge-match{background:var(--match-soft);color:var(--match)}
.badge-close{background:var(--close-soft);color:var(--close)}
.badge-differs,.badge-ours-only,.badge-unmeasured{background:var(--differs-soft);color:var(--differs)}
.badge-failed{background:var(--fail-soft);color:var(--fail)}
.badge-both-failed{background:var(--border);color:var(--muted)}
.metrics{display:flex;flex-wrap:wrap;gap:18px;font-size:12.5px;color:var(--muted);
  padding-bottom:14px;margin-bottom:4px;border-bottom:1px solid var(--border)}
.metrics b{color:var(--text);font-variant-numeric:tabular-nums}

.compare{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px}
@media (max-width:820px){.compare{grid-template-columns:1fr}}
.pane{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.pane-head{display:flex;align-items:baseline;gap:8px;padding:9px 12px;border-bottom:1px solid var(--border);
  background:color-mix(in srgb,var(--border) 22%,transparent)}
.pane-label{font-size:12.5px;font-weight:600}
.pane-sub{font-size:11.5px;color:var(--muted)}
/* Mermaid's palette assumes a light ground, so the canvas stays white in both
   themes rather than inverting the diagram out from under itself. */
.pane-body{flex:1;display:flex;align-items:center;justify-content:center;padding:18px;
  background:#fff;overflow:auto}
.pane-body img{max-width:100%;height:auto;display:block}
.pane-failed .pane-body{background:var(--fail-soft);background-image:none}
.failure{display:flex;flex-direction:column;gap:6px;text-align:center;margin:0;padding:20px 8px;font-size:12.5px}
.failure strong{color:var(--fail)}
.failure span{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;
  word-break:break-word;max-width:46ch}

.source{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}
.source summary{cursor:pointer;font-size:12.5px;color:var(--muted);user-select:none}
.source summary:hover{color:var(--text)}
.source pre{margin:12px 0 0;padding:14px;background:var(--bg);border:1px solid var(--border);
  border-radius:8px;overflow-x:auto;font-size:12.5px;line-height:1.55}
.source code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

.site-footer{border-top:1px solid var(--border);padding:28px 24px;text-align:center;
  font-size:12.5px;color:var(--muted)}
.site-footer p{margin:0 0 4px}
