:root {
  --fade: 1400ms;
  --hud: #c9d2c8;
}

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

html, body {
  width: 100%;
  height: 100%;
  background: #0b0d0c;
  overflow: hidden;
  cursor: none;
  font-family: "IBM Plex Mono", "Consolas", "Courier New", monospace;
}

#view {
  position: fixed;
  inset: 0;
}

.plate {
  position: absolute;
  inset: 0;
  background-color: #121412;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity var(--fade) ease;
}

.plate.visible { opacity: 1; }

/* Sensor glass: grain + slight vignette */
#glass {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 2;
  background:
    radial-gradient(ellipse at center, transparent 55%, rgba(0, 0, 0, 0.35) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
  opacity: 0.45;
}

#hud {
  position: fixed;
  left: 2.2vw;
  right: 2.2vw;
  bottom: 2.4vh;
  z-index: 3;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  color: var(--hud);
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.8);
  letter-spacing: 0.12em;
  font-size: clamp(11px, 1.15vw, 16px);
  opacity: 0.82;
  user-select: none;
}

#hud-left { display: flex; flex-direction: column; gap: 0.35em; }
#hud-time { font-size: 1.35em; letter-spacing: 0.18em; }
#hud-status { opacity: 0.75; }
#hud-meta { opacity: 0.65; text-align: right; max-width: 55vw; }
