/* Brains in Jars labs v6: Oracle Jar, murder board, brain shelf, specimens, night shift, notebook, containment. Same navy, teal, pink palette. */
:root{--cork:#6b4a2d;--cork2:#5a3c23;--brass:#b48a3c;--brass2:#7a5a22;--str:#e0343f;--paper:#efe3c4;--sticky:#f6d77a;--stickyp:#f4a6c8;--blue:#1e3a5f}
img{image-rendering:pixelated}
/* sidebar lab grid */
.labnav{border-top:1px solid var(--line);padding-top:8px;margin-top:6px}
.labhd{font-size:9px;color:var(--pink);padding:2px 6px 6px;letter-spacing:1px}
.labgrid{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.labt{padding:7px 8px!important;font-size:13.5px!important;gap:8px!important} .labt img{width:20px;height:20px;border-radius:5px}
.containbar{display:flex;gap:10px;align-items:center;padding:9px 14px;background:color-mix(in srgb,var(--bad) 18%,var(--bg));color:var(--tx);border-bottom:1px solid color-mix(in srgb,var(--bad) 45%,transparent);font-size:13.5px;font-weight:550}
.containbar svg{color:var(--bad)}
/* brain chip in the composer */
.brainchip{min-height:32px;height:32px;padding:0 10px 0 6px;border-radius:999px;font-size:13px;gap:6px;background:var(--bg2)} .brainchip img{width:14px;height:24px}
.brainpick{display:flex;flex-direction:column;gap:6px} .brainpick .bp{justify-content:flex-start;text-align:left;gap:12px;padding:8px 12px;white-space:normal}
.brainpick .bp.on{border-color:var(--teal);box-shadow:0 0 0 2px var(--ring)} .brainpick .bp span{display:flex;flex-direction:column} .brainpick small{color:var(--mu);font-weight:450}
/* ---- Oracle Jar */
.oracle{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:6px}
.otitle{font-size:clamp(20px,6vw,30px);color:#fff;text-shadow:3px 3px 0 #000,0 0 18px color-mix(in srgb,var(--teal) 40%,transparent);margin:6px 0 14px;letter-spacing:1px}
[data-theme=light] .otitle{color:var(--tx);text-shadow:2px 2px 0 color-mix(in srgb,var(--teal) 40%,transparent)}
.obubble{position:relative;width:min(440px,100%);background:#f5f6f8;border:3px solid #0b0d12;border-radius:14px;box-shadow:4px 4px 0 #000;margin-bottom:6px}
.obubble:after{content:"";position:absolute;right:46px;bottom:-14px;border:8px solid transparent;border-top-color:#0b0d12;border-left-color:#0b0d12}
.obubble textarea{background:transparent;border:0;color:#12151c;text-align:center;font-weight:600;font-size:18px;resize:none;box-shadow:none;padding:12px 16px}
.obubble textarea::placeholder{color:#6b7280}
.ojar{position:relative;width:min(340px,82vw);margin:4px auto 10px;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.ojar img{width:100%;height:auto;display:block;border-radius:28px} [data-theme=dark] .ojar img{mix-blend-mode:lighten}
.owin{position:absolute;left:21%;right:21%;top:39.5%;height:48%;border-radius:50%;overflow:hidden;pointer-events:none}
.bubbles i{position:absolute;bottom:-10px;border-radius:50%;border:1.5px solid rgba(160,255,240,.75);background:rgba(160,255,240,.12);animation:bub 3.2s linear infinite;opacity:0}
.ojar.boil .bubbles i{animation-duration:.9s}
@keyframes bub{0%{transform:translateY(0);opacity:0}15%{opacity:.9}100%{transform:translateY(-190px);opacity:0}}
.die{position:absolute;left:50%;bottom:2%;width:62%;aspect-ratio:1.2;transform:translateX(-50%);clip-path:polygon(50% 0,100% 100%,0 100%);background:linear-gradient(160deg,#4f7dff,#1b3fc0 60%,#11298a);
 display:flex;align-items:flex-end;justify-content:center;padding:0 8% 7%;transition:transform .9s cubic-bezier(.2,1.4,.4,1),opacity .5s,filter .5s}
.die span{font:9px/1.35 "Pixel",var(--mono);color:#fff;text-align:center;text-shadow:1px 1px 0 #0a1a5a;max-width:100%;word-break:keep-all;overflow-wrap:normal}
.die.sink{transform:translateX(-50%) translateY(70%) rotate(14deg);opacity:.15;filter:blur(1px)}
.die.rise{animation:rise 1.1s cubic-bezier(.2,1.3,.4,1)} @keyframes rise{0%{transform:translateX(-50%) translateY(70%) rotate(-12deg);opacity:.2}100%{transform:translateX(-50%) translateY(0) rotate(0);opacity:1}}
.die[data-tone=yes]{background:linear-gradient(160deg,#3fe0b4,#11957a 60%,#0a5e4d)} .die[data-tone=no]{background:linear-gradient(160deg,#ff7bb6,#c92a74 60%,#7c1446)}
.ojar.shaking{animation:shake .75s ease} @keyframes shake{0%,100%{transform:rotate(0)}15%{transform:rotate(-9deg) translateX(-6px)}30%{transform:rotate(8deg) translateX(6px)}45%{transform:rotate(-6deg)}60%{transform:rotate(5deg)}75%{transform:rotate(-2deg)}}
button.shake{font-size:clamp(14px,4.4vw,19px);color:#fff;background:linear-gradient(#ff5fa8,#d63384);border:3px solid #0b0d12;border-radius:12px;box-shadow:0 5px 0 #7c1446,4px 9px 0 #000;padding:16px 26px;width:min(420px,100%);letter-spacing:1px;margin:2px 0 8px}
button.shake:active{transform:translateY(4px);box-shadow:0 1px 0 #7c1446,2px 4px 0 #000} button.shake:disabled{opacity:.8}
.row.center{justify-content:center}
.ores{width:100%;text-align:left;margin-top:8px} .ocard h2.px{font-size:14px;line-height:1.5;color:var(--tealtx)} .ocard.tone-no h2.px{color:var(--pink)} .ocard.tone-maybe h2.px{color:var(--warn)}
.meter.conf{margin:10px 0} .quip{font-style:italic;color:var(--tx2);margin:8px 0} .reasons{margin:6px 0 10px;padding-left:20px} .reasons li{margin:4px 0}
.ores h3{margin-top:12px}
#ohist{width:100%;text-align:left;margin-top:6px}
.odot{width:12px;height:12px;border-radius:3px;flex:none;background:var(--warn)} .odot.tone-yes{background:var(--teal)} .odot.tone-no{background:var(--pink)}
/* ---- murder board */
.boardview{position:relative}
.btools{display:flex;flex-direction:column;gap:8px;padding:8px calc(12px + var(--sr)) 8px calc(12px + var(--sl));border-bottom:1px solid var(--line);background:var(--bg)}
.btitle{font-size:12px!important;padding:8px 10px!important;color:var(--pink);background:transparent!important;border-color:transparent!important;max-width:420px}
.btitle:focus{border-color:var(--line)!important}
.row.tight{gap:6px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px} .row.tight::-webkit-scrollbar{display:none} .row.tight>*{flex:none}
button.on{border-color:var(--teal);color:var(--tealtx);box-shadow:0 0 0 2px var(--ring)}
button.pinkbtn{background:var(--pink);color:#fff;border-color:transparent} button.pinkbtn.working{animation:pulse 1.1s ease-in-out infinite}
.bwrap{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;background:#2b1d10;overscroll-behavior:contain}
.bsizer{position:relative}
.bplane{position:absolute;left:0;top:0;transform-origin:0 0;border:14px solid #2a2f3a;border-radius:6px;box-shadow:inset 0 0 40px rgba(0,0,0,.6);
 background:radial-gradient(circle at 20% 30%,rgba(0,0,0,.18) 1px,transparent 2px) 0 0/9px 9px,radial-gradient(circle at 70% 60%,rgba(255,255,255,.07) 1px,transparent 2px) 0 0/13px 13px,linear-gradient(135deg,var(--cork),var(--cork2))}
.bstrings{position:absolute;left:0;top:0;overflow:visible}
.bstrings path.str{fill:none;stroke:var(--str);stroke-width:3;filter:drop-shadow(1px 2px 1px rgba(0,0,0,.5));cursor:pointer;pointer-events:stroke}
.bstrings path.str.hl{stroke:#ff8a8a;stroke-width:5} .bstrings text{font:11px var(--font);fill:#fff;paint-order:stroke;stroke:#000;stroke-width:3px}
.bc{position:absolute;width:170px;min-height:70px;padding:16px 10px 10px;border-radius:3px;background:var(--paper);color:#1d1a14;box-shadow:2px 4px 10px rgba(0,0,0,.45);
 cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;transition:box-shadow .15s,transform .15s;font-size:12.5px;line-height:1.35}
.bc:nth-child(3n){transform:rotate(-1.5deg)} .bc:nth-child(4n){transform:rotate(1.2deg)}
.bc.drag{cursor:grabbing;box-shadow:6px 14px 24px rgba(0,0,0,.6);z-index:5;transform:rotate(0) scale(1.03)}
.bc.sel{outline:3px solid var(--teal)} .bc.hl{box-shadow:0 0 0 3px #ffe066,0 0 26px 6px rgba(255,224,102,.7)}
.bpin{position:absolute;left:50%;top:-14px;transform:translateX(-50%);width:14px;height:24px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.6));pointer-events:none}
.bch{font:8px "Pixel",var(--mono);letter-spacing:.5px;color:#b3261e;margin-bottom:5px}
.bct{font-weight:700;font-size:14px;overflow-wrap:anywhere} .bcb{margin-top:5px;color:#4a4338;overflow:hidden;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow-wrap:anywhere}
.bc.k-note{background:var(--sticky)} .bc.k-text{background:#f4efe3} .bc.k-file{background:#e8d29a}
.bc.k-link{background:var(--blue);color:#d7e6ff;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:12px 12px}
.bc.k-link .bch{color:#7dd3fc} .bc.k-link .bcb{color:#a8c4ea}
.bc.k-entity{background:#fff} .bc.e-person{background:#e9e4da;border-bottom:18px solid #e9e4da;padding-bottom:4px} .bc.e-date,.bc.e-event{background:var(--stickyp)}
.bc.e-place{background:#16314f;color:#d7e6ff} .bc.e-place .bch{color:#7dd3fc} .bc.e-place .bcb{color:#a8c4ea}
.bc.e-money{background:#d9f2c6} .bc.e-clue{background:#f3ead2;font-family:Georgia,serif} .bc.e-org{background:#ffe9b0} .bc.e-object{background:#dfe7ef}
.bempty{position:absolute;left:60px;top:60px;width:min(460px,80vw);background:rgba(15,17,21,.85);color:#fff;padding:22px;border-radius:12px;border:2px dashed rgba(255,255,255,.3)}
.bempty h2{font-size:13px;color:var(--pink);margin-bottom:8px}
.bask{display:flex;gap:8px;align-items:center;padding:10px calc(12px + var(--sr)) calc(10px + var(--sb)) calc(12px + var(--sl));border-top:1px solid var(--line);background:var(--bg)}
.bask input{border-radius:999px} .bask .send{width:40px;height:40px;min-height:40px;border-radius:50%;padding:0;background:var(--pink);color:#fff;border:0;flex:none}
.bans{position:absolute;left:12px;right:12px;bottom:72px;max-width:640px;margin:auto;max-height:45%;overflow:auto;background:var(--card);border:1px solid var(--line2);border-radius:16px;padding:14px 16px;box-shadow:var(--shadow);z-index:6}
.bans .px{color:var(--pink)}
/* ---- brain shelf and switchboard */
.shelfhero img{width:100%;height:auto;border-radius:16px;border:1px solid var(--line);display:block;margin-bottom:14px}
.brains{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:14px}
.card.brain{display:flex;gap:14px;align-items:center;margin:0} .card.brain img{width:60px;height:102px;flex:none} .card.brain .bn{font-size:12px;color:var(--tealtx);margin-bottom:4px}
.card.brain button{margin-top:10px} .card.brain.locked{opacity:.7}
.switchboard{background:linear-gradient(180deg,#2a2418,#1a160e);border:3px solid var(--brass2);box-shadow:inset 0 0 0 2px #3a301c,0 8px 24px rgba(0,0,0,.4);color:#f4e7c6}
.switchboard h2.px{font-size:12px;color:#f0d48a} .switchboard .muted{color:#b9a988}
.lamp{width:14px;height:14px;border-radius:50%;background:#555;box-shadow:inset 0 -2px 3px rgba(0,0,0,.5);flex:none} .lamp.on{background:#3cf09a;box-shadow:0 0 12px #3cf09a} .lamp.warn{background:#ffcf5c;box-shadow:0 0 12px #ffcf5c;animation:pulse 1.2s infinite} .lamp.bad{background:#ff4d4d;box-shadow:0 0 12px #ff4d4d}
.lampt{font-size:9px!important;color:#f0d48a}
.gauges{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
.gbox{background:#100d08;border:2px solid var(--brass2);border-radius:14px;padding:10px;text-align:center} .glabel{font-size:9px;color:#7ee8d6}
.gauge{width:100%;max-width:180px;height:auto} .gtrack{fill:none;stroke:#3a301c;stroke-width:9} .gfill{fill:none;stroke:#2ee6b0;stroke-width:9;stroke-linecap:round} .gfill.hot{stroke:#ff5fa8}
.gneedle{stroke:#f4e7c6;stroke-width:2.5;stroke-linecap:round} .ghub{fill:var(--brass)} .gval{font-size:13px;font-weight:650}
.toggles{display:flex;gap:10px;flex-wrap:wrap}
.toggle{background:#100d08;color:#f4e7c6;border:2px solid var(--brass2);gap:10px} .toggle .knob{width:34px;height:18px;border-radius:9px;background:#3a301c;position:relative}
.toggle .knob:after{content:"";position:absolute;left:2px;top:2px;width:14px;height:14px;border-radius:50%;background:#b9a988;transition:left .2s,background .2s}
.toggle.on .knob:after{left:18px;background:#3cf09a}
.sysline{margin-top:12px;padding:8px 10px;background:#0b1a16;color:#5ff2c8;border:1px solid #1d4a40;border-radius:8px}
.slots{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.slot{justify-content:flex-start;text-align:left;white-space:normal;gap:12px;padding:10px 12px} .slot span.grow{display:flex;flex-direction:column} .slot small{color:var(--mu);font-weight:450}
.slot.locked{opacity:.65} .slot.on{border-color:var(--teal);box-shadow:0 0 0 2px var(--ring)}
.lever{width:14px;height:34px;border-radius:7px;background:var(--bg2);border:1px solid var(--line2);position:relative;flex:none}
.lever i{position:absolute;left:1px;width:10px;height:10px;border-radius:50%;background:var(--mu);top:2px;transition:top .25s} .slot.on .lever i{top:20px;background:var(--teal)}
.contain{border-color:color-mix(in srgb,var(--bad) 40%,var(--line))} .contain h2.px{font-size:12px;color:var(--bad)}
.bigred{width:100%;min-height:76px;margin-top:10px;border-radius:16px;border:4px solid #3b0a0a;color:#fff;background:radial-gradient(circle at 50% 35%,#ff6b6b,#c81e1e 60%,#7a0f0f);box-shadow:0 6px 0 #4a0b0b,0 10px 22px rgba(200,30,30,.35)}
.bigred .px{font-size:14px;letter-spacing:1px} .bigred:active{transform:translateY(4px);box-shadow:0 2px 0 #4a0b0b}
.bigred.on{background:radial-gradient(circle at 50% 35%,#4ff0c4,#119e7f 60%,#0a5e4d);border-color:#052a22;box-shadow:0 6px 0 #063a2f}
body.contained .gpubtn{opacity:.4;pointer-events:none}
/* ---- specimens */
.specs{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-top:12px}
.spec{display:flex;gap:10px;align-items:flex-start;background:var(--card2);border:1px solid var(--line);border-radius:14px;padding:10px;cursor:pointer;transition:border-color .15s,transform .1s}
.spec:hover{border-color:var(--teal2)} .spec:active{transform:scale(.98)} .spec img{width:48px;height:82px;flex:none}
.spec .label{flex:1;min-width:0;background:var(--paper);color:#1d1a14;border-radius:6px;padding:8px 10px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.spec .sn{font-size:8px;color:#b3261e;margin-bottom:4px} .spec .st{font-size:13.5px;line-height:1.4;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.specempty{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px 4px}
.meter.thin{height:6px;margin:10px 0 4px}
/* ---- night shift */
.nightcost{background:linear-gradient(135deg,color-mix(in srgb,#6d28d9 22%,var(--card)),var(--card))}
.items li.job{cursor:default} .items li.job .grow{cursor:pointer}
.switch{position:relative;display:inline-block;width:46px;height:28px;margin:0;flex:none} .switch input{opacity:0;width:0;height:0;position:absolute}
.switch span{position:absolute;inset:0;background:var(--line2);border-radius:14px;transition:background .2s;cursor:pointer} .switch span:after{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:left .2s}
.switch input:checked+span{background:var(--teal)} .switch input:checked+span:after{left:21px} .switch input:focus-visible+span{outline:2px solid var(--teal);outline-offset:2px}
.days{display:flex;gap:4px;flex-wrap:wrap} .days button{min-width:46px}
details.report{border-top:1px solid var(--line);padding:10px 0} details.report summary{cursor:pointer;display:flex;gap:8px;align-items:center;flex-wrap:wrap} details.report .md{margin-top:8px}
/* ---- notebook */
.page{background:repeating-linear-gradient(var(--card),var(--card) 29px,color-mix(in srgb,var(--teal) 10%,var(--line)) 30px);border-left:4px solid color-mix(in srgb,var(--pink) 60%,transparent)}
.nbdate{font-size:11px;color:var(--pink);margin-bottom:8px}
.nb{list-style:none;margin:0;padding:0} .nb li{display:flex;gap:10px;align-items:baseline;padding:5px 0;font-size:14px;flex-wrap:wrap} .nbt{color:var(--mu);font-size:12.5px;width:66px;flex:none}
.badge.k-chat{color:var(--tealtx)} .badge.k-oracle{color:#a78bfa} .badge.k-board{color:#f87171} .badge.k-security{color:var(--warn)} .badge.k-nightshift{color:#818cf8} .badge.k-memory{color:#4ade80} .badge.k-containment{color:var(--bad)}
.nbsum .stat .v{font-size:20px}
@media (max-width:820px){.gauges{grid-template-columns:1fr 1fr;gap:8px} .bc{width:150px} .brains{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.bubbles i,.ojar.shaking,.die.rise{animation:none!important}}
.card h2.px{font-size:12px;line-height:1.5} .chead h2.px{font-size:12px}
.bans b.px{font-size:11px}
/* ---- v7: math, link reading, custom brain, tour */
.md .mth{font-family:inherit} .md .mth:not(.k){font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;color:var(--tx2)}
.md .mth.d{display:block;overflow-x:auto;overflow-y:hidden;text-align:center;margin:.7em 0;padding:4px 0;-webkit-overflow-scrolling:touch}
.md .katex{font-size:1.08em} .md .katex-display{margin:0}
.bc .bread{display:inline-block;margin-top:6px;font:9px/1 "Pixel",monospace;letter-spacing:.04em;padding:3px 5px;border-radius:4px}
.bc .bread.ok{background:#0d8370;color:#fff} .bc .bread.no{background:#c92a74;color:#fff}
.bexcerpt{white-space:pre-wrap;max-height:220px;overflow:auto;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:10px;color:var(--tx2)}
.custombrain{border-style:dashed;border-color:color-mix(in srgb,var(--pink) 45%,var(--line))} .custombrain .ghostjar{opacity:.45;filter:grayscale(.6)}
.jarpick{display:flex;gap:8px;flex-wrap:wrap} .jarpick .jp{padding:6px 8px;border-radius:10px} .jarpick .jp.on{border-color:var(--teal);box-shadow:0 0 0 3px var(--ring)}
.tourimg{display:flex;justify-content:center;background:radial-gradient(circle at 50% 60%,color-mix(in srgb,var(--teal) 18%,transparent),transparent 70%);border-radius:12px;padding:8px;margin-bottom:8px}
.tourimg img{max-width:100%;max-height:180px;object-fit:contain;image-rendering:pixelated}
.tourdots{display:flex;gap:6px;justify-content:center;margin-top:6px} .tourdots i{width:8px;height:8px;border-radius:2px;background:var(--line2)} .tourdots i.on{background:var(--pink)}
