/* ============================================================
   Engram report — the original standalone stylesheet, unchanged
   apart from the fonts now being files rather than data URIs.

   This page does NOT load site.css. It carries its own palette
   and both its themes, and styles the shared masthead/footer to
   match, so the site's theme toggle still drives it.
   ============================================================ */

@font-face{font-family:"Archivo";src:url("../fonts/archivo-var.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:block}
@font-face{font-family:"Plex Mono";src:url("../fonts/plexmono-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:block}
@font-face{font-family:"Plex Mono";src:url("../fonts/plexmono-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:block}

:root{
  --paper:#F4F7F2; --paper-2:#EAEFE7; --paper-3:#E0E7DC;
  --rule:#D4DBD0; --rule-2:#B6C1B1;
  --ink:#12160F; --ink-2:#3C443A; --ink-3:#6E786A;
  --hot:#9C3B23; --hot-2:#7E2E1A; --hot-soft:#F0DED6; --hot-line:#C98D78;
  --sans:"Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:"Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --cjk:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",var(--sans);
  --rail:104px;
  --pad:clamp(18px,4.2vw,64px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0E110D; --paper-2:#151913; --paper-3:#1C211A;
    --rule:#282E26; --rule-2:#3B4338;
    --ink:#E9EEE5; --ink-2:#B4BEAE; --ink-3:#828C7D;
    --hot:#E07454; --hot-2:#F0A088; --hot-soft:#3A2018; --hot-line:#8C4630;
  }
}
:root[data-theme="dark"]{
  --paper:#0E110D; --paper-2:#151913; --paper-3:#1C211A;
  --rule:#282E26; --rule-2:#3B4338;
  --ink:#E9EEE5; --ink-2:#B4BEAE; --ink-3:#828C7D;
  --hot:#E07454; --hot-2:#F0A088; --hot-soft:#3A2018; --hot-line:#8C4630;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:15px; line-height:1.58;
  font-weight:400; letter-spacing:-0.004em;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
.wrap{max-width:1380px;margin:0 auto;padding:0 var(--pad)}

/* ── micro label ───────────────────────────────────────────── */
.lab{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.13em;
     text-transform:uppercase;color:var(--ink-3);line-height:1.4}
.lab-hot{color:var(--hot)}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.num{font-variant-numeric:tabular-nums}

/* ── masthead ──────────────────────────────────────────────── */
.mast{padding-top:clamp(22px,4vw,44px)}
.mast-top{display:flex;flex-wrap:wrap;gap:16px 28px;justify-content:space-between;
          align-items:baseline;padding-bottom:14px}
.mast-h{
  display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between;
  gap:4px clamp(20px,3vw,48px);
  padding:clamp(8px,1.6vw,18px) 0 clamp(12px,2vw,22px);
  border-top:1px solid var(--ink); border-bottom:1px solid var(--ink);
}
.mast h1{
  font-size:clamp(58px,15.5vw,200px); line-height:.84; font-weight:500;
  letter-spacing:-0.048em; margin:0;
}
.mast h1 em{font-style:normal;color:var(--hot)}
.mast-sub{
  font-family:var(--mono); text-align:right; padding-bottom:clamp(4px,1.4vw,18px);
  display:flex; flex-direction:column; gap:3px;
}
.mast-sub span{font-size:clamp(11px,1.15vw,15px);letter-spacing:.02em;
  text-transform:uppercase;color:var(--ink-2);line-height:1.32;white-space:nowrap}
.mast-sub span+span{color:var(--ink-3)}
@media(max-width:560px){.mast-sub{text-align:left;padding-top:8px}
  .mast-sub span{white-space:normal}}
.deck{max-width:60ch;font-size:clamp(16px,1.75vw,21px);line-height:1.45;
      letter-spacing:-0.017em;color:var(--ink-2);margin:22px 0 0;text-wrap:pretty}
.deck b{color:var(--ink);font-weight:500}

/* ── meta index table ──────────────────────────────────────── */
.meta{margin:30px 0 0;border-top:1px solid var(--rule)}
.meta dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));
         gap:0;margin:0}
.meta div{padding:11px 14px 13px 0;border-bottom:1px solid var(--rule)}
.meta dt{margin:0 0 5px}
.meta dd{margin:0;font-family:var(--mono);font-size:12.5px;line-height:1.5;
         letter-spacing:-0.01em;color:var(--ink)}
.meta dd a{color:var(--hot);text-decoration:none;border-bottom:1px solid var(--hot-line)}
.meta dd a:hover{background:var(--hot-soft)}

/* ── sticky section index ──────────────────────────────────── */
.idxbar{position:sticky;top:0;z-index:60;background:var(--paper);
        border-bottom:1px solid var(--ink);margin-top:clamp(40px,6vw,84px)}
.idxbar-in{display:flex;gap:0;overflow-x:auto;scrollbar-width:none;
           max-width:1380px;margin:0 auto;padding:0 var(--pad)}
.idxbar-in::-webkit-scrollbar{display:none}
.idxbar a{flex:none;font-family:var(--mono);font-size:10.5px;font-weight:500;
          letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);
          text-decoration:none;padding:11px 15px 10px 0;white-space:nowrap;
          border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s}
.idxbar a sup{font-size:8.5px;color:var(--rule-2);margin-right:5px;vertical-align:2px}
.idxbar a:hover{color:var(--ink)}
.idxbar a.on{color:var(--hot);border-bottom-color:var(--hot)}

/* ── sections ──────────────────────────────────────────────── */
section{border-bottom:1px solid var(--rule);scroll-margin-top:52px}
.sec{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);gap:0;
     padding:clamp(38px,5.5vw,76px) 0}
.rail{position:sticky;top:64px;align-self:start;padding-right:20px}
.rail .n{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.06em;
         color:var(--hot);display:block;margin-bottom:7px}
.rail .t{font-family:var(--mono);font-size:10px;letter-spacing:.11em;
         text-transform:uppercase;color:var(--ink-3);line-height:1.45;
         padding-top:7px;border-top:1px solid var(--rule)}
.body{min-width:0}
h2{font-size:clamp(25px,3.5vw,42px);line-height:1.05;font-weight:500;
   letter-spacing:-0.032em;margin:0 0 18px;max-width:22ch;text-wrap:balance}
h3{font-size:clamp(16px,1.7vw,19px);font-weight:500;letter-spacing:-0.018em;
   margin:0 0 10px;line-height:1.25}
h4{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.12em;
   text-transform:uppercase;color:var(--ink-3);margin:0 0 11px}
p{margin:0 0 15px;max-width:66ch;text-wrap:pretty}
p.wide{max-width:82ch}
a.ref{color:inherit;text-decoration:none;border-bottom:1px solid var(--rule-2)}
a.ref:hover{border-bottom-color:var(--hot);color:var(--hot)}
strong{font-weight:600}
em.t{font-style:normal;font-family:var(--mono);font-size:.92em;
     background:var(--paper-3);padding:1px 4px;border-radius:2px;letter-spacing:-0.01em}
.stack{display:flex;flex-direction:column;gap:clamp(26px,3.4vw,44px)}
.sub{padding-top:26px;margin-top:26px;border-top:1px solid var(--rule)}
.cols2{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));
       gap:clamp(20px,2.6vw,38px)}
.cols3{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));
       gap:clamp(18px,2.2vw,30px)}

/* ── tables ────────────────────────────────────────────────── */
.tw{overflow-x:auto;border-top:1px solid var(--ink);margin:0 0 6px}
table{border-collapse:collapse;width:100%;font-size:12.5px;
      font-variant-numeric:tabular-nums}
th{font-family:var(--mono);font-size:9.5px;font-weight:500;letter-spacing:.1em;
   text-transform:uppercase;color:var(--ink-3);text-align:right;
   padding:9px 12px 8px 0;border-bottom:1px solid var(--rule-2);
   white-space:nowrap;vertical-align:bottom}
th:first-child,td:first-child{text-align:left;padding-left:0}
th.l,td.l{text-align:left}
td{padding:7px 12px 7px 0;border-bottom:1px solid var(--rule);
   text-align:right;white-space:nowrap;color:var(--ink-2)}
td.l{white-space:normal}
tbody tr:hover td{background:var(--paper-2)}
td.k{color:var(--ink);font-weight:500}
td.mono,th.mono{font-family:var(--mono)}
.best{color:var(--hot);font-weight:500}
.grp td{background:var(--paper-3);color:var(--ink);font-family:var(--mono);
        font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;
        padding:8px 12px 7px 0}
.grp td:first-child{padding-left:0}
tbody tr.grp:hover td{background:var(--paper-3)}
.tn{font-family:var(--mono);font-size:10.5px;line-height:1.55;color:var(--ink-3);
    max-width:80ch;margin:9px 0 0;letter-spacing:-0.005em}
.tn b{color:var(--ink-2);font-weight:500}
.dl{color:var(--hot);font-weight:500}

/* ── figure / panel ────────────────────────────────────────── */
.panel{border:1px solid var(--rule);background:var(--paper-2);padding:clamp(14px,2vw,22px)}
.fig{margin:0}
.fig figcaption,.cap{font-family:var(--mono);font-size:10.5px;line-height:1.55;
     color:var(--ink-3);margin-top:10px;max-width:80ch;letter-spacing:-0.005em}
.fig figcaption b,.cap b{color:var(--ink-2);font-weight:500}
svg{display:block;max-width:100%;height:auto}
.svgwrap{overflow-x:auto}

/* ── equation ──────────────────────────────────────────────── */
.eq{font-family:var(--mono);font-size:13px;line-height:1.85;letter-spacing:-0.012em;
    background:var(--paper-2);border-left:2px solid var(--hot);
    padding:14px 16px;margin:0 0 15px;overflow-x:auto;color:var(--ink)}
.eq .c{color:var(--ink-3)}
.eq .h{color:var(--hot)}
pre{font-family:var(--mono);font-size:11.5px;line-height:1.72;margin:0;
    background:var(--paper-2);border:1px solid var(--rule);padding:13px 15px;
    overflow-x:auto;letter-spacing:-0.008em;color:var(--ink-2)}
pre b{color:var(--ink);font-weight:500}
pre i{color:var(--ink-3);font-style:normal}
pre .h{color:var(--hot)}

/* ── stat row ──────────────────────────────────────────────── */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));
       border-top:1px solid var(--ink)}
.stats div{padding:14px 16px 15px 0;border-bottom:1px solid var(--rule)}
.stats .v{font-size:clamp(23px,3vw,33px);font-weight:500;letter-spacing:-0.038em;
          line-height:1;font-variant-numeric:tabular-nums;margin-bottom:7px}
.stats .v small{font-size:.5em;letter-spacing:-0.01em;color:var(--ink-3);
                font-weight:400;margin-left:2px}
.stats .v.hot{color:var(--hot)}

/* ── inspector ─────────────────────────────────────────────── */
.insp{border:1px solid var(--ink);background:var(--paper-2)}
.insp-hd{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;
         justify-content:space-between;padding:11px 14px;
         border-bottom:1px solid var(--rule-2)}
.seg{display:flex;border:1px solid var(--rule-2);background:var(--paper)}
.seg button{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.09em;
            text-transform:uppercase;padding:6px 11px;background:none;border:0;
            border-right:1px solid var(--rule-2);color:var(--ink-3);cursor:pointer;
            transition:background .12s,color .12s}
.seg button:last-child{border-right:0}
.seg button:hover{color:var(--ink)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.strip{display:flex;flex-wrap:wrap;gap:3px;padding:13px 14px;
       border-bottom:1px solid var(--rule)}
.tok{font-family:var(--mono);font-size:12px;padding:4px 7px;border:1px solid var(--rule-2);
     background:var(--paper);color:var(--ink-2);cursor:pointer;white-space:pre;
     transition:all .12s;line-height:1.3}
.tok:hover{border-color:var(--ink-3);color:var(--ink)}
.tok.ctx{background:var(--hot-soft);border-color:var(--hot-line);color:var(--hot-2)}
.tok.cur{background:var(--hot);border-color:var(--hot);color:var(--paper)}
.insp-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
@media(min-width:920px){.insp-grid{grid-template-columns:minmax(0,340px) minmax(0,1fr)}}
.insp-l{padding:14px;border-bottom:1px solid var(--rule)}
@media(min-width:920px){.insp-l{border-right:1px solid var(--rule);border-bottom:0}}
.insp-r{padding:14px;min-width:0}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-family:var(--mono);
    font-size:11.5px;align-items:baseline}
.kv dt{color:var(--ink-3);font-size:10px;letter-spacing:.09em;text-transform:uppercase}
.kv dd{margin:0;color:var(--ink);word-break:break-all;font-variant-numeric:tabular-nums}
.mixbox{font-family:var(--mono);font-size:12px;line-height:1.75;margin-top:12px;
        padding-top:12px;border-top:1px solid var(--rule);word-break:break-all;
        color:var(--ink-2);font-variant-numeric:tabular-nums}
.mixbox .r{color:var(--hot);font-weight:500;font-size:13px}
.heads{width:100%;border-collapse:collapse;font-size:11.5px;
       font-family:var(--mono);font-variant-numeric:tabular-nums}
.heads th{font-size:9px;padding:5px 8px 5px 0}
.heads td{padding:3px 8px 3px 0;border-bottom:1px solid var(--rule);color:var(--ink-2)}
.heads td.a{color:var(--ink);font-weight:500}
.heads td.ch{color:var(--hot);font-weight:500}
.bar{display:block;position:relative;height:8px;background:var(--paper-3);
     border:1px solid var(--rule);width:100%;min-width:80px}
.bar i{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--hot)}
.heads td.bcell{width:38%;padding-right:0}
.inputs{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:12px;
        padding-top:12px;border-top:1px solid var(--rule)}
.inputs label{display:flex;flex-direction:column;gap:4px}
.inputs input{font-family:var(--mono);font-size:12px;width:88px;padding:5px 7px;
              border:1px solid var(--rule-2);background:var(--paper);color:var(--ink);
              font-variant-numeric:tabular-nums}
.inputs input:focus-visible{outline:2px solid var(--hot);outline-offset:1px}

/* ── gating heatmap ────────────────────────────────────────── */
.gate-row{margin-bottom:11px}
.gate-line{display:flex;flex-wrap:wrap;gap:2px;align-items:stretch}
.gt{font-family:var(--mono);font-size:12.5px;padding:3px 5px;white-space:pre;
    line-height:1.45;border-radius:1px}
.gt.cjk{font-family:var(--cjk);font-size:13.5px}
.scale{display:flex;align-items:center;gap:9px;margin-top:8px}
.scale .grad{height:9px;width:130px;border:1px solid var(--rule);
  background:linear-gradient(90deg,var(--paper),var(--hot))}
.scale .sym{text-transform:none;font-size:11px;letter-spacing:0;color:var(--ink-2)}

/* ── chart bits ────────────────────────────────────────────── */
.chart text{font-family:var(--mono);font-size:9.5px;fill:var(--ink-3);
            letter-spacing:.04em}
.chart text.v{fill:var(--ink);font-weight:500}
.chart text.h{fill:var(--hot);font-weight:500}
.chart .ax{stroke:var(--rule-2);stroke-width:1}
.chart .gr{stroke:var(--rule);stroke-width:1}
.chart .ln{fill:none;stroke:var(--ink);stroke-width:1.5}
.chart .ln2{fill:none;stroke:var(--ink-3);stroke-width:1.5;stroke-dasharray:4 3}
.chart .lnh{fill:none;stroke:var(--hot);stroke-width:1.5}
.chart .dot{fill:var(--paper);stroke:var(--ink);stroke-width:1.5}
.chart .doth{fill:var(--hot);stroke:none}
.chart .brh{fill:var(--hot)}
.chart .br{fill:var(--ink-3)}
.chart .brl{fill:var(--rule-2)}

/* ── diagram ───────────────────────────────────────────────── */
.dia text{font-family:var(--mono);fill:var(--ink-2);font-size:10px;letter-spacing:.02em}
.dia text.ti{fill:var(--ink);font-weight:500;font-size:10.5px}
.dia text.sm{fill:var(--ink-3);font-size:8.5px;letter-spacing:.07em}
.dia text.ho{fill:var(--hot);font-weight:500}
.dia .bx{fill:var(--paper-2);stroke:var(--rule-2);stroke-width:1}
.dia .bxh{fill:var(--hot-soft);stroke:var(--hot-line);stroke-width:1}
.dia .bxi{fill:none;stroke:var(--ink);stroke-width:1}
.dia .ar{stroke:var(--ink-3);stroke-width:1;fill:none}
.dia .arh{stroke:var(--hot);stroke-width:1.2;fill:none}
.dia .dash{stroke:var(--rule-2);stroke-width:1;stroke-dasharray:3 3;fill:none}

/* ── list ──────────────────────────────────────────────────── */
ul.tight{margin:0 0 15px;padding-left:0;list-style:none;max-width:70ch}
ul.tight li{position:relative;padding-left:19px;margin-bottom:8px}
ul.tight li::before{content:"";position:absolute;left:0;top:.62em;width:9px;
                    height:1px;background:var(--hot)}
ol.steps{margin:0;padding:0;list-style:none;counter-reset:s}
ol.steps li{counter-increment:s;position:relative;padding-left:34px;
            margin-bottom:14px;max-width:70ch}
ol.steps li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;
  top:.16em;font-family:var(--mono);font-size:10px;font-weight:500;color:var(--hot);
  letter-spacing:.06em}

/* ── footer ────────────────────────────────────────────────── */
footer{padding:clamp(34px,5vw,64px) 0 clamp(44px,6vw,80px)}
footer .src{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));
            gap:0;border-top:1px solid var(--ink)}
footer .src div{padding:12px 16px 14px 0;border-bottom:1px solid var(--rule)}
footer a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule-2);
         font-family:var(--mono);font-size:11.5px;letter-spacing:-0.01em;
         word-break:break-all}
footer a:hover{color:var(--hot);border-bottom-color:var(--hot)}
.colo{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);line-height:1.7;
      max-width:74ch;margin-top:26px}

button:focus-visible,a:focus-visible{outline:2px solid var(--hot);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media(max-width:760px){
  .sec{grid-template-columns:minmax(0,1fr);gap:16px}
  .rail{position:static;display:flex;gap:14px;align-items:baseline;padding:0}
  .rail .t{border-top:0;padding-top:0}
  .rail .n{margin-bottom:0}
}

/* ── shared site chrome, in this page's palette ─────────────── */
.skip{position:absolute;left:-9999px;background:var(--ink);color:var(--paper);
      padding:.6rem 1rem;font-family:var(--mono);font-size:11px}
.skip:focus{left:.75rem;top:.75rem;z-index:99}

.masthead{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
          gap:.75rem 2rem;padding:16px 0 13px;border-bottom:1px solid var(--ink)}
.masthead__mark{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
                text-transform:uppercase;text-decoration:none;color:var(--ink)}
.masthead__mark b{font-weight:500}
.masthead__mark span{color:var(--ink-3)}

.nav{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;font-family:var(--mono);
     font-size:10.5px;letter-spacing:.06em}
.nav a{text-decoration:none;color:var(--ink-3);text-transform:lowercase}
.nav a:hover{color:var(--hot)}
.nav a[aria-current="page"]{color:var(--ink)}
.nav a[aria-current="page"]::before{content:"\2192\00a0";color:var(--hot)}
.nav a[data-authoring]{color:var(--hot)}
.nav a[hidden]{display:none}

.theme{display:inline-flex;align-items:center;justify-content:center;width:1.7rem;
       height:1.7rem;padding:0;color:var(--ink-3);background:transparent;border:0;
       cursor:pointer;line-height:0}
.theme:hover{color:var(--hot)}
.theme svg{display:block;overflow:visible}
.theme__ring{fill:none;stroke:currentColor;stroke-width:1.4}
.theme[data-state="dark"] .theme__ring{fill:currentColor}

.foot{border-top:1px solid var(--ink);padding:22px 0 40px;display:flex;flex-wrap:wrap;
      gap:1rem 2.5rem;justify-content:space-between;align-items:baseline;
      font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;color:var(--ink-3)}
.foot a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule)}
.foot a:hover{color:var(--hot);border-bottom-color:var(--hot)}
.foot nav{display:flex;gap:1.5rem}
