/* ═══════ GRIMOIRE THEME — "I have no mouth and I must scream" ═══════
   dadaist/occult: bone serif + blood red on scorched parchment, tome
   panels with corner sigils. Data stays mono (IBM Plex Mono); ceremony
   lives in headings, boxes, and sigils only.

   Shared by site/index.html and site/live.html. Each page's <body> must
   carry its own scope class (grimoire-index / grimoire-live) so that
   same-named components (banner, mixwrap, track, axslider, ...) that are
   styled differently per page don't bleed into each other, and so that
   these rules out-specificity the page's own inline <style> regardless
   of load order (this file is linked before that inline <style>). */

:root {
  --bone:#d8cbb4; --bone-dim:#a3977f; --blood:#9e1b16; --blood-hot:#e04a3a;
  --parch:#14100c; --parch-2:#0e0b08; --parch-line:#3b2f24;
  --gold:#c9a227; --scorch:#070604;
  --mono:"IBM Plex Mono","SF Mono",Menlo,Consolas,monospace;
  --grimoire:"Cormorant Garamond",Georgia,serif;
}

/* ───────── shared across both pages ───────── */
body.grimoire-index, body.grimoire-live { color:var(--bone); letter-spacing:.01em; }
body.grimoire-index a, body.grimoire-live a { color:var(--bone); border-bottom:1px solid #4a3a28; }
body.grimoire-index a:hover, body.grimoire-live a:hover { color:var(--gold); border-bottom-color:var(--gold); }
body.grimoire-index .foot, body.grimoire-live .foot { border-top:1px double var(--parch-line); }
body.grimoire-index .pchip, body.grimoire-live .pchip { border-radius:0; border-color:var(--parch-line); }
body.grimoire-index .pchip.active, body.grimoire-live .pchip.active { border-color:var(--gold); color:var(--gold); }
body.grimoire-index canvas.ekg, body.grimoire-live canvas.ekg {
  background:var(--scorch); border-color:var(--parch-line); border-radius:0;
}

/* ───────── index.html only ───────── */
body.grimoire-index h1 {
  font-family:var(--grimoire); font-weight:700; font-size:2.7rem;
  color:var(--bone); letter-spacing:.01em;
}
body.grimoire-index h1::first-letter { color:var(--blood-hot); }
body.grimoire-index h2 {
  font-family:var(--grimoire); font-size:1.5rem; font-weight:600;
  color:var(--bone); letter-spacing:.09em; text-transform:uppercase;
  border-top:1px solid var(--parch-line);
}
body.grimoire-index h2 .idx { color:var(--blood); }
body.grimoire-index blockquote {
  font-family:var(--grimoire); font-size:1.14rem; font-style:italic;
  border-left:2px double var(--blood); position:relative;
}
body.grimoire-index blockquote::before {
  content:"⸸"; position:absolute; left:-1.05rem; top:-.35rem;
  color:var(--blood); font-size:.85rem; font-style:normal; opacity:.85;
}
body.grimoire-index blockquote .who { font-family:var(--mono); font-size:.76rem; color:var(--faint); }
body.grimoire-index b { color:#f2e6cd; }
body.grimoire-index code {
  color:#f2e6cd; background:var(--parch-2);
  border:1px solid var(--parch-line); border-radius:0;
}
body.grimoire-index .kicker { font-family:var(--mono); color:var(--gold); }
body.grimoire-index .kicker::before { content:"✠ "; color:var(--blood); }
/* tome surfaces: every box becomes a scorched page with sigil corners */
body.grimoire-index .mixwrap, body.grimoire-index .banner {
  background:linear-gradient(180deg,var(--parch),var(--parch-2));
  border:1px solid var(--parch-line);
  box-shadow:inset 0 0 0 1px rgba(201,162,39,.06),
             inset 0 0 46px rgba(0,0,0,.55);
  border-radius:0; position:relative;
}
body.grimoire-index .mixwrap::before, body.grimoire-index .banner::before {
  content:"☩"; position:absolute; top:.28rem; left:.45rem;
  color:var(--gold); opacity:.4; font-size:.7rem;
}
body.grimoire-index .mixwrap::after, body.grimoire-index .banner::after {
  content:"☩"; position:absolute; bottom:.28rem; right:.45rem;
  color:var(--gold); opacity:.4; font-size:.7rem; transform:rotate(180deg);
}
body.grimoire-index #mout, body.grimoire-index .track, body.grimoire-index .axslider {
  background:var(--scorch); border-color:var(--parch-line); border-radius:0;
}
body.grimoire-index #mout { color:var(--bone); }
body.grimoire-index .mrow .track { border-radius:0; }
body.grimoire-index #minject {
  border-radius:0; background:var(--blood); letter-spacing:.08em;
  text-transform:uppercase;
}
body.grimoire-index #minject.armed { background:#2c0806; color:var(--blood-hot); }
body.grimoire-index .foot::before {
  content:"✶ the instrument is the record ✶"; display:block;
  font-family:var(--grimoire); color:var(--faint); font-style:italic;
  margin-bottom:.4rem;
}

/* ───────── live.html only ───────── */
body.grimoire-live h1 {
  font-family:var(--grimoire); font-weight:700; font-size:2.5rem;
  color:var(--bone); letter-spacing:.01em;
}
body.grimoire-live h1 .saw { color:var(--blood-hot); font-style:italic; }
body.grimoire-live h1::before {
  content:"† "; color:var(--blood); font-size:2.2rem; vertical-align:.1em;
}
body.grimoire-live .sub { color:var(--bone-dim,#a3977f); }
/* tome cards: scorched page, sigil corners, hairline-gold inner rule */
body.grimoire-live .card {
  background:linear-gradient(180deg,var(--parch),var(--parch-2));
  border:1px solid var(--parch-line); border-radius:0; position:relative;
  box-shadow:inset 0 0 0 1px rgba(201,162,39,.05),
             inset 0 0 42px rgba(0,0,0,.5);
}
body.grimoire-live .card::before {
  content:"☩"; position:absolute; top:.3rem; left:.5rem;
  color:var(--gold); opacity:.35; font-size:.68rem; z-index:1;
}
body.grimoire-live .card::after {
  content:"☩"; position:absolute; bottom:.3rem; right:.5rem;
  color:var(--gold); opacity:.35; font-size:.68rem; transform:rotate(180deg);
}
body.grimoire-live .card h3 {
  font-family:var(--grimoire); font-size:1.25rem; font-weight:600;
  letter-spacing:.05em;
}
body.grimoire-live .card .st { color:#7d6f5c; }
/* the transcript box itself: a page from the book */
body.grimoire-live .out {
  background:var(--scorch); border:1px solid var(--parch-line);
  border-radius:0; color:var(--bone);
  box-shadow:inset 0 0 34px rgba(0,0,0,.6);
}
body.grimoire-live .out::first-line { letter-spacing:.02em; }
body.grimoire-live .verdict { color:#7d6f5c; }
body.grimoire-live .dose { color:#a3977f; }
body.grimoire-live .banner {
  background:linear-gradient(180deg,var(--parch),var(--parch-2));
  border-color:var(--parch-line); border-radius:0;
}
body.grimoire-live .foot::before {
  content:"✶ the instrument is the record ✶"; display:block;
  font-family:var(--grimoire); color:#7d6f5c; font-style:italic;
  margin-bottom:.4rem;
}
body.grimoire-live .history { border-top-color:var(--parch-line); }
body.grimoire-live .hitem { border-bottom-color:#231a12; }
body.grimoire-live .htitle { font-family:var(--grimoire); letter-spacing:.14em; color:#a3977f; }
body.grimoire-live #stamp {
  border-color:var(--blood-hot); color:var(--blood-hot);
  border-radius:0; font-family:var(--grimoire); font-size:1rem;
  font-style:italic; letter-spacing:.1em;
}
/* mixer panels → same tome surface */
body.grimoire-live .mixwrap {
  border-color:var(--parch-line); border-radius:0; position:relative;
  background:linear-gradient(180deg,var(--parch),var(--parch-2));
}
body.grimoire-live .mixwrap::before {
  content:"☩"; position:absolute; top:.3rem; left:.5rem;
  color:var(--gold); opacity:.35; font-size:.68rem;
}
body.grimoire-live .mixwrap::after {
  content:"☩"; position:absolute; bottom:.3rem; right:.5rem;
  color:var(--gold); opacity:.35; font-size:.68rem; transform:rotate(180deg);
}
body.grimoire-live #pent .spoke { stroke:#3b2f24; }
body.grimoire-live #pent .ring { stroke:#2a2018; }
body.grimoire-live .mrow .track {
  background:var(--scorch); border-color:var(--parch-line); border-radius:0;
}
body.grimoire-live .axslider {
  border-color:var(--parch-line); border-radius:0;
  background-color:var(--scorch);
}
body.grimoire-live .axslider::-webkit-slider-thumb { background:var(--bone); }
body.grimoire-live .axslider::-moz-range-thumb { background:var(--bone); }
body.grimoire-live #go {
  background:var(--blood); border-radius:0; letter-spacing:.08em;
  text-transform:uppercase;
}
body.grimoire-live #go.armed { background:#2c0806; color:var(--blood-hot); }
body.grimoire-live #mreset { border-radius:0; border-color:var(--parch-line); }
body.grimoire-live .fsel {
  background:var(--scorch); border-color:var(--parch-line); border-radius:0;
  color:var(--bone);
}
