/* Dark Luxury performance policy V1. CSS only; package-local and independent.
   A missing policy falls back to each original declaration. No UA sniffing,
   scroll observer, user preference write, hash lock or global theme dependency. */
html[data-uvd-skin="dark-luxury-3d"] {
  --dl-perf-backdrop: none;
  --dl-perf-blur-cap: 8px;
  --dl-perf-background-attachment: scroll;
  --dl-perf-animation: initial;
  --dl-perf-decoration-animation: none;
}

/* Glass remains available on large, precise-pointer displays. Even there,
   each original blur is capped rather than making a smaller blur larger. */
@media (min-width: 1025px) and (hover: hover) and (pointer: fine) {
  html[data-uvd-skin="dark-luxury-3d"][data-uvd-effect="balanced"],
  html[data-uvd-skin="dark-luxury-3d"][data-uvd-effect="wow"] {
    --dl-perf-backdrop: initial;
  }
  html[data-uvd-skin="dark-luxury-3d"][data-uvd-effect="wow"] {
    --dl-perf-blur-cap: 12px;
    --dl-perf-decoration-animation: initial;
  }
}

/* The painted body gradients retain the colour identity without viewport-sized
   blend/mask layers being sampled through every translucent card on scroll. */
html[data-uvd-skin="dark-luxury-3d"] body::before,
html[data-uvd-skin="dark-luxury-3d"] body::after {
  content: none !important;
  display: none !important;
}

/* Push UI injects this one stylesheet at runtime, outside the manifest CSS.
   Cover its backdrop without changing notification logic or its modal layout. */
html[data-uvd-skin="dark-luxury-3d"] #pushV2GenericModal {
  backdrop-filter: var(--dl-perf-backdrop, blur(8px)) !important;
  -webkit-backdrop-filter: var(--dl-perf-backdrop, blur(8px)) !important;
}

html[data-uvd-skin="dark-luxury-3d"][data-uvd-effect="calm"],
html[data-uvd-skin="dark-luxury-3d"][data-uvd-page-mode="performance-safe"],
html[data-uvd-skin="dark-luxury-3d"][data-uvd-page-mode="live-safe"] {
  --dl-perf-backdrop: none;
  --dl-perf-decoration-animation: none;
}
html[data-uvd-skin="dark-luxury-3d"][data-uvd-motion="reduced"] {
  --dl-perf-backdrop: none;
  --dl-perf-animation: none;
  --dl-perf-decoration-animation: none;
}
html[data-uvd-skin="dark-luxury-3d"][data-uvd-motion="reduced"] *,
html[data-uvd-skin="dark-luxury-3d"][data-uvd-motion="reduced"] *::before,
html[data-uvd-skin="dark-luxury-3d"][data-uvd-motion="reduced"] *::after {
  transition-duration: .001ms !important;
  scroll-behavior: auto !important;
}
@media (prefers-reduced-motion: reduce) {
  html[data-uvd-skin="dark-luxury-3d"] {
    --dl-perf-backdrop: none !important;
    --dl-perf-animation: none !important;
    --dl-perf-decoration-animation: none !important;
  }
}

/* Keep large blurred ambient ornaments out of the mobile rendering path.
   These are decorative pseudo elements, never the card, text or controls. */
@media (max-width: 1024px), (hover: none), (pointer: coarse) {
  html[data-uvd-skin="dark-luxury-3d"] body.uvd-page-key-dashboard-home .dashboard-right::before,
  html[data-uvd-skin="dark-luxury-3d"] body.uvd-page-key-dashboard-home .dashboard-right::after {
    content: none !important;
    display: none !important;
  }
}

/* Important states keep their labels/colour/static glow. Any requested pulse
   uses opacity, avoiding repeated filter and large shadow interpolation. */
@keyframes livePulse { 0%,100% { opacity: 1; } 50% { opacity: .8; } }
@keyframes liveRecordPulse { 0%,100% { opacity: 1; } 50% { opacity: .86; } }
@keyframes livePulseCard { 0%,100% { opacity: 1; } 50% { opacity: .94; } }
@keyframes livePulseCard3B { 0%,100% { opacity: 1; } 50% { opacity: .94; } }
@keyframes livePulseGlass3B1 { 0%,100% { opacity: 1; } 50% { opacity: .94; } }
@keyframes uvdDarkOnlineLiveAura2016 { 0%,100% { opacity: 1; } 50% { opacity: .94; } }
@keyframes uvdDarkOnlineSoonAura2016 { 0%,100% { opacity: 1; } 50% { opacity: .96; } }
