/* ============================================
   PERF.CSS — RESPINNERSTV
   Performance fallbacks for devices without HW acceleration.

   Activated automatically when ANY of these is true:
     - User OS sets prefers-reduced-motion / -transparency / -data
     - navigator.deviceMemory <= 2 or hardwareConcurrency <= 2
     - Save-Data header is set
     - JS measures sustained <30fps after load (perf-mode.js)
     - localStorage rsp_lite=1 (manual opt-in)

   Also always-on (no visual change): pause every animation when the
   tab is hidden, and pause offscreen heavy animations via JS.
   ============================================ */

/* === Always on — invisible CPU savings === */

/* Pause every animation while the tab is hidden (visibility API toggles it) */
html.anim-paused *,
html.anim-paused *::before,
html.anim-paused *::after {
    animation-play-state: paused !important;
}

/* JS marks offscreen heavy elements with this class via IntersectionObserver */
.rsp-anim-paused,
.rsp-anim-paused::before,
.rsp-anim-paused::after {
    animation-play-state: paused !important;
}

/* === Honour OS-level user preferences automatically === */

@media (prefers-reduced-motion: reduce) {
    .nav-live-status.is-live,
    .nav-live-status.is-live .live-dot,
    .nav-user-badge,
    .nav-bell-badge,
    .bonus-card-h.bp-exclusive::before,
    .orb,
    .floating-slot,
    .particle {
        animation: none !important;
    }
    .hover-lift:hover { transform: none; }
}

@media (prefers-reduced-transparency: reduce) {
    .navbar-blur-bg,
    .nav-bell-dropdown,
    .nav-user-dropdown,
    .login-modal-overlay,
    .nav-menu-overlay,
    .rsp-stat {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }
    .navbar          { background: rgba(8, 8, 15, 0.97); }
    .navbar.scrolled { background: rgba(5, 5, 10, 1); }
    .login-modal-overlay { background: rgba(0, 0, 0, 0.88); }
    .nav-bell-dropdown   { background: rgba(8, 8, 15, 1); }
    .nav-user-dropdown   { background: rgba(12, 10, 20, 1); }
}

/* === Low-perf mode (auto-detected or opt-in) ===
   Goal: same layout, same colours, no GPU-bound effects. */

html[data-perf="low"] .navbar-blur-bg,
html[data-perf="low"] .nav-bell-dropdown,
html[data-perf="low"] .nav-user-dropdown,
html[data-perf="low"] .login-modal-overlay,
html[data-perf="low"] .nav-menu-overlay,
html[data-perf="low"] .rsp-stat {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

/* Solid backgrounds compensate for the lost blur — same colour family */
html[data-perf="low"] .navbar          { background: rgba(8, 8, 15, 0.97); }
html[data-perf="low"] .navbar.scrolled { background: rgba(5, 5, 10, 1); }
html[data-perf="low"] .login-modal-overlay { background: rgba(0, 0, 0, 0.88); }
html[data-perf="low"] .nav-bell-dropdown   { background: rgba(8, 8, 15, 1); }
html[data-perf="low"] .nav-user-dropdown   { background: rgba(12, 10, 20, 1); }

/* Kill the most expensive decorative layers: huge blurred orbs and stacked drop-shadows */
html[data-perf="low"] .orb {
    filter: none !important;
    opacity: 0.10;
}
html[data-perf="low"] .floating-slot {
    filter: none !important;
}

/* Stop infinite background animations (badge pulses, shimmer borders, live status) */
html[data-perf="low"] .bonus-card-h.bp-exclusive::before,
html[data-perf="low"] .orb,
html[data-perf="low"] .floating-slot,
html[data-perf="low"] .particle,
html[data-perf="low"] .nav-live-status.is-live,
html[data-perf="low"] .nav-live-status.is-live .live-dot,
html[data-perf="low"] .nav-user-badge,
html[data-perf="low"] .nav-bell-badge {
    animation: none !important;
}

/* Trim wide-radius neon glows that force large repainted areas */
html[data-perf="low"] .nav-live-status.is-live .live-dot { box-shadow: 0 0 6px var(--neon-red); }
html[data-perf="low"] .nav-coins-icon { filter: none; }
html[data-perf="low"] .hamburger::before,
html[data-perf="low"] .hamburger::after,
html[data-perf="low"] .hamburger-mid { box-shadow: none; }

/* Static gradient instead of shimmering border on exclusive bonus cards */
html[data-perf="low"] .bonus-card-h.bp-exclusive::before {
    background-position: 0% 50% !important;
}

/* Shorten transitions so hover/click feels snappier on slow paint pipelines */
html[data-perf="low"] * {
    transition-duration: 0.15s !important;
}
