@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/jetbrains-mono-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/jetbrains-mono-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/jetbrains-mono-greek.woff2') format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/jetbrains-mono-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/jetbrains-mono-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/jetbrains-mono-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
  :root{
    --bg:#000;--bg2:#0a0a0a;--bg3:#111;
    --tx:#fff;--tx2:rgba(255,255,255,.65);--tx3:rgba(255,255,255,.4);
    --grn:#35e57a;--grn2:#5eff5e;--amber:#ffbd2e;--red:#ff6e6e;--blu:#6ec3ff;
    --bd:rgba(255,255,255,.2);--bdhi:rgba(255,255,255,.45);
    --glow:0 0 2px var(--grn),0 0 10px rgba(53,229,122,.3),0 0 30px rgba(53,229,122,.1);
    --mono:'JetBrains Mono','Nimbus Mono',ui-monospace,'SF Mono',Consolas,monospace;
    --r:2px;
  }
  *{box-sizing:border-box}
  body{margin:0;background:var(--bg);color:var(--tx);font-family:var(--mono);font-size:15px;line-height:1.65}
  .wrap{max-width:900px;margin:0 auto;padding:32px 20px 60px}
  a{color:var(--grn2)}
  .eyebrow{color:var(--grn);text-transform:uppercase;letter-spacing:2px;font-size:.72rem;text-shadow:0 0 4px var(--grn)}
  .eyebrow a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(53,229,122,.4)}
  .eyebrow a:hover{border-bottom-color:var(--grn)}
  h1{font-size:1.9rem;line-height:1.15;letter-spacing:.5px;margin:.4rem 0 .5rem;font-weight:700}
  .cursor{color:var(--grn);animation:blink 1.1s steps(1) infinite;text-shadow:0 0 6px var(--grn)}
  @keyframes blink{0%,50%{opacity:1}50.01%,100%{opacity:0}}
  h2{font-size:1rem;text-transform:uppercase;letter-spacing:2px;margin:2.4rem 0 .7rem;padding-top:1.3rem;border-top:1px solid var(--bd);font-weight:700}
  h2::before{content:"// ";color:var(--grn);text-shadow:0 0 4px var(--grn)}
  h3{font-size:.9rem;text-transform:uppercase;letter-spacing:1.2px;margin:1.2rem 0 .3rem;color:var(--tx)}
  h3::before{content:"> ";color:var(--grn)}
  p{color:var(--tx2)}
  .lede{color:var(--tx2);font-size:1rem}
  .verdict{border:1px solid var(--bd);border-left:3px solid var(--tx3);background:var(--bg2);border-radius:var(--r);padding:18px;margin:22px 0}
  .verdict.g{border-left-color:var(--grn);background:#06140f;box-shadow:var(--glow)}
  .verdict.a{border-left-color:var(--amber);background:#181308;box-shadow:0 0 2px var(--amber),0 0 10px rgba(255,189,46,.2)}
  .verdict.r{border-left-color:var(--red);background:#160a0a;box-shadow:0 0 2px var(--red),0 0 10px rgba(224,90,90,.25)}
  .verdict .big{font-size:1.15rem;font-weight:700;margin-bottom:5px}
  .verdict.g .big{color:var(--grn);text-shadow:0 0 6px rgba(53,229,122,.5)}
  .verdict.a .big{color:var(--amber)}
  .verdict.r .big{color:var(--red);text-shadow:0 0 6px rgba(224,90,90,.5)}
  .verdict .big::before{content:"> "}
  .verdict ul{margin:8px 0 0;padding-left:18px;color:var(--tx2);font-size:.9rem}
  .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:8px}
  .stat{background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r);padding:12px;min-width:0}
  .stat .l{font-size:.6rem;color:var(--tx3);text-transform:uppercase;letter-spacing:1.5px}
  .stat .n{font-size:1rem;font-weight:700;color:var(--grn2);margin-top:4px;word-break:break-word}
  .stat .n.dim{color:var(--tx);font-weight:500;font-size:.9rem}
  .stat .n.warn{color:var(--amber)}
  .stat .n.bad{color:var(--red)}
  .btn{font-family:inherit;background:var(--bg3);color:var(--tx);border:1px solid var(--bd);border-radius:var(--r);padding:10px 16px;cursor:pointer;font-size:.78rem;text-transform:uppercase;letter-spacing:1px;transition:.12s}
  .btn:hover:not(:disabled){border-color:var(--grn);color:var(--grn);text-shadow:0 0 4px var(--grn)}
  .btn:disabled{opacity:.4;cursor:not-allowed}
  .btn.primary{border-color:var(--grn);color:var(--grn)}
  code{color:var(--grn2);background:var(--bg3);padding:1px 5px;border-radius:var(--r);font-size:.85em}
  details{border:1px solid var(--bd);border-radius:var(--r);background:var(--bg2);margin:8px 0;padding:0 14px}
  summary{cursor:pointer;padding:12px 0;font-size:.85rem;text-transform:uppercase;letter-spacing:1px;list-style:none}
  summary::-webkit-details-marker{display:none}
  summary::before{content:"> ";color:var(--grn)}
  details[open] summary{border-bottom:1px solid var(--bd)}
  details p, details li{font-size:.9rem}
  .muted{font-size:.8rem;color:var(--tx3)}
  .hidden{display:none}
  .toolnav{display:flex;gap:10px;flex-wrap:wrap;margin-top:36px;border-top:1px solid var(--bd);padding-top:18px}
  .toolnav a{flex:1;min-width:220px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r);padding:13px 15px;text-decoration:none;color:var(--tx);font-size:.82rem;text-transform:uppercase;letter-spacing:1px}
  .toolnav a:hover{border-color:var(--grn);color:var(--grn);text-shadow:0 0 4px var(--grn)}
  .toolnav a span{display:block;color:var(--tx3);font-size:.72rem;text-transform:none;letter-spacing:0;margin-top:5px}
  .src{font-size:.78rem;color:var(--tx3);border-top:1px solid var(--bd);margin-top:30px;padding-top:16px}
  textarea{width:100%;min-height:150px;background:var(--bg3);color:var(--tx);border:1px solid var(--bd);border-radius:var(--r);
    font-family:inherit;font-size:.85rem;line-height:1.6;padding:12px;resize:vertical}
  textarea:focus{outline:none;border-color:var(--grn);box-shadow:0 0 0 1px rgba(53,229,122,.3)}
  .bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
  .prog{height:2px;background:var(--bg3);border:1px solid var(--bd);margin:14px 0;overflow:hidden;display:none}
  .prog.on{display:block}
  .prog i{display:block;height:100%;background:var(--grn);box-shadow:0 0 6px var(--grn);width:0;transition:width .2s}
  .tblwrap{overflow-x:auto;border:1px solid var(--bd);border-radius:var(--r);margin-top:10px}
  table{border-collapse:collapse;width:100%;font-size:.78rem;min-width:720px}
  th,td{padding:8px 10px;text-align:left;border-bottom:1px solid rgba(255,255,255,.08);white-space:nowrap}
  th{background:var(--bg3);color:var(--tx3);text-transform:uppercase;letter-spacing:1px;font-size:.6rem;font-weight:700;
    position:sticky;top:0;cursor:pointer;user-select:none}
  th:hover{color:var(--grn)}
  tbody tr:hover{background:rgba(255,255,255,.03)}
  td.ip{color:var(--grn2);font-weight:700}
  .tag{display:inline-block;padding:1px 7px;border-radius:var(--r);font-size:.62rem;letter-spacing:.8px;text-transform:uppercase;border:1px solid}
  .tag.dc{color:var(--red);border-color:rgba(255,110,110,.5);background:rgba(255,110,110,.08)}
  .tag.isp{color:var(--grn);border-color:rgba(53,229,122,.5);background:rgba(53,229,122,.08)}
  .tag.mob{color:var(--blu);border-color:rgba(110,195,255,.5);background:rgba(110,195,255,.08)}
  .tag.unk{color:var(--tx3);border-color:var(--bd)}
  .tag.err{color:var(--amber);border-color:rgba(255,189,46,.5);background:rgba(255,189,46,.08)}
  .filters{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
  .chip{font-family:inherit;font-size:.68rem;text-transform:uppercase;letter-spacing:1px;padding:5px 10px;background:var(--bg3);
    color:var(--tx3);border:1px solid var(--bd);border-radius:var(--r);cursor:pointer}
  .chip.on{color:var(--grn);border-color:var(--grn)}
  @media(max-width:560px){h1{font-size:1.5rem}.grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}}
