:root {
  --bg:#0d0d0f; --bg2:#141417; --line:#26262c;
  --text:#eceae5; --muted:#9d9a94; --faint:#8a877f; --accent:#89a9ff; --warn:#ffb27a;
  --sans:"Instrument Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --serif:"Newsreader",Georgia,serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
}
*{box-sizing:border-box}
body{margin:0;padding:clamp(1.25rem,4vw,3rem);max-width:1100px;margin-inline:auto;
     background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.6}
.kicker{font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin:0}
h1{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,5vw,3.2rem);letter-spacing:-.025em;margin:.4rem 0 .6rem}
.sub{color:var(--muted);max-width:62ch;margin:0 0 2rem}

.controls{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center;
          padding:1rem;border:1px solid var(--line);border-radius:6px;background:var(--bg2)}
label{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--muted)}
select,input[type=range]{font:inherit;font-size:.85rem;background:var(--bg);color:var(--text);
  border:1px solid var(--line);border-radius:5px;padding:.35rem .5rem}
input[type=range]{padding:0;border:0;accent-color:var(--accent);width:120px}
input[type=range]:disabled{opacity:.35}
button{font:inherit;font-size:.85rem;font-weight:500;padding:.5rem 1.1rem;border-radius:5px;
  border:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer;
  transition:border-color .18s,color .18s}
button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
button.primary{background:var(--text);color:var(--bg);border-color:var(--text)}
button.primary:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--bg)}
button:disabled{opacity:.45;cursor:not-allowed}

.status{font-size:.85rem;color:var(--muted);margin:1rem 0;min-height:1.5em}
.status[data-kind=warn]{color:var(--warn)}
.status[data-kind=ok]{color:var(--accent)}

.stage{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-block:1rem}
@media(max-width:760px){.stage{grid-template-columns:1fr}}
figure{margin:0}
figcaption{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--faint);display:flex;justify-content:space-between;padding-bottom:.5rem}
figcaption span{color:var(--text)}
canvas{width:100%;height:auto;display:block;background:var(--bg2);
  border:1px solid var(--line);border-radius:6px}

.readout{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-top:1.5rem}
.readout div{background:var(--bg);padding:1rem}
.readout b{display:block;font-family:var(--serif);font-weight:400;font-size:1.8rem;line-height:1;
  font-variant-numeric:tabular-nums}
.readout span{display:block;margin-top:.3rem;font-family:var(--mono);font-size:.66rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}

@media(prefers-reduced-motion:reduce){*{transition:none!important}}
