/* =====================================================================
   cm-explorables.css — shared shell for the interactive explainers.

   Self-contained on purpose: index.html loads none of the site's theme
   layers, and the interior pages stack ~13 inline skins with heavy
   !important. So everything here is namespaced .cmx-* and declares its own
   colours rather than inheriting tokens that mean different things on
   different pages.
   ===================================================================== */
.cmx{
  --cmx-gold:#E3C77A;
  --cmx-gold-deep:#C9A24B;
  --cmx-ink:#ffffff;
  --cmx-ink-soft:rgba(255,255,255,.74);
  --cmx-ink-faint:rgba(255,255,255,.52);
  --cmx-line:rgba(255,255,255,.12);
  --cmx-surface:rgba(255,255,255,.04);

  position:relative;
  margin:44px auto;
  max-width:1000px;
  padding:30px 28px 26px;
  border:1px solid var(--cmx-line);
  border-radius:26px;
  background:linear-gradient(180deg,rgba(227,199,122,.045) 0%,rgba(255,255,255,0) 46%),rgba(10,9,7,.55);
  font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--cmx-ink);
  -webkit-font-smoothing:antialiased;
  /* The homepage's one-way-door section is text-align:center and its headings
     carry a heavy text-shadow; neither should leak into the widget. */
  text-align:left;
  text-shadow:none;
}
.cmx h3,.cmx h4,.cmx p,.cmx div{text-shadow:none;}
.cmx *{box-sizing:border-box;}
.cmx-kicker{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--cmx-gold-deep);font-weight:600;margin:0 0 10px;
}
.cmx-title{
  font-family:'Instrument Serif',Georgia,serif;font-weight:400;
  font-size:clamp(1.6rem,3.4vw,2.4rem);line-height:1.12;letter-spacing:-.5px;
  color:var(--cmx-ink);margin:0 0 8px;
}
.cmx-lede{color:var(--cmx-ink-soft);font-size:.97rem;line-height:1.65;margin:0 0 22px;max-width:62ch;}
.cmx-note{
  margin:20px 0 0;padding:13px 16px;border-radius:14px;
  border:1px solid rgba(227,199,122,.22);background:rgba(227,199,122,.055);
  color:var(--cmx-ink-soft);font-size:.85rem;line-height:1.6;
}
.cmx-note b{color:var(--cmx-gold);font-weight:600;}
.cmx-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;}

/* ---------- controls ---------- */
.cmx-ctl{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px;}
.cmx-ctl label{font-size:.8rem;color:var(--cmx-ink-faint);letter-spacing:.04em;
  text-transform:uppercase;font-weight:600;}
.cmx-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:42px;padding:0 18px;border-radius:999px;cursor:pointer;
  border:1px solid var(--cmx-line);background:var(--cmx-surface);
  color:var(--cmx-ink);font:inherit;font-size:.88rem;font-weight:500;
  transition:background .18s,border-color .18s,transform .12s;
}
.cmx-btn:hover:not(:disabled){background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.2);}
.cmx-btn:active:not(:disabled){transform:scale(.97);}
.cmx-btn:disabled{opacity:.42;cursor:not-allowed;}
.cmx-btn--gold{background:linear-gradient(135deg,var(--cmx-gold-deep),var(--cmx-gold));
  color:#1a1206;border-color:transparent;font-weight:600;}
.cmx-btn--gold:hover:not(:disabled){filter:brightness(1.08);background:linear-gradient(135deg,var(--cmx-gold-deep),var(--cmx-gold));}
.cmx-btn--sq{width:42px;padding:0;font-size:1.15rem;line-height:1;}

.cmx input[type=range]{
  -webkit-appearance:none;appearance:none;height:4px;border-radius:999px;
  background:rgba(255,255,255,.16);outline:none;flex:1 1 130px;min-width:110px;
}
.cmx input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;
  background:linear-gradient(135deg,var(--cmx-gold-deep),var(--cmx-gold));cursor:pointer;
  border:2px solid #0a0907;
}
.cmx input[type=range]::-moz-range-thumb{
  width:18px;height:18px;border-radius:50%;border:2px solid #0a0907;
  background:linear-gradient(135deg,var(--cmx-gold-deep),var(--cmx-gold));cursor:pointer;
}
.cmx :focus-visible{outline:2px solid var(--cmx-gold);outline-offset:3px;border-radius:6px;}

/* ---------- readouts ---------- */
.cmx-eq{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;
  font-size:clamp(1rem,2.3vw,1.32rem);line-height:1.75;color:var(--cmx-ink-soft);
}
.cmx-eq b{color:var(--cmx-gold);font-weight:600;}
.cmx-eq .dim{color:var(--cmx-ink-faint);}

@media(max-width:720px){
  .cmx{padding:24px 18px 22px;margin:32px auto;border-radius:20px;}
}
@media print{.cmx{break-inside:avoid;}}
