/* The one background of the pages outside the workspace (the owner's package v8, semantic-atmosphere.js): the landing page, the Guide, the Journey,
   sign-in, sign-up and the legal pages. Fixed to the window, behind everything, takes no clicks. No selector reaches into the content.
   The soft gradients on the canvas itself are what shows when no script runs or WebGL cannot draw. */
body:has(>.semantic-atmosphere){isolation:isolate;background-image:none}
.space-bg.semantic-atmosphere{
  position:fixed;inset:0;width:100%;height:100%;z-index:-1;
  display:block;pointer-events:none;opacity:.9;transform:translateZ(0);
  background:radial-gradient(ellipse 72% 44% at 88% 25%,rgba(103,116,210,.11),transparent 80%),
             radial-gradient(ellipse 52% 64% at 10% 86%,rgba(48,166,155,.07),transparent 82%);
}
:root[data-theme=dark] .space-bg.semantic-atmosphere{
  opacity:.36;
  background:radial-gradient(ellipse 72% 50% at 83% 24%,rgba(108,100,210,.20),transparent 82%),
             radial-gradient(ellipse 60% 50% at 13% 88%,rgba(21,112,120,.11),transparent 80%);
}
/* How strong it is is set here and nowhere else: one opacity per theme and per engine (the Canvas picture is the stronger one). The rule for these numbers:
   every text colour that stands straight on the background keeps 4.5:1 or more against every pixel of it (docs/CONTRACT.md, Visual rules). */
.space-bg.semantic-atmosphere[data-engine=canvas-silk]{opacity:.42}
:root[data-theme=dark] .space-bg.semantic-atmosphere[data-engine=canvas-silk]{opacity:.15}
/* sign-in and sign-up, light theme: the quiet, the error and the success colour have 4.99, 4.76 and 4.53:1 on the plain page already, so nothing may lie
   behind them. The picture is not shown there. */
:root:not([data-theme=dark]) body:has(>main.narrow)>.space-bg.semantic-atmosphere{opacity:0}
