/* ivy — the client is just a screen: a centered canvas that keeps the VM's
 * aspect ratio (side/top/bottom bars appear around it as needed) plus two
 * invisible inputs for mobile keyboards. All UI is painted on the canvas. */

* { margin: 0; padding: 0; box-sizing: border-box; }

html, body {
  height: 100%;
  background: #000;
  overflow: hidden;
  overscroll-behavior: none;
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  font-family: 'Google Sans', 'DM Sans', Roboto, system-ui, sans-serif;
}

body {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* the device screen — JS sizes it to fit while preserving the VM aspect */
#screen {
  display: block;
  background: #000;
  outline: none;
  cursor: default;
  touch-action: none;
}

/* powered off — the VM halts the canvas and all CSS with it */
html.halted * { animation: none !important; transition: none !important; }
html.halted #omni, html.halted #kbd { display: none !important; }

/* invisible keyboard bridges */
#omni, #kbd {
  position: fixed;
  top: 0;
  left: 50%;
  width: 10px;
  height: 10px;
  opacity: 0;
  border: 0;
  background: transparent;
  pointer-events: none;
  z-index: -1;
}
