@charset "UTF-8";

/* Мягкие цветовые поля из палитры Referense/palette.scss. */
body {
  isolation:isolate;
  background:var(--black);
}
.mesh-background {
  position:fixed;
  inset:0;
  z-index:-1;
  overflow:hidden;
  overflow:clip;
  pointer-events:none;
  contain:strict;
  background:var(--black);
}
.mesh-background::before,.mesh-background::after {
  content:"";
  position:absolute;
  inset:-15vmax;
  background-repeat:no-repeat;
  will-change:transform;
}
.mesh-background::before {
  background-image:
    radial-gradient(ellipse at 24% 24%,#b497d630 0%,#b497d600 43%),
    radial-gradient(ellipse at 83% 22%,#05204acc 0%,#05204a00 51%),
    radial-gradient(ellipse at 62% 88%,#bfacaa16 0%,#bfacaa00 37%);
  animation:mesh-drift-primary 28s ease-in-out infinite alternate;
}
.mesh-background::after {
  background-image:
    radial-gradient(ellipse at 88% 78%,#b497d629 0%,#b497d600 42%),
    radial-gradient(ellipse at 12% 88%,#05204ab8 0%,#05204a00 48%),
    radial-gradient(ellipse at 48% 44%,#e1e2ef0c 0%,#e1e2ef00 32%);
  animation:mesh-drift-secondary 37s ease-in-out -13s infinite alternate;
}
@keyframes mesh-drift-primary {
  0% { transform:translate3d(-5%,-3%,0) rotate(-6deg) scale(1.02); }
  50% { transform:translate3d(4%,4%,0) rotate(3deg) scale(1.1); }
  100% { transform:translate3d(6%,-4%,0) rotate(8deg) scale(1.04); }
}
@keyframes mesh-drift-secondary {
  0% { transform:translate3d(5%,3%,0) rotate(5deg) scale(1.08); opacity:.7; }
  50% { transform:translate3d(-5%,-4%,0) rotate(-4deg) scale(1.02); opacity:1; }
  100% { transform:translate3d(-3%,6%,0) rotate(-9deg) scale(1.12); opacity:.8; }
}
:root[data-theme="light"] .mesh-background {
  background:#f5f5f5;
  animation:none;
}
:root[data-theme="light"] .mesh-background::before,
:root[data-theme="light"] .mesh-background::after { display:none; }
@media (prefers-reduced-motion:reduce) {
  :root:not([data-mesh-motion="on"]) .mesh-background,
  :root:not([data-mesh-motion="on"]) .mesh-background::before,
  :root:not([data-mesh-motion="on"]) .mesh-background::after {
    animation:none;
    will-change:auto;
  }
}
:root[data-mesh-motion="off"] .mesh-background,
:root[data-mesh-motion="off"] .mesh-background::before,
:root[data-mesh-motion="off"] .mesh-background::after {
  animation:none;
  will-change:auto;
}
:root[data-mesh-paused] .mesh-background,
:root[data-mesh-paused] .mesh-background::before,
:root[data-mesh-paused] .mesh-background::after { animation-play-state:paused; }
@media (forced-colors:active) {
  .mesh-background { display:none; }
}
