: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; }

/* Plots */
.plot { }
svg { width:100%; height:auto; display:block; touch-action:none; }
.axis { stroke:#3a3a44; stroke-width:1; }
.grid { stroke:#26262d; stroke-width:1; }
.axis-label { fill:#86847D; font-size:11px; font-family:ui-monospace,monospace; }
.tick { fill:#7c7a73; font-size:10px; font-family:ui-monospace,monospace; }
.flat { stroke:#5b5b64; stroke-width:1.4; stroke-dasharray:4 4; }
.dens { fill:rgba(143,186,209,.22); stroke:var(--a2); stroke-width:2; }

/* Controls */
.ctl { display:grid; grid-template-columns:170px 1fr; gap:12px; align-items:center; margin:9px 0; }
.ctl label { font-family:ui-monospace,monospace; font-size:.82rem; color:var(--a2); }
.ctl output { font-variant-numeric:tabular-nums; color:var(--ink); }
input[type=range] { width:100%; accent-color:var(--a); }

/* Meter (entropy / favourite) */
.meter { display:flex; align-items:center; gap:12px; margin:14px 0 2px; font-family:ui-monospace,monospace; font-size:.82rem; color:var(--dim); }
.meter .track { flex:1; background:rgba(255,255,255,.06); border-radius:5px; height:14px; overflow:hidden; }
.meter .fill { height:100%; background:linear-gradient(90deg,var(--warm),#EBC79E); width:100%; transition:width .12s; }
.meter b { color:var(--ink); font-variant-numeric:tabular-nums; }

/* Candidate probability bars */
.bars { margin-top:6px; }
.bar-row { display:grid; grid-template-columns:56px 1fr 108px; gap:10px; align-items:center; margin:7px 0; }
.bar-row .n { font-family:Georgia,serif; font-size:1.05rem; }
.bar-row .track { background:rgba(255,255,255,.06); border-radius:4px; height:18px; overflow:hidden; }
.bar-row .fill { height:100%; background:linear-gradient(90deg,var(--a),var(--a2)); width:0; transition:width .1s; }
.bar-row .val { text-align:right; font-family:ui-monospace,monospace; font-size:.78rem; color:var(--dim); font-variant-numeric:tabular-nums; }
