/* Signal For All V48.13 — strat decorativ de efecte continue (unde, forme plutitoare, 3D auto).
   TOT se oprește prin: prefers-reduced-motion, body.sfa-motion-off, body.sfa-calm, body.sfa-fx-off.
   Stratul este pur decorativ: aria-hidden, pointer-events:none, în spatele conținutului.
   FIX V48.13: eliminat CSS-ul pentru butonul propriu .sfa-zeromotion — butonul nu era
   niciodată adăugat în pagină de sfa-fx-v48.js (cod mort); controlul real de Zero Motion
   e panoul de accesibilitate (accessibility-v21.js), care rămâne singura sursă de adevăr. */

.sfa-fx-layer{
  position:fixed; inset:0; z-index:-1; overflow:hidden; pointer-events:none;
  contain:strict;
}
.sfa-fx-layer *{ will-change:transform; }

/* --- Unde animate continuu (jos) --- */
.sfa-fx-waves{ position:absolute; left:0; right:0; bottom:0; height:40vh; min-height:220px; opacity:.5; }
.sfa-fx-waves svg{ position:absolute; bottom:0; width:200%; height:100%; }
.sfa-fx-wave1{ fill:rgba(113,89,255,.20); animation:sfa-fx-wave 18s linear infinite; }
.sfa-fx-wave2{ fill:rgba(53,214,221,.16); animation:sfa-fx-wave 26s linear infinite reverse; }
.sfa-fx-wave3{ fill:rgba(255,120,199,.12); animation:sfa-fx-wave 34s linear infinite; }
@keyframes sfa-fx-wave{ from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* --- Forme care plutesc continuu (blob-uri) --- */
.sfa-fx-blob{ position:absolute; border-radius:50%; filter:blur(42px); opacity:.42; }
.sfa-fx-blob.b1{ width:360px;height:360px; left:-60px; top:8%;  background:radial-gradient(circle at 30% 30%,#b57bff,transparent 70%); animation:sfa-fx-float1 24s ease-in-out infinite; }
.sfa-fx-blob.b2{ width:300px;height:300px; right:-40px; top:22%; background:radial-gradient(circle at 70% 40%,#3df0ff,transparent 70%); animation:sfa-fx-float2 30s ease-in-out infinite; }
.sfa-fx-blob.b3{ width:260px;height:260px; left:30%; bottom:6%; background:radial-gradient(circle at 50% 50%,#ff44c4,transparent 70%); animation:sfa-fx-float3 28s ease-in-out infinite; }
@keyframes sfa-fx-float1{ 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(60px,-40px) scale(1.12)} }
@keyframes sfa-fx-float2{ 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(-50px,50px) scale(1.08)} }
@keyframes sfa-fx-float3{ 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(40px,-30px) scale(1.15)} }

/* --- Mișcare 3D automată (cub wireframe care se rotește continuu) --- */
.sfa-fx-3d{ position:absolute; top:12%; right:10%; width:120px; height:120px; perspective:600px; opacity:.5; }
.sfa-fx-cube{ position:absolute; inset:0; transform-style:preserve-3d; animation:sfa-fx-spin 16s linear infinite; }
.sfa-fx-cube span{ position:absolute; inset:0; border:2px solid rgba(109,85,246,.55); border-radius:8px; }
.sfa-fx-cube span:nth-child(1){ transform:rotateY(0deg) translateZ(60px); }
.sfa-fx-cube span:nth-child(2){ transform:rotateY(90deg) translateZ(60px); border-color:rgba(53,214,221,.55); }
.sfa-fx-cube span:nth-child(3){ transform:rotateY(180deg) translateZ(60px); border-color:rgba(255,120,199,.55); }
.sfa-fx-cube span:nth-child(4){ transform:rotateY(270deg) translateZ(60px); }
.sfa-fx-cube span:nth-child(5){ transform:rotateX(90deg) translateZ(60px); }
.sfa-fx-cube span:nth-child(6){ transform:rotateX(-90deg) translateZ(60px); }
@keyframes sfa-fx-spin{ from{transform:rotateX(0) rotateY(0)} to{transform:rotateX(360deg) rotateY(360deg)} }

/* ===================== OPRIRE TOTALĂ =====================
   Orice dintre aceste condiții îngheață complet stratul decorativ. */
@media (prefers-reduced-motion: reduce){
  .sfa-fx-layer *{ animation:none !important; transform:none !important; }
  .sfa-fx-layer{ display:none; }
}
body.sfa-fx-off  .sfa-fx-layer,
body.sfa-motion-off .sfa-fx-layer,
body.sfa-calm    .sfa-fx-layer,
body.sfa-contrast .sfa-fx-layer,
body.v16-low-glare .sfa-fx-layer{ display:none !important; }

@media (max-width:600px){ .sfa-fx-3d{ display:none; } .sfa-fx-blob{ filter:blur(32px); } }
