:root{--fg:#16161a;--muted:#5c5c66;--line:#e4e4ea;--bg:#f7f8fa;--card:#fff;--accent:#0f4c81;--radius:12px;--shadow:0 1px 2px rgba(20,20,30,.04), 0 4px 16px rgba(20,20,30,.06);--maxw:1080px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-family:IBM Plex Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1.55}a{color:var(--accent)}a:focus-visible{outline-offset:2px;border-radius:6px;outline:3px solid #2563eb}.card:focus-visible{outline-offset:2px;border-radius:6px;outline:3px solid #2563eb}.skip{background:var(--fg);color:#fff;z-index:10;border-radius:0 0 8px;padding:.6em 1em;position:absolute;top:0;left:-999px}.skip:focus{left:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}header.site{border-bottom:1px solid var(--line);z-index:5;background:#fff;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1.2rem;display:flex;position:sticky;top:0}.brand{color:var(--fg);align-items:center;gap:.55rem;font-size:1.05rem;font-weight:700;text-decoration:none;display:inline-flex}.brand-logo{border-radius:6px;width:26px;height:26px;display:block}.ghlink{color:var(--muted);display:inline-flex}.ghlink:hover{color:var(--fg)}main{display:block}.intro,.hero,.block,.cards{max-width:var(--maxw);margin-inline:auto}.intro{padding:2rem 1.2rem .5rem}.intro h1{letter-spacing:-.01em;margin:0 0 .3em;font-size:1.9rem}.abstract{max-width:var(--maxw);margin-inline:auto;padding:.6rem 1.2rem .4rem}.intro-abstract{padding-top:0}.abstract h2{border-bottom:2px solid var(--line);margin:.6rem 0 .5rem;padding-bottom:.3rem;font-size:1.1rem}.abstract p{color:#33333a;text-align:justify;text-justify:inter-word;margin:0 0 .7rem;font-size:.95rem}.lead{text-align:justify;text-justify:inter-word;width:100%;max-width:none;margin:.2em 0 .5em;font-size:1.05rem}.meta{color:var(--muted);margin:0;font-size:.85rem}.cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-auto-rows:1fr;gap:.9rem;margin-block:0;margin-inline:auto;padding:1.2rem;list-style:none;display:grid}.cards-3{grid-template-columns:repeat(3,1fr)}.section-head{max-width:var(--maxw);margin:1.4rem auto 0;padding:0 1.4rem}.section-head h2{align-items:center;gap:.5rem;margin:0;font-size:1.15rem;display:flex}.cards li{margin:0}.card{height:100%;color:inherit;background:var(--card);border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:.75rem;padding:.85rem .95rem;text-decoration:none;transition:transform .12s,box-shadow .12s;display:flex}.card:hover{transform:translateY(-3px);box-shadow:0 6px 22px rgba(20,20,30,.12)}.chip{border-radius:9px;flex:none;place-items:center;width:38px;height:38px;display:grid}.chip.lg{border-radius:12px;width:52px;height:52px}.chip-light{border:1px solid var(--line);background:#fff}.logo-img{object-fit:contain;width:74%;height:74%;display:block}.mono{letter-spacing:-.03em;font-weight:800;line-height:1}.card-body{flex-direction:column;flex:1;min-width:0;display:flex}.card-title{font-weight:700;line-height:1.2}.card-meta{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.15rem;display:flex}.card-n{color:var(--muted);font-size:.85rem}.card-pills{flex-wrap:wrap;gap:.3rem;margin-top:.3rem;display:flex}.mini-pill{max-width:100%;color:var(--muted);border:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;background:#f3f4f6;border-radius:999px;align-items:center;gap:.3em;padding:.05rem .4rem;font-size:.68rem;font-weight:600;display:inline-flex;overflow:hidden}.mini-ico{color:var(--accent);flex:none;display:inline-flex}.mini-ico svg{width:10px;height:10px;display:block}.badge{letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;border-radius:999px;flex:none;align-items:center;height:1.4rem;padding:0 .5em;font-size:.66rem;font-weight:600;line-height:1;display:inline-flex}.badge-reference{color:#1c4e80;background:#e6f0fb}.badge-prov{color:#555;background:#eef0f2}.badge-count{color:#555;text-transform:none;letter-spacing:0;background:#eef0f2}.hero{background:color-mix(in srgb, var(--accent) 12%, white);border-top:3px solid var(--accent);border-bottom:1px solid var(--line);margin-top:1rem;padding:1.3rem 1.2rem}.hero-row{max-width:var(--maxw);align-items:center;gap:1rem;margin-inline:auto;display:flex}.hero h1{margin:0;font-size:1.7rem}.hero-stats{color:var(--muted);flex-wrap:wrap;gap:.4rem 1.1rem;margin:.3em 0 0;font-size:.9rem;display:flex}.hero-stats .stat strong{color:var(--fg)}.about{max-width:var(--maxw);margin-inline:auto;padding:1.1rem 1.2rem .2rem}.blurb{color:#33333a;text-align:justify;text-justify:inter-word;width:100%;max-width:none;margin:0;font-size:1.02rem}.inline-link{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.inline-link:hover{text-decoration-thickness:2px}.inline-link:focus-visible{outline-offset:1px;border-radius:2px;outline:2px solid #2563eb}.meta-grid{flex-wrap:wrap;place-content:center flex-end;gap:.4rem .5rem;max-width:60%;margin-left:auto;display:flex}.meta-item{background:var(--card);border:1px solid var(--line);border-radius:999px;align-items:center;gap:.4em;padding:.2rem .6rem;font-size:.78rem;display:inline-flex}.meta-val{color:var(--fg);font-weight:700}.meta-key{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.7rem}.meta-ico{color:var(--accent);flex:none;display:inline-flex}.meta-ico svg{width:12px;height:12px;display:block}.meta-item.bad{background:#fdecec;border-color:#e7a3a3}.meta-item.bad .meta-val,.meta-item.bad .meta-key,.meta-item.bad .meta-ico{color:#c0202a}.block{padding:.4rem 1.2rem}.block h2{border-bottom:2px solid var(--line);align-items:center;gap:.5rem;margin:1.4rem 0 .6rem;padding-bottom:.3rem;font-size:1.1rem;display:flex}.h2-ico{color:var(--accent)}.charts{flex-wrap:wrap;gap:1rem;display:flex}.chart{flex:440px;min-width:300px;margin:0}.chart-svg{border:1px solid var(--line);cursor:zoom-in;background:#fff;border-radius:10px;width:100%;padding:0;transition:box-shadow .12s,border-color .12s;display:block;overflow:hidden}.chart-svg:hover{border-color:var(--accent);box-shadow:var(--shadow)}.chart-svg:focus-visible{outline-offset:2px;outline:3px solid #2563eb}.chart-svg svg{width:100%;height:auto;display:block}.chart-frame{position:relative}.chart figcaption{width:100%;color:var(--muted);text-align:justify;text-justify:inter-word;overflow-wrap:break-word;margin-top:.4rem;font-size:.82rem;display:block}.chart-tools{flex-direction:column;align-items:stretch;gap:.3rem;display:flex;position:absolute;bottom:.5rem;right:.5rem}.dl-btn{font:inherit;color:var(--accent);border:1px solid var(--line);cursor:pointer;white-space:nowrap;backdrop-filter:blur(2px);background:rgba(255,255,255,.9);border-radius:999px;justify-content:center;align-items:center;gap:.3em;padding:.2rem .5rem;font-size:.74rem;font-weight:600;display:inline-flex}.dl-btn:hover{border-color:var(--accent);background:#fff}.dl-btn:focus-visible{outline-offset:1px;outline:2px solid #2563eb}.lightbox{z-index:20;cursor:zoom-out;background:rgba(16,16,26,.7);outline:none;justify-content:center;align-items:center;padding:2.5vmin;display:flex;position:fixed;inset:0}.lightbox-inner{cursor:default;background:#fff;border-radius:12px;max-width:96vw;max-height:92vh;padding:1rem;position:relative;overflow:auto;box-shadow:0 12px 48px rgba(0,0,0,.35)}.lightbox-svg>svg{width:min(92vw,1400px);height:auto;max-height:86vh;display:block}.lightbox-tools{align-items:flex-end;width:auto;position:absolute;bottom:1.4rem;right:1.4rem}.lightbox-close{color:#fff;cursor:pointer;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.4);border-radius:999px;place-items:center;width:2.2rem;height:2.2rem;font-size:1.4rem;line-height:1;display:grid;position:absolute;top:1rem;right:1.2rem}.lightbox-close:hover{background:rgba(255,255,255,.25)}.lightbox-close:focus-visible{outline-offset:2px;outline:3px solid #2563eb}.scroll{overflow-x:auto}table.data{border-collapse:collapse;border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;font-size:.9rem;overflow:hidden}table.data th,table.data td{text-align:right;border-bottom:1px solid var(--line);padding:.45rem .7rem}table.data thead th{text-align:right;color:var(--muted);background:#fafbfc;padding:0;font-weight:600;position:sticky;top:0}.sort-btn{width:100%;font:inherit;color:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;justify-content:flex-end;align-items:center;gap:.35em;padding:.45rem .7rem;display:inline-flex}.sort-btn.first{justify-content:flex-start}.sort-btn:hover{color:var(--fg);background:#eef1f5}.sort-btn:focus-visible{outline-offset:-2px;outline:2px solid #2563eb}.sort-ind{opacity:.3;font-size:.78em}.sort-ind.active{opacity:1;color:var(--accent)}table.data td:first-child{text-align:left}table.data th[scope=col]:first-child{text-align:left}table.data th[scope=row]{text-align:left}table.data tbody tr:nth-child(2n){background:#fcfcfd}table.data tbody tr:hover{background:#f4f7fb}th[scope=row]{white-space:nowrap;font-weight:500}tr.subtotal th,tr.subtotal td{border-top:2px solid var(--line);background:#f7f9fb;font-weight:700}.fname{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.82rem}.dot{vertical-align:middle;border-radius:3px;width:.7em;height:.7em;margin-right:.5em;display:inline-block}.dname{white-space:nowrap}.dname a{vertical-align:middle}.row-ico{vertical-align:middle;border-radius:5px;place-items:center;width:20px;height:20px;margin-right:.5em;display:inline-grid}.row-ico.chip-light{border:1px solid var(--line);background:#fff}.back{z-index:6;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);color:var(--accent);border-radius:999px;align-items:center;gap:.45rem;margin:0;padding:.55rem .95rem;font-weight:600;text-decoration:none;transition:transform .12s,box-shadow .12s;display:inline-flex;position:fixed;bottom:1.2rem;left:1.2rem}.back:hover{transform:translateY(-2px);box-shadow:0 6px 22px rgba(20,20,30,.14)}.back:focus-visible{outline-offset:2px;outline:3px solid #2563eb}.site-foot{max-width:var(--maxw);color:var(--muted);border-top:1px solid var(--line);margin:2.5rem auto 0;padding:1.5rem 1.2rem 2.5rem;font-size:.85rem}@media (width<=760px){.cards-3{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.cards-3{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto;transition:none!important}}