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

/* Canvas territories */
.terr { width:100%; height:auto; display:block; border-radius:6px; cursor:grab; touch-action:none; background:#141417; }
.terr:active { cursor:grabbing; }

/* SVG contrast graph */
svg { width:100%; height:auto; display:block; }
.frame { fill:none; stroke:#26262d; stroke-width:1; }
.edge { stroke:rgba(167,204,224,.5); stroke-width:1.6; }
.node { stroke:#141417; stroke-width:1.5; }
.nlabel { fill:var(--ink); font-family:Georgia,serif; font-size:14px; text-anchor:middle; }
.axis-label { fill:#86847D; font-size:11px; font-family:ui-monospace,monospace; }

/* 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(--ink); }
.hint { font-family:ui-monospace,monospace; font-size:.74rem; color:#86847D; margin-top:8px; }
