/* Valor Cloud — opt-in third theme. Source: ValorCloud/brand.
   Decorative layer only: no change to content/controls, no assets or runtime dependency.
   Place an aria-hidden .valor-atmosphere with three spans behind content;
   .site-atmosphere is the existing valor.pro adapter. Host body needs isolation:isolate. */
:root[data-theme='valor'] {
  color-scheme: light;
  --valor-cloud-base: #f3f8fb;
  --valor-cloud-blue: rgb(26 141 207 / 18%);
  --valor-cloud-green: rgb(32 169 140 / 14%);
  --valor-cloud-gold: rgb(225 172 67 / 10%);
  --valor-cloud-mauve: rgb(162 135 194 / 8%);
}
:root[data-theme='valor'] body { isolation: isolate; background: var(--valor-cloud-base); }
.valor-atmosphere { display: none; }
[data-theme='valor'] :is(.valor-atmosphere, .site-atmosphere) {
  display: block; position: fixed; z-index: -1; inset: 0;
  overflow: hidden; pointer-events: none; contain: strict;
  background: var(--valor-cloud-base);
}
/* Broad, smooth colour falloff replaces fine contours and grain.
   No animated blur/filter or raster texture: gradients are painted once. */
html[data-theme='valor'] :is(.valor-atmosphere, .site-atmosphere)::before {
  content: ''; position: absolute; z-index: 1; inset: -10%;
  background: radial-gradient(ellipse at 72% 28%, var(--valor-cloud-mauve), transparent 68%),
    radial-gradient(ellipse at 32% 58%, rgb(255 255 255 / 42%), transparent 74%);
  -webkit-mask: none; mask: none; transform: none; animation: none;
}
[data-theme='valor'] :is(.valor-atmosphere, .site-atmosphere)::after { content: none; }
[data-theme='valor'] :is(.valor-atmosphere, .site-atmosphere) > span {
  position: absolute; width: min(100vw, 1400px); aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(ellipse, var(--valor-cloud-blue), transparent 76%);
}
[data-theme='valor'] :is(.valor-atmosphere, .site-atmosphere) > span:first-child { top: -32%; left: -24%; }
[data-theme='valor'] :is(.valor-atmosphere, .site-atmosphere) > span:nth-child(2) {
  right: -24%; top: 2%; background: radial-gradient(ellipse, var(--valor-cloud-green), transparent 76%);
}
[data-theme='valor'] :is(.valor-atmosphere, .site-atmosphere) > span:last-child {
  left: 12%; bottom: -45%; background: radial-gradient(ellipse, var(--valor-cloud-gold), transparent 76%);
}
@keyframes valor-cloud-drift {
  from { transform: translate3d(-3vw, 2vh, 0) scale(1); }
  to { transform: translate3d(3vw, -2vh, 0) scale(1.04); }
}
@media (prefers-reduced-motion: no-preference) {
  html[data-theme='valor'] :is(.valor-atmosphere, .site-atmosphere) > span {
    animation: valor-cloud-drift 72s ease-in-out -18s infinite alternate both;
  }
  html[data-theme='valor'] :is(.valor-atmosphere, .site-atmosphere) > span:nth-child(2) {
    animation-duration: 90s; animation-delay: -36s; animation-direction: alternate-reverse;
  }
  html[data-theme='valor'] :is(.valor-atmosphere, .site-atmosphere) > span:last-child {
    animation-duration: 108s; animation-delay: -54s;
  }
}
html[data-theme='valor'][data-page-visibility='hidden'] :is(.valor-atmosphere, .site-atmosphere) > span { animation-play-state: paused; }
html[data-theme='valor'][data-motion='reduced'] :is(.valor-atmosphere, .site-atmosphere) > span { animation: none; }
@media (prefers-reduced-motion: reduce) {
  html[data-theme='valor'] :is(.valor-atmosphere, .site-atmosphere) > span { animation: none; }
}
@media (max-width: 640px) {
  [data-theme='valor'] :is(.valor-atmosphere, .site-atmosphere) > span { width: 160vw; }
}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more), (forced-colors: active) {
  [data-theme='valor'] :is(.valor-atmosphere, .site-atmosphere) { display: none; }
}
@media print {
  [data-theme='valor'] :is(.valor-atmosphere, .site-atmosphere) { display: none; }
}
