/* Mega Drive presentation: everything sized in screen pixels of the 224-line picture (--px). */
:root {
  --px: 4px;
  --bg: #050505;
  --g: #f1efe8;
  --g-hi: #ffffff;
  --gb: rgba(241,239,232, 0.6);
  --text: #f1efe8;
  --dim: #8d8a82;
  --amber: #f5c542;
  --red: #ff4a4a;
  --slime: #c3c3bb;
  --font: 'Press Start 2P', monospace;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; background: var(--bg); color: var(--text); overflow: hidden; font-family: var(--font); font-size: calc(var(--px) * 8); line-height: 1.25; }

#view { display: block; width: 100vw; height: 100vh; outline: none; }
.site-viewer {position:fixed;inset:3vh 3vw;z-index:80;background:#07110c;border:1px solid #577b60;color:#d2e5d7;font:16px 'JetBrains Mono',monospace;overflow:auto;padding:18px;}
.site-viewer header,.site-viewer-actions,.site-viewer nav,.site-more-links {display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.site-viewer header {justify-content:space-between;}.site-viewer h2 {font-size:20px;}.site-viewer button,.site-viewer a {font:inherit;color:#a5d7b1;background:#0c2014;border:1px solid #40634a;padding:9px;cursor:pointer;}.site-viewer-content img {display:block;width:100%;height:auto;margin-top:15px;}.site-viewer iframe {width:100%;height:65vh;border:0;background:white;}.site-viewer p,.site-viewer span {font-size:13px;color:#a6b6aa;}.site-viewer nav {margin-bottom:18px;}
[hidden] { display: none !important; }

.box {
  background: rgba(10,10,10, 0.86);
  border: var(--px) solid #2e2e2e;
  outline: calc(var(--px) * 0.5) solid var(--gb);
  box-shadow: 0 0 calc(var(--px) * 3) rgba(241,239,232, 0.25);
  padding: calc(var(--px) * 3);
}
.hi { color: var(--g-hi); text-shadow: 0 0 calc(var(--px) * 1.5) var(--g); }
.dim { color: var(--dim); }
.amber { color: var(--amber); text-shadow: 0 0 calc(var(--px) * 1.5) rgba(245, 197, 66, 0.6); }
.red { color: var(--red); text-shadow: 0 0 calc(var(--px) * 2) rgba(255, 74, 74, 0.7); }
.slime { color: var(--slime); text-shadow: 0 0 calc(var(--px) * 1.5) var(--slime); }
.small { font-size: calc(var(--px) * 6); }
.row { display: flex; align-items: center; gap: calc(var(--px) * 3); }
.col { display: grid; gap: calc(var(--px) * 2); }
b { font-weight: 400; color: var(--text); }

#hud .tl { position: fixed; top: calc(var(--px) * 4); left: calc(var(--px) * 4); display: flex; gap: calc(var(--px) * 3); align-items: center; }
#face { width: calc(var(--px) * 32); height: calc(var(--px) * 24); }
.pips { display: flex; gap: var(--px); }
.pips i { width: calc(var(--px) * 9); height: calc(var(--px) * 4); border: calc(var(--px) * 0.5) solid var(--gb); }
.pips i.on { background: rgba(241,239,232, 0.35); border-color: var(--g-hi); box-shadow: 0 0 calc(var(--px) * 2) var(--g); }
.pips.low i.on { background: rgba(255, 74, 74, 0.35); border-color: var(--red); box-shadow: 0 0 calc(var(--px) * 2) var(--red); }
.cd { width: calc(var(--px) * 12); height: calc(var(--px) * 2); border: calc(var(--px) * 0.5) solid var(--gb); position: relative; }
.cd::after { content: ""; position: absolute; inset: 0; width: var(--v, 100%); background: var(--g-hi); }
#hud .tr { position: fixed; top: calc(var(--px) * 4); right: calc(var(--px) * 4); display: grid; gap: calc(var(--px) * 2); text-align: right; justify-items: end; }
.score { font-size: calc(var(--px) * 8); letter-spacing: calc(var(--px) * 0.5); }
.resource-readout { color: var(--g-hi); opacity: .9; letter-spacing: .06em; }

.prompt, .toast { position: fixed; left: 50%; transform: translateX(-50%); white-space: nowrap; padding: calc(var(--px) * 2) calc(var(--px) * 3); background: rgba(10,10,10, 0.86); outline: calc(var(--px) * 0.5) solid var(--gb); }
.prompt { bottom: calc(var(--px) * 46); color: var(--g-hi); font-size: calc(var(--px) * 6); }
.toast { top: calc(var(--px) * 40); color: var(--amber); font-size: calc(var(--px) * 6); outline-color: rgba(245, 197, 66, 0.6); }
.bossbar { position: fixed; bottom: calc(var(--px) * 6); left: 50%; transform: translateX(-50%); width: calc(var(--px) * 140); display: grid; gap: calc(var(--px) * 2); text-align: center; font-size: calc(var(--px) * 6); color: var(--red); }
.bossbar div { height: calc(var(--px) * 4); outline: calc(var(--px) * 0.5) solid rgba(255, 74, 74, 0.7); }
.bossbar i { display: block; height: 100%; background: rgba(255, 74, 74, 0.45); box-shadow: 0 0 calc(var(--px) * 3) var(--red); }
.talk { position: fixed; left: 50%; bottom: calc(var(--px) * 6); transform: translateX(-50%); width: min(calc(var(--px) * 230), 94vw); display: flex; gap: calc(var(--px) * 4); align-items: flex-start; font-size: calc(var(--px) * 6); line-height: 1.6; }
#talkFace { width: calc(var(--px) * 32); height: calc(var(--px) * 32); flex: none; outline: calc(var(--px) * 0.5) solid var(--gb); background: #141414; }
#talkText { min-height: 3.2em; }

.screen { position: fixed; inset: 0; display: grid; place-items: center; align-content: center; gap: calc(var(--px) * 8); padding: calc(var(--px) * 6); text-align: center; }
.screen.black { background: var(--bg); }
.screen.dimbg { background: rgba(5, 5, 5, 0.55); }
.card { display: grid; gap: calc(var(--px) * 6); max-width: calc(var(--px) * 220); font-size: calc(var(--px) * 6); line-height: 1.7; }
.card.plain { background: none; }
.big { font-size: calc(var(--px) * 12); line-height: 1.2; color: var(--g-hi); text-shadow: 0 0 calc(var(--px) * 2) var(--g); }
.big.red { color: var(--red); text-shadow: 0 0 calc(var(--px) * 2) var(--red); }
.tally { display: grid; grid-template-columns: 1fr auto; gap: calc(var(--px) * 2) calc(var(--px) * 8); margin: 0; text-align: left; }
.tally dd { margin: 0; text-align: right; }
.tally .tot { color: var(--g-hi); border-top: calc(var(--px) * 0.5) solid var(--gb); padding-top: calc(var(--px) * 2); }

.bootlogo { display: grid; gap: calc(var(--px) * 4); animation: drop 0.9s steps(9) both; }
.bootlogo span { font-size: calc(var(--px) * 20); color: var(--g-hi); text-shadow: 0 0 calc(var(--px) * 3) var(--g), calc(var(--px) * 1) calc(var(--px) * 1) 0 #262626; letter-spacing: calc(var(--px) * 1); }
.bootlogo small { font-size: calc(var(--px) * 5); color: var(--dim); letter-spacing: calc(var(--px) * 1); }
@keyframes drop { from { transform: translateY(calc(var(--px) * -60)); opacity: 0; } to { transform: none; opacity: 1; } }

#title { background: linear-gradient(to bottom, rgba(5, 5, 5, 0.1), rgba(5, 5, 5, 0.75) 70%); }
.logo { display: grid; gap: calc(var(--px) * 2); }
.logo .l1 { font-size: calc(var(--px) * 24); color: var(--g-hi); letter-spacing: calc(var(--px) * 1);
  text-shadow: 0 0 calc(var(--px) * 4) var(--g), calc(var(--px) * 1) calc(var(--px) * 1) 0 #343434, calc(var(--px) * 2) calc(var(--px) * 2) 0 #242424, calc(var(--px) * 3) calc(var(--px) * 3) 0 #171717; }
.logo .l2 { font-size: calc(var(--px) * 10); color: var(--text); letter-spacing: calc(var(--px) * 3); text-shadow: calc(var(--px) * 1) calc(var(--px) * 1) 0 #171717; }
.cast { display: flex; gap: calc(var(--px) * 10); align-items: flex-end; justify-content: center; flex-wrap: wrap; }
.cast figure { margin: 0; display: grid; gap: calc(var(--px) * 3); justify-items: center; }
.cast canvas { height: calc(var(--px) * 64); }
#titleRat { height: calc(var(--px) * 28); }
.cast figcaption { font-size: calc(var(--px) * 5); color: var(--dim); }
.go { font-size: calc(var(--px) * 9); color: var(--amber); text-shadow: 0 0 calc(var(--px) * 2) var(--amber); }
.keys { font-size: calc(var(--px) * 5); color: var(--dim); line-height: 1.8; }
.copy { font-size: calc(var(--px) * 5); color: var(--dim); }
.blink { animation: blink 1s steps(2, start) infinite; }
@keyframes blink { to { visibility: hidden; } }
@media (prefers-reduced-motion: reduce) { .blink, .bootlogo { animation: none; } }

/* crew strip, floor clock, and the hints that are easy to miss */
#face { height: calc(var(--px) * 32); }
.team { display: flex; gap: calc(var(--px) * 3); font-size: calc(var(--px) * 4); color: #64645f; }
.team .on { color: var(--g-hi); }
.clock { color: var(--amber); }
.clock.low { color: var(--red); animation: blink 0.5s steps(2, start) infinite; }
.cron, .whisper, .runno { position: fixed; right: calc(var(--px) * 3); bottom: calc(var(--px) * 2); font-size: calc(var(--px) * 3); color: #494945; letter-spacing: 0; }
.cast figcaption { display: grid; gap: calc(var(--px) * 1.5); }
.cast figcaption small { font-size: calc(var(--px) * 3.5); color: #787872; }
.term { align-content: start; justify-items: start; text-align: left; padding: calc(var(--px) * 8); }
#revealText { margin: 0; max-height: 70vh; overflow: hidden; white-space: pre-wrap; font-family: var(--font); font-size: calc(var(--px) * 4.5); line-height: 1.7; color: #f1efe8; text-shadow: 0 0 calc(var(--px) * 1.5) rgba(241,239,232, 0.6); }
.revealbig { display: grid; gap: calc(var(--px) * 4); font-size: calc(var(--px) * 12); color: var(--g-hi); text-shadow: 0 0 calc(var(--px) * 3) var(--g); }
.revealbig span:last-child { color: var(--amber); text-shadow: 0 0 calc(var(--px) * 3) var(--amber); }

/* third-person HUD additions */
#minimap { position: fixed; top: calc(var(--px) * 36); right: calc(var(--px) * 4); width: calc(var(--px) * 46); height: calc(var(--px) * 46); border-radius: 50%; background: radial-gradient(circle, rgba(10,10,10,0.75), rgba(10,10,10,0.55)); outline: calc(var(--px) * 0.5) solid var(--gb); box-shadow: 0 0 calc(var(--px) * 3) rgba(241,239,232, 0.25); }
.lead { display: flex; gap: calc(var(--px) * 6); justify-content: center; font-size: calc(var(--px) * 6); color: #64645f; }
.lead .on { color: var(--g-hi); text-shadow: 0 0 calc(var(--px) * 2) var(--g); }
#face, #talkFace { image-rendering: auto; }
.cast canvas { height: calc(var(--px) * 70); }
#titleRat { height: calc(var(--px) * 40); }

/* key art title: the crew around the lab table */
#title { background: linear-gradient(to bottom, rgba(5,5,5,0.55), rgba(5,5,5,0.05) 30%, rgba(5,5,5,0.15) 60%, rgba(5,5,5,0.9)), url('assets/crew.jpg') center / cover no-repeat; align-content: space-between; padding-block: calc(var(--px) * 10); }
.crewline { display: flex; flex-wrap: wrap; justify-content: center; gap: calc(var(--px) * 4) calc(var(--px) * 12); font-size: calc(var(--px) * 6); color: var(--text); text-shadow: 0 0 calc(var(--px) * 2) #000; }
.crewline span { display: grid; gap: calc(var(--px) * 1.5); }
.crewline small { font-size: calc(var(--px) * 3.5); color: var(--muted); }
#title { grid-template-rows: auto 1fr auto auto auto; align-content: stretch; gap: calc(var(--px) * 4); }
#title .logo .l1 { font-size: calc(var(--px) * 16); }
#title .logo .l2 { font-size: calc(var(--px) * 7); }
#title .crewline { align-self: end; }

/* cinematic letterbox for each floor's opening shot */
.letterbox { position: fixed; inset: 0; pointer-events: none; }
.letterbox i { position: absolute; left: 0; right: 0; height: 11vh; background: #000; }
.letterbox i:first-child { top: 0; } .letterbox i:nth-child(2) { bottom: 0; }
.lbtitle { position: absolute; left: 4vw; bottom: 14vh; font-size: calc(var(--px) * 9); color: var(--g-hi); text-shadow: 0 0 calc(var(--px) * 3) var(--g); letter-spacing: calc(var(--px) * 1); }
.lbskip { position: absolute; right: 4vw; bottom: 14.4vh; color: rgba(241,239,232,.62); font-size: calc(var(--px) * 4); letter-spacing: .12em; opacity: .8; }
.letterbox.entering i { animation: lab-curtain-in 520ms cubic-bezier(.2,.8,.2,1) both; }
.letterbox.entering .lbtitle { animation: lab-title-in 700ms 180ms ease-out both; }
@keyframes lab-curtain-in { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes lab-title-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .letterbox.entering i, .letterbox.entering .lbtitle { animation-duration: 1ms; animation-delay: 0ms; } }
/* RatLabs info terminals and merch */
.card.info { max-width: calc(var(--px) * 260); text-align: left; font-size: calc(var(--px) * 5); line-height: 1.7; max-height: 86vh; overflow: auto; }
.card.info img { width: 100%; max-height: 42vh; object-fit: contain; background: #e8e6e0; }
.card.info ul { margin: 0; padding-left: 1.2em; display: grid; gap: calc(var(--px) * 3); }
.card.info p { margin: 0; }
.card.info .price { color: var(--amber); font-size: calc(var(--px) * 7); }
.inforow { justify-content: space-between; }
.btn { color: var(--g-hi); text-decoration: none; padding: calc(var(--px) * 2) calc(var(--px) * 4); border: calc(var(--px) * 0.5) solid var(--g); background: rgba(241,239,232, 0.1); text-shadow: 0 0 calc(var(--px) * 2) var(--g); }
.btn:hover, .btn:focus-visible { background: rgba(241,239,232, 0.22); outline: none; }

/* a smaller HUD, map at the bottom */
#hud { --px: clamp(1.5px, 0.21vh, 2.6px); }
#hud .tl, #hud .tr { padding: calc(var(--px) * 4); }
#minimap { top: auto; bottom: 18px; right: 18px; width: 170px; height: 170px; }
#hud .talk { bottom: 16px; }
/* captions sit under each character in the key art */
#title .crewline { position: relative; display: block; height: calc(var(--px) * 14); }
#title .crewline span { position: absolute; transform: translateX(-50%); text-align: center; white-space: nowrap; }
/* Instrument panels: readable type, restrained glow, accessible controls. */
#hud, .card, .keys, .copy, .crewline { font-family: 'JetBrains Mono', monospace; }
#hud .box { border: 1px solid #494944; outline: none; border-radius: 7px; box-shadow: 0 8px 25px #0005; backdrop-filter: blur(12px); }
#hud .tl, #hud .tr { font-size: 13px; }
#hud .small { font-size: 11px; }
#face { width: 60px; height: 60px; border-radius: 5px; }
button { font: inherit; cursor: pointer; }
button:focus-visible, a:focus-visible { outline: 2px solid #f4f1e8; outline-offset: 5px; }
.start-button { border: 1px solid #cfcdc4; background: #111111e8; color: #f5f2ea; padding: 20px 28px; font: 700 16px 'JetBrains Mono', monospace; border-radius: 4px; box-shadow: 0 8px 32px #0008; letter-spacing: 2px; }
.start-button:hover { background: #303030; }
.start-button span { margin-left: 35px; color: #a6a79f; }
.room-tag { position: fixed; top: 110px; left: 22px; display: grid; gap: 5px; text-shadow: 0 2px 6px #000; pointer-events: none; }
.room-tag span { font-size: 9px; color: #a7a79f; letter-spacing: 2px; }
.room-tag b { font-size: 17px; font-weight: 700; letter-spacing: 1px; color: #f1efe8; }
.room-tag small { font-size: 10px; color: #d6bb72; }
.gadget-tray { position: fixed; left: 20px; bottom: 20px; display: flex; gap: 6px; }
.gadget-tray button { color: #bab9b2; background: #101010eb; border: 1px solid #444440; border-radius: 5px; padding: 9px 10px; display: grid; gap: 8px; min-width: 65px; font-size: 10px; }
.gadget-tray button.ready { border-color: #999a93; color: #efede5; }
.gadget-tray button:disabled { cursor: default; opacity: .6; }
.gadget-tray button:hover:not(:disabled) { background: #333333; }
#musicToggle[aria-pressed="false"] { color:#a9aaa2; border-color:#42433f; }
#musicToggle[aria-pressed="true"] { color:#a9f2cf; border-color:#527466; }
#musicToggle span { white-space:nowrap; }
#hud .gadget-tray #musicToggle { min-width:58px; }
kbd { font: 700 12px 'JetBrains Mono', monospace; text-align: left; }
.card.info a { color: #e5e2d9; text-underline-offset: 4px; }
#hud .talk { font-size: 12px; max-width: 620px; bottom: 100px; }
.prompt, .toast { font: 12px 'JetBrains Mono', monospace; border-radius: 4px; max-width: 90vw; white-space: normal; text-align: center; }
.prompt { bottom: 95px; }
@media(max-width:800px) { .gadget-tray {gap:3px;left:8px;bottom:8px;} .gadget-tray button {min-width:46px;padding:7px;font-size:8px;} #minimap {width:110px;height:110px;right:8px;bottom:8px;} .room-tag {left:12px;top:100px;} #hud .talk {width:80vw;} }
@media(prefers-reduced-motion:reduce) { .blink {animation:none;} }
/* Keep the navigation area clear. Full controls remain in Pause. */
.gadget-tray { gap: 4px; bottom: 12px; left: 12px; }
.gadget-tray button { min-width: 42px; padding: 7px 8px; gap: 3px; font-size: 8px; background: #101010db; }
.gadget-tray kbd { text-align: center; }
#hud .talk { left: 14px; bottom: 72px; transform: none; width: min(440px,55vw); font-size: 11px; }
#hud .talk #talkFace { width: 38px; height: 38px; }
#hud .talk #talkText { min-height: 0; }
#hud .tl, #hud .tr { padding: 8px; }
.room-tag { top: 100px; font-size: 11px; }
#minimap { width: 136px; height: 136px; bottom: 12px; right: 12px; }
.prompt { bottom: 75px; }
/* Crew captions must own layout space; absolute captions collapsed the container. */
#title { padding: clamp(16px,4vh,42px) 20px 20px; grid-template-rows: auto minmax(40px,1fr) auto auto auto; gap: clamp(12px,2.4vh,24px); overflow-y: auto; }
#title .logo { gap: 12px; }
#title .logo .l1 { font-size: clamp(30px,5.5vw,72px); letter-spacing: .08em; }
#title .logo .l2 { font-size: clamp(15px,2.5vw,30px); letter-spacing: .18em; }
#title .crewline { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); width: min(1200px,100%); height: auto; min-width: 0; gap: 12px; align-self: end; padding: 14px 8px; background: linear-gradient(90deg,transparent,#080808b0 10%,#080808b0 90%,transparent); }
#title .crew-label { min-width: 0; display: grid; align-content: start; gap: 5px; text-align: center; }
#title .crew-label strong { font: 700 clamp(11px,1.5vw,20px) 'JetBrains Mono',monospace; color: #e6e3da; line-height: 1.35; }
#title .crew-label small { font: inherit; font-size: .7em; color: #c5c3ba; display: block; }
#title .crew-label p { margin: 0; color: #b7b6af; font-size: clamp(9px,1vw,13px); line-height: 1.5; overflow-wrap: anywhere; }
#title .keys { max-width: 950px; font-size: 11px; line-height: 1.7; }
#title .copy { font-size: 10px; }
#title .go { font-size: clamp(12px,1.3vw,17px); }
@media(max-width:520px) { #title .crewline { gap: 6px; padding-inline: 0; } #title .crew-label strong {font-size:10px;} #title .crew-label p {font-size:9px;} .start-button {padding:15px;letter-spacing:1px;} .start-button span {margin-left:12px;} #title .keys {font-size:9px;} }
@font-face { font-family: 'JetBrains Mono'; src: url('assets/fonts/jetbrains-mono-400.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }
@font-face { font-family: 'Press Start 2P'; src: url('assets/fonts/press-start-2p.woff2') format('woff2'); font-weight: 400; font-display: swap; }
.card { max-width: min(92vw,900px); font-size: clamp(12px,1.5vw,17px); }
.card .big { font-size: clamp(18px,3vw,32px); overflow-wrap: anywhere; }
.card.info { max-width: min(92vw,900px); font-size: 13px; }
.card.info .price {font-size:20px;}
.lead {font-size:clamp(10px,1.5vw,16px);gap:16px;flex-wrap:wrap;}
@media(max-width:640px){#hud .tl{left:8px;top:8px;max-width:175px;}#hud .tr{right:8px;top:8px;max-width:160px;}#hud .tl .row{gap:5px;}#hud .tr .row{gap:6px;flex-wrap:wrap;justify-content:flex-end;}#hud .small{font-size:9px;}#face{width:38px;height:46px;}#hud .team{font-size:8px;}#hud .score{font-size:13px;}#hud .talk{width:calc(100vw - 30px);bottom:76px;}#hud .talk:has(#talkText:empty){display:none;}#title .crew-label strong{white-space:normal;}}

.reticle{position:fixed;left:50%;top:50%;width:5px;height:5px;transform:translate(-50%,-50%);border:1px solid #f7f5ee;border-radius:50%;box-shadow:0 0 3px #000;pointer-events:none;}
#cameraMode{max-width:68px;font-size:8px;}

.map-directory { position:fixed; z-index:5; top:50%; right:18px; transform:translateY(-50%); width:min(260px,25vw); max-height:min(72vh,720px); display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:10px; padding:12px; color:#e9eee9; background:linear-gradient(145deg,#090d0deF,#050707eF); border:1px solid #527466; box-shadow:0 0 24px #000b, inset 0 0 20px #23463838; font:11px 'JetBrains Mono',monospace; }
.map-directory header { display:flex; align-items:center; justify-content:space-between; gap:8px; padding-bottom:8px; border-bottom:1px solid #456052; color:#a9f2cf; font-weight:700; letter-spacing:.08em; }
.map-directory header button { border:1px solid #657a70; background:#17201d; color:#f3f2e9; padding:6px 8px; font:700 9px 'JetBrains Mono',monospace; }
.map-directory nav { overflow:auto; display:grid; align-content:start; gap:4px; }
.map-directory nav button { display:grid; grid-template-columns:24px minmax(0,1fr); gap:7px; text-align:left; align-items:center; min-height:34px; padding:6px; color:#c8cec8; border:1px solid #29342f; background:#0b100f; font:10px 'JetBrains Mono',monospace; cursor:pointer; }
.map-directory nav button:hover,.map-directory nav button[aria-current="true"] { color:#fff; border-color:#65dba4; background:#163023; box-shadow:0 0 9px #42c88438; }
.map-directory nav button i { color:#78d9a5; font-style:normal; font-size:9px; }
.map-directory footer { color:#8d9a92; font-size:8px; letter-spacing:.06em; }
body.map-open #minimap { display:none; }
@media(max-width:700px) { .map-directory { top:auto; right:8px; bottom:58px; transform:none; width:min(210px,44vw); max-height:52vh; padding:8px; } .map-directory nav button { min-height:30px; font-size:9px; } .map-directory header { font-size:9px; } }

/* Keep the color control beside the map on narrow screens, away from movement. */
@media(max-width:520px){.gadget-tray #matrixColor{position:fixed;right:12px;bottom:158px;min-width:48px;}}
@media(max-width:520px){.gadget-tray button{min-width:38px;padding:6px 5px;font-size:7px;}.gadget-tray #cameraMode{max-width:46px;font-size:7px;white-space:normal;}.gadget-tray #musicToggle{min-width:48px;}}

/* Original monochrome RatLabs dot wordmark. Canvas is decorative; text remains accessible. */
.rd-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
[data-ratlabs-wordmark] { min-width:0; text-shadow:none !important; }
[data-ratlabs-wordmark] .rd-text { max-width:100%; vertical-align:middle; }
[data-ratlabs-wordmark] canvas { display:block; max-width:100%; }
#title .logo .l1 { filter:drop-shadow(0 0 8px #ffffff24); }
#title .logo .l2 { color:#b3b1a9; text-shadow:none; }
.story-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.story-grid article { min-width:0; display:grid; align-content:start; gap:10px; padding-bottom:20px; border-bottom:1px solid #343434; }
.card.info .story-grid img { display:block; aspect-ratio:16/9; object-fit:cover; width:100%; max-height:none; background:#141414; }
.story-grid h3 { margin:0; font-size:16px; line-height:1.4; overflow-wrap:anywhere; }
.story-grid p { font-size:13px; line-height:1.65; }
#infoImg[src$="mick-profile.png"] { max-height:220px; background:#101010; }
@media(max-width:600px) { .story-grid {grid-template-columns:1fr;} }
#info .big, #pause .big { text-shadow:none; }
#infoBody { display:grid; gap:14px; }
#infoBody pre { white-space:pre-wrap; overflow-wrap:anywhere; background:#0b171b; border:1px solid #365159; border-radius:5px; padding:16px; color:#a3d6d9; font:13px/1.7 "JetBrains Mono",monospace; }
#infoBody ol { padding-left:24px; line-height:1.8; }
#info .btn, #pause .btn { text-shadow:none; }

/* The open lab HUD keeps navigation and exploration state in view. */
#hud .tl .pips, #hud .tl .small, #hud .tl .team,
#hud .tr .row.small { display:flex !important; }
#hud .tr .row.small span:first-child, #hud .tr .row.small span:last-child { display:none !important; }
#hud .tr .score, #revive { display:none !important; }
#hud .tr .clock { color:#c9e5ff; letter-spacing:.12em; }

#lift { padding:16px; background:rgba(2,5,5,.78); }
.lift-card { width:min(100%,600px); max-height:calc(100dvh - 32px); overflow:auto; gap:18px; padding:24px; border:1px solid #64736f; outline:1px solid #1f2d29; border-radius:12px; text-align:left; font:13px/1.5 'JetBrains Mono',monospace; background:radial-gradient(ellipse at 0 45%,#162e2880,transparent 70%),#080e0df5; box-shadow:0 24px 90px #000b,inset 0 0 40px #bdd9c305; }
.lift-header { display:flex; align-items:center; justify-content:space-between; color:#9caea7; font-size:10px; letter-spacing:.16em; }
.lift-header button { font:inherit; letter-spacing:0; color:#c6d1cb; background:#17221e; border:1px solid #43544b; border-radius:4px; padding:5px 8px; cursor:pointer; }
.lift-heading h2 { margin:6px 0; font-size:clamp(19px,4vw,26px); line-height:1.25; letter-spacing:.08em; font-weight:500; color:#f1efe8; }
.lift-heading p { margin:0; color:#a5b1ab; font-size:12px; }
.lift-online { font-size:9px; letter-spacing:.14em; color:#c3dfce; }
.lift-choices { display:flex; flex-direction:column; gap:0; border:1px solid #41534a; border-radius:6px; overflow:hidden; }
.lift-choice { position:relative; display:grid; grid-template-columns:56px minmax(0,1fr) 80px; align-items:center; gap:15px; width:100%; min-height:115px; margin:0; padding:14px 16px 14px 0; text-align:left; font:inherit; color:#abb7b0; background:#101814; border:0; border-bottom:1px solid #35463d; cursor:pointer; transition:background .15s,color .15s; }
.lift-choice:last-child { border-bottom:0; }
.lift-choice:hover { background:#1a2921; }
.lift-choice.selected { color:#edfff2; background:linear-gradient(90deg,#29463890,#17251e); box-shadow:inset 3px 0 #dcf7e3; }
.lift-choice:focus-visible,.lift-header button:focus-visible { outline:2px solid #f5c542; outline-offset:-3px; }
.lift-beam { position:absolute; left:14px; top:0; bottom:0; width:33px; border-left:1px solid #759a7a38; border-right:1px solid #759a7a38; background:radial-gradient(circle,#b2e9bc65 1px,transparent 1.4px) center/6px 6px; opacity:.4; }
.lift-beam::before,.lift-beam::after { content:''; position:absolute; left:-4px; right:-4px; height:9px; border:1px solid #9abd9e; border-radius:50%; }
.lift-beam::before { top:18%; }.lift-beam::after { bottom:18%; }
.lift-beam i { position:absolute; inset:24% 4px; background:linear-gradient(90deg,transparent,#daffe32b,transparent); }
.lift-choice.selected .lift-beam { opacity:1; filter:drop-shadow(0 0 5px #b4eebd65); }
.lift-choice.current .lift-beam::after { border-color:#f5c542; box-shadow:0 0 6px #f5c54250; }
.lift-destination { grid-column:2; min-width:0; }
.lift-dot-code { display:block; height:32px; width:auto; max-width:100%; margin-bottom:5px; filter:drop-shadow(0 0 3px #d5ffe330); }
.lift-choice b { display:block; font:500 13px/1.35 'JetBrains Mono',monospace; color:inherit; }
.lift-choice small { display:block; margin-top:4px; font-size:10px; line-height:1.45; color:#a6b6ab; }
.lift-floor-action { display:flex; flex-direction:column; align-items:flex-end; gap:10px; font-size:8px; letter-spacing:.04em; color:#a9b9ac; }
.lift-floor-action kbd { font-size:16px; padding:2px 9px; }
.lift-choice.current .lift-floor-action span { color:#e4d593; }
.lift-card kbd { font-family:inherit; border:1px solid #627567; border-radius:3px; background:#09120d; color:#e4f0e5; }
.lift-status { padding:8px 10px; border:1px dotted #516456; color:#d5e7d8; font-size:10px; letter-spacing:.08em; }
.lift-help { display:flex; flex-wrap:wrap; gap:8px 16px; font-size:9px; color:#acb9b0; }
.lift-help kbd { display:inline-block; min-width:17px; text-align:center; }
@media(max-width:420px),(max-height:620px) { .lift-card { padding:14px; gap:12px; }.lift-choice { min-height:92px; gap:8px; grid-template-columns:48px minmax(0,1fr) 64px; padding:10px 10px 10px 0; }.lift-dot-code {height:25px;}.lift-choice small {font-size:9px;}.lift-beam {left:10px;width:29px;}.lift-heading p {font-size:10px;} }


.pwa-actions{position:fixed;top:max(104px,env(safe-area-inset-top));right:12px;z-index:90;display:flex;justify-content:flex-end;gap:8px;align-items:center;max-width:calc(100vw - 24px);flex-wrap:wrap}.pwa-actions .btn{font-size:10px;padding:10px;min-height:44px}.pwa-actions [hidden]{display:none}#connectionStatus{font:10px monospace;background:#080b0a;color:#ddd;padding:10px}
@media(max-width:600px){#title .logo .l2{font-size:clamp(9px,2.5vw,15px);letter-spacing:.1em;}}
@media(max-width:600px){#minimap{width:104px;height:104px;right:8px;bottom:64px;}.gadget-tray #matrixColor{bottom:180px;}}

/* The lab keeps the original terminal palette, with usable touch navigation. */
#bootStatus{font:12px "JetBrains Mono",monospace;color:#9cb7ab;letter-spacing:.08em;position:absolute;bottom:24%;text-align:center;width:90%;}
button.crew-label{background:transparent;border:1px solid transparent;color:inherit;font:inherit;cursor:pointer;padding:8px;border-radius:4px;}
button.crew-label:hover,button.crew-label:focus-visible{border-color:#ff6269;background:#160f12;outline:none;}


button.crew-label[aria-pressed="true"]{border-color:#e96c72;background:#201215;}
.private-terminal{position:fixed;inset:18px;z-index:100;background:#040a06f7;border:1px solid #4b8357;box-shadow:0 0 50px #172c1a,inset 0 0 80px #0e1e12;color:#a5d5af;font:14px/1.6 'JetBrains Mono',monospace;padding:22px;display:flex;flex-direction:column;overflow:auto}.private-terminal[hidden]{display:none}.private-terminal header{display:flex;gap:20px;align-items:center;justify-content:space-between;border-bottom:1px solid #31533a;padding-bottom:15px;color:#39d353}.private-terminal button{padding:9px 14px;border:1px solid #426c4a;color:#b5d9bb;background:#0c1d11;cursor:pointer}.private-terminal button:hover,.private-terminal button[aria-pressed="true"]{background:#173e22;border-color:#39d353}.private-terminal input{background:#020604;border:1px solid #416c4b;color:#a5e2b2;padding:12px;font:inherit;min-width:0}.private-terminal .terminal-lock{margin:auto;display:grid;gap:18px;max-width:620px}.terminal-lock input{font-size:32px;letter-spacing:.5em;text-align:center}.terminal-lock h1{color:#39d353;text-shadow:0 0 15px #25863a}.terminal-status{font-size:11px;color:#6c9975}.terminal-desktop{display:flex;gap:22px;min-height:0;flex:1}.terminal-desktop nav{display:flex;flex-direction:column;gap:10px;width:165px;flex-shrink:0}.terminal-output{flex:1;min-width:0;overflow:auto;padding:18px;background:repeating-linear-gradient(0deg,#060e08 0 3px,#071109 3px 4px);border:1px solid #294731}.terminal-output pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;margin:0 0 20px}.terminal-output a,.terminal-output button{display:block;margin:8px 0;color:#70c983}.private-terminal>form:not(.terminal-lock){display:flex;align-items:center;gap:10px;padding-top:16px}.private-terminal>form:not(.terminal-lock) input{flex:1}.private-terminal button:focus-visible,.private-terminal input:focus-visible{outline:2px solid #8bce9a;outline-offset:3px}@media(max-width:600px){.private-terminal{inset:6px;padding:12px;font-size:11px}.private-terminal header{align-items:flex-start}.terminal-desktop{flex-direction:column;gap:10px}.terminal-desktop nav{width:auto;flex-direction:row;flex-wrap:wrap}.terminal-desktop nav button{padding:7px 10px}.terminal-output{min-height:220px}.private-terminal>form:not(.terminal-lock){flex-wrap:wrap}}
.flight-controls{position:fixed;left:50%;bottom:88px;transform:translateX(-50%);max-width:calc(100vw - 24px);width:640px;background:#080c0bed;border:1px solid #52765b;border-radius:8px;padding:10px;color:#b4cebb;font:10px monospace;pointer-events:auto;z-index:25}.flight-controls div{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}.flight-controls button{background:#15221a;color:#c3dfca;border:1px solid #54715c;padding:9px;cursor:pointer;touch-action:none}.flight-controls small{display:block}.flight-controls[hidden]{display:none}@media(max-width:600px){.flight-controls{bottom:205px;width:340px}.flight-controls button{padding:9px 7px}}

.youtube-viewer form{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.youtube-viewer input{min-width:180px;flex:1;padding:12px;background:#0c1910;color:#d2e5d7;border:1px solid #55745e;font:inherit}.youtube-viewer iframe{display:block;min-height:240px;max-height:65vh;aspect-ratio:16/9;margin-top:16px;background:#030805}.youtube-viewer button[aria-pressed="true"]{border-color:#b1d9ba;background:#25442c}

.youtube-viewer nav button{display:flex;align-items:center;gap:9px}.youtube-viewer nav img{object-fit:contain;border-radius:50%}.youtube-radio{position:fixed;right:12px;bottom:12px;width:320px;max-width:calc(100vw - 24px);z-index:85;background:#07110c;border:1px solid #577b60;color:#b6d6be;font:11px monospace}.youtube-radio header{display:flex;justify-content:space-between;align-items:center;padding:8px;gap:8px}.youtube-radio button,.youtube-radio a{color:#b6d6be;background:#122b1b;border:1px solid #577b60;padding:6px;cursor:pointer}.youtube-radio iframe{display:block;width:100%;height:200px;border:0}.radio-active #minimap{bottom:265px}

/* Compact glass cockpit. Flight instruments own their space; the windscreen stays clear. */
.vtol-cockpit{position:fixed;inset:0;pointer-events:none;z-index:15;color:#b6c9c9;font:11px 'JetBrains Mono',monospace;font-variant-numeric:tabular-nums}
.vtol-cockpit[hidden]{display:none}
.cockpit-windshield{position:absolute;inset:0;border:5px solid #141b20;box-shadow:inset 0 0 0 1px #3d4c5366}
.cockpit-windshield:after{content:'';position:absolute;bottom:0;left:0;right:0;height:112px;background:linear-gradient(180deg,#11191fe6,#080e13);border-top:1px solid #43545d}
.cockpit-avionics{position:absolute;inset:0 0 auto;min-height:86px;display:grid;grid-template-columns:minmax(150px,1fr) 150px 180px 150px minmax(150px,1fr);align-items:center;gap:24px;padding:12px 28px;background:linear-gradient(180deg,#0a1117f7,#0c141aeb);border-bottom:1px solid #3d4b53;box-sizing:border-box}
.cockpit-ident{display:grid;gap:5px;font-size:11px;letter-spacing:.12em}.cockpit-ident strong{color:#dde6e5;font-size:13px}.cockpit-ident strong span{color:#75888c;font-size:9px;font-weight:400}.cockpit-ident small{color:#788d93;font-size:9px}.cockpit-ident>span{color:#9dc4b4;font-size:9px}
.cockpit-instrument{display:grid;gap:2px;border-left:1px solid #334149;padding-left:20px;min-width:0}.cockpit-instrument small{font-size:9px;letter-spacing:.1em;color:#93a7ad}.cockpit-instrument small span{color:#637a83;margin-left:5px}.cockpit-instrument b{font-size:28px;font-weight:500;line-height:1.2;color:#d0e4dd;letter-spacing:.04em}.cockpit-instrument>span{font-size:8px;letter-spacing:.06em;color:#78918f}.cockpit-instrument em{font-style:normal;color:#b5c7c2}.cockpit-heading{text-align:center;padding:0;border:0}.compass-ticks{letter-spacing:.25em}
.cockpit-link{justify-self:end;text-align:right;font-size:9px;letter-spacing:.08em;color:#9db6ac}.cockpit-link i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#88bca2;margin-right:6px}.cockpit-link small{display:block;color:#637b83;font-size:8px;margin-top:8px}
.flight-reference{position:absolute;left:50%;top:50%;width:80px;height:12px;transform:translate(-50%,-50%);opacity:.55}.flight-reference:before,.flight-reference:after{content:'';position:absolute;top:6px;width:26px;border-top:1px solid #b7d8c6}.flight-reference:before{left:0}.flight-reference:after{right:0}.flight-reference span{display:block;margin:auto;width:5px;height:5px;border:1px solid #b7d8c6;border-radius:50%}
.vtol-in-flight #hud>.tl,.vtol-in-flight #hud>.tr,.vtol-in-flight .room-tag,.vtol-in-flight .gadget-tray,.vtol-in-flight #minimap,.vtol-in-flight .touch-controls,.vtol-in-flight #prompt,.vtol-in-flight #talk,.vtol-in-flight #reticle{display:none!important}
.vtol-in-flight #toast{top:100px;bottom:auto;font-size:10px;background:#0c151bd9;border-color:#485b60;color:#b7cdc4;max-width:calc(100vw - 40px)}
.vtol-in-flight .flight-controls{bottom:max(12px,env(safe-area-inset-bottom));width:min(980px,calc(100vw - 44px));max-width:none;padding:12px 16px;background:#0c141bf2;border:1px solid #3c4d56;border-radius:5px;box-shadow:0 8px 24px #0008;color:#adbdc2;font:10px 'JetBrains Mono',monospace;box-sizing:border-box}
.flight-controls .flight-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 10px}.flight-panel-heading b{font-size:10px;font-weight:500;color:#bdcecf;letter-spacing:.08em}.flight-panel-heading b span{color:#70878e;margin-left:10px;font-size:8px}.flight-panel-heading #flightStatus{font-size:9px;color:#91ada4;text-align:right;overflow-wrap:anywhere}
.flight-controls .flight-actions{display:grid;grid-template-columns:1.4fr 1fr 1.2fr 1fr .8fr 1fr;gap:6px;margin:0}.flight-controls button{min-height:36px;background:#142028;color:#b9cccf;border:1px solid #3b515b;border-radius:3px;font:9px 'JetBrains Mono',monospace;padding:8px;cursor:pointer}.flight-controls button:hover,.flight-controls button:focus-visible{background:#22363e;border-color:#9bbab4;outline:1px solid #9bbab4;outline-offset:2px}.flight-controls button[aria-pressed=true]{color:#c0ddcd;background:#1b342c;border-color:#648c77}.flight-controls kbd{font:8px inherit;color:#738e94;margin-left:8px}.flight-controls .flight-movement{display:block;border-top:1px solid #2b3e48;margin-top:12px;padding-top:8px}.flight-controls [hidden]{display:none!important}.flight-movement p{font-size:9px;line-height:1.7;color:#819da3;margin:0 0 8px}.flight-controls .flight-movement>div{display:flex;gap:6px;flex-wrap:wrap;margin:0}.flight-movement button{flex:1;min-width:42px;touch-action:none}
@media(max-width:1000px){.cockpit-avionics{grid-template-columns:1fr 110px 130px 110px;gap:18px;padding:10px 20px;min-height:80px}.cockpit-link{display:none}.cockpit-instrument{padding-left:14px}.cockpit-heading{padding:0}.cockpit-ident strong span{display:none}}
@media(max-width:600px){.cockpit-avionics{grid-template-columns:1fr 1fr 1.1fr 1fr;gap:8px;padding:10px 12px;min-height:74px}.cockpit-ident strong{font-size:9px;letter-spacing:0}.cockpit-ident small{font-size:7px;letter-spacing:0}.cockpit-ident>span{font-size:7px;letter-spacing:0}.cockpit-instrument{padding-left:8px}.cockpit-heading{padding:0}.cockpit-instrument small{font-size:7px;letter-spacing:0}.cockpit-instrument b{font-size:21px}.cockpit-instrument>span{font-size:7px}.compass-ticks{letter-spacing:.02em}.flight-controls .flight-actions{grid-template-columns:repeat(3,1fr);gap:5px}.vtol-in-flight .flight-controls{width:calc(100vw - 20px);padding:10px;bottom:8px}.flight-panel-heading b span{display:none}.flight-panel-heading #flightStatus{font-size:8px}.flight-controls button{font-size:8px;min-height:36px;padding:7px 5px}.flight-controls kbd{margin-left:3px}.cockpit-windshield:after{height:150px}.vtol-in-flight #toast{top:86px;font-size:9px}}
@media(max-height:500px) and (min-width:601px){.cockpit-avionics{min-height:62px;padding-block:6px}.cockpit-instrument b{font-size:21px}.cockpit-instrument>span,.cockpit-ident small{display:none}.cockpit-windshield:after{height:94px}.vtol-in-flight .flight-controls{bottom:8px;padding:8px 12px}.flight-controls .flight-panel-heading{margin-bottom:6px}.vtol-in-flight #toast{top:72px}}

/* Minimal title: wordmark, tagline and one monochrome enter key on near-black. */
#title.screen { background:#060706; display:grid; grid-template-rows:none; place-content:center; justify-items:center; gap:clamp(28px,6vh,56px); padding:16px; overflow:hidden; }
#title .logo { display:grid; justify-items:center; gap:14px; }
#title .logo .l2 { color:#9a9a94; font:400 clamp(11px,1.8vw,18px) 'JetBrains Mono',monospace; letter-spacing:.32em; text-shadow:none; }
.enter-glyph { width:clamp(64px,9vw,88px); aspect-ratio:1; display:grid; place-items:center; border:1px solid #d8d8d2; border-radius:10px; background:transparent; color:#ececE6; font:300 clamp(30px,4.4vw,44px)/1 'JetBrains Mono',monospace; cursor:pointer; transition:background .2s,color .2s; }
.enter-glyph:hover,.enter-glyph:focus-visible { background:#ececE6; color:#060706; outline:none; }
@media (prefers-reduced-motion:no-preference){ .enter-glyph { animation:enter-breathe 2.8s ease-in-out infinite; } }
@keyframes enter-breathe { 50% { opacity:.55; } }

/* Desktop camera modes are directly selectable; V still cycles them. */
.camera-picker {display:grid;gap:3px;padding:7px 8px;border:1px solid #444440;border-radius:5px;background:#101010db;color:#bab9b2;font-size:8px;align-content:center;}
.camera-picker select {width:112px;border:0;background:transparent;color:#e2e5de;font:10px 'JetBrains Mono',monospace;cursor:pointer;outline-offset:3px;}
.camera-picker option {background:#101b15;color:#eef3e9;}

.security-hud {position:fixed;inset:16px;pointer-events:none;border:1px solid #e0eee32c;border-radius:2px;font:12px/1.5 'JetBrains Mono',monospace;color:#e4ece4;}
.security-record,.security-time {position:absolute;top:14px;padding:10px 14px;background:#07100de8;border:1px solid #a8c0ad38;}
.security-record {left:14px;display:grid;gap:3px;}.security-rec {color:#ff6860;letter-spacing:.15em;}.security-record b {font:inherit;color:inherit;}.security-record small,.security-time small {display:block;font-size:9px;color:#acbcb0;letter-spacing:.1em;}
.security-time {right:14px;text-align:right;}.security-time time {font-size:15px;font-variant-numeric:tabular-nums;}
.security-floor-select {position:absolute;bottom:14px;left:50%;transform:translateX(-50%);display:flex;gap:6px;pointer-events:auto;white-space:nowrap;}
.security-floor-select button {font:10px 'JetBrains Mono',monospace;padding:10px 13px;color:#d9e9dc;background:#08130fee;border:1px solid #5a7662;border-radius:3px;cursor:pointer;}
.security-floor-select button[aria-pressed=true] {background:#304a37;border-color:#d5e8d6;color:white;}.security-floor-select button:focus-visible {outline:2px solid #f5c542;outline-offset:2px;}
.security-active #hud>.tl,.security-active #hud>.tr,.security-active .room-tag,.security-active #minimap,.security-active .gadget-tray,.security-active #prompt,.security-active #talk,.security-active #reticle {display:none!important;}

/* Brief cinematic captions announce a new department without blocking controls. */
.area-banner{position:fixed;left:clamp(16px,4vw,64px);bottom:110px;max-width:min(780px,calc(100vw - 220px));padding:16px 22px;border-left:2px solid #8dbaa2;background:linear-gradient(90deg,#050908ed,#050908a0 80%,transparent);color:#e8ece4;font-family:'JetBrains Mono',monospace;pointer-events:none;text-shadow:0 2px 6px #000;z-index:20;box-sizing:border-box}
.area-banner[hidden]{display:none}
.area-banner strong{display:block;font-size:clamp(16px,2.3vw,30px);font-weight:700;line-height:1.35;letter-spacing:.1em;overflow-wrap:anywhere}
.area-banner p{margin:10px 0 0;font-size:clamp(11px,1.4vw,18px);line-height:1.5;color:#b8c9bf}
@media(max-width:600px){.area-banner{left:14px;right:14px;bottom:210px;max-width:none;padding:12px 15px}.area-banner strong{font-size:16px;letter-spacing:.06em}.area-banner p{font-size:12px;margin-top:7px}}
@media(max-height:500px){.area-banner{bottom:85px;max-width:calc(100vw - 180px);padding:9px 14px}.area-banner strong{font-size:16px}.area-banner p{font-size:11px;margin-top:5px}}

/* Exploration keeps a small, usable thumb interface on phones and tablets. */
.tools-toggle,.gadget-tray .tools-close,.mobile-controls{display:none}
@media(max-width:700px),(pointer:coarse){
 body.lab-explore #hud>.tl{left:10px;top:max(10px,env(safe-area-inset-top));padding:6px;display:flex;align-items:center;gap:7px;max-width:150px}
 body.lab-explore #hud>.tl #face{width:28px;height:28px}
 body.lab-explore #hud>.tl .pips,body.lab-explore #hud>.tl .small,body.lab-explore #hud>.tl .team,body.lab-explore #revive{display:none!important}
 body.lab-explore #hud>.tl #who{font-size:10px;white-space:nowrap}
 body.lab-explore #hud>.tr{left:10px;right:auto;top:max(61px,calc(env(safe-area-inset-top) + 51px));padding:0;border:0;box-shadow:none;background:transparent;max-width:calc(100vw - 92px)}
 body.lab-explore #hud>.tr #floorName{font:10px 'JetBrains Mono',monospace;color:#b8c9c0;text-shadow:0 1px 4px #000}
 body.lab-explore #hud>.tr .row:not(:first-child),body.lab-explore #hud>.tr .score,body.lab-explore #hud>.tr .resource-readout,body.lab-explore #clock{display:none!important}
 body.lab-explore .room-tag{top:max(89px,calc(env(safe-area-inset-top) + 79px));left:10px;right:10px}
 body.lab-explore .room-tag span,body.lab-explore .room-tag small{display:none}
 body.lab-explore .room-tag b{font-size:11px;max-width:100%;letter-spacing:.04em}
 body.lab-explore #minimap{width:76px;height:76px;right:12px;bottom:190px;opacity:.85}
 .tools-toggle{display:block;position:fixed;right:12px;top:max(12px,env(safe-area-inset-top));z-index:45;min-height:44px;padding:10px 14px;border:1px solid #53695e;border-radius:5px;background:#0b1412ed;color:#d3e1d8;font:11px 'JetBrains Mono',monospace;pointer-events:auto}
 #hud .gadget-tray{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));left:auto;right:12px;bottom:auto;top:max(66px,calc(env(safe-area-inset-top) + 56px));width:min(340px,calc(100vw - 24px));padding:12px;box-sizing:border-box;background:#0b1211f5;border:1px solid #506459;border-radius:6px;z-index:44;visibility:hidden;pointer-events:none;gap:8px;box-shadow:0 10px 35px #0009}
 .tools-open #hud .gadget-tray{visibility:visible;pointer-events:auto}
 #hud .gadget-tray button{min-height:48px;min-width:0;padding:10px 5px;font-size:9px}
 #hud .gadget-tray .camera-picker{grid-column:span 2;min-height:48px;box-sizing:border-box;padding:8px}
 #hud .gadget-tray #matrixColor{position:static;min-width:0}
 #hud .gadget-tray select{width:100%;font-size:12px;min-height:28px}
 #hud .gadget-tray .tools-close{display:block;grid-column:1/-1;text-align:right;min-height:36px;background:transparent;border:0;color:#a9bdb0}
 .mobile-controls{position:fixed;display:flex;justify-content:space-between;align-items:flex-end;left:14px;right:14px;bottom:max(14px,env(safe-area-inset-bottom));z-index:25;pointer-events:none}
 .mobile-controls button{pointer-events:auto;touch-action:none;user-select:none;border:1px solid #637e70;background:#101a17e8;color:#e3eee8;border-radius:10px;font:20px 'JetBrains Mono',monospace;min-width:44px;min-height:44px}
 .mobile-controls button:active{background:#335846;border-color:#c5decf}
 .walk-pad{display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px);gap:3px}
 .walk-pad button:first-child{grid-column:2}.walk-pad button:nth-child(2){grid-column:1;grid-row:2}.walk-pad span{grid-column:2;grid-row:2;display:grid;place-items:center;color:#80958a;font:8px 'JetBrains Mono',monospace}.walk-pad button:nth-child(4){grid-column:3;grid-row:2}.walk-pad button:last-child{grid-column:2;grid-row:3}
 .walk-actions{display:grid;gap:9px;justify-items:end}.walk-actions>div{display:flex;gap:7px}.walk-actions button{font-size:10px;padding:10px}.walk-actions .touch-interact{min-height:62px;min-width:88px;border-radius:30px;color:#d9ecdf}
 body.lab-explore #prompt{bottom:176px;left:14px;right:14px;max-width:none;transform:none;width:auto;text-align:center;font-size:10px;padding:8px}
 body.lab-explore #hud .talk{left:14px;bottom:176px;width:calc(100vw - 28px);box-sizing:border-box}
 .vtol-in-flight .mobile-controls,.security-active .mobile-controls,.map-open .mobile-controls{display:none!important}
 body.lab-explore .area-banner{bottom:286px}
 .map-open .tools-toggle{z-index:10}
}
@media(max-height:500px) and (pointer:coarse){.walk-pad{grid-template-rows:repeat(3,40px);grid-template-columns:repeat(3,40px)}.walk-pad button{min-width:40px;min-height:40px}.mobile-controls{bottom:8px}.walk-actions .touch-interact{min-height:50px}.area-banner{bottom:150px!important;max-width:60vw!important}body.lab-explore #minimap{bottom:145px}body.lab-explore #prompt{bottom:145px;left:170px;right:125px}}

/* Floor colors and a destination guide connect the directory to the real lab. */
.map-sections{overflow:auto;min-height:0;display:grid;align-content:start;gap:9px}.map-sections>p{margin:7px 0 0;font-size:9px;letter-spacing:.12em;color:#8da296}.map-directory .map-sections nav{overflow:visible}.map-directory #guideDestinations button{grid-template-columns:36px minmax(0,1fr);min-height:46px}.map-directory #guideDestinations small{display:block;font-size:8px;letter-spacing:.05em;color:#82998b;margin-top:5px}.map-directory footer button{width:100%;min-height:38px;border:1px solid #40594b;background:#132018;color:#c8dccf;font:10px 'JetBrains Mono',monospace;cursor:pointer}
.guide-hud{position:fixed;top:178px;left:22px;display:flex;gap:12px;align-items:center;width:310px;max-width:calc(100vw - 44px);padding:10px 12px;border-left:2px solid var(--guide-color,#9ebfd0);background:#09100fea;color:#e0eae4;font:11px 'JetBrains Mono',monospace;pointer-events:none;z-index:18;box-sizing:border-box}.guide-hud[hidden]{display:none}.guide-arrow{font-size:28px;display:block;min-width:28px;text-align:center;transform-origin:center}.guide-hud>div{flex:1;min-width:0}.guide-hud strong{display:block;font-size:11px;line-height:1.4}.guide-hud small{display:block;font-size:9px;line-height:1.5;color:#a4b9ac;margin-top:5px}.guide-hud button{pointer-events:auto;align-self:stretch;min-width:32px;border:0;background:transparent;color:#a4b9ac;font-size:22px;cursor:pointer}
@media(max-width:700px),(pointer:coarse){.map-directory{right:14px;bottom:16px;top:auto;transform:none;width:calc(100vw - 28px);max-width:360px;max-height:68dvh;box-sizing:border-box;z-index:35}.map-directory header button,.map-directory nav button{min-height:44px}.guide-hud{top:132px;left:14px;width:calc(100vw - 28px);max-width:none}.guide-hud button{min-width:44px;min-height:44px}.guide-hud strong{font-size:10px}}

/* Real catalogue items respond in the room, with their source a deliberate action. */
.station-panel{position:fixed;left:clamp(16px,4vw,64px);bottom:110px;width:min(540px,calc(100vw - 220px));max-height:55vh;overflow:auto;padding:15px 20px;background:#09120ff2;border-left:2px solid #9fbfab;color:#dce9df;font:12px/1.5 'JetBrains Mono',monospace;box-shadow:0 10px 30px #0006;z-index:26;pointer-events:auto;box-sizing:border-box}.station-panel[hidden]{display:none}.station-panel header{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#8ca697;font-size:9px;letter-spacing:.1em}.station-panel h2{font:700 18px/1.35 'JetBrains Mono',monospace;letter-spacing:.04em;margin:10px 0}.station-panel p{margin:0 0 12px}.station-panel>small{display:block;color:#9ebcad;font-size:9px;line-height:1.6}.station-panel nav{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}.station-panel button,.station-panel a{border:1px solid #4c6e59;border-radius:4px;background:#16271d;color:#d1e5d8;font:10px 'JetBrains Mono',monospace;padding:10px;text-decoration:none;min-height:38px;box-sizing:border-box;cursor:pointer}.station-panel header button{border:0;background:transparent;min-width:34px;min-height:34px;font-size:22px;padding:0}.station-panel button:hover,.station-panel a:hover{background:#2a4332}
@media(max-width:700px),(pointer:coarse){.station-panel{left:14px;right:14px;bottom:284px;width:auto;max-height:calc(100dvh - 420px);min-height:150px;padding:12px 15px}.station-panel h2{font-size:15px}.station-panel p{font-size:11px}.station-panel button,.station-panel a{min-height:44px}.station-panel nav{gap:6px}}
@media(max-height:500px){.station-panel{left:180px;right:128px;bottom:12px;width:auto;max-height:60dvh;min-height:0;padding:10px}.station-panel p{font-size:10px;margin-bottom:5px}.station-panel h2{font-size:13px;margin:5px 0}.station-panel nav{margin-top:7px}.station-panel button,.station-panel a{font-size:9px;padding:7px}}

@media(max-width:700px),(pointer:coarse){body.lab-explore:not(.vtol-in-flight) #toast{top:auto;bottom:176px;left:14px;right:14px;transform:none;max-width:none;width:auto;font-size:10px;padding:9px;box-sizing:border-box}body.lab-explore:not(.vtol-in-flight) #hud:has(#toast:not([hidden])) #prompt{visibility:hidden}}

/* Facility systems keep messages outside the visitor's aiming area. */
#labTelecom{position:absolute;top:88px;left:50%;transform:translateX(-50%);max-width:min(560px,calc(100vw - 38px));padding:10px 16px;border-left:2px solid #b4cabe;background:linear-gradient(90deg,#06100feb,#06100fbb);color:#d3e0d7;font:11px/1.6 monospace;pointer-events:none}
#facilityStatus{position:absolute;top:55px;left:50%;transform:translateX(-50%);padding:6px 12px;background:#210c0de8;border:1px solid #a46e52;color:#f5d2ab;font:10px/1.4 monospace;white-space:nowrap;pointer-events:none}
.station-choices{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.station-choices button{font:10px/1.4 monospace;background:#15231e;color:#d7e2d9;border:1px solid #425c4c;border-radius:3px;padding:8px 10px;min-height:36px;cursor:pointer}.station-choices button[aria-pressed=true]{border-color:#c1d4ab;background:#2d4031}
@media(max-width:700px),(pointer:coarse){#labTelecom{top:100px;font-size:10px;padding:8px 10px;max-width:calc(100vw - 28px);width:340px}#facilityStatus{top:72px;font-size:9px}.station-panel{max-height:calc(100dvh - 400px);overflow:auto}.station-choices button{min-height:44px}}

/* Startup radio stays clear of the touch movement and action controls. */
@media(max-width:700px),(pointer:coarse){
 .youtube-radio{top:clamp(72px,20vh,140px);bottom:auto;left:50%;right:auto;transform:translateX(-50%);width:210px;z-index:20}
 .youtube-radio header{flex-wrap:wrap;gap:5px;padding:6px}
 .youtube-radio header span{flex-basis:100%;font-size:9px}
 .youtube-radio button{min-height:32px}
 .radio-active .guide-hud{z-index:22}
}

/* A readable interior atlas; the live security feeds remain separate views. */
.facility-map{position:fixed;inset:0;z-index:90;box-sizing:border-box;padding:26px 324px 32px 28px;overflow:auto;background:#080e10;color:#d9e8e1;font:12px 'JetBrains Mono',monospace;text-align:left;pointer-events:auto}
.facility-map>header{max-width:1000px;margin:0 auto 22px}.facility-map header small{color:#89bcad;letter-spacing:.13em}.facility-map h1{font-size:clamp(20px,3vw,32px);margin:9px 0}.facility-map header p{color:#91a69d;line-height:1.65}.facility-map .map-legend{font-size:10px}.map-legend span{color:#ffdf83}
.facility-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:1000px;margin:auto}.facility-plans article{border:1px solid #314640;background:#0d1719;padding:14px;min-width:0}.facility-plans article.current-deck{border-color:#b6ac70}.facility-plans h2{font-size:12px;line-height:1.6;color:#bfdfd1;margin:0 0 10px}.facility-plans svg{display:block;width:100%;max-height:380px;background:#070e12}.facility-plans article>p{font-size:10px;color:#96aba1;line-height:1.65}
.plan-deck{fill:#1a3034;stroke:#668e86;stroke-width:.12}.plan-fixture{fill:#294144;stroke:#6c8e88;stroke-width:.08}.plan-stair{fill:#756844;stroke:#e0c687;stroke-width:.12}.plan-tread{fill:none;stroke:#cbb374;stroke-width:.12}.plan-lift{fill:#122e35;stroke:#73dfdc;stroke-width:.22}.plan-lift-label,.plan-private-label{font:1.2px monospace;fill:#a6ddd4;text-anchor:middle}.plan-destination{fill:#a9dfca;stroke:#07110f;stroke-width:.18}.plan-number{font:bold 1.5px monospace;fill:#07110f;text-anchor:middle}.plan-you{fill:#ffdf83;stroke:#201c0b;stroke-width:.2;pointer-events:none}.plan-destinations{display:grid;gap:4px;margin-top:10px}.plan-destinations button{color:#c0d8cc;background:#122326;border:1px solid #2c4946;text-align:left;padding:8px;font:10px 'JetBrains Mono',monospace;cursor:pointer;line-height:1.5}.plan-destinations button:hover,.plan-destinations button:focus-visible{border-color:#bbebd5;background:#204039}
body.map-open .map-directory{z-index:92;right:16px;top:16px;bottom:16px;transform:none;width:280px;max-width:none;max-height:none;box-sizing:border-box}body.map-open #hud>:not(#facilityMap):not(#mapDirectory){visibility:hidden}body.map-open .youtube-radio{visibility:hidden}
@media(max-width:900px){.facility-plans{grid-template-columns:1fr}}
@media(max-width:700px),(pointer:coarse){.facility-map{padding:18px 14px 24px;bottom:46dvh}.facility-map h1{font-size:22px}.facility-map>header{margin-bottom:16px}.facility-plans{gap:14px}.facility-plans svg{max-height:340px}.plan-destinations button{min-height:44px}body.map-open .map-directory{top:54dvh;bottom:0;left:0;right:0;width:100%;padding:10px 14px;max-height:46dvh;border-width:1px 0 0}.map-directory footer button{min-height:44px}}

.facility-plans h3{font:10px 'JetBrains Mono',monospace;color:#91b9aa;margin:18px 0 10px}.facility-plans svg[aria-label^="Surface"]{height:190px}

/* Translucent dotted glass, shared by conversations, tools and menus. */
:root{--matrix-panel:rgba(4,10,9,.72);--matrix-dots:radial-gradient(circle,rgba(162,200,181,.19) .7px,transparent .9px);--matrix-edge:rgba(153,189,169,.48)}
:is(.box.card,#hud .box,.station-panel,.map-directory,.guide-hud,.area-banner,.private-terminal,.site-viewer,.youtube-viewer,.youtube-radio,.lift-panel,.flight-controls,.gadget-tray,#labTelecom,#facilityStatus){background-color:var(--matrix-panel);background-image:var(--matrix-dots);background-size:5px 5px;border-color:var(--matrix-edge);box-shadow:0 10px 32px #0005;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:2px}
.screen.dimbg{background:rgba(2,5,4,.28)}
#hud .talk{padding:14px;box-sizing:border-box;border:1px solid var(--matrix-edge);background-color:var(--matrix-panel);background-image:var(--matrix-dots);background-size:5px 5px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
#hud .talk:has(#talkText:empty){display:none}
:is(.card,.station-panel,.map-directory,.private-terminal,.site-viewer,.youtube-viewer,.lift-panel,.flight-controls) :is(button,.btn,nav a,input,pre,.terminal-output),.plan-destinations button,#infoBody pre{background-color:rgba(10,22,17,.55);background-image:var(--matrix-dots);background-size:5px 5px;border-color:var(--matrix-edge)}
:is(.card,.station-panel,.map-directory,.private-terminal,.site-viewer,.youtube-viewer,.lift-panel) :is(button,.btn,nav a):hover{background-color:rgba(40,66,50,.72)}
.terminal-fact{padding:14px 16px;border:1px dashed var(--matrix-edge);background:rgba(25,48,35,.28);display:grid;gap:9px}.terminal-fact small{color:#b8d6c4;letter-spacing:.1em}.terminal-fact p{line-height:1.7}
@media(prefers-reduced-transparency:reduce){:root{--matrix-panel:rgba(4,10,9,.95)}}

/* Match ratlabs.tech’s dense, faint white-dot glass. */
:root{--matrix-panel:rgba(4,10,9,.56);--matrix-dots:radial-gradient(circle,rgba(255,255,255,.085) .5px,transparent .9px)}
:is(.box.card,#hud .box,#hud .talk,.station-panel,.map-directory,.guide-hud,.area-banner,.private-terminal,.site-viewer,.youtube-viewer,.youtube-radio,.flight-controls,.gadget-tray,#labTelecom,#facilityStatus){background-size:3px 3px;backdrop-filter:blur(4px) saturate(.65) brightness(.85);-webkit-backdrop-filter:blur(4px) saturate(.65) brightness(.85)}
.youtube-platform-mark{display:inline-block;object-fit:contain;flex:0 0 auto;vertical-align:middle}.youtube-viewer h2{display:flex;align-items:center;gap:12px}.youtube-viewer nav .youtube-platform-mark{border-radius:0}

@media(prefers-reduced-transparency:reduce){:root{--matrix-panel:rgba(4,10,9,.95)}}

body:not([data-game-state="play"]) #hud{visibility:hidden}
body:not([data-game-state="play"]) :is(.mobile-controls,.tools-toggle,.area-banner,.guide-hud){display:none!important}
#info,#pause,#lift{z-index:110}
#info:has(.terminal-fact) #infoImg{max-height:110px;background:transparent}
#info:has(.terminal-fact) #infoTitle{font-size:clamp(18px,2vw,24px)}
.lift-choice.selected{background-color:rgba(50,88,65,.4);border-color:#b8ddc5;box-shadow:inset 3px 0 #dcf7e3}

.bunker-transit-choices{display:flex;flex-direction:column;gap:18px;margin:auto;width:min(100%,640px)}.bunker-transit .bunker-transit-choices button{padding:24px 18px;min-height:72px;font:inherit;font-size:clamp(13px,2vw,20px);text-align:left}

.hidden-access{max-width:540px}.hidden-access .terminal-lock{margin:auto;max-width:360px;width:100%;padding:24px}.hidden-access label{display:flex;flex-direction:column;gap:12px}.hidden-access input{width:100%;box-sizing:border-box;min-height:48px}.hidden-access form button{min-height:48px}

.hidden-access .terminal-lock{box-sizing:border-box}.hidden-access header button{min-height:44px}


.lab-conversation{border-top:1px solid #466655;margin-top:22px;padding-top:16px}.lab-transcript{max-height:340px;overflow:auto;padding:8px;background:#07120dcc}.lab-transcript b{color:#a8d9b6}.lab-questions{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}.lab-questions button,.lab-questions a{min-height:44px;padding:10px 14px;border:1px solid #527661;background:#10251b;color:#c4e0ca;font:inherit;cursor:pointer;max-width:100%;overflow-wrap:anywhere}.lab-questions button:focus-visible,.lab-questions a:focus-visible{outline:2px solid #b1e2bf}.lab-questions a{display:flex;align-items:center}#infoBody a{color:#b1e2bf}#infoBody h3{margin-top:24px;font-size:14px}

/* Quiet instrument panels: solid reading surfaces, soft edges, clear hierarchy. */
:is(.box.card,.station-panel,.private-terminal,.site-viewer,.youtube-viewer,.lift-panel,.lift-card,.flight-controls,.map-directory,#hud .talk){
 background:#101b1df5;background-image:none;border:0;outline:0;border-radius:18px;
 box-shadow:0 24px 90px #0009,inset 0 1px #ffffff0c;backdrop-filter:blur(16px);color:#e3ece8;
}
.screen.dimbg{background:#02090bb5;backdrop-filter:blur(5px)}
.card.info{box-sizing:border-box;width:min(850px,94vw);max-height:88dvh;padding:clamp(20px,3vw,38px);gap:22px;font:16px/1.75 system-ui,sans-serif;text-align:left;scrollbar-width:thin;scrollbar-color:#526a61 transparent}
#infoTitle{font:600 clamp(24px,3vw,34px)/1.2 system-ui,sans-serif;letter-spacing:-.025em;color:#f1f6f2}
#infoBody{gap:20px;min-width:0}#infoBody>p,#infoBody>ul,#infoBody>ol{max-width:68ch}
#infoBody h3{font:600 19px/1.4 system-ui,sans-serif;color:#edf5ef;margin:12px 0 0}
#infoBody a{color:#a4e8c0;text-underline-offset:4px}#infoBody pre{background:#081315;border:0;border-radius:10px;color:#b8d2c8;font:13px/1.8 'JetBrains Mono',monospace}
:is(.card,.station-panel,.private-terminal,.site-viewer,.youtube-viewer,.lift-panel,.flight-controls) :is(button,.btn,nav a,input,.terminal-output){background:#213332;background-image:none;border:0;outline:0;border-radius:9px;box-shadow:none;text-shadow:none;color:#dfede6;min-height:44px}
:is(.card,.station-panel,.private-terminal,.site-viewer,.youtube-viewer,.lift-panel,.flight-controls) :is(button,.btn,nav a):hover{background:#314c43;color:#fff}
:is(.card,.station-panel,.private-terminal,.site-viewer,.youtube-viewer,.lift-panel,.flight-controls) :is(button,.btn,nav a,input):focus-visible{outline:2px solid #a4e8c0;outline-offset:3px}
.terminal-fact{border:0;border-radius:12px;background:#192d29;padding:20px;gap:12px}.terminal-fact small{font:11px/1.5 'JetBrains Mono',monospace;letter-spacing:.12em;color:#9ac7ae}
.lab-conversation{border:0;margin:0;padding:20px;border-radius:14px;background:#0a1416}
.lab-transcript{background:transparent;padding:0 4px;max-height:330px;scrollbar-width:thin}.lab-transcript p{margin:0 0 14px!important;padding:14px 16px;border-radius:10px;background:#172726;font:15px/1.75 system-ui,sans-serif}.lab-transcript b{display:block;margin-bottom:6px;font:10px/1.5 'JetBrains Mono',monospace;letter-spacing:.12em;color:#98cbb0}
.lab-questions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px}.lab-questions button,.lab-questions a{background:#243b32;border:0;border-radius:9px;min-height:48px;padding:13px 16px;text-align:left;font:14px/1.5 system-ui,sans-serif;color:#d8eddf}
#hud .talk{padding:20px;line-height:1.7;font:15px/1.7 system-ui,sans-serif}#talkFace{outline:0;border-radius:10px}
.plan-destinations span{display:block;padding:7px 0;color:#becfc5;font:12px/1.5 'JetBrains Mono',monospace}.facility-plans svg{cursor:default;pointer-events:none}.flight-controls{padding:16px;gap:10px}.flight-controls button{border-radius:8px}
@media(max-width:600px){.card.info{padding:20px;font-size:15px;max-height:90dvh}.lab-conversation{padding:12px}.lab-questions{grid-template-columns:1fr}.lab-transcript p{padding:12px}.story-grid{grid-template-columns:1fr}}

.info-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.info-heading .dim{font:11px/1.6 'JetBrains Mono',monospace;letter-spacing:.09em;color:#9cafa5}.info-heading button{flex:none;width:44px;cursor:pointer;font-size:18px}#infoClose{background:#213332}

body.map-open #mapDirectory{left:auto;right:18px;top:18px;bottom:auto;width:auto;height:auto;padding:6px;border-radius:12px;max-height:none}body.map-open #mapDirectory>header,body.map-open #mapDirectory>.map-sections{display:none}body.map-open #mapDirectory footer{padding:0;border:0}body.map-open #mapReturn{min-height:44px;padding:10px 18px;border:0;border-radius:8px;background:#21362f;background-image:none}body.map-open #facilityMap{right:0;bottom:0;padding:30px 5vw;box-sizing:border-box}body.map-open #facilityMap>header{padding-right:170px}.facility-plans article{border:0;border-radius:14px;background:#102021;padding:20px}.facility-plans article.current-deck{outline:1px solid #b4cfaa66}#facilityMap header h1{font-family:system-ui,sans-serif;letter-spacing:-.025em}
@media(max-width:700px){body.map-open #facilityMap{padding:90px 18px 24px}body.map-open #facilityMap>header{padding-right:0}body.map-open #mapDirectory{top:12px;right:12px}.facility-plans article{padding:14px}}

.carrier-views{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);display:flex;gap:8px;padding:8px;background:#10201df2;border-radius:12px;z-index:30}.carrier-views[hidden]{display:none}.carrier-views button{min-height:44px;padding:12px 18px;border:0;border-radius:8px;background:#203b30;color:#d8efdf;font:12px 'JetBrains Mono',monospace;cursor:pointer}.carrier-views button[aria-pressed=true]{background:#547562;color:#fff}@media(max-width:600px){.carrier-views{bottom:92px;max-width:94vw}.carrier-views button{font-size:10px;padding:10px}}

.conversation-speaker{display:flex;align-items:center;gap:20px;padding:16px;background:#182c25;border-radius:14px}.conversation-speaker[hidden]{display:none}.conversation-speaker canvas{width:88px;height:88px;object-fit:cover;border-radius:12px;flex:none}.conversation-speaker small{display:block;font:10px/1.6 'JetBrains Mono',monospace;color:#a1b9aa;letter-spacing:.12em}.conversation-speaker strong{display:block;margin-top:7px;font:600 20px/1.4 system-ui,sans-serif;color:#e9f5ed}@media(max-width:600px){.conversation-speaker{gap:12px;padding:12px}.conversation-speaker canvas{width:68px;height:68px}.conversation-speaker strong{font-size:16px}}

/* Video remains in the world when its channel menu closes. */
.youtube-watch{position:fixed;right:16px;bottom:16px;z-index:85;width:min(360px,calc(100vw - 24px));max-height:calc(100dvh - 16px);overflow:hidden;box-sizing:border-box;background:#071211dc;color:#e2f1e9;border:1px dotted #a1d9bf88;border-radius:10px;box-shadow:0 12px 38px #0008;backdrop-filter:blur(12px);font:11px/1.5 'JetBrains Mono',monospace}
.youtube-watch header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px;touch-action:none;cursor:grab;user-select:none}
.youtube-watch header:active{cursor:grabbing}.youtube-watch header strong{font-size:11px;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}.youtube-watch header>div{display:flex;gap:4px;flex:none}
.youtube-watch button{min-width:36px;min-height:36px;cursor:pointer;color:#d8ede3;background:#213832b8;border:0;border-radius:5px;font:18px system-ui,sans-serif}.youtube-watch button:hover{background:#385c4d}.youtube-watch button:focus-visible{outline:2px solid #bbf4d5;outline-offset:-2px}
.youtube-watch-video{aspect-ratio:16/9;background:#020706;overflow:hidden}.youtube-watch iframe{display:block;width:100%;height:100%;border:0}.youtube-watch p{margin:0;padding:6px 9px;color:#9cbcaf;font-size:9px}
.youtube-watch.expanded{width:min(720px,calc(100vw - 24px),calc((100dvh - 100px)*16/9))}
/* Retain the same iframe, and its playback, when the picture is tucked away. */
.youtube-watch.minimized .youtube-watch-video{height:0;aspect-ratio:auto;visibility:hidden}.youtube-watch.minimized p{display:none}
.youtube-watching #minimap{bottom:300px}
@media(max-width:700px),(pointer:coarse){.youtube-watch{top:72px;bottom:auto;right:12px;width:min(280px,calc(100vw - 24px))}.youtube-watch button{min-width:44px;min-height:44px}.youtube-watch.expanded{width:min(560px,calc(100vw - 24px),calc((100dvh - 210px)*16/9))}.youtube-watching #minimap{bottom:120px}}

/* Clear glass with discrete dotted perimeter pixels. */
:is(.box.card,.station-panel,.private-terminal,.site-viewer,.youtube-viewer,.map-directory,#hud .talk){
 background-color:rgba(5,18,18,.68);
 background-image:radial-gradient(circle,#a2d5bc99 1px,transparent 1.4px),radial-gradient(circle,#a2d5bc99 1px,transparent 1.4px),radial-gradient(circle,#a2d5bc99 1px,transparent 1.4px),radial-gradient(circle,#a2d5bc99 1px,transparent 1.4px),linear-gradient(130deg,#d1ffe812,transparent 55%,#93b9af08);
 background-size:8px 3px,8px 3px,3px 8px,3px 8px,100% 100%;background-position:left top,left bottom,left top,right top,center;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y,no-repeat;
 border:1px solid transparent;border-radius:10px;box-shadow:0 18px 60px #0006;backdrop-filter:blur(12px) saturate(.8);-webkit-backdrop-filter:blur(12px) saturate(.8);
}
.screen.dimbg{background:#02090b30;backdrop-filter:none}
.terminal-fact{background:#29473a55}.lab-conversation{background:#06111155}.lab-transcript p{background:#2a473c55}#infoBody pre{background:#06111177}.conversation-speaker{background:#29473a55}
@media(prefers-reduced-transparency:reduce){:is(.box.card,.station-panel,.private-terminal,.site-viewer,.youtube-viewer,.map-directory,#hud .talk){background-color:#0a1819;backdrop-filter:none}}
/* A destination HUD keeps the beam and surrounding lab in sight. */
#lift.screen{inset:auto;right:24px;top:50%;transform:translateY(-50%);width:min(360px,calc(100vw - 24px));height:auto;padding:0;background:transparent;backdrop-filter:none;pointer-events:none}
#lift .lift-card{width:100%;box-sizing:border-box;max-height:84dvh;gap:12px;padding:18px;pointer-events:auto}
#lift .lift-heading h2{font-size:19px;letter-spacing:.08em;margin:6px 0 0}#lift .lift-heading p{display:none}#lift .lift-online{font-size:9px}#lift .lift-header{font-size:9px}#lift .lift-header button{min-height:36px}
#lift .lift-choices{border:0;gap:7px;overflow:visible}#lift .lift-choice{grid-template-columns:minmax(0,1fr) 52px;gap:10px;min-height:72px;padding:10px 12px;background:#27403955;border:1px dotted #8bb29c55;border-radius:6px}
#lift .lift-choice.selected{background:#4d786855;border-color:#c4edda;box-shadow:none}#lift .lift-beam,#lift .lift-choice small{display:none}#lift .lift-destination{grid-column:1;display:grid;grid-template-columns:60px minmax(0,1fr);gap:10px;align-items:center}#lift .lift-dot-code{width:60px;height:25px;margin:0}#lift .lift-choice b{font-size:11px}#lift .lift-floor-action{font-size:8px}#lift .lift-floor-action span{font-size:7px}#lift .lift-status{font-size:10px;padding:9px;border:0;background:#06141055}#lift .lift-help{font-size:8px;gap:8px;justify-content:space-between}#lift .lift-help span{font-size:8px}
@media(max-width:600px),(pointer:coarse){#lift.screen{right:12px;top:auto;bottom:120px;transform:none}#lift .lift-card{padding:14px;max-height:65dvh}#lift .lift-choice{min-height:64px}}
#updateLab:not([hidden]){background:#c6edda;color:#082319;border:1px dotted #fff;padding:14px 20px;box-shadow:0 0 26px #c6edda33}

#graphicsRecovery{position:fixed;z-index:200;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 48px));box-sizing:border-box;padding:24px;background:#081b18ed;color:#ddf4e7;border:1px dotted #9ad4b5;box-shadow:0 18px 80px #000a;font:14px/1.7 system-ui,sans-serif}#graphicsRecovery[hidden]{display:none}#graphicsRecovery strong{font:11px 'JetBrains Mono',monospace;letter-spacing:.12em}#graphicsRecovery p{margin:18px 0 0}#graphicsRecovery button{margin-top:18px;min-height:44px;padding:10px 18px;background:#284c3d;color:#e8fff1;border:1px dotted #a7dabc;font:12px 'JetBrains Mono',monospace;cursor:pointer}
