/* Motion layer (DESIGN.md section 7). Only transform and opacity animate; softness comes from gradient stops, never blur. */

.fx-ambient {
  --fx-a1: rgba(0, 129, 252, 0.34);
  --fx-a2: rgba(0, 129, 252, 0.08);
  --fx-b1: rgba(80, 170, 255, 0.30);
  --fx-b2: rgba(80, 170, 255, 0.07);
  --fx-c1: rgba(0, 129, 252, 0.16);
  --fx-au1: rgba(40, 140, 255, 0.22);
  --fx-au2: rgba(120, 200, 255, 0.08);
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 0;
  pointer-events: none;
}
[data-theme="light"] .fx-ambient:not(.art-scene .fx-ambient) {
  --fx-a1: rgba(0, 129, 252, 0.18);
  --fx-a2: rgba(0, 129, 252, 0.05);
  --fx-b1: rgba(80, 170, 255, 0.16);
  --fx-b2: rgba(80, 170, 255, 0.04);
  --fx-c1: rgba(0, 129, 252, 0.09);
  --fx-au1: rgba(40, 140, 255, 0.12);
  --fx-au2: rgba(120, 200, 255, 0.05);
}

/* Glow ellipses and drifting fields are retired (docs/audit/harmony-critique.md round 1): the paintings
   are the only soft colour on the site, and flat sections stay flat. The markup keeps the layers so
   pages need no edit; they render nothing. */
.fx-aurora,
.fx-glow,
.fx-field { display: none; }

.fx-noise {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.035;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
[data-theme="light"] .fx-noise { opacity: 0.025; }

.fx-spot {
  position: fixed;
  top: 0;
  left: 0;
  width: 560px;
  height: 560px;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(0, 129, 252, 0.14), transparent 70%);
  mix-blend-mode: screen;
  pointer-events: none;
  z-index: 1;
  opacity: 0;
  transition: opacity 0.4s ease;
}
.fx-spot.is-on { opacity: 1; will-change: transform; }
[data-theme="light"] .fx-spot {
  background: radial-gradient(closest-side, rgba(0, 129, 252, 0.06), transparent 70%);
  mix-blend-mode: normal;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition-property: color, background-color, border-color, outline-color, fill, stroke !important;
  }
  .fx-spot { display: none; }
}

/* No-JS mobile nav: the burger needs a script to open the sheet, so without scripting the sheet's links are shown in
   flow under the bar. A media query (not html:not(.js)) avoids a flash of the open sheet before the script runs. */
@media (scripting: none) and (max-width: 1023px) {
  .nav { position: relative; height: auto; }
  .nav__inner { height: var(--nav-h); }
  .nav__burger { display: none; }
  .nav__sheet { display: block; position: static; max-height: none; padding-block: var(--s-2) var(--s-4); box-shadow: none; }
}
