/* JackedCo RevEngine shell (2026-11-05): one sidebar across the six rooms, after the
   DecentraLabs RevEngine gameplan. Loaded last on every page; uses each page's own tokens. */
:root{--jc-side:248px}
nav .tabs,nav .chap,nav .brand,.toc{display:none!important}
nav .wrap{justify-content:flex-start!important}

.jc-side{position:fixed;top:0;bottom:0;left:0;width:var(--jc-side);z-index:80;background:#0B0B0A;border-right:1px solid var(--hair);display:flex;flex-direction:column;transform:translateX(-100%);transition:transform .3s ease;font-family:var(--sans)}
body.jc-open .jc-side{transform:none}
.jc-scrim{position:fixed;inset:0;z-index:79;background:rgba(0,0,0,.6);opacity:0;pointer-events:none;transition:opacity .3s}
body.jc-open .jc-scrim{opacity:1;pointer-events:auto}

.jc-brand{display:flex;align-items:center;gap:11px;padding:18px 18px 16px;border-bottom:1px solid var(--hair);color:var(--ink);text-decoration:none}
.jc-brand svg{height:28px;width:auto;flex:none;color:var(--volt)}
.jc-word{font:400 19px/1 var(--disp);letter-spacing:.04em}
.jc-word span{color:var(--volt)}
.jc-tag{font:500 9px var(--mono);letter-spacing:.14em;color:var(--faint);margin-top:6px;text-transform:uppercase}

.jc-nav{flex:1;overflow-y:auto;padding:14px 10px 20px;scrollbar-width:thin}
.jc-lbl{font:500 9.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--faint);padding:12px 10px 6px}
.jc-room{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:8px;color:var(--dim);text-decoration:none;font-weight:600;font-size:14.5px;line-height:1.25}
.jc-room svg{width:17px;height:17px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7}
.jc-room em{margin-left:auto;font:400 9.5px var(--mono);font-style:normal;color:var(--faint);letter-spacing:.04em}
.jc-room:hover{background:rgba(237,234,224,.04);color:var(--ink)}
.jc-room.on{background:var(--volt-w);color:var(--ink);box-shadow:inset 2px 0 0 var(--volt)}
.jc-sub{display:grid;gap:1px;margin:4px 0 8px 20px;padding-left:12px;border-left:1px solid var(--hair)}
.jc-sub a{display:flex;gap:9px;align-items:baseline;padding:5px 8px;border-radius:5px;color:var(--faint);text-decoration:none;font-size:13px;line-height:1.3;transition:color .2s,background .2s}
.jc-sub a b{font:500 9.5px var(--mono);color:var(--faint);min-width:16px}
.jc-sub a:hover{color:var(--ink)}
.jc-sub a.on{color:var(--ink);background:rgba(237,234,224,.05)}
.jc-sub a.on b{color:var(--volt)}
.jc-foot{padding:14px 18px;border-top:1px solid var(--hair);font:500 9.5px var(--mono);letter-spacing:.08em;color:var(--faint);display:flex;align-items:center;gap:10px}
.jc-foot img{height:16px;width:auto;opacity:.75}

.jc-menu{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex:none;border-radius:8px;border:1px solid var(--hair);background:var(--bg2);color:var(--ink);cursor:pointer;padding:0}
.jc-menu svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8}
.jc-crumb{font:500 10.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.jc-crumb b{color:var(--ink);font-weight:500}

@media(min-width:1080px){
  .jc-side{transform:none}
  .jc-scrim,.jc-menu{display:none}
  html,body{overflow-x:clip}
  body{padding-left:var(--jc-side)}
  body > nav{left:var(--jc-side)!important}
}
@media(prefers-reduced-motion:reduce){.jc-side,.jc-scrim{transition:none}}
