[hidden] { display: none !important; }
:root {
  --soil: #000; --tunnel: #0e0e0e; --glass: #262626; --dust: #8a8a8a; --chalk: #d4d4d4; --signal: #fff;
  --display: 'Geist', system-ui, sans-serif; --mono: 'Geist Mono', ui-monospace, monospace;
  --r: 12px; --pad: clamp(16px, 4vw, 80px);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--soil); color: var(--chalk); font-family: var(--display); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
body.locked { overflow: hidden; }
a { color: inherit; }
button { font: inherit; color: inherit; cursor: pointer; }
.mono { font-family: var(--mono); }
.muted { color: var(--dust); }
.small { font-size: 13px; }
.display { font-weight: 800; font-size: clamp(48px, 8vw, 96px); letter-spacing: -0.04em; line-height: .95; color: var(--signal); margin: 0; }
.h1 { font-weight: 800; font-size: clamp(36px, 5vw, 56px); letter-spacing: -0.04em; line-height: 1.02; color: var(--signal); margin: 0 0 24px; }
.h2 { font-weight: 800; font-size: clamp(26px, 3vw, 32px); letter-spacing: -0.03em; color: var(--signal); margin: 0; }
.h3 { font-weight: 800; font-size: 22px; letter-spacing: -0.02em; color: var(--signal); margin: 0 0 8px; }
.lead { font-size: clamp(17px, 1.6vw, 20px); line-height: 1.5; color: var(--chalk); max-width: 640px; }
.narrow { max-width: 560px; }
.label { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--dust); margin: 0 0 16px; }
.dim { stroke: var(--dust); }
.faint { stroke: var(--glass); }
.btn { background: var(--signal); color: var(--soil); border: 0; border-radius: 10px; padding: 0 22px; height: 52px; font-weight: 500; font-family: var(--mono); white-space: nowrap; transition: transform .15s; }
.btn:hover { transform: translateY(-1px); }
.btn.ghost { background: transparent; color: var(--signal); border: 1px solid var(--glass); }

/* Header */
.top { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px var(--pad); background: rgba(0,0,0,.82); backdrop-filter: blur(8px); border-bottom: 1px solid #111; }
.brand { display: flex; align-items: center; gap: 8px; text-decoration: none; color: var(--signal); }
.wordmark { font-weight: 800; font-size: 22px; letter-spacing: -0.05em; }
.nav { display: flex; gap: 22px; font-size: 13px; }
.nav a, .top-x { text-decoration: none; color: var(--dust); font-size: 13px; }
.nav a:hover, .top-x:hover { color: var(--signal); }
@media (max-width: 760px) { .nav { display: none; } }

/* Scan overlay */
.scan { position: fixed; inset: 0; z-index: 50; background: var(--soil); overflow-y: auto; }
.scan-bar { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px var(--pad); background: rgba(0,0,0,.9); border-bottom: 1px solid #111; }
.scan-close { background: none; border: 0; color: var(--dust); font-size: 13px; }
.scan-close:hover { color: var(--signal); }
.scan-title { color: var(--dust); font-size: 13px; }
.scan-body { max-width: 1360px; margin: 0 auto; padding: 24px var(--pad) 80px; }
.stage-wrap { display: grid; grid-template-columns: 1.25fr 1fr; gap: 32px; align-items: start; }
@media (max-width: 900px) { .stage-wrap { grid-template-columns: 1fr; } }
.stage { border: 1px solid var(--glass); border-radius: var(--r); background: var(--soil); overflow: hidden; }
.stage svg { display: block; width: 100%; height: auto; }
.stage .tun { fill: none; stroke: #1a1a1a; stroke-width: 14; stroke-linecap: round; }
.stage .tun-core { fill: none; stroke: var(--glass); stroke-width: 1.5; transition: stroke .4s; }
.stage .tun-core.lit { stroke: var(--signal); }
.stage .tun-core.fail { stroke: var(--dust); stroke-dasharray: 3 6; }
.stage .actor { color: var(--signal); }
.stage .actor.idle { color: #5a5a5a; }
.stage .suspect { color: var(--dust); }
.stage .suspect.worthy { color: var(--signal); }
.stage .suspect-label { fill: var(--chalk); font-family: var(--mono); font-size: 13px; }
.stage .big-score { fill: var(--signal); font-family: var(--display); font-weight: 800; font-size: 64px; letter-spacing: -0.04em; }
.stage .big-verdict { fill: var(--chalk); font-family: var(--mono); font-size: 14px; letter-spacing: .2em; }
.stage .crumb { fill: var(--signal); }
.logs { display: flex; flex-direction: column; gap: 12px; }
.log { border: 1px solid var(--glass); border-radius: var(--r); padding: 14px 16px; background: var(--soil); transition: border-color .3s, background .3s; }
.log.working { border-color: #555; background: var(--tunnel); }
.log-head { display: flex; align-items: center; gap: 10px; }
.log-head .g { color: var(--signal); width: 28px; height: 28px; flex-shrink: 0; }
.log-head .n { color: var(--signal); font-weight: 500; flex: 1; }
.log-head .s { font-family: var(--mono); font-size: 12px; color: var(--dust); }
.ring { width: 34px; height: 34px; flex-shrink: 0; }
.ring circle { fill: none; stroke-width: 3; }
.ring .bg { stroke: var(--glass); } .ring .fg { stroke: var(--signal); stroke-linecap: round; transform: rotate(-90deg); transform-origin: 50% 50%; transition: stroke-dashoffset .8s ease; }
.ring text { fill: var(--signal); font-family: var(--mono); font-size: 11px; text-anchor: middle; dominant-baseline: central; }
.log-lines { font-family: var(--mono); font-size: 12.5px; line-height: 1.6; color: var(--chalk); margin-top: 8px; display: flex; flex-direction: column; gap: 2px; }
.log-lines div::before { content: '› '; color: #555; }
.log-lines .warn { color: var(--signal); }
.notice { font-family: var(--mono); font-size: 13px; color: var(--signal); border: 1px dashed var(--dust); border-radius: 10px; padding: 12px 14px; }

/* Report */
.report { margin-top: 40px; }
.report:empty { display: none; }
.verdict-card { display: grid; grid-template-columns: auto 1fr auto; gap: 32px; align-items: center; border: 1px solid var(--glass); border-radius: var(--r); padding: 32px; background: var(--tunnel); }
.verdict-card.intruder { border-style: dashed; border-color: var(--dust); }
.verdict-card .vglyph { color: var(--signal); }
.verdict-card.stray .vglyph { color: var(--dust); }
.verdict-card .score { font-weight: 800; font-size: clamp(64px, 9vw, 112px); letter-spacing: -0.05em; line-height: .9; color: var(--signal); }
.verdict-card .score small { font-size: .3em; color: var(--dust); letter-spacing: 0; }
.verdict-card .vword { font-family: var(--mono); letter-spacing: .2em; color: var(--signal); font-size: 14px; }
.verdict-card .vname { font-size: 20px; color: var(--signal); font-weight: 500; margin: 6px 0; }
.verdict-card .vname span { color: var(--dust); font-weight: 400; }
.verdict-card .vsum { font-size: 17px; margin: 8px 0 0; max-width: 620px; }
.verdict-card .meta { font-family: var(--mono); font-size: 12px; color: var(--dust); margin-top: 12px; display: flex; gap: 18px; flex-wrap: wrap; }
@media (max-width: 760px) { .verdict-card { grid-template-columns: 1fr; gap: 16px; } }
.since { display: flex; gap: 20px; flex-wrap: wrap; align-items: baseline; font-family: var(--mono); font-size: 14px; padding: 18px 4px; color: var(--dust); }
.since b { color: var(--signal); font-weight: 500; }
.ant-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 8px; }
@media (max-width: 760px) { .ant-cards { grid-template-columns: 1fr; } }
.ant-card { border: 1px solid var(--glass); border-radius: var(--r); padding: 22px; }
.ant-card.failed { border-style: dashed; }
.ant-card .top-row { display: flex; align-items: center; gap: 14px; }
.ant-card .g { color: var(--signal); width: 44px; height: 44px; flex-shrink: 0; }
.ant-card .nm { flex: 1; }
.ant-card .nm b { color: var(--signal); font-size: 18px; display: block; }
.ant-card .nm span { font-family: var(--mono); font-size: 11px; color: var(--dust); letter-spacing: .1em; text-transform: uppercase; }
.ant-card .sc { font-family: var(--mono); color: var(--signal); font-size: 20px; }
.ant-card .key { font-size: 16px; color: var(--signal); margin: 14px 0 4px; }
.ant-card details { margin-top: 12px; }
.ant-card summary { cursor: pointer; font-family: var(--mono); font-size: 12px; color: var(--dust); }
.ant-card ul { list-style: none; padding: 0; margin: 10px 0 0; font-size: 13.5px; }
.ant-card li { padding: 5px 0; border-top: 1px solid #161616; display: flex; gap: 10px; }
.ant-card li i { font-style: normal; font-family: var(--mono); color: var(--dust); width: 34px; flex-shrink: 0; }
.ant-card li a { color: var(--chalk); font-family: var(--mono); font-size: 12px; }
.goodbad { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; }
.goodbad > div { border: 1px solid var(--glass); border-radius: var(--r); padding: 20px; }
.goodbad h4 { margin: 0 0 8px; font-family: var(--mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--dust); font-weight: 400; }
.goodbad p { margin: 6px 0; font-size: 14px; }
@media (max-width: 760px) { .goodbad { grid-template-columns: 1fr; } }
.actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 24px; }
.actions .btn { height: 46px; font-size: 14px; display: inline-flex; align-items: center; text-decoration: none; }
.history { margin-top: 32px; font-family: var(--mono); font-size: 13px; }
.history div { display: flex; gap: 18px; padding: 8px 0; border-top: 1px solid #161616; color: var(--dust); }
.history b { color: var(--signal); font-weight: 500; }
.disclaimer { margin-top: 32px; font-family: var(--mono); font-size: 12px; color: var(--dust); }

@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* Shared bits */
.bar { height: 4px; background: var(--glass); border-radius: 4px; overflow: hidden; margin-top: 4px; }
.bar i { display: block; height: 100%; background: var(--signal); }
.foot { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding: 40px var(--pad); border-top: 1px solid #161616; color: var(--dust); }
.foot p { margin: 0; }
.foot a { color: var(--dust); text-decoration: none; } .foot a:hover { color: var(--signal); }
.tip { position: fixed; z-index: 60; max-width: 300px; background: var(--tunnel); border: 1px solid var(--glass); border-radius: 10px; padding: 10px 12px; font-size: 12.5px; pointer-events: none; color: var(--chalk); }
.thumb { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; background: #1a1a1a; flex-shrink: 0; display: inline-grid; place-items: center; font-family: var(--mono); font-size: 11px; color: var(--dust); overflow: hidden; }
.thumb img { width: 100%; height: 100%; object-fit: cover; }
.vchip { display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 10px 0 6px; border-radius: 999px; font-family: var(--mono); font-size: 11.5px; letter-spacing: .04em; white-space: nowrap; }
.vchip b { font-weight: 500; font-size: 13px; }
.vchip.worthy { background: var(--signal); color: var(--soil); }
.vchip.stray { border: 1px solid #555; color: var(--chalk); }
.vchip.intruder { border: 1px dashed var(--chalk); color: var(--signal); }
.vchip.none { color: var(--dust); border: 1px solid var(--glass); }
.up { color: #5fd38d; } .dn { color: #f0616d; }
.verdict-card .vimg { width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: #1a1a1a; }
.verdict-card .vimg img { width: 100%; height: 100%; object-fit: cover; }
.verdict-card .vglyph { display: flex; align-items: center; gap: 14px; }
