/* Keep the body background inside its blend group instead of propagating it to the root canvas. */
html { background:var(--niwa-site-background); }
body { isolation:isolate; }
/* One stationary grain layer; a separate low-opacity fluid field follows the pointer. */
.niwa-grain, .niwa-fluid { position:fixed; inset:0; width:100%; height:100%; pointer-events:none; user-select:none; }
.niwa-grain { z-index:6; background:url("../../public/images/niwa-grain.png") repeat; background-size:128px 128px; mix-blend-mode:normal; opacity:.045; }
.niwa-fluid { z-index:101; mix-blend-mode:plus-lighter; filter:blur(7px); }
.niwa-motion-paused .niwa-fluid { visibility:hidden; }
@media (prefers-reduced-motion:reduce), (hover:none), (pointer:coarse) { .niwa-fluid { display:none; } }
@media print { .niwa-grain, .niwa-fluid { display:none; } }

/* One shared finish over both text and its cover; CTA surfaces stay clean. */
.niwa-button { position:relative; z-index:7; }
.niwa-hero-scroll > .pt-hero__copy { z-index:7; }
