:root{--obs-sony:#2563eb;--obs-nintendo:#dc2626;--obs-microsoft:#15803d;--obs-sega:#b45309;--obs-atari:#7c3aed;--obs-snk:#0369a1;--obs-nec:#be185d;--obs-observed:#e63620;--obs-genc-console:#2563eb;--obs-genc-games:#b45309;--obs-grid:var(--border-soft);--obs-axis:var(--border)}html.dark{--obs-sony:#3b82f6;--obs-nintendo:#fb3b3b;--obs-microsoft:#16a34a;--obs-sega:#d97706;--obs-atari:#8b5cf6;--obs-snk:#0ea5e9;--obs-nec:#ec4899;--obs-observed:#f2503a;--obs-genc-console:#3b82f6;--obs-genc-games:#d97706}.obs-tooltip{background:var(--elevated);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);color:var(--text);display:none;font-size:13px;line-height:1.5;max-width:260px;padding:8px 12px;pointer-events:none;position:absolute;z-index:5}.obs-tooltip .obs-tip-title{color:var(--text-faint);font-size:11px;letter-spacing:.08em;margin-bottom:2px;text-transform:uppercase}.obs-tooltip b{font-variant-numeric:tabular-nums}.obs-ax{fill:var(--text-faint);font:11px system-ui,sans-serif}.obs-label{fill:var(--text-muted);font:600 11px system-ui,sans-serif}.obs-label-strong{fill:var(--text);font:600 12px system-ui,sans-serif}.obs-legend{color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:13px;gap:6px 18px;padding:10px 2px 0}.obs-legend .obs-key{align-items:center;display:inline-flex;gap:7px}.obs-legend .obs-swatch{border-radius:2px;height:3px;width:14px}.obs-legend .obs-swatch--dot{border-radius:50%;height:9px;width:9px}.obs-console-list{display:flex;flex-direction:column}.obs-console-row{align-items:baseline;border-top:1px solid var(--border-soft);display:grid;gap:10px;grid-template-columns:12px 1fr auto;padding:9px 2px}.obs-console-row:first-child{border-top:0}.obs-console-dot{align-self:center;border-radius:50%;height:9px;width:9px}.obs-console-name{color:var(--text);font-size:14px;font-weight:650}.obs-console-year{color:var(--text-faint);font-size:12px;font-weight:400;margin-left:6px}.obs-console-price{color:var(--text);font-size:15px;font-variant-numeric:tabular-nums;font-weight:700}.obs-console-nominal{color:var(--text-faint);display:block;font-size:11px;font-weight:400;text-align:right}@media (prefers-reduced-motion:no-preference){.obs-anim-line{transition:stroke-dashoffset .9s cubic-bezier(.25,.6,.3,1)}.obs-anim-bar{transform-origin:left center;transition:transform .6s cubic-bezier(.25,.6,.3,1)}.obs-anim-fade{transition:opacity .45s ease .5s}}