/* CHIKARA Gamazine overlay and mesh utilities (Standards 3, 20.4). Pairs with js/gamazine.js, which paints the grain tile once. */
:root { --gz-opacity: .36; --mesh-paint: linear-gradient(135deg, #00E676 0%, #FFD600 33%, #FF1744 66%, #00E5FF 100%);
  --mesh-dark: linear-gradient(135deg, #14082a, #5a0f1f, #6b2a0a, #6b4a10, #3a4a15, #1a3a25, #0e3a48, #1a2456, #3a1a56, #14082a); }
html[data-mode="dark"] { --gz-opacity: .2; }
html.gz-on body::after { content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 9990; background-image: var(--gz-grain); background-size: 320px 320px; background-repeat: repeat; mix-blend-mode: overlay; opacity: var(--gz-opacity); }
html[data-gfx="lite"] body::after { display: none !important; }
@media print { html.gz-on body::after { display: none !important; } }
/* Text-free accents only (3.9). Before the tile is ready they show the flat spectrum, then the grained one. */
.gamazine-bar { height: 3px; border-radius: 999px; background: var(--mesh-paint); background-image: var(--gz-mesh, var(--mesh-paint)); background-size: 100% 100%; }
.gamazine-dark { background: var(--mesh-dark); background-image: var(--gz-mesh-dark, var(--mesh-dark)); background-size: cover; color: #fff; }
.gamazine { background: var(--mesh-paint); filter: url(#gamazine-grain); }   /* static, paint-once surfaces only (3.6) */
