/* Netaix — fond fixe des pages de connexion et de deconnexion
   (LOGIN-BACKDROP-V2, 2026-09-30), charge par login.html et deconnexion.html.
   Remplace le fond anime (deux canevas plein ecran + flou CSS a 30 i/s,
   ~45 % du GPU d'un M3 Pro tant que l'onglet restait affiche). Tout est
   statique : dessine une fois, jamais recalcule, aucun JS.
   Pile : balayage conique + halo central (teinte --cta) > trame de points
   masquee autour du panneau > grain > vignette. */
.login-backdrop {
  position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none;
  background:
    conic-gradient(from 200deg at 50% 45%, color-mix(in srgb, var(--cta) 0%, transparent), color-mix(in srgb, var(--cta) 16%, transparent), rgba(64,170,255,.05), color-mix(in srgb, var(--cta) 0%, transparent) 60%),
    radial-gradient(ellipse 45% 40% at 50% 45%, color-mix(in srgb, var(--cta) 14%, transparent) 0%, transparent 70%),
    #05080C;
}
.login-dots {
  position: absolute; inset: 0;
  background-image: radial-gradient(rgba(200,215,245,.16) 1px, transparent 1.4px);
  background-size: 22px 22px;
  background-position: center center;
  -webkit-mask-image: radial-gradient(ellipse 60% 55% at 50% 45%, #000 10%, transparent 75%);
          mask-image: radial-gradient(ellipse 60% 55% at 50% 45%, #000 10%, transparent 75%);
}
.login-grain {
  position: absolute; inset: 0; opacity: .045;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");
}
.login-backdrop::after {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(ellipse 120% 90% at 50% 45%, transparent 55%, rgba(0,0,0,.55) 100%);
}
