psyBrowser blank-slate watermark
================================

The application icon drained of colour and turned down until it is nearly
the background - what psyBrowser shows in the content area when a tab has
nothing to show. Chrome's offline dinosaur is the same idea, including the
part that matters most: it is pixel art, and deliberately so.

The Windows build implements this in Ui/BlankSlate.cs. Everything below is
that treatment, so the two builds match.

The recipe
----------
Ground        RGB 20, 20, 20. Hard-coded, not themed.
Source        the 32x32 icon frame. NOT the 256 master - see below.
Colour        luminance into all three channels, then multiplied by 0.45:
                  lum = 0.299*R + 0.587*G + 0.114*B
                  out = lum * 0.45   into R, G and B alike
              Alpha is left ALONE, so the transparent ground stays
              transparent and the antialiased edges still soften against
              whatever is behind them.
Size          the mark occupies 0.65 of the shorter edge of the content
              area, rounded DOWN to a whole multiple of 32.
Scaling       nearest-neighbour, integer scale only.
Too small     if the scale rounds below 1, draw nothing. A mark under 1:1
              is a smudge, and a smudge is worse than an empty ground.

Applied to the icon's cyan, 0,255,255 becomes 80,80,80. The black outline
stays black, so the mark reads as a light body with an outline DARKER than
the ground - that contrast in both directions is what keeps it visible
without being loud.

Why 32x32 and not the 256 master
--------------------------------
The chunkiness is the icon's real resolution, not an effect applied to a
larger image. That is the whole look, and it is why the resolution ceiling
noted in the parent directory's README does not apply here: nothing is
being upscaled smoothly, so nothing is soft. Blow up the 32 with
nearest-neighbour and it stays crisp at any size.

Integer scale and nearest-neighbour, and it needs both. Interpolating
smooths the grid away, which is the whole point lost. A fractional scale
keeps the grid but makes some source pixels a row wider than their
neighbours, which reads as a rendering fault rather than as pixel art.

Files
-----
  psyBrowser-watermark-32.png    The one to use. 32x32, treatment already
                                 baked in, ready to scale up.
  psyBrowser-watermark-256.png   The same treatment on the 256 master, for
                                 a smooth watermark instead of a pixel one.
                                 Provided as an option, not a recommendation
                                 - it does not match the Windows build.
  preview-pixel.png              1000x700 of exactly what the recipe above
                                 produces, ground included. Not an asset;
                                 it is there to be looked at.

Putting things in front of it
-----------------------------
It is drawn as a background layer with content composited over it, not as
a replacement for the content view. On Windows the slate is a sibling of
the browser view in the same container and z-order settles which is on top,
because hiding a live web view for a decorative reason costs a focus jump
and a show/hide cycle on the engine. Whatever the Mac equivalent is, the
principle holds: the watermark goes behind, the web view stays alive.

0.45 is tuned for a 20,20,20 ground. On a different ground, retune it -
the number is a ratio against the background, not a constant worth
preserving.
