:root { color-scheme: dark; --a:#8FBAD1; --a2:#A7CCE0; --warm:#E0A17F; --ink:#ECEAE4; --dim:#B6B3AB; }
* { box-sizing: border-box; }
html, body { background:#141417; }
body { margin:0; padding:8px 0 24px; color:var(--ink); font-family:system-ui,-apple-system,"DM Sans",sans-serif; line-height:1.6; }
.wrap { max-width:620px; margin:0 auto; }
.panel { padding:22px 0; border-top:1px solid rgba(255,255,255,.08); }
.panel:first-child { border-top:0; padding-top:6px; }
.panel h2 { font-family:Georgia,"EB Garamond",serif; font-weight:500; font-size:1.25rem; margin:0 0 6px; }
.lede { color:var(--dim); font-size:.92rem; margin:0 0 14px; }
.eq { margin:12px 0; overflow-x:auto; }

/* Vector space */
svg { width:100%; height:auto; display:block; }
.frame { fill:none; stroke:#26262d; stroke-width:1; }
.interp { stroke:#54545e; stroke-width:1.2; stroke-dasharray:4 3; }
.road { fill:none; stroke:var(--warm); stroke-width:2; }
.wnode { fill:var(--dim); }
.wnode.anchor { fill:var(--a2); }
.wnode.onpath { fill:var(--warm); }
.wlabel { fill:#9a978f; font-family:ui-monospace,monospace; font-size:11px; }
.wlabel.anchor { fill:var(--a2); font-weight:700; }
.wlabel.onpath { fill:var(--warm); }

/* Controls */
.pick { display:flex; gap:14px; flex-wrap:wrap; align-items:center; margin:6px 0 12px; font-family:ui-monospace,monospace; font-size:.82rem; color:var(--a2); }
.pick label { display:inline-flex; align-items:center; gap:6px; }
select { background:#1c1c22; color:var(--ink); border:1px solid rgba(255,255,255,.14); border-radius:6px; padding:5px 8px; font-family:inherit; font-size:.82rem; }

/* Readout */
.readout { font-family:ui-monospace,monospace; font-size:.82rem; color:var(--dim); font-variant-numeric:tabular-nums; margin-top:10px; }
.readout b { color:var(--warm); }
