:root{--obsidian: #0a0f14;--midnight: #0d131b;--slate: #121821;--surface: #171e29;--surface-2: #1c2432;--edge: rgba(255, 255, 255, .06);--edge-strong: rgba(255, 255, 255, .12);--ink: #e4e1d7;--ink-soft: #c4bfb3;--ash: #7a7468;--smoke: #4a453c;--teal: #0d9488;--cyan: #22d3ee;--cyan-glow: rgba(34, 211, 238, .35);--amber: #f59e0b;--rose: #f43f5e;--lime: #84cc16;--display: "DM Serif Display", "Times New Roman", serif;--sans: "Hanken Grotesk", -apple-system, sans-serif;--mono: "Fira Code", "SF Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{background:var(--obsidian);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;min-height:100vh}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 1px 1px,rgba(34,211,238,.045) 1px,transparent 0);background-size:24px 24px;pointer-events:none;z-index:0}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(1400px 800px at 100% 0%,rgba(13,148,136,.1),transparent 58%),radial-gradient(900px 600px at 0% 100%,rgba(34,211,238,.05),transparent 62%);pointer-events:none;z-index:0}.page{position:relative;z-index:1;width:min(1380px,94vw);margin:0 auto;padding:22px 0 56px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border:1px solid var(--edge);background:#0a0f14b8;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);margin-bottom:22px;position:relative}.topbar:before{content:"";position:absolute;top:0;left:0;width:40%;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent)}.brand{display:flex;align-items:center;gap:14px}.brand-mark{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--teal);background:radial-gradient(circle at 40% 30%,rgba(13,148,136,.2),transparent 65%);position:relative}.brand-mark svg{width:20px;height:20px;color:var(--cyan)}.brand-mark:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border:1px solid rgba(34,211,238,.25);animation:ringblip 3s ease-in-out infinite}@keyframes ringblip{0%,to{opacity:.4;transform:scale(1)}50%{opacity:0;transform:scale(1.15)}}.brand-text{display:flex;flex-direction:column;gap:2px}.brand-title{font-family:var(--display);font-size:1.2rem;font-weight:400;letter-spacing:-.01em;color:var(--ink);line-height:1}.brand-title em{font-style:italic;color:var(--cyan)}.brand-sub{font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ash)}.top-right{display:flex;gap:8px;align-items:center}.top-link{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);text-decoration:none;padding:9px 13px;border:1px solid transparent;transition:all .16s ease}.top-link:hover{color:var(--cyan);border-color:var(--edge-strong);background:#22d3ee0a}.grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:18px;align-items:start}.col{display:flex;flex-direction:column;gap:18px;min-width:0}.card{border:1px solid var(--edge);background:linear-gradient(180deg,#171e298c,#1218218c);padding:0;position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--teal);opacity:.5;transition:opacity .24s ease}.card:hover:before{opacity:1}.card-head{padding:16px 20px;border-bottom:1px solid var(--edge);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.card-title{font-family:var(--display);font-size:1.05rem;font-weight:500;color:var(--ink);letter-spacing:-.01em;margin:0;display:flex;align-items:center;gap:10px}.card-title .n{font-family:var(--mono);font-size:.56rem;color:var(--cyan);letter-spacing:.18em;font-weight:600}.card-body{padding:16px 20px 20px}.btn{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid var(--edge-strong);background:transparent;color:var(--ink);font-family:var(--mono);font-size:.66rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .16s ease;text-decoration:none}.btn:hover:not(:disabled){border-color:var(--cyan);color:var(--cyan);background:#22d3ee0a}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--cyan);color:var(--obsidian);border-color:var(--cyan);font-weight:700}.btn.primary:hover:not(:disabled){background:#67e8f9;color:var(--obsidian)}.btn.small{padding:6px 10px;font-size:.58rem}.btn.subtle{background:transparent;color:var(--ink-soft);border-color:var(--edge)}.btn.subtle:hover{color:var(--ink);border-color:var(--edge-strong)}.btn-row{display:flex;gap:6px;flex-wrap:wrap}.input{flex:1;min-width:0;background:#0a0f1499;color:var(--ink);border:1px solid var(--edge-strong);padding:10px 14px;font-family:var(--mono);font-size:.82rem;outline:none;transition:border-color .16s ease}.input:focus{border-color:var(--cyan)}.input::placeholder{color:var(--smoke)}.row{display:flex;gap:8px;align-items:center}.kv{display:grid;grid-template-columns:auto 1fr;gap:10px 16px;font-family:var(--mono);font-size:.78rem;margin-top:10px}.kv dt{color:var(--ash);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;margin:0}.kv dd{color:var(--ink);margin:0;text-align:right;font-variant-numeric:tabular-nums}.kv dd.accent{color:var(--cyan)}.kv dd.warn{color:var(--amber)}.metric-tile{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--edge);background:#0a0f1466;position:relative}.metric-tile:before{content:"";position:absolute;top:0;left:0;width:2px;height:100%;background:var(--cyan);opacity:.5}.metric-tile .k{font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}.metric-tile .v{font-family:var(--display);font-size:1.4rem;font-weight:400;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.015em;margin-top:3px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.ranges{font-family:var(--mono);font-size:.66rem;color:var(--ash);letter-spacing:.05em;margin-bottom:10px}.ranges strong{color:var(--cyan);font-weight:600}.table{display:flex;flex-direction:column;border:1px solid var(--edge);max-height:520px;overflow-y:auto}.table::-webkit-scrollbar{width:6px}.table::-webkit-scrollbar-track{background:transparent}.table::-webkit-scrollbar-thumb{background:var(--edge-strong)}.thead{display:grid;grid-template-columns:40px 1fr 100px 68px;gap:10px;padding:10px 14px;background:#070b1080;border-bottom:1px solid var(--edge);font-family:var(--mono);font-size:.54rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ash);font-weight:600;position:sticky;top:0;z-index:1}.tbody{display:flex;flex-direction:column}.row-item{display:grid;grid-template-columns:40px 1fr 100px 68px;gap:10px;padding:11px 14px;align-items:center;background:transparent;border:none;border-bottom:1px solid var(--edge);color:var(--ink);text-align:left;cursor:pointer;font-family:inherit;transition:background .14s ease;width:100%}.row-item:hover{background:#22d3ee0a}.row-item.active{background:#0d948814;border-left:2px solid var(--cyan);padding-left:12px}.row-item:last-child{border-bottom:none}.row-rank{font-family:var(--mono);font-size:.68rem;color:var(--smoke);font-weight:600}.row-node{font-family:var(--mono);font-size:.78rem;color:var(--cyan);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-score{font-family:var(--mono);font-size:.72rem;color:var(--ink);font-variant-numeric:tabular-nums;text-align:right}.row-band{font-family:var(--sans);font-size:.54rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 7px;border:1px solid;text-align:center;justify-self:end}.row-band.critical{color:var(--rose);border-color:#f43f5e59;background:#f43f5e14}.row-band.high{color:var(--amber);border-color:#f59e0b59;background:#f59e0b14}.row-band.watch{color:var(--lime);border-color:#84cc1659;background:#84cc1614}.row-band.low{color:var(--teal);border-color:#0d948859;background:#0d948814}.alert{padding:12px 14px;border:1px solid;font-family:var(--mono);font-size:.74rem;line-height:1.5;margin-bottom:10px}.alert.error{color:var(--rose);border-color:#f43f5e59;background:#f43f5e0d}.alert.info{color:var(--cyan);border-color:#22d3ee40;background:#22d3ee0a}.muted{color:var(--ash);font-family:var(--mono);font-size:.72rem;padding:8px 0}.case-target{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1px solid var(--edge);background:#0a0f1480;margin-bottom:14px}.case-target .bullet{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--slate);border:1px solid var(--teal);font-family:var(--mono);font-size:.78rem;font-weight:700;color:var(--cyan)}.case-target .id{font-family:var(--display);font-size:1.4rem;font-style:italic;color:var(--ink);line-height:1}.case-target .score-pill{margin-left:auto;font-family:var(--mono);font-size:.72rem;color:var(--ink);padding:5px 10px;border:1px solid var(--edge-strong);background:#0a0f1499;font-variant-numeric:tabular-nums}.why{padding:12px 14px;border-left:2px solid var(--cyan);background:#22d3ee08;font-family:var(--display);font-size:1.02rem;font-style:italic;color:var(--ink);line-height:1.55;margin:12px 0 16px}.section-label{font-family:var(--mono);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ash);margin:18px 0 10px;display:flex;align-items:center;gap:10px}.section-label:after{content:"";flex:1;height:1px;background:var(--edge)}.chips{display:flex;flex-direction:column;gap:8px;padding:0;margin:0;list-style:none}.chips li{border:1px solid var(--edge);background:#0a0f1466;font-family:var(--mono);font-size:.72rem;color:var(--ink-soft);line-height:1.55;position:relative;padding:10px 14px 10px 34px}.chips li:before{content:attr(data-i);position:absolute;left:12px;top:12px;color:var(--cyan);font-size:.58rem;letter-spacing:.1em;font-weight:700}.contributors{display:flex;flex-direction:column;gap:10px;padding:0;margin:0;list-style:none}.contrib-row{display:grid;grid-template-columns:1fr auto;gap:10px;font-family:var(--mono);font-size:.74rem;align-items:baseline}.contrib-row .feat{color:var(--ink);font-weight:500}.contrib-row .val{color:var(--cyan);font-variant-numeric:tabular-nums;font-weight:600}.contrib-bar{grid-column:1 / -1;height:3px;background:#ffffff0a;overflow:hidden;margin-top:2px;position:relative}.contrib-bar .fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--teal),var(--cyan));box-shadow:0 0 12px #22d3ee40}.ego-wrap{position:relative;height:340px;border:1px solid var(--edge);background:radial-gradient(600px 400px at 50% 50%,rgba(34,211,238,.03),transparent 70%),#0a0f1480;overflow:hidden}.ego-wrap svg{width:100%;height:100%}.ego-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-family:var(--mono);font-size:.7rem;color:var(--smoke);letter-spacing:.08em;text-align:center;padding:20px}.ego-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.ego-stats .k{font-family:var(--mono);font-size:.52rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}.ego-stats .v{font-family:var(--display);font-size:1.2rem;font-weight:400;color:var(--ink);font-variant-numeric:tabular-nums;margin-top:2px}.ego-stats div{padding:10px 12px;border:1px solid var(--edge);background:#0a0f1466}.token-box{display:flex;gap:8px;align-items:center;font-family:var(--mono);font-size:.62rem;color:var(--ash);letter-spacing:.08em}.badge{padding:4px 10px;border:1px solid;font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase}.badge.ok{color:var(--cyan);border-color:#22d3ee59;background:#22d3ee0d}@media (max-width: 1100px){.grid{grid-template-columns:1fr}.topbar{flex-direction:column;gap:12px;align-items:flex-start}.top-right{flex-wrap:wrap}}@media (max-width: 720px){.page{padding:14px 0 40px}.card-head,.card-body{padding:14px 16px}.metric-grid{grid-template-columns:1fr}.brand-sub{display:none}.brand-title{font-size:1rem}.ego-stats{grid-template-columns:repeat(2,1fr)}.thead,.row-item{grid-template-columns:32px 1fr 80px 56px;gap:8px;padding:10px 12px}}@keyframes fadeup{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.card,.topbar{animation:fadeup .6s cubic-bezier(.22,1,.36,1) both}
