:root{
  --bg:#ffffff;--fg:#1a1a1a;--muted:#4a4a4a;--card:#f4f5f7;--border:#c9ccd1;--link:#0b57d0;--focus:#0b57d0;
  --low-bg:#e3f4e8;--low-fg:#14532d;--med-bg:#fff1d6;--med-fg:#7a4100;--high-bg:#fde2e1;--high-fg:#8f1d1d;--info-bg:#e6eefb;--info-fg:#1e3a8a;
  --pop:#ffffff;color-scheme:light;
}
:root[data-theme="dark"]{
  --bg:#121417;--fg:#ececec;--muted:#b9bcc2;--card:#1d2025;--border:#3d424a;--link:#8ab4f8;--focus:#8ab4f8;
  --low-bg:#123321;--low-fg:#8ee0a8;--med-bg:#3a2a0a;--med-fg:#ffc966;--high-bg:#3d1515;--high-fg:#ffaaa5;--info-bg:#17264a;--info-fg:#a9c4ff;
  --pop:#262a31;color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
a{color:var(--link)}
.wrap{max-width:1040px;margin:0 auto;padding:0 16px}
.skip{position:absolute;left:-999px;top:0;background:var(--fg);color:var(--bg);padding:8px;z-index:10}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.top{border-bottom:1px solid var(--border);padding:16px 0 8px}
.top-row{display:flex;gap:16px;align-items:flex-start;justify-content:space-between}
h1{margin:0 0 4px;font-size:2rem}
.lede{margin:0;color:var(--muted);max-width:60ch}
.toc ol{display:flex;flex-wrap:wrap;gap:4px 16px;padding:0;margin:12px 0 8px;list-style:none}
.legend{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:8px}
section,.foot{padding:16px 0;border-bottom:1px solid var(--border)}
.foot{border-bottom:0;padding-bottom:40px}
h2{font-size:1.4rem;margin:8px 0}
.intro{color:var(--muted);margin:0 0 12px;max-width:75ch}
.items{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.item{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px;position:relative;min-width:0}
.item-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.item-label{font-weight:600;margin:0;font-size:1rem;flex:1 1 auto}
.item-value{margin:6px 0 0;word-break:break-word;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.9rem;white-space:pre-wrap}
.item-value.text{font-family:inherit;font-size:1rem;white-space:normal}
.na{color:var(--muted);font-style:italic;font-family:inherit}
.risk{display:inline-block;border-radius:999px;padding:1px 10px;font-size:.8rem;font-weight:600;border:1px solid currentColor}
.risk-low{background:var(--low-bg);color:var(--low-fg)}
.risk-medium{background:var(--med-bg);color:var(--med-fg)}
.risk-high{background:var(--high-bg);color:var(--high-fg)}
.risk-info{background:var(--info-bg);color:var(--info-fg)}
.info-btn{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);background:var(--bg);color:var(--fg);font:italic 700 15px/1 Georgia,serif;cursor:pointer;flex:none}
.info-btn[aria-expanded="true"]{background:var(--focus);color:var(--bg)}
.pop{position:absolute;z-index:5;left:8px;right:8px;top:44px;background:var(--pop);color:var(--fg);border:1px solid var(--border);border-radius:8px;padding:12px 14px;box-shadow:0 6px 24px rgba(0,0,0,.25);font-size:.92rem}
.pop[hidden]{display:none}
.pop h4{margin:.4em 0 .1em;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
.pop p{margin:0 0 .3em}
.pop .close{position:absolute;top:4px;right:6px;border:0;background:none;color:var(--fg);font-size:1.3rem;cursor:pointer;padding:2px 6px}
.btn{font:inherit;padding:6px 14px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--fg);cursor:pointer}
.btn:hover{border-color:var(--focus)}
.btn-primary{background:var(--focus);color:var(--bg);border-color:var(--focus);font-weight:600}
.actions{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}
table.kv{border-collapse:collapse;width:100%;font-size:.88rem;margin-top:6px}
table.kv td,table.kv th{border-top:1px solid var(--border);padding:3px 4px;text-align:left;vertical-align:top;overflow-wrap:anywhere}
.item ul{margin:6px 0 0;padding-left:1.2em}
.wide{grid-column:1/-1}
.bait{position:absolute!important;left:-9999px!important;top:-9999px!important;width:1px!important;height:1px!important}
@media (max-width:600px){h1{font-size:1.6rem}.top-row{flex-direction:column}.items{grid-template-columns:1fr}}
@media print{.info-btn,.btn,.toc{display:none}}
.fp-id{font:700 1.15rem/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;margin:4px 0;overflow-wrap:anywhere}
#fingerprint-items .item{min-height:7.5em}
#fingerprint-items .item.wide{min-height:22em}
/* Hide the data area until scripts have filled it (avoids layout shift); auto-reveal after 2 s if scripts fail. */
main,.foot{visibility:hidden;animation:uiw-show 0s linear 2s forwards}
.ready main,.ready .foot{visibility:visible;animation:none}
@keyframes uiw-show{to{visibility:visible}}
.spoof-wrap{position:relative}
.spoof{font-family:inherit;font-weight:600;white-space:normal;flex:1 1 auto}
.spoof-wrap .pop{top:36px;left:0;right:0}
