:root{--ink: #0a0d12;--ink-2: #0f141c;--panel: rgba(17, 23, 32, .92);--line: #242f40;--line-soft: #36425a;--text: #f1f4fa;--text-dim: #aab6cc;--text-faint: #8a94a9;--red: #ff2d3f;--red-soft: rgba(255, 45, 63, .14);--amber: #ffb454;--mono: "Spline Sans Mono", ui-monospace, monospace;--display: "Bricolage Grotesque", sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:radial-gradient(1200px 600px at 8% -10%,rgba(255,45,63,.07),transparent 60%),radial-gradient(900px 500px at 100% 110%,rgba(255,180,84,.04),transparent 60%),var(--ink);color:var(--text);font-family:var(--mono)}.topbar{display:flex;align-items:center;gap:20px;height:64px;padding:0 20px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#0f141ce6,#0a0d12bf);backdrop-filter:blur(8px);position:relative;z-index:20}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-dot{width:14px;height:14px;border-radius:50%;background:var(--red);box-shadow:0 0 14px #ff2d3fcc;flex:none;animation:breathe 3.2s ease-in-out infinite}@keyframes breathe{50%{box-shadow:0 0 4px #ff2d3f66}}.brand-kicker{font-size:11px;letter-spacing:.28em;color:var(--text-faint);display:block}.brand-text h1{font-family:var(--display);font-weight:700;font-size:22px;letter-spacing:-.01em;margin:1px 0 0;line-height:1;white-space:nowrap}.countries{display:flex;gap:6px}.country-pill{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.08em;color:var(--text-dim);text-decoration:none;border:1px solid var(--line-soft);border-radius:4px;padding:5px 10px;transition:all .15s}.country-pill:hover{color:var(--text);border-color:var(--text-dim)}.country-pill.active{color:#fff;background:var(--red);border-color:var(--red);box-shadow:0 0 16px #ff2d3f59}.toolbar{margin-left:auto;display:flex;align-items:center;gap:8px}.tool-btn{font-family:var(--mono);font-size:13px;color:var(--text-dim);background:transparent;border:1px solid var(--line-soft);border-radius:4px;padding:6px 11px;cursor:pointer;transition:all .15s}.tool-btn:hover{color:var(--red);border-color:var(--red)}.search{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:10px;width:14px;height:14px;color:var(--text-faint);pointer-events:none}#search-input{width:330px;font-family:var(--mono);font-size:14px;color:var(--text);background:var(--ink-2);border:1px solid var(--line-soft);border-radius:5px;padding:8px 12px 8px 32px;outline:none;transition:border-color .15s,box-shadow .15s}#search-input::placeholder{color:var(--text-faint)}#search-input:focus{border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}.search-results{position:absolute;top:calc(100% + 6px);right:0;width:420px;max-height:56vh;overflow-y:auto;background:var(--panel);border:1px solid var(--line-soft);border-radius:8px;box-shadow:0 18px 50px #0009;backdrop-filter:blur(12px);z-index:50}.result{display:grid;grid-template-columns:1fr auto;gap:1px 10px;width:100%;text-align:left;font-family:var(--mono);background:none;border:0;border-bottom:1px solid var(--line);padding:9px 13px;cursor:pointer;color:var(--text)}.result:last-child{border-bottom:0}.result:hover,.result.active{background:var(--red-soft)}.r-name{font-size:14.5px;font-weight:600}.r-ids{font-size:12.5px;color:var(--amber);white-space:nowrap}.r-path{grid-column:1 / -1;font-size:12px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-match{padding:14px;font-size:13.5px;color:var(--text-dim)}#stage{position:relative;height:calc(100% - 64px);background-image:radial-gradient(circle,var(--line) 1px,transparent 1px);background-size:26px 26px}#tree-svg{width:100%;height:100%;cursor:grab;display:block}#tree-svg:active{cursor:grabbing}.link{fill:none;stroke:var(--line-soft);stroke-width:1.2}.node{cursor:pointer}.node circle{fill:var(--ink);stroke:var(--text-dim);stroke-width:1.4;transition:stroke .15s,fill .15s}.node.collapsed circle{fill:var(--red);stroke:var(--red)}.node.leaf circle{fill:var(--text-faint);stroke:none}.node.root circle{fill:var(--red);stroke:var(--red);filter:drop-shadow(0 0 8px rgba(255,45,63,.7))}.node text.label{font-family:var(--mono);font-size:13.5px;fill:var(--text);paint-order:stroke;stroke:var(--ink);stroke-width:3px}.node.root text.label{font-size:16px;font-weight:600;fill:var(--red)}.node text.count{font-family:var(--mono);font-size:11px;fill:var(--amber);paint-order:stroke;stroke:var(--ink);stroke-width:3px}.node:hover circle{stroke:var(--red)}.node:hover text.label{fill:#fff}.node.hit circle{stroke:var(--amber);fill:var(--amber);animation:pulse .9s ease-in-out infinite}.node.hit text.label{fill:var(--amber);font-weight:600}@keyframes pulse{50%{r:9}}.tooltip{position:absolute;width:580px;max-height:74vh;overflow-y:auto;background:var(--panel);border:1px solid var(--line-soft);border-top:2px solid var(--red);border-radius:8px;box-shadow:0 24px 70px #000000a6;backdrop-filter:blur(14px);z-index:40;animation:card-in .16s ease-out}@keyframes card-in{0%{opacity:0;transform:translateY(5px)}}.card-head{display:flex;align-items:center;gap:11px;padding:12px 14px;border-bottom:1px solid var(--line)}.thumb{width:40px;height:40px;border-radius:6px;object-fit:cover;background:var(--ink-2);border:1px solid var(--line);flex:none}.card-title{min-width:0;flex:1}.card-title strong{font-family:var(--display);font-size:20px;font-weight:700;display:block}.card-path{font-size:13px;color:var(--text-dim);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip{flex:none;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:3px 7px;border-radius:3px}.chip.special{color:var(--amber);border:1px solid var(--amber)}.chip.mall{color:var(--red);border:1px solid var(--red)}.card-grid{display:grid;grid-template-columns:1fr 1fr;padding:6px 0}.field{display:flex;align-items:baseline;gap:7px;padding:5px 14px;min-width:0}.field.wide{grid-column:1 / -1}.field-label{flex:none;font-size:12.5px;letter-spacing:.06em;color:var(--text-dim);min-width:68px}.field.wide .field-label{min-width:158px}.field-value{font-size:15px;color:var(--text);min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-value a{color:var(--amber);text-decoration:none}.field-value a:hover{text-decoration:underline}.field.empty .field-value{color:var(--text-faint)}.copy-btn{flex:none;font-family:var(--mono);font-size:14px;color:var(--text-faint);background:none;border:0;padding:0 2px;cursor:pointer;opacity:0;transition:color .12s}.field:hover .copy-btn,.flags .copy-btn,.card-foot .copy-btn{opacity:1}.copy-btn:hover{color:var(--red)}.copy-btn.copied{color:#4ade80}.flag-chips{display:flex;flex-wrap:wrap;gap:4px;white-space:normal}.flag-chips i{font-style:normal;font-size:12.5px;color:var(--text);border:1px solid var(--line-soft);border-radius:3px;padding:1px 6px}.card-foot{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-top:1px solid var(--line)}.copy-json{font-size:13.5px;color:var(--text);border:1px solid var(--line-soft);border-radius:4px;padding:5px 9px}.open-link{font-size:13.5px;color:var(--red);text-decoration:none;font-weight:600}.open-link:hover{text-decoration:underline}.status{position:absolute;left:16px;bottom:14px;display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:99px;padding:6px 13px;backdrop-filter:blur(8px)}.status-pulse{width:7px;height:7px;border-radius:50%;background:var(--amber);animation:breathe 2s ease-in-out infinite}.status.ready .status-pulse{background:#4ade80}.status.error .status-pulse{background:var(--red)}.hint{position:absolute;right:16px;bottom:14px;font-size:11.5px;letter-spacing:.05em;color:var(--text-dim);user-select:none}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:var(--line-soft);border-radius:4px}::-webkit-scrollbar-track{background:transparent}
