/* Lag fixes (2026-10-16). Same look, less per-frame work.
   Wall tiles: drop-shadow and brightness/saturate filters re-ran on every video frame of every moving tile.
   The box-shadow already draws the tile shadow; a black .28 overlay equals brightness(.72). */
.ev-wall-tile, .ev-wall-tile:hover {filter: none !important;}
.ev-wall-tile {transition: box-shadow 1.2s;}
.ev-wall-tile video, .ev-wall-tile img, .ev-wall-tile:hover video, .ev-wall-tile:hover img {filter: none !important;}
.ev-wall-tile::after {content: ""; position: absolute; z-index: 2; inset: 0; border-radius: inherit; background: rgb(0 0 0 / .28); pointer-events: none; transition: opacity .35s;}
.ev-wall-tile:hover::after {opacity: 0;}
/* The "Preview" box shows posters instead of six decoding videos. */
.ev-demo-gallery img {display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; border-radius: 5px; background: #090a0e;}
/* Login carousel: 32 large radial glows breathed (scale + opacity) on every frame. */
.auth-carousel-card::before {animation: none !important; opacity: .8;}
/* Lite mode (slow devices): flat wall tiles, since 3D perspective compositing of ~30 moving tiles was the
   largest cost; and no per-card login glow. */
[data-perf-lite] .ev-wall-tile, [data-perf-lite] .ev-wall-tile:hover {transform: none !important;}
[data-perf-lite] .auth-carousel-card::before {display: none;}
