/* build 84efa6d · main · 2026-09-06T09:14:24Z · 09d6fe4e */
/* Kiosk reset. Narrower than a general-purpose reset because the target is a
   locked-down touchscreen with no keyboard, no mouse and no scrolling. */

*, *::before, *::after { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  height: 100%;
  overflow: hidden;              /* a kiosk must never scroll */
  background: #000;
  color: #fff;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

/* Everything a stray palm or a curious child can do to a touchscreen. */
* {
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;   /* no long-press "save image" sheet */
  -webkit-user-select: none;
  user-select: none;
  touch-action: manipulation;    /* kills double-tap zoom */
  overscroll-behavior: none;     /* kills pull-to-refresh and rubber-banding */
}

img { display: block; -webkit-user-drag: none; }

button {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}

[hidden] { display: none !important; }

/* Focus is invisible on a touchscreen but essential when someone drives the
   kiosk from a keyboard during setup or testing. */
:focus-visible { outline: 3px solid #4da3ff; outline-offset: 3px; }

.fault {
  position: fixed;
  inset: 0;
  display: grid;
  place-content: center;
  gap: .5rem;
  padding: 2rem;
  text-align: center;
  background: #1a1a1a;
}
.fault h1 { font-size: 1.5rem; font-weight: 600; margin: 0; }
.fault p  { margin: 0; color: #b0b0b0; font-family: ui-monospace, monospace; font-size: .95rem; }
