/* Palette (from Nick's colour ref) + original drifting wave-blob background with grain. */
:root {
  --w-violet: #7B3FE4; --w-violet-d: #5A23B8; --w-magenta: #B58CFF; --w-magenta-d: #7B3FE4;
  --w-cyan: #6FCF1F; --w-cyan-d: #3D6E0B; --w-surface: #F2F2F4; --w-ink: #0B0612;
  --w-grad: linear-gradient(120deg, var(--w-violet) 0%, var(--w-magenta) 55%, var(--w-cyan) 120%);
}
body.noir { --pt-grad-pp: linear-gradient(120deg, #5A23B8, #B58CFF); --neon: #7B3FE4; --accent2: #B58CFF; --bd-teal: #3D6E0B; --bd-teal-soft: #E9F9D2; }
html:has(body.customer.cx) { background: var(--w-surface); }
body.customer.cx { background: transparent !important; }

.exz-waves { pointer-events: none; overflow: hidden; z-index: -1; contain: strict; }
body.customer .exz-waves { position: fixed; inset: 0; }
body.noir .nx-main { isolation: isolate; }
body.noir .nx-main > .exz-waves { position: sticky; top: 0; display: block; width: 100%; height: 100dvh; margin-bottom: -100dvh; border-radius: inherit; }
.exz-waves i { position: absolute; display: block; border-radius: 50%; will-change: transform; opacity: var(--o, .5); }
.exz-waves .b1 { width: 85vmax; height: 55vmax; left: -25vmax; top: -18vmax; background: radial-gradient(closest-side, rgba(181,140,255,.85), rgba(181,140,255,0)); --o: .42; animation: exz-w1 34s ease-in-out infinite alternate; }
.exz-waves .b2 { width: 80vmax; height: 60vmax; right: -28vmax; top: 4vmax; background: radial-gradient(closest-side, rgba(123,63,228,.9), rgba(123,63,228,0)); --o: .40; animation: exz-w2 41s ease-in-out infinite alternate; }
.exz-waves .b3 { width: 90vmax; height: 50vmax; left: -10vmax; bottom: -26vmax; background: radial-gradient(closest-side, rgba(111,207,31,.85), rgba(111,207,31,0)); --o: .36; animation: exz-w3 47s ease-in-out infinite alternate; }
.exz-waves .b4 { width: 60vmax; height: 26vmax; left: 20vmax; top: 30vh; background: radial-gradient(closest-side, rgba(255,255,255,.95), rgba(255,255,255,0)); --o: .7; animation: exz-w4 29s ease-in-out infinite alternate; }
.exz-waves .b5 { width: 55vmax; height: 30vmax; right: -8vmax; bottom: -6vmax; background: radial-gradient(closest-side, rgba(181,140,255,.7), rgba(181,140,255,0)); --o: .28; animation: exz-w5 38s ease-in-out infinite alternate; }
.exz-waves::after { content: ""; position: absolute; inset: -50%; opacity: .085; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); }
@keyframes exz-w1 { to { transform: translate(18vw, 10vh) rotate(18deg) scale(1.12); } }
@keyframes exz-w2 { to { transform: translate(-22vw, 14vh) rotate(-22deg) scale(0.92); } }
@keyframes exz-w3 { to { transform: translate(14vw, -16vh) rotate(14deg) scale(1.1); } }
@keyframes exz-w4 { to { transform: translate(-18vw, 18vh) rotate(-28deg) scale(1.2); } }
@keyframes exz-w5 { to { transform: translate(-16vw, -12vh) rotate(20deg) scale(1.15); } }
@media (prefers-reduced-motion: reduce) { .exz-waves i { animation: none !important; } }

/* gradient accents */
body.customer.cx .cx-staff-btn { background: linear-gradient(120deg, #5A23B8 0%, #7B3FE4 40%, #B58CFF 85%, #6FCF1F 140%); background-size: 160% 100%; animation: exz-gshift 9s ease-in-out infinite alternate; }
@keyframes exz-gshift { to { background-position: 100% 0; } }
@media (prefers-reduced-motion: reduce) { body.customer.cx .cx-staff-btn { animation: none; } }
body.noir .bx-head .nx-hero-title em, body.noir .nx-hero-title em { background: linear-gradient(110deg, #7B3FE4, #B58CFF 60%, #6FCF1F) !important; -webkit-background-clip: text !important; background-clip: text !important; }
body.customer.cx .site-nav .nav-links a[aria-current="page"]::after, body.noir .tab.active::after, body.noir .nx-home-tab.active::after { background: linear-gradient(90deg, #6FCF1F, #7B3FE4, #B58CFF, #6FCF1F); background-size: 300% 100%; }
.exz-cur-dot { background: #9BE22D; box-shadow: 0 0 10px 3px rgba(111,207,31,.75), 0 0 22px 6px rgba(181,140,255,.38); }
.exz-cur-ring { border-color: rgba(181,140,255,.8); }
.exz-cur-ring.is-link { border-color: rgba(111,207,31,.95); background: rgba(123,63,228,.08); }
/* light surfaces sit on the waves; keep cards solid for readability */
body.customer.cx .site-nav { background: rgba(255,255,255,.82) !important; }
/* hero video: keep the top of the frame (bong head) in view at 21:9 / 16:9 */
.exz-hero-video video, body.noir .nx-hero-video video, body.noir .bx-video video { object-position: 50% 0% !important; }
