/* Lifted out of index.html so the page can carry a strict Content-Security-
   Policy with no 'unsafe-inline'. See server/insects-server.py. */
  /* Nothing to lay out: one canvas, edge to edge, forever. The CRT feel is
     done in the canvas (main.js) and not here, so that Wallpaper Engine and
     the browser get pixel-identical output -- a CSS filter would not survive
     a screenshot and would cost a compositor pass on every frame. */
  html, body { margin: 0; padding: 0; height: 100%; background: #0a0c08; overflow: hidden; }
  body { color-scheme: dark; }
  canvas { display: block; width: 100vw; height: 100vh; touch-action: none; }
  /* This runs unattended on a desktop and on a phone browser; no cursor, no
     selection, no long-press menu, no rubber-band scroll. */
  * { user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
  body.wp { cursor: none; }
  #boot { position: fixed; inset: 0; display: grid; place-items: center;
          font: 12px ui-monospace, Consolas, monospace; color: #4a5a3a;
          letter-spacing: .3em; text-transform: uppercase; pointer-events: none;
          transition: opacity .6s ease; }
  #boot.gone { opacity: 0; }

/* the noscript notice. A `style=` ATTRIBUTE is inline style as far as CSP is
   concerned and would need 'unsafe-inline' just as much as a <style> block,
   which is the whole thing we are avoiding. */
#nojs { position: fixed; inset: 0; display: grid; place-items: center;
        color: #5a6a4a; font: 14px ui-monospace, Consolas, monospace; }
