/* Ash & Blood v5.57 adaptive performance layer.
   Auto selects this path on Firefox and lower-power devices. */
html.ab-perf-saver *,
html.ab-perf-saver *::before,
html.ab-perf-saver *::after{
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}

/* Firefox is particularly expensive with huge blurred, blended fixed layers.
   Preserve the colour/lighting composition but render it as static gradients. */
html.ab-perf-saver .ab-atmosphere-v12__wash,
html.ab-perf-saver .ab-atmosphere-v12__mist,
html.ab-perf-saver .ab-atmosphere-v12__horizon{
  animation:none!important;
  filter:none!important;
  mix-blend-mode:normal!important;
  will-change:auto!important;
}
html.ab-perf-saver .ab-atmosphere-v12__wash{
  inset:0!important;
  opacity:.72!important;
  transform:none!important;
}
html.ab-perf-saver .ab-atmosphere-v12__mist{
  opacity:.035!important;
  transform:none!important;
}
html.ab-perf-saver .ab-atmosphere-v12__mist--a{left:-18vw!important;top:20vh!important}
html.ab-perf-saver .ab-atmosphere-v12__mist--b{right:-20vw!important;bottom:9vh!important}
html.ab-perf-saver .ab-atmosphere-v12__horizon{opacity:.06!important}
html.ab-perf-saver #abAtmosphereCanvas{opacity:.48!important}

/* Page-local particle fields duplicate the shared atmosphere. The adaptive
   path keeps one shared low-cost field instead of painting two full screens. */
html.ab-perf-saver .world-canvas,
html.ab-perf-saver body.events-page .events-ember-layer,
html.ab-perf-saver body.roster-page .roster-ember-layer,
html.ab-perf-saver body.roster-page #rosterEmberLayer,
html.ab-perf-saver #auroraCanvas,
html.ab-perf-saver #particleCanvas{
  display:none!important;
}

/* Ambient homepage video falls back to its poster/image in saver mode. */
html.ab-perf-saver .hero-video[data-ab-ambient-video]{display:none!important}
html.ab-perf-saver .hero-fallback{display:block!important}

/* Avoid expensive blend composition on fixed decorative surfaces. */
html.ab-perf-saver .world-canvas,
html.ab-perf-saver body.events-page .events-ember-layer,
html.ab-perf-saver body.roster-page .roster-ember-layer,
html.ab-perf-saver body.roster-page #rosterEmberLayer{
  mix-blend-mode:normal!important;
}

/* Large motion-heavy ornaments stay attractive but static. */
html.ab-perf-saver .raven-watcher,
html.ab-perf-saver .ash-motes,
html.ab-perf-saver .blood-veil{
  animation:none!important;
  will-change:auto!important;
}

/* Keep the display drawer's performance status easy to understand. */
.ab-performance-note{display:block;margin-top:.28rem;color:#767b78;font-size:.68rem;line-height:1.35}
html.ab-browser-firefox .ab-performance-note::after{content:' Firefox is automatically using the optimized renderer.';color:#b28f55}

/* Existing manual accessibility controls always win. */
body.ab-effects-off .world-canvas,
body.ab-effects-off .events-ember-layer,
body.ab-effects-off .roster-ember-layer,
body.ab-effects-off #rosterEmberLayer,
body.ab-effects-off #auroraCanvas,
body.ab-effects-off #particleCanvas{display:none!important}
