/* ============================================================
   VITALITY — no-hardware-acceleration fallback
   Applied when scripts/perf-detect.js detects a software WebGL
   renderer (or no WebGL at all) and adds .no-gpu to <html>.
   Strips paint-heavy effects that tank frame rate on a CPU
   compositor. Load this stylesheet LAST so it can win on
   equal specificity without excessive !important.
   ============================================================ */

/* Backdrop blur is one of the most expensive paint ops on a
   software compositor — drop it everywhere and let the
   underlying near-opaque backgrounds carry the UI. */
html.no-gpu * {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* The scrolled navbar pill relies on blur(24px) to read against
   the background; bump it to near-opaque so text stays legible. */
html.no-gpu .main-hero > .navbar.is-scrolled,
html.no-gpu header.main-hero .navbar.is-scrolled {
  background: rgba(10, 9, 14, 0.94) !important;
}

/* Custom cursor — a perpetual rAF-driven follower, disabled in JS
   (scripts/cursor.js) but also hidden here in case of a flash. */
html.no-gpu .vit-cursor-dot,
html.no-gpu .vit-cursor-ring {
  display: none !important;
}

/* Per-card pointer-tracked glow (scripts/glowing-effect.js,
   scripts/elevated.js SpotlightCard) — pointermove rect math on
   every card, every move. Disabled in JS too; hidden as backstop. */
html.no-gpu .glowing-effect,
html.no-gpu [data-glow-inner] {
  display: none !important;
}

/* Animated gradient-text (background-position keyframes) forces a
   repaint of the text every frame, indefinitely. Freeze on a
   single frame of the gradient instead. */
html.no-gpu .hero-word,
html.no-gpu .page-header h1,
html.no-gpu .download-header h1,
html.no-gpu .pricing-header h1,
html.no-gpu .bios-header h1,
html.no-gpu .affiliate-header h1,
html.no-gpu .faq-header h1,
html.no-gpu .tos-header h1,
html.no-gpu .documentation-header h1,
html.no-gpu .section-title .accent,
html.no-gpu .preloader-logo,
html.no-gpu .cin-word,
html.no-gpu .cin-line.cin-accent h2 {
  animation: none !important;
  background-position: 0% 50% !important;
}

/* Aurora orbs behind the homepage hero (css/elevated.css) — a pair of
   540px/460px circles with a permanent blur(80px) running a 14s
   transform/scale animation. Repainting an 80px blur over that much
   area every frame is one of the heaviest line items on a software
   compositor. Freeze the animation and drop the blur radius so the
   orbs settle into soft static gradients instead. */
html.no-gpu .hero-section::before,
html.no-gpu .hero-section::after {
  animation: none !important;
  filter: blur(40px) !important;
}

/* Large drop-shadow on the cinematic accent headline (css/cinematic.css)
   — a 50px-blur filter recomputed on every scroll-driven transform
   update from scripts/cinematic.js. */
html.no-gpu .cin-line.cin-accent h2 {
  filter: none !important;
}

/* Small glow drop-shadows on logos/icons (css/cairn-site.css,
   css/components.css) — cheap individually, but filter compositing
   adds up across a page full of effects already disabled above. */
html.no-gpu .navbar .logo img.logo-icon,
html.no-gpu .footer-logo {
  filter: none !important;
}
