*{box-sizing:border-box}body{margin:0;background:#081323;color:#e8f5ff;font:14px system-ui,sans-serif;overflow:hidden}#world{display:block;width:100vw;height:100vh;touch-action:none}header{position:fixed;top:0;left:0;width:100%;display:flex;justify-content:space-between;align-items:center;padding:18px 24px;background:linear-gradient(#071627df,transparent);pointer-events:none}header>*{pointer-events:auto}header div{font-weight:800;letter-spacing:3px}header span{font-weight:400;font-size:10px;display:block;letter-spacing:4px;color:#74deee}button,a{color:inherit;background:#102941e8;border:1px solid #3a627c;border-radius:8px;padding:10px 15px;font:inherit;text-decoration:none;cursor:pointer}button:hover,a:hover{background:#285271}button:focus-visible,a:focus-visible{outline:2px solid #75ffe1;outline-offset:3px}#crosshair{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:.7}#prompt{position:fixed;top:55%;width:100%;text-align:center;pointer-events:none;text-shadow:0 2px 5px black}#intro{position:fixed;inset:0;background:#071525b8;display:grid;place-items:center;z-index:5;backdrop-filter:blur(7px)}#intro[hidden]{display:none}.card{max-width:540px;padding:38px;background:#10243aec;border:1px solid #3c6477;border-radius:22px;box-shadow:0 20px 80px #0008}.card small{color:#80fbd7;letter-spacing:2px}h1{font-size:44px;line-height:1.1;margin:18px 0}p{line-height:1.6;color:#b2c9dc}#start{background:#8ff1ce;color:#092426;font-weight:800;width:100%;margin:12px 0}.note{font-size:12px}aside{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);width:min(670px,96vw);background:#0a1d30e8;border:1px solid #36566d;border-radius:14px;padding:14px;backdrop-filter:blur(10px)}.status{display:flex;justify-content:space-between;font-size:11px;letter-spacing:2px;margin-bottom:10px;color:#91f0d9}#materials{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}#materials button{padding:10px 5px;font-size:12px;border-top:3px solid var(--color)}.actions{display:flex;gap:6px;margin-top:9px}.actions button{font-size:11px;padding:7px 12px}#message{font-size:11px;margin:8px 0 0}#move{position:fixed;left:18px;bottom:215px;display:none;text-align:center;touch-action:none}#move button{width:44px;height:44px;padding:0;margin:2px}@media(pointer:coarse){#move{display:block}}@media(max-width:650px){header{padding:12px}header div{font-size:12px;letter-spacing:1px}header span{display:none}header a,header button{font-size:11px;padding:8px}.card{margin:15px;padding:25px}h1{font-size:34px}#materials{grid-template-columns:repeat(3,1fr)}aside{bottom:8px;padding:10px}.actions button{padding:6px 8px}}

#intro{overflow:auto;padding:16px}.card{max-height:calc(100dvh - 32px);overflow:auto}#roomPicker{border:0;padding:0;margin:18px 0}#roomPicker legend{font-weight:700;margin-bottom:10px}#roomChoices{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}#roomChoices button{padding:10px 6px;font-size:12px}#roomChoices button[aria-pressed="true"]{background:#8ff1ce;color:#092426;border-color:#8ff1ce}#roomChoiceStatus{font-size:12px;margin:8px 0}button:disabled{opacity:.45;cursor:not-allowed}

#roomChoices button{min-height:48px;touch-action:manipulation}#start[hidden]{display:none}.card h1{font-size:34px}.card{padding:28px}#roomChoiceStatus{min-height:38px}

header .view-controls{display:flex;gap:6px;letter-spacing:normal}header .view-controls button{font-size:11px}

#networkStatus{position:fixed;top:72px;left:24px;color:#8ff1ce;font-size:12px;pointer-events:none;text-shadow:0 2px 4px #000}

#phoneNotice{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:#081323;overflow:auto}#phoneNotice[hidden],#world[hidden],#move[hidden],aside[hidden]{display:none}#phoneNotice .card{max-width:520px}#phoneNotice h1{font-size:30px}#phoneNotice a{display:inline-block;margin-top:14px}

/* Laboratory terminal: reserve the lower viewport instead of covering the experiment. */
[hidden]{display:none!important}
#terminal{left:0;bottom:0;transform:none;width:100%;border-radius:16px 16px 0 0;padding:0;background:#091822;backdrop-filter:none;border:1px solid #35505e;box-shadow:0 -10px 45px #0005;z-index:3}
.terminal-heading{display:flex;align-items:center;gap:18px;padding:10px 20px;border-bottom:1px solid #264551;background:#10232d;border-radius:16px 16px 0 0}
.terminal-heading>div{display:flex;gap:14px;align-items:center}.eyebrow{font-size:10px;letter-spacing:2px;color:#70b2c2}.terminal-heading strong{font-size:14px;font-weight:600}#terminalMode{margin-left:auto;font-size:10px;letter-spacing:1.5px;color:#95f5d3}#exitTerminal{font-size:12px;padding:7px 10px}kbd{font:11px system-ui;border:1px solid #41616e;padding:1px 4px;border-radius:3px;margin-left:5px}
.terminal-body{display:grid;grid-template-columns:minmax(200px,270px) minmax(280px,1fr) 180px;gap:22px;padding:14px 20px;max-width:1250px;margin:auto}.control-caption{display:flex;justify-content:space-between;gap:8px;font-size:10px;letter-spacing:1.6px;color:#8daeba;margin-bottom:8px}#selectedMaterial{color:#91f0d9}#floorMap{display:block;width:100%;height:166px;border:1px solid #3c6571;border-radius:5px;touch-action:none;cursor:crosshair}#floorMap:focus-visible{outline:2px solid #91f0d9;outline-offset:3px}#floorMap[aria-disabled=true]{opacity:.55;cursor:not-allowed}.entrance{font-size:9px;letter-spacing:1.5px;text-align:center;padding-top:5px;color:#a1c8d1}
#terminal #materials{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}#terminal #materials button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:73px;padding:9px 3px;background:#102631;border:1px solid #345362;border-radius:9px;font-size:11px}#materials svg{width:25px;height:25px;color:var(--material-color)}#terminal #materials button[aria-pressed=true]{border-color:#95f5d3;background:#1c3e44;box-shadow:inset 0 0 16px #80ffdb12}#terminal #materials button:hover{background:#20404e}
#pourSettings{display:flex;gap:22px;margin-top:12px}#pourSettings label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;font-size:11px;flex:1}#pourSettings input{width:100%;min-width:45px;accent-color:#93efd7}#pourSettings output{font-size:10px;color:#96e2d0;min-width:39px}#interactionHint{font-size:11px;margin:10px 0 0;color:#c2d7e0}#terminal #message{color:#ffce91;min-height:16px;font-size:11px;margin:5px 0 0}
.experiment-control{display:flex;flex-direction:column;gap:6px}.experiment-control .control-caption{margin-bottom:0}.experiment-control>button{padding:6px;font-size:11px}.experiment-control #capacity{font-size:10px;color:#9eb9c3}.camera-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}.camera-actions button{padding:5px 6px;flex:1;font-size:11px;white-space:nowrap}.camera-hint{font-size:10px;color:#9eb9c3}#clearConfirm{padding:6px;background:#34282c;border:1px solid #98636b;border-radius:6px;font-size:11px}#clearConfirm button{padding:4px 6px;font-size:11px;margin-top:4px}
#useTerminal{position:fixed;left:50%;top:58%;transform:translateX(-50%);border-color:#8feccc;background:#102f35;z-index:2}#walkingHint{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);font-size:12px;color:#c4e2eb;text-shadow:0 2px 4px #000;pointer-events:none;text-align:center}body.terminal-open #crosshair,body.terminal-open #move,body.terminal-open #walkingHint{display:none}body.terminal-open #networkStatus{top:67px}body.terminal-open header{padding-top:12px}#move{bottom:65px}
@media(max-width:900px){.terminal-body{grid-template-columns:200px minmax(240px,1fr) 145px;gap:12px;padding:10px 12px}.eyebrow{display:none}#terminal #materials{gap:3px}#terminal #materials button{font-size:10px}#pourSettings{gap:8px;flex-wrap:wrap}#pourSettings label{min-width:160px}.terminal-heading{padding:8px 12px}}
@media(max-width:700px){.terminal-body{grid-template-columns:150px 1fr;gap:10px}#floorMap{height:145px}.experiment-control{grid-column:1/-1;flex-direction:row;align-items:center;flex-wrap:wrap}.experiment-control .control-caption,.camera-hint{display:none}.terminal-heading{gap:8px}#terminalMode{font-size:9px;letter-spacing:0}.terminal-heading strong{font-size:12px}#terminal #materials{grid-template-columns:repeat(3,1fr)}#terminal #materials button{min-height:45px;flex-direction:row;padding:5px}#materials svg{width:18px;height:18px}#pourSettings{margin-top:5px}#interactionHint{font-size:10px;margin-top:5px}.entrance{font-size:8px}.camera-actions{margin:0}#terminal #message:empty{display:none}}
@media(pointer:coarse){#terminal button{min-height:38px}#terminal input{min-height:28px}}

.camera-actions button[aria-pressed="true"]{border-color:#95f5d3;background:#1c3e44;color:#baffeb}

.lava-quality{display:flex;align-items:center;gap:5px;margin-top:8px;color:#93aeb9;font-size:10px}.lava-quality span{margin-right:3px}.lava-quality button{padding:4px 9px;font-size:10px;background:#102631}.lava-quality button[aria-pressed=true]{border-color:#ffb56c;color:#ffcb99;background:#34251e}

.reaction-readout{font-size:10px;line-height:1.45;color:#a9c7d1;margin:5px 0 0;min-height:15px}#capacity{line-height:1.5}

.studio-extras{font-size:11px;color:#afcad4;margin-top:7px}.studio-extras summary{cursor:pointer;padding:5px 0}.audio-controls,.preset-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:6px}.audio-controls label{display:flex;align-items:center;gap:7px}.audio-controls input{width:100px}.studio-extras button{padding:6px 9px;font-size:11px}#floorProbe{min-height:28px;font-size:10px} .terminal-body{max-height:60vh;overflow:auto}
