/* Each researcher has a personal workspace; all share the same source archive. */
body{--paper:#eaf0f7;--paper-side:#dce5f0;--ink:#17346c;--paper-muted:#526782;--paper-line:#becde0;--room:#172d50;--room-dark:#0b1526;transition:background-color .5s,color .5s}
body[data-character="professor"]{--bg:#07171a;--panel:#0c2227;--panel2:#102b30;--line:#254349;--blue:#9de2da;--blue-strong:#46baa9;--mint:#b8f1e6;--muted:#89aaa9;--paper:#edf8f4;--paper-side:#d8ebe5;--ink:#1c514b;--paper-muted:#4a7068;--paper-line:#b9d6ce;--room:#194741;--room-dark:#0a2329}
body[data-character="zombie"]{--bg:#0d130c;--panel:#141e10;--panel2:#1b2916;--line:#33432b;--blue:#b2d883;--blue-strong:#80ab54;--mint:#d5ed9d;--muted:#9ba98b;--paper:#182215;--paper-side:#111c0e;--ink:#d4eba8;--paper-muted:#a2bb8e;--paper-line:#3e5132;--room:#35482a;--room-dark:#101b0d}
body[data-character="pirate"]{--bg:#121212;--panel:#1d1c19;--panel2:#25231d;--line:#464034;--blue:#e3bd7d;--blue-strong:#a67b40;--mint:#e1d3a5;--muted:#aaa08e;--paper:#e7d5af;--paper-side:#d7c397;--ink:#4c3722;--paper-muted:#776046;--paper-line:#bca57c;--room:#51412c;--room-dark:#1d2225}
body[data-character="cowboy"]{--bg:#17110e;--panel:#241b15;--panel2:#2c211a;--line:#4d392a;--blue:#d9aa77;--blue-strong:#a96b36;--mint:#d8d19a;--muted:#b09b85;--paper:#eee0c6;--paper-side:#dec8a5;--ink:#573b28;--paper-muted:#7b6149;--paper-line:#c2a882;--room:#513720;--room-dark:#21180e}
body[data-character="astronaut"]{--bg:#0d0b1e;--panel:#14122c;--panel2:#1d193c;--line:#393253;--blue:#b3a6ff;--blue-strong:#7c6be0;--mint:#b7dbf5;--muted:#9d99bc;--paper:#11172c;--paper-side:#121023;--ink:#d5d8ff;--paper-muted:#a1afcf;--paper-line:#344364;--room:#352b69;--room-dark:#0b142a}
body[data-character] .topbar,body[data-character] .cam-footer{background:var(--panel)}
body[data-character] .camera-tabs,body[data-character] .addressbar{background:var(--panel2);border-color:var(--line)}
body[data-character] .research-monitor,body[data-character] .panel{border-color:var(--line)}
body[data-character] .button.primary{background:var(--blue);border-color:var(--blue);color:var(--bg)}
body[data-character] .button.primary:hover{filter:brightness(1.15)}
body[data-character] .lab-stage{background:radial-gradient(ellipse at 50% 43%,var(--room),var(--room-dark) 80%)}
body[data-character] .lab-room-title,body[data-character] .lab-room-title span,body[data-character] .camera-tabs>span{color:var(--blue)}
body[data-character] .page-stage{background-color:var(--paper);color:var(--ink);transition:background-color .4s}
body[data-character] .document-sidebar{background:var(--paper-side);border-color:var(--paper-line);color:var(--paper-muted)}
body[data-character] .document-brand,body[data-character] .doc-side-active,body[data-character] .source-document h2,body[data-character] .source-document h3{color:var(--ink)}
body[data-character] .source-document p,body[data-character] .doc-breadcrumb{color:var(--paper-muted)}
body[data-character] .sidebar-line,body[data-character] .document-lines i,body[data-character] .document-diagram i{background:var(--paper-line)}
body[data-character] .diagram-node{background:var(--paper-side);border-color:var(--paper-line);color:var(--ink)}
body[data-character] .diagram-node.main-node{background:var(--blue-strong);color:#fff}
body[data-character] .speech-bubble{background:var(--paper);color:var(--ink);border-color:var(--paper-line)}
body[data-character] .stage-note{background:var(--paper-side);color:var(--ink)}
.room-symbol{font-size:21px;line-height:1;letter-spacing:0}.document-brand{font-size:7px;letter-spacing:1px;gap:7px}
body[data-character="pirate"] .page-stage{background-image:radial-gradient(ellipse at center,transparent 40%,#86602f33),repeating-linear-gradient(0deg,transparent 0 31px,#8b71370d 31px 32px)}
body[data-character="pirate"] .source-document h2,body[data-character="cowboy"] .source-document h2{font-family:Georgia,serif;letter-spacing:-.8px}
body[data-character="pirate"] .document-diagram{border:1px dashed #a58b56;padding:10px;width:max-content;border-radius:50%}
body[data-character="pirate"] .diagram-node{border-style:dashed}
body[data-character="cowboy"] .source-document{border-top:4px double #947044;margin-top:16px}
body[data-character="cowboy"] .document-diagram{border-top:1px solid var(--paper-line);border-bottom:1px solid var(--paper-line);padding:10px 0}
body[data-character="zombie"] .source-document h2{font-family:var(--mono);font-size:24px;letter-spacing:-1px;text-shadow:0 0 12px #b0d38130}
body[data-character="zombie"] .page-stage{background-image:repeating-linear-gradient(0deg,transparent 0 3px,#a7c97808 3px 4px)}
body[data-character="zombie"] .read-scan{background:#b2d883;box-shadow:0 -12px 18px 5px #b2d88322}
body[data-character="professor"] .page-stage{background-image:linear-gradient(#258c7410 1px,transparent 1px),linear-gradient(90deg,#258c7410 1px,transparent 1px);background-size:24px 24px}
body[data-character="professor"] .diagram-node{border-radius:6px}
body[data-character="astronaut"] .page-stage{background-image:radial-gradient(circle at 71% 16%,#767bbb 0 1px,transparent 2px),radial-gradient(circle at 37% 82%,#708bbb 0 1px,transparent 2px),radial-gradient(circle at 88% 67%,#bfbcff 0 1px,transparent 2px),radial-gradient(ellipse at 90% 0%,#39306866,transparent 65%);background-size:93px 107px,127px 89px,151px 131px,100% 100%}
body[data-character="astronaut"] .document-diagram{transform:rotate(-6deg)}
body[data-character="astronaut"] .diagram-node.main-node{box-shadow:0 0 28px #9983ff66}
.running .character-walker.pirate img{animation:captain-sway 1.1s ease-in-out infinite}
.running .character-walker.cowboy img{animation:ranch-stride .8s ease-in-out infinite}
.running .lab-character[data-character="zombie"].moving img{animation:shuffle 1.5s ease-in-out infinite}
.running .lab-character[data-character="astronaut"] img{animation:float 3s ease-in-out infinite}
.running .lab-character[data-character="pirate"].moving img{animation:captain-sway 1.1s ease-in-out infinite}
@keyframes captain-sway{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(3deg) translateY(-4px)}}
@keyframes ranch-stride{0%,100%{transform:translateY(0) rotate(-1deg)}25%,75%{transform:translateY(-3px)}50%{transform:rotate(2deg)}}
@media(max-width:720px){.document-brand{font-size:6px;letter-spacing:.4px}.room-symbol{font-size:17px}}
@media(prefers-reduced-motion:reduce){body{transition:none}.running .character-walker img,.running .lab-character img{animation:none!important}}
