/* Ambient drift background layers.

   #ambient paints a handful of very large, very soft grey fields drifting on
   long incommensurate cycles, plus a cursor-tracked light lift. #grain is a
   separate static tiled overlay, pregenerated once and never redrawn, that
   keeps the fields from reading as flat digital smoke. Alpha only: no colour,
   no additive blending, matte throughout.

   Both layers sit at z-index 0 and are pointer-transparent; the last rule
   lifts every other top-level element above them.

   SCOPING: these are built for a near-black ground. The host site must hide
   them on its light theme, e.g.

     :root[data-theme="light"] #ambient,
     :root[data-theme="light"] #grain { display: none; }
*/
#ambient{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
#grain{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;background-repeat:repeat}
/* Stacking, hub-specific: the generic lift-everything rule is not usable here —
   its :not(#id) terms carry id-level specificity and would demote the fixed
   .topbar (z-index:100) to position:relative (measured breaking sticky/fixed
   chrome on five sibling sites). Only the unpositioned top-level containers
   need lifting above the z-index:0 canvas. */
body>main,body>footer{position:relative;z-index:1}
