@font-face { font-family:"Space Grotesk"; src:url("/fonts/space-grotesk-500.woff2") format("woff2");
  font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:"Space Grotesk"; src:url("/fonts/space-grotesk-700.woff2") format("woff2");
  font-weight:700; font-style:normal; font-display:swap; }
:root { color-scheme: light dark;
  --bg:#ffffff; --fg:#111111; --dim:#6b6b6b; --faint:#9a9a9a;
  --line:#e6e6e6; --soft:#f7f7f7; --live:#137333;
  --add-bg:#e9f5ec; --add-fg:#0f6a2f; --del-bg:#fdedee; --del-fg:#a52833; }
@media (prefers-color-scheme: dark) { :root {
  --bg:#0a0a0a; --fg:#ebebeb; --dim:#9a9a9a; --faint:#6f6f6f;
  --line:#1e1e1e; --soft:#121212; --live:#4ccb6f;
  --add-bg:rgba(46,160,67,.14); --add-fg:#57c46f; --del-bg:rgba(248,81,73,.13); --del-fg:#ef7078; } }
* { margin:0; box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { background:var(--bg); color:var(--fg);
  font:16px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif; }
a { color:inherit; text-decoration:none; }
main a:not(.plain), footer a { text-decoration:underline; text-decoration-color:var(--faint); text-underline-offset:3px; }
main a:hover, footer a:hover { text-decoration-color:var(--fg); }
a:focus-visible { outline:2px solid var(--fg); outline-offset:2px; border-radius:2px; }
.skip { position:absolute; left:-9999px; }
.skip:focus { left:12px; top:10px; z-index:10; background:var(--bg); border:1px solid var(--line); border-radius:8px; padding:.5rem .9rem; }
.mono { font-family:ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace; font-size:.86em; }
.dim { color:var(--dim); } .faint { color:var(--faint); }
.wrap { max-width:66rem; margin:0 auto; padding:0 22px; }
header.top { border-bottom:1px solid var(--line); }
header.top .wrap { display:flex; align-items:baseline; gap:1.4rem; padding-top:18px; padding-bottom:14px; flex-wrap:wrap; }
.wm { font-weight:650; letter-spacing:-.02em; font-size:1.05rem; }
.wm .half { color:var(--dim); font-weight:500; }
nav.site { display:flex; gap:1.1rem; font-size:.92rem; color:var(--dim); margin-left:auto; flex-wrap:wrap; }
nav.site a[aria-current] { color:var(--fg); }
main { padding:2.6rem 0 3.5rem; }
h1 { font-size:1.7rem; letter-spacing:-.025em; line-height:1.25; font-weight:650; max-width:46rem; }
h2 { font-size:1.02rem; font-weight:650; letter-spacing:.01em; margin:2.6rem 0 .9rem; }
p.lede { font-size:1.06rem; max-width:44rem; margin-top:.9rem; color:var(--dim); }
p.lede strong { color:var(--fg); font-weight:600; }
.stats { display:flex; gap:2rem; flex-wrap:wrap; margin-top:1.7rem; }
.stat b { display:block; font-size:1.25rem; font-weight:650; letter-spacing:-.02em; }
.stat span { font-size:.82rem; color:var(--dim); }
.livedot { display:inline-block; width:.5em; height:.5em; border-radius:50%; background:var(--live); margin-right:.45em; }
.dot { display:inline-block; width:.55em; height:.55em; border-radius:50%; margin-right:.5em; background:var(--faint); }
.st-scans .dot { background:var(--del-fg); }
.st-global .dot { background:transparent; box-shadow:inset 0 0 0 1.5px var(--del-fg); }
.st-e2ee .dot { background:var(--live); }
.st-denies .dot { background:transparent; box-shadow:inset 0 0 0 1.5px var(--live); }
.st-unclear .dot { background:var(--faint); }
.chips { display:flex; flex-wrap:wrap; gap:.55rem; margin:.9rem 0 .4rem; }
.chip { display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:10px; padding:.5rem .85rem; font-size:.93rem; font-weight:550; text-decoration:none !important; }
.chip:hover { background:var(--soft); }
.quote { border-left:3px solid var(--line); padding:.35rem 0 .35rem .9rem; margin-top:.6rem; color:var(--dim); font-style:italic; }
.quote .who { font-style:normal; font-size:.82rem; color:var(--faint); }
.legend { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.6rem; }
.legend a { border:1px solid var(--line); border-radius:99px; padding:.3rem .85rem; font-size:.86rem; color:var(--dim); text-decoration:none; }
.legend a b { color:var(--fg); font-weight:650; }
.grouphead { display:flex; align-items:baseline; gap:.8rem; flex-wrap:wrap; }
.grouphead .count { color:var(--faint); font-weight:400; }
p.groupnote { font-size:.88rem; color:var(--dim); max-width:44rem; margin:-.3rem 0 .8rem; }
table { width:100%; border-collapse:collapse; font-size:.93rem; }
th { text-align:left; font-size:.74rem; text-transform:uppercase; letter-spacing:.06em; color:var(--faint); font-weight:600; padding:.5rem .8rem .5rem 0; border-bottom:1px solid var(--line); }
td { padding:.62rem .8rem .62rem 0; border-bottom:1px solid var(--line); vertical-align:top; }
tr:hover td { background:var(--soft); }
.scroll { overflow-x:auto; }
.feed { list-style:none; }
.feed li { display:flex; gap:1.1rem; padding:.7rem 0; border-bottom:1px solid var(--line); align-items:baseline; flex-wrap:wrap; }
.feed .date { flex:0 0 7.2rem; }
.pill { font-size:.74rem; padding:.12rem .55rem; border:1px solid var(--line); border-radius:99px; color:var(--dim); white-space:nowrap; }
.delta { white-space:nowrap; }
.delta .a { color:var(--add-fg); } .delta .r { color:var(--del-fg); }
.empty { border:1px dashed var(--line); border-radius:10px; padding:1.4rem 1.5rem; color:var(--dim); max-width:44rem; }
.banner { border:1px solid var(--line); border-left-width:4px; border-radius:10px; padding:1rem 1.2rem; margin:1.5rem 0; max-width:46rem; }
.banner.st-scans { border-left-color:var(--del-fg); }
.banner.st-global { border-left-color:var(--del-fg); border-left-style:dashed; }
.banner.st-e2ee, .banner.st-denies { border-left-color:var(--live); }
.banner.st-unclear { border-left-color:var(--faint); }
.banner .srcs { font-size:.85rem; color:var(--dim); margin-top:.55rem; }
.diff { border:1px solid var(--line); border-radius:10px; overflow:hidden; margin:1.1rem 0; }
.diff .hunkhead { padding:.35rem .9rem; background:var(--soft); color:var(--faint); border-top:1px solid var(--line); }
.diff .hunkhead:first-child { border-top:0; }
.diff pre { margin:0; overflow-x:auto; }
.diff .ln { display:block; padding:.13rem .9rem; white-space:pre-wrap; word-break:break-word; }
.diff .add { background:var(--add-bg); color:var(--add-fg); }
.diff .del { background:var(--del-bg); color:var(--del-fg); }
.cite { background:var(--soft); border:1px solid var(--line); border-radius:10px; padding:1rem 1.2rem; max-width:46rem; overflow-wrap:anywhere; }
.label-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(15rem,1fr)); gap:1rem; margin-top:1rem; }
.label-card { border:1px solid var(--line); border-radius:10px; padding:1rem 1.1rem; }
.label-card h3 { font-size:.92rem; font-weight:650; margin-bottom:.5rem; }
.label-card ul { list-style:none; font-size:.86rem; color:var(--dim); }
.label-card li { padding:.12rem 0; }
.crumbs { font-size:.85rem; color:var(--dim); margin-bottom:1.1rem; }
.doclist td:first-child { min-width:13rem; }
footer.site { border-top:1px solid var(--line); }
footer.site .wrap { padding:1.4rem 22px 2.2rem; font-size:.84rem; color:var(--dim); display:flex; gap:1.4rem; flex-wrap:wrap; }
.note { font-size:.88rem; color:var(--dim); max-width:44rem; }
.about h2 { margin-top:2.2rem; }
.about p, .about ul { max-width:44rem; margin-bottom:.9rem; }
.about ul { padding-left:1.2rem; }
.about li { margin-bottom:.4rem; }
@media print {
  header.top nav, footer.site, .legend, .skip { display:none !important; }
  body { font-size:12px; }
  main { padding:0; }
  a { text-decoration:none !important; }
  .diff, .banner, .cite { break-inside:avoid-page; border-color:#bbb; }
}

/* ——— v2 design layer ——— */
.wrap { max-width:72rem; }
h1 { font-size:clamp(2rem, 4.4vw, 3.2rem); line-height:1.07; letter-spacing:-.032em; max-width:58rem; }
h2 { font-size:1.28rem; letter-spacing:-.015em; }
p.lede { font-size:1.12rem; line-height:1.62; }
main { padding-top:1.8rem; }
.hero { background:#0a0c0f; color:#f4f4f4; border:1px solid #1d2128; border-radius:20px;
  padding:clamp(1.8rem, 4.5vw, 3.4rem); position:relative; overflow:hidden; }
.hero::before { content:""; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(0deg, transparent 0 3px, rgba(255,255,255,.02) 3px 4px); }
.hero .beam { position:absolute; left:0; right:0; top:-22%; height:16%; pointer-events:none;
  background:linear-gradient(180deg, transparent, rgba(87,196,111,.04), rgba(87,196,111,.13), transparent);
  animation:scan 8s cubic-bezier(.45,0,.55,1) infinite; }
@keyframes scan { 0% { top:-22% } 60% { top:108% } 100% { top:108% } }
@media (prefers-reduced-motion:reduce) { .hero .beam { display:none; } }
.hero .eyebrow { font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:#8b949e;
  display:flex; align-items:center; gap:.15rem; margin-bottom:1.3rem; }
.hero h1 { color:#ffffff; }
.hero p.lede { color:#a6adb5; max-width:47rem; }
.hero p.lede strong { color:#f4f4f4; }
.hero a { text-decoration-color:#5a6470; }
.hero a:hover { text-decoration-color:#fff; }
.bar { display:flex; height:13px; border-radius:99px; overflow:hidden; margin:2.1rem 0 1.1rem;
  border:1px solid rgba(255,255,255,.09); background:#14171c; }
.bar i { display:block; }
.seg-confirmed { flex:5; background:#e35d66; }
.seg-global { flex:13; background:repeating-linear-gradient(135deg, #e35d66 0 5px, rgba(227,93,102,.22) 5px 9px); }
.seg-unclear { flex:3; background:#3a3f45; }
.seg-denies { flex:1; background:repeating-linear-gradient(135deg, #3fae5c 0 5px, rgba(63,174,92,.22) 5px 9px); }
.seg-e2ee { flex:9; background:#3fae5c; }
.bignums { display:flex; gap:clamp(1.3rem, 3.5vw, 2.8rem); flex-wrap:wrap; margin-top:.4rem; }
.bignums a { text-decoration:none !important; }
.bignums a:hover span { color:#d7dce1; }
.bignums b { display:block; font-size:2rem; font-weight:680; letter-spacing:-.03em; line-height:1.15; }
.bignums span { font-size:.82rem; color:#98a0a8; }
.n-red { color:#ef7078; } .n-redsoft { color:rgba(239,112,120,.72); }
.n-gray { color:#9aa2aa; } .n-greensoft { color:rgba(87,196,111,.72); } .n-green { color:#57c46f; }
.grouphead { margin-top:3rem; }
.cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(232px, 1fr)); gap:.8rem; margin:1.1rem 0 .4rem; }
.card { display:flex; align-items:center; gap:.9rem; border:1px solid var(--line); border-radius:14px;
  padding:.95rem 1.05rem; text-decoration:none !important;
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease; }
.card:hover { transform:translateY(-2px); box-shadow:0 10px 26px rgb(0 0 0 / .14); border-color:var(--faint); }
.mg { flex:0 0 42px; width:42px; height:42px; border-radius:50%; display:grid; place-items:center;
  font-weight:700; font-size:1.06rem; background:var(--soft); border:2px solid var(--faint); }
.st-scans .mg { border-color:var(--del-fg); }
.st-global .mg { border-color:var(--del-fg); border-style:dashed; }
.st-e2ee .mg { border-color:var(--live); }
.st-denies .mg { border-color:var(--live); border-style:dashed; }
.st-unclear .mg { border-color:var(--faint); }
.card .nm { font-weight:640; font-size:.98rem; }
.card .vd { font-size:.8rem; color:var(--dim); }
.st-scans .vd, .st-global .vd { color:var(--del-fg); }
.st-e2ee .vd, .st-denies .vd { color:var(--live); }
@media print { .hero .beam { display:none; } .hero { background:#fff; color:#000; border-color:#bbb; }
  .hero h1 { color:#000; } .hero p.lede { color:#333; } }
.idrow { display:flex; align-items:center; gap:1.1rem; margin-top:.3rem; }
.idrow .mg-lg { flex:0 0 62px; width:62px; height:62px; font-size:1.55rem; border-width:2.5px; }
.idrow h1 { font-size:clamp(1.8rem, 3.4vw, 2.4rem); line-height:1.1; }
.idrow .idvd { font-size:.95rem; font-weight:550; }
.trust { display:flex; gap:.6rem 2rem; flex-wrap:wrap; border:1px solid var(--line); border-radius:14px;
  padding:1.05rem 1.3rem; margin-top:2.6rem; font-size:.88rem; color:var(--dim); }
.trust b { color:var(--fg); font-weight:600; }
.heroeye { display:none; }
@media (min-width:1180px) {
  .hero:not(.cc-hero) { padding-right:330px; }
  .heroeye { display:block; position:absolute; right:clamp(1.5rem, 4vw, 3.6rem); top:50%;
    transform:translateY(-50%); width:250px; }
  .heroeye svg { width:100%; height:auto; display:block; }
}
.cc-hero { margin-bottom:2.2rem; }
.cc-grid { display:flex; align-items:center; justify-content:space-between; gap:2.4rem; flex-wrap:wrap; position:relative; }
.cc-grid > div:first-child { flex:1 1 30rem; }
.cc-eye { flex:0 1 300px; min-width:210px; margin-inline:auto; }
.cc-eye svg { width:100%; height:auto; display:block; }
.tl { list-style:none; padding-left:0; max-width:46rem; margin:1.2rem 0; }
.tl li { position:relative; padding:.42rem 0 .42rem 1.7rem; border-left:2px solid var(--line); margin-left:.4rem; }
.tl li::before { content:""; position:absolute; left:-6px; top:.95rem; width:10px; height:10px;
  border-radius:50%; background:var(--bg); border:2px solid var(--faint); }
.tl li:last-child::before { border-color:var(--live); }
.tl b { font-family:ui-monospace, "SF Mono", Menlo, monospace; font-size:.82em; color:var(--dim); margin-right:.35rem; }
.cmp td:first-child { white-space:nowrap; }
.cmp th:nth-child(2), .cmp td:nth-child(2) { padding-right:1.4rem; }
main details { border:1px solid var(--line); border-radius:12px; padding:.85rem 1.1rem; margin:.6rem 0; max-width:46rem; }
main details summary { cursor:pointer; font-weight:600; }
main details summary::marker { color:var(--faint); }
main details[open] summary { margin-bottom:.5rem; }
main details p { color:var(--dim); }
.sources { list-style:none; padding-left:0 !important; }
.sources li { padding:.45rem 0; border-bottom:1px solid var(--line); }

/* ——— v3: typeface, charts, footer, tints ——— */
.wm, h1, h2, h3, .bignums b, .stat b, .step b, .bigcard h3 {
  font-family:"Space Grotesk", -apple-system, BlinkMacSystemFont, system-ui, sans-serif; }
h1 { font-weight:700; }
.st-scans .mg { background:var(--del-bg); }
.st-global .mg { background:var(--del-bg); }
.st-e2ee .mg, .st-denies .mg { background:var(--add-bg); }
.chart { max-width:46rem; margin:1.1rem 0 1.6rem; }
.crow { display:grid; grid-template-columns:6.5rem 1fr 6rem; gap:.9rem; align-items:center; padding:.22rem 0; font-size:.9rem; }
.crow .track { background:var(--soft); border:1px solid var(--line); border-radius:6px; height:22px; position:relative; overflow:hidden; }
.crow .fill { position:absolute; inset:0 auto 0 0; border-radius:5px; background:var(--del-fg); opacity:.85; }
.crow .fill.g2 { background:var(--dim); }
.crow .val { text-align:right; }
.crow-sub { margin-top:-.1rem; }
.lgd { display:inline-block; width:.85em; height:.85em; border-radius:3px; vertical-align:-.1em; margin-right:.35em; }
.steps { display:grid; grid-template-columns:repeat(auto-fit, minmax(215px, 1fr)); gap:1rem; margin:1.2rem 0 .4rem; }
.step { border-left:2px solid var(--line); padding:.15rem 0 .15rem 1rem; font-size:.92rem; color:var(--dim); }
.step b { display:block; color:var(--fg); margin-bottom:.25rem; }
.bigcards { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:.9rem; margin:1.1rem 0 .4rem; }
.bigcard { border:1px solid var(--line); border-radius:14px; padding:1.15rem 1.25rem; text-decoration:none !important;
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease; }
.bigcard:hover { transform:translateY(-2px); box-shadow:0 10px 26px rgb(0 0 0 / .12); border-color:var(--faint); }
.bigcard h3 { font-size:1.02rem; margin-bottom:.35rem; }
.bigcard p { font-size:.87rem; color:var(--dim); }
.notes-list { list-style:none; }
.notes-list li { display:flex; gap:1.2rem; padding:.85rem 0; border-bottom:1px solid var(--line); }
.notes-list .date { flex:0 0 7.2rem; padding-top:.15rem; }
.gloss dt { font-weight:650; font-family:"Space Grotesk", system-ui, sans-serif; margin-top:1.2rem; }
.gloss dd { color:var(--dim); margin:.25rem 0 0; max-width:44rem; }
footer.site .wrap { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:2.2rem; padding:2.4rem 22px 2.8rem; }
footer.site .fcol h4 { font-size:.76rem; text-transform:uppercase; letter-spacing:.09em; color:var(--faint); margin-bottom:.6rem; font-weight:600; }
footer.site .fcol a { display:block; padding:.17rem 0; text-decoration:none; }
footer.site .fcol a:hover { text-decoration:underline; }
footer.site .fbrand p { font-size:.88rem; max-width:22rem; }
footer.site .feye { width:54px; margin-bottom:.7rem; }
footer.site .feye svg { width:100%; height:auto; display:block; }
@media (max-width:820px) { footer.site .wrap { grid-template-columns:1fr 1fr; gap:1.6rem; } footer.site .fbrand { grid-column:1 / -1; } }
.langmenu { position:relative; }
.langmenu summary { list-style:none; cursor:pointer; color:var(--dim); user-select:none;
  display:inline-flex; align-items:center; gap:.34em; line-height:1;
  font-size:.8rem; font-weight:550; letter-spacing:.02em;
  border:1px solid var(--line); border-radius:8px; padding:.3rem .55rem; }
.langmenu summary:hover { color:var(--fg); border-color:var(--faint); }
.langmenu summary::-webkit-details-marker { display:none; }
.langmenu summary svg { width:.85rem; height:.85rem; display:block; opacity:.75; }
.langmenu summary::after { content:"▾"; font-size:.7em; color:var(--faint); }
.langmenu[open] summary { color:var(--fg); border-color:var(--faint); }
.langmenu .panel { position:absolute; right:0; top:calc(100% + .5rem); z-index:40; min-width:10.5rem;
  background:var(--bg); border:1px solid var(--line); border-radius:12px; padding:.3rem;
  box-shadow:0 14px 40px rgb(0 0 0 / .16); }
.langmenu .panel a { display:flex; align-items:baseline; justify-content:space-between; gap:1.1rem;
  padding:.48rem .75rem; border-radius:8px; color:var(--fg); font-size:.92rem; text-decoration:none !important; }
.langmenu .panel a:hover { background:var(--soft); }
.langmenu .panel a[aria-current] { font-weight:650; }
.langmenu .panel a[aria-current]::after { content:"✓"; color:var(--live); font-size:.85em; }
@media (max-width:700px) {
  header.top .wrap { position:relative; padding-top:14px; padding-bottom:12px; gap:.5rem 1rem; }
  nav.site { width:100%; margin-left:0; gap:.4rem .95rem; font-size:.9rem; padding-right:0; }
  .langmenu { position:absolute; top:12px; right:22px; }
}
.herochips { margin-top:1.7rem; align-items:center; }
.herochips .chiplbl { font-size:.72rem; letter-spacing:.13em; text-transform:uppercase; color:#8b949e; margin-right:.25rem; }
.hero .chip { border-color:rgba(255,255,255,.15); color:#d7dce1; font-size:.86rem; padding:.34rem .72rem; font-weight:500; }
.hero .chip:hover { background:rgba(255,255,255,.08); }
.watchfor { border:1px dashed var(--line); border-radius:12px; padding:.85rem 1.15rem; margin:1.1rem 0 1.5rem;
  font-size:.9rem; color:var(--dim); max-width:46rem; }
.watchfor b { color:var(--fg); font-weight:600; }
.st-inst .dot { background:#34579F; }
.st-inst .mg { border-color:#34579F; background:rgba(52,87,159,.08); }
.banner.st-inst { border-left-color:#34579F; }
.toc { font-size:.88rem; color:var(--dim); margin:1.4rem 0 .2rem; max-width:46rem; line-height:2; }
.toc a { text-decoration-color:var(--faint); }
.stathist { margin-top:-.6rem; margin-bottom:1.4rem; }
/* utilities — the CSP bans style="" attributes, so spacing one-offs live here */
.mt-04 { margin-top:.45rem; } .mt-06 { margin-top:.6rem; } .mt-10 { margin-top:1rem; }
.mt-12 { margin-top:1.2rem; } .mt-14 { margin-top:1.4rem; } .mt-16 { margin-top:1.6rem; } .mt-20 { margin-top:2rem; }
.pl-12 { padding-left:1.2rem; } .va-mid { vertical-align:middle; } .ml-auto { margin-left:auto; }
.fs-85 { font-size:.85rem; } .fs-90 { font-size:.9rem; } .fw-400 { font-weight:400; }
.lgd-chat { background:var(--del-fg); } .lgd-social { background:var(--dim); }
.btn { font:inherit; font-weight:600; padding:.7rem 1.25rem; border-radius:10px; cursor:pointer;
  border:1px solid var(--fg); background:var(--fg); color:var(--bg); margin-right:.6rem; }
.btn:hover { opacity:.85; }
.btn[hidden] { display:none; }
#alert-status.st-ok { color:var(--add-fg); }
#alert-status.st-err { color:var(--dim); }
.fill.w92-3 { width:92.3%; }
.fill.w29-6 { width:29.6%; }
.fill.w75-6 { width:75.6%; }
.fill.w32-0 { width:32.0%; }
.fill.w31-3 { width:31.3%; }
.fill.w35-8 { width:35.8%; }
.fill.w93-8 { width:93.8%; }
.fill.w83-8 { width:83.8%; }
.fill.w59-4 { width:59.4%; }
.fill.w7-0 { width:7.0%; }
.fill.w29-4 { width:29.4%; }
.fill.w96-5 { width:96.5%; }
